From 7d4e2c6150841b3279ed10722253c31c4d43d9e4 Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Tue, 20 Jan 2026 14:47:57 +0000 Subject: [PATCH] mb/starlabs/*: Default to ASPM_L0S_L1 over ASPM_AUTO Set the default for ASPM to ASPM_L0S_L1 rather than ASPM_AUTO, as using AUTO won't always enable ASPM for some SSDs (Western Digital). Test=build and flash starbook/mtl; check new default is ASPM_L0S_L1 in edk2 menu. Change-Id: If66dcabe5eca717565e0378ab36db8a4cb220d43 Signed-off-by: Sean Rhodes Reviewed-on: https://review.coreboot.org/c/coreboot/+/90838 Reviewed-by: Matt DeVillier Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) --- src/mainboard/starlabs/byte_adl/cfr.c | 1 + src/mainboard/starlabs/common/cfr/cfr.c | 13 +++++++++++++ src/mainboard/starlabs/common/include/common/cfr.h | 1 + src/mainboard/starlabs/lite/cfr.c | 1 + src/mainboard/starlabs/starbook/cfr.c | 1 + src/mainboard/starlabs/starfighter/cfr.c | 1 + src/mainboard/starlabs/starlite_adl/cfr.c | 1 + 7 files changed, 19 insertions(+) diff --git a/src/mainboard/starlabs/byte_adl/cfr.c b/src/mainboard/starlabs/byte_adl/cfr.c index 3a9162d1cb..9936025c25 100644 --- a/src/mainboard/starlabs/byte_adl/cfr.c +++ b/src/mainboard/starlabs/byte_adl/cfr.c @@ -77,5 +77,6 @@ static struct sm_obj_form *sm_root[] = { void mb_cfr_setup_menu(struct lb_cfr *cfr_root) { + starlabs_cfr_register_overrides(); cfr_write_setup_menu(cfr_root, sm_root); } diff --git a/src/mainboard/starlabs/common/cfr/cfr.c b/src/mainboard/starlabs/common/cfr/cfr.c index 78a41814e5..70899d21b1 100644 --- a/src/mainboard/starlabs/common/cfr/cfr.c +++ b/src/mainboard/starlabs/common/cfr/cfr.c @@ -1,9 +1,22 @@ /* SPDX-License-Identifier: GPL-2.0-only */ #include +#include #include void __weak cfr_card_reader_update(struct sm_object *new_obj) { (void)new_obj; } + +static const struct cfr_default_override starlabs_cfr_overrides[] = { + CFR_OVERRIDE_ENUM("pciexp_aspm", ASPM_L0S_L1), + CFR_OVERRIDE_END +}; + +void starlabs_cfr_register_overrides(void) +{ + if (!CONFIG(DRIVERS_OPTION_CFR)) + return; + cfr_register_overrides(starlabs_cfr_overrides); +} diff --git a/src/mainboard/starlabs/common/include/common/cfr.h b/src/mainboard/starlabs/common/include/common/cfr.h index 58c4ec2a8e..4613b94fbd 100644 --- a/src/mainboard/starlabs/common/include/common/cfr.h +++ b/src/mainboard/starlabs/common/include/common/cfr.h @@ -8,6 +8,7 @@ #include void cfr_card_reader_update(struct sm_object *new_obj); +void starlabs_cfr_register_overrides(void); static const struct sm_object accelerometer = SM_DECLARE_BOOL({ .opt_name = "accelerometer", diff --git a/src/mainboard/starlabs/lite/cfr.c b/src/mainboard/starlabs/lite/cfr.c index db3702fb79..ae1cfdbbd3 100644 --- a/src/mainboard/starlabs/lite/cfr.c +++ b/src/mainboard/starlabs/lite/cfr.c @@ -87,5 +87,6 @@ static struct sm_obj_form *sm_root[] = { void mb_cfr_setup_menu(struct lb_cfr *cfr_root) { + starlabs_cfr_register_overrides(); cfr_write_setup_menu(cfr_root, sm_root); } diff --git a/src/mainboard/starlabs/starbook/cfr.c b/src/mainboard/starlabs/starbook/cfr.c index a499d3ed08..ab5f84e663 100644 --- a/src/mainboard/starlabs/starbook/cfr.c +++ b/src/mainboard/starlabs/starbook/cfr.c @@ -124,5 +124,6 @@ static struct sm_obj_form *sm_root[] = { void mb_cfr_setup_menu(struct lb_cfr *cfr_root) { + starlabs_cfr_register_overrides(); cfr_write_setup_menu(cfr_root, sm_root); } diff --git a/src/mainboard/starlabs/starfighter/cfr.c b/src/mainboard/starlabs/starfighter/cfr.c index 146ffd6913..01488d4865 100644 --- a/src/mainboard/starlabs/starfighter/cfr.c +++ b/src/mainboard/starlabs/starfighter/cfr.c @@ -109,5 +109,6 @@ static struct sm_obj_form *sm_root[] = { void mb_cfr_setup_menu(struct lb_cfr *cfr_root) { + starlabs_cfr_register_overrides(); cfr_write_setup_menu(cfr_root, sm_root); } diff --git a/src/mainboard/starlabs/starlite_adl/cfr.c b/src/mainboard/starlabs/starlite_adl/cfr.c index 7bbe25d61f..6416dc4a77 100644 --- a/src/mainboard/starlabs/starlite_adl/cfr.c +++ b/src/mainboard/starlabs/starlite_adl/cfr.c @@ -107,5 +107,6 @@ static struct sm_obj_form *sm_root[] = { void mb_cfr_setup_menu(struct lb_cfr *cfr_root) { + starlabs_cfr_register_overrides(); cfr_write_setup_menu(cfr_root, sm_root); }