summaryrefslogtreecommitdiffstats
path: root/src/include/usr
diff options
context:
space:
mode:
authorvanlee <vanlee@us.ibm.com>2013-05-14 14:54:27 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-06-12 09:27:05 -0500
commit36a701ad9bcbcb3a997d76d11fe38d7726d1c4e7 (patch)
tree56c3c21170fe54032aa0cb4ed720f653d5e207a8 /src/include/usr
parentd2a31c241a1a8221bc3932bdfacfc949fb6ec70c (diff)
downloadtalos-hostboot-36a701ad9bcbcb3a997d76d11fe38d7726d1c4e7.tar.gz
talos-hostboot-36a701ad9bcbcb3a997d76d11fe38d7726d1c4e7.zip
Add interface to do bus callout in Hostboot
Change-Id: If169d997a0aba49a81ef834d7806e1e589dc3bff RTC: 69459 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4503 Tested-by: Jenkins Server Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r--src/include/usr/errl/errlentry.H15
-rw-r--r--src/include/usr/errl/errludcallout.H20
-rw-r--r--src/include/usr/hwas/common/hwasCallout.H34
3 files changed, 69 insertions, 0 deletions
diff --git a/src/include/usr/errl/errlentry.H b/src/include/usr/errl/errlentry.H
index a34633df9..96598e03a 100644
--- a/src/include/usr/errl/errlentry.H
+++ b/src/include/usr/errl/errlentry.H
@@ -423,6 +423,21 @@ public:
void removeBackTrace();
/**
+ * @brief Add a bus callout
+ *
+ * @param[in] i_target1 The hardware bus endpoint target1
+ * @param[in] i_target2 The hardware bus endpoint target2
+ * @param[in] i_busType The hardware bus type
+ * @param[in] i_priority Priority of the callout
+ *
+ * @return void
+ */
+ void addBusCallout(const TARGETING::Target *i_target1,
+ const TARGETING::Target *i_target2,
+ const HWAS::busTypeEnum i_busType,
+ const HWAS::callOutPriority i_priority);
+
+ /**
* @brief Add a hardware callout
*
* @param[in] i_target The hardware target
diff --git a/src/include/usr/errl/errludcallout.H b/src/include/usr/errl/errludcallout.H
index 9357baa3f..80530edd2 100644
--- a/src/include/usr/errl/errludcallout.H
+++ b/src/include/usr/errl/errludcallout.H
@@ -52,6 +52,26 @@ class ErrlUserDetailsCallout : public ErrlUserDetails
public:
/**
+ * @brief Construct a bus callout user detail
+ *
+ * @param[in] i_pTarget1Data The hardware target1 data
+ * @param[in] i_target1DataLength length of i_pTarget1Data
+ * @param[in] i_pTarget2Data The hardware target2 data
+ * @param[in] i_target2DataLength length of i_pTarget2Data
+ * @param[in] i_busType bus type Enum
+ * @param[in] i_priority Priority of the callout
+ *
+ * @return void
+ */
+ ErrlUserDetailsCallout(
+ const void *i_pTarget1Data,
+ uint32_t i_target1DataLength,
+ const void *i_pTarget2Data,
+ uint32_t i_target2DataLength,
+ const HWAS::busTypeEnum i_busType,
+ const HWAS::callOutPriority i_priority);
+
+ /**
* @brief Construct a hardware callout user detail
*
* @param[in] i_pTargetData The hardware target data
diff --git a/src/include/usr/hwas/common/hwasCallout.H b/src/include/usr/hwas/common/hwasCallout.H
index 674dc5d34..c82e3e218 100644
--- a/src/include/usr/hwas/common/hwasCallout.H
+++ b/src/include/usr/hwas/common/hwasCallout.H
@@ -122,9 +122,20 @@ enum callOutPriority
SRCI_PRIORITY_HIGH = 6
};
+enum busTypeEnum
+{
+ FSI_BUS_TYPE = 1,
+ DMI_BUS_TYPE = 2,
+ A_BUS_TYPE = 3,
+ X_BUS_TYPE = 4,
+ I2C_BUS_TYPE = 5,
+ PSI_BUS_TYPE = 6
+};
+
//
const uint8_t HW_CALLOUT = 0x01;
const uint8_t PROCEDURE_CALLOUT = 0x02;
+const uint8_t BUS_CALLOUT = 0x03;
const uint8_t TARGET_IS_SENTINEL = 0xF0;
@@ -142,6 +153,9 @@ typedef struct callout_ud
struct { // callout
epubProcedureID procedure; // uint32_t
};
+ struct {
+ busTypeEnum busType;
+ };
};
} callout_ud_t;
@@ -199,6 +213,26 @@ errlHndl_t platHandleHWCallout(
errlHndl_t i_errl,
GARD_ErrorType i_gardErrorType);
+/**
+ * @brief platform specific code to handle a bus callout that has been
+ * found in an errlog
+ *
+ * @param[in] i_pTarget1 target endpoint1
+ * @param[in] i_pTarget2 target endpoint2
+ * @param[in] i_busType bus type Enum
+ * @param[in] i_priority Enum indicating the priority of the callout
+ * @param[in] i_errl errlHnld for this errlog
+ *
+ * @return errlHndl_t valid errlHndl_t handle if there was an error,
+ * NULL if no errors;
+ */
+errlHndl_t platHandleBusCallout(
+ TARGETING::Target *i_pTarget1,
+ TARGETING::Target *i_pTarget2,
+ busTypeEnum i_busType,
+ callOutPriority i_priority,
+ errlHndl_t i_errl);
+
#endif // not PARSER
}; // end namespace
OpenPOWER on IntegriCloud