Thank you Greg for clarifying!

I think Xiang Xiao and guohao15 also worked with NAND recently (DHARA and
YAFFS).

Seems like dhara.c was integrated into mainline, but they didn't submit
support to YAFFS (if I remember correctly it was because YAFFS requires
license payment for commercial usage).

Best Regards,

Alan

On Sat, May 25, 2024 at 4:38 PM Gregory Nutt <spudan...@gmail.com> wrote:

>  > Mr. Greg Nutt implemented it for Atmel about 10 years ago, but if I
>  > remember correctly, he never got it well tested because there is no
> FS for
>  > NAND on NuttX.
>
> I did test the FS's that were available and they mostly worked on these
> platforms.  I could actually run nxffs and smartfs for a long while
> before they failed. They failed because the FSs that I looked at assumed
> that you can always write a "1" to a "0". Actually, you can do that but
> this then results in ECC error. Even a single bit 1=>0 change requires a
> full  erase, re-writing the ECC, and a full sector write.
>
> As I recall, nxffs would write some single "0" bits to indicate sector
> state changes; SmartFS had a small counter that was used to manage wear
> leveling.
>
>  > I think if you decide to use an SPI NAND Flash with ECC and bad block
>  > support in HW it will be easier to test your FS, in this case even
> LittleFS
>  > could work:
>  > https://github.com/littlefs-project/littlefs/issues/11
>
> Sparing and wear-leveling would also be needed.
>
>  > But later on we will need to get ECC and bad block table support on
> NuttX
>  > to validate your FS with some native NAND Flash controller.
>
> I think that software bad block and ECC are already supported and
> verified (but it has been awhile since I used them).  Sparing, and
> wear-leveling are normally done by an FTL, but can be done by the file
> system.  Bad block detection and ECC may be done by hardware, FTL, or
> higher level software.  Then the only outstanding issues are finding
> such an FTL and a file system that does not do read-modify-write
> operations without updating the ECC.
>
> LittleFS was a candidate a few years ago and required a special FTL to
> get all of these features.  Maybe that has changed in more recent versions.

Reply via email to