Ruslan Bukin
f593116991
Add device_t member to struct iommu.
...
This is needed on arm64 for the interface between iommu framework
and iommu controller drivers.
Reviewed by: kib
Sponsored by: Innovate DSbD
Differential Revision: https://reviews.freebsd.org/D27229
2020-11-16 15:29:52 +00:00
Ruslan Bukin
94dfb28ee0
Assign the reserved apic region (GAS entry) to the iommu domain msi_entry.
...
Requested by: kib
Reviewed by: kib
Sponsored by: Innovate DSbD
Differential Revision: https://reviews.freebsd.org/D26859
2020-10-19 15:50:58 +00:00
Ruslan Bukin
e707c8be4e
Manage MSI iommu pages.
...
This allows the interrupt controller driver only need a small change to
create a map for the page the device will write to raise an interrupt.
Submitted by: andrew
Reviewed by: kib
Sponsored by: Innovate DSbD
Differential Revision: https://reviews.freebsd.org/D26705
2020-10-19 13:10:21 +00:00
Ruslan Bukin
f23f7d3a15
Split-out Guest Address Space (GAS) macroses to a separate header.
...
Sponsored by: Innovate DSbD
2020-10-15 13:47:52 +00:00
Ruslan Bukin
e12686ec23
Split-out iommu type definitions to a separate header.
...
Reviewed by: kib
Sponsored by: Innovate DSbD
Differential Revision: https://reviews.freebsd.org/D26780
2020-10-14 21:22:23 +00:00
Ruslan Bukin
f5cafae199
Add iommu_get_ctx_domain() that allows to get iommu domain for a given
...
iommu context.
Submitted by: andrew
Sponsored by: Innovate DSbD
2020-10-14 14:12:15 +00:00
Ruslan Bukin
066e1d1af3
Rename a header protection macro.
...
Sponsored by: DARPA, AFRL
2020-10-14 13:39:50 +00:00
Ruslan Bukin
72479f6bf9
Add iommu_get_dev_ctx() helper that allows to instantiate an iommu context
...
for a given device_t.
Submitted by: andrew
Reviewed by: kib
Sponsored by: DARPA, AFRL
2020-10-09 13:11:14 +00:00
Ruslan Bukin
025730aad6
o Rename acpi_iommu_get_dma_tag() -> iommu_get_dma_tag().
...
This function isn't ACPI dependent and we may use it on FDT systems
as well.
o Don't repeat the function declaration, include iommu.h instead.
Reviewed by: andrew, kib
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D26584
2020-09-29 15:10:56 +00:00
Ruslan Bukin
cb9050dd21
Move the rid variable to the generic iommu context.
...
It could be used in various IOMMU platforms, not only DMAR.
Reviewed by: kib
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D26373
2020-09-10 14:12:25 +00:00
Ruslan Bukin
16696f6057
Add iommu_domain constructor and destructor.
...
Reviewed by: kib
Sponsored by: DARPA/AFRL
Differential Revision: https://reviews.freebsd.org/D25956
2020-08-06 08:48:23 +00:00
Ruslan Bukin
0eed04c802
Add iommu_domain_map_ops virtual table with map/unmap methods
...
so x86 can support Intel DMAR and AMD IOMMU simultaneously.
Reviewed by: kib
Sponsored by: DARPA/AFRL
Differential Revision: https://reviews.freebsd.org/D25894
2020-07-31 23:02:17 +00:00
Ruslan Bukin
c8597a1f9f
o Don't include headers from iommu.h, include them from the header
...
consumers instead;
o Order includes properly.
Reviewed by: kib
Sponsored by: DARPA/AFRL
Differential Revision: https://reviews.freebsd.org/D25878
2020-07-29 22:08:54 +00:00
Ruslan Bukin
1b0c9c21d9
o Move iommu_set_buswide_ctx, iommu_is_buswide_ctx to
...
the generic iommu busdma backend;
o Move bus_dma_iommu_set_buswide, bus_dma_iommu_load_ident
prototypes to iommu.h.
Reviewed by: kib
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D25866
2020-07-29 13:23:27 +00:00
Ruslan Bukin
ea4c01156a
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
2020-07-28 16:08:14 +00:00
Ruslan Bukin
15f6baf445
Rename DMAR flags:
...
o DMAR_DOMAIN_* -> IOMMU_DOMAIN_*
o DMAR_PGF_* -> IOMMU_PGF_*
Reviewed by: kib
Sponsored by: DARPA/AFRL
Differential Revision: https://reviews.freebsd.org/D25812
2020-07-26 12:29:22 +00:00
Ruslan Bukin
357149f037
o Make the _hw_iommu sysctl node non-static;
...
o Move the dmar sysctl knobs to _hw_iommu_dmar.
Reviewed by: kib
Sponsored by: DARPA/AFRL
Differential Revision: https://reviews.freebsd.org/D25807
2020-07-25 21:37:07 +00:00
Ruslan Bukin
9c843a409b
o Move iommu gas prototypes, DMAR flags to iommu.h;
...
o Move hw.dmar sysctl node to iommu_gas.c.
Reviewed by: kib
Sponsored by: DARPA/AFRL
Differential Revision: https://reviews.freebsd.org/D25802
2020-07-25 19:07:12 +00:00
Ruslan Bukin
62ad310c93
Split-out the Intel GAS (Guest Address Space) management component
...
from Intel DMAR support, so it can be used on other IOMMU systems.
Reviewed by: kib
Sponsored by: DARPA/AFRL
Differential Revision: https://reviews.freebsd.org/D25743
2020-07-25 09:28:38 +00:00
Ruslan Bukin
1238a28d15
Move sys/iommu.h to dev/iommu/ as a part of generic IOMMU busdma backend.
...
Reviewed by: kib
Sponsored by: DARPA/AFRL
Differential Revision: https://reviews.freebsd.org/D25750
2020-07-21 13:50:10 +00:00