flashrom: Add AMIC A29002
authorAndreas Thienemann <andreas@bawue.net>
Sun, 6 Jul 2008 17:35:30 +0000 (17:35 +0000)
committerPeter Stuge <peter@stuge.se>
Sun, 6 Jul 2008 17:35:30 +0000 (17:35 +0000)
This patch adds support to the AMIC A29002 chip in its top and bottom
configuration to flashrom. Additionally, the alphabetic order of the
AMIC chips was fixed.

The datasheet is at <http://www.amictechnology.com/pdf/A29002.pdf>.

A29002T PREW functionality was tested and works.

This flash chip has asymmetric sector layout so it is important to use the
mx29f002 driver, which does chip erase before writing, rather than am29f040b,
which uses sector erase.

Signed-off-by: Andreas Thienemann <andreas@bawue.net>
Acked-by: Peter Stuge <peter@stuge.se>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3415 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

util/flashrom/flash.h
util/flashrom/flashchips.c

index edd507f0c9766276efe17e1b9a53651c950951a6..6910921c5ed4b83671cbd03906c438207ec2f274 100644 (file)
@@ -119,7 +119,6 @@ extern struct flashchip flashchips[];
 #define AMIC_ID                        0x7F37  /* AMIC */
 #define AMIC_ID_NOPREFIX       0x37    /* AMIC */
 #define AMIC_A25L40P           0x2013
-#define AMIC_A29040B           0x86
 #define AMIC_A49LF040A         0x9d
 
 #define ASD_ID                 0x25    /* ASD, not listed in JEP106W */
index 389a309a592b76c1add3fd242dbfb2633da87756..2845a0237830ad8e8666b941595f38684ecb097c 100644 (file)
@@ -42,8 +42,10 @@ struct flashchip flashchips[] = {
        {"Atmel",       "AT49F002(N)T",         ATMEL_ID,       AT_49F002NT,            256,    256,            TEST_UNTESTED,  probe_jedec,            erase_chip_jedec,               write_jedec},
        {"Atmel",       "AT25DF321",            ATMEL_ID,       AT_25DF321,             4096,   256,            TEST_OK_PREW,   probe_spi_rdid,         spi_chip_erase_c7,      spi_chip_write, spi_chip_read},
        {"AMIC",        "A25L40P",              AMIC_ID,        AMIC_A25L40P,           512,    256,            TEST_OK_PREW,   probe_spi_rdid4,        spi_chip_erase_c7,      spi_chip_write, spi_chip_read},
+       {"AMIC",        "A29002B",              0x37,           0x0d,                   256,    64 * 1024,      TEST_UNTESTED,  probe_29f002,           erase_29f002,                   write_29f002},
+       {"AMIC",        "A29002T",              0x37,           0x8c,                   256,    64 * 1024,      TEST_OK_PREW,   probe_29f002,           erase_29f002,                   write_29f002},
+       {"AMIC",        "A29040B",              0x37,           0x86,                   512,    64 * 1024,      TEST_OK_PR,     probe_29f040b,          erase_29f040b,                  write_29f040b},
        {"AMIC",        "A49LF040A",            AMIC_ID_NOPREFIX, AMIC_A49LF040A,       512,    64 * 1024,      TEST_OK_PREW,   probe_49fl00x,          erase_49fl00x,                  write_49fl00x},
-       {"AMIC",        "A29040B",              AMIC_ID_NOPREFIX, AMIC_A29040B,         512,    64 * 1024,      TEST_OK_PR,     probe_29f040b,          erase_29f040b,                  write_29f040b},
        {"EMST",        "F49B002UA",            EMST_ID,        EMST_F49B002UA,         256,    4096,           TEST_UNTESTED,  probe_jedec,            erase_chip_jedec,               write_49f002},
        {"EON",         "EN29F002(A)(N)B",      EON_ID,         EN_29F002B,             256,    256,            TEST_UNTESTED,  probe_jedec,            erase_chip_jedec,               write_jedec},
        {"EON",         "EN29F002(A)(N)T",      EON_ID,         EN_29F002T,             256,    256,            TEST_UNTESTED,  probe_jedec,            erase_chip_jedec,               write_jedec},