diff options
-rw-r--r-- | flash.h | 6 | ||||
-rw-r--r-- | flashrom.c | 6 | ||||
-rw-r--r-- | ft2232_spi.c | 30 | ||||
-rw-r--r-- | spi.c | 7 |
4 files changed, 21 insertions, 28 deletions
@@ -86,7 +86,9 @@ enum programmer { PROGRAMMER_NIC3COM, PROGRAMMER_SATASII, PROGRAMMER_IT87SPI, +#if FT2232_SPI_SUPPORT == 1 PROGRAMMER_FT2232SPI, +#endif #if SERPROG_SUPPORT == 1 PROGRAMMER_SERPROG, #endif @@ -436,9 +438,13 @@ enum spi_controller { SPI_CONTROLLER_SB600, SPI_CONTROLLER_VIA, SPI_CONTROLLER_WBSIO, +#if FT2232_SPI_SUPPORT == 1 SPI_CONTROLLER_FT2232, +#endif SPI_CONTROLLER_DUMMY, + SPI_CONTROLLER_INVALID /* This must always be the last entry. */ }; +extern const int spi_programmer_count; struct spi_command { unsigned int writecnt; unsigned int readcnt; diff --git a/flashrom.c b/flashrom.c index acdb38b17..fb45bd0bf 100644 --- a/flashrom.c +++ b/flashrom.c @@ -122,6 +122,7 @@ const struct programmer_entry programmer_table[] = { .delay = internal_delay, }, +#if FT2232_SPI_SUPPORT == 1 { .name = "ft2232spi", .init = ft2232_spi_init, @@ -138,6 +139,7 @@ const struct programmer_entry programmer_table[] = { .chip_writen = fallback_chip_writen, .delay = internal_delay, }, +#endif #if SERPROG_SUPPORT == 1 { @@ -610,6 +612,10 @@ int main(int argc, char *argv[]) fprintf(stderr, "Programmer table miscompilation!\n"); exit(1); } + if (spi_programmer_count - 1 != SPI_CONTROLLER_INVALID) { + fprintf(stderr, "SPI programmer table miscompilation!\n"); + exit(1); + } setbuf(stdout, NULL); while ((opt = getopt_long(argc, argv, "rRwvnVEfc:m:l:i:p:Lzh", diff --git a/ft2232_spi.c b/ft2232_spi.c index db4db175a..00490fed2 100644 --- a/ft2232_spi.c +++ b/ft2232_spi.c @@ -18,6 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#if FT2232_SPI_SUPPORT == 1 + #include <stdio.h> #include <stdint.h> #include <string.h> @@ -25,9 +27,6 @@ #include <ctype.h> #include "flash.h" #include "spi.h" - -#if FT2232_SPI_SUPPORT == 1 - #include <ftdi.h> /* the 'H' chips can run internally at either 12Mhz or 60Mhz. @@ -297,29 +296,4 @@ int ft2232_spi_write_256(struct flashchip *flash, uint8_t *buf) return 0; } -#else -int ft2232_spi_init(void) -{ - fprintf(stderr, "FT2232 SPI support was not compiled in\n"); - exit(1); -} - -int ft2232_spi_send_command(unsigned int writecnt, unsigned int readcnt, - const unsigned char *writearr, unsigned char *readarr) -{ - fprintf(stderr, "FT2232 SPI support was not compiled in\n"); - exit(1); -} - -int ft2232_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len) -{ - fprintf(stderr, "FT2232 SPI support was not compiled in\n"); - exit(1); -} - -int ft2232_spi_write_256(struct flashchip *flash, uint8_t *buf) -{ - fprintf(stderr, "FT2232 SPI support was not compiled in\n"); - exit(1); -} #endif @@ -82,12 +82,14 @@ const struct spi_programmer spi_programmer[] = { .write_256 = wbsio_spi_write_1, }, +#if FT2232_SPI_SUPPORT == 1 { /* SPI_CONTROLLER_FT2232 */ .command = ft2232_spi_send_command, .multicommand = default_spi_send_multicommand, .read = ft2232_spi_read, .write_256 = ft2232_spi_write_256, }, +#endif { /* SPI_CONTROLLER_DUMMY */ .command = dummy_spi_send_command, @@ -95,8 +97,11 @@ const struct spi_programmer spi_programmer[] = { .read = NULL, .write_256 = NULL, }, + + {}, /* This entry corresponds to SPI_CONTROLLER_INVALID. */ }; +const int spi_programmer_count = ARRAY_SIZE(spi_programmer); int spi_send_command(unsigned int writecnt, unsigned int readcnt, const unsigned char *writearr, unsigned char *readarr) @@ -293,7 +298,9 @@ int probe_spi_rdid4(struct flashchip *flash) case SPI_CONTROLLER_VIA: case SPI_CONTROLLER_SB600: case SPI_CONTROLLER_WBSIO: +#if FT2232_SPI_SUPPORT == 1 case SPI_CONTROLLER_FT2232: +#endif case SPI_CONTROLLER_DUMMY: return probe_spi_rdid_generic(flash, 4); default: |