Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
13 years ago

PCIe DMA not working for addresses above 4GB

HI,

I am implementing a KMDF driver for Altera Stratix4 PCIe board on Windows7 64 bit PC ( Both OS and processor are 64 bit). The devices needs that I create a Descriptor Table(DT) in a non paged memory that contains the Phy address and length of each page of the DMA buffer. Then the base physical address of this Descriptor Table is written to a device register and the device starts DMA.

I see that dma works only when phy address of both buffer and the DT are below 4GB( ie.. Highpart of the phy address is 0) . When either one of these address are above 4GB the device registers indicate that data is transferred but the data does not arrive to PC (in case of Dev to Host).

The device manual says that it is capable of 64 bit addressing. So do i need to do anything in the driver or host side to make the 64 bit addresses work?

Thanks in advance.

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    A master in SOPC Builder or Qsys can only access up to 4GB. This is due to the address width in the Avalon spec only supporting up to 32 bits.