Thread (36 messages) 36 messages, 6 authors, 2011-08-03
STALE5432d
Revisions (40)
  1. v1 [diff vs current]
  2. v1 [diff vs current]
  3. v1 [diff vs current]
  4. v1 [diff vs current]
  5. v2 [diff vs current]
  6. v2 [diff vs current]
  7. v2 [diff vs current]
  8. v2 [diff vs current]
  9. v3 [diff vs current]
  10. v4 [diff vs current]
  11. v4 [diff vs current]
  12. v4 [diff vs current]
  13. v4 [diff vs current]
  14. v5 [diff vs current]
  15. v6 [diff vs current]
  16. v7 [diff vs current]
  17. v7 [diff vs current]
  18. v8 [diff vs current]
  19. v8 [diff vs current]
  20. v8 [diff vs current]
  21. v8 current
  22. v8 [diff vs current]
  23. v8 [diff vs current]
  24. v8 [diff vs current]
  25. v8 [diff vs current]
  26. v8 [diff vs current]
  27. v8 [diff vs current]
  28. v8 [diff vs current]
  29. v8 [diff vs current]
  30. v9 [diff vs current]
  31. v9 [diff vs current]
  32. v10 [diff vs current]
  33. v10 [diff vs current]
  34. v11 [diff vs current]
  35. v12 [diff vs current]
  36. v12 [diff vs current]
  37. v12 [diff vs current]
  38. v12 [diff vs current]
  39. v12 [diff vs current]
  40. v12 [diff vs current]

[PATCH v8 0/3] add the GPMI controller driver for IMX23/IMX28

From: Huang Shijie <hidden>
Date: 2011-07-27 01:53:20

Hi,

Thanks for your test.
Hi,

It's not really working for me.
I've applied all gpmi-nand driver patches and the dma driver patches.

I have added following kernel parameters:
mtdparts=gpmi-nand:20m(boot),-(user) ubi.mtd=1 root=ubi0:rootfs0
rootfstype=ubifs gpmi_debug_init

During boot I get already get DMA timeout:
[    2.560000] [ start_dma_without_bch_irq : 392 ] DMA timeout, last DMA :1
[    3.560000] [ start_dma_with_bch_irq : 427 ] bch timeout!!!
...
(see log file in attach line 89)

When trying flash_erraseall /dev/mtd1 I get:
Erasing 128 Kibyte @ 20000 --  0 % complete [   16.700000] [
gpmi_read_data : 832 ] step 1 error
[   16.700000] [ gpmi_send_command : 749 ] step 1 error
[   16.700000] [ mil_cmd_ctrl : 894 ] Chip: 0, Error -1
[   16.700000] [ gpmi_send_command : 749 ] step 1 error
[   16.700000] [ mil_cmd_ctrl : 894 ] Chip: 0, Error -1
[   16.700000] [ gpmi_send_command : 749 ] step 1 error
[   16.700000] [ mil_cmd_ctrl : 894 ] Chip: 0, Error -1
[   16.700000] [ gpmi_read_data : 832 ] step 1 error
libmtd: error!: MEMERA[   16.740000] [ gpmi_send_command : 749 ] step 1 error
SE64 ioctl failed for eraseblock[   16.750000] [ mil_cmd_ctrl : 894 ]
Chip: 0, Error -1
  1 (mtd1)
         error 5 (Input/output error)
flash_erase: error!: /dev/mtd1: MTD Erase failure
              error 5 (Input/output error)
...
(see log file in attach line 128 and further)

Environment:
- patches on a 2.6.39.1 kernel (needed to modify the patch a little
for changed mtd add/del interface).
Please test the driver on :
   git://git.linaro.org/people/shawnguo/linux-2.6.git mxs-gpmi

or on

  git://git.pengutronix.de/git/imx/linux-2.6.git  imx-for-3.1



I found the .config may influence the DMA.
I guess there is some module which has impact to the DMA.
So You should use the right .config first, you can get the right
.config by two ways:
[1] use the 'make mxs_defconfig' in the imx-for-3.1 branch of
   tree: git://git.pengutronix.de/git/imx/linux-2.6.git

[2] use the attachment which is tested by me.

Best Regards
Huang Shijie


- using this on our own mx23 based board, so also added some board
init code for that.


On Fri, Jul 22, 2011 at 10:07 AM, Huang Shijie[off-list ref]  wrote:
quoted
Hi Wolfram:
quoted
On Fri, Jul 22, 2011 at 11:30:41AM +0800, Huang Shijie wrote:
quoted
Hi,
quoted
quoted
The general-purpose media interface(GPMI) controller is a flexible
interface
to up to several NAND flashs.
...
quoted
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.
Have you checked mxc_nand.c for example? There is

static struct nand_ecclayout nandv1_hw_eccoob_smallpage = {
         .eccbytes = 5,
         .eccpos = {6, 7, 8, 9, 10},
         .oobfree = {{0, 5}, {12, 4}, }
}

defined as one layout. Now, you could define one where oobfree is empty
and
eccbytes as big as the oob-area.
thanks. I will check the code.
quoted
quoted
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
This makes it difficult for testers/reviewers. Please try to get a
git-branch
from Freescale or Linaro.
Shawn will merge my patches to his Linaro branch.
I don't see the DMA patch in the git?
quoted
quoted
git://git.linaro.org/people/shawnguo/linux-2.6.git mxs-gpmi
Please test the GPMI driver based this git tree.
I will try that on an mx23evk board.
quoted
I tested, and the DMA-timeout does not occur any more.

I notice that Shawn added two more patched to
/arch/arm/config/mxs_defconfig:
[1] ARM: mxs_defconfig: Add mx23evk and mx28evk build
[2] ARM: mxs_defconfig: Change CONFIG_RTC_CLASS 'm' to 'y'

Please check it. Maybe your kernel code misses them.
I don't see any of this in the git?
quoted
Of course, you can use the my_config (i sent you last mail) for .config.

Best Regards
Huang Shijie

quoted
Shijie, please check and test it.  I only did a build test.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: my_config
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20110727/ac087c9b/attachment-0001.ksh>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help