diff --git a/src/mainboard/google/link/Kconfig b/src/mainboard/google/link/Kconfig index 17c41bd8dd..86dd014f2a 100644 --- a/src/mainboard/google/link/Kconfig +++ b/src/mainboard/google/link/Kconfig @@ -7,6 +7,7 @@ config BOARD_SPECIFIC_OPTIONS select AZALIA_USE_LEGACY_VERB_TABLE select ACPI_GNVS_USB_CHARGECTL select BOARD_ROMSIZE_KB_8192 + select DRIVERS_OPTION_CFR_ENABLED if PAYLOAD_EDK2 && SMMSTORE select EC_GOOGLE_CHROMEEC select EC_GOOGLE_CHROMEEC_AUTO_FAN_CTRL select EC_GOOGLE_CHROMEEC_LPC diff --git a/src/mainboard/google/link/Makefile.mk b/src/mainboard/google/link/Makefile.mk index 6b3f1b568c..c057bdc178 100644 --- a/src/mainboard/google/link/Makefile.mk +++ b/src/mainboard/google/link/Makefile.mk @@ -15,3 +15,5 @@ bootblock-y += gpio.c romstage-y += gpio.c bootblock-y += early_init.c romstage-y += early_init.c + +ramstage-$(CONFIG_DRIVERS_OPTION_CFR) += cfr.c diff --git a/src/mainboard/google/link/cfr.c b/src/mainboard/google/link/cfr.c new file mode 100644 index 0000000000..fb40c308d2 --- /dev/null +++ b/src/mainboard/google/link/cfr.c @@ -0,0 +1,38 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#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 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[] = { + &system, + &ec, + NULL +}; + +void mb_cfr_setup_menu(struct lb_cfr *cfr_root) +{ + cfr_write_setup_menu(cfr_root, sm_root); +}