From: Andy P. <at...@us...> - 2001-06-26 19:01:16
|
Update of /cvsroot/linux-vax/kernel-2.4/include/asm-vax In directory usw-pr-cvs1:/tmp/cvs-serv19188 Modified Files: mv.h ka43.h scb.h Log Message: machine check implementation Index: mv.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/mv.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- mv.h 2001/01/17 16:18:52 1.1 +++ mv.h 2001/06/26 19:01:11 1.2 @@ -30,6 +30,8 @@ void (*reboot)(void); /* If implemented, these are called from */ void (*halt)(void); /* machine_restart/_halt */ + + void (*mcheck)(void *); /* machine check handler */ void (*init_devices)(void); /* Optional */ @@ -51,8 +53,9 @@ #define MV_CONSOLE_INIT 24 #define MV_REBOOT 28 #define MV_HALT 32 -#define MV_INIT_DEVICES 36 -#define MV_CPU_TYPE_STR 40 +#define MV_MCHECK 36 +#define MV_INIT_DEVICES 40 +#define MV_CPU_TYPE_STR 44 #ifndef __ASSEMBLY__ Index: ka43.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/ka43.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ka43.h 2001/03/04 23:53:25 1.2 +++ ka43.h 2001/06/26 19:01:11 1.3 @@ -5,6 +5,8 @@ * * Taken from NetBSD * + * atp. jun 01 machine check stuff lifted from NetBSD. Thanks ragge!. + * */ #ifndef __VAX_KA43_H @@ -114,6 +116,45 @@ unsigned short pad7; unsigned short diagtme; /* Diagnostic time register */ }; + +struct ka43_mcframe { /* Format of KA43 machine check frame: */ + int mc43_bcnt; /* byte count, always 24 (0x18) */ + int mc43_code; /* machine check type code and restart bit */ + int mc43_addr; /* most recent (faulting?) virtual address */ + int mc43_viba; /* contents of VIBA register */ + int mc43_sisr; /* ICCS bit 6 and SISR bits 15:0 */ + int mc43_istate; /* internal state */ + int mc43_sc; /* shift count register */ + int mc43_pc; /* trapped PC */ + int mc43_psl; /* trapped PSL */ +}; + +#define KA43_MC_RESTART 0x00008000 /* Restart possible*/ +#define KA43_PSL_FPDONE 0x00010000 /* First Part Done */ + +static char *ka43_mctype[] = { + "no error (0)", /* Code 0: No error */ + "FPA: protocol error", /* Code 1-5: FPA errors */ + "FPA: illegal opcode", + "FPA: operand parity error", + "FPA: unknown status", + "FPA: result parity error", + "unused (6)", /* Code 6-7: Unused */ + "unused (7)", + "MMU error (TLB miss)", /* Code 8-9: MMU errors */ + "MMU error (TLB hit)", + "HW interrupt at unused IPL", /* Code 10: Interrupt error */ + "MOVCx impossible state", /* Code 11-13: Microcode errors */ + "undefined trap code (i-box)", + "undefined control store address", + "unused (14)", /* Code 14-15: Unused */ + "unused (15)", + "PC tag or data parity error", /* Code 16: Cache error */ + "data bus parity error", /* Code 17: Read error */ + "data bus error (NXM)", /* Code 18: Write error */ + "undefined data bus state", /* Code 19: Bus error */ +}; +#define MC43_MAX 19 #endif /* __ASSEMBLY */ Index: scb.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.4/include/asm-vax/scb.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- scb.h 2001/01/17 16:18:52 1.1 +++ scb.h 2001/06/26 19:01:11 1.2 @@ -74,6 +74,7 @@ #define SCB_CHMU 0x13 #define SCB_BUSERR1 0x14 #define SCB_BUSERR2 0x15 +#define SCB_MEMCORR 0x15 /* corrected read memory handler */ #define SCB_BUSERR3 0x16 #define SCB_BUSERR4 0x17 #define SCB_BUSERR5 0x18 |