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: 
Visitor sharathm@535
Visitor
1,151 Views
Registered: ‎08-20-2018

PCIe TLP Maximum payload size

Jump to solution

Hello,

I'm using Kintex-7 FPGA in my data logging board which is to be plugged into the PCIe slot of the PC for logging of data into the hard disk.

I've generated a  7 Series PCIe IP Core from the IP Catolog in Vivado 2017.2, wherein the Maximum Payload Size is selected as 1024 bytes. But when I try to send more than 256 bytes in a TLP packet, say 512 bytes, the PC hangs as soon as I start transmitting the data. Well, now my question is why is the PC hanging when i send the 512 bytes which is half of the maximum payload size?

Please do help me with this issue, I'd like to provide any further details required to help you give me a solution to this issue.

Thanks and Regards,

Sharath

 

0 Kudos
1 Solution

Accepted Solutions
Moderator
Moderator
1,111 Views
Registered: ‎02-16-2010

Re: PCIe TLP Maximum payload size

Jump to solution

sharathm@535

Can you check if the host machine can support Maximum Payload Size (MPS) of 1024 bytes? 

Also, check at what MPS value the link has been enumerated with the host. You can check this by running "lspce -xxxvvv" command.

 

------------------------------------------------------------------------------
Don't forget to reply, give kudo and accept as solution
------------------------------------------------------------------------------
4 Replies
Moderator
Moderator
1,112 Views
Registered: ‎02-16-2010

Re: PCIe TLP Maximum payload size

Jump to solution

sharathm@535

Can you check if the host machine can support Maximum Payload Size (MPS) of 1024 bytes? 

Also, check at what MPS value the link has been enumerated with the host. You can check this by running "lspce -xxxvvv" command.

 

------------------------------------------------------------------------------
Don't forget to reply, give kudo and accept as solution
------------------------------------------------------------------------------
Scholar markcurry
Scholar
1,101 Views
Registered: ‎09-16-2009

Re: PCIe TLP Maximum payload size

Jump to solution

Sharath,

Just to add some details onto Venkata's response - when you set the "Maximum Payload Size" in the Vivado tools to configure what your IP supports, you're only configuring the maximum payload size that the endpoint ADVERTISES to the host that it can support.  The actual value for maximum payload sizes is negotiated between the root complex and endpoint.  Quite often this negotiated value is LESS than what the IP advertises as it's maximum allowed payload size.

Your system's response to the large packets definitely sound to me like you're forming a packet with larger size that is supported.

As Venkata noted, you can determine the negotiated max payload size via the lspci command

Regards,

Mark

Visitor sharathm@535
Visitor
1,025 Views
Registered: ‎08-20-2018

Re: PCIe TLP Maximum payload size

Jump to solution

Hello Venkat,

Thank you for the solution. 

0 Kudos
Visitor sharathm@535
Visitor
1,024 Views
Registered: ‎08-20-2018

Re: PCIe TLP Maximum payload size

Jump to solution
Thanks for sharing your knowledge and helping me find the solution.
0 Kudos