@ -65,10 +65,8 @@ static int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
static void fixup_silent_linux ( void ) ;
# endif
static void * get_kernel ( cmd_tbl_t * cmdtp , int flag ,
int argc , char * argv [ ] , int verify ,
bootm_headers_t * images ,
ulong * os_data , ulong * os_len ) ;
static void * get_kernel ( cmd_tbl_t * cmdtp , int flag , int argc , char * argv [ ] ,
bootm_headers_t * images , ulong * os_data , ulong * os_len ) ;
extern int do_reset ( cmd_tbl_t * cmdtp , int flag , int argc , char * argv [ ] ) ;
/*
@ -81,8 +79,7 @@ extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
*/
typedef void boot_os_fn ( cmd_tbl_t * cmdtp , int flag ,
int argc , char * argv [ ] ,
bootm_headers_t * images , /* pointers to os/initrd/fdt */
int verify ) ; /* getenv("verify")[0] != 'n' */
bootm_headers_t * images ) ; /* pointers to os/initrd/fdt */
extern boot_os_fn do_bootm_linux ;
static boot_os_fn do_bootm_netbsd ;
@ -114,7 +111,6 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
ulong iflag ;
const char * type_name ;
uint unc_len = CFG_BOOTM_LEN ;
int verify = getenv_verify ( ) ;
uint8_t comp , type , os ;
void * os_hdr ;
@ -123,9 +119,10 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
ulong load_start , load_end ;
memset ( ( void * ) & images , 0 , sizeof ( images ) ) ;
images . verify = getenv_verify ( ) ;
/* get kernel image header, start address and length */
os_hdr = get_kernel ( cmdtp , flag , argc , argv , verify ,
os_hdr = get_kernel ( cmdtp , flag , argc , argv ,
& images , & os_data , & os_len ) ;
if ( os_len = = 0 )
return 1 ;
@ -246,36 +243,36 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
# ifdef CONFIG_SILENT_CONSOLE
fixup_silent_linux ( ) ;
# endif
do_bootm_linux ( cmdtp , flag , argc , argv , & images , verify ) ;
do_bootm_linux ( cmdtp , flag , argc , argv , & images ) ;
break ;
case IH_OS_NETBSD :
do_bootm_netbsd ( cmdtp , flag , argc , argv , & images , verify ) ;
do_bootm_netbsd ( cmdtp , flag , argc , argv , & images ) ;
break ;
# ifdef CONFIG_LYNXKDI
case IH_OS_LYNXOS :
do_bootm_lynxkdi ( cmdtp , flag , argc , argv , & images , verify ) ;
do_bootm_lynxkdi ( cmdtp , flag , argc , argv , & images ) ;
break ;
# endif
case IH_OS_RTEMS :
do_bootm_rtems ( cmdtp , flag , argc , argv , & images , verify ) ;
do_bootm_rtems ( cmdtp , flag , argc , argv , & images ) ;
break ;
# if defined(CONFIG_CMD_ELF)
case IH_OS_VXWORKS :
do_bootm_vxworks ( cmdtp , flag , argc , argv , & images , verify ) ;
do_bootm_vxworks ( cmdtp , flag , argc , argv , & images ) ;
break ;
case IH_OS_QNX :
do_bootm_qnxelf ( cmdtp , flag , argc , argv , & images , verify ) ;
do_bootm_qnxelf ( cmdtp , flag , argc , argv , & images ) ;
break ;
# endif
# ifdef CONFIG_ARTOS
case IH_OS_ARTOS :
do_bootm_artos ( cmdtp , flag , argc , argv , & images , verify ) ;
do_bootm_artos ( cmdtp , flag , argc , argv , & images ) ;
break ;
# endif
}
@ -300,10 +297,8 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
* pointer to image header if valid image was found , plus kernel start
* address and length , otherwise NULL
*/
static void * get_kernel ( cmd_tbl_t * cmdtp , int flag ,
int argc , char * argv [ ] , int verify ,
bootm_headers_t * images ,
ulong * os_data , ulong * os_len )
static void * get_kernel ( cmd_tbl_t * cmdtp , int flag , int argc , char * argv [ ] ,
bootm_headers_t * images , ulong * os_data , ulong * os_len )
{
image_header_t * hdr ;
ulong img_addr ;
@ -362,7 +357,7 @@ static void *get_kernel (cmd_tbl_t *cmdtp, int flag,
show_boot_progress ( 3 ) ;
image_print_contents ( hdr ) ;
if ( verify ) {
if ( images - > verify ) {
puts ( " Verifying Checksum ... " ) ;
if ( ! image_check_dcrc ( hdr ) ) {
printf ( " Bad Data CRC \n " ) ;
@ -648,7 +643,7 @@ static void fixup_silent_linux ()
static void do_bootm_netbsd ( cmd_tbl_t * cmdtp , int flag ,
int argc , char * argv [ ] ,
bootm_headers_t * images , int verify )
bootm_headers_t * images )
{
void ( * loader ) ( bd_t * , image_header_t * , char * , char * ) ;
image_header_t * os_hdr , * hdr ;
@ -731,7 +726,7 @@ static void do_bootm_netbsd (cmd_tbl_t *cmdtp, int flag,
# ifdef CONFIG_LYNXKDI
static void do_bootm_lynxkdi ( cmd_tbl_t * cmdtp , int flag ,
int argc , char * argv [ ] ,
bootm_headers_t * images , int verify )
bootm_headers_t * images )
{
image_header_t * hdr = images - > legacy_hdr_os ;
@ -748,7 +743,7 @@ static void do_bootm_lynxkdi (cmd_tbl_t *cmdtp, int flag,
static void do_bootm_rtems ( cmd_tbl_t * cmdtp , int flag ,
int argc , char * argv [ ] ,
bootm_headers_t * images , int verify )
bootm_headers_t * images )
{
image_header_t * hdr = images - > legacy_hdr_os ;
void ( * entry_point ) ( bd_t * ) ;
@ -777,7 +772,7 @@ static void do_bootm_rtems (cmd_tbl_t *cmdtp, int flag,
# if defined(CONFIG_CMD_ELF)
static void do_bootm_vxworks ( cmd_tbl_t * cmdtp , int flag ,
int argc , char * argv [ ] ,
bootm_headers_t * images , int verify )
bootm_headers_t * images )
{
char str [ 80 ] ;
image_header_t * hdr = images - > legacy_hdr_os ;
@ -796,7 +791,7 @@ static void do_bootm_vxworks (cmd_tbl_t *cmdtp, int flag,
static void do_bootm_qnxelf ( cmd_tbl_t * cmdtp , int flag ,
int argc , char * argv [ ] ,
bootm_headers_t * images , int verify )
bootm_headers_t * images )
{
char * local_args [ 2 ] ;
char str [ 16 ] ;
@ -819,7 +814,7 @@ static void do_bootm_qnxelf(cmd_tbl_t *cmdtp, int flag,
# if defined(CONFIG_ARTOS) && defined(CONFIG_PPC)
static void do_bootm_artos ( cmd_tbl_t * cmdtp , int flag ,
int argc , char * argv [ ] ,
bootm_headers_t * images , int verify )
bootm_headers_t * images )
{
ulong top ;
char * s , * cmdline ;