1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-07-01 06:01:16 +02:00

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 <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
This commit is contained in:
Carl-Daniel Hailfinger
2009-08-19 13:27:58 +00:00
parent 173e3eaabe
commit 3426ef6ab8
4 changed files with 21 additions and 28 deletions

View File

@ -86,7 +86,9 @@ enum programmer {
PROGRAMMER_NIC3COM, PROGRAMMER_NIC3COM,
PROGRAMMER_SATASII, PROGRAMMER_SATASII,
PROGRAMMER_IT87SPI, PROGRAMMER_IT87SPI,
#if FT2232_SPI_SUPPORT == 1
PROGRAMMER_FT2232SPI, PROGRAMMER_FT2232SPI,
#endif
#if SERPROG_SUPPORT == 1 #if SERPROG_SUPPORT == 1
PROGRAMMER_SERPROG, PROGRAMMER_SERPROG,
#endif #endif
@ -436,9 +438,13 @@ enum spi_controller {
SPI_CONTROLLER_SB600, SPI_CONTROLLER_SB600,
SPI_CONTROLLER_VIA, SPI_CONTROLLER_VIA,
SPI_CONTROLLER_WBSIO, SPI_CONTROLLER_WBSIO,
#if FT2232_SPI_SUPPORT == 1
SPI_CONTROLLER_FT2232, SPI_CONTROLLER_FT2232,
#endif
SPI_CONTROLLER_DUMMY, SPI_CONTROLLER_DUMMY,
SPI_CONTROLLER_INVALID /* This must always be the last entry. */
}; };
extern const int spi_programmer_count;
struct spi_command { struct spi_command {
unsigned int writecnt; unsigned int writecnt;
unsigned int readcnt; unsigned int readcnt;

View File

@ -122,6 +122,7 @@ const struct programmer_entry programmer_table[] = {
.delay = internal_delay, .delay = internal_delay,
}, },
#if FT2232_SPI_SUPPORT == 1
{ {
.name = "ft2232spi", .name = "ft2232spi",
.init = ft2232_spi_init, .init = ft2232_spi_init,
@ -138,6 +139,7 @@ const struct programmer_entry programmer_table[] = {
.chip_writen = fallback_chip_writen, .chip_writen = fallback_chip_writen,
.delay = internal_delay, .delay = internal_delay,
}, },
#endif
#if SERPROG_SUPPORT == 1 #if SERPROG_SUPPORT == 1
{ {
@ -610,6 +612,10 @@ int main(int argc, char *argv[])
fprintf(stderr, "Programmer table miscompilation!\n"); fprintf(stderr, "Programmer table miscompilation!\n");
exit(1); exit(1);
} }
if (spi_programmer_count - 1 != SPI_CONTROLLER_INVALID) {
fprintf(stderr, "SPI programmer table miscompilation!\n");
exit(1);
}
setbuf(stdout, NULL); setbuf(stdout, NULL);
while ((opt = getopt_long(argc, argv, "rRwvnVEfc:m:l:i:p:Lzh", while ((opt = getopt_long(argc, argv, "rRwvnVEfc:m:l:i:p:Lzh",

View File

@ -18,6 +18,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#if FT2232_SPI_SUPPORT == 1
#include <stdio.h> #include <stdio.h>
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>
@ -25,9 +27,6 @@
#include <ctype.h> #include <ctype.h>
#include "flash.h" #include "flash.h"
#include "spi.h" #include "spi.h"
#if FT2232_SPI_SUPPORT == 1
#include <ftdi.h> #include <ftdi.h>
/* the 'H' chips can run internally at either 12Mhz or 60Mhz. /* 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; 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 #endif

7
spi.c
View File

@ -82,12 +82,14 @@ const struct spi_programmer spi_programmer[] = {
.write_256 = wbsio_spi_write_1, .write_256 = wbsio_spi_write_1,
}, },
#if FT2232_SPI_SUPPORT == 1
{ /* SPI_CONTROLLER_FT2232 */ { /* SPI_CONTROLLER_FT2232 */
.command = ft2232_spi_send_command, .command = ft2232_spi_send_command,
.multicommand = default_spi_send_multicommand, .multicommand = default_spi_send_multicommand,
.read = ft2232_spi_read, .read = ft2232_spi_read,
.write_256 = ft2232_spi_write_256, .write_256 = ft2232_spi_write_256,
}, },
#endif
{ /* SPI_CONTROLLER_DUMMY */ { /* SPI_CONTROLLER_DUMMY */
.command = dummy_spi_send_command, .command = dummy_spi_send_command,
@ -95,8 +97,11 @@ const struct spi_programmer spi_programmer[] = {
.read = NULL, .read = NULL,
.write_256 = 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, int spi_send_command(unsigned int writecnt, unsigned int readcnt,
const unsigned char *writearr, unsigned char *readarr) 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_VIA:
case SPI_CONTROLLER_SB600: case SPI_CONTROLLER_SB600:
case SPI_CONTROLLER_WBSIO: case SPI_CONTROLLER_WBSIO:
#if FT2232_SPI_SUPPORT == 1
case SPI_CONTROLLER_FT2232: case SPI_CONTROLLER_FT2232:
#endif
case SPI_CONTROLLER_DUMMY: case SPI_CONTROLLER_DUMMY:
return probe_spi_rdid_generic(flash, 4); return probe_spi_rdid_generic(flash, 4);
default: default: