On 08.10.2010 12:44, Michael Karcher wrote:
> Am Freitag, den 08.10.2010, 04:30 +0200 schrieb Carl-Daniel Hailfinger:
>   
>> In detail:
>> CONFIG_BITBANG_SPI was not selected if CONFIG_NICINTEL_SPI was on by
>> default.
>>     
> Patch is fine.
>
>   
>> Wiki output was missing all flash chips if CONFIG_INTERNAL was not selected.
>>     
> Patch is fine if tested.
>
>   
>> ft2232_spi used possibly negative indices in the toupper() function/array.
>>     
> Please also fix the other similar ctype issues in layout.c (two isprint
> invocations) and serial.c (three tolower invocations) at that time, too.
> The cast to "unsigned char" is exactly the right thing to do.
>   

Done. I also fixed isspace invocations in processor_enable.c.


>> Software requirements on non-Linux/FreeBSD/OpenBSD operating systems
>> were missing.
>>     
> See comment below.
>
>   
>> Non-x86 compilation does not work with the default programmer set, so
>> list the make parameters which result in a working build.
>>     
> I didn't verify the statement about what works on which architecture,
> but if the statements are true, the text is fine.
>   

I tested them.


>> Index: flashrom-compilefixes/README
>> ===================================================================
>> --- flashrom-compilefixes/README     (revision 1201)
>> +++ flashrom-compilefixes/README     (working copy)
>> @@ -60,6 +60,11 @@
>>   * devel/gmake
>>   * sysutils/pciutils
>>  
>> +On other operating systems, you need the following software:
>> +
>> + * pciutils+libpci (if you want support for mainboard or PCI device 
>> flashing)
>> + * libusb (if you want FT2232 or Dediprog support)
>> +
>>     
> The libusb requirements is general for all operating systems. I don't
> really like it in the "other operating systems" section.
>   

I have moved that paragraph to the top and removed "other operating
systems".


>> Signed-off-by: Carl-Daniel Hailfinger <[email protected]>
>>     
> With the comments addressed, this is
> Acked-by: Michael Karcher <[email protected]>
>   

Thanks for the review!

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.
Software requirements were not specified 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 <[email protected]>
Acked-by: Michael Karcher <[email protected]>

Index: flashrom-compilefixes/Makefile
===================================================================
--- flashrom-compilefixes/Makefile      (Revision 1202)
+++ flashrom-compilefixes/Makefile      (Arbeitskopie)
@@ -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,7 +155,22 @@
 # 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
 # FIXME: The PROGRAMMER_OBJS below should only be included on x86.
Index: flashrom-compilefixes/print_wiki.c
===================================================================
--- flashrom-compilefixes/print_wiki.c  (Revision 1202)
+++ flashrom-compilefixes/print_wiki.c  (Arbeitskopie)
@@ -268,8 +268,8 @@
        time_t t = time(NULL);
 
        printf(wiki_header, ctime(&t), flashrom_version);
+       print_supported_chips_wiki(2);
 #if CONFIG_INTERNAL == 1
-       print_supported_chips_wiki(2);
        print_supported_chipsets_wiki(3);
        print_supported_boards_wiki();
 #endif
Index: flashrom-compilefixes/serial.c
===================================================================
--- flashrom-compilefixes/serial.c      (Revision 1202)
+++ flashrom-compilefixes/serial.c      (Arbeitskopie)
@@ -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);
Index: flashrom-compilefixes/processor_enable.c
===================================================================
--- flashrom-compilefixes/processor_enable.c    (Revision 1202)
+++ flashrom-compilefixes/processor_enable.c    (Arbeitskopie)
@@ -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",
Index: flashrom-compilefixes/ft2232_spi.c
===================================================================
--- flashrom-compilefixes/ft2232_spi.c  (Revision 1202)
+++ flashrom-compilefixes/ft2232_spi.c  (Arbeitskopie)
@@ -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;
Index: flashrom-compilefixes/README
===================================================================
--- flashrom-compilefixes/README        (Revision 1202)
+++ flashrom-compilefixes/README        (Arbeitskopie)
@@ -42,8 +42,12 @@
 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:
 
  * pciutils / libpci
@@ -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
 ------------
 


-- 
http://www.hailfinger.org/


_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to