Hello, I'm new at
OpenRISC list and I'm not an expert on Verilog. While searching on
the OpenRISC(OR) docs, FAQ, previous messages and also Verilog code (hard
work) I have no success on getting definitive answers to the questions I
present below. I'll appreciate very much your support.
From the OR1200 (old)
documentation and from the source code I conclude that this specific
implementation of OR1000 architecture hasn't already watchpoint/breakpoint
support (special purpose registers DVR[0-7] & DCR[0-7] ). On pg.
47 of "or1200_spec.pdf" we found the following information: "DMR2[WGB]
bits specify which watchpoints invoke breakpoint exception". I become
confused because DMR2 register works with the DVR & DCR pairs.
1- Does the actual
OR1200 implementation has any programmable way (named breakpoint or not) to
freeze the processor at any time and/or on any instruction? I'm not interested
on approaches that halt the processor using a special instruction. I really
need to stop it during the normal flow, without previously inserting special
instructions in the middle.
2- Does the solution to
1) allows us to get the processor control through its development interface?
How the outside world is notified about such event?
3- Does the current
OR1200 implementation follows the recent "SoC/OpenRISC Development Interface"
from Igor?
4- Does anyone can point
me a processor/ASIC (open source or not) that has breakpoint support and a
development interface (On Chip Debugging) based on IEEE 1149.1
JTAG similar to the one Igor specifies, with rich internal scan-chains?
(I know that Atmel has an ERC32 variant named TSC695E but ... it is very
expensive and the core isn't open sourced. Motorola also use the same OCD
method on the PowerPC. Unfortunately,
in this case the internal scan chain information is only provided to
Emulator vendors under a NDA.)
Thanks for your time and
feedback,
Luís
Santos