From 37c721d78669ed2141981c990a3e8eb1f538fdb4 Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Wed, 25 Apr 2018 18:13:03 -0700 Subject: security/vboot: Add function to read UDC enable flag This change adds a helper function to read USB Device Controller (UDC) enable flag from VBNV. BUG=b:78577893 BRANCH=poppy Change-Id: Ifd1e9b0781ffee242d695b72287632bc944a50c7 Signed-off-by: Duncan Laurie Signed-off-by: Furquan Shaikh Reviewed-on: https://review.coreboot.org/25846 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- src/security/vboot/vbnv.c | 7 +++++++ src/security/vboot/vbnv.h | 4 ++++ src/security/vboot/vbnv_layout.h | 1 + 3 files changed, 12 insertions(+) diff --git a/src/security/vboot/vbnv.c b/src/security/vboot/vbnv.c index 0fecacd4d2..636e5e3806 100644 --- a/src/security/vboot/vbnv.c +++ b/src/security/vboot/vbnv.c @@ -147,6 +147,13 @@ int vboot_wants_oprom(void) return (vbnv_data(BOOT_OFFSET) & BOOT_OPROM_NEEDED) ? 1 : 0; } +/* Read the USB Device Controller(UDC) enable flag from VBNV. */ +int vbnv_udc_enable_flag(void) +{ + vbnv_setup(); + return (vbnv_data(DEV_FLAGS_OFFSET) & DEV_ENABLE_UDC) ? 1 : 0; +} + void vbnv_init(uint8_t *vbnv_copy) { if (IS_ENABLED(CONFIG_VBOOT_VBNV_CMOS)) diff --git a/src/security/vboot/vbnv.h b/src/security/vboot/vbnv.h index 0288d0df4d..c8e689fa04 100644 --- a/src/security/vboot/vbnv.h +++ b/src/security/vboot/vbnv.h @@ -26,6 +26,10 @@ void regen_vbnv_crc(uint8_t *vbnv_copy); int get_recovery_mode_from_vbnv(void); void set_recovery_mode_into_vbnv(int recovery_reason); int vboot_wants_oprom(void); + +/* Read the USB Device Controller(UDC) enable flag from VBNV. */ +int vbnv_udc_enable_flag(void); + /* Initialize and read vbnv. This is used in the main vboot logic path. */ void vbnv_init(uint8_t *vbnv_copy); /* Reset vbnv snapshot to a known state. */ diff --git a/src/security/vboot/vbnv_layout.h b/src/security/vboot/vbnv_layout.h index 1dc01c909a..a9326e4ff4 100644 --- a/src/security/vboot/vbnv_layout.h +++ b/src/security/vboot/vbnv_layout.h @@ -40,6 +40,7 @@ #define DEV_FLAGS_OFFSET 4 #define DEV_BOOT_USB_MASK 0x01 #define DEV_BOOT_SIGNED_ONLY_MASK 0x02 +#define DEV_ENABLE_UDC 0x40 #define MISC_FLAGS_OFFSET 8 #define MISC_FLAGS_BATTERY_CUTOFF_MASK 0x08 -- cgit v1.2.3