Author: hailfinger Date: Fri Oct 8 14:40:09 2010 New Revision: 1203 URL: http://flashrom.org/trac/flashrom/changeset/1203
Log: CONFIG_BITBANG_SPI was not selected if CONFIG_NICINTEL_SPI was on by default. Wiki output was missing all flash chips if CONFIG_INTERNAL was not selected. Use correct type for toupper()/tolower()/isspace() functions. Specify software requirements in a generic way. Non-x86 compilation does not work with the default programmer set, so list the make parameters which result in a working build.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net Acked-by: Michael Karcher flashrom@mkarcher.dialup.fu-berlin.de
Modified: trunk/Makefile trunk/README trunk/ft2232_spi.c trunk/print_wiki.c trunk/processor_enable.c trunk/serial.c
Modified: trunk/Makefile ============================================================================== --- trunk/Makefile Fri Oct 8 13:03:02 2010 (r1202) +++ trunk/Makefile Fri Oct 8 14:40:09 2010 (r1203) @@ -115,21 +115,6 @@ # 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 @@ # 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
Modified: trunk/README ============================================================================== --- trunk/README Fri Oct 8 13:03:02 2010 (r1202) +++ trunk/README Fri Oct 8 14:40:09 2010 (r1203) @@ -42,7 +42,11 @@ 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 @@ 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 ------------
Modified: trunk/ft2232_spi.c ============================================================================== --- trunk/ft2232_spi.c Fri Oct 8 13:03:02 2010 (r1202) +++ trunk/ft2232_spi.c Fri Oct 8 14:40:09 2010 (r1203) @@ -148,7 +148,7 @@ free(arg); arg = extract_programmer_param("port"); if (arg) { - switch (toupper(*arg)) { + switch (toupper((unsigned char)*arg)) { case 'A': ft2232_interface = INTERFACE_A; break;
Modified: trunk/print_wiki.c ============================================================================== --- trunk/print_wiki.c Fri Oct 8 13:03:02 2010 (r1202) +++ trunk/print_wiki.c Fri Oct 8 14:40:09 2010 (r1203) @@ -268,8 +268,8 @@ 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
Modified: trunk/processor_enable.c ============================================================================== --- trunk/processor_enable.c Fri Oct 8 13:03:02 2010 (r1202) +++ trunk/processor_enable.c Fri Oct 8 14:40:09 2010 (r1203) @@ -53,22 +53,22 @@ 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",
Modified: trunk/serial.c ============================================================================== --- trunk/serial.c Fri Oct 8 13:03:02 2010 (r1202) +++ trunk/serial.c Fri Oct 8 14:40:09 2010 (r1203) @@ -106,8 +106,9 @@ #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);