mb/lenovo/X220: Add CFR support

TEST=Booted on Lenovo X220 and found the UEFI menu working.

Change-Id: I194ff7b663c092c90882de4e7408b4c1e907984e
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88903
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
Patrick Rudolph 2025-08-22 08:14:45 +02:00 committed by Matt DeVillier
commit 42a5c189b2
2 changed files with 60 additions and 0 deletions

View file

@ -3,6 +3,8 @@
bootblock-y += variants/$(VARIANT_DIR)/gpio.c
romstage-y += variants/$(VARIANT_DIR)/gpio.c
ramstage-$(CONFIG_DRIVERS_OPTION_CFR) += cfr.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
bootblock-y += early_init.c
romstage-y += early_init.c

View file

@ -0,0 +1,58 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <boot/coreboot_tables.h>
#include <drivers/option/cfr_frontend.h>
#include <ec/lenovo/h8/cfr.h>
#include <ec/lenovo/pmh7/cfr.h>
#include <northbridge/intel/sandybridge/cfr.h>
#include <southbridge/intel/bd82x6x/cfr.h>
static struct sm_obj_form ec = {
.ui_name = "Embedded Controller",
.obj_list = (const struct sm_object *[]) {
&bluetooth,
&usb_always_on,
&wlan,
&wwan,
&pm_beeps,
&battery_beep,
&fn_ctrl_swap,
&sticky_fn,
&f1_to_f12_as_primary,
&touchpad,
&trackpoint,
NULL
},
};
static struct sm_obj_form system = {
.ui_name = "System",
.obj_list = (const struct sm_object *[]) {
&gfx_uma_size,
&me_state,
&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,
&ec,
NULL
};
void mb_cfr_setup_menu(struct lb_cfr *cfr_root)
{
cfr_write_setup_menu(cfr_root, sm_root);
}