From: Olof Johansson <olof@lixom.net>
To: Pekon Gupta <pekon@ti.com>
Cc: mugunthanvnm@ti.com, arnd@arndb.de, dedekind1@gmail.com,
tony@atomide.com, avinashphilipk@gmail.com, balbi@ti.com,
devicetree@vger.kernel.org, linux-mtd@lists.infradead.org,
benoit.cousson@linaro.org, linux-omap@vger.kernel.org,
dwmw2@infradead.org
Subject: Re: [PATCH v5 1/4] ARM: OMAP2+: cleaned-up DT support of various ECC schemes
Date: Wed, 21 Aug 2013 21:54:52 -0700 [thread overview]
Message-ID: <20130822045452.GA5151@quad.lixom.net> (raw)
In-Reply-To: <1373748891-7779-2-git-send-email-pekon@ti.com>
On Sun, Jul 14, 2013 at 02:24:48AM +0530, Pekon Gupta wrote:
> ECC scheme on NAND devices can be implemented in multiple ways.Some using
> Software algorithm, while others using in-build Hardware engines.
> omap2-nand driver currently supports following flavours of ECC schemes,
> selectable via DTB.
>
> +---------------------------------------+---------------+---------------+
> | ECC scheme |ECC calculation|Error detection|
> +---------------------------------------+---------------+---------------+
> |OMAP_ECC_HAMMING_CODE_DEFAULT |S/W |S/W |
> |OMAP_ECC_HAMMING_CODE_HW |H/W (GPMC) |S/W |
> |OMAP_ECC_HAMMING_CODE_HW_ROMCODE |H/W (GPMC) |S/W |
> +---------------------------------------+---------------+---------------+
> |(requires CONFIG_MTD_NAND_ECC_BCH) | | |
> |OMAP_ECC_BCH8_CODE_HW_DETECTION_SW |H/W (GPMC) |S/W |
> +---------------------------------------+---------------+---------------+
> |(requires CONFIG_MTD_NAND_OMAP_BCH) | | |
> |OMAP_ECC_BCH8_CODE_HW |H/W (GPMC) |H/W (ELM) |
> +---------------------------------------+---------------+---------------+
>
> Selection of some ECC schemes also require enabling following Kconfig options.
> This was done to optimize footprint of omap2-nand driver.
> -Kconfig:CONFIG_MTD_NAND_ECC_BCH enables S/W based BCH ECC algorithm
> -Kconfig:CONFIG_MTD_NAND_OMAP_BCH enables H/W based BCH ECC algorithm
>
> Signed-off-by: Pekon Gupta <pekon@ti.com>
> ---
> .../devicetree/bindings/mtd/gpmc-nand.txt | 45 ++++++++++++++++------
> arch/arm/mach-omap2/gpmc.c | 14 ++++---
> include/linux/platform_data/mtd-nand-omap2.h | 22 +++++++----
> 3 files changed, 57 insertions(+), 24 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
> index df338cb..c6551b6 100644
> --- a/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
> +++ b/Documentation/devicetree/bindings/mtd/gpmc-nand.txt
> @@ -17,17 +17,42 @@ Required properties:
>
> Optional properties:
>
> - - nand-bus-width: Set this numeric value to 16 if the hardware
> - is wired that way. If not specified, a bus
> - width of 8 is assumed.
> + - nand-bus-width: Determines data-width of the connected device
> + x16 = "16"
> + x8 = "8" (default)
This change doesn't look like an improvement to me.
> - - ti,nand-ecc-opt: A string setting the ECC layout to use. One of:
>
> - "sw" Software method (default)
> - "hw" Hardware method
> - "hw-romcode" gpmc hamming mode method & romcode layout
> - "bch4" 4-bit BCH ecc code
> - "bch8" 8-bit BCH ecc code
> + - ti,nand-ecc-opt: Determines the ECC scheme used by driver.
> + It can be any of the following strings:
The device tree should define the hardware, not configure the software.
Also, if it defines the scheme then you should probably call it something like
"ti,nand-ecc-scheme" instead.
> +
> + "hamming_code_sw" 1-bit Hamming ECC
> + - ECC calculation in software
> + - Error detection in software
> +
> + "hamming_code_hw" 1-bit Hamming ECC
> + - ECC calculation in hardware
> + - Error detection in software
Bzzt. Same here. It really doesn't matter to the hardware if the ECC is
calculated in HW or SW, and it doesn't belong in the device tree.
> +
> + "hamming_code_hw_romcode" 1-bit Hamming ECC
> + - ECC calculation in hardware
> + - Error detection in software
> + - ECC layout compatible to ROM code
> +
> + "bch8_hw_code_detection_sw" 8-bit BCH ECC
> + - ECC calculation in hardware
> + - Error detection in software
> + - depends on CONFIG_MTD_NAND_ECC_BCH
Configuration options don't belong in here either.
> +
> + "bch8_code_hw" 8-bit BCH ECC
> + - ECC calculation in hardware
> + - Error detection in hardware
> + - depends on CONFIG_MTD_NAND_OMAP_BCH
> + - requires <elm_id> to be specified
Some of the above clearly shouldn't be described in the device tree at all, but
it's also not very convenient to describe them as strings. Since you have
a binding, it's probably easier to give them integer values and just define
what those mean.
> +
> +
> + - elm_id: Specifies elm device node. This is required to
> + support some BCH ECC schemes mentioned above.
Use dashes instead of underscores for properties. if all other properties are
prepended with "ti,", then so should this.
What's an ELM device node? How is it specified? A phandle?
-Olof
next prev parent reply other threads:[~2013-08-22 4:55 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-13 20:54 [PATCH v5 0/4] mtd:nand:omap2: clean-up of supported ECC schemes Pekon Gupta
2013-07-13 20:54 ` [PATCH v5 1/4] ARM: OMAP2+: cleaned-up DT support of various " Pekon Gupta
2013-08-21 1:26 ` Brian Norris
2013-08-22 4:54 ` Olof Johansson [this message]
2013-08-22 7:56 ` Gupta, Pekon
2013-08-27 17:04 ` Olof Johansson
2013-09-12 11:57 ` Gupta, Pekon
2013-07-13 20:54 ` [PATCH v5 2/4] mtd:nand:omap2: clean-up BCHx_HW and BCHx_SW ECC configurations in device_probe Pekon Gupta
2013-08-21 1:26 ` Brian Norris
2013-07-13 20:54 ` [PATCH v5 3/4] mtd:nand:omap2: updated support for BCH4 ECC scheme Pekon Gupta
2013-07-13 20:54 ` [PATCH v5 4/4] ARM: dts: AM33xx: updated default ECC scheme in nand-ecc-opt Pekon Gupta
2013-07-13 21:13 ` [PATCH v5 0/4] mtd:nand:omap2: clean-up of supported ECC schemes Gupta, Pekon
2013-08-20 13:20 ` Gupta, Pekon
2013-08-20 14:02 ` Artem Bityutskiy
2013-08-20 18:17 ` Brian Norris
2013-08-21 1:32 ` Brian Norris
2013-09-12 12:02 ` Gupta, Pekon
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=20130822045452.GA5151@quad.lixom.net \
--to=olof@lixom.net \
--cc=arnd@arndb.de \
--cc=avinashphilipk@gmail.com \
--cc=balbi@ti.com \
--cc=benoit.cousson@linaro.org \
--cc=dedekind1@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=dwmw2@infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=mugunthanvnm@ti.com \
--cc=pekon@ti.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox