diff options
author | Sachin Gupta <sgupta2m@in.ibm.com> | 2018-03-08 01:20:56 -0600 |
---|---|---|
committer | Sachin Gupta <sgupta2m@in.ibm.com> | 2018-04-01 22:03:35 -0400 |
commit | 80ef172f20912c3c492ee96a3f474fa20f136961 (patch) | |
tree | a0799046df2498e7daac37a10c8f17a97a265e56 | |
parent | 783b420403b7d649b38ffd4772dc422499914449 (diff) | |
download | talos-sbe-80ef172f20912c3c492ee96a3f474fa20f136961.tar.gz talos-sbe-80ef172f20912c3c492ee96a3f474fa20f136961.zip |
Clear TPM deconfig bit during MPIPL
CQ: SW420513
Change-Id: I3c1fc2fb09e2870c29a4b695ffa6d173ecaaf5bf
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55235
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: RAJA DAS <rajadas2@in.ibm.com>
Reviewed-by: Shakeeb A. Pasha B K <shakeebbk@in.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
-rw-r--r-- | src/sbefw/app/power/sbecmdiplcontrol.C | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/sbefw/app/power/sbecmdiplcontrol.C b/src/sbefw/app/power/sbecmdiplcontrol.C index b96c2b30..f18d41be 100644 --- a/src/sbefw/app/power/sbecmdiplcontrol.C +++ b/src/sbefw/app/power/sbecmdiplcontrol.C @@ -6,6 +6,7 @@ /* OpenPOWER sbe Project */ /* */ /* Contributors Listed Below - COPYRIGHT 2015,2018 */ +/* [+] International Business Machines Corp. */ /* */ /* */ /* Licensed under the Apache License, Version 2.0 (the "License"); */ @@ -103,6 +104,21 @@ ReturnCode performTpmReset() constexpr uint64_t tpmBitMask = 0x0008000000000000ULL; plat_target_handle_t tgtHndl; uint64_t regData = 0; + + // Clear TPM deconfig bit here. + // It is possible that PHYP did TPM deconfig. start cbs clears this + // bit. But in MPIPL this bit is not cleared, so HB IPL will fail. + // bit 12 of PU_SECURITY_SWITCH_REGISTER_SCOM1 clear TPM deconfig + // state. + constexpr uint64_t tpmDeconfigMask = 0x0008000000000000ULL; + rc = putscom_abs_wrap(&tgtHndl, PU_SECURITY_SWITCH_REGISTER_SCOM1, + tpmDeconfigMask); + if( rc != FAPI2_RC_SUCCESS ) + { + SBE_ERROR(SBE_FUNC" Failed to clear TPM deconfig bit"); + break; + } + rc = getscom_abs_wrap (&tgtHndl, PU_PRV_MISC_PPE, ®Data); |