UPGRADE YOUR BROWSER

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!

cancel
Showing results for 
Search instead for 
Did you mean: 
Participant mars_op
Participant
150 Views
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