summaryrefslogtreecommitdiffstats
path: root/src/include/usr
diff options
context:
space:
mode:
authorNorman James <njames@us.ibm.com>2014-09-23 14:47:34 -0500
committerAndrew J. Geissler <andrewg@us.ibm.com>2014-12-18 09:13:52 -0600
commit492738975921b5eeab19573cc47a5536e867cb02 (patch)
tree5dbaa546c5f6b23231c75c377d99e02814ac01bb /src/include/usr
parent9e91fa4f9e2ce76c458f8839e2f573c3cbc90797 (diff)
downloadtalos-hostboot-492738975921b5eeab19573cc47a5536e867cb02.tar.gz
talos-hostboot-492738975921b5eeab19573cc47a5536e867cb02.zip
Added callout interface for parts such as PNOR and SBE
Parts supported for callout are PNOR, SBE, VRM, GPIO, etc Change-Id: I6734d58e8e44a7bfd71e87cc4f910bce9473f86d RTC: 109945 CMVC-Coreq: 945677 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/13547 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: STEPHEN M. CPREK <smcprek@us.ibm.com> Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r--src/include/usr/errl/errlentry.H32
-rw-r--r--src/include/usr/errl/errludcallout.H26
-rw-r--r--src/include/usr/hwas/common/hwasCallout.H47
3 files changed, 103 insertions, 2 deletions
diff --git a/src/include/usr/errl/errlentry.H b/src/include/usr/errl/errlentry.H
index 1081f365d..4f164d523 100644
--- a/src/include/usr/errl/errlentry.H
+++ b/src/include/usr/errl/errlentry.H
@@ -506,6 +506,28 @@ public:
i_deconfigState = HWAS::NO_DECONFIG,
const HWAS::GARD_ErrorType
i_gardErrorType = HWAS::GARD_NULL);
+ /**
+ * @brief Add a part callout.
+ * The i_target is used to identify the associated target. This target
+ * may not be a FRU
+ *
+ * @param[in] i_target The hardware target that owns this part
+ * @param[in] i_partType The hardware part type
+ * @param[in] i_priority Priority of the callout
+ * @param[in] i_deconfigState Enum indicating whether the failing part
+ * should be deconfigured.
+ * @param[in] i_gardErrorType To indicate what type of failure occured
+ *
+ * @return void
+ */
+ void addPartCallout(const TARGETING::Target *i_target,
+ const HWAS::partTypeEnum i_partType,
+ const HWAS::callOutPriority i_priority,
+ const HWAS::DeconfigEnum
+ i_deconfigState = HWAS::NO_DECONFIG,
+ const HWAS::GARD_ErrorType
+ i_gardErrorType = HWAS::GARD_NULL);
+
/**
* @brief Add a bus callout
@@ -606,6 +628,16 @@ private:
epubSubSystem_t getSubSystem( HWAS::clockTypeEnum i_clockType ) const;
/**
+ * @brief maps a part type to a subsystem ID
+ *
+ * @param[in] i_partType Bus Type.
+ *
+ * @return subsystem ID
+ */
+ epubSubSystem_t getSubSystem( HWAS::partTypeEnum i_partType ) const;
+
+
+ /**
* @brief The ErrlManager will call here to ask the
* ErrlEntry to assign the time of commit, and to assign
* the commiter's comp ID.
diff --git a/src/include/usr/errl/errludcallout.H b/src/include/usr/errl/errludcallout.H
index fcbbb6e4f..597a23088 100644
--- a/src/include/usr/errl/errludcallout.H
+++ b/src/include/usr/errl/errludcallout.H
@@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2014 */
+/* Contributors Listed Below - COPYRIGHT 2012,2014 */
+/* [+] International Business Machines Corp. */
+/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
@@ -83,6 +85,28 @@ private:
const HWAS::DeconfigEnum i_deconfigState,
const HWAS::GARD_ErrorType i_gardErrorType);
/**
+ * @brief Construct a part callout user detail
+ *
+ * @param[in] i_pTargetData The hardware target data
+ * @param[in] i_targetDataLength length of i_pTargetData
+ * @param[in] i_partType part type Enum
+ * @param[in] i_priority Priority of the callout
+ * @param[in] i_deconfigState Enum indicating whether the failing part
+ * should be deconfigured.
+ * @param[in] i_gardErrorType To indicate what type of failure occured
+ *
+ * @return void
+ */
+ ErrlUserDetailsCallout(
+ const void *i_pTargetData,
+ uint32_t i_targetDataLength,
+ const HWAS::partTypeEnum i_partType,
+ const HWAS::callOutPriority i_priority,
+ const HWAS::DeconfigEnum i_deconfigState,
+ const HWAS::GARD_ErrorType i_gardErrorType);
+
+
+ /**
* @brief Construct a bus callout user detail
*
* @param[in] i_pTarget1Data The hardware target1 data
diff --git a/src/include/usr/hwas/common/hwasCallout.H b/src/include/usr/hwas/common/hwasCallout.H
index 2150a7ba2..36a316760 100644
--- a/src/include/usr/hwas/common/hwasCallout.H
+++ b/src/include/usr/hwas/common/hwasCallout.H
@@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2014 */
+/* Contributors Listed Below - COPYRIGHT 2012,2014 */
+/* [+] International Business Machines Corp. */
+/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
@@ -117,11 +119,23 @@ enum clockTypeEnum
OSCPCICLK_TYPE = 4,
};
+enum partTypeEnum
+{
+ FLASH_CONTROLLER_PART_TYPE = 1,
+ PNOR_PART_TYPE = 2,
+ SBE_SEEPROM_PART_TYPE = 3,
+ BOARD_VPD_PART_TYPE = 4,
+ LPC_SLAVE_PART_TYPE = 5,
+ CENTAUR_GPIO_EXPANDER_PART_TYPE = 6,
+ VOLTAGE_REGULATOR_PART_TYPE = 7,
+};
+
//
const uint8_t HW_CALLOUT = 0x01;
const uint8_t PROCEDURE_CALLOUT = 0x02;
const uint8_t BUS_CALLOUT = 0x03;
const uint8_t CLOCK_CALLOUT = 0x04;
+const uint8_t PART_CALLOUT = 0x05;
const uint8_t TARGET_IS_SENTINEL = 0xF0;
@@ -150,6 +164,12 @@ typedef struct callout_ud
GARD_ErrorType clkGardErrorType; // uint32_t
// one Target will follow
};
+ struct { // type == PART_CALLOUT
+ partTypeEnum partType; // uint32_t
+ DeconfigEnum partDeconfigState; // uint32_t
+ GARD_ErrorType partGardErrorType; // uint32_t
+ // one Target will follow
+ };
};
} callout_ud_t;
@@ -251,8 +271,33 @@ errlHndl_t platHandleClockCallout(
DeconfigEnum i_deconfigState = DECONFIG,
GARD_ErrorType i_gardErrorType = GARD_Fatal);
+/**
+ * @brief platform specific code to handle a part callout that has been
+ * found in an errlog
+ *
+ * @param[in] i_pTarget associated target
+ * @param[in] i_partType Enum indicating which type of part
+ * @param[in] i_priority Enum indicating the priority of the callout
+ * @param[in] io_errl reference to errlHnld for this errlog
+ * @param[in] i_deconfigState Enum indicating whether to deconfig or not
+ * @param[in] i_gardErrType Enum indicating the type of failure
+ *
+ * @return errlHndl_t valid errlHndl_t handle if there was an error,
+ * NULL if no errors;
+ */
+errlHndl_t platHandlePartCallout(
+ TARGETING::Target *i_pTarget,
+ partTypeEnum i_partType,
+ callOutPriority i_priority,
+ errlHndl_t &io_errl,
+ DeconfigEnum i_deconfigState = DECONFIG,
+ GARD_ErrorType i_gardErrorType = GARD_Fatal);
+
+
#endif // not PARSER
+
+
}; // end namespace
#endif
OpenPOWER on IntegriCloud