2012/11/2 Marek Czerski <[email protected]>:
>> This is a known problem, a (dirty) workaround is to just disable the
>> CRC checking:
>
> ok, it helped.
>
>> >> What I can see when using the simulation with GDB over VPI (and the
>> >> claasic dbg_if) is that the instruction replaced by the TRAP (for sw
>> >> breakpoint) never gets executed (see waveform).
>
>
> I can confirm this behavior both in simulation (dbg_if + VPI) and on
> hardware with adv_dbg_if + adv_jtag_bridge.
>
>>
>> >> I did the same test on my hardware platform with openOCD + adv_dbg_if
>> >> and r6 gets updated....
>
>
> With adv_dbg_if + OpneOCD it works as Franck said.
>
> It seems that the issue is related with the software since adv_jtag_bridge
> can properly sigle-step through jump instructions and OpenOCD can properly
> handle software breakpoints.
>
> --
> mgr inż. Marek Czerski
> +48 696 842 686
>

One of the problem is showed on waveforms I posted. The instruction
trapped doesn't get executed after the breakpoint is removed.

I have a fix almost ready. I checked for a debug unstall condition
plus a trap condition in or1200_du (dbg_stall && |except_stop). Then,
when this event occur, I flush the entire pipeline (in or1200_ctrl)
and set the pc to npc in or1200_genpc (which is equal to the trapped
instruction address).

Franck.
_______________________________________________
OpenRISC mailing list
[email protected]
http://lists.openrisc.net/listinfo/openrisc

Reply via email to