drivers/spi/spi_flash: Use boot_device_spi_flash to obtain spi_flash structure

Instead of storing spi flash device structure in spi flash driver, use
boot_device_spi_flash callback to obtain pointer to boot device spi
flash structure.

BUG=b:38330715

Change-Id: Idd50b7644d1a4be8b62d38cc9239feae2215103c
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: https://review.coreboot.org/19703
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Furquan Shaikh 2017-05-07 13:05:39 -07:00 committed by Furquan Shaikh
parent 78bc6ddfd0
commit f422fd2c78
1 changed files with 2 additions and 13 deletions

View File

@ -22,8 +22,6 @@
#include "spi_flash_internal.h" #include "spi_flash_internal.h"
#include <timer.h> #include <timer.h>
static struct spi_flash *spi_flash_dev = NULL;
static void spi_flash_addr(u32 addr, u8 *cmd) static void spi_flash_addr(u32 addr, u8 *cmd)
{ {
/* cmd[0] is actual command */ /* cmd[0] is actual command */
@ -357,14 +355,6 @@ struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs)
printk(BIOS_INFO, "SF: Detected %s with sector size 0x%x, total 0x%x\n", printk(BIOS_INFO, "SF: Detected %s with sector size 0x%x, total 0x%x\n",
flash->name, flash->sector_size, flash->size); flash->name, flash->sector_size, flash->size);
/*
* Only set the global spi_flash_dev if this is the boot
* device's bus and it's previously unset while in ramstage.
*/
if (ENV_RAMSTAGE && IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH) &&
CONFIG_BOOT_DEVICE_SPI_FLASH_BUS == bus && !spi_flash_dev)
spi_flash_dev = flash;
return flash; return flash;
} }
@ -451,6 +441,7 @@ int spi_flash_volatile_group_end(const struct spi_flash *flash)
void lb_spi_flash(struct lb_header *header) void lb_spi_flash(struct lb_header *header)
{ {
struct lb_spi_flash *flash; struct lb_spi_flash *flash;
const struct spi_flash *spi_flash_dev;
if (!IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH)) if (!IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH))
return; return;
@ -460,9 +451,7 @@ void lb_spi_flash(struct lb_header *header)
flash->tag = LB_TAG_SPI_FLASH; flash->tag = LB_TAG_SPI_FLASH;
flash->size = sizeof(*flash); flash->size = sizeof(*flash);
/* Try to get the flash device if not loaded yet */ spi_flash_dev = boot_device_spi_flash();
if (!spi_flash_dev)
boot_device_init();
if (spi_flash_dev) { if (spi_flash_dev) {
flash->flash_size = spi_flash_dev->size; flash->flash_size = spi_flash_dev->size;