IOMMU initialization without BIOS support
Asked Answered
M

1

12

NOTE: if you have an AMD A55 chipset on a motherboard that support IOMMU, please send me a copy of your /sys/firmware/acpi/tables/DMAR (or whatever the name is that describes IOMMU). There is no risk of any sort for you. Thanks!


Most motherboard manufacturers don't bother releasing IOMMU enabled BIOS (no option in the BIOS).

My undesranding of this document from AMD is that the BIOS initializes the IOMMU by adding ACPI tables.

So if I can get a dump of the ACPI tables (acpidump/acpiextract) from a system with a different motherboard but the same chipset that supports IOMMU, would it be possible to activate IOMMU by inserting these tables at some point before the iommu module is loaded?

If iommu is built into the kernel (not as module), is there any mechanism that allows to change acpi tables on the fly at an early stage of the kernel boot? Otherwise maybe the bootloader (grub/lilo) can do that?

Very likely some addresses within these "new" tables would need updating. Would these addresses be in the existing ACPI tables (so that diffing would help)?

Mancini answered 24/8, 2015 at 8:46 Comment(0)
T
7

Good question. We have a mechanism to load an additional DSDT (see Documentation/acpi/dsdt-overriding.txt), also some methods can be overridden (method-customizing.txt) but I'm not sure about DMAR table. At least ACPI specification doesn't say it's possible to use like this. I think you may hack your kernel and try to do such, but would it be upstreamable?

UPDATE. Oh, this one looks promising: Documentation/acpi/initrd_table_override.txt

Terrain answered 24/8, 2015 at 14:9 Comment(6)
Sounds great I'm in hurry to try it. But my efforts to retrieve ACPI tables from an AsRock BIOS ROM (one that supports IOMMU) have been very limited, using UEFITool, MMTools, efiperun, and misc other tools. So if you have a AMD A55 chipset on a motherboard that support IOMMU, please send me a copy of your /sys/firmware/acpi/tables/DMAR (whatever the name is, if unsure ask me) anyway there is no risk for you. thanks!Mancini
No, I have no such hardware. but if you can run Linux you may retrieve them like you described.Terrain
Andy: it was a comment meant for any reader who might to help :)Mancini
I don't understand your answer: of course I can use Linux to retrieve data. Read again the question you'll see that know-how is not the problem. The problem is accessing some hardware with the right features.Mancini
@Eric, if hardware supports feature and it's not fused by firmware, OS can utilize it. VT-d is described in this document software.intel.com/sites/default/files/managed/c5/15/…Terrain
Chapter 8 states: The system BIOS is responsible for detecting the remapping hardware functions in the platform and for locating the memory-mapped remapping hardware registers in the host system address space. The BIOS reports the remapping hardware units in a platform to system software through the DMA Remapping Reporting (DMAR) ACPI table described below1.Terrain

© 2022 - 2024 — McMap. All rights reserved.