summaryrefslogtreecommitdiffstats
path: root/flashchips.c
diff options
context:
space:
mode:
authorAndrew Morgan <ziltro@ziltro.com>2012-08-13 23:43:46 +0000
committerStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>2012-08-13 23:43:46 +0000
commit8dd97f9c9e01a01cfd84ebbeb1bb936b55cb017a (patch)
tree7c08a8b88b7a65ce36e80a451f2ffd80ce5655e4 /flashchips.c
parentb98f6eb3aca7a1fc00e52160bdfe40ff04b23dfd (diff)
downloadflashrom-8dd97f9c9e01a01cfd84ebbeb1bb936b55cb017a.tar.gz
flashrom-8dd97f9c9e01a01cfd84ebbeb1bb936b55cb017a.tar.bz2
flashrom-8dd97f9c9e01a01cfd84ebbeb1bb936b55cb017a.zip
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 this accelerates the deletion of this field... haha. Corresponding to flashrom svn r1572. Signed-off-by: Andrew Morgan <ziltro@ziltro.com> Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Diffstat (limited to 'flashchips.c')
-rw-r--r--flashchips.c92
1 files changed, 90 insertions, 2 deletions
diff --git a/flashchips.c b/flashchips.c
index b09727c86..789f17f90 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,