2 * This file is part of the flashrom project.
4 * Copyright (C) 2000 Silicon Integrated System Corporation
5 * Copyright (C) 2004 Tyan Corp
6 * Copyright (C) 2005-2008 coresystems GmbH <stepan@openbios.org>
7 * Copyright (C) 2006-2009 Carl-Daniel Hailfinger
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.
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.
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
27 * List of supported flash ROM chips.
29 * Please keep the list sorted by vendor name and chip name, so that
30 * the output of 'flashrom -L' is alphabetically sorted.
32 struct flashchip flashchips[] = {
34 /* Vendor, Chip, Vendor ID, Chip ID,
35 * Total size (kB), Page size (B),
37 * Probe function, Erase function, Write function, Read function
42 .name = "Am29F002(N)BB",
43 .manufacture_id = AMD_ID,
44 .model_id = AM_29F002BB,
47 .tested = TEST_UNTESTED,
49 .erase = erase_chip_jedec,
50 .write = write_en29f002a,
55 .name = "Am29F002(N)BT",
56 .manufacture_id = AMD_ID,
57 .model_id = AM_29F002BT,
60 .tested = TEST_OK_PREW,
62 .erase = erase_chip_jedec,
63 .write = write_en29f002a,
69 .manufacture_id = AMD_ID,
70 .model_id = AM_29F016D,
72 .page_size = 64 * 1024,
73 .tested = TEST_UNTESTED,
74 .probe = probe_29f040b,
75 .erase = erase_29f040b,
76 .write = write_29f040b,
82 .manufacture_id = AMD_ID,
83 .model_id = AM_29F040B,
85 .page_size = 64 * 1024,
86 .tested = TEST_OK_PREW,
87 .probe = probe_29f040b,
88 .erase = erase_29f040b,
89 .write = write_29f040b,
95 .manufacture_id = 0x01,
98 .page_size = 64 * 1024,
99 .tested = TEST_UNTESTED,
100 .probe = probe_jedec,
101 .erase = erase_29f040b,
102 .write = write_29f040b,
107 .name = "Am29LV040B",
108 .manufacture_id = AMD_ID,
109 .model_id = AM_29LV040B,
111 .page_size = 64 * 1024,
112 .tested = TEST_UNTESTED,
113 .probe = probe_29f040b,
114 .erase = erase_29f040b,
115 .write = write_29f040b,
120 .name = "Am29LV081B",
121 .manufacture_id = 0x01,
124 .page_size = 64 * 1024,
125 .tested = TEST_UNTESTED,
126 .probe = probe_29f040b,
127 .erase = erase_29f040b,
128 .write = write_29f040b,
134 .manufacture_id = ASD_ID,
135 .model_id = ASD_AE49F2008,
138 .tested = TEST_UNTESTED,
139 .probe = probe_jedec,
140 .erase = erase_chip_jedec,
141 .write = write_jedec,
147 .manufacture_id = ATMEL_ID,
148 .model_id = AT_25DF021,
151 .tested = TEST_UNTESTED,
152 .probe = probe_spi_rdid,
153 .erase = spi_chip_erase_60_c7,
154 .write = spi_chip_write,
155 .read = spi_chip_read,
160 .name = "AT25DF041A",
161 .manufacture_id = ATMEL_ID,
162 .model_id = AT_25DF041A,
165 .tested = TEST_UNTESTED,
166 .probe = probe_spi_rdid,
167 .erase = spi_chip_erase_60_c7,
168 .write = spi_chip_write,
169 .read = spi_chip_read,
175 .manufacture_id = ATMEL_ID,
176 .model_id = AT_25DF081,
179 .tested = TEST_UNTESTED,
180 .probe = probe_spi_rdid,
181 .erase = spi_chip_erase_60_c7,
182 .write = spi_chip_write,
183 .read = spi_chip_read,
189 .manufacture_id = ATMEL_ID,
190 .model_id = AT_25DF161,
193 .tested = TEST_UNTESTED,
194 .probe = probe_spi_rdid,
195 .erase = spi_chip_erase_60_c7,
196 .write = spi_chip_write,
197 .read = spi_chip_read,
203 .manufacture_id = ATMEL_ID,
204 .model_id = AT_25DF321,
207 .tested = TEST_OK_PREW,
208 .probe = probe_spi_rdid,
209 .erase = spi_chip_erase_60_c7,
210 .write = spi_chip_write,
211 .read = spi_chip_read,
216 .name = "AT25DF321A",
217 .manufacture_id = ATMEL_ID,
218 .model_id = AT_25DF321A,
221 .tested = TEST_UNTESTED,
222 .probe = probe_spi_rdid,
223 .erase = spi_chip_erase_60_c7,
224 .write = spi_chip_write,
225 .read = spi_chip_read,
231 .manufacture_id = ATMEL_ID,
232 .model_id = AT_25DF641,
235 .tested = TEST_UNTESTED,
236 .probe = probe_spi_rdid,
237 .erase = spi_chip_erase_60_c7,
238 .write = spi_chip_write,
239 .read = spi_chip_read,
245 .manufacture_id = ATMEL_ID,
246 .model_id = AT_25F512B,
249 .tested = TEST_UNTESTED,
250 .probe = probe_spi_rdid,
251 .erase = spi_chip_erase_60_c7,
252 .write = spi_chip_write,
253 .read = spi_chip_read,
259 .manufacture_id = ATMEL_ID,
260 .model_id = AT_25FS010,
263 .tested = TEST_UNTESTED,
264 .probe = probe_spi_rdid,
265 .erase = spi_chip_erase_60_c7,
266 .write = spi_chip_write,
267 .read = spi_chip_read,
273 .manufacture_id = ATMEL_ID,
274 .model_id = AT_25FS040,
277 .tested = TEST_UNTESTED,
278 .probe = probe_spi_rdid,
279 .erase = spi_chip_erase_60_c7,
280 .write = spi_chip_write,
281 .read = spi_chip_read,
287 .manufacture_id = ATMEL_ID,
288 .model_id = AT_26DF041,
291 .tested = TEST_UNTESTED,
292 .probe = probe_spi_rdid,
294 .write = NULL /* Incompatible Page write */,
295 .read = spi_chip_read,
300 .name = "AT26DF081A",
301 .manufacture_id = ATMEL_ID,
302 .model_id = AT_26DF081A,
305 .tested = TEST_UNTESTED,
306 .probe = probe_spi_rdid,
307 .erase = spi_chip_erase_60_c7,
308 .write = spi_chip_write,
309 .read = spi_chip_read,
315 .manufacture_id = ATMEL_ID,
316 .model_id = AT_26DF161,
319 .tested = TEST_UNTESTED,
320 .probe = probe_spi_rdid,
321 .erase = spi_chip_erase_60_c7,
322 .write = spi_chip_write,
323 .read = spi_chip_read,
328 .name = "AT26DF161A",
329 .manufacture_id = ATMEL_ID,
330 .model_id = AT_26DF161A,
333 .tested = TEST_UNTESTED,
334 .probe = probe_spi_rdid,
335 .erase = spi_chip_erase_60_c7,
336 .write = spi_chip_write,
337 .read = spi_chip_read,
340 /*The AT26DF321 has the same ID as the AT25DF321. */
344 .manufacture_id = ATMEL_ID,
345 .model_id = AT_26DF321,
348 .tested = TEST_UNTESTED,
349 .probe = probe_spi_rdid,
350 .erase = spi_chip_erase_60_c7,
351 .write = spi_chip_write,
352 .read = spi_chip_read,
358 .manufacture_id = ATMEL_ID,
359 .model_id = AT_26F004,
362 .tested = TEST_UNTESTED,
363 .probe = probe_spi_rdid,
364 .erase = spi_chip_erase_60_c7,
365 .write = NULL /* Incompatible Page write */,
366 .read = spi_chip_read,
372 .manufacture_id = ATMEL_ID,
373 .model_id = AT_29C020,
376 .tested = TEST_OK_PREW,
377 .probe = probe_jedec,
378 .erase = erase_chip_jedec,
379 .write = write_jedec,
385 .manufacture_id = ATMEL_ID,
386 .model_id = AT_29C040A,
389 .tested = TEST_UNTESTED,
390 .probe = probe_jedec,
391 .erase = erase_chip_jedec,
392 .write = write_jedec,
397 .name = "AT45CS1282",
398 .manufacture_id = ATMEL_ID,
399 .model_id = AT_45CS1282,
400 .total_size = 16896 /* No power of two sizes */,
401 .page_size = 1056 /* No power of two sizes */,
402 .tested = TEST_BAD_READ,
403 .probe = probe_spi_rdid,
405 .write = NULL /* Incompatible Page write */,
406 .read = NULL /* Incompatible read */,
411 .name = "AT45DB011D",
412 .manufacture_id = ATMEL_ID,
413 .model_id = AT_45DB011D,
414 .total_size = 128 /* Size can only be determined from status register */,
415 .page_size = 256 /* Size can only be determined from status register */,
416 .tested = TEST_BAD_READ,
417 .probe = probe_spi_rdid,
425 .name = "AT45DB021D",
426 .manufacture_id = ATMEL_ID,
427 .model_id = AT_45DB021D,
428 .total_size = 256 /* Size can only be determined from status register */,
429 .page_size = 256 /* Size can only be determined from status register */,
430 .tested = TEST_BAD_READ,
431 .probe = probe_spi_rdid,
439 .name = "AT45DB041D",
440 .manufacture_id = ATMEL_ID,
441 .model_id = AT_45DB041D,
442 .total_size = 512 /* Size can only be determined from status register */,
443 .page_size = 256 /* Size can only be determined from status register */,
444 .tested = TEST_BAD_READ,
445 .probe = probe_spi_rdid,
453 .name = "AT45DB081D",
454 .manufacture_id = ATMEL_ID,
455 .model_id = AT_45DB081D,
456 .total_size = 1024 /* Size can only be determined from status register */,
457 .page_size = 256 /* Size can only be determined from status register */,
458 .tested = TEST_BAD_READ,
459 .probe = probe_spi_rdid,
467 .name = "AT45DB161D",
468 .manufacture_id = ATMEL_ID,
469 .model_id = AT_45DB161D,
470 .total_size = 2048 /* Size can only be determined from status register */,
471 .page_size = 512 /* Size can only be determined from status register */,
472 .tested = TEST_BAD_READ,
473 .probe = probe_spi_rdid,
481 .name = "AT45DB321C",
482 .manufacture_id = ATMEL_ID,
483 .model_id = AT_45DB321C,
484 .total_size = 4224 /* No power of two sizes */,
485 .page_size = 528 /* No power of two sizes */,
486 .tested = TEST_BAD_READ,
487 .probe = probe_spi_rdid,
490 .read = NULL /* Incompatible read */,
495 .name = "AT45DB321D",
496 .manufacture_id = ATMEL_ID,
497 .model_id = AT_45DB321D,
498 .total_size = 4096 /* Size can only be determined from status register */,
499 .page_size = 512 /* Size can only be determined from status register */,
500 .tested = TEST_BAD_READ,
501 .probe = probe_spi_rdid,
509 .name = "AT45DB642D",
510 .manufacture_id = ATMEL_ID,
511 .model_id = AT_45DB642D,
512 .total_size = 8192 /* Size can only be determined from status register */,
513 .page_size = 1024 /* Size can only be determined from status register */,
514 .tested = TEST_BAD_READ,
515 .probe = probe_spi_rdid,
523 .name = "AT49F002(N)",
524 .manufacture_id = ATMEL_ID,
525 .model_id = AT_49F002N,
528 .tested = TEST_UNTESTED,
529 .probe = probe_jedec,
530 .erase = erase_chip_jedec,
531 .write = write_49f002,
536 .name = "AT49F002(N)T",
537 .manufacture_id = ATMEL_ID,
538 .model_id = AT_49F002NT,
541 .tested = TEST_OK_PREW,
542 .probe = probe_jedec,
543 .erase = erase_chip_jedec,
544 .write = write_49f002,
550 .manufacture_id = AMIC_ID,
551 .model_id = AMIC_A25L40P,
554 .tested = TEST_OK_PREW,
555 .probe = probe_spi_rdid4,
556 .erase = spi_chip_erase_c7,
557 .write = spi_chip_write,
558 .read = spi_chip_read,
564 .manufacture_id = AMIC_ID_NOPREFIX,
565 .model_id = AMIC_A29002B,
567 .page_size = 64 * 1024,
568 .tested = TEST_UNTESTED,
569 .probe = probe_29f002,
570 .erase = erase_29f002,
571 .write = write_29f002,
577 .manufacture_id = AMIC_ID_NOPREFIX,
578 .model_id = AMIC_A29002T,
580 .page_size = 64 * 1024,
581 .tested = TEST_OK_PREW,
582 .probe = probe_29f002,
583 .erase = erase_29f002,
584 .write = write_29f002,
590 .manufacture_id = AMIC_ID_NOPREFIX,
591 .model_id = AMIC_A29040B,
593 .page_size = 64 * 1024,
594 .tested = TEST_OK_PR,
595 .probe = probe_29f040b,
596 .erase = erase_29f040b,
597 .write = write_29f040b,
603 .manufacture_id = AMIC_ID_NOPREFIX,
604 .model_id = AMIC_A49LF040A,
606 .page_size = 64 * 1024,
607 .tested = TEST_OK_PREW,
608 .probe = probe_49fl00x,
609 .erase = erase_49fl00x,
610 .write = write_49fl00x,
616 .manufacture_id = EMST_ID,
617 .model_id = EMST_F49B002UA,
620 .tested = TEST_UNTESTED,
621 .probe = probe_jedec,
622 .erase = erase_chip_jedec,
623 .write = write_49f002,
628 .name = "EN29F002(A)(N)B",
629 .manufacture_id = EON_ID,
630 .model_id = EN_29F002B,
633 .tested = TEST_UNTESTED,
634 .probe = probe_jedec,
635 .erase = erase_chip_jedec,
636 .write = write_en29f002a,
641 .name = "EN29F002(A)(N)T",
642 .manufacture_id = EON_ID,
643 .model_id = EN_29F002T,
646 .tested = TEST_OK_PREW,
647 .probe = probe_jedec,
648 .erase = erase_chip_jedec,
649 .write = write_en29f002a,
654 .name = "MBM29F004BC",
655 .manufacture_id = FUJITSU_ID,
656 .model_id = MBM29F004BC,
658 .page_size = 64 * 1024,
659 .tested = TEST_UNTESTED,
660 .probe = probe_jedec,
667 .name = "MBM29F004TC",
668 .manufacture_id = FUJITSU_ID,
669 .model_id = MBM29F004TC,
671 .page_size = 64 * 1024,
672 .tested = TEST_UNTESTED,
673 .probe = probe_jedec,
680 .name = "MBM29F400BC",
681 .manufacture_id = FUJITSU_ID,
682 .model_id = MBM29F400BC,
684 .page_size = 64 * 1024,
685 .tested = TEST_UNTESTED,
686 .probe = probe_m29f400bt,
687 .erase = erase_m29f400bt,
688 .write = write_coreboot_m29f400bt,
693 .name = "MBM29F400TC",
694 .manufacture_id = FUJITSU_ID,
695 .model_id = MBM29F400TC,
697 .page_size = 64 * 1024,
698 .tested = TEST_UNTESTED,
699 .probe = probe_m29f400bt,
700 .erase = erase_m29f400bt,
701 .write = write_coreboot_m29f400bt,
707 .manufacture_id = INTEL_ID,
710 .page_size = 64 * 1024,
711 .tested = TEST_OK_PREW,
712 .probe = probe_82802ab,
713 .erase = erase_82802ab,
714 .write = write_82802ab,
720 .manufacture_id = INTEL_ID,
723 .page_size = 64 * 1024,
724 .tested = TEST_OK_PREW,
725 .probe = probe_82802ab,
726 .erase = erase_82802ab,
727 .write = write_82802ab,
731 .vendor = "Macronix",
733 .manufacture_id = MX_ID,
734 .model_id = MX_25L512,
737 .tested = TEST_UNTESTED,
738 .probe = probe_spi_rdid,
739 .erase = spi_chip_erase_c7,
740 .write = spi_chip_write,
741 .read = spi_chip_read,
745 .vendor = "Macronix",
747 .manufacture_id = MX_ID,
748 .model_id = MX_25L1005,
751 .tested = TEST_UNTESTED,
752 .probe = probe_spi_rdid,
753 .erase = spi_chip_erase_c7,
754 .write = spi_chip_write,
755 .read = spi_chip_read,
759 .vendor = "Macronix",
761 .manufacture_id = MX_ID,
762 .model_id = MX_25L2005,
765 .tested = TEST_UNTESTED,
766 .probe = probe_spi_rdid,
767 .erase = spi_chip_erase_c7,
768 .write = spi_chip_write,
769 .read = spi_chip_read,
773 .vendor = "Macronix",
775 .manufacture_id = MX_ID,
776 .model_id = MX_25L4005,
779 .tested = TEST_OK_PREW,
780 .probe = probe_spi_rdid,
781 .erase = spi_chip_erase_c7,
782 .write = spi_chip_write,
783 .read = spi_chip_read,
787 .vendor = "Macronix",
789 .manufacture_id = MX_ID,
790 .model_id = MX_25L8005,
793 .tested = TEST_OK_PREW,
794 .probe = probe_spi_rdid,
795 .erase = spi_chip_erase_c7,
796 .write = spi_chip_write,
797 .read = spi_chip_read,
801 .vendor = "Macronix",
803 .manufacture_id = MX_ID,
804 .model_id = MX_25L1605,
807 .tested = TEST_UNTESTED,
808 .probe = probe_spi_rdid,
809 .erase = spi_chip_erase_c7,
810 .write = spi_chip_write,
811 .read = spi_chip_read,
815 .vendor = "Macronix",
816 .name = "MX25L1635D",
817 .manufacture_id = MX_ID,
818 .model_id = MX_25L1635D,
821 .tested = TEST_UNTESTED,
822 .probe = probe_spi_rdid,
823 .erase = spi_chip_erase_c7,
824 .write = spi_chip_write,
825 .read = spi_chip_read,
828 .vendor = "Macronix",
830 .manufacture_id = MX_ID,
831 .model_id = MX_25L3205,
834 .tested = TEST_OK_PREW,
835 .probe = probe_spi_rdid,
836 .erase = spi_chip_erase_c7,
837 .write = spi_chip_write,
838 .read = spi_chip_read,
842 .vendor = "Macronix",
844 .manufacture_id = MX_ID,
845 .model_id = MX_25L6405,
848 .tested = TEST_UNTESTED,
849 .probe = probe_spi_rdid,
850 .erase = spi_chip_erase_c7,
851 .write = spi_chip_write,
852 .read = spi_chip_read,
856 .vendor = "Macronix",
858 .manufacture_id = MX_ID,
859 .model_id = MX_29F002B,
861 .page_size = 64 * 1024,
862 .tested = TEST_UNTESTED,
863 .probe = probe_29f002,
864 .erase = erase_29f002,
865 .write = write_29f002,
869 .vendor = "Macronix",
871 .manufacture_id = MX_ID,
872 .model_id = MX_29F002T,
874 .page_size = 64 * 1024,
875 .tested = TEST_UNTESTED,
876 .probe = probe_29f002,
877 .erase = erase_29f002,
878 .write = write_29f002,
882 .vendor = "Macronix",
883 .name = "MX29LV040C",
884 .manufacture_id = MX_ID,
885 .model_id = MX_29LV040C,
887 .page_size = 64 * 1024,
888 .tested = TEST_OK_PR,
889 .probe = probe_29f002,
890 .erase = erase_29f002,
891 .write = write_29f002,
897 .manufacture_id = ST_ID,
901 .tested = TEST_UNTESTED,
902 .probe = probe_spi_rdid,
903 .erase = spi_chip_erase_d8,
904 .write = spi_chip_write,
905 .read = spi_chip_read,
911 .manufacture_id = ST_ID,
915 .tested = TEST_UNTESTED,
916 .probe = probe_spi_rdid,
917 .erase = spi_chip_erase_d8,
918 .write = spi_chip_write,
919 .read = spi_chip_read,
925 .manufacture_id = ST_ID,
929 .tested = TEST_UNTESTED,
930 .probe = probe_spi_rdid,
931 .erase = spi_chip_erase_d8,
932 .write = spi_chip_write,
933 .read = spi_chip_read,
939 .manufacture_id = ST_ID,
943 .tested = TEST_OK_PREW,
944 .probe = probe_spi_rdid,
945 .erase = spi_chip_erase_d8,
946 .write = spi_chip_write,
947 .read = spi_chip_read,
953 .manufacture_id = ST_ID,
957 .tested = TEST_UNTESTED,
958 .probe = probe_spi_rdid,
959 .erase = spi_chip_erase_d8,
960 .write = spi_chip_write,
961 .read = spi_chip_read,
967 .manufacture_id = PMC_ID,
968 .model_id = PMC_25LV010,
971 .tested = TEST_UNTESTED,
972 .probe = probe_spi_rdid,
973 .erase = spi_chip_erase_c7,
974 .write = spi_chip_write,
975 .read = spi_chip_read,
980 .name = "Pm25LV016B",
981 .manufacture_id = PMC_ID,
982 .model_id = PMC_25LV016B,
985 .tested = TEST_UNTESTED,
986 .probe = probe_spi_rdid,
987 .erase = spi_chip_erase_c7,
988 .write = spi_chip_write,
989 .read = spi_chip_read,
995 .manufacture_id = PMC_ID,
996 .model_id = PMC_25LV020,
999 .tested = TEST_UNTESTED,
1000 .probe = probe_spi_rdid,
1001 .erase = spi_chip_erase_c7,
1002 .write = spi_chip_write,
1003 .read = spi_chip_read,
1008 .name = "Pm25LV040",
1009 .manufacture_id = PMC_ID,
1010 .model_id = PMC_25LV040,
1013 .tested = TEST_UNTESTED,
1014 .probe = probe_spi_rdid,
1015 .erase = spi_chip_erase_c7,
1016 .write = spi_chip_write,
1017 .read = spi_chip_read,
1022 .name = "Pm25LV080B",
1023 .manufacture_id = PMC_ID,
1024 .model_id = PMC_25LV080B,
1027 .tested = TEST_UNTESTED,
1028 .probe = probe_spi_rdid,
1029 .erase = spi_chip_erase_c7,
1030 .write = spi_chip_write,
1031 .read = spi_chip_read,
1036 .name = "Pm25LV512",
1037 .manufacture_id = PMC_ID,
1038 .model_id = PMC_25LV512,
1041 .tested = TEST_UNTESTED,
1042 .probe = probe_spi_rdid,
1043 .erase = spi_chip_erase_c7,
1044 .write = spi_chip_write,
1045 .read = spi_chip_read,
1050 .name = "Pm49FL002",
1051 .manufacture_id = PMC_ID_NOPREFIX,
1052 .model_id = PMC_49FL002,
1054 .page_size = 16 * 1024,
1055 .tested = TEST_OK_PREW,
1056 .probe = probe_49fl00x,
1057 .erase = erase_49fl00x,
1058 .write = write_49fl00x,
1063 .name = "Pm49FL004",
1064 .manufacture_id = PMC_ID_NOPREFIX,
1065 .model_id = PMC_49FL004,
1067 .page_size = 64 * 1024,
1068 .tested = TEST_OK_PREW,
1069 .probe = probe_49fl00x,
1070 .erase = erase_49fl00x,
1071 .write = write_49fl00x,
1077 .manufacture_id = SHARP_ID,
1078 .model_id = SHARP_LHF00L04,
1080 .page_size = 64 * 1024,
1081 .tested = TEST_UNTESTED,
1082 .probe = probe_lhf00l04,
1083 .erase = erase_lhf00l04,
1084 .write = write_lhf00l04,
1088 .vendor = "Spansion",
1089 .name = "S25FL016A",
1090 .manufacture_id = SPANSION_ID,
1091 .model_id = SPANSION_S25FL016A,
1094 .tested = TEST_OK_PREW,
1095 .probe = probe_spi_rdid,
1096 .erase = spi_chip_erase_c7,
1097 .write = spi_chip_write,
1098 .read = spi_chip_read,
1103 .name = "SST25VF016B",
1104 .manufacture_id = SST_ID,
1105 .model_id = SST_25VF016B,
1108 .tested = TEST_OK_PREW,
1109 .probe = probe_spi_rdid,
1110 .erase = spi_chip_erase_c7,
1111 .write = spi_chip_write,
1112 .read = spi_chip_read,
1117 .name = "SST25VF032B",
1118 .manufacture_id = SST_ID,
1119 .model_id = SST_25VF032B,
1122 .tested = TEST_OK_PREW,
1123 .probe = probe_spi_rdid,
1124 .erase = spi_chip_erase_c7,
1125 .write = spi_chip_write,
1126 .read = spi_chip_read,
1131 .name = "SST25VF040B",
1132 .manufacture_id = SST_ID,
1133 .model_id = SST_25VF040B,
1136 .tested = TEST_UNTESTED,
1137 .probe = probe_spi_rdid,
1138 .erase = spi_chip_erase_c7,
1139 .write = spi_chip_write,
1140 .read = spi_chip_read,
1145 .name = "SST25VF040.REMS",
1146 .manufacture_id = 0xbf,
1149 .page_size = 64*1024,
1150 .tested = TEST_OK_PR,
1151 .probe = probe_spi_rems,
1152 .erase = spi_chip_erase_60,
1153 .write = spi_chip_write,
1154 .read = spi_chip_read,
1159 .name = "SST25VF040B.REMS",
1160 .manufacture_id = 0xbf,
1163 .page_size = 64*1024,
1164 .tested = TEST_OK_PR,
1165 .probe = probe_spi_rems,
1166 .erase = spi_chip_erase_c7,
1167 .write = spi_aai_write,
1168 .read = spi_chip_read,
1173 .name = "SST25VF080B",
1174 .manufacture_id = SST_ID,
1175 .model_id = SST_25VF080B,
1178 .tested = TEST_OK_PROBE,
1179 .probe = probe_spi_rdid,
1180 .erase = spi_chip_erase_60_c7,
1181 .write = spi_chip_write,
1182 .read = spi_chip_read,
1187 .name = "SST28SF040A",
1188 .manufacture_id = SST_ID,
1189 .model_id = SST_28SF040,
1192 .tested = TEST_UNTESTED,
1193 .probe = probe_28sf040,
1194 .erase = erase_28sf040,
1195 .write = write_28sf040,
1200 .name = "SST29EE010",
1201 .manufacture_id = SST_ID,
1202 .model_id = SST_29EE010,
1205 .tested = TEST_OK_PREW,
1206 .probe = probe_jedec,
1207 .erase = erase_chip_jedec,
1208 .write = write_jedec,
1213 .name = "SST29LE010",
1214 .manufacture_id = SST_ID,
1215 .model_id = SST_29LE010,
1218 .tested = TEST_UNTESTED,
1219 .probe = probe_jedec,
1220 .erase = erase_chip_jedec,
1221 .write = write_jedec,
1226 .name = "SST29EE020A",
1227 .manufacture_id = SST_ID,
1228 .model_id = SST_29EE020A,
1231 .tested = TEST_OK_PREW,
1232 .probe = probe_jedec,
1233 .erase = erase_chip_jedec,
1234 .write = write_jedec,
1239 .name = "SST29LE020",
1240 .manufacture_id = SST_ID,
1241 .model_id = SST_29LE020,
1244 .tested = TEST_UNTESTED,
1245 .probe = probe_jedec,
1246 .erase = erase_chip_jedec,
1247 .write = write_jedec,
1252 .name = "SST39SF010A",
1253 .manufacture_id = SST_ID,
1254 .model_id = SST_39SF010,
1257 .tested = TEST_OK_PREW,
1258 .probe = probe_jedec,
1259 .erase = erase_chip_jedec,
1260 .write = write_39sf020,
1265 .name = "SST39SF020A",
1266 .manufacture_id = SST_ID,
1267 .model_id = SST_39SF020,
1270 .tested = TEST_OK_PREW,
1271 .probe = probe_jedec,
1272 .erase = erase_chip_jedec,
1273 .write = write_39sf020,
1278 .name = "SST39SF040",
1279 .manufacture_id = SST_ID,
1280 .model_id = SST_39SF040,
1283 .tested = TEST_OK_PREW,
1284 .probe = probe_jedec,
1285 .erase = erase_chip_jedec,
1286 .write = write_39sf020,
1291 .name = "SST39VF512",
1292 .manufacture_id = SST_ID,
1293 .model_id = SST_39VF512,
1296 .tested = TEST_UNTESTED,
1297 .probe = probe_jedec,
1298 .erase = erase_chip_jedec,
1299 .write = write_39sf020,
1304 .name = "SST39VF010",
1305 .manufacture_id = SST_ID,
1306 .model_id = SST_39VF010,
1309 .tested = TEST_UNTESTED,
1310 .probe = probe_jedec,
1311 .erase = erase_chip_jedec,
1312 .write = write_39sf020,
1317 .name = "SST39VF020",
1318 .manufacture_id = SST_ID,
1319 .model_id = SST_39VF020,
1322 .tested = TEST_OK_PREW,
1323 .probe = probe_jedec,
1324 .erase = erase_chip_jedec,
1325 .write = write_39sf020,
1330 .name = "SST39VF040",
1331 .manufacture_id = SST_ID,
1332 .model_id = SST_39VF040,
1335 .tested = TEST_OK_PROBE,
1336 .probe = probe_jedec,
1337 .erase = erase_chip_jedec,
1338 .write = write_39sf020,
1343 .name = "SST39VF080",
1344 .manufacture_id = 0xbf,
1348 .tested = TEST_UNTESTED,
1349 .probe = probe_jedec,
1350 .erase = erase_chip_jedec,
1351 .write = write_39sf020,
1356 .name = "SST49LF002A/B",
1357 .manufacture_id = SST_ID,
1358 .model_id = SST_49LF002A,
1360 .page_size = 16 * 1024,
1361 .tested = TEST_OK_PREW,
1362 .probe = probe_sst_fwhub,
1363 .erase = erase_sst_fwhub,
1364 .write = write_sst_fwhub,
1369 .name = "SST49LF003A/B",
1370 .manufacture_id = SST_ID,
1371 .model_id = SST_49LF003A,
1373 .page_size = 64 * 1024,
1374 .tested = TEST_UNTESTED,
1375 .probe = probe_sst_fwhub,
1376 .erase = erase_sst_fwhub,
1377 .write = write_sst_fwhub,
1382 .name = "SST49LF004A/B",
1383 .manufacture_id = SST_ID,
1384 .model_id = SST_49LF004A,
1386 .page_size = 64 * 1024,
1387 .tested = TEST_OK_PREW,
1388 .probe = probe_sst_fwhub,
1389 .erase = erase_sst_fwhub,
1390 .write = write_sst_fwhub,
1395 .name = "SST49LF004C",
1396 .manufacture_id = SST_ID,
1397 .model_id = SST_49LF004C,
1399 .page_size = 4 * 1024,
1400 .tested = TEST_UNTESTED,
1401 .probe = probe_49lfxxxc,
1402 .erase = erase_49lfxxxc,
1403 .write = write_49lfxxxc,
1408 .name = "SST49LF008A",
1409 .manufacture_id = SST_ID,
1410 .model_id = SST_49LF008A,
1412 .page_size = 64 * 1024,
1413 .tested = TEST_OK_PREW,
1414 .probe = probe_sst_fwhub,
1415 .erase = erase_sst_fwhub,
1416 .write = write_sst_fwhub,
1421 .name = "SST49LF008C",
1422 .manufacture_id = SST_ID,
1423 .model_id = SST_49LF008C,
1425 .page_size = 4 * 1024,
1426 .tested = TEST_UNTESTED,
1427 .probe = probe_49lfxxxc,
1428 .erase = erase_49lfxxxc,
1429 .write = write_49lfxxxc,
1434 .name = "SST49LF016C",
1435 .manufacture_id = SST_ID,
1436 .model_id = SST_49LF016C,
1438 .page_size = 4 * 1024,
1439 .tested = TEST_OK_PREW,
1440 .probe = probe_49lfxxxc,
1441 .erase = erase_49lfxxxc,
1442 .write = write_49lfxxxc,
1447 .name = "SST49LF020",
1448 .manufacture_id = SST_ID,
1449 .model_id = SST_49LF020,
1451 .page_size = 16 * 1024,
1452 .tested = TEST_OK_PR,
1453 .probe = probe_jedec,
1454 .erase = erase_49lf040,
1455 .write = write_49lf040,
1460 .name = "SST49LF020A",
1461 .manufacture_id = SST_ID,
1462 .model_id = SST_49LF020A,
1464 .page_size = 16 * 1024,
1465 .tested = TEST_UNTESTED,
1466 .probe = probe_jedec,
1467 .erase = erase_49lf040,
1468 .write = write_49lf040,
1473 .name = "SST49LF040",
1474 .manufacture_id = SST_ID,
1475 .model_id = SST_49LF040,
1478 .tested = TEST_OK_PREW,
1479 .probe = probe_jedec,
1480 .erase = erase_49lf040,
1481 .write = write_49lf040,
1486 .name = "SST49LF040B",
1487 .manufacture_id = SST_ID,
1488 .model_id = SST_49LF040B,
1490 .page_size = 64 * 1024,
1491 .tested = TEST_OK_PREW,
1492 .probe = probe_sst_fwhub,
1493 .erase = erase_sst_fwhub,
1494 .write = write_sst_fwhub,
1499 .name = "SST49LF080A",
1500 .manufacture_id = SST_ID,
1501 .model_id = SST_49LF080A,
1504 .tested = TEST_OK_PREW,
1505 .probe = probe_jedec,
1506 .erase = erase_49lf040,
1507 .write = write_49lf040,
1512 .name = "SST49LF160C",
1513 .manufacture_id = SST_ID,
1514 .model_id = SST_49LF160C,
1516 .page_size = 4 * 1024,
1517 .tested = TEST_OK_PREW,
1518 .probe = probe_49lfxxxc,
1519 .erase = erase_49lfxxxc,
1520 .write = write_49lfxxxc,
1526 .manufacture_id = ST_ID,
1527 .model_id = ST_M25P05A,
1530 .tested = TEST_UNTESTED,
1531 .probe = probe_spi_rdid,
1532 .erase = spi_chip_erase_c7,
1533 .write = spi_chip_write,
1534 .read = spi_chip_read,
1540 .manufacture_id = ST_ID,
1541 .model_id = ST_M25P10A,
1544 .tested = TEST_UNTESTED,
1545 .probe = probe_spi_rdid,
1546 .erase = spi_chip_erase_c7,
1547 .write = spi_chip_write,
1548 .read = spi_chip_read,
1554 .manufacture_id = ST_ID,
1555 .model_id = ST_M25P20,
1558 .tested = TEST_UNTESTED,
1559 .probe = probe_spi_rdid,
1560 .erase = spi_chip_erase_c7,
1561 .write = spi_chip_write,
1562 .read = spi_chip_read,
1568 .manufacture_id = ST_ID,
1569 .model_id = ST_M25P40,
1572 .tested = TEST_UNTESTED,
1573 .probe = probe_spi_rdid,
1574 .erase = spi_chip_erase_c7,
1575 .write = spi_chip_write,
1576 .read = spi_chip_read,
1581 .name = "M25P40-old",
1582 .manufacture_id = ST_ID,
1583 .model_id = ST_M25P40_RES,
1586 .tested = TEST_UNTESTED,
1587 .probe = probe_spi_res,
1588 .erase = spi_chip_erase_c7,
1589 .write = spi_chip_write,
1590 .read = spi_chip_read,
1596 .manufacture_id = ST_ID,
1597 .model_id = ST_M25P80,
1600 .tested = TEST_UNTESTED,
1601 .probe = probe_spi_rdid,
1602 .erase = spi_chip_erase_c7,
1603 .write = spi_chip_write,
1604 .read = spi_chip_read,
1610 .manufacture_id = ST_ID,
1611 .model_id = ST_M25P16,
1614 .tested = TEST_OK_PREW,
1615 .probe = probe_spi_rdid,
1616 .erase = spi_chip_erase_c7,
1617 .write = spi_chip_write,
1618 .read = spi_chip_read,
1624 .manufacture_id = ST_ID,
1625 .model_id = ST_M25P32,
1628 .tested = TEST_OK_PREW,
1629 .probe = probe_spi_rdid,
1630 .erase = spi_chip_erase_c7,
1631 .write = spi_chip_write,
1632 .read = spi_chip_read,
1638 .manufacture_id = ST_ID,
1639 .model_id = ST_M25P64,
1642 .tested = TEST_UNTESTED,
1643 .probe = probe_spi_rdid,
1644 .erase = spi_chip_erase_c7,
1645 .write = spi_chip_write,
1646 .read = spi_chip_read,
1652 .manufacture_id = ST_ID,
1653 .model_id = ST_M25P128,
1654 .total_size = 16384,
1656 .tested = TEST_UNTESTED,
1657 .probe = probe_spi_rdid,
1658 .erase = spi_chip_erase_c7,
1659 .write = spi_chip_write,
1660 .read = spi_chip_read,
1666 .manufacture_id = ST_ID,
1667 .model_id = ST_M29F002B,
1669 .page_size = 64 * 1024,
1670 .tested = TEST_UNTESTED,
1671 .probe = probe_jedec,
1672 .erase = erase_m29f002,
1673 .write = write_m29f002b,
1678 .name = "M29F002T/NT",
1679 .manufacture_id = ST_ID,
1680 .model_id = ST_M29F002T,
1682 .page_size = 64 * 1024,
1683 .tested = TEST_OK_PREW,
1684 .probe = probe_jedec,
1685 .erase = erase_m29f002,
1686 .write = write_m29f002t,
1692 .manufacture_id = ST_ID,
1693 .model_id = ST_M29F040B,
1695 .page_size = 64 * 1024,
1696 .tested = TEST_OK_PREW,
1697 .probe = probe_29f040b,
1698 .erase = erase_29f040b,
1699 .write = write_29f040b,
1704 .name = "M29F400BT",
1705 .manufacture_id = ST_ID,
1706 .model_id = ST_M29F400BT,
1708 .page_size = 64 * 1024,
1709 .tested = TEST_UNTESTED,
1710 .probe = probe_m29f400bt,
1711 .erase = erase_m29f400bt,
1712 .write = write_coreboot_m29f400bt,
1718 .manufacture_id = ST_ID,
1719 .model_id = ST_M29W010B,
1721 .page_size = 16 * 1024,
1722 .tested = TEST_UNTESTED,
1723 .probe = probe_jedec,
1724 .erase = erase_chip_jedec,
1725 .write = write_jedec,
1731 .manufacture_id = ST_ID,
1732 .model_id = ST_M29W040B,
1734 .page_size = 64 * 1024,
1735 .tested = TEST_UNTESTED,
1736 .probe = probe_jedec,
1737 .erase = erase_chip_jedec,
1738 .write = write_jedec,
1743 .name = "M50FLW040A",
1744 .manufacture_id = ST_ID,
1745 .model_id = ST_M50FLW040A,
1747 .page_size = 64 * 1024,
1748 .tested = TEST_UNTESTED,
1749 .probe = probe_stm50flw0x0x,
1750 .erase = erase_stm50flw0x0x,
1751 .write = write_stm50flw0x0x,
1756 .name = "M50FLW040B",
1757 .manufacture_id = ST_ID,
1758 .model_id = ST_M50FLW040B,
1760 .page_size = 64 * 1024,
1761 .tested = TEST_UNTESTED,
1762 .probe = probe_stm50flw0x0x,
1763 .erase = erase_stm50flw0x0x,
1764 .write = write_stm50flw0x0x,
1769 .name = "M50FLW080A",
1770 .manufacture_id = ST_ID,
1771 .model_id = ST_M50FLW080A,
1773 .page_size = 64 * 1024,
1774 .tested = TEST_OK_PREW,
1775 .probe = probe_stm50flw0x0x,
1776 .erase = erase_stm50flw0x0x,
1777 .write = write_stm50flw0x0x,
1782 .name = "M50FLW080B",
1783 .manufacture_id = ST_ID,
1784 .model_id = ST_M50FLW080B,
1786 .page_size = 64 * 1024,
1787 .tested = TEST_UNTESTED,
1788 .probe = probe_stm50flw0x0x,
1789 .erase = erase_stm50flw0x0x,
1790 .write = write_stm50flw0x0x,
1796 .manufacture_id = ST_ID,
1797 .model_id = ST_M50FW002,
1799 .page_size = 64 * 1024,
1800 .tested = TEST_UNTESTED,
1801 .probe = probe_49lfxxxc,
1809 .manufacture_id = ST_ID,
1810 .model_id = ST_M50FW016,
1812 .page_size = 64 * 1024,
1813 .tested = TEST_UNTESTED,
1814 .probe = probe_82802ab,
1815 .erase = erase_82802ab,
1816 .write = write_82802ab,
1822 .manufacture_id = ST_ID,
1823 .model_id = ST_M50FW040,
1825 .page_size = 64 * 1024,
1826 .tested = TEST_OK_PREW,
1827 .probe = probe_82802ab,
1828 .erase = erase_82802ab,
1829 .write = write_82802ab,
1835 .manufacture_id = ST_ID,
1836 .model_id = ST_M50FW080,
1838 .page_size = 64 * 1024,
1839 .tested = TEST_OK_PREW,
1840 .probe = probe_82802ab,
1841 .erase = erase_82802ab,
1842 .write = write_82802ab,
1847 .name = "M50LPW116",
1848 .manufacture_id = ST_ID,
1849 .model_id = ST_M50LPW116,
1851 .page_size = 64 * 1024,
1852 .tested = TEST_UNTESTED,
1853 .probe = probe_jedec,
1854 .erase = erase_chip_jedec,
1855 .write = write_jedec,
1859 .vendor = "SyncMOS",
1860 .name = "S29C31004T",
1861 .manufacture_id = SYNCMOS_ID,
1862 .model_id = S29C31004T,
1865 .tested = TEST_UNTESTED,
1866 .probe = probe_jedec,
1867 .erase = erase_chip_jedec,
1868 .write = write_49f002,
1872 .vendor = "SyncMOS",
1873 .name = "S29C51001T",
1874 .manufacture_id = SYNCMOS_ID,
1875 .model_id = S29C51001T,
1878 .tested = TEST_UNTESTED,
1879 .probe = probe_jedec,
1880 .erase = erase_chip_jedec,
1881 .write = write_49f002,
1885 .vendor = "SyncMOS",
1886 .name = "S29C51002T",
1887 .manufacture_id = SYNCMOS_ID,
1888 .model_id = S29C51002T,
1891 .tested = TEST_OK_PREW,
1892 .probe = probe_jedec,
1893 .erase = erase_chip_jedec,
1894 .write = write_49f002,
1898 .vendor = "SyncMOS",
1899 .name = "S29C51004T",
1900 .manufacture_id = SYNCMOS_ID,
1901 .model_id = S29C51004T,
1904 .tested = TEST_UNTESTED,
1905 .probe = probe_jedec,
1906 .erase = erase_chip_jedec,
1907 .write = write_49f002,
1911 .vendor = "Winbond",
1913 .manufacture_id = WINBOND_NEX_ID,
1914 .model_id = W_25X10,
1917 .tested = TEST_UNTESTED,
1918 .probe = probe_spi_rdid,
1919 .erase = spi_chip_erase_c7,
1920 .write = spi_chip_write,
1921 .read = spi_chip_read,
1925 .vendor = "Winbond",
1927 .manufacture_id = WINBOND_NEX_ID,
1928 .model_id = W_25X20,
1931 .tested = TEST_UNTESTED,
1932 .probe = probe_spi_rdid,
1933 .erase = spi_chip_erase_c7,
1934 .write = spi_chip_write,
1935 .read = spi_chip_read,
1939 .vendor = "Winbond",
1941 .manufacture_id = WINBOND_NEX_ID,
1942 .model_id = W_25X40,
1945 .tested = TEST_OK_PREW,
1946 .probe = probe_spi_rdid,
1947 .erase = spi_chip_erase_c7,
1948 .write = spi_chip_write,
1949 .read = spi_chip_read,
1953 .vendor = "Winbond",
1955 .manufacture_id = WINBOND_NEX_ID,
1956 .model_id = W_25X80,
1959 .tested = TEST_OK_PREW,
1960 .probe = probe_spi_rdid,
1961 .erase = spi_chip_erase_c7,
1962 .write = spi_chip_write,
1963 .read = spi_chip_read,
1967 .vendor = "Winbond",
1969 .manufacture_id = WINBOND_ID,
1970 .model_id = W_29C011,
1973 .tested = TEST_OK_PREW,
1974 .probe = probe_jedec,
1975 .erase = erase_chip_jedec,
1976 .write = write_jedec,
1980 .vendor = "Winbond",
1982 .manufacture_id = WINBOND_ID,
1983 .model_id = W_29C020C,
1986 .tested = TEST_OK_PREW,
1987 .probe = probe_jedec,
1988 .erase = erase_chip_jedec,
1989 .write = write_jedec,
1993 .vendor = "Winbond",
1995 .manufacture_id = WINBOND_ID,
1996 .model_id = W_29C040P,
1999 .tested = TEST_UNTESTED,
2000 .probe = probe_jedec,
2001 .erase = erase_chip_jedec,
2002 .write = write_jedec,
2006 .vendor = "Winbond",
2008 .manufacture_id = WINBOND_ID,
2009 .model_id = W_29C011,
2012 .tested = TEST_OK_PREW,
2013 .probe = probe_w29ee011,
2014 .erase = erase_chip_jedec,
2015 .write = write_jedec,
2019 .vendor = "Winbond",
2021 .manufacture_id = WINBOND_ID,
2022 .model_id = W_39V040A,
2024 .page_size = 64*1024,
2025 .tested = TEST_UNTESTED,
2026 .probe = probe_jedec,
2027 .erase = erase_chip_jedec,
2028 .write = write_39sf020,
2032 .vendor = "Winbond",
2034 .manufacture_id = WINBOND_ID,
2035 .model_id = W_39V040B,
2037 .page_size = 64*1024,
2038 .tested = TEST_OK_PREW,
2039 .probe = probe_jedec,
2040 .erase = erase_chip_jedec,
2041 .write = write_39sf020,
2045 .vendor = "Winbond",
2047 .manufacture_id = WINBOND_ID,
2050 .page_size = 64*1024,
2051 .tested = TEST_OK_PREW,
2052 .probe = probe_w39v040c,
2053 .erase = erase_w39v040c,
2054 .write = write_w39v040c,
2058 .vendor = "Winbond",
2059 .name = "W39V040FA",
2060 .manufacture_id = WINBOND_ID,
2061 .model_id = W_39V040FA,
2063 .page_size = 64*1024,
2064 .tested = TEST_OK_PREW,
2065 .probe = probe_jedec,
2066 .erase = erase_chip_jedec,
2067 .write = write_39sf020,
2071 .vendor = "Winbond",
2073 .manufacture_id = WINBOND_ID,
2074 .model_id = W_39V080A,
2076 .page_size = 64*1024,
2077 .tested = TEST_OK_PREW,
2078 .probe = probe_jedec,
2079 .erase = erase_chip_jedec,
2080 .write = write_39sf020,
2084 .vendor = "Winbond",
2086 .manufacture_id = WINBOND_ID,
2087 .model_id = W_49F002U,
2090 .tested = TEST_OK_PREW,
2091 .probe = probe_jedec,
2092 .erase = erase_chip_jedec,
2093 .write = write_49f002,
2097 .vendor = "Winbond",
2099 .manufacture_id = WINBOND_ID,
2100 .model_id = W_49V002A,
2103 .tested = TEST_OK_PREW,
2104 .probe = probe_jedec,
2105 .erase = erase_chip_jedec,
2106 .write = write_49f002,
2110 .vendor = "Winbond",
2111 .name = "W49V002FA",
2112 .manufacture_id = WINBOND_ID,
2113 .model_id = W_49V002FA,
2116 .tested = TEST_UNTESTED,
2117 .probe = probe_jedec,
2118 .erase = erase_chip_jedec,
2119 .write = write_49f002,
2123 .vendor = "Winbond",
2124 .name = "W39V080FA",
2125 .manufacture_id = WINBOND_ID,
2126 .model_id = W_39V080FA,
2128 .page_size = 64*1024,
2129 .tested = TEST_OK_PREW,
2130 .probe = probe_winbond_fwhub,
2131 .erase = erase_winbond_fwhub,
2132 .write = write_winbond_fwhub,
2136 .vendor = "Winbond",
2137 .name = "W39V080FA (dual mode)",
2138 .manufacture_id = WINBOND_ID,
2139 .model_id = W_39V080FA_DM,
2141 .page_size = 64*1024,
2142 .tested = TEST_UNTESTED,
2143 .probe = probe_winbond_fwhub,
2144 .erase = erase_winbond_fwhub,
2145 .write = write_winbond_fwhub,
2150 .name = "unknown Atmel SPI chip",
2151 .manufacture_id = ATMEL_ID,
2152 .model_id = GENERIC_DEVICE_ID,
2155 .tested = TEST_UNTESTED,
2156 .probe = probe_spi_rdid,
2163 .name = "unknown EON SPI chip",
2164 .manufacture_id = EON_ID_NOPREFIX,
2165 .model_id = GENERIC_DEVICE_ID,
2168 .tested = TEST_UNTESTED,
2169 .probe = probe_spi_rdid,
2175 .vendor = "Macronix",
2176 .name = "unknown Macronix SPI chip",
2177 .manufacture_id = MX_ID,
2178 .model_id = GENERIC_DEVICE_ID,
2181 .tested = TEST_UNTESTED,
2182 .probe = probe_spi_rdid,
2189 .name = "unknown PMC SPI chip",
2190 .manufacture_id = PMC_ID,
2191 .model_id = GENERIC_DEVICE_ID,
2194 .tested = TEST_UNTESTED,
2195 .probe = probe_spi_rdid,
2202 .name = "unknown SST SPI chip",
2203 .manufacture_id = SST_ID,
2204 .model_id = GENERIC_DEVICE_ID,
2207 .tested = TEST_UNTESTED,
2208 .probe = probe_spi_rdid,
2215 .name = "unknown ST SPI chip",
2216 .manufacture_id = ST_ID,
2217 .model_id = GENERIC_DEVICE_ID,
2220 .tested = TEST_UNTESTED,
2221 .probe = probe_spi_rdid,