diff --git a/src/mainboard/purism/librem_cnl/Kconfig b/src/mainboard/purism/librem_cnl/Kconfig index a718678605..6bbd9c2c11 100644 --- a/src/mainboard/purism/librem_cnl/Kconfig +++ b/src/mainboard/purism/librem_cnl/Kconfig @@ -4,6 +4,7 @@ config BOARD_PURISM_BASEBOARD_LIBREM_CNL def_bool n select BOARD_ROMSIZE_KB_16384 select DRIVERS_GENERIC_CBFS_SERIAL + select DRIVERS_OPTION_CFR_ENABLED if PAYLOAD_EDK2 && SMMSTORE select DRIVERS_USB_ACPI select HAVE_ACPI_RESUME select HAVE_ACPI_TABLES diff --git a/src/mainboard/purism/librem_cnl/Makefile.mk b/src/mainboard/purism/librem_cnl/Makefile.mk index 131385e255..e4144c9649 100644 --- a/src/mainboard/purism/librem_cnl/Makefile.mk +++ b/src/mainboard/purism/librem_cnl/Makefile.mk @@ -6,6 +6,7 @@ ramstage-y += variants/$(VARIANT_DIR)/gpio.c ramstage-y += variants/$(VARIANT_DIR)/hda_verb.c ramstage-y += ramstage.c ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += variants/$(VARIANT_DIR)/gma-mainboard.ads +ramstage-$(CONFIG_DRIVERS_OPTION_CFR_ENABLED) += cfr.c CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/include diff --git a/src/mainboard/purism/librem_cnl/cfr.c b/src/mainboard/purism/librem_cnl/cfr.c new file mode 100644 index 0000000000..90184388f5 --- /dev/null +++ b/src/mainboard/purism/librem_cnl/cfr.c @@ -0,0 +1,46 @@ +/* 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 *[]) { + &hyper_threading, + &igd_dvmt, + &igd_aperture, + &legacy_8254_timer, + &pciexp_aspm, + &pciexp_clk_pm, + &pciexp_l1ss, + &pciexp_speed, + &s0ix_enable, + &vtd, + NULL + }, +}; + +#if !CONFIG(BOARD_PURISM_LIBREM_14) +static struct sm_obj_form power = { + .ui_name = "Power", + .obj_list = (const struct sm_object *[]) { + &power_on_after_fail, + NULL + }, +}; +#endif + +static struct sm_obj_form *sm_root[] = { + &system, +#if !CONFIG(BOARD_PURISM_LIBREM_14) + &power, +#endif + NULL +}; + +void mb_cfr_setup_menu(struct lb_cfr *cfr_root) +{ + cfr_write_setup_menu(cfr_root, sm_root); +}