
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 10/30/12 14:18, Stephen Warren wrote:
On 10/30/2012 02:23 PM, Benoît Thébaudeau wrote:
Hi Stephen,
On Monday, October 22, 2012 6:43:51 PM, Stephen Warren wrote:
From: Stephen Warren swarren@nvidia.com
Implement "ls" and "fsload" commands that act like {fat,ext2}{ls,load}, and transparently handle either file-system. This scheme could easily be extended to other filesystem types; I only didn't do it for zfs because I don't have any filesystems of that type to test with.
Replace the implementation of {fat,ext[24]}{ls,load} with this new code too.
diff --git a/fs/fs.c b/fs/fs.c
+int do_fsload(cmd_tbl_t *cmdtp, int flag, int argc, char * const
return 1; + + if (argc >= 4) { + addr =
simple_strtoul(argv[3], NULL, 0);
0 is just natural here. However, this raises the issue of the users of the legacy fat and ext commands, which used 16 here. So should we use 0 because it is cleaner, or 16 in order not to break compatibility for existing users?
Oh yes, that is a problem.
I feel I should be donning a brown paper bag here as well.
I think we should use 0 here for the new commands at least; it has always annoyed me that U-Boot assumes that clearly non-hex values (since there is no 0x) are actually hex. I often have to manually convert values because of this (e.g. host-based ls decimal output to U-Boot command input expecting hex without leading 0x.)
I feel your pain (and have gotten in the habit of doing lots of printf + shell math) but don't like changing expectations on the users, even if they are seemingly odd (since they've gotten used to them too).
However, we do need to fix this for the existing legacy commands. I suggest we either:
a) Add a new parameter to do_fsload() indicating which base to use.
or:
b) Assume base 0 if fstype==FS_TYPE_ANY, otherwise use 16.
(a) is probably cleaner.
For the environment variables, I suppose we need to continue to explicitly request base 16 conversion, since those variables could be used with either the old or the new commands.
I agree with (a) along with adding to the help which parts are read in as decimal at the cli.
- -- Tom