AVR32: Use initdram() instead of board_init_memories()
authorHaavard Skinnemoen <hskinnemoen@atmel.com>
Sun, 17 Dec 2006 13:46:06 +0000 (14:46 +0100)
committerHaavard Skinnemoen <hskinnemoen@atmel.com>
Sat, 14 Apr 2007 13:20:27 +0000 (15:20 +0200)
Conform to the "standard" interface and use initdram() instead of
board_init_memories() on AVR32. This enables us to get rid of the
sdram_size member of the global_data struct as well.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
board/atmel/atstk1000/atstk1000.c
include/asm-avr32/global_data.h
include/asm-avr32/initcalls.h
lib_avr32/board.c

index 8210bc60e80a63becf5f59d15162a200cb003d45..9f735da0897d31345025caa8245ae1324dfe6a64 100644 (file)
@@ -53,9 +53,9 @@ int board_early_init_f(void)
        return 0;
 }
 
-void board_init_memories(void)
+long int initdram(int board_type)
 {
-       gd->sdram_size = sdram_init(&sdram);
+       return sdram_init(&sdram);
 }
 
 void board_init_info(void)
index 7c45b362593c1159d90843c78a43a436af7af1a9..681c514ccf45d962abd5e5a10c44a8b282581673 100644 (file)
@@ -36,7 +36,6 @@ typedef       struct  global_data {
        bd_t            *bd;
        unsigned long   flags;
        unsigned long   baudrate;
-       unsigned long   sdram_size;
        unsigned long   stack_end;      /* highest stack address */
        unsigned long   have_console;   /* serial_init() was called */
        unsigned long   reloc_off;      /* Relocation Offset */
index 7ba25cde53e2316d14b8f204441edeccce7ae96f..583e5dc1010415a29991df3925b9baaba97b47c0 100644 (file)
@@ -26,8 +26,6 @@
 
 extern int cpu_init(void);
 extern int timer_init(void);
-extern void board_init_memories(void);
-extern void board_init_pio(void);
 extern void board_init_info(void);
 
 #endif /* __ASM_AVR32_INITCALLS_H__ */
index c55ebd5b2278dfe256d2d4e7690ecab17b3ef6b8..a407bcad14d7ab637cca5dfa71432ade6cfea97d 100644 (file)
@@ -125,7 +125,7 @@ static void display_flash_config (void)
        printf("at address 0x%08lx\n", gd->bd->bi_flashstart);
 }
 
-void board_init_f(ulong unused)
+void board_init_f(ulong board_type)
 {
        gd_t gd_data;
        gd_t *new_gd;
@@ -134,6 +134,7 @@ void board_init_f(ulong unused)
        unsigned long monitor_len;
        unsigned long monitor_addr;
        unsigned long addr;
+       long sdram_size;
 
        /* Initialize the global data pointer */
        memset(&gd_data, 0, sizeof(gd_data));
@@ -147,10 +148,10 @@ void board_init_f(ulong unused)
        serial_init();
        console_init_f();
        display_banner();
-       board_init_memories();
+       sdram_size = initdram(board_type);
 
        /* If we have no SDRAM, we can't go on */
-       if (!gd->sdram_size)
+       if (sdram_size <= 0)
                panic("No working SDRAM available\n");
 
        /*
@@ -164,7 +165,7 @@ void board_init_f(ulong unused)
         *  - global data struct
         *  - stack
         */
-       addr = CFG_SDRAM_BASE + gd->sdram_size;
+       addr = CFG_SDRAM_BASE + sdram_size;
        monitor_len = _end - _text;
 
        /*
@@ -199,7 +200,7 @@ void board_init_f(ulong unused)
         * information we have.
         */
        bd->bi_dram[0].start = CFG_SDRAM_BASE;
-       bd->bi_dram[0].size = gd->sdram_size;
+       bd->bi_dram[0].size = sdram_size;
        bd->bi_baudrate = gd->baudrate;
 
        memcpy(new_gd, gd, sizeof(gd_t));