Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document target hardware class(es) - NOR/NAND/etc #992

Open
bmcdonnell-fb opened this issue Jun 10, 2024 · 2 comments
Open

Document target hardware class(es) - NOR/NAND/etc #992

bmcdonnell-fb opened this issue Jun 10, 2024 · 2 comments

Comments

@bmcdonnell-fb
Copy link

Thanks to @geky and all contributors for this project. 😄

I see a couple of issue comments that speak to intended/tested target hardware type, but this does not seem to be explicitly or sufficiently documented.

#880 (comment)

littlefs was written for NOR first and NAND's geometry is quite a bit more challenging.

#11 (comment)

LittleFS has only been used on NOR flash, eMMC, SD cards; devices with <4KB erase units, so I'm not sure how it will perform on NAND flash.

Have I missed some documentation that spells this out? I think these items are probably worth at least a mention in the top-level README.md.

@geky
Copy link
Member

geky commented Jun 25, 2024

HI @bmcdonnell-fb,

Ah yes, this could probably be documented better. It would be good to eventually have more thorough evaluation of littlefs on various storage types, but this time could also be spent trying to fix the related performance issues, so prioritization gets a bit muddled.

This has also evolved over time. The comment in #11 notably predates v2, and files can use less than a block if they fit in cache_size. You may also not need ECC, but probably want it depending on the device's details.

The original intention of v2 was to work fine on any flash-like technology (or at least any random-access storage), with only different performance characteristics. Unfortunately the lack of thorough testing led to the current state of things on NAND. But with more testing and a better understanding of NAND's issues hopefully things will improve moving forward.

If you want me to document what future technology will be problematic for littlefs, that might be a bit more difficult...

@bmcdonnell-fb
Copy link
Author

Ah yes, this could probably be documented better. It would be good to eventually have more thorough evaluation of littlefs on various storage types, but this time could also be spent trying to fix the related performance issues, so prioritization gets a bit muddled.

Understandable if other features are taking higher priority over the type of detailed doc that you're envisioning. But I think at least a brief mention in the top level README.md of what technologies are known to work, and maybe which are works in progress, would help interested parties to discover littlefs, and to quickly determine whether it may be suitable for their target hw.

LittleFS has only been used on NOR flash, eMMC, SD cards; devices with <4KB erase units, so I'm not sure how it will perform on NAND flash.

The comment in #11 notably predates v2, and files can use less than a block if they fit in cache_size.

Good to know. However, in this case, my focus was just to say up front whether littlefs works on NOR flash, eMMC, NAND flash, etc.

It seems most filesystems are not well-suited to NOR flash? And that littlefs was designed with it as a first class citizen?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants