kernel: move mtdsplit files to drivers/mtd/mtdsplit/ to simplify maintenance, unify patches across kernel versions
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43805
This commit is contained in:
parent
6bfd210ade
commit
4153c0adff
53 changed files with 93 additions and 346 deletions
|
@ -1,7 +1,16 @@
|
||||||
|
config MTD_SPLIT
|
||||||
|
def_bool n
|
||||||
|
help
|
||||||
|
Generic MTD split support.
|
||||||
|
|
||||||
|
config MTD_SPLIT_SUPPORT
|
||||||
|
def_bool MTD = y
|
||||||
|
|
||||||
comment "Rootfs partition parsers"
|
comment "Rootfs partition parsers"
|
||||||
|
|
||||||
config MTD_SPLIT_SQUASHFS_ROOT
|
config MTD_SPLIT_SQUASHFS_ROOT
|
||||||
bool "Squashfs based root partition parser"
|
bool "Squashfs based root partition parser"
|
||||||
|
depends on MTD_SPLIT_SUPPORT
|
||||||
select MTD_SPLIT
|
select MTD_SPLIT
|
||||||
default n
|
default n
|
||||||
help
|
help
|
||||||
|
@ -13,12 +22,15 @@ comment "Firmware partition parsers"
|
||||||
|
|
||||||
config MTD_SPLIT_SEAMA_FW
|
config MTD_SPLIT_SEAMA_FW
|
||||||
bool "Seama firmware parser"
|
bool "Seama firmware parser"
|
||||||
|
depends on MTD_SPLIT_SUPPORT
|
||||||
select MTD_SPLIT
|
select MTD_SPLIT
|
||||||
|
|
||||||
config MTD_SPLIT_UIMAGE_FW
|
config MTD_SPLIT_UIMAGE_FW
|
||||||
bool "uImage based firmware partition parser"
|
bool "uImage based firmware partition parser"
|
||||||
|
depends on MTD_SPLIT_SUPPORT
|
||||||
select MTD_SPLIT
|
select MTD_SPLIT
|
||||||
|
|
||||||
config MTD_SPLIT_LZMA_FW
|
config MTD_SPLIT_LZMA_FW
|
||||||
bool "LZMA compressed kernel based firmware partition parser"
|
bool "LZMA compressed kernel based firmware partition parser"
|
||||||
|
depends on MTD_SPLIT_SUPPORT
|
||||||
select MTD_SPLIT
|
select MTD_SPLIT
|
||||||
|
|
5
target/linux/generic/files/drivers/mtd/mtdsplit/Makefile
Normal file
5
target/linux/generic/files/drivers/mtd/mtdsplit/Makefile
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
obj-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
||||||
|
obj-$(CONFIG_MTD_SPLIT_SEAMA_FW) += mtdsplit_seama.o
|
||||||
|
obj-$(CONFIG_MTD_SPLIT_SQUASHFS_ROOT) += mtdsplit_squashfs.o
|
||||||
|
obj-$(CONFIG_MTD_SPLIT_UIMAGE_FW) += mtdsplit_uimage.o
|
||||||
|
obj-$(CONFIG_MTD_SPLIT_LZMA_FW) += mtdsplit_lzma.o
|
|
@ -35,7 +35,7 @@
|
||||||
depends on m
|
depends on m
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -29,6 +29,7 @@
|
@@ -29,9 +29,11 @@
|
||||||
#include <linux/kmod.h>
|
#include <linux/kmod.h>
|
||||||
#include <linux/mtd/mtd.h>
|
#include <linux/mtd/mtd.h>
|
||||||
#include <linux/mtd/partitions.h>
|
#include <linux/mtd/partitions.h>
|
||||||
|
@ -43,7 +43,11 @@
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
|
|
||||||
#include "mtdcore.h"
|
#include "mtdcore.h"
|
||||||
@@ -45,13 +46,14 @@ struct mtd_part {
|
+#include "mtdsplit/mtdsplit.h"
|
||||||
|
|
||||||
|
/* Our partition linked list */
|
||||||
|
static LIST_HEAD(mtd_partitions);
|
||||||
|
@@ -45,13 +47,14 @@ struct mtd_part {
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -59,7 +63,7 @@
|
||||||
/*
|
/*
|
||||||
* MTD methods which simply translate the effective address and pass through
|
* MTD methods which simply translate the effective address and pass through
|
||||||
* to the _real_ device.
|
* to the _real_ device.
|
||||||
@@ -533,8 +535,10 @@ out_register:
|
@@ -533,8 +536,10 @@ out_register:
|
||||||
return slave;
|
return slave;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,7 +76,7 @@
|
||||||
{
|
{
|
||||||
struct mtd_partition part;
|
struct mtd_partition part;
|
||||||
struct mtd_part *p, *new;
|
struct mtd_part *p, *new;
|
||||||
@@ -566,21 +570,24 @@ int mtd_add_partition(struct mtd_info *m
|
@@ -566,21 +571,24 @@ int mtd_add_partition(struct mtd_info *m
|
||||||
end = offset + length;
|
end = offset + length;
|
||||||
|
|
||||||
mutex_lock(&mtd_partitions_mutex);
|
mutex_lock(&mtd_partitions_mutex);
|
||||||
|
@ -107,7 +111,7 @@
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
err_inv:
|
err_inv:
|
||||||
@@ -590,6 +597,12 @@ err_inv:
|
@@ -590,6 +598,12 @@ err_inv:
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mtd_add_partition);
|
EXPORT_SYMBOL_GPL(mtd_add_partition);
|
||||||
|
|
||||||
|
@ -120,7 +124,7 @@
|
||||||
int mtd_del_partition(struct mtd_info *master, int partno)
|
int mtd_del_partition(struct mtd_info *master, int partno)
|
||||||
{
|
{
|
||||||
struct mtd_part *slave, *next;
|
struct mtd_part *slave, *next;
|
||||||
@@ -613,6 +626,144 @@ int mtd_del_partition(struct mtd_info *m
|
@@ -613,6 +627,144 @@ int mtd_del_partition(struct mtd_info *m
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mtd_del_partition);
|
EXPORT_SYMBOL_GPL(mtd_del_partition);
|
||||||
|
|
||||||
|
@ -265,7 +269,7 @@
|
||||||
/*
|
/*
|
||||||
* This function, given a master MTD object and a partition table, creates
|
* This function, given a master MTD object and a partition table, creates
|
||||||
* and registers slave MTD objects which are bound to the master according to
|
* and registers slave MTD objects which are bound to the master according to
|
||||||
@@ -642,6 +793,7 @@ int add_mtd_partitions(struct mtd_info *
|
@@ -642,6 +794,7 @@ int add_mtd_partitions(struct mtd_info *
|
||||||
mutex_unlock(&mtd_partitions_mutex);
|
mutex_unlock(&mtd_partitions_mutex);
|
||||||
|
|
||||||
add_mtd_device(&slave->mtd);
|
add_mtd_device(&slave->mtd);
|
||||||
|
|
|
@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||||
|
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -823,6 +823,30 @@ static struct mtd_part_parser *get_parti
|
@@ -824,6 +824,30 @@ static struct mtd_part_parser *get_parti
|
||||||
|
|
||||||
#define put_partition_parser(p) do { module_put((p)->owner); } while (0)
|
#define put_partition_parser(p) do { module_put((p)->owner); } while (0)
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||||
int register_mtd_parser(struct mtd_part_parser *p)
|
int register_mtd_parser(struct mtd_part_parser *p)
|
||||||
{
|
{
|
||||||
spin_lock(&part_parser_lock);
|
spin_lock(&part_parser_lock);
|
||||||
@@ -899,6 +923,38 @@ int parse_mtd_partitions(struct mtd_info
|
@@ -900,6 +924,38 @@ int parse_mtd_partitions(struct mtd_info
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -626,6 +626,37 @@ int mtd_del_partition(struct mtd_info *m
|
@@ -627,6 +627,37 @@ int mtd_del_partition(struct mtd_info *m
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mtd_del_partition);
|
EXPORT_SYMBOL_GPL(mtd_del_partition);
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
static inline unsigned long
|
static inline unsigned long
|
||||||
mtd_pad_erasesize(struct mtd_info *mtd, int offset, int len)
|
mtd_pad_erasesize(struct mtd_info *mtd, int offset, int len)
|
||||||
{
|
{
|
||||||
@@ -685,6 +716,10 @@ static void split_rootfs_data(struct mtd
|
@@ -686,6 +717,10 @@ static void split_rootfs_data(struct mtd
|
||||||
unsigned int split_size;
|
unsigned int split_size;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
ret = split_squashfs(master, part->offset, &split_offset);
|
ret = split_squashfs(master, part->offset, &split_offset);
|
||||||
if (ret)
|
if (ret)
|
||||||
return;
|
return;
|
||||||
@@ -734,6 +769,12 @@ static void split_uimage(struct mtd_info
|
@@ -735,6 +770,12 @@ static void split_uimage(struct mtd_info
|
||||||
|
|
||||||
static void split_firmware(struct mtd_info *master, struct mtd_part *part)
|
static void split_firmware(struct mtd_info *master, struct mtd_part *part)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
--- a/drivers/mtd/Kconfig
|
||||||
+++ b/drivers/mtd/Kconfig
|
+++ b/drivers/mtd/Kconfig
|
||||||
@@ -36,6 +36,11 @@ config MTD_UIMAGE_SPLIT
|
@@ -36,6 +36,8 @@ config MTD_UIMAGE_SPLIT
|
||||||
depends on MTD_SPLIT_FIRMWARE
|
depends on MTD_SPLIT_FIRMWARE
|
||||||
default y
|
default y
|
||||||
|
|
||||||
+config MTD_SPLIT
|
+source "drivers/mtd/mtdsplit/Kconfig"
|
||||||
+ def_bool n
|
|
||||||
+ help
|
|
||||||
+ Generic MTD split support.
|
|
||||||
+
|
+
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
@ -18,7 +15,7 @@
|
||||||
obj-$(CONFIG_MTD) += mtd.o
|
obj-$(CONFIG_MTD) += mtd.o
|
||||||
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
||||||
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
+obj-$(CONFIG_MTD_SPLIT) += mtdsplit/
|
||||||
+
|
+
|
||||||
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
||||||
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
||||||
|
|
|
@ -1,14 +1,6 @@
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -33,6 +33,7 @@
|
@@ -669,43 +669,16 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
||||||
#include <linux/err.h>
|
|
||||||
|
|
||||||
#include "mtdcore.h"
|
|
||||||
+#include "mtdsplit.h"
|
|
||||||
|
|
||||||
/* Our partition linked list */
|
|
||||||
static LIST_HEAD(mtd_partitions);
|
|
||||||
@@ -668,43 +669,16 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
|
||||||
+++ b/drivers/mtd/Kconfig
|
|
||||||
@@ -37,6 +37,17 @@ config MTD_UIMAGE_SPLIT
|
|
||||||
depends on MTD_SPLIT_FIRMWARE
|
|
||||||
default y
|
|
||||||
|
|
||||||
+comment "Rootfs partition parsers"
|
|
||||||
+
|
|
||||||
+config MTD_SPLIT_SQUASHFS_ROOT
|
|
||||||
+ bool "Squashfs based root partition parser"
|
|
||||||
+ select MTD_SPLIT
|
|
||||||
+ default n
|
|
||||||
+ help
|
|
||||||
+ This provides a parsing function which allows to detect the
|
|
||||||
+ offset and size of the unused portion of a rootfs partition
|
|
||||||
+ containing a squashfs.
|
|
||||||
+
|
|
||||||
config MTD_SPLIT
|
|
||||||
def_bool n
|
|
||||||
help
|
|
||||||
--- a/drivers/mtd/Makefile
|
|
||||||
+++ b/drivers/mtd/Makefile
|
|
||||||
@@ -7,6 +7,7 @@ obj-$(CONFIG_MTD) += mtd.o
|
|
||||||
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
|
||||||
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_SQUASHFS_ROOT) += mtdsplit_squashfs.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
|
||||||
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
|
|
@ -1,25 +0,0 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
|
||||||
+++ b/drivers/mtd/Kconfig
|
|
||||||
@@ -48,6 +48,12 @@ config MTD_SPLIT_SQUASHFS_ROOT
|
|
||||||
offset and size of the unused portion of a rootfs partition
|
|
||||||
containing a squashfs.
|
|
||||||
|
|
||||||
+comment "Firmware partition parsers"
|
|
||||||
+
|
|
||||||
+config MTD_SPLIT_UIMAGE_FW
|
|
||||||
+ bool "uImage based firmware partition parser"
|
|
||||||
+ select MTD_SPLIT
|
|
||||||
+
|
|
||||||
config MTD_SPLIT
|
|
||||||
def_bool n
|
|
||||||
help
|
|
||||||
--- a/drivers/mtd/Makefile
|
|
||||||
+++ b/drivers/mtd/Makefile
|
|
||||||
@@ -8,6 +8,7 @@ mtd-y := mtdcore.o mtdsuper.o mtdconc
|
|
||||||
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT_SQUASHFS_ROOT) += mtdsplit_squashfs.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_UIMAGE_FW) += mtdsplit_uimage.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
|
||||||
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
|
|
@ -1,23 +0,0 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
|
||||||
+++ b/drivers/mtd/Kconfig
|
|
||||||
@@ -50,6 +50,10 @@ config MTD_SPLIT_SQUASHFS_ROOT
|
|
||||||
|
|
||||||
comment "Firmware partition parsers"
|
|
||||||
|
|
||||||
+config MTD_SPLIT_SEAMA_FW
|
|
||||||
+ bool "Seama firmware parser"
|
|
||||||
+ select MTD_SPLIT
|
|
||||||
+
|
|
||||||
config MTD_SPLIT_UIMAGE_FW
|
|
||||||
bool "uImage based firmware partition parser"
|
|
||||||
select MTD_SPLIT
|
|
||||||
--- a/drivers/mtd/Makefile
|
|
||||||
+++ b/drivers/mtd/Makefile
|
|
||||||
@@ -7,6 +7,7 @@ obj-$(CONFIG_MTD) += mtd.o
|
|
||||||
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
|
||||||
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_SEAMA_FW) += mtdsplit_seama.o
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT_SQUASHFS_ROOT) += mtdsplit_squashfs.o
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT_UIMAGE_FW) += mtdsplit_uimage.o
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
|
||||||
+++ b/drivers/mtd/Kconfig
|
|
||||||
@@ -58,6 +58,10 @@ config MTD_SPLIT_UIMAGE_FW
|
|
||||||
bool "uImage based firmware partition parser"
|
|
||||||
select MTD_SPLIT
|
|
||||||
|
|
||||||
+config MTD_SPLIT_LZMA_FW
|
|
||||||
+ bool "LZMA compressed kernel based firmware partition parser"
|
|
||||||
+ select MTD_SPLIT
|
|
||||||
+
|
|
||||||
config MTD_SPLIT
|
|
||||||
def_bool n
|
|
||||||
help
|
|
||||||
--- a/drivers/mtd/Makefile
|
|
||||||
+++ b/drivers/mtd/Makefile
|
|
||||||
@@ -10,6 +10,7 @@ mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT_SEAMA_FW) += mtdsplit_seama.o
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT_SQUASHFS_ROOT) += mtdsplit_squashfs.o
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT_UIMAGE_FW) += mtdsplit_uimage.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_LZMA_FW) += mtdsplit_lzma.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
|
||||||
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
|
|
@ -2,7 +2,7 @@
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -35,6 +35,8 @@
|
@@ -35,6 +35,8 @@
|
||||||
#include "mtdcore.h"
|
#include "mtdcore.h"
|
||||||
#include "mtdsplit.h"
|
#include "mtdsplit/mtdsplit.h"
|
||||||
|
|
||||||
+#define MTD_ERASE_PARTIAL 0x8000 /* partition only covers parts of an erase block */
|
+#define MTD_ERASE_PARTIAL 0x8000 /* partition only covers parts of an erase block */
|
||||||
+
|
+
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
--- a/drivers/mtd/Kconfig
|
||||||
+++ b/drivers/mtd/Kconfig
|
+++ b/drivers/mtd/Kconfig
|
||||||
@@ -212,6 +212,22 @@ config MTD_BCM47XX_PARTS
|
@@ -184,6 +184,22 @@ config MTD_BCM47XX_PARTS
|
||||||
This provides partitions parser for devices based on BCM47xx
|
This provides partitions parser for devices based on BCM47xx
|
||||||
boards.
|
boards.
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
config MTD_BLKDEVS
|
config MTD_BLKDEVS
|
||||||
--- a/drivers/mtd/Makefile
|
--- a/drivers/mtd/Makefile
|
||||||
+++ b/drivers/mtd/Makefile
|
+++ b/drivers/mtd/Makefile
|
||||||
@@ -19,6 +19,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
|
@@ -15,6 +15,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
|
||||||
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
|
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
|
||||||
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
|
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
|
||||||
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
|
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
|
||||||
|
|
|
@ -11,7 +11,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
|
|
||||||
--- a/drivers/mtd/ubi/build.c
|
--- a/drivers/mtd/ubi/build.c
|
||||||
+++ b/drivers/mtd/ubi/build.c
|
+++ b/drivers/mtd/ubi/build.c
|
||||||
@@ -1209,6 +1209,48 @@
|
@@ -1207,6 +1207,48 @@ static struct mtd_info * __init open_mtd
|
||||||
return mtd;
|
return mtd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||||
static int __init ubi_init(void)
|
static int __init ubi_init(void)
|
||||||
{
|
{
|
||||||
int err, i, k;
|
int err, i, k;
|
||||||
@@ -1298,6 +1340,12 @@
|
@@ -1290,6 +1332,12 @@ static int __init ubi_init(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
depends on m
|
depends on m
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -29,6 +29,7 @@
|
@@ -29,9 +29,11 @@
|
||||||
#include <linux/kmod.h>
|
#include <linux/kmod.h>
|
||||||
#include <linux/mtd/mtd.h>
|
#include <linux/mtd/mtd.h>
|
||||||
#include <linux/mtd/partitions.h>
|
#include <linux/mtd/partitions.h>
|
||||||
|
@ -43,7 +43,11 @@
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
|
|
||||||
#include "mtdcore.h"
|
#include "mtdcore.h"
|
||||||
@@ -45,13 +46,14 @@ struct mtd_part {
|
+#include "mtdsplit/mtdsplit.h"
|
||||||
|
|
||||||
|
/* Our partition linked list */
|
||||||
|
static LIST_HEAD(mtd_partitions);
|
||||||
|
@@ -45,13 +47,14 @@ struct mtd_part {
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -59,7 +63,7 @@
|
||||||
/*
|
/*
|
||||||
* MTD methods which simply translate the effective address and pass through
|
* MTD methods which simply translate the effective address and pass through
|
||||||
* to the _real_ device.
|
* to the _real_ device.
|
||||||
@@ -534,8 +536,10 @@ out_register:
|
@@ -534,8 +537,10 @@ out_register:
|
||||||
return slave;
|
return slave;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,7 +76,7 @@
|
||||||
{
|
{
|
||||||
struct mtd_partition part;
|
struct mtd_partition part;
|
||||||
struct mtd_part *p, *new;
|
struct mtd_part *p, *new;
|
||||||
@@ -567,21 +571,24 @@ int mtd_add_partition(struct mtd_info *m
|
@@ -567,21 +572,24 @@ int mtd_add_partition(struct mtd_info *m
|
||||||
end = offset + length;
|
end = offset + length;
|
||||||
|
|
||||||
mutex_lock(&mtd_partitions_mutex);
|
mutex_lock(&mtd_partitions_mutex);
|
||||||
|
@ -107,7 +111,7 @@
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
err_inv:
|
err_inv:
|
||||||
@@ -591,6 +598,12 @@ err_inv:
|
@@ -591,6 +599,12 @@ err_inv:
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mtd_add_partition);
|
EXPORT_SYMBOL_GPL(mtd_add_partition);
|
||||||
|
|
||||||
|
@ -120,7 +124,7 @@
|
||||||
int mtd_del_partition(struct mtd_info *master, int partno)
|
int mtd_del_partition(struct mtd_info *master, int partno)
|
||||||
{
|
{
|
||||||
struct mtd_part *slave, *next;
|
struct mtd_part *slave, *next;
|
||||||
@@ -614,6 +627,144 @@ int mtd_del_partition(struct mtd_info *m
|
@@ -614,6 +628,144 @@ int mtd_del_partition(struct mtd_info *m
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mtd_del_partition);
|
EXPORT_SYMBOL_GPL(mtd_del_partition);
|
||||||
|
|
||||||
|
@ -265,7 +269,7 @@
|
||||||
/*
|
/*
|
||||||
* This function, given a master MTD object and a partition table, creates
|
* This function, given a master MTD object and a partition table, creates
|
||||||
* and registers slave MTD objects which are bound to the master according to
|
* and registers slave MTD objects which are bound to the master according to
|
||||||
@@ -643,6 +794,7 @@ int add_mtd_partitions(struct mtd_info *
|
@@ -643,6 +795,7 @@ int add_mtd_partitions(struct mtd_info *
|
||||||
mutex_unlock(&mtd_partitions_mutex);
|
mutex_unlock(&mtd_partitions_mutex);
|
||||||
|
|
||||||
add_mtd_device(&slave->mtd);
|
add_mtd_device(&slave->mtd);
|
||||||
|
|
|
@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||||
|
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -824,6 +824,30 @@ static struct mtd_part_parser *get_parti
|
@@ -825,6 +825,30 @@ static struct mtd_part_parser *get_parti
|
||||||
|
|
||||||
#define put_partition_parser(p) do { module_put((p)->owner); } while (0)
|
#define put_partition_parser(p) do { module_put((p)->owner); } while (0)
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||||
int register_mtd_parser(struct mtd_part_parser *p)
|
int register_mtd_parser(struct mtd_part_parser *p)
|
||||||
{
|
{
|
||||||
spin_lock(&part_parser_lock);
|
spin_lock(&part_parser_lock);
|
||||||
@@ -900,6 +924,38 @@ int parse_mtd_partitions(struct mtd_info
|
@@ -901,6 +925,38 @@ int parse_mtd_partitions(struct mtd_info
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -627,6 +627,37 @@ int mtd_del_partition(struct mtd_info *m
|
@@ -628,6 +628,37 @@ int mtd_del_partition(struct mtd_info *m
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mtd_del_partition);
|
EXPORT_SYMBOL_GPL(mtd_del_partition);
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
static inline unsigned long
|
static inline unsigned long
|
||||||
mtd_pad_erasesize(struct mtd_info *mtd, int offset, int len)
|
mtd_pad_erasesize(struct mtd_info *mtd, int offset, int len)
|
||||||
{
|
{
|
||||||
@@ -686,6 +717,10 @@ static void split_rootfs_data(struct mtd
|
@@ -687,6 +718,10 @@ static void split_rootfs_data(struct mtd
|
||||||
unsigned int split_size;
|
unsigned int split_size;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
ret = split_squashfs(master, part->offset, &split_offset);
|
ret = split_squashfs(master, part->offset, &split_offset);
|
||||||
if (ret)
|
if (ret)
|
||||||
return;
|
return;
|
||||||
@@ -735,6 +770,12 @@ static void split_uimage(struct mtd_info
|
@@ -736,6 +771,12 @@ static void split_uimage(struct mtd_info
|
||||||
|
|
||||||
static void split_firmware(struct mtd_info *master, struct mtd_part *part)
|
static void split_firmware(struct mtd_info *master, struct mtd_part *part)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
--- a/drivers/mtd/Kconfig
|
||||||
+++ b/drivers/mtd/Kconfig
|
+++ b/drivers/mtd/Kconfig
|
||||||
@@ -36,6 +36,11 @@ config MTD_UIMAGE_SPLIT
|
@@ -36,6 +36,8 @@ config MTD_UIMAGE_SPLIT
|
||||||
depends on MTD_SPLIT_FIRMWARE
|
depends on MTD_SPLIT_FIRMWARE
|
||||||
default y
|
default y
|
||||||
|
|
||||||
+config MTD_SPLIT
|
+source "drivers/mtd/mtdsplit/Kconfig"
|
||||||
+ def_bool n
|
|
||||||
+ help
|
|
||||||
+ Generic MTD split support.
|
|
||||||
+
|
+
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
@ -18,7 +15,7 @@
|
||||||
obj-$(CONFIG_MTD) += mtd.o
|
obj-$(CONFIG_MTD) += mtd.o
|
||||||
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
||||||
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
+obj-$(CONFIG_MTD_SPLIT) += mtdsplit/
|
||||||
+
|
+
|
||||||
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
||||||
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
||||||
|
|
|
@ -1,14 +1,6 @@
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -33,6 +33,7 @@
|
@@ -670,43 +670,16 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
||||||
#include <linux/err.h>
|
|
||||||
|
|
||||||
#include "mtdcore.h"
|
|
||||||
+#include "mtdsplit.h"
|
|
||||||
|
|
||||||
/* Our partition linked list */
|
|
||||||
static LIST_HEAD(mtd_partitions);
|
|
||||||
@@ -669,43 +670,16 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
|
||||||
+++ b/drivers/mtd/Kconfig
|
|
||||||
@@ -37,6 +37,17 @@ config MTD_UIMAGE_SPLIT
|
|
||||||
depends on MTD_SPLIT_FIRMWARE
|
|
||||||
default y
|
|
||||||
|
|
||||||
+comment "Rootfs partition parsers"
|
|
||||||
+
|
|
||||||
+config MTD_SPLIT_SQUASHFS_ROOT
|
|
||||||
+ bool "Squashfs based root partition parser"
|
|
||||||
+ select MTD_SPLIT
|
|
||||||
+ default n
|
|
||||||
+ help
|
|
||||||
+ This provides a parsing function which allows to detect the
|
|
||||||
+ offset and size of the unused portion of a rootfs partition
|
|
||||||
+ containing a squashfs.
|
|
||||||
+
|
|
||||||
config MTD_SPLIT
|
|
||||||
def_bool n
|
|
||||||
help
|
|
||||||
--- a/drivers/mtd/Makefile
|
|
||||||
+++ b/drivers/mtd/Makefile
|
|
||||||
@@ -7,6 +7,7 @@ obj-$(CONFIG_MTD) += mtd.o
|
|
||||||
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
|
||||||
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_SQUASHFS_ROOT) += mtdsplit_squashfs.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
|
||||||
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
|
|
@ -1,25 +0,0 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
|
||||||
+++ b/drivers/mtd/Kconfig
|
|
||||||
@@ -48,6 +48,12 @@ config MTD_SPLIT_SQUASHFS_ROOT
|
|
||||||
offset and size of the unused portion of a rootfs partition
|
|
||||||
containing a squashfs.
|
|
||||||
|
|
||||||
+comment "Firmware partition parsers"
|
|
||||||
+
|
|
||||||
+config MTD_SPLIT_UIMAGE_FW
|
|
||||||
+ bool "uImage based firmware partition parser"
|
|
||||||
+ select MTD_SPLIT
|
|
||||||
+
|
|
||||||
config MTD_SPLIT
|
|
||||||
def_bool n
|
|
||||||
help
|
|
||||||
--- a/drivers/mtd/Makefile
|
|
||||||
+++ b/drivers/mtd/Makefile
|
|
||||||
@@ -8,6 +8,7 @@ mtd-y := mtdcore.o mtdsuper.o mtdconc
|
|
||||||
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT_SQUASHFS_ROOT) += mtdsplit_squashfs.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_UIMAGE_FW) += mtdsplit_uimage.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
|
||||||
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
|
|
@ -1,23 +0,0 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
|
||||||
+++ b/drivers/mtd/Kconfig
|
|
||||||
@@ -50,6 +50,10 @@ config MTD_SPLIT_SQUASHFS_ROOT
|
|
||||||
|
|
||||||
comment "Firmware partition parsers"
|
|
||||||
|
|
||||||
+config MTD_SPLIT_SEAMA_FW
|
|
||||||
+ bool "Seama firmware parser"
|
|
||||||
+ select MTD_SPLIT
|
|
||||||
+
|
|
||||||
config MTD_SPLIT_UIMAGE_FW
|
|
||||||
bool "uImage based firmware partition parser"
|
|
||||||
select MTD_SPLIT
|
|
||||||
--- a/drivers/mtd/Makefile
|
|
||||||
+++ b/drivers/mtd/Makefile
|
|
||||||
@@ -7,6 +7,7 @@ obj-$(CONFIG_MTD) += mtd.o
|
|
||||||
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
|
||||||
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_SEAMA_FW) += mtdsplit_seama.o
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT_SQUASHFS_ROOT) += mtdsplit_squashfs.o
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT_UIMAGE_FW) += mtdsplit_uimage.o
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
|
||||||
+++ b/drivers/mtd/Kconfig
|
|
||||||
@@ -58,6 +58,10 @@ config MTD_SPLIT_UIMAGE_FW
|
|
||||||
bool "uImage based firmware partition parser"
|
|
||||||
select MTD_SPLIT
|
|
||||||
|
|
||||||
+config MTD_SPLIT_LZMA_FW
|
|
||||||
+ bool "LZMA compressed kernel based firmware partition parser"
|
|
||||||
+ select MTD_SPLIT
|
|
||||||
+
|
|
||||||
config MTD_SPLIT
|
|
||||||
def_bool n
|
|
||||||
help
|
|
||||||
--- a/drivers/mtd/Makefile
|
|
||||||
+++ b/drivers/mtd/Makefile
|
|
||||||
@@ -10,6 +10,7 @@ mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT_SEAMA_FW) += mtdsplit_seama.o
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT_SQUASHFS_ROOT) += mtdsplit_squashfs.o
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT_UIMAGE_FW) += mtdsplit_uimage.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_LZMA_FW) += mtdsplit_lzma.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
|
||||||
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
|
|
@ -2,7 +2,7 @@
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -35,6 +35,8 @@
|
@@ -35,6 +35,8 @@
|
||||||
#include "mtdcore.h"
|
#include "mtdcore.h"
|
||||||
#include "mtdsplit.h"
|
#include "mtdsplit/mtdsplit.h"
|
||||||
|
|
||||||
+#define MTD_ERASE_PARTIAL 0x8000 /* partition only covers parts of an erase block */
|
+#define MTD_ERASE_PARTIAL 0x8000 /* partition only covers parts of an erase block */
|
||||||
+
|
+
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
--- a/drivers/mtd/Kconfig
|
||||||
+++ b/drivers/mtd/Kconfig
|
+++ b/drivers/mtd/Kconfig
|
||||||
@@ -212,6 +212,22 @@ config MTD_BCM47XX_PARTS
|
@@ -184,6 +184,22 @@ config MTD_BCM47XX_PARTS
|
||||||
This provides partitions parser for devices based on BCM47xx
|
This provides partitions parser for devices based on BCM47xx
|
||||||
boards.
|
boards.
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
config MTD_BLKDEVS
|
config MTD_BLKDEVS
|
||||||
--- a/drivers/mtd/Makefile
|
--- a/drivers/mtd/Makefile
|
||||||
+++ b/drivers/mtd/Makefile
|
+++ b/drivers/mtd/Makefile
|
||||||
@@ -19,6 +19,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
|
@@ -15,6 +15,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
|
||||||
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
|
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
|
||||||
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
|
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
|
||||||
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
|
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
struct m25p {
|
struct m25p {
|
||||||
@@ -1032,7 +1038,7 @@ static int m25p_probe(struct spi_device
|
@@ -1032,7 +1038,7 @@ static int m25p_probe(struct spi_device
|
||||||
flash->mtd._write = m25p80_write;
|
flash->mtd._write = m25p80_write;
|
||||||
|
|
||||||
/* prefer "small sector" erase if possible */
|
/* prefer "small sector" erase if possible */
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
static struct proc_dir_entry *my_proc_entry;
|
static struct proc_dir_entry *my_proc_entry;
|
||||||
|
|
||||||
static char *yaffs_dump_dev_part0(char *buf, struct yaffs_dev *dev)
|
static char *yaffs_dump_dev_part0(char *buf, struct yaffs_dev *dev)
|
||||||
@@ -3398,6 +3399,7 @@ static int yaffs_proc_write(struct file
|
@@ -3398,6 +3399,7 @@ static int yaffs_proc_write(struct file
|
||||||
return yaffs_proc_debug_write(file, buf, count, data);
|
return yaffs_proc_debug_write(file, buf, count, data);
|
||||||
return yaffs_proc_write_trace_options(file, buf, count, data);
|
return yaffs_proc_write_trace_options(file, buf, count, data);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
|
|
||||||
#include "mtdcore.h"
|
#include "mtdcore.h"
|
||||||
+#include "mtdsplit.h"
|
+#include "mtdsplit/mtdsplit.h"
|
||||||
|
|
||||||
/* Our partition linked list */
|
/* Our partition linked list */
|
||||||
static LIST_HEAD(mtd_partitions);
|
static LIST_HEAD(mtd_partitions);
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
--- a/drivers/mtd/Kconfig
|
||||||
+++ b/drivers/mtd/Kconfig
|
+++ b/drivers/mtd/Kconfig
|
||||||
@@ -27,6 +27,11 @@ config MTD_SPLIT_FIRMWARE_NAME
|
@@ -27,6 +27,8 @@ config MTD_SPLIT_FIRMWARE_NAME
|
||||||
depends on MTD_SPLIT_FIRMWARE
|
depends on MTD_SPLIT_FIRMWARE
|
||||||
default "firmware"
|
default "firmware"
|
||||||
|
|
||||||
+config MTD_SPLIT
|
+source "drivers/mtd/mtdsplit/Kconfig"
|
||||||
+ def_bool n
|
|
||||||
+ help
|
|
||||||
+ Generic MTD split support.
|
|
||||||
+
|
+
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
@ -18,7 +15,7 @@
|
||||||
obj-$(CONFIG_MTD) += mtd.o
|
obj-$(CONFIG_MTD) += mtd.o
|
||||||
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
||||||
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
+obj-$(CONFIG_MTD_SPLIT) += mtdsplit/
|
||||||
+
|
+
|
||||||
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
||||||
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
||||||
|
|
|
@ -11,10 +11,10 @@
|
||||||
+
|
+
|
||||||
source "drivers/mtd/mtdsplit/Kconfig"
|
source "drivers/mtd/mtdsplit/Kconfig"
|
||||||
|
|
||||||
config MTD_SPLIT
|
endmenu
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -668,6 +668,37 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
@@ -668,6 +668,37 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
|
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
|
||||||
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
|
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
|
||||||
#else
|
#else
|
||||||
@@ -676,7 +707,14 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
@@ -676,7 +707,14 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
||||||
|
|
||||||
static void split_firmware(struct mtd_info *master, struct mtd_part *part)
|
static void split_firmware(struct mtd_info *master, struct mtd_part *part)
|
||||||
{
|
{
|
|
@ -1,24 +0,0 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
|
||||||
+++ b/drivers/mtd/Kconfig
|
|
||||||
@@ -27,6 +27,8 @@ config MTD_SPLIT_FIRMWARE_NAME
|
|
||||||
depends on MTD_SPLIT_FIRMWARE
|
|
||||||
default "firmware"
|
|
||||||
|
|
||||||
+source "drivers/mtd/mtdsplit/Kconfig"
|
|
||||||
+
|
|
||||||
config MTD_SPLIT
|
|
||||||
def_bool n
|
|
||||||
help
|
|
||||||
--- a/drivers/mtd/Makefile
|
|
||||||
+++ b/drivers/mtd/Makefile
|
|
||||||
@@ -7,6 +7,10 @@ obj-$(CONFIG_MTD) += mtd.o
|
|
||||||
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
|
||||||
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_SEAMA_FW) += mtdsplit_seama.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_SQUASHFS_ROOT) += mtdsplit_squashfs.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_UIMAGE_FW) += mtdsplit_uimage.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_LZMA_FW) += mtdsplit_lzma.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
|
||||||
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
|
|
@ -14,7 +14,7 @@
|
||||||
default y
|
default y
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -668,6 +668,47 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
@@ -668,6 +668,47 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -35,6 +35,8 @@
|
@@ -35,6 +35,8 @@
|
||||||
#include "mtdcore.h"
|
#include "mtdcore.h"
|
||||||
#include "mtdsplit.h"
|
#include "mtdsplit/mtdsplit.h"
|
||||||
|
|
||||||
+#define MTD_ERASE_PARTIAL 0x8000 /* partition only covers parts of an erase block */
|
+#define MTD_ERASE_PARTIAL 0x8000 /* partition only covers parts of an erase block */
|
||||||
+
|
+
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
--- a/drivers/mtd/Kconfig
|
||||||
+++ b/drivers/mtd/Kconfig
|
+++ b/drivers/mtd/Kconfig
|
||||||
@@ -189,6 +189,22 @@ config MTD_BCM47XX_PARTS
|
@@ -184,6 +184,22 @@ config MTD_BCM47XX_PARTS
|
||||||
This provides partitions parser for devices based on BCM47xx
|
This provides partitions parser for devices based on BCM47xx
|
||||||
boards.
|
boards.
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
#
|
#
|
||||||
--- a/drivers/mtd/Makefile
|
--- a/drivers/mtd/Makefile
|
||||||
+++ b/drivers/mtd/Makefile
|
+++ b/drivers/mtd/Makefile
|
||||||
@@ -19,6 +19,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
|
@@ -15,6 +15,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
|
||||||
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
|
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
|
||||||
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
|
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
|
||||||
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
|
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
u64 offset, uint32_t mask_flags)
|
u64 offset, uint32_t mask_flags)
|
||||||
{
|
{
|
||||||
part->name = name;
|
part->name = name;
|
||||||
@@ -58,6 +59,26 @@ static void bcm47xxpart_add_part(struct
|
@@ -58,6 +59,26 @@ static void bcm47xxpart_add_part(struct
|
||||||
part->mask_flags = mask_flags;
|
part->mask_flags = mask_flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
enum read_type {
|
enum read_type {
|
||||||
@@ -1192,7 +1198,7 @@ static int m25p_probe(struct spi_device
|
@@ -1192,7 +1198,7 @@ static int m25p_probe(struct spi_device
|
||||||
flash->mtd._write = m25p80_write;
|
flash->mtd._write = m25p80_write;
|
||||||
|
|
||||||
/* prefer "small sector" erase if possible */
|
/* prefer "small sector" erase if possible */
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
|
|
||||||
#include "mtdcore.h"
|
#include "mtdcore.h"
|
||||||
+#include "mtdsplit.h"
|
+#include "mtdsplit/mtdsplit.h"
|
||||||
|
|
||||||
/* Our partition linked list */
|
/* Our partition linked list */
|
||||||
static LIST_HEAD(mtd_partitions);
|
static LIST_HEAD(mtd_partitions);
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
--- a/drivers/mtd/Kconfig
|
||||||
+++ b/drivers/mtd/Kconfig
|
+++ b/drivers/mtd/Kconfig
|
||||||
@@ -27,6 +27,11 @@ config MTD_SPLIT_FIRMWARE_NAME
|
@@ -27,6 +27,8 @@ config MTD_SPLIT_FIRMWARE_NAME
|
||||||
depends on MTD_SPLIT_FIRMWARE
|
depends on MTD_SPLIT_FIRMWARE
|
||||||
default "firmware"
|
default "firmware"
|
||||||
|
|
||||||
+config MTD_SPLIT
|
+source "drivers/mtd/mtdsplit/Kconfig"
|
||||||
+ def_bool n
|
|
||||||
+ help
|
|
||||||
+ Generic MTD split support.
|
|
||||||
+
|
+
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
@ -18,7 +15,7 @@
|
||||||
obj-$(CONFIG_MTD) += mtd.o
|
obj-$(CONFIG_MTD) += mtd.o
|
||||||
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
||||||
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
+obj-$(CONFIG_MTD_SPLIT) += mtdsplit/
|
||||||
+
|
+
|
||||||
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
||||||
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
||||||
|
|
|
@ -11,10 +11,10 @@
|
||||||
+
|
+
|
||||||
source "drivers/mtd/mtdsplit/Kconfig"
|
source "drivers/mtd/mtdsplit/Kconfig"
|
||||||
|
|
||||||
config MTD_SPLIT
|
endmenu
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -681,6 +681,37 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
@@ -681,6 +681,37 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
|
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
|
||||||
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
|
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
|
||||||
#else
|
#else
|
||||||
@@ -689,7 +720,14 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
@@ -689,7 +720,14 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
||||||
|
|
||||||
static void split_firmware(struct mtd_info *master, struct mtd_part *part)
|
static void split_firmware(struct mtd_info *master, struct mtd_part *part)
|
||||||
{
|
{
|
|
@ -1,24 +0,0 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
|
||||||
+++ b/drivers/mtd/Kconfig
|
|
||||||
@@ -27,6 +27,8 @@ config MTD_SPLIT_FIRMWARE_NAME
|
|
||||||
depends on MTD_SPLIT_FIRMWARE
|
|
||||||
default "firmware"
|
|
||||||
|
|
||||||
+source "drivers/mtd/mtdsplit/Kconfig"
|
|
||||||
+
|
|
||||||
config MTD_SPLIT
|
|
||||||
def_bool n
|
|
||||||
help
|
|
||||||
--- a/drivers/mtd/Makefile
|
|
||||||
+++ b/drivers/mtd/Makefile
|
|
||||||
@@ -7,6 +7,10 @@ obj-$(CONFIG_MTD) += mtd.o
|
|
||||||
mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
|
|
||||||
|
|
||||||
mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_SEAMA_FW) += mtdsplit_seama.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_SQUASHFS_ROOT) += mtdsplit_squashfs.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_UIMAGE_FW) += mtdsplit_uimage.o
|
|
||||||
+mtd-$(CONFIG_MTD_SPLIT_LZMA_FW) += mtdsplit_lzma.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
|
|
||||||
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
|
|
|
@ -14,7 +14,7 @@
|
||||||
default y
|
default y
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -681,6 +681,47 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
@@ -681,6 +681,47 @@ mtd_pad_erasesize(struct mtd_info *mtd,
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -35,6 +35,8 @@
|
@@ -35,6 +35,8 @@
|
||||||
#include "mtdcore.h"
|
#include "mtdcore.h"
|
||||||
#include "mtdsplit.h"
|
#include "mtdsplit/mtdsplit.h"
|
||||||
|
|
||||||
+#define MTD_ERASE_PARTIAL 0x8000 /* partition only covers parts of an erase block */
|
+#define MTD_ERASE_PARTIAL 0x8000 /* partition only covers parts of an erase block */
|
||||||
+
|
+
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
--- a/drivers/mtd/Kconfig
|
||||||
+++ b/drivers/mtd/Kconfig
|
+++ b/drivers/mtd/Kconfig
|
||||||
@@ -189,6 +189,22 @@ config MTD_BCM47XX_PARTS
|
@@ -184,6 +184,22 @@ config MTD_BCM47XX_PARTS
|
||||||
This provides partitions parser for devices based on BCM47xx
|
This provides partitions parser for devices based on BCM47xx
|
||||||
boards.
|
boards.
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
#
|
#
|
||||||
--- a/drivers/mtd/Makefile
|
--- a/drivers/mtd/Makefile
|
||||||
+++ b/drivers/mtd/Makefile
|
+++ b/drivers/mtd/Makefile
|
||||||
@@ -19,6 +19,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
|
@@ -15,6 +15,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
|
||||||
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
|
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
|
||||||
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
|
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
|
||||||
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
|
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
u64 offset, uint32_t mask_flags)
|
u64 offset, uint32_t mask_flags)
|
||||||
{
|
{
|
||||||
part->name = name;
|
part->name = name;
|
||||||
@@ -58,6 +59,26 @@ static void bcm47xxpart_add_part(struct
|
@@ -58,6 +59,26 @@ static void bcm47xxpart_add_part(struct
|
||||||
part->mask_flags = mask_flags;
|
part->mask_flags = mask_flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
static struct proc_dir_entry *my_proc_entry;
|
static struct proc_dir_entry *my_proc_entry;
|
||||||
|
|
||||||
static char *yaffs_dump_dev_part0(char *buf, struct yaffs_dev *dev)
|
static char *yaffs_dump_dev_part0(char *buf, struct yaffs_dev *dev)
|
||||||
@@ -3398,6 +3399,7 @@ static int yaffs_proc_write(struct file
|
@@ -3398,6 +3399,7 @@ static int yaffs_proc_write(struct file
|
||||||
return yaffs_proc_debug_write(file, buf, count, data);
|
return yaffs_proc_debug_write(file, buf, count, data);
|
||||||
return yaffs_proc_write_trace_options(file, buf, count, data);
|
return yaffs_proc_write_trace_options(file, buf, count, data);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue