Author: stefanct Date: Fri Jun 3 09:26:31 2011 New Revision: 1323 URL: http://flashrom.org/trac/flashrom/changeset/1323
Log: Add voltage ranges to the flashchips
Signed-off-by: Steven Zakulec spzakulec@gmail.com Acked-by: Stefan Tauner stefan.tauner@student.tuwien.ac.at Acked-by: Peter Stuge peter@stuge.se
Modified: trunk/flash.h trunk/flashchips.c
Modified: trunk/flash.h ============================================================================== --- trunk/flash.h Sun May 29 00:59:05 2011 (r1322) +++ trunk/flash.h Fri Jun 3 09:26:31 2011 (r1323) @@ -145,6 +145,10 @@ int (*unlock) (struct flashchip *flash); int (*write) (struct flashchip *flash, uint8_t *buf, int start, int len); int (*read) (struct flashchip *flash, uint8_t *buf, int start, int len); + struct { + uint16_t min; + uint16_t max; + } voltage;
/* Some flash devices have an additional register space. */ chipaddr virtual_memory;
Modified: trunk/flashchips.c ============================================================================== --- trunk/flashchips.c Sun May 29 00:59:05 2011 (r1322) +++ trunk/flashchips.c Fri Jun 3 09:26:31 2011 (r1323) @@ -54,6 +54,7 @@ * .unlock = Chip unlock function * .write = Chip write function * .read = Chip read function + * .voltage = Voltage range in millivolt */
{ @@ -80,6 +81,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -111,6 +113,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4750, 5250}, /* -55 speed is +-5%, all others +-10% */ },
{ @@ -168,6 +171,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -194,6 +198,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -220,6 +225,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -492,6 +498,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -518,6 +525,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -550,6 +558,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -615,6 +624,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -648,6 +658,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -681,6 +692,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -714,6 +726,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
/* The A25L40P{T,U} chips are distinguished by their @@ -752,6 +765,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -785,6 +799,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -818,6 +833,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -854,6 +870,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -890,6 +907,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -921,6 +939,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -952,6 +971,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -983,6 +1003,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1014,6 +1035,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1045,6 +1067,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1076,6 +1099,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1113,6 +1137,7 @@ .unlock = NULL, /* Two status reg bytes (read with 0x35 and 0x05) */ .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1150,6 +1175,7 @@ .unlock = NULL, /* Two status reg bytes (read with 0x35 and 0x05) */ .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1181,6 +1207,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -1212,6 +1239,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -1238,6 +1266,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -1265,6 +1294,7 @@ .unlock = unlock_49fl00x, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -1302,6 +1332,7 @@ .unlock = spi_disable_blockprotect_at25df, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2300, 3600}, /* Datasheet says 2.3-3.6V or 2.7-3.6V */ },
{ @@ -1339,6 +1370,7 @@ .unlock = spi_disable_blockprotect_at25df, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2300, 3600}, /* Datasheet says 2.3-3.6V or 2.7-3.6V */ },
{ @@ -1376,6 +1408,7 @@ .unlock = spi_disable_blockprotect_at25df, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {1600, 2000}, /* Datasheet says range is 1.65-1.95 V */ },
{ @@ -1450,6 +1483,7 @@ .unlock = spi_disable_blockprotect_at25df_sec, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1487,6 +1521,7 @@ .unlock = spi_disable_blockprotect_at25df, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1524,6 +1559,7 @@ .unlock = spi_disable_blockprotect_at25df_sec, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1561,6 +1597,7 @@ .unlock = spi_disable_blockprotect_at25df_sec, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1598,6 +1635,7 @@ .unlock = spi_disable_blockprotect_at25df_sec, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1635,6 +1673,7 @@ .unlock = spi_disable_blockprotect_at25f, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1674,6 +1713,7 @@ .unlock = spi_disable_blockprotect_at25fs010, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1710,6 +1750,7 @@ .unlock = spi_disable_blockprotect_at25fs040, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1732,6 +1773,7 @@ }, .write = NULL /* Incompatible Page write */, .read = spi_chip_read, + .voltage = {2700, 3600}, /* Datasheet says 3.0-3.6 V or 2.7-3.6 V */ },
{ @@ -1769,6 +1811,7 @@ .unlock = spi_disable_blockprotect_at25df, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1805,6 +1848,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1841,6 +1885,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
/*The AT26DF321 has the same ID as the AT25DF321. */ @@ -1893,6 +1938,7 @@ }, .write = NULL /* Incompatible Page write */, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -1916,7 +1962,7 @@ }, .write = write_jedec, .read = read_memmapped, - + .voltage = {4500, 5500}, },
{ @@ -1940,6 +1986,7 @@ }, .write = write_jedec, /* FIXME */ .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -1963,6 +2010,7 @@ }, .write = write_jedec, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -1986,6 +2034,7 @@ }, .write = write_jedec, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -2001,6 +2050,7 @@ .probe_timing = TIMING_ZERO, .write = NULL /* Incompatible Page write */, .read = NULL /* Incompatible read */, + .voltage = {2700, 3600}, },
{ @@ -2016,6 +2066,7 @@ .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, + .voltage = {2700, 3600}, },
{ @@ -2031,6 +2082,7 @@ .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, + .voltage = {2700, 3600}, },
{ @@ -2046,6 +2098,7 @@ .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, + .voltage = {2500, 3600}, /* Datasheet says 2.5-3.6 V or 2.7-3.6 V */ },
{ @@ -2061,6 +2114,7 @@ .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, + .voltage = {2500, 3600}, /* Datasheet says 2.5-3.6 V or 2.7-3.6 V */ },
{ @@ -2076,6 +2130,7 @@ .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, + .voltage = {2500, 3600}, /* Datasheet says 2.5-3.6 V or 2.7-3.6 V */ },
{ @@ -2091,6 +2146,7 @@ .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL /* Incompatible read */, + .voltage = {2700, 3600}, },
{ @@ -2106,6 +2162,7 @@ .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, + .voltage = {2700, 3600}, },
{ @@ -2121,6 +2178,7 @@ .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, + .voltage = {2700, 3600}, },
{ @@ -2144,6 +2202,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -2167,6 +2226,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -2198,6 +2258,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -2229,6 +2290,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -2286,6 +2348,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -2318,6 +2381,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_1, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2349,6 +2413,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2380,6 +2445,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2411,6 +2477,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2442,6 +2509,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2474,6 +2542,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2506,6 +2575,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2538,6 +2608,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2570,6 +2641,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2602,6 +2674,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2634,6 +2707,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2666,6 +2740,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2698,6 +2773,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2730,6 +2806,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2762,6 +2839,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2795,6 +2873,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2827,6 +2906,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2862,6 +2942,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2898,6 +2979,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2934,6 +3016,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -2970,6 +3053,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -3003,6 +3087,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -3036,6 +3121,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -3069,6 +3155,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -3102,6 +3189,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -3129,6 +3217,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -3160,6 +3249,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -3191,6 +3281,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -3222,6 +3313,7 @@ }, .write = NULL, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -3253,6 +3345,7 @@ }, .write = NULL, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -3285,6 +3378,7 @@ }, .write = write_m29f400bt, .read = read_memmapped, + .voltage = {4750, 5250}, /* 5.0V +-5% for -55 model, +-10% for rest */ },
{ @@ -3316,6 +3410,7 @@ }, .write = write_m29f400bt, .read = read_memmapped, + .voltage = {4750, 5250}, /* 5.0V +-5% for -55 model, +-10% for rest */ },
{ @@ -3347,6 +3442,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4750, 5250}, /* 5.0V +-5% for -45 model, +-10% for rest */ },
{ @@ -3378,6 +3474,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4750, 5250}, /* 5.0V +-5% for -45 model, +-10% for rest */ },
{ @@ -3430,6 +3527,7 @@ }, .write = write_82802ab, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -3456,6 +3554,7 @@ }, .write = write_82802ab, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -3483,6 +3582,7 @@ }, .write = write_82802ab, .read = read_memmapped, + .voltage = {4500, 5500}, /* 5.0V +-10% read, 12V fast program & erase- +-5% standard, +-10% option */ },
{ @@ -3640,6 +3740,7 @@ .unlock = unlock_82802ab, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -3664,6 +3765,7 @@ .unlock = unlock_82802ab, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -3700,6 +3802,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -3733,6 +3836,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -3769,6 +3873,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -3805,6 +3910,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -3841,6 +3947,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -3877,6 +3984,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -3910,6 +4018,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -3976,6 +4085,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4009,6 +4119,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4042,6 +4153,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4075,6 +4187,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4107,6 +4220,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4139,6 +4253,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4170,6 +4285,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4201,6 +4317,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4253,6 +4370,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -4279,6 +4397,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4305,6 +4424,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4331,6 +4451,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4357,6 +4478,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4383,6 +4505,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4409,6 +4532,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4435,6 +4559,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4464,6 +4589,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4493,6 +4619,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4522,6 +4649,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4551,6 +4679,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4580,6 +4709,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4609,6 +4739,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4673,6 +4804,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4702,6 +4834,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4737,6 +4870,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -4797,6 +4931,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4828,6 +4963,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -4857,6 +4993,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -4886,6 +5023,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -4915,6 +5053,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, }, { @@ -4945,6 +5084,7 @@ .unlock = unlock_49fl00x, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -4975,6 +5115,7 @@ .unlock = unlock_49fl00x, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -5033,6 +5174,7 @@ .unlock = unlock_82802ab, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -5085,6 +5227,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -5111,6 +5254,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -5227,6 +5371,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_1, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -5262,6 +5407,7 @@ .unlock = spi_disable_blockprotect, .write = spi_aai_write, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -5297,6 +5443,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -5361,6 +5508,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_1, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -5460,6 +5608,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_1, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -5487,6 +5636,7 @@ .unlock = unprotect_28sf040, .write = write_28sf040, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -5510,6 +5660,7 @@ }, .write = write_jedec, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -5533,6 +5684,7 @@ }, .write = write_jedec, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -5556,6 +5708,7 @@ }, .write = write_jedec, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -5579,6 +5732,7 @@ }, .write = write_jedec, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -5605,6 +5759,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -5631,6 +5786,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -5657,6 +5813,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -5683,6 +5840,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -5709,6 +5867,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -5735,6 +5894,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -5761,6 +5921,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -5787,6 +5948,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -5816,6 +5978,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -5847,6 +6010,7 @@ .unlock = unlock_sst_fwhub, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -5878,6 +6042,7 @@ .unlock = unlock_sst_fwhub, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -5912,6 +6077,7 @@ .unlock = unlock_sst_fwhub, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -5944,6 +6110,7 @@ .unlock = unlock_49lfxxxc, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -5975,6 +6142,7 @@ .unlock = unlock_sst_fwhub, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -6007,6 +6175,7 @@ .unlock = unlock_49lfxxxc, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -6039,6 +6208,7 @@ .unlock = unlock_49lfxxxc, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -6068,6 +6238,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -6097,6 +6268,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -6126,6 +6298,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -6156,6 +6329,7 @@ .unlock = unlock_82802ab, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -6185,6 +6359,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -6217,6 +6392,7 @@ .unlock = unlock_49lfxxxc, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -6243,6 +6419,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
/* The ST M25P05 is a bit of a problem. It has the same ID as the @@ -6274,6 +6451,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_1, /* 128 */ .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -6300,6 +6478,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
/* The ST M25P10 has the same problem as the M25P05. */ @@ -6327,6 +6506,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_1, /* 128 */ .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -6353,6 +6533,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -6379,6 +6560,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -6431,6 +6613,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -6457,6 +6640,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -6483,6 +6667,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -6509,6 +6694,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -6535,6 +6721,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -6653,6 +6840,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4750, 5250}, /* Datasheet says some are only 4.75-5.25 V */ },
{ @@ -6684,6 +6872,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4750, 5250}, /* Datasheet says some are only 4.75-5.25 V */ },
{ @@ -6710,6 +6899,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -6742,6 +6932,7 @@ }, .write = write_m29f400bt, .read = read_memmapped, + .voltage = {4500, 5500}, }, { /* FIXME: this has WORD/BYTE sequences; 2AA for word, 555 for byte */ @@ -6773,6 +6964,7 @@ }, .write = write_m29f400bt, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -6799,6 +6991,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -6825,6 +7018,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -6848,6 +7042,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {2700, 3600}, },
{ @@ -6880,6 +7075,7 @@ .unlock = unlock_stm50flw0x0x, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ },
{ @@ -6912,6 +7108,7 @@ .unlock = unlock_stm50flw0x0x, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ },
{ @@ -6944,6 +7141,7 @@ .unlock = unlock_stm50flw0x0x, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ },
{ @@ -6976,6 +7174,7 @@ .unlock = unlock_stm50flw0x0x, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ },
{ @@ -7005,6 +7204,7 @@ .unlock = unlock_stm50flw0x0x, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ },
{ @@ -7029,6 +7229,7 @@ .unlock = unlock_stm50flw0x0x, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ },
{ @@ -7053,6 +7254,7 @@ .unlock = unlock_stm50flw0x0x, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ },
{ @@ -7077,6 +7279,7 @@ .unlock = unlock_stm50flw0x0x, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ },
{ @@ -7107,6 +7310,7 @@ .unlock = unlock_stm50flw0x0x, .write = write_82802ab, .read = read_memmapped, + .voltage = {3000, 3600}, /* Also has 12V fast program & erase */ },
{ @@ -7133,6 +7337,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -7159,6 +7364,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -7237,6 +7443,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -7263,6 +7470,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -7289,6 +7497,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -7315,6 +7524,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -7346,6 +7556,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -7377,6 +7588,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -7413,6 +7625,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -7449,6 +7662,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -7485,6 +7699,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -7587,6 +7802,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -7617,6 +7833,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -7647,6 +7864,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -7677,6 +7895,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -7713,6 +7932,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -7749,6 +7969,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -7785,6 +8006,7 @@ .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, .read = spi_chip_read, + .voltage = {2700, 3600}, },
{ @@ -7831,6 +8053,7 @@ }, .write = write_jedec, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -7854,6 +8077,7 @@ }, .write = write_jedec, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -7934,6 +8158,7 @@ .printlock = printlock_w39v040a, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -7961,6 +8186,7 @@ .printlock = printlock_w39v040b, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -7988,6 +8214,7 @@ .printlock = printlock_w39v040c, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -8019,6 +8246,7 @@ .unlock = unlock_sst_fwhub, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -8101,6 +8329,7 @@ .printlock = printlock_w39v080a, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -8132,6 +8361,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -8155,6 +8385,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {4500, 5500}, },
{ @@ -8186,6 +8417,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -8217,6 +8449,7 @@ }, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, },
{ @@ -8245,6 +8478,7 @@ .unlock = unlock_w39v080fa, .write = write_jedec_1, .read = read_memmapped, + .voltage = {3000, 3600}, /* 12 V fast program mode */ },
{