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>
This commit is contained in:
Sean Rhodes 2023-06-14 15:18:32 +01:00
commit 9ed0beccd8
7 changed files with 224 additions and 201 deletions

View file

@ -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 @@ config BOARD_STARLABS_LITE_GLKR
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

View file

@ -9,6 +9,7 @@ verstage-$(CONFIG_VBOOT) += vboot.c
romstage-$(CONFIG_VBOOT) += vboot.c
ramstage-$(CONFIG_DRIVERS_OPTION_CFR) += cfr.c
ramstage-y += devtree.c
ramstage-y += mainboard.c
ramstage-y += smbios.c

View file

@ -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,
&microphone,
&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);
}

View file

@ -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

View file

@ -9,25 +9,10 @@ entries
# -----------------------------------------------------------------
# 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 @@ entries
# 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 @@ enumerations
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

View file

@ -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

View file

@ -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