mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
env: register erase command
this patch adds basic changes for adding a erase-subcommand to env with this command the environment stored on non-volatile storage written by saveenv can be cleared. Signed-off-by: Frank Wunderlich <frank-w@public-files.de> squashed fixes - start message with "Erasing" - mark erase-function as optional - env: separate eraseenv from saveenv Suggested-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
This commit is contained in:
committed by
Tom Rini
parent
4225f830c5
commit
cd121bdb6d
30
env/env.c
vendored
30
env/env.c
vendored
@@ -24,6 +24,8 @@ void env_fix_drivers(void)
|
||||
entry->load += gd->reloc_off;
|
||||
if (entry->save)
|
||||
entry->save += gd->reloc_off;
|
||||
if (entry->erase)
|
||||
entry->erase += gd->reloc_off;
|
||||
if (entry->init)
|
||||
entry->init += gd->reloc_off;
|
||||
}
|
||||
@@ -254,6 +256,34 @@ int env_save(void)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
int env_erase(void)
|
||||
{
|
||||
struct env_driver *drv;
|
||||
|
||||
drv = env_driver_lookup(ENVOP_ERASE, gd->env_load_prio);
|
||||
if (drv) {
|
||||
int ret;
|
||||
|
||||
if (!drv->erase)
|
||||
return -ENODEV;
|
||||
|
||||
if (!env_has_inited(drv->location))
|
||||
return -ENODEV;
|
||||
|
||||
printf("Erasing Environment on %s... ", drv->name);
|
||||
ret = drv->erase();
|
||||
if (ret)
|
||||
printf("Failed (%d)\n", ret);
|
||||
else
|
||||
printf("OK\n");
|
||||
|
||||
if (!ret)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
int env_init(void)
|
||||
{
|
||||
struct env_driver *drv;
|
||||
|
Reference in New Issue
Block a user