diff options
author | Ilya Smirnov <ismirno@us.ibm.com> | 2019-07-29 09:54:40 -0500 |
---|---|---|
committer | Daniel M Crowell <dcrowell@us.ibm.com> | 2019-08-29 16:34:42 -0500 |
commit | 3db6c1479f40d745525e3414bdce95d5f280a660 (patch) | |
tree | 5fe237ba93c74fc36e502dd25ec373717058cb05 /src/usr/pnor | |
parent | c4df5e9188e2e6faed08eb10de3386673b64adfa (diff) | |
download | talos-hostboot-3db6c1479f40d745525e3414bdce95d5f280a660.tar.gz talos-hostboot-3db6c1479f40d745525e3414bdce95d5f280a660.zip |
Cache VERSION Partition
This commit adds logic to cache the VERSION partition so that
errl commit function is able to use the cached data instead of sending
messages to SPnorRP queue. Said messages also cause deadlocks
if secureboot verifications fail, since the code attempts to
send a synch message to the SPnorRP queue while it's handling
another synch message. These changes only impact OP systems and
code paths.
Change-Id: I9eeb05878d98fb2891fe76adc06ad376edc77fbe
CQ: SW465038
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/82304
Reviewed-by: Nicholas E Bofferding <bofferdn@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>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Glenn Miles <milesg@ibm.com>
Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com>
Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/pnor')
-rw-r--r-- | src/usr/pnor/pnorrp.C | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/usr/pnor/pnorrp.C b/src/usr/pnor/pnorrp.C index cb70eb94c..2c531e63e 100644 --- a/src/usr/pnor/pnorrp.C +++ b/src/usr/pnor/pnorrp.C @@ -214,6 +214,13 @@ void PnorRP::init( errlHndl_t &io_rtaskRetErrl ) #ifdef CONFIG_SECUREBOOT // Extend the base image to the TPM, regardless of how it was obtained l_errl = TRUSTEDBOOT::extendBaseImage(); + + // Cache the VERSION partition data for future use by the errl commit + // code. + if(!l_errl) + { + l_errl = ERRORLOG::cacheVersionPartition(); + } #endif #endif } |