[PATCH 3/3] env: ubi: add support to create environment volume if it does not exist
Simon Glass
sjg at chromium.org
Sat Apr 18 02:47:28 CEST 2026
Hi Weijie,
On 2026-04-17T02:35:14, Weijie Gao <weijie.gao at mediatek.com> wrote:
> env: ubi: add support to create environment volume if it does not exist
>
> Add an option to allow environment volume being auto created if not
> exist.
>
> Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
>
> env/Kconfig | 6 ++++++
> env/ubi.c | 20 ++++++++++++++++++++
> 2 files changed, 26 insertions(+)
Could you beef up the Kconfig help text for ENV_UBI_VOLUME_CREATE -
e.g. mention when users might want to enable this, such as on first
boot of a fresh device where the UBI partition exists but no volumes
have been created yet.
> diff --git a/env/ubi.c b/env/ubi.c
> @@ -105,6 +105,18 @@ static int env_ubi_save(void)
> +int __weak env_ubi_volume_create(const char *volume)
> +{
> + struct ubi_volume *vol;
> +
> + vol = ubi_find_volume((char *)volume);
Does this function need to be weak?
ubi_find_volume() prints "Volume %s not found!" when the volume does
not exist. Since the whole point of this function is to handle missing
volumes, this message will appear every time auto-creation is used.
Please can you either add a quiet variant of ubi_find_volume(), or
suppress the message here?
> diff --git a/env/ubi.c b/env/ubi.c
> @@ -134,6 +146,11 @@ static int env_ubi_load(void)
> + if (IS_ENABLED(CONFIG_ENV_UBI_VOLUME_CREATE)) {
> + env_ubi_volume_create(CONFIG_ENV_UBI_VOLUME);
> + env_ubi_volume_create(CONFIG_ENV_UBI_VOLUME_REDUND);
> + }
The return value from env_ubi_volume_create() is not checked. If
volume creation fails (e.g. no space left), the subsequent
ubi_volume_read() will also fail, but the error message will not
indicate the underlying problem. Please can you check the return value
and print an appropriate message if creation fails?
Regards,
Simon
More information about the U-Boot
mailing list