Author: hailfinger Date: 2009-08-12 13:39:29 +0200 (Wed, 12 Aug 2009) New Revision: 678
Modified: trunk/flash.h trunk/flashrom.c trunk/internal.c Log: FT2232 and IT87 programmers used functions of the dummy programmer instead of fallback functions. The dummy programmer is a "real" programmer with possible side effects and its functions should not be abused by other programmers. Make FT2232 and IT87 use official fallback functions instead. Create fallback_shutdown(). Create fallback_chip_writeb(). Convert the programmer #defines to an enum.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net Acked-by: Stefan Reinauer stepan@coresystems.de
Modified: trunk/flash.h =================================================================== --- trunk/flash.h 2009-08-12 09:27:45 UTC (rev 677) +++ trunk/flash.h 2009-08-12 11:39:29 UTC (rev 678) @@ -80,15 +80,18 @@
typedef unsigned long chipaddr;
-extern int programmer; -#define PROGRAMMER_INTERNAL 0x00 -#define PROGRAMMER_DUMMY 0x01 -#define PROGRAMMER_NIC3COM 0x02 -#define PROGRAMMER_SATASII 0x03 -#define PROGRAMMER_IT87SPI 0x04 -#define PROGRAMMER_FT2232SPI 0x05 -#define PROGRAMMER_SERPROG 0x06 +enum programmer { + PROGRAMMER_INTERNAL, + PROGRAMMER_DUMMY, + PROGRAMMER_NIC3COM, + PROGRAMMER_SATASII, + PROGRAMMER_IT87SPI, + PROGRAMMER_FT2232SPI, + PROGRAMMER_SERPROG, +};
+extern enum programmer programmer; + struct programmer_entry { const char *vendor; const char *name; @@ -332,8 +335,10 @@ uint16_t mmio_readw(void *addr); uint32_t mmio_readl(void *addr); void internal_delay(int usecs); +int fallback_shutdown(void); void *fallback_map(const char *descr, unsigned long phys_addr, size_t len); void fallback_unmap(void *virt_addr, size_t len); +void fallback_chip_writeb(uint8_t val, chipaddr addr); void fallback_chip_writew(uint16_t val, chipaddr addr); void fallback_chip_writel(uint32_t val, chipaddr addr); void fallback_chip_writen(uint8_t *buf, chipaddr addr, size_t len); @@ -382,7 +387,6 @@ int ft2232_spi_init(void); int ft2232_spi_send_command(unsigned int writecnt, unsigned int readcnt, const unsigned char *writearr, unsigned char *readarr); int ft2232_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len); -int ft2232_spi_write1(struct flashchip *flash, uint8_t *buf); int ft2232_spi_write_256(struct flashchip *flash, uint8_t *buf);
/* flashrom.c */
Modified: trunk/flashrom.c =================================================================== --- trunk/flashrom.c 2009-08-12 09:27:45 UTC (rev 677) +++ trunk/flashrom.c 2009-08-12 11:39:29 UTC (rev 678) @@ -33,7 +33,7 @@ const char *flashrom_version = FLASHROM_VERSION; char *chip_to_probe = NULL; int verbose = 0; -int programmer = PROGRAMMER_INTERNAL; +enum programmer programmer = PROGRAMMER_INTERNAL;
const struct programmer_entry programmer_table[] = { { @@ -102,14 +102,14 @@
{ .init = it87spi_init, - .shutdown = dummy_shutdown, - .map_flash_region = dummy_map, - .unmap_flash_region = dummy_unmap, + .shutdown = fallback_shutdown, + .map_flash_region = fallback_map, + .unmap_flash_region = fallback_unmap, .chip_readb = dummy_chip_readb, .chip_readw = fallback_chip_readw, .chip_readl = fallback_chip_readl, .chip_readn = fallback_chip_readn, - .chip_writeb = dummy_chip_writeb, + .chip_writeb = fallback_chip_writeb, .chip_writew = fallback_chip_writew, .chip_writel = fallback_chip_writel, .chip_writen = fallback_chip_writen, @@ -118,19 +118,20 @@
{ .init = ft2232_spi_init, - .shutdown = dummy_shutdown, - .map_flash_region = dummy_map, - .unmap_flash_region = dummy_unmap, + .shutdown = fallback_shutdown, + .map_flash_region = fallback_map, + .unmap_flash_region = fallback_unmap, .chip_readb = dummy_chip_readb, .chip_readw = fallback_chip_readw, .chip_readl = fallback_chip_readl, .chip_readn = fallback_chip_readn, - .chip_writeb = dummy_chip_writeb, + .chip_writeb = fallback_chip_writeb, .chip_writew = fallback_chip_writew, .chip_writel = fallback_chip_writel, .chip_writen = fallback_chip_writen, .delay = internal_delay, }, + { .init = serprog_init, .shutdown = serprog_shutdown,
Modified: trunk/internal.c =================================================================== --- trunk/internal.c 2009-08-12 09:27:45 UTC (rev 677) +++ trunk/internal.c 2009-08-12 11:39:29 UTC (rev 678) @@ -218,6 +218,12 @@ } }
+/* Fallback shutdown() for programmers which don't need special handling */ +int fallback_shutdown(void) +{ + return 0; +} + /* Fallback map() for programmers which don't need special handling */ void *fallback_map(const char *descr, unsigned long phys_addr, size_t len) { @@ -229,6 +235,11 @@ { }
+/* No-op fallback for drivers not supporting addr/data pair accesses */ +void fallback_chip_writeb(uint8_t val, chipaddr addr) +{ +} + /* Little-endian fallback for drivers not supporting 16 bit accesses */ void fallback_chip_writew(uint16_t val, chipaddr addr) {