From d92d751ca50a2ca19bdbdec06ed4ad05339eaf3e Mon Sep 17 00:00:00 2001 From: Mike Baiocchi Date: Fri, 19 Jun 2015 03:51:14 -0500 Subject: Changes for Brazos 2z/3z Support This commit has the hostboot changes for Brazos 2z/3z support along with some attributes that Hostboot and HWSV share. It also contains memory XML and HWP changes from SW305517 and SW305518. Change-Id: I71896dfac6946624bed3e216fe7823bd73e8e6bc RTC: 125037 CQ:SW305518 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/19306 Reviewed-by: PRACHI GUPTA Reviewed-by: STEPHEN GLANCY Reviewed-by: Michael D. Pardeik Reviewed-by: Michael Baiocchi Tested-by: Michael Baiocchi Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/19375 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Reviewed-by: WILLIAM G. HOFFA Reviewed-by: Nicholas E. Bofferding Tested-by: Jenkins OP HW Reviewed-by: A. Patrick Williams III --- .../usr/hwpf/plat/fapiPlatAttributeService.H | 88 ++++++++++++++++++++++ 1 file changed, 88 insertions(+) (limited to 'src/include/usr/hwpf/plat') diff --git a/src/include/usr/hwpf/plat/fapiPlatAttributeService.H b/src/include/usr/hwpf/plat/fapiPlatAttributeService.H index 58efade6f..38ea06355 100644 --- a/src/include/usr/hwpf/plat/fapiPlatAttributeService.H +++ b/src/include/usr/hwpf/plat/fapiPlatAttributeService.H @@ -795,6 +795,20 @@ fapi::ReturnCode fapiPlatGetTpVitlSpyLengthAttr( fapi::ReturnCode fapiPlatGetTpVitlSpyOffsetAttr( const fapi::Target * i_pProcTarget, uint32_t (&o_data)[SPY_OFFSET_SIZE]); +/* + * @brief This function is called by the FAPI_ATTR_GET macro when getting + * certain memory attributes + * It should not be called directly. + * + * @param[in] i_pTarget Target Centaur pointer + * @param[in] i_attr Attribute Id + * @param[out] o_val Attribute Value + * @return ReturnCode. Zero on success, else platform specified error + */ +fapi::ReturnCode fapiPlatGetMemAttrData ( + const fapi::Target * i_pTarget, + const TARGETING::ATTRIBUTE_ID i_attr, + uint32_t & o_val); } // namespace platAttrSvc @@ -2748,4 +2762,78 @@ fapi::ReturnCode fapiPlatGetTpVitlSpyOffsetAttr( fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? fapi::FAPI_RC_SUCCESS : \ fapi::platAttrSvc::fapiPlatGetTpVitlSpyOffsetAttr(PTARGET, VAL) +//------------------------------------------------------------------------------ +// MACROS to support Memory Attributes at node level +//------------------------------------------------------------------------------ +#define ATTR_MSS_VDD_SLOPE_ACTIVE_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(\ + PTARGET, TARGETING::ATTR_MSS_CENT_VDD_SLOPE_ACTIVE, VAL) +#define ATTR_MSS_VDD_SLOPE_INACTIVE_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(\ + PTARGET, TARGETING::ATTR_MSS_CENT_VDD_SLOPE_INACTIVE, VAL) +#define ATTR_MSS_VDD_SLOPE_INTERCEPT_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(\ + PTARGET, TARGETING::ATTR_MSS_CENT_VDD_INTERCEPT, VAL) +#define ATTR_MSS_VCS_SLOPE_ACTIVE_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(\ + PTARGET, TARGETING::ATTR_MSS_CENT_VCS_SLOPE_ACTIVE, VAL) +#define ATTR_MSS_VCS_SLOPE_INACTIVE_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(\ + PTARGET, TARGETING::ATTR_MSS_CENT_VCS_SLOPE_INACTIVE, VAL) +#define ATTR_MSS_VCS_SLOPE_INTERCEPT_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(\ + PTARGET, TARGETING::ATTR_MSS_CENT_VCS_INTERCEPT, VAL) +#define ATTR_MSS_VPP_SLOPE_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(\ + PTARGET, TARGETING::ATTR_MSS_VOLT_VPP_SLOPE_EFF_CONFIG, VAL) +#define ATTR_MSS_VPP_SLOPE_INTERCEPT_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(\ + PTARGET, TARGETING::ATTR_MSS_VOLT_VPP_INTERCEPT_EFF_CONFIG, VAL) +#define ATTR_MSS_DDR3_VDDR_SLOPE_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(\ + PTARGET, TARGETING::ATTR_MSS_VOLT_DDR3_VDDR_SLOPE_EFF_CONFIG, VAL) +#define ATTR_MSS_DDR3_VDDR_INTERCEPT_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(PTARGET,\ + TARGETING::ATTR_MSS_VOLT_DDR3_VDDR_INTERCEPT_EFF_CONFIG, VAL) +#define ATTR_MRW_DDR3_VDDR_MAX_LIMIT_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(\ + PTARGET, TARGETING::ATTR_MRW_DDR3_VDDR_MAX_LIMIT_EFF_CONFIG, VAL) +#define ATTR_MSS_DDR4_VDDR_SLOPE_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(\ + PTARGET, TARGETING::ATTR_MSS_VOLT_DDR4_VDDR_SLOPE_EFF_CONFIG, VAL) +#define ATTR_MSS_DDR4_VDDR_INTERCEPT_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(PTARGET,\ + TARGETING::ATTR_MSS_VOLT_DDR4_VDDR_INTERCEPT_EFF_CONFIG, VAL) +#define ATTR_MRW_DDR4_VDDR_MAX_LIMIT_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ? \ + fapi::FAPI_RC_SUCCESS : \ + fapi::platAttrSvc::fapiPlatGetMemAttrData(\ + PTARGET, TARGETING::ATTR_MRW_DDR4_VDDR_MAX_LIMIT_EFF_CONFIG, VAL) + #endif // FAPIPLATATTRIBUTESERVICE_H_ -- cgit v1.2.3