env: mtd: fix usability with NAND flashes

1. As this is for MTD-based devices, the Kconfig dependency should be MTD
   instead of only spi-nor flashes
2. Initialize saved_buf to avoid crash on free()
3. Remaining size should be set correctly to write_size

Fixes: 03fb08d4ae (env: Introduce support for MTD)
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
Reviewed-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
Weijie Gao
2025-05-06 15:15:01 +08:00
committed by Tom Rini
parent df5dcf7b7e
commit 7c52bca812
2 changed files with 3 additions and 3 deletions

2
env/Kconfig vendored
View File

@@ -389,7 +389,7 @@ config ENV_IS_IN_SPI_FLASH
config ENV_IS_IN_MTD config ENV_IS_IN_MTD
bool "Environment is in MTD flash" bool "Environment is in MTD flash"
depends on !CHAIN_OF_TRUST && (SPI_FLASH || DM_SPI_FLASH) depends on !CHAIN_OF_TRUST && MTD
default y if ARCH_AIROHA default y if ARCH_AIROHA
help help
Define this if you have a MTD Flash memory device which you Define this if you have a MTD Flash memory device which you

4
env/mtd.c vendored
View File

@@ -32,7 +32,7 @@ static int setup_mtd_device(struct mtd_info **mtd_env)
static int env_mtd_save(void) static int env_mtd_save(void)
{ {
char *saved_buf, *write_buf, *tmp; char *saved_buf = NULL, *write_buf, *tmp;
struct erase_info ei = { }; struct erase_info ei = { };
struct mtd_info *mtd_env; struct mtd_info *mtd_env;
u32 sect_size, sect_num; u32 sect_size, sect_num;
@@ -105,7 +105,7 @@ static int env_mtd_save(void)
} }
offset = CONFIG_ENV_OFFSET; offset = CONFIG_ENV_OFFSET;
remaining = sect_size; remaining = write_size;
tmp = write_buf; tmp = write_buf;
puts("Writing to MTD..."); puts("Writing to MTD...");