diff options
| author | Stefan Roese <sr@denx.de> | 2009-05-11 15:50:12 +0200 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2009-06-12 20:39:47 +0200 | 
| commit | c790b04d230363d03939dc008bcc80f3ba4de1ae (patch) | |
| tree | c3e0873b01e2f6f38648177f31358c623825f01d | |
| parent | d873133f2ba9bd613d5f6552c31cc70fb13f15d3 (diff) | |
| download | olio-uboot-2014.01-c790b04d230363d03939dc008bcc80f3ba4de1ae.tar.xz olio-uboot-2014.01-c790b04d230363d03939dc008bcc80f3ba4de1ae.zip | |
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>
| -rw-r--r-- | lib_arm/board.c | 6 | ||||
| -rw-r--r-- | lib_blackfin/board.c | 7 | ||||
| -rw-r--r-- | lib_m68k/board.c | 8 | ||||
| -rw-r--r-- | lib_mips/board.c | 8 | ||||
| -rw-r--r-- | lib_nios/board.c | 6 | ||||
| -rw-r--r-- | lib_nios2/board.c | 6 | ||||
| -rw-r--r-- | lib_ppc/board.c | 8 | ||||
| -rw-r--r-- | lib_sh/board.c | 2 | ||||
| -rw-r--r-- | lib_sparc/board.c | 9 | 
9 files changed, 32 insertions, 28 deletions
| diff --git a/lib_arm/board.c b/lib_arm/board.c index 5d05d9b92..e3040acdc 100644 --- a/lib_arm/board.c +++ b/lib_arm/board.c @@ -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 */ diff --git a/lib_blackfin/board.c b/lib_blackfin/board.c index 49465d2a0..047f16418 100644 --- a/lib_blackfin/board.c +++ b/lib_blackfin/board.c @@ -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:  "); diff --git a/lib_m68k/board.c b/lib_m68k/board.c index db45b00b1..584d1fff3 100644 --- a/lib_m68k/board.c +++ b/lib_m68k/board.c @@ -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 (); diff --git a/lib_mips/board.c b/lib_mips/board.c index 061901e97..f8ac234d1 100644 --- a/lib_mips/board.c +++ b/lib_mips/board.c @@ -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 */ diff --git a/lib_nios/board.c b/lib_nios/board.c index 63e79aec2..9d8eea796 100644 --- a/lib_nios/board.c +++ b/lib_nios/board.c @@ -143,11 +143,13 @@ 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"); diff --git a/lib_nios2/board.c b/lib_nios2/board.c index 70fad1b87..0677e9999 100644 --- a/lib_nios2/board.c +++ b/lib_nios2/board.c @@ -149,11 +149,13 @@ 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"); diff --git a/lib_ppc/board.c b/lib_ppc/board.c index 9e944fa38..a0e6b208a 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -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 (); diff --git a/lib_sh/board.c b/lib_sh/board.c index 2fd213ba3..183110fe3 100644 --- a/lib_sh/board.c +++ b/lib_sh/board.c @@ -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, diff --git a/lib_sparc/board.c b/lib_sparc/board.c index 2f3e6733b..628d46d30 100644 --- a/lib_sparc/board.c +++ b/lib_sparc/board.c @@ -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(); |