1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-07-02 06:23:18 +02:00

Add support for Winbond W39F010/W39L010/W39L020

W39F010 is a 128kB parallel 5V flash chip, 16k bootblocks.
W39L010 is a 128kB parallel 3.3V flash chip, 8k bootblocks.
W39L020 is a 256kB parallel 3.3V flash chip, 64k/16k bootblocks.

The W39F010 code was tested with a satasii programmer. The first write
attempt after an erase returned with verify failure, but the second
write attempt was succesful:
http://paste.flashrom.org/view.php?id=1418

Corresponding to flashrom svn r1620.

Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
This commit is contained in:
Kyösti Mälkki
2012-10-28 01:50:08 +00:00
committed by Stefan Tauner
parent 78ffbeaa02
commit c31243e173
4 changed files with 148 additions and 0 deletions

View File

@ -9434,6 +9434,93 @@ const struct flashchip flashchips[] = {
.voltage = {4500, 5500},
},
{
.vendor = "Winbond",
.name = "W39F010",
.bustype = BUS_PARALLEL,
.manufacture_id = WINBOND_ID,
.model_id = WINBOND_W39F010,
.total_size = 128,
.page_size = 4 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
.tested = TEST_OK_PREW,
.probe = probe_jedec,
.probe_timing = 10,
.block_erasers =
{
{
.eraseblocks = { {4 * 1024, 32} },
.block_erase = erase_block_jedec,
}, {
.eraseblocks = { {128 * 1024, 1} },
.block_erase = erase_chip_block_jedec,
}
},
.printlock = printlock_w39f010,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {4500, 5500},
},
{
.vendor = "Winbond",
.name = "W39L010",
.bustype = BUS_PARALLEL,
.manufacture_id = WINBOND_ID,
.model_id = WINBOND_W39L010,
.total_size = 128,
.page_size = 4 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
.probe = probe_jedec,
.probe_timing = 10,
.block_erasers =
{
{
.eraseblocks = { {4 * 1024, 32} },
.block_erase = erase_block_jedec,
}, {
.eraseblocks = { {128 * 1024, 1} },
.block_erase = erase_chip_block_jedec,
}
},
.printlock = printlock_w39l010,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
},
{
.vendor = "Winbond",
.name = "W39L020",
.bustype = BUS_PARALLEL,
.manufacture_id = WINBOND_ID,
.model_id = WINBOND_W39L020,
.total_size = 256,
.page_size = 4 * 1024,
.feature_bits = FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
.probe = probe_jedec,
.probe_timing = 10,
.block_erasers =
{
{
.eraseblocks = { {4 * 1024, 64} },
.block_erase = erase_block_jedec,
}, {
.eraseblocks = { {64 * 1024, 4} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {256 * 1024, 1} },
.block_erase = erase_chip_block_jedec,
}
},
.printlock = printlock_w39l020,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
},
{
.vendor = "Winbond",
.name = "W39L040",