diff options
author | Nick Bofferding <bofferdn@us.ibm.com> | 2018-08-21 14:11:58 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-08-24 16:46:49 -0500 |
commit | c3b2b326c53ffb4dd0d7df4496159a4b82d31273 (patch) | |
tree | 92602cd422d8d3d9aa580cb856e51730c33bfa89 /src | |
parent | d8771d1fcc44129caad284cfe6112ec217f80e6a (diff) | |
download | talos-hostboot-c3b2b326c53ffb4dd0d7df4496159a4b82d31273.tar.gz talos-hostboot-c3b2b326c53ffb4dd0d7df4496159a4b82d31273.zip |
Trusted Boot: Report Primary TPM required reason code as terminating
This commit flags the RC_TPM_NOFUNCTIONALTPM_FAIL reason code as a terminating
reason code to tell FSP that there is an expected boot failure without a
deconfiguration. Further, when this error occurs, it TIs with this error's
reason code instead of its PLID, so that FSP will balk to the alignment check to
failover and use the backup TPM, when possible.
Change-Id: I6809dd1de6f37ce50d6528ce1014c5ede115b0dd
CQ: SW442904
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/64973
Reviewed-by: ILYA SMIRNOV <ismirno@us.ibm.com>
Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Marshall J. Wilks <mjwilks@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/include/usr/secureboot/trustedboot_reasoncodes.H | 1 | ||||
-rw-r--r-- | src/usr/secureboot/trusted/trustedboot.C | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/include/usr/secureboot/trustedboot_reasoncodes.H b/src/include/usr/secureboot/trustedboot_reasoncodes.H index 30865f5e0..677065d65 100644 --- a/src/include/usr/secureboot/trustedboot_reasoncodes.H +++ b/src/include/usr/secureboot/trustedboot_reasoncodes.H @@ -88,6 +88,7 @@ namespace TRUSTEDBOOT RC_TPMLOGMGR_ADDEVENT_FAIL = TRBOOT_COMP_ID | 0xAA, RC_TPMLOGMGR_ADDEVENTMARSH_FAIL = TRBOOT_COMP_ID | 0xAB, RC_TPMLOGMGR_INIT_FAIL = TRBOOT_COMP_ID | 0xAC, + //termination_rc RC_TPM_NOFUNCTIONALTPM_FAIL = TRBOOT_COMP_ID | 0xAD, RC_TPM_COMMAND_FAIL = TRBOOT_COMP_ID | 0xAE, RC_TPM_INVALID_ARGS = TRBOOT_COMP_ID | 0xAF, diff --git a/src/usr/secureboot/trusted/trustedboot.C b/src/usr/secureboot/trusted/trustedboot.C index 0ae7ff6b9..b62783eda 100644 --- a/src/usr/secureboot/trusted/trustedboot.C +++ b/src/usr/secureboot/trusted/trustedboot.C @@ -1267,7 +1267,7 @@ void tpmVerifyFunctionalPrimaryTpmExists( err->collectTrace(TRBOOT_COMP_NAME); err->collectTrace( I2C_COMP_NAME ); err->collectTrace( TPMDD_COMP_NAME ); - uint32_t errPlid = err->plid(); + const auto reasonCode = err->reasonCode(); // Add Security Registers to the error log SECUREBOOT::addSecurityRegistersToErrlog(err); @@ -1301,7 +1301,7 @@ void tpmVerifyFunctionalPrimaryTpmExists( // terminating the IPL with this fail // Terminate IPL immediately - INITSERVICE::doShutdown(errPlid,isBackgroundShutdown); + INITSERVICE::doShutdown(reasonCode,isBackgroundShutdown); } else { |