diff options
Diffstat (limited to 'src/sbefw/app/common')
-rw-r--r-- | src/sbefw/app/common/sbecmdgeneric.C | 21 | ||||
-rw-r--r-- | src/sbefw/app/common/sbecmdgeneric.H | 9 |
2 files changed, 29 insertions, 1 deletions
diff --git a/src/sbefw/app/common/sbecmdgeneric.C b/src/sbefw/app/common/sbecmdgeneric.C index 1d78705c..813df873 100644 --- a/src/sbefw/app/common/sbecmdgeneric.C +++ b/src/sbefw/app/common/sbecmdgeneric.C @@ -49,6 +49,24 @@ using namespace fapi2; #ifdef __SBEFW_SEEPROM__ + +static const uint32_t SBE_CAPABILITES_LEN_FIFO = + sizeof(sbeCapabilityRespMsg_t) - + (sizeof(uint32_t) * + (SBE_MAX_CAPABILITIES - CAPABILITIES_LAST_INDEX_FIFO - 1)); + +sbeCapabilityRespMsg::sbeCapabilityRespMsg() : capability{} +{ + verMajor= SBE_FW_MAJOR_VERSION; + verMinor = SBE_FW_MINOR_VERSION; + fwCommitId = SBE_COMMIT_ID; + // Get xip header + P9XipHeader *hdr = getXipHdr(); + for(uint32_t idx=0; idx<sizeof(hdr->iv_buildTag); idx++) + { + buildTag[idx] = hdr->iv_buildTag[idx]; + } +} // Functions //---------------------------------------------------------------------------- uint32_t sbeGetCapabilities (uint8_t *i_pArg) @@ -59,6 +77,7 @@ uint32_t sbeGetCapabilities (uint8_t *i_pArg) sbeRespGenHdr_t respHdr; respHdr.init(); sbeCapabilityRespMsg_t capMsg; + updateFifoCapabilities(capMsg.capability); do { @@ -73,7 +92,7 @@ uint32_t sbeGetCapabilities (uint8_t *i_pArg) break; } - len = sizeof(capMsg)/sizeof(uint32_t); + len = SBE_CAPABILITES_LEN_FIFO / sizeof(uint32_t); rc = sbeDownFifoEnq_mult ( len, ( uint32_t *) &capMsg); if (rc) { diff --git a/src/sbefw/app/common/sbecmdgeneric.H b/src/sbefw/app/common/sbecmdgeneric.H index c387d654..471304c9 100644 --- a/src/sbefw/app/common/sbecmdgeneric.H +++ b/src/sbefw/app/common/sbecmdgeneric.H @@ -92,6 +92,15 @@ typedef struct stashMsg }stashMsg_t; /** + * @brief Update Fifo capabilities + * + * @param[in] capability Pointer to capcbility array + * + * @return void + */ +void updateFifoCapabilities(uint32_t * capability); + +/** * @brief retrieve SBE FFDC on request from FSP. (0xA801) * * @param[in] i_pArg Buffer to be passed to the function (not used as of now) |