1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 #ifndef _ASM_POWERPC_RTAS_TYPES_H
3 #define _ASM_POWERPC_RTAS_TYPES_H
5 #include <linux/spinlock_types.h>
7 typedef __be32 rtas_arg_t;
14 rtas_arg_t *rets; /* Pointer to return values in args[]. */
18 unsigned long entry; /* physical address pointer */
19 unsigned long base; /* physical address pointer */
22 struct rtas_args args;
23 struct device_node *dev; /* virtual address pointer */
26 struct rtas_suspend_me_data {
27 atomic_t working; /* number of cpus accessing this struct */
29 int token; /* ibm,suspend-me */
31 struct completion *complete; /* wait on this until working == 0 */
34 struct rtas_error_log {
36 u8 byte0; /* Architectural version */
41 * XXX 3: Severity level of error
42 * XX 2: Degree of recovery
43 * X 1: Extended log present?
50 * XXXX 4: Initiator of event
51 * XXXX 4: Target of failed operation
53 u8 byte3; /* General event or error*/
54 __be32 extended_log_length; /* length in bytes */
55 unsigned char buffer[1]; /* Start of extended log */
56 /* Variable length. */
59 /* RTAS general extended event log, Version 6. The extended log starts
60 * from "buffer" field of struct rtas_error_log defined above.
62 struct rtas_ext_event_log_v6 {
67 * X 1: Unrecoverable error
68 * X 1: Recoverable (correctable or successfully retried)
69 * X 1: Bypassed unrecoverable error (degraded operation)
70 * X 1: Predictive error
71 * X 1: "New" log (always 1 for data returned from RTAS)
77 u8 byte1; /* reserved */
82 * X 1: Set to 1 (indicating log is in PowerPC format)
84 * XXXX 4: Log format used for bytes 12-2047
88 u8 byte3; /* reserved */
90 u8 reserved[8]; /* reserved */
92 __be32 company_id; /* Company ID of the company */
93 /* that defines the format for */
94 /* the vendor specific log type */
95 /* Byte 16-end of log */
96 u8 vendor_log[1]; /* Start of vendor specific log */
97 /* Variable length. */
100 /* Vendor specific Platform Event Log Format, Version 6, section header */
101 struct pseries_errorlog {
102 __be16 id; /* 0x00 2-byte ASCII section ID */
103 __be16 length; /* 0x02 Section length in bytes */
104 u8 version; /* 0x04 Section version */
105 u8 subtype; /* 0x05 Section subtype */
106 __be16 creator_component; /* 0x06 Creator component ID */
107 u8 data[]; /* 0x08 Start of section data */
110 /* RTAS pseries hotplug errorlog section */
111 struct pseries_hp_errorlog {
119 struct { __be32 count, index; } ic;
124 #endif /* _ASM_POWERPC_RTAS_TYPES_H */