]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - cpu/mpc5xxx/traps.c
Merge with /home/wd/git/u-boot/custodian/u-boot-arm
[karo-tx-uboot.git] / cpu / mpc5xxx / traps.c
index 5d4339452306eade9ff3d604eabe0cc70a5c7494..2ee782b9c86b3f4b2c641638f8e21df5cbd9944d 100644 (file)
@@ -5,6 +5,7 @@
  *
  * Modified by Cort Dougan (cort@cs.nmt.edu)
  * and Paul Mackerras (paulus@cs.anu.edu.au)
+ * fixed Machine Check Reasons by Reinhard Meyer (r.meyer@emk-elektronik.de)
  *
  * (C) Copyright 2000-2003
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
@@ -130,19 +131,20 @@ MachineCheckException(struct pt_regs *regs)
        printf("Machine check in kernel mode.\n");
        printf("Caused by (from msr): ");
        printf("regs %p ",regs);
-       switch( regs->msr & 0x0000F000)
+       /* refer to 603e Manual (MPC603EUM/AD), chapter 4.5.2.1 */
+       switch( regs->msr & 0x000F0000)
        {
-       case (1<<12) :
+       case (0x80000000>>12) :
                printf("Machine check signal - probably due to mm fault\n"
                        "with mmu off\n");
                break;
-       case (1<<13) :
+       case (0x80000000>>13) :
                printf("Transfer error ack signal\n");
                break;
-       case (1<<14) :
+       case (0x80000000>>14) :
                printf("Data parity signal\n");
                break;
-       case (1<<15) :
+       case (0x80000000>>15) :
                printf("Address parity signal\n");
                break;
        default: