[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAAyq3SZO3miC0S14DmgLvZ1dnVXkAVS_j61+erE8c7A-yYJWMw@mail.gmail.com>
Date: Thu, 11 Sep 2025 16:05:21 +0800
From: Cheng Ming Lin <linchengming884@...il.com>
To: Krzysztof Kozlowski <krzk@...nel.org>
Cc: miquel.raynal@...tlin.com, richard@....at, vigneshr@...com,
robh@...nel.org, krzk+dt@...nel.org, conor+dt@...nel.org,
tudor.ambarus@...aro.org, mmkurbanov@...utedevices.com,
Takahiro.Kuwano@...ineon.com, pratyush@...nel.org,
linux-mtd@...ts.infradead.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, alvinzhou@...c.com.tw,
Cheng Ming Lin <chengminglin@...c.com.tw>
Subject: Re: [PATCH v2 1/3] dt-bindings: mtd: spi-nand: Add
enable-randomizer-otp property
Hi Krzysztof,
Krzysztof Kozlowski <krzk@...nel.org> 於 2025年9月10日 週三 下午7:40寫道:
>
> On Wed, Sep 10, 2025 at 11:02:59AM +0800, Cheng Ming Lin wrote:
> > From: Cheng Ming Lin <chengminglin@...c.com.tw>
> >
> > Add a new boolean property "enable-randomizer-otp" to enable the
> > randomizer feature on supported SPI-NAND devices.
>
> What is randomizer feature? Subject, commit msg, description - none of
> them explain me that. Is this some standard for NAND? Why is this a
> common property?
To the best of our knowledge, Macronix was the first vendor to
implement this feature in hardware to enhance data reliability and
endurance, especially under high P/E cycle stress.
Since this is a vendor-specific implementation rather than a common
NAND standard, I agree that this property should be handled within
the Marconix driver specifically, not as a common property. I will
make the necessary adjustments.
>
> So many questions and zero explanations in the commit msg. Instead you
> just wrote what we see in the diff - that's completely redundant.
Thank you for your feedback. I apologize that the commit message was not
clear and did not provide sufficient context for this feature.
Your questions are very valid and I should have included these details from
the beginning.
According to JEDEC standard JESD22-A117E, no single data pattern
represents a universal worst-case for all NAND flash failure mechanisms.
Different patterns, such as fully programmed, checkerboard, or mostly
erased, can disproportionately stress specific cells (e.g., programmed,
erased, or those influenced by adjacent states).
Given that no fixed pattern can cover all scenarios, the use of a
randomized data pattern is a practical and effective mitigation strategy.
Our hardware implements a randomizer feature that scrambles user data
before it is written to the flash and restores the original data upon read.
This ensures the data stored on the media is more evenly distributed,
thus reducing pattern-dependent degradation. This is especially crucial
for preventing errors caused by unbalanced data (e.g., all zeros or
all ones) in blocks with high program/erase (P/E) cycle counts.
Ultimately, the randomizer improves the long-term reliability and
endurance of the flash device.
Please refer to the following link for randomizer feature:
Link: https://www.mxic.com.tw/Lists/ApplicationNote/Attachments/2151/AN1051V1-The%20Introduction%20of%20Randomizer%20Feature%20on%20MX30xFxG28AD_MX35xFxG24AD.pdf
>
> Best regards,
> Krzysztof
>
Best regards,
Cheng Ming Lin
Powered by blists - more mailing lists