From d701ef7475fe6d015a61cd91410391c3e0902f53 Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Fri, 27 Dec 2019 15:16:17 -0700 Subject: drives/spi_flash: add spi_flash_cmd_write_page_program() The SPI flashes that support page programming mode had duplicated the logic for writing in every driver. Add spi_flash_cmd_write_page_program() and use the common implementation to reduce code size that comes from duplication. The savings is ~2.5KiB per stage where the spi flash drivers are utilized. Change-Id: Ie6db03fa8ad33789f1d07a718a769e4ca8bffe1d Signed-off-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/c/coreboot/+/37963 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Marshall Dawson --- src/drivers/spi/spi_flash_internal.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/drivers/spi/spi_flash_internal.h') diff --git a/src/drivers/spi/spi_flash_internal.h b/src/drivers/spi/spi_flash_internal.h index 36fa66d67c..f99c90ed36 100644 --- a/src/drivers/spi/spi_flash_internal.h +++ b/src/drivers/spi/spi_flash_internal.h @@ -62,6 +62,10 @@ int spi_flash_cmd_erase(const struct spi_flash *flash, u32 offset, size_t len); /* Read status register. */ int spi_flash_cmd_status(const struct spi_flash *flash, u8 *reg); +/* Write to flash utilizing page program semantics. */ +int spi_flash_cmd_write_page_program(const struct spi_flash *flash, u32 offset, + size_t len, const void *buf); + /* Manufacturer-specific probe functions */ int spi_flash_probe_spansion(const struct spi_slave *spi, u8 *idcode, struct spi_flash *flash); -- cgit v1.2.3