From e3d3fc5b4affe53e479f9b5894a736b4beabf42f Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Mon, 21 Apr 2025 13:56:30 -0500 Subject: [PATCH] mb/samsung/stumpy: Use CFR setup menu to manage options Enable support for managing system options via CFR, and select it by default when using edk2 with SMMSTORE. TEST=build/boot stumpy w/edk2 payload Change-Id: I91166a3932931c04eae78065fec6b856aebc6f0b Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/c/coreboot/+/87404 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- src/mainboard/samsung/stumpy/Kconfig | 1 + src/mainboard/samsung/stumpy/Makefile.mk | 2 ++ src/mainboard/samsung/stumpy/cfr.c | 37 ++++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 src/mainboard/samsung/stumpy/cfr.c diff --git a/src/mainboard/samsung/stumpy/Kconfig b/src/mainboard/samsung/stumpy/Kconfig index 456791fdf3..5d8bc32326 100644 --- a/src/mainboard/samsung/stumpy/Kconfig +++ b/src/mainboard/samsung/stumpy/Kconfig @@ -5,6 +5,7 @@ if BOARD_SAMSUNG_STUMPY config BOARD_SPECIFIC_OPTIONS def_bool y select BOARD_ROMSIZE_KB_8192 + select DRIVERS_OPTION_CFR_ENABLED if PAYLOAD_EDK2 && SMMSTORE select MAINBOARD_HAS_CHROMEOS select MEMORY_MAPPED_TPM select MAINBOARD_HAS_TPM1 diff --git a/src/mainboard/samsung/stumpy/Makefile.mk b/src/mainboard/samsung/stumpy/Makefile.mk index 57ec1c5048..ab23599f60 100644 --- a/src/mainboard/samsung/stumpy/Makefile.mk +++ b/src/mainboard/samsung/stumpy/Makefile.mk @@ -8,3 +8,5 @@ romstage-y += gpio.c ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads bootblock-y += early_init.c romstage-y += early_init.c + +ramstage-$(CONFIG_DRIVERS_OPTION_CFR) += cfr.c diff --git a/src/mainboard/samsung/stumpy/cfr.c b/src/mainboard/samsung/stumpy/cfr.c new file mode 100644 index 0000000000..d1650a0503 --- /dev/null +++ b/src/mainboard/samsung/stumpy/cfr.c @@ -0,0 +1,37 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include +#include + +static struct sm_obj_form system = { + .ui_name = "System", + .obj_list = (const struct sm_object *[]) { + &gfx_uma_size, + &me_state, + &me_state_prev, + &nmi, + &sata_mode, + NULL + }, +}; + +static struct sm_obj_form power = { + .ui_name = "Power", + .obj_list = (const struct sm_object *[]) { + &power_on_after_fail, + NULL + }, +}; + +static struct sm_obj_form *sm_root[] = { + &system, + &power, + NULL +}; + +void mb_cfr_setup_menu(struct lb_cfr *cfr_root) +{ + cfr_write_setup_menu(cfr_root, sm_root); +}