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

Koen Beel
2011-07-28T09:38:43Z

Hi,

I have test on mx23evk board. Still see the same issues.

On Wed, Jul 27, 2011 at 3:53 AM, Huang Shijie <b32955@freescale.com> wrote:
> 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)

I still see this DMA timeout when booting.
What kernel parameters do you use? I still use same as above.

>>
>> 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)

Also still same issue here.

>>
>> 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

I have used this branch.

>
> 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.

I have used this config file. Only thing changed to the config file is
(uboot savenv not working):
CONFIG_CMDLINE="console=ttyAMA0,115200
mtdparts=gpmi-nand:20m(boot),-(user) ubi.mtd=1 root=ubi0:rootfs0
rootfstype=ubifs gpmi_debug_init"
CONFIG_CMDLINE_FORCE=y

br,
Koen

>
> 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<b32955@freescale.com>
>>  wrote:
>>>
>>> Hi Wolfram:
>>>>
>>>> On Fri, Jul 22, 2011 at 11:30:41AM +0800, Huang Shijie wrote:
>>>>>
>>>>> Hi,
>>>>>>>
>>>>>>> The general-purpose media interface(GPMI) controller is a flexible
>>>>>>> interface
>>>>>>> to up to several NAND flashs.
>>>>>>
>>>>>> ...
>>>>>>>
>>>>>>> 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.
>>>>>>>
>>>>>>> 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?
>>
>>>> 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.
>>
>>> 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?
>>
>>> Of course, you can use the my_config (i sent you last mail) for .config.
>>>
>>> Best Regards
>>> Huang Shijie
>>>
>>>
>>>> Shijie, please check and test it.  I only did a build test.
>>>>
>>>
>>>
>>> _______________________________________________
>>> linux-arm-kernel mailing list
>>> linux-arm-kernel@lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>>>
>
>