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>
diff --git a/board/svm_sc8xx/svm_sc8xx.c b/board/svm_sc8xx/svm_sc8xx.c
index 4390e49..f34b835 100644
--- a/board/svm_sc8xx/svm_sc8xx.c
+++ b/board/svm_sc8xx/svm_sc8xx.c
@@ -75,27 +75,29 @@
  * 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");
+	if (l < 0 || strncmp(buf, "SVM8", 4)) {
+		printf("### No HW ID - assuming SVM SC8xx\n");
+		return (0);
+	}
+
+	board_type = 1;
+
+	for (i = 0; i < l; ++i) {
+		if (buf[i] == ' ')
+			break;
+		putc(buf[i]);
+	}
+
+	putc('\n');
+
 	return (0);
-    }
-
-    board_type = 1;
-
-    for (; *s; ++s) {
-	if (*s == ' ')
-	    break;
-	putc (*s);
-    }
-
-    putc ('\n');
-
-    return (0);
 }
 
 /* ------------------------------------------------------------------------- */