Sorry for the totally meaningless subject. I wanted to get the current state of one of my ID-collection trees out there. Maybe someone finds it useful. The patch is WIP, but hey... if parts of it are mergeable, even better.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Index: flashrom-newchips/flashchips.c =================================================================== --- flashrom-newchips/flashchips.c (Revision 1171) +++ flashrom-newchips/flashchips.c (Arbeitskopie) @@ -1335,6 +1335,8 @@ .read = spi_chip_read, },
+/* The AT25F512, AT25F1024 and AT25F2048 apparently support a 0x62 chip erase? */ + { .vendor = "Atmel", .name = "AT25F512B", Index: flashrom-newchips/flashchips.h =================================================================== --- flashrom-newchips/flashchips.h (Revision 1171) +++ flashrom-newchips/flashchips.h (Arbeitskopie) @@ -58,12 +58,15 @@ #define AM_29F400BT 0x23 #define AM_29F800BB 0x58 #define AM_29F800BT 0xD6 +#define AMD_AM29LV001B 0x6D +#define AMD_AM29LV001T 0xED #define AM_29LV002BB 0xC2 #define AM_29LV002BT 0x40 #define AM_29LV004BB 0xB6 #define AM_29LV004BT 0xB5 #define AM_29LV008BB 0x37 #define AM_29LV008BT 0x3E +#define AMD_AM29LV010 0x6E #define AM_29LV040B 0x4F #define AM_29LV080B 0x38 /* Same as Am29LV081B */ #define AM_29LV200BB 0xBF @@ -121,14 +124,21 @@ #define AT_25DF641 0x4800 #define AT_25DQ161 0x8600 #define AT25F512 /* No device ID found in datasheet. Vendor ID - * can be read with AT25F512A_RDID */ + * can be read with AT25F512A_RDID. + * ID is 0x65??? + */ #define AT_25F512A 0x65 /* Needs AT25F512A_RDID */ #define AT_25F512B 0x6500 #define AT25F1024 /* No device ID found in datasheet. Vendor ID - * can be read with AT25F512A_RDID */ + * can be read with AT25F512A_RDID. + * ID is 0x60 or 0x40??? + */ #define AT_25F1024A 0x60 /* Needs AT25F512A_RDID */ +#define ATMEL_AT25F2048 0x63 /* Special RDID */ #define AT_25FS010 0x6601 #define AT_25FS040 0x6604 +#define ATMEL_AT25DF021 0x4300 +#define ATMEL_AT25DF041 0x4401 #define AT_26DF041 0x4400 #define AT_26DF081 0x4500 /* guessed, no datasheet available */ #define AT_26DF081A 0x4501 @@ -136,6 +146,8 @@ #define AT_26DF161A 0x4601 #define AT_26DF321 0x4700 /* Same as 25DF321 */ #define AT_26F004 0x0400 +#define ATMEL_AT29LV512 0x3D +#define ATMEL_AT29LV010A 0x35 /* Same as AT29BV010A? */ #define AT_29C040A 0xA4 #define AT_29C010A 0xD5 #define AT_29C020 0xDA @@ -166,7 +178,11 @@ #define AT_45DB321D 0x2701 /* Buggy data sheet */ #define AT_45DB642 /* No ID available */ #define AT_45DB642D 0x2800 -#define AT_49BV512 0x03 +#define AT_49BV512 0x03 /* Same as AT49F512? */ +#define ATMEL_AT49F001 0x05 +#define ATMEL_AT49F001T 0x04 +#define ATMEL_AT49F010 0x87 +#define ATMEL_AT49LV010 0x17 /* Same as AT49BV010? */ #define AT_49F020 0x0B #define AT_49F002N 0x07 /* for AT49F002(N) */ #define AT_49F002NT 0x08 /* for AT49F002(N)T */ @@ -360,6 +376,7 @@ */ #define PMC_ID 0x7F9D /* PMC */ #define PMC_ID_NOPREFIX 0x9D /* PMC, missing 0x7F prefix */ +#define PMC_PM25LD512 0x20 /* Uses PMC_ID instead of the usual PMC_ID_NOPREFIX */ #define PMC_25LV512 0x7B #define PMC_25LV010 0x7C #define PMC_25LV020 0x7D @@ -412,9 +429,9 @@ #define SST_25WF010 0x2502 #define SST_25WF020 0x2503 #define SST_25WF040 0x2504 -#define SST_25VF512A_REMS 0x48 /* REMS or RES opcode */ +#define SST_25VF512A_REMS 0x48 /* REMS or RES opcode, also SST25VF512? */ #define SST_25VF010_REMS 0x49 /* REMS or RES opcode */ -#define SST_25VF020_REMS 0x43 /* REMS or RES opcode */ +#define SST_25VF020_REMS 0x43 /* REMS or RES opcode, also SST25LF020? */ #define SST_25VF040_REMS 0x44 /* REMS or RES opcode, same as SST25LF040A */ #define SST_25VF040B 0x258D #define SST_25VF040B_REMS 0x8D /* REMS or RES opcode */ @@ -434,6 +451,7 @@ #define SST_27VF020 0xAA #define SST_28SF040 0x04 #define SST_29EE512 0x5D +#define SST_29LE512 0x3D /* Same as SST29VE512 */ #define SST_29EE010 0x07 #define SST_29LE010 0x08 /* Same as SST29VE010 */ #define SST_29EE020A 0x10 /* Same as SST29EE020 */ @@ -451,6 +469,7 @@ #define SST_39VF020 0xD6 /* Same as 39LF020 */ #define SST_39VF040 0xD7 /* Same as 39LF040 */ #define SST_39VF080 0xD8 /* Same as 39LF080/39VF080/39VF088 */ +#define SST_45VF010 0x42 /* FIXME */ #define SST_49LF040B 0x50 #define SST_49LF040 0x51 #define SST_49LF020 0x61 @@ -469,10 +488,11 @@ /* * ST25P chips are SPI, first byte of device ID is memory type, second * byte of device ID is related to log(bitsize) at least for some chips. + * ST is now called Numonyx. */ #define ST_ID 0x20 /* ST / SGS/Thomson */ #define ST_M25P05A 0x2010 -#define ST_M25P05_RES 0x10 /* Same code as M25P10. */ +#define ST_M25P05_RES 0x10 /* Same code as M25P10. Datasheet error? Should be 0x05? */ #define ST_M25P10A 0x2011 #define ST_M25P10_RES 0x10 /* Same code as M25P05. */ #define ST_M25P20 0x2012 @@ -530,6 +550,9 @@ #define SM_MVC_29C51002B 0xA2 /* Identical chips: {F,S,V}29C51002B */ #define SM_MVC_29C51004B 0xA3 /* Identical chips: {F,S,V}29C51004B */
+#define TENX_ID_NOPREFIX 0x5E /* Tenx Technologies, 0x7F7F5E */ +#define TENX_ICE25P05 0x01 /* Maybe? */ + #define TI_ID 0x97 /* Texas Instruments */ #define TI_OLD_ID 0x01 /* TI chips from last century */ #define TI_TMS29F002RT 0xB0 @@ -540,10 +563,10 @@ * byte of device ID is related to log(bitsize). */ #define WINBOND_NEX_ID 0xEF /* Winbond (ex Nexcom) serial flashes */ -#define WINBOND_NEX_W25X10 0x3011 -#define WINBOND_NEX_W25X20 0x3012 -#define WINBOND_NEX_W25X40 0x3013 -#define WINBOND_NEX_W25X80 0x3014 +#define WINBOND_NEX_W25X10 0x3011 /* W25X10A? */ +#define WINBOND_NEX_W25X20 0x3012 /* W25X20A? */ +#define WINBOND_NEX_W25X40 0x3013 /* W25X40A? */ +#define WINBOND_NEX_W25X80 0x3014 /* W25X80A? */ #define WINBOND_NEX_W25X16 0x3015 #define WINBOND_NEX_W25X32 0x3016 #define WINBOND_NEX_W25X64 0x3017 @@ -565,7 +588,7 @@ #define WINBOND_W19B323MT 0x13 #define WINBOND_W19B324MB 0x97 #define WINBOND_W19B324MT 0x16 -#define WINBOND_W29C010 0xC1 /* Same as W29C010M, W29C011A, W29EE011, W29EE012, and ASD AE29F1008 */ +#define WINBOND_W29C010 0xC1 /* Same as W29C010M, W29C011A, W29EE011, W29EE012, and ASD AE29F1008 (is there a W29C011?) */ #define WINBOND_W29C020 0x45 /* Same as W29C020C, W29C022 and ASD AE29F2008 */ #define WINBOND_W29C040 0x46 /* Same as W29C040P */ #define WINBOND_W29C512A 0xC8 /* Same as W29EE512 */