summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2016-08-22 17:41:13 -0500
committerAaron Durbin <adurbin@chromium.org>2016-08-23 15:17:00 +0200
commitdf76f8983f001a83f00ad962e047dcb331a6d69f (patch)
treeb91e28f00a636f7e56617d988c2cd4f04fbdf816 /src/drivers
parent7931c6a81df82416ead196505411c4f6ff368429 (diff)
downloadcoreboot-df76f8983f001a83f00ad962e047dcb331a6d69f.tar.xz
drivers/spi: be sure to call spi_init() before spi_flash_probe()
It's necessary to call spi_init() prior to calling spi_flash_probe() such that the SPI drivers can do any work required prior to performing SPI transactions. It could be argued that the drivers should handle such situations, however the SPI API implementations seem to assume the callers ensured spi_init() was called before any SPI transactions. This fixes systems that failed to boot introduced by [1]. Issue tracked in https://ticket.coreboot.org/issues/67. [1] I2aa75f88409309e3f9b9bd79b52d27c0061139c8 https://review.coreboot.org/16200 BUG=chrome-os-partner:56151 Change-Id: I2d8d5ac685833521f1efe212b07a4b61ba0d9bc3 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/16297 Tested-by: build bot (Jenkins) Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@googlemail.com> Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com>
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/spi/boot_device_rw_nommap.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/drivers/spi/boot_device_rw_nommap.c b/src/drivers/spi/boot_device_rw_nommap.c
index 2a9f19f1f8..bf15e99f94 100644
--- a/src/drivers/spi/boot_device_rw_nommap.c
+++ b/src/drivers/spi/boot_device_rw_nommap.c
@@ -78,6 +78,9 @@ void boot_device_init(void)
if (car_get_var(sfg) != NULL)
return;
+ /* Ensure any necessary setup is performed by the drivers. */
+ spi_init();
+
car_set_var(sfg, spi_flash_probe(bus, cs));
}