mb/google/herobrine: Only retrieve sku_id from EC once

Currently, we are getting the sku id from the EC every time we call
the sku_id() function.  However, this will never change so we only
need to retrieve it once.  Inserting exit condition if sku id is
already set, then don't get it from the EC again.

Also, removing the ram_code function, which does nothing right now.
There is already a weak stub_function for this in
src/lib/coreboot_table.c that already does the same thing.

BUG=b:260740438,b:182963902
BRANCH=None
TEST=make sure image still boots to login on herobrine device

Change-Id: Ia787968100baf58a41ccce0cf95ed3ec9ce1758a
Signed-off-by: Shelley Chen <shchen@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/70162
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Doug Anderson <dianders@chromium.org>
This commit is contained in:
Shelley Chen 2022-11-29 11:14:34 -08:00
parent 98d0574746
commit 474da028ab
1 changed files with 12 additions and 14 deletions

View File

@ -11,6 +11,9 @@
uint32_t board_id(void) uint32_t board_id(void)
{ {
static uint32_t id = UNDEFINED_STRAPPING_ID; static uint32_t id = UNDEFINED_STRAPPING_ID;
if (id != UNDEFINED_STRAPPING_ID)
return id;
gpio_t pins[3] = { 0 }; gpio_t pins[3] = { 0 };
if (CONFIG(BOARD_GOOGLE_HEROBRINE_REV0)) { if (CONFIG(BOARD_GOOGLE_HEROBRINE_REV0)) {
pins[2] = GPIO(75); pins[2] = GPIO(75);
@ -22,21 +25,8 @@ uint32_t board_id(void)
pins[0] = GPIO(48); pins[0] = GPIO(48);
} }
if (id == UNDEFINED_STRAPPING_ID)
id = gpio_base3_value(pins, ARRAY_SIZE(pins)); id = gpio_base3_value(pins, ARRAY_SIZE(pins));
printk(BIOS_INFO, "BoardID :%d - "
"Machine model: "
"Qualcomm Technologies, Inc. "
"sc7280 platform\n", id);
return id;
}
uint32_t ram_code(void)
{
static uint32_t id = UNDEFINED_STRAPPING_ID;
return id; return id;
} }
@ -44,6 +34,14 @@ uint32_t sku_id(void)
{ {
static uint32_t id = UNDEFINED_STRAPPING_ID; static uint32_t id = UNDEFINED_STRAPPING_ID;
/*
* This means that we already retrieved the sku id from the EC once
* during this boot, so no need to do it again as we'll get the same
* value again.
*/
if (id != UNDEFINED_STRAPPING_ID)
return id;
/* Update modem status in 9th bit of sku id */ /* Update modem status in 9th bit of sku id */
uint32_t mask = 1 << 9; uint32_t mask = 1 << 9;
id = google_chromeec_get_board_sku(); id = google_chromeec_get_board_sku();