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>
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user