1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2024b246eSLinus Torvalds /* 3024b246eSLinus Torvalds * linux/include/asm-alpha/err_common.h 4024b246eSLinus Torvalds * 5024b246eSLinus Torvalds * Copyright (C) 2000 Jeff Wiedemeier (Compaq Computer Corporation) 6024b246eSLinus Torvalds * 7024b246eSLinus Torvalds * Contains declarations and macros to support Alpha error handling 8024b246eSLinus Torvalds * implementations. 9024b246eSLinus Torvalds */ 10024b246eSLinus Torvalds 11024b246eSLinus Torvalds #ifndef __ALPHA_ERR_COMMON_H 12024b246eSLinus Torvalds #define __ALPHA_ERR_COMMON_H 1 13024b246eSLinus Torvalds 14024b246eSLinus Torvalds /* 15024b246eSLinus Torvalds * SCB Vector definitions 16024b246eSLinus Torvalds */ 17024b246eSLinus Torvalds #define SCB_Q_SYSERR 0x620 18024b246eSLinus Torvalds #define SCB_Q_PROCERR 0x630 19024b246eSLinus Torvalds #define SCB_Q_SYSMCHK 0x660 20024b246eSLinus Torvalds #define SCB_Q_PROCMCHK 0x670 21024b246eSLinus Torvalds #define SCB_Q_SYSEVENT 0x680 22024b246eSLinus Torvalds 23024b246eSLinus Torvalds /* 24024b246eSLinus Torvalds * Disposition definitions for logout frame parser 25024b246eSLinus Torvalds */ 26024b246eSLinus Torvalds #define MCHK_DISPOSITION_UNKNOWN_ERROR 0x00 27024b246eSLinus Torvalds #define MCHK_DISPOSITION_REPORT 0x01 28024b246eSLinus Torvalds #define MCHK_DISPOSITION_DISMISS 0x02 29024b246eSLinus Torvalds 30024b246eSLinus Torvalds /* 31024b246eSLinus Torvalds * Error Log definitions 32024b246eSLinus Torvalds */ 33024b246eSLinus Torvalds /* 34024b246eSLinus Torvalds * Types 35024b246eSLinus Torvalds */ 36024b246eSLinus Torvalds 37024b246eSLinus Torvalds #define EL_CLASS__TERMINATION (0) 38024b246eSLinus Torvalds # define EL_TYPE__TERMINATION__TERMINATION (0) 39024b246eSLinus Torvalds #define EL_CLASS__HEADER (5) 40024b246eSLinus Torvalds # define EL_TYPE__HEADER__SYSTEM_ERROR_FRAME (1) 41024b246eSLinus Torvalds # define EL_TYPE__HEADER__SYSTEM_EVENT_FRAME (2) 42024b246eSLinus Torvalds # define EL_TYPE__HEADER__HALT_FRAME (3) 43024b246eSLinus Torvalds # define EL_TYPE__HEADER__LOGOUT_FRAME (19) 44024b246eSLinus Torvalds #define EL_CLASS__GENERAL_NOTIFICATION (9) 45024b246eSLinus Torvalds #define EL_CLASS__PCI_ERROR_FRAME (11) 46024b246eSLinus Torvalds #define EL_CLASS__REGATTA_FAMILY (12) 47024b246eSLinus Torvalds # define EL_TYPE__REGATTA__PROCESSOR_ERROR_FRAME (1) 48024b246eSLinus Torvalds # define EL_TYPE__REGATTA__SYSTEM_ERROR_FRAME (2) 49024b246eSLinus Torvalds # define EL_TYPE__REGATTA__ENVIRONMENTAL_FRAME (3) 50024b246eSLinus Torvalds # define EL_TYPE__REGATTA__TITAN_PCHIP0_EXTENDED (8) 51024b246eSLinus Torvalds # define EL_TYPE__REGATTA__TITAN_PCHIP1_EXTENDED (9) 52024b246eSLinus Torvalds # define EL_TYPE__REGATTA__TITAN_MEMORY_EXTENDED (10) 53024b246eSLinus Torvalds # define EL_TYPE__REGATTA__PROCESSOR_DBL_ERROR_HALT (11) 54024b246eSLinus Torvalds # define EL_TYPE__REGATTA__SYSTEM_DBL_ERROR_HALT (12) 55024b246eSLinus Torvalds #define EL_CLASS__PAL (14) 56024b246eSLinus Torvalds # define EL_TYPE__PAL__LOGOUT_FRAME (1) 57024b246eSLinus Torvalds # define EL_TYPE__PAL__EV7_PROCESSOR (4) 58024b246eSLinus Torvalds # define EL_TYPE__PAL__EV7_ZBOX (5) 59024b246eSLinus Torvalds # define EL_TYPE__PAL__EV7_RBOX (6) 60024b246eSLinus Torvalds # define EL_TYPE__PAL__EV7_IO (7) 61024b246eSLinus Torvalds # define EL_TYPE__PAL__ENV__AMBIENT_TEMPERATURE (10) 62024b246eSLinus Torvalds # define EL_TYPE__PAL__ENV__AIRMOVER_FAN (11) 63024b246eSLinus Torvalds # define EL_TYPE__PAL__ENV__VOLTAGE (12) 64024b246eSLinus Torvalds # define EL_TYPE__PAL__ENV__INTRUSION (13) 65024b246eSLinus Torvalds # define EL_TYPE__PAL__ENV__POWER_SUPPLY (14) 66024b246eSLinus Torvalds # define EL_TYPE__PAL__ENV__LAN (15) 67024b246eSLinus Torvalds # define EL_TYPE__PAL__ENV__HOT_PLUG (16) 68024b246eSLinus Torvalds 69024b246eSLinus Torvalds union el_timestamp { 70024b246eSLinus Torvalds struct { 71024b246eSLinus Torvalds u8 second; 72024b246eSLinus Torvalds u8 minute; 73024b246eSLinus Torvalds u8 hour; 74024b246eSLinus Torvalds u8 day; 75024b246eSLinus Torvalds u8 month; 76024b246eSLinus Torvalds u8 year; 77024b246eSLinus Torvalds } b; 78024b246eSLinus Torvalds u64 as_int; 79024b246eSLinus Torvalds }; 80024b246eSLinus Torvalds 81024b246eSLinus Torvalds struct el_subpacket { 82024b246eSLinus Torvalds u16 length; /* length of header (in bytes) */ 83024b246eSLinus Torvalds u16 class; /* header class and type... */ 84024b246eSLinus Torvalds u16 type; /* ...determine content */ 85024b246eSLinus Torvalds u16 revision; /* header revision */ 86024b246eSLinus Torvalds union { 87024b246eSLinus Torvalds struct { /* Class 5, Type 1 - System Error */ 88024b246eSLinus Torvalds u32 frame_length; 89024b246eSLinus Torvalds u32 frame_packet_count; 90024b246eSLinus Torvalds } sys_err; 91024b246eSLinus Torvalds struct { /* Class 5, Type 2 - System Event */ 92024b246eSLinus Torvalds union el_timestamp timestamp; 93024b246eSLinus Torvalds u32 frame_length; 94024b246eSLinus Torvalds u32 frame_packet_count; 95024b246eSLinus Torvalds } sys_event; 96024b246eSLinus Torvalds struct { /* Class 5, Type 3 - Double Error Halt */ 97024b246eSLinus Torvalds u16 halt_code; 98024b246eSLinus Torvalds u16 reserved; 99024b246eSLinus Torvalds union el_timestamp timestamp; 100024b246eSLinus Torvalds u32 frame_length; 101024b246eSLinus Torvalds u32 frame_packet_count; 102024b246eSLinus Torvalds } err_halt; 103024b246eSLinus Torvalds struct { /* Clasee 5, Type 19 - Logout Frame Header */ 104024b246eSLinus Torvalds u32 frame_length; 105024b246eSLinus Torvalds u32 frame_flags; 106024b246eSLinus Torvalds u32 cpu_offset; 107024b246eSLinus Torvalds u32 system_offset; 108024b246eSLinus Torvalds } logout_header; 109024b246eSLinus Torvalds struct { /* Class 12 - Regatta */ 110024b246eSLinus Torvalds u64 cpuid; 111024b246eSLinus Torvalds u64 data_start[1]; 112024b246eSLinus Torvalds } regatta_frame; 113024b246eSLinus Torvalds struct { /* Raw */ 114024b246eSLinus Torvalds u64 data_start[1]; 115024b246eSLinus Torvalds } raw; 116024b246eSLinus Torvalds } by_type; 117024b246eSLinus Torvalds }; 118024b246eSLinus Torvalds 119024b246eSLinus Torvalds #endif /* __ALPHA_ERR_COMMON_H */ 120