From 320edbe2ba01a1b5d9de25bc217b8dae936b8b17 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Fri, 17 Mar 2017 13:04:12 -0700 Subject: vboot: Assume EC_SOFTWARE_SYNC and VIRTUAL_DEV_SWITCH by default The virtualized developer switch was invented five years ago and has been used on every vboot system ever since. We shouldn't need to specify it again and again for every new board. This patch flips the Kconfig logic around and replaces CONFIG_VIRTUAL_DEV_SWITCH with CONFIG_PHYSICAL_DEV_SWITCH, so that only a few ancient boards need to set it and it fits better with CONFIG_PHYSICAL_REC_SWITCH. (Also set the latter for Lumpy which seems to have been omitted incorrectly, and hide it from menuconfig since it's a hardware parameter that shouldn't be configurable.) Since almost all our developer switches are virtual, it doesn't make sense for every board to pass a non-existent or non-functional developer mode switch in the coreboot tables, so let's get rid of that. It's also dangerously confusing for many boards to define a get_developer_mode() function that reads an actual pin (often from a debug header) which will not be honored by coreboot because CONFIG_PHYSICAL_DEV_SWITCH isn't set. Therefore, this patch removes all those non-functional instances of that function. In the future, either the board has a physical dev switch and must define it, or it doesn't and must not. In a similar sense (and since I'm touching so many board configs anyway), it's annoying that we have to keep selecting EC_SOFTWARE_SYNC. Instead, it should just be assumed by default whenever a Chrome EC is present in the system. This way, it can also still be overridden by menuconfig. CQ-DEPEND=CL:459701 Change-Id: If9cbaa7df530580a97f00ef238e3d9a8a86a4a7f Signed-off-by: Julius Werner Reviewed-on: https://review.coreboot.org/18980 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- src/vendorcode/google/chromeos/Kconfig | 19 +++++++++++-------- src/vendorcode/google/chromeos/chromeos.c | 6 ------ 2 files changed, 11 insertions(+), 14 deletions(-) (limited to 'src/vendorcode') diff --git a/src/vendorcode/google/chromeos/Kconfig b/src/vendorcode/google/chromeos/Kconfig index 3c6237abcf..62e60d40d4 100644 --- a/src/vendorcode/google/chromeos/Kconfig +++ b/src/vendorcode/google/chromeos/Kconfig @@ -61,6 +61,7 @@ config CHROMEOS_RAMOOPS_RAM_SIZE config EC_SOFTWARE_SYNC bool "Enable EC software sync" + default y if EC_GOOGLE_CHROMEEC default n depends on VBOOT help @@ -76,13 +77,6 @@ config VBOOT_EC_SLOW_UPDATE Whether the EC (or PD) is slow to update and needs to display a screen that informs the user the update is happening. -config VIRTUAL_DEV_SWITCH - bool "Virtual developer switch support" - default n - depends on VBOOT - help - Whether this platform has a virtual developer switch. - config NO_TPM_RESUME bool default n @@ -91,8 +85,17 @@ config NO_TPM_RESUME boards, booting Windows will break if the TPM resume command is sent during an S3 resume. +config PHYSICAL_DEV_SWITCH + bool + default n + help + Whether this platform has a physical developer switch. Note that this + disables virtual dev switch functionality (through secdata). Operation + where both a physical pin and the virtual switch get sampled is not + supported by coreboot. + config PHYSICAL_REC_SWITCH - bool "Physical recovery switch is present" + bool default n help Whether this platform has a physical recovery switch diff --git a/src/vendorcode/google/chromeos/chromeos.c b/src/vendorcode/google/chromeos/chromeos.c index dddce63f0f..4edf74a844 100644 --- a/src/vendorcode/google/chromeos/chromeos.c +++ b/src/vendorcode/google/chromeos/chromeos.c @@ -17,12 +17,6 @@ #include #include "chromeos.h" -int __attribute__((weak)) get_developer_mode_switch(void) -{ - // Weak implementation. No physical developer switch. - return 0; -} - int __attribute__((weak)) clear_recovery_mode_switch(void) { // Weak implementation. Nothing to do. -- cgit v1.2.3