summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/powerpc/trap.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/powerpc/powerpc/trap.c')
-rw-r--r--sys/powerpc/powerpc/trap.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/powerpc/powerpc/trap.c b/sys/powerpc/powerpc/trap.c
index bfbd94d..0895596 100644
--- a/sys/powerpc/powerpc/trap.c
+++ b/sys/powerpc/powerpc/trap.c
@@ -400,6 +400,7 @@ trap_fatal(struct trapframe *frame)
static void
printtrap(u_int vector, struct trapframe *frame, int isfatal, int user)
{
+ uint16_t ver;
printf("\n");
printf("%s %s trap:\n", isfatal ? "fatal" : "handled",
@@ -421,6 +422,17 @@ printtrap(u_int vector, struct trapframe *frame, int isfatal, int user)
case EXC_ITMISS:
printf(" virtual address = 0x%" PRIxPTR "\n", frame->srr0);
break;
+ case EXC_MCHK:
+ ver = mfpvr() >> 16;
+#if defined(AIM)
+ if (MPC745X_P(ver))
+ printf(" msssr0 = 0x%x\n",
+ mfspr(SPR_MSSSR0));
+#elif defined(BOOKE)
+ printf(" mcsr = 0x%x\n",
+ mfspr(SPR_MCSR));
+#endif
+ break;
}
#ifdef BOOKE
printf(" esr = 0x%" PRIxPTR "\n",
OpenPOWER on IntegriCloud