The questions in THIS "e"mail, are regarding the "MLC NAnd" mentioned (as planned in the computer-cards via "Crowd Supply") in the "Q/A"-section on the campaign-page- https://www.crowdsupply.com/eoma68/micro-desktop (My earlier off-list question on this, and Luke's reply, are quoted at the bottom.)
I have been reading on "MLC NAnd", and it seems that now I better understand the problem of corruption-on-read. (I have included links at the bottom, to some literature which I have looked at. This might give you a sense of my current state of understanding on this. And others of you might even find that some of the linked information is news to you.)
But I have a few more questions.
(a) How common is it for corruption-on-read to occur with "MLC NAnd" (like by something as basic as reads done by the built-in "ROM" "boot"-loader)? (Perhaps the answer is like "N % probability that one or more of the [1 to 4] bits in a cell, shall wrongly change it's logical value, after X reads of one or more pages in the same block, Y writes to one or more pages in the same block, and Z erases of the block".) At first I was thinking that the FIRST time data (mini "boot"-loader or otherwise) is read from the "NAnd", corruption might likely occur. But perhaps this corruption-on-read naturally happens ONLY after many reads or writes in a block and many erases of a block. So how common is it?
(b) Would the "MLC NAnd" planned in the computer-cards via "Crowd Supply", have Error-Correction Codes?
(c) If so, then does whatever reads the "NAnd" on "booting" (I guess it is called the "eGON boot-ROM"), know that it should (and know how to) use those "ECCs", to correct errors (if any) which it encounters when trying to start the "booting" process, so that it loads the correct original bits of the "boot"-loader ("minimalist" or otherwise)?
I am looking forward to receiving answers to my questions, and soon sending my money to back many of the current offerings via "Crowd Supply". Sincerely, Chad. (:^)
Links-
a little info' on corruption, and on patented ]:^[ work to solve it- https://storagegaga.wordpress.com/category/data-corruption/
a little on how "NAnd-flash" works, and file-systems- http://www.linux-mtd.infradead.org/doc/nand.html
more on how it works and how it can get corrupted- http://www.eetimes.com/document.asp?doc_id=1279762 followed by pages 2 to http://www.eetimes.com/document.asp?doc_id=1279762&page_number=4
some research on read-disturbs and mitigation- https://users.ece.cmu.edu/~saugatag/papers/15dsn.pdf
detailed comparison of "MLC" and "SLC", with advice on how to use both- https://cdn.selinc.com/assets/Literature/Publications/White Papers/0015_NANDflash_IO_20141211.pdf?v=20151004-191546 (There should be a single space between "White" and "Papers".)
booting "Allwinner" chips- http://linux-sunxi.org/BROM
(Quotes below, might have minor changes, and might have additions enclosed by {}, and ~ for omissions.)
On 16.8.26 12:11, lkcl . lkcl@rhombus-tech.net wrote:
On ~, {8th month}~, 2016 at 6:33 PM, Crowd Supply orders@crowdsupply.com wrote:
chadvellacott@sasktel.net submitted a question about your project, "Earth-friendly EOMA68 Computing Devices":
~~~~~
~ it seems that your latest plan is or was, to use MLC-NAnd-flash for the
internal "hard disk drive". And I noticed the mention that that can corrupt itself on read, not just on write. ~~~
primarily you should be looking to store a "mostly-read-only" OS on the internal NAND, which then mounts external USB drives and Micro-SD cards as well as mounts tmpfs's for the stuff you really don't need to be persistent. i referenced somebody's script called "readonlyrootfs.sh" which i've successfully used with CompactFlash rootfs booting in the past.
also you should really be looking to use jffs2 or better ubifs - some work's going to be needed here - so that you don't end up losing data. you can see online that people are talking about just dropping ext4 directly onto raw NAND just because that's what allwinner does with android... this is incredibly stupid and you clearly shouldn't be doing it... but ignorance like this tends to get copied wholesale on BBS forums... *sigh*.
in the meantime you can always boot from external micro-sd card, that's what i do all the time, i have a minimalist bootloader at the front of the NAND and leave the rest of the NAND entirely alone.
i *may* have to ship people with configs like that (a small 4gb or 8gb microsd included)... just have to see how it goes.
And I noticed the mention that you are considering using SLC instead.
~~~~~~
l.