diff options
author | Peter Stuge <peter@stuge.se> | 2009-01-26 03:08:45 +0000 |
---|---|---|
committer | Peter Stuge <peter@stuge.se> | 2009-01-26 03:08:45 +0000 |
commit | bf196e91997a6f2a0d0e1b6670f300d3fc73ca8f (patch) | |
tree | 647b2bdde31184104f4eac0758d03d872a3e45ea /spi.c | |
parent | 9d9399c5b47c63648dd72ce8b699ae8cc58a2f1a (diff) | |
download | flashrom-bf196e91997a6f2a0d0e1b6670f300d3fc73ca8f.tar.gz flashrom-bf196e91997a6f2a0d0e1b6670f300d3fc73ca8f.tar.bz2 flashrom-bf196e91997a6f2a0d0e1b6670f300d3fc73ca8f.zip |
Winbond SuperIO SPI driver
Developed and tested to work on Intel D201GLY in July 2008.
Tested by a helpful person on IRC whose name I've since forgotten. Sorry!
Corresponding to flashrom svn r404 and coreboot v2 svn r3910.
Signed-off-by: Peter Stuge <peter@stuge.se>
Acked-by: Ward Vandewege <ward@gnu.org>
Diffstat (limited to 'spi.c')
-rw-r--r-- | spi.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -44,6 +44,8 @@ int spi_command(unsigned int writecnt, unsigned int readcnt, return ich_spi_command(writecnt, readcnt, writearr, readarr); case BUS_TYPE_SB600_SPI: return sb600_spi_command(writecnt, readcnt, writearr, readarr); + case BUS_TYPE_WBSIO_SPI: + return wbsio_spi_command(writecnt, readcnt, writearr, readarr); default: printf_debug ("%s called, but no SPI chipset/strapping detected\n", @@ -160,6 +162,7 @@ int probe_spi_rdid4(struct flashchip *flash) case BUS_TYPE_ICH9_SPI: case BUS_TYPE_VIA_SPI: case BUS_TYPE_SB600_SPI: + case BUS_TYPE_WBSIO_SPI: return probe_spi_rdid_generic(flash, 4); default: printf_debug("4b ID not supported on this SPI controller\n"); @@ -229,7 +232,7 @@ int probe_spi_res(struct flashchip *flash) uint8_t spi_read_status_register() { const unsigned char cmd[JEDEC_RDSR_OUTSIZE] = { JEDEC_RDSR }; - unsigned char readarr[JEDEC_RDSR_INSIZE]; + unsigned char readarr[2]; /* JEDEC_RDSR_INSIZE=1 but wbsio needs 2 */ /* Read Status Register */ if (flashbus == BUS_TYPE_SB600_SPI) { @@ -555,6 +558,8 @@ int spi_chip_read(struct flashchip *flash, uint8_t *buf) case BUS_TYPE_ICH9_SPI: case BUS_TYPE_VIA_SPI: return ich_spi_read(flash, buf); + case BUS_TYPE_WBSIO_SPI: + return wbsio_spi_read(flash, buf); default: printf_debug ("%s called, but no SPI chipset/strapping detected\n", @@ -575,6 +580,8 @@ int spi_chip_write(struct flashchip *flash, uint8_t *buf) case BUS_TYPE_ICH9_SPI: case BUS_TYPE_VIA_SPI: return ich_spi_write(flash, buf); + case BUS_TYPE_WBSIO_SPI: + return wbsio_spi_write(flash, buf); default: printf_debug ("%s called, but no SPI chipset/strapping detected\n", |