From: Jon Hunter <jon-hunter@ti.com>
To: Tony Lindgren <tony@atomide.com>
Cc: "Mohammed, Afzal" <afzal@ti.com>,
"paul@pwsan.com" <paul@pwsan.com>,
"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v5 3/3] ARM: OMAP2+: onenand: prepare for gpmc driver migration
Date: Mon, 2 Jul 2012 12:25:20 -0500 [thread overview]
Message-ID: <4FF1D980.4040100@ti.com> (raw)
In-Reply-To: <20120702063651.GO4202@atomide.com>
On 07/02/2012 01:36 AM, Tony Lindgren wrote:
> * Jon Hunter <jon-hunter@ti.com> [120628 09:48]:
>>
>> [ 2.792510] OneNAND driver initializing
>> [ 2.797576] omap2-onenand omap2-onenand: initializing on CS2, phys base 0x20000000, virtual base c88c0000, freq 0 MHz
>> [ 2.808929] OneNAND Manufacturer: Samsung (0xec)
>> [ 2.808990] Muxed OneNAND 256MB 1.8V 16-bit (0x40)
>> [ 2.814208] OneNAND version = 0x002c
>>
>> The above change seems to imply that Tony's n900 is dependent on the bootloader settings
>> and not those being set by the kernel. Ideally, we should not need to set the async mode
>> in the onenand before we set the onenand timings in the gpmc (per Afzal's changelog
>> comment). This appears backwards.
>
> That should not be the case, I'm more likely to believe in Afzal's explanation.
Right I agree with Afzal's explanation now too.
>> The other thing to note is that the 3430sdp has samsung onenand where as the n900 has
>> Numonyx. The gpmc-onenand.c only has one set of settings that it is using for all
>> devices. However, it would appear that at least the async settings are not working for
>> the Numonyx. Therefore, may be we need to get a dump of Tony's n900 settings and make
>> sure the right settings are being used for the appropriate board.
>
> Hmm I would assume the n900 onenand settings are the most tested settings we have.
> And AFAIK have also been tested with L3 frequency scaling. So let's assume they're
> mostly right.
>
>> These onenand settings are really killing us. I don't want us to have to spend alot
>> of time re-calculating this stuff but the way it has been written to begin with is not
>> driver friendly. I really wonder if we need to have some sort of callback for the
>> onenand timings from the driver. It is ugly, but the alternative is that someone needs
>> to sit down and re-calculate all the timings again to get them into a driver friendly
>> format. Furthermore, it seems that onenand is no longer available from the likes of
>> samsung and numonyx (micron) so it is hard to justify re-calculating everything again.
>> I am not even sure if we have all the datasheets!
>>
>> Let me know your thoughts.
>
> I don't think we should spend much time working on the recalculations. Let's rather
> use these known working cases as examples. If they don't work, it's likely that
> adding any new devices won't work either.
>
> For the timings, we should allow specifying either cycles or time values in the
> data struct. And always just use the cycle value directly if specified, and
> othewise use the time value. We may be able to limit the registers where we need
> to allow either cycle or time value depending on the device futher.
>
> In general, I doubt that we can come up with better calculations. The existing
> code pretty well already follows the device spec timings. And using cycle values
> for some registers is the right thing to do according to the connected device
> specs no matter what the frequency is. In those cases converting from time values
> to cycles does not make sense.
Ok agree, but the problem here is how to provide the timings to the
driver. The onenand code is doing a lot of rounding based upon the gpmc
clock before it presents the timings (in nano-seconds) to the gpmc
function to calculate the final timings and program the gpmc
chip-select. So therefore I think that we have the following options ...
1. The simplest is to continue using a global variable for storing the
gpmc f-clk handle and have the OneNAND timings calculated prior to
probing the gpmc driver.
2. Provide some sort of "retime" callback that the gpmc driver can call
at probe time to calculate the timings.
Cheers
Jon
WARNING: multiple messages have this Message-ID (diff)
From: jon-hunter@ti.com (Jon Hunter)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 3/3] ARM: OMAP2+: onenand: prepare for gpmc driver migration
Date: Mon, 2 Jul 2012 12:25:20 -0500 [thread overview]
Message-ID: <4FF1D980.4040100@ti.com> (raw)
In-Reply-To: <20120702063651.GO4202@atomide.com>
On 07/02/2012 01:36 AM, Tony Lindgren wrote:
> * Jon Hunter <jon-hunter@ti.com> [120628 09:48]:
>>
>> [ 2.792510] OneNAND driver initializing
>> [ 2.797576] omap2-onenand omap2-onenand: initializing on CS2, phys base 0x20000000, virtual base c88c0000, freq 0 MHz
>> [ 2.808929] OneNAND Manufacturer: Samsung (0xec)
>> [ 2.808990] Muxed OneNAND 256MB 1.8V 16-bit (0x40)
>> [ 2.814208] OneNAND version = 0x002c
>>
>> The above change seems to imply that Tony's n900 is dependent on the bootloader settings
>> and not those being set by the kernel. Ideally, we should not need to set the async mode
>> in the onenand before we set the onenand timings in the gpmc (per Afzal's changelog
>> comment). This appears backwards.
>
> That should not be the case, I'm more likely to believe in Afzal's explanation.
Right I agree with Afzal's explanation now too.
>> The other thing to note is that the 3430sdp has samsung onenand where as the n900 has
>> Numonyx. The gpmc-onenand.c only has one set of settings that it is using for all
>> devices. However, it would appear that at least the async settings are not working for
>> the Numonyx. Therefore, may be we need to get a dump of Tony's n900 settings and make
>> sure the right settings are being used for the appropriate board.
>
> Hmm I would assume the n900 onenand settings are the most tested settings we have.
> And AFAIK have also been tested with L3 frequency scaling. So let's assume they're
> mostly right.
>
>> These onenand settings are really killing us. I don't want us to have to spend alot
>> of time re-calculating this stuff but the way it has been written to begin with is not
>> driver friendly. I really wonder if we need to have some sort of callback for the
>> onenand timings from the driver. It is ugly, but the alternative is that someone needs
>> to sit down and re-calculate all the timings again to get them into a driver friendly
>> format. Furthermore, it seems that onenand is no longer available from the likes of
>> samsung and numonyx (micron) so it is hard to justify re-calculating everything again.
>> I am not even sure if we have all the datasheets!
>>
>> Let me know your thoughts.
>
> I don't think we should spend much time working on the recalculations. Let's rather
> use these known working cases as examples. If they don't work, it's likely that
> adding any new devices won't work either.
>
> For the timings, we should allow specifying either cycles or time values in the
> data struct. And always just use the cycle value directly if specified, and
> othewise use the time value. We may be able to limit the registers where we need
> to allow either cycle or time value depending on the device futher.
>
> In general, I doubt that we can come up with better calculations. The existing
> code pretty well already follows the device spec timings. And using cycle values
> for some registers is the right thing to do according to the connected device
> specs no matter what the frequency is. In those cases converting from time values
> to cycles does not make sense.
Ok agree, but the problem here is how to provide the timings to the
driver. The onenand code is doing a lot of rounding based upon the gpmc
clock before it presents the timings (in nano-seconds) to the gpmc
function to calculate the final timings and program the gpmc
chip-select. So therefore I think that we have the following options ...
1. The simplest is to continue using a global variable for storing the
gpmc f-clk handle and have the OneNAND timings calculated prior to
probing the gpmc driver.
2. Provide some sort of "retime" callback that the gpmc driver can call
at probe time to calculate the timings.
Cheers
Jon
next prev parent reply other threads:[~2012-07-02 17:25 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-27 6:33 [PATCH v5 0/3] Prepare for GPMC driver conversion Afzal Mohammed
2012-06-27 6:33 ` Afzal Mohammed
2012-06-27 6:33 ` [PATCH v5 1/3] ARM: OMAP2+: nand: unify init functions Afzal Mohammed
2012-06-27 6:33 ` Afzal Mohammed
2012-06-27 6:33 ` [PATCH v5 2/3] ARM: OMAP2+: gpmc: handle additional timings Afzal Mohammed
2012-06-27 6:33 ` Afzal Mohammed
2012-06-27 6:34 ` [PATCH v5 3/3] ARM: OMAP2+: onenand: prepare for gpmc driver migration Afzal Mohammed
2012-06-27 6:34 ` Afzal Mohammed
2012-06-27 14:58 ` Tony Lindgren
2012-06-27 14:58 ` Tony Lindgren
2012-06-28 9:32 ` Mohammed, Afzal
2012-06-28 9:32 ` Mohammed, Afzal
2012-06-28 12:32 ` Tony Lindgren
2012-06-28 12:32 ` Tony Lindgren
2012-06-28 12:33 ` Mohammed, Afzal
2012-06-28 12:33 ` Mohammed, Afzal
2012-06-28 12:44 ` Mohammed, Afzal
2012-06-28 12:44 ` Mohammed, Afzal
2012-07-30 7:36 ` Mohammed, Afzal
2012-07-30 7:36 ` Mohammed, Afzal
2012-06-28 16:43 ` Jon Hunter
2012-06-28 16:43 ` Jon Hunter
2012-06-28 19:00 ` Jon Hunter
2012-06-28 19:00 ` Jon Hunter
2012-07-02 6:26 ` Tony Lindgren
2012-07-02 6:26 ` Tony Lindgren
2012-06-29 6:15 ` Mohammed, Afzal
2012-06-29 6:15 ` Mohammed, Afzal
2012-06-29 6:38 ` Mohammed, Afzal
2012-06-29 6:38 ` Mohammed, Afzal
2012-06-29 14:15 ` Jon Hunter
2012-06-29 14:15 ` Jon Hunter
2012-07-02 10:04 ` Mohammed, Afzal
2012-07-02 10:04 ` Mohammed, Afzal
2012-07-02 6:36 ` Tony Lindgren
2012-07-02 6:36 ` Tony Lindgren
2012-07-02 9:43 ` Mohammed, Afzal
2012-07-02 9:43 ` Mohammed, Afzal
2012-07-02 17:29 ` Jon Hunter
2012-07-02 17:29 ` Jon Hunter
2012-07-03 4:35 ` Mohammed, Afzal
2012-07-03 4:35 ` Mohammed, Afzal
2012-07-03 15:10 ` Jon Hunter
2012-07-03 15:10 ` Jon Hunter
2012-07-04 5:36 ` Mohammed, Afzal
2012-07-04 5:36 ` Mohammed, Afzal
2012-07-02 17:25 ` Jon Hunter [this message]
2012-07-02 17:25 ` Jon Hunter
2012-07-03 8:17 ` Tony Lindgren
2012-07-03 8:17 ` Tony Lindgren
2012-07-03 15:12 ` Jon Hunter
2012-07-03 15:12 ` Jon Hunter
2012-07-04 7:00 ` Mohammed, Afzal
2012-07-04 7:00 ` Mohammed, Afzal
2012-07-04 7:51 ` Tony Lindgren
2012-07-04 7:51 ` Tony Lindgren
2012-07-05 10:24 ` Mohammed, Afzal
2012-07-05 10:24 ` Mohammed, Afzal
2012-07-05 10:55 ` Tony Lindgren
2012-07-05 10:55 ` Tony Lindgren
2012-07-05 11:58 ` Mohammed, Afzal
2012-07-05 11:58 ` Mohammed, Afzal
2012-07-05 14:49 ` Tony Lindgren
2012-07-05 14:49 ` Tony Lindgren
2012-07-05 14:51 ` Mohammed, Afzal
2012-07-05 14:51 ` Mohammed, Afzal
2012-07-06 12:05 ` Tony Lindgren
2012-07-06 12:05 ` Tony Lindgren
2012-07-10 6:20 ` Mohammed, Afzal
2012-07-10 6:20 ` Mohammed, Afzal
2012-07-10 9:45 ` Tony Lindgren
2012-07-10 9:45 ` Tony Lindgren
2012-07-10 10:04 ` Mohammed, Afzal
2012-07-10 10:04 ` Mohammed, Afzal
2012-07-10 13:17 ` Tony Lindgren
2012-07-10 13:17 ` Tony Lindgren
2012-07-10 13:47 ` Mohammed, Afzal
2012-07-10 13:47 ` Mohammed, Afzal
2012-07-10 17:15 ` Jon Hunter
2012-07-10 17:15 ` Jon Hunter
2012-07-11 6:47 ` Tony Lindgren
2012-07-11 6:47 ` Tony Lindgren
2012-07-13 4:36 ` Mohammed, Afzal
2012-07-13 4:36 ` Mohammed, Afzal
2012-08-06 13:38 ` gpmc generic retime function (subject was RE: [PATCH v5 3/3] ARM: OMAP2+: onenand: prepare for gpmc driver migration) Mohammed, Afzal
2012-08-06 13:38 ` Mohammed, Afzal
2012-08-17 15:02 ` Jon Hunter
2012-08-17 15:02 ` Jon Hunter
2012-08-21 11:14 ` Mohammed, Afzal
2012-08-21 11:14 ` Mohammed, Afzal
2012-06-27 10:08 ` [PATCH v5 0/3] Prepare for GPMC driver conversion Mohammed, Afzal
2012-06-27 10:08 ` Mohammed, Afzal
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=4FF1D980.4040100@ti.com \
--to=jon-hunter@ti.com \
--cc=afzal@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=paul@pwsan.com \
--cc=tony@atomide.com \
/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.