Subrata Banik has submitted this change. ( https://review.coreboot.org/c/coreboot/+/82207?usp=email )
Change subject: drivers/wifi: Support Wi-Fi 7 11be Enablement ......................................................................
drivers/wifi: Support Wi-Fi 7 11be Enablement
Add 802.11be (aka. Wi-Fi 7) enable/disable support based on document 559910 Intel Connectivity Platforms BIOS_Guidelines revision 8.3.
There are countries where Wi-Fi 7 should be disabled by default. This adds capability for OEM to enable or disable by updating the board specific Specific Absorption Rate (SAR) binary.
BUG=b:348345300 BRANCH=firmware-rex-15709.B TEST=SSDT dump shows that the _DSM method returns the value supplied by the SAR binary for function 12
Change-Id: Ifa1482d7511f48f5138d4c68566f07ce79f37a7a Signed-off-by: Ravi Sarawadi ravishankar.sarawadi@intel.com Signed-off-by: Jeremy Compostella jeremy.compostella@intel.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/82207 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Subrata Banik subratabanik@google.com Reviewed-by: Eric Lai ericllai@google.com Reviewed-by: YH Lin yueherngl@google.com --- M src/drivers/wifi/generic/acpi.c M src/include/sar.h 2 files changed, 28 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Eric Lai: Looks good to me, approved Subrata Banik: Looks good to me, approved YH Lin: Looks good to me, but someone else must approve
diff --git a/src/drivers/wifi/generic/acpi.c b/src/drivers/wifi/generic/acpi.c index fd1da06..d3da51b 100644 --- a/src/drivers/wifi/generic/acpi.c +++ b/src/drivers/wifi/generic/acpi.c @@ -143,6 +143,28 @@ acpigen_write_return_integer(dsm_config->unii_4); }
+/* + * Function 12: Control Enablement 802.11be on certificated modules + * Bit 0 + * 0 - 11BE disabled for China Mainland + * 1 - 11BE enabled for China Mainland + * + * Bit 1 + * 0 - 11BE disabled for South Korea + * 1 - 11BE enabled for South Korea + * + * Bit 2:27 - Reserved (shall be set to zeroes) + * + * Bit 28:31 - 11BE enablement revision + * + */ +static void wifi_dsm_11be_country_enablement(void *args) +{ + struct dsm_profile *dsm_config = (struct dsm_profile *)args; + + acpigen_write_return_integer(dsm_config->enablement_11be); +} + static void wifi_dsm_ddrrfim_func3_cb(void *ptr) { const bool is_cnvi_ddr_rfim_enabled = *(bool *)ptr; @@ -158,6 +180,11 @@ wifi_dsm_uart_configurations, /* Function 5 */ wifi_dsm_ukrane_russia_11ax_enable, /* Function 6 */ wifi_dsm_unii4_control_enable, /* Function 7 */ + NULL, /* Function 8 */ + NULL, /* Function 9 */ + NULL, /* Function 10 */ + NULL, /* Function 11 */ + wifi_dsm_11be_country_enablement, /* Function 12 */ };
/* diff --git a/src/include/sar.h b/src/include/sar.h index 8d712de..c201cea 100644 --- a/src/include/sar.h +++ b/src/include/sar.h @@ -57,6 +57,7 @@ uint32_t uart_configurations; uint32_t enablement_11ax; uint32_t unii_4; + uint32_t enablement_11be; };
struct sar_header {