subl    $1b, %ecx
        movl    %ecx, (GD_LOAD_OFF * 4)(%ebp)
 
-       /* size memory */
-       call    dram_init_f
-
        /* Set parameter to board_init_f() to boot flags */
        movl    (GD_FLAGS * 4)(%ebp), %eax
 
 
 
 /* Architecture specific - can be in arch/i386/cpu/, arch/i386/lib/, or $(BOARD)/ */
 int timer_init(void);
+int dram_init_f(void);
 
 /* cpu/.../interrupts.c */
 int cpu_init_interrupts(void);
 
 
        gd->flags = boot_flags;
 
+       if (dram_init_f() != 0)
+               hang();
+
        /* Calculate destination RAM Address and relocation offset */
        dest_addr = (void *)gd->ram_size;
        addr_sp = dest_addr;