gdb on e500mc platforms

Sandeep Kumar sandeep.gopalpet at gmail.com
Tue Mar 20 10:55:17 UTC 2012


HI all,

We are facing an issue wrt debug interrupts on a E500MC platform from
Freescale.

The int_debug handler defined in trap_subr.S was for non e500mc platforms
where CSSR0/CSSR1 were used.
But in case of e500mc, they have defined some additional debug registers
DBSRR0/DBSRR1 for handling the debug exceptions.
Also instead of using a "rfci" we needed to use "rfdi".

We made these basic changes for the int_debug handler. But after these
basic changes, we observed some issues while trying to gdb some daemons
1. when we set a break point and then 'continue' from gdb,  we were hitting
the breakpoint but then after that if we do a 'continue' again, we were
hitting the same breakpoint.
    i believe we were not able to restore the pc properly (rather we might
have interpreted the srr0 value incorrectly)
2. instead of 'continue' from gdb, even when we tried doing 'single step'
execution, we never proceeded (this  issue could be same as 1);

Has anyone tried gdb on e500mc platforms ? If so, what sort of changes made
it work ?

Can some one help us understanding the core difference interms of debug
interrupt handling in e500mc and e500v2.

Is there a way to treat Debug exception as critical exception on e500mc ?

--
Thanks
Sandeep


More information about the freebsd-ppc mailing list