diff options
author | Bjørn Mork <bjorn@mork.no> | 2021-01-20 18:36:51 +0100 |
---|---|---|
committer | Petr Štetiar <ynezz@true.cz> | 2021-01-22 21:03:11 +0100 |
commit | ff7709d223e15cfc496abf09acae12826d9216e6 (patch) | |
tree | f154e1438e4762a86360261acb42a788365b1ded /target/linux/generic/files/drivers | |
parent | de64d4b9586c86018097fc33ce3210128da11287 (diff) | |
download | upstream-ff7709d223e15cfc496abf09acae12826d9216e6.tar.gz upstream-ff7709d223e15cfc496abf09acae12826d9216e6.tar.bz2 upstream-ff7709d223e15cfc496abf09acae12826d9216e6.zip |
kernel: mtdsplit_uimage: replace "netgear, uimage" parser
The "netgear,uimage" parser can be replaced by the generic
parser using device specific openwrt,ih-magic and
openwrt,ih-type properties.
Device tree properties for the following devices have not
been set, as they have been dropped from OpenWrt with the
removal of the ar71xx target:
FW_MAGIC_WNR2000V1 0x32303031
FW_MAGIC_WNR2000V4 0x32303034
FW_MAGIC_WNR1000V2_VC 0x31303030
FW_MAGIC_WPN824N 0x31313030
Tested-by: Sander Vanheule <sander@svanheule.net> # WNDR3700v2
Tested-by: Stijn Segers <foss@volatilesystems.org> # WNDR3700v1
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Diffstat (limited to 'target/linux/generic/files/drivers')
-rw-r--r-- | target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c index ef2d857abb..c29eb6234b 100644 --- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c +++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c @@ -271,72 +271,6 @@ static struct mtd_part_parser uimage_generic_parser = { .type = MTD_PARSER_TYPE_FIRMWARE, }; -#define FW_MAGIC_GS110TPPV1 0x4e474520 -#define FW_MAGIC_WNR2000V1 0x32303031 -#define FW_MAGIC_WNR2000V3 0x32303033 -#define FW_MAGIC_WNR2000V4 0x32303034 -#define FW_MAGIC_WNR2200 0x32323030 -#define FW_MAGIC_WNR612V2 0x32303631 -#define FW_MAGIC_WNR1000V2 0x31303031 -#define FW_MAGIC_WNR1000V2_VC 0x31303030 -#define FW_MAGIC_WNDR3700 0x33373030 -#define FW_MAGIC_WNDR3700V2 0x33373031 -#define FW_MAGIC_WPN824N 0x31313030 - -static ssize_t uimage_verify_wndr3700(u_char *buf, size_t len, u32 ih_magic, u32 ih_type) -{ - struct uimage_header *header = (struct uimage_header *)buf; - uint8_t expected_type = IH_TYPE_FILESYSTEM; - - switch (be32_to_cpu(header->ih_magic)) { - case FW_MAGIC_GS110TPPV1: - case FW_MAGIC_WNR2000V4: - expected_type = IH_TYPE_KERNEL; - break; - case FW_MAGIC_WNR612V2: - case FW_MAGIC_WNR1000V2: - case FW_MAGIC_WNR1000V2_VC: - case FW_MAGIC_WNR2000V1: - case FW_MAGIC_WNR2000V3: - case FW_MAGIC_WNR2200: - case FW_MAGIC_WNDR3700: - case FW_MAGIC_WNDR3700V2: - case FW_MAGIC_WPN824N: - break; - default: - return -EINVAL; - } - - if (header->ih_os != IH_OS_LINUX || - header->ih_type != expected_type) - return -EINVAL; - - return 0; -} - -static int -mtdsplit_uimage_parse_netgear(struct mtd_info *master, - const struct mtd_partition **pparts, - struct mtd_part_parser_data *data) -{ - return __mtdsplit_parse_uimage(master, pparts, data, - uimage_verify_wndr3700); -} - -static const struct of_device_id mtdsplit_uimage_netgear_of_match_table[] = { - { .compatible = "netgear,uimage" }, - {}, -}; - -static struct mtd_part_parser uimage_netgear_parser = { - .owner = THIS_MODULE, - .name = "netgear-fw", - .of_match_table = mtdsplit_uimage_netgear_of_match_table, - .parse_fn = mtdsplit_uimage_parse_netgear, - .type = MTD_PARSER_TYPE_FIRMWARE, - -}; - /************************************************** * Edimax **************************************************/ @@ -393,7 +327,6 @@ static struct mtd_part_parser uimage_edimax_parser = { static int __init mtdsplit_uimage_init(void) { register_mtd_parser(&uimage_generic_parser); - register_mtd_parser(&uimage_netgear_parser); register_mtd_parser(&uimage_edimax_parser); return 0; |