aboutsummaryrefslogtreecommitdiff
path: root/env/env.c
diff options
context:
space:
mode:
Diffstat (limited to 'env/env.c')
-rw-r--r--env/env.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/env/env.c b/env/env.c
index d327f9c..12cd475 100644
--- a/env/env.c
+++ b/env/env.c
@@ -128,14 +128,18 @@ int env_save(void)
int env_init_new(void)
{
struct env_driver *drv = env_driver_lookup_default();
- int ret;
+ int ret = -ENOENT;
if (!drv)
return -ENODEV;
- if (!drv->init)
- return -ENOSYS;
- ret = drv->init();
- if (ret) {
+ if (drv->init)
+ ret = drv->init();
+ if (ret == -ENOENT) {
+ gd->env_addr = (ulong)&default_environment[0];
+ gd->env_valid = 0;
+
+ return 0;
+ } else if (ret) {
debug("%s: Environment failed to init (err=%d)\n", __func__,
ret);
return ret;