From 47f2c179619f6901820d3b4effb21a30747125b9 Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Fri, 9 May 2025 13:00:51 -0500 Subject: [PATCH] mb/starlabs/*: Add CFR option to enable/disable S0ix The option hooks are already set up at the SoC level, so just add a new CFR form to expose the configuration. Change-Id: I423e6b617ba60d7e44064ad9f4c3fec7e3e3fe75 Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/c/coreboot/+/87988 Tested-by: build bot (Jenkins) Reviewed-by: Sean Rhodes --- src/mainboard/starlabs/byte_adl/cfr.c | 11 +++++++++++ src/mainboard/starlabs/lite/cfr.c | 11 +++++++++++ src/mainboard/starlabs/starbook/cfr.c | 1 + src/mainboard/starlabs/starbook/cfr.h | 10 ++++++++++ src/mainboard/starlabs/starfighter/cfr.c | 11 +++++++++++ src/mainboard/starlabs/starlite_adl/cfr.c | 11 +++++++++++ 6 files changed, 55 insertions(+) diff --git a/src/mainboard/starlabs/byte_adl/cfr.c b/src/mainboard/starlabs/byte_adl/cfr.c index 52f887bd32..3e22595079 100644 --- a/src/mainboard/starlabs/byte_adl/cfr.c +++ b/src/mainboard/starlabs/byte_adl/cfr.c @@ -40,6 +40,16 @@ static const struct sm_object bluetooth_rtd3 = SM_DECLARE_BOOL({ .default_value = true, }); +static const struct sm_object s0ix_enable = SM_DECLARE_BOOL({ + .opt_name = "s0ix_enable", + .ui_name = "Modern Standby (S0ix)", + .ui_helptext = "Enabled: Use S0ix for device sleep.\n" + "Disabled: Use ACPI S3 for device sleep.\n" + "Requires Intel ME to be enabled.\n" + "Recommended: Enabled when booting Windows, disabled otherwise.", + .default_value = false, +}); + static struct sm_obj_form performance = { .ui_name = "Performance", .obj_list = (const struct sm_object *[]) { @@ -54,6 +64,7 @@ static struct sm_obj_form processor = { .obj_list = (const struct sm_object *[]) { &me_state, &me_state_counter, + &s0ix_enable, &vtd, NULL }, diff --git a/src/mainboard/starlabs/lite/cfr.c b/src/mainboard/starlabs/lite/cfr.c index 00acbb07b7..8423a04afa 100644 --- a/src/mainboard/starlabs/lite/cfr.c +++ b/src/mainboard/starlabs/lite/cfr.c @@ -63,6 +63,16 @@ static const struct sm_object vtd = SM_DECLARE_BOOL({ .default_value = true, }); +static const struct sm_object s0ix_enable = SM_DECLARE_BOOL({ + .opt_name = "s0ix_enable", + .ui_name = "Modern Standby (S0ix)", + .ui_helptext = "Enabled: Use S0ix for device sleep.\n" + "Disabled: Use ACPI S3 for device sleep.\n" + "Requires Intel ME to be enabled.\n" + "Recommended: Enabled when booting Windows, disabled otherwise.", + .default_value = false, +}); + static struct sm_obj_form performance = { .ui_name = "Performance", .obj_list = (const struct sm_object *[]) { @@ -74,6 +84,7 @@ static struct sm_obj_form performance = { static struct sm_obj_form processor = { .ui_name = "Processor", .obj_list = (const struct sm_object *[]) { + &s0ix_enable, &vtd, NULL }, diff --git a/src/mainboard/starlabs/starbook/cfr.c b/src/mainboard/starlabs/starbook/cfr.c index de532918e4..fb3605cfdd 100644 --- a/src/mainboard/starlabs/starbook/cfr.c +++ b/src/mainboard/starlabs/starbook/cfr.c @@ -25,6 +25,7 @@ static struct sm_obj_form processor = { #if CONFIG(BOARD_SUPPORTS_HT) &hyper_threading, #endif + &s0ix_enable, &vtd, NULL }, diff --git a/src/mainboard/starlabs/starbook/cfr.h b/src/mainboard/starlabs/starbook/cfr.h index 0496ef08a4..ddf1d15e1b 100644 --- a/src/mainboard/starlabs/starbook/cfr.h +++ b/src/mainboard/starlabs/starbook/cfr.h @@ -113,4 +113,14 @@ static const struct sm_object display_native_res = SM_DECLARE_BOOL({ .default_value = false, }); +static const struct sm_object s0ix_enable = SM_DECLARE_BOOL({ + .opt_name = "s0ix_enable", + .ui_name = "Modern Standby (S0ix)", + .ui_helptext = "Enabled: Use S0ix for device sleep.\n" + "Disabled: Use ACPI S3 for device sleep.\n" + "Requires Intel ME to be enabled.\n" + "Recommended: Enabled when booting Windows, disabled otherwise.", + .default_value = false, +}); + #endif /* _STARBOOK_CFR_H_ */ diff --git a/src/mainboard/starlabs/starfighter/cfr.c b/src/mainboard/starlabs/starfighter/cfr.c index b69ff2b134..d54ff0de07 100644 --- a/src/mainboard/starlabs/starfighter/cfr.c +++ b/src/mainboard/starlabs/starfighter/cfr.c @@ -68,6 +68,16 @@ static const struct sm_object display_native_res = SM_DECLARE_BOOL({ .default_value = false, }); +static const struct sm_object s0ix_enable = SM_DECLARE_BOOL({ + .opt_name = "s0ix_enable", + .ui_name = "Modern Standby (S0ix)", + .ui_helptext = "Enabled: Use S0ix for device sleep.\n" + "Disabled: Use ACPI S3 for device sleep.\n" + "Requires Intel ME to be enabled.\n" + "Recommended: Enabled when booting Windows, disabled otherwise.", + .default_value = false, +}); + static struct sm_obj_form performance = { .ui_name = "Performance", .obj_list = (const struct sm_object *[]) { @@ -84,6 +94,7 @@ static struct sm_obj_form processor = { &me_state, &me_state_counter, &hyper_threading, + &s0ix_enable, &vtd, NULL }, diff --git a/src/mainboard/starlabs/starlite_adl/cfr.c b/src/mainboard/starlabs/starlite_adl/cfr.c index 4f0c6672d7..2e36e99b6f 100644 --- a/src/mainboard/starlabs/starlite_adl/cfr.c +++ b/src/mainboard/starlabs/starlite_adl/cfr.c @@ -99,6 +99,16 @@ static const struct sm_object display_native_res = SM_DECLARE_BOOL({ .default_value = false, }); +static const struct sm_object s0ix_enable = SM_DECLARE_BOOL({ + .opt_name = "s0ix_enable", + .ui_name = "Modern Standby (S0ix)", + .ui_helptext = "Enabled: Use S0ix for device sleep.\n" + "Disabled: Use ACPI S3 for device sleep.\n" + "Requires Intel ME to be enabled.\n" + "Recommended: Enabled when booting Windows, disabled otherwise.", + .default_value = false, +}); + static struct sm_obj_form performance = { .ui_name = "Performance", .obj_list = (const struct sm_object *[]) { @@ -114,6 +124,7 @@ static struct sm_obj_form processor = { .obj_list = (const struct sm_object *[]) { &me_state, &me_state_counter, + &s0ix_enable, &vtd, NULL },