What module does the physical address to pcie bus address translation in Hikey960


#1

Hi,

What module does the physical address to pcie bus address translation in Hikey960?
When I attach a PCIE device it is map to physical address space with base address 0XF5400000, but when we see the pcie transcation from PCIE analyzer we see address with base address 0x01400000.
I want to know who is converting from 0XF5400000 to 0x01400000 before putting it on the bus? I don’t know whether its hardware or software translation, please let me know so that we can proceed further.

Thanks


#2

You mean how does a driver lookup a proper bus address from a CPU address? This is all handled with the kernel DMA API. To get a sense of the lie of the land then take a look at this kernel doc:
https://www.kernel.org/doc/Documentation/DMA-API-HOWTO.txt