diff --git a/Makefile b/Makefile index 54f04b925..77e9b5f9b 100644 --- a/Makefile +++ b/Makefile @@ -115,21 +115,6 @@ CONFIG_SERPROG ?= yes # RayeR SPIPGM hardware support CONFIG_RAYER_SPI ?= yes -# Bitbanging SPI infrastructure, default off unless needed. -ifeq ($(CONFIG_RAYER_SPI), yes) -override CONFIG_BITBANG_SPI = yes -else -ifeq ($(CONFIG_INTERNAL), yes) -override CONFIG_BITBANG_SPI = yes -else -ifeq ($(CONFIG_NICINTEL_SPI), yes) -override CONFIG_BITBANG_SPI = yes -else -CONFIG_BITBANG_SPI ?= no -endif -endif -endif - # Always enable 3Com NICs for now. CONFIG_NIC3COM ?= yes @@ -170,6 +155,21 @@ CONFIG_DEDIPROG ?= no # Disable wiki printing by default. It is only useful if you have wiki access. CONFIG_PRINT_WIKI ?= no +# Bitbanging SPI infrastructure, default off unless needed. +ifeq ($(CONFIG_RAYER_SPI), yes) +override CONFIG_BITBANG_SPI = yes +else +ifeq ($(CONFIG_INTERNAL), yes) +override CONFIG_BITBANG_SPI = yes +else +ifeq ($(CONFIG_NICINTEL_SPI), yes) +override CONFIG_BITBANG_SPI = yes +else +CONFIG_BITBANG_SPI ?= no +endif +endif +endif + ifeq ($(CONFIG_INTERNAL), yes) FEATURE_CFLAGS += -D'CONFIG_INTERNAL=1' PROGRAMMER_OBJS += processor_enable.o chipset_enable.o board_enable.o cbtable.o dmi.o internal.o diff --git a/README b/README index 5b1799bc8..a94cae8d2 100644 --- a/README +++ b/README @@ -42,7 +42,11 @@ processing. Build Instructions ------------------ -To build flashrom you need to install the following packages or ports: +To build flashrom you need to install the following software: + + * pciutils+libpci (if you want support for mainboard or PCI device flashing) + * libusb (if you want FT2232 or Dediprog support) + * libftdi (if you want FT2232 support) Linux et al: @@ -111,6 +115,18 @@ To cross-compile on Linux for DOS: http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi7b.zip and make sure CWSDPMI.EXE is in the current directory. +Processor architecture dependent features: + + On non-x86 architectures you have to disable a few programmers because they + use port-based I/O which is not directly available on non-x86. Please add + CONFIG_RAYER_SPI=no CONFIG_NIC3COM=no CONFIG_ATAHPT=no CONFIG_NICREALTEK=no \ + CONFIG_NICNATSEMI=no + as parameters to the "make" invocation. + Besides that, the internal programmer is only supported on x86 and MIPS. On + other architectures, please add + CONFIG_INTERNAL=no + as parameter to the "make" invocation. + Installation ------------ diff --git a/ft2232_spi.c b/ft2232_spi.c index ee2b69392..a2ea2a8d5 100644 --- a/ft2232_spi.c +++ b/ft2232_spi.c @@ -148,7 +148,7 @@ int ft2232_spi_init(void) free(arg); arg = extract_programmer_param("port"); if (arg) { - switch (toupper(*arg)) { + switch (toupper((unsigned char)*arg)) { case 'A': ft2232_interface = INTERFACE_A; break; diff --git a/print_wiki.c b/print_wiki.c index 313fdea63..1b46dd04a 100644 --- a/print_wiki.c +++ b/print_wiki.c @@ -268,8 +268,8 @@ void print_supported_wiki(void) time_t t = time(NULL); printf(wiki_header, ctime(&t), flashrom_version); -#if CONFIG_INTERNAL == 1 print_supported_chips_wiki(2); +#if CONFIG_INTERNAL == 1 print_supported_chipsets_wiki(3); print_supported_boards_wiki(); #endif diff --git a/processor_enable.c b/processor_enable.c index 74caedc55..b14cd3381 100644 --- a/processor_enable.c +++ b/processor_enable.c @@ -53,22 +53,22 @@ static int is_loongson(void) if (fgets(line, sizeof(line), cpuinfo) == NULL) break; ptr = line; - while (*ptr && isspace(*ptr)) + while (*ptr && isspace((unsigned char)*ptr)) ptr++; /* "cpu" part appears only with some Linux versions. */ if (strncmp(ptr, "cpu", sizeof("cpu") - 1) == 0) ptr += sizeof("cpu") - 1; - while (*ptr && isspace(*ptr)) + while (*ptr && isspace((unsigned char)*ptr)) ptr++; if (strncmp(ptr, "model", sizeof("model") - 1) != 0) continue; ptr += sizeof("model") - 1; - while (*ptr && isspace(*ptr)) + while (*ptr && isspace((unsigned char)*ptr)) ptr++; if (*ptr != ':') continue; ptr++; - while (*ptr && isspace(*ptr)) + while (*ptr && isspace((unsigned char)*ptr)) ptr++; fclose(cpuinfo); return (strncmp(ptr, "ICT Loongson-2 V0.3", diff --git a/serial.c b/serial.c index 053b09a33..a04a1386b 100644 --- a/serial.c +++ b/serial.c @@ -106,8 +106,9 @@ fdtype sp_openserport(char *dev, unsigned int baud) #ifdef _WIN32 HANDLE fd; char *dev2 = dev; - if ((strlen(dev) > 3) && (tolower(dev[0]) == 'c') - && (tolower(dev[1]) == 'o') && (tolower(dev[2]) == 'm')) { + if ((strlen(dev) > 3) && (tolower((unsigned char)dev[0]) == 'c') && + (tolower((unsigned char)dev[1]) == 'o') && + (tolower((unsigned char)dev[2]) == 'm')) { dev2 = malloc(strlen(dev) + 5); strcpy(dev2, "\\\\.\\"); strcpy(dev2 + 4, dev);