У меня есть несколько необычная ситуация, когда я разрабатываю модуль моделирования для устройства Ethernet. В идеале, уровень моделирования будет просто идентичен реальному оборудованию в отношении набора регистров. Проблема, с которой я столкнулся, заключается в том, что регистры DMA в аппаратном обеспечении загружаются с помощью DMA-сопоставления (физического) адреса данных. Мне нужно использовать эти физические адреса для копирования данных из буфера Tx на исходном устройстве в буфер Rx на целевом устройстве. Для этого в модульном коде мне нужны указатели на виртуальную память. Я посмотрел на phys_to_virt(), и я не понимаю, этот комментарий на странице человека:Преобразование сопоставления DMA в виртуальный адрес
This function does not handle bus mappings for DMA transfers.
Означает ли это, что физический адрес, который извлекается с помощью dma_map_single не может быть преобразован обратно в виртуальный адрес, используя phys_to_virt() ? Есть ли другой способ сделать это преобразование?
Спасибо за ссылку на слайды. Я взгляну. – jhd1013