diff --git a/common/cmd_ext2.c b/common/cmd_ext2.c index 06d0234..7f22598 100644 --- a/common/cmd_ext2.c +++ b/common/cmd_ext2.c @@ -49,7 +49,7 @@ int do_ext2ls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) */ int do_ext2load (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { - return do_fsload(cmdtp, flag, argc, argv, FS_TYPE_EXT); + return do_fsload(cmdtp, flag, argc, argv, FS_TYPE_EXT, 16); } U_BOOT_CMD( @@ -64,5 +64,6 @@ U_BOOT_CMD( "load binary file from a Ext2 filesystem", " [addr] [filename] [bytes]\n" " - load binary file 'filename' from 'dev' on 'interface'\n" - " to address 'addr' from ext2 filesystem" + " to address 'addr' from ext2 filesystem.\n" + " All numeric parameters are assumed to be hex." ); diff --git a/common/cmd_ext4.c b/common/cmd_ext4.c index b4a154f..b50bd0a 100644 --- a/common/cmd_ext4.c +++ b/common/cmd_ext4.c @@ -59,7 +59,7 @@ int do_ext4_load(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { - return do_fsload(cmdtp, flag, argc, argv, FS_TYPE_EXT); + return do_fsload(cmdtp, flag, argc, argv, FS_TYPE_EXT, 16); } int do_ext4_ls(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) @@ -136,4 +136,5 @@ U_BOOT_CMD(ext4load, 6, 0, do_ext4_load, "load binary file from a Ext4 filesystem", " [addr] [filename] [bytes]\n" " - load binary file 'filename' from 'dev' on 'interface'\n" - " to address 'addr' from ext4 filesystem"); + " to address 'addr' from ext4 filesystem.\n" + " All numeric parameters are assumed to be hex."); diff --git a/common/cmd_fat.c b/common/cmd_fat.c index c865d6d..8280483 100644 --- a/common/cmd_fat.c +++ b/common/cmd_fat.c @@ -35,7 +35,7 @@ int do_fat_fsload (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { - return do_fsload(cmdtp, flag, argc, argv, FS_TYPE_FAT); + return do_fsload(cmdtp, flag, argc, argv, FS_TYPE_FAT, 16); } @@ -48,7 +48,8 @@ U_BOOT_CMD( " 'pos' gives the file position to start loading from.\n" " If 'pos' is omitted, 0 is used. 'pos' requires 'bytes'.\n" " 'bytes' gives the size to load. If 'bytes' is 0 or omitted,\n" - " the load stops on end of file." + " the load stops on end of file.\n" + " All numeric parameters are assumed to be hex." ); int do_fat_ls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) diff --git a/common/cmd_fs.c b/common/cmd_fs.c index 296124b..46fcef7 100644 --- a/common/cmd_fs.c +++ b/common/cmd_fs.c @@ -22,7 +22,7 @@ int do_fsload_wrapper(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { - return do_fsload(cmdtp, flag, argc, argv, FS_TYPE_ANY); + return do_fsload(cmdtp, flag, argc, argv, FS_TYPE_ANY, 0); } U_BOOT_CMD( @@ -34,7 +34,9 @@ U_BOOT_CMD( " 'bytes' gives the size to load in bytes.\n" " If 'bytes' is 0 or omitted, the file is read until the end.\n" " 'pos' gives the file byte position to start reading from.\n" - " If 'pos' is 0 or omitted, the file is read from the start." + " If 'pos' is 0 or omitted, the file is read from the start.\n" + " All numeric parameters are assumed to be decimal,\n" + " unless specified otherwise using a leading \"0x\"." ); int do_ls_wrapper(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) diff --git a/fs/fs.c b/fs/fs.c index f570312..1553af5 100644 --- a/fs/fs.c +++ b/fs/fs.c @@ -248,7 +248,7 @@ int fs_read(const char *filename, ulong addr, int offset, int len) } int do_fsload(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], - int fstype) + int fstype, int cmdline_base) { unsigned long addr; const char *addr_str; @@ -267,7 +267,7 @@ int do_fsload(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], return 1; if (argc >= 4) { - addr = simple_strtoul(argv[3], NULL, 0); + addr = simple_strtoul(argv[3], NULL, cmdline_base); } else { addr_str = getenv("loadaddr"); if (addr_str != NULL) @@ -285,11 +285,11 @@ int do_fsload(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], } } if (argc >= 6) - bytes = simple_strtoul(argv[5], NULL, 0); + bytes = simple_strtoul(argv[5], NULL, cmdline_base); else bytes = 0; if (argc >= 7) - pos = simple_strtoul(argv[6], NULL, 0); + pos = simple_strtoul(argv[6], NULL, cmdline_base); else pos = 0; diff --git a/include/fs.h b/include/fs.h index f396d84..c3ac7cc 100644 --- a/include/fs.h +++ b/include/fs.h @@ -58,7 +58,7 @@ int fs_read(const char *filename, ulong addr, int offset, int len); * to a specific filesystem type via the fstype parameter. */ int do_fsload(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], - int fstype); + int fstype, int cmdline_base); int do_ls(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], int fstype);