Fix incorrect use of getenv() before relocation
authorWolfgang Denk <wd@denx.de>
Wed, 4 May 2011 10:32:28 +0000 (10:32 +0000)
committerWolfgang Denk <wd@denx.de>
Thu, 12 May 2011 17:48:42 +0000 (19:48 +0200)
A large number of boards incorrectly used getenv() in their board init
code running before relocation.  In some cases this caused U-Boot to
hang when certain environment variables grew too long.
Fix the code to use getenv_r().

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: The LEOX team <team@leox.org>
Cc: Michael Schwingen <michael@schwingen.org>
Cc: Georg Schardt <schardt@team-ctech.de>
Cc: Werner Pfister <Pfister_Werner@intercontrol.de>
Cc: Dirk Eibach <eibach@gdsys.de>
Cc: Peter De Schrijver <p2@mind.be>
Cc: John Zhan <zhanz@sinovee.com>
Cc: Rishi Bhattacharya <rishi@ti.com>
Cc: Peter Tyser <ptyser@xes-inc.com>
61 files changed:
board/LEOX/elpt860/elpt860.c
board/RRvision/RRvision.c
board/actux1/actux1.c
board/actux2/actux2.c
board/actux3/actux3.c
board/amcc/acadia/acadia.c
board/amcc/bamboo/bamboo.c
board/amcc/bluestone/bluestone.c
board/amcc/bubinga/bubinga.c
board/amcc/canyonlands/canyonlands.c
board/amcc/ebony/ebony.c
board/amcc/katmai/katmai.c
board/amcc/kilauea/kilauea.c
board/amcc/luan/luan.c
board/amcc/makalu/makalu.c
board/amcc/ocotea/ocotea.c
board/amcc/redwood/redwood.c
board/amcc/sequoia/sequoia.c
board/amcc/taihu/taihu.c
board/amcc/taishan/taishan.c
board/amcc/walnut/walnut.c
board/amcc/yosemite/yosemite.c
board/amcc/yucca/yucca.c
board/amirix/ap1000/ap1000.c
board/avnet/fx12mm/fx12mm.c
board/c2mon/c2mon.c
board/digsy_mtc/digsy_mtc.c
board/etx094/etx094.c
board/gdsys/405ep/dlvision-10g.c
board/gdsys/405ep/io.c
board/gdsys/405ep/iocon.c
board/gdsys/dlvision/dlvision.c
board/gdsys/gdppc440etx/gdppc440etx.c
board/gdsys/intip/intip.c
board/gdsys/neo/neo.c
board/gw8260/gw8260.c
board/hermes/hermes.c
board/ixdp425/ixdp425.c
board/lwmon5/lwmon5.c
board/micronas/vct/vct.c
board/ml2/ml2.c
board/mosaixtech/icon/icon.c
board/pcs440ep/pcs440ep.c
board/prodrive/alpr/alpr.c
board/prodrive/p3mx/p3mx.c
board/prodrive/p3p440/p3p440.c
board/prodrive/pdnb3/pdnb3.c
board/quad100hd/quad100hd.c
board/quantum/quantum.c
board/rbc823/rbc823.c
board/socrates/socrates.c
board/svm_sc8xx/svm_sc8xx.c
board/t3corp/t3corp.c
board/ti/omap5912osk/omap5912osk.c
board/tqc/tqm8260/tqm8260.c
board/tqc/tqm8272/tqm8272.c
board/tqc/tqm85xx/tqm85xx.c
board/tqc/tqm8xx/tqm8xx.c
board/xes/common/board.c
board/xes/xpedite1000/xpedite1000.c
board/zeus/zeus.c

index 905df92..03868cd 100644 (file)
@@ -169,9 +169,10 @@ int board_early_init_f (void)
 
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
-       if (!s || strncmp (s, "ELPT860", 7))
+       if ((i < 0) || strncmp(buf, "ELPT860", 7))
                printf ("### No HW ID - assuming ELPT860\n");
 
        return (0);             /* success */
index 9d016c5..0182d8a 100644 (file)
@@ -93,14 +93,16 @@ const uint sdram_table[] =
 
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
+       char buf[64];
+       int i;
+       int l = getenv_f("serial#", buf, sizeof(buf));
 
        puts ("Board: RRvision ");
 
-       for (; s && *s; ++s) {
-               if (*s == ' ')
+       for (i=0; i < l; ++i) {
+               if (buf[i] == ' ')
                        break;
-               putc (*s);
+               putc (buf[i]);
        }
 
        putc ('\n');
index e73aff8..85e3f9e 100644 (file)
@@ -89,14 +89,15 @@ int board_init (void)
  */
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts ("Board: AcTux-1 rev.");
        putc (ACTUX1_BOARDREL + 'A' - 1);
 
-       if (s != NULL) {
-               puts (", serial# ");
-               puts (s);
+       if (i > 0) {
+               puts(", serial# ");
+               puts(buf);
        }
        putc ('\n');
 
index d6aaad6..0d67f80 100644 (file)
@@ -96,14 +96,15 @@ int board_init (void)
  */
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts ("Board: AcTux-2 rev.");
        putc (ACTUX2_BOARDREL + 'A' - 1);
 
-       if (s != NULL) {
-               puts (", serial# ");
-               puts (s);
+       if (i > 0) {
+               puts(", serial# ");
+               puts(buf);
        }
        putc ('\n');
 
index 63bf365..bace254 100644 (file)
@@ -111,14 +111,15 @@ int board_init (void)
  */
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts ("Board: AcTux-3 rev.");
        putc (ACTUX3_BOARDREL + 'A' - 1);
 
-       if (s != NULL) {
+       if (i > 0) {
                puts (", serial# ");
-               puts (s);
+               puts (buf);
        }
        putc ('\n');
 
index 4825611..68a99bd 100644 (file)
@@ -102,15 +102,16 @@ int misc_init_f(void)
  */
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
        u8 rev;
 
        rev = in8(CONFIG_SYS_CPLD_BASE + 0);
        printf("Board: Acadia - AMCC PPC405EZ Evaluation Board, Rev. %X", rev);
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index d4205e0..79788a8 100644 (file)
@@ -440,12 +440,13 @@ int board_early_init_f(void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: Bamboo - AMCC PPC440EP Evaluation Board");
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index fe8929c..584f5ef 100644 (file)
@@ -78,13 +78,14 @@ int board_early_init_f(void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts("Board: Bluestone Evaluation Board");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 49eadb9..1ed0aee 100644 (file)
@@ -53,13 +53,14 @@ int board_early_init_f(void)
  */
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts("Board: Bubinga - AMCC PPC405EP Evaluation Board");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 80e2739..2f0d941 100644 (file)
@@ -293,7 +293,8 @@ int checkboard(void)
 {
        struct board_bcsr *bcsr_data =
                (struct board_bcsr *)CONFIG_SYS_BCSR_BASE;
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        if (pvr_460ex()) {
                printf("Board: Canyonlands - AMCC PPC460EX Evaluation Board");
@@ -319,9 +320,9 @@ int checkboard(void)
 
        printf(", Rev. %X", in_8(&bcsr_data->cpld_rev));
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 923dbca..ad94394 100644 (file)
@@ -92,12 +92,13 @@ int board_early_init_f(void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: Ebony - AMCC PPC440GP Evaluation Board");
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 7301cd5..3438065 100644 (file)
@@ -236,12 +236,13 @@ int board_early_init_f (void)
 
 int checkboard (void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: Katmai - AMCC 440SPe Evaluation Board");
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index bd6550c..1648734 100644 (file)
@@ -307,16 +307,17 @@ int board_pcie_last(void)
 
 int checkboard (void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        if (is_405exr())
                printf("Board: Haleakala - AMCC PPC405EXr Evaluation Board");
        else
                printf("Board: Kilauea - AMCC PPC405EX Evaluation Board");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        printf(" (CPLD rev. %ld)\n", gd->board_type);
 
index b2595a8..d4b620e 100644 (file)
@@ -105,13 +105,14 @@ int misc_init_r(void)
  ************************************************************************/
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: Luan - AMCC PPC440SP Evaluation Board");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 483df66..34a094f 100644 (file)
@@ -224,13 +224,14 @@ int misc_init_r(void)
 
 int checkboard (void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: Makalu - AMCC PPC405EX Evaluation Board");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index bbb5331..d2091e5 100644 (file)
@@ -200,12 +200,13 @@ int board_early_init_f (void)
 
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf ("Board: Ocotea - AMCC PPC440GX Evaluation Board");
-       if (s != NULL) {
-               puts (", serial# ");
-               puts (s);
+       if (i > 0) {
+               puts(", serial# ");
+               puts(buf);
        }
        putc ('\n');
 
index bb7565e..8ca1495 100644 (file)
@@ -200,12 +200,13 @@ int board_early_init_f(void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: Redwood - AMCC 460SX Reference Board");
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index b518aa7..45e87f7 100644 (file)
@@ -331,7 +331,8 @@ int misc_init_r(void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
        u8 rev;
        u32 clock = get_async_pci_freq();
 
@@ -344,9 +345,9 @@ int checkboard(void)
        rev = in_8((void *)(CONFIG_SYS_BCSR_BASE + 0));
        printf(", Rev. %X, PCI-Async=%d MHz", rev, clock / 1000000);
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 87c9403..8c6b097 100644 (file)
@@ -65,13 +65,14 @@ int board_early_init_f(void)
  */
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts("Board: Taihu - AMCC PPC405EP Evaluation Board");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 2957a77..fcaf7fd 100644 (file)
@@ -193,12 +193,13 @@ int misc_init_r(void)
 
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf ("Board: Taishan - AMCC PPC440GX Evaluation Board");
-       if (s != NULL) {
-               puts (", serial# ");
-               puts (s);
+       if (i > 0) {
+               puts(", serial# ");
+               puts(buf);
        }
        putc ('\n');
 
index 4f29932..d3287ce 100644 (file)
@@ -67,7 +67,8 @@ int board_early_init_f(void)
  */
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
        uint pvr = get_pvr();
 
        if (pvr == PVR_405GPR_RB) {
@@ -76,9 +77,9 @@ int checkboard(void)
                puts("Board: Walnut - AMCC PPC405GP Evaluation Board");
        }
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index aaeab6f..0c95c36 100644 (file)
@@ -188,7 +188,8 @@ int misc_init_r (void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
        u8 rev;
        u32 clock = get_async_pci_freq();
 
@@ -201,9 +202,9 @@ int checkboard(void)
        rev = in_8((void *)(CONFIG_SYS_BCSR_BASE + 0));
        printf(", Rev. %X, PCI-Async=%d MHz", rev, clock / 1000000);
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index b128e46..1fab794 100644 (file)
@@ -542,12 +542,13 @@ int board_early_init_f (void)
 
 int checkboard (void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: Yucca - AMCC 440SPe Evaluation Board");
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index c8dd99e..64de04c 100644 (file)
@@ -37,8 +37,8 @@ int board_pre_init (void)
 /** serial number and platform display at startup */
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
-       char *e;
+       char buf[64];
+       int l = getenv_f("serial#", buf, sizeof(buf));
 
        /* After a loadace command, the SystemAce control register is left in a wonky state. */
        /* this code did not work in board_pre_init */
@@ -115,17 +115,19 @@ int checkboard (void)
 
        puts ("Serial#: ");
 
-       if (!s) {
+       if (l < 0) {
                printf ("### No HW ID - assuming AMIRIX");
        } else {
-               for (e = s; *e; ++e) {
-                       if (*e == ' ')
+               int i;
+
+               for (i = 0; i < l; ++i) {
+                       if (buf[i] == ' ') {
+                               buf[i] = '\0';
                                break;
+                       }
                }
 
-               for (; s < e; ++s) {
-                       putc (*s);
-               }
+               puts(buf);
        }
 
        putc ('\n');
@@ -136,9 +138,11 @@ int checkboard (void)
 
 phys_size_t initdram (int board_type)
 {
-       char *s = getenv ("dramsize");
+       char buf[64];
+       int i = getenv_f("dramsize", buf, sizeof(buf));
 
-       if (s != NULL) {
+       if (i > 0) {
+               char *s = buf;
                if ((s[0] == '0') && ((s[1] == 'x') || (s[1] == 'X'))) {
                        s += 2;
                }
index e671a7b..c975efa 100644 (file)
 
 int checkboard(void)
 {
-       char tmp[64];
-       char *s, *e;
-       int i = getenv_f("serial", tmp, sizeof(tmp));
+       char buf[64];
+       int i;
+       int l = getenv_f("serial#", buf, sizeof(buf));
 
-       if (i < 0) {
+       if (l < 0) {
                printf("Avnet Virtex4 FX12 with no serial #");
        } else {
-               for (e = tmp; *e; ++e) {
-                       if (*e == ' ')
+               printf("Avnet Virtex4 FX12 Minimodul # ");
+               for (i = 0; i < l; ++i) {
+                       if (buf[i] == ' ')
                                break;
+                       putc(buf[i]);
                }
-               printf("Avnet Virtex4 FX12 Minimodul # ");
-               for (s = tmp; s < e; ++s)
-                       putc(*s);
        }
        putc('\n');
        return 0;
index 717a64b..348dfa0 100644 (file)
@@ -91,14 +91,16 @@ const uint sdram_table[] =
 
 int checkboard (void)
 {
-       unsigned char *s = (unsigned char *)getenv ("serial#");
+       char buf[64];
+       int i;
+       int l = getenv_f("serial#", buf, sizeof(buf));
 
        puts ("Board: TTTech C2MON ");
 
-       for (; s && *s; ++s) {
-               if (*s == ' ')
+       for (i = 0; i < l;  ++i) {
+               if (buf[i] == ' ')
                        break;
-               putc (*s);
+               putc (buf[i]);
        }
 
        putc ('\n');
index 9f13a3d..588face 100644 (file)
@@ -191,15 +191,16 @@ phys_size_t initdram(int board_type)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts ("Board: InterControl digsyMTC");
 #if defined(CONFIG_DIGSY_REV5)
        puts (" rev5");
 #endif
-       if (s != NULL) {
+       if (i > 0) {
                puts(", ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index d6f638a..abefe4a 100644 (file)
@@ -92,8 +92,9 @@ const uint sdram_table[] = {
 
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
-       char *e;
+       char buf[64];
+       int i;
+       int l = getenv_f("serial#", buf, sizeof(buf));
 
        puts ("Board: ");
 
@@ -103,19 +104,16 @@ int checkboard (void)
        gd->board_type = 1; /* 1 = 1SDRAM-Device */
 #endif
 
-       if (!s || strncmp (s, "ETX_", 4)) {
+       if (l < 0 || strncmp(buf, "ETX_", 4)) {
                puts ("### No HW ID - assuming ETX_094\n");
                read_hw_vers ();
                return (0);
        }
 
-       for (e = s; *e; ++e) {
-               if (*e == ' ')
+       for (i = 0; i < l; ++i) {
+               if (buf[i] == ' ')
                        break;
-       }
-
-       for (; s < e; ++s) {
-               putc (*s);
+               putc(buf[i]);
        }
        putc ('\n');
 
index 0388541..ecba66e 100644 (file)
@@ -225,15 +225,16 @@ static void print_fpga_info(unsigned dev)
  */
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: ");
 
        printf("DLVision 10G");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
 
        puts("\n");
index 0974019..db1ea7f 100644 (file)
@@ -87,8 +87,9 @@ err_out:
  */
 int checkboard(void)
 {
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
        ihs_fpga_t *fpga = (ihs_fpga_t *) CONFIG_SYS_FPGA_BASE(0);
-       char *s = getenv("serial#");
        u16 versions = in_le16(&fpga->versions);
        u16 fpga_version = in_le16(&fpga->fpga_version);
        u16 fpga_features = in_le16(&fpga->fpga_features);
@@ -106,9 +107,9 @@ int checkboard(void)
 
        printf("CATCenter Io");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        puts("\n       ");
 
index 20770e4..ce53340 100644 (file)
@@ -69,8 +69,9 @@ enum {
  */
 int checkboard(void)
 {
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
        ihs_fpga_t *fpga = (ihs_fpga_t *) CONFIG_SYS_FPGA_BASE(0);
-       char *s = getenv("serial#");
        u16 versions = in_le16(&fpga->versions);
        u16 fpga_version = in_le16(&fpga->fpga_version);
        u16 fpga_features = in_le16(&fpga->fpga_features);
@@ -98,9 +99,9 @@ int checkboard(void)
 
        printf("IoCon");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        puts("\n       ");
 
index 3499bdc..5c70326 100644 (file)
@@ -75,7 +75,8 @@ int misc_init_r(void)
  */
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
        u8 channel2_msr = in_8((void *)CONFIG_UART_BASE + 0x26);
        u8 channel3_msr = in_8((void *)CONFIG_UART_BASE + 0x36);
        u8 channel7_msr = in_8((void *)CONFIG_UART_BASE + 0x76);
@@ -108,9 +109,9 @@ int checkboard(void)
                break;
        }
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        puts("\n       ");
 
index 328eb95..c58411e 100644 (file)
@@ -145,13 +145,14 @@ int misc_init_r(void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: GDPPC440ETX - G&D PPC440EP/GR ETX-module");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index aa85ea4..0132b25 100644 (file)
@@ -124,7 +124,8 @@ int get_cpu_num(void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
 #ifdef CONFIG_DEVCONCENTER
        printf("Board: DevCon-Center");
@@ -132,9 +133,9 @@ int checkboard(void)
        printf("Board: Intip");
 #endif
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index a56c2cc..d21d599 100644 (file)
@@ -53,7 +53,8 @@ int board_early_init_f(void)
  */
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
        u16 val = in_le16((void *)CONFIG_FPGA_BASE + 2);
        u8 unit_type;
        u8 hardware_cpu_ports;
@@ -62,9 +63,9 @@ int checkboard(void)
 
        printf("Board: CATCenter Neo");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        puts("\n       ");
 
index 28f5ca9..77a1e1d 100644 (file)
@@ -214,13 +214,13 @@ const iop_conf_t iop_conf_tab[4][32] = {
 /*********************************************************************/
 int checkboard (void)
 {
-       char *str;
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts ("Board: Advent Networks gw8260\n");
 
-       str = getenv ("serial#");
-       if (str != NULL) {
-               printf ("SN:    %s\n", str);
+       if (i > 0) {
+               printf("SN:    %s\n", buf);
        }
        return 0;
 }
index 9a3e5f6..acf364e 100644 (file)
@@ -107,21 +107,19 @@ const uint sdram_table[] = {
 
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
-       char *e;
+       char buf[64];
+       int i;
+       int l = getenv_f("serial#", buf, sizeof(buf));
 
        puts ("Board: ");
 
-       if (!s || strncmp (s, "HERMES", 6)) {
+       if (l < 0 || strncmp(buf, "HERMES", 6)) {
                puts ("### No HW ID - assuming HERMES-PRO");
        } else {
-               for (e = s; *e; ++e) {
-                       if (*e == ' ')
+               for (i = 0; i < l; i++) {
+                       if (buf[i] == ' ')
                                break;
-               }
-
-               for (; s < e; ++s) {
-                       putc (*s);
+                       putc (buf[i]);
                }
        }
 
index 43ac8f6..a29d584 100644 (file)
@@ -83,7 +83,8 @@ int board_init (void)
  */
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
 #ifdef CONFIG_IXDPG425
        puts("Board: IXDPG425 - Intel Network Gateway Reference Platform");
@@ -91,9 +92,9 @@ int checkboard(void)
        puts("Board: IXDP425 - Intel Development Platform");
 #endif
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index dd275bf..ecd9536 100644 (file)
@@ -333,13 +333,14 @@ int misc_init_r(void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts("Board: lwmon5");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 7fc3507..a8eef37 100644 (file)
@@ -80,8 +80,9 @@ phys_size_t initdram(int board_type)
 
 int checkboard(void)
 {
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
        u32 config0 = read_c0_prid();
-       char *s = getenv("serial#");
 
        if ((config0 & 0xff0000) == PRID_COMP_LEGACY
            && (config0 & 0xff00) == PRID_IMP_LX4280) {
@@ -108,9 +109,9 @@ int checkboard(void)
        }
 
        printf("Board: Micronas VCT " BOARD_NAME BOARD_NAME_ADD);
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 981e1de..319dca0 100644 (file)
@@ -30,23 +30,19 @@ int board_early_init_f (void)
 
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
-       char *e;
+       char buf[64];
+       int i;
+       int l = getenv_f("serial#", buf, sizeof(buf));
 
-       if (!s || strncmp (s, "ML2", 9)) {
+       if (l < 0 || strncmp(buf, "ML2", 9)) {
                printf ("### No HW ID - assuming ML2");
        } else {
-               for (e = s; *e; ++e) {
-                       if (*e == ' ')
+               for (i = 0; i < l; i++) {
+                       if (buf[i] == ' ')
                                break;
-               }
-
-               for (; s < e; ++s) {
-                       putc (*s);
+                       putc(buf[i]);
                }
        }
-
-
        putc ('\n');
 
        return (0);
index e09dbc3..e464e43 100644 (file)
@@ -275,12 +275,13 @@ int board_early_init_r(void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: ICON");
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 70d8fe2..5a3ec58 100644 (file)
@@ -509,12 +509,13 @@ int misc_init_r (void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: PCS440EP");
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 1784982..a64f6b0 100644 (file)
@@ -133,12 +133,13 @@ static int board_rev(void)
 
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf ("Board: ALPR");
-       if (s != NULL) {
-               puts (", serial# ");
-               puts (s);
+       if (i > 0) {
+               puts(", serial# ");
+               puts(buf);
        }
        printf(" (Rev. %d)\n", board_rev());
 
index 05eca52..09e4f82 100644 (file)
@@ -335,13 +335,14 @@ void after_reloc (ulong dest_addr, gd_t * gd)
 
 int checkboard (void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: %s", CONFIG_SYS_BOARD_NAME);
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 020f66d..1bb9686 100644 (file)
@@ -122,12 +122,13 @@ int board_early_init_f(void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: P3P440");
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
 
        if (is_monarch()) {
index 928dd22..3aaebf2 100644 (file)
@@ -101,13 +101,14 @@ int board_init(void)
  */
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts("Board: PDNB3");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 2f72d2b..6044e85 100644 (file)
@@ -58,16 +58,17 @@ int board_early_init_f(void)
  */
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 #ifdef DISPLAY_BOARD_INFO
        sys_info_t sysinfo;
 #endif
 
        puts("Board: Quad100hd");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index d94b5d7..61c6a68 100644 (file)
@@ -87,14 +87,16 @@ const uint sdram_table[] = {
 
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
+       char buf[64];
+       int i;
+       int l = getenv_f("serial#", buf, sizeof(buf));
 
        puts ("Board QUANTUM, Serial No: ");
 
-       for (; s && *s; ++s) {
-               if (*s == ' ')
+       for (i = 0; i < l; ++i) {
+               if (buf[i] == ' ')
                        break;
-               putc (*s);
+               putc (buf[i]);
        }
        putc ('\n');
        return (0);             /* success */
index e10d9f9..ddfba14 100644 (file)
@@ -127,15 +127,16 @@ const uint static_table[] =
 
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
-       if (!s || strncmp (s, "TQM8", 4)) {
+       if (i < 0 || strncmp(buf, "TQM8", 4)) {
                printf ("### No HW ID - assuming RBC823\n");
                return (0);
        }
 
-       puts (s);
-       putc ('\n');
+       puts(buf);
+       putc('\n');
 
        return (0);
 }
index 72e7401..65fb70a 100644 (file)
@@ -52,15 +52,17 @@ ulong flash_get_size (ulong base, int banknum);
 int checkboard (void)
 {
        volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
-
-       char *src;
+       char buf[64];
        int f;
-       char *s = getenv("serial#");
+       int i = getenv_f("serial#", buf, sizeof(buf));
+#ifdef CONFIG_PCI
+       char *src;
+#endif
 
        puts("Board: Socrates");
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 4390e49..f34b835 100644 (file)
@@ -75,27 +75,29 @@ const uint sdram_table[] =
  * Return 1 for "SC8xx" type, 0 else.
  */
 
-int checkboard (void)
+int checkboard(void)
 {
-    char *s = getenv("serial#");
-    int board_type;
+       char buf[64];
+       int i;
+       int l = getenv_f("serial#", buf, sizeof(buf));
+       int board_type;
 
-    if (!s || strncmp(s, "SVM8", 4)) {
-       printf ("### No HW ID - assuming SVM SC8xx\n");
-       return (0);
-    }
+       if (l < 0 || strncmp(buf, "SVM8", 4)) {
+               printf("### No HW ID - assuming SVM SC8xx\n");
+               return (0);
+       }
 
-    board_type = 1;
+       board_type = 1;
 
-    for (; *s; ++s) {
-       if (*s == ' ')
-           break;
-       putc (*s);
-    }
+       for (i = 0; i < l; ++i) {
+               if (buf[i] == ' ')
+                       break;
+               putc(buf[i]);
+       }
 
-    putc ('\n');
+       putc('\n');
 
-    return (0);
+       return (0);
 }
 
 /* ------------------------------------------------------------------------- */
index f2853e4..57f09fa 100644 (file)
@@ -89,13 +89,14 @@ int board_early_init_f(void)
 
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf("Board: T3CORP");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index cbf451b..6f0e763 100644 (file)
@@ -295,13 +295,14 @@ void peripheral_power_enable (void)
  */
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts("Board: OSK5912");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');
 
index 95073b8..65a3174 100644 (file)
@@ -195,17 +195,17 @@ const iop_conf_t iop_conf_tab[4][32] = {
  */
 int checkboard (void)
 {
-       char str[64];
-       int i = getenv_f("serial#", str, sizeof (str));
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts ("Board: ");
 
-       if (!i || strncmp (str, "TQM82", 5)) {
+       if (i < 0 || strncmp(buf, "TQM82", 5)) {
                puts ("### No HW ID - assuming TQM8260\n");
                return (0);
        }
 
-       puts (str);
+       puts (buf);
        putc ('\n');
 
        return 0;
index 96ec078..9efb541 100644 (file)
@@ -514,12 +514,16 @@ static inline int scanChar (char *p, int len, unsigned long *number)
 static int dump_hwib(void)
 {
        HWIB_INFO       *hw = &hwinf;
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
        volatile immap_t *immr = (immap_t *)CONFIG_SYS_IMMR;
-       char *s = getenv("serial#");
+
+       if (i < 0)
+               buf[0] = '\0';
 
        if (hw->OK) {
                printf ("HWIB on %x\n", HWIB_INFO_START_ADDR);
-               printf ("serial : %s\n", s);
+               printf ("serial : %s\n", buf);
                printf ("ethaddr: %s\n", hw->ethaddr);
                printf ("FLASH  : %x nr:%d\n", hw->flash, hw->flash_nr);
                printf ("RAM    : %x cs:%d\n", hw->ram, hw->ram_cs);
index 99b1331..8fb73ab 100644 (file)
@@ -227,17 +227,19 @@ static const int casl_table[] = { 20, 25, 30 };
 
 int cas_latency (void)
 {
-       char *s = getenv ("serial#");
+       char buf[128];
        int casl;
        int val;
        int i;
 
        casl = CONFIG_DDR_DEFAULT_CL;
 
-       if (s != NULL) {
-               if (strncmp(s + strlen (s) - strlen (CASL_STRING1),
+       i = getenv_f("serial#", buf, sizeof(buf));
+
+       if (i >0) {
+               if (strncmp(buf + strlen (buf) - strlen (CASL_STRING1),
                            CASL_STRING2, strlen (CASL_STRING2)) == 0) {
-                       val = simple_strtoul (s + strlen (s) - 2, NULL, 10);
+                       val = simple_strtoul (buf + strlen (buf) - 2, NULL, 10);
 
                        for (i = 0; i < N_CASL; ++i) {
                                if (val == casl_table[i]) {
@@ -252,12 +254,13 @@ int cas_latency (void)
 
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        printf ("Board: %s", CONFIG_BOARDNAME);
-       if (s != NULL) {
-               puts (", serial# ");
-               puts (s);
+       if (i > 0) {
+               puts(", serial# ");
+               puts(buf);
        }
        putc ('\n');
 
index 6576e02..1fda53b 100644 (file)
@@ -106,31 +106,33 @@ const uint sdram_table[] =
 
 int checkboard (void)
 {
-       char *s = getenv ("serial#");
+       char buf[64];
+       int i;
+       int l = getenv_f("serial#", buf, sizeof(buf));
 
        puts ("Board: ");
 
-       if (!s || strncmp (s, "TQM8", 4)) {
+       if (l < 0 || strncmp(buf, "TQM8", 4)) {
                puts ("### No HW ID - assuming TQM8xxL\n");
                return (0);
        }
 
-       if ((*(s + 6) == 'L')) {        /* a TQM8xxL type */
+       if ((buf[6] == 'L')) {  /* a TQM8xxL type */
                gd->board_type = 'L';
        }
 
-       if ((*(s + 6) == 'M')) {        /* a TQM8xxM type */
+       if ((buf[6] == 'M')) {  /* a TQM8xxM type */
                gd->board_type = 'M';
        }
 
-       if ((*(s + 6) == 'D')) {        /* a TQM885D type */
+       if ((buf[6] == 'D')) {  /* a TQM885D type */
                gd->board_type = 'D';
        }
 
-       for (; *s; ++s) {
-               if (*s == ' ')
+       for (i = 0; i < l; ++i) {
+               if (buf[i] == ' ')
                        break;
-               putc (*s);
+               putc (buf[i]);
        }
 #ifdef CONFIG_VIRTLAB2
        puts (" (Virtlab2)");
index 738f0a6..4e60bb5 100644 (file)
@@ -13,7 +13,9 @@
 int checkboard(void)
 {
        char name[] = CONFIG_SYS_BOARD_NAME;
+       char buf[64];
        char *s;
+       int i;
 
 #ifdef CONFIG_SYS_FORM_CUSTOM
        s = "Custom";
@@ -52,12 +54,15 @@ int checkboard(void)
 
        /* Display board specific information */
        puts("       ");
-       if ((s = getenv("board_rev")))
-               printf("Rev %s, ", s);
-       if ((s = getenv("serial#")))
-               printf("Serial# %s, ", s);
-       if ((s = getenv("board_cfg")))
-               printf("Cfg %s", s);
+       i = getenv_f("board_rev", buf, sizeof(buf));
+       if (i > 0)
+               printf("Rev %s, ", buf);
+       i = getenv_f("serial#", buf, sizeof(buf));
+       if (i > 0)
+               printf("Serial# %s, ", buf);
+       i = getenv_f("board_cfg", buf, sizeof(buf));
+       if (i > 0)
+               printf("Cfg %s", buf);
        puts("\n");
 
        return 0;
index a3534d2..4b0ee92 100644 (file)
@@ -112,19 +112,20 @@ int board_early_init_f(void)
 
 int checkboard(void)
 {
-       char *s;
+       char buf[64];
+       int i;
 
        printf("Board: X-ES %s PMC SBC\n", CONFIG_SYS_BOARD_NAME);
        printf("       ");
-       s = getenv("board_rev");
-       if (s)
-               printf("Rev %s, ", s);
-       s = getenv("serial#");
-       if (s)
-               printf("Serial# %s, ", s);
-       s = getenv("board_cfg");
-       if (s)
-               printf("Cfg %s", s);
+       i = getenv_f("board_rev", buf, sizeof(buf));
+       if (i > 0)
+               printf("Rev %s, ", buf);
+       i = getenv_f("serial#", buf, sizeof(buf));
+       if (i > 0)
+               printf("Serial# %s, ", buf);
+       i = getenv_f("board_cfg", buf, sizeof(buf));
+       if (i > 0)
+               printf("Cfg %s", buf);
        printf("\n");
 
        return 0;
index 7e33d3f..18cb85f 100644 (file)
@@ -161,7 +161,8 @@ int misc_init_r(void)
  */
 int checkboard(void)
 {
-       char *s = getenv("serial#");
+       char buf[64];
+       int i = getenv_f("serial#", buf, sizeof(buf));
 
        puts("Board: Zeus-");
 
@@ -172,9 +173,9 @@ int checkboard(void)
 
        puts(" of BulletEndPoint");
 
-       if (s != NULL) {
+       if (i > 0) {
                puts(", serial# ");
-               puts(s);
+               puts(buf);
        }
        putc('\n');