From c1f0be39dae430392de5ead0ec244d7df200f7de Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Mon, 1 Dec 2025 20:17:02 -0600 Subject: [PATCH] mb/google/zork: Add CFR option menu support Add CFR option menu support when using edk2 payload and SMMSTORE. Include relevant items from ChromeEC. TEST=build/boot google/zork (morphius), verify CFR option functionality Change-Id: I21f6d01ab425fb698872735bca3514ae366bcdda Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/c/coreboot/+/90313 Tested-by: build bot (Jenkins) Reviewed-by: Jason Glenesk --- src/mainboard/google/zork/Kconfig | 1 + src/mainboard/google/zork/Makefile.mk | 1 + src/mainboard/google/zork/cfr.c | 24 ++++++++++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 src/mainboard/google/zork/cfr.c diff --git a/src/mainboard/google/zork/Kconfig b/src/mainboard/google/zork/Kconfig index b998de0f1c..b828a5a004 100644 --- a/src/mainboard/google/zork/Kconfig +++ b/src/mainboard/google/zork/Kconfig @@ -55,6 +55,7 @@ config BOARD_SPECIFIC_OPTIONS select DRIVERS_USB_ACPI select DRIVERS_I2C_GENERIC select DRIVERS_I2C_HID + select DRIVERS_OPTION_CFR_ENABLED if PAYLOAD_EDK2 && SMMSTORE select EC_GOOGLE_CHROMEEC select EC_GOOGLE_CHROMEEC_AUDIO_CODEC select EC_GOOGLE_CHROMEEC_BOARDID diff --git a/src/mainboard/google/zork/Makefile.mk b/src/mainboard/google/zork/Makefile.mk index df809cb488..b68fe19587 100644 --- a/src/mainboard/google/zork/Makefile.mk +++ b/src/mainboard/google/zork/Makefile.mk @@ -9,6 +9,7 @@ romstage-y += romstage.c ramstage-y += chromeos.c ramstage-y += ec.c ramstage-y += sku_id.c +ramstage-$(CONFIG_DRIVERS_OPTION_CFR) += cfr.c verstage-y += chromeos.c verstage-y += verstage.c diff --git a/src/mainboard/google/zork/cfr.c b/src/mainboard/google/zork/cfr.c new file mode 100644 index 0000000000..5565d31cd8 --- /dev/null +++ b/src/mainboard/google/zork/cfr.c @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include + +static struct sm_obj_form ec = { + .ui_name = "ChromeEC Embedded Controller", + .obj_list = (const struct sm_object *[]) { + &auto_fan_control + &ec_kb_backlight, + NULL + }, +}; + +static struct sm_obj_form *sm_root[] = { + &ec, + NULL +}; + +void mb_cfr_setup_menu(struct lb_cfr *cfr_root) +{ + cfr_write_setup_menu(cfr_root, sm_root); +}