summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstefanct <stefanct@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2012-08-13 23:43:46 +0000
committerstefanct <stefanct@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2012-08-13 23:43:46 +0000
commit5c5da4d097854f17adc9690727a1435de38266c7 (patch)
tree7c08a8b88b7a65ce36e80a451f2ffd80ce5655e4
parentd421f26ca6d6fc0f88f70d828d97028d3b382213 (diff)
downloadflashrom-5c5da4d097854f17adc9690727a1435de38266c7.tar.gz
Add support for Atmel AT49(H)F010, AT49F080 and AT49F080T.
Also, alter the page size of the other family members to indicate that it is unused. Maybe we this accelerates the deletion of this field... haha. Signed-off-by: Andrew Morgan <ziltro@ziltro.com> Signed-off-by: Stefan Tauner <stefan.tauner@student.tuwien.ac.at> Acked-by: Stefan Tauner <stefan.tauner@student.tuwien.ac.at> git-svn-id: https://code.coreboot.org/svn/flashrom/trunk@1572 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--flashchips.c92
-rw-r--r--flashchips.h3
2 files changed, 93 insertions, 2 deletions
diff --git a/flashchips.c b/flashchips.c
index b09727c..789f17f 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -2317,12 +2317,37 @@ const struct flashchip flashchips[] = {
{
.vendor = "Atmel",
+ .name = "AT49(H)F010",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ATMEL_ID,
+ .model_id = ATMEL_AT49F010,
+ .total_size = 128,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_EITHER_RESET,
+ .tested = TEST_OK_PREW,
+ .probe = probe_jedec,
+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ }
+ },
+ .printlock = printlock_at49f,
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {4500, 5500},
+ },
+
+ {
+ .vendor = "Atmel",
.name = "AT49F020",
.bustype = BUS_PARALLEL,
.manufacture_id = ATMEL_ID,
.model_id = ATMEL_AT49F020,
.total_size = 256,
- .page_size = 256,
+ .page_size = 0, /* unused */
.feature_bits = FEATURE_EITHER_RESET,
.tested = TEST_OK_PRE,
.probe = probe_jedec,
@@ -2353,7 +2378,7 @@ const struct flashchip flashchips[] = {
.manufacture_id = ATMEL_ID,
.model_id = ATMEL_AT49F040,
.total_size = 512,
- .page_size = 512,
+ .page_size = 0, /* unused */
.feature_bits = FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
.probe = probe_jedec,
@@ -2379,6 +2404,69 @@ const struct flashchip flashchips[] = {
{
.vendor = "Atmel",
+ .name = "AT49F080",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ATMEL_ID,
+ .model_id = ATMEL_AT49F080,
+ .total_size = 1024,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_EITHER_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec,
+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ }
+ /* Chip features an optional permanent write protection
+ * of the first 16 kB. The erase function is the same as
+ * above, but 00000H to 03FFFH will not be erased.
+ * FIXME: add another eraser when partial erasers are
+ * supported.
+ */
+ },
+ .printlock = printlock_at49f,
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {4500, 5500},
+ },
+
+ {
+ /* 'top' version of AT49F080. equal in all aspects but the boot block address */
+ .vendor = "Atmel",
+ .name = "AT49F080T",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ATMEL_ID,
+ .model_id = ATMEL_AT49F080T,
+ .total_size = 1024,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_EITHER_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec,
+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ }
+ /* Chip features an optional permanent write protection
+ * of the first 16 kB. The erase function is the same as
+ * above, but FC000H to FFFFFH will not be erased.
+ * FIXME: add another eraser when partial erasers are
+ * supported.
+ */
+ },
+ .printlock = printlock_at49f,
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {4500, 5500},
+ },
+
+ {
+ .vendor = "Atmel",
.name = "AT49LH002",
.bustype = BUS_LPC | BUS_FWH, /* A/A Mux */
.manufacture_id = ATMEL_ID,
diff --git a/flashchips.h b/flashchips.h
index 0ecb5f3..0fe2cc4 100644
--- a/flashchips.h
+++ b/flashchips.h
@@ -187,8 +187,11 @@
#define ATMEL_AT49F002N 0x07 /* for AT49F002(N) */
#define ATMEL_AT49LH002 0xE9
#define ATMEL_AT49F002NT 0x08 /* for AT49F002(N)T */
+#define ATMEL_AT49F010 0x17 /* Same as AT49HF010 */
#define ATMEL_AT49F020 0x0B
#define ATMEL_AT49F040 0x13
+#define ATMEL_AT49F080 0x23
+#define ATMEL_AT49F080T 0x27
/* Bright Microelectronics has the same manufacturer ID as Hyundai... */
#define BRIGHT_ID 0xAD /* Bright Microelectronics */