diff options
author | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2010-07-16 22:07:20 +0000 |
---|---|---|
committer | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2010-07-16 22:07:20 +0000 |
commit | 4e93dee9ef2a875a3388259ff38e7df01e3b926f (patch) | |
tree | 5bab2b53c558ffa2400ba9708659c2b9e049168a /flashchips.c | |
parent | e13b5f377a59e6d6a72dc88acf2a13ad4fde7be8 (diff) | |
download | flashrom-4e93dee9ef2a875a3388259ff38e7df01e3b926f.zip flashrom-4e93dee9ef2a875a3388259ff38e7df01e3b926f.tar.gz |
Mark Fujitsu MBM29F400BC write as broken (implicit eraseblock layout in write)
Use full-chip write function on Fujitsu MBM29F400TC and ST M29F400BT.
Add support for ST M29F400BB.
Corresponding to flashrom svn r1083.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Michael Karcher <flashrom@mkarcher.dialup.fu-berlin.de>
Diffstat (limited to 'flashchips.c')
-rw-r--r-- | flashchips.c | 41 |
1 files changed, 36 insertions, 5 deletions
diff --git a/flashchips.c b/flashchips.c index 354bd95..4c4305a 100644 --- a/flashchips.c +++ b/flashchips.c @@ -2382,7 +2382,7 @@ struct flashchip flashchips[] = { .total_size = 512, .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET, - .tested = TEST_UNTESTED, + .tested = TEST_BAD_WRITE, /* Implicit eraseblock layout in write_m29f400bt is broken. */ .probe = probe_m29f400bt, .probe_timing = TIMING_IGNORED, /* routine don't use probe_timing (m29f400bt.c) */ .block_erasers = @@ -2400,7 +2400,7 @@ struct flashchip flashchips[] = { .block_erase = block_erase_chip_m29f400bt, }, }, - .write = write_coreboot_m29f400bt, + .write = NULL, .read = read_memmapped, }, @@ -2431,7 +2431,7 @@ struct flashchip flashchips[] = { .block_erase = block_erase_chip_m29f400bt, }, }, - .write = write_coreboot_m29f400bt, + .write = write_m29f400bt, .read = read_memmapped, }, @@ -5278,7 +5278,7 @@ struct flashchip flashchips[] = { .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, .probe = probe_jedec, - .probe_timing = TIMING_IGNORED, /* routine don't use probe_timing (am29f040b.c) */ + .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (am29f040b.c) */ .block_erasers = { { @@ -5296,6 +5296,37 @@ struct flashchip flashchips[] = { { /* FIXME: this has WORD/BYTE sequences; 2AA for word, 555 for byte */ .vendor = "ST", + .name = "M29F400BB", + .bustype = CHIP_BUSTYPE_PARALLEL, + .manufacture_id = ST_ID, + .model_id = ST_M29F400BB, + .total_size = 512, + .page_size = 64 * 1024, + .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET, + .tested = TEST_BAD_WRITE, /* Implicit eraseblock layout in write_m29f400bt is broken. */ + .probe = probe_m29f400bt, + .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */ + .block_erasers = + { + { + .eraseblocks = { + {16 * 1024, 1}, + {8 * 1024, 2}, + {32 * 1024, 1}, + {64 * 1024, 7}, + }, + .block_erase = block_erase_m29f400bt, + }, { + .eraseblocks = { {512 * 1024, 1} }, + .block_erase = block_erase_chip_m29f400bt, + } + }, + .write = NULL, + .read = read_memmapped, + }, + { + /* FIXME: this has WORD/BYTE sequences; 2AA for word, 555 for byte */ + .vendor = "ST", .name = "M29F400BT", .bustype = CHIP_BUSTYPE_PARALLEL, .manufacture_id = ST_ID, @@ -5321,7 +5352,7 @@ struct flashchip flashchips[] = { .block_erase = block_erase_chip_m29f400bt, } }, - .write = write_coreboot_m29f400bt, + .write = write_m29f400bt, .read = read_memmapped, }, |