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 <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87988
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
This commit is contained in:
Matt DeVillier 2025-05-09 13:00:51 -05:00 committed by Sean Rhodes
commit 47f2c17961
6 changed files with 55 additions and 0 deletions

View file

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

View file

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

View file

@ -25,6 +25,7 @@ static struct sm_obj_form processor = {
#if CONFIG(BOARD_SUPPORTS_HT)
&hyper_threading,
#endif
&s0ix_enable,
&vtd,
NULL
},

View file

@ -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_ */

View file

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

View file

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