From 36834ea3403d05b6beab3a2efc3f00f097e58c81 Mon Sep 17 00:00:00 2001 From: John Thomson Date: Wed, 16 Oct 2024 12:51:22 +1000 Subject: [PATCH] kernel: mtdsplit_minor: accept bootimage filename RouterBOOT v7 on NOR devices no longer accepts the YAFFS kernel ELF method of booting. It will accept an NPK image named bootimage. Adjust mtdsplit_minor to accept this second possible boot file name. Use the conservative value of 127 for YAFFS max name length (used when YAFFS compiled with unicode support) vs 255. Signed-off-by: John Thomson Acked-by: Thibaut VARENE Link: https://github.com/openwrt/openwrt/pull/16780 Signed-off-by: Robert Marko --- .../generic/files/drivers/mtd/mtdsplit/mtdsplit_minor.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_minor.c b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_minor.c index be69de5798..053cba6272 100644 --- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_minor.c +++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_minor.c @@ -34,7 +34,9 @@ #define YAFFS_OBJECT_TYPE_FILE 0x1 #define YAFFS_OBJECTID_ROOT 0x1 #define YAFFS_SUM_UNUSED 0xFFFF -#define YAFFS_NAME "kernel" +#define YAFFS_MAX_NAME_LENGTH 127 +#define YAFFS_NAME_KERNEL "kernel" +#define YAFFS_NAME_BOOTIMAGE "bootimage" #define MINOR_NR_PARTS 2 @@ -46,7 +48,7 @@ struct minor_header { int yaffs_type; int yaffs_obj_id; u16 yaffs_sum_unused; - char yaffs_name[sizeof(YAFFS_NAME)]; + char yaffs_name[YAFFS_MAX_NAME_LENGTH]; }; static int mtdsplit_parse_minor(struct mtd_info *master, @@ -87,7 +89,8 @@ static int mtdsplit_parse_minor(struct mtd_info *master, return 0; } - if (memcmp(hdr.yaffs_name, YAFFS_NAME, sizeof(YAFFS_NAME))) { + if ((memcmp(hdr.yaffs_name, YAFFS_NAME_KERNEL, sizeof(YAFFS_NAME_KERNEL))) && + (memcmp(hdr.yaffs_name, YAFFS_NAME_BOOTIMAGE, sizeof(YAFFS_NAME_BOOTIMAGE)))) { pr_info("MiNOR YAFFS first name not matched\n"); return 0; } -- 2.30.2