The only difference between the "openwrt,okli" and the generic parser is the magic. Set this in device tree for all affected devices and remove the "openwrt,okli" parser.
Signed-off-by: Bjørn Mork <bj...@mork.no> --- .../ath79/dts/ar7240_engenius_enh202-v1.dts | 3 +- .../dts/ar9341_engenius_ens202ext-v1.dts | 3 +- .../linux/ath79/dts/ar9341_pisen_wmb001n.dts | 3 +- .../drivers/mtd/mtdsplit/mtdsplit_uimage.c | 53 ------------------- .../ramips/dts/mt7620n_sunvalley_filehub.dtsi | 3 +- 5 files changed, 8 insertions(+), 57 deletions(-) diff --git a/target/linux/ath79/dts/ar7240_engenius_enh202-v1.dts b/target/linux/ath79/dts/ar7240_engenius_enh202-v1.dts index 4752ad1edd5b..d42f75d31dcc 100644 --- a/target/linux/ath79/dts/ar7240_engenius_enh202-v1.dts +++ b/target/linux/ath79/dts/ar7240_engenius_enh202-v1.dts @@ -80,7 +80,8 @@ #size-cells = <1>; partition@0 { - compatible = "openwrt,okli"; + compatible = "openwrt,uimage", "denx,uimage"; + openwrt,ih-magic = <0x4f4b4c49>; label = "firmware"; reg = <0x0 0x0>; }; diff --git a/target/linux/ath79/dts/ar9341_engenius_ens202ext-v1.dts b/target/linux/ath79/dts/ar9341_engenius_ens202ext-v1.dts index da1e59d4c321..e936109351df 100644 --- a/target/linux/ath79/dts/ar9341_engenius_ens202ext-v1.dts +++ b/target/linux/ath79/dts/ar9341_engenius_ens202ext-v1.dts @@ -70,7 +70,8 @@ #size-cells = <1>; partition@0 { - compatible = "openwrt,okli"; + compatible = "openwrt,uimage", "denx,uimage"; + openwrt,ih-magic = <0x4f4b4c49>; label = "firmware"; reg = <0x0 0x0>; }; diff --git a/target/linux/ath79/dts/ar9341_pisen_wmb001n.dts b/target/linux/ath79/dts/ar9341_pisen_wmb001n.dts index 7057c3b1adf2..42f2fc22ae00 100644 --- a/target/linux/ath79/dts/ar9341_pisen_wmb001n.dts +++ b/target/linux/ath79/dts/ar9341_pisen_wmb001n.dts @@ -106,7 +106,8 @@ partition@0 { reg = <0x0 0x0>; label = "firmware"; - compatible = "openwrt,okli"; + compatible = "openwrt,uimage", "denx,uimage"; + openwrt,ih-magic = <0x4f4b4c49>; }; }; }; 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 58c40e9ec70b..32c027d3e979 100644 --- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c +++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c @@ -429,58 +429,6 @@ static struct mtd_part_parser uimage_edimax_parser = { .type = MTD_PARSER_TYPE_FIRMWARE, }; -/************************************************** - * OKLI (OpenWrt Kernel Loader Image) - **************************************************/ - -#define IH_MAGIC_OKLI 0x4f4b4c49 - -static ssize_t uimage_verify_okli(u_char *buf, size_t len, u32 ih_magic) -{ - struct uimage_header *header = (struct uimage_header *)buf; - - /* default sanity checks */ - if (be32_to_cpu(header->ih_magic) != IH_MAGIC_OKLI) { - pr_debug("invalid uImage magic: %08x\n", - be32_to_cpu(header->ih_magic)); - return -EINVAL; - } - - if (header->ih_os != IH_OS_LINUX) { - pr_debug("invalid uImage OS: %08x\n", - be32_to_cpu(header->ih_os)); - return -EINVAL; - } - - if (header->ih_type != IH_TYPE_KERNEL) { - pr_debug("invalid uImage type: %08x\n", - be32_to_cpu(header->ih_type)); - return -EINVAL; - } - - return 0; -} - -static int -mtdsplit_uimage_parse_okli(struct mtd_info *master, - const struct mtd_partition **pparts, - struct mtd_part_parser_data *data) -{ - return __mtdsplit_parse_uimage(master, pparts, data, - uimage_verify_okli); -} - -static const struct of_device_id mtdsplit_uimage_okli_of_match_table[] = { - { .compatible = "openwrt,okli" }, - {}, -}; - -static struct mtd_part_parser uimage_okli_parser = { - .owner = THIS_MODULE, - .name = "okli-fw", - .of_match_table = mtdsplit_uimage_okli_of_match_table, - .parse_fn = mtdsplit_uimage_parse_okli, -}; /************************************************** * Init @@ -492,7 +440,6 @@ static int __init mtdsplit_uimage_init(void) register_mtd_parser(&uimage_netgear_parser); register_mtd_parser(&uimage_allnet_parser); register_mtd_parser(&uimage_edimax_parser); - register_mtd_parser(&uimage_okli_parser); return 0; } diff --git a/target/linux/ramips/dts/mt7620n_sunvalley_filehub.dtsi b/target/linux/ramips/dts/mt7620n_sunvalley_filehub.dtsi index d94379a41f2f..cc06dfab877e 100644 --- a/target/linux/ramips/dts/mt7620n_sunvalley_filehub.dtsi +++ b/target/linux/ramips/dts/mt7620n_sunvalley_filehub.dtsi @@ -31,7 +31,8 @@ #size-cells = <1>; partition@0 { - compatible = "openwrt,okli"; + compatible = "openwrt,uimage", "denx,uimage"; + openwrt,ih-magic = <0x4f4b4c49>; label = "firmware"; reg = <0x0 0x0>; }; -- 2.20.1 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel