![]() |
|
|||
0001 /* SPDX-License-Identifier: GPL-2.0-or-later */ 0002 #ifndef _ASM_POWERPC_RTAS_TYPES_H 0003 #define _ASM_POWERPC_RTAS_TYPES_H 0004 0005 #include <linux/spinlock_types.h> 0006 0007 typedef __be32 rtas_arg_t; 0008 0009 struct rtas_args { 0010 __be32 token; 0011 __be32 nargs; 0012 __be32 nret; 0013 rtas_arg_t args[16]; 0014 rtas_arg_t *rets; /* Pointer to return values in args[]. */ 0015 }; 0016 0017 struct rtas_t { 0018 unsigned long entry; /* physical address pointer */ 0019 unsigned long base; /* physical address pointer */ 0020 unsigned long size; 0021 arch_spinlock_t lock; 0022 struct rtas_args args; 0023 struct device_node *dev; /* virtual address pointer */ 0024 }; 0025 0026 struct rtas_error_log { 0027 /* Byte 0 */ 0028 u8 byte0; /* Architectural version */ 0029 0030 /* Byte 1 */ 0031 u8 byte1; 0032 /* XXXXXXXX 0033 * XXX 3: Severity level of error 0034 * XX 2: Degree of recovery 0035 * X 1: Extended log present? 0036 * XX 2: Reserved 0037 */ 0038 0039 /* Byte 2 */ 0040 u8 byte2; 0041 /* XXXXXXXX 0042 * XXXX 4: Initiator of event 0043 * XXXX 4: Target of failed operation 0044 */ 0045 u8 byte3; /* General event or error*/ 0046 __be32 extended_log_length; /* length in bytes */ 0047 unsigned char buffer[1]; /* Start of extended log */ 0048 /* Variable length. */ 0049 }; 0050 0051 /* RTAS general extended event log, Version 6. The extended log starts 0052 * from "buffer" field of struct rtas_error_log defined above. 0053 */ 0054 struct rtas_ext_event_log_v6 { 0055 /* Byte 0 */ 0056 u8 byte0; 0057 /* XXXXXXXX 0058 * X 1: Log valid 0059 * X 1: Unrecoverable error 0060 * X 1: Recoverable (correctable or successfully retried) 0061 * X 1: Bypassed unrecoverable error (degraded operation) 0062 * X 1: Predictive error 0063 * X 1: "New" log (always 1 for data returned from RTAS) 0064 * X 1: Big Endian 0065 * X 1: Reserved 0066 */ 0067 0068 /* Byte 1 */ 0069 u8 byte1; /* reserved */ 0070 0071 /* Byte 2 */ 0072 u8 byte2; 0073 /* XXXXXXXX 0074 * X 1: Set to 1 (indicating log is in PowerPC format) 0075 * XXX 3: Reserved 0076 * XXXX 4: Log format used for bytes 12-2047 0077 */ 0078 0079 /* Byte 3 */ 0080 u8 byte3; /* reserved */ 0081 /* Byte 4-11 */ 0082 u8 reserved[8]; /* reserved */ 0083 /* Byte 12-15 */ 0084 __be32 company_id; /* Company ID of the company */ 0085 /* that defines the format for */ 0086 /* the vendor specific log type */ 0087 /* Byte 16-end of log */ 0088 u8 vendor_log[1]; /* Start of vendor specific log */ 0089 /* Variable length. */ 0090 }; 0091 0092 /* Vendor specific Platform Event Log Format, Version 6, section header */ 0093 struct pseries_errorlog { 0094 __be16 id; /* 0x00 2-byte ASCII section ID */ 0095 __be16 length; /* 0x02 Section length in bytes */ 0096 u8 version; /* 0x04 Section version */ 0097 u8 subtype; /* 0x05 Section subtype */ 0098 __be16 creator_component; /* 0x06 Creator component ID */ 0099 u8 data[]; /* 0x08 Start of section data */ 0100 }; 0101 0102 /* RTAS pseries hotplug errorlog section */ 0103 struct pseries_hp_errorlog { 0104 u8 resource; 0105 u8 action; 0106 u8 id_type; 0107 u8 reserved; 0108 union { 0109 __be32 drc_index; 0110 __be32 drc_count; 0111 struct { __be32 count, index; } ic; 0112 char drc_name[1]; 0113 } _drc_u; 0114 }; 0115 0116 #endif /* _ASM_POWERPC_RTAS_TYPES_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |