diff options
author | Raja Das <rajadas2@in.ibm.com> | 2016-10-18 01:23:48 -0500 |
---|---|---|
committer | AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com> | 2016-11-02 06:39:05 -0400 |
commit | 21b7c300f0f0656acbd463c8961746f90491fdee (patch) | |
tree | 79381706a91bdcd31501108bbfa9abd99135bff0 /src/sbefw | |
parent | 2a9b621e33be7093c19abeef24afb20e93ce7392 (diff) | |
download | talos-sbe-21b7c300f0f0656acbd463c8961746f90491fdee.tar.gz talos-sbe-21b7c300f0f0656acbd463c8961746f90491fdee.zip |
PSU ChipOp to set System Fabric Id Map
Change-Id: Ie7f7ba09afc12021f55291db2adbacf13f09d2aa
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31392
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>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Shakeeb A. Pasha B K <shakeebbk@in.ibm.com>
Reviewed-by: AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com>
Diffstat (limited to 'src/sbefw')
-rw-r--r-- | src/sbefw/sbe_host_intf.H | 5 | ||||
-rw-r--r-- | src/sbefw/sbecmdgeneric.C | 52 | ||||
-rw-r--r-- | src/sbefw/sbecmdgeneric.H | 9 | ||||
-rw-r--r-- | src/sbefw/sbecmdparser.C | 5 |
4 files changed, 69 insertions, 2 deletions
diff --git a/src/sbefw/sbe_host_intf.H b/src/sbefw/sbe_host_intf.H index a197a432..82613027 100644 --- a/src/sbefw/sbe_host_intf.H +++ b/src/sbefw/sbe_host_intf.H @@ -77,8 +77,9 @@ enum sbePsuRingAccessMessages */ enum sbePsuGenericMessages { - SBE_PSU_GENERIC_MSG_QUIESCE = 0x05, - SBE_PSU_GENERIC_MSG_UNKNOWN = 0xFF, + SBE_PSU_GENERIC_MSG_QUIESCE = 0x05, + SBE_PSU_GENERIC_MSG_SYSTEM_FABRIC_MAP = 0x06, + SBE_PSU_GENERIC_MSG_UNKNOWN = 0xFF, }; /** diff --git a/src/sbefw/sbecmdgeneric.C b/src/sbefw/sbecmdgeneric.C index 1c7fe1ea..18733130 100644 --- a/src/sbefw/sbecmdgeneric.C +++ b/src/sbefw/sbecmdgeneric.C @@ -41,6 +41,9 @@ #include "sbeHostMsg.H" #include "sbeHostUtils.H" +#include "fapi2.H" + +using namespace fapi2; // Forward declaration sbeCapabilityRespMsg::sbeCapabilityRespMsg() @@ -255,3 +258,52 @@ uint32_t sbePsuQuiesce( uint8_t *i_pArg ) #undef SBE_FUNC } +//---------------------------------------------------------------------------- +uint32_t sbeSetSystemFabricMap( uint8_t *i_pArg ) +{ + #define SBE_FUNC "sbeSetSystemFabricMap" + SBE_ENTER(SBE_FUNC); + uint32_t l_rc = SBE_SEC_OPERATION_SUCCESSFUL; + uint32_t l_fapiRc = FAPI2_RC_SUCCESS; + + do + { + // Send Ack to Host via SBE_SBE2PSU_DOORBELL_SET_BIT1 + // This util method will check internally on the mbox0 register if + // ACK is requested. + l_rc = sbeAcknowledgeHost(); + if (l_rc != SBE_SEC_OPERATION_SUCCESSFUL) + { + SBE_ERROR(SBE_FUNC " Failed to Sent Ack to Host over " + "SBE_SBE2PSU_DOORBELL_SET_BIT1"); + break; + } + + uint64_t l_sysFabricMap = 0; + l_rc = sbeReadPsu2SbeMbxReg(SBE_HOST_PSU_MBOX_REG1, + (sizeof(l_sysFabricMap)/sizeof(uint64_t)), + &l_sysFabricMap); + + if(SBE_SEC_OPERATION_SUCCESSFUL != l_rc) + { + SBE_ERROR(SBE_FUNC" Failed to extract SBE_HOST_PSU_MBOX_REG1"); + break; + } + + SBE_INFO(SBE_FUNC "Sytem Fabric Map [0x%08X][%08X]", + SBE::higher32BWord(l_sysFabricMap), + SBE::lower32BWord(l_sysFabricMap)); + + FAPI_ATTR_SET(fapi2::ATTR_SBE_SYS_CONFIG, + fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>(), + l_sysFabricMap); + }while(0); + + // Send the response + sbePSUSendResponse(g_sbeSbe2PsuRespHdr, l_fapiRc, l_rc); + + SBE_EXIT(SBE_FUNC); + return l_rc; + #undef SBE_FUNC +} + diff --git a/src/sbefw/sbecmdgeneric.H b/src/sbefw/sbecmdgeneric.H index 8b5cd385..beaffbac 100644 --- a/src/sbefw/sbecmdgeneric.H +++ b/src/sbefw/sbecmdgeneric.H @@ -70,4 +70,13 @@ uint32_t sbeFifoQuiesce(uint8_t *i_pArg); */ uint32_t sbePsuQuiesce(uint8_t *i_pArg); +/** + * @brief SBE Psu Set System Fabric Map (0xD706) + * + * @param[in] i_pArg Buffer to be passed to the function (not used as of now) + * + * @return Rc from the Psu access utility + */ +uint32_t sbeSetSystemFabricMap(uint8_t *i_pArg); + #endif // __SBEFW_SBECMDGENERIC_H diff --git a/src/sbefw/sbecmdparser.C b/src/sbefw/sbecmdparser.C index a1b7a2ca..a7be57a6 100644 --- a/src/sbefw/sbecmdparser.C +++ b/src/sbefw/sbecmdparser.C @@ -254,6 +254,11 @@ static sbeCmdStruct_t g_sbePsuGenericCmdArray[] = SBE_PSU_GENERIC_MSG_QUIESCE, SBE_NO_FENCE, }, + + {sbeSetSystemFabricMap, + SBE_PSU_GENERIC_MSG_SYSTEM_FABRIC_MAP, + SBE_NO_FENCE, + }, }; //////////////////////////////////////////////////////////////// |