patch-2.3.99-pre6 linux/include/asm-ia64/sal.h
Next file: linux/include/asm-ia64/semaphore.h
Previous file: linux/include/asm-ia64/ptrace_offsets.h
Back to the patch index
Back to the overall index
- Lines: 128
- Date:
Fri Apr 21 15:21:24 2000
- Orig file:
v2.3.99-pre5/linux/include/asm-ia64/sal.h
- Orig date:
Thu Feb 10 17:11:20 2000
diff -u --recursive --new-file v2.3.99-pre5/linux/include/asm-ia64/sal.h linux/include/asm-ia64/sal.h
@@ -12,6 +12,8 @@
* Copyright (C) 1999 Srinivasa Prasad Thirumalachar <sprasad@sprasad.engr.sgi.com>
*
* 99/09/29 davidm Updated for SAL 2.6.
+ * 00/03/29 cfleck Updated SAL Error Logging info for processor (SAL 2.6)
+ * (plus examples of platform error info structures from smariset @ Intel)
*/
#include <linux/config.h>
@@ -274,8 +276,6 @@
} slpi_bus_check_info[MAX_BUS_ERRORS];
pal_min_state_area_t slpi_min_state_area;
- u64 slpi_bank1_gr[16];
- u64 slpi_bank1_nat_bits;
u64 slpi_br[8];
u64 slpi_cr[128];
u64 slpi_ar[128];
@@ -283,6 +283,87 @@
u64 slpi_fr[128];
} sal_log_processor_info_t;
+/* platform error log structures */
+typedef struct platerr_logheader {
+ u64 nextlog; /* next log offset if present */
+ u64 loglength; /* log length */
+ u64 logsubtype; /* log subtype memory/bus/component */
+ u64 eseverity; /* error severity */
+} ehdr_t;
+
+typedef struct sysmem_errlog {
+ ehdr_t lhdr; /* header */
+ u64 vflag; /* valid bits for each field in the log */
+ u64 addr; /* memory address */
+ u64 data; /* memory data */
+ u64 cmd; /* command bus value if any */
+ u64 ctrl; /* control bus value if any */
+ u64 addrsyndrome; /* memory address ecc/parity syndrome bits */
+ u64 datasyndrome; /* data ecc/parity syndrome */
+ u64 cacheinfo; /* platform cache info as defined in pal spec. table 7-34 */
+} merrlog_t;
+
+typedef struct sysbus_errlog {
+ ehdr_t lhdr; /* linkded list header */
+ u64 vflag; /* valid bits for each field in the log */
+ u64 busnum; /* bus number in error */
+ u64 reqaddr; /* requestor address */
+ u64 resaddr; /* responder address */
+ u64 taraddr; /* target address */
+ u64 data; /* requester r/w data */
+ u64 cmd; /* bus commands */
+ u64 ctrl; /* bus controls (be# &-0) */
+ u64 addrsyndrome; /* addr bus ecc/parity bits */
+ u64 datasyndrome; /* data bus ecc/parity bits */
+ u64 cmdsyndrome; /* command bus ecc/parity bits */
+ u64 ctrlsyndrome; /* control bus ecc/parity bits */
+} berrlog_t;
+
+/* platform error log structures */
+typedef struct syserr_chdr { /* one header per component */
+ u64 busnum; /* bus number on which the component resides */
+ u64 devnum; /* same as device select */
+ u64 funcid; /* function id of the device */
+ u64 devid; /* pci device id */
+ u64 classcode; /* pci class code for the device */
+ u64 cmdreg; /* pci command reg value */
+ u64 statreg; /* pci status reg value */
+} chdr_t;
+
+typedef struct cfginfo {
+ u64 cfgaddr;
+ u64 cfgval;
+} cfginfo_t;
+
+typedef struct sys_comperr { /* per component */
+ ehdr_t lhdr; /* linked list header */
+ u64 vflag; /* valid bits for each field in the log */
+ chdr_t scomphdr;
+ u64 numregpair; /* number of reg addr/value pairs */
+ cfginfo_t cfginfo;
+} cerrlog_t;
+
+typedef struct sel_records {
+ ehdr_t lhdr;
+ u64 seldata;
+} isel_t;
+
+typedef struct plat_errlog {
+ u64 mbcsvalid; /* valid bits for each type of log */
+ merrlog_t smemerrlog; /* platform memory error logs */
+ berrlog_t sbuserrlog; /* platform bus error logs */
+ cerrlog_t scomperrlog; /* platform chipset error logs */
+ isel_t selrecord; /* ipmi sel record */
+} platforminfo_t;
+
+/* over all log structure (processor+platform) */
+
+typedef union udev_specific_log {
+ sal_log_processor_info_t proclog;
+ platforminfo_t platlog;
+} devicelog_t;
+
+
#define sal_log_processor_info_psi_valid slpi_valid.spli_psi
#define sal_log_processor_info_cache_check_valid slpi_valid.spli_cache_check
#define sal_log_processor_info_tlb_check_valid slpi_valid.spli_tlb_check
@@ -303,15 +384,14 @@
ushort slh_log_type; /* Type of log (0 - cpu ,1 - platform) */
ushort slh_log_sub_type; /* SGI specific sub type */
sal_log_timestamp_t slh_log_timestamp; /* Timestamp */
- u64 slh_log_dev_spec_info; /* For processor log this field will
- * contain an area architected for all
- * IA-64 processors. For platform log
- * this field will contain information
- * specific to the hardware
- * implementation.
- */
} sal_log_header_t;
+/* SAL PSI log structure */
+typedef struct psilog
+{
+ sal_log_header_t sal_elog_header;
+ devicelog_t devlog;
+} ia64_psilog_t;
/*
* Now define a couple of inline functions for improved type checking
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)