31 Jul, 2008
1 commit
-
The device id for Am29DL800BB in jedec_probe.c is wrong.
Reference: http://www.spansion.com/datasheets/21519c4.pdf
I discovered this while working with u-boot.
The u-boot folks mentioned Linux as an upstream reference, thought I'd
post a heads-up here too.Signed-off-by: Andrew Morton
Signed-off-by: David Woodhouse
25 Jul, 2008
2 commits
-
The unlock_addr rework in kernel 2.6.25 breaks 16-bit SST chips. SST
39LF160 and SST 39VF1601 are both 16-bit only chip (do not have BYTE#
pin) and new uaddr value is not correct for them. Add
MTD_UADDR_0xAAAA_0x5555 for those chips. Tested with SST 39VF1601
chip.Signed-off-by: Atsushi Nemoto
Signed-off-by: David Woodhouse -
Existing CFI driver has problems with excessive writes during erase.
If CFI driver does many writes during one erase cycle we may face the
messages with -ETIMEO error on erase operation. It may cause the
following data corruption and kernel panics.The reason of the issue is related to specifics of suspend operation:
if we write to flash during erase, suspend operation will cost some time
to erase procedure (for P30 it could be significant). In current version of
cfi driver the problem of many suspends is partially workarounded by adding
some time reserv to any operation (8xerase_time) but if we have many writes
during one erase the problem appears.This patch detects the suspend and resets timer if suspend occured. It
has been well verified on different chips. No problems were found.
Could you please include the patch as it is simple and fixes bad issue.Signed-off-by: Alexey Korolev
Signed-off-by: David Woodhouse
12 Jul, 2008
1 commit
-
Use pr_debug(...) instead of printk(KERN_DEBUG ...) so that the message
is only printed when debugging is enabled.Signed-off-by: Jean Delvare
Tested-by: John stoffel
Signed-off-by: David Woodhouse
05 Jun, 2008
4 commits
-
Once upon a time, the MTD repository was using CVS.
This patch therefore removes all usages of the no longer updated CVS
keywords from the MTD code.This also includes code that printed them to the user.
Signed-off-by: Adrian Bunk
Signed-off-by: David Woodhouse -
This patch add support for non-CFI Eon EN29SL800B[BT] NOR flash chips.
The Eon chips have manufacturer ID in the first bank, therefore this patch
depends on support for flash chips with ID in bank other than 0.Signed-off-by: Mike Rapoport
Signed-off-by: David Woodhouse -
According to JEDEC "Standard Manufacturer's Identification Code"
(http://www.jedec.org/download/search/jep106W.pdf)
several first banks of NOR flash can contain 0x7f instead of actual ID.
This patch adds support for reading manufacturer ID from banks other than 0.Signed-off-by: Mike Rapoport
Signed-off-by: David Woodhouse -
Signed-off-by: Mike Rapoport
Signed-off-by: David Woodhouse
14 May, 2008
1 commit
-
Add support for M50FLW080A and M50FLW080B revisions of LPC flash
devices.Signed-off-by: Aaron Lindner
Signed-off-by: Nate Case
Signed-off-by: David Woodhouse
06 May, 2008
1 commit
-
Fix typo in erase suspend while write fixup code leading to compile time
error if CMDSET0001_DISABLE_ERASE_SUSPEND_ON_WRITE was defined.drivers/mtd/chips/cfi_cmdset_0001.c: In function 'fixup_intel_strataflash':
drivers/mtd/chips/cfi_cmdset_0001.c:212: error: 'struct cfi_pri_amdstd' has no member named 'SuspendCmdSupport'Signed-off-by: Alexander Belyakov
Signed-off-by: David Woodhouse
02 May, 2008
1 commit
-
Adding the ability to get a physical address from point() in addition
to virtual address. This physical address is required for XIP of
userspace code from flash.Signed-off-by: Jared Hulbert
Reviewed-by: Jörn Engel
Acked-by: Nicolas Pitre
Acked-by: Greg Ungerer
Signed-off-by: David Woodhouse
23 Apr, 2008
5 commits
-
collie seems to contain LH28F640BF flash chips. According to
http://sharp-world.com/products/device/flash/pdf/*FUM00701*@E.pdf
(page 83) if they have 0x51 of Extended Query Table (number of hardware
partitions) set to zero, they have a single fixed partition.
This patch makes those chips work.Signed-off-by: Thomas Kunze
Signed-off-by: David Woodhouse -
This is a known erratum confirmed by Spansion. I have an errata document,
but I can't find a link to it anywhere on their site to include here.Some of the S29GL064N chips report 64 sectors when they should report 128,
and some of S29GL032N chips report 127 sectors when they should report 63.Note that when the chip dies are fixed by Spansion, they will still have
the same id. The fix is done in such a way that it won't affect corrected
chips.The fixups use the extended id made available by a previous patch. Without
that, virtually all newer AMD/Spansion chips will have the same ID (0x227e)
and it's not possible to apply the fixup to the correct chips.Signed-off-by: Trent Piepho
Signed-off-by: David Woodhouse -
AMD/Spansion use a device id of 0x7e to indicate an extended device is
present at offset 0xe and 0xf in the query data.I've verified with Spansion that all their chips (mfr == 0x01) with an id
of 0x7e use it to indicate an extended id is present. What's more, there
are no chips with a NON-extended id that is the same as a different chip's
extended id. In other words, when the extended ID is present, one can
replace the normal id with the extended id without losing any information.
Which is what I've done.Signed-off-by: Trent Piepho
Signed-off-by: David Woodhouse -
Add support for the SST 36VF3203 flash chip. It is used on Emerson
KSI8560 board.Signed-off-by: Andrei Dolnikov
Signed-off-by: David Woodhouse -
Untested, but shouldn't break anything... Makes MTD_XIP arch
independent. I guess this is why xip_iprefetch() was made for.Signed-off-by: Paulius Zaleckas
Acked-by: Nicolas Pitre
Signed-off-by: David Woodhouse
22 Apr, 2008
4 commits
-
This patch makes the needlessly global cfi_staa_erase_varsize() static.
Signed-off-by: Adrian Bunk
Signed-off-by: David Woodhouse -
__FUNCTION__ is gcc-specific, use __func__
Signed-off-by: Harvey Harrison
Signed-off-by: Andrew Morton
Signed-off-by: David Woodhouse -
Signed-off-by: David Woodhouse
-
Add support for the ST M29W400DB flash chip. which is used on the GLAN Tank
NAS.Signed-off-by: Gordon Farquharson
Cc: Thomas Gleixner
Signed-off-by: Andrew Morton
Signed-off-by: David Woodhouse
09 Apr, 2008
1 commit
-
cfi_amdstd_sync() and cfi_staa_sync() call schedule() without changing task's
state appropriately.In case of e.g. chip->state == FL_ERASING, cfi_*_sync() will be busy-looping
either redundantly for a fixed interval of time (for SCHED_NORMAL tasks) or
possibly endlessly (for RT tasks and UP).Signed-off-by: Dmitry Adamushko
Cc: David Woodhouse
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
05 Apr, 2008
1 commit
-
THe CFI driver in 2.6.24 kernel is broken. Not so intensive read/write
operations cause incomplete writes which lead to kernel panics in JFFS2.We investigated the issue - it is caused by bug in FL_SHUTDOWN parsing code.
Sometimes chip returns -EIO as if it is in FL_SHUTDOWN state when it should
wait in FL_PONT (error in order of conditions).The following patch fixes the bug in state parsing code of CFI. Also I've
added comments to notify developers if they want to add new case in future.Signed-off-by: Alexey Korolev
Reviewed-by: Joern Engel
Cc: David Woodhouse
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
07 Feb, 2008
1 commit
-
Taken from http://bugzilla.kernel.org/show_bug.cgi?id=9829
I found and solved the problem, at line 115 of drivers/mtd/chips/gen_probe.c
(kernel 2.6.24): mapsize value must be calculated in bytes, not in long.Signed-off-by: Andrew Morton
Signed-off-by: David Woodhouse
03 Feb, 2008
4 commits
-
Patch for unlocking all Intel flash that has instant locking on power up.
The patch has been tested on Intel M18, P30 and J3D Strata Flash.
1. The automatic unlocking can be disabled for a particular partition
in the map or the command line.
a. For the bit mask in the map it should look like:
.mask_flags = MTD_POWERUP_LOCK,
b. For the command line parsing it should look like:
mtdparts=0x80000(bootloader)lk
2. This will only unlock parts with instant individual block locking.
Intel parts with legacy unlocking will not be unlocked.Signed-off-by: Justin Treon
Signed-off-by: Jared Hulbert
Acked-by: Nicolas Pitre
Signed-off-by: David Woodhouse -
Signed-off-by: Ilpo Järvinen
Signed-off-by: David Woodhouse -
$ codiff $OBJ.old $OBJ
drivers/mtd/chips/jedec_probe.c:
cfi_jedec_setup | -320
jedec_probe_chip | -7073
2 functions changed, 7393 bytes removed, diff: -7393drivers/mtd/chips/jedec_probe.c:
jedec_reset | +1151
1 function changed, 1151 bytes added, diff: +1151drivers/mtd/chips/jedec_probe.o:
3 functions changed, 1151 bytes added, 7393 bytes removed, diff: -6242Signed-off-by: Ilpo Järvinen
Signed-off-by: David Woodhouse
12 Jan, 2008
1 commit
-
The bug causes corruptions of data read from flash.
The original code performs cache invalidation from "adr" to "adr + len"
in do_write_buffer(). Since len and adr could be updated in the code
before invalidation - it causes improper setting of cache invalidation
regions.Signed-off-by: Massimo Cirillo
Signed-off-by: Giuseppe D'Eliseo
Acked-by: Nicolas Pitre
Acked-by: Jörn Engel
Signed-off-by: David Woohouse
Signed-off-by: Linus Torvalds
11 Jan, 2008
1 commit
-
According to "Common Flash Memory Interface Publication 100" dated December 1,
2001, the interface code for x16/x32 chips is 0x0005, and not 0x0004 used so
far.Signed-off-by: Bartlomiej Sieka
Signed-off-by: David Woodhouse
03 Dec, 2007
3 commits
-
Use a single unlock address, adjust it for the device type in the
knowledge that it'll be adjusted back again. This has the desirable
effect of masking out the least significant bit of the address for x16
devices.Signed-off-by: David Woodhouse
-
Having laid the code out so that it's easier to read instead of sticking
to the 80-column guideline even when it doesn't make sense, a bug is
immediately spotted... we were only checking _one_ of the unlock
addresses to see if it runs off the end of the map.Signed-off-by: David Woodhouse
-
This should have no functional effects -- we've been ignoring all but
the first address in the array for a long time, and using it only to
indicate which device types are supported.Signed-off-by: David Woodhouse
26 Nov, 2007
1 commit
-
while running stress tests we have met cfi_cmdset_0001.c driver issue.
Working on multipartitional devices with erase suspend on write
feature enabled it is possible to get erase operation invoked on chip
with suspended erase. get_chip() looses information about earlier
suspended erase and new erase operation gets issued. New erase
operations report successful completion, but blocks remain dirty
causing, for example, JFFS2 error messages like:...
Newly-erased block contained word 0x20031985 at offset 0x00200000
Newly-erased block contained word 0x20031985 at offset 0x00280000
Newly-erased block contained word 0x20031985 at offset 0x00240000
...The patch below fixes that issue.
Signed-off-by: Alexander Belyakov
Acked-by: Nicolas Pitre
Signed-off-by: David Woodhouse
23 Nov, 2007
1 commit
-
Signed-off-by: Alexey Korolev
Signed-off-by: David Woodhouse
10 Nov, 2007
1 commit
-
Add support for the SST 39VF1601 flash chip.
Signed-off-by: David Howells
Signed-off-by: David Woodhouse
31 Oct, 2007
1 commit
-
Convert CFI tables from Atmel cmdset_0001 chips to Intel format and set
BufWrite timeouts to 0 for Atmel cmdset_0001 and cmdset_0002 chips.
Some chips may indicate support for buffered writes even though they
only support dual-word writes.The CFI fixup must run before fixup_use_write_buffers for this to work.
Signed-off-by: Håvard Skinnemoen
Signed-off-by: David Woodhouse
23 Oct, 2007
1 commit
-
This patch solves kernel deadlock issue seen on JFFF2 simultaneous
operations. Detailed investigation of the issue showed that the kernel
deadlock is caused by tons of recursive get_chip calls.Signed-off-by: Alexey Korolev
Acked-by: Nicolas Pitre
Signed-off-by: David Woodhouse
13 Oct, 2007
1 commit
-
When we press ctrl-alt-del,kernel_restart_prepare will invoke
cfi_intelext_reboot which will set flash to read array mode, but later
when device_shutdown is invoked which may put current work queue to
sleep and other process may be scheduled to running and programming
flash in not FL_READY mode again. So we can't boot up if this flash is
used for bootloader.Signed-off-by: Andrew Morton
Signed-off-by: David Woodhouse
24 Sep, 2007
1 commit
-
The CFI probe routine is capable of detecting flash banks consisting of
identical chips mapped to physically discontiguous addresses. (One
common way this can occur is if a flash bank is populated with chips of
less capacity than the hardware was designed to support.) The CFI
point() routine currently ignores any such gaps. This patch fixes
the CFI point() routine so that it truncates any request that would
span a gap.Signed-off-by: Andy Lowe
Signed-off-by: Nicolas Pitre
Signed-off-by: David Woodhouse
23 Jul, 2007
1 commit
-
This patch cleans up duplicate includes in
drivers/mtd/Signed-off-by: Jesper Juhl
Signed-off-by: David Woodhouse