summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/google/guybrush/spi_speeds.c2
-rw-r--r--src/mainboard/google/skyrim/Kconfig3
-rw-r--r--src/mainboard/google/skyrim/spi_speeds.c10
3 files changed, 12 insertions, 3 deletions
diff --git a/src/mainboard/google/guybrush/spi_speeds.c b/src/mainboard/google/guybrush/spi_speeds.c
index 857e02d900..7e7ff711b7 100644
--- a/src/mainboard/google/guybrush/spi_speeds.c
+++ b/src/mainboard/google/guybrush/spi_speeds.c
@@ -4,7 +4,7 @@
#include <boardid.h>
#include <stdint.h>
-void mainboard_spi_fast_speed_override(uint8_t *fast_speed)
+void mainboard_spi_cfg_override(uint8_t *fast_speed, uint8_t *read_mode)
{
uint32_t board_ver = board_id();
diff --git a/src/mainboard/google/skyrim/Kconfig b/src/mainboard/google/skyrim/Kconfig
index 9036406211..d21bcc8630 100644
--- a/src/mainboard/google/skyrim/Kconfig
+++ b/src/mainboard/google/skyrim/Kconfig
@@ -107,7 +107,8 @@ config VBOOT_STARTS_IN_BOOTBLOCK
if !EM100 # EM100 defaults in soc/amd/common/blocks/spi/Kconfig
config EFS_SPI_READ_MODE
- default 2 # Dual IO (1-1-2)
+ default 2 if BOARD_GOOGLE_SKYRIM # Dual IO (1-1-2)
+ default 4 # Dual IO (1-2-2)
config EFS_SPI_SPEED
default 0 # 66MHz
diff --git a/src/mainboard/google/skyrim/spi_speeds.c b/src/mainboard/google/skyrim/spi_speeds.c
index 857e02d900..90a6b47677 100644
--- a/src/mainboard/google/skyrim/spi_speeds.c
+++ b/src/mainboard/google/skyrim/spi_speeds.c
@@ -4,10 +4,18 @@
#include <boardid.h>
#include <stdint.h>
-void mainboard_spi_fast_speed_override(uint8_t *fast_speed)
+void mainboard_spi_cfg_override(uint8_t *fast_speed, uint8_t *read_mode)
{
uint32_t board_ver = board_id();
if (board_ver >= CONFIG_OVERRIDE_EFS_SPI_SPEED_MIN_BOARD)
*fast_speed = CONFIG_OVERRIDE_EFS_SPI_SPEED;
+
+ /*
+ * Due to a hardware limitation, Dual I/O 1-2-2 Read mode is supported starting
+ * board version 3. This hardware limitation applies only to Skyrim reference
+ * design.
+ */
+ if (CONFIG(BOARD_GOOGLE_SKYRIM) && board_ver >= 3)
+ *read_mode = SPI_READ_MODE_DUAL122;
}