@ -579,6 +579,7 @@ static int label_localboot(struct pxe_label *label)
static int label_boot ( struct pxe_label * label )
static int label_boot ( struct pxe_label * label )
{
{
char * bootm_argv [ ] = { " bootm " , NULL , NULL , NULL , NULL } ;
char * bootm_argv [ ] = { " bootm " , NULL , NULL , NULL , NULL } ;
char initrd_str [ 22 ] ;
int bootm_argc = 3 ;
int bootm_argc = 3 ;
label_print ( label ) ;
label_print ( label ) ;
@ -604,7 +605,10 @@ static int label_boot(struct pxe_label *label)
return 1 ;
return 1 ;
}
}
bootm_argv [ 2 ] = getenv ( " ramdisk_addr_r " ) ;
bootm_argv [ 2 ] = initrd_str ;
strcpy ( bootm_argv [ 2 ] , getenv ( " ramdisk_addr_r " ) ) ;
strcat ( bootm_argv [ 2 ] , " : " ) ;
strcat ( bootm_argv [ 2 ] , getenv ( " filesize " ) ) ;
} else {
} else {
bootm_argv [ 2 ] = " - " ;
bootm_argv [ 2 ] = " - " ;
}
}
@ -649,6 +653,11 @@ static int label_boot(struct pxe_label *label)
bootm_argc = 4 ;
bootm_argc = 4 ;
do_bootm ( NULL , 0 , bootm_argc , bootm_argv ) ;
do_bootm ( NULL , 0 , bootm_argc , bootm_argv ) ;
# ifdef CONFIG_CMD_BOOTZ
/* Try booting a zImage if do_bootm returns */
do_bootz ( NULL , 0 , bootm_argc , bootm_argv ) ;
# endif
return 1 ;
return 1 ;
}
}