mb/google/skyrim: Override SPI flash bus speed

Add configuration to bump up the SPI flash bus speed from 66 MHz to 100
MHz starting the board version where required schematics update is done.

BUG=b:245949155
TEST=Build and boot to OS in Skyrim with 100 MHz SPI bus speed. Perform
warm and cold reboot cycles for 100 iterations each. Observe that the
boot time improved by ~115 ms compared to 66 MHz SPI flash bus speed.
At 66 MHz:
 508:finished loading body                        538,319 (83,806)
  11:start of bootblock                         1,196,809 (624,777)
  14:finished loading romstage                  1,236,905 (39,163)
 970:loading FSP-M                              1,237,056 (37)
  15:starting LZMA decompress (ignore for x86)  1,237,073 (17)
  16:finished LZMA decompress (ignore for x86)  1,358,937 (121,864)
   8:starting to load ramstage                  2,010,304 (0)
  15:starting LZMA decompress (ignore for x86)  2,010,312 (8)
  16:finished LZMA decompress (ignore for x86)  2,067,181 (56,869)
 971:loading FSP-S                              2,078,232 (7,999)
  17:starting LZ4 decompress (ignore for x86)   2,078,253 (21)
  18:finished LZ4 decompress (ignore for x86)   2,084,297 (6,044)
  90:starting to load payload                   2,316,933 (5)
  15:starting LZMA decompress (ignore for x86)  2,316,947 (14)
  16:finished LZMA decompress (ignore for x86)  2,339,819 (22,872)
Total Time: 2,464,338

At 100 MHz:
 508:finished loading body                        515,118 (59,364)
  11:start of bootblock                         1,115,043 (566,110)
  14:finished loading romstage                  1,146,713 (29,697)
 970:loading FSP-M                              1,146,865 (38)
  15:starting LZMA decompress (ignore for x86)  1,146,881 (16)
  16:finished LZMA decompress (ignore for x86)  1,249,351 (102,470)
   8:starting to load ramstage                  1,900,568 (1)
  15:starting LZMA decompress (ignore for x86)  1,900,576 (8)
  16:finished LZMA decompress (ignore for x86)  1,956,337 (55,761)
 971:loading FSP-S                              1,967,357 (7,930)
  17:starting LZ4 decompress (ignore for x86)   1,967,377 (20)
  18:finished LZ4 decompress (ignore for x86)   1,972,925 (5,548)
  90:starting to load payload                   2,205,300 (6)
  15:starting LZMA decompress (ignore for x86)  2,205,313 (13)
  16:finished LZMA decompress (ignore for x86)  2,227,087 (21,774)
Total Time: 2,349,804

Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Change-Id: I5e8db22151fbc2db1f9e81b3644338348160736d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/68116
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Jon Murphy <jpmurphy@google.com>
This commit is contained in:
Karthikeyan Ramasubramanian 2022-10-04 10:08:15 -06:00 committed by Karthik Ramasubramanian
parent 93781523a5
commit aea60bcd43
3 changed files with 31 additions and 0 deletions

View File

@ -126,4 +126,20 @@ config ALT_SPI_SPEED
endif # !EM100
config OVERRIDE_EFS_SPI_SPEED
int
default 3 if EM100
default 4 # 100MHz
help
Override EFS SPI Speed Configuration to be applied based on certain
board version.
config OVERRIDE_EFS_SPI_SPEED_MIN_BOARD
hex
default 0x5 if BOARD_GOOGLE_SKYRIM
default 0xffffffff
help
Minimum board version starting which the Override EFS SPI Speed
configuration has to be applied.
endif # BOARD_GOOGLE_BASEBOARD_SKYRIM

View File

@ -10,6 +10,8 @@ ramstage-$(CONFIG_CHROMEOS) += chromeos.c
verstage-$(CONFIG_VBOOT_STARTS_BEFORE_BOOTBLOCK) += verstage.c
all-y += spi_speeds.c
subdirs-y += variants/baseboard
subdirs-y += variants/$(VARIANT_DIR)

View File

@ -0,0 +1,13 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <amdblocks/spi.h>
#include <boardid.h>
#include <stdint.h>
void mainboard_spi_fast_speed_override(uint8_t *fast_speed)
{
uint32_t board_ver = board_id();
if (board_ver >= CONFIG_OVERRIDE_EFS_SPI_SPEED_MIN_BOARD)
*fast_speed = CONFIG_OVERRIDE_EFS_SPI_SPEED;
}