diff options
author | Santosh Puranik <santosh.puranik@in.ibm.com> | 2016-09-26 03:14:57 -0500 |
---|---|---|
committer | Santosh S. Puranik <santosh.puranik@in.ibm.com> | 2016-09-30 02:34:33 -0400 |
commit | d203132a331691e653aee54b339453b391b5e7a0 (patch) | |
tree | 7613274c63d11a0b113b3232089f0dfcd57366a9 /src/hwpf/include/plat | |
parent | 57475477182adeecc322a4a3852857bd5b997993 (diff) | |
download | talos-sbe-d203132a331691e653aee54b339453b391b5e7a0.tar.gz talos-sbe-d203132a331691e653aee54b339453b391b5e7a0.zip |
Removed PPE specific code for SCOMs
Change-Id: Ib15f7f204d5afdba8ce23eaa2b749383b81ae3bc
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/30280
Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Reviewed-by: PARVATHI RACHAKONDA <prachako@in.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/30286
Reviewed-by: Hostboot Team <hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Santosh S. Puranik <santosh.puranik@in.ibm.com>
Diffstat (limited to 'src/hwpf/include/plat')
-rw-r--r-- | src/hwpf/include/plat/plat_hw_access.H | 10 | ||||
-rw-r--r-- | src/hwpf/include/plat/target.H | 59 |
2 files changed, 15 insertions, 54 deletions
diff --git a/src/hwpf/include/plat/plat_hw_access.H b/src/hwpf/include/plat/plat_hw_access.H index c7c73325..cd0078f9 100644 --- a/src/hwpf/include/plat/plat_hw_access.H +++ b/src/hwpf/include/plat/plat_hw_access.H @@ -34,6 +34,7 @@ #include <plat_includes.H> #include "hw_access_def.H" #include <return_code.H> +#include <fapi2_target.H> // PIB errors enum PCB_ERRORS @@ -84,11 +85,11 @@ asm volatile \ /// GetScom #define PLAT_GETSCOM(_m_rc, _m_base, _m_offset, _m_data) \ - _m_rc = fapi2::getscom_abs_wrap(getEffectiveAddress(_m_base, _m_offset), _m_data) + _m_rc = fapi2::getscom_abs_wrap(&(_m_base), _m_offset, _m_data) /// PutScom #define PLAT_PUTSCOM(_m_rc, _m_base, _m_offset, _m_data) \ - _m_rc = fapi2::putscom_abs_wrap(getEffectiveAddress(_m_base, _m_offset), _m_data) + _m_rc = fapi2::putscom_abs_wrap(&(_m_base), _m_offset, _m_data) /// GetCFAM #define PLAT_GETCFAM(_m_base, _m_offset, _m_data) \ @@ -135,6 +136,7 @@ namespace fapi2 fapi2::ReturnCode getRing_verifyAndcleanup(const uint32_t i_ringAddress, const fapi2::RingMode i_ringMode); + typedef union plat_target_handle plat_target_handle_t; /// /// @brief Platform wrapper over PK getscom_abs /// @@ -143,7 +145,7 @@ namespace fapi2 /// /// @return PCB-PIB return code /// - uint32_t getscom_abs_wrap(const uint32_t i_addr, uint64_t *o_data); + uint32_t getscom_abs_wrap(const void *i_target, const uint32_t i_addr, uint64_t *o_data); /// /// @brief Platform wrapper over PK putscom_abs @@ -153,7 +155,7 @@ namespace fapi2 /// /// @return PCB-PIB return code /// - uint32_t putscom_abs_wrap(const uint32_t i_addr, uint64_t i_data); + uint32_t putscom_abs_wrap(const void *i_target, const uint32_t i_addr, uint64_t i_data); /// /// @brief Platform wrapper to retry scom for parity/timeout errors diff --git a/src/hwpf/include/plat/target.H b/src/hwpf/include/plat/target.H index 09c27d0b..c7baef55 100644 --- a/src/hwpf/include/plat/target.H +++ b/src/hwpf/include/plat/target.H @@ -178,18 +178,19 @@ namespace fapi2 template<TargetType T> inline Target<T, V> Target<K, V>::getParent(void) const { - static_assert(((K == TARGET_TYPE_EQ) || + static_assert((((K == TARGET_TYPE_EQ) || (K == TARGET_TYPE_CORE) || (K == TARGET_TYPE_MCBIST) || (K == TARGET_TYPE_PERV) || (K == TARGET_TYPE_EX) || (K == TARGET_TYPE_PROC_CHIP) || (K == (TARGET_TYPE_PROC_CHIP | TARGET_TYPE_EQ)) || - (K == (TARGET_TYPE_PROC_CHIP | TARGET_TYPE_CORE))) && + (K == (TARGET_TYPE_PROC_CHIP | TARGET_TYPE_CORE)) || + (K == TARGET_TYPE_ALL)) && ((T == TARGET_TYPE_EQ) || (T == TARGET_TYPE_EX) || (T == TARGET_TYPE_PROC_CHIP) || - (T == TARGET_TYPE_PERV)), + (T == TARGET_TYPE_PERV))), "Invalid parent/child target type passed"); static_assert(!((K == TARGET_TYPE_EQ) && @@ -198,6 +199,11 @@ namespace fapi2 "Invalid parent for EQ target, must be PERV or " "PROC_CHIP"); + static_assert(!((K == TARGET_TYPE_ALL) && + (T != TARGET_TYPE_PROC_CHIP)), + "Invalid parent for ALL target, must be " + "PROC_CHIP"); + static_assert(!((K == TARGET_TYPE_MCBIST) && (T != TARGET_TYPE_PERV) && (T != TARGET_TYPE_PROC_CHIP)), @@ -348,53 +354,6 @@ namespace fapi2 snprintf(i_buffer, i_bsize, "Target 0x%lx/0x%x", i_target.get(), T); } - template<TargetType T, typename V> - __attribute__((always_inline)) - inline uint32_t getEffectiveAddress(const Target<T, V> &i_target, - const uint32_t i_addr) - { - ScomAddr l_addr = i_addr; - if(0 != static_cast<plat_target_handle_t>(i_target.get()).getAddressOverlay()) - { - l_addr.iv_chiplet = i_target.getChipletNumber(); - } - return l_addr; - } - - inline uint32_t getEffectiveAddress(const Target<TARGET_TYPE_EX> &i_target, - const uint32_t i_addr) - { - ScomAddr l_addr = i_addr; - - if((EQ_CHIPLET_OFFSET <= l_addr.iv_chiplet) && - ((EQ_CHIPLET_OFFSET + EQ_TARGET_COUNT) > l_addr.iv_chiplet)) - { - l_addr.iv_chiplet = i_target.getChipletNumber(); - l_addr.iv_ring = (l_addr.iv_ring - (l_addr.iv_ring % 2)) + - (static_cast<plat_target_handle_t>(i_target.get()).getTargetInstance() % 2); - } - else if ((CORE_CHIPLET_OFFSET <= l_addr.iv_chiplet) && - ((CORE_CHIPLET_OFFSET + CORE_TARGET_COUNT) > l_addr.iv_chiplet)) - { - l_addr.iv_chiplet = CORE_CHIPLET_OFFSET + (l_addr.iv_chiplet % 2) + - (static_cast<plat_target_handle_t>(i_target.get()).getTargetInstance() * 2); - } - else - { - assert(false); - } - return l_addr; - } - - inline uint32_t getEffectiveAddress(const Target<TARGET_TYPE_MCS> &i_target, - const uint32_t i_addr) - { - ScomAddr l_addr = i_addr; - l_addr.iv_chiplet = i_target.getChipletNumber(); - l_addr.iv_satId = (2 * (static_cast<plat_target_handle_t>(i_target.get()).getTargetInstance() % 2)); - return l_addr; - } - /// /// @brief Return the string interpretation of this target /// @tparam T The type of the target |