Add or refine support for a number of EON flash chips
Fix the vendor ID of EN25B05, EN25B10, EN25B20, EN25B40, EN25B80,
EN25B16, EN25B32, EN25B64 EN25F40, EN25F80, EN25F16.
Add support for EN25P05, EN25P10, EN25P20, EN25P40, EN25P80, EN25P16,
EN25P32, EN25P64 EN25D16 EN25F05, EN25F10, EN25F20, EN25F32
Corresponding to flashrom svn r592.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
diff --git a/flash.h b/flash.h
index ac0a837..61d430b 100644
--- a/flash.h
+++ b/flash.h
@@ -4,6 +4,7 @@
* Copyright (C) 2000 Silicon Integrated System Corporation
* Copyright (C) 2000 Ronald G. Minnich <rminnich@gmail.com>
* Copyright (C) 2005-2007 coresystems GmbH <stepan@coresystems.de>
+ * Copyright (C) 2006-2009 Carl-Daniel Hailfinger
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -353,17 +354,22 @@
*/
#define EON_ID 0x7F1C /* EON Silicon Devices */
#define EON_ID_NOPREFIX 0x1C /* EON, missing 0x7F prefix */
-#define EN_25B05 0x2010 /* 2^19 kbit or 2^16 kByte */
-#define EN_25B10 0x2011
-#define EN_25B20 0x2012
-#define EN_25B40 0x2013
-#define EN_25B80 0x2014
-#define EN_25B16 0x2015
-#define EN_25B32 0x2016
-#define EN_25B64 0x2017
+#define EN_25B05 0x2010 /* also P05, 2^19 kbit or 2^16 kByte */
+#define EN_25B10 0x2011 /* also P10 */
+#define EN_25B20 0x2012 /* also P20 */
+#define EN_25B40 0x2013 /* also P40 */
+#define EN_25B80 0x2014 /* also P80 */
+#define EN_25B16 0x2015 /* also P16 */
+#define EN_25B32 0x2016 /* also P32 */
+#define EN_25B64 0x2017 /* also P64 */
+#define EN_25D16 0x3015
+#define EN_25F05 0x3110
+#define EN_25F10 0x3111
+#define EN_25F20 0x3112
#define EN_25F40 0x3113
#define EN_25F80 0x3114
#define EN_25F16 0x3115
+#define EN_25F32 0x3116
#define EN_29F512 0x7F21
#define EN_29F010 0x7F20
#define EN_29F040A 0x7F04
diff --git a/flashchips.c b/flashchips.c
index c668a5b..8dbad92 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -780,7 +780,7 @@
.vendor = "Eon",
.name = "EN25B05",
.bustype = CHIP_BUSTYPE_SPI,
- .manufacture_id = EON_ID,
+ .manufacture_id = EON_ID_NOPREFIX,
.model_id = EN_25B05,
.total_size = 64,
.page_size = 256,
@@ -796,7 +796,7 @@
.vendor = "Eon",
.name = "EN25B10",
.bustype = CHIP_BUSTYPE_SPI,
- .manufacture_id = EON_ID,
+ .manufacture_id = EON_ID_NOPREFIX,
.model_id = EN_25B10,
.total_size = 128,
.page_size = 256,
@@ -812,7 +812,7 @@
.vendor = "Eon",
.name = "EN25B20",
.bustype = CHIP_BUSTYPE_SPI,
- .manufacture_id = EON_ID,
+ .manufacture_id = EON_ID_NOPREFIX,
.model_id = EN_25B20,
.total_size = 256,
.page_size = 256,
@@ -828,7 +828,7 @@
.vendor = "Eon",
.name = "EN25B40",
.bustype = CHIP_BUSTYPE_SPI,
- .manufacture_id = EON_ID,
+ .manufacture_id = EON_ID_NOPREFIX,
.model_id = EN_25B40,
.total_size = 512,
.page_size = 256,
@@ -844,7 +844,7 @@
.vendor = "Eon",
.name = "EN25B80",
.bustype = CHIP_BUSTYPE_SPI,
- .manufacture_id = EON_ID,
+ .manufacture_id = EON_ID_NOPREFIX,
.model_id = EN_25B80,
.total_size = 1024,
.page_size = 256,
@@ -860,7 +860,7 @@
.vendor = "Eon",
.name = "EN25B16",
.bustype = CHIP_BUSTYPE_SPI,
- .manufacture_id = EON_ID,
+ .manufacture_id = EON_ID_NOPREFIX,
.model_id = EN_25B16,
.total_size = 2048,
.page_size = 256,
@@ -876,7 +876,7 @@
.vendor = "Eon",
.name = "EN25B32",
.bustype = CHIP_BUSTYPE_SPI,
- .manufacture_id = EON_ID,
+ .manufacture_id = EON_ID_NOPREFIX,
.model_id = EN_25B32,
.total_size = 4096,
.page_size = 256,
@@ -892,7 +892,7 @@
.vendor = "Eon",
.name = "EN25B64",
.bustype = CHIP_BUSTYPE_SPI,
- .manufacture_id = EON_ID,
+ .manufacture_id = EON_ID_NOPREFIX,
.model_id = EN_25B64,
.total_size = 8192,
.page_size = 256,
@@ -906,9 +906,73 @@
{
.vendor = "Eon",
+ .name = "EN25D16",
+ .bustype = CHIP_BUSTYPE_SPI,
+ .manufacture_id = EON_ID_NOPREFIX,
+ .model_id = EN_25D16,
+ .total_size = 2048,
+ .page_size = 256,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .erase = spi_chip_erase_60_c7,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read,
+ },
+
+ {
+ .vendor = "Eon",
+ .name = "EN25F05",
+ .bustype = CHIP_BUSTYPE_SPI,
+ .manufacture_id = EON_ID_NOPREFIX,
+ .model_id = EN_25F05,
+ .total_size = 64,
+ .page_size = 256,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .erase = spi_chip_erase_60_c7,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read,
+ },
+
+ {
+ .vendor = "Eon",
+ .name = "EN25F10",
+ .bustype = CHIP_BUSTYPE_SPI,
+ .manufacture_id = EON_ID_NOPREFIX,
+ .model_id = EN_25F10,
+ .total_size = 128,
+ .page_size = 256,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .erase = spi_chip_erase_60_c7,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read,
+ },
+
+ {
+ .vendor = "Eon",
+ .name = "EN25F20",
+ .bustype = CHIP_BUSTYPE_SPI,
+ .manufacture_id = EON_ID_NOPREFIX,
+ .model_id = EN_25F20,
+ .total_size = 256,
+ .page_size = 256,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .erase = spi_chip_erase_60_c7,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read,
+ },
+
+ {
+ .vendor = "Eon",
.name = "EN25F40",
.bustype = CHIP_BUSTYPE_SPI,
- .manufacture_id = EON_ID,
+ .manufacture_id = EON_ID_NOPREFIX,
.model_id = EN_25F40,
.total_size = 512,
.page_size = 256,
@@ -924,7 +988,7 @@
.vendor = "Eon",
.name = "EN25F80",
.bustype = CHIP_BUSTYPE_SPI,
- .manufacture_id = EON_ID,
+ .manufacture_id = EON_ID_NOPREFIX,
.model_id = EN_25F80,
.total_size = 1024,
.page_size = 256,
@@ -940,7 +1004,7 @@
.vendor = "Eon",
.name = "EN25F16",
.bustype = CHIP_BUSTYPE_SPI,
- .manufacture_id = EON_ID,
+ .manufacture_id = EON_ID_NOPREFIX,
.model_id = EN_25F16,
.total_size = 2048,
.page_size = 256,
@@ -953,6 +1017,22 @@
},
{
+ .vendor = "Eon",
+ .name = "EN25F32",
+ .bustype = CHIP_BUSTYPE_SPI,
+ .manufacture_id = EON_ID_NOPREFIX,
+ .model_id = EN_25F32,
+ .total_size = 4096,
+ .page_size = 256,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .erase = spi_chip_erase_60_c7,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read,
+ },
+
+ {
.vendor = "EON",
.name = "EN29F002(A)(N)B",
.bustype = CHIP_BUSTYPE_PARALLEL,