[U-Boot] [PATCH v3 09/15] env: Support multiple environments
York Sun
york.sun at nxp.com
Tue Jan 30 20:16:33 UTC 2018
On 01/30/2018 11:40 AM, York Sun wrote:
> On 01/30/2018 12:19 AM, Simon Goldschmidt wrote:
>> On 23.01.2018 21:16, Maxime Ripard wrote:
>>> Now that we have everything in place to support multiple environment, let's
>>> make sure the current code can use it.
>>>
>>> The priority used between the various environment is the same one that was
>>> used in the code previously.
>>>
>>> At read / init times, the highest priority environment is going to be
>>> detected,
>>
>> Does priority handling really work here? Most env drivers seem to ignore
>> the return value of env_import and may thus return success although
>> importing the environment failed (only reading the data from the device
>> succeeded).
>>
>> This is from reading the code, I haven't had a chance to test this, yet.
>
> It is broken on my LS1043ARDB with simply NOR flash. I am trying to
> determine what went wrong.
>
I found the problem. The variable "env_load_location" is static. It is
probably not write-able during booting from flash. It is expected to be
set during ENVOP_INIT. But if I print this variable, it has
ENVL_UNKNOWN. I can make it work by moving env_load_location to global
data structure.
That being said, this addition of multiple environments really slows
down the booting process for me. I see every time env_get_char() is
called, env_driver_lookup() runs. A simple call of env_get_f() gets
slowed down dramatically. I didn't find out where the most time is spent
yet.
Does anyone else experience this unbearable slowness?
York
More information about the U-Boot
mailing list