File Index
Files and directories
Sign in
FILE

rtas-types.h

File preview with syntax highlighting.

linux-6.19.14/arch/powerpc/include/asm/rtas-types.h C
  1/* SPDX-License-Identifier: GPL-2.0-or-later */
  2#ifndef _ASM_POWERPC_RTAS_TYPES_H
  3#define _ASM_POWERPC_RTAS_TYPES_H
  4
  5#include <linux/compiler_attributes.h>
  6
  7typedef __be32 rtas_arg_t;
  8
  9struct rtas_args {
 10	__be32 token;
 11	__be32 nargs;
 12	__be32 nret;
 13	rtas_arg_t args[16];
 14	rtas_arg_t *rets;     /* Pointer to return values in args[]. */
 15} __aligned(8);
 16
 17struct rtas_t {
 18	unsigned long entry;		/* physical address pointer */
 19	unsigned long base;		/* physical address pointer */
 20	unsigned long size;
 21	struct device_node *dev;	/* virtual address pointer */
 22};
 23
 24struct rtas_error_log {
 25	/* Byte 0 */
 26	u8		byte0;			/* Architectural version */
 27
 28	/* Byte 1 */
 29	u8		byte1;
 30	/* XXXXXXXX
 31	 * XXX		3: Severity level of error
 32	 *    XX	2: Degree of recovery
 33	 *      X	1: Extended log present?
 34	 *       XX	2: Reserved
 35	 */
 36
 37	/* Byte 2 */
 38	u8		byte2;
 39	/* XXXXXXXX
 40	 * XXXX		4: Initiator of event
 41	 *     XXXX	4: Target of failed operation
 42	 */
 43	u8		byte3;			/* General event or error*/
 44	__be32		extended_log_length;	/* length in bytes */
 45	unsigned char	buffer[1];		/* Start of extended log */
 46						/* Variable length.      */
 47};
 48
 49/* RTAS general extended event log, Version 6. The extended log starts
 50 * from "buffer" field of struct rtas_error_log defined above.
 51 */
 52struct rtas_ext_event_log_v6 {
 53	/* Byte 0 */
 54	u8 byte0;
 55	/* XXXXXXXX
 56	 * X		1: Log valid
 57	 *  X		1: Unrecoverable error
 58	 *   X		1: Recoverable (correctable or successfully retried)
 59	 *    X		1: Bypassed unrecoverable error (degraded operation)
 60	 *     X	1: Predictive error
 61	 *      X	1: "New" log (always 1 for data returned from RTAS)
 62	 *       X	1: Big Endian
 63	 *        X	1: Reserved
 64	 */
 65
 66	/* Byte 1 */
 67	u8 byte1;			/* reserved */
 68
 69	/* Byte 2 */
 70	u8 byte2;
 71	/* XXXXXXXX
 72	 * X		1: Set to 1 (indicating log is in PowerPC format)
 73	 *  XXX		3: Reserved
 74	 *     XXXX	4: Log format used for bytes 12-2047
 75	 */
 76
 77	/* Byte 3 */
 78	u8 byte3;			/* reserved */
 79	/* Byte 4-11 */
 80	u8 reserved[8];			/* reserved */
 81	/* Byte 12-15 */
 82	__be32  company_id;		/* Company ID of the company	*/
 83					/* that defines the format for	*/
 84					/* the vendor specific log type	*/
 85	/* Byte 16-end of log */
 86	u8 vendor_log[1];		/* Start of vendor specific log	*/
 87					/* Variable length.		*/
 88};
 89
 90/* Vendor specific Platform Event Log Format, Version 6, section header */
 91struct pseries_errorlog {
 92	__be16 id;			/* 0x00 2-byte ASCII section ID	*/
 93	__be16 length;			/* 0x02 Section length in bytes	*/
 94	u8 version;			/* 0x04 Section version		*/
 95	u8 subtype;			/* 0x05 Section subtype		*/
 96	__be16 creator_component;	/* 0x06 Creator component ID	*/
 97	u8 data[];			/* 0x08 Start of section data	*/
 98};
 99
100/* RTAS pseries hotplug errorlog section */
101struct pseries_hp_errorlog {
102	u8	resource;
103	u8	action;
104	u8	id_type;
105	u8	reserved;
106	union {
107		__be32	drc_index;
108		__be32	drc_count;
109		struct { __be32 count, index; } ic;
110		char	drc_name[1];
111	} _drc_u;
112};
113
114#endif /* _ASM_POWERPC_RTAS_TYPES_H */
~/ Read-only file preview.