From: Huang Shijie <b32955@freescale.com>
To: Florian Fainelli <ffainelli@freebox.fr>
Cc: linux-mtd@lists.infradead.org, linux@arm.linux.org.uk,
dwmw2@infradead.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 5/7] add GPMI support for imx28
Date: Fri, 25 Mar 2011 10:50:32 +0800 [thread overview]
Message-ID: <4D8C02F8.50900@freescale.com> (raw)
In-Reply-To: <201103241454.53337.ffainelli@freebox.fr>
Hi Florian:
> Hello Huang,
>
> On Thursday 24 March 2011 09:51:40 Huang Shijie wrote:
>> Hi Lothar:
>>> Hi,
>>>
>>> Huang Shijie writes:
>>>> Hi Lothar:
>>>>>>> some general comments:
>>>>>>> - Why are you not using the existing nand_ids but inventing your own
>>>>>>>
>>>>>>> database?
>>>>>> The nand_ids{} contains poor information for me.
>>>>>> Such as :
>>>>>> [1]The nand_ids does not have the enough information for the page
>>>>>> size,oob size for some new NANDs.
>>>>>>
>>>>>> And you can not get the information from parsing the NAND ids,
>>>>>> such
>>>>>>
>>>>>> as some Micron NANDs.
>>>>> You could use it for the standard chips where you do not need
>>>>> additional information. That way most NAND chips could be supported
>>>>> out of the box without having to modify the driver.
>>>> What the meaning of "standard chips"?
>>> Those chips that are supported by other drivers for long time.
>> see belowing.
>>
>>>> There are many nands in the world. Every vendor has its own rules, some
>>>> even does has :)
>>>>
>>>> Unluckily, the imx23/imx28 supports many nands that the nand_ids{} does
>>>> not support.
>>> That's no reason to scrap support for all chips that every other
>>> driver supports.
>> Frankly speaking, Which nand we should to support depends on the
>> customer's requires.
>>
>> So we really do not want to support other nands that the customer does
>> not have.
>>
>>>> I have many nands by my hand. I will add it gradually.
>>> So why not add them to the generic database?
>> I ever thought to change the generic database. But I found it would cost
>> a long time.
>>
>> The parsing code in nand_get_flash_type() can not parse out the page
>> size/oob size
>> in some cases. And IMHO I do not think to get the page size/oob size by
>> parsing the ids is a good way,
>> this really makes the code mess (sorry, David, I really think the
>> current code is ugly.).
>>
>> IMHO, the best solution is add a database like mine. Using the id bytes
>> as the keyword to match the nand.
>> then to get the page size /oob size , etc, from the database.
>>
>> I will send a patch about this in future, but now, I do not want to be
>> stumbled by this problem.
>>
>>>> I want to get the page size/oob size from my own database which can not
>>>> get from the nand_ids.
>>> If there are parameters needed that cannot be obtained from the
>>> generic database, it might be worth upgrading that database instead of
>>> creating your own local database.
>>>
>>>>>> [2]I need the timing information of the NAND. The nand_ids DOES not
>>>>>> have it. I have to
>>>>>>
>>>>>> read the datasheet of the NAND, and add it to my database.
>>>>> Do we really need exact timing data for each individual chip?
>>>>> Or couldn't we live with some sane timing that works for most chips
>>>>> and provide some means to specify a different timing via
>>>>> platform_data?
>>>> Most of the time, the timing is really based on a safe timing setting.
>>>> But in the original GPMI driver in the FREESCALE BSP, there exits some
>>>> nands need to be set with their own timing setting.
>>>>
>>>> So I do not use the safe timing for _ALL_ the nand, and i'd better get
>>>> it from the
>>>> database.
>>> It should be sufficient to provide timing info from platform_data in
>>> special cases instead of bloating the nand id database with that
>>> stuff. Platforms might need to adjust the timing because of
>>> peculiarities in the HW. Thus the timing info should be provided from
>>> there, not from the chip database.
>> The timing information is needed by the GPMI module, not other module.
>> So the
>> best way to get this is from the chip database.
> Such a database already exists in drivers/mtd/nand/nand_ids.c. The idea here
> would be for you to get the NAND geometry characteristics from nands_ids.c,
> which benefits to all drivers in general, and let platform code define specific
> timings, which is specific to your driver.
>
I will remove the timing fields.
thanks.
WARNING: multiple messages have this Message-ID (diff)
From: b32955@freescale.com (Huang Shijie)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 5/7] add GPMI support for imx28
Date: Fri, 25 Mar 2011 10:50:32 +0800 [thread overview]
Message-ID: <4D8C02F8.50900@freescale.com> (raw)
In-Reply-To: <201103241454.53337.ffainelli@freebox.fr>
Hi Florian:
> Hello Huang,
>
> On Thursday 24 March 2011 09:51:40 Huang Shijie wrote:
>> Hi Lothar:
>>> Hi,
>>>
>>> Huang Shijie writes:
>>>> Hi Lothar:
>>>>>>> some general comments:
>>>>>>> - Why are you not using the existing nand_ids but inventing your own
>>>>>>>
>>>>>>> database?
>>>>>> The nand_ids{} contains poor information for me.
>>>>>> Such as :
>>>>>> [1]The nand_ids does not have the enough information for the page
>>>>>> size,oob size for some new NANDs.
>>>>>>
>>>>>> And you can not get the information from parsing the NAND ids,
>>>>>> such
>>>>>>
>>>>>> as some Micron NANDs.
>>>>> You could use it for the standard chips where you do not need
>>>>> additional information. That way most NAND chips could be supported
>>>>> out of the box without having to modify the driver.
>>>> What the meaning of "standard chips"?
>>> Those chips that are supported by other drivers for long time.
>> see belowing.
>>
>>>> There are many nands in the world. Every vendor has its own rules, some
>>>> even does has :)
>>>>
>>>> Unluckily, the imx23/imx28 supports many nands that the nand_ids{} does
>>>> not support.
>>> That's no reason to scrap support for all chips that every other
>>> driver supports.
>> Frankly speaking, Which nand we should to support depends on the
>> customer's requires.
>>
>> So we really do not want to support other nands that the customer does
>> not have.
>>
>>>> I have many nands by my hand. I will add it gradually.
>>> So why not add them to the generic database?
>> I ever thought to change the generic database. But I found it would cost
>> a long time.
>>
>> The parsing code in nand_get_flash_type() can not parse out the page
>> size/oob size
>> in some cases. And IMHO I do not think to get the page size/oob size by
>> parsing the ids is a good way,
>> this really makes the code mess (sorry, David, I really think the
>> current code is ugly.).
>>
>> IMHO, the best solution is add a database like mine. Using the id bytes
>> as the keyword to match the nand.
>> then to get the page size /oob size , etc, from the database.
>>
>> I will send a patch about this in future, but now, I do not want to be
>> stumbled by this problem.
>>
>>>> I want to get the page size/oob size from my own database which can not
>>>> get from the nand_ids.
>>> If there are parameters needed that cannot be obtained from the
>>> generic database, it might be worth upgrading that database instead of
>>> creating your own local database.
>>>
>>>>>> [2]I need the timing information of the NAND. The nand_ids DOES not
>>>>>> have it. I have to
>>>>>>
>>>>>> read the datasheet of the NAND, and add it to my database.
>>>>> Do we really need exact timing data for each individual chip?
>>>>> Or couldn't we live with some sane timing that works for most chips
>>>>> and provide some means to specify a different timing via
>>>>> platform_data?
>>>> Most of the time, the timing is really based on a safe timing setting.
>>>> But in the original GPMI driver in the FREESCALE BSP, there exits some
>>>> nands need to be set with their own timing setting.
>>>>
>>>> So I do not use the safe timing for _ALL_ the nand, and i'd better get
>>>> it from the
>>>> database.
>>> It should be sufficient to provide timing info from platform_data in
>>> special cases instead of bloating the nand id database with that
>>> stuff. Platforms might need to adjust the timing because of
>>> peculiarities in the HW. Thus the timing info should be provided from
>>> there, not from the chip database.
>> The timing information is needed by the GPMI module, not other module.
>> So the
>> best way to get this is from the chip database.
> Such a database already exists in drivers/mtd/nand/nand_ids.c. The idea here
> would be for you to get the NAND geometry characteristics from nands_ids.c,
> which benefits to all drivers in general, and let platform code define specific
> timings, which is specific to your driver.
>
I will remove the timing fields.
thanks.
next prev parent reply other threads:[~2011-03-25 2:50 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-16 1:42 [PATCH 0/7] add the GPMI controller driver for IMX23/IMX28 Huang Shijie
2011-03-16 1:42 ` [PATCH 1/7] ARM: add GPMI support for imx23/imx28 Huang Shijie
2011-03-16 10:13 ` Lothar Waßmann
[not found] ` <4D809453.4090603@freescale.com>
[not found] ` <19840.43943.592336.854865@ipc1.ka-ro>
2011-03-17 2:19 ` Huang Shijie
2011-03-17 2:19 ` Huang Shijie
2011-03-17 10:36 ` Lothar Waßmann
2011-03-17 10:36 ` Lothar Waßmann
2011-03-18 2:06 ` Huang Shijie
2011-03-18 2:06 ` Huang Shijie
2011-03-16 1:42 ` [PATCH 2/7] add the common code for GPMI driver Huang Shijie
2011-03-22 12:36 ` =?utf-8?Q?Lothar_Wa=C3=9Fmann?=
2011-03-23 3:41 ` Huang Shijie
2011-03-23 3:41 ` Huang Shijie
2011-03-16 1:42 ` [PATCH 3/7] add the database for the NANDs Huang Shijie
2011-03-16 1:42 ` [PATCH 4/7] add GPMI support for imx23 Huang Shijie
2011-03-16 1:42 ` [PATCH 5/7] add GPMI support for imx28 Huang Shijie
2011-03-22 12:46 ` Lothar Waßmann
2011-03-23 3:11 ` Huang Shijie
2011-03-23 3:11 ` Huang Shijie
2011-03-23 14:56 ` Lothar Waßmann
2011-03-23 14:56 ` Lothar Waßmann
2011-03-23 15:16 ` Florian Fainelli
2011-03-23 15:16 ` Florian Fainelli
2011-03-24 3:07 ` Huang Shijie
2011-03-24 3:07 ` Huang Shijie
2011-03-24 3:03 ` Huang Shijie
2011-03-24 3:03 ` Huang Shijie
2011-03-24 7:34 ` Lothar Waßmann
2011-03-24 7:34 ` Lothar Waßmann
2011-03-24 8:26 ` Jason Liu
2011-03-24 8:26 ` Jason Liu
2011-03-24 8:32 ` Wolfram Sang
2011-03-24 8:32 ` Wolfram Sang
2011-03-24 8:33 ` Lothar Waßmann
2011-03-24 8:33 ` Lothar Waßmann
2011-03-24 8:51 ` Huang Shijie
2011-03-24 8:51 ` Huang Shijie
2011-03-24 13:54 ` Florian Fainelli
2011-03-24 13:54 ` Florian Fainelli
2011-03-25 2:50 ` Huang Shijie [this message]
2011-03-25 2:50 ` Huang Shijie
2011-03-16 1:42 ` [PATCH 6/7] dmaengine: change the flags of request_irq() Huang Shijie
2011-03-16 10:13 ` Lothar Waßmann
2011-03-16 12:31 ` 答复: " Huang Shijie-B32955
2011-03-18 6:12 ` Huang Shijie
2011-03-16 1:42 ` [PATCH 7/7] MTD : add GPMI driver in the config and Makefile Huang Shijie
-- strict thread matches above, loose matches on Subject: below --
2011-03-16 1:55 [PATCH 0/7] add the GPMI controller driver for IMX23/IMX28 Huang Shijie
2011-03-16 1:55 ` [PATCH 5/7] add GPMI support for imx28 Huang Shijie
2011-03-16 1:55 ` Huang Shijie
2011-03-31 9:47 ` Artem Bityutskiy
2011-03-31 9:47 ` Artem Bityutskiy
2011-03-31 10:09 ` Huang Shijie
2011-03-31 10:09 ` Huang Shijie
2011-03-31 9:49 ` Artem Bityutskiy
2011-03-31 9:49 ` Artem Bityutskiy
2011-03-31 9:49 ` Artem Bityutskiy
2011-03-31 9:49 ` Artem Bityutskiy
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=4D8C02F8.50900@freescale.com \
--to=b32955@freescale.com \
--cc=dwmw2@infradead.org \
--cc=ffainelli@freebox.fr \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux@arm.linux.org.uk \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.