Closed nazarihome closed 4 years ago
I'm a bit unsure about this, it was a while since I looked into it and it's not well tested. I assume you updated the size of the array from 5 up to your value.
You can try to add a few blanks, 10 or so, 64'h00000000_00000000,
in-between if your code and the last line if it has something with the core needing a few CLKs to come out of reset before receiving your TLPs.
Another explanation might be that it's indeed sent; but overwritten by the computer some time afterwards.
There is also an option to transmit static TLP a set number of times with variable retransmit waits. That functionality may be a bit more suitable.
Play around with it from within a re-compiled version of PCILeech/LeechCore first; set the registers correctly and then enable by writing to the RETRANSMIT COUNT register.
Once it's working just hard code it into the FPGA bitstream.
The other packets is just PCILeech asking the device for version numbers on the bitstream and such. For most functions (except the tlp command) it also tries to auto-detect max memory which is quite a few packets...
I assume you managed to fix this issue somehow. If not, please reopen the issue.
First, I'd like to thank you for this great piece of work! Please forgive me if my question is too naive. I am trying to use pcileech-fpga code to perform some memory writes without requests from control computer. As far as I understand right now pcileech_com.sv has this code for initial tlps.
suppose that I want to perform a memory write at initialization same as this:
pcileech tlp -in 60000002090080ff00000000c00000000000000012345678 -device rawudp://ip=192.168.0.222 -vvv
To my understanding of device_fpga.c, I should add this to bottom of initial_rx:
But Is that all I need to add? because when I check the address, the data is not written though. I have realized that when I run
pcileech tlp -in 60000002090080ff00000000c00000000000000012345678 -device rawudp://ip=192.168.0.222 -vvv
multiple UDP packets are sent before and after the packet with this data. I was wondering if I am missing something and I need to send some commands before and after this tlp packet as well.