4

I'm using Windriver Jungo for testing PCI express device connected to my PC. I can able to read/write memory in 8/16/32/64 bit modes and the board responding very well. But my doubt is that, according to PCI express specification we can send a TLP packet from 128 bytes to 4096 bytes. How can i achieve this transfer using driver. Now its transfer only 8 byte(64 bit mode) data. If i give more data to sent then it split the data to 8byte packets and then sent. Please clear my doubt and suggest any other driver options for PCI express in windows or Linux ?

Premjith
  • 1,128
  • 1
  • 11
  • 21

2 Answers2

2

You are trying PIO read write, not DMA. PIO read/write TLPs will have only a doubleword length data in a packet. For burst data transfers(which have data up to 4096 bytes but it will be probably limited to 128 byte by your motherboard chipset), you have to initate read/write from your PCIE device to PC, not from PC to PCIE.

Menderft
  • 41
  • 4
0

I used a windriver to communicate with a PCIE FPGA kit before, it works fine for me at any payload the program specify (128-4K). It might be the way you write to the BAR location. check if you are sending the data to the same BAR address location or different BAR address location.

fiftyplus
  • 561
  • 10
  • 18
  • hi, My memory controller is implemented in BAR0. I generated jungo driver for my device and generated sample program for VS2010. Then I'm tried write memory option and when i'm giving more data above 64bits , the data splits to 64bits at endpoint. I can view the data traffic at the endpoint through a tapping mechanism. Will u please explain the steps to test pcie. – Premjith Mar 21 '13 at 04:37
  • In the hardware side, the data suppose to be splits into 64bits data, although the load is 128Byte to 4Kbyte, byte is transferred by 64bits each time. I would suggest you to check the size of your BAR0, see if you are writing to the same BAR0 address. Maybe your data did go there as you required, it's just your tapping device is reading every PCIE data bus on every PCIE clock – fiftyplus Mar 21 '13 at 23:24
  • There is only 4 modes [8/16/32/64] are available in jungo API reference to read/write. Its not at the hardware side it splits, from the jungo driver itself there is no mode higher than 64bits. – Premjith Mar 22 '13 at 04:35