18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci *	linux/include/asm-alpha/err_common.h
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci *	Copyright (C) 2000 Jeff Wiedemeier (Compaq Computer Corporation)
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci *	Contains declarations and macros to support Alpha error handling
88c2ecf20Sopenharmony_ci * 	implementations.
98c2ecf20Sopenharmony_ci */
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#ifndef __ALPHA_ERR_COMMON_H
128c2ecf20Sopenharmony_ci#define __ALPHA_ERR_COMMON_H 1
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci/*
158c2ecf20Sopenharmony_ci * SCB Vector definitions
168c2ecf20Sopenharmony_ci */
178c2ecf20Sopenharmony_ci#define SCB_Q_SYSERR	0x620
188c2ecf20Sopenharmony_ci#define SCB_Q_PROCERR	0x630
198c2ecf20Sopenharmony_ci#define SCB_Q_SYSMCHK	0x660
208c2ecf20Sopenharmony_ci#define SCB_Q_PROCMCHK	0x670
218c2ecf20Sopenharmony_ci#define SCB_Q_SYSEVENT	0x680
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci/*
248c2ecf20Sopenharmony_ci * Disposition definitions for logout frame parser
258c2ecf20Sopenharmony_ci */
268c2ecf20Sopenharmony_ci#define MCHK_DISPOSITION_UNKNOWN_ERROR		0x00
278c2ecf20Sopenharmony_ci#define MCHK_DISPOSITION_REPORT			0x01
288c2ecf20Sopenharmony_ci#define MCHK_DISPOSITION_DISMISS		0x02
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci/*
318c2ecf20Sopenharmony_ci * Error Log definitions
328c2ecf20Sopenharmony_ci */
338c2ecf20Sopenharmony_ci/*
348c2ecf20Sopenharmony_ci * Types
358c2ecf20Sopenharmony_ci */
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci#define EL_CLASS__TERMINATION		(0)
388c2ecf20Sopenharmony_ci#  define EL_TYPE__TERMINATION__TERMINATION		(0)
398c2ecf20Sopenharmony_ci#define EL_CLASS__HEADER		(5)
408c2ecf20Sopenharmony_ci#  define EL_TYPE__HEADER__SYSTEM_ERROR_FRAME		(1)
418c2ecf20Sopenharmony_ci#  define EL_TYPE__HEADER__SYSTEM_EVENT_FRAME		(2)
428c2ecf20Sopenharmony_ci#  define EL_TYPE__HEADER__HALT_FRAME			(3)
438c2ecf20Sopenharmony_ci#  define EL_TYPE__HEADER__LOGOUT_FRAME			(19)
448c2ecf20Sopenharmony_ci#define EL_CLASS__GENERAL_NOTIFICATION	(9)
458c2ecf20Sopenharmony_ci#define EL_CLASS__PCI_ERROR_FRAME	(11)
468c2ecf20Sopenharmony_ci#define EL_CLASS__REGATTA_FAMILY	(12)
478c2ecf20Sopenharmony_ci#  define EL_TYPE__REGATTA__PROCESSOR_ERROR_FRAME	(1)
488c2ecf20Sopenharmony_ci#  define EL_TYPE__REGATTA__SYSTEM_ERROR_FRAME		(2)
498c2ecf20Sopenharmony_ci#  define EL_TYPE__REGATTA__ENVIRONMENTAL_FRAME		(3)
508c2ecf20Sopenharmony_ci#  define EL_TYPE__REGATTA__TITAN_PCHIP0_EXTENDED	(8)
518c2ecf20Sopenharmony_ci#  define EL_TYPE__REGATTA__TITAN_PCHIP1_EXTENDED	(9)
528c2ecf20Sopenharmony_ci#  define EL_TYPE__REGATTA__TITAN_MEMORY_EXTENDED	(10)
538c2ecf20Sopenharmony_ci#  define EL_TYPE__REGATTA__PROCESSOR_DBL_ERROR_HALT	(11)
548c2ecf20Sopenharmony_ci#  define EL_TYPE__REGATTA__SYSTEM_DBL_ERROR_HALT	(12)
558c2ecf20Sopenharmony_ci#define EL_CLASS__PAL                   (14)
568c2ecf20Sopenharmony_ci#  define EL_TYPE__PAL__LOGOUT_FRAME                    (1)
578c2ecf20Sopenharmony_ci#  define EL_TYPE__PAL__EV7_PROCESSOR			(4)
588c2ecf20Sopenharmony_ci#  define EL_TYPE__PAL__EV7_ZBOX			(5)
598c2ecf20Sopenharmony_ci#  define EL_TYPE__PAL__EV7_RBOX			(6)
608c2ecf20Sopenharmony_ci#  define EL_TYPE__PAL__EV7_IO				(7)
618c2ecf20Sopenharmony_ci#  define EL_TYPE__PAL__ENV__AMBIENT_TEMPERATURE	(10)
628c2ecf20Sopenharmony_ci#  define EL_TYPE__PAL__ENV__AIRMOVER_FAN		(11)
638c2ecf20Sopenharmony_ci#  define EL_TYPE__PAL__ENV__VOLTAGE			(12)
648c2ecf20Sopenharmony_ci#  define EL_TYPE__PAL__ENV__INTRUSION			(13)
658c2ecf20Sopenharmony_ci#  define EL_TYPE__PAL__ENV__POWER_SUPPLY		(14)
668c2ecf20Sopenharmony_ci#  define EL_TYPE__PAL__ENV__LAN			(15)
678c2ecf20Sopenharmony_ci#  define EL_TYPE__PAL__ENV__HOT_PLUG			(16)
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ciunion el_timestamp {
708c2ecf20Sopenharmony_ci	struct {
718c2ecf20Sopenharmony_ci		u8 second;
728c2ecf20Sopenharmony_ci		u8 minute;
738c2ecf20Sopenharmony_ci		u8 hour;
748c2ecf20Sopenharmony_ci		u8 day;
758c2ecf20Sopenharmony_ci		u8 month;
768c2ecf20Sopenharmony_ci		u8 year;
778c2ecf20Sopenharmony_ci	} b;
788c2ecf20Sopenharmony_ci	u64 as_int;
798c2ecf20Sopenharmony_ci};
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_cistruct el_subpacket {
828c2ecf20Sopenharmony_ci	u16 length;		/* length of header (in bytes)	*/
838c2ecf20Sopenharmony_ci	u16 class;		/* header class and type...   	*/
848c2ecf20Sopenharmony_ci	u16 type;		/* ...determine content     	*/
858c2ecf20Sopenharmony_ci	u16 revision;		/* header revision 		*/
868c2ecf20Sopenharmony_ci	union {
878c2ecf20Sopenharmony_ci		struct {	/* Class 5, Type 1 - System Error	*/
888c2ecf20Sopenharmony_ci			u32 frame_length;
898c2ecf20Sopenharmony_ci			u32 frame_packet_count;
908c2ecf20Sopenharmony_ci		} sys_err;
918c2ecf20Sopenharmony_ci		struct {	/* Class 5, Type 2 - System Event 	*/
928c2ecf20Sopenharmony_ci			union el_timestamp timestamp;
938c2ecf20Sopenharmony_ci			u32 frame_length;
948c2ecf20Sopenharmony_ci			u32 frame_packet_count;
958c2ecf20Sopenharmony_ci		} sys_event;
968c2ecf20Sopenharmony_ci		struct {	/* Class 5, Type 3 - Double Error Halt	*/
978c2ecf20Sopenharmony_ci			u16 halt_code;
988c2ecf20Sopenharmony_ci			u16 reserved;
998c2ecf20Sopenharmony_ci			union el_timestamp timestamp;
1008c2ecf20Sopenharmony_ci			u32 frame_length;
1018c2ecf20Sopenharmony_ci			u32 frame_packet_count;
1028c2ecf20Sopenharmony_ci		} err_halt;
1038c2ecf20Sopenharmony_ci		struct {	/* Clasee 5, Type 19 - Logout Frame Header */
1048c2ecf20Sopenharmony_ci			u32 frame_length;
1058c2ecf20Sopenharmony_ci			u32 frame_flags;
1068c2ecf20Sopenharmony_ci			u32 cpu_offset;
1078c2ecf20Sopenharmony_ci			u32 system_offset;
1088c2ecf20Sopenharmony_ci		} logout_header;
1098c2ecf20Sopenharmony_ci		struct {	/* Class 12 - Regatta			*/
1108c2ecf20Sopenharmony_ci			u64 cpuid;
1118c2ecf20Sopenharmony_ci			u64 data_start[1];
1128c2ecf20Sopenharmony_ci		} regatta_frame;
1138c2ecf20Sopenharmony_ci		struct {	/* Raw 				        */
1148c2ecf20Sopenharmony_ci			u64 data_start[1];
1158c2ecf20Sopenharmony_ci		} raw;
1168c2ecf20Sopenharmony_ci	} by_type;
1178c2ecf20Sopenharmony_ci};
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci#endif /* __ALPHA_ERR_COMMON_H */
120