Forum Discussion

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

PCIe Payload Length

Hi

According to the PCIe spec, the TLP payload is 4kbytes. PCIe provided by Altera have some different types of specs which range from 128bytes to 4kbytes.

I have tried to use Jungo driver to transmit some data and capture it by analyzer. What i find out is TLP length is always 1(32 bit) or 2(64 bit) no matter how big size of your payload. If you have chunk of data more than 32 bit, it will divided into several packet with TLP length of 1. It is kind of memory write 32.

1. I wonder how to correlate 32 bit transfer with the 4kbytes?

2. Is the limitation caused by the driver?

3. How can i transmit TLP length of 4kbytes?

4. If i transmit the data from the downstream to upstream, it it possible to transfer 4kbytes?

Pls advice. Thanks

3 Replies

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

    To do long PCIe transfers you have to use a dma controller that is linked with the PCIe master - nothing else can actually tell the PCIe block to generate a longer TLP.

    As you may have noticed PCIe isn't 'express' in any sense unless you are using long TLP.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thanks for your info. Do you the mean dma in hardware side? Can it be dma on the pcie driver side?

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

    I'm not sure what you mean!

    dma is hardware, a driver is needed to write the dma controller registers to request the transfer....