aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/nand
Commit message (Collapse)AuthorAgeFilesLines
* [MTD] [NAND] Wrong calculation of page number in nand_block_bad()Knobloch, Thomas2007-04-271-1/+1
| | | | | | | | | | | In case that there is no memory based bad block table available the function nand_block_checkbad() in drivers/mtd/nand/nand_base.c will call nand_block_bad() directly. When parameter 'getchip' is set to zero, nand_block_bad() will not right shift the offset to calculate the correct page number. Signed-off-by: Thomas Knobloch <knobloch@siemens.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* Use menuconfig objects: MTDJan Engelhardt2007-04-191-26/+23
| | | | | | | | | Use menuconfigs instead of menus, so the whole menu can be disabled at once instead of going through all options. Signed-off-by: Jan Engelhardt <jengelh@gmx.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] nandsim: enhance nandsim to allow arbitrary NAND sizeAdrian Hunter2007-04-171-1/+20
| | | | | | | | | | | | A new module parameter has been added called 'overridesize', which overrides the size that would be determined by the ID bytes. 'overridesize' is specified in erase blocks and as the exponent of a power of two e.g. 5 means a size of 32 erase blocks. Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] nandsim: Enhance nandsim optionally to report wear informationAdrian Hunter2007-04-171-0/+99
| | | | | | | | | A new module parameter 'rptwear' specifies how many erases between reporting wear information. Zero means never. Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] nandsim: enhance nandsim to simulate flash errorsAdrian Hunter2007-04-171-1/+300
| | | | | | | | | | | | | | | | | | New module parameters have been added to nandsim to simulate: bitflips random bit flips badblocks blocks that are initially marked bad weakblocks blocks that fail to erase after a small number of erase cycles weakpages pages that fail to write after a small number of successful writes gravepages pages that fail to read after a small number of successful reads Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] nandsim: add partition capability to nandsimAdrian Hunter2007-04-171-24/+73
| | | | | | | | | | Enhance nandsim to be able to create more than 1 partition. A new module parameter 'parts' may be used to specify partition sizes. Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] [NAND] Casting bug in nand_default_block_markbadAndre Renaud2007-04-171-1/+1
| | | | | | | | | | | There is a slight bug in nand_default_block_markbad, where the offset is cast to an integer, prior to being shifted. This means that on large offsets, it is incorrectly doing a signed shift & losing bits. Fixed this by doing the cast after the shift (as is done elsewhere in the code). Signed-off-by: Andre Renaud <andre@bluewatersys.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] [NAND] Move ancient NAND chip support into a config optionThomas Gleixner2007-04-172-0/+12
| | | | | | | | | The support for obsolete ancient NAND chips adds .data size and one of the old ids conflicts with a modern one. Make the support for such chips depending on a config option. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] [NAND] Use ecc.read/write_page_raw consequentlyThomas Gleixner2007-04-171-2/+2
| | | | | | | | | Use the functions in the ecc structure instead of the default ones, so the override by the board driver is effective also for software ecc code paths. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD][NAND] Add Micron Manufacturer IDsshahrom@micron.com2007-04-171-0/+1
| | | | | | | | Add Micron Manufacturer ID. Signed-off-by: Shahrom Sharif <sshahrom@micron.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] [NAND] Remember timing settings for CAFÉ NAND controller.David Woodhouse2007-03-231-14/+11
| | | | | | We'll need them for suspend/resume. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] [NAND] Correct misspelled preprocessor variable.Robert P. J. Day2007-03-081-1/+1
| | | | | | | | | Replace the apparently misspelled preprocessor variable "MTD_NAND_DISKONCHIP_BBTWRITE" with the correct form "CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE". Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] [NAND] make oobavail publicVitaly Wool2007-03-081-0/+1
| | | | | | | | | | | During the MTD rework the oobavail parameter of mtd_info structure has become private. This is not quite correct in terms of integrity and logic. If we have means to write to OOB area, then we'd like to know upfront how many bytes out of OOB are spare per page to be able to adapt to specific cases. The patch inlined adds the public oobavail parameter. Signed-off-by: Vitaly Wool <vwool@ru.mvista.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [ARM] 4233/1: nand/s3c2410.c: warning fixArnaud Patard2007-02-251-1/+1
| | | | | | | | | | | Noticed while building a s3c2410 kernel : drivers/mtd/nand/s3c2410.c: In function 's3c2440_nand_calculate_ecc': drivers/mtd/nand/s3c2410.c:476: warning: format '%06x' expects type 'unsigned int', but argument 3 has type 'long unsigned int' This patch fixes it. Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Merge git://git.infradead.org/mtd-2.6Linus Torvalds2007-02-197-73/+424
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.infradead.org/mtd-2.6: (49 commits) [MTD] [NAND] S3C2412 fix hw ecc [MTD] [NAND] Work around false compiler warning in CAFÉ driver [JFFS2] printk warning fixes [MTD] [MAPS] ichxrom warning fix [MTD] [MAPS] amd76xrom warning fix [MTD] [MAPS] esb2rom warning fixes [MTD] [MAPS] ck804xrom warning fix [MTD] [MAPS] netsc520 warning fix [MTD] [MAPS] sc520cdp warning fix [MTD] [ONENAND] onenand_base warning fix [MTD] [NAND] eXcite nand flash driver [MTD] Improve heuristic for detecting wrong-endian RedBoot partition table [MTD] Fix RedBoot partition parsing regression harder. [MTD] [NAND] S3C2410: Hardware ECC correction code [JFFS2] Use MTD_OOB_AUTO to automatically place cleanmarker on NAND [MTD] Clarify OOB-operation interface comments [MTD] remove unused ecctype,eccsize fields from struct mtd_info [MTD] [NOR] Intel: remove ugly PROGREGION macros [MTD] [NOR] STAA: use writesize instead off eccsize to represent ECC block [MTD] OneNAND: Invalidate bufferRAM after erase ...
| * [MTD] [NAND] S3C2412 fix hw eccMatthieu CASTET2007-02-181-0/+27
| | | | | | | | | | | | | | | | S3C2412 use differents registers than s3c2440 for hw ecc handling. Signed-off-by: Matthieu CASTET <matthieu.castet@parrot.fr> Acked-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [MTD] [NAND] Work around false compiler warning in CAFÉ driverAndrew Morton2007-02-181-2/+2
| | | | | | | | | | | | | | | | drivers/mtd/nand/cafe.c: In function 'cafe_nand_cmdfunc': drivers/mtd/nand/cafe.c:269: warning: 'irqs' may be used uninitialized in this function Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [MTD] [NAND] eXcite nand flash driverThomas Koeller2007-02-113-0/+257
| | | | | | | | | | | | | | | | This is a nand flash driver for the eXcite series of intelligent cameras manufactured by Basler Vision Technologies AG. Signed-off-by: Thomas Koeller <thomas.koeller@baslerweb.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [MTD] [NAND] S3C2410: Hardware ECC correction codeBen Dooks2007-02-092-13/+62
| | | | | | | | | | | | | | | | Add support for correcting errors detected by the hardware ECC. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [MTD] remove unused ecctype,eccsize fields from struct mtd_infoArtem Bityutskiy2007-02-091-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | Remove unused and broken mtd->ecctype and mtd->eccsize fields from struct mtd_info. Do not remove them from userspace API data structures (don't want to breake userspace) but mark them as obsolete by a comment. Any userspace program which uses them should be half-broken anyway, so this is more about saving data structure size. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [MTD] [NAND] Fix an off-by-one in a BUG_ON in CAFÉ ECC correction.Adrian Bunk2007-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | err_pos_lut[4096] of an array with 4096 elements is a bug. Spotted by the Coverity checker. While I was at it, I also converted it to ARRAY_SIZE(). Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [MTD] [NAND] Correctly validate out-of-band offset and lengthAdrian Hunter2007-02-091-5/+41
| | | | | | | | | | | | | | | | | | | | | | | | Add checks to ensure that out-of-band reads and writes are not attempted with an invalid offset or length. Specifically, the offset must be less than the size of oob for a page and the length must not go beyond the size of the device. Additionally the checks must adjust for auto-placement (MTD_OOB_AUTO) of oob data. Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * [MTD NAND] CAFÉ controller depends, perhaps unsurprisingly, on NANDDavid Woodhouse2007-02-051-1/+1
| | | | | | | | | | | | Noticed by Ingo. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * Merge branch 'master' of ↵David Woodhouse2007-02-051-0/+1
| |\ | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
| * | [MTD] [NAND] Remove debugging cruft from CAFÉ NAND driver.David Woodhouse2007-01-231-37/+4
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * | [MTD] [NAND] Inherit CAFÉ NAND timing setup from firmwareDavid Woodhouse2007-01-231-14/+30
| | | | | | | | | | | | | | | | | | | | | | | | The precise timings are board-specific (or NAND chip specific) and don't belong here. If they're set already, then use what we find there. Otherwise, revert to the most conservative default values (and whinge). Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* | | [PATCH] Scheduled removal of SA_xxx interrupt flags fixups 2Thomas Gleixner2007-02-141-1/+2
| |/ |/| | | | | | | | | | | | | | | | | The obsolete SA_xxx interrupt flags have been used despite the scheduled removal. Fixup the remaining users in -mm. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] mtd/nand/cafe.c missing include of dma-mapping.hAl Viro2007-01-301-0/+1
|/ | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [MTD] NAND: Support for 16-bit bus-width on AT91.Andrew Victor2006-12-081-0/+3
| | | | | | | | | | | | Add support for 16-bit NAND bus-width for the AT91 NAND driver. The 16-bit NAND is found on the Atmel AT91SAM9260-EK and AT91SAM9261-EK boards. Orignal Patch from Patrice Vilchez Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] nandsim: bugfix in page addressingArtem Bityutskiy2006-12-081-2/+2
| | | | | | | Number of address bytes for 64-128 MiB NANDs is 4, not 5. Signed-off-by: Artem Bityutskiy <dedekind@infradead.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] NAND: use SmartMedia ECC byte order for ndfcTimo Lindhorst2006-12-051-0/+1
| | | | | | | | | | | | Select MTD_NAND_ECC_SMC (ECC byte order according to the Smart Media Specification) if MTD_NAND_NDFC is used. Using the wrong byte order causes fatal, unnoticed data damage. For further information see: http://lists.infradead.org/pipermail/linux-mtd/2006-November/016920.html Signed-off-by: Timo Lindhorst <lindhors@linux.vnet.ibm.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* [MTD] [NAND] Compile fix in rfc_from4.cMariusz Kozlowski2006-12-011-1/+1
| | | | | | Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* Merge branch 'master' of ↵David Woodhouse2006-12-011-0/+1
|\ | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
| * [PATCH] silence 'make xmldocs' warning by adding missing description of ↵Jesper Juhl2006-10-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | 'raw' in nand_base.c:1485 Add description of 'raw' in comments for drivers/mtd/nand/nand_base.c::nand_write_page_syndrome() so 'make xmldocs' will not spew a warning at us. Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [MTD] Remove trailing whitespaceDavid Woodhouse2006-11-304-535/+534
| | | | | | | | | | | | | | The newly-added cafe_ecc.c had a lot of it because of the way the lookup table was auto-generated; clean up the other files too while we're at it. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* | [MTD] NAND: add subpage write supportThomas Gleixner2006-11-291-9/+44
| | | | | | | | | | | | | | Many SLC NANDs support up to 4 writes at one NAND page. Add support of this feature. Signed-off-by: Artem Bityutskiy <dedekind@infradead.org>
* | [MTD] Tidy bitrev usage in rtc_from4.cAndrew Morton2006-11-291-1/+1
| | | | | | | | | | Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* | [MTD] [NAND] fix ifdef option in nand_ecc.cTimo Lindhorst2006-11-291-2/+2
| | | | | | | | | | | | | | Fix up the config option in the #ifdef statements in nand_ecc.c Signed-off-by: Timo Lindhorst <lindhors@linux.vnet.ibm.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* | [MTD] [NAND] Update CAFÉ driver interrupt handler prototypeDavid Woodhouse2006-11-291-1/+1
| | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* | [MTD] replace kmalloc+memset with kzallocBurman Yan2006-11-283-9/+4
| | | | | | | | | | Signed-off-by: Yan Burman <yan_952@hotmail.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
* | Merge git://git.infradead.org/~dwmw2/cafe-2.6David Woodhouse2006-11-284-1/+2162
|\ \
| * | [MTD] NAND: Fix ECC settings in CAFÉ controller driver.David Woodhouse2006-11-011-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | We were resetting cafe->ctl2 to zero after an erase (and also during a write, but it was correctly reset after that). This meant that ECC reads after an erase were failing. Doh. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * | [MTD] NAND: Add register debugging spew option to CAFÉ driverDavid Woodhouse2006-10-311-13/+13
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * | [MTD] NAND: Use register #defines throughout CAFÉ driver, not numbersDavid Woodhouse2006-10-311-55/+63
| | | | | | | | | | | | | | | | | | | | | Also use cafe_readl() and cafe_writel() abstraction to make code slightly cleaner -- especially if we want to use it in PIO mode. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * | [MTD] NAND: Fix timing calculation in CAFÉ debugging messageDavid Woodhouse2006-10-281-1/+2
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * | [MTD] NAND: Remove empty block ECC workaroundDavid Woodhouse2006-10-271-27/+1
| | | | | | | | | | | | | | | | | | | | | They fixed the hardware so that ECC doesn't fail on reading an empty block. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * | [MTD] NAND: Add ECC debugging for CAFÉDavid Woodhouse2006-10-271-3/+36
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * | [MTD] CAFÉ NAND: Add 'slowtiming' parameter, default usedma and checkecc onDavid Woodhouse2006-10-271-11/+15
| | | | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * | [MTD] NAND: Reset Café controller before initialising.David Woodhouse2006-10-271-0/+4
| | | | | | | | | | | | | | | | | | Fixes http://dev.laptop.org/ticket/237 Signed-off-by: David Woodhouse <dwmw2@infradead.org>
| * | [MTD] NAND: Café ECC -- remove spurious BUG_ON() in err_pos()David Woodhouse2006-10-271-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | Being a value which isn't in the table is a case we explicitly check for in the caller. Don't BUG_ON() because it does actually happen in practice. Signed-off-by: David Woodhouse <dwmw2@infradead.org>