linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: b32955@freescale.com (Huang Shijie)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v8 0/3] add the GPMI controller driver for IMX23/IMX28
Date: Thu, 21 Jul 2011 14:47:23 +0800	[thread overview]
Message-ID: <1311230846-26437-1-git-send-email-b32955@freescale.com> (raw)

The patch is based on branch "imx-for-3.1" of tree :
      git://git.pengutronix.de/git/imx/linux-2.6.git

The general-purpose media interface(GPMI) controller is a flexible interface
to up to several NAND flashs.

The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC accelerator.

With the help of BCH, the GPMI controller can choose to do the hardware ECC or
not.

This driver is a _pure_ MTD NAND controller driver now.

To Walfram & Artem:
    About how to disable the JFFS2 to use the OOB:
    I read the code, and I still have no idea about how to use the ecclayout
    to do the job. Could you give me some hint? thanks.

The driver depends on another GPMI-NAND device patch set, you can find them at :
	[1] http://lists.infradead.org/pipermail/linux-mtd/2011-July/037033.html
	[2] http://lists.infradead.org/pipermail/linux-mtd/2011-July/037031.html
	[3] http://lists.infradead.org/pipermail/linux-mtd/2011-July/037032.html
	[4] http://lists.infradead.org/pipermail/linux-mtd/2011-July/037034.html

The driver also depends on another DMA patch by Shawn:
	[0] http://lists.infradead.org/pipermail/linux-mtd/2011-June/036820.html

Test environment:
	Using imx23 and imx28 boards for test. 

	imx23 (burn the rootfs to NAND):
	console=ttyAMA0,115200 mtdparts=gpmi-nfc:20m(boot),-(user)  ubi.mtd=1 root=ubi0:rootfs0 rootfstype=ubifs gpmi_debug_init

        imx28 :
	#console=ttyAMA0,115200 root=/dev/mmcblk0p3 rw rootwait gpmi_debug_init
	#console=ttyAMA0,115200 root=/dev/nfs ip=:::::eth0:dhcp nfsroot=10.192.242.11:/root/nfs_root/imx28 gpmi_debug_init

v7 --> v8:
	[0] rename the name from `GPMI-NFC` to `GPMI-NAND`
	[1] remove the `hal` layer, and change it to function library.
	[2] Do not use ~0 to initialize the DMA address.
	[3] fix the issue : several DMA channels share the same IRQ.
	[4] DMA timeout issue. I use the .config created by `make mxs_defconfig`
	    and the bug never occur. It seems some other module has impact to the
	    DMA.
	    Of course, you should enable the UBIFS,MTD_CHAR and GPMI for
	    the .config. You can also disable the SPIN-LOCK/MUTEX debug features.
	[5] add function to print out the GPMI registers.	    
	[6] others.	    

v6 --> v7:
	[0] remove the function wrapping the clock.
	[1] use the module_param() for debugging.
	[2] use the new interface of MTD partitions.
		replace add_mtd_partitions() with mtd_device_register().
	[3] use pr_info() to print log.
	[4] add `__devinit` for some functions, etc.
	[5] add `gpmi_nfc` to control the GPMI-NFC driver's initialization.
	[6] others.

v5 --> v6:
	[0] split out the IMX23/IMX28 arch code to separate patches.
	[1] fix bug : missing empty item in the end of platform_id array.
	[2] inconsistent identation.
	[3] others

v4 --> v5:
	[0] rename the files.
	[1] fix PM bug
	[2] remove the rom_helper code, and move the necessary initialization code
		to the main file.
	[3] change the macros from CPU_IS_* to GPMI_IS_*
	[4] remove the default partition layout init code. revert back the 
		partition parsing command line code.
	[5] others

v3 --> v4:
	[0] use the nand_ids{} as the nand database, drop my own database.
	[1] remove the patch for DMA enginer, Shawn will submit his own version.
	[2] use the platform_id to distinguish different Archs.
	[3] fix the strange coding style.
	[4] others.

v2 --> v3:
	[0] merge the imx23 and imx28 into one file(including the header file).
	[1] remove the unuse registers in the headers.
	[2] fix DMA bugs
	[3] add bus width field to nand_attr{}
	[4] others

v1 --> v2:
	[0] merge the common files into the gpmi-nfc-main.c
	[1] change the code to get the clock.
	[2] remove the timing in the nand_device_info{}
	[3] fix DMA errors
	[4] add the nand_device_info.[ch] to generic code
	[5] use the chip->onfi_version for the ONFI nand
	[6] useless init
	[7] others

Huang Shijie (3):
  MTD : add the common code for GPMI-NAND controller driver
  MTD : add helper functions library and header files for GPMI NAND
    driver
  MTD : add GPMI-NAND driver in the config and Makefile

 drivers/mtd/nand/Kconfig               |   11 +
 drivers/mtd/nand/Makefile              |    1 +
 drivers/mtd/nand/gpmi-nand/Makefile    |    3 +
 drivers/mtd/nand/gpmi-nand/bch-regs.h  |   88 ++
 drivers/mtd/nand/gpmi-nand/gpmi-lib.c  |  978 ++++++++++++++++
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 1987 ++++++++++++++++++++++++++++++++
 drivers/mtd/nand/gpmi-nand/gpmi-nand.h |  390 +++++++
 drivers/mtd/nand/gpmi-nand/gpmi-regs.h |  174 +++
 8 files changed, 3632 insertions(+), 0 deletions(-)
 create mode 100644 drivers/mtd/nand/gpmi-nand/Makefile
 create mode 100644 drivers/mtd/nand/gpmi-nand/bch-regs.h
 create mode 100644 drivers/mtd/nand/gpmi-nand/gpmi-lib.c
 create mode 100644 drivers/mtd/nand/gpmi-nand/gpmi-nand.c
 create mode 100644 drivers/mtd/nand/gpmi-nand/gpmi-nand.h
 create mode 100644 drivers/mtd/nand/gpmi-nand/gpmi-regs.h

             reply	other threads:[~2011-07-21  6:47 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-21  6:47 Huang Shijie [this message]
2011-07-21  6:47 ` [PATCH v8 1/3] MTD : add the common code for GPMI-NAND controller driver Huang Shijie
2011-07-21  6:47 ` [PATCH v8 2/3] MTD : add helper functions library and header files for GPMI NAND driver Huang Shijie
2011-07-21  6:47 ` [PATCH v8 3/3] MTD : add GPMI-NAND driver in the config and Makefile Huang Shijie
2011-07-21 21:50 ` [PATCH v8 0/3] add the GPMI controller driver for IMX23/IMX28 Wolfram Sang
2011-07-22  3:30   ` Huang Shijie
2011-07-22  5:57     ` Shawn Guo
2011-07-22  8:07       ` Huang Shijie
2011-07-26 14:29         ` Koen Beel
2011-07-27  1:53           ` Huang Shijie
2011-07-28  9:38             ` Koen Beel
2011-07-29  7:20               ` Lothar Waßmann
2011-07-29  7:40                 ` Koen Beel
2011-07-29  7:49                   ` Lothar Waßmann
2011-07-29  9:49                   ` Huang Shijie
2011-07-29 11:48                     ` Koen Beel
2011-08-02  6:19                       ` Huang Shijie
2011-08-02  7:16                         ` Shawn Guo
2011-08-02  8:11                         ` Shawn Guo
2011-08-02  8:12                         ` Shawn Guo
2011-08-02  8:22                           ` Huang Shijie
2011-07-29 12:41                   ` Lothar Waßmann
2011-07-29 15:00                     ` Koen Beel
2011-07-31 13:51                       ` Marek Vasut
2011-08-01 15:14                         ` Koen Beel
2011-08-02  6:37                           ` Huang Shijie
2011-08-02  7:33                             ` Koen Beel
2011-08-02  7:44                               ` Huang Shijie
2011-08-02  8:55                                 ` Koen Beel
2011-08-02  8:49                               ` Huang Shijie
2011-08-02  9:29                                 ` Koen Beel
2011-08-02 10:37                                   ` Huang Shijie
2011-08-02 12:32                                     ` Koen Beel
2011-08-02  6:21                       ` Huang Shijie
2011-08-03 10:37                   ` Wolfram Sang
2011-08-03 12:00                     ` Koen Beel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1311230846-26437-1-git-send-email-b32955@freescale.com \
    --to=b32955@freescale.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).