Skip to content

Commit

Permalink
Trusted Boot: Report Primary TPM required reason code as terminating
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Nick Bofferding authored and dcrowell77 committed Aug 24, 2018
1 parent d8771d1 commit c3b2b32
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/include/usr/secureboot/trustedboot_reasoncodes.H
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
4 changes: 2 additions & 2 deletions src/usr/secureboot/trusted/trustedboot.C
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -1301,7 +1301,7 @@ void tpmVerifyFunctionalPrimaryTpmExists(

// terminating the IPL with this fail
// Terminate IPL immediately
INITSERVICE::doShutdown(errPlid,isBackgroundShutdown);
INITSERVICE::doShutdown(reasonCode,isBackgroundShutdown);
}
else
{
Expand Down

0 comments on commit c3b2b32

Please sign in to comment.