-
Notifications
You must be signed in to change notification settings - Fork 53
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
Zynq/UltraScale Ports + JTAG #117
Comments
Hey @stefanct, yes, we are definitely interested in that. We are trying to switch to fusesoc which should make adding another FPGA board (at least from the perspective of a script) much easier. Also, @timsaxe has put a lot of effort into making the IO system reconfigurable and adaptable depending on the FPGA board. Everything is still in a very early phase (for example we didn't yet change over to fusesoc). Communication-wise we do have a channel over in our Mattermost group, please join for discussion and questions. Although Github issues are also fine and maybe a bit more accessible. I completely agree with your statement about the JTAG tap and coincidentally I also want/need to look into it - having an entire processing system in there is pretty wasteful for a single JTAG tap :-). The adapter you sent looks promising, I also saw that it might be possible to directly instantiate the |
I just found this:
which seem to indicate that one can use the BSCANE2 primitives by remapping the IR register in OpenOCD to the user IR registers of the BSCANE2 primitives. What I didn’t check so far: Is the primitive available on all 7series and UltraScale+ devices :-) |
After sending it, I have also found a blog post with some interesting details: https://jsteward.moe/risc-v-hardware-design-part-b-edgeboard-series.html From that, I'd say that the primitive exists for all relevant devices. I don't currently have access to the IP core yet (I've requested a license update for that) but apparently it might be better to directly instance the primitive to avoid potential problems with the IP module(?). I cannot completely wrap my head around all of it but shouldn't at least the hardware/bascan part be independent of the debug unit (and thus outside the riscv-dbg repo)? After all it is only some wrapper to get it attached to the FPGA. (And for the record: I joined the MM server.) |
Okay after some more digging it seems we have two options which all rely on the The debug module contains two big components:
1.
|
I've drafted up an implementation of 2 here: pulp-platform/riscv-dbg#111 |
As discussed on mattermost...
|
However, I was not able to get it to work on a ZCU102 (see the merged riscv-dbg changeset) |
@stefanct |
Hi @stefanct, what is the status of this issue? |
Unchanged, I had not time to investigate how to correctly fix our implementation. The TAP on the Ultrascale+ is slightly different and would need some additional shifts as described here: https://jsteward.moe/risc-v-hardware-design-part-b-edgeboard-series.html |
Thanks @stefanct. We are moving up to "RTL Freeze" for V1.0.0 of the CORE-V-MCU so I will mark this as "won't fix" and "enhancement". If you are interested, you can help us resolve the issue for a future release of the MCU. |
For ZCU102, I solved this issue in my project: This requires upstream OpenOCD 0.11.0 or later. |
Hm, interesting but I am still stuck. I presume you are using the official openocd repo (or a binary based on that)? I initially tried the current riscv fork but that segfaults (I guess they did not merge some patch(es) from the vanilla 0.11 branch). With the current HEAD of the official repo it gets further but similar to earlier the debug module of the riscv core cannot be initialized correctly. I have attached the -d3 log with exactly your oocd config and some bscane-enabled pulpissimo bitstream that I have created in the summer. I have attached the -d3 log. Can you please post yours so that I can compare? |
I am using OpenOCD 0.11.0 upstream with Ibex RISC-V. I have not tried CORE-V (yet). I will provide you with my OpenOCD log for Ibex in a follow-up. openocd --version |
@stefanct Hello, may I ask how to configure BSCAN using OpenOCD? My chip is xczu19eg |
Hi,
I was wondering if there are any plans for other FPGA ports. I'd mostly be interested in Zedboard and ZCU102.
In the past these ports (and softcores as standalone projects in general) have been a bit annoying because you had to use an external JTAG programmer since the on-board USB-JTAG was only connected to the ARM CPU (PS). I am currently evaluating if it would be possible to get rid of that with an IP core xilinx added to vivado 2019.2 (I think... hard do determine with Xilinx "documentation"): https://www.xilinx.com/products/intellectual-property/bscan-to-jtag-converter.html Does anybody have some insights into that?
Also, is there any communication channel/mailing list used specifically for core-v mcu? is there a openhwgroup irc channel?
The text was updated successfully, but these errors were encountered: