diff options
| author | Dan Crowell <dcrowell@us.ibm.com> | 2018-08-06 08:41:35 -0500 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-08-19 22:24:57 -0500 |
| commit | 5675c7315db0c79fa464149ea38cde09f3195130 (patch) | |
| tree | 0245f5a028edc609a5b9e0e6bf76203319189daa /src/include/usr/hwas | |
| parent | 207de5cbd30e805f2f15dc9f2f4bc7e63e774796 (diff) | |
| download | talos-hostboot-5675c7315db0c79fa464149ea38cde09f3195130.tar.gz talos-hostboot-5675c7315db0c79fa464149ea38cde09f3195130.zip | |
Add flag to HWAS Callout for SMP repair indicator
Used one of the reserved bytes of the callout structure to hold
a flag that will indicate if the SMP bus being called out is
completely down, and thus eligible for concurrent repair.
Change-Id: I299e3393529e811aa006a087de51165b79038201
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/63946
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr/hwas')
| -rw-r--r-- | src/include/usr/hwas/common/hwasCallout.H | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/src/include/usr/hwas/common/hwasCallout.H b/src/include/usr/hwas/common/hwasCallout.H index 01275a012..54d3f4fd8 100644 --- a/src/include/usr/hwas/common/hwasCallout.H +++ b/src/include/usr/hwas/common/hwasCallout.H @@ -171,7 +171,15 @@ enum sensorTypeEnum GPU_MEMORY_TEMP_SENSOR = 3, }; -// +//-- Flags +typedef uint8_t CalloutFlag_t; +// No extra flags are present +const uint8_t FLAG_NONE = 0; +// SMP link is down, therefore its pair cannot be repaired +const uint8_t FLAG_LINK_DOWN = 1; + +//-- Callout types +typedef uint8_t CalloutType_t; const uint8_t HW_CALLOUT = 0x01; const uint8_t PROCEDURE_CALLOUT = 0x02; const uint8_t BUS_CALLOUT = 0x03; @@ -182,12 +190,20 @@ const uint8_t I2C_DEVICE_CALLOUT = 0x07; const uint8_t TARGET_IS_SENTINEL = 0xF0; +/** + * @brief Defines the data layout that is passed around the code as part + * of en error log to specify a callout. Note that this structure + * is used in messages between Hostboot and FSP, and it is saved + * to persistent storage inside error logs. This means that the + * size cannot change and the fields cannot be reordered. + */ typedef struct callout_ud { - uint8_t type; - uint8_t pad[3]; + CalloutType_t type; //uint8_t + CalloutFlag_t flag; //uint8_t + uint8_t pad[2]; callOutPriority priority; // uint32_t - union { + union { // 3 x uint32 struct { // type == HW_CALLOUT DeconfigEnum deconfigState; // uint32_t GARD_ErrorType gardErrorType; // uint32_t @@ -196,9 +212,13 @@ typedef struct callout_ud }; struct { // type == PROCEDURE_CALLOUT epubProcedureID procedure; // uint32_t + // uint32 - unused + // uint32 - unused }; struct { // type == BUS_CALLOUT busTypeEnum busType; // uint32_t + // uint32 - unused + // uint32 - unused // two Targets will follow }; struct { // type == CLOCK_CALLOUT @@ -216,6 +236,8 @@ typedef struct callout_ud struct { // type == SENSOR_CALLOUT uint32_t sensorId; sensorTypeEnum sensorType; + // uint32 - unused + // zero Targets will follow }; struct { // type == I2C_DEVICE_CALLOUT uint8_t engine; @@ -224,7 +246,8 @@ typedef struct callout_ud // one Target will follow }; }; // union -} callout_ud_t; +} __attribute__ ((packed)) callout_ud_t; + #ifndef PARSER |

