aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>2015-03-05 10:35:53 +0530
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-03-17 14:54:49 +1100
commit8b196e828f7a2c8258f7fae9fb45d857eacaa76e (patch)
tree2e21a781e156165f12b7624753447214b9ce80c4 /doc
parenta953795d2b4ed8accdb87c6535228946b66b7f1f (diff)
downloadskiboot-8b196e828f7a2c8258f7fae9fb45d857eacaa76e.zip
skiboot-8b196e828f7a2c8258f7fae9fb45d857eacaa76e.tar.gz
skiboot-8b196e828f7a2c8258f7fae9fb45d857eacaa76e.tar.bz2
opal: Update doc/opal-api/opal-messages.txt
Update doc/opal-api/opal-messages.txt to add more documentation on the HMI event structure. Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/opal-api/opal-messages.txt46
1 files changed, 41 insertions, 5 deletions
diff --git a/doc/opal-api/opal-messages.txt b/doc/opal-api/opal-messages.txt
index 1091d8b..fdde247 100644
--- a/doc/opal-api/opal-messages.txt
+++ b/doc/opal-api/opal-messages.txt
@@ -52,9 +52,28 @@ params[0] = 0x01 reboot, 0x00 shutdown
OPAL_MSG_HMI_EVT
----------------
-Sends the OPAL HMI Event to the host OS
+Used by OPAL to sends the OPAL HMI Event to the host OS that reports a
+summary of HMI error and whether it was successfully recovered or not.
-TODO: Describe what HMI is
+HMI is a Hypervisor Maintenance Interrupt usually reports error related
+to processor recovery/checkstop, NX checkstop and Timer facility. Hypervisor
+then takes this opportunity to analyze and recover from some of these errors.
+Hypervisor takes assistance from OPAL layer to handle and recover from
+HMI. After handling HMI, OPAL layer sends the summary of error report and
+status of recovery action using HMI event structure shown below.
+
+The HMI event structure uses version numbering to allow future enhancement
+to accommodate additional members. The version start from V1 onward.
+Version 0 is invalid version and unsupported.
+
+The current version of HMI event structure V2 and is backward compatible
+to V1 version.
+
+Notes:
+- When adding new structure to the union in future, the version number
+ must be bumped.
+- All future versions must be backward compatible to all its older versions.
+- Size of this structure should not exceed that of struct opal_msg.
struct OpalHMIEvent {
uint8_t version; /* 0x00 */
@@ -63,9 +82,26 @@ struct OpalHMIEvent {
uint8_t disposition; /* 0x03 */
uint8_t reserved_1[4]; /* 0x04 */
- uint64_t hmer;
- /* TFMR register. Valid only for TFAC and TFMR_PARITY error type. */
- uint64_t tfmr;
+ __be64 hmer;
+ /* TFMR register. Valid only for TFAC and TFMR_PARITY error type. */
+ __be64 tfmr;
+
+ /* version 2 and later */
+ union {
+ /*
+ * checkstop info (Core/NX).
+ * Valid for OpalHMI_ERROR_MALFUNC_ALERT.
+ */
+ struct {
+ uint8_t xstop_type; /* enum OpalHMI_XstopType */
+ uint8_t reserved_1[3];
+ __be32 xstop_reason;
+ union {
+ __be32 pir; /* for CHECKSTOP_TYPE_CORE */
+ __be32 chip_id; /* for CHECKSTOP_TYPE_NX */
+ } u;
+ } xstop_error;
+ } u;
};