#
d97838b7 |
| 03-Nov-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
iommu: eliminate iommu_free_ctx()
iommu_free_ctx_locked() alone is enough
Sponsored by: Advanced Micro Devices (AMD) Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
bdd5eb33 |
| 25-Sep-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
iommu: change iommu_domain_map_ops to take iommu_map_entry
instead of base/size.
Sponsored by: Advanced Micro Devices (AMD) Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
d50403a6 |
| 27-Sep-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
iommu: add per-unit sysctls reporting the state of DMA and interrupt remapping
Sponsored by: Advanced Micro Devices (AMD) Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
Revision tags: release/13.4.0 |
|
#
ba33e74c |
| 27-Jul-2024 |
Konstantin Belousov <kib@FreeBSD.org> |
busdma_iommu: indirect dmar-specific method calls in iommu_get_dev_ctx()
Sponsored by: Advanced Micro Devices (AMD) Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
Revision tags: release/14.1.0 |
|
#
ac4ddc46 |
| 21-May-2024 |
Dmitry Salychev <dsl@FreeBSD.org> |
arm64: Fixed IOMMU compilation errors
These are missing changes after 1228b93b410a when ref_count was removed from bus_dma_tag_common and 1e3f42b6bad5, when the address arguments were switched to po
arm64: Fixed IOMMU compilation errors
These are missing changes after 1228b93b410a when ref_count was removed from bus_dma_tag_common and 1e3f42b6bad5, when the address arguments were switched to pointers.
Reviewed by: jhb MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D45289
show more ...
|
Revision tags: release/13.3.0 |
|
#
fdafd315 |
| 24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remov
sys: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/
Sponsored by: Netflix
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/
|
Revision tags: release/13.2.0 |
|
#
dc08d52d |
| 21-Dec-2022 |
Ruslan Bukin <br@FreeBSD.org> |
smmu: fix FDT and !FDT builds.
Reviewed by: andrew Sponsored by: UKRI Differential Revision: https://reviews.freebsd.org/D37762
|
#
4b4e8cb5 |
| 20-Dec-2022 |
Ruslan Bukin <br@FreeBSD.org> |
smmu: set guest address space range to 48-bit, which is a hardware limit in our configuration.
Reviewed by: andrew Sponsored by: UKRI Differential Revision: https://reviews.freebsd.org/D37756
|
Revision tags: release/12.4.0 |
|
#
4670f908 |
| 29-Jul-2022 |
Alan Cox <alc@FreeBSD.org> |
iommu_gas: Eliminate redundant parameters and push down lock acquisition
Since IOMMU map entries store a reference to the domain in which they reside, there is no need to pass the domain to iommu_ga
iommu_gas: Eliminate redundant parameters and push down lock acquisition
Since IOMMU map entries store a reference to the domain in which they reside, there is no need to pass the domain to iommu_gas_free_entry(), iommu_gas_free_space(), and iommu_gas_free_region().
Push down the acquisition and release of the IOMMU domain lock into iommu_gas_free_space() and iommu_gas_free_region().
Both of these changes allow for simplifications in the callers of the functions without really complicating the functions themselves. Moreover, the latter change eliminates the direct use of the IOMMU domain lock from the x86-specific DMAR code.
Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D35995
show more ...
|
#
8bc36738 |
| 22-Jul-2022 |
Alan Cox <alc@FreeBSD.org> |
iommu_gas: Eliminate a possible case of use-after-free
Eliminate a possible case of use-after-free in an error handling path after a mapping failure. Specifically, eliminate IOMMU_MAP_ENTRY_QI_NF a
iommu_gas: Eliminate a possible case of use-after-free
Eliminate a possible case of use-after-free in an error handling path after a mapping failure. Specifically, eliminate IOMMU_MAP_ENTRY_QI_NF and instead perform the IOTLB invalidation synchronously. Otherwise, when iommu_domain_unload_entry() is called and told not to free the IOMMU map entry, the caller could free the entry before dmar_qi_task() is finished with it.
Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D35878
show more ...
|
#
41ce5498 |
| 18-May-2022 |
Ruslan Bukin <br@FreeBSD.org> |
Add OFW support to arm64's IOMMU framework. This is needed to support non-PCI devices like memory-mapped display controllers. Split-out some initialization code from iommu_ctx_alloc() into iommu_ctx_
Add OFW support to arm64's IOMMU framework. This is needed to support non-PCI devices like memory-mapped display controllers. Split-out some initialization code from iommu_ctx_alloc() into iommu_ctx_init() method so we could pass controller's MD-data obtained from DTS to the driver prior to a CTX initialization.
Tested on Morello SoC.
Sponsored by: UKRI
show more ...
|
Revision tags: release/13.1.0 |
|
#
0a8e88fa |
| 09-May-2022 |
Ruslan Bukin <br@FreeBSD.org> |
Change __unused to __diagused.
Pointed out by: jhb Sponsored by: UKRI
|
#
7d0bbf43 |
| 07-May-2022 |
Ruslan Bukin <br@FreeBSD.org> |
Change iommu list lock to SX as we need a sleepable lock so we can call to ofw_bus_iommu_map().
Sponsored by: UKRI
|
#
59446e8a |
| 07-May-2022 |
Ruslan Bukin <br@FreeBSD.org> |
Fix !INVARIANTS build.
Sponsored by: UKRI
|
#
6ff00427 |
| 07-May-2022 |
Ruslan Bukin <br@FreeBSD.org> |
Return error code from IOMMU_MAP and fix build.
Sponsored by: UKRI
|
Revision tags: release/12.3.0, release/13.0.0 |
|
#
4cc87010 |
| 16-Nov-2020 |
Ruslan Bukin <br@FreeBSD.org> |
Introduce IOMMU support for arm64 platform.
This adds an arm64 iommu interface and a driver for Arm System Memory Management Unit version 3.2 (ARM SMMU v3.2) specified in ARM IHI 0070C document.
Ha
Introduce IOMMU support for arm64 platform.
This adds an arm64 iommu interface and a driver for Arm System Memory Management Unit version 3.2 (ARM SMMU v3.2) specified in ARM IHI 0070C document.
Hardware overview is provided in the header of smmu.c file.
The support is disabled by default. To enable add 'options IOMMU' to your kernel configuration file.
The support was developed on Arm Neoverse N1 System Development Platform (ARM N1SDP), kindly provided by ARM Ltd.
Currently, PCI-based devices and ACPI platforms are supported only. The support was tested on IOMMU-enabled Marvell SATA controller, Realtek Ethernet controller and a TI xHCI USB controller with a low to medium load only.
Many thanks to Konstantin Belousov for help forming the generic IOMMU framework that is vital for this project; to Andrew Turner for adding IOMMU support to MSI interrupt code; to Mark Johnston for help with SMMU page management; to John Baldwin for explaining various IOMMU bits.
Reviewed by: mmel Relnotes: yes Sponsored by: DARPA / AFRL Sponsored by: Innovate UK (Digital Security by Design programme) Differential Revision: https://reviews.freebsd.org/D24618
show more ...
|