diff --git a/src/drivers/spi/spi_flash.c b/src/drivers/spi/spi_flash.c index b7a024c4c2..80e937a724 100644 --- a/src/drivers/spi/spi_flash.c +++ b/src/drivers/spi/spi_flash.c @@ -564,6 +564,11 @@ int spi_flash_probe(unsigned int bus, unsigned int cs, struct spi_flash *flash) CONFIG_ROM_SIZE); } + if (CONFIG(SPI_FLASH_FORCE_4_BYTE_ADDR_MODE)) { + printk(BIOS_DEBUG, "SF: Force 4-byte addressing mode\n"); + spi_flash_cmd(&flash->spi, CMD_FORCE_4BYTE_ADDR_MODE, NULL, 0); + } + if (CONFIG(SPI_FLASH_EXIT_4_BYTE_ADDR_MODE) && SPI_FLASH_EXIT_4BYTE_STAGE) { printk(BIOS_DEBUG, "SF: Exiting 4-byte addressing mode\n"); spi_flash_cmd(&flash->spi, CMD_EXIT_4BYTE_ADDR_MODE, NULL, 0); diff --git a/src/drivers/spi/spi_flash_internal.h b/src/drivers/spi/spi_flash_internal.h index a30f58f9a5..163b6181b7 100644 --- a/src/drivers/spi/spi_flash_internal.h +++ b/src/drivers/spi/spi_flash_internal.h @@ -22,6 +22,8 @@ #define CMD_READ_STATUS 0x05 #define CMD_WRITE_ENABLE 0x06 +#define CMD_FORCE_4BYTE_ADDR_MODE 0xb7 + #define CMD_BLOCK_ERASE 0xD8 #define CMD_EXIT_4BYTE_ADDR_MODE 0xe9