We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Participant mars_op
Registered: ‎08-29-2018

HOW to translate 64 bit linux vitual address to 32 dma address

Hi everyone , recently I am trying to develop a block device driver, in which I need to extract the 32 dma address from BIO struct and transfer it to RPU. Here is the problem, I can get the vitual address of data in BIO and easily translate it to physical address(such as __pa(), function translate vitual address to physical address), but the physical address I got was over 32 bit, such as 0x87af38000. I think it was kind of AXI high memory, but all I wanted is just a 32 physical address, or dma address, which means RPU can solve it.

So can anyone tell me what does the address 0x87af38000 mean? I am sure it was a physical address, but where it map in DDR range (0x0000 0000 to 0xFFFF FFFF)


0 Kudos