[OpenWrt-Devel] [PATCH 1/3] ar71xx: rename and extend wrt160nl's trx partition parser
John Crispin
blogic at openwrt.org
Thu Mar 5 15:13:37 EST 2015
Hi
the patches should be self contained and buildable. if i understand 2/3
correct it is needed for the fixes in 1/3 to build.
also in 1/3 you rename and change a file in 1 go, which is not that
good. could you resend the series with the following layout
1/3 - only do the renaming
2/3 - add your changes and fix the patches to build
3/3 - ca stay as it is.
thanks,
John
On 05/03/2015 17:08, Christian Lamparter wrote:
> This patch re-purposes the functionality of the custom
> partition parser from Linksys' WRT160NL router. This way,
> WD's My Net Wi-fi Range Extender can make use of the same
> Cybertan partition layout.
>
> Signed-off-by: Christian Lamparter <chunkeey at googlemail.com>
> ---
> target/linux/ar71xx/config-3.14 | 2 +-
> target/linux/ar71xx/config-3.18 | 2 +-
> .../ar71xx/files/arch/mips/ath79/mach-wrt160nl.c | 2 +-
> .../linux/ar71xx/files/drivers/mtd/cybertan_part.c | 201 ++++++++++++++++++++
> .../linux/ar71xx/files/drivers/mtd/wrt160nl_part.c | 207 ---------------------
> .../patches-3.14/404-mtd-cybertan-trx-parser.patch | 26 +++
> .../patches-3.14/404-mtd-wrt160nl-trx-parser.patch | 25 ---
> .../patches-3.18/404-mtd-cybertan-trx-parser.patch | 26 +++
> .../patches-3.18/404-mtd-wrt160nl-trx-parser.patch | 25 ---
> 9 files changed, 256 insertions(+), 260 deletions(-)
> create mode 100644 target/linux/ar71xx/files/drivers/mtd/cybertan_part.c
> delete mode 100644 target/linux/ar71xx/files/drivers/mtd/wrt160nl_part.c
> create mode 100644 target/linux/ar71xx/patches-3.14/404-mtd-cybertan-trx-parser.patch
> delete mode 100644 target/linux/ar71xx/patches-3.14/404-mtd-wrt160nl-trx-parser.patch
> create mode 100644 target/linux/ar71xx/patches-3.18/404-mtd-cybertan-trx-parser.patch
> delete mode 100644 target/linux/ar71xx/patches-3.18/404-mtd-wrt160nl-trx-parser.patch
>
> diff --git a/target/linux/ar71xx/config-3.14 b/target/linux/ar71xx/config-3.14
> index d6691b4..85a0bda 100644
> --- a/target/linux/ar71xx/config-3.14
> +++ b/target/linux/ar71xx/config-3.14
> @@ -255,7 +255,7 @@ CONFIG_MTD_SPLIT_LZMA_FW=y
> CONFIG_MTD_SPLIT_SEAMA_FW=y
> CONFIG_MTD_SPLIT_UIMAGE_FW=y
> CONFIG_MTD_TPLINK_PARTS=y
> -CONFIG_MTD_WRT160NL_PARTS=y
> +CONFIG_MTD_CYBERTAN_PARTS=y
> CONFIG_MYLOADER=y
> CONFIG_NEED_DMA_MAP_STATE=y
> CONFIG_NEED_PER_CPU_KM=y
> diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18
> index fa287e2..783bc35 100644
> --- a/target/linux/ar71xx/config-3.18
> +++ b/target/linux/ar71xx/config-3.18
> @@ -256,7 +256,7 @@ CONFIG_MTD_SPLIT_LZMA_FW=y
> CONFIG_MTD_SPLIT_SEAMA_FW=y
> CONFIG_MTD_SPLIT_UIMAGE_FW=y
> CONFIG_MTD_TPLINK_PARTS=y
> -CONFIG_MTD_WRT160NL_PARTS=y
> +CONFIG_MTD_CYBERTAN_PARTS=y
> CONFIG_MYLOADER=y
> CONFIG_NEED_DMA_MAP_STATE=y
> CONFIG_NEED_PER_CPU_KM=y
> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-wrt160nl.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-wrt160nl.c
> index 21aefe0..ede3c21 100644
> --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-wrt160nl.c
> +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-wrt160nl.c
> @@ -34,7 +34,7 @@
> #define WRT160NL_NVRAM_SIZE 0x10000
>
> static const char *wrt160nl_part_probes[] = {
> - "wrt160nl",
> + "cybertan",
> NULL,
> };
>
> diff --git a/target/linux/ar71xx/files/drivers/mtd/cybertan_part.c b/target/linux/ar71xx/files/drivers/mtd/cybertan_part.c
> new file mode 100644
> index 0000000..be9004d
> --- /dev/null
> +++ b/target/linux/ar71xx/files/drivers/mtd/cybertan_part.c
> @@ -0,0 +1,201 @@
> +/*
> + * Copyright (C) 2009 Christian Daniel <cd at maintech.de>
> + * Copyright (C) 2009 Gabor Juhos <juhosg at openwrt.org>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License as published by
> + * the Free Software Foundation; either version 2 of the License, or
> + * (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> + *
> + * TRX flash partition table.
> + * Based on ar7 map by Felix Fietkau <nbd at openwrt.org>
> + *
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/slab.h>
> +#include <linux/vmalloc.h>
> +
> +#include <linux/mtd/mtd.h>
> +#include <linux/mtd/partitions.h>
> +
> +struct cybertan_header {
> + char magic[4];
> + u8 res1[4];
> + char fw_date[3];
> + char fw_ver[3];
> + char id[4];
> + char hw_ver;
> + char unused;
> + u8 flags[2];
> + u8 res2[10];
> +};
> +
> +#define TRX_PARTS 6
> +#define TRX_MAGIC 0x30524448
> +#define TRX_MAX_OFFSET 3
> +
> +struct trx_header {
> + uint32_t magic; /* "HDR0" */
> + uint32_t len; /* Length of file including header */
> + uint32_t crc32; /* 32-bit CRC from flag_version to end of file */
> + uint32_t flag_version; /* 0:15 flags, 16:31 version */
> + uint32_t offsets[TRX_MAX_OFFSET]; /* Offsets of partitions from start of header */
> +};
> +
> +#define IH_MAGIC 0x27051956 /* Image Magic Number */
> +#define IH_NMLEN 32 /* Image Name Length */
> +
> +struct uimage_header {
> + uint32_t ih_magic; /* Image Header Magic Number */
> + uint32_t ih_hcrc; /* Image Header CRC Checksum */
> + uint32_t ih_time; /* Image Creation Timestamp */
> + uint32_t ih_size; /* Image Data Size */
> + uint32_t ih_load; /* Data» Load Address */
> + uint32_t ih_ep; /* Entry Point Address */
> + uint32_t ih_dcrc; /* Image Data CRC Checksum */
> + uint8_t ih_os; /* Operating System */
> + uint8_t ih_arch; /* CPU architecture */
> + uint8_t ih_type; /* Image Type */
> + uint8_t ih_comp; /* Compression Type */
> + uint8_t ih_name[IH_NMLEN]; /* Image Name */
> +};
> +
> +struct firmware_header {
> + struct cybertan_header cybertan;
> + struct trx_header trx;
> + struct uimage_header uimage;
> +} __packed;
> +
> +#define UBOOT_LEN 0x40000
> +#define ART_LEN 0x10000
> +#define NVRAM_LEN 0x10000
> +
> +static int cybertan_parse_partitions(struct mtd_info *master,
> + struct mtd_partition **pparts,
> + struct mtd_part_parser_data *data)
> +{
> + struct firmware_header *header;
> + struct trx_header *theader;
> + struct uimage_header *uheader;
> + struct mtd_partition *trx_parts;
> + size_t retlen;
> + unsigned int kernel_len;
> + unsigned int uboot_len;
> + unsigned int nvram_len;
> + unsigned int art_len;
> + int ret;
> +
> + uboot_len = max_t(unsigned int, master->erasesize, UBOOT_LEN);
> + nvram_len = max_t(unsigned int, master->erasesize, NVRAM_LEN);
> + art_len = max_t(unsigned int, master->erasesize, ART_LEN);
> +
> + trx_parts = kzalloc(TRX_PARTS * sizeof(struct mtd_partition),
> + GFP_KERNEL);
> + if (!trx_parts) {
> + ret = -ENOMEM;
> + goto out;
> + }
> +
> + header = vmalloc(sizeof(*header));
> + if (!header) {
> + return -ENOMEM;
> + goto free_parts;
> + }
> +
> + ret = mtd_read(master, uboot_len, sizeof(*header),
> + &retlen, (void *) header);
> + if (ret)
> + goto free_hdr;
> +
> + if (retlen != sizeof(*header)) {
> + ret = -EIO;
> + goto free_hdr;
> + }
> +
> + theader = &header->trx;
> + if (le32_to_cpu(theader->magic) != TRX_MAGIC) {
> + printk(KERN_NOTICE "%s: no TRX header found\n", master->name);
> + goto free_hdr;
> + }
> +
> + uheader = &header->uimage;
> + if (uheader->ih_magic != IH_MAGIC) {
> + printk(KERN_NOTICE "%s: no uImage found\n", master->name);
> + goto free_hdr;
> + }
> +
> + kernel_len = le32_to_cpu(theader->offsets[1]) +
> + sizeof(struct cybertan_header);
> +
> + trx_parts[0].name = "u-boot";
> + trx_parts[0].offset = 0;
> + trx_parts[0].size = uboot_len;
> + trx_parts[0].mask_flags = MTD_WRITEABLE;
> +
> + trx_parts[1].name = "kernel";
> + trx_parts[1].offset = trx_parts[0].offset + trx_parts[0].size;
> + trx_parts[1].size = kernel_len;
> + trx_parts[1].mask_flags = 0;
> +
> + trx_parts[2].name = "rootfs";
> + trx_parts[2].offset = trx_parts[1].offset + trx_parts[1].size;
> + trx_parts[2].size = master->size - uboot_len - nvram_len - art_len -
> + trx_parts[1].size;
> + trx_parts[2].mask_flags = 0;
> +
> + trx_parts[3].name = "nvram";
> + trx_parts[3].offset = master->size - nvram_len - art_len;
> + trx_parts[3].size = nvram_len;
> + trx_parts[3].mask_flags = MTD_WRITEABLE;
> +
> + trx_parts[4].name = "art";
> + trx_parts[4].offset = master->size - art_len;
> + trx_parts[4].size = art_len;
> + trx_parts[4].mask_flags = MTD_WRITEABLE;
> +
> + trx_parts[5].name = "firmware";
> + trx_parts[5].offset = uboot_len;
> + trx_parts[5].size = master->size - uboot_len - nvram_len - art_len;
> + trx_parts[5].mask_flags = 0;
> +
> + vfree(header);
> +
> + *pparts = trx_parts;
> + return TRX_PARTS;
> +
> +free_hdr:
> + vfree(header);
> +free_parts:
> + kfree(trx_parts);
> +out:
> + return ret;
> +}
> +
> +static struct mtd_part_parser cybertan_parser = {
> + .owner = THIS_MODULE,
> + .parse_fn = cybertan_parse_partitions,
> + .name = "cybertan",
> +};
> +
> +static int __init cybertan_parser_init(void)
> +{
> + register_mtd_parser(&cybertan_parser);
> +
> + return 0;
> +}
> +
> +module_init(cybertan_parser_init);
> +
> +MODULE_LICENSE("GPL");
> +MODULE_AUTHOR("Christian Daniel <cd at maintech.de>");
> diff --git a/target/linux/ar71xx/files/drivers/mtd/wrt160nl_part.c b/target/linux/ar71xx/files/drivers/mtd/wrt160nl_part.c
> deleted file mode 100644
> index 698bba8..0000000
> --- a/target/linux/ar71xx/files/drivers/mtd/wrt160nl_part.c
> +++ /dev/null
> @@ -1,207 +0,0 @@
> -/*
> - * Copyright (C) 2009 Christian Daniel <cd at maintech.de>
> - * Copyright (C) 2009 Gabor Juhos <juhosg at openwrt.org>
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> - *
> - * TRX flash partition table.
> - * Based on ar7 map by Felix Fietkau <nbd at openwrt.org>
> - *
> - */
> -
> -#include <linux/kernel.h>
> -#include <linux/module.h>
> -#include <linux/slab.h>
> -#include <linux/vmalloc.h>
> -
> -#include <linux/mtd/mtd.h>
> -#include <linux/mtd/partitions.h>
> -
> -struct cybertan_header {
> - char magic[4];
> - u8 res1[4];
> - char fw_date[3];
> - char fw_ver[3];
> - char id[4];
> - char hw_ver;
> - char unused;
> - u8 flags[2];
> - u8 res2[10];
> -};
> -
> -#define TRX_PARTS 6
> -#define TRX_MAGIC 0x30524448
> -#define TRX_MAX_OFFSET 3
> -
> -struct trx_header {
> - uint32_t magic; /* "HDR0" */
> - uint32_t len; /* Length of file including header */
> - uint32_t crc32; /* 32-bit CRC from flag_version to end of file */
> - uint32_t flag_version; /* 0:15 flags, 16:31 version */
> - uint32_t offsets[TRX_MAX_OFFSET]; /* Offsets of partitions from start of header */
> -};
> -
> -#define IH_MAGIC 0x27051956 /* Image Magic Number */
> -#define IH_NMLEN 32 /* Image Name Length */
> -
> -struct uimage_header {
> - uint32_t ih_magic; /* Image Header Magic Number */
> - uint32_t ih_hcrc; /* Image Header CRC Checksum */
> - uint32_t ih_time; /* Image Creation Timestamp */
> - uint32_t ih_size; /* Image Data Size */
> - uint32_t ih_load; /* Data» Load Address */
> - uint32_t ih_ep; /* Entry Point Address */
> - uint32_t ih_dcrc; /* Image Data CRC Checksum */
> - uint8_t ih_os; /* Operating System */
> - uint8_t ih_arch; /* CPU architecture */
> - uint8_t ih_type; /* Image Type */
> - uint8_t ih_comp; /* Compression Type */
> - uint8_t ih_name[IH_NMLEN]; /* Image Name */
> -};
> -
> -struct wrt160nl_header {
> - struct cybertan_header cybertan;
> - struct trx_header trx;
> - struct uimage_header uimage;
> -} __attribute__ ((packed));
> -
> -#define WRT160NL_UBOOT_LEN 0x40000
> -#define WRT160NL_ART_LEN 0x10000
> -#define WRT160NL_NVRAM_LEN 0x10000
> -
> -static int wrt160nl_parse_partitions(struct mtd_info *master,
> - struct mtd_partition **pparts,
> - struct mtd_part_parser_data *data)
> -{
> - struct wrt160nl_header *header;
> - struct trx_header *theader;
> - struct uimage_header *uheader;
> - struct mtd_partition *trx_parts;
> - size_t retlen;
> - unsigned int kernel_len;
> - unsigned int uboot_len;
> - unsigned int nvram_len;
> - unsigned int art_len;
> - int ret;
> -
> - uboot_len = max_t(unsigned int, master->erasesize, WRT160NL_UBOOT_LEN);
> - nvram_len = max_t(unsigned int, master->erasesize, WRT160NL_NVRAM_LEN);
> - art_len = max_t(unsigned int, master->erasesize, WRT160NL_ART_LEN);
> -
> - trx_parts = kzalloc(TRX_PARTS * sizeof(struct mtd_partition),
> - GFP_KERNEL);
> - if (!trx_parts) {
> - ret = -ENOMEM;
> - goto out;
> - }
> -
> - header = vmalloc(sizeof(*header));
> - if (!header) {
> - return -ENOMEM;
> - goto free_parts;
> - }
> -
> - ret = mtd_read(master, uboot_len, sizeof(*header),
> - &retlen, (void *) header);
> - if (ret)
> - goto free_hdr;
> -
> - if (retlen != sizeof(*header)) {
> - ret = -EIO;
> - goto free_hdr;
> - }
> -
> - if (strncmp(header->cybertan.magic, "NL16", 4) != 0) {
> - printk(KERN_NOTICE "%s: no WRT160NL signature found\n",
> - master->name);
> - goto free_hdr;
> - }
> -
> - theader = &header->trx;
> - if (le32_to_cpu(theader->magic) != TRX_MAGIC) {
> - printk(KERN_NOTICE "%s: no TRX header found\n", master->name);
> - goto free_hdr;
> - }
> -
> - uheader = &header->uimage;
> - if (uheader->ih_magic != IH_MAGIC) {
> - printk(KERN_NOTICE "%s: no uImage found\n", master->name);
> - goto free_hdr;
> - }
> -
> - kernel_len = le32_to_cpu(theader->offsets[1]) +
> - sizeof(struct cybertan_header);
> -
> - trx_parts[0].name = "u-boot";
> - trx_parts[0].offset = 0;
> - trx_parts[0].size = uboot_len;
> - trx_parts[0].mask_flags = MTD_WRITEABLE;
> -
> - trx_parts[1].name = "kernel";
> - trx_parts[1].offset = trx_parts[0].offset + trx_parts[0].size;
> - trx_parts[1].size = kernel_len;
> - trx_parts[1].mask_flags = 0;
> -
> - trx_parts[2].name = "rootfs";
> - trx_parts[2].offset = trx_parts[1].offset + trx_parts[1].size;
> - trx_parts[2].size = master->size - uboot_len - nvram_len - art_len -
> - trx_parts[1].size;
> - trx_parts[2].mask_flags = 0;
> -
> - trx_parts[3].name = "nvram";
> - trx_parts[3].offset = master->size - nvram_len - art_len;
> - trx_parts[3].size = nvram_len;
> - trx_parts[3].mask_flags = MTD_WRITEABLE;
> -
> - trx_parts[4].name = "art";
> - trx_parts[4].offset = master->size - art_len;
> - trx_parts[4].size = art_len;
> - trx_parts[4].mask_flags = MTD_WRITEABLE;
> -
> - trx_parts[5].name = "firmware";
> - trx_parts[5].offset = uboot_len;
> - trx_parts[5].size = master->size - uboot_len - nvram_len - art_len;
> - trx_parts[5].mask_flags = 0;
> -
> - vfree(header);
> -
> - *pparts = trx_parts;
> - return TRX_PARTS;
> -
> -free_hdr:
> - vfree(header);
> -free_parts:
> - kfree(trx_parts);
> -out:
> - return ret;
> -}
> -
> -static struct mtd_part_parser wrt160nl_parser = {
> - .owner = THIS_MODULE,
> - .parse_fn = wrt160nl_parse_partitions,
> - .name = "wrt160nl",
> -};
> -
> -static int __init wrt160nl_parser_init(void)
> -{
> - register_mtd_parser(&wrt160nl_parser);
> -
> - return 0;
> -}
> -
> -module_init(wrt160nl_parser_init);
> -
> -MODULE_LICENSE("GPL");
> -MODULE_AUTHOR("Christian Daniel <cd at maintech.de>");
> diff --git a/target/linux/ar71xx/patches-3.14/404-mtd-cybertan-trx-parser.patch b/target/linux/ar71xx/patches-3.14/404-mtd-cybertan-trx-parser.patch
> new file mode 100644
> index 0000000..678e8d5
> --- /dev/null
> +++ b/target/linux/ar71xx/patches-3.14/404-mtd-cybertan-trx-parser.patch
> @@ -0,0 +1,26 @@
> +--- a/drivers/mtd/Kconfig
> ++++ b/drivers/mtd/Kconfig
> +@@ -184,6 +184,13 @@ config MTD_BCM47XX_PARTS
> + This provides partitions parser for devices based on BCM47xx
> + boards.
> +
> ++config MTD_CYBERTAN_PARTS
> ++ tristate "Cybertan partitioning support"
> ++ depends on ATH79
> ++ ---help---
> ++ Cybertan partitioning support
> ++ Used by Linksys WRT160NL and WD My Net Wi-fi Range Extender
> ++
> + config MTD_MYLOADER_PARTS
> + tristate "MyLoader partition parsing"
> + depends on ADM5120 || ATHEROS_AR231X || ATHEROS_AR71XX || ATH79
> +--- a/drivers/mtd/Makefile
> ++++ b/drivers/mtd/Makefile
> +@@ -16,6 +16,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
> + obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
> + obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
> + obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
> ++obj-$(CONFIG_MTD_CYBERTAN_PARTS) += cybertan_part.o
> +
> + # 'Users' - code which presents functionality to userspace.
> + obj-$(CONFIG_MTD_BLKDEVS) += mtd_blkdevs.o
> diff --git a/target/linux/ar71xx/patches-3.14/404-mtd-wrt160nl-trx-parser.patch b/target/linux/ar71xx/patches-3.14/404-mtd-wrt160nl-trx-parser.patch
> deleted file mode 100644
> index e49d72e..0000000
> --- a/target/linux/ar71xx/patches-3.14/404-mtd-wrt160nl-trx-parser.patch
> +++ /dev/null
> @@ -1,25 +0,0 @@
> ---- a/drivers/mtd/Kconfig
> -+++ b/drivers/mtd/Kconfig
> -@@ -184,6 +184,12 @@ config MTD_BCM47XX_PARTS
> - This provides partitions parser for devices based on BCM47xx
> - boards.
> -
> -+config MTD_WRT160NL_PARTS
> -+ tristate "Linksys WRT160NL partitioning support"
> -+ depends on MTD_PARTITIONS && ATH79_MACH_WRT160NL
> -+ ---help---
> -+ Linksys WRT160NL partitioning support
> -+
> - config MTD_MYLOADER_PARTS
> - tristate "MyLoader partition parsing"
> - depends on ADM5120 || ATHEROS_AR231X || ATHEROS_AR71XX || ATH79
> ---- a/drivers/mtd/Makefile
> -+++ b/drivers/mtd/Makefile
> -@@ -16,6 +16,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
> - obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
> - obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
> - obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
> -+obj-$(CONFIG_MTD_WRT160NL_PARTS) += wrt160nl_part.o
> -
> - # 'Users' - code which presents functionality to userspace.
> - obj-$(CONFIG_MTD_BLKDEVS) += mtd_blkdevs.o
> diff --git a/target/linux/ar71xx/patches-3.18/404-mtd-cybertan-trx-parser.patch b/target/linux/ar71xx/patches-3.18/404-mtd-cybertan-trx-parser.patch
> new file mode 100644
> index 0000000..678e8d5
> --- /dev/null
> +++ b/target/linux/ar71xx/patches-3.18/404-mtd-cybertan-trx-parser.patch
> @@ -0,0 +1,26 @@
> +--- a/drivers/mtd/Kconfig
> ++++ b/drivers/mtd/Kconfig
> +@@ -184,6 +184,13 @@ config MTD_BCM47XX_PARTS
> + This provides partitions parser for devices based on BCM47xx
> + boards.
> +
> ++config MTD_CYBERTAN_PARTS
> ++ tristate "Cybertan partitioning support"
> ++ depends on ATH79
> ++ ---help---
> ++ Cybertan partitioning support
> ++ Used by Linksys WRT160NL and WD My-Net Range Extender
> ++
> + config MTD_MYLOADER_PARTS
> + tristate "MyLoader partition parsing"
> + depends on ADM5120 || ATHEROS_AR231X || ATHEROS_AR71XX || ATH79
> +--- a/drivers/mtd/Makefile
> ++++ b/drivers/mtd/Makefile
> +@@ -16,6 +16,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
> + obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
> + obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
> + obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
> ++obj-$(CONFIG_MTD_CYBERTAN_PARTS) += cybertan_part.o
> +
> + # 'Users' - code which presents functionality to userspace.
> + obj-$(CONFIG_MTD_BLKDEVS) += mtd_blkdevs.o
> diff --git a/target/linux/ar71xx/patches-3.18/404-mtd-wrt160nl-trx-parser.patch b/target/linux/ar71xx/patches-3.18/404-mtd-wrt160nl-trx-parser.patch
> deleted file mode 100644
> index e49d72e..0000000
> --- a/target/linux/ar71xx/patches-3.18/404-mtd-wrt160nl-trx-parser.patch
> +++ /dev/null
> @@ -1,25 +0,0 @@
> ---- a/drivers/mtd/Kconfig
> -+++ b/drivers/mtd/Kconfig
> -@@ -184,6 +184,12 @@ config MTD_BCM47XX_PARTS
> - This provides partitions parser for devices based on BCM47xx
> - boards.
> -
> -+config MTD_WRT160NL_PARTS
> -+ tristate "Linksys WRT160NL partitioning support"
> -+ depends on MTD_PARTITIONS && ATH79_MACH_WRT160NL
> -+ ---help---
> -+ Linksys WRT160NL partitioning support
> -+
> - config MTD_MYLOADER_PARTS
> - tristate "MyLoader partition parsing"
> - depends on ADM5120 || ATHEROS_AR231X || ATHEROS_AR71XX || ATH79
> ---- a/drivers/mtd/Makefile
> -+++ b/drivers/mtd/Makefile
> -@@ -16,6 +16,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
> - obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
> - obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
> - obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
> -+obj-$(CONFIG_MTD_WRT160NL_PARTS) += wrt160nl_part.o
> -
> - # 'Users' - code which presents functionality to userspace.
> - obj-$(CONFIG_MTD_BLKDEVS) += mtd_blkdevs.o
>
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list