eeba55cb | 19-Aug-2017 |
Tom Rini <trini@konsulko.com> |
env: Correct case of no sub-init function
With the change to the environment code to remove the common init stage of pointing to the default environment and setting it as valid, combined with the ch
env: Correct case of no sub-init function
With the change to the environment code to remove the common init stage of pointing to the default environment and setting it as valid, combined with the change to switch gd->env_valid from 0/1/2 to an enum we now must set env_valid to one of the enum values rather than an int. And in this case, not only was setting it to an int wrong, it was now the wrong value. Finally, in the case of ENV_IS_NOWHERE we must still say that our envionrment is invalid after init for things to continue to function.
Fixes: 7938822a6b75 ("env: Drop common init() functions") Tested-by: Marek Vasut <marek.vasut@gmail.com> Reported-by: Marek Vasut <marek.vasut@gmail.com> Reported-by: Andy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: Tom Rini <trini@konsulko.com> --- Changes in v3: - Actually include changes for env/nowhere.c
show more ...
|
c5951991 | 03-Aug-2017 |
Simon Glass <sjg@chromium.org> |
env: Adjust the load() method to return an error
The load() methods have inconsistent behaviour on error. Some of them load an empty default environment. Some load an environment containing an error
env: Adjust the load() method to return an error
The load() methods have inconsistent behaviour on error. Some of them load an empty default environment. Some load an environment containing an error message. Others do nothing.
As a step in the right direction, have the method return an error code. Then the caller could handle this itself in a consistent way.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
21f63944 | 03-Aug-2017 |
Simon Glass <sjg@chromium.org> |
env: Adjust the get_char() method to return an int
In principle this can fail, e.g. if the index is out of range. Adjust the driver signature to allow returning an error code.
Signed-off-by: Simon
env: Adjust the get_char() method to return an int
In principle this can fail, e.g. if the index is out of range. Adjust the driver signature to allow returning an error code.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
show more ...
|
a69d0f60 | 03-Aug-2017 |
Simon Glass <sjg@chromium.org> |
env: Drop env_get_char_spec()
We only have a single implementation of this function now and it is called env_get_char(). Drop the old function and the weak version.
Reviewed-by: Tom Rini <trini@kon
env: Drop env_get_char_spec()
We only have a single implementation of this function now and it is called env_get_char(). Drop the old function and the weak version.
Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
6eeae424 | 03-Aug-2017 |
Simon Glass <sjg@chromium.org> |
env: Drop env_init_new()
Now that env_init() is only defined once we can drop the env_init_new() name and just use env_init().
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <t
env: Drop env_init_new()
Now that env_init() is only defined once we can drop the env_init_new() name and just use env_init().
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
show more ...
|
98b5755f | 03-Aug-2017 |
Simon Glass <sjg@chromium.org> |
env: Drop unused env_ptr variables
This variable is declared as a global in most environment location drivers. But it is not used outside the drivers and most of the declarations are unnecessary.
A
env: Drop unused env_ptr variables
This variable is declared as a global in most environment location drivers. But it is not used outside the drivers and most of the declarations are unnecessary.
Also some drivers call free() on env_ptr which seems wrong since it is not in the heap.
Drop the variable where possible, and all calls to free().
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
show more ...
|
7938822a | 03-Aug-2017 |
Simon Glass <sjg@chromium.org> |
env: Drop common init() functions
Most of the init() implementations just use the default environment. Adjust env_init_new() to do this automatically, and drop the redundant code.
Signed-off-by: Si
env: Drop common init() functions
Most of the init() implementations just use the default environment. Adjust env_init_new() to do this automatically, and drop the redundant code.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
show more ...
|
e5bce247 | 03-Aug-2017 |
Simon Glass <sjg@chromium.org> |
env: Switch over to use environment location drivers
Move over to use a the master implementation of the location drivers, with each method calling out to the appropriate driver.
Signed-off-by: Sim
env: Switch over to use environment location drivers
Move over to use a the master implementation of the location drivers, with each method calling out to the appropriate driver.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
show more ...
|
c9d728dd | 03-Aug-2017 |
Simon Glass <sjg@chromium.org> |
env: Add a new implementation of environment access
We plan to move to a environment access via drivers for each location where the environment can be stored. Add an implementation for this. So far
env: Add a new implementation of environment access
We plan to move to a environment access via drivers for each location where the environment can be stored. Add an implementation for this. So far it is not used, but will be pressed into service in a future patch.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
4415f1d1 | 03-Aug-2017 |
Simon Glass <sjg@chromium.org> |
env: Create a location driver for each location
Set up a location driver for each supported environment location. At present this just points to the global functions and is not used. A later patch w
env: Create a location driver for each location
Set up a location driver for each supported environment location. At present this just points to the global functions and is not used. A later patch will switch this over to use private functions in each driver.
There are several special cases here in various drivers to handle peculiarities of certain boards:
1. Some boards define CONFIG_ENV_IS_IN_FAT and CONFIG_SPL_ENV_SUPPORT but do not actually load the environment in SPL. The env load code was optimised out before but with the driver, it is not. Therefore a special case is added to env/fat.c. The correct fix (depending on board testing might be to disable CONFIG_SPL_ENV_SUPPORT.
2. A similar situations happens with CONFIG_ENV_IS_IN_FLASH. Some boards do not actually load the environment in SPL, so to reduce code size we need to drop that code. A similar fix may be possible with these boards, or it may be possible to adjust the environment CONFIG settings.
Added to the above is that the CONFIG_SPL_ENV_SUPPORT option does not apply when the environment is in flash.
Obviously the above has been discovered through painful and time-consuming trial and error. Hopefully board maintainers can take a look and figure out what is actually needed.
Signed-off-by: Simon Glass <sjg@chromium.org>
show more ...
|
42a8180d | 03-Aug-2017 |
Simon Glass <sjg@chromium.org> |
env: Rename nand env_location to nand_env_location
We want to use this name for all environment drivers. Update the nand driver to use a more specific name.
Signed-off-by: Simon Glass <sjg@chromium
env: Rename nand env_location to nand_env_location
We want to use this name for all environment drivers. Update the nand driver to use a more specific name.
Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
show more ...
|