Patchwork [v2] mtd-www: NAND-DATA: Added NAND support table

login
register
mail settings
Submitter Brian Norris
Date Aug. 31, 2010, 11:16 p.m.
Message ID <4C7D8D57.3060103@gmail.com>
Download mbox | patch
Permalink /patch/63331/
State Accepted
Commit 3fe52d6096d17dbaae07492e632589ef0e6cfb13
Headers show

Comments

Brian Norris - Aug. 31, 2010, 11:16 p.m.
Included new NAND Flash support table. This table includes data about
various NAND chips as well as information about the MTD subsystem's
support for these chips. The table is provided in CSV format and is
sorted, formatted, and output to an HTML page via a Python script
(added to Makefile). New entries can simply be added as new rows in
the CSV document.

Note: I did not link this into the main site yet. I can follow-up later
if you'd like, or feel free to do so yourself.

Philip Rakity contributed to fixing the build script.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Philip Rakity <prakity@yahoo.com>
---
 Makefile               |    2 +-
 nand-data/Makefile     |   12 +++
 nand-data/csvtohtml.py |   89 ++++++++++++++++++++++
 nand-data/footer.tmpl  |   14 ++++
 nand-data/header.tmpl  |   66 ++++++++++++++++
 nand-data/nanddata.csv |  193 ++++++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 375 insertions(+), 1 deletions(-)
 create mode 100644 nand-data/Makefile
 create mode 100755 nand-data/csvtohtml.py
 create mode 100644 nand-data/footer.tmpl
 create mode 100644 nand-data/header.tmpl
 create mode 100644 nand-data/nanddata.csv
Artem Bityutskiy - Sept. 1, 2010, 9:59 p.m.
On Tue, 2010-08-31 at 16:16 -0700, Brian Norris wrote:
> Included new NAND Flash support table. This table includes data about
> various NAND chips as well as information about the MTD subsystem's
> support for these chips. The table is provided in CSV format and is
> sorted, formatted, and output to an HTML page via a Python script
> (added to Makefile). New entries can simply be added as new rows in
> the CSV document.
> 
> Note: I did not link this into the main site yet. I can follow-up later
> if you'd like, or feel free to do so yourself.
> 
> Philip Rakity contributed to fixing the build script.

Pushed to mtd-www, thanks:

http://linux-mtd.infradead.org/nand-data/nanddata.html

And since you did not add a reference to this table anywhere, I had find
it a good place, and found it here:

http://linux-mtd.infradead.org/doc/nand.html

but I'm not sure it is the good place.

Patch

diff --git a/Makefile b/Makefile
index 4c17647..ddeab7a 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@ 
 CONV 	= "./html.py"
 
 TARGETS	= index.html archive.html mail.html source.html fellows.html
-SUBDIRS = doc faq misc
+SUBDIRS = doc faq misc nand-data
 
 
 all: $(TARGETS) subdirs
diff --git a/nand-data/Makefile b/nand-data/Makefile
new file mode 100644
index 0000000..ee7b45e
--- /dev/null
+++ b/nand-data/Makefile
@@ -0,0 +1,12 @@ 
+#
+CONV 	= ./csvtohtml.py
+
+TARGETS	= nanddata.html
+
+all: $(TARGETS)
+
+$(TARGETS): %.html: %.csv *.tmpl
+	$(CONV) -f $<
+
+clean:
+	rm -f $(TARGETS)
diff --git a/nand-data/csvtohtml.py b/nand-data/csvtohtml.py
new file mode 100755
index 0000000..06b010b
--- /dev/null
+++ b/nand-data/csvtohtml.py
@@ -0,0 +1,89 @@ 
+#!/usr/bin/env python
+
+import sys, getopt, csv, operator
+
+fdout = sys.stdout
+head = "header.tmpl"
+foot = "footer.tmpl"
+
+# Print the usage information
+def usage():
+        print "Usage:"
+        print "  csvtohtml.py [-f] <source>"
+	print "Options:"
+	print "  -f		write to file <source.html> instead of stdout"
+        return
+
+def csvToHTML(file):
+	reader = csv.reader(open(file))
+	allbutsize_col = 0
+	exception_col = 0
+	tmp = open(head, 'r')
+	fdout.write(tmp.read())
+	tmp.close()
+	fdout.write('<table>\n')
+	row = reader.next()
+	for i in range(len(row)):
+		if (row[i] == "All but Size"):
+			allbutsize_col = i
+		elif (row[i] == "Full Support"):
+			exception_col = i
+	fdout.write('<thead>\n')
+	fdout.write('<tr>')
+	for column in row:
+		fdout.write('<th>' + column + '</th>')
+	fdout.write('</tr>\n')
+	fdout.write('</thead>\n')
+	sortedlist = sorted(reader, key=operator.itemgetter(0), reverse=False)
+	sortedlist = sorted(sortedlist, key=operator.itemgetter(5), reverse=False)
+	sortedlist = sorted(sortedlist, key=operator.itemgetter(4), reverse=False)
+	fdout.write('<tbody>\n')
+	for row in sortedlist:
+		if (row[exception_col] == "FALSE"):
+			if (row[allbutsize_col] == "TRUE"):
+				fdout.write('<tr class="wrong-size">')
+			else:
+				fdout.write('<tr class="exception">')
+		else:
+			fdout.write('<tr>')
+		for column in row:
+			fdout.write('<td>' + column + '</td>')
+		fdout.write('</tr>\n')
+	fdout.write('</tbody>\n')
+	fdout.write('</table>\n')
+	tmp = open(foot, 'r')
+	fdout.write(tmp.read())
+	tmp.close()
+
+writefile = 0
+
+try:
+        (options, arguments) = getopt.getopt(sys.argv[1:],'f')
+except getopt.GetoptError, ex:
+        print
+        print "ERROR:"
+        print ex.msg
+        usage()
+        sys.exit(1)
+        pass
+
+for option, value in options:
+        if option == '-f':
+                writefile = 1
+        pass
+
+if not arguments:
+        print "No source file specified"
+        usage()
+        sys.exit(1)
+        pass
+
+if writefile > 0:
+        fname = arguments[0].split('.')[0]
+        fname = fname + ".html"
+        fdout = open(fname, 'w')
+
+csvToHTML(arguments[0])
+
+if writefile > 0:
+        fdout.close()
diff --git a/nand-data/footer.tmpl b/nand-data/footer.tmpl
new file mode 100644
index 0000000..61ee98b
--- /dev/null
+++ b/nand-data/footer.tmpl
@@ -0,0 +1,14 @@ 
+<div>
+<p>
+&copy; Copyright 2010 Brian Norris (computersforpeace at gmail dot com)<br />
+Updated August 26, 2010<br />
+Licensed under the <a href="http://www.gnu.org/licenses/gpl.html">GNU GPL</a>
+</p>
+<p>
+<a href="http://validator.w3.org/check?uri=referer">
+<img src="http://www.w3.org/Icons/valid-xhtml10-blue" alt="Valid XHTML 1.0 Strict" height="31" width="88" />
+</a>
+</p>
+</div>
+</body>
+</html>
diff --git a/nand-data/header.tmpl b/nand-data/header.tmpl
new file mode 100644
index 0000000..8e52c9d
--- /dev/null
+++ b/nand-data/header.tmpl
@@ -0,0 +1,66 @@ 
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<title>NAND Flash Table</title>
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
+<style type="text/css">
+	body {
+		font-family: Arial, Helvetica, Geneva, Swiss, SunSans-Regular;
+		font-size: small;
+	}
+	table { border: 1px solid; border-collapse: collapse; }
+	table td, table th {
+		border-left: 1px dotted;
+		border-right: 1px dotted;
+		border-bottom: 1px solid;
+		border-top: 1px solid;
+		font-family: "Courier New",courier,monospace;
+		padding: 0px 5px 0px 5px;
+		font-size: small;
+		white-space: nowrap;
+	}
+	table th { background-color: #eee; }
+	.wrong-size { color: #0066FF; }
+	.exception { color: red; }
+	#footer { text-align: left; }
+</style>
+<!--
+    NAND Flash Table
+    Copyright (C) 2010 Brian Norris
+
+    This document is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This document is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this document.  If not, see <http://www.gnu.org/licenses/>.
+-->
+</head>
+<body>
+<h1>NAND Flash Support Table</h1>
+<p>This table is a list of many different flash chips of varying types and an
+assessment of their detection in the MTD subsystem of the current Linux kernel.
+It is not an exhaustive list by any means, and it certainly has a few holes
+(especially on newer parts) but it is well beyond the scope of anything I have
+found in other materials.
+</p>
+<p>This table is currently sorted by the order in which I came across the chips.
+This leaves many of the chips in grouping by datasheet and similar type, but it
+may overall seem disorganized. I may choose to improve the nature of this catalog
+in the future.
+</p>
+<p>One should note that <span class="wrong-size">rows in blue represent chips that
+are detected properly except for their total size (perhaps because they are
+multi-die chips that should be detected by their sub-chipsize)</span> and
+<span class="exception">rows in red represent chips that are not detected
+properly</span>. Note in the columns with boolean values (i.e., TRUE or FALSE),
+a TRUE with an asterisk (*) represents a value that is TRUE only with support from
+patches which have not yet been accepted into the mainline kernel (e.g., support
+for detection of new Toshiba or Samsung ID decoding methods).
+</p>
diff --git a/nand-data/nanddata.csv b/nand-data/nanddata.csv
new file mode 100644
index 0000000..6db9847
--- /dev/null
+++ b/nand-data/nanddata.csv
@@ -0,0 +1,193 @@ 
+"Manufacturer","Part #","Man. ID","ID Code","Full ID","MB","Page","OOB","Block","Bus","ONFI","Bad Block Location","Scan Page 2","Scan last page","Scan byte 1","Scan byte 6","ECC Req.","Bits per cell","ID Length","Detection Method","Full Support","All but Size","Correct Size","Correct Page","Correct OOB","Correct Block","Correct Busw","Correct BBM","Notes"
+"Toshiba","TC58128AFT","0x98","0x73","0x9873",16,512,16,"16 KB","x8","N/A","All OOB bytes",TRUE,TRUE,TRUE,TRUE,"?","1?",2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"For BBM, entire OOB is written non-FFh (only check 1st page, 1st byte?)"
+"Samsung","K9F1G08U0B","0xEC","0xF1","0xECF1009540",128,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Toshiba","TC58DVM72A1TG00","0x98","0x73","0x9873",16,512,16,"16 KB","x8","N/A","All OOB bytes",TRUE,TRUE,TRUE,TRUE,"?","1?",2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"For BBM, entire OOB is written non-FFh (only check 1st page, 1st byte?)"
+"Samsung","K9F5608D0C","0xEC","0x75","0xEC75",32,512,16,"16 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"? (1-bit correct, 2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9F5608Q0C","0xEC","0x35","0xEC35",32,512,16,"16 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"? (1-bit correct, 2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9F5608U0C","0xEC","0x75","0xEC75",32,512,16,"16 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"? (1-bit correct, 2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9F5616D0C","0xEC","0x55","0xEC55",32,512,16,"16 KB","x16","N/A","1st or 2nd page (1st word in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"? (1-bit correct, 2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9F5616Q0C","0xEC","0x45","0xEC45",32,512,16,"16 KB","x16","N/A","1st or 2nd page (1st word in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"? (1-bit correct, 2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9F5616U0C","0xEC","0x55","0xEC55",32,512,16,"16 KB","x16","N/A","1st or 2nd page (1st word in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"? (1-bit correct, 2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9F4G08U0A","0xEC","0xDC","0xECDC109554",512,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9K8G08U1A","0xEC","0xDC","0xECDC109554",1024,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"Made of two K9F4G08U0As"
+"Samsung","K9F4G08U0M","0xEC","0xDC","0xECDC109554",512,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9K8G08U1M","0xEC","0xDC","0xECDC109554",1024,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND128W3A","0x20","0x73","0x2073",16,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND256R3A","0x20","0x35","0x2035",32,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND256W3A","0x20","0x75","0x2075",32,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND256R4A","0x20","0x45","0x2045",32,512,16,"16 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND256W4A","0x20","0x55","0x2055",32,512,16,"16 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND512R3A","0x20","0x36","0x2036",64,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND512W3A","0x20","0x76","0x2076",64,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND512R4A","0x20","0x46","0x2046",64,512,16,"16 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND512W4A","0x20","0x56","0x2056",64,512,16,"16 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND01GR3A","0x20","0x39","0x2039",128,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND01GW3A","0x20","0x79","0x2079",128,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND01GR4A","0x20","0x49","0x2049",128,512,16,"16 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND01GW4A","0x20","0x59","0x2059",128,512,16,"16 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND512R3A2C","0x20","0x36","0x2036",64,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"Similar part, different manufacturer (Numonyx NAND512-A2D); further cycles ignored"
+"ST","NAND512W3A2C","0x20","0x76","0x2076",64,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"Similar part, different manufacturer (Numonyx NAND512-A2D); further cycles ignored"
+"ST","NAND512R4A2C","0x20","0x46","0x2046",64,512,16,"16 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"Similar part, different manufacturer (Numonyx NAND512-A2D); further cycles ignored"
+"ST","NAND512W4A2C","0x20","0x56","0x2056",64,512,16,"16 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"Similar part, different manufacturer (Numonyx NAND512-A2D); further cycles ignored"
+"Numonyx","NAND512R3A2D","0x20","0x36","0x2036",64,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"1-bit/512-byte (2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"further cycles ignored"
+"Numonyx","NAND512W3A2D","0x20","0x76","0x2076",64,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"1-bit/512-byte (2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"further cycles ignored"
+"Numonyx","NAND512R4A2D","0x20","0x46","0x2046",64,512,16,"16 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"1-bit/512-byte (2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"further cycles ignored"
+"Numonyx","NAND512W4A2D","0x20","0x56","0x2056",64,512,16,"16 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"1-bit/512-byte (2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"further cycles ignored"
+"Numonyx","NAND01GR3A2C","0x20","0x78","0x2078",128,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"1-bit/512-byte (2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"further cycles ignored"
+"Numonyx","NAND01GW3A2C","0x20","0x79","0x2079",128,512,16,"16 KB","x8","N/A","1st page (6th byte in OOB = non FFh)",FALSE,FALSE,FALSE,TRUE,"1-bit/512-byte (2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"further cycles ignored"
+"Numonyx","NAND01GR4A2C","0x20","0x72","0x2072",128,512,16,"16 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"1-bit/512-byte (2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"further cycles ignored"
+"Numonyx","NAND01GW4A2C","0x20","0x74","0x2074",128,512,16,"16 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"1-bit/512-byte (2-bit detect)",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"further cycles ignored"
+"Hynix","HY27UF081G2M","0xAD","0xF1","0xADF1XX15",128,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"?",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Hynix","HY27UF161G2M","0xAD","0xC1","0xADC1XX55",128,2048,64,"128 KB","x16","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"?",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Hynix","HY27SF081G2M","0xAD","0xA1","0xADA1XX15",128,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"?",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Hynix","HY27SF161G2M","0xAD","0xAD","0xADADXX55",128,2048,64,"128 KB","x16","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"?",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Micron","MT29F2G08AAC","0x2C","0xDA","0x2CDAXX15",256,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte (or 528-byte)","1?",4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Micron","MT29F2G08ABC","0x2C","0xAA","0x2CAAXX15",256,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte (or 528-byte)","1?",4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Micron","MT29F2G16AAC","0x2C","0xCA","0x2CCAXX55",256,2048,64,"128 KB","x16","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte (or 528-byte)","1?",4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Micron","MT29F2G16ABC","0x2C","0xBA","0x2CBAXX55",256,2048,64,"128 KB","x16","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte (or 528-byte)","1?",4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Micron","MT29F4G08BAC","0x2C","0xDC","0x2CDCXX15",512,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte (or 528-byte)","1?",4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Micron","MT29F8G08FAC","0x2C","0xDC","0x2CDCXX15",1024,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte (or 528-byte)","1?",4,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode; made of two 4Gb sections"
+"Micron","MT29F2G08AAB","0x2C","0xDA","0x2CDAXX15",256,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"?","1?",4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Micron","MT29F2G16AAB","0x2C","0xCA","0x2CCAXX55",256,2048,64,"128 KB","x16","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"?","1?",4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Micron","MT29F4G08BAB","0x2C","0xDC","0x2CDCXX15",512,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"?","1?",4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Micron","MT29F4G16BAB","0x2C","0xCC","0x2CCCXX55",512,2048,64,"128 KB","x16","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"?","1?",4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Micron","MT29F8G08FAB","0x2C","0xDC","0x2CDCXX15",1024,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"?","1?",4,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Samsung","K9F1208R0B","0xEC","0x36","0xEC36A5C0",64,512,16,"16 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"? (1-bit correct, 2-bit detect)",1,4,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Samsung","K9F1208B0B","0xEC","0x76","0xEC76A5C0",64,512,16,"16 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"? (1-bit correct, 2-bit detect)",1,4,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Samsung","K9F1208U0B","0xEC","0x76","0xEC76A5C0",64,512,16,"16 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"? (1-bit correct, 2-bit detect)",1,4,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Samsung","K9F2G08U0M","0xEC","0xDA","0xECDA8015",256,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"? (1-bit correct, 2-bit detect)",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9K4G08U1M","0xEC","0xDA","0xECDA8015",512,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"? (1-bit correct, 2-bit detect)",1,4,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9F2G08B0B","0xEC","0xDA","0xECDA109544",256,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"only differ by voltage"
+"Samsung","K9F2G08U0B","0xEC","0xDA","0xECDA109544",256,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"only differ by voltage"
+"Samsung","K9F2G08R0A","0xEC","0xAA","0xECAA001544",256,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9F2G08U0A","0xEC","0xDA","0xECDA109544",256,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9GAG08B0D","0xEC","0xD5","0xECD594293441",2048,4096,218,"512 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"8-bit/512-byte (correction)",2,6,"Extended ID decode (Samsung)",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9GAG08U0D","0xEC","0xD5","0xECD594293441",2048,4096,218,"512 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"8-bit/512-byte (correction)",2,6,"Extended ID decode (Samsung)",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9LBG08U1D","0xEC","0xD5","0xECD594293441",4096,4096,218,"512 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"8-bit/512-byte (correction)",2,6,"Extended ID decode (Samsung)",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"Contains 2 K9GAG08U0D"
+"Samsung","K9HCG08U5D","0xEC","0xD5","0xECD594293441",8192,4096,218,"512 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"8-bit/512-byte (correction)",2,6,"Extended ID decode (Samsung)",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"Contains 4 K9GAG08U0D"
+"Spansion","S30ML512P","0x01","0x76","0x0176010110",64,512,16,"512 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"1-bit/512-byte (correction)","ORNAND",5,"ID Table (ORNAND blocksize)",TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*",TRUE,TRUE,"Each model has x8/x16 bus versions, 2%/0% bad blocks; 2% => ID byte 3 = 0x00"
+"Spansion","S30ML512P","0x01","0x56","0x0156010110",64,512,16,"512 KB","x16","N/A","1st or 2nd page (1st word in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte (correction)","ORNAND",5,"ID Table (ORNAND blocksize)",TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*",TRUE,TRUE,"Each model has x8/x16 bus versions, 2%/0% bad blocks; 2% => ID byte 3 = 0x00"
+"Spansion","S30ML256P","0x01","0x75","0x0175010110",32,512,16,"512 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"1-bit/512-byte (correction)","ORNAND",5,"ID Table (ORNAND blocksize)",TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*",TRUE,TRUE,"Each model has x8/x16 bus versions, 2%/0% bad blocks; 2% => ID byte 3 = 0x00"
+"Spansion","S30ML256P","0x01","0x55","0x0155010110",32,512,16,"512 KB","x16","N/A","1st or 2nd page (1st word in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte (correction)","ORNAND",5,"ID Table (ORNAND blocksize)",TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*",TRUE,TRUE,"Each model has x8/x16 bus versions, 2%/0% bad blocks; 2% => ID byte 3 = 0x00"
+"Spansion","S30ML128P","0x01","0x73","0x0173010110",16,512,16,"512 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"1-bit/512-byte (correction)","ORNAND",5,"ID Table (ORNAND blocksize)",TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*",TRUE,TRUE,"Each model has x8/x16 bus versions, 2%/0% bad blocks; 2% => ID byte 3 = 0x00"
+"Spansion","S30ML128P","0x01","0x53","0x0153030110",16,512,16,"512 KB","x16","N/A","1st or 2nd page (1st word in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte (correction)","ORNAND",5,"ID Table (ORNAND blocksize)",TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*",TRUE,TRUE,"Each model has x8/x16 bus versions, 2%/0% bad blocks; 2% => ID byte 3 = 0x04"
+"Samsung","K9K8G08U0A","0xEC","0xD3","0xECD3519558",1024,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Samsung","K9WAG08U1A","0xEC","0xD3","0xECD3519558",2048,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Samsung","K9NBG08U5A","0xEC","0xD3","0xECD3519558",4096,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Samsung","K9F8G08B0M","0xEC","0xD3","0xECD310A664",1024,4096,128,"256 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,"5?","Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9F8G08U0M","0xEC","0xD3","0xECD310A664",1024,4096,128,"256 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,"5?","Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9F8G08U1M","0xEC","0xD3","0xECD310A664",2048,4096,128,"256 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,"5?","Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"contains 2 K9F8G08U0M"
+"Numonyx","NAND04GR3B2D","0x20","0xAC","0x20AC101554",512,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"embedded 1/528 bit ECC; remains in Read ID mode"
+"Numonyx","NAND08GR3B4C","0x20","0xAC","0x20AC101554",1024,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"embedded 1/528 bit ECC; remains in Read ID mode; contains two NAND04GR3B2D"
+"Numonyx","NAND04GW3B2D","0x20","0xDC","0x20DC109554",512,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"embedded 1/528 bit ECC; remains in Read ID mode"
+"Numonyx","NAND08GW3B4C","0x20","0xDC","0x20DC109554",1024,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"embedded 1/528 bit ECC; remains in Read ID mode; contains two NAND04GW3B2D"
+"Numonyx","NAND04GR4B2D","0x20","0xBC","0x20BC105554",512,2048,64,"128 KB","x16",1.0,"1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"embedded 1/528 bit ECC; remains in Read ID mode"
+"Numonyx","NAND04GW4B2D","0x20","0xCC","0x20CC10D554",512,2048,64,"128 KB","x16",1.0,"1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"embedded 1/528 bit ECC; remains in Read ID mode"
+"Numonyx","NAND08GR3B2C","0x20","0xA3","0x20A3511558",1024,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"embedded 1/528 bit ECC; remains in Read ID mode"
+"Numonyx","NAND08GW3B2C","0x20","0xD3","0x20D3519558",1024,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"embedded 1/528 bit ECC; remains in Read ID mode"
+"Numonyx","NAND08GR4B2C","0x20","0xB3","0x20B3515558",1024,2048,64,"128 KB","x16",1.0,"1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"embedded 1/528 bit ECC; remains in Read ID mode"
+"Numonyx","NAND08GW4B2C","0x20","0xC3","0x20C351D558",1024,2048,64,"128 KB","x16",1.0,"1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"embedded 1/528 bit ECC; remains in Read ID mode"
+"Micron","MT29F4G08AAA","0x2C","0xDC","0x2CDC909554",512,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Micron","MT29F8G08BAA","0x2C","0xD3","0x2CD3D19558",1024,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Micron","MT29F8G08DAA","0x2C","0xDC","0x2CDC909554",1024,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"contains 2 MT29F4G08AAA"
+"Micron","MT29F16G08FAA","0x2C","0xD3","0x2CD3D19558",2048,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"contains 2 MT29F8G08BAA"
+"Micron","MT29F16G08MAA","0x2C","0xD5","0x2CD5943E74",2048,4096,218,"512 KB","x8",1.0,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"8-bit/539-byte",2,5,"ONFI-Only?",FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,
+"Micron","MT29F32G08QAA","0x2C","0xD5","0x2CD5943E74",4096,4096,218,"512 KB","x8",1.0,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"8-bit/539-byte",2,5,"ONFI-Only?",FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,
+"Micron","MT29F64G08TAA","0x2C","0xD7","0x2CD7D53E78",8192,4096,218,"512 KB","x8",1.0,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"8-bit/539-byte",2,5,"ONFI-Only?",FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,
+"Micron","MT29F16G08CBABA","0x2C","0x48","0x2C48044685",2048,4096,224,"1024 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"12-bit/540-byte",2,5,"ONFI-Only?",FALSE,FALSE,FALSE,,FALSE,,TRUE,TRUE,"returns 0x00 after first 5 read ID bytes"
+"Micron","MT29F16G08CBABB","0x2C","0x48","0x2C48044685",2048,4096,224,"1024 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"12-bit/540-byte",2,5,"ONFI-Only?",FALSE,FALSE,FALSE,,FALSE,,TRUE,TRUE,"returns 0x00 after first 5 read ID bytes"
+"Micron","MT29F8G08MAA","0x2C","0xD3","0x2CD394A564",1024,2048,64,"256 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"4-bit/528-byte",2,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Micron","MT29F16G08QAA","0x2C","0xD3","0x2CD394A564",2048,2048,64,"256 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"4-bit/528-byte",2,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Micron","MT29F32G08TAA","0x2C","0xD5","0x2CD5D5A568",4096,2048,64,"256 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"4-bit/528-byte",2,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"ST","NAND04GR3B2D","0x20","0xAC","0x20AC101554",512,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND08GR3B4C","0x20","0xAC","0x20AC101554",1024,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND04GW3B2D","0x20","0xDC","0x20DC109554",512,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND08GW3B4C","0x20","0xDC","0x20DC109554",1024,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND04GR4B2D","0x20","0xBC","0x20BC105554",512,2048,64,"128 KB","x16",1.0,"1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND04GW4B2D","0x20","0xCC","0x20CC10D554",512,2048,64,"128 KB","x16",1.0,"1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND08GR3B2C","0x20","0xA3","0x20A3511558",1024,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND08GW3B2C","0x20","0xD3","0x20D3519558",1024,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND08GR4B2C","0x20","0xB3","0x20B3515558",1024,2048,64,"128 KB","x16",1.0,"1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"ST","NAND08GW4B2C","0x20","0xC3","0x20C351D558",1024,2048,64,"128 KB","x16",1.0,"1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND02GR3B2D","0x20","0xAA","0x20AA101544",256,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Numonyx","NAND02GW3B2D","0x20","0xDA","0x20DA109544",256,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Numonyx","NAND02GR4B2D","0x20","0xBA","0x20BA105544",256,2048,64,"128 KB","x16",1.0,"1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Numonyx","NAND02GW4B2D","0x20","0xCA","0x20CA10D544",256,2048,64,"128 KB","x16",1.0,"1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"remains in Read ID mode"
+"Numonyx","NAND01GR3B2B","0x20","0xA1","0x20A18015",128,2048,64,"128 KB","x8","N/A","1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND01GW3B2B","0x20","0xF1","0x20F1801D",128,2048,64,"128 KB","x8","N/A","1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND01GR4B2B","0x20","0xB1","0x20B18055",128,2048,64,"128 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND01GW4B2B","0x20","0xC1","0x20C1805D",128,2048,64,"128 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND02GR3B2C","0x20","0xAA","0x20AA8015",256,2048,64,"128 KB","x8","N/A","1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND02GW3B2C","0x20","0xDA","0x20DA801D",256,2048,64,"128 KB","x8","N/A","1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND02GR4B2C","0x20","0xBA","0x20BA8055",256,2048,64,"128 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND02GW42C","0x20","0xCA","0x20CA805D",256,2048,64,"128 KB","x16","N/A","1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND01GR3B2B","0x20","0xA1","0x20A10015",128,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND01GW3B2B","0x20","0xF1","0x20F1001D",128,2048,64,"128 KB","x8",1.0,"1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"22-bit/2048-bits",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND01GR4B2B","0x20","0xB1","0x20B10055",128,2048,64,"128 KB","x16",1.0,"1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND01GW4B2B","0x20","0xC1","0x20C1005D",128,2048,64,"128 KB","x16",1.0,"1st page (1st word in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"22-bit/2048-bits",1,4,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Hynix","HY27UF082G2A","0xAD","0xDA","0xADDA801D00",256,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Hynix","HY27UF162G2A","0xAD","0xCA","0xADCA805D00",256,2048,64,"128 KB","x16","N/A","1st or 2nd page (1st word in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9G8G08B0A","0xEC","0xD3","0xECD314A564",1024,2048,64,"256 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"4-bit/512-byte",2,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9G8G08U0A","0xEC","0xD3","0xECD314A564",1024,2048,64,"256 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"4-bit/512-byte",2,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9LAG08U1A","0xEC","0xD3","0xECD314A564",2048,2048,64,"256 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"4-bit/512-byte",2,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9LBG08U0D","0xEC","0xD7","0xECD7D5293841",4096,4096,218,"512 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"8-bit/512-byte (correction)",2,6,"Extended ID decode (Samsung)",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9HCG08U1D","0xEC","0xD7","0xECD7D5293841",8192,4096,218,"512 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"8-bit/512-byte (correction)",2,6,"Extended ID decode (Samsung)",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9XDG08U5D","0xEC","0xD7","0xECD7D5293841",16384,4096,218,"512 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"8-bit/512-byte (correction)",2,6,"Extended ID decode (Samsung)",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Numonyx","NAND08GW3F2B","0x20","0xD3","0x20D390152441",1024,2048,64,"128 KB","x8","N/A","1st page (1st or 6th byte in OOB = non FFh)",FALSE,FALSE,TRUE,TRUE,"1-bit/512-byte",1,6,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9K8G08U0B","0xEC","0xDC","0xECDC519558",1024,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9WAG08U1B","0xEC","0xDC","0xECDC519558",2048,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Micron","MT29F16G08ABABA","0x2C","0x48","0x2C48002689",2048,4096,224,"512 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"4-bit/540-byte",1,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,"Read ID produces 00h after byte 5"
+"Micron","MT29F16G08ABCBB","0x2C","0x48","0x2C48002689",2048,4096,224,"512 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"4-bit/540-byte",1,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,"Read ID produces 00h after byte 5"
+"Micron","MT29F32G08AFABA","0x2C","0x48","0x2C48002689",4096,4096,224,"512 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"4-bit/540-byte",1,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,"Read ID produces 00h after byte 5"
+"Micron","MT29F32G08AECBB","0x2C","0x48","0x2C48002689",4096,4096,224,"512 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"4-bit/540-byte",1,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,"Read ID produces 00h after byte 5"
+"Micron","MT29F64G08AJABA","0x2C","0x68","0x2C6801A689",8192,4096,224,"512 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"4-bit/540-byte",1,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,"Read ID produces 00h after byte 5"
+"Micron","MT29F64G08AKABA","0x2C","0x68","0x2C6801A689",8192,4096,224,"512 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"4-bit/540-byte",1,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,"Read ID produces 00h after byte 5"
+"Micron","MT29F64G08AKCBB","0x2C","0x68","0x2C6801A689",8192,4096,224,"512 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"4-bit/540-byte",1,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,"Read ID produces 00h after byte 5"
+"Micron","MT29F64G08AMABA","0x2C","0x48","0x2C48002689",8192,4096,224,"512 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"4-bit/540-byte",1,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,"Read ID produces 00h after byte 5"
+"Micron","MT29F64G08AMCBB","0x2C","0x48","0x2C48002689",8192,4096,224,"512 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"4-bit/540-byte",1,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,"Read ID produces 00h after byte 5"
+"Micron","MT29F128G08AUABA","0x2C","0x68","0x2C6801A689",16384,4096,224,"512 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"4-bit/540-byte",1,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,"Read ID produces 00h after byte 5"
+"Micron","MT29F128G08AUCBB","0x2C","0x68","0x2C6801A689",16384,4096,224,"512 KB","x8",2.1,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"4-bit/540-byte",1,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,"Read ID produces 00h after byte 5"
+"Micron","MT29F32G08CBACA","0x2C","0x68","0x2C68044AA9",4096,4096,224,"1024 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F64G08CEACA","0x2C","0x68","0x2C68044AA9",8192,4096,224,"1024 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F64G08CECCB","0x2C","0x68","0x2C68044AA9",8192,4096,224,"1024 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F64G08CFACA","0x2C","0x68","0x2C68044AA9",8192,4096,224,"1024 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F128G08CXACA","0x2C","0x68","0x2C68044AA9",16384,4096,224,"1024 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F64G08CBAAA","0x2C","0x88","0x2C88044BA9",8192,8192,448,"2048 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F64G08CBCAB","0x2C","0x88","0x2C88044BA9",8192,8192,448,"2048 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F128G08CEAAA","0x2C","0x88","0x2C88044BA9",16384,8192,448,"2048 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F128G08CFAAA","0x2C","0x88","0x2C88044BA9",16384,8192,448,"2048 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F128G08CECAB","0x2C","0x88","0x2C88044BA9",16384,8192,448,"2048 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F256G08CJAAA","0x2C","0xA8","0x2CA805CBA9",32768,8192,448,"2048 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F256G08CKAAA","0x2C","0xA8","0x2CA805CBA9",32768,8192,448,"2048 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F256G08CKCAB","0x2C","0xA8","0x2CA805CBA9",32768,8192,448,"2048 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F256G08CMAAA","0x2C","0x88","0x2C88044BA9",32768,8192,448,"2048 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F256G08CMCAB","0x2C","0x88","0x2C88044BA9",32768,8192,448,"2048 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F512G08CUAAA","0x2C","0xA8","0x2CA805CBA9",65536,8192,448,"2048 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Micron","MT29F512G08CUCAB","0x2C","0xA8","0x2CA805CBA9",65536,8192,448,"2048 KB","x8",2.2,"1st page (1st byte in OOB = non FFh)",FALSE,FALSE,TRUE,FALSE,"24-bit/1080-byte",2,5,"ONFI-Only",FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,
+"Samsung","K9LBG08U0M","0xEC","0xD7","0xECD755B678",4096,4096,128,"512 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"4-bit/512-byte",2,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9HCG08U1M","0xEC","0xD7","0xECD755B678",8192,4096,128,"512 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"4-bit/512-byte",2,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"Contains 2 K9LBG08U0M"
+"Samsung","K9MDG08U5M","0xEC","0xD7","0xECD755B678",16384,4096,128,"512 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"4-bit/512-byte",2,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"Contains 4 K9LBG08U0M"
+"Toshiba","TC58TxG4S2FBAxx","0x98","0xD5","0x98D5...",2048,8192,576,"512 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"TBD/1096-byte",1,6,"Extended ID decode",FALSE,FALSE,"TRUE*",TRUE,FALSE,TRUE,TRUE,"TRUE*","Datasheet doesn't list full ID, only shows ID decoder table"
+"Toshiba","TH58TxG7S2FBAxx","0x98","0xD7","0x98D7...",16384,8192,576,"512 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"TBD/1096-byte",1,6,"Extended ID decode",FALSE,FALSE,"TRUE*",TRUE,FALSE,TRUE,TRUE,"TRUE*","Datasheet doesn't list full ID, only shows ID decoder table"
+"Hynix","HY27UF082G2B","0xAD","0xDA","0xADDA109544",256,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Hynix","HY27UF162G2B","0xAD","0xCA","0xADCA10D544",256,2048,64,"128 KB","x16","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Hynix","HY27US081G1M","0xAD","0x79","0xAD79A500",128,512,16,"16 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"4-bit/528-byte",1,4,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*",
+"Hynix","HY27US161G1M","0xAD","0x74","0xAD74A500",128,512,16,"16 KB","x16","N/A","1st or 2nd page (1st word in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"4-bit/528-byte",1,4,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*",
+"Hynix","HY27US08561A","0xAD","0x75","0xAD75",32,512,16,"16 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"1-bit/512-byte",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*","remains in Read ID mode"
+"Hynix","HY27US16561A","0xAD","0x55","0xAD55",32,512,16,"16 KB","x16","N/A","1st or 2nd page (1st word in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*","remains in Read ID mode"
+"Hynix","HY27SS08561A","0xAD","0x35","0xAD35",32,512,16,"16 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"1-bit/512-byte",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*","remains in Read ID mode"
+"Hynix","HY27SS16561A","0xAD","0x45","0xAD45",32,512,16,"16 KB","x16","N/A","1st or 2nd page (1st word in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte",1,2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*","remains in Read ID mode"
+"Hynix","HY27US0812(1/2)B","0xAD","0x76","0xAD76",64,512,16,"16 KB","x8","N/A","1st or 2nd page (6th byte in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"1-bit/528-byte",1,4,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,"TRUE*",
+"Hynix","HY27US1612(1/2)B","0xAD","0x56","0xAD56",64,512,16,"16 KB","x16","N/A","1st or 2nd page (3rd word in OOB = non FFh)",TRUE,FALSE,FALSE,TRUE,"1-bit/528-byte",1,4,"ID Table",FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,"This is the ONLY x16 chip that uses byte 6 (""word 3"") for BBM"
+"Samsung","K9F1G08U0D","0xEC","0xF1","0xECF1001540",128,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/528-byte",1,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9G8G08B0M","0xEC","0xD3","0xECD3142564",1024,2048,64,"256 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"4-bit/512-byte",2,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9G8G08U0M","0xEC","0xD3","0xECD3142564",1024,2048,64,"256 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"4-bit/512-byte",2,5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,
+"Samsung","K9LAG08U1M","0xEC","0xD3","0xECD3142564",2048,2048,64,"256 KB","x8","N/A","Last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"4-bit/512-byte",2,5,"Extended ID decode",FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,"Contains 2 K9G8G08U0M"
+"Samsung","K9GBG08U0M","0xEC","0xD7","0xECD794725442",4096,8192,436,"1024 KB","x8","N/A","1st or last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"24-bit/1024-byte",2,6,"Extended ID decode (Samsung)",FALSE,FALSE,TRUE,TRUE,"TRUE*",TRUE,TRUE,FALSE,"Weird 1st AND last page scan?"
+"Samsung","K9LCG08U1M","0xEC","0xD7","0xECD794725442",8192,8192,436,"1024 KB","x8","N/A","1st or last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"24-bit/1024-byte",2,6,"Extended ID decode (Samsung)",FALSE,FALSE,FALSE,TRUE,"TRUE*",TRUE,TRUE,FALSE,"Weird 1st AND last page scan?"
+"Samsung","K9HDG08U5M","0xEC","0xD7","0xECD794725442",16384,8192,436,"1024 KB","x8","N/A","1st or last page (1st byte in OOB = non FFh)",FALSE,TRUE,TRUE,FALSE,"24-bit/1024-byte",2,6,"Extended ID decode (Samsung)",FALSE,FALSE,FALSE,TRUE,"TRUE*",TRUE,TRUE,FALSE,"Weird 1st AND last page scan?"
+"Toshiba","TC58DVG02A5","0x98","0x79","0x9879",128,512,16,"16 KB","x8","N/A","All OOB bytes",,,,,"TBD/512-byte","1?",2,"ID Table",TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,,"Preliminary sheet"
+"Toshiba","TC58DVG3S0E","0x98","0xD3","0x98D3...",1024,4096,128,"256 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"TBD/512-byte","1?",5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,,TRUE,TRUE,"TRUE*","Datasheet doesn't list full ID, only shows ID decoder table; Preliminary sheet"
+"Toshiba","TC58NVG0S3E","0x98","0xD1","0x98D1...",128,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte","1?",5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,,TRUE,TRUE,"TRUE*","similar part, different manufacturer (Numonyx NAND512-A2D); further cycles ignored"
+"Toshiba","TC58NVG1S3E","0x98","0xDA","0x98DA...",256,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte","1?",5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,,TRUE,TRUE,"TRUE*","Datasheet doesn't list full ID, only shows ID decoder table"
+"Toshiba","TC58NVG2S3E","0x98","0xDC","0x98DC...",512,2048,64,"128 KB","x8","N/A","1st or 2nd page (1st byte in OOB = non FFh)",TRUE,FALSE,TRUE,FALSE,"1-bit/512-byte","1?",5,"Extended ID decode",TRUE,TRUE,TRUE,TRUE,,TRUE,TRUE,"TRUE*","Datasheet doesn't list full ID, only shows ID decoder table"