diff options
Diffstat (limited to 'src/usr/hdat/hdatmsvpd.H')
-rwxr-xr-x | src/usr/hdat/hdatmsvpd.H | 49 |
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 |