From 3426ef6ab8dc13a0f1c306ab5d63e27664fb3e5c Mon Sep 17 00:00:00 2001 From: Carl-Daniel Hailfinger Date: Wed, 19 Aug 2009 13:27:58 +0000 Subject: If FT2232H SPI is not enabled, it should be compiled out completely We can't remove ft2232_spi.o from unconditional OBJS yet due to our makefile structure (make features), but this patch adds #ifdefs around all FT2232H code, so the net effect is the same. Corresponding to flashrom svn r691. Signed-off-by: Carl-Daniel Hailfinger Acked-by: Stefan Reinauer --- flash.h | 6 ++++++ flashrom.c | 6 ++++++ ft2232_spi.c | 30 ++---------------------------- spi.c | 7 +++++++ 4 files changed, 21 insertions(+), 28 deletions(-) diff --git a/flash.h b/flash.h index a571be74..c5234dcf 100644 --- a/flash.h +++ b/flash.h @@ -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 acdb38b1..fb45bd0b 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 db4db175..00490fed 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 #include #include @@ -25,9 +27,6 @@ #include #include "flash.h" #include "spi.h" - -#if FT2232_SPI_SUPPORT == 1 - #include /* 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 diff --git a/spi.c b/spi.c index 85d1e47e..7f678a13 100644 --- a/spi.c +++ b/spi.c @@ -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: -- cgit v1.2.3