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: 
Observer inftimer
Observer
9,255 Views
Registered: ‎09-15-2013

pcie address map in 64bit system

HI,ALL!!

        on my  64  bit system (2008 server ),I  need to intall 64bit version windriver , then  I  malloc a DMA memory to  receive data from DMA in pcie card.but  the   address  size  is   bigger than  the range of  32bit integer can express;    when  I want to tell  Microblaze the address , I need to write a long long integer into DDR,but  how do i use this value to tell pcie brige , when the dma  move data  on PLB bus(32bit ), the data will go to the  64bit  address on PC 's memory ; thanks very much.!  

0 Kudos
3 Replies
Explorer
Explorer
9,229 Views
Registered: ‎12-01-2010

Re: pcie address map in 64bit system

This is a driver limitation.  I encountered the same problem.  The largest chunk of continuous memory you can address is maxed out at 4GB, due to the 32bit integer.

 

If you need more than 4GB, you will need to allocate multiple seperate sections of memory.

0 Kudos
Observer inftimer
Observer
9,219 Views
Registered: ‎09-15-2013

Re: pcie address map in 64bit system

thanks for your reply;

        in fact ,i only need 5M SIZE memory, but in 64 bit system. the malloc memory start form 0x100000001;  but in my fpga project ,only  IPIFBAR2PCIBAR register can set to 64bit , the rest is 32bit register , I does not kown how to tell DMA the dest   address is in 32bit integer range ,in fact  ,the PC ' s   pcie  address is a 64bit integer;can you help me!!thanks very much

0 Kudos
Explorer
Explorer
9,179 Views
Registered: ‎06-22-2011

Re: pcie address map in 64bit system

It depends on whether 3DW ot 4DW TLPs the DMA engine will generate.

If only 3DW TLPs, the driver should allocate memory into lower 4G and only 32-bit address used.

If 4DW TLP used, DMA engine should get the upper 32-bit address by some method.

 

Xiang Chao

0 Kudos