[PATCH v3] mtd: gpmi: add a new DT property to use the datasheet's minimum required ECC
Brian Norris
computersforpeace at gmail.com
Tue Nov 12 12:47:13 EST 2013
+ DT maintainers, since they haven't responded
On Mon, Nov 11, 2013 at 9:26 PM, Huang Shijie <b32955 at freescale.com> wrote:
> 于 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.
The patch is OK to me, but we haven't gotten any DT review. If we
don't get any response in a few days, I'll take it anyway.
I'm not sure about taking it in 3.13 vs. 3.14, as this is
traditionally a late merge for 3.13.
Brian
More information about the linux-mtd
mailing list