Толи я уже устал, толи не пойму вопроса.
Сразу скажу что с acpica я не работал.
По идеи в нём должно быть всё что нужно и ничего лишнего дёргать не надо.
Цитата:
Чтобы связать устройство с нужным irq, достаточно ли просто прописать соответствующий pin и irq в соответствующие ячейки конфигурационного пространства или нужно еще какие-то методы acpi дергать?
Нет не достаточно. Это просто ячейки памяти, а не регистры или триеры. Они не приводят к непосредственным изменениям. Но косвенно вполне могут, старые драйвера любят читают эти значения чтобы узнать свой номер прерывания вместо вызова API OS. Новые драйвера думаю отучились от этого.
Цитата:
крайней мере на том железе, что у меня есть под рукой). Проблема возникает с VIrtualBox в режиме эмуляции ICH9, а конкретно нахожу в ACPI корневой pci мост (он же pci-to-host), считываю его адрес, но в конфигурационном пространстве его нет (читаются FF), причем все дочернее его устройства на шине видны (если предположить что для pci-to-host адрес шины всегда = 0).
Кратко истории. С появления PCIE в архитектуре вводится xAPIC. На мосте PCIE расположен свой xAPIC. Поэтому и потребовалась настройка мостов. До PCIE было ещё несколько разновидностей APIC которые программировались по своему. Но суть была в том что был один центральный IOAPIC и несколько LAPIC. Насколько помню в acpica IOAPIC привязан к корневому (нуливому) мосту.
Так что советую более детально изучить как работать с acpica.