Как IOMMU отображает IOVA, поступающую с разных фериферий через DMA - PullRequest
0 голосов
/ 14 апреля 2020

Я так долго пытался получить информацию об этом и до сих пор ничего не получил solid. Итак, я узнал, что IOMMU преобразует IOVA, предоставленный DMA, в физический адрес и читает или записывает из / в память. У меня следующие вопросы:

1) Хранит ли IOMMU разные карты памяти для каждого устройства? Видит ли каждое устройство диапазон адресов, начинающийся с нуля, в своем виртуальном адресном пространстве

2) Где хранятся эти карты памяти IOMMU?

3) Как IOMMU узнает о том, с какого устройства поступает запрос, если каждое устройство видит виртуальный адрес, начинающийся с нуля, в своем виртуальном адресном пространстве?

4) Передает ли устройство также определенный идентификатор устройства c ID или что-то, что IOMMU распознает и использует это для отмены отображения IOVA и защиты других адресов памяти, видимых или записываемых этим устройством?

...