Насколько мне известно, чтобы иметь возможность общаться с устройством PCIe только с помощью mmio, необходимо следующее: это произойдет:
- Пространство конфигурации PCIe должно быть каким-то образом сопоставлено с mmio.
И что в настоящее время существует нечто под названием ECAM, которое резервирует 256 МБ для всех BDF.
Значит, я не смогу сопоставить пространство конфигурации с произвольным физическим адресом?< /p>
- После пространства конфигурации необходимо также сопоставить пространство PCie BAR.
Что, если я захочу изменить это сопоставление или горячее подключение, как будет назначен физический адрес?
Как это работает на x86?
Я бы сделал это нужно убедиться, что новые физические адреса не конфликтуют с уже назначенными?
Я знаю, как написать драйвер pcie, но эти низкоуровневые детали почему-то очень сложно найти, особенно документы Intel о том, как настроить сопоставления PCIe и mmio.
Подробнее здесь: https://stackoverflow.com/questions/790 ... tion-space