diff options
author | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2009-05-14 12:59:36 +0000 |
---|---|---|
committer | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2009-05-14 12:59:36 +0000 |
commit | bfe2e0cf677ef4609e3eacb337efc669c869f209 (patch) | |
tree | 6bd9710ba48b8b27fd99469669e6cc8925ab7043 /spi.c | |
parent | d02b73f9e9a717706dc820eca04128958238df37 (diff) | |
download | ast2050-flashrom-bfe2e0cf677ef4609e3eacb337efc669c869f209.zip ast2050-flashrom-bfe2e0cf677ef4609e3eacb337efc669c869f209.tar.gz |
Add a dummy SPI controller driver, similar to the dummy LPC/FWH/Parallel flasher driver
Does not support reading or writing the fake chip yet.
flashrom --programmer dummy
also enables the dummy SPI controller driver.
Testing the dummy SPI driver revealed a RDID debug printing bug in the
SPI core. Fix that as well.
Corresponding to flashrom svn r507.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
Diffstat (limited to 'spi.c')
-rw-r--r-- | spi.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -46,6 +46,8 @@ int spi_command(unsigned int writecnt, unsigned int readcnt, return sb600_spi_command(writecnt, readcnt, writearr, readarr); case BUS_TYPE_WBSIO_SPI: return wbsio_spi_command(writecnt, readcnt, writearr, readarr); + case BUS_TYPE_DUMMY_SPI: + return dummy_spi_command(writecnt, readcnt, writearr, readarr); default: printf_debug ("%s called, but no SPI chipset/strapping detected\n", @@ -58,12 +60,15 @@ static int spi_rdid(unsigned char *readarr, int bytes) { const unsigned char cmd[JEDEC_RDID_OUTSIZE] = { JEDEC_RDID }; int ret; + int i; ret = spi_command(sizeof(cmd), bytes, cmd, readarr); if (ret) return ret; - printf_debug("RDID returned %02x %02x %02x.\n", readarr[0], readarr[1], - readarr[2]); + printf_debug("RDID returned"); + for (i = 0; i < bytes; i++) + printf_debug(" 0x%02x", readarr[i]); + printf_debug("\n"); return 0; } @@ -202,6 +207,7 @@ int probe_spi_rdid4(struct flashchip *flash) case BUS_TYPE_VIA_SPI: case BUS_TYPE_SB600_SPI: case BUS_TYPE_WBSIO_SPI: + case BUS_TYPE_DUMMY_SPI: return probe_spi_rdid_generic(flash, 4); default: printf_debug("4b ID not supported on this SPI controller\n"); |