linux/drivers/mtd
Artem Bityutskiy 4ccf8cffa9 UBI: add auto-resize feature
The problem: NAND flashes have different amount of initial bad physical
eraseblocks (marked as bad by the manufacturer). For example, for 256MiB
Samsung OneNAND flash there might be from 0 to 40 bad initial eraseblocks,
which is about 2%. When UBI is used as the base system, one needs to know
the exact amount of good physical eraseblocks, because this number is
needed to create the UBI image which is put to the devices during
production. But this number is not know, which forces us to use the
minimum number of good physical eraseblocks. And UBI additionally
reserves some percentage of physical eraseblocks for bad block handling
(default is 1%), so we have 1-3% of PEBs reserved at the end, depending
on the amount of initial bad PEBs. But it is desired to always have
1% (or more, depending on the configuration).

Solution: this patch adds an "auto-resize" flag to the volume table.
The volume which has the "auto-resize" flag will automatically be re-sized
(enlarged) on the first UBI initialization. UBI clears the flag when
the volume is re-sized. Only one volume may have the "auto-resize" flag.

So, the production UBI image may have one volume with "auto-resize"
flag set, and its size is automatically adjusted on the first boot
of the device.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2008-01-25 16:41:24 +02:00
..
chips [MTD] [NOR] Fix incorrect interface code for x16/x32 chips 2008-01-10 22:07:12 +00:00
devices [MTD] mtd_dataflash: Incorrect compare-after-write check 2007-11-28 11:55:32 +00:00
maps [MTD] [NOR] Fix incorrect interface code for x16/x32 chips 2008-01-10 22:07:12 +00:00
nand [MTD] [NAND] make s3c2410 indicate an error for multi-bit read errors 2008-01-12 14:46:31 +00:00
onenand [MTD] [OneNAND] Do not stop reading for ECC errors 2007-11-26 13:16:29 +00:00
ubi UBI: add auto-resize feature 2008-01-25 16:41:24 +02:00
afs.c
cmdlinepart.c
ftl.c
inftlcore.c
inftlmount.c
Kconfig [MTD] mtdoops: Document usage in Kconfig 2007-12-03 14:00:06 +00:00
Makefile
mtd_blkdevs.c [MTD] Always initialise mutex in new mtd_blktrans_dev. 2007-12-03 12:46:12 +00:00
mtdblock_ro.c
mtdblock.c
mtdchar.c [MTD] mtdchar.c: ioctl always returns 0 as size written for ppc64 2008-01-08 07:46:12 +00:00
mtdconcat.c [MTD] fix mtdconcat for subpage-write NAND 2007-10-14 13:38:02 +01:00
mtdcore.c
mtdcore.h
mtdoops.c [MTD] mtdoops cleanup 2007-12-03 14:00:16 +00:00
mtdpart.c
mtdsuper.c
nftlcore.c
nftlmount.c
redboot.c [MTD] Skip bad blocks when checking for RedBoot partition table 2007-10-28 21:57:02 -04:00
rfd_ftl.c
ssfdc.c