tpm: Allow committing non-volatile data

Add an option to tell the TPM to commit non-volatile data immediately it
is changed, rather than waiting until later. This is needed in some
situations, since if the device reboots it may not write the data.

Add definitions for the rest of the Cr50 commands while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
Simon Glass
2022-08-30 21:05:38 -06:00
committed by Ilias Apalodimas
parent 4c57ec76b7
commit 5208ed187c
2 changed files with 38 additions and 0 deletions

View File

@@ -704,3 +704,24 @@ u32 tpm2_report_state(struct udevice *dev, uint vendor_cmd, uint vendor_subcmd,
return 0;
}
u32 tpm2_enable_nvcommits(struct udevice *dev, uint vendor_cmd,
uint vendor_subcmd)
{
u8 command_v2[COMMAND_BUFFER_SIZE] = {
/* header 10 bytes */
tpm_u16(TPM2_ST_NO_SESSIONS), /* TAG */
tpm_u32(10 + 2), /* Length */
tpm_u32(vendor_cmd), /* Command code */
tpm_u16(vendor_subcmd),
};
int ret;
ret = tpm_sendrecv_command(dev, command_v2, NULL, NULL);
log_debug("ret=%s, %x\n", dev->name, ret);
if (ret)
return ret;
return 0;
}