1 /* $Id: memreg.h,v 1.6 1996/04/25 06:13:13 davem Exp $ */ 2 #ifndef _SPARC_MEMREG_H 3 #define _SPARC_MEMREG_H 4 /* memreg.h: Definitions of the values found in the synchronous 5 * and asynchronous memory error registers when a fault 6 * occurs on the sun4c. 7 * 8 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) 9 */ 10 11 /* First the synchronous error codes, these are usually just 12 * normal page faults. 13 */ 14 15 #define SUN4C_SYNC_WDRESET 0x0001 /* watchdog reset */ 16 #define SUN4C_SYNC_SIZE 0x0002 /* bad access size? whuz this? */ 17 #define SUN4C_SYNC_PARITY 0x0008 /* bad ram chips caused a parity error */ 18 #define SUN4C_SYNC_SBUS 0x0010 /* the SBUS had some problems... */ 19 #define SUN4C_SYNC_NOMEM 0x0020 /* translation to non-existent ram */ 20 #define SUN4C_SYNC_PROT 0x0040 /* access violated pte protections */ 21 #define SUN4C_SYNC_NPRESENT 0x0080 /* pte said that page was not present */ 22 #define SUN4C_SYNC_BADWRITE 0x8000 /* while writing something went bogus */ 23 24 #define SUN4C_SYNC_BOLIXED \ 25 (SUN4C_SYNC_WDRESET | SUN4C_SYNC_SIZE | SUN4C_SYNC_SBUS | \ 26 SUN4C_SYNC_NOMEM | SUN4C_SYNC_PARITY) 27 28 /* Now the asynchronous error codes, these are almost always produced 29 * by the cache writing things back to memory and getting a bad translation. 30 * Bad DVMA transactions can cause these faults too. 31 */ 32 33 #define SUN4C_ASYNC_BADDVMA 0x0010 /* error during DVMA access */ 34 #define SUN4C_ASYNC_NOMEM 0x0020 /* write back pointed to bad phys addr */ 35 #define SUN4C_ASYNC_BADWB 0x0080 /* write back points to non-present page */ 36 37 #endif /* !(_SPARC_MEMREG_H) */