@@ -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
new file mode 100644
@@ -0,0 +1,12 @@
+#
+CONV = ./csvtohtml.py
+
+TARGETS = nanddata.html
+
+all: $(TARGETS)
+
+$(TARGETS): %.html: %.csv *.tmpl
+ $(CONV) -f $<
+
+clean:
+ rm -f $(TARGETS)
new file mode 100755
@@ -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()
new file mode 100644
@@ -0,0 +1,14 @@
+<div>
+<p>
+© 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>
new file mode 100644
@@ -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>
new file mode 100644
@@ -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"