summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaavard Skinnemoen <hskinnemoen@atmel.com>2007-10-06 18:55:35 +0200
committerHaavard Skinnemoen <hskinnemoen@atmel.com>2007-10-06 20:17:37 +0200
commit7b624ad254b97e5a25dca2304a398b64aeedaffe (patch)
treec3d8fa3761e8fbb2750df8b34fe458e7149fd7e0
parent9add9884b1fddc34ca186e00a2f868ccd5d02d87 (diff)
downloadu-boot-imx-7b624ad254b97e5a25dca2304a398b64aeedaffe.zip
u-boot-imx-7b624ad254b97e5a25dca2304a398b64aeedaffe.tar.gz
u-boot-imx-7b624ad254b97e5a25dca2304a398b64aeedaffe.tar.bz2
AVR32: Initialize bi_flash* in board_init_r
The ATSTK1000-specific flash driver intializes bi_flashstart, bi_flashsize and bi_flashoffset, but other flash drivers, like the CFI driver, don't. Initialize these in board_init_r instead so that things will still be set up correctly when we switch to the CFI driver. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
-rw-r--r--board/atmel/atstk1000/flash.c4
-rw-r--r--lib_avr32/board.c12
2 files changed, 11 insertions, 5 deletions
diff --git a/board/atmel/atstk1000/flash.c b/board/atmel/atstk1000/flash.c
index 958f4dc..93d790f 100644
--- a/board/atmel/atstk1000/flash.c
+++ b/board/atmel/atstk1000/flash.c
@@ -55,10 +55,6 @@ unsigned long flash_init(void)
unsigned long addr;
unsigned int i;
- gd->bd->bi_flashstart = CFG_FLASH_BASE;
- gd->bd->bi_flashsize = CFG_FLASH_SIZE;
- gd->bd->bi_flashoffset = _edata - _text;
-
flash_info[0].size = CFG_FLASH_SIZE;
flash_info[0].sector_count = 135;
diff --git a/lib_avr32/board.c b/lib_avr32/board.c
index 8b9ca38..11d864f 100644
--- a/lib_avr32/board.c
+++ b/lib_avr32/board.c
@@ -310,10 +310,20 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
malloc_bin_reloc();
dma_alloc_init();
board_init_info();
- flash_init();
+
+ bd->bi_flashstart = 0;
+ bd->bi_flashsize = 0;
+ bd->bi_flashoffset = 0;
+
+#ifndef CFG_NO_FLASH
+ bd->bi_flashstart = CFG_FLASH_BASE;
+ bd->bi_flashsize = flash_init();
+ bd->bi_flashoffset = (unsigned long)_edata - (unsigned long)_text;
if (bd->bi_flashsize)
display_flash_config();
+#endif
+
if (bd->bi_dram[0].size)
display_dram_config();