Trivial patch which adds the __init and __exit macros to the module_init /
module_exit functions to the following modules from drivers/mtd/
devices/m25p80.c
devices/slram.c
linux version 2.6.30
ftl.c
nand/cafe_nand.c
nand/cmx270_nand.c
Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Deleted the old drivers.
Broke the driver into separate files, for readability and to isolate
hardware dependencies.
Fixed bad block problems in the boot area for the i.MX23.
At this writing, UBI can't handle MTDs larger than 2GiB. If the
general use partition is larger than 2GiB, the driver will create
sub-partitions, none of which are larger than 2GiB.
Updated the default configs for the i.MX23 and i.MX28.
Other, miscellaneous changes.
Signed-off-by: Patrick Turley <patrick.turley@freescale.com>
This driver unifies the i.MX23 and i.MX28 NAND Flash drivers into a single
driver that supports both SoC's.
Signed-off-by: Patrick Turley <patrick.turley@freescale.com>
Changed the driver to detect ECC-based writes to the boot area and write a
byte to the OOB that matches the ROM behavior.
Signed-off-by: Patrick Turley <patrick.turley@freescale.com>
Changed the driver to ignore CONFIG_MTD_CONCAT, and work correctly with
CONFIG_MTD_PARTITIONS. Also turned on the GPMI driver and UBIFS in the
default config.
Signed-off-by: Patrick Turley <patrick.turley@freescale.com>
Uniform handling NFC INT bit clearance, the INT bit
will be unformed cleared in the wait_op_done function
after any NFC operation.
Signed-off-by:Jason Liu <r64343@freescale.com>
Update NFC INT wait timeout value to 1s.
1s should be enough for all platforms.
If INT bit not set for 1s timeout value, this
should be high potential of IC issues.
Signed-off-by:Jason Liu <r64343@freescale.com>
1.GPMI NAND flash scan scheme can overcome the shortcomings
of MTD NAND community code.
2.Put it to the common NAND directory can benifit I.MX NAND
driver besides GPMI NAND driver.
3.Fix the section mismatch build warnings on ALL platforms.
4.Fix the kbuild build errors of I.MX platforms.
Signed-off-by:Jason Liu <r64343@freescale.com>
1. Add wait timeout support to void dead loop in NAND driver,
2. Try best to use IRQ mode instead of POLLING mode
Signed-off-by:Jason Liu <r64343@freescale.com>
Write bootstream to kernel by kobs with BCH ECC.
Using the same combined Metadata & Block 0 BCH layout
with ROM code.
Page size 2048B; spare area 64B => ECC8, N=3, B0=512B, M=10B
Page size 4096B; spare area 128B => ECC8, N=7, B0=512B, M=10B
Page size 4096B; spare area 218B => ECC16, N=7, B0=512B, M=10B
Signed-off-by:Jason Liu <r64343@freescale.com>
Update NAND scan scheme to support new nand type. With this patch
Linux NAND driver can support new NAND flash on mx25/mx35 board while
compatible with old NAND on old boards.
Signed-off-by: Jason Liu <r64343@freescale.com>
No all regiser use _SCT. stmp3xxx_setl may write to wrong address.
please use __raw_write (value, REG_XXX_SET) to write date to SCT
register. Only REG_XXX_SCT is defined when it exist at hardware.
Signed-off-by: Frank.Li <Frank.Li@freescale.com>
Suspend then resume, kernel will print one warning message.
This is due to mtd suspend/resume framework change on 2.6.31 kernel.
Please refer to the follwing commit for detailed information
commit 15bce40cb3
[MTD] Restore suspend/resume support for mtd devices
Signed-off-by: Jason Liu <r64343@freescale.com>
Added the device identification and timing database. Adjusted the GPMI
NAND Flash driver to use this information.
Signed-off-by: Patrick Turley <patrick.turley@freescale.com>
Simplified the partitioning mechanism and, as a side effect, made the
GPMI NAND Flash driver usable (it was always crashing the kernel).
Signed-off-by: Patrick Turley <patrick.turley@freescale.com>
Nand status does not correct on MX51 TO2 and TO3.
1. Should use RBB_MODE 1 instead of 0 due to NFC bug(ENGcm09970)
For RBB_MODE 0,NFC has a bug,it doesn't sample correctly the
returned data on the I/O and therefore the INT is
asserted earlier than expected (i.e during the busy period)
2. Should use atomic status read instead of auto mode.
Auto mode status is not correct, the WP bit (IO7)
is not correct randomly, it wrongly report nand in write-protect
mode, which result in program/erase fail.
Signed-off-by:Jason Liu <r64343@freescale.com>
commit 76c23c32e3b3ad48e07e07897075ab19ae1ef117 upstream.
Fix ECC Correction bug where the byte offset location were double
fliped causing correction routine to toggle the wrong byte location
in the ECC segment. The ndfc_calculate_ecc routine change the order
of getting the ECC code.
/* The NDFC uses Smart Media (SMC) bytes order */
ecc_code[0] = p[2];
ecc_code[1] = p[1];
ecc_code[2] = p[3];
But in the Correction algorithm when calculating the byte offset
location, the b1 is used as the upper part of the address. Which
again reverse the order making the final byte offset address
location incorrect.
byte_addr = (addressbits[b1] << 4) + addressbits[b0];
The order is change to read it in straight and let the correction
function to revert it to SMC order.
Signed-off-by: Feng Kan <fkan@amcc.com>
Acked-by: Victor Gallardo <vgallardo@amcc.com>
Acked-by: Prodyut Hazarika <phazarika@amcc.com>
Acked-by: Stefan Roese <sr@denx.de>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
GCC 4.3.3 and 4.4.1 happily moves the dword load instruction out of the
loop in orion_nand_read_buf. This patch makes the instruction volatile
to avoid the issue. I've discussed this at gcc-help, refer to the thread
at
http://gcc.gnu.org/ml/gcc-help/2009-08/msg00187.html
The early clobber is added to avoid the destination registers and the
source register overlapping.
Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
We need to include jiffies.h manually in some cases, and the status
returned from omap_wait() was broken in two separate ways.
Also add cond_resched() to the loop.
Signed-off-by: Vimal Singh <vimalsingh@ti.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* git://git.infradead.org/mtd-2.6: (63 commits)
mtd: OneNAND: Allow setting of boundary information when built as module
jffs2: leaking jffs2_summary in function jffs2_scan_medium
mtd: nand: Fix memory leak on txx9ndfmc probe failure.
mtd: orion_nand: use burst reads with double word accesses
mtd/nand: s3c6400 support for s3c2410 driver
[MTD] [NAND] S3C2410: Use DIV_ROUND_UP
[MTD] [NAND] S3C2410: Deal with unaligned lengths in S3C2440 buffer read/write
[MTD] [NAND] S3C2410: Allow the machine code to get the BBT table from NAND
[MTD] [NAND] S3C2410: Added a kerneldoc for s3c2410_nand_set
mtd: physmap_of: Add multiple regions and concatenation support
mtd: nand: max_retries off by one in mxc_nand
mtd: nand: s3c2410_nand_setrate(): use correct macros for 2412/2440
mtd: onenand: add bbt_wait & unlock_all as replaceable for some platform
mtd: Flex-OneNAND support
mtd: nand: add OMAP2/OMAP3 NAND driver
mtd: maps: Blackfin async: fix memory leaks in probe/remove funcs
mtd: uclinux: mark local stuff static
mtd: uclinux: do not allow to be built as a module
mtd: uclinux: allow systems to override map addr/size
mtd: blackfin NFC: fix hang when using NAND on BF527-EZKITs
...
.ko is normally not included in Kconfig help, make it consistent.
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Commit 81933046ef ('mtd: Fix handling of
mtdname in txx9ndfmc.c') introduced a potential memory leak. The
'mtdname' member of the private data structure is now allocated
separately, but was not freed on certain error paths.
Fix that, and make things simpler by _always_ allocating it separately
so that we don't need 'if (mtdname != dev_name()) kfree(mtdname);'...
which gets ugly now that we're doing it more than once, and more likely
that we'll get it wrong some time.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
This is not 8 times faster than byte access, but still around 60% faster.
Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Add s3c6400 support to the s3c2410 driver. The nand controller in
the s3c64xx devices is compatible with the one in the s3c2412, so
simply reuse that code.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Acked-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Add code to deal with fractional lengths, as reported by
Werner Almesberger. Re-work of his original patch.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Added a flag to allow the machine code to tell the NAND
subsystem that it should try to pickup a BBT from the flash,
and also skip the NAND full scan at startup.
Signed-off-by: Michel Pollet <buserror@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Use the correct S3C2440_NFCONF_* macros for the mask for the 2412/2440
variants instead of the 2410 ones which use wrong bit positions.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>