diff options
author | Santosh Puranik <santosh.puranik@in.ibm.com> | 2016-10-28 02:24:27 -0500 |
---|---|---|
committer | Sachin Gupta <sgupta2m@in.ibm.com> | 2016-10-31 15:54:15 -0400 |
commit | d0b82bc3bc58e6382a70e18bc14f8f7bcdf165d0 (patch) | |
tree | c739291bc1a338294235f026d1b5be8c47b544dd /src | |
parent | 4cf3d623b7e4148df3462431cbb21bd26dc095b5 (diff) | |
download | talos-sbe-d0b82bc3bc58e6382a70e18bc14f8f7bcdf165d0.tar.gz talos-sbe-d0b82bc3bc58e6382a70e18bc14f8f7bcdf165d0.zip |
Fix fapi2::Target creation on the SBE
-- Made plat target c'tor explicit so that fapi2::Target
can't be constructed with a uint32_t
Change-Id: Ibcfa3bffe41afdcef7256c3a65ffee5ef23fc76b
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31943
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/hwpf/include/plat/plat_target.H | 4 | ||||
-rw-r--r-- | src/sbefw/sbecmdcntrldmt.C | 5 | ||||
-rw-r--r-- | src/sbefw/sbecmdmemaccess.C | 8 | ||||
-rw-r--r-- | src/sbefw/sbecmdmpipl.C | 3 | ||||
-rw-r--r-- | src/sbefw/sbecmdringaccess.C | 4 | ||||
-rw-r--r-- | src/sbefw/sbefapiutil.C | 2 |
6 files changed, 15 insertions, 11 deletions
diff --git a/src/hwpf/include/plat/plat_target.H b/src/hwpf/include/plat/plat_target.H index bf7bcad3..14df2ab8 100644 --- a/src/hwpf/include/plat/plat_target.H +++ b/src/hwpf/include/plat/plat_target.H @@ -90,7 +90,7 @@ namespace fapi2 /// /// @param i_value Value to instantiate handle with /// - plat_target_handle(uint32_t i_value = 0):value(i_value) {} + explicit plat_target_handle(uint32_t i_value = 0):value(i_value) {} /// /// @brief Get the fapi2::TargetType for this target @@ -210,7 +210,7 @@ namespace fapi2 { static_assert((MULTICAST != true) || (K == TARGET_TYPE_PROC_CHIP), "Only PROC_CHIP types can be multicast"); - plat_target_handle_t l_handle = 0; + plat_target_handle_t l_handle; if(MULTICAST == true) { diff --git a/src/sbefw/sbecmdcntrldmt.C b/src/sbefw/sbecmdcntrldmt.C index eb143549..043e89fb 100644 --- a/src/sbefw/sbecmdcntrldmt.C +++ b/src/sbefw/sbecmdcntrldmt.C @@ -152,8 +152,9 @@ uint32_t sbeStartCntlDmt() FAPI_ATTR_GET(fapi2::ATTR_MASTER_CORE,l_procTgt,l_coreId); // Construct the Master Core Target - fapi2::Target<fapi2::TARGET_TYPE_CORE > l_coreTgt( - (uint64_t)l_coreId); + Target<TARGET_TYPE_CORE> l_coreTgt( + plat_getTargetHandleByChipletNumber<TARGET_TYPE_CORE>( + CORE_CHIPLET_OFFSET + l_coreId)); // Call Hwp p9_sbe_check_master_stop15 and loop // Go around a loop till you get FAPI2_RC_SUCCESS diff --git a/src/sbefw/sbecmdmemaccess.C b/src/sbefw/sbecmdmemaccess.C index f9221a13..51d1d430 100644 --- a/src/sbefw/sbecmdmemaccess.C +++ b/src/sbefw/sbecmdmemaccess.C @@ -50,7 +50,7 @@ using namespace fapi2; #ifdef SEEPROM_IMAGE // Using Function pointer to force long call p9_adu_access_FP_t p9_adu_access_hwp = &p9_adu_access; -p9_adu_setup_FP_t p9_adu_setup_hwp = &p9_adu_setup; +p9_adu_setup_FP_t p9_adu_setup_hwp = &p9_adu_setup; #endif // Buffer requirement for ADU and PBA on the stack @@ -65,7 +65,7 @@ static const uint32_t ADU_SIZE_MULTIPLIER_FOR_LEN_ALIGNMENT = 2; static const uint32_t PBA_SIZE_MULTIPLIER_FOR_LEN_ALIGNMENT = 32; //Default EX Target ChipletId to be used in PBA by default -static const uint32_t PBA_DEFAULT_EX_CHIPLET_ID = 7; +static const uint32_t PBA_DEFAULT_EX_CHIPLET_ID = 0x20; /** * @brief static definition of parameters passed in adu chip-ops @@ -196,7 +196,9 @@ uint32_t processPbaRequest(const sbeMemAccessReqMsgHdr_t &i_hdr, // Proc Chip Target Target<fapi2::TARGET_TYPE_PROC_CHIP> l_proc = plat_getChipTarget(); // Default EX Target Init..Not changing it for the time being - Target<fapi2::TARGET_TYPE_EX > l_ex((uint64_t)PBA_DEFAULT_EX_CHIPLET_ID); + Target<TARGET_TYPE_EX> l_ex( + plat_getTargetHandleByChipletNumber<TARGET_TYPE_EX>( + PBA_DEFAULT_EX_CHIPLET_ID)); p9_PBA_oper_flag l_myPbaFlag; // Determine the access flags diff --git a/src/sbefw/sbecmdmpipl.C b/src/sbefw/sbecmdmpipl.C index b898852a..9e03f9b2 100644 --- a/src/sbefw/sbecmdmpipl.C +++ b/src/sbefw/sbecmdmpipl.C @@ -6,6 +6,7 @@ /* OpenPOWER sbe Project */ /* */ /* Contributors Listed Below - COPYRIGHT 2016 */ +/* [+] International Business Machines Corp. */ /* */ /* */ /* Licensed under the Apache License, Version 2.0 (the "License"); */ @@ -195,7 +196,7 @@ uint32_t sbeStopClocks(uint8_t *i_pArg) else // for a single Core/Cache chiplet { // Construct the Target - fapi2::plat_target_handle_t l_tgtHndl = {0}; + fapi2::plat_target_handle_t l_tgtHndl; // No Need to check the return here, it's already validated sbeGetFapiTargetHandle( l_reqMsg.targetType, l_reqMsg.chipletId, diff --git a/src/sbefw/sbecmdringaccess.C b/src/sbefw/sbecmdringaccess.C index e837b8a1..c0e7cb0e 100644 --- a/src/sbefw/sbecmdringaccess.C +++ b/src/sbefw/sbecmdringaccess.C @@ -71,7 +71,7 @@ uint32_t sbePutRingFromImagePSU (uint8_t *i_pArg) } // Construct a Target from Chiplet ID and Target Type - fapi2::plat_target_handle_t l_tgtHndl = {0}; + fapi2::plat_target_handle_t l_tgtHndl; if(!sbeGetFapiTargetHandle(l_cmd.TargetType, l_cmd.ChipletID, l_tgtHndl)) { @@ -260,7 +260,7 @@ uint32_t sbePutRing(uint8_t *i_pArg) // Length is not part of chipop. So take length from total length len = g_sbeFifoCmdHdr.len - sizeof(g_sbeFifoCmdHdr)/sizeof(uint32_t); - uint32_t rs4FifoEntries = len - + uint32_t rs4FifoEntries = len - sizeof(sbePutRingMsgHdr_t)/sizeof(uint32_t); if( rs4FifoEntries > (SBE_PUT_RING_RS4_MAX_DOUBLE_WORDS * 2) ) diff --git a/src/sbefw/sbefapiutil.C b/src/sbefw/sbefapiutil.C index 79fb46bb..3d156a17 100644 --- a/src/sbefw/sbefapiutil.C +++ b/src/sbefw/sbefapiutil.C @@ -6,6 +6,7 @@ /* OpenPOWER sbe Project */ /* */ /* Contributors Listed Below - COPYRIGHT 2016 */ +/* [+] International Business Machines Corp. */ /* */ /* */ /* Licensed under the Apache License, Version 2.0 (the "License"); */ @@ -37,7 +38,6 @@ bool sbeGetFapiTargetHandle(uint16_t i_targetType, fapi2::plat_target_handle_t &o_tgtHndl) { bool l_rc = true; - o_tgtHndl = NULL; switch(i_targetType) { case TARGET_EX: |