Do we have docs for the object nandemulator is supposed to be
emulating? Some questions have arisen about how complete it is and
nobody I've talked to seems to really have answers.
So looking at the code... It's an ONFI emulator. That mens Intel/Micron parts (as opposed to the so-called 'Toggle' parts from Toshiba/Samsung). It's from 2011, so it can't be emulating anything newer than 30ish nm processes. The limited command set suggests that it's emulating just SLC parts. It uses bogus manufacturer data, and a place holder name (NANDEMULATOR made by NetBSD), so I doubt there's a specific model used here. It hard codes a 32MB device with 2k pages, which suggests an even older device (45nm SLC generation maybe). It emulates things at a much lower level than FreeBSD's nandsim, it would appear, but I've not studied either more than briefly for this email.
This is in keeping with the other nand_*.c files in that directory. They are for parts like the Micron MT29F2G08AAC and such. These date from 2005 to 2008 if I can believe the quick sample of data sheets that I found. The list of supported commands is approximately that of the emulator for the Micron part. No mention is made of MLC or TLC, which usually indicates on the older parts they are SLC. MLC and TLC parts sometimes have additional features / commands required (or sometimes just desired) for coping with partial page programming, etc.
It doesn't look super complete to my eye. But it's been 6 years since I was building NAND based PCIe storage devices for a living.
I know these aren't definitive answers as I didn't write the code and am basing this on briefly studying the code + the knowledge I picked up about NAND while working with planar SLC and MLC NAND in the 34nm to 19nm technology nodes for Intel, Micron and Toshiba. So in the absence of other answers, mine may be OK. However, I'd be happy to defer to someone who wrote the code and/or did a comparison of commands vs datasheets from that era.
Warner