unsigned int tt; /* Trap type code for powerpc */
unsigned char signo; /* Signal that we map this trap into */
} hard_trap_info[] = {
-#if defined(CONFIG_40x) || defined(CONFIG_BOOKE)
+#if defined(CONFIG_40x)
{ 0x100, SIGINT }, /* critical input interrupt */
{ 0x200, SIGSEGV }, /* machine check */
{ 0x300, SIGSEGV }, /* data storage */
** 0x1100 data TLB miss
** 0x1200 instruction TLB miss
*/
- { 0x2002, SIGTRAP}, /* debug */
+ { 0x2000, SIGTRAP}, /* debug */
#else
{ 0x200, SIGSEGV }, /* machine check */
{ 0x300, SIGSEGV }, /* address error (store) */
sigval = computeSignal(regs->trap);
ptr = remcomOutBuffer;
+#if defined(CONFIG_40x)
+ *ptr++ = 'S';
+ *ptr++ = hexchars[sigval >> 4];
+ *ptr++ = hexchars[sigval & 0xf];
+#else
*ptr++ = 'T';
*ptr++ = hexchars[sigval >> 4];
*ptr++ = hexchars[sigval & 0xf];
*ptr++ = ':';
ptr = mem2hex(((char *)regs) + SP_REGNUM*4, ptr, 4);
*ptr++ = ';';
+#endif
+
*ptr++ = 0;
putpacket(remcomOutBuffer);
* some location may have changed something that is in the instruction cache.
*/
kgdb_flush_cache_all();
+#if defined(CONFIG_40x)
+ strcpy(remcomOutBuffer, "OK");
+ putpacket(remcomOutBuffer);
+#endif
mtmsr(msr);
kgdb_interruptible(1);
case 's':
kgdb_flush_cache_all();
-#if defined(CONFIG_40x) || defined(CONFIG_BOOKE)
- mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) | DBCR0_IC);
+#if defined(CONFIG_40x)
regs->msr |= MSR_DE;
+ regs->dbcr0 |= (DBCR0_IDM | DBCR0_IC);
+ mtmsr(msr);
#else
regs->msr |= MSR_SE;
#endif