vboot: make TPM factory init sequence more robust

Hardware / Coreboot - Vadim Bendebury [chromium.org] - 15 November 2016 19:16 UTC

Currently the code considers the absence of the NVRAM firmware rollback space a a trigger for invoking the TPM factory initialization sequence.

Note that the kernel rollback and MRC cache hash spaces are created after the firmware rollback space. This opens an ever so narrow window of opportunity for bricking the device, in case a startup is interrupted after firmware space has been created, but before kernel and MRC hash spaces are created.

The suggested solution is to create the firmware space last, and to allow for kernel and MRC cache spaces to exist during TPM factory initialization.

BRANCH=none BUG=chrome-os-partner:59654 TEST=odified the code not to create the firmware space, wiped out the TPM NVRAM and booted the device. Observed it create kernel and MRC cache spaces on the first run, and then reporting return code 0x14c for already existing spaces on the following restarts.

Verified that the device boots fine in normal and recovery modes and TPM NVRAM spaces are writeable in recovery mode.

Change-Id: Id0e772448d6af1340e800ec3b78ec67913aa6289

3883701 vboot: make TPM factory init sequence more robust.
src/vboot/secdata_tpm.c | 44 +++++++++++++++++++++++++++++++++-----------
1 file changed, 33 insertions(+), 11 deletions(-)

Upstream: review.coreboot.org


  • Share