From 2a1680e30e3fa8257b60cb9dbd7add32539ac470 Mon Sep 17 00:00:00 2001 From: York Sun Date: Fri, 2 May 2014 17:28:04 -0700 Subject: common/board_f: Initialized global data for generic board Some platforms (tested on mpc85xx, mpc86xx) use global data before calling function baord_inti_f(). The data should not be cleared later. Any arch which uses global data in generic board board_init_f() should define CONFIG_SYS_GENERIC_GLOBAL_DATA. Signed-off-by: York Sun CC: Scott Wood CC: Simon Glass CC: Albert ARIBAUD Acked-by: Simon Glass --- common/board_f.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'common/board_f.c') diff --git a/common/board_f.c b/common/board_f.c index aea6bff555..b6be386a7f 100644 --- a/common/board_f.c +++ b/common/board_f.c @@ -961,20 +961,22 @@ static init_fnc_t init_sequence_f[] = { void board_init_f(ulong boot_flags) { -#ifndef CONFIG_X86 +#ifdef CONFIG_SYS_GENERIC_GLOBAL_DATA + /* + * For some archtectures, global data is initialized and used before + * calling this function. The data should be preserved. For others, + * CONFIG_SYS_GENERIC_GLOBAL_DATA should be defined and use the stack + * here to host global data until relocation. + */ gd_t data; gd = &data; -#endif /* * Clear global data before it is accessed at debug print * in initcall_run_list. Otherwise the debug print probably * get the wrong vaule of gd->have_console. */ -#if !defined(CONFIG_CPM2) && !defined(CONFIG_MPC512X) && \ - !defined(CONFIG_MPC83xx) && !defined(CONFIG_MPC85xx) && \ - !defined(CONFIG_MPC86xx) && !defined(CONFIG_X86) zero_global_data(); #endif -- cgit