diff options
Diffstat (limited to 'src/include/usr/hwpf')
| -rwxr-xr-x | src/include/usr/hwpf/hwp/getPllRingAttr.H | 66 | ||||
| -rw-r--r-- | src/include/usr/hwpf/plat/fapiPlatAttributeService.H | 210 |
2 files changed, 276 insertions, 0 deletions
diff --git a/src/include/usr/hwpf/hwp/getPllRingAttr.H b/src/include/usr/hwpf/hwp/getPllRingAttr.H new file mode 100755 index 000000000..fde18436b --- /dev/null +++ b/src/include/usr/hwpf/hwp/getPllRingAttr.H @@ -0,0 +1,66 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/usr/hwpf/hwp/getPllRingAttr.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2013 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ +// $Id: getPllRingAttr.H,v 1.1 2013/09/16 15:40:22 dpeterso Exp $ +/** + * @file getPllRingAttr.H + * + * @brief Prototype for getPllRingAttr() - + * fetch PLL ring attributes based on chip EC and frequencies + * from data from static arrays (fapiPllRingAttr.H) + */ + + #ifndef _HWP_GETPLLRINGATTR_ + #define _HWP_GETPLLRINGATTR_ + +#include <fapi.H> +#define MAX_PLL_RING_SIZE_BYTES 256 + +//#include <fapiPllRingAttr.H> + + +// function pointer typedef definition for HWP call support +typedef fapi::ReturnCode (*getPllRingAttr_FP_t) + (const fapi::AttributeId, const fapi::Target &, uint32_t &, uint8_t *); + +extern "C" +{ +/** + * @brief get specified PLL ring attribute for the specified target CPU. + * + * @param i_attrId - fapi attribute requested by the caller. + * @param i_fapiTarget - cpu target + * @param o_ringLength - out: size of ring buffer that caller has + * allocated + * @param 0_data - out: PLL ring data. + * + * @return fapi::ReturnCode - FAPI_RC_SUCCESS if success, + * relevant error code for failure. + */ + fapi::ReturnCode getPllRingAttr( const fapi::AttributeId i_attrId, + const fapi::Target i_pChipTarget, + uint32_t & o_ringBitLength, + uint8_t *o_data); + +} + +#endif diff --git a/src/include/usr/hwpf/plat/fapiPlatAttributeService.H b/src/include/usr/hwpf/plat/fapiPlatAttributeService.H index 270cd543f..6e5d3b0e6 100644 --- a/src/include/usr/hwpf/plat/fapiPlatAttributeService.H +++ b/src/include/usr/hwpf/plat/fapiPlatAttributeService.H @@ -555,6 +555,30 @@ fapi::ReturnCode fapiPlatDimmGetSpareDram ( const fapi::Target * i_pTarget, uint8_t &o_data); +/** + * @brief This function is called by the FAPI_ATTR_GET macro when getting + * PLL ring attributes. It should not be called directly. + * + * @param[in] i_targAttrId fapi attribute ID + * @param[in] i_target Target pointer to operate on + * @param[in] o_data Pointer to ring data (or flush data) + */ +fapi::ReturnCode fapiPlatGetPllAttr(const fapi::AttributeId i_attrId, + const fapi::Target * const i_pChipTarget, + uint8_t *o_data); + +/** + * @brief This function is called by the FAPI_ATTR_GET macro when getting + * PLL ring attributes. It should not be called directly. + * + * @param[in] i_targAttrId fapi attribute ID + * @param[in] i_target Target pointer to operate on + * @param[in] o_pllRingLength PLL ring length + */ +fapi::ReturnCode fapiPlatGetPllAttr(const fapi::AttributeId i_attrId, + const fapi::Target * const i_pChipTarget, + uint32_t (&o_pllRingLength)); + } // namespace platAttrSvc } // namespace fapi @@ -1561,4 +1585,190 @@ fapi::ReturnCode fapiPlatDimmGetSpareDram ( fapi::FAPI_RC_SUCCESS : fapi::platAttrSvc::fapiPlatDimmGetSpareDram\ (PTARGET, VAL) +//------------------------------------------------------------------------------ +// MACROs to route ATTR PLL Ring accesses to the correct HWSV function +//------------------------------------------------------------------------------ +// DATA accesses +#define ATTR_PROC_AB_BNDY_PLL_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_AB_BNDY_PLL_DATA, PTARGET, VAL )) +#define ATTR_PROC_AB_BNDY_PLL_FOR_DCCAL_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_AB_BNDY_PLL_FOR_DCCAL_DATA, PTARGET, VAL )) +#define ATTR_PROC_PB_BNDY_DMIPLL_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_PB_BNDY_DMIPLL_DATA, PTARGET, VAL )) +#define ATTR_PROC_PB_BNDY_DMIPLL_FOR_DCCAL_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_PB_BNDY_DMIPLL_FOR_DCCAL_DATA, PTARGET, VAL )) +#define ATTR_PROC_PCI_BNDY_PLL_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_PCI_BNDY_PLL_DATA, PTARGET, VAL )) +#define ATTR_PROC_PERV_BNDY_PLL_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_PERV_BNDY_PLL_DATA, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_DATA, PTARGET, VAL )) + +#define ATTR_MEMB_TP_BNDY_PLL_FOR_DCCAL_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_FOR_DCCAL_DATA, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1066_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1066_DATA, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1333_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1333_DATA, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1600_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1600_DATA, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1866_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1866_DATA, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1066_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1066_DATA, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1333_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1333_DATA, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1600_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1600_DATA, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1866_DATA_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1866_DATA, PTARGET, VAL )) + +// FLUSH accesses +#define ATTR_PROC_AB_BNDY_PLL_FLUSH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_AB_BNDY_PLL_FLUSH, PTARGET, VAL )) +#define ATTR_PROC_PB_BNDY_DMIPLL_FLUSH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_PB_BNDY_DMIPLL_FLUSH, PTARGET, VAL )) +#define ATTR_PROC_PCI_BNDY_PLL_FLUSH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_PCI_BNDY_PLL_FLUSH, PTARGET, VAL )) +#define ATTR_PROC_PERV_BNDY_PLL_FLUSH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_PERV_BNDY_PLL_FLUSH, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_FLUSH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_FLUSH, PTARGET, VAL)) + +// LENGTH accesses +#define ATTR_PROC_AB_BNDY_PLL_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_AB_BNDY_PLL_LENGTH, PTARGET, VAL )) +#define ATTR_PROC_PB_BNDY_DMIPLL_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_PB_BNDY_DMIPLL_LENGTH, PTARGET, VAL )) +#define ATTR_PROC_PCI_BNDY_PLL_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_PCI_BNDY_PLL_LENGTH, PTARGET, VAL )) +#define ATTR_PROC_PERV_BNDY_PLL_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_PROC_PERV_BNDY_PLL_LENGTH, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_LENGTH, PTARGET, VAL )) + +#define ATTR_MEMB_TP_BNDY_PLL_FOR_DCCAL_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_FOR_DCCAL_LENGTH, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1066_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1066_LENGTH, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1333_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1333_LENGTH, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1600_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1600_LENGTH, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1866_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4000_MEM1866_LENGTH, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1066_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1066_LENGTH, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1333_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1333_LENGTH, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1600_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1600_LENGTH, PTARGET, VAL )) +#define ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1866_LENGTH_GETMACRO(ID, PTARGET, VAL) \ + fapi::AttrOverrideSync::getAttrOverrideFunc(fapi::ID, PTARGET, &VAL) ?\ + fapi::FAPI_RC_SUCCESS :\ + ( fapi::platAttrSvc::fapiPlatGetPllAttr( \ + ATTR_MEMB_TP_BNDY_PLL_NEST4800_MEM1866_LENGTH, PTARGET, VAL )) + #endif // FAPIPLATATTRIBUTESERVICE_H_ |

