diff options
author | Stephen Cprek <smcprek@us.ibm.com> | 2017-08-21 16:54:52 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-08-29 10:18:58 -0400 |
commit | cd1d9e3aa3aca78d6b9d3bfce3f944a7be3918d0 (patch) | |
tree | aa5adf9ba9dd75fed7373e1a95858251233ea98a /src/usr/hdat | |
parent | 5ee8711939091cb92bc7637383eb31605b8195d5 (diff) | |
download | talos-hostboot-cd1d9e3aa3aca78d6b9d3bfce3f944a7be3918d0.tar.gz talos-hostboot-cd1d9e3aa3aca78d6b9d3bfce3f944a7be3918d0.zip |
Add HDAT Permissions type to Hostboot Reserved Memory Sections
Additionally pre-verified images are now marked read only
Change-Id: Ieba7a4d3e787d155bb3217d52fd9f7cd6ea3dae2
RTC:178470
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44936
Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-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/usr/hdat')
-rwxr-xr-x | src/usr/hdat/hdatmsvpd.C | 9 | ||||
-rwxr-xr-x | src/usr/hdat/hdatmsvpd.H | 8 |
2 files changed, 12 insertions, 5 deletions
diff --git a/src/usr/hdat/hdatmsvpd.C b/src/usr/hdat/hdatmsvpd.C index 9a488351c..ca079fe4f 100755 --- a/src/usr/hdat/hdatmsvpd.C +++ b/src/usr/hdat/hdatmsvpd.C @@ -278,7 +278,8 @@ errlHndl_t HdatMsVpd::addUEAddrRange(hdatMsAddr_t &i_addr) errlHndl_t HdatMsVpd::addRHBAddrRange(uint32_t i_dbob_id, hdatMsAddr_t &i_start, hdatMsAddr_t &i_end, uint32_t i_labelSize, - uint8_t* &i_labelStringPtr) + uint8_t* &i_labelStringPtr, + hdatRhbPermType i_permission) { errlHndl_t l_errlHndl = NULL; hdatMsVpdRhbAddrRange_t *l_addr; @@ -318,6 +319,8 @@ errlHndl_t HdatMsVpd::addRHBAddrRange(uint32_t i_dbob_id, hdatMsAddr_t &i_start, HDAT_INF("hdatmsvpd:addRHBAddrRange " "i_labelStringPtr is NULL"); } + l_addr->hdatRhbPermission = i_permission; + iv_RHBaddrRngArrayHdr.hdatArrayCnt++; } else @@ -1367,7 +1370,7 @@ errlHndl_t HdatMsVpd::hdatLoadMsData(uint32_t &o_size, uint32_t &o_count) l_pMcsTarget->getAttr<TARGETING::ATTR_HUID>()); break; } - + // Need to get i2c Master data correctly std::vector<hdatI2cData_t> l_i2cDevEntries; @@ -1519,7 +1522,7 @@ errlHndl_t HdatMsVpd::hdatLoadMsData(uint32_t &o_size, uint32_t &o_count) } if(l_pProcTarget->getAttr<TARGETING::ATTR_MODEL>() == TARGETING::MODEL_NIMBUS) { - // Set the memory controller ID + // Set the memory controller ID l_hdatMemcntrlID |= 1 << (31 - l_pMcbistTarget->getAttr<TARGETING::ATTR_CHIP_UNIT>()); l_hdatMemcntrlID |= 1 << (31 - (l_pMcsTarget->getAttr<TARGETING::ATTR_CHIP_UNIT>() + 4)); l_hdatMemcntrlID |= 1 << (31 - (l_pMcaTarget->getAttr<TARGETING::ATTR_CHIP_UNIT>() + 8)); diff --git a/src/usr/hdat/hdatmsvpd.H b/src/usr/hdat/hdatmsvpd.H index 0f3b7924f..429d4dc3c 100755 --- a/src/usr/hdat/hdatmsvpd.H +++ b/src/usr/hdat/hdatmsvpd.H @@ -184,7 +184,8 @@ struct hdatMsVpdRhbAddrRange_t // address+1 uint32_t hdatRhbLabelSize; // 0x0014 Label size uint8_t hdatRhbLabelString[64]; // 0x0018 Label string Ptr - uint8_t reserved[8]; // 0x0058 Reserved + hdatRhbPermType hdatRhbPermission; // 0x0058 R/W Permissions + uint8_t reserved[7]; // 0x0059 Reserved } __attribute__ ((packed)); /** @brief Reserved HB length @@ -388,6 +389,7 @@ class HdatMsVpd : public HdatHdif * @param[in] i_end - The end address of the range * @param[in] i_labelSize - RHB Label Size * @param[in] i_labelStringPtr - RHB Label String + * @param[in] i_permission - R/W permissions for RHB. * * @return A null error log handle if successful, else the return code * pointed to by o_errlHndl contains one of: @@ -397,7 +399,9 @@ class HdatMsVpd : public HdatHdif errlHndl_t addRHBAddrRange( uint32_t i_dbob_id, hdatMsAddr_t &i_start, hdatMsAddr_t &i_end, uint32_t i_labelSize, - uint8_t* &i_labelStringPtr); + uint8_t* &i_labelStringPtr, + hdatRhbPermType i_permission = + HDAT::RHB_READ_WRITE); /** * @brief Update the mainstore VPD with Barrier Synchronization Register |