我有一个有点不寻常的情况,我正在为一个以太网设备开发一个模拟模块。理想情况下,就寄存器集而言,模拟层应该与真实硬件完全相同。我遇到的问题是,硬件中的DMA寄存器加载了数据的DMA映射(物理)地址。我需要使用这些物理地址将数据从源设备上的Tx缓冲区复制到目标设备上的Rx缓冲区。要在模块代码中做到这一点,我需要指向虚拟内存的指针。我查看了phys_to_virt(),但我不理解手册页中的这条注释:
This function does not handle bus mappings for DMA transfers.
这是否意味着无法使用phys_to_virt()将通过dma_map_sing