summaryrefslogtreecommitdiffstats
path: root/src/usr/secureboot/trusted/base
diff options
context:
space:
mode:
authorNick Bofferding <bofferdn@us.ibm.com>2019-03-28 09:15:07 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2019-04-01 17:05:19 -0500
commitca03643dd8935f9c839cf8dfd4971c519476f4a1 (patch)
tree979a950125dbd7adc734b17979e3085a59f19e4d /src/usr/secureboot/trusted/base
parentde2312a44b13b46a9dded3e60aeca6a13f8662de (diff)
downloadtalos-hostboot-ca03643dd8935f9c839cf8dfd4971c519476f4a1.tar.gz
talos-hostboot-ca03643dd8935f9c839cf8dfd4971c519476f4a1.zip
Initialize backup TPM in MPIPL
Update the boot flow to call the istep to initialize the backup TPM during an MPIPL and carry over the backup present/functional state as they were from runtime, prior to the MPIPL. Change-Id: Ic402e37cf2f465686770ff22d4f2296332b0f3f7 CQ: SW456951 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75163 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com> Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com> Reviewed-by: Matthew Raybuck <matthew.raybuck@ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/usr/secureboot/trusted/base')
-rw-r--r--src/usr/secureboot/trusted/base/trustedboot_base.C18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/usr/secureboot/trusted/base/trustedboot_base.C b/src/usr/secureboot/trusted/base/trustedboot_base.C
index 9e78e08f5..7cb73b8bf 100644
--- a/src/usr/secureboot/trusted/base/trustedboot_base.C
+++ b/src/usr/secureboot/trusted/base/trustedboot_base.C
@@ -88,6 +88,24 @@ void getTPMs(
TARGETING::TYPE_TPM,
(i_filter == TPM_FILTER::ALL_IN_BLUEPRINT) ? false : true);
+ if(i_filter == TPM_FILTER::ALL_FUNCTIONAL)
+ {
+ // From functional TPMs, remove any TPMs that are not actually
+ // initialized. This prevents Hostboot from using the backup TPM
+ // in an MPIPL when it's considered "functional" but hasn't been
+ // initialized yet.
+ o_tpmList.erase(
+ std::remove_if(
+ o_tpmList.begin(),
+ o_tpmList.end(),
+ [](TARGETING::Target* i_pTpm)
+ {
+ return !i_pTpm->getAttr<
+ TARGETING::ATTR_HB_TPM_INIT_ATTEMPTED>();
+ }),
+ o_tpmList.end());
+ }
+
TRACUCOMP(g_trac_trustedboot,EXIT_MRK "getTPMs(): Found %d TPMs",
o_tpmList.size());
}
OpenPOWER on IntegriCloud