From 3d3b76b8321ea2106e2bd2595097accbf6ac9eb9 Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Thu, 25 Feb 2016 08:45:43 -0800 Subject: skylake: Add and fill out CID1 NVS field Add a country identifier field to NVS and populate it with the call to wifi_regulatory_domain() which will (by default) do a lookup for the 'region' identifier in VPD on a Chrome OS device. BUG=chrome-os-partner:50516 BRANCH=glados TEST=build and boot on chell Change-Id: Ie7531848e620095732772c22156a85b7f8a6df5c Signed-off-by: Patrick Georgi Original-Commit-Id: dafdb3760a0302e3effdc0e83977c1bfd5c9d3b2 Original-Change-Id: Ic83ab008045a469d0e0756f7e4d42f1b3894c529 Original-Signed-off-by: Duncan Laurie Original-Reviewed-on: https://chromium-review.googlesource.com/329295 Original-Reviewed-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/13839 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Stefan Reinauer --- src/soc/intel/skylake/acpi.c | 4 ++++ src/soc/intel/skylake/acpi/globalnvs.asl | 1 + src/soc/intel/skylake/include/soc/nvs.h | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src/soc') diff --git a/src/soc/intel/skylake/acpi.c b/src/soc/intel/skylake/acpi.c index 678e0a9f3f..934d7b53c7 100644 --- a/src/soc/intel/skylake/acpi.c +++ b/src/soc/intel/skylake/acpi.c @@ -41,6 +41,7 @@ #include #include #include +#include /* * List of suported C-states in this processor. @@ -193,6 +194,9 @@ static void acpi_create_gnvs(global_nvs_t *gnvs) /* Enable DPTF based on mainboard configuration */ gnvs->dpte = config->dptf_enable; + + /* Fill in the Wifi Region id */ + gnvs->cid1 = wifi_regulatory_domain(); } unsigned long acpi_fill_mcfg(unsigned long current) diff --git a/src/soc/intel/skylake/acpi/globalnvs.asl b/src/soc/intel/skylake/acpi/globalnvs.asl index 1ea7e53c5f..2bff7d3cf9 100644 --- a/src/soc/intel/skylake/acpi/globalnvs.asl +++ b/src/soc/intel/skylake/acpi/globalnvs.asl @@ -63,6 +63,7 @@ Field (GNVS, ByteAcc, NoLock, Preserve) DPTE, 8, // 0x30 - Enable DPTF NHLA, 64, // 0x31 - NHLT Address NHLL, 32, // 0x39 - NHLT Length + CID1, 16, // 0x3d - Wifi Country Identifier /* ChromeOS specific */ Offset (0x100), diff --git a/src/soc/intel/skylake/include/soc/nvs.h b/src/soc/intel/skylake/include/soc/nvs.h index 032068f484..f9d5b71880 100644 --- a/src/soc/intel/skylake/include/soc/nvs.h +++ b/src/soc/intel/skylake/include/soc/nvs.h @@ -53,7 +53,8 @@ typedef struct { u8 dpte; /* 0x30 - Enable DPTF */ u64 nhla; /* 0x31 - NHLT Address */ u32 nhll; /* 0x39 - NHLT Length */ - u8 unused[195]; + u16 cid1; /* 0x3d - Wifi Country Identifier */ + u8 unused[193]; /* ChromeOS specific (0x100 - 0xfff) */ chromeos_acpi_t chromeos; -- cgit v1.2.3