@ -52,6 +52,20 @@ void arch_lmb_reserve(struct lmb *lmb)
lmb_reserve ( lmb , sp , CONFIG_SYS_SDRAM_BASE + gd - > ram_size - sp ) ;
lmb_reserve ( lmb , sp , CONFIG_SYS_SDRAM_BASE + gd - > ram_size - sp ) ;
}
}
static int boot_setup_linux ( bootm_headers_t * images )
{
int ret ;
ulong rd_len ;
rd_len = images - > rd_end - images - > rd_start ;
ret = boot_ramdisk_high ( & images - > lmb , images - > rd_start ,
rd_len , & images - > initrd_start , & images - > initrd_end ) ;
if ( ret )
return ret ;
return 0 ;
}
static void linux_cmdline_init ( void )
static void linux_cmdline_init ( void )
{
{
linux_argc = 1 ;
linux_argc = 1 ;
@ -224,6 +238,8 @@ static void boot_jump_linux(bootm_headers_t *images)
int do_bootm_linux ( int flag , int argc , char * const argv [ ] ,
int do_bootm_linux ( int flag , int argc , char * const argv [ ] ,
bootm_headers_t * images )
bootm_headers_t * images )
{
{
int ret ;
/* No need for those on MIPS */
/* No need for those on MIPS */
if ( flag & BOOTM_STATE_OS_BD_T )
if ( flag & BOOTM_STATE_OS_BD_T )
return - 1 ;
return - 1 ;
@ -243,6 +259,10 @@ int do_bootm_linux(int flag, int argc, char * const argv[],
return 0 ;
return 0 ;
}
}
ret = boot_setup_linux ( images ) ;
if ( ret )
return ret ;
boot_cmdline_linux ( images ) ;
boot_cmdline_linux ( images ) ;
boot_prep_linux ( images ) ;
boot_prep_linux ( images ) ;
boot_jump_linux ( images ) ;
boot_jump_linux ( images ) ;