From d8f105dd7170bcb0370b8ce18503834cdeeec7c1 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sun, 18 Jul 2021 14:18:03 -0600 Subject: sandbox: tpm: Support nvdata in TPM2 Add support for this feature in the TPM2 emulator, to support Chromium OS vboot. Signed-off-by: Simon Glass --- include/tpm-v2.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/tpm-v2.h b/include/tpm-v2.h index 247b3869676..949a13c917a 100644 --- a/include/tpm-v2.h +++ b/include/tpm-v2.h @@ -32,6 +32,8 @@ struct udevice; #define TPM2_MAX_TPM_PROPERTIES ((TPM2_MAX_CAP_BUFFER - sizeof(u32) /* TPM2_CAP */ - \ sizeof(u32)) / sizeof(struct tpms_tagged_property)) +#define TPM2_HDR_LEN 10 + /* * We deviate from this draft of the specification by increasing the value of * TPM2_NUM_PCR_BANKS from 3 to 16 to ensure compatibility with TPM2 -- cgit v1.2.3 From cb8970092f2cd5f1eaadf7d15d28cb905067e07f Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sat, 24 Jul 2021 15:14:39 -0600 Subject: sandbox: Reduce keyed autoboot delay The autoboot tests are a recent addition to U-Boot, providing much-needed coverage in this area. A side effect of the keyed autoboot test is that this feature is enabled in sandbox always. This changes the autoboot prompt and confuses the pytests. Some tests become slower, for example the vboot tests take about 27s now instead of 3s. We don't actually need this feature enabled to be able to run the tests. Add a switch to allow sandbox to turn it on and off as needed. Use this in the one test that needs it. Add a command-line flag in case this is desired in normal use. Signed-off-by: Simon Glass Fixes: 25c8b9f298e ("test: add first autoboot unit tests") Reviewed-by: Steffen Jaeckel --- include/autoboot.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'include') diff --git a/include/autoboot.h b/include/autoboot.h index ac8157e5704..d6915dd0cc6 100644 --- a/include/autoboot.h +++ b/include/autoboot.h @@ -11,6 +11,42 @@ #ifndef __AUTOBOOT_H #define __AUTOBOOT_H +#include + +#ifdef CONFIG_SANDBOX + +/** + * autoboot_keyed() - check whether keyed autoboot should be used + * + * This is only implemented for sandbox since other platforms don't have a way + * of controlling the feature at runtime. + * + * @return true if enabled, false if not + */ +bool autoboot_keyed(void); + +/** + * autoboot_set_keyed() - set whether keyed autoboot should be used + * + * @autoboot_keyed: true to enable the feature, false to disable + * @return old value of the flag + */ +bool autoboot_set_keyed(bool autoboot_keyed); +#else +static inline bool autoboot_keyed(void) +{ + /* There is no runtime flag, so just use the CONFIG */ + return IS_ENABLED(CONFIG_AUTOBOOT_KEYED); +} + +static inline bool autoboot_set_keyed(bool autoboot_keyed) +{ + /* There is no runtime flag to set */ + return false; +} + +#endif + #ifdef CONFIG_AUTOBOOT /** * bootdelay_process() - process the bootd delay -- cgit v1.2.3