[flashrom] [commit] r678 - trunk
svn at flashrom.org
svn at flashrom.org
Wed Aug 12 13:39:29 CEST 2009
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 at gmx.net>
Acked-by: Stefan Reinauer <stepan at 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)
{
More information about the flashrom
mailing list