diff options
author | Furquan Shaikh <furquan@google.com> | 2016-07-25 13:02:36 -0700 |
---|---|---|
committer | Furquan Shaikh <furquan@google.com> | 2016-07-28 00:36:22 +0200 |
commit | 0325dc6f7cbdad4fd29315bfcb7f4e54fb678f3e (patch) | |
tree | c227dd6bba0827e4072cf60ffb60401960af4546 /src/vboot | |
parent | 2a12e2e8da2477d97b8774babd1a74dda65d11a0 (diff) |
bootmode: Get rid of CONFIG_BOOTMODE_STRAPS
With VBOOT_VERIFY_FIRMWARE separated from CHROMEOS, move recovery and
developer mode check functions to vboot. Thus, get rid of the
BOOTMODE_STRAPS option which controlled these functions under src/lib.
BUG=chrome-os-partner:55639
Change-Id: Ia2571026ce8976856add01095cc6be415d2be22e
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/15868
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/vboot')
-rw-r--r-- | src/vboot/Makefile.inc | 16 | ||||
-rw-r--r-- | src/vboot/bootmode.c (renamed from src/vboot/recovery.c) | 25 | ||||
-rw-r--r-- | src/vboot/vboot_common.h | 4 |
3 files changed, 39 insertions, 6 deletions
diff --git a/src/vboot/Makefile.inc b/src/vboot/Makefile.inc index c43af72d04..82b4ac2e9e 100644 --- a/src/vboot/Makefile.inc +++ b/src/vboot/Makefile.inc @@ -13,6 +13,14 @@ ## GNU General Public License for more details. ## +bootblock-y += bootmode.c +romstage-y += bootmode.c +ramstage-y += bootmode.c +verstage-y += bootmode.c +postcar-y += bootmode.c + +ifeq ($(CONFIG_VBOOT),y) + libverstage-generic-ccopts += -D__PRE_RAM__ -D__VERSTAGE__ verstage-generic-ccopts += -D__PRE_RAM__ -D__VERSTAGE__ @@ -53,12 +61,6 @@ romstage-y += vboot_common.c ramstage-y += vboot_common.c postcar-y += vboot_common.c -bootblock-y += recovery.c -romstage-y += recovery.c -ramstage-y += recovery.c -verstage-y += recovery.c -postcar-y += recovery.c - bootblock-y += common.c libverstage-y += vboot_logic.c verstage-y += common.c @@ -141,3 +143,5 @@ regions-for-file = $(subst $(spc),$(comma),$(sort \ font.bin \ vbgfx.bin \ ,$(1)),COREBOOT,COREBOOT FW_MAIN_A FW_MAIN_B))) + +endif # CONFIG_VBOOT diff --git a/src/vboot/recovery.c b/src/vboot/bootmode.c index 6e6eb0e159..12a4dc0c8d 100644 --- a/src/vboot/recovery.c +++ b/src/vboot/bootmode.c @@ -89,6 +89,9 @@ static int cbmem_possibly_online(void) */ static int vboot_possibly_executed(void) { + if (!IS_ENABLED(CONFIG_VBOOT)) + return 0; + if (IS_ENABLED(CONFIG_VBOOT_STARTS_IN_BOOTBLOCK)) { if (ENV_BOOTBLOCK && IS_ENABLED(CONFIG_SEPARATE_VERSTAGE)) return 0; @@ -150,3 +153,25 @@ int vboot_check_recovery_request(void) return 0; } + +int vboot_recovery_mode_enabled(void) +{ + if (!IS_ENABLED(CONFIG_VBOOT)) + return 0; + + return !!vboot_check_recovery_request(); +} + +int vboot_developer_mode_enabled(void) +{ + if (!IS_ENABLED(CONFIG_VBOOT)) + return 0; + + if (get_developer_mode_switch()) + return 1; + + if (cbmem_possibly_online() && vboot_handoff_check_developer_flag()) + return 1; + + return 0; +} diff --git a/src/vboot/vboot_common.h b/src/vboot/vboot_common.h index 684a66b2e2..d64b5bb007 100644 --- a/src/vboot/vboot_common.h +++ b/src/vboot/vboot_common.h @@ -101,4 +101,8 @@ void verstage_main(void); void verstage(void); void verstage_mainboard_init(void); +/* Check boot modes */ +int vboot_developer_mode_enabled(void); +int vboot_recovery_mode_enabled(void); + #endif /* __VBOOT_VBOOT_COMMON_H__ */ |