From 082ad480d925cc96d0e1218f2a99c0fb6fb23db0 Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Tue, 28 Oct 2025 20:03:01 +0000 Subject: [PATCH] mb/starlabs/*: Separate WiFi and Bluetooth controls Split the "wireless" option into "WiFi" and "Bluetooth" in CFR to allow more granular control. Test=Disable WiFi and Bluetooth in turn and make sure the devices are disabled independently. Change-Id: I3f617486c78a89a60a1e8c7c8ab7d157dc20bf2e Signed-off-by: Sean Rhodes Reviewed-on: https://review.coreboot.org/c/coreboot/+/89797 Reviewed-by: Matt DeVillier Tested-by: build bot (Jenkins) --- src/mainboard/starlabs/byte_adl/cfr.c | 3 ++- .../starlabs/byte_adl/variants/mk_ii/devtree.c | 11 +++++++---- .../starlabs/common/include/common/cfr.h | 15 +++++++++++---- src/mainboard/starlabs/lite/cfr.c | 3 ++- src/mainboard/starlabs/lite/devtree.c | 9 +++++---- src/mainboard/starlabs/starbook/cfr.c | 3 ++- .../starlabs/starbook/variants/adl/devtree.c | 2 +- .../starlabs/starbook/variants/adl/romstage.c | 4 ++-- .../starlabs/starbook/variants/adl_n/devtree.c | 2 +- .../starlabs/starbook/variants/adl_n/romstage.c | 4 ++-- .../starlabs/starbook/variants/cml/devtree.c | 12 +++++++----- .../starlabs/starbook/variants/kbl/devtree.c | 12 +++++++----- .../starlabs/starbook/variants/mtl/devtree.c | 2 +- .../starlabs/starbook/variants/mtl/romstage.c | 4 ++-- .../starlabs/starbook/variants/rpl/devtree.c | 2 +- .../starlabs/starbook/variants/rpl/romstage.c | 4 ++-- .../starlabs/starbook/variants/tgl/devtree.c | 12 +++++++----- .../starlabs/starfighter/variants/rpl/devtree.c | 2 +- .../starlabs/starfighter/variants/rpl/romstage.c | 2 +- src/mainboard/starlabs/starlite_adl/cfr.c | 3 ++- .../starlabs/starlite_adl/variants/mk_v/devtree.c | 11 +++++++---- 21 files changed, 73 insertions(+), 49 deletions(-) diff --git a/src/mainboard/starlabs/byte_adl/cfr.c b/src/mainboard/starlabs/byte_adl/cfr.c index e3b37adf1d..5a29170778 100644 --- a/src/mainboard/starlabs/byte_adl/cfr.c +++ b/src/mainboard/starlabs/byte_adl/cfr.c @@ -40,8 +40,9 @@ static struct sm_obj_form power = { static struct sm_obj_form devices = { .ui_name = "Devices", .obj_list = (const struct sm_object *[]) { + &bluetooth, &gna, - &wireless, + &wifi, NULL }, }; diff --git a/src/mainboard/starlabs/byte_adl/variants/mk_ii/devtree.c b/src/mainboard/starlabs/byte_adl/variants/mk_ii/devtree.c index eb1710dc4a..2b273952ab 100644 --- a/src/mainboard/starlabs/byte_adl/variants/mk_ii/devtree.c +++ b/src/mainboard/starlabs/byte_adl/variants/mk_ii/devtree.c @@ -21,7 +21,7 @@ void devtree_update(void) struct soc_power_limits_config *soc_conf_8core = &cfg->power_limits_config[ADL_N_041_15W_CORE]; - struct device *nic_dev = pcidev_on_root(0x14, 3); + struct device *wifi_dev = pcidev_on_root(0x14, 3); struct device *gna_dev = pcidev_on_root(0x08, 0); uint8_t performance_scale = 100; @@ -55,11 +55,14 @@ void devtree_update(void) soc_conf_8core->tdp_pl1_override = (soc_conf_8core->tdp_pl1_override * performance_scale) / 100; soc_conf_8core->tdp_pl2_override = (soc_conf_8core->tdp_pl2_override * performance_scale) / 100; + + /* Enable/Disable WiFi based on CMOS settings */ + if (get_uint_option("wifi", 1) == 0) + wifi_dev->enabled = 0; + /* Enable/Disable Bluetooth based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) { + if (get_uint_option("bluetooth", 1) == 0) cfg->usb2_ports[9].enable = 0; - nic_dev->enabled = 0; - } /* Enable/Disable GNA based on CMOS settings */ if (get_uint_option("gna", 0) == 0) diff --git a/src/mainboard/starlabs/common/include/common/cfr.h b/src/mainboard/starlabs/common/include/common/cfr.h index 969efa2b19..d6bb406a24 100644 --- a/src/mainboard/starlabs/common/include/common/cfr.h +++ b/src/mainboard/starlabs/common/include/common/cfr.h @@ -15,6 +15,13 @@ static const struct sm_object accelerometer = SM_DECLARE_BOOL({ .default_value = true, }); +static const struct sm_object bluetooth = SM_DECLARE_BOOL({ + .opt_name = "bluetooth", + .ui_name = "Bluetooth", + .ui_helptext = "Enable or disable the built-in Bluetooth", + .default_value = true, +}); + static const struct sm_object bluetooth_rtd3 = SM_DECLARE_BOOL({ .opt_name = "bluetooth_rtd3", .ui_name = "Bluetooth Runtime-D3", @@ -146,10 +153,10 @@ static const struct sm_object webcam = SM_DECLARE_BOOL({ .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", +static const struct sm_object wifi = SM_DECLARE_BOOL({ + .opt_name = "wifi", + .ui_name = "WiFi", + .ui_helptext = "Enable or disable the built-in WiFi", .default_value = true, }); diff --git a/src/mainboard/starlabs/lite/cfr.c b/src/mainboard/starlabs/lite/cfr.c index 3f17350189..f9e42146cf 100644 --- a/src/mainboard/starlabs/lite/cfr.c +++ b/src/mainboard/starlabs/lite/cfr.c @@ -45,10 +45,11 @@ static struct sm_obj_form keyboard = { static struct sm_obj_form devices = { .ui_name = "Devices", .obj_list = (const struct sm_object *[]) { + &bluetooth, &card_reader, µphone, &webcam, - &wireless, + &wifi, NULL }, }; diff --git a/src/mainboard/starlabs/lite/devtree.c b/src/mainboard/starlabs/lite/devtree.c index f25628b4e5..bd43b2154c 100644 --- a/src/mainboard/starlabs/lite/devtree.c +++ b/src/mainboard/starlabs/lite/devtree.c @@ -23,7 +23,7 @@ void devtree_update(void) struct soc_power_limits_config *soc_conf = &cfg->power_limits_config; - struct device *nic_dev = pcidev_on_root(0x0c, 0); + struct device *wifi_dev = pcidev_on_root(0x0c, 0); uint8_t performance_scale = 100; @@ -52,9 +52,10 @@ void devtree_update(void) soc_conf->tdp_pl1_override = (soc_conf->tdp_pl1_override * performance_scale) / 100; soc_conf->tdp_pl2_override = (soc_conf->tdp_pl2_override * performance_scale) / 100; - /* Enable/Disable Wireless based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) - nic_dev->enabled = 0; + + /* Enable/Disable WiFi based on CMOS settings */ + if (get_uint_option("wifi", 1) == 0) + wifi_dev->enabled = 0; /* Enable/Disable Webcam based on CMOS settings */ cfg->usb2_port[CONFIG_WEBCAM_USB_PORT].enable = get_uint_option("webcam", 1); diff --git a/src/mainboard/starlabs/starbook/cfr.c b/src/mainboard/starlabs/starbook/cfr.c index cf7f22170f..e1f3f6dd56 100644 --- a/src/mainboard/starlabs/starbook/cfr.c +++ b/src/mainboard/starlabs/starbook/cfr.c @@ -55,6 +55,7 @@ static struct sm_obj_form keyboard = { static struct sm_obj_form devices = { .ui_name = "Devices", .obj_list = (const struct sm_object *[]) { + &bluetooth, &card_reader, #if CONFIG(BOARD_USES_FIXED_MODE_VBT) &display_native_res, @@ -76,7 +77,7 @@ static struct sm_obj_form devices = { &vpu, #endif &webcam, - &wireless, + &wifi, NULL }, }; diff --git a/src/mainboard/starlabs/starbook/variants/adl/devtree.c b/src/mainboard/starlabs/starbook/variants/adl/devtree.c index 5bbf8a3b40..01557f875f 100644 --- a/src/mainboard/starlabs/starbook/variants/adl/devtree.c +++ b/src/mainboard/starlabs/starbook/variants/adl/devtree.c @@ -57,7 +57,7 @@ void devtree_update(void) soc_conf_12core->tdp_pl2_override = (soc_conf_12core->tdp_pl2_override * performance_scale) / 100; /* Enable/Disable Bluetooth based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) + if (get_uint_option("bluetooth", 1) == 0) cfg->usb2_ports[9].enable = 0; /* Enable/Disable Webcam based on CMOS settings */ diff --git a/src/mainboard/starlabs/starbook/variants/adl/romstage.c b/src/mainboard/starlabs/starbook/variants/adl/romstage.c index 98683da2df..e57cc32a3d 100644 --- a/src/mainboard/starlabs/starbook/variants/adl/romstage.c +++ b/src/mainboard/starlabs/starbook/variants/adl/romstage.c @@ -32,8 +32,8 @@ void mainboard_memory_init_params(FSPM_UPD *mupd) const uint8_t vtd = get_uint_option("vtd", 1); mupd->FspmConfig.VtdDisable = !vtd; - /* Enable/Disable Wireless (RP05) based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) + /* Enable/Disable WiFi (RP05) based on CMOS settings */ + if (get_uint_option("wifi", 1) == 0) mupd->FspmConfig.PcieRpEnableMask &= ~(1 << 4); mupd->FspmConfig.DmiMaxLinkSpeed = 4; diff --git a/src/mainboard/starlabs/starbook/variants/adl_n/devtree.c b/src/mainboard/starlabs/starbook/variants/adl_n/devtree.c index 8ab1c92834..afea557b0b 100644 --- a/src/mainboard/starlabs/starbook/variants/adl_n/devtree.c +++ b/src/mainboard/starlabs/starbook/variants/adl_n/devtree.c @@ -49,7 +49,7 @@ void devtree_update(void) soc_conf_4core->tdp_pl2_override = (soc_conf_4core->tdp_pl2_override * performance_scale) / 100; /* Enable/Disable Bluetooth based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) + if (get_uint_option("bluetooth", 1) == 0) cfg->usb2_ports[9].enable = 0; /* Enable/Disable Webcam based on CMOS settings */ diff --git a/src/mainboard/starlabs/starbook/variants/adl_n/romstage.c b/src/mainboard/starlabs/starbook/variants/adl_n/romstage.c index 21000d1d33..7141d59301 100644 --- a/src/mainboard/starlabs/starbook/variants/adl_n/romstage.c +++ b/src/mainboard/starlabs/starbook/variants/adl_n/romstage.c @@ -29,7 +29,7 @@ void mainboard_memory_init_params(FSPM_UPD *mupd) const uint8_t vtd = get_uint_option("vtd", 1); mupd->FspmConfig.VtdDisable = !vtd; - /* Enable/Disable Wireless (RP07) based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) + /* Enable/Disable WiFi (RP07) based on CMOS settings */ + if (get_uint_option("wifi", 1) == 0) mupd->FspmConfig.PcieRpEnableMask &= ~(1 << 6); }; diff --git a/src/mainboard/starlabs/starbook/variants/cml/devtree.c b/src/mainboard/starlabs/starbook/variants/cml/devtree.c index f9d201078c..f5975dd9e0 100644 --- a/src/mainboard/starlabs/starbook/variants/cml/devtree.c +++ b/src/mainboard/starlabs/starbook/variants/cml/devtree.c @@ -18,7 +18,7 @@ void devtree_update(void) struct soc_power_limits_config *soc_conf = &cfg->power_limits_config; - struct device *nic_dev = pcidev_on_root(0x14, 3); + struct device *wifi_dev = pcidev_on_root(0x14, 3); uint8_t performance_scale = 100; @@ -47,11 +47,13 @@ void devtree_update(void) soc_conf->tdp_pl1_override = (soc_conf->tdp_pl1_override * performance_scale) / 100; soc_conf->tdp_pl2_override = (soc_conf->tdp_pl2_override * performance_scale) / 100; - /* Enable/Disable Wireless based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) { - nic_dev->enabled = 0; + /* Enable/Disable WiFi based on CMOS settings */ + if (get_uint_option("wifi", 1) == 0) + wifi_dev->enabled = 0; + + /* Enable/Disable Bluetooth based on CMOS settings */ + if (get_uint_option("bluetooth", 1) == 0) cfg->usb2_ports[9].enable = 0; - } /* Enable/Disable Webcam based on CMOS settings */ cfg->usb2_ports[CONFIG_CCD_PORT].enable = get_uint_option("webcam", 1); diff --git a/src/mainboard/starlabs/starbook/variants/kbl/devtree.c b/src/mainboard/starlabs/starbook/variants/kbl/devtree.c index 3cda4ce455..16244ad047 100644 --- a/src/mainboard/starlabs/starbook/variants/kbl/devtree.c +++ b/src/mainboard/starlabs/starbook/variants/kbl/devtree.c @@ -18,7 +18,7 @@ void devtree_update(void) struct soc_power_limits_config *soc_conf = &cfg->power_limits_config; - struct device *nic_dev = pcidev_on_root(0x1c, 5); + struct device *wifi_dev = pcidev_on_root(0x1c, 5); uint8_t performance_scale = 100; @@ -47,11 +47,13 @@ void devtree_update(void) soc_conf->tdp_pl1_override = (soc_conf->tdp_pl1_override * performance_scale) / 100; soc_conf->tdp_pl2_override = (soc_conf->tdp_pl2_override * performance_scale) / 100; - /* Enable/Disable Wireless based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) { - nic_dev->enabled = 0; + /* Enable/Disable WiFi based on CMOS settings */ + if (get_uint_option("wifi", 1) == 0) + wifi_dev->enabled = 0; + + /* Enable/Disable Bluetooth based on CMOS settings */ + if (get_uint_option("bluetooth", 1) == 0) cfg->usb2_ports[9].enable = 0; - } /* Enable/Disable Webcam based on CMOS settings */ cfg->usb2_ports[CONFIG_CCD_PORT].enable = get_uint_option("webcam", 1); diff --git a/src/mainboard/starlabs/starbook/variants/mtl/devtree.c b/src/mainboard/starlabs/starbook/variants/mtl/devtree.c index 69406c7e78..82c137b557 100644 --- a/src/mainboard/starlabs/starbook/variants/mtl/devtree.c +++ b/src/mainboard/starlabs/starbook/variants/mtl/devtree.c @@ -50,7 +50,7 @@ void devtree_update(void) soc_conf_20core->tdp_pl2_override = (soc_conf_20core->tdp_pl2_override * performance_scale) / 100; /* Enable/Disable Bluetooth based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) + if (get_uint_option("bluetooth", 1) == 0) cfg->usb2_ports[9].enable = 0; /* Enable/Disable Webcam based on CMOS settings */ diff --git a/src/mainboard/starlabs/starbook/variants/mtl/romstage.c b/src/mainboard/starlabs/starbook/variants/mtl/romstage.c index 6f553a2885..ceff083d00 100644 --- a/src/mainboard/starlabs/starbook/variants/mtl/romstage.c +++ b/src/mainboard/starlabs/starbook/variants/mtl/romstage.c @@ -32,8 +32,8 @@ void mainboard_memory_init_params(FSPM_UPD *mupd) const uint8_t vtd = get_uint_option("vtd", 1); mupd->FspmConfig.VtdDisable = !vtd; - /* Enable/Disable Wireless (RP09) based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) + /* Enable/Disable WiFi (RP09) based on CMOS settings */ + if (get_uint_option("wifi", 1) == 0) mupd->FspmConfig.PcieRpEnableMask &= ~(1 << 8); mupd->FspmConfig.PchHdaSubSystemIds = 0x70381e50; diff --git a/src/mainboard/starlabs/starbook/variants/rpl/devtree.c b/src/mainboard/starlabs/starbook/variants/rpl/devtree.c index 76031d0f1f..f9680fe3b0 100644 --- a/src/mainboard/starlabs/starbook/variants/rpl/devtree.c +++ b/src/mainboard/starlabs/starbook/variants/rpl/devtree.c @@ -59,7 +59,7 @@ void devtree_update(void) soc_conf_12core->tdp_pl2_override = (soc_conf_12core->tdp_pl2_override * performance_scale) / 100; /* Enable/Disable Bluetooth based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) + if (get_uint_option("bluetooth", 1) == 0) cfg->usb2_ports[9].enable = 0; /* Enable/Disable Webcam based on CMOS settings */ diff --git a/src/mainboard/starlabs/starbook/variants/rpl/romstage.c b/src/mainboard/starlabs/starbook/variants/rpl/romstage.c index 5038a526b7..c1d646f860 100644 --- a/src/mainboard/starlabs/starbook/variants/rpl/romstage.c +++ b/src/mainboard/starlabs/starbook/variants/rpl/romstage.c @@ -32,8 +32,8 @@ void mainboard_memory_init_params(FSPM_UPD *mupd) const uint8_t vtd = get_uint_option("vtd", 1); mupd->FspmConfig.VtdDisable = !vtd; - /* Enable/Disable Wireless (RP05) based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) + /* Enable/Disable WiFi (RP05) based on CMOS settings */ + if (get_uint_option("wifi", 1) == 0) mupd->FspmConfig.PcieRpEnableMask &= ~(1 << 4); /* Enable/Disable Thunderbolt based on CMOS settings */ diff --git a/src/mainboard/starlabs/starbook/variants/tgl/devtree.c b/src/mainboard/starlabs/starbook/variants/tgl/devtree.c index 3988cf2cde..f507025487 100644 --- a/src/mainboard/starlabs/starbook/variants/tgl/devtree.c +++ b/src/mainboard/starlabs/starbook/variants/tgl/devtree.c @@ -22,7 +22,7 @@ void devtree_update(void) struct soc_power_limits_config *soc_conf_4core = &cfg->power_limits_config[POWER_LIMITS_U_4_CORE]; - struct device *nic_dev = pcidev_on_root(0x14, 3); + struct device *wifi_dev = pcidev_on_root(0x14, 3); struct device *tbt_pci_dev = pcidev_on_root(0x07, 0); struct device *tbt_dma_dev = pcidev_on_root(0x0d, 2); struct device *gna_dev = pcidev_on_root(0x08, 0); @@ -59,11 +59,13 @@ void devtree_update(void) soc_conf_4core->tdp_pl1_override = (soc_conf_4core->tdp_pl1_override * performance_scale) / 100; soc_conf_4core->tdp_pl2_override = (soc_conf_4core->tdp_pl2_override * performance_scale) / 100; - /* Enable/Disable Wireless based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) { - nic_dev->enabled = 0; + /* Enable/Disable WiFi based on CMOS settings */ + if (get_uint_option("wifi", 1) == 0) + wifi_dev->enabled = 0; + + /* Enable/Disable Bluetooth based on CMOS settings */ + if (get_uint_option("bluetooth", 1) == 0) cfg->usb2_ports[9].enable = 0; - } /* Enable/Disable Webcam based on CMOS settings */ cfg->usb2_ports[CONFIG_CCD_PORT].enable = get_uint_option("webcam", 1); diff --git a/src/mainboard/starlabs/starfighter/variants/rpl/devtree.c b/src/mainboard/starlabs/starfighter/variants/rpl/devtree.c index ae35ed5e4b..5fb56c3f46 100644 --- a/src/mainboard/starlabs/starfighter/variants/rpl/devtree.c +++ b/src/mainboard/starlabs/starfighter/variants/rpl/devtree.c @@ -60,7 +60,7 @@ void devtree_update(void) soc_conf_14core->tdp_pl2_override = (soc_conf_14core->tdp_pl2_override * performance_scale) / 100; /* Enable/Disable Bluetooth based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) + if (get_uint_option("bluetooth", 1) == 0) cfg->usb2_ports[9].enable = 0; /* Enable/Disable Webcam based on CMOS settings */ diff --git a/src/mainboard/starlabs/starfighter/variants/rpl/romstage.c b/src/mainboard/starlabs/starfighter/variants/rpl/romstage.c index 6ec63a16d7..34e61728c4 100644 --- a/src/mainboard/starlabs/starfighter/variants/rpl/romstage.c +++ b/src/mainboard/starlabs/starfighter/variants/rpl/romstage.c @@ -127,7 +127,7 @@ void mainboard_memory_init_params(FSPM_UPD *mupd) mupd->FspmConfig.VtdDisable = !vtd; /* Enable/Disable Wireless (RP05) based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) + if (get_uint_option("wifi", 1) == 0) mupd->FspmConfig.PcieRpEnableMask &= ~(1 << 4); /* Enable/Disable Thunderbolt based on CMOS settings */ diff --git a/src/mainboard/starlabs/starlite_adl/cfr.c b/src/mainboard/starlabs/starlite_adl/cfr.c index defa0ec1b1..62dc785b6c 100644 --- a/src/mainboard/starlabs/starlite_adl/cfr.c +++ b/src/mainboard/starlabs/starlite_adl/cfr.c @@ -57,6 +57,7 @@ static struct sm_obj_form devices = { .ui_name = "Devices", .obj_list = (const struct sm_object *[]) { &accelerometer, + &bluetooth, &card_reader, &display_native_res, #if CONFIG(SOC_INTEL_TIGERLAKE) || CONFIG(SOC_INTEL_ALDERLAKE) || CONFIG(SOC_INTEL_RAPTORLAKE) @@ -68,7 +69,7 @@ static struct sm_obj_form devices = { µphone, &touchscreen, &webcam, - &wireless, + &wifi, NULL }, }; diff --git a/src/mainboard/starlabs/starlite_adl/variants/mk_v/devtree.c b/src/mainboard/starlabs/starlite_adl/variants/mk_v/devtree.c index 8252d61756..31de19db97 100644 --- a/src/mainboard/starlabs/starlite_adl/variants/mk_v/devtree.c +++ b/src/mainboard/starlabs/starlite_adl/variants/mk_v/devtree.c @@ -19,7 +19,7 @@ void devtree_update(void) struct soc_power_limits_config *soc_conf_4core = &cfg->power_limits_config[ADL_N_041_6W_CORE]; - struct device *nic_dev = pcidev_on_root(0x14, 3); + struct device *wifi_dev = pcidev_on_root(0x14, 3); struct device *touchscreen_dev = pcidev_on_root(0x15, 2); struct device *accelerometer_dev = pcidev_on_root(0x15, 0); struct device *gna_dev = pcidev_on_root(0x08, 0); @@ -51,11 +51,14 @@ void devtree_update(void) soc_conf_4core->tdp_pl1_override = (soc_conf_4core->tdp_pl1_override * performance_scale) / 100; soc_conf_4core->tdp_pl2_override = (soc_conf_4core->tdp_pl2_override * performance_scale) / 100; + + /* Enable/Disable WiFi based on CMOS settings */ + if (get_uint_option("wifi", 1) == 0) + wifi_dev->enabled = 0; + /* Enable/Disable Bluetooth based on CMOS settings */ - if (get_uint_option("wireless", 1) == 0) { + if (get_uint_option("bluetooth", 1) == 0) cfg->usb2_ports[9].enable = 0; - nic_dev->enabled = 0; - } /* Enable/Disable Webcam/Camera based on CMOS settings */ if (get_uint_option("webcam", 1) == 0)