summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flash.h22
-rw-r--r--flashrom.c19
-rw-r--r--internal.c11
3 files changed, 34 insertions, 18 deletions
diff --git a/flash.h b/flash.h
index b421cf9..abe52c5 100644
--- a/flash.h
+++ b/flash.h
@@ -80,14 +80,17 @@
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;
@@ -332,8 +335,10 @@ uint8_t mmio_readb(void *addr);
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 @@ extern char *ft2232spi_param;
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 */
diff --git a/flashrom.c b/flashrom.c
index 12b4e46..a1d0cc2 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -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 @@ const struct programmer_entry programmer_table[] = {
{
.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 @@ const struct programmer_entry programmer_table[] = {
{
.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,
diff --git a/internal.c b/internal.c
index 888c502..3e3808e 100644
--- a/internal.c
+++ b/internal.c
@@ -218,6 +218,12 @@ void internal_delay(int usecs)
}
}
+/* 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 @@ void fallback_unmap(void *virt_addr, size_t len)
{
}
+/* 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)
{
OpenPOWER on IntegriCloud