#
3933ff56 |
| 07-Dec-2023 |
Mitchell Horne <mhorne@FreeBSD.org> |
busdma: tidy bus_dma_run_filter() functions
After removing filter functionality, the naming doesn't clearly represent what the function does, so try to address this. Include some code clarity and st
busdma: tidy bus_dma_run_filter() functions
After removing filter functionality, the naming doesn't clearly represent what the function does, so try to address this. Include some code clarity and style improvements.
Create a common version in subr_busdma_bounce.c, used by most implementations. powerpc still needs its own version of the function, due to its dmat->iommu == NULL check.
No functional change intended.
Reviewed by: jhb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D42896
show more ...
|
#
1228b93b |
| 07-Dec-2023 |
Mitchell Horne <mhorne@FreeBSD.org> |
busdma: remove parent tag tracking
Without filter functions, we do not need to keep track of tag ancestry. All inheritance of the parent tag's parameters occurs when creating the new child tag.
Rev
busdma: remove parent tag tracking
Without filter functions, we do not need to keep track of tag ancestry. All inheritance of the parent tag's parameters occurs when creating the new child tag.
Reviewed by: jhb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D42895
show more ...
|
#
900907f4 |
| 07-Dec-2023 |
Mitchell Horne <mhorne@FreeBSD.org> |
busdma: kill filter functionality internally
Address filter functions are unused, unsupported, and now rejected. Simplify some busdma code by removing filter functionality completely.
Note that the
busdma: kill filter functionality internally
Address filter functions are unused, unsupported, and now rejected. Simplify some busdma code by removing filter functionality completely.
Note that the chains of parent tags become useless, and will be cleaned up in the next commit.
No functional change intended.
Reviewed by: jhb Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D42894
show more ...
|
#
7cb028de |
| 07-Dec-2023 |
Mitchell Horne <mhorne@FreeBSD.org> |
busdma: Prevent the use of filters with bus_dma_tag_create()
A deprecation notice was added to the bus_dma(9) man page by scottl@ in September 2020 discouraging the use of filter functions. I've per
busdma: Prevent the use of filters with bus_dma_tag_create()
A deprecation notice was added to the bus_dma(9) man page by scottl@ in September 2020 discouraging the use of filter functions. I've performed an attentive check of all callers in the tree and everything that exists today passes NULL for both filtfunc and filtarg. Thus, we should start returning EINVAL if these arguments are non-NULL to prevent new usages from popping up. Update the man page to be more clear about this.
The deprecation notice is present since at least 13.0-RELEASE, so this is the appropriate step for the lifetime of 15, without actually breaking the driver API. Stable branches will emit a warning instead.
This change enables the removal of a fair amount of unused complexity across the various busdma implementations.
Reviewed by: jhb MFC after: never Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D42852
show more ...
|
Revision tags: release/14.0.0 |
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
4d846d26 |
| 10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
show more ...
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0 |
|
#
7def1e10 |
| 05-Jan-2022 |
John Baldwin <jhb@FreeBSD.org> |
bus_dma: Deduplicate locking helper functions.
- Move busdma_lock_mutex to subr_bus_dma.c.
- Move _busdma_lock_dflt to subr_bus_dma.c. This function was named a couple of different things previo
bus_dma: Deduplicate locking helper functions.
- Move busdma_lock_mutex to subr_bus_dma.c.
- Move _busdma_lock_dflt to subr_bus_dma.c. This function was named a couple of different things previously. It is not a public API but an internal helper used in place of a NULL pointer. The prototype is in <sys/bus_dma.h> as not all backends include <sys/bus_dma_internal.h>.
Reviewed by: kib Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D33694
show more ...
|
#
b7810e05 |
| 31-Dec-2021 |
Doug Moore <dougm@FreeBSD.org> |
x86-busdma - Add missing paren
Reported by: jenkins Fixes: c606ab59e7f9 vm_extern: use standard address checkers everywhere
|
#
c606ab59 |
| 31-Dec-2021 |
Doug Moore <dougm@FreeBSD.org> |
vm_extern: use standard address checkers everywhere
Define simple functions for alignment and boundary checks and use them everywhere instead of having slightly different implementations scattered a
vm_extern: use standard address checkers everywhere
Define simple functions for alignment and boundary checks and use them everywhere instead of having slightly different implementations scattered about. Define them in vm_extern.h and use them where possible where vm_extern.h is included.
Reviewed by: kib, markj Differential Revision: https://reviews.freebsd.org/D33685
show more ...
|
#
84939188 |
| 10-Dec-2021 |
Alexander Motin <mav@FreeBSD.org> |
busdma: Remove outdated comments about Giant.
MFC after: 2 weeks
|
Revision tags: release/12.3.0, release/13.0.0 |
|
#
9729b149 |
| 23-Oct-2020 |
Ruslan Bukin <br@FreeBSD.org> |
Move the iommu stubs to a generic place, so they are available on all the platforms.
This allows to not depend on the IOMMU macro in AHCI driver.
Requested by: kib Suggested by: andrew Reviewed by:
Move the iommu stubs to a generic place, so they are available on all the platforms.
This allows to not depend on the IOMMU macro in AHCI driver.
Requested by: kib Suggested by: andrew Reviewed by: kib Sponsored by: Innovate DSbD Differential Revision: https://reviews.freebsd.org/D26887
show more ...
|
Revision tags: release/12.2.0 |
|
#
6186bfbd |
| 29-Sep-2020 |
Ruslan Bukin <br@FreeBSD.org> |
Rename kernel option ACPI_DMAR to IOMMU. This is mostly needed for a common arm64/amd64 iommu code.
Reviewed by: kib Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D265
Rename kernel option ACPI_DMAR to IOMMU. This is mostly needed for a common arm64/amd64 iommu code.
Reviewed by: kib Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D26587
show more ...
|
#
74c781ed |
| 14-Sep-2020 |
Scott Long <scottl@FreeBSD.org> |
Refine the busdma template interface. Provide tools for filling in fields that can be extended, but also ensure compile-time type checking. Refactor common code out of arch-specific implementations
Refine the busdma template interface. Provide tools for filling in fields that can be extended, but also ensure compile-time type checking. Refactor common code out of arch-specific implementations. Move the mpr and mps drivers to this new API. The template type remains visible to the consumer so that it can be allocated on the stack, but should be considered opaque.
show more ...
|
#
c7aa572c |
| 31-Jul-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
17996960 |
| 31-Jul-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r363583 through r363738.
|
#
386f81fc |
| 29-Jul-2020 |
Ruslan Bukin <br@FreeBSD.org> |
Fix !ACPI_DMAR build.
Reviewed by: kib Sponsored by: DARPA/AFRL Differential Revision: https://reviews.freebsd.org/D25882
|
#
ea4c0115 |
| 28-Jul-2020 |
Ruslan Bukin <br@FreeBSD.org> |
o Move the buswide_ctxs bitmap to iommu_unit and rename related functions. o Rename bus_dma_dmar_load_ident() as well.
Reviewed by: kib Sponsored by: DARPA/AFRL Differential Revision: https://review
o Move the buswide_ctxs bitmap to iommu_unit and rename related functions. o Rename bus_dma_dmar_load_ident() as well.
Reviewed by: kib Sponsored by: DARPA/AFRL Differential Revision: https://reviews.freebsd.org/D25852
show more ...
|
Revision tags: release/11.4.0 |
|
#
1dccf71b |
| 03-Jun-2020 |
Jason A. Harmening <jah@FreeBSD.org> |
Remove unnecessary WITNESS check in x86 bus_dma
When I did some bus_dma cleanup in r320528, I brought forward some sketchy WITNESS checks from the prior x86 busdma wrappers, instead of recognizing t
Remove unnecessary WITNESS check in x86 bus_dma
When I did some bus_dma cleanup in r320528, I brought forward some sketchy WITNESS checks from the prior x86 busdma wrappers, instead of recognizing them as technical debt and just dropping them. Two of these were removed in r346351 and r346851, but one remains in bounce_bus_dmamem_alloc(). This check could be constrained to only apply in the BUS_DMA_NOWAIT case, but it's cleaner to simply remove it and rely on the checks already present in the sleepable allocation paths used by this function.
While here, remove another unnecessary witness check in bus_dma_tag_create (the tag is always allocated with M_NOWAIT), and fix a couple of typos.
Reported by: cem Reviewed by: kib, cem MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D25107
show more ...
|
#
757d4fba |
| 24-Dec-2019 |
Scott Long <scottl@FreeBSD.org> |
Introduce the concept of busdma tag templates. A template can be allocated off the stack, initialized to default values, and then filled in with driver-specific values, all without having to worry ab
Introduce the concept of busdma tag templates. A template can be allocated off the stack, initialized to default values, and then filled in with driver-specific values, all without having to worry about the numerous other fields in the tag. The resulting template is then passed into busdma and the normal opaque tag object created. See the man page for details on how to initialize a template.
Templates do not support tag filters. Filters have been broken for many years, and only existed for an ancient make/model of hardware that had a quirky DMA engine. Instead of breaking the ABI/API and changing the arugment signature of bus_dma_tag_create() to remove the filter arguments, templates allow us to ignore them, and also significantly reduce the complexity of creating and managing tags.
Reviewed by: imp, kib Differential Revision: https://reviews.freebsd.org/D22906
show more ...
|
#
5c3771d2 |
| 27-Nov-2019 |
Konstantin Belousov <kib@FreeBSD.org> |
bus_dma_dmar_load_ident(9): load identity mapping into the map.
Requested, reviewed and tested by: mav Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.f
bus_dma_dmar_load_ident(9): load identity mapping into the map.
Requested, reviewed and tested by: mav Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D22559
show more ...
|
#
685666aa |
| 18-Nov-2019 |
Konstantin Belousov <kib@FreeBSD.org> |
bus_dma_dmar_set_buswide(9): KPI to indicate that the whole dmar context should share page tables.
Practically it means that dma requests from any device on the bus are translated according to the e
bus_dma_dmar_set_buswide(9): KPI to indicate that the whole dmar context should share page tables.
Practically it means that dma requests from any device on the bus are translated according to the entries loaded for the bus:0:0 device. KPI requires that the slot and function of the device be 0:0, and that no tags for other devices on the bus were used.
The intended use are NTBs which pass TLPs from the downstream to the host with slot:func of the downstream originator.
Reviewed and tested by: mav Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D22434
show more ...
|
#
22d13bfd |
| 15-Nov-2019 |
Scott Long <scottl@FreeBSD.org> |
Revert a patch that accidentally was committed with r354729
|
#
99a6085f |
| 15-Nov-2019 |
Scott Long <scottl@FreeBSD.org> |
Fix a typo in how the AVX512DQ feature bit is checked.
Reviewed by: kib Sponsored by: Intel
|
Revision tags: release/12.1.0, release/11.3.0 |
|
#
957b9bbf |
| 18-Jan-2019 |
Konstantin Belousov <kib@FreeBSD.org> |
x86 busdma: fix mis-use of bus_addr_t where vm_paddr_t is assumed.
Right now bus_addr_t and vm_paddr_t are always aliased to the same underlying integer type on x86, which makes the interchange hard
x86 busdma: fix mis-use of bus_addr_t where vm_paddr_t is assumed.
Right now bus_addr_t and vm_paddr_t are always aliased to the same underlying integer type on x86, which makes the interchange hard to detect. Shortly, i386 kernel would use uint64_t for vm_paddr_t to enable automatic use of PAE paging structures if hardware allows it, while bus_addr_t would be extended to 64bit only when PAE option is specified.
Fix all places that were identified as using bus_addr_t while page address was assumed. This was performed by testing the complete PAE merging patch on machine with > 4G of RAM enabled.
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D18854
show more ...
|
Revision tags: release/12.0.0, release/11.2.0 |
|
#
72bfb31a |
| 13-Jan-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r327886 through r327930.
|