summaryrefslogtreecommitdiffstats
path: root/src/include/usr/hwas
diff options
context:
space:
mode:
authorPrachi Gupta <pragupta@us.ibm.com>2018-05-31 16:31:01 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-06-06 13:59:44 -0400
commit27bf395be2cd9025abc1a48ad74a0b3bc5da97f8 (patch)
tree29bb599328e3ab98e1e105a285c9f213cf040871 /src/include/usr/hwas
parent1db54dcc27d4061114c9466ec5fb72121420c5eb (diff)
downloadtalos-hostboot-27bf395be2cd9025abc1a48ad74a0b3bc5da97f8.tar.gz
talos-hostboot-27bf395be2cd9025abc1a48ad74a0b3bc5da97f8.zip
missing memory: istep 7 and 14 changes
There are two cases where hostboot's attention is required in istep7: - If HRMOR we booted with doesn't fall in the range of proc_mem_to_use's memory, then the SBE is old. HB will do an sbe update and request re-ipl - If HB deconfigured a bunch of dimms in istep7 and ran out of memory, then we will request a reconfig loop Then, in istep14, we added another sanity check to make sure we have memory as expected to prevent unexpected failure after exiting cache contained mode. Change-Id: I018f4ce862cc79b5d7bacbe01cc28d1d2b4fc788 CQ:SW430015 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/59696 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-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/hwas.H33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/include/usr/hwas/common/hwas.H b/src/include/usr/hwas/common/hwas.H
index 06304c29c..120ba0b7d 100644
--- a/src/include/usr/hwas/common/hwas.H
+++ b/src/include/usr/hwas/common/hwas.H
@@ -258,6 +258,39 @@ errlHndl_t check_for_missing_memory (const TARGETING::Target* i_node,
uint8_t & io_proc_mem_to_use,
bool & o_found_missing_mem);
+/*
+ * @brief This function takes in proc target and returns group/chip id
+ * in the following bit format: GGGG CCC
+ * where G = Group Id and C = Chip Id
+ *
+ * @param[in] i_proc: proc target
+ * @retval: chip info including group and chip id
+ */
+uint64_t getGroupChipIdInfo (TARGETING::TargetHandle_t i_proc);
+
+/*
+ * @brief This function takes in the value of ATTR_PROC_MEM_TO_USE
+ * and extract out group and chip id
+ * in the following bit format: GGGG CCC
+ * where G = Group Id and C = Chip Id
+ *
+ * @param[in] i_proc_mem_to_use: Value of ATTR_PROC_MEM_TO_USE
+ * @param[out] o_grp_id: group id
+ * @param[out] o_chip_id: chip id
+ */
+void parseProcMemToUseIntoGrpChipId (uint8_t i_proc_mem_to_use,
+ uint8_t & o_grp_id,
+ uint8_t & o_chip_id);
+
+/*
+ * @brief This function computes whether current value of
+ * PROC_MEM_TO_USE matches with the expected value.
+ * The expected value can change through the IPL because
+ * we might end up deconfiguring dimms.
+ *
+ * @param[out] o_valid: true, if current and expected values are the same
+ */
+errlHndl_t check_current_proc_mem_to_use_is_still_valid (bool o_valid);
}; // end namespace
OpenPOWER on IntegriCloud