From e807d82e7dae21a59df2c997227300904f9d2e44 Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Mon, 31 Jul 2006 23:37:17 +0000 Subject: Add support for SST39SF040, SST39SF010A and W39V040B Corresponding to flashrom svn r58 and coreboot v2 svn r2354. --- flash.h | 15 +++++++++------ flash_enable.c | 1 + flashchips.c | 6 ++++++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/flash.h b/flash.h index 6ec8e311..9375e575 100644 --- a/flash.h +++ b/flash.h @@ -38,11 +38,13 @@ extern struct flashchip flashchips[]; #define SHARP_ID 0xB0 #define SHARP_LHF00L04 0xCF -#define SST_ID 0xBF /* SST Manufacturer ID code */ -#define SST_29EE020A 0x10 /* SST 29EE020 device code */ -#define SST_28SF040 0x04 /* SST 29EE040 device code */ -#define SST_39SF020 0xB6 /* SST 39SF020 device */ -#define SST_39VF020 0xD6 /* SST 39VF020 device */ +#define SST_ID 0xBF /* SST Manufacturer ID code */ +#define SST_29EE020A 0x10 /* SST 29EE020 device */ +#define SST_28SF040 0x04 /* SST 29EE040 device */ +#define SST_39SF010 0xB5 /* SST 39SF010A device */ +#define SST_39SF020 0xB6 /* SST 39SF020A device */ +#define SST_39SF040 0xB7 /* SST 39SF040 device */ +#define SST_39VF020 0xD6 /* SST 39VF020 device */ #define SST_49LF040B 0x50 /* SST 49LF040B device */ #define SST_49LF040 0x51 /* SST 49LF040 device */ #define SST_49LF080A 0x5B /* SST 48LF080A device */ @@ -51,7 +53,7 @@ extern struct flashchip flashchips[]; #define SST_49LF004A 0x60 /* SST 49LF004A device */ #define SST_49LF008A 0x5A /* SST 49LF008A device */ -#define PMC_ID 0x9D /* PMC Manufacturer ID[B code */ +#define PMC_ID 0x9D /* PMC Manufacturer ID code */ #define PMC_49FL002 0x6D /* PMC 49FL002 device code */ #define PMC_49FL004 0x6E /* PMC 49FL004 device code */ @@ -59,6 +61,7 @@ extern struct flashchip flashchips[]; #define W_29C011 0xC1 /* Winbond w29c011 device code */ #define W_29C020C 0x45 /* Winbond w29c020c device code */ #define W_39V040A 0x3D /* Winbond w39v040a device code */ +#define W_39V040B 0x54 /* Winbond w39v040b device code */ #define W_49F002U 0x0B /* Winbond w49F002u device code */ #define W_49V002A 0xB0 /* Winbond W49V002A device code */ #define W_49V002FA 0x32 /* Winbond W49V002FA device code */ diff --git a/flash_enable.c b/flash_enable.c index d03a36b9..ccd670a9 100644 --- a/flash_enable.c +++ b/flash_enable.c @@ -398,6 +398,7 @@ static FLASH_ENABLE enables[] = { {0x10de, 0x0050, "NVIDIA CK804", enable_flash_ck804}, // LPC {0x10de, 0x0051, "NVIDIA CK804", enable_flash_ck804}, // Pro {0x10de, 0x00d3, "NVIDIA CK804", enable_flash_ck804}, // Slave, should not be here, to fix known bug for A01. + {0x10de, 0x0261, "NVIDIA C51", enable_flash_ck804}, {0x1002, 0x4377, "ATI SB400", enable_flash_sb400}, // ATI Technologies Inc IXP SB400 PCI-ISA Bridge (rev 80) }; diff --git a/flashchips.c b/flashchips.c index c5e3d9e3..dd937a74 100644 --- a/flashchips.c +++ b/flashchips.c @@ -52,8 +52,12 @@ struct flashchip flashchips[] = { probe_jedec, erase_chip_jedec, write_jedec, NULL}, {"SST28SF040A", SST_ID, SST_28SF040, NULL, 512, 256, probe_28sf040, erase_28sf040, write_28sf040, NULL}, + {"SST39SF010A", SST_ID, SST_39SF010, NULL, 128, 4096, + probe_jedec, erase_chip_jedec, write_39sf020,NULL}, {"SST39SF020A", SST_ID, SST_39SF020, NULL, 256, 4096, probe_jedec, erase_chip_jedec, write_39sf020,NULL}, + {"SST39SF040", SST_ID, SST_39SF040, NULL, 512, 4096, + probe_jedec, erase_chip_jedec, write_39sf020,NULL}, {"SST39VF020", SST_ID, SST_39VF020, NULL, 256, 4096, probe_jedec, erase_chip_jedec, write_39sf020,NULL}, // assume similar to 004B, ignoring data sheet @@ -88,6 +92,8 @@ struct flashchip flashchips[] = { probe_jedec, erase_chip_jedec, write_49f002, NULL}, {"W39V040A", WINBOND_ID, W_39V040A, NULL, 512, 64*1024, probe_jedec, erase_chip_jedec, write_39sf020, NULL}, + {"W39V040B", WINBOND_ID, W_39V040B, NULL, 512, 64*1024, + probe_jedec, erase_chip_jedec, write_39sf020, NULL}, {"M29F040B", ST_ID, ST_M29F040B, NULL, 512, 64 * 1024, probe_29f040b, erase_29f040b, write_29f040b, NULL}, {"M29F400BT", ST_ID, ST_M29F400BT, NULL, 512, 64 * 1024, -- cgit v1.2.3