[PATCH v3] mtd: gpmi: add a new DT property to use the datasheet's minimum required ECC

Huang Shijie b32955 at freescale.com
Tue Nov 12 00:26:06 EST 2013


于 2013年11月07日 18:07, Huang Shijie 写道:
> In default way, we use the ecc_strength/ecc_step size calculated by ourselves
> and use all the OOB area.
>
> This patch adds a new property : "fsl,use-minimum-ecc"
>
> If we enable it, we will firstly try to use the datasheet's minimum required
> ECC provided by the MTD layer (the ecc_strength_ds/ecc_step_ds fields
> in the nand_chip{}). So we may have free space in the OOB area by using the
> minimum ECC, and we may support JFFS2 with some SLC NANDs, such as Micron's
> SLC NAND.
>
> If we fail to use the minimum ECC, we will use the legacy method to calculate
> the ecc_strength and ecc_step size.
>
> Signed-off-by: Huang Shijie<b32955 at freescale.com>
> ---
> v1 -->  v2: rebase this patch on the latest l2-mtd.
> v2 -->  v3: change the descriptions.
> ---
>   .../devicetree/bindings/mtd/gpmi-nand.txt          |    8 ++++++++
>   drivers/mtd/nand/gpmi-nand/gpmi-nand.c             |    3 +++
>   2 files changed, 11 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mtd/gpmi-nand.txt b/Documentation/devicetree/bindings/mtd/gpmi-nand.txt
> index 551b2a1..458d596 100644
> --- a/Documentation/devicetree/bindings/mtd/gpmi-nand.txt
> +++ b/Documentation/devicetree/bindings/mtd/gpmi-nand.txt
> @@ -17,6 +17,14 @@ Required properties:
>   Optional properties:
>     - nand-on-flash-bbt: boolean to enable on flash bbt option if not
>                          present false
> +  - fsl,use-minimum-ecc: Protect this NAND flash with the minimum ECC
> +                       strength required. The required ECC strength is
> +                       automatically discoverable for some flash
> +                       (e.g., according to the ONFI standard).
> +                       However, note that if this strength is not
> +                       discoverable or this property is not enabled,
> +                       the software may chooses an implementation-defined
> +                       ECC scheme.
>
>   The device tree may optionally contain sub-nodes describing partitions of the
>   address space. See partition.txt for more detail.
> diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> index 8f4e5b1..b849b92 100644
> --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> @@ -353,6 +353,9 @@ static int legacy_set_geometry(struct gpmi_nand_data *this)
>
>   int common_nfc_set_geometry(struct gpmi_nand_data *this)
>   {
> +	if (of_property_read_bool(this->dev->of_node, "fsl,use-minimum-ecc")
> +		&&  set_geometry_by_ecc_info(this))
> +		return 0;
>   	return legacy_set_geometry(this);
>   }
>
Hi Brian:
Is this patch ok now? I hope it can be accepted at this merge-window.


thanks
Huang Shijie




More information about the linux-mtd mailing list