google/chromeec: Add function to report the SKU ID

Add implementation of sku_id function that reports the SKU ID
information by making use of ChromeOS EC host command. This function
can replace redundant sku_id function definitions across boards that
rely on ChromeOS EC host command to report the SKU ID information.

The boards that relying on ChromeOS EC host command for SKU information
without any board specific quirks can select EC_GOOGLE_CHROMEEC_SKUID
to make use of common sku_id function.

Brya, zork, rex, fatcat, brox and dedede boards select
EC_GOOGLE_CHROMEEC_SKUID to use ChromeOS EC sku_id function.

BUG=b:396366352
TEST=Verify zork and brya boot log reports the correct the SKU ID
     information

Change-Id: I958cc88bf316dd2327b6545c5a37e8010e96c5d7
Signed-off-by: Aamir Bohra <aamirbohra@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/86810
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
This commit is contained in:
Aamir Bohra 2025-03-25 15:30:34 +00:00 committed by Matt DeVillier
commit f2a6a5c7fa
18 changed files with 16 additions and 30 deletions

View file

@ -689,6 +689,19 @@ int google_chromeec_cbi_get_sku_id(uint32_t *id)
return cbi_get_uint32(id, CBI_TAG_SKU_ID);
}
uint32_t google_chromeec_get_board_sku(void)
{
static uint32_t sku_id = CROS_SKU_UNKNOWN;
if (sku_id != CROS_SKU_UNKNOWN)
return sku_id;
if (google_chromeec_cbi_get_sku_id(&sku_id))
sku_id = CROS_SKU_UNKNOWN;
return sku_id;
}
int google_chromeec_cbi_get_fw_config(uint64_t *fw_config)
{
uint32_t config;

View file

@ -1,16 +1,9 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <boardid.h>
#include <ec/google/chromeec/ec.h>
uint32_t google_chromeec_get_board_sku(void)
uint32_t sku_id(void)
{
static uint32_t sku_id = CROS_SKU_UNKNOWN;
if (sku_id != CROS_SKU_UNKNOWN)
return sku_id;
if (google_chromeec_cbi_get_sku_id(&sku_id))
sku_id = CROS_SKU_UNKNOWN;
return sku_id;
return google_chromeec_get_board_sku();
}

View file

@ -19,7 +19,6 @@ config BOARD_SPECIFIC_OPTIONS
select SPI_FLASH_INCLUDE_ALL_DRIVERS
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SPI
select I2C_TPM if VBOOT
select TPM_GOOGLE_CR50 if VBOOT

View file

@ -48,7 +48,6 @@ config BOARD_SPECIFIC_OPTIONS
select COMMONLIB_STORAGE_MMC
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SPI
select SPI_TPM if VBOOT
select TPM_GOOGLE_TI50 if VBOOT

View file

@ -29,7 +29,6 @@ config BOARD_SPECIFIC_OPTIONS
select COMMONLIB_STORAGE_MMC
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SPI
select I2C_TPM if VBOOT
select MAINBOARD_HAS_TPM2 if VBOOT

View file

@ -21,7 +21,6 @@ config BOARD_GOOGLE_BASEBOARD_GUYBRUSH
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_ESPI
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SMBIOS
select ELOG
select ELOG_GSMI

View file

@ -16,7 +16,6 @@ config BOARD_GOOGLE_BASEBOARD_HATCH
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_ESPI
select EC_GOOGLE_CHROMEEC_I2C_TUNNEL
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SMBIOS
select GOOGLE_SMBIOS_MAINBOARD_VERSION
select HAVE_ACPI_RESUME

View file

@ -24,7 +24,6 @@ config BOARD_SPECIFIC_OPTIONS
select COMMON_CBFS_SPI_WRAPPER
select EC_GOOGLE_CHROMEEC if !BOARD_GOOGLE_SENOR
select EC_GOOGLE_CHROMEEC_RTC if !BOARD_GOOGLE_SENOR
select EC_GOOGLE_CHROMEEC_SKUID if !BOARD_GOOGLE_SENOR
select EC_GOOGLE_CHROMEEC_SPI if !BOARD_GOOGLE_SENOR
select RTC if !BOARD_GOOGLE_SENOR
select MISSING_BOARD_RESET if BOARD_GOOGLE_SENOR

View file

@ -20,7 +20,6 @@ config BOARD_SPECIFIC_OPTIONS
select DRIVERS_UART_ACPI
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_ESPI
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SMBIOS
select EC_GOOGLE_CHROMEEC_BOARDID
select ELOG

View file

@ -20,7 +20,6 @@ config BOARD_GOOGLE_OCELOT_COMMON
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_ESPI
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SMBIOS
select FW_CONFIG
select FW_CONFIG_SOURCE_CHROMEEC_CBI

View file

@ -15,7 +15,6 @@ config BOARD_GOOGLE_BASEBOARD_OCTOPUS
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_ESPI
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SMBIOS
select GOOGLE_SMBIOS_MAINBOARD_VERSION
select HAVE_ACPI_RESUME

View file

@ -17,7 +17,6 @@ config BOARD_GOOGLE_BASEBOARD_PUFF
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_ESPI
select EC_GOOGLE_CHROMEEC_I2C_TUNNEL
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SMBIOS
select FW_CONFIG
select FW_CONFIG_SOURCE_CHROMEEC_CBI

View file

@ -28,7 +28,6 @@ config BOARD_SPECIFIC_OPTIONS
select CHROMEOS_USE_EC_WATCHDOG_FLAG if CHROMEOS
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SPI
select I2C_TPM if VBOOT
select MAINBOARD_HAS_TPM2 if VBOOT

View file

@ -49,7 +49,6 @@ config BOARD_SPECIFIC_OPTIONS
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_ESPI
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SMBIOS
select ELOG
select ELOG_GSMI

View file

@ -23,7 +23,6 @@ config BOARD_GOOGLE_BASEBOARD_VOLTEER
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG
select EC_GOOGLE_CHROMEEC_LPC
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SMBIOS
select ENABLE_TCSS_USB_DETECTION if !CHROMEOS
select FW_CONFIG

View file

@ -4,11 +4,6 @@
#include <baseboard/variants.h>
#include <ec/google/chromeec/ec.h>
uint32_t sku_id(void)
{
return google_chromeec_get_board_sku();
}
/* An unprovisioned SKU ID indicates we're in the factory booting prior to
proper SKU ID provisioning. */
int boot_is_factory_unprovisioned(void)

View file

@ -19,7 +19,6 @@ config BOARD_INTEL_PTLRVP_COMMON
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_ESPI
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SMBIOS
select FW_CONFIG
select FW_CONFIG_SOURCE_CHROMEEC_CBI

View file

@ -15,7 +15,6 @@ config BOARD_SPECIFIC_OPTIONS
select DRIVERS_USB_ACPI
select EC_GOOGLE_CHROMEEC
select EC_GOOGLE_CHROMEEC_BOARDID
select EC_GOOGLE_CHROMEEC_SKUID
select EC_GOOGLE_CHROMEEC_SMBIOS
select EC_GOOGLE_CHROMEEC_LPC
select HAVE_ACPI_RESUME