linux/drivers
Anton Vorontsov 452db27243 [MTD] [NAND] fsl_elbc_nand: fix OOB workability for large page NAND chips
For large page chips, nand_bbt is looking into OOB area, and checking
for "0xff 0xff" pattern at OOB offset 0. That is, two bytes should be
reserved for bbt means.

But ELBC driver is specifying ecclayout so that oobfree area starts at
offset 1, so only one byte left for the bbt purposes.

This causes problems with any OOB users, namely JFFS2: after first mount
JFFS2 will fill all OOBs with "erased marker", so OOBs will contain:

  OOB Data: ff 19 85 20 03 00 ff ff ff 00 00 08 ff ff ff ff
  OOB Data: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  OOB Data: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
  OOB Data: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

And on the next boot, NAND core will rescan for bad blocks, then will
see "0xff 0x19" pattern, and will mark all blocks as bad ones.

To fix the issue we should implement our own bad block pattern: just one
byte at OOB start. Though, this will work only for x8 chips. For x16
chips two bytes must be checked. Since ELBC driver does not support x16
NANDs (yet), we're safe for now.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2008-07-11 18:12:01 +01:00
..
accessibility
acorn/char
acpi x86 ACPI: normalize segment descriptor register on resume 2008-07-05 08:25:40 +02:00
amba
ata ahci: give another shot at clearing all bits in irq_stat 2008-07-05 13:05:37 -07:00
atm
auxdisplay Miguel Ojeda has moved 2008-07-04 10:40:05 -07:00
base mm: switch node meminfo Active & Inactive pages to Kbytes 2008-07-04 10:40:09 -07:00
block cciss: read config to obtain max outstanding commands per controller 2008-07-04 10:40:09 -07:00
bluetooth
cdrom
char tty: Fix inverted logic in send_break 2008-07-02 19:21:48 -07:00
clocksource
connector CONNECTOR: add a proc entry to list connectors 2008-06-27 20:03:24 -07:00
cpufreq
cpuidle
crypto
dca
dio
dma
edac
eisa
firewire firewire: fw-sbp2: fix parsing of logical unit directories 2008-06-27 20:55:00 +02:00
firmware
gpio gpio: pca953x (i2c) handles max7310 too 2008-07-04 10:40:06 -07:00
hid
hwmon hdaps: add support for various newer Lenovo thinkpads 2008-07-04 10:40:06 -07:00
i2c I2C: S3C2410: Add MODULE_ALIAS() for s3c2440 device. 2008-07-01 14:30:38 +01:00
ide it8213: fix return value in it8213_init_one() 2008-07-08 19:27:23 +02:00
ieee1394
infiniband RDMA/cxgb3: Fix regression caused by class_device -> device conversion 2008-07-08 14:40:05 -07:00
input drivers/input/ff-core.c needs <linux/sched.h> 2008-07-02 18:40:08 -07:00
isdn
leds
lguest
macintosh
mca
md Merge branch 'for-2.6.26' of git://neil.brown.name/md 2008-07-10 09:49:46 -07:00
media V4L/DVB (8178): uvc: Fix compilation breakage for the other drivers, if uvc is selected 2008-07-02 08:58:15 -03:00
memstick
message
mfd
misc
mmc pxamci: fix byte aligned DMA transfers 2008-07-06 10:37:40 -07:00
mtd [MTD] [NAND] fsl_elbc_nand: fix OOB workability for large page NAND chips 2008-07-11 18:12:01 +01:00
net tun: Persistent devices can get stuck in xoff state 2008-07-10 16:59:11 -07:00
nubus
of
oprofile
parisc
parport
pci pci: VT3336 can't do MSI either 2008-07-04 10:40:05 -07:00
pcmcia
pnp
power
ps3
rapidio
rtc rtc-x1205: Fix alarm set 2008-07-04 10:40:05 -07:00
s390
sbus
scsi
serial serial: fix serial_match_port() for dynamic major tty-device numbers 2008-07-04 10:40:04 -07:00
sh
sn
spi spi: fix the read path in spidev 2008-07-04 10:40:08 -07:00
ssb ssb-pcicore: Fix IRQ-vector init on embedded devices 2008-07-07 15:31:40 -04:00
tc
telephony
thermal
uio
usb Revert "USB: don't explicitly reenable root-hub status interrupts" 2008-07-06 10:27:25 -07:00
video Fix broken fix for fsl-diu-db 2008-07-08 12:51:08 -07:00
virtio
w1
watchdog
xen
zorro
Kconfig
Makefile