Flashrom

Flashrom Svn Source Tree

Root/trunk/flashchips.h

  • Property svn:keywords set to Author Date Id Revision
  • Property svn:eol-style set to native
1/*
2 * This file is part of the flashrom project.
3 *
4 * Copyright (C) 2000 Silicon Integrated System Corporation
5 * Copyright (C) 2000 Ronald G. Minnich <rminnich@gmail.com>
6 * Copyright (C) 2005-2007 coresystems GmbH <stepan@coresystems.de>
7 * Copyright (C) 2006-2009 Carl-Daniel Hailfinger
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24#ifndef __FLASHCHIPS_H__
25#define __FLASHCHIPS_H__ 1
26
27/*
28 * Please keep this list sorted alphabetically by manufacturer. The first
29 * entry of each section should be the manufacturer ID, followed by the
30 * list of devices from that manufacturer (sorted by device IDs).
31 *
32 * All LPC/FWH parts (parallel flash) have 8-bit device IDs if there is no
33 * continuation code.
34 * SPI parts have 16-bit device IDs if they support RDID.
35 */
36
37#define GENERIC_MANUF_ID0xffff/* Check if there is a vendor ID */
38#define GENERIC_DEVICE_ID0xffff/* Only match the vendor ID */
39
40#define ALLIANCE_ID0x52/* Alliance Semiconductor */
41#define ALLIANCE_AS29F002B0x34
42#define ALLIANCE_AS29F002T0xB0
43#define ALLIANCE_AS29F0100x04
44#define ALLIANCE_AS29F0400xA4
45#define ALLIANCE_AS29F200B0x57
46#define ALLIANCE_AS29F200T0x51
47#define ALLIANCE_AS29LV160B0x49
48#define ALLIANCE_AS29LV160T0xCA
49#define ALLIANCE_AS29LV400B0xBA
50#define ALLIANCE_AS29LV400T0xB9
51#define ALLIANCE_AS29LV800B0x5B
52#define ALLIANCE_AS29LV800T0xDA
53
54#define AMD_ID0x01/* AMD */
55#define AMD_AM29DL400BT0x0C
56#define AMD_AM29DL400BB0x0F
57#define AMD_AM29DL800BT0x4A
58#define AMD_AM29DL800BB0xCB
59#define AMD_AM29F002BB0x34/* Same as Am29F002NBB */
60#define AMD_AM29F002BT0xB0/* Same as Am29F002NBT */
61#define AMD_AM29F004BB0x7B
62#define AMD_AM29F004BT0x77
63#define AMD_AM29F016D0xAD
64#define AMD_AM29F010B0x20/* Same as Am29F010A */
65#define AMD_AM29F040B0xA4
66#define AMD_AM29F080B0xD5
67#define AMD_AM29F200BB0x57
68#define AMD_AM29F200BT0x51
69#define AMD_AM29F400BB0xAB
70#define AMD_AM29F400BT0x23
71#define AMD_AM29F800BB0x58
72#define AMD_AM29F800BT0xD6
73#define AMD_AM29LV001BB0x6D
74#define AMD_AM29LV001BT0xED
75#define AMD_AM29LV002BB0xC2
76#define AMD_AM29LV002BT0x40
77#define AMD_AM29LV004BB0xB6
78#define AMD_AM29LV004BT0xB5
79#define AMD_AM29LV008BB0x37
80#define AMD_AM29LV008BT0x3E
81#define AMD_AM29LV040B0x4F
82#define AMD_AM29LV080B0x38/* Same as Am29LV081B */
83#define AMD_AM29LV200BB0xBF
84#define AMD_AM29LV200BT0x3B
85#define AMD_AM29LV800BB0x5B/* Same as Am29LV800DB */
86#define AMD_AM29LV400BT0xB9
87#define AMD_AM29LV400BB0xBA
88#define AMD_AM29LV800BT0xDA/* Same as Am29LV800DT */
89
90#define AMIC_ID0x7F37/* AMIC */
91#define AMIC_ID_NOPREFIX0x37/* AMIC */
92#define AMIC_A25L05PT0x2020
93#define AMIC_A25L05PU0x2010
94#define AMIC_A25L10PT0x2021
95#define AMIC_A25L10PU0x2011
96#define AMIC_A25L20PT0x2022
97#define AMIC_A25L20PU0x2012
98#define AMIC_A25L40PT0x2013/* Datasheet says T and U have
99 same device ID. Confirmed by
100 hardware testing. */
101#define AMIC_A25L40PU0x2013
102#define AMIC_A25L80P0x2014/* Seems that no A25L80PT exists */
103#define AMIC_A25L16PT0x2025
104#define AMIC_A25L16PU0x2015
105#define AMIC_A25L5120x3010
106#define AMIC_A25L0100x3011
107#define AMIC_A25L0200x3012
108#define AMIC_A25L0400x3013
109#define AMIC_A25L0800x3014
110#define AMIC_A25L0160x3015
111#define AMIC_A25L0320x3016
112#define AMIC_A25LQ0320x4016
113#define AMIC_A29002B0x0d
114#define AMIC_A29002T0x8C/* Same as A290021T */
115#define AMIC_A29040B0x86
116#define AMIC_A29400T0xB0/* Same as 294001T */
117#define AMIC_A29400U0x31/* Same as A294001U */
118#define AMIC_A29800T0x0E
119#define AMIC_A29800U0x8F
120#define AMIC_A29L004T0x34/* Same as A29L400T */
121#define AMIC_A29L004U0xB5/* Same as A29L400U */
122#define AMIC_A29L008T0x1A/* Same as A29L800T */
123#define AMIC_A29L008U0x9B/* Same as A29L800U */
124#define AMIC_A29L0400x92
125#define AMIC_A49LF040A0x9d
126
127#define ATMEL_ID0x1F/* Atmel */
128#define ATMEL_AT25DF0210x4300
129#define ATMEL_AT25DF041A0x4401
130#define ATMEL_AT25DF0810x4502
131#define ATMEL_AT25DF081A0x4501/* Yes, 81A has a lower number than 81 */
132#define ATMEL_AT25DF1610x4602
133#define ATMEL_AT25DF3210x4700/* Same as 26DF321 */
134#define ATMEL_AT25DF321A0x4701
135#define ATMEL_AT25DF6410x4800
136#define ATMEL_AT25DQ1610x8600
137#define ATMEL_AT25F512/* No device ID found in datasheet. Vendor ID
138 * can be read with AT25F512A_RDID */
139#define ATMEL_AT25F512A0x65 /* Needs AT25F512A_RDID */
140#define ATMEL_AT25F512B0x6500
141#define ATMEL_AT25F1024/* No device ID found in datasheet. Vendor ID
142 * can be read with AT25F512A_RDID */
143#define ATMEL_AT25F1024A0x60 /* Needs AT25F512A_RDID */
144#define ATMEL_AT25FS0100x6601
145#define ATMEL_AT25FS0400x6604
146#define ATMEL_AT26DF0410x4400
147#define ATMEL_AT26DF0810x4500/* guessed, no datasheet available */
148#define ATMEL_AT26DF081A0x4501
149#define ATMEL_AT26DF1610x4600
150#define ATMEL_AT26DF161A0x4601
151#define ATMEL_AT26DF3210x4700/* Same as 25DF321 */
152#define ATMEL_AT26F0040x0400
153#define ATMEL_AT29C040A0xA4
154#define ATMEL_AT29C010A0xD5
155#define ATMEL_AT29C0200xDA
156#define ATMEL_AT29C5120x5D
157#define ATMEL_AT45BR3214B/* No ID available */
158#define ATMEL_AT45CS12820x2920
159#define ATMEL_AT45D011/* No ID available */
160#define ATMEL_AT45D021A/* No ID available */
161#define ATMEL_AT45D041A/* No ID available */
162#define ATMEL_AT45D081A/* No ID available */
163#define ATMEL_AT45D161/* No ID available */
164#define ATMEL_AT45DB011/* No ID available */
165#define ATMEL_AT45DB011B/* No ID available */
166#define ATMEL_AT45DB011D0x2200
167#define ATMEL_AT45DB021A/* No ID available */
168#define ATMEL_AT45DB021B/* No ID available */
169#define ATMEL_AT45DB021D0x2300
170#define ATMEL_AT45DB041A/* No ID available */
171#define ATMEL_AT45DB041D0x2400
172#define ATMEL_AT45DB081A/* No ID available */
173#define ATMEL_AT45DB081D0x2500
174#define ATMEL_AT45DB161/* No ID available */
175#define ATMEL_AT45DB161B/* No ID available */
176#define ATMEL_AT45DB161D0x2600
177#define ATMEL_AT45DB321/* No ID available */
178#define ATMEL_AT45DB321B/* No ID available */
179#define ATMEL_AT45DB321C0x2700
180#define ATMEL_AT45DB321D0x2701 /* Buggy data sheet */
181#define ATMEL_AT45DB642/* No ID available */
182#define ATMEL_AT45DB642D0x2800
183#define ATMEL_AT49BV5120x03
184#define ATMEL_AT49F0200x0B
185#define ATMEL_AT49F002N0x07/* for AT49F002(N) */
186#define ATMEL_AT49F002NT0x08/* for AT49F002(N)T */
187#define ATMEL_AT49LH0020xE9
188
189/* Bright Microelectronics has the same manufacturer ID as Hyundai... */
190#define BRIGHT_ID0xAD/* Bright Microelectronics */
191#define BRIGHT_BM29F0400x40
192#define BRIGHT_BM29F400B0xAB
193#define BRIGHT_BM29F400T0xAD
194
195#define CATALYST_ID0x31/* Catalyst */
196#define CATALYST_CAT28F5120xB8
197
198#define EMST_ID0x8C/* EMST / EFST Elite Flash Storage */
199#define EMST_F25L008A0x2014
200#define EMST_F49B002UA0x00
201
202/*
203 * EN25 chips are SPI, first byte of device ID is memory type,
204 * second byte of device ID is log(bitsize)-9.
205 * Vendor and device ID of EN29 series are both prefixed with 0x7F, which
206 * is the continuation code for IDs in bank 2.
207 * Vendor ID of EN25 series is NOT prefixed with 0x7F, this results in
208 * a collision with Mitsubishi. Mitsubishi once manufactured flash chips.
209 * Let's hope they are not manufacturing SPI flash chips as well.
210 */
211#define EON_ID0x7F1C/* EON Silicon Devices */
212#define EON_ID_NOPREFIX0x1C/* EON, missing 0x7F prefix */
213#define EON_EN25B050x2010/* Same as P05, 2^19 kbit or 2^16 kByte */
214#define EON_EN25B05T0x25
215#define EON_EN25B05B0x95
216#define EON_EN25B100x2011/* Same as P10 */
217#define EON_EN25B10T0x40
218#define EON_EN25B10B0x30
219#define EON_EN25B200x2012/* Same as P20 */
220#define EON_EN25B20T0x41
221#define EON_EN25B20B0x31
222#define EON_EN25B400x2013/* Same as P40 */
223#define EON_EN25B40T0x42
224#define EON_EN25B40B0x32
225#define EON_EN25B800x2014/* Same as P80 */
226#define EON_EN25B80T0x43
227#define EON_EN25B80B0x33
228#define EON_EN25B160x2015/* Same as P16 */
229#define EON_EN25B16T0x44
230#define EON_EN25B16B0x34
231#define EON_EN25B320x2016/* Same as P32 */
232#define EON_EN25B32T0x45
233#define EON_EN25B32B0x35
234#define EON_EN25B640x2017/* Same as P64 */
235#define EON_EN25B64T0x46
236#define EON_EN25B64B0x36
237#define EON_EN25F050x3110
238#define EON_EN25F100x3111
239#define EON_EN25F200x3112
240#define EON_EN25F400x3113
241#define EON_EN25F800x3114
242#define EON_EN25F160x3115
243#define EON_EN25F320x3116
244#define EON_EN25Q400x3013
245#define EON_EN25Q800x3014
246#define EON_EN25Q160x3015/* Same as EN25D16 */
247#define EON_EN25Q320x3016/* Same as EN25Q32A and EN25Q32B */
248#define EON_EN25Q640x3017
249#define EON_EN25Q1280x3018
250#define EON_EN25QH160x7015
251#define EON_EN29F5120x7F21
252#define EON_EN29F0100x20
253#define EON_EN29F040A0x7F04
254#define EON_EN29LV0100x7F6E
255#define EON_EN29LV040A0x7F4F/* EN29LV040(A) */
256#define EON_EN29F002T0x7F92/* Same as EN29F002A */
257#define EON_EN29F002B0x7F97/* Same as EN29F002AN */
258
259#define FUJITSU_ID0x04/* Fujitsu */
260#define FUJITSU_MBM29DL400BC0x0F
261#define FUJITSU_MBM29DL400TC0x0C
262#define FUJITSU_MBM29DL800BA0xCB
263#define FUJITSU_MBM29DL800TA0x4A
264#define FUJITSU_MBM29F002BC0x34
265#define FUJITSU_MBM29F002TC0xB0
266#define FUJITSU_MBM29F004BC0x7B
267#define FUJITSU_MBM29F004TC0x77
268#define FUJITSU_MBM29F040C0xA4
269#define FUJITSU_MBM29F080A0xD5
270#define FUJITSU_MBM29F200BC0x57
271#define FUJITSU_MBM29F200TC0x51
272#define FUJITSU_MBM29F400BC0xAB
273#define FUJITSU_MBM29F400TC0x23
274#define FUJITSU_MBM29F800BA0x58
275#define FUJITSU_MBM29F800TA0xD6
276#define FUJITSU_MBM29LV002BC0xC2
277#define FUJITSU_MBM29LV002TC0x40
278#define FUJITSU_MBM29LV004BC0xB6
279#define FUJITSU_MBM29LV004TC0xB5
280#define FUJITSU_MBM29LV008BA0x37
281#define FUJITSU_MBM29LV008TA0x3E
282#define FUJITSU_MBM29LV080A0x38
283#define FUJITSU_MBM29LV200BC0xBF
284#define FUJITSU_MBM29LV200TC0x3B
285#define FUJITSU_MBM29LV400BC0xBA
286#define FUJITSU_MBM29LV400TC0xB9
287#define FUJITSU_MBM29LV800BA0x5B/* Same as MBM29LV800BE */
288#define FUJITSU_MBM29LV800TA0xDA/* Same as MBM29LV800TE */
289
290#define HYUNDAI_ID0xAD/* Hyundai */
291#define HYUNDAI_HY29F400T0x23/* Same as HY29F400AT */
292#define HYUNDAI_HY29F800B0x58/* Same as HY29F800AB */
293#define HYUNDAI_HY29LV800B0x5B
294#define HYUNDAI_HY29F040A0xA4
295#define HYUNDAI_HY29F400B0xAB/* Same as HY29F400AB */
296#define HYUNDAI_HY29F002B0x34
297#define HYUNDAI_HY29F002T0xB0
298#define HYUNDAI_HY29LV400T0xB9
299#define HYUNDAI_HY29LV400B0xBA
300#define HYUNDAI_HY29F0800xD5
301#define HYUNDAI_HY29F800T0xD6/* Same as HY29F800AT */
302#define HYUNDAI_HY29LV800T0xDA
303
304#define IMT_ID0x7F1F/* Integrated Memory Technologies */
305#define IMT_IM29F004B0xAE
306#define IMT_IM29F004T0xAF
307
308#define INTEL_ID0x89/* Intel */
309#define INTEL_28F320J50x14
310#define INTEL_28F640J50x15
311#define INTEL_28F320J30x16
312#define INTEL_28F640J30x17
313#define INTEL_28F128J30x18
314#define INTEL_28F256J30x1D
315#define INTEL_28F400T0x70/* 28F400BV/BX/CE/CV-T */
316#define INTEL_28F400B0x71/* 28F400BV/BX/CE/CV-B */
317#define INTEL_28F200T0x74/* 28F200BL/BV/BX/CV-T */
318#define INTEL_28F200B0x75/* 28F200BL/BV/BX/CV-B */
319#define INTEL_28F004T0x78/* 28F004B5/BE/BV/BX-T */
320#define INTEL_28F004B0x79/* 28F004B5/BE/BV/BX-B */
321#define INTEL_28F002T0x7C/* 28F002BC/BL/BV/BX-T */
322#define INTEL_28F002B0x7D/* 28F002BL/BV/BX-B */
323#define INTEL_28F001T0x94/* 28F001BN/BX-T */
324#define INTEL_28F001B0x95/* 28F001BN/BX-B */
325#define INTEL_28F008T0x98/* 28F008BE/BV-T */
326#define INTEL_28F008B0x99/* 28F008BE/BV-B */
327#define INTEL_28F800T0x9C/* 28F800B5/BV/CE/CV-T */
328#define INTEL_28F800B0x9D/* 28F800B5/BV/CE/CV-B */
329#define INTEL_28F016SV0xA0/* 28F016SA/SV */
330#define INTEL_28F008SA0xA2
331#define INTEL_28F008S30xA6/* 28F008S3/S5/SC */
332#define INTEL_28F004S30xA7/* 28F008S3/S5/SC */
333#define INTEL_28F016XS0xA8
334#define INTEL_28F016S30xAA/* 28F016S3/S5/SC */
335#define INTEL_82802AC0xAC
336#define INTEL_82802AB0xAD
337#define INTEL_28F0100xB4
338#define INTEL_28F5120xB8
339#define INTEL_28F256A0xB9
340#define INTEL_28F0200xBD
341#define INTEL_28F016B3T0xD0/* 28F016B3-T */
342#define INTEL_28F016B3B0xD1/* 28F016B3-B */
343#define INTEL_28F008B3T0xD2/* 28F008B3-T */
344#define INTEL_28F008B3B0xD3/* 28F008B3-B */
345#define INTEL_28F004B3T0xD4/* 28F004B3-T */
346#define INTEL_28F004B3B0xD5/* 28F004B3-B */
347
348#define SHARP_LH28F008SA0xA2/* Sharp chip, Intel Vendor ID */
349#define SHARP_LH28F008SC0xA6/* Sharp chip, Intel Vendor ID */
350
351#define ISSI_ID0xD5/* ISSI Integrated Silicon Solutions */
352
353/*
354 * MX25 chips are SPI, first byte of device ID is memory type,
355 * second byte of device ID is log(bitsize)-9.
356 * Generalplus SPI chips seem to be compatible with Macronix
357 * and use the same set of IDs.
358 */
359#define MACRONIX_ID0xC2/* Macronix (MX) */
360#define MACRONIX_MX25L5120x2010/* Same as MX25V512 */
361#define MACRONIX_MX25L10050x2011
362#define MACRONIX_MX25L20050x2012
363#define MACRONIX_MX25L40050x2013/* MX25L4005{,A} */
364#define MACRONIX_MX25L80050x2014/* Same as MX25V8005 */
365#define MACRONIX_MX25L16050x2015/* MX25L1605{,A,D} */
366#define MACRONIX_MX25L32050x2016/* MX25L3205{,A} */
367#define MACRONIX_MX25L64050x2017/* MX25L3205{,D} */
368#define MACRONIX_MX25L128050x2018/* MX25L12805 */
369#define MACRONIX_MX25L1635D0x2415
370#define MACRONIX_MX25L1635E0x2515/* MX25L1635{E} */
371#define MACRONIX_MX25L3235D0x5E16/* MX25L3225D/MX25L3235D/MX25L3237D */
372#define MACRONIX_MX29F001B0x19
373#define MACRONIX_MX29F001T0x18
374#define MACRONIX_MX29F002B0x34/* Same as MX29F002NB; N has reset pin n/c. */
375#define MACRONIX_MX29F002T0xB0/* Same as MX29F002NT; N has reset pin n/c. */
376#define MACRONIX_MX29F004B0x46
377#define MACRONIX_MX29F004T0x45
378#define MACRONIX_MX29F022T0x36/* Same as MX29F022NT */
379#define MACRONIX_MX29F0400xA4/* Same as MX29F040C */
380#define MACRONIX_MX29F0800xD5
381#define MACRONIX_MX29F200B0x57/* Same as MX29F200CB */
382#define MACRONIX_MX29F200T0x51/* Same as MX29F200CT */
383#define MACRONIX_MX29F400B0xAB/* Same as MX29F400CB */
384#define MACRONIX_MX29F400T0x23/* Same as MX29F400CT */
385#define MACRONIX_MX29F800B0x58
386#define MACRONIX_MX29F800T0xD6
387#define MACRONIX_MX29LV002CB0x5A
388#define MACRONIX_MX29LV002CT0x59
389#define MACRONIX_MX29LV004B0xB6/* Same as MX29LV004CB */
390#define MACRONIX_MX29LV004T0xB5/* Same as MX29LV004CT */
391#define MACRONIX_MX29LV008B0x37/* Same as MX29LV008CB */
392#define MACRONIX_MX29LV008T0x3E/* Same as MX29LV008CT */
393#define MACRONIX_MX29LV0400x4F/* Same as MX29LV040C */
394#define MACRONIX_MX29LV0810x38
395#define MACRONIX_MX29LV128DB0x7A
396#define MACRONIX_MX29LV128DT0x7E
397#define MACRONIX_MX29LV160DB0x49/* Same as MX29LV161DB/MX29LV160CB */
398#define MACRONIX_MX29LV160DT0xC4/* Same as MX29LV161DT/MX29LV160CT */
399#define MACRONIX_MX29LV320DB0xA8/* Same as MX29LV321DB */
400#define MACRONIX_MX29LV320DT0xA7/* Same as MX29LV321DT */
401#define MACRONIX_MX29LV400B0xBA/* Same as MX29LV400CB */
402#define MACRONIX_MX29LV400T0xB9/* Same as MX29LV400CT */
403#define MACRONIX_MX29LV640DB0xCB/* Same as MX29LV640EB */
404#define MACRONIX_MX29LV640DT0xC9/* Same as MX29LV640ET */
405#define MACRONIX_MX29LV800B0x5B/* Same as MX29LV800CB */
406#define MACRONIX_MX29LV800T0xDA/* Same as MX29LV800CT */
407#define MACRONIX_MX29SL402CB0xF1
408#define MACRONIX_MX29SL402CT0x70
409#define MACRONIX_MX29SL800CB0x6B/* Same as MX29SL802CB */
410#define MACRONIX_MX29SL800CT0xEA/* Same as MX29SL802CT */
411
412/*
413 * Programmable Micro Corp is listed in JEP106W in bank 2, so it should
414 * have a 0x7F continuation code prefix.
415 */
416#define PMC_ID0x7F9D/* PMC */
417#define PMC_ID_NOPREFIX0x9D/* PMC, missing 0x7F prefix */
418#define PMC_PM25LV5120x7B
419#define PMC_PM25LV0100x7C
420#define PMC_PM25LV0200x7D
421#define PMC_PM25LV0400x7E
422#define PMC_PM25LV080B0x13
423#define PMC_PM25LV016B0x14
424#define PMC_PM29F002T0x1D
425#define PMC_PM29F002B0x2D
426#define PMC_PM39LV5120x1B
427#define PMC_PM39F0100x1C/* Same as Pm39LV010 */
428#define PMC_PM39LV0200x3D
429#define PMC_PM39LV0400x3E
430#define PMC_PM39F0200x4D
431#define PMC_PM39F0400x4E
432#define PMC_PM49FL0020x6D
433#define PMC_PM49FL0040x6E
434
435/*
436 * The Sanyo chip found so far uses SPI, first byte is manufacture code,
437 * second byte is the device code,
438 * third byte is a dummy byte.
439 */
440#define SANYO_ID0x62
441#define SANYO_LE25FW203A0x1600
442
443#define SHARP_ID0xB0/* Sharp */
444#define SHARP_LH28F008BJxxPT0xEC
445#define SHARP_LH28F008BJxxPB0xED
446#define SHARP_LH28F800BVxxBTL0x4B
447#define SHARP_LH28F800BVxxBV0x4D
448#define SHARP_LH28F800BVxxTV0x4C
449#define SHARP_LHF00L020xC9/* Same as LHF00L06/LHF00L07 */
450#define SHARP_LHF00L040xCF/* Same as LHF00L03/LHF00L05 */
451
452/*
453 * Spansion was previously a joint venture of AMD and Fujitsu.
454 * S25 chips are SPI. The first device ID byte is memory type and
455 * the second device ID byte is memory capacity.
456 */
457#define SPANSION_ID0x01/* Spansion, same ID as AMD */
458#define SPANSION_S25FL004A0x0212
459#define SPANSION_S25FL008A0x0213
460#define SPANSION_S25FL016A0x0214
461#define SPANSION_S25FL032A0x0215
462#define SPANSION_S25FL064A0x0216
463
464/*
465 * SST25 chips are SPI, first byte of device ID is memory type, second
466 * byte of device ID is related to log(bitsize) at least for some chips.
467 */
468#define SST_ID0xBF/* SST */
469#define SST_SST25WF5120x2501
470#define SST_SST25WF0100x2502
471#define SST_SST25WF0200x2503
472#define SST_SST25WF0400x2504
473#define SST_SST25VF512A_REMS0x48/* REMS or RES opcode */
474#define SST_SST25VF010_REMS0x49/* REMS or RES opcode */
475#define SST_SST25VF020_REMS0x43/* REMS or RES opcode */
476#define SST_SST25VF040_REMS0x44/* REMS or RES opcode, same as SST25LF040A */
477#define SST_SST25VF040B0x258D
478#define SST_SST25VF040B_REMS0x8D/* REMS or RES opcode */
479#define SST_SST25VF080_REMS0x80/* REMS or RES opcode, same as SST25LF080A */
480#define SST_SST25VF080B0x258E
481#define SST_SST25VF080B_REMS0x8E/* REMS or RES opcode */
482#define SST_SST25VF016B0x2541
483#define SST_SST25VF032B0x254A
484#define SST_SST25VF032B_REMS0x4A/* REMS or RES opcode */
485#define SST_SST25VF064C0x254B
486#define SST_SST26VF0160x2601
487#define SST_SST26VF0320x2602
488#define SST_SST27SF5120xA4
489#define SST_SST27SF0100xA5
490#define SST_SST27SF0200xA6
491#define SST_SST27VF0100xA9
492#define SST_SST27VF0200xAA
493#define SST_SST28SF0400x04
494#define SST_SST29EE5120x5D
495#define SST_SST29EE0100x07
496#define SST_SST29LE0100x08/* Same as SST29VE010 */
497#define SST_SST29EE020A0x10/* Same as SST29EE020 */
498#define SST_SST29LE0200x12/* Same as SST29VE020 */
499#define SST_SST29SF0200x24
500#define SST_SST29VF0200x25
501#define SST_SST29SF0400x13
502#define SST_SST29VF0400x14
503#define SST_SST39SF5120xB4
504#define SST_SST39SF0100xB5
505#define SST_SST39SF0200xB6/* Same as 39SF020A */
506#define SST_SST39SF0400xB7
507#define SST_SST39VF5120xD4
508#define SST_SST39VF0100xD5
509#define SST_SST39VF0200xD6/* Same as 39LF020 */
510#define SST_SST39VF0400xD7/* Same as 39LF040 */
511#define SST_SST39VF0800xD8/* Same as 39LF080/39VF080/39VF088 */
512#define SST_SST49LF040B0x50
513#define SST_SST49LF0400x51
514#define SST_SST49LF0200x61
515#define SST_SST49LF020A0x52
516#define SST_SST49LF030A0x1C
517#define SST_SST49LF080A0x5B
518#define SST_SST49LF002A0x57
519#define SST_SST49LF003A0x1B
520#define SST_SST49LF004A0x60/* Same as 49LF004B */
521#define SST_SST49LF008A0x5A
522#define SST_SST49LF004C0x54
523#define SST_SST49LF008C0x59
524#define SST_SST49LF016C0x5C
525#define SST_SST49LF160C0x4C
526
527/*
528 * ST25P chips are SPI, first byte of device ID is memory type, second
529 * byte of device ID is related to log(bitsize) at least for some chips.
530 */
531#define ST_ID0x20/* ST / SGS/Thomson / Numonyx (later acquired by Micron) */
532#define ST_M25P05A0x2010
533#define ST_M25P05_RES0x10/* Same code as M25P10. */
534#define ST_M25P10A0x2011
535#define ST_M25P10_RES0x10/* Same code as M25P05. */
536#define ST_M25P200x2012
537#define ST_M25P400x2013
538#define ST_M25P40_RES0x12
539#define ST_M25P800x2014
540#define ST_M25P160x2015
541#define ST_M25P320x2016
542#define ST_M25P640x2017
543#define ST_M25P1280x2018
544#define ST_M25PX160x7115
545#define ST_M25PX320x7116
546#define ST_M25PX640x7117
547#define ST_M25PE100x8011
548#define ST_M25PE200x8012
549#define ST_M25PE400x8013
550#define ST_M25PE800x8014
551#define ST_M25PE160x8015
552#define ST_M50FLW040A0x08
553#define ST_M50FLW040B0x28
554#define ST_M50FLW080A0x80
555#define ST_M50FLW080B0x81
556#define ST_M50FW0020x29
557#define ST_M50FW0400x2C
558#define ST_M50FW0800x2D
559#define ST_M50FW0160x2E
560#define ST_M50LPW1160x30
561#define ST_M29F002B0x34/* Same as M29F002BB */
562#define ST_M29F002T0xB0/* Same as M29F002BT/M29F002NT/M29F002BNT */
563#define ST_M29F040B0xE2/* Same as M29F040 */
564#define ST_M29F0800xF1
565#define ST_M29F200BT0xD3
566#define ST_M29F200BB0xD4
567#define ST_M29F400BT0xD5/* Same as M29F400T */
568#define ST_M29F400BB0xD6/* Same as M29F400B */
569#define ST_M29F800DB0x58
570#define ST_M29F800DT0xEC
571#define ST_M29W010B0x23
572#define ST_M29W040B0xE3
573#define ST_M29W512B0x27
574
575#define SYNCMOS_MVC_ID0x40/* SyncMOS (SM) and Mosel Vitelic Corporation (MVC) */
576#define MVC_V29C51000T0x00
577#define MVC_V29C51400T0x13
578#define MVC_V29LC510000x20
579#define MVC_V29LC510010x60
580#define MVC_V29LC510020x82
581#define MVC_V29C51000B0xA0
582#define MVC_V29C51400B0xB3
583#define SM_MVC_29C51001T0x01/* Identical chips: {F,S,V}29C51001T */
584#define SM_MVC_29C51002T0x02/* Identical chips: {F,S,V}29C51002T */
585#define SM_MVC_29C51004T0x03/* Identical chips: {F,S,V}29C51004T */
586#define SM_MVC_29C31004T0x63/* Identical chips: {S,V}29C31004T */
587#define SM_MVC_29C31004B0x73/* Identical chips: {S,V}29C31004B */
588#define SM_MVC_29C51001B0xA1/* Identical chips: {F,S,V}29C51001B */
589#define SM_MVC_29C51002B0xA2/* Identical chips: {F,S,V}29C51002B */
590#define SM_MVC_29C51004B0xA3/* Identical chips: {F,S,V}29C51004B */
591
592#define TI_ID0x97/* Texas Instruments */
593#define TI_OLD_ID0x01/* TI chips from last century */
594#define TI_TMS29F002RT0xB0
595#define TI_TMS29F002RB0x34
596
597/*
598 * W25X chips are SPI, first byte of device ID is memory type, second
599 * byte of device ID is related to log(bitsize).
600 */
601#define WINBOND_NEX_ID0xEF/* Winbond (ex Nexcom) serial flashes */
602#define WINBOND_NEX_W25X100x3011
603#define WINBOND_NEX_W25X200x3012
604#define WINBOND_NEX_W25X400x3013
605#define WINBOND_NEX_W25X800x3014
606#define WINBOND_NEX_W25X160x3015
607#define WINBOND_NEX_W25X320x3016
608#define WINBOND_NEX_W25X640x3017
609#define WINBOND_NEX_W25Q400x4013
610#define WINBOND_NEX_W25Q800x4014
611#define WINBOND_NEX_W25Q160x4015
612#define WINBOND_NEX_W25Q320x4016
613#define WINBOND_NEX_W25Q640x4017
614#define WINBOND_NEX_W25Q1280x4018
615
616#define WINBOND_ID0xDA/* Winbond */
617#define WINBOND_W19B160BB0x49
618#define WINBOND_W19B160BT0xC4
619#define WINBOND_W19B320SB0x2A /* Same as W19L320SB */
620#define WINBOND_W19B320ST0xBA /* Same as W19L320ST */
621#define WINBOND_W19B322MB0x92
622#define WINBOND_W19B322MT0x10
623#define WINBOND_W19B323MB0x94
624#define WINBOND_W19B323MT0x13
625#define WINBOND_W19B324MB0x97
626#define WINBOND_W19B324MT0x16
627#define WINBOND_W29C0100xC1 /* Same as W29C010M, W29C011A, W29EE011, W29EE012, and ASD AE29F1008 */
628#define WINBOND_W29C0200x45 /* Same as W29C020C, W29C022 and ASD AE29F2008 */
629#define WINBOND_W29C0400x46 /* Same as W29C040P */
630#define WINBOND_W29C512A0xC8 /* Same as W29EE512 */
631#define WINBOND_W39L0100x31
632#define WINBOND_W39L0200xB5
633#define WINBOND_W39L0400xB6
634#define WINBOND_W39L040A0xD6
635#define WINBOND_W39L5120x38
636#define WINBOND_W39V040A0x3D
637#define WINBOND_W39V040FA0x34
638#define WINBOND_W39V040B0x54 /* Same as W39V040FB */
639#define WINBOND_W39V040C0x50 /* Same as W39V040FC */
640#define WINBOND_W39V080A0xD0
641#define WINBOND_W39V080FA0xD3
642#define WINBOND_W39V080FA_DM0x93 /* W39V080FA dual mode */
643#define WINBOND_W49F0020x25 /* Same as W49F002B */
644#define WINBOND_W49F002U0x0B /* Same as W49F002N and ASD AE49F2008 */
645#define WINBOND_W49F0200x8C
646#define WINBOND_W49V002A0xB0
647#define WINBOND_W49V002FA0x32
648
649#define PROGMANUF_ID0xFFFE/* dummy ID for opaque chips behind a programmer */
650#define PROGDEV_ID0x01/* dummy ID for opaque chips behind a programmer */
651
652#endif /* !FLASHCHIPS_H */
653

Archive Download this file

Revision: HEAD