mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
537b423d9f
Remove patches adding support for MT7621 which have been merged upsteam. Patches for MT7981 and MT7986 have been merged too, but not in time to be included in the 2022.10 release, so we have to keep carrying them until the 2023.01 release. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
73 lines
2.0 KiB
Diff
73 lines
2.0 KiB
Diff
From fc0c70a7c6a088072d0c77e5a59d5e9b7754c6db Mon Sep 17 00:00:00 2001
|
|
From: Weijie Gao <weijie.gao@mediatek.com>
|
|
Date: Mon, 25 Jul 2022 17:01:20 +0800
|
|
Subject: [PATCH 61/71] 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@mediatek.com>
|
|
---
|
|
env/Kconfig | 6 ++++++
|
|
env/ubi.c | 20 ++++++++++++++++++++
|
|
2 files changed, 26 insertions(+)
|
|
|
|
--- a/env/Kconfig
|
|
+++ b/env/Kconfig
|
|
@@ -665,6 +665,12 @@ config ENV_UBI_VOLUME_REDUND
|
|
help
|
|
Name of the redundant volume that you want to store the environment in.
|
|
|
|
+config ENV_UBI_VOLUME_CREATE
|
|
+ bool "Create UBI volume if not exist"
|
|
+ depends on ENV_IS_IN_UBI
|
|
+ help
|
|
+ Create the UBI volume if it does not exist.
|
|
+
|
|
config ENV_UBI_VID_OFFSET
|
|
int "ubi environment VID offset"
|
|
depends on ENV_IS_IN_UBI
|
|
--- a/env/ubi.c
|
|
+++ b/env/ubi.c
|
|
@@ -100,6 +100,18 @@ static int env_ubi_save(void)
|
|
#endif /* CONFIG_SYS_REDUNDAND_ENVIRONMENT */
|
|
#endif /* CONFIG_CMD_SAVEENV */
|
|
|
|
+int __weak env_ubi_volume_create(const char *volume)
|
|
+{
|
|
+ struct ubi_volume *vol;
|
|
+
|
|
+ vol = ubi_find_volume((char *)volume);
|
|
+ if (vol)
|
|
+ return 0;
|
|
+
|
|
+ return ubi_create_vol((char *)volume, CONFIG_ENV_SIZE, true,
|
|
+ UBI_VOL_NUM_AUTO, false);
|
|
+}
|
|
+
|
|
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
|
|
static int env_ubi_load(void)
|
|
{
|
|
@@ -129,6 +141,11 @@ static int env_ubi_load(void)
|
|
return -EIO;
|
|
}
|
|
|
|
+ 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);
|
|
+ }
|
|
+
|
|
read1_fail = ubi_volume_read(CONFIG_ENV_UBI_VOLUME, (void *)tmp_env1,
|
|
CONFIG_ENV_SIZE);
|
|
if (read1_fail)
|
|
@@ -166,6 +183,9 @@ static int env_ubi_load(void)
|
|
return -EIO;
|
|
}
|
|
|
|
+ if (IS_ENABLED(CONFIG_ENV_UBI_VOLUME_CREATE))
|
|
+ env_ubi_volume_create(CONFIG_ENV_UBI_VOLUME);
|
|
+
|
|
if (ubi_volume_read(CONFIG_ENV_UBI_VOLUME, buf, CONFIG_ENV_SIZE)) {
|
|
printf("\n** Unable to read env from %s:%s **\n",
|
|
CONFIG_ENV_UBI_PART, CONFIG_ENV_UBI_VOLUME);
|