summaryrefslogtreecommitdiffstats
path: root/src/usr/hdat/hdatmsvpd.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/hdat/hdatmsvpd.H')
-rwxr-xr-xsrc/usr/hdat/hdatmsvpd.H49
1 files changed, 46 insertions, 3 deletions
diff --git a/src/usr/hdat/hdatmsvpd.H b/src/usr/hdat/hdatmsvpd.H
index 0778e3e9a..93955ba39 100755
--- a/src/usr/hdat/hdatmsvpd.H
+++ b/src/usr/hdat/hdatmsvpd.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016,2018 */
+/* Contributors Listed Below - COPYRIGHT 2016,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -63,6 +63,10 @@ const uint32_t HDAT_START_INSTANCE = 0;
const uint32_t HDAT_RHB_MAX_RANGE_ENTRIES = 20;
const uint32_t MAX_DIMMS_PER_MCBIST = 8;
+//@TODO:RTC 213230(HDAT Axone additional support)
+//Need to revisit the number if needed
+const uint32_t HDAT_MAX_MSAREA_AXONE = 32;
+
/** @brief Structure version number
*/
const uint16_t HDAT_MS_VPD_VERSION = 0x24;
@@ -632,6 +636,7 @@ class HdatMsVpd : public HdatHdif
* @param[in] i_startMirrAddr - Specifies the starting mirrorable
* address for range
* @param[in] i_hdatMemCntlID - Memory Controller ID
+ * @param[in] i_hdatSmf - Whether the range is in SMF memory
*
* @return A null error log handle if successful, else the return code
* pointed to by errlHndl_t contains one of:
@@ -645,7 +650,8 @@ class HdatMsVpd : public HdatHdif
bool i_rangeIsMirrorable = false,
uint8_t i_mirroringAlgorithm = 0,
uint64_t i_startMirrAddr = 0,
- uint32_t i_hdatMemCntlID = 0);
+ uint32_t i_hdatMemCntlID = 0,
+ bool i_hdatSmf = false);
/**
@@ -809,10 +815,12 @@ class HdatMsVpd : public HdatHdif
/**
* @brief Gets maximum configured memory address
*
+ * @param[in] i_model Target model
*
* @return value of ms address
*/
- uint64_t hdatGetMaxMemConfiguredAddress();
+ uint64_t hdatGetMaxMemConfiguredAddress(
+ TARGETING::ATTR_MODEL_type i_model);
/**
* @brief Fetches the group of MC
@@ -828,6 +836,19 @@ class HdatMsVpd : public HdatHdif
uint32_t& o_groupOfMc);
/**
+ * @brief Fetches the group of MCC
+ *
+ * @param[in] i_pTarget Proc target
+ * @param[in] i_pMccTarget MCC target
+ * @param[out] o_groupOfMcc MCC group value
+ *
+ * @return Success or failure
+ */
+ bool hdatFindGroupForMcc(const TARGETING::Target *i_pProcTarget,
+ const TARGETING::Target *i_pMccTarget,
+ uint32_t& o_groupOfMcc);
+
+ /**
* @brief Get the DIMMS list present on the system
*
* @param[in] i_pTarget Mca target
@@ -854,6 +875,28 @@ class HdatMsVpd : public HdatHdif
hdatMemParentType& i_parentType);
/**
+ * @brief Get the DIMMS list present on the axone system
+ *
+ * @param[in] i_pTarget OCMB Chip target
+ * @param[out] o_areas list of ram area structure based on the DIMM
+ * present.
+ * @param[out] o_areaSize - Total DIMM size
+ * @param[out] o_dimmNum - Total DIMM number
+ * @param[out] o_areaFunctional - DIMM functional status
+ * @param[out] o_parentType - memory parent type based on whether
+ * the dimms are pluggable or soldered
+ *
+ * @return A null error log handle if successful, else the return the
+ * error handle
+ */
+ errlHndl_t hdatScanDimmsAxone(const TARGETING::Target *i_pOcmbTarget,
+ std::list<hdatRamArea>& o_areas,
+ uint32_t& o_areaSize,
+ uint32_t& o_dimmNum,
+ bool& o_areaFunctional,
+ hdatMemParentType& i_parentType);
+
+ /**
* @brief Get max memory blocks connected to membuf
*
* @param[in] i_pTarget Mcs target
OpenPOWER on IntegriCloud