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

Przemyslaw Marczak p.marczak at samsung.com
Fri Jun 13 10:28:55 CEST 2014


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> [<list>] - use command line args
>> - dfu [<list>] - 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


More information about the U-Boot mailing list