1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * linux/include/asm-alpha/err_common.h 4 * 5 * Copyright (C) 2000 Jeff Wiedemeier (Compaq Computer Corporation) 6 * 7 * Contains declarations and macros to support Alpha error handling 8 * implementations. 9 */ 10 11 #ifndef __ALPHA_ERR_COMMON_H 12 #define __ALPHA_ERR_COMMON_H 1 13 14 /* 15 * SCB Vector definitions 16 */ 17 #define SCB_Q_SYSERR 0x620 18 #define SCB_Q_PROCERR 0x630 19 #define SCB_Q_SYSMCHK 0x660 20 #define SCB_Q_PROCMCHK 0x670 21 #define SCB_Q_SYSEVENT 0x680 22 23 /* 24 * Disposition definitions for logout frame parser 25 */ 26 #define MCHK_DISPOSITION_UNKNOWN_ERROR 0x00 27 #define MCHK_DISPOSITION_REPORT 0x01 28 #define MCHK_DISPOSITION_DISMISS 0x02 29 30 /* 31 * Error Log definitions 32 */ 33 /* 34 * Types 35 */ 36 37 #define EL_CLASS__TERMINATION (0) 38 # define EL_TYPE__TERMINATION__TERMINATION (0) 39 #define EL_CLASS__HEADER (5) 40 # define EL_TYPE__HEADER__SYSTEM_ERROR_FRAME (1) 41 # define EL_TYPE__HEADER__SYSTEM_EVENT_FRAME (2) 42 # define EL_TYPE__HEADER__HALT_FRAME (3) 43 # define EL_TYPE__HEADER__LOGOUT_FRAME (19) 44 #define EL_CLASS__GENERAL_NOTIFICATION (9) 45 #define EL_CLASS__PCI_ERROR_FRAME (11) 46 #define EL_CLASS__REGATTA_FAMILY (12) 47 # define EL_TYPE__REGATTA__PROCESSOR_ERROR_FRAME (1) 48 # define EL_TYPE__REGATTA__SYSTEM_ERROR_FRAME (2) 49 # define EL_TYPE__REGATTA__ENVIRONMENTAL_FRAME (3) 50 # define EL_TYPE__REGATTA__TITAN_PCHIP0_EXTENDED (8) 51 # define EL_TYPE__REGATTA__TITAN_PCHIP1_EXTENDED (9) 52 # define EL_TYPE__REGATTA__TITAN_MEMORY_EXTENDED (10) 53 # define EL_TYPE__REGATTA__PROCESSOR_DBL_ERROR_HALT (11) 54 # define EL_TYPE__REGATTA__SYSTEM_DBL_ERROR_HALT (12) 55 #define EL_CLASS__PAL (14) 56 # define EL_TYPE__PAL__LOGOUT_FRAME (1) 57 # define EL_TYPE__PAL__EV7_PROCESSOR (4) 58 # define EL_TYPE__PAL__EV7_ZBOX (5) 59 # define EL_TYPE__PAL__EV7_RBOX (6) 60 # define EL_TYPE__PAL__EV7_IO (7) 61 # define EL_TYPE__PAL__ENV__AMBIENT_TEMPERATURE (10) 62 # define EL_TYPE__PAL__ENV__AIRMOVER_FAN (11) 63 # define EL_TYPE__PAL__ENV__VOLTAGE (12) 64 # define EL_TYPE__PAL__ENV__INTRUSION (13) 65 # define EL_TYPE__PAL__ENV__POWER_SUPPLY (14) 66 # define EL_TYPE__PAL__ENV__LAN (15) 67 # define EL_TYPE__PAL__ENV__HOT_PLUG (16) 68 69 union el_timestamp { 70 struct { 71 u8 second; 72 u8 minute; 73 u8 hour; 74 u8 day; 75 u8 month; 76 u8 year; 77 } b; 78 u64 as_int; 79 }; 80 81 struct el_subpacket { 82 u16 length; /* length of header (in bytes) */ 83 u16 class; /* header class and type... */ 84 u16 type; /* ...determine content */ 85 u16 revision; /* header revision */ 86 union { 87 struct { /* Class 5, Type 1 - System Error */ 88 u32 frame_length; 89 u32 frame_packet_count; 90 } sys_err; 91 struct { /* Class 5, Type 2 - System Event */ 92 union el_timestamp timestamp; 93 u32 frame_length; 94 u32 frame_packet_count; 95 } sys_event; 96 struct { /* Class 5, Type 3 - Double Error Halt */ 97 u16 halt_code; 98 u16 reserved; 99 union el_timestamp timestamp; 100 u32 frame_length; 101 u32 frame_packet_count; 102 } err_halt; 103 struct { /* Clasee 5, Type 19 - Logout Frame Header */ 104 u32 frame_length; 105 u32 frame_flags; 106 u32 cpu_offset; 107 u32 system_offset; 108 } logout_header; 109 struct { /* Class 12 - Regatta */ 110 u64 cpuid; 111 u64 data_start[1]; 112 } regatta_frame; 113 struct { /* Raw */ 114 u64 data_start[1]; 115 } raw; 116 } by_type; 117 }; 118 119 #endif /* __ALPHA_ERR_COMMON_H */ 120