[U-Boot] [GENERIC_BOARD] env problems before relocation with ppc8360

Valentin Longchamp valentin.longchamp at keymile.com
Mon Aug 25 17:42:51 CEST 2014


Hello,

I am currently porting all the Keymile boards to CONFIG_SYS_GENERIC_BOARD.
On u-boot 2014.10-rc1 I have all of them working quite well (at least booting
and showing no obvious problem), except for our boards using a MPC8360
from Freescale (kmcoge5ne and kmeter1, both using km8360.h as config) that do
not boot at all.

I have found out that u-boot crashes as soon as a getenv function call happens
before relocation. When I disable them, u-boot seems to work fine. I am
currently trying to debug further, but it's not clear yet exactly what causes
the crash.

We also have quite a few MPC8321 boards (for instance tuxx1.h or suvd3.h) and
there the problem is not present, while the environment is also in the NOR
flash as on km8360 and their core also a e300 (so their initialization is VERY
similar).

Has anybody seen a similar problem so far ? Has anybody a clue why this could
be a HW related problem (I don't think so) ? or what is the difference in both
configs (km8360 and tuxx1 for intance) that causes this behaviour ?

Best Regards

Valentin

Signed-off-by: Valentin Longchamp <valentin.longchamp at keymile.com>
---
 common/board_f.c         | 7 ++++---
 include/configs/km8360.h | 2 ++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/common/board_f.c b/common/board_f.c
index 6203d85..9f034ab 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -133,7 +133,8 @@ void board_add_ram_info(int)
 
 static int init_baud_rate(void)
 {
-	gd->baudrate = getenv_ulong("baudrate", 10, CONFIG_BAUDRATE);
+	//gd->baudrate = getenv_ulong("baudrate", 10, CONFIG_BAUDRATE);
+	gd->baudrate = CONFIG_BAUDRATE;
 	return 0;
 }
 
@@ -798,7 +799,7 @@ static init_fnc_t init_sequence_f[] = {
 	setup_ram_buf,
 #endif
 	setup_mon_len,
-	setup_fdt,
+	//setup_fdt,
 	trace_early_init,
 #if defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)
 	/* TODO: can this go into arch_cpu_init()? */
@@ -933,7 +934,7 @@ static init_fnc_t init_sequence_f[] = {
 	reserve_logbuffer,
 #endif
 #ifdef CONFIG_PRAM
-	reserve_pram,
+	//reserve_pram,
 #endif
 	reserve_round_4k,
 #if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF)) && \
diff --git a/include/configs/km8360.h b/include/configs/km8360.h
index f5ac32a..c21c194 100644
--- a/include/configs/km8360.h
+++ b/include/configs/km8360.h
@@ -51,6 +51,8 @@
 #define CONFIG_QE			/* Has QE */
 #define CONFIG_MPC8360			/* MPC8360 CPU specific */
 
+#define CONFIG_SYS_GENERIC_BOARD
+
 #define	CONFIG_SYS_TEXT_BASE	0xF0000000
 
 /* include common defines/options for all 83xx Keymile boards */
-- 
1.8.0.1



More information about the U-Boot mailing list