Skip to content

Commit

Permalink
TI ARMv7: Don't use GD before crt0.S has set it
Browse files Browse the repository at this point in the history
Prior to this change we set the gd pointer early so that we can store
data in it.  This becomes problematic for DM changes as well as being
odd in general.  Re-work the code paths so that we don't need to set the
gd pointer so early and instead can rely upon the normal setting of it.

In order to do this we do need to move certain calls from s_init into
spl_board_init(), mainly preloader_console_init and
save_omap_boot_params.

Tested on: Beaglebone Black, AM43xx GP EVM, Beagleboard, Beagleboard xM,
OMAP5 uEVM, DRA7xx EVM
Signed-off-by: Tom Rini <trini@ti.com>
Tested-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
  • Loading branch information
trini committed Jan 16, 2015
1 parent ab77f24 commit a6b541b
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 30 deletions.
11 changes: 0 additions & 11 deletions arch/arm/cpu/armv7/am33xx/board.c
Expand Up @@ -284,14 +284,6 @@ void s_init(void)
*/
#ifdef CONFIG_NOR_BOOT
enable_norboot_pin_mux();
#endif
/*
* Save the boot parameters passed from romcode.
* We cannot delay the saving further than this,
* to prevent overwrites.
*/
#ifdef CONFIG_SPL_BUILD
save_omap_boot_params();
#endif
watchdog_disable();
set_uart_mux_conf();
Expand All @@ -301,9 +293,6 @@ void s_init(void)
gd->baudrate = CONFIG_BAUDRATE;
serial_init();
gd->have_console = 1;
#elif defined(CONFIG_SPL_BUILD)
gd = &gdata;
preloader_console_init();
#endif
#if defined(CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC)
/* Enable RTC32K clock */
Expand Down
10 changes: 10 additions & 0 deletions arch/arm/cpu/armv7/omap-common/boot-common.c
Expand Up @@ -106,6 +106,16 @@ u32 spl_boot_mode(void)

void spl_board_init(void)
{
/*
* Save the boot parameters passed from romcode.
* We cannot delay the saving further than this,
* to prevent overwrites.
*/
save_omap_boot_params();

/* Prepare console output */
preloader_console_init();

#ifdef CONFIG_SPL_NAND_SUPPORT
gpmc_init();
#endif
Expand Down
11 changes: 0 additions & 11 deletions arch/arm/cpu/armv7/omap-common/hwinit-common.c
Expand Up @@ -111,14 +111,6 @@ int arch_cpu_init(void)
*/
void s_init(void)
{
/*
* Save the boot parameters passed from romcode.
* We cannot delay the saving further than this,
* to prevent overwrites.
*/
#ifdef CONFIG_SPL_BUILD
save_omap_boot_params();
#endif
init_omap_revision();
hw_data_init();

Expand All @@ -133,9 +125,6 @@ void s_init(void)
srcomp_enable();
setup_clocks_for_console();

gd = &gdata;

preloader_console_init();
do_io_settings();
#endif
prcm_init();
Expand Down
9 changes: 1 addition & 8 deletions arch/arm/cpu/armv7/omap3/board.c
Expand Up @@ -119,6 +119,7 @@ int board_mmc_init(bd_t *bis)

void spl_board_init(void)
{
preloader_console_init();
#if defined(CONFIG_SPL_NAND_SUPPORT) || defined(CONFIG_SPL_ONENAND_SUPPORT)
gpmc_init();
#endif
Expand Down Expand Up @@ -264,14 +265,6 @@ void s_init(void)
ehci_clocks_enable();
#endif

#ifdef CONFIG_SPL_BUILD
gd = &gdata;

preloader_console_init();

timer_init();
#endif

if (!in_sdram)
mem_init();
}
Expand Down

0 comments on commit a6b541b

Please sign in to comment.