From aaf373c2531426344015ff3ed971b2c9cb3cec6e Mon Sep 17 00:00:00 2001 From: Wentao Qin Date: Mon, 10 Feb 2025 19:36:48 +0800 Subject: [PATCH] mb/google/skywalker: Implement sku_id() Retrieve the SKU ID for Skywalker via CBI interface. BUG=b:395551181 BRANCH=none TEST=check boot log Signed-off-by: Wentao Qin Change-Id: I6f1343f127537f97bfa4e1f2cfef7db5d46fab67 Reviewed-on: https://review.coreboot.org/c/coreboot/+/87359 Reviewed-by: Yu-Ping Wu Reviewed-by: Yidi Lin Tested-by: build bot (Jenkins) --- src/mainboard/google/skywalker/Kconfig | 2 ++ src/mainboard/google/skywalker/Makefile.mk | 1 + src/mainboard/google/skywalker/boardid.c | 23 ++++++++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 src/mainboard/google/skywalker/boardid.c diff --git a/src/mainboard/google/skywalker/Kconfig b/src/mainboard/google/skywalker/Kconfig index ddc20e20f3..a05f4bbdd6 100644 --- a/src/mainboard/google/skywalker/Kconfig +++ b/src/mainboard/google/skywalker/Kconfig @@ -26,6 +26,8 @@ config BOARD_SPECIFIC_OPTIONS select EC_GOOGLE_CHROMEEC select EC_GOOGLE_CHROMEEC_BOARDID select EC_GOOGLE_CHROMEEC_SPI + select FW_CONFIG + select FW_CONFIG_SOURCE_CHROMEEC_CBI config MAINBOARD_DIR string diff --git a/src/mainboard/google/skywalker/Makefile.mk b/src/mainboard/google/skywalker/Makefile.mk index c2ff8f6cb7..6c863fe287 100644 --- a/src/mainboard/google/skywalker/Makefile.mk +++ b/src/mainboard/google/skywalker/Makefile.mk @@ -8,4 +8,5 @@ bootblock-y += bootblock.c romstage-y += romstage.c +ramstage-y += boardid.c ramstage-y += mainboard.c diff --git a/src/mainboard/google/skywalker/boardid.c b/src/mainboard/google/skywalker/boardid.c new file mode 100644 index 0000000000..cfac4d5d4d --- /dev/null +++ b/src/mainboard/google/skywalker/boardid.c @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include + +uint32_t sku_id(void) +{ + static uint32_t cached_sku_code = BOARD_ID_INIT; + + if (cached_sku_code == BOARD_ID_INIT) { + cached_sku_code = google_chromeec_get_board_sku(); + + if (cached_sku_code == CROS_SKU_UNKNOWN || + cached_sku_code == CROS_SKU_UNPROVISIONED) { + printk(BIOS_WARNING, "Failed to get SKU code from EC\n"); + cached_sku_code = CROS_SKU_UNPROVISIONED; + } + printk(BIOS_DEBUG, "SKU Code: %#02x\n", cached_sku_code); + } + + return cached_sku_code; +}