i have design a X4 pcie endpoint device based on Quartus pci express ip V7.2.when i plug the device to the x16 pice slot of my dell optiplex 620 host, the device can only be recognized as an x1 pcie deivce. additionally, the device can only transmit a memwr pkt of 128B to host even if i had set the max_payload_size to be 2KB at the megawizard. why ? is it any wrong?
--- Quote Start --- The 128B is typical limited of the root complex chipset. Check the motherboard chipset datasheet to confirm. --- Quote End --- it is mean that if the root complex only support max_payload_size of 128B ,then at the configure cycle, it will change the EP device's control register to set it's max_payload_size to 128B,right?
Seaman, did you resolve the x1 vs x4 issue? I am facing the same proble with an x8 pcie core. When I plug it into x16 pcie slot of my dell optiplex 775 host, the device is recognized as an x1 pcie deivce.thanks
--- Quote Start --- Seaman, did you resolve the x1 vs x4 issue? I am facing the same proble with an x8 pcie core. When I plug it into x16 pcie slot of my dell optiplex 775 host, the device is recognized as an x1 pcie deivce. thanks --- Quote End --- Look at the datasheet of your Intel Chip. You'll see that some chipsets support either x16 or x1 but not x4. Intel 965 Chipset Does support x4 in x16. Intel 945 doesn't.
mbsharan, unfortunately there is no solution since its either a restriction imposed by processor chipset or by bios. I have contacted Dell technical support regaridng this matter, but have not received any encouraging response. Only positive news I can offer is that so far I have found it to work on Optiplex 760 (i.e. all 8 lanes working in x16 slot). I would also like to point out that the performance was sub-linear, but I suspect that is due to OS (I am using Windows XP) and system memory issues.Good luck! Piyush
Piyush,Thanks for the information. It was Dell motherboard(360) chipset issue which supports x1 lane only on x16 connector. We also tested the same board on HP machine and all x8 lanes are detected. Throughput was around 8Gbps with payload size of 128Bytes. Not sure how to change payload size to 256Bytes. Thanks.
You are welcome. I think most standard issue OS and chipset support only 128 bytes payload. So, there is no easy way to bypass that constraint. On other hand, you can try to increase max_outstanding_read_size and chained DMA operation (if not already) to improve your performance.