This patch adds definitions of non-IBM specific v6 extended log definitions to 
rtas.h.

Signed-off-by: Tseng-Hui (Frank) Lin <tseng...@us.ibm.com>
---
 arch/powerpc/include/asm/rtas.h                    |   45 ++++-
 1 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/include/asm/rtas.h b/arch/powerpc/include/asm/rtas.h
index 3d35f8a..181e32a 100644
--- a/arch/powerpc/include/asm/rtas.h
+++ b/arch/powerpc/include/asm/rtas.h
@@ -158,7 +158,50 @@ struct rtas_error_log {
        unsigned long target:4;                 /* Target of failed operation */
        unsigned long type:8;                   /* General event or error*/
        unsigned long extended_log_length:32;   /* length in bytes */
-       unsigned char buffer[1];
+       unsigned char buffer[1];                /* Start of extended log */
+                                               /* Variable length.      */
+};
+
+#define RTAS_V6EXT_LOG_FORMAT_EVENT_LOG        14
+
+#define RTAS_V6EXT_COMPANY_ID_IBM      (('I' << 24) | ('B' << 16) | ('M' << 8))
+
+/* RTAS extended error/event log, Version 6. The extended log starts
+ * from "buffer" field of struct rtas_error_log defined above.
+ */
+struct rtas_error_log_v6ext {
+       /* Byte 0 */
+       uint32_t log_valid:1;           /* 1:Log valid */
+       uint32_t unrecoverable_error:1; /* 1:Unrecoverable error */
+       uint32_t recoverable_error:1;   /* 1:recoverable (correctable   */
+                                       /*   or successfully retried)   */
+       uint32_t degraded_operation:1;  /* 1:Unrecoverable err, bypassed*/
+                                       /*   - degraded operation (e.g. */
+                                       /*   CPU or mem taken off-line) */
+       uint32_t predictive_error:1;
+       uint32_t new_log:1;             /* 1:"New" log (Always 1 for    */
+                                       /*   data returned from RTAS    */
+       uint32_t big_endian:1;          /* 1: Big endian */
+       uint32_t :1;                    /* reserved */
+       /* Byte 1 */
+       uint32_t :8;                    /* reserved */
+       /* Byte 2 */
+       uint32_t powerpc_format:1;      /* Set to 1 (indicating log is  */
+                                       /* in PowerPC format            */
+       uint32_t :3;                    /* reserved */
+       uint32_t log_format:4;          /* Log format indicator. Define */
+                                       /* format used for byte 12-2047 */
+       /* Byte 3 */
+       uint32_t :8;                    /* reserved */
+       /* Byte 4-11 */
+       uint8_t reserved[8];            /* reserved */
+       /* Byte 12-15 */
+       uint32_t company_id;            /* Company ID of the company    */
+                                       /* that defines the format for  */
+                                       /* the vendor specific log type */
+       /* Byte 16-end of log */
+       uint8_t vendor_log[1];          /* Start of vendor specific log */
+                                       /* Variable length.             */
 };
 
 /*


_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to