mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 15:12:36 +02:00
Add definitions for the following chips
Mosel Vitelic Corporation: V29C51000B, V29C51000T, V29C51400B, V29C51400T, V29LC51000, V29LC51001, V29LC51002 SyncMOS / Mosel Vitelic Corporation: {F,S,V}29C51001B, {F,S,V}29C51001T, {F,S,V}29C51002B, {F,S,V}29C51002T, {F,S,V}29C51004B, {F,S,V}29C51004T, {V,S}29C31004B, {V,S}29C31004T Modify earlier definitions of S29C31004T/S29C51001T/S29C51002T/S29C51004T to change name and correct page size. Corresponding to flashrom svn r1124. Signed-off-by: Mattias Mattsson <vitplister@gmail.com> Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
This commit is contained in:
parent
701452913c
commit
4c06650aff
374
flashchips.c
374
flashchips.c
@ -3878,6 +3878,188 @@ struct flashchip flashchips[] = {
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "MoselVitelic",
|
||||
.name = "V29C51000B",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = MVC_V29C51000B,
|
||||
.total_size = 64,
|
||||
.page_size = 512,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
.probe_timing = TIMING_ZERO,
|
||||
.block_erasers =
|
||||
{
|
||||
{
|
||||
.eraseblocks = { {512, 128} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {64 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "MoselVitelic",
|
||||
.name = "V29C51000T",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = MVC_V29C51000T,
|
||||
.total_size = 64,
|
||||
.page_size = 512,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
.probe_timing = TIMING_ZERO,
|
||||
.block_erasers =
|
||||
{
|
||||
{
|
||||
.eraseblocks = { {512, 128} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {64 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "MoselVitelic",
|
||||
.name = "V29C51400B",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = MVC_V29C51400B,
|
||||
.total_size = 512,
|
||||
.page_size = 1024,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
.probe_timing = TIMING_ZERO,
|
||||
.block_erasers =
|
||||
{
|
||||
{
|
||||
.eraseblocks = { {1024, 512} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {512 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "MoselVitelic",
|
||||
.name = "V29C51400T",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = MVC_V29C51400T,
|
||||
.total_size = 512,
|
||||
.page_size = 1024,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
.probe_timing = TIMING_ZERO,
|
||||
.block_erasers =
|
||||
{
|
||||
{
|
||||
.eraseblocks = { {1024, 512} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {512 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "MoselVitelic",
|
||||
.name = "V29LC51000",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = MVC_V29LC51000,
|
||||
.total_size = 64,
|
||||
.page_size = 512,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
.probe_timing = TIMING_ZERO,
|
||||
.block_erasers =
|
||||
{
|
||||
{
|
||||
.eraseblocks = { {512, 128} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {64 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "MoselVitelic",
|
||||
.name = "V29LC51001",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = MVC_V29LC51001,
|
||||
.total_size = 128,
|
||||
.page_size = 512,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
.probe_timing = TIMING_ZERO,
|
||||
.block_erasers =
|
||||
{
|
||||
{
|
||||
.eraseblocks = { {512, 256} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {128 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "MoselVitelic",
|
||||
.name = "V29LC51002",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = MVC_V29LC51002,
|
||||
.total_size = 256,
|
||||
.page_size = 512,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
.probe_timing = TIMING_ZERO,
|
||||
.block_erasers =
|
||||
{
|
||||
{
|
||||
.eraseblocks = { {512, 512} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {256 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "Numonyx",
|
||||
.name = "M25PE10",
|
||||
@ -6382,39 +6564,13 @@ struct flashchip flashchips[] = {
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "SyncMOS",
|
||||
.name = "S29C31004T",
|
||||
.vendor = "SyncMOS/MoselVitelic",
|
||||
.name = "{F,S,V}29C51001B",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_ID,
|
||||
.model_id = S29C31004T,
|
||||
.total_size = 512,
|
||||
.page_size = 128,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
.probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */
|
||||
.block_erasers =
|
||||
{
|
||||
{
|
||||
.eraseblocks = { {1 * 1024, 512} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {512 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "SyncMOS",
|
||||
.name = "S29C51001T",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_ID,
|
||||
.model_id = S29C51001T,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = SM_MVC_29C51001B,
|
||||
.total_size = 128,
|
||||
.page_size = 128,
|
||||
.page_size = 512,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
@ -6434,15 +6590,41 @@ struct flashchip flashchips[] = {
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "SyncMOS",
|
||||
.name = "S29C51002T",
|
||||
.vendor = "SyncMOS/MoselVitelic",
|
||||
.name = "{F,S,V}29C51001T",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_ID,
|
||||
.model_id = S29C51002T,
|
||||
.total_size = 256,
|
||||
.page_size = 128,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = SM_MVC_29C51001T,
|
||||
.total_size = 128,
|
||||
.page_size = 512,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_OK_PRW,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
.probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */
|
||||
.block_erasers =
|
||||
{
|
||||
{
|
||||
.eraseblocks = { {512, 256} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {128 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "SyncMOS/MoselVitelic",
|
||||
.name = "{F,S,V}29C51002B",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = SM_MVC_29C51002B,
|
||||
.total_size = 256,
|
||||
.page_size = 512,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
.probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */
|
||||
.block_erasers =
|
||||
@ -6460,13 +6642,39 @@ struct flashchip flashchips[] = {
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "SyncMOS",
|
||||
.name = "S29C51004T",
|
||||
.vendor = "SyncMOS/MoselVitelic",
|
||||
.name = "{F,S,V}29C51002T",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_ID,
|
||||
.model_id = S29C51004T,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = SM_MVC_29C51002T,
|
||||
.total_size = 256,
|
||||
.page_size = 512,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_OK_PR,
|
||||
.probe = probe_jedec,
|
||||
.probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */
|
||||
.block_erasers =
|
||||
{
|
||||
{
|
||||
.eraseblocks = { {512, 512} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {256 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "SyncMOS/MoselVitelic",
|
||||
.name = "{F,S,V}29C51004B",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = SM_MVC_29C51004B,
|
||||
.total_size = 512,
|
||||
.page_size = 128,
|
||||
.page_size = 1024,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
@ -6474,7 +6682,85 @@ struct flashchip flashchips[] = {
|
||||
.block_erasers =
|
||||
{
|
||||
{
|
||||
.eraseblocks = { {1 * 1024, 512} },
|
||||
.eraseblocks = { {1024, 512} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {512 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "SyncMOS/MoselVitelic",
|
||||
.name = "{F,S,V}29C51004T",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = SM_MVC_29C51004T,
|
||||
.total_size = 512,
|
||||
.page_size = 1024,
|
||||
.feature_bits = FEATURE_EITHER_RESET,
|
||||
.tested = TEST_UNTESTED,
|
||||
.probe = probe_jedec,
|
||||
.probe_timing = TIMING_ZERO,
|
||||
.block_erasers =
|
||||
{
|
||||
{
|
||||
.eraseblocks = { {1024, 512} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {512 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "SyncMOS/MoselVitelic",
|
||||
.name = "{S,V}29C31004B",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = SM_MVC_29C31004B,
|
||||
.total_size = 512,
|
||||
.page_size = 1024,
|
||||
.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, 512} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {512 * 1024, 1} },
|
||||
.block_erase = erase_chip_block_jedec,
|
||||
},
|
||||
},
|
||||
.write = write_jedec_1,
|
||||
.read = read_memmapped,
|
||||
},
|
||||
|
||||
{
|
||||
.vendor = "SyncMOS/MoselVitelic",
|
||||
.name = "{S,V}29C31004T",
|
||||
.bustype = CHIP_BUSTYPE_PARALLEL,
|
||||
.manufacture_id = SYNCMOS_MVC_ID,
|
||||
.model_id = SM_MVC_29C31004T,
|
||||
.total_size = 512,
|
||||
.page_size = 1024,
|
||||
.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, 512} },
|
||||
.block_erase = erase_sector_jedec,
|
||||
}, {
|
||||
.eraseblocks = { {512 * 1024, 1} },
|
||||
|
21
flashchips.h
21
flashchips.h
@ -514,11 +514,22 @@
|
||||
#define ST_M29W040B 0xE3
|
||||
#define ST_M29W512B 0x27
|
||||
|
||||
#define SYNCMOS_ID 0x40 /* SyncMOS and Mosel Vitelic */
|
||||
#define S29C51001T 0x01
|
||||
#define S29C51002T 0x02
|
||||
#define S29C51004T 0x03
|
||||
#define S29C31004T 0x63
|
||||
#define SYNCMOS_MVC_ID 0x40 /* SyncMOS (SM) and Mosel Vitelic Corporation (MVC) */
|
||||
#define MVC_V29C51000T 0x00
|
||||
#define MVC_V29C51400T 0x13
|
||||
#define MVC_V29LC51000 0x20
|
||||
#define MVC_V29LC51001 0x60
|
||||
#define MVC_V29LC51002 0x82
|
||||
#define MVC_V29C51000B 0xA0
|
||||
#define MVC_V29C51400B 0xB3
|
||||
#define SM_MVC_29C51001T 0x01 /* Identical chips: {F,S,V}29C51001T */
|
||||
#define SM_MVC_29C51002T 0x02 /* Identical chips: {F,S,V}29C51002T */
|
||||
#define SM_MVC_29C51004T 0x03 /* Identical chips: {F,S,V}29C51004T */
|
||||
#define SM_MVC_29C31004T 0x63 /* Identical chips: {S,V}29C31004T */
|
||||
#define SM_MVC_29C31004B 0x73 /* Identical chips: {S,V}29C31004B */
|
||||
#define SM_MVC_29C51001B 0xA1 /* Identical chips: {F,S,V}29C51001B */
|
||||
#define SM_MVC_29C51002B 0xA2 /* Identical chips: {F,S,V}29C51002B */
|
||||
#define SM_MVC_29C51004B 0xA3 /* Identical chips: {F,S,V}29C51004B */
|
||||
|
||||
#define TI_ID 0x97 /* Texas Instruments */
|
||||
#define TI_OLD_ID 0x01 /* TI chips from last century */
|
||||
|
Loading…
x
Reference in New Issue
Block a user