Инициализация IOMMU без поддержки BIOS

ПРИМЕЧАНИЕ. Если у вас есть чипсет AMD A55 на материнской плате, поддерживающий IOMMU, отправьте мне копию вашего /sys/firmware/acpi/tables/DMAR (или что бы там ни называлось IOMMU). Для вас нет никакого риска. Спасибо!


Большинство производителей материнских плат не беспокоят выпуск BIOS с поддержкой IOMMU (в BIOS нет опции).

Мой undesranding этого документа от AMD заключается в том, что BIOS инициализирует IOMMU, добавляя таблицы ACPI.

Итак, если я могу получить дамп ACPI-таблиц (acpidex/acpiextract) из системы с другой материнской платой, но тот же набор микросхем, который поддерживает IOMMU, можно ли активировать IOMMU, вставив эти таблицы в некоторый момент до Модуль iommu загружен?

Если iommu встроен в ядро ​​(а не как модуль), есть ли какой-либо механизм, позволяющий менять таблицы acpi на лету на ранней стадии загрузки ядра? В противном случае, может быть, загрузчик (grub/lilo) может это сделать?

Скорее всего, некоторые адреса в этих "новых" таблицах нуждаются в обновлении. Будут ли эти адреса присутствовать в существующих таблицах ACPI (так, чтобы это помогло?)

Ответ 1

Хороший вопрос. У нас есть механизм для загрузки дополнительного DSDT (см. Documentation/acpi/dsdt-overriding.txt), также некоторые методы могут быть переопределены (method-customizing.txt ), но я не уверен в таблице DMAR. По крайней мере, спецификация ACPI не говорит, что можно так использовать. Я думаю, что вы можете взломать ядро ​​и попытаться сделать это, но будет ли оно восходящим?

UPDATE. О, это выглядит многообещающе: Documentation/acpi/initrd_table_override.txt