@ -70,6 +70,7 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
char * s ;
char * s ;
int machid = bd - > bi_arch_number ;
int machid = bd - > bi_arch_number ;
void ( * theKernel ) ( int zero , int arch , uint params ) ;
void ( * theKernel ) ( int zero , int arch , uint params ) ;
int ret ;
# ifdef CONFIG_CMDLINE_TAG
# ifdef CONFIG_CMDLINE_TAG
char * commandline = getenv ( " bootargs " ) ;
char * commandline = getenv ( " bootargs " ) ;
@ -80,12 +81,16 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
ep = image_get_ep ( images - > legacy_hdr_os ) ;
ep = image_get_ep ( images - > legacy_hdr_os ) ;
# if defined(CONFIG_FIT)
# if defined(CONFIG_FIT)
} else if ( images - > fit_uname_os ) {
} else if ( images - > fit_uname_os ) {
fit_unsupported_reset ( " ARM linux bootm " ) ;
ret = fit_image_get_entry ( images - > fit_hdr_os ,
do_reset ( cmdtp , flag , argc , argv ) ;
images - > fit_noffset_os , & ep ) ;
if ( ret ) {
puts ( " Can't get entry point property! \n " ) ;
goto error ;
}
# endif
# endif
} else {
} else {
puts ( " Could not find kernel entry point! \n " ) ;
puts ( " Could not find kernel entry point! \n " ) ;
do_reset ( cmdtp , flag , argc , argv ) ;
goto error ;
}
}
theKernel = ( void ( * ) ( int , int , uint ) ) ep ;
theKernel = ( void ( * ) ( int , int , uint ) ) ep ;
@ -98,7 +103,7 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
ret = boot_get_ramdisk ( argc , argv , images , IH_ARCH_ARM ,
ret = boot_get_ramdisk ( argc , argv , images , IH_ARCH_ARM ,
& initrd_start , & initrd_end ) ;
& initrd_start , & initrd_end ) ;
if ( ret )
if ( ret )
do_reset ( cmdtp , flag , argc , argv ) ;
goto error ;
show_boot_progress ( 15 ) ;
show_boot_progress ( 15 ) ;
@ -151,6 +156,13 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
cleanup_before_linux ( ) ;
cleanup_before_linux ( ) ;
theKernel ( 0 , machid , bd - > bi_boot_params ) ;
theKernel ( 0 , machid , bd - > bi_boot_params ) ;
/* does not return */
return ;
error :
if ( images - > autostart )
do_reset ( cmdtp , flag , argc , argv ) ;
return ;
}
}