From: Boris BREZILLON <boris.brezillon@free-electrons.com>
To: Brian Norris <computersforpeace@gmail.com>
Cc: devicetree@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
linux-doc@vger.kernel.org, dev@linux-sunxi.org,
linux-kernel@vger.kernel.org,
Jason Gunthorpe <jgunthorpe@obsidianresearch.com>,
Rob Herring <robherring2@gmail.com>,
Grant Likely <grant.likely@linaro.org>,
linux-mtd@lists.infradead.org,
Maxime Ripard <maxime.ripard@free-electrons.com>,
David Woodhouse <dwmw2@infradead.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 4/9] of: mtd: add documentation for the ONFI NAND timing mode property
Date: Tue, 20 May 2014 21:30:33 +0200 [thread overview]
Message-ID: <537BAD59.3060902@free-electrons.com> (raw)
In-Reply-To: <20140520182542.GS28907@ld-irv-0074>
Hi Brian,
On 20/05/2014 20:25, Brian Norris wrote:
> Hi Boris,
>
> On Wed, Mar 12, 2014 at 07:07:39PM +0100, Boris BREZILLON wrote:
>> Add documentation for the ONFI NAND timing mode property.
>>
>> Signed-off-by: Boris BREZILLON <b.brezillon.dev@gmail.com>
>> ---
>> Documentation/devicetree/bindings/mtd/nand.txt | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/mtd/nand.txt b/Documentation/devicetree/bindings/mtd/nand.txt
>> index b53f92e..2046027 100644
>> --- a/Documentation/devicetree/bindings/mtd/nand.txt
>> +++ b/Documentation/devicetree/bindings/mtd/nand.txt
>> @@ -19,3 +19,11 @@ errors per {size} bytes".
>> The interpretation of these parameters is implementation-defined, so not all
>> implementations must support all possible combinations. However, implementations
>> are encouraged to further specify the value(s) they support.
>> +
>> +- onfi,nand-timing-mode: an integer encoding the supported ONFI timing modes of
>> + the NAND chip. Each supported mode is represented as a bit position (i.e. :
>> + mode 0 and 1 => (1 << 0) | (1 << 1) = 0x3).
>> + This is only used when the chip does not support the ONFI standard.
>> + The last bit set represent the closest mode fulfilling the NAND chip timings.
>> + For a full description of the different timing modes see this document:
>> + www.onfi.org/~/media/ONFI/specs/onfi_3_1_spec.pdf
> I'm not 100% convinced this property should go in the device tree. With
> most other flash properties (device size, page size, and even minimum
> ECC requirements), we try to auto-detect these parameters to some
> extent. ONFI makes it easy for some class of chips, but for others, we
> typically rely on an in-kernel device ID table or ID decoding heuristic
> -- we don't require a DT description of every property of the flash. So
> what makes this property different?
AFAICT nothing, but the same goes for the ECC requirements, and we've
recently added DT bindings to define these requirements.
I'm not telling we should drop these ECC requirements bindings (actually
I'm using them :-)), but what's different with the timings requirements ?
Moreover, we will end up with a lot of new entries in the device ID
table if we decide to put these informations in this table.
>
> I realize that we may not include device ID entries for every flash that
> you need in the ID table (although we still are able to detect the
> important properties accurately, like page and block size). But would it
> suffice to default these flash to a lowest common timing mode, like mode
> 0?
IMHO this is not a good solution: you'll end up with lower perfomances
on most of the supported NAND chips and I'm not sure this is what we want.
>
> If no other option works well, then I am still open to describing the
> supported timing modes in the DT.
>
> BTW, this bitfield property looks kinda strange to me. Do non-ONFI flash
> typically support multiple timing modes? And if so, how are we supposed
> to *change* modes? AFAIK, ONFI provides the only standard for
> configuring the flash's timing mode. So maybe you're really only wanting
> a "default timing mode" property that is a single integer, not a
> bitfield.
Indeed, I based it on the ONFI NAND timings mode model, but AFAIK (tell
me if I'm wrong), it should work because most of the timings are min
requirements.
This means, even if you provide slower signals transitions, the NAND
will work as expected.
But I can modify the bindings to just encode the maximum supported
timing mode.
Thanks for your feedback.
Best Regards,
Boris
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
WARNING: multiple messages have this Message-ID (diff)
From: boris.brezillon@free-electrons.com (Boris BREZILLON)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 4/9] of: mtd: add documentation for the ONFI NAND timing mode property
Date: Tue, 20 May 2014 21:30:33 +0200 [thread overview]
Message-ID: <537BAD59.3060902@free-electrons.com> (raw)
In-Reply-To: <20140520182542.GS28907@ld-irv-0074>
Hi Brian,
On 20/05/2014 20:25, Brian Norris wrote:
> Hi Boris,
>
> On Wed, Mar 12, 2014 at 07:07:39PM +0100, Boris BREZILLON wrote:
>> Add documentation for the ONFI NAND timing mode property.
>>
>> Signed-off-by: Boris BREZILLON <b.brezillon.dev@gmail.com>
>> ---
>> Documentation/devicetree/bindings/mtd/nand.txt | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/mtd/nand.txt b/Documentation/devicetree/bindings/mtd/nand.txt
>> index b53f92e..2046027 100644
>> --- a/Documentation/devicetree/bindings/mtd/nand.txt
>> +++ b/Documentation/devicetree/bindings/mtd/nand.txt
>> @@ -19,3 +19,11 @@ errors per {size} bytes".
>> The interpretation of these parameters is implementation-defined, so not all
>> implementations must support all possible combinations. However, implementations
>> are encouraged to further specify the value(s) they support.
>> +
>> +- onfi,nand-timing-mode: an integer encoding the supported ONFI timing modes of
>> + the NAND chip. Each supported mode is represented as a bit position (i.e. :
>> + mode 0 and 1 => (1 << 0) | (1 << 1) = 0x3).
>> + This is only used when the chip does not support the ONFI standard.
>> + The last bit set represent the closest mode fulfilling the NAND chip timings.
>> + For a full description of the different timing modes see this document:
>> + www.onfi.org/~/media/ONFI/specs/onfi_3_1_spec.pdf
> I'm not 100% convinced this property should go in the device tree. With
> most other flash properties (device size, page size, and even minimum
> ECC requirements), we try to auto-detect these parameters to some
> extent. ONFI makes it easy for some class of chips, but for others, we
> typically rely on an in-kernel device ID table or ID decoding heuristic
> -- we don't require a DT description of every property of the flash. So
> what makes this property different?
AFAICT nothing, but the same goes for the ECC requirements, and we've
recently added DT bindings to define these requirements.
I'm not telling we should drop these ECC requirements bindings (actually
I'm using them :-)), but what's different with the timings requirements ?
Moreover, we will end up with a lot of new entries in the device ID
table if we decide to put these informations in this table.
>
> I realize that we may not include device ID entries for every flash that
> you need in the ID table (although we still are able to detect the
> important properties accurately, like page and block size). But would it
> suffice to default these flash to a lowest common timing mode, like mode
> 0?
IMHO this is not a good solution: you'll end up with lower perfomances
on most of the supported NAND chips and I'm not sure this is what we want.
>
> If no other option works well, then I am still open to describing the
> supported timing modes in the DT.
>
> BTW, this bitfield property looks kinda strange to me. Do non-ONFI flash
> typically support multiple timing modes? And if so, how are we supposed
> to *change* modes? AFAIK, ONFI provides the only standard for
> configuring the flash's timing mode. So maybe you're really only wanting
> a "default timing mode" property that is a single integer, not a
> bitfield.
Indeed, I based it on the ONFI NAND timings mode model, but AFAIK (tell
me if I'm wrong), it should work because most of the timings are min
requirements.
This means, even if you provide slower signals transitions, the NAND
will work as expected.
But I can modify the bindings to just encode the maximum supported
timing mode.
Thanks for your feedback.
Best Regards,
Boris
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
WARNING: multiple messages have this Message-ID (diff)
From: Boris BREZILLON <boris.brezillon@free-electrons.com>
To: Brian Norris <computersforpeace@gmail.com>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>,
Rob Herring <robherring2@gmail.com>,
David Woodhouse <dwmw2@infradead.org>,
Grant Likely <grant.likely@linaro.org>,
Jason Gunthorpe <jgunthorpe@obsidianresearch.com>,
Arnd Bergmann <arnd@arndb.de>,
devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mtd@lists.infradead.org, dev@linux-sunxi.org
Subject: Re: [PATCH v3 4/9] of: mtd: add documentation for the ONFI NAND timing mode property
Date: Tue, 20 May 2014 21:30:33 +0200 [thread overview]
Message-ID: <537BAD59.3060902@free-electrons.com> (raw)
In-Reply-To: <20140520182542.GS28907@ld-irv-0074>
Hi Brian,
On 20/05/2014 20:25, Brian Norris wrote:
> Hi Boris,
>
> On Wed, Mar 12, 2014 at 07:07:39PM +0100, Boris BREZILLON wrote:
>> Add documentation for the ONFI NAND timing mode property.
>>
>> Signed-off-by: Boris BREZILLON <b.brezillon.dev@gmail.com>
>> ---
>> Documentation/devicetree/bindings/mtd/nand.txt | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/mtd/nand.txt b/Documentation/devicetree/bindings/mtd/nand.txt
>> index b53f92e..2046027 100644
>> --- a/Documentation/devicetree/bindings/mtd/nand.txt
>> +++ b/Documentation/devicetree/bindings/mtd/nand.txt
>> @@ -19,3 +19,11 @@ errors per {size} bytes".
>> The interpretation of these parameters is implementation-defined, so not all
>> implementations must support all possible combinations. However, implementations
>> are encouraged to further specify the value(s) they support.
>> +
>> +- onfi,nand-timing-mode: an integer encoding the supported ONFI timing modes of
>> + the NAND chip. Each supported mode is represented as a bit position (i.e. :
>> + mode 0 and 1 => (1 << 0) | (1 << 1) = 0x3).
>> + This is only used when the chip does not support the ONFI standard.
>> + The last bit set represent the closest mode fulfilling the NAND chip timings.
>> + For a full description of the different timing modes see this document:
>> + www.onfi.org/~/media/ONFI/specs/onfi_3_1_spec.pdf
> I'm not 100% convinced this property should go in the device tree. With
> most other flash properties (device size, page size, and even minimum
> ECC requirements), we try to auto-detect these parameters to some
> extent. ONFI makes it easy for some class of chips, but for others, we
> typically rely on an in-kernel device ID table or ID decoding heuristic
> -- we don't require a DT description of every property of the flash. So
> what makes this property different?
AFAICT nothing, but the same goes for the ECC requirements, and we've
recently added DT bindings to define these requirements.
I'm not telling we should drop these ECC requirements bindings (actually
I'm using them :-)), but what's different with the timings requirements ?
Moreover, we will end up with a lot of new entries in the device ID
table if we decide to put these informations in this table.
>
> I realize that we may not include device ID entries for every flash that
> you need in the ID table (although we still are able to detect the
> important properties accurately, like page and block size). But would it
> suffice to default these flash to a lowest common timing mode, like mode
> 0?
IMHO this is not a good solution: you'll end up with lower perfomances
on most of the supported NAND chips and I'm not sure this is what we want.
>
> If no other option works well, then I am still open to describing the
> supported timing modes in the DT.
>
> BTW, this bitfield property looks kinda strange to me. Do non-ONFI flash
> typically support multiple timing modes? And if so, how are we supposed
> to *change* modes? AFAIK, ONFI provides the only standard for
> configuring the flash's timing mode. So maybe you're really only wanting
> a "default timing mode" property that is a single integer, not a
> bitfield.
Indeed, I based it on the ONFI NAND timings mode model, but AFAIK (tell
me if I'm wrong), it should work because most of the timings are min
requirements.
This means, even if you provide slower signals transitions, the NAND
will work as expected.
But I can modify the bindings to just encode the maximum supported
timing mode.
Thanks for your feedback.
Best Regards,
Boris
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
next prev parent reply other threads:[~2014-05-20 19:30 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-12 18:07 [PATCH v3 0/9] mtd: nand: add sunxi NAND Flash Controller support Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` [PATCH v3 1/9] mtd: nand: define struct nand_timings Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-04-30 17:51 ` Brian Norris
2014-04-30 17:51 ` Brian Norris
2014-04-30 17:51 ` Brian Norris
2014-05-01 17:36 ` Boris BREZILLON
2014-05-01 17:36 ` Boris BREZILLON
2014-05-01 17:36 ` Boris BREZILLON
2014-05-08 14:29 ` Lee Jones
2014-05-08 14:29 ` Lee Jones
2014-05-08 14:29 ` Lee Jones
2014-05-09 15:47 ` Boris BREZILLON
2014-05-09 15:47 ` Boris BREZILLON
2014-05-20 18:13 ` Brian Norris
2014-05-20 18:13 ` Brian Norris
2014-05-20 18:13 ` Brian Norris
2014-03-12 18:07 ` [PATCH v3 2/9] mtd: nand: add ONFI timing mode to nand_timings converter Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-04-30 18:06 ` Brian Norris
2014-04-30 18:06 ` Brian Norris
2014-04-30 18:06 ` Brian Norris
2014-07-09 17:25 ` Brian Norris
2014-07-09 17:25 ` Brian Norris
2014-07-09 17:25 ` Brian Norris
2014-07-09 17:25 ` Brian Norris
2014-03-12 18:07 ` [PATCH v3 3/9] of: mtd: add NAND timing mode retrieval support Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-04-30 18:14 ` Brian Norris
2014-04-30 18:14 ` Brian Norris
2014-04-30 18:14 ` Brian Norris
2014-03-12 18:07 ` [PATCH v3 4/9] of: mtd: add documentation for the ONFI NAND timing mode property Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:27 ` Warner Losh
2014-03-12 18:27 ` Warner Losh
2014-03-12 18:27 ` Warner Losh
2014-03-12 18:48 ` Boris BREZILLON
2014-03-12 18:48 ` Boris BREZILLON
2014-03-12 18:48 ` Boris BREZILLON
2014-05-20 18:25 ` Brian Norris
2014-05-20 18:25 ` Brian Norris
2014-05-20 18:25 ` Brian Norris
2014-05-20 18:25 ` Brian Norris
2014-05-20 19:30 ` Boris BREZILLON [this message]
2014-05-20 19:30 ` Boris BREZILLON
2014-05-20 19:30 ` Boris BREZILLON
2014-05-20 19:51 ` Jason Gunthorpe
2014-05-20 19:51 ` Jason Gunthorpe
2014-05-20 19:51 ` Jason Gunthorpe
2014-05-20 19:55 ` Brian Norris
2014-05-20 19:55 ` Brian Norris
2014-05-20 19:55 ` Brian Norris
2014-05-20 19:52 ` Brian Norris
2014-05-20 19:52 ` Brian Norris
2014-05-20 19:52 ` Brian Norris
2014-05-20 21:32 ` Boris BREZILLON
2014-05-20 21:32 ` Boris BREZILLON
2014-05-20 21:32 ` Boris BREZILLON
2014-07-09 17:46 ` Brian Norris
2014-07-09 17:46 ` Brian Norris
2014-07-09 17:46 ` Brian Norris
2014-07-09 17:46 ` Brian Norris
2014-03-12 18:07 ` [PATCH v3 5/9] mtd: nand: add sunxi NAND flash controller support Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-05-09 16:03 ` Ezequiel Garcia
2014-05-09 16:03 ` Ezequiel Garcia
2014-05-09 16:03 ` Ezequiel Garcia
2014-05-09 16:03 ` Ezequiel Garcia
2014-05-09 16:47 ` Boris BREZILLON
2014-05-09 16:47 ` Boris BREZILLON
2014-05-09 16:47 ` Boris BREZILLON
2014-05-09 16:47 ` Boris BREZILLON
2014-05-09 17:05 ` Ezequiel Garcia
2014-05-09 17:05 ` Ezequiel Garcia
2014-05-09 17:05 ` Ezequiel Garcia
2014-05-09 17:05 ` Ezequiel Garcia
2014-05-20 18:49 ` Brian Norris
2014-05-20 18:49 ` Brian Norris
2014-05-20 18:49 ` Brian Norris
2014-05-20 19:21 ` Brian Norris
2014-05-20 19:21 ` Brian Norris
2014-05-20 19:21 ` Brian Norris
2014-05-20 19:21 ` Brian Norris
2014-05-20 19:36 ` Boris BREZILLON
2014-05-20 19:36 ` Boris BREZILLON
2014-05-20 19:36 ` Boris BREZILLON
2014-03-12 18:07 ` [PATCH v3 6/9] mtd: nand: add sunxi NFC dt bindings doc Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` [PATCH v3 7/9] ARM: dt/sunxi: add NFC node to Allwinner A20 SoC Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` [PATCH v3 8/9] ARM: dt/sunxi: add A20 NAND controller pin definitions Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` [PATCH v3 9/9] ARM: sunxi/dt: enable NAND on cubietruck board Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
2014-03-12 18:07 ` Boris BREZILLON
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=537BAD59.3060902@free-electrons.com \
--to=boris.brezillon@free-electrons.com \
--cc=arnd@arndb.de \
--cc=computersforpeace@gmail.com \
--cc=dev@linux-sunxi.org \
--cc=devicetree@vger.kernel.org \
--cc=dwmw2@infradead.org \
--cc=grant.likely@linaro.org \
--cc=jgunthorpe@obsidianresearch.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=maxime.ripard@free-electrons.com \
--cc=robherring2@gmail.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.