Sean Rhodes has submitted this change. ( https://review.coreboot.org/c/coreboot/+/76583?usp=email )
Change subject: mb/starlabs/lite: Put options in CFR cbtable ......................................................................
mb/starlabs/lite: Put options in CFR cbtable
Change-Id: I42ae5b35e6b53b5a13ec3f80180f4955db9b6ce2 Signed-off-by: Sean Rhodes sean@starlabs.systems Reviewed-on: https://review.coreboot.org/c/coreboot/+/76583 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Matt DeVillier matt.devillier@gmail.com --- M src/mainboard/starlabs/lite/Kconfig M src/mainboard/starlabs/lite/Makefile.mk A src/mainboard/starlabs/lite/cfr.c M src/mainboard/starlabs/lite/cmos.default M src/mainboard/starlabs/lite/cmos.layout D src/mainboard/starlabs/lite/variants/glkr/cmos.default D src/mainboard/starlabs/lite/variants/glkr/cmos.layout 7 files changed, 224 insertions(+), 201 deletions(-)
Approvals: build bot (Jenkins): Verified Matt DeVillier: Looks good to me, approved
diff --git a/src/mainboard/starlabs/lite/Kconfig b/src/mainboard/starlabs/lite/Kconfig index 4e0deb2..1f5c766 100644 --- a/src/mainboard/starlabs/lite/Kconfig +++ b/src/mainboard/starlabs/lite/Kconfig @@ -3,6 +3,8 @@ config BOARD_STARLABS_LITE_SERIES def_bool n select BOARD_ROMSIZE_KB_8192 + select DRIVERS_EFI_VARIABLE_STORE + select DRIVERS_OPTION_CFR select DRIVERS_I2C_HID select HAVE_ACPI_RESUME select HAVE_ACPI_TABLES @@ -35,12 +37,6 @@
if BOARD_STARLABS_LITE_SERIES
-config CMOS_DEFAULT_FILE - default "src/mainboard/$(CONFIG_MAINBOARD_DIR)/variants/$(CONFIG_VARIANT_DIR)/cmos.default" if BOARD_STARLABS_LITE_GLKR - -config CMOS_LAYOUT_FILE - default "src/mainboard/$(CONFIG_MAINBOARD_DIR)/variants/$(CONFIG_VARIANT_DIR)/cmos.layout" if BOARD_STARLABS_LITE_GLKR - config CONSOLE_SERIAL default n if !EDK2_DEBUG
diff --git a/src/mainboard/starlabs/lite/Makefile.mk b/src/mainboard/starlabs/lite/Makefile.mk index 5cfed35..65a5241 100644 --- a/src/mainboard/starlabs/lite/Makefile.mk +++ b/src/mainboard/starlabs/lite/Makefile.mk @@ -9,6 +9,7 @@
romstage-$(CONFIG_VBOOT) += vboot.c
+ramstage-$(CONFIG_DRIVERS_OPTION_CFR) += cfr.c ramstage-y += devtree.c ramstage-y += mainboard.c ramstage-y += smbios.c diff --git a/src/mainboard/starlabs/lite/cfr.c b/src/mainboard/starlabs/lite/cfr.c new file mode 100644 index 0000000..e0d22e6 --- /dev/null +++ b/src/mainboard/starlabs/lite/cfr.c @@ -0,0 +1,216 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <boot/coreboot_tables.h> +#include <commonlib/coreboot_tables.h> +#include <drivers/option/cfr_frontend.h> +#include <inttypes.h> +#include <intelblocks/pcie_rp.h> +#include <string.h> +#include <types.h> +#include <variants.h> + +static const struct sm_object boot_option = SM_DECLARE_ENUM({ + .opt_name = "boot_option", + .ui_name = "Boot Option", + .ui_helptext = "Change the boot device in the event of a failed boot", + .default_value = 0, + .values = (const struct sm_enum_value[]) { + { "Fallback", 0 }, + { "Normal", 1 }, + SM_ENUM_VALUE_END }, +}); + +static const struct sm_object card_reader = SM_DECLARE_BOOL({ + .opt_name = "card_reader", + .ui_name = "Card Reader", + .ui_helptext = "Enable or disable the built-in card reader", + .default_value = true, +}); + +static const struct sm_object debug_level = SM_DECLARE_ENUM({ + .opt_name = "debug_level", + .ui_name = "Debug Level", + .ui_helptext = "Set the verbosity of the debug output.", + .default_value = 0, + .values = (const struct sm_enum_value[]) { + { "Emergency", 0 }, + { "Alert", 1 }, + { "Critical", 2 }, + { "Error", 3 }, + { "Warning", 4 }, + { "Notice", 5 }, + { "Info", 6 }, + { "Debug", 7 }, + { "Spew", 8 }, + SM_ENUM_VALUE_END }, +}); + +#if CONFIG(EC_STARLABS_FAST_CHARGE) +static const struct sm_object fast_charge = SM_DECLARE_BOOL({ + .opt_name = "fast_charge", + .ui_name = "Fast Charge", + .ui_helptext = "Charge the battery faster at the cost of heat and battery wear.", + .default_value = false, +}); +#endif + +static const struct sm_object fn_ctrl_swap = SM_DECLARE_BOOL({ + .opt_name = "fn_ctrl_swap", + .ui_name = "Fn Ctrl Reverse", + .ui_helptext = "Swap the functions of the [Fn] and [Ctrl] keys", + .default_value = false, +}); + +static const struct sm_object kbl_timeout = SM_DECLARE_ENUM({ + .opt_name = "kbl_timeout", + .ui_name = "Keyboard Backlight Timeout", + .ui_helptext = "Set the amount of time before the keyboard backlight turns off" + " when un-used", + .default_value = 0, + .values = (struct sm_enum_value[]) { + { "30 seconds", 0 }, + { "1 minute", 1 }, + { "3 minutes", 2 }, + { "5 minutes", 3 }, + { "Never", 4 }, + SM_ENUM_VALUE_END }, +}); + +static const struct sm_object power_on_after_fail = SM_DECLARE_BOOL({ + .opt_name = "power_on_after_fail", + .ui_name = "Power on after failure", + .ui_helptext = "Automatically turn on after a power failure", + .default_value = false, +}); + +static const struct sm_object power_profile = SM_DECLARE_ENUM({ + .opt_name = "power_profile", + .ui_name = "Power Profile", + .ui_helptext = "Select whether to maximize performance, battery life or both.", + .default_value = 1, + .values = (const struct sm_enum_value[]) { + { "Power Saver", PP_POWER_SAVER }, + { "Balanced", PP_BALANCED }, + { "Performance", PP_PERFORMANCE }, + SM_ENUM_VALUE_END }, +}); + +static const struct sm_object microphone = SM_DECLARE_BOOL({ + .opt_name = "microphone", + .ui_name = "Microphone", + .ui_helptext = "Enable or disable the built-in microphone", + .default_value = true, +}); + +static const struct sm_object reboot_counter = SM_DECLARE_NUMBER({ + .opt_name = "reboot_counter", + .ui_name = "Reboot Counter", + .flags = CFR_OPTFLAG_SUPPRESS, + .default_value = 0, +}); + +static const struct sm_object webcam = SM_DECLARE_BOOL({ + .opt_name = "webcam", + .ui_name = "Webcam", + .ui_helptext = "Enable or disable the built-in webcam", + .default_value = true, +}); + +static const struct sm_object wireless = SM_DECLARE_BOOL({ + .opt_name = "wireless", + .ui_name = "Wireless", + .ui_helptext = "Enable or disable the built-in wireless card", + .default_value = true, +}); + +static const struct sm_object vtd = SM_DECLARE_BOOL({ + .opt_name = "vtd", + .ui_name = "VT-d", + .ui_helptext = "Enable or disable Intel VT-d (virtualization)", + .default_value = true, +}); + +static struct sm_obj_form performance = { + .ui_name = "Performance", + .obj_list = (const struct sm_object *[]) { + &power_profile, + NULL + }, +}; + +static struct sm_obj_form processor = { + .ui_name = "Processor", + .obj_list = (const struct sm_object *[]) { + &vtd, + NULL + }, +}; + +static struct sm_obj_form power = { + .ui_name = "Power", + .obj_list = (const struct sm_object *[]) { + #if CONFIG(EC_STARLABS_FAST_CHARGE) + &fast_charge, + #endif + &power_on_after_fail, + NULL + }, +}; + +static struct sm_obj_form keyboard = { + .ui_name = "Keyboard", + .obj_list = (const struct sm_object *[]) { + &kbl_timeout, + &fn_ctrl_swap, + NULL + }, +}; + +static struct sm_obj_form devices = { + .ui_name = "Devices", + .obj_list = (const struct sm_object *[]) { + &card_reader, + µphone, + &webcam, + &wireless, + NULL + }, +}; + +static struct sm_obj_form pci = { + .ui_name = "PCI", + .obj_list = (const struct sm_object *[]) { + #if CONFIG(SOC_INTEL_ALDERLAKE) + &pciexp_clk_pm, + &pciexp_aspm, + &pciexp_l1ss, + #endif + NULL + }, +}; + +static struct sm_obj_form coreboot = { + .ui_name = "coreboot", + .obj_list = (const struct sm_object *[]) { + &boot_option, + &debug_level, + &reboot_counter, + NULL + }, +}; + +static struct sm_obj_form *sm_root[] = { + &performance, + &processor, + &power, + &keyboard, + &devices, + &pci, + &coreboot, + NULL +}; + +void mb_cfr_setup_menu(struct lb_cfr *cfr_root) +{ + cfr_write_setup_menu(cfr_root, sm_root); +} diff --git a/src/mainboard/starlabs/lite/cmos.default b/src/mainboard/starlabs/lite/cmos.default index 7bf045b..49faae3 100644 --- a/src/mainboard/starlabs/lite/cmos.default +++ b/src/mainboard/starlabs/lite/cmos.default @@ -1,19 +1,4 @@ ## SPDX-License-Identifier: GPL-2.0-only - -# hardcoded -boot_option=Fallback -# console -debug_level=Debug -# cpu -vtd=Enable -power_profile=Balanced -# Devices -wireless=Enable -webcam=Enable -legacy_8254_timer=Disable -# EC -kbl_timeout=30 seconds -fn_ctrl_swap=Disable # Functions fn_lock_state=0x1 trackpad_state=0x1 diff --git a/src/mainboard/starlabs/lite/cmos.layout b/src/mainboard/starlabs/lite/cmos.layout index ca77291..3057eff 100644 --- a/src/mainboard/starlabs/lite/cmos.layout +++ b/src/mainboard/starlabs/lite/cmos.layout @@ -9,25 +9,10 @@
# ----------------------------------------------------------------- # RTC_BOOT_BYTE (coreboot hardcoded) -384 1 e 2 boot_option 388 4 h 0 reboot_counter
-# ----------------------------------------------------------------- -# coreboot config options: console -395 4 e 3 debug_level # coreboot config options: cpu #400 8 r 0 reserved for century byte -416 1 e 1 vtd -424 2 e 7 power_profile - -# coreboot config options: Devices -504 1 e 1 wireless -512 1 e 1 webcam -528 1 e 1 legacy_8254_timer - -# coreboot config options: EC -600 3 e 4 kbl_timeout -608 1 e 1 fn_ctrl_swap
# coreboot config options: check sums 984 16 h 0 check_sum @@ -36,7 +21,7 @@ # embedded controller settings (outside the checksummed area) 1024 8 h 1 fn_lock_state 1032 8 h 1 trackpad_state -1040 8 h 10 kbl_brightness +1040 8 h 2 kbl_brightness 1048 8 h 1 kbl_state
# ----------------------------------------------------------------- @@ -47,48 +32,10 @@ 1 0 Disable 1 1 Enable
-2 0 Fallback -2 1 Normal - -3 0 Emergency -3 1 Alert -3 2 Critical -3 3 Error -3 4 Warning -3 5 Notice -3 6 Info -3 7 Debug -3 8 Spew - -4 0 30 seconds -4 1 1 minute -4 2 3 minutes -4 3 5 minutes -4 4 Never - -5 0 Enable -5 1 Disable - -6 0 Disable -6 1 Enable -6 2 Keep - -7 0 Power Saver -7 1 Balanced -7 2 Performance - -8 0 100% -8 1 80% -8 2 60% - -9 0 Normal -9 1 Aggressive -9 2 Quiet - -10 0 Off -10 1 Low -10 2 High -10 3 On +2 0 Off +2 1 Low +2 2 High +2 3 On
# ----------------------------------------------------------------- checksums diff --git a/src/mainboard/starlabs/lite/variants/glkr/cmos.default b/src/mainboard/starlabs/lite/variants/glkr/cmos.default deleted file mode 100644 index 6bf32d0..0000000 --- a/src/mainboard/starlabs/lite/variants/glkr/cmos.default +++ /dev/null @@ -1,22 +0,0 @@ -## SPDX-License-Identifier: GPL-2.0-only - -# hardcoded -boot_option=Fallback -# console -debug_level=Debug -# cpu -vtd=Enable -power_profile=Balanced -# Devices -wireless=Enable -webcam=Enable -legacy_8254_timer=Disable -# EC -kbl_timeout=30 seconds -fn_ctrl_swap=Disable -fast_charge=Normal -# Functions -fn_lock_state=0x1 -trackpad_state=0x1 -kbl_brightness=0x0 -kbl_state=0x1 diff --git a/src/mainboard/starlabs/lite/variants/glkr/cmos.layout b/src/mainboard/starlabs/lite/variants/glkr/cmos.layout deleted file mode 100644 index edca818..0000000 --- a/src/mainboard/starlabs/lite/variants/glkr/cmos.layout +++ /dev/null @@ -1,100 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -# ----------------------------------------------------------------- -entries - -# Bank: 1 -# ----------------------------------------------------------------- -0 120 r 0 reserved_memory - -# ----------------------------------------------------------------- -# RTC_BOOT_BYTE (coreboot hardcoded) -384 1 e 2 boot_option -388 4 h 0 reboot_counter - -# ----------------------------------------------------------------- -# coreboot config options: console -395 4 e 3 debug_level -# coreboot config options: cpu -#400 8 r 0 reserved for century byte -416 1 e 1 vtd -424 2 e 7 power_profile - -# coreboot config options: Devices -504 1 e 1 wireless -512 1 e 1 webcam -528 1 e 1 legacy_8254_timer - -# coreboot config options: EC -600 3 e 4 kbl_timeout -608 1 e 1 fn_ctrl_swap -616 1 e 11 fast_charge - -# coreboot config options: check sums -984 16 h 0 check_sum - -# Bank: 2 -# embedded controller settings (outside the checksummed area) -1024 8 h 1 fn_lock_state -1032 8 h 1 trackpad_state -1040 8 h 10 kbl_brightness -1048 8 h 1 kbl_state - -# ----------------------------------------------------------------- - -enumerations - -#ID value text -1 0 Disable -1 1 Enable - -2 0 Fallback -2 1 Normal - -3 0 Emergency -3 1 Alert -3 2 Critical -3 3 Error -3 4 Warning -3 5 Notice -3 6 Info -3 7 Debug -3 8 Spew - -4 0 30 seconds -4 1 1 minute -4 2 3 minutes -4 3 5 minutes -4 4 Never - -5 0 Enable -5 1 Disable - -6 0 Disable -6 1 Enable -6 2 Keep - -7 0 Power Saver -7 1 Balanced -7 2 Performance - -8 0 100% -8 1 80% -8 2 60% - -9 0 Normal -9 1 Aggressive -9 2 Quiet - -10 0 Off -10 1 Low -10 2 High -10 3 On - -11 0 Normal -11 1 Fast - -# ----------------------------------------------------------------- -checksums - -checksum 392 983 984