[U-Boot] [PATCH 1/4] dfu:cmd: get the default command arguments from environment

Przemyslaw Marczak
2014-06-13T08:28:55Z

Dear Stephen,

On 06/12/2014 06:39 PM, Stephen Warren wrote:
> On 06/12/2014 08:25 AM, Przemyslaw Marczak wrote:
>> This change adds support to store the default DFU cmd line
>> arguments in the environment.
>>
>> This is useful for users who usually use the same arguments
>> for dfu command and do the upgrade frequently.
>>
>> DFU command use cases:
>> - dfu <usb ctrl> <if> <dev> [ ] - use command line args
>> - dfu [ ] - take the default command line args from env
>> And for both - optional list the initialized DFU entities.
>>
>> To use the default dfu device configuration user should define:
>> - $dfu_usb_con - e.g. "0"
>> - $dfu_interface - e.g. "mmc"
>> - $dfu_device - e.g. "0"
>
> Instead of adding code to every single command[1] to get cmdline
> parameters from the environment, why not just define commands in the
> environment and have the user run those.
>
> In other words, the same effect can be achieved by the following
> environment settings:
>
> setenv dfu_default dfu \$dfu_usb_con \$dfu_interface \$dfu_device
> (or even)
> setenv dfu_default dfu 0 mmc 0
>
> and have the user run:
>
> run dfu_default

You are right, I can do this in that way. But in my intention I would
like to simplify those specific commands so much as they could be.

In this case, writing:
"run somecmd" - is also frustrating as writing:
"somecmd arg1 arg2 ...argx"
instead of:
"thor" - just upgrade my device for predefined setup

In both cases the command always uses the same arguments - because it is
device specific and actually determined by config - or board design.

So as you can see, thor and dfu commands are specific - always takes
constant parameters. And I think that this is a good reason to make it
so simply as. e.g. android "fastboot" command.

>
> This avoids bloating the U-Boot code when the shell can already do this.
>
> [1] Why limit this to dfu; why not ums, ls, load, part, ... too?
>

This should be threat the same as dfu_alt_info, and it's a rather
simplification for the user, more then bloating the code.

Looking for cmdline args in the environment in those two commands,
could be changed to modification of just one dfu function:
- dfu_init_env_entities() - could take the NULL pointers and then do
the proper job.
- but there is still left the USB controller - should be checked in each
command, rather than checking in each board file.
By the way USB index is not used anywhere...

Thank you,
--
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com