diff options
author | Wolfgang Denk <wd@denx.de> | 2011-05-04 10:32:28 +0000 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2011-05-12 19:48:42 +0200 |
commit | f0c0b3a9e6f28a34d6da5edabba1e874fdf8e675 (patch) | |
tree | b48adf0159f02551ab3318f469b085cfa0b26bb8 /board/amcc | |
parent | a02a884b95c47e114a54f2751d03f139f312af2f (diff) | |
download | u-boot-f0c0b3a9e6f28a34d6da5edabba1e874fdf8e675.tar.gz |
Fix incorrect use of getenv() before relocation
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>
Diffstat (limited to 'board/amcc')
-rw-r--r-- | board/amcc/acadia/acadia.c | 7 | ||||
-rw-r--r-- | board/amcc/bamboo/bamboo.c | 7 | ||||
-rw-r--r-- | board/amcc/bluestone/bluestone.c | 7 | ||||
-rw-r--r-- | board/amcc/bubinga/bubinga.c | 7 | ||||
-rw-r--r-- | board/amcc/canyonlands/canyonlands.c | 7 | ||||
-rw-r--r-- | board/amcc/ebony/ebony.c | 7 | ||||
-rw-r--r-- | board/amcc/katmai/katmai.c | 7 | ||||
-rw-r--r-- | board/amcc/kilauea/kilauea.c | 7 | ||||
-rw-r--r-- | board/amcc/luan/luan.c | 7 | ||||
-rw-r--r-- | board/amcc/makalu/makalu.c | 7 | ||||
-rw-r--r-- | board/amcc/ocotea/ocotea.c | 9 | ||||
-rw-r--r-- | board/amcc/redwood/redwood.c | 7 | ||||
-rw-r--r-- | board/amcc/sequoia/sequoia.c | 7 | ||||
-rw-r--r-- | board/amcc/taihu/taihu.c | 7 | ||||
-rw-r--r-- | board/amcc/taishan/taishan.c | 9 | ||||
-rw-r--r-- | board/amcc/walnut/walnut.c | 7 | ||||
-rw-r--r-- | board/amcc/yosemite/yosemite.c | 7 | ||||
-rw-r--r-- | board/amcc/yucca/yucca.c | 7 |
18 files changed, 74 insertions, 56 deletions
diff --git a/board/amcc/acadia/acadia.c b/board/amcc/acadia/acadia.c index 482561122a..68a99bd1ee 100644 --- a/board/amcc/acadia/acadia.c +++ b/board/amcc/acadia/acadia.c @@ -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'); diff --git a/board/amcc/bamboo/bamboo.c b/board/amcc/bamboo/bamboo.c index d4205e034b..79788a80fc 100644 --- a/board/amcc/bamboo/bamboo.c +++ b/board/amcc/bamboo/bamboo.c @@ -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'); diff --git a/board/amcc/bluestone/bluestone.c b/board/amcc/bluestone/bluestone.c index fe8929c389..584f5effc6 100644 --- a/board/amcc/bluestone/bluestone.c +++ b/board/amcc/bluestone/bluestone.c @@ -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'); diff --git a/board/amcc/bubinga/bubinga.c b/board/amcc/bubinga/bubinga.c index 49eadb9212..1ed0aeeaf9 100644 --- a/board/amcc/bubinga/bubinga.c +++ b/board/amcc/bubinga/bubinga.c @@ -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'); diff --git a/board/amcc/canyonlands/canyonlands.c b/board/amcc/canyonlands/canyonlands.c index 80e2739fe0..2f0d94172b 100644 --- a/board/amcc/canyonlands/canyonlands.c +++ b/board/amcc/canyonlands/canyonlands.c @@ -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'); diff --git a/board/amcc/ebony/ebony.c b/board/amcc/ebony/ebony.c index 923dbca718..ad9439497c 100644 --- a/board/amcc/ebony/ebony.c +++ b/board/amcc/ebony/ebony.c @@ -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'); diff --git a/board/amcc/katmai/katmai.c b/board/amcc/katmai/katmai.c index 7301cd5953..34380658e5 100644 --- a/board/amcc/katmai/katmai.c +++ b/board/amcc/katmai/katmai.c @@ -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'); diff --git a/board/amcc/kilauea/kilauea.c b/board/amcc/kilauea/kilauea.c index bd6550cd05..1648734ab6 100644 --- a/board/amcc/kilauea/kilauea.c +++ b/board/amcc/kilauea/kilauea.c @@ -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); diff --git a/board/amcc/luan/luan.c b/board/amcc/luan/luan.c index b2595a8ec1..d4b620e857 100644 --- a/board/amcc/luan/luan.c +++ b/board/amcc/luan/luan.c @@ -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'); diff --git a/board/amcc/makalu/makalu.c b/board/amcc/makalu/makalu.c index 483df66272..34a094fc76 100644 --- a/board/amcc/makalu/makalu.c +++ b/board/amcc/makalu/makalu.c @@ -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'); diff --git a/board/amcc/ocotea/ocotea.c b/board/amcc/ocotea/ocotea.c index bbb5331ef2..d2091e5bf4 100644 --- a/board/amcc/ocotea/ocotea.c +++ b/board/amcc/ocotea/ocotea.c @@ -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'); diff --git a/board/amcc/redwood/redwood.c b/board/amcc/redwood/redwood.c index bb7565e2e4..8ca14954c7 100644 --- a/board/amcc/redwood/redwood.c +++ b/board/amcc/redwood/redwood.c @@ -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'); diff --git a/board/amcc/sequoia/sequoia.c b/board/amcc/sequoia/sequoia.c index b518aa7d72..45e87f7631 100644 --- a/board/amcc/sequoia/sequoia.c +++ b/board/amcc/sequoia/sequoia.c @@ -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'); diff --git a/board/amcc/taihu/taihu.c b/board/amcc/taihu/taihu.c index 87c9403e4a..8c6b0977aa 100644 --- a/board/amcc/taihu/taihu.c +++ b/board/amcc/taihu/taihu.c @@ -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'); diff --git a/board/amcc/taishan/taishan.c b/board/amcc/taishan/taishan.c index 2957a77486..fcaf7fde26 100644 --- a/board/amcc/taishan/taishan.c +++ b/board/amcc/taishan/taishan.c @@ -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'); diff --git a/board/amcc/walnut/walnut.c b/board/amcc/walnut/walnut.c index 4f299324cd..d3287cea19 100644 --- a/board/amcc/walnut/walnut.c +++ b/board/amcc/walnut/walnut.c @@ -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'); diff --git a/board/amcc/yosemite/yosemite.c b/board/amcc/yosemite/yosemite.c index aaeab6f5fd..0c95c3634b 100644 --- a/board/amcc/yosemite/yosemite.c +++ b/board/amcc/yosemite/yosemite.c @@ -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'); diff --git a/board/amcc/yucca/yucca.c b/board/amcc/yucca/yucca.c index b128e46c27..1fab794bd3 100644 --- a/board/amcc/yucca/yucca.c +++ b/board/amcc/yucca/yucca.c @@ -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'); |