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
|