-
Notifications
You must be signed in to change notification settings - Fork 212
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
Upgrade on-chip-debugger #463
Conversation
I am looking forward to testing this! Thank you for your amazing efforts on
this project!
|
Park loop now only requires 16 words ROM
* reduced address space occupied by OCD from 512 bytes to 256 bytes
The CPU hast to "ack" that it is halted all the time while running the park loop code.
Hi,
If I manually set (in neorv32_debug_dm.vhd) the version number to 2, then I got the following error:
Version 1.7.9 works fine, |
Hey @stokdam!
I assume you are using some FPGA-specifc JTAG tap, right? However, you could still use some FPGA pins to connect an external JTAG adapter.
Seems like I was way too optimistic there 😅 The main difference is that that the DM's |
The point is that only FPGA programming logic is directly exposed to "raw" JTAG. In order to access user instantiated modules, they developed a tunneling protocol which is implemented inside the openocd binary they distribute (I'm pretty sure there is a GPL violation there...). Unfortunately, using other FPGA pins is not an option. |
Oh I see. I know this concept from Intel and Xilinx FPGAs. Good to hear that the Microsemi approach works so seamlessly - especially the Xilinx approach can be quite tricky... 😅 Anyway, it should not be too hard to re-add the missing DM register(s) that seems to be causing this backward-incompatibility issue. From a hardware point of view, this should not add too much additional logic, so I would be fine with this. I can open a PR to work on this if you like, but you would be the one who needs to test the modifications 😉 |
If there is not any other major incompatibility I'm fine. Wouldn't be better to stick with 0.13.2 at the moment? 1.0 became stable just a couple of months ago, and it is still not approved as standard. |
Good point! I think the best solution would be adding a new generic to select the actual version. I'll start a PR for this. |
This PR upgrades the NEORV32 on-chip debugger (OCD) to debug spec. version 1.0, which is fully backwards-compatible to version 0.13.
This PR also provides some major optimizations: