]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
* Patch by Lutz Dennig, 10 Apr 2003: LABEL_2003_04_15_1900
authorwdenk <wdenk>
Sat, 12 Apr 2003 23:38:12 +0000 (23:38 +0000)
committerwdenk <wdenk>
Sat, 12 Apr 2003 23:38:12 +0000 (23:38 +0000)
  Update for R360MPI board

* Add new meaning to "autostart" environment variable:
  If set to "no", a standalone image passed to the
  "bootm" command will be copied to the load address
  (and eventually uncompressed), but NOT be started.
  This can be used to load and uncompress arbitrary
  data.

* Set max brightness for MN11236 displays on TRAB board

CHANGELOG
README
board/r360mpi/r360mpi.c
board/trab/vfd.c
common/cmd_bootm.c
cpu/mpc8xx/lcd.c
include/configs/R360MPI.h
tools/env/fw_env.c

index f86afbe9eadfd2b751c198afd19707e07549befa..199307278809baa184d4d36e3dc3be0d1073a438 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,11 +2,23 @@
 Changes since U-Boot 0.3.0:
 ======================================================================
 
+* Patch by Lutz Dennig, 10 Apr 2003:
+  Update for R360MPI board
+
+* Add new meaning to "autostart" environment variable:
+  If set to "no", a standalone image passed to the
+  "bootm" command will be copied to the load address
+  (and eventually uncompressed), but NOT be started.
+  This can be used to load and uncompress arbitrary
+  data.
+
 * Patch by Stefan Roese, 10 Apr 2003:
-  Changed DHCP client to use ip address from server option field #54
-  from the OFFER-paket in the server option field #54 in the REQUEST-
-  paket. This fixes a problem using a Windows 2000 DHCP server, where
-  the DHCP-server is not the TFTP-server.
+  Changed DHCP client to use IP address from server option field #54
+  from the OFFER packet in the server option field #54 in the REQUEST
+  packet. This fixes a problem using a Windows 2000 DHCP server,
+  where the DHCP-server is not the TFTP-server.
+
+* Set max brightness for MN11236 displays on TRAB board
 
 * Add support for TQM862L modules
 
diff --git a/README b/README
index 45b1c57cf30867b72e90c26299ef9a18dfc9ac1e..ca5c047e35b44b4676683f0fc1083de803cd1d53 100644 (file)
--- a/README
+++ b/README
@@ -1918,6 +1918,12 @@ Some configuration options can be set using Environment Variables:
                  be automatically started (by internally calling
                  "bootm")
 
+                 If set to "no", a standalone image passed to the
+                 "bootm" command will be copied to the load address
+                 (and eventually uncompressed), but NOT be started.
+                 This can be used to load and uncompress arbitrary
+                 data.
+
   initrd_high  - restrict positioning of initrd images:
                  If this variable is not set, initrd images will be
                  copied to the highest possible address in RAM; this
index d7b8873ee34abf998dd38632697158dc2b5751df..91e3234e29d21f3d4a1b747b9b41c5aaec9fe31c 100644 (file)
@@ -126,12 +126,12 @@ long int initdram (int board_type)
        memctl->memc_mar = 0x00000088;
 
        /*
-        * Map controller bank 1 to the SDRAM bank at
+        * Map controller bank 2 to the SDRAM bank at
         * preliminary address - these have to be modified after the
         * SDRAM size has been determined.
         */
-       memctl->memc_or1 = CFG_OR1_PRELIM;
-       memctl->memc_br1 = CFG_BR1_PRELIM;
+       memctl->memc_or2 = CFG_OR2_PRELIM;
+       memctl->memc_br2 = CFG_BR2_PRELIM;
 
        memctl->memc_mamr = CFG_MAMR_8COL & (~(MAMR_PTAE));     /* no refresh yet */
 
@@ -139,9 +139,9 @@ long int initdram (int board_type)
 
        /* perform SDRAM initializsation sequence */
 
-       memctl->memc_mcr = 0x80002105;  /* SDRAM bank 0 */
+       memctl->memc_mcr = 0x80004105;  /* SDRAM bank 0 */
        udelay (200);
-       memctl->memc_mcr = 0x80002230;  /* SDRAM bank 0 - execute twice */
+       memctl->memc_mcr = 0x80004230;  /* SDRAM bank 0 - execute twice */
        udelay (200);
 
        memctl->memc_mamr |= MAMR_PTAE; /* enable refresh */
@@ -153,7 +153,7 @@ long int initdram (int board_type)
         *
         * try 8 column mode
         */
-       size8 = dram_size (CFG_MAMR_8COL, (ulong *) SDRAM_BASE1_PRELIM,
+       size8 = dram_size (CFG_MAMR_8COL, (ulong *) SDRAM_BASE2_PRELIM,
                                           SDRAM_MAX_SIZE);
 
        udelay (1000);
@@ -161,13 +161,13 @@ long int initdram (int board_type)
        /*
         * try 9 column mode
         */
-       size9 = dram_size (CFG_MAMR_9COL, (ulong *) SDRAM_BASE1_PRELIM,
+       size9 = dram_size (CFG_MAMR_9COL, (ulong *) SDRAM_BASE2_PRELIM,
                                           SDRAM_MAX_SIZE);
 
        if (size8 < size9) {            /* leave configuration at 9 columns */
                size_b0 = size9;
 /*     debug ("SDRAM Bank 0 in 9 column mode: %ld MB\n", size >> 20);  */
-       } else {                                        /* back to 8 columns            */
+       } else {                        /* back to 8 columns            */
                size_b0 = size8;
                memctl->memc_mamr = CFG_MAMR_8COL;
                udelay (500);
@@ -200,6 +200,47 @@ long int initdram (int board_type)
 
        udelay (10000);
 
+#ifdef CONFIG_CAN_DRIVER
+       /* Initialize OR3 / BR3 */
+       memctl->memc_or3 = CFG_OR3_CAN;         /* switch GPLB_5 to GPLA_5 */
+       memctl->memc_br3 = CFG_BR3_CAN;
+
+       /* Initialize MBMR */
+       memctl->memc_mbmr = MAMR_GPL_B4DIS;     /* GPL_B4 works as UPWAITB */
+
+       /* Initialize UPMB for CAN: single read */
+       memctl->memc_mdr = 0xFFFFC004;
+       memctl->memc_mcr = 0x0100 | UPMB;
+
+       memctl->memc_mdr = 0x0FFFD004;
+       memctl->memc_mcr = 0x0101 | UPMB;
+
+       memctl->memc_mdr = 0x0FFFC000;
+       memctl->memc_mcr = 0x0102 | UPMB;
+
+       memctl->memc_mdr = 0x3FFFC004;
+       memctl->memc_mcr = 0x0103 | UPMB;
+
+       memctl->memc_mdr = 0xFFFFDC05;
+       memctl->memc_mcr = 0x0104 | UPMB;
+
+       /* Initialize UPMB for CAN: single write */
+       memctl->memc_mdr = 0xFFFCC004;
+       memctl->memc_mcr = 0x0118 | UPMB;
+
+       memctl->memc_mdr = 0xCFFCD004;
+       memctl->memc_mcr = 0x0119 | UPMB;
+
+       memctl->memc_mdr = 0x0FFCC000;
+       memctl->memc_mcr = 0x011A | UPMB;
+
+       memctl->memc_mdr = 0x7FFCC004;
+       memctl->memc_mcr = 0x011B | UPMB;
+
+       memctl->memc_mdr = 0xFFFDCC05;
+       memctl->memc_mcr = 0x011C | UPMB;
+#endif
+
        return (size_b0);
 }
 
@@ -213,8 +254,8 @@ long int initdram (int board_type)
  * - short between data lines
  */
 
-static long int dram_size (long int mamr_value, long int *base,
-                                                  long int maxsize)
+static long int dram_size (long int mamr_value,
+                          long int *base, long int maxsize)
 {
        volatile immap_t *immap = (immap_t *) CFG_IMMR;
        volatile memctl8xx_t *memctl = &immap->im_memctl;
@@ -257,10 +298,10 @@ static long int dram_size (long int mamr_value, long int *base,
 
 /* ------------------------------------------------------------------------- */
 
-void r360_pwm_write (uchar reg, uchar val)
+void r360_i2c_lcd_write (uchar data0, uchar data1)
 {
-       if (i2c_write (CFG_I2C_PWM_ADDR, reg, 1, &val, 1)) {
-               printf ("Can't write PWM register 0x%02X.\n", reg);
+       if (i2c_write (CFG_I2C_LCD_ADDR, data0, 1, &data1, 1)) {
+               printf("Can't write lcd data 0x%02X 0x%02X.\n", data0, data1);
        }
 }
 
@@ -271,10 +312,8 @@ void r360_pwm_write (uchar reg, uchar val)
  */
 
 /* Number of bytes returned from Keyboard Controller */
-#define KEYBD_KEY_MAX          20                              /* maximum key number */
-#define KEYBD_DATALEN          ((KEYBD_KEY_MAX + 7) / 8)       /* normal key scan data */
-
-static uchar kbd_addr = CFG_I2C_KBD_ADDR;
+#define KEYBD_KEY_MAX  16                              /* maximum key number */
+#define KEYBD_DATALEN  ((KEYBD_KEY_MAX + 7) / 8)       /* normal key scan data */
 
 static uchar *key_match (uchar *);
 
@@ -287,14 +326,14 @@ int misc_init_r (void)
 
        i2c_init (CFG_I2C_SPEED, CFG_I2C_SLAVE);
 
-       i2c_read (kbd_addr, 0, 0, kbd_data, KEYBD_DATALEN);
+       i2c_read (CFG_I2C_KEY_ADDR, 0, 0, kbd_data, KEYBD_DATALEN);
 
        for (i = 0; i < KEYBD_DATALEN; ++i) {
                sprintf (keybd_env + i + i, "%02X", kbd_data[i]);
        }
        setenv ("keybd", keybd_env);
 
-       str = strdup (key_match (kbd_data));    /* decode keys */
+       str = strdup (key_match (keybd_env));   /* decode keys */
 
 #ifdef CONFIG_PREBOOT  /* automatically configure "preboot" command on key match */
        setenv ("preboot", str);        /* set or delete definition */
@@ -324,16 +363,13 @@ int misc_init_r (void)
 static uchar kbd_magic_prefix[] = "key_magic";
 static uchar kbd_command_prefix[] = "key_cmd";
 
-static uchar *key_match (uchar * kbd_data)
+static uchar *key_match (uchar * kbd_str)
 {
-       uchar compare[KEYBD_DATALEN];
        uchar magic[sizeof (kbd_magic_prefix) + 1];
        uchar cmd_name[sizeof (kbd_command_prefix) + 1];
-       uchar key_mask;
-       uchar *str, *nxt, *suffix;
+       uchar *str, *suffix;
        uchar *kbd_magic_keys;
        char *cmd;
-       int i;
 
        /*
         * The following string defines the characters that can pe appended
@@ -343,62 +379,48 @@ static uchar *key_match (uchar * kbd_data)
         * "key_magic" is checked (old behaviour); the string "125" causes
         * checks for "key_magic1", "key_magic2" and "key_magic5", etc.
         */
-       if ((kbd_magic_keys = getenv ("magic_keys")) == NULL)
-               kbd_magic_keys = "";
+       if ((kbd_magic_keys = getenv ("magic_keys")) != NULL) {
+               /* loop over all magic keys;
+                * use '\0' suffix in case of empty string
+                */
+               for (suffix = kbd_magic_keys;
+                    *suffix || suffix == kbd_magic_keys;
+                    ++suffix) {
+                       sprintf (magic, "%s%c", kbd_magic_prefix, *suffix);
 
-       /* loop over all magic keys;
-        * use '\0' suffix in case of empty string
-        */
-       for (suffix=kbd_magic_keys; *suffix || suffix==kbd_magic_keys; ++suffix) {
-               sprintf (magic, "%s%c", kbd_magic_prefix, *suffix);
 #if 0
-               printf ("### Check magic \"%s\"\n", magic);
+                       printf ("### Check magic \"%s\"\n", magic);
 #endif
 
-               memcpy(compare, kbd_data, KEYBD_DATALEN);
-
-               for (str = getenv(magic); str != NULL; str = (*nxt) ? nxt+1 : nxt) {
-                       uchar c;
-
-                       c = (uchar) simple_strtoul (str, (char **) (&nxt), 16);
-
-                       if (str == nxt)                         /* invalid character */
-                               break;
-
-                       if (c >= KEYBD_KEY_MAX)                 /* bad key number */
-                               goto next_magic;
-
-                       key_mask = 0x80 >> (c % 8);
-
-                       if (!(compare[c / 8] & key_mask))       /* key not pressed */
-                               goto next_magic;
+                       if ((str = getenv (magic)) != 0) {
 
-                       compare[c / 8] &= ~key_mask;
-               }
-
-               for (i=0; i<KEYBD_DATALEN; i++)
-                       if (compare[i])                 /* key(s) not released */
-                               goto next_magic;
-
-               sprintf (cmd_name, "%s%c", kbd_command_prefix, *suffix);
-
-               cmd = getenv (cmd_name);
 #if 0
-               printf ("### Set PREBOOT to $(%s): \"%s\"\n",
-                       cmd_name, cmd ? cmd : "<<NULL>>");
+                               printf ("### Compare \"%s\" \"%s\"\n",
+                                       kbd_str, str);
 #endif
-               *kbd_data = *suffix;
-               return (cmd);
+                               if (strcmp (kbd_str, str) == 0) {
+                                       sprintf (cmd_name, "%s%c",
+                                                kbd_command_prefix,
+                                                *suffix);
 
-       next_magic:;
+                                       if ((cmd = getenv (cmd_name)) != 0) {
+#if 0
+                                               printf ("### Set PREBOOT to $(%s): \"%s\"\n",
+                                                       cmd_name, cmd);
+#endif
+                                               return (cmd);
+                                       }
+                               }
+                       }
+               }
        }
 #if 0
        printf ("### Delete PREBOOT\n");
 #endif
-       *kbd_data = '\0';
+       *kbd_str = '\0';
        return (NULL);
 }
-#endif                                                 /* CONFIG_PREBOOT */
+#endif /* CONFIG_PREBOOT */
 
 /* Read Keyboard status */
 int do_kbd (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
@@ -410,7 +432,7 @@ int do_kbd (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
        i2c_init (CFG_I2C_SPEED, CFG_I2C_SLAVE);
 
        /* Read keys */
-       i2c_read (kbd_addr, 0, 0, kbd_data, KEYBD_DATALEN);
+       i2c_read (CFG_I2C_KEY_ADDR, 0, 0, kbd_data, KEYBD_DATALEN);
 
        puts ("Keys:");
        for (i = 0; i < KEYBD_DATALEN; ++i) {
index 9b61f6eb617e2403f235517c3df1156dd608e199..d0dcedcec842c2d655e31454025d918388ff4e5c 100644 (file)
@@ -486,7 +486,11 @@ int drv_vfd_init(void)
        /* frame buffer endadr */
        rLCDSADDR2 = (gd->fb_base + FRAME_BUF_SIZE) >> 1;
        rLCDSADDR3 = ((256/4));
-       rLCDCON2 = 0x000DC000;
+rLCDCON2 = 0x000DC000;
+       if(gd->vfd_type == VFD_TYPE_MN11236)
+               rLCDCON2 = 37 << 14;    /* MN11236: 38 lines */
+       else
+               rLCDCON2 = 55 << 14;    /* T119C:   56 lines */
        rLCDCON3 = 0x0051000A;
        rLCDCON4 = 0x00000001;
        if (gd->vfd_type && vfd_inv_data)
index f3f9603939653bb504578d1ab28ec1aef7f3c0ae..8b32f1cef89b13f502882103725b3737109220c0 100644 (file)
@@ -287,12 +287,17 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
        switch (hdr->ih_type) {
        case IH_TYPE_STANDALONE:
-               appl = (int (*)(cmd_tbl_t *, int, int, char *[]))ntohl(hdr->ih_ep);
                if (iflag)
                        enable_interrupts();
 
+               /* load (and uncompress), but don't start if "autostart"
+                * is set to "no"
+                */
+               if (((s = getenv("autostart")) != NULL) && (strcmp(s,"no") == 0))
+                       return 0;
+               appl = (int (*)(cmd_tbl_t *, int, int, char *[]))ntohl(hdr->ih_ep);
                (*appl)(cmdtp, flag, argc-1, &argv[1]);
-               break;
+               return 0;
        case IH_TYPE_KERNEL:
        case IH_TYPE_MULTI:
                /* handled below */
index f6dda607ea5eec71becdb49ee9507320edd034be..4ef1513a0a3d1295b0c3e06ac3a53114ec7d8115 100644 (file)
@@ -177,6 +177,8 @@ static vidinfo_t panel_info = {
 /*
  * Sharp LQ057Q3DC02 display. Active, color, single scan.
  */
+#define LCD_DF 12
+
 static vidinfo_t panel_info = {
     320, 240, 0, 0, CFG_HIGH, CFG_HIGH, CFG_LOW, CFG_LOW, CFG_HIGH,
     3, 0, 0, 1, 1, 15, 4, 0, 3
@@ -260,11 +262,11 @@ static vidinfo_t panel_info = {
  * Emerging Display Technologies 320x240. Passive, monochrome, single scan.
  */
 #define LCD_BPP                LCD_MONOCHROME
-#define LCD_DF         20
+#define LCD_DF         10
 
 static vidinfo_t panel_info = {
     320, 240, 0, 0, CFG_HIGH, CFG_HIGH, CFG_HIGH, CFG_HIGH, CFG_LOW,
-    LCD_BPP,  0, 0, 0, 0, 0, 15, 0, 0
+    LCD_BPP,  0, 0, 0, 0, 33, 0, 0, 0
 };
 #endif
 /*----------------------------------------------------------------------*/
@@ -977,15 +979,18 @@ static void lcd_enable (void)
        c |= 0x07;      /* Power on CCFL, Enable CCFL, Chip Enable LCD */
        pic_write (0x60, c);
     }
-#elif defined(CONFIG_R360MPI)
+#endif /* CONFIG_LWMON */
+
+#if defined(CONFIG_R360MPI)
     {
-       extern void r360_pwm_write (uchar reg, uchar val);
+       extern void r360_i2c_lcd_write (uchar data0, uchar data1);
 
-       r360_pwm_write(8, 1);
-       r360_pwm_write(0, 4);
-       r360_pwm_write(1, 6);
+       r360_i2c_lcd_write(0x10, 0x01);
+       r360_i2c_lcd_write(0x20, 0x01);
+       r360_i2c_lcd_write(0x3F, 0xFF);
+       r360_i2c_lcd_write(0x47, 0xFF);
     }
-#endif /* CONFIG_LWMON */
+#endif /* CONFIG_R360MPI */
 }
 
 /*----------------------------------------------------------------------*/
@@ -1003,10 +1008,12 @@ static void lcd_disable (void)
     }
 #elif defined(CONFIG_R360MPI)
     {
-       extern void r360_pwm_write (uchar reg, uchar val);
+       extern void r360_i2c_lcd_write (uchar data0, uchar data1);
 
-       r360_pwm_write(0, 0);
-       r360_pwm_write(1, 0);
+       r360_i2c_lcd_write(0x10, 0x00);
+       r360_i2c_lcd_write(0x20, 0x00);
+       r360_i2c_lcd_write(0x30, 0x00);
+       r360_i2c_lcd_write(0x40, 0x00);
     }
 #endif /* CONFIG_LWMON */
        /* Disable the LCD panel */
index cba2a27d1ed9c24b1c6c0e2e5c10197fb50cda63..c7cf8a4294f64f4a0539a97cddd3a05b35d9f5cc 100644 (file)
@@ -47,7 +47,7 @@
 #define        CONFIG_8xx_CONS_SMC1    1       /* Console is on SMC1           */
 #undef CONFIG_8xx_CONS_SMC2
 #undef CONFIG_8xx_CONS_NONE
-#define CONFIG_BAUDRATE                9600    /* console baudrate = 9600bps   */
+#define CONFIG_BAUDRATE                115200  /* console baudrate in bps      */
 #if 0
 #define CONFIG_BOOTDELAY       -1      /* autoboot disabled            */
 #else
@@ -83,7 +83,7 @@
 #endif /* CONFIG_LCD */
 #endif
 
-#undef CONFIG_CAN_DRIVER               /* CAN Driver support disabled  */
+#define        CONFIG_CAN_DRIVER               /* CAN Driver support enabled   */
 
 #define CONFIG_BOOTP_MASK      (CONFIG_BOOTP_DEFAULT | CONFIG_BOOTP_BOOTFILESIZE)
 
                                else    immr->im_cpm.cp_pbdat &= ~PB_SCL
 #define I2C_DELAY              udelay(50)
 
-#define CFG_I2C_PWM_ADDR       0x58    /* Power management coprocessor */
-#define CFG_I2C_KBD_ADDR       0x50    /* Keyboard coprocessor */
-#define CFG_I2C_TERM_ADDR      0x49    /* Temperature Sensors */
+#define CFG_I2C_LCD_ADDR       0x8     /* LCD Control */
+#define CFG_I2C_KEY_ADDR       0x9     /* Keyboard coprocessor */
+#define CFG_I2C_TEM_ADDR       0x49    /* Temperature Sensors */
 
 #define CONFIG_COMMANDS              ( CONFIG_CMD_DFL  | \
                                CFG_CMD_DHCP    | \
  *-----------------------------------------------------------------------
  * PCMCIA config., multi-function pin tri-state
  */
-#ifndef        CONFIG_CAN_DRIVER
 #define CFG_SIUMCR     (SIUMCR_DBGC00 | SIUMCR_DBPC00 | SIUMCR_MLRC01)
-#else  /* we must activate GPL5 in the SIUMCR for CAN */
-#define CFG_SIUMCR     (SIUMCR_DBGC11 | SIUMCR_DBPC00 | SIUMCR_MLRC01)
-#endif /* CONFIG_CAN_DRIVER */
 
 /*-----------------------------------------------------------------------
  * TBSCR - Time Base Status and Control                                11-26
 
 
 /*
- * BR1 and OR1 (SDRAM)
+ * BR2 and OR2 (SDRAM)
  *
  */
-#define SDRAM_BASE1_PRELIM     0x00000000      /* SDRAM bank #0        */
+#define SDRAM_BASE2_PRELIM     0x00000000      /* SDRAM bank #0        */
 #define        SDRAM_MAX_SIZE          0x04000000      /* max 64 MB per bank   */
 
-#define CFG_PRELIM_OR1_AM      0xF8000000      /* OR addr mask */
+#define CFG_PRELIM_OR2_AM      0xF8000000      /* OR addr mask */
 
 /* SDRAM timing: Multiplexed addresses, GPL5 output to GPL5_A (don't care)     */
 #define CFG_OR_TIMING_SDRAM    (OR_ACS_DIV1  | OR_CSNT_SAM | \
                                 OR_SCY_0_CLK | OR_G5LS)
 
-#define CFG_OR1_PRELIM (CFG_PRELIM_OR1_AM | CFG_OR_TIMING_SDRAM )
-#define CFG_BR1_PRELIM ((SDRAM_BASE1_PRELIM & BR_BA_MSK) | BR_MS_UPMA | BR_V )
+#define CFG_OR2_PRELIM (CFG_PRELIM_OR2_AM | CFG_OR_TIMING_SDRAM )
+#define CFG_BR2_PRELIM ((SDRAM_BASE2_PRELIM & BR_BA_MSK) | BR_MS_UPMA | BR_V )
+
+/*
+ * BR3 and OR3 (CAN Controller)
+ */
+#ifdef CONFIG_CAN_DRIVER
+#define CFG_CAN_BASE           0xC0000000      /* CAN base address   */
+#define CFG_CAN_OR_AM          0xFFFF8000      /* 32 kB address mask */
+#define CFG_OR3_CAN            (CFG_CAN_OR_AM | OR_G5LA |OR_BI)
+#define CFG_BR3_CAN            ((CFG_CAN_BASE & BR_BA_MSK) | \
+                                BR_PS_8 | BR_MS_UPMB | BR_V)
+#endif /* CONFIG_CAN_DRIVER */
 
 
 /*
index b60395ecbac7ea60de0f9dcb3d51bbaf1cc2478d..f70c023e39d2ea74381c3a4add07c56eaaf25857 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2003
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * See file CREDITS for list of people who contributed to this
@@ -12,7 +12,7 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
 #include <linux/mtd/mtd.h>
 #include "fw_env.h"
 
-typedef        unsigned char   uchar;
+typedef unsigned char uchar;
 
 #define        CMD_GETENV      "fw_printenv"
 #define        CMD_SETENV      "fw_setenv"
 
 typedef struct envdev_s {
-       uchar devname[16]; /* Device name */
-       ulong devoff;      /* Device offset */
-       ulong env_size;    /* environment size */
-       ulong erase_size;  /* device erase size */
+       uchar devname[16];              /* Device name */
+       ulong devoff;                   /* Device offset */
+       ulong env_size;                 /* environment size */
+       ulong erase_size;               /* device erase size */
 } envdev_t;
 
 static envdev_t envdevices[2];
@@ -59,8 +59,8 @@ static int curdev;
 #define ENV_SIZE      getenvsize()
 
 typedef struct environment_s {
-       ulong   crc;            /* CRC32 over data bytes        */
-       uchar   flags;      /* active or obsolete */
+       ulong crc;                      /* CRC32 over data bytes    */
+       uchar flags;                    /* active or obsolete */
        uchar *data;
 } env_t;
 
@@ -77,92 +77,94 @@ static uchar obsolete_flag = 0;
 
 static uchar default_environment[] = {
 #if defined(CONFIG_BOOTARGS)
-       "bootargs="     CONFIG_BOOTARGS                 "\0"
+       "bootargs=" CONFIG_BOOTARGS "\0"
 #endif
 #if defined(CONFIG_BOOTCOMMAND)
-       "bootcmd="      CONFIG_BOOTCOMMAND              "\0"
+       "bootcmd=" CONFIG_BOOTCOMMAND "\0"
 #endif
 #if defined(CONFIG_RAMBOOTCOMMAND)
-       "ramboot="      CONFIG_RAMBOOTCOMMAND           "\0"
+       "ramboot=" CONFIG_RAMBOOTCOMMAND "\0"
 #endif
 #if defined(CONFIG_NFSBOOTCOMMAND)
-       "nfsboot="      CONFIG_NFSBOOTCOMMAND           "\0"
+       "nfsboot=" CONFIG_NFSBOOTCOMMAND "\0"
 #endif
 #if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
-       "bootdelay="    MK_STR(CONFIG_BOOTDELAY)        "\0"
+       "bootdelay=" MK_STR (CONFIG_BOOTDELAY) "\0"
 #endif
 #if defined(CONFIG_BAUDRATE) && (CONFIG_BAUDRATE >= 0)
-       "baudrate="     MK_STR(CONFIG_BAUDRATE)         "\0"
+       "baudrate=" MK_STR (CONFIG_BAUDRATE) "\0"
 #endif
 #ifdef CONFIG_LOADS_ECHO
-       "loads_echo="   MK_STR(CONFIG_LOADS_ECHO)       "\0"
+       "loads_echo=" MK_STR (CONFIG_LOADS_ECHO) "\0"
 #endif
 #ifdef CONFIG_ETHADDR
-       "ethaddr="      MK_STR(CONFIG_ETHADDR)          "\0"
+       "ethaddr=" MK_STR (CONFIG_ETHADDR) "\0"
 #endif
 #ifdef CONFIG_ETH1ADDR
-       "eth1addr="     MK_STR(CONFIG_ETH1ADDR)         "\0"
+       "eth1addr=" MK_STR (CONFIG_ETH1ADDR) "\0"
 #endif
 #ifdef CONFIG_ETH2ADDR
-       "eth2addr="     MK_STR(CONFIG_ETH2ADDR)         "\0"
+       "eth2addr=" MK_STR (CONFIG_ETH2ADDR) "\0"
 #endif
 #ifdef CONFIG_ETHPRIME
-       "ethprime="     CONFIG_ETHPRIME                 "\0"
+       "ethprime=" CONFIG_ETHPRIME "\0"
 #endif
 #ifdef CONFIG_IPADDR
-       "ipaddr="       MK_STR(CONFIG_IPADDR)           "\0"
+       "ipaddr=" MK_STR (CONFIG_IPADDR) "\0"
 #endif
 #ifdef CONFIG_SERVERIP
-       "serverip="     MK_STR(CONFIG_SERVERIP)         "\0"
+       "serverip=" MK_STR (CONFIG_SERVERIP) "\0"
 #endif
 #ifdef CFG_AUTOLOAD
-       "autoload="     CFG_AUTOLOAD                    "\0"
+       "autoload=" CFG_AUTOLOAD "\0"
 #endif
 #ifdef CONFIG_ROOTPATH
-       "rootpath="     MK_STR(CONFIG_ROOTPATH)         "\0"
+       "rootpath=" MK_STR (CONFIG_ROOTPATH) "\0"
 #endif
 #ifdef CONFIG_GATEWAYIP
-       "gatewayip="    MK_STR(CONFIG_GATEWAYIP)        "\0"
+       "gatewayip=" MK_STR (CONFIG_GATEWAYIP) "\0"
 #endif
 #ifdef CONFIG_NETMASK
-       "netmask="      MK_STR(CONFIG_NETMASK)          "\0"
+       "netmask=" MK_STR (CONFIG_NETMASK) "\0"
 #endif
 #ifdef CONFIG_HOSTNAME
-       "hostname="     MK_STR(CONFIG_HOSTNAME)         "\0"
+       "hostname=" MK_STR (CONFIG_HOSTNAME) "\0"
 #endif
 #ifdef CONFIG_BOOTFILE
-       "bootfile="     MK_STR(CONFIG_BOOTFILE)         "\0"
+       "bootfile=" MK_STR (CONFIG_BOOTFILE) "\0"
 #endif
 #ifdef CONFIG_LOADADDR
-       "loadaddr="     MK_STR(CONFIG_LOADADDR)         "\0"
+       "loadaddr=" MK_STR (CONFIG_LOADADDR) "\0"
 #endif
 #ifdef CONFIG_PREBOOT
-       "preboot="      CONFIG_PREBOOT                  "\0"
+       "preboot=" CONFIG_PREBOOT "\0"
 #endif
 #ifdef CONFIG_CLOCKS_IN_MHZ
-       "clocks_in_mhz=" "1"                            "\0"
+       "clocks_in_mhz=" "1" "\0"
 #endif
 #if defined(CONFIG_PCI_BOOTDELAY) && (CONFIG_PCI_BOOTDELAY > 0)
-       "pcidelay="     MK_STR(CONFIG_PCI_BOOTDELAY)    "\0"
+       "pcidelay=" MK_STR (CONFIG_PCI_BOOTDELAY) "\0"
 #endif
 #ifdef  CONFIG_EXTRA_ENV_SETTINGS
        CONFIG_EXTRA_ENV_SETTINGS
 #endif
-       "\0"            /* Termimate env_t data with 2 NULs */
+       "\0"                    /* Termimate env_t data with 2 NULs */
 };
 
-static int  flash_io (int mode);
-static uchar *envmatch(uchar *s1, uchar *s2);
-static int env_init(void);
-static int parse_config(void);
+static int flash_io (int mode);
+static uchar *envmatch (uchar * s1, uchar * s2);
+static int env_init (void);
+static int parse_config (void);
+
 #if defined(CONFIG_FILE)
-static int get_config(char *);
+static int get_config (char *);
 #endif
-static inline ulong getenvsize(void)
+static inline ulong getenvsize (void)
 {
-       ulong rc = CFG_ENV_SIZE - sizeof(long);
+       ulong rc = CFG_ENV_SIZE - sizeof (long);
+
        if (HaveRedundEnv)
-               rc -= sizeof(char);
+               rc -= sizeof (char);
        return rc;
 }
 
@@ -174,20 +176,20 @@ unsigned char *fw_getenv (unsigned char *name)
 {
        uchar *env, *nxt;
 
-       if (env_init())
+       if (env_init ())
                return (NULL);
 
-       for (env=environment.data; *env; env=nxt+1) {
+       for (env = environment.data; *env; env = nxt + 1) {
                uchar *val;
 
-               for (nxt=env; *nxt; ++nxt) {
+               for (nxt = env; *nxt; ++nxt) {
                        if (nxt >= &environment.data[ENV_SIZE]) {
                                fprintf (stderr, "## Error: "
                                        "environment not terminated\n");
                                return (NULL);
                        }
                }
-               val=envmatch(name, env);
+               val = envmatch (name, env);
                if (!val)
                        continue;
                return (val);
@@ -199,17 +201,17 @@ unsigned char *fw_getenv (unsigned char *name)
  * Print the current definition of one, or more, or all
  * environment variables
  */
-void fw_printenv(int argc, char *argv[])
+void fw_printenv (int argc, char *argv[])
 {
        uchar *env, *nxt;
        int i, n_flag;
 
-       if (env_init())
+       if (env_init ())
                return;
 
-       if (argc == 1) {                /* Print all env variables      */
-               for (env=environment.data; *env; env=nxt+1) {
-                       for (nxt=env; *nxt; ++nxt) {
+       if (argc == 1) {                /* Print all env variables  */
+               for (env = environment.data; *env; env = nxt + 1) {
+                       for (nxt = env; *nxt; ++nxt) {
                                if (nxt >= &environment.data[ENV_SIZE]) {
                                        fprintf (stderr, "## Error: "
                                                "environment not terminated\n");
@@ -217,12 +219,12 @@ void fw_printenv(int argc, char *argv[])
                                }
                        }
 
-                       printf("%s\n", env);
+                       printf ("%s\n", env);
                }
                return;
        }
 
-       if (strcmp(argv[1], "-n") == 0) {
+       if (strcmp (argv[1], "-n") == 0) {
                n_flag = 1;
                ++argv;
                --argc;
@@ -235,32 +237,31 @@ void fw_printenv(int argc, char *argv[])
                n_flag = 0;
        }
 
-       for (i=1; i<argc; ++i) {        /* print single env variables   */
+       for (i = 1; i < argc; ++i) {    /* print single env variables   */
                uchar *name = argv[i];
                uchar *val = NULL;
 
-               for (env=environment.data; *env; env=nxt+1) {
+               for (env = environment.data; *env; env = nxt + 1) {
 
-                       for (nxt=env; *nxt; ++nxt) {
+                       for (nxt = env; *nxt; ++nxt) {
                                if (nxt >= &environment.data[ENV_SIZE]) {
                                        fprintf (stderr, "## Error: "
                                                "environment not terminated\n");
                                        return;
                                }
                        }
-                       val=envmatch(name, env);
+                       val = envmatch (name, env);
                        if (val) {
                                if (!n_flag) {
                                        fputs (name, stdout);
-                                       putc  ('=',  stdout);
+                                       putc ('=', stdout);
                                }
-                               puts  (val);
+                               puts (val);
                                break;
                        }
                }
                if (!val)
-                       fprintf (stderr, "## Error: \"%s\" not defined\n",
-                        name);
+                       fprintf (stderr, "## Error: \"%s\" not defined\n", name);
        }
 }
 
@@ -274,7 +275,7 @@ void fw_printenv(int argc, char *argv[])
  */
 int fw_setenv (int argc, char *argv[])
 {
-       int  i, len;
+       int i, len;
        uchar *env, *nxt;
        uchar *oldval = NULL;
        uchar *name;
@@ -283,7 +284,7 @@ int fw_setenv (int argc, char *argv[])
                return (EINVAL);
        }
 
-       if (env_init())
+       if (env_init ())
                return (errno);
 
        name = argv[1];
@@ -291,15 +292,15 @@ int fw_setenv (int argc, char *argv[])
        /*
         * search if variable with this name already exists
         */
-       for (env=environment.data; *env; env=nxt+1) {
-               for (nxt=env; *nxt; ++nxt) {
+       for (nxt = env = environment.data; *env; env = nxt + 1) {
+               for (nxt = env; *nxt; ++nxt) {
                        if (nxt >= &environment.data[ENV_SIZE]) {
                                fprintf (stderr, "## Error: "
                                        "environment not terminated\n");
                                return (EINVAL);
                        }
                }
-               if ((oldval=envmatch(name, env)) != NULL)
+               if ((oldval = envmatch (name, env)) != NULL)
                        break;
        }
 
@@ -311,7 +312,7 @@ int fw_setenv (int argc, char *argv[])
                 * Ethernet Address and serial# can be set only once
                 */
                if ((strcmp (name, "ethaddr") == 0) ||
-                   (strcmp (name, "serial#") == 0) ) {
+                       (strcmp (name, "serial#") == 0)) {
                        fprintf (stderr, "Can't overwrite \"%s\"\n", name);
                        return (EROFS);
                }
@@ -336,20 +337,19 @@ int fw_setenv (int argc, char *argv[])
        /*
         * Append new definition at the end
         */
-       for (env=environment.data; *env || *(env+1); ++env)
-               ;
+       for (env = environment.data; *env || *(env + 1); ++env);
        if (env > environment.data)
                ++env;
        /*
         * Overflow when:
         * "name" + "=" + "val" +"\0\0"  > CFG_ENV_SIZE - (env-environment)
         */
-       len = strlen(name) + 2;
+       len = strlen (name) + 2;
        /* add '=' for first arg, ' ' for all others */
-       for (i=2; i<argc; ++i) {
-               len += strlen(argv[i]) + 1;
+       for (i = 2; i < argc; ++i) {
+               len += strlen (argv[i]) + 1;
        }
-       if (len > (&environment.data[ENV_SIZE]-env)) {
+       if (len > (&environment.data[ENV_SIZE] - env)) {
                fprintf (stderr,
                        "Error: environment overflow, \"%s\" deleted\n",
                        name);
@@ -357,26 +357,24 @@ int fw_setenv (int argc, char *argv[])
        }
        while ((*env = *name++) != '\0')
                env++;
-       for (i=2; i<argc; ++i) {
+       for (i = 2; i < argc; ++i) {
                uchar *val = argv[i];
 
-               *env = (i==2) ? '=' : ' ';
-               while ((*++env = *val++) != '\0')
-                       ;
+               *env = (i == 2) ? '=' : ' ';
+               while ((*++env = *val++) != '\0');
        }
 
        /* end is marked with double '\0' */
        *++env = '\0';
 
-WRITE_FLASH:
+  WRITE_FLASH:
 
        /* Update CRC */
-       environment.crc = crc32(0, environment.data, ENV_SIZE);
+       environment.crc = crc32 (0, environment.data, ENV_SIZE);
 
        /* write environment back to flash */
        if (flash_io (O_RDWR)) {
-               fprintf (stderr,
-                       "Error: can't write fw_env to flash\n");
+               fprintf (stderr, "Error: can't write fw_env to flash\n");
                return (-1);
        }
 
@@ -389,166 +387,172 @@ static int flash_io (int mode)
        erase_info_t erase;
        char *data;
 
-       if ((fd = open(DEVNAME(curdev), mode)) < 0) {
-               fprintf (stderr, 
-                                "Can't open %s: %s\n", 
-                                DEVNAME(curdev), strerror(errno));
+       if ((fd = open (DEVNAME (curdev), mode)) < 0) {
+               fprintf (stderr,
+                       "Can't open %s: %s\n",
+                       DEVNAME (curdev), strerror (errno));
                return (-1);
        }
 
-       len = sizeof(environment.crc);
+       len = sizeof (environment.crc);
        if (HaveRedundEnv) {
-               len += sizeof(environment.flags);
+               len += sizeof (environment.flags);
        }
 
        if (mode == O_RDWR) {
                if (HaveRedundEnv) {
                        /* switch to next partition for writing */
                        otherdev = !curdev;
-                       if ((fdr = open(DEVNAME(otherdev), mode)) < 0) {
-                               fprintf (stderr, 
-                                                "Can't open %s: %s\n", 
-                                                DEVNAME(otherdev), strerror(errno));
+                       if ((fdr = open (DEVNAME (otherdev), mode)) < 0) {
+                               fprintf (stderr,
+                                       "Can't open %s: %s\n",
+                                       DEVNAME (otherdev),
+                                       strerror (errno));
                                return (-1);
                        }
                } else {
                        otherdev = curdev;
                        fdr = fd;
                }
-               printf("Unlocking flash...\n");
-               erase.length = DEVESIZE(otherdev);
-               erase.start = DEVOFFSET(otherdev);
+               printf ("Unlocking flash...\n");
+               erase.length = DEVESIZE (otherdev);
+               erase.start = DEVOFFSET (otherdev);
                ioctl (fdr, MEMUNLOCK, &erase);
 
                if (HaveRedundEnv) {
-                       erase.length = DEVESIZE(curdev);
-                       erase.start = DEVOFFSET(curdev);
+                       erase.length = DEVESIZE (curdev);
+                       erase.start = DEVOFFSET (curdev);
                        ioctl (fd, MEMUNLOCK, &erase);
                        environment.flags = active_flag;
                }
 
-               printf("Done\n");
-               resid = DEVESIZE(otherdev) - CFG_ENV_SIZE;
+               printf ("Done\n");
+               resid = DEVESIZE (otherdev) - CFG_ENV_SIZE;
                if (resid) {
-                       if ((data = malloc(resid)) == NULL) {
-                               fprintf(stderr, 
-                                 "Cannot malloc %d bytes: %s\n",
-                                 resid, strerror(errno));
+                       if ((data = malloc (resid)) == NULL) {
+                               fprintf (stderr,
+                                       "Cannot malloc %d bytes: %s\n",
+                                       resid,
+                                       strerror (errno));
                                return (-1);
                        }
-                       if (lseek (fdr, DEVOFFSET(otherdev) + CFG_ENV_SIZE, SEEK_SET) == -1) {
-                               fprintf (stderr,
-                                 "seek error on %s: %s\n", 
-                                  DEVNAME(otherdev), strerror(errno));
+                       if (lseek (fdr, DEVOFFSET (otherdev) + CFG_ENV_SIZE, SEEK_SET)
+                               == -1) {
+                               fprintf (stderr, "seek error on %s: %s\n",
+                                       DEVNAME (otherdev),
+                                       strerror (errno));
                                return (-1);
                        }
                        if ((rc = read (fdr, data, resid)) != resid) {
                                fprintf (stderr,
-                                 "read error on %s: %s\n", 
-                                 DEVNAME(otherdev), strerror(errno));
+                                       "read error on %s: %s\n",
+                                       DEVNAME (otherdev),
+                                       strerror (errno));
                                return (-1);
                        }
                }
 
-               printf("Erasing old environment...\n");
+               printf ("Erasing old environment...\n");
 
-               erase.length = DEVESIZE(otherdev);
-               erase.start = DEVOFFSET(otherdev);
+               erase.length = DEVESIZE (otherdev);
+               erase.start = DEVOFFSET (otherdev);
                if (ioctl (fdr, MEMERASE, &erase) != 0) {
                        fprintf (stderr, "MTD erase error on %s: %s\n",
-                         DEVNAME(otherdev), strerror(errno));
+                               DEVNAME (otherdev),
+                               strerror (errno));
                        return (-1);
                }
 
-               printf("Done\n");
+               printf ("Done\n");
 
-               printf("Writing environment to %s...\n",DEVNAME(otherdev));
-               if (lseek (fdr, DEVOFFSET(otherdev), SEEK_SET) == -1) {
+               printf ("Writing environment to %s...\n", DEVNAME (otherdev));
+               if (lseek (fdr, DEVOFFSET (otherdev), SEEK_SET) == -1) {
                        fprintf (stderr,
-                         "seek error on %s: %s\n", 
-                         DEVNAME(otherdev), strerror(errno));
+                               "seek error on %s: %s\n",
+                               DEVNAME (otherdev), strerror (errno));
                        return (-1);
                }
-               if (write(fdr, &environment, len) != len) {
+               if (write (fdr, &environment, len) != len) {
                        fprintf (stderr,
-                         "CRC write error on %s: %s\n", 
-                         DEVNAME(otherdev), strerror(errno));
+                               "CRC write error on %s: %s\n",
+                               DEVNAME (otherdev), strerror (errno));
                        return (-1);
                }
-               if (write(fdr, environment.data, ENV_SIZE) != ENV_SIZE) {
+               if (write (fdr, environment.data, ENV_SIZE) != ENV_SIZE) {
                        fprintf (stderr,
-                         "Write error on %s: %s\n", 
-                         DEVNAME(otherdev), strerror(errno));
+                               "Write error on %s: %s\n",
+                               DEVNAME (otherdev), strerror (errno));
                        return (-1);
                }
                if (resid) {
                        if (write (fdr, data, resid) != resid) {
                                fprintf (stderr,
-                                "write error on %s: %s\n", 
-                                 DEVNAME(curdev), strerror(errno));
+                                       "write error on %s: %s\n",
+                                       DEVNAME (curdev), strerror (errno));
                                return (-1);
                        }
-                       free(data);
+                       free (data);
                }
                if (HaveRedundEnv) {
                        /* change flag on current active env partition */
-                       if (lseek (fd, DEVOFFSET(curdev) + sizeof(ulong), SEEK_SET) == -1) {
-                               fprintf (stderr,
-                                                "seek error on %s: %s\n", 
-                                                DEVNAME(curdev), strerror(errno));
+                       if (lseek (fd, DEVOFFSET (curdev) + sizeof (ulong), SEEK_SET)
+                               == -1) {
+                               fprintf (stderr, "seek error on %s: %s\n",
+                                       DEVNAME (curdev), strerror (errno));
                                return (-1);
                        }
-                       if (write (fd, &obsolete_flag, sizeof(obsolete_flag)) != 
-                               sizeof(obsolete_flag)) {
+                       if (write (fd, &obsolete_flag, sizeof (obsolete_flag)) !=
+                               sizeof (obsolete_flag)) {
                                fprintf (stderr,
-                                                "Write error on %s: %s\n", 
-                                                DEVNAME(curdev), strerror(errno));
+                                       "Write error on %s: %s\n",
+                                       DEVNAME (curdev), strerror (errno));
                                return (-1);
                        }
                }
-               printf("Done\n");
-               printf("Locking ...\n");
-               erase.length = DEVESIZE(otherdev);
-               erase.start = DEVOFFSET(otherdev);
+               printf ("Done\n");
+               printf ("Locking ...\n");
+               erase.length = DEVESIZE (otherdev);
+               erase.start = DEVOFFSET (otherdev);
                ioctl (fdr, MEMLOCK, &erase);
                if (HaveRedundEnv) {
-                       erase.length = DEVESIZE(curdev);
-                       erase.start = DEVOFFSET(curdev);
+                       erase.length = DEVESIZE (curdev);
+                       erase.start = DEVOFFSET (curdev);
                        ioctl (fd, MEMLOCK, &erase);
-                       if (close(fdr)) {
+                       if (close (fdr)) {
                                fprintf (stderr,
-                                                "I/O error on %s: %s\n", 
-                                                DEVNAME(otherdev), strerror(errno));
+                                       "I/O error on %s: %s\n",
+                                       DEVNAME (otherdev),
+                                       strerror (errno));
                                return (-1);
                        }
                }
-               printf("Done\n");
+               printf ("Done\n");
        } else {
 
-               if (lseek (fd, DEVOFFSET(curdev), SEEK_SET) == -1) {
+               if (lseek (fd, DEVOFFSET (curdev), SEEK_SET) == -1) {
                        fprintf (stderr,
-                                        "seek error on %s: %s\n", 
-                                        DEVNAME(curdev), strerror(errno));
+                               "seek error on %s: %s\n",
+                               DEVNAME (curdev), strerror (errno));
                        return (-1);
                }
                if (read (fd, &environment, len) != len) {
                        fprintf (stderr,
-                        "CRC read error on %s: %s\n", 
-                        DEVNAME(curdev), strerror(errno));
+                               "CRC read error on %s: %s\n",
+                               DEVNAME (curdev), strerror (errno));
                        return (-1);
                }
                if ((rc = read (fd, environment.data, ENV_SIZE)) != ENV_SIZE) {
                        fprintf (stderr,
-                        "Read error on %s: %s\n", 
-                         DEVNAME(curdev), strerror(errno));
+                               "Read error on %s: %s\n",
+                               DEVNAME (curdev), strerror (errno));
                        return (-1);
                }
        }
 
-       if (close(fd)) {
+       if (close (fd)) {
                fprintf (stderr,
-                 "I/O error on %s: %s\n", 
-                 DEVNAME(curdev), strerror(errno));
+                       "I/O error on %s: %s\n",
+                       DEVNAME (curdev), strerror (errno));
                return (-1);
        }
 
@@ -562,22 +566,21 @@ static int flash_io (int mode)
  * If the names match, return the value of s2, else NULL.
  */
 
-static uchar *
-envmatch (uchar *s1, uchar *s2)
+static uchar *envmatch (uchar * s1, uchar * s2)
 {
 
        while (*s1 == *s2++)
                if (*s1++ == '=')
-                       return(s2);
-       if (*s1 == '\0' && *(s2-1) == '=')
-               return(s2);
-       return(NULL);
+                       return (s2);
+       if (*s1 == '\0' && *(s2 - 1) == '=')
+               return (s2);
+       return (NULL);
 }
 
 /*
  * Prevent confusion if running from erased flash memory
  */
-static int env_init(void)
+static int env_init (void)
 {
        int crc1, crc1_ok;
        uchar *addr1;
@@ -585,151 +588,142 @@ static int env_init(void)
        int crc2, crc2_ok;
        uchar flag1, flag2, *addr2;
 
-       if (parse_config()) /* should fill envdevices */
+       if (parse_config ())            /* should fill envdevices */
                return 1;
-       
+
        if ((addr1 = calloc (1, ENV_SIZE)) == NULL) {
-               fprintf (stderr, 
-                                "Not enough memory for environment (%ld bytes)\n",
-                                ENV_SIZE);
+               fprintf (stderr,
+                       "Not enough memory for environment (%ld bytes)\n",
+                       ENV_SIZE);
                return (errno);
        }
-       
+
        /* read environment from FLASH to local buffer */
        environment.data = addr1;
        curdev = 0;
        if (flash_io (O_RDONLY)) {
                return (errno);
        }
-       
-       crc1_ok = ((crc1 = crc32(0, environment.data, ENV_SIZE)) 
+
+       crc1_ok = ((crc1 = crc32 (0, environment.data, ENV_SIZE))
                           == environment.crc);
        if (!HaveRedundEnv) {
                if (!crc1_ok) {
-                       fprintf (stderr, 
-                                        "Warning: Bad CRC, using default environment\n");
+                       fprintf (stderr,
+                               "Warning: Bad CRC, using default environment\n");
                        environment.data = default_environment;
-                       free(addr1);
+                       free (addr1);
                }
        } else {
                flag1 = environment.flags;
-               
+
                curdev = 1;
                if ((addr2 = calloc (1, ENV_SIZE)) == NULL) {
-                       fprintf (stderr, 
-                                        "Not enough memory for environment (%ld bytes)\n",
-                                        ENV_SIZE);
+                       fprintf (stderr,
+                               "Not enough memory for environment (%ld bytes)\n",
+                               ENV_SIZE);
                        return (errno);
-               }               
+               }
                environment.data = addr2;
-               
+
                if (flash_io (O_RDONLY)) {
                        return (errno);
                }
-               
-               crc2_ok = ((crc2 = crc32(0, environment.data, ENV_SIZE)) 
+
+               crc2_ok = ((crc2 = crc32 (0, environment.data, ENV_SIZE))
                                   == environment.crc);
                flag2 = environment.flags;
-               
-               if (crc1_ok && ! crc2_ok) {
-                       environment.data  = addr1;
+
+               if (crc1_ok && !crc2_ok) {
+                       environment.data = addr1;
                        environment.flags = flag1;
                        environment.crc = crc1;
                        curdev = 0;
-                       free(addr2);
-               }
-               else if (! crc1_ok && crc2_ok) {
-                       environment.data  = addr2;
+                       free (addr2);
+               } else if (!crc1_ok && crc2_ok) {
+                       environment.data = addr2;
                        environment.flags = flag2;
                        environment.crc = crc2;
                        curdev = 1;
-                       free(addr1);
-               }
-               else if (! crc1_ok && ! crc2_ok) {
-                       fprintf (stderr, 
-                                        "Warning: Bad CRC, using default environment\n");
+                       free (addr1);
+               } else if (!crc1_ok && !crc2_ok) {
+                       fprintf (stderr,
+                               "Warning: Bad CRC, using default environment\n");
                        environment.data = default_environment;
                        curdev = 0;
-                       free(addr2);
-                       free(addr1);
-               }
-               else if (flag1 == active_flag && flag2 == obsolete_flag) {
-                       environment.data  = addr1;
+                       free (addr2);
+                       free (addr1);
+               } else if (flag1 == active_flag && flag2 == obsolete_flag) {
+                       environment.data = addr1;
                        environment.flags = flag1;
                        environment.crc = crc1;
                        curdev = 0;
-                       free(addr2);
-               }
-               else if (flag1 == obsolete_flag && flag2 == active_flag) {
-                       environment.data  = addr2;
+                       free (addr2);
+               } else if (flag1 == obsolete_flag && flag2 == active_flag) {
+                       environment.data = addr2;
                        environment.flags = flag2;
                        environment.crc = crc2;
                        curdev = 1;
-                       free(addr1);
-               }
-               else if (flag1 == flag2) {
-                       environment.data  = addr1;
+                       free (addr1);
+               } else if (flag1 == flag2) {
+                       environment.data = addr1;
                        environment.flags = flag1;
                        environment.crc = crc1;
                        curdev = 0;
-                       free(addr2);
-               }
-               else if (flag1 == 0xFF) {
-                       environment.data  = addr1;
+                       free (addr2);
+               } else if (flag1 == 0xFF) {
+                       environment.data = addr1;
                        environment.flags = flag1;
                        environment.crc = crc1;
                        curdev = 0;
-                       free(addr2);
-               }
-               else if (flag2 == 0xFF) {
-                       environment.data  = addr2;
+                       free (addr2);
+               } else if (flag2 == 0xFF) {
+                       environment.data = addr2;
                        environment.flags = flag2;
                        environment.crc = crc2;
                        curdev = 1;
-                       free(addr1);
+                       free (addr1);
                }
        }
        return (0);
 }
 
 
-static int parse_config()
+static int parse_config ()
 {
        struct stat st;
 
 #if defined(CONFIG_FILE)
        /* Fills in DEVNAME(), ENVSIZE(), DEVESIZE(). Or don't. */
-       if (get_config(CONFIG_FILE)) {
+       if (get_config (CONFIG_FILE)) {
                fprintf (stderr,
-                                "Cannot parse config file: %s\n",
-                                strerror(errno));
+                       "Cannot parse config file: %s\n", strerror (errno));
                return 1;
        }
-
 #else
-       strcpy(DEVNAME(0), DEVICE1_NAME);
-       DEVOFFSET(0) = DEVICE1_OFFSET;
-       ENVSIZE(0) = ENV1_SIZE;
-       DEVESIZE(0) = DEVICE1_ESIZE;
+       strcpy (DEVNAME (0), DEVICE1_NAME);
+       DEVOFFSET (0) = DEVICE1_OFFSET;
+       ENVSIZE (0) = ENV1_SIZE;
+       DEVESIZE (0) = DEVICE1_ESIZE;
 #ifdef HAVE_REDUND
-       strcpy(DEVNAME(1), DEVICE2_NAME);
-       DEVOFFSET(1) = DEVICE2_OFFSET;
-       ENVSIZE(1) = ENV2_SIZE;
-       DEVESIZE(1) = DEVICE2_ESIZE;
+       strcpy (DEVNAME (1), DEVICE2_NAME);
+       DEVOFFSET (1) = DEVICE2_OFFSET;
+       ENVSIZE (1) = ENV2_SIZE;
+       DEVESIZE (1) = DEVICE2_ESIZE;
        HaveRedundEnv = 1;
 #endif
 #endif
-       if (stat (DEVNAME(0), &st)) {
-               fprintf (stderr, 
-                "Cannot access MTD device %s: %s\n", 
-                DEVNAME(0), strerror(errno));
+       if (stat (DEVNAME (0), &st)) {
+               fprintf (stderr,
+                       "Cannot access MTD device %s: %s\n",
+                       DEVNAME (0), strerror (errno));
                return 1;
        }
-       
-       if (HaveRedundEnv && stat (DEVNAME(1), &st)) {
-               fprintf (stderr, 
-                "Cannot access MTD device %s: %s\n", 
-                DEVNAME(2), strerror(errno));
+
+       if (HaveRedundEnv && stat (DEVNAME (1), &st)) {
+               fprintf (stderr,
+                       "Cannot access MTD device %s: %s\n",
+                       DEVNAME (2), strerror (errno));
                return 1;
        }
        return 0;
@@ -743,26 +737,28 @@ static int get_config (char *fname)
        int rc;
        char dump[128];
 
-       if ((fp = fopen(fname, "r")) == NULL) {
+       if ((fp = fopen (fname, "r")) == NULL) {
                return 1;
        }
 
-       while ((i < 2) && 
-                  ((rc = fscanf (fp, "%s %lx %lx %lx",
-                                                 DEVNAME(i), &DEVOFFSET(i), &ENVSIZE(i), &DEVESIZE(i))) != EOF)) {
+       while ((i < 2) && ((rc = fscanf (fp, "%s %lx %lx %lx",
+                                 DEVNAME (i),
+                                 &DEVOFFSET (i),
+                                 &ENVSIZE (i),
+                                 &DEVESIZE (i)  )) != EOF)) {
 
                /* Skip incomplete conversions and comment strings */
-               if ((rc < 3) || (*DEVNAME(i) == '#')) { 
-                       fgets (dump, sizeof(dump), fp); /* Consume till end */
+               if ((rc < 3) || (*DEVNAME (i) == '#')) {
+                       fgets (dump, sizeof (dump), fp);        /* Consume till end */
                        continue;
                }
 
                i++;
        }
-       fclose(fp);
-       
+       fclose (fp);
+
        HaveRedundEnv = i - 1;
-       if (!i) { /* No valid entries found */
+       if (!i) {                       /* No valid entries found */
                errno = EINVAL;
                return 1;
        } else