-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simpler samples please #4
Comments
I am also looking for a simple sample design. Something like taking the xdma IP xci from the sample project and doing minimal things like loopback with it. No matter what I try I end up with "!!! Unknown header type 7f" on transferring bitstream to the fpga (and doing rescan also). I have taken a post implementation checkpoint and dumped the constraints from it just to ensure that those in early.xdc are valid. They are. What else shall I be checking? Have spent several days in this state and am really at the end of my wits. |
@mayureshw "!!! Unknown header type 7f" happens when the device was on the PCIe bus, then drops off, then comes back on. You can't reprogram the bitstream while the device is on the PCIe bus and expect it to work. I've actually never seen a rescan work, although some people claimed it works for them. For rescan to work you need bios and motherboard support and most just don't implement it. Really the only reliable way to work on a PCIe bitstream is to have the bitstream loaded from flash at powerup, ready when the motherboard/bios enumerates it, and don't reset/reload the FGPA after. So build your design (with any ILA), create MCS, load into flash, reboot, debug. As far as a simpler design, the example design is about as simple as it gets. Sure you can delete some the of stuff that reads I/O. |
Let's say "mybitstream.bit" is my own design and "stock.bit" is a bitstream built from the sample project design. I am using JTAG cable to program the device. If I load, say, "mybitstream.bit" the "Unknown header type" occurs on lspci. But immediately after that if I load "stock.bit", the issue goes away. So, I think you can reprogram the device over JTAG. It is something in the design that keeps "mybitstream.bit" from working. My Linux kernel is 6.3.13_1 and I am using Void Linux. For simpler design, yes, that's precisely what I am doing. I have taken xdma configuration (xci file) from the sample project, with early and normal constraints, applied in proper order and verified that they got applied by taking a post-implementation checkpoint and writing out xdc. With this I expect that lspci merely lists the device properly. Incidentally there are two xci files for xdma, which confused me a bit: project.srcs/sources_1/bd/Top/ip/Top_xdma_0_0/Top_xdma_0_0.xci and project.srcs/sources_1/bd/Top/ip/Top_xdma_0_0_1/Top_xdma_0_0.xci Later I saw Top.bd refers to the latter, so that might be the one to pick. Following is the difference between their properties (right side being the latter one).
|
One more observation that shows that the new bitstream indeed is what lspci is reporting, I can spot a few small differences between the lspci output of the factory set device and after transferring out.bin. (I expected them to be same, but somehow there are these minor differences.) << is factory set and >> is after transferring out.bin 2c2 < Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- --- > Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- 4d3 < Latency: 0 7,8c6,7 |
My apologies if the diff output in above two posts looks a little awry. When editing it looks alright and later it messes up with the formating. |
Hi,
This project is really cool but I wasn't expecting the only sample design to be 100% schematic - it would be cool if you could add a sample "golden" top project that consists of an empty verilog top module that implements all of the signals.
Thanks. Thanks for making this cool piece of kit!
The text was updated successfully, but these errors were encountered: