source: trunk/flashchips.h @ 1535

Revision 1535, 24.6 KB checked in by stefanct, 4 days ago (diff)

Add support for Eon EN25QH32.

Its ID was spotted in an descriptor region update by Jetway:
 http://paste.flashrom.org/view.php?id=1217

Signed-off-by: Stefan Tauner <stefan.tauner@…>
Acked-by: Stefan Tauner <stefan.tauner@…>

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
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_ID        0xFFFF  /* Check if there is a vendor ID */
38#define GENERIC_DEVICE_ID       0xFFFF  /* Only match the vendor ID */
39#define SFDP_DEVICE_ID          0xFFFE
40#define PROGMANUF_ID            0xFFFE  /* dummy ID for opaque chips behind a programmer */
41#define PROGDEV_ID              0x01    /* dummy ID for opaque chips behind a programmer */
42
43#define ALLIANCE_ID             0x52    /* Alliance Semiconductor */
44#define ALLIANCE_AS29F002B      0x34
45#define ALLIANCE_AS29F002T      0xB0
46#define ALLIANCE_AS29F010       0x04
47#define ALLIANCE_AS29F040       0xA4
48#define ALLIANCE_AS29F200B      0x57
49#define ALLIANCE_AS29F200T      0x51
50#define ALLIANCE_AS29LV160B     0x49
51#define ALLIANCE_AS29LV160T     0xCA
52#define ALLIANCE_AS29LV400B     0xBA
53#define ALLIANCE_AS29LV400T     0xB9
54#define ALLIANCE_AS29LV800B     0x5B
55#define ALLIANCE_AS29LV800T     0xDA
56
57#define AMD_ID                  0x01    /* AMD */
58#define AMD_AM29DL400BT         0x0C
59#define AMD_AM29DL400BB         0x0F
60#define AMD_AM29DL800BT         0x4A
61#define AMD_AM29DL800BB         0xCB
62#define AMD_AM29F002BB          0x34    /* Same as Am29F002NBB */
63#define AMD_AM29F002BT          0xB0    /* Same as Am29F002NBT */
64#define AMD_AM29F004BB          0x7B
65#define AMD_AM29F004BT          0x77
66#define AMD_AM29F016D           0xAD
67#define AMD_AM29F010B           0x20    /* Same as Am29F010A */
68#define AMD_AM29F040B           0xA4
69#define AMD_AM29F080B           0xD5
70#define AMD_AM29F200BB          0x57
71#define AMD_AM29F200BT          0x51
72#define AMD_AM29F400BB          0xAB
73#define AMD_AM29F400BT          0x23
74#define AMD_AM29F800BB          0x58
75#define AMD_AM29F800BT          0xD6
76#define AMD_AM29LV001BB         0x6D
77#define AMD_AM29LV001BT         0xED
78#define AMD_AM29LV002BB         0xC2
79#define AMD_AM29LV002BT         0x40
80#define AMD_AM29LV004BB         0xB6
81#define AMD_AM29LV004BT         0xB5
82#define AMD_AM29LV008BB         0x37
83#define AMD_AM29LV008BT         0x3E
84#define AMD_AM29LV040B          0x4F
85#define AMD_AM29LV080B          0x38    /* Same as Am29LV081B */
86#define AMD_AM29LV200BB         0xBF
87#define AMD_AM29LV200BT         0x3B
88#define AMD_AM29LV800BB         0x5B    /* Same as Am29LV800DB */
89#define AMD_AM29LV400BT         0xB9
90#define AMD_AM29LV400BB         0xBA
91#define AMD_AM29LV800BT         0xDA    /* Same as Am29LV800DT */
92
93#define AMIC_ID                 0x7F37  /* AMIC */
94#define AMIC_ID_NOPREFIX        0x37    /* AMIC */
95#define AMIC_A25L05PT           0x2020
96#define AMIC_A25L05PU           0x2010
97#define AMIC_A25L10PT           0x2021
98#define AMIC_A25L10PU           0x2011
99#define AMIC_A25L20PT           0x2022
100#define AMIC_A25L20PU           0x2012
101#define AMIC_A25L40PT           0x2013  /* Datasheet says T and U have
102                                           same device ID. Confirmed by
103                                           hardware testing. */
104#define AMIC_A25L40PU           0x2013
105#define AMIC_A25L80P            0x2014  /* Seems that no A25L80PT exists */
106#define AMIC_A25L16PT           0x2025
107#define AMIC_A25L16PU           0x2015
108#define AMIC_A25L512            0x3010
109#define AMIC_A25L010            0x3011
110#define AMIC_A25L020            0x3012
111#define AMIC_A25L040            0x3013
112#define AMIC_A25L080            0x3014
113#define AMIC_A25L016            0x3015
114#define AMIC_A25L032            0x3016
115#define AMIC_A25LQ032           0x4016
116#define AMIC_A29002B            0x0d
117#define AMIC_A29002T            0x8C    /* Same as A290021T */
118#define AMIC_A29040B            0x86
119#define AMIC_A29400T            0xB0    /* Same as 294001T */
120#define AMIC_A29400U            0x31    /* Same as A294001U */
121#define AMIC_A29800T            0x0E
122#define AMIC_A29800U            0x8F
123#define AMIC_A29L004T           0x34    /* Same as A29L400T */
124#define AMIC_A29L004U           0xB5    /* Same as A29L400U */
125#define AMIC_A29L008T           0x1A    /* Same as A29L800T */
126#define AMIC_A29L008U           0x9B    /* Same as A29L800U */
127#define AMIC_A29L040            0x92
128#define AMIC_A49LF040A          0x9d
129
130#define ATMEL_ID                0x1F    /* Atmel */
131#define ATMEL_AT25DF021         0x4300
132#define ATMEL_AT25DF041A        0x4401
133#define ATMEL_AT25DF081         0x4502
134#define ATMEL_AT25DF081A        0x4501  /* Yes, 81A has a lower number than 81 */
135#define ATMEL_AT25DF161         0x4602
136#define ATMEL_AT25DF321         0x4700  /* Same as 26DF321 */
137#define ATMEL_AT25DF321A        0x4701
138#define ATMEL_AT25DF641         0x4800
139#define ATMEL_AT25DQ161         0x8600
140#define ATMEL_AT25F512          /* No device ID found in datasheet. Vendor ID
141                                 * can be read with AT25F512A_RDID */
142#define ATMEL_AT25F512A         0x65 /* Needs AT25F512A_RDID */
143#define ATMEL_AT25F512B         0x6500
144#define ATMEL_AT25F1024         /* No device ID found in datasheet. Vendor ID
145                                 * can be read with AT25F512A_RDID */
146#define ATMEL_AT25F1024A                0x60 /* Needs AT25F512A_RDID */
147#define ATMEL_AT25FS010         0x6601
148#define ATMEL_AT25FS040         0x6604
149#define ATMEL_AT26DF041         0x4400
150#define ATMEL_AT26DF081         0x4500  /* guessed, no datasheet available */
151#define ATMEL_AT26DF081A        0x4501
152#define ATMEL_AT26DF161         0x4600
153#define ATMEL_AT26DF161A        0x4601
154#define ATMEL_AT26DF321         0x4700  /* Same as 25DF321 */
155#define ATMEL_AT26F004          0x0400
156#define ATMEL_AT29C040A         0xA4
157#define ATMEL_AT29C010A         0xD5
158#define ATMEL_AT29C020          0xDA
159#define ATMEL_AT29C512          0x5D
160#define ATMEL_AT45BR3214B       /* No ID available */
161#define ATMEL_AT45CS1282        0x2920
162#define ATMEL_AT45D011          /* No ID available */
163#define ATMEL_AT45D021A         /* No ID available */
164#define ATMEL_AT45D041A         /* No ID available */
165#define ATMEL_AT45D081A         /* No ID available */
166#define ATMEL_AT45D161          /* No ID available */
167#define ATMEL_AT45DB011         /* No ID available */
168#define ATMEL_AT45DB011B        /* No ID available */
169#define ATMEL_AT45DB011D        0x2200
170#define ATMEL_AT45DB021A        /* No ID available */
171#define ATMEL_AT45DB021B        /* No ID available */
172#define ATMEL_AT45DB021D        0x2300
173#define ATMEL_AT45DB041A        /* No ID available */
174#define ATMEL_AT45DB041D        0x2400
175#define ATMEL_AT45DB081A        /* No ID available */
176#define ATMEL_AT45DB081D        0x2500
177#define ATMEL_AT45DB161         /* No ID available */
178#define ATMEL_AT45DB161B        /* No ID available */
179#define ATMEL_AT45DB161D        0x2600
180#define ATMEL_AT45DB321         /* No ID available */
181#define ATMEL_AT45DB321B        /* No ID available */
182#define ATMEL_AT45DB321C        0x2700
183#define ATMEL_AT45DB321D        0x2701 /* Buggy data sheet */
184#define ATMEL_AT45DB642         /* No ID available */
185#define ATMEL_AT45DB642D        0x2800
186#define ATMEL_AT49BV512         0x03
187#define ATMEL_AT49F002N         0x07    /* for AT49F002(N)  */
188#define ATMEL_AT49LH002         0xE9
189#define ATMEL_AT49F002NT        0x08    /* for AT49F002(N)T */
190#define ATMEL_AT49F020          0x0B
191#define ATMEL_AT49F040          0x13
192
193/* Bright Microelectronics has the same manufacturer ID as Hyundai... */
194#define BRIGHT_ID               0xAD    /* Bright Microelectronics */
195#define BRIGHT_BM29F040         0x40
196#define BRIGHT_BM29F400B        0xAB
197#define BRIGHT_BM29F400T        0xAD
198
199#define CATALYST_ID             0x31    /* Catalyst */
200#define CATALYST_CAT28F512      0xB8
201
202#define EMST_ID                 0x8C    /* EMST / EFST Elite Flash Storage */
203#define EMST_F25L008A           0x2014
204#define EMST_F49B002UA          0x00
205
206/*
207 * EN25 chips are SPI, first byte of device ID is memory type,
208 * second byte of device ID is log(bitsize)-9.
209 * Vendor and device ID of EN29 series are both prefixed with 0x7F, which
210 * is the continuation code for IDs in bank 2.
211 * Vendor ID of EN25 series is NOT prefixed with 0x7F, this results in
212 * a collision with Mitsubishi. Mitsubishi once manufactured flash chips.
213 * Let's hope they are not manufacturing SPI flash chips as well.
214 */
215#define EON_ID                  0x7F1C  /* EON Silicon Devices */
216#define EON_ID_NOPREFIX         0x1C    /* EON, missing 0x7F prefix */
217#define EON_EN25B05             0x2010  /* Same as P05, 2^19 kbit or 2^16 kByte */
218#define EON_EN25B05T            0x25
219#define EON_EN25B05B            0x95
220#define EON_EN25B10             0x2011  /* Same as P10 */
221#define EON_EN25B10T            0x40
222#define EON_EN25B10B            0x30
223#define EON_EN25B20             0x2012  /* Same as P20 */
224#define EON_EN25B20T            0x41
225#define EON_EN25B20B            0x31
226#define EON_EN25B40             0x2013  /* Same as P40 */
227#define EON_EN25B40T            0x42
228#define EON_EN25B40B            0x32
229#define EON_EN25B80             0x2014  /* Same as P80 */
230#define EON_EN25B80T            0x43
231#define EON_EN25B80B            0x33
232#define EON_EN25B16             0x2015  /* Same as P16 */
233#define EON_EN25B16T            0x44
234#define EON_EN25B16B            0x34
235#define EON_EN25B32             0x2016  /* Same as P32 */
236#define EON_EN25B32T            0x45
237#define EON_EN25B32B            0x35
238#define EON_EN25B64             0x2017  /* Same as P64 */
239#define EON_EN25B64T            0x46
240#define EON_EN25B64B            0x36
241#define EON_EN25F05             0x3110
242#define EON_EN25F10             0x3111
243#define EON_EN25F20             0x3112
244#define EON_EN25F40             0x3113
245#define EON_EN25F80             0x3114
246#define EON_EN25F16             0x3115
247#define EON_EN25F32             0x3116
248#define EON_EN25Q40             0x3013
249#define EON_EN25Q80             0x3014
250#define EON_EN25Q16             0x3015  /* Same as EN25D16 */
251#define EON_EN25Q32             0x3016  /* Same as EN25Q32A and EN25Q32B */
252#define EON_EN25Q64             0x3017
253#define EON_EN25Q128            0x3018
254#define EON_EN25QH16            0x7015
255#define EON_EN25QH32            0x7016
256#define EON_EN29F512            0x7F21
257#define EON_EN29F010            0x20
258#define EON_EN29F040A           0x7F04
259#define EON_EN29LV010           0x7F6E
260#define EON_EN29LV040A          0x7F4F  /* EN29LV040(A) */
261#define EON_EN29LV640B          0xCB
262#define EON_EN29F002T           0x7F92  /* Same as EN29F002A */
263#define EON_EN29F002B           0x7F97  /* Same as EN29F002AN */
264
265#define FUJITSU_ID              0x04    /* Fujitsu */
266#define FUJITSU_MBM29DL400BC    0x0F
267#define FUJITSU_MBM29DL400TC    0x0C
268#define FUJITSU_MBM29DL800BA    0xCB
269#define FUJITSU_MBM29DL800TA    0x4A
270#define FUJITSU_MBM29F002BC     0x34
271#define FUJITSU_MBM29F002TC     0xB0
272#define FUJITSU_MBM29F004BC     0x7B
273#define FUJITSU_MBM29F004TC     0x77
274#define FUJITSU_MBM29F040C      0xA4
275#define FUJITSU_MBM29F080A      0xD5
276#define FUJITSU_MBM29F200BC     0x57
277#define FUJITSU_MBM29F200TC     0x51
278#define FUJITSU_MBM29F400BC     0xAB
279#define FUJITSU_MBM29F400TC     0x23
280#define FUJITSU_MBM29F800BA     0x58
281#define FUJITSU_MBM29F800TA     0xD6
282#define FUJITSU_MBM29LV002BC    0xC2
283#define FUJITSU_MBM29LV002TC    0x40
284#define FUJITSU_MBM29LV004BC    0xB6
285#define FUJITSU_MBM29LV004TC    0xB5
286#define FUJITSU_MBM29LV008BA    0x37
287#define FUJITSU_MBM29LV008TA    0x3E
288#define FUJITSU_MBM29LV080A     0x38
289#define FUJITSU_MBM29LV200BC    0xBF
290#define FUJITSU_MBM29LV200TC    0x3B
291#define FUJITSU_MBM29LV400BC    0xBA
292#define FUJITSU_MBM29LV400TC    0xB9
293#define FUJITSU_MBM29LV800BA    0x5B    /* Same as MBM29LV800BE */
294#define FUJITSU_MBM29LV800TA    0xDA    /* Same as MBM29LV800TE */
295
296#define GIGADEVICE_ID           0xC8    /* GigaDevice */
297#define GIGADEVICE_GD25Q20      0x4012
298#define GIGADEVICE_GD25Q40      0x4013
299#define GIGADEVICE_GD25Q80      0x4014
300#define GIGADEVICE_GD25Q16      0x4015
301#define GIGADEVICE_GD25Q32      0x4016
302#define GIGADEVICE_GD25Q64      0x4017
303#define GIGADEVICE_GD25Q128     0x4018
304
305#define HYUNDAI_ID              0xAD    /* Hyundai */
306#define HYUNDAI_HY29F400T       0x23    /* Same as HY29F400AT */
307#define HYUNDAI_HY29F800B       0x58    /* Same as HY29F800AB */
308#define HYUNDAI_HY29LV800B      0x5B
309#define HYUNDAI_HY29F040A       0xA4
310#define HYUNDAI_HY29F400B       0xAB    /* Same as HY29F400AB */
311#define HYUNDAI_HY29F002B       0x34
312#define HYUNDAI_HY29F002T       0xB0
313#define HYUNDAI_HY29LV400T      0xB9
314#define HYUNDAI_HY29LV400B      0xBA
315#define HYUNDAI_HY29F080        0xD5
316#define HYUNDAI_HY29F800T       0xD6    /* Same as HY29F800AT */
317#define HYUNDAI_HY29LV800T      0xDA
318
319#define IMT_ID                  0x7F1F  /* Integrated Memory Technologies */
320#define IMT_IM29F004B           0xAE
321#define IMT_IM29F004T           0xAF
322
323#define INTEL_ID                0x89    /* Intel */
324#define INTEL_28F320J5          0x14
325#define INTEL_28F640J5          0x15
326#define INTEL_28F320J3          0x16
327#define INTEL_28F640J3          0x17
328#define INTEL_28F128J3          0x18
329#define INTEL_28F256J3          0x1D
330#define INTEL_28F400T           0x70    /* 28F400BV/BX/CE/CV-T */
331#define INTEL_28F400B           0x71    /* 28F400BV/BX/CE/CV-B */
332#define INTEL_28F200T           0x74    /* 28F200BL/BV/BX/CV-T */
333#define INTEL_28F200B           0x75    /* 28F200BL/BV/BX/CV-B */
334#define INTEL_28F004T           0x78    /* 28F004B5/BE/BV/BX-T */
335#define INTEL_28F004B           0x79    /* 28F004B5/BE/BV/BX-B */
336#define INTEL_28F002T           0x7C    /* 28F002BC/BL/BV/BX-T */
337#define INTEL_28F002B           0x7D    /* 28F002BL/BV/BX-B */
338#define INTEL_28F001T           0x94    /* 28F001BN/BX-T */
339#define INTEL_28F001B           0x95    /* 28F001BN/BX-B */
340#define INTEL_28F008T           0x98    /* 28F008BE/BV-T */
341#define INTEL_28F008B           0x99    /* 28F008BE/BV-B */
342#define INTEL_28F800T           0x9C    /* 28F800B5/BV/CE/CV-T */
343#define INTEL_28F800B           0x9D    /* 28F800B5/BV/CE/CV-B */
344#define INTEL_28F016SV          0xA0    /* 28F016SA/SV */
345#define INTEL_28F008SA          0xA2
346#define INTEL_28F008S3          0xA6    /* 28F008S3/S5/SC */
347#define INTEL_28F004S3          0xA7    /* 28F008S3/S5/SC */
348#define INTEL_28F016XS          0xA8
349#define INTEL_28F016S3          0xAA    /* 28F016S3/S5/SC */
350#define INTEL_82802AC           0xAC
351#define INTEL_82802AB           0xAD
352#define INTEL_28F010            0xB4
353#define INTEL_28F512            0xB8
354#define INTEL_28F256A           0xB9
355#define INTEL_28F020            0xBD
356#define INTEL_28F016B3T         0xD0    /* 28F016B3-T */
357#define INTEL_28F016B3B         0xD1    /* 28F016B3-B */
358#define INTEL_28F008B3T         0xD2    /* 28F008B3-T */
359#define INTEL_28F008B3B         0xD3    /* 28F008B3-B */
360#define INTEL_28F004B3T         0xD4    /* 28F004B3-T */
361#define INTEL_28F004B3B         0xD5    /* 28F004B3-B */
362
363#define SHARP_LH28F008SA        0xA2    /* Sharp chip, Intel Vendor ID */
364#define SHARP_LH28F008SC        0xA6    /* Sharp chip, Intel Vendor ID */
365
366#define ISSI_ID                 0xD5    /* ISSI Integrated Silicon Solutions */
367
368/*
369 * MX25 chips are SPI, first byte of device ID is memory type,
370 * second byte of device ID is log(bitsize)-9.
371 * Generalplus SPI chips seem to be compatible with Macronix
372 * and use the same set of IDs.
373 */
374#define MACRONIX_ID             0xC2    /* Macronix (MX) */
375#define MACRONIX_MX25L512       0x2010  /* Same as MX25V512 */
376#define MACRONIX_MX25L1005      0x2011
377#define MACRONIX_MX25L2005      0x2012
378#define MACRONIX_MX25L4005      0x2013  /* MX25L4005{,A} */
379#define MACRONIX_MX25L8005      0x2014  /* Same as MX25V8005 */
380#define MACRONIX_MX25L1605      0x2015  /* MX25L1605{,A,D} */
381#define MACRONIX_MX25L3205      0x2016  /* MX25L3205{,A} */
382#define MACRONIX_MX25L6405      0x2017  /* MX25L6405{,D}, MX25L6406E, MX25L6436E */
383#define MACRONIX_MX25L12805     0x2018  /* MX25L12805 */
384#define MACRONIX_MX25L1635D     0x2415
385#define MACRONIX_MX25L1635E     0x2515  /* MX25L1635{E} */
386#define MACRONIX_MX25L3235D     0x5E16  /* MX25L3225D/MX25L3235D/MX25L3237D */
387#define MACRONIX_MX29F001B      0x19
388#define MACRONIX_MX29F001T      0x18
389#define MACRONIX_MX29F002B      0x34    /* Same as MX29F002NB; N has reset pin n/c. */
390#define MACRONIX_MX29F002T      0xB0    /* Same as MX29F002NT; N has reset pin n/c. */
391#define MACRONIX_MX29F004B      0x46
392#define MACRONIX_MX29F004T      0x45
393#define MACRONIX_MX29F022T      0x36    /* Same as MX29F022NT */
394#define MACRONIX_MX29F040       0xA4    /* Same as MX29F040C */
395#define MACRONIX_MX29F080       0xD5
396#define MACRONIX_MX29F200B      0x57    /* Same as MX29F200CB */
397#define MACRONIX_MX29F200T      0x51    /* Same as MX29F200CT */
398#define MACRONIX_MX29F400B      0xAB    /* Same as MX29F400CB */
399#define MACRONIX_MX29F400T      0x23    /* Same as MX29F400CT */
400#define MACRONIX_MX29F800B      0x58
401#define MACRONIX_MX29F800T      0xD6
402#define MACRONIX_MX29LV002CB    0x5A
403#define MACRONIX_MX29LV002CT    0x59
404#define MACRONIX_MX29LV004B     0xB6    /* Same as MX29LV004CB */
405#define MACRONIX_MX29LV004T     0xB5    /* Same as MX29LV004CT */
406#define MACRONIX_MX29LV008B     0x37    /* Same as MX29LV008CB */
407#define MACRONIX_MX29LV008T     0x3E    /* Same as MX29LV008CT */
408#define MACRONIX_MX29LV040      0x4F    /* Same as MX29LV040C */
409#define MACRONIX_MX29LV081      0x38
410#define MACRONIX_MX29LV128DB    0x7A
411#define MACRONIX_MX29LV128DT    0x7E
412#define MACRONIX_MX29LV160DB    0x49    /* Same as MX29LV161DB/MX29LV160CB */
413#define MACRONIX_MX29LV160DT    0xC4    /* Same as MX29LV161DT/MX29LV160CT */
414#define MACRONIX_MX29LV320DB    0xA8    /* Same as MX29LV321DB */
415#define MACRONIX_MX29LV320DT    0xA7    /* Same as MX29LV321DT */
416#define MACRONIX_MX29LV400B     0xBA    /* Same as MX29LV400CB */
417#define MACRONIX_MX29LV400T     0xB9    /* Same as MX29LV400CT */
418#define MACRONIX_MX29LV640DB    0xCB    /* Same as MX29LV640EB */
419#define MACRONIX_MX29LV640DT    0xC9    /* Same as MX29LV640ET */
420#define MACRONIX_MX29LV800B     0x5B    /* Same as MX29LV800CB */
421#define MACRONIX_MX29LV800T     0xDA    /* Same as MX29LV800CT */
422#define MACRONIX_MX29SL402CB    0xF1
423#define MACRONIX_MX29SL402CT    0x70
424#define MACRONIX_MX29SL800CB    0x6B    /* Same as MX29SL802CB */
425#define MACRONIX_MX29SL800CT    0xEA    /* Same as MX29SL802CT */
426
427/*
428 * Programmable Micro Corp is listed in JEP106W in bank 2, so it should
429 * have a 0x7F continuation code prefix.
430 */
431#define PMC_ID                  0x7F9D  /* PMC */
432#define PMC_ID_NOPREFIX         0x9D    /* PMC, missing 0x7F prefix */
433#define PMC_PM25LV512           0x7B
434#define PMC_PM25LV010           0x7C
435#define PMC_PM25LV020           0x7D
436#define PMC_PM25LV040           0x7E
437#define PMC_PM25LV080B          0x13
438#define PMC_PM25LV016B          0x14
439#define PMC_PM29F002T           0x1D
440#define PMC_PM29F002B           0x2D
441#define PMC_PM39LV512           0x1B
442#define PMC_PM39F010            0x1C    /* Same as Pm39LV010 */
443#define PMC_PM39LV020           0x3D
444#define PMC_PM39LV040           0x3E
445#define PMC_PM39F020            0x4D
446#define PMC_PM39F040            0x4E
447#define PMC_PM49FL002           0x6D
448#define PMC_PM49FL004           0x6E
449
450/*
451 * The Sanyo chip found so far uses SPI, first byte is manufacture code,
452 * second byte is the device code,
453 * third byte is a dummy byte.
454 */
455#define SANYO_ID                0x62
456#define SANYO_LE25FW203A        0x1600
457
458#define SHARP_ID                0xB0    /* Sharp */
459#define SHARP_LH28F008BJxxPT    0xEC
460#define SHARP_LH28F008BJxxPB    0xED
461#define SHARP_LH28F800BVxxBTL   0x4B
462#define SHARP_LH28F800BVxxBV    0x4D
463#define SHARP_LH28F800BVxxTV    0x4C
464#define SHARP_LHF00L02          0xC9    /* Same as LHF00L06/LHF00L07 */
465#define SHARP_LHF00L04          0xCF    /* Same as LHF00L03/LHF00L05 */
466
467/*
468 * Spansion was previously a joint venture of AMD and Fujitsu.
469 * S25 chips are SPI. The first device ID byte is memory type and
470 * the second device ID byte is memory capacity.
471 */
472#define SPANSION_ID             0x01    /* Spansion, same ID as AMD */
473#define SPANSION_S25FL004A      0x0212
474#define SPANSION_S25FL008A      0x0213
475#define SPANSION_S25FL016A      0x0214
476#define SPANSION_S25FL032A      0x0215
477#define SPANSION_S25FL064A      0x0216
478
479/*
480 * SST25 chips are SPI, first byte of device ID is memory type, second
481 * byte of device ID is related to log(bitsize) at least for some chips.
482 */
483#define SST_ID                  0xBF    /* SST */
484#define SST_SST25WF512          0x2501
485#define SST_SST25WF010          0x2502
486#define SST_SST25WF020          0x2503
487#define SST_SST25WF040          0x2504
488#define SST_SST25VF512A_REMS    0x48    /* REMS or RES opcode */
489#define SST_SST25VF010_REMS     0x49    /* REMS or RES opcode */
490#define SST_SST25VF020_REMS     0x43    /* REMS or RES opcode */
491#define SST_SST25VF040_REMS     0x44    /* REMS or RES opcode, same as SST25LF040A */
492#define SST_SST25VF040B         0x258D
493#define SST_SST25VF040B_REMS    0x8D    /* REMS or RES opcode */
494#define SST_SST25VF080_REMS     0x80    /* REMS or RES opcode, same as SST25LF080A */
495#define SST_SST25VF080B         0x258E
496#define SST_SST25VF080B_REMS    0x8E    /* REMS or RES opcode */
497#define SST_SST25VF016B         0x2541
498#define SST_SST25VF032B         0x254A
499#define SST_SST25VF032B_REMS    0x4A    /* REMS or RES opcode */
500#define SST_SST25VF064C         0x254B
501#define SST_SST26VF016          0x2601
502#define SST_SST26VF032          0x2602
503#define SST_SST27SF512          0xA4
504#define SST_SST27SF010          0xA5
505#define SST_SST27SF020          0xA6
506#define SST_SST27VF010          0xA9
507#define SST_SST27VF020          0xAA
508#define SST_SST28SF040          0x04
509#define SST_SST29EE512          0x5D
510#define SST_SST29EE010          0x07
511#define SST_SST29LE010          0x08    /* Same as SST29VE010 */
512#define SST_SST29EE020A         0x10    /* Same as SST29EE020 */
513#define SST_SST29LE020          0x12    /* Same as SST29VE020 */
514#define SST_SST29SF020          0x24
515#define SST_SST29VF020          0x25
516#define SST_SST29SF040          0x13
517#define SST_SST29VF040          0x14
518#define SST_SST39SF512          0xB4
519#define SST_SST39SF010          0xB5
520#define SST_SST39SF020          0xB6    /* Same as 39SF020A */
521#define SST_SST39SF040          0xB7
522#define SST_SST39VF512          0xD4
523#define SST_SST39VF010          0xD5
524#define SST_SST39VF020          0xD6    /* Same as 39LF020 */
525#define SST_SST39VF040          0xD7    /* Same as 39LF040 */
526#define SST_SST39VF080          0xD8    /* Same as 39LF080/39VF080/39VF088 */
527#define SST_SST49LF040B         0x50
528#define SST_SST49LF040          0x51
529#define SST_SST49LF020          0x61
530#define SST_SST49LF020A         0x52
531#define SST_SST49LF030A         0x1C
532#define SST_SST49LF080A         0x5B
533#define SST_SST49LF002A         0x57
534#define SST_SST49LF003A         0x1B
535#define SST_SST49LF004A         0x60    /* Same as 49LF004B */
536#define SST_SST49LF008A         0x5A
537#define SST_SST49LF004C         0x54
538#define SST_SST49LF008C         0x59
539#define SST_SST49LF016C         0x5C
540#define SST_SST49LF160C         0x4C
541
542/*
543 * ST25P chips are SPI, first byte of device ID is memory type, second
544 * byte of device ID is related to log(bitsize) at least for some chips.
545 */
546#define ST_ID                   0x20    /* ST / SGS/Thomson / Numonyx (later acquired by Micron) */
547#define ST_M25P05A              0x2010
548#define ST_M25P05_RES           0x10    /* Same code as M25P10. */
549#define ST_M25P10A              0x2011
550#define ST_M25P10_RES           0x10    /* Same code as M25P05. */
551#define ST_M25P20               0x2012
552#define ST_M25P40               0x2013
553#define ST_M25P40_RES           0x12
554#define ST_M25P80               0x2014
555#define ST_M25P16               0x2015
556#define ST_M25P32               0x2016
557#define ST_M25P64               0x2017
558#define ST_M25P128              0x2018
559#define ST_M25PX16              0x7115
560#define ST_M25PX32              0x7116
561#define ST_M25PX64              0x7117
562#define ST_M25PE10              0x8011
563#define ST_M25PE20              0x8012
564#define ST_M25PE40              0x8013
565#define ST_M25PE80              0x8014
566#define ST_M25PE16              0x8015
567#define ST_M50FLW040A           0x08
568#define ST_M50FLW040B           0x28
569#define ST_M50FLW080A           0x80
570#define ST_M50FLW080B           0x81
571#define ST_M50FW002             0x29
572#define ST_M50FW040             0x2C
573#define ST_M50FW080             0x2D
574#define ST_M50FW016             0x2E
575#define ST_M50LPW116            0x30
576#define ST_M29F002B             0x34    /* Same as M29F002BB */
577#define ST_M29F002T             0xB0    /* Same as M29F002BT/M29F002NT/M29F002BNT */
578#define ST_M29F040B             0xE2    /* Same as M29F040 */
579#define ST_M29F080              0xF1
580#define ST_M29F200BT            0xD3
581#define ST_M29F200BB            0xD4
582#define ST_M29F400BT            0xD5    /* Same as M29F400T */
583#define ST_M29F400BB            0xD6    /* Same as M29F400B */
584#define ST_M29F800DB            0x58
585#define ST_M29F800DT            0xEC
586#define ST_M29W010B             0x23
587#define ST_M29W040B             0xE3
588#define ST_M29W512B             0x27
589#define ST_N25Q064              0xBA17
590
591#define SYNCMOS_MVC_ID          0x40    /* SyncMOS (SM) and Mosel Vitelic Corporation (MVC) */
592#define MVC_V29C51000T          0x00
593#define MVC_V29C51400T          0x13
594#define MVC_V29LC51000          0x20
595#define MVC_V29LC51001          0x60
596#define MVC_V29LC51002          0x82
597#define MVC_V29C51000B          0xA0
598#define MVC_V29C51400B          0xB3
599#define SM_MVC_29C51001T        0x01    /* Identical chips: {F,S,V}29C51001T */
600#define SM_MVC_29C51002T        0x02    /* Identical chips: {F,S,V}29C51002T */
601#define SM_MVC_29C51004T        0x03    /* Identical chips: {F,S,V}29C51004T */
602#define SM_MVC_29C31004T        0x63    /* Identical chips: {S,V}29C31004T */
603#define SM_MVC_29C31004B        0x73    /* Identical chips: {S,V}29C31004B */
604#define SM_MVC_29C51001B        0xA1    /* Identical chips: {F,S,V}29C51001B */
605#define SM_MVC_29C51002B        0xA2    /* Identical chips: {F,S,V}29C51002B */
606#define SM_MVC_29C51004B        0xA3    /* Identical chips: {F,S,V}29C51004B */
607
608#define TI_ID                   0x97    /* Texas Instruments */
609#define TI_OLD_ID               0x01    /* TI chips from last century */
610#define TI_TMS29F002RT          0xB0
611#define TI_TMS29F002RB          0x34
612
613/*
614 * W25X chips are SPI, first byte of device ID is memory type, second
615 * byte of device ID is related to log(bitsize).
616 */
617#define WINBOND_NEX_ID          0xEF    /* Winbond (ex Nexcom) serial flashes */
618#define WINBOND_NEX_W25X10      0x3011
619#define WINBOND_NEX_W25X20      0x3012
620#define WINBOND_NEX_W25X40      0x3013
621#define WINBOND_NEX_W25X80      0x3014
622#define WINBOND_NEX_W25X16      0x3015
623#define WINBOND_NEX_W25X32      0x3016
624#define WINBOND_NEX_W25X64      0x3017
625#define WINBOND_NEX_W25Q40      0x4013
626#define WINBOND_NEX_W25Q80      0x4014
627#define WINBOND_NEX_W25Q16      0x4015
628#define WINBOND_NEX_W25Q32      0x4016
629#define WINBOND_NEX_W25Q64      0x4017
630#define WINBOND_NEX_W25Q128     0x4018
631
632#define WINBOND_ID              0xDA    /* Winbond */
633#define WINBOND_W19B160BB       0x49
634#define WINBOND_W19B160BT       0xC4
635#define WINBOND_W19B320SB       0x2A    /* Same as W19L320SB */
636#define WINBOND_W19B320ST       0xBA    /* Same as W19L320ST */
637#define WINBOND_W19B322MB       0x92
638#define WINBOND_W19B322MT       0x10
639#define WINBOND_W19B323MB       0x94
640#define WINBOND_W19B323MT       0x13
641#define WINBOND_W19B324MB       0x97
642#define WINBOND_W19B324MT       0x16
643#define WINBOND_W29C010         0xC1    /* Same as W29C010M, W29C011A, W29EE011, W29EE012, and ASD AE29F1008 */
644#define WINBOND_W29C020         0x45    /* Same as W29C020C, W29C022 and ASD AE29F2008 */
645#define WINBOND_W29C040         0x46    /* Same as W29C040P */
646#define WINBOND_W29C512A        0xC8    /* Same as W29EE512 */
647#define WINBOND_W39L010         0x31
648#define WINBOND_W39L020         0xB5
649#define WINBOND_W39L040         0xB6
650#define WINBOND_W39L040A        0xD6
651#define WINBOND_W39L512         0x38
652#define WINBOND_W39V040A        0x3D
653#define WINBOND_W39V040FA       0x34
654#define WINBOND_W39V040B        0x54    /* Same as W39V040FB */
655#define WINBOND_W39V040C        0x50    /* Same as W39V040FC */
656#define WINBOND_W39V080A        0xD0
657#define WINBOND_W39V080FA       0xD3
658#define WINBOND_W39V080FA_DM    0x93    /* W39V080FA dual mode */
659#define WINBOND_W49F002         0x25    /* Same as W49F002B */
660#define WINBOND_W49F002U        0x0B    /* Same as W49F002N and ASD AE49F2008 */
661#define WINBOND_W49F020         0x8C
662#define WINBOND_W49V002A        0xB0
663#define WINBOND_W49V002FA       0x32
664
665#endif /* !FLASHCHIPS_H */
Note: See TracBrowser for help on using the repository browser.