[U-Boot] [PATCH v3 5/5] RFC: tegra: Convert to using environment files

Simon Glass sjg at chromium.org
Mon Oct 28 21:50:29 CET 2013


Hi Stephen,

On Mon, Oct 28, 2013 at 2:41 PM, Stephen Warren <swarren at wwwdotorg.org> wrote:
> On 10/28/2013 02:34 PM, Simon Glass wrote:
>> Hi Stephen,
>>
>> On Mon, Oct 28, 2013 at 1:59 PM, Stephen Warren <swarren at wwwdotorg.org> wrote:
>>> On 10/25/2013 11:01 PM, Simon Glass wrote:
>>>> This seems more intuitive that the current #define way of doing things.
>>>> The resulting code is shorter, avoids the quoting and line continuation
>>>> pain, and also improves the clumsy way that stdio variables are created:
>>>>
>>>>  #ifdef CONFIG_VIDEO_TEGRA
>>>>  #define STDOUT_LCD ",lcd"
>>>>  #else
>>>>  #define STDOUT_LCD ""
>>>>  #endif
>>>>
>>>> ...
>>>>  #define TEGRA_DEVICE_SETTINGS \
>>>>       "stdout=serial" STDOUT_LCD "\0" \
>>>>       ...
>>>>
>>>> The MEM_LAYOUT_ENV_SETTINGS variable is left in the header files, since
>>>> it depends on the SOC type and we probably don't want to add .emv files
>>>> for each board at this stage.
>>>
>>> I guess I'm fine with this as long as e.g.
>>> board/compulab/env/trimslice.env can contain:
>>>
>>> #include "../../../board/nvidia/env/common.env"
>>>
>>> ... or perhaps the include path is set up to include board/nvidia/env
>>> already, so it could just contain:
>>>
>>> #include <common-nvidia.env>
>>>
>>>> diff --git a/board/nvidia/env/common.env b/board/nvidia/env/common.env
>>>
>>>> +bootcmd_mmc0=setenv devnum 0; run mmc_boot
>>>> +bootcmd_mmc1=setenv devnum 1; run mmc_booxt
>>>> +boot_targets+= mmc1 mmc0
>>>
>>> I still don't see why = needs no space before/after, but += needs no
>>> space before, but a space after. That simply looks like a typo to me,
>>> and I'd be inclined to fix it were I editing this file. If a sed script
>>> can't handle more flexible white-space, perhaps use Python or perhaps
>>> Perl instead?
>>
>> The old code was similar, in that it had a space after the quote.
>>
>> We need the string to contain "mmc0 mmc1 usb0 dhcp" or perhaps "mmc0
>> mmc1". I chose to add a space at the start of each string, but
>> certainly we need a space somewhere, or we get "mmc0mmc1usb0dhcp".
>
> Oh, I see. I thought the space was part of the += syntax, not the value.
> Perhaps to make that more obvious, you could allow:
>
> # No space added to value
> var+=value
> var+= value
> var +=value
> var += value
>
> var+=value1 value2
> var+= value1 value2
> var +=value1 value2
> var += value1 value2
>
> var+="value1 value2"
> var+= "value1 value2"
> var +="value1 value2"
> var += "value1 value2"
>
> # One space included at start of addition to value
> var+=" value1 value2"
> var+= " value1 value2"
> var +=" value1 value2"
> var += " value1 value2"
>

I was deliberately trying to avoid using quotes, since then it is
really hard when you actually mean 'quote'.

For example at present you can put this in an env script at present,
but how would you do it if quotes are special?

echo "This is a test; or it might not be"

Regards,
Simon


More information about the U-Boot mailing list