Адрес в транзакции PCI транслируется IOMMU по умолчанию на платформе x86? - PullRequest
0 голосов
/ 29 ноября 2018

Я знаю, что PCI имеет функцию под названием ATS для преобразования виртуального адреса в физический адрес, но я не уверен, включен ли он по умолчанию на текущей платформе x86.

Если это так, как мне создавать виртуальные адреса?адрес и соответствующая таблица страниц в системе Linux?

Это то, что я думаю сейчас.Во-первых, DMA API, такой как pci_map_ *, вызовет драйвер intel iommu для настройки таблицы страниц и получения виртуального адреса io.Во-вторых, устройство PCI будет использовать этот виртуальный адрес io для запуска транзакции, а vt-d преобразует этот виртуальный адрес io в физический адрес.Я прав в этом?

1 Ответ

0 голосов
/ 29 ноября 2018

Пока нет процессоров Intel, поддерживающих ATS.Однако спецификация Intel VT-d доступна по адресу http://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/vt-directed-io-spec.pdf.. Она определяет, как включить ATS и как настроить таблицы страниц.Смотрите главу 4 в частности.На https://01.org/blogs/ashokraj/2018/recent-enhancements-intel-virtualization-technology-directed-i/o-intel-vt-d, есть также некоторые диаграммы и пояснения, которые могут быть полезны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...