mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-21 06:31:31 +00:00
lib_arch/board.c: Move malloc initialization before flash_init()
This patch moves the malloc initialization before calling flash_init(). Upcoming changes to the NOR FLASH common CFI driver with optional MTD infrastructure and MTD concatenation support will call malloc(). And nothing really speaks against enabling malloc just a little earlier in the boot stage. Some architectures already enable malloc before calling flash_init() so they don't need any changes here. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Wolfgang Denk <wd@denx.de> Cc: Mike Frysinger <vapier@gentoo.org> Cc: Scott McNutt <smcnutt@psyent.com> Cc: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> Cc: Daniel Hellstrom <daniel@gaisler.com> Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Cc: John Rigby <jcrigby@gmail.com>
This commit is contained in:
parent
d873133f2b
commit
c790b04d23
9 changed files with 32 additions and 28 deletions
|
@ -316,6 +316,9 @@ void start_armboot (void)
|
|||
}
|
||||
}
|
||||
|
||||
/* armboot_start is defined in the board-specific linker script */
|
||||
mem_malloc_init (_armboot_start - CONFIG_SYS_MALLOC_LEN);
|
||||
|
||||
#ifndef CONFIG_SYS_NO_FLASH
|
||||
/* configure available FLASH banks */
|
||||
display_flash_config (flash_init ());
|
||||
|
@ -350,9 +353,6 @@ void start_armboot (void)
|
|||
}
|
||||
#endif /* CONFIG_LCD */
|
||||
|
||||
/* armboot_start is defined in the board-specific linker script */
|
||||
mem_malloc_init (_armboot_start - CONFIG_SYS_MALLOC_LEN);
|
||||
|
||||
#if defined(CONFIG_CMD_NAND)
|
||||
puts ("NAND: ");
|
||||
nand_init(); /* go init the NAND */
|
||||
|
|
|
@ -324,6 +324,10 @@ void board_init_r(gd_t * id, ulong dest_addr)
|
|||
post_reloc();
|
||||
#endif
|
||||
|
||||
/* initialize malloc() area */
|
||||
mem_malloc_init();
|
||||
malloc_bin_reloc();
|
||||
|
||||
#if !defined(CONFIG_SYS_NO_FLASH)
|
||||
/* Initialize the flash and protect u-boot by default */
|
||||
extern flash_info_t flash_info[];
|
||||
|
@ -341,9 +345,6 @@ void board_init_r(gd_t * id, ulong dest_addr)
|
|||
bd->bi_flashsize = 0;
|
||||
bd->bi_flashoffset = 0;
|
||||
#endif
|
||||
/* initialize malloc() area */
|
||||
mem_malloc_init();
|
||||
malloc_bin_reloc();
|
||||
|
||||
#ifdef CONFIG_CMD_NAND
|
||||
puts("NAND: ");
|
||||
|
|
|
@ -519,6 +519,10 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
|||
*/
|
||||
trap_init (CONFIG_SYS_SDRAM_BASE);
|
||||
|
||||
/* initialize malloc() area */
|
||||
mem_malloc_init ();
|
||||
malloc_bin_reloc ();
|
||||
|
||||
#if !defined(CONFIG_SYS_NO_FLASH)
|
||||
puts ("FLASH: ");
|
||||
|
||||
|
@ -563,10 +567,6 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
|||
|
||||
WATCHDOG_RESET ();
|
||||
|
||||
/* initialize malloc() area */
|
||||
mem_malloc_init ();
|
||||
malloc_bin_reloc ();
|
||||
|
||||
#ifdef CONFIG_SPI
|
||||
# if !defined(CONFIG_ENV_IS_IN_EEPROM)
|
||||
spi_init_f ();
|
||||
|
|
|
@ -370,6 +370,10 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
|||
|
||||
bd = gd->bd;
|
||||
|
||||
/* initialize malloc() area */
|
||||
mem_malloc_init();
|
||||
malloc_bin_reloc();
|
||||
|
||||
#ifndef CONFIG_SYS_NO_FLASH
|
||||
/* configure available FLASH banks */
|
||||
size = flash_init();
|
||||
|
@ -384,10 +388,6 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
|||
bd->bi_flashoffset = 0;
|
||||
#endif
|
||||
|
||||
/* initialize malloc() area */
|
||||
mem_malloc_init();
|
||||
malloc_bin_reloc();
|
||||
|
||||
#ifdef CONFIG_CMD_NAND
|
||||
puts ("NAND: ");
|
||||
nand_init (); /* go init the NAND */
|
||||
|
|
|
@ -142,12 +142,14 @@ void board_init (void)
|
|||
}
|
||||
}
|
||||
|
||||
WATCHDOG_RESET ();
|
||||
mem_malloc_init();
|
||||
malloc_bin_reloc();
|
||||
|
||||
WATCHDOG_RESET ();
|
||||
bd->bi_flashsize = flash_init();
|
||||
|
||||
WATCHDOG_RESET ();
|
||||
mem_malloc_init();
|
||||
malloc_bin_reloc();
|
||||
env_relocate();
|
||||
|
||||
bd->bi_ip_addr = getenv_IPaddr ("ipaddr");
|
||||
|
|
|
@ -148,12 +148,14 @@ void board_init (void)
|
|||
}
|
||||
}
|
||||
|
||||
WATCHDOG_RESET ();
|
||||
mem_malloc_init();
|
||||
malloc_bin_reloc();
|
||||
|
||||
WATCHDOG_RESET ();
|
||||
bd->bi_flashsize = flash_init();
|
||||
|
||||
WATCHDOG_RESET ();
|
||||
mem_malloc_init();
|
||||
malloc_bin_reloc();
|
||||
env_relocate();
|
||||
|
||||
bd->bi_ip_addr = getenv_IPaddr ("ipaddr");
|
||||
|
|
|
@ -775,6 +775,10 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
|||
|
||||
asm ("sync ; isync");
|
||||
|
||||
/* initialize malloc() area */
|
||||
mem_malloc_init ();
|
||||
malloc_bin_reloc ();
|
||||
|
||||
#if !defined(CONFIG_SYS_NO_FLASH)
|
||||
puts ("FLASH: ");
|
||||
|
||||
|
@ -832,10 +836,6 @@ void board_init_r (gd_t *id, ulong dest_addr)
|
|||
|
||||
WATCHDOG_RESET ();
|
||||
|
||||
/* initialize malloc() area */
|
||||
mem_malloc_init ();
|
||||
malloc_bin_reloc ();
|
||||
|
||||
#ifdef CONFIG_SPI
|
||||
# if !defined(CONFIG_ENV_IS_IN_EEPROM)
|
||||
spi_init_f ();
|
||||
|
|
|
@ -146,8 +146,8 @@ init_fnc_t *init_sequence[] =
|
|||
checkboard, /* Check support board */
|
||||
dram_init, /* SDRAM init */
|
||||
timer_init, /* SuperH Timer (TCNT0 only) init */
|
||||
sh_flash_init, /* Flash memory(NOR) init*/
|
||||
sh_mem_env_init,
|
||||
sh_flash_init, /* Flash memory(NOR) init*/
|
||||
INIT_FUNC_NAND_INIT/* Flash memory (NAND) init */
|
||||
INIT_FUNC_PCI_INIT /* PCI init */
|
||||
devices_init,
|
||||
|
|
|
@ -331,6 +331,10 @@ void board_init_f(ulong bootflag)
|
|||
*/
|
||||
interrupt_init();
|
||||
|
||||
/* initialize malloc() area */
|
||||
mem_malloc_init();
|
||||
malloc_bin_reloc();
|
||||
|
||||
#if !defined(CONFIG_SYS_NO_FLASH)
|
||||
puts("FLASH: ");
|
||||
|
||||
|
@ -371,11 +375,6 @@ void board_init_f(ulong bootflag)
|
|||
bd->bi_flashoffset = 0;
|
||||
#endif /* !CONFIG_SYS_NO_FLASH */
|
||||
|
||||
/* initialize malloc() area */
|
||||
mem_malloc_init();
|
||||
|
||||
malloc_bin_reloc();
|
||||
|
||||
#ifdef CONFIG_SPI
|
||||
# if !defined(CONFIG_ENV_IS_IN_EEPROM)
|
||||
spi_init_f();
|
||||
|
|
Loading…
Add table
Reference in a new issue