Skip to content

Commit

Permalink
MPIPL:SW485350
Browse files Browse the repository at this point in the history
Modify the setMpIplMode() not to modify the cached value of mbx3
register until defect SW485901 is addressed.

Change-Id: I890ab2302e1453aca8cd41ff6c822287b31bd098
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/91970
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: RAJA DAS <rajadas2@in.ibm.com>
  • Loading branch information
nmuruli authored and RAJA DAS committed Feb 20, 2020
1 parent 7247b20 commit 099e740
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions src/sbefw/core/sberegaccess.C
Expand Up @@ -317,16 +317,37 @@ uint32_t SbeRegAccess::setMpIplMode(const bool i_set)
#define SBE_FUNC "SbeRegAccess::setMpIplMode"
uint32_t rc = 0;
uint8_t l_set = i_set;
rc = getscom_abs(PERV_SCRATCH_REGISTER_3_SCOM, &iv_mbx3);

//NOTE: FSP system during the reset-reload to runtime loses the CFAM 283A,
//SCOM 5003A content. As a workaround we will use iv_mbx3 to do read modify
//write into 5003A until HWSV fixes the defect SW485901.We will only update
//the MPIPL bit in the iv_mbx3
uint64_t scratch3Reg = 0;
rc = getscom_abs(PERV_SCRATCH_REGISTER_3_SCOM, &scratch3Reg);
if(rc)
{
SBE_ERROR(SBE_FUNC"Failed read PERV_SCRATCH_REGISTER_3_SCOM "
"RC: 0x%08X", rc);
}

//Update the MPIPL mode bit in the SBE cached iv_mbx3 value.
iv_mpiplMode = i_set;
//Update the Attribute
PLAT_ATTR_INIT(ATTR_IS_MPIPL, Target<TARGET_TYPE_SYSTEM>(), l_set);
rc = putscom_abs(PERV_SCRATCH_REGISTER_3_SCOM, iv_mbx3);

if(i_set)
{
//Set the MPIPL bit
scratch3Reg = scratch3Reg | 0x2000000000000000;
}
else
{
//Clear the MPIPL bit
scratch3Reg = scratch3Reg & 0xDFFFFFFFFFFFFFFF;
}

//Write back to the register
rc = putscom_abs(PERV_SCRATCH_REGISTER_3_SCOM, scratch3Reg);
if(rc)
{
SBE_ERROR(SBE_FUNC"Failed to set/clear MPIPL flag in "
Expand Down

0 comments on commit 099e740

Please sign in to comment.