11

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)?

Eric
  • 818
  • 8
  • 21

1 Answers1

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

0andriy
  • 3,641
  • 22
  • 29
  • 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](http://www.amd.com/en-us/products/chipsets/a-series) 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! – Eric Aug 24 '15 at 21:46
  • No, I have no such hardware. but if you can run Linux you may retrieve them like you described. – 0andriy Aug 25 '15 at 15:47
  • 1
    Andy: it was a comment meant for any reader who might to help :) – Eric Aug 26 '15 at 21:36
  • 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. – Eric Apr 12 '19 at 13:24
  • @Eric, if hardware supports feature and it's not fused by firmware, OS can utilize it. VT-d is described in this document https://software.intel.com/sites/default/files/managed/c5/15/vt-directed-io-spec.pdf – 0andriy Apr 12 '19 at 19:11
  • 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.* – 0andriy Apr 12 '19 at 19:12