@ -68,13 +68,11 @@ int do_ext_load(cmd_tbl_t *cmdtp, int flag, int argc,
char * const argv [ ] )
{
char * filename = NULL ;
char * ep ;
int dev ;
unsigned long part = 1 ;
int dev , part ;
ulong addr = 0 ;
ulong part_length ;
int filelen ;
disk_partition_t info ;
block_dev_desc_t * dev_desc ;
char buf [ 12 ] ;
unsigned long count ;
const char * addr_str ;
@ -110,50 +108,19 @@ int do_ext_load(cmd_tbl_t *cmdtp, int flag, int argc,
return 1 ;
}
dev = ( int ) simple_strtoul ( argv [ 2 ] , & ep , 16 ) ;
ext4_dev_desc = get_dev ( argv [ 1 ] , dev ) ;
if ( ext4_dev_desc = = NULL ) {
printf ( " ** Block device %s %d not supported \n " , argv [ 1 ] , dev ) ;
part = get_device_and_partition ( argv [ 1 ] , argv [ 2 ] , & dev_desc , & info ) ;
if ( part < 0 )
return 1 ;
}
if ( * ep ) {
if ( * ep ! = ' : ' ) {
puts ( " ** Invalid boot device, use `dev[:part]' ** \n " ) ;
goto fail ;
}
part = simple_strtoul ( + + ep , NULL , 16 ) ;
}
dev = dev_desc - > dev ;
printf ( " Loading file \" %s \" from %s device %d%c%c \n " ,
filename , argv [ 1 ] , dev ,
part ? ' : ' : ' ' , part ? part + ' 0 ' : ' ' ) ;
if ( part ! = 0 ) {
if ( get_partition_info ( ext4_dev_desc , part , & info ) ) {
printf ( " ** Bad partition %lu ** \n " , part ) ;
goto fail ;
}
if ( strncmp ( ( char * ) info . type , BOOT_PART_TYPE ,
strlen ( BOOT_PART_TYPE ) ) ! = 0 ) {
printf ( " ** Invalid partition type \" %s \" "
" (expect \" " BOOT_PART_TYPE " \" ) \n " , info . type ) ;
goto fail ;
}
printf ( " Loading file \" %s \" "
" from %s device %d:%lu %s \n " ,
filename , argv [ 1 ] , dev , part , info . name ) ;
} else {
printf ( " Loading file \" %s \" from %s device %d \n " ,
filename , argv [ 1 ] , dev ) ;
}
ext4fs_set_blk_dev ( dev_desc , & info ) ;
part_length = ext4fs_set_blk_dev ( ext4_dev_desc , part ) ;
if ( part_length = = 0 ) {
printf ( " **Bad partition - %s %d:%lu ** \n " , argv [ 1 ] , dev , part ) ;
ext4fs_close ( ) ;
goto fail ;
}
if ( ! ext4fs_mount ( part_length ) ) {
printf ( " ** Bad ext2 partition or disk - %s %d:%lu ** \n " ,
if ( ! ext4fs_mount ( info . size ) ) {
printf ( " ** Bad ext2 partition or disk - %s %d:%d ** \n " ,
argv [ 1 ] , dev , part ) ;
ext4fs_close ( ) ;
goto fail ;
@ -169,7 +136,7 @@ int do_ext_load(cmd_tbl_t *cmdtp, int flag, int argc,
filelen = count ;
if ( ext4fs_read ( ( char * ) addr , filelen ) ! = filelen ) {
printf ( " ** Unable to read \" %s \" from %s %d:%lu ** \n " ,
printf ( " ** Unable to read \" %s \" from %s %d:%d ** \n " ,
filename , argv [ 1 ] , dev , part ) ;
ext4fs_close ( ) ;
goto fail ;
@ -192,41 +159,25 @@ int do_ext_ls(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
const char * filename = " / " ;
int dev ;
unsigned long part = 1 ;
char * ep ;
int part_length ;
if ( argc < 3 )
return cmd_usage ( cmdtp ) ;
dev = ( int ) simple_strtoul ( argv [ 2 ] , & ep , 16 ) ;
int part ;
block_dev_desc_t * dev_desc ;
disk_partition_t info ;
ext4_dev_desc = get_dev ( argv [ 1 ] , dev ) ;
if ( argc < 2 )
return cmd_usage ( cmdtp ) ;
if ( ext4_dev_desc = = NULL ) {
printf ( " \n ** Block device %s %d not supported \n " , argv [ 1 ] , dev ) ;
part = get_device_and_partition ( argv [ 1 ] , argv [ 2 ] , & dev_desc , & info ) ;
if ( part < 0 )
return 1 ;
}
if ( * ep ) {
if ( * ep ! = ' : ' ) {
puts ( " \n ** Invalid boot device, use `dev[:part]' ** \n " ) ;
goto fail ;
}
part = simple_strtoul ( + + ep , NULL , 16 ) ;
}
if ( argc = = 4 )
filename = argv [ 3 ] ;
part_length = ext4fs_set_blk_dev ( ext4_dev_desc , part ) ;
if ( part_length = = 0 ) {
printf ( " ** Bad partition - %s %d:%lu ** \n " , argv [ 1 ] , dev , part ) ;
ext4fs_close ( ) ;
goto fail ;
}
dev = dev_desc - > dev ;
ext4fs_set_blk_dev ( dev_desc , & info ) ;
if ( ! ext4fs_mount ( part_length ) ) {
printf ( " ** Bad ext2 partition or disk - %s %d:%lu ** \n " ,
if ( ! ext4fs_mount ( info . size ) ) {
printf ( " ** Bad ext2 partition or disk - %s %d:%d ** \n " ,
argv [ 1 ] , dev , part ) ;
ext4fs_close ( ) ;
goto fail ;