On Tue, Jul 5, 2011 at 12:37 AM, Stefan Tauner <
[email protected]> wrote:
> On Mon, 4 Jul 2011 22:27:59 -0400
> Steven Zakulec <[email protected]> wrote:
>
> > Hello, I've attached some additional voltages for a number of the
> remaining
> > chips in flashchips.c.
>
> thanks for your continuous contributions :)
>
> > I have some questions about some of the remaining
> > chips:
> >
> > Should the voltage range always be the most restrictive one offered, with
> > others mentioned in the comments?
>
> that's most probably what we want for now, yes.
> i dont know what we are gonna do with the values, but a possible use
> case could be to tell an external programmer what voltage it should
> supply. we would have to choose a safe value from a number of choices
> that the programmer supports. since we are not able to differentiate
> between different speed grades (or whatever the distinction of chips
> with different voltage ranges are), we have to choose one of the most
> conservative range in our database.
> later this could be extended to allow the user to set a voltage outside
> of the safe range, but inside the extended ranges.
>
> > Where can I find the datasheet for the Sanyo LF25FW203A?
>
> good question, i cant find one either.
> the guy who has added this (Sean Nelson <[email protected]>)
> is currently unavailable afaik.
>
> > Can I ignore the .REMS/etc text after a chip name when looking for the
> > datasheet? Is it something I need to be aware of?
>
> yes. the suffix corresponds with the opcode used to identify the chip.
> some chips do support multiple such opcodes and are added multiple
> times (for now) in flashchips.c
> supply voltage is independent and so should be equal for such
> variations.
>
> > Is there a difference for M25P40 and P40-old?
>
> similar to above the old version seems to use a different probing
> method. i have not looked at the datasheet(s) so i can't say if the
> supply voltages are different.
> http://www.coreboot.org/pipermail/coreboot/2008-May/034640.html and the
> preceding discussion may shed some light on this.
> if i were you i would just leave it out for now.
>
> > For the W25Q64, it seems to be on the same datasheet as the Q80, Q16, and
> > Q32, but it's only referenced once in the sheet, and makes me wonder if
> this
> > is the correct sheet then.
>
> there are multiple versions of the W25Q64 (and maybe also of the other
> chips in the 25Q series, i have not looked into it).
> http://www.winbond.com/hq/enu/ProductAndSales/ProductSearch/?partno=w25q64
> V: 3V (no datasheet, probably predecessor of BV.
> BV: 3V (deprecated)
> CV: 3V (successor of BV)
> DW: 1.8V (not supported by flashrom yet, has a different id (0x6017)
>
> the difference between BV and CV regarding the supply voltage is, that
> the BV specs a supply voltage of at least 3.0V for "Octal Word Read
> Quad I/O (E3h)" when used with a clock of 50MHz.
> this can be ignored for now, just use 2.7-3.3 imho.
>
> > Index: flashchips.c
> > ===================================================================
> > --- flashchips.c (revision 1364)
> > +++ flashchips.c (working copy)
>
> i have not looked into it in detail yet, just a few comments...
>
> > @@ -145,6 +145,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > + .voltage = {4750, 5250}, /* -55 speed is +-5%, all
> others +-10% */
> > },
> >
> > {
> > @@ -256,6 +257,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > + .voltage = {3000, 3600}, /* -45R speed is 3.0-3.6V
> regulated, others 2.7-3.6V */
> > },
>
> i think you can drop "regulated" in those entries. its use in the
> datasheet is already a bit odd imho, but in the comments it is even
> less clear without the context of the datasheet.
>
> > {
> > @@ -286,6 +288,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > + .voltage = {3000, 3600}, /* -45R speed is 3.0-3.6V
> regulated, others 2.7-3.6V */
> > },
> >
> > {
> > @@ -317,6 +320,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > + .voltage = {3000, 3600}, /* -55 speed is 3.0-3.6V
> regulated, others 2.7-3.6V */
> > },
> >
> > {
> > @@ -348,6 +352,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > + .voltage = {3000, 3600}, /* -55 speed is 3.0-3.6V
> regulated, others 2.7-3.6V */
> > },
> >
> > {
> > @@ -379,6 +384,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > + .voltage = {2700, 3600},
> > },
> >
> > {
> > @@ -410,6 +416,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > + .voltage = {2700, 3600},
> > },
> >
> > {
> > @@ -441,6 +448,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > + .voltage = {3000, 3600} /* 3.0-3.6V
> regulated(-70R), 2.7-3.6V for others */
> > },
> >
> > {
> > @@ -472,6 +480,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > + .voltage = {3000, 3600} /* 3.0-3.6V
> regulated(-70R), 2.7-3.6V for others */
> > },
> >
> > {
> > @@ -498,7 +507,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > - .voltage = {2700, 3600},
> > + .voltage = {3000, 3600}, /* regulated voltage range-
> full range is 2.7-3.6V */
> > },
>
> NB: that's the diff for Am29LV040B
>
> >3.0V for the -60R speedgrade only, so essentially the line should be
> similar to the ones above.
>
> when reading that datasheet i noticed the following paragraph:
> "The device requires only a single power supply (2.7
> V–3.6V) for both read and write functions. Internally
> generated and regulated voltages are provided for the
> program and erase operations."
>
> this indicates to me that at least for these "regulated" means that
> they have an internal voltage regulator to guarantee stable supply for
> write/erase operations. such regulators need a minimum difference
> between input (vcc) and output (some internal voltage rail), hence the
> 0.3V higher vcc requirement. i am not sure if the other chips we have
> encountered also have internal regulators, but they may have.
>
> these are implementation-specific details which are not necessarily
> interesting to flashrom or its users. i think just naming the speed
> grades for the noted ranges is the best way to deal with such chips
> for now.
>
> > {
> > @@ -525,7 +534,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > - .voltage = {2700, 3600},
> > + .voltage = {3000, 3600}, /* regulated voltage range-
> full range is 2.7-3.6V */
> > },
> >
> > {
> > @@ -591,6 +600,7 @@
> > .unlock = spi_disable_blockprotect,
> > .write = spi_chip_write_256,
> > .read = spi_chip_read,
> > + .voltage = {2700, 3600},
> > },
> >
> > {
> > @@ -1446,6 +1456,7 @@
> > .unlock = spi_disable_blockprotect_at25df_sec,
> > .write = spi_chip_write_256,
> > .read = spi_chip_read,
> > + .voltage = {2700, 3600},
> > },
> >
> > {
> > @@ -2317,6 +2328,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > + .voltage = {4500, 5500},
> > },
> >
> > {
> > @@ -3501,6 +3513,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > + .voltage = {4500, 5500},
> > },
> >
> > {
> > @@ -4052,6 +4065,7 @@
> > .unlock = spi_disable_blockprotect,
> > .write = spi_chip_write_256,
> > .read = spi_chip_read,
> > + .voltage = {2700, 3600},
> > },
> >
> > {
> > @@ -4344,6 +4358,7 @@
> > },
> > .write = write_jedec_1,
> > .read = read_memmapped,
> > + .voltage = {4500, 5500},
> > },
> >
> > {
> > @@ -4775,6 +4790,7 @@
> > .unlock = spi_disable_blockprotect,
> > .write = spi_chip_write_256,
> > .read = spi_chip_read,
> > + .voltage = {2700, 3600},
> > },
> >
> > {
> > @@ -4900,6 +4916,7 @@
> > .unlock = spi_disable_blockprotect,
> > .write = spi_chip_write_256,
> > .read = spi_chip_read,
> > + .voltage = {2700, 3600},
> > },
> >
> > {
> > @@ -5201,6 +5218,7 @@
> > .unlock = spi_disable_blockprotect,
> > .write = spi_chip_write_256,
> > .read = spi_chip_read,
> > + .voltage = {2700, 3600},
> > },
> >
> > {
> > @@ -5281,6 +5299,7 @@
> > .unlock = spi_disable_blockprotect,
> > .write = spi_chip_write_256,
> > .read = spi_chip_read,
> > + .voltage = {2700, 3600},
> > },
> >
> > {
> > @@ -5307,6 +5326,7 @@
> > .unlock = spi_disable_blockprotect,
> > .write = spi_chip_write_256,
> > .read = spi_chip_read,
> > + .voltage = {2700, 3600},
> > },
> >
> > {
> > @@ -6780,6 +6800,7 @@
> > .unlock = spi_disable_blockprotect,
> > .write = spi_chip_write_256,
> > .read = spi_chip_read,
> > + .voltage = {2700, 3600},
> > },
> >
> > {
>
> to ease review you could post diffs with more context so that the chip
> models are included in each hunk. i cant remember the correct svn diff
> parameters right now for this though. i personally don't need it, but
> if you can figure it out quickly it may be nice to have. :)
>
> --
> Kind regards/Mit freundlichen Grüßen, Stefan Tauner
>
I believe I've addressed all of your issues.
What's the correct datasheet for M25PX16 ? There seem to be several of them
, by different companies.
Index: flashchips.c
===================================================================
--- flashchips.c (revision 1368)
+++ flashchips.c (working copy)
@@ -143,10 +143,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {4750, 5250}, /* -55 speed is +-5%, all others +-10% */
},
{
.vendor = "AMD",
.name = "Am29F016D",
@@ -254,10 +255,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {3000, 3600}, /* -45R speed is 3.0-3.6V, others 2.7-3.6V */
},
{
.vendor = "AMD",
.name = "Am29LV001BT",
@@ -284,10 +286,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {3000, 3600}, /* -45R speed is 3.0-3.6V, others 2.7-3.6V */
},
{
.vendor = "AMD",
.name = "Am29LV002BB",
@@ -315,10 +318,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {3000, 3600}, /* -55 speed is 3.0-3.6V, others 2.7-3.6V */
},
{
.vendor = "AMD",
.name = "Am29LV002BT",
@@ -346,10 +350,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {3000, 3600}, /* -55 speed is 3.0-3.6V, others 2.7-3.6V */
},
{
.vendor = "AMD",
.name = "Am29LV004BB",
@@ -377,10 +382,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {2700, 3600},
},
{
.vendor = "AMD",
.name = "Am29LV004BT",
@@ -408,10 +414,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {2700, 3600},
},
{
.vendor = "AMD",
.name = "Am29LV008BB",
@@ -439,10 +446,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {3000, 3600} /* 3.0-3.6V (-70R), 2.7-3.6V for others */
},
{
.vendor = "AMD",
.name = "Am29LV008BT",
@@ -470,10 +478,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {3000, 3600} /* 3.0-3.6V (-70R), 2.7-3.6V for others */
},
{
.vendor = "AMD",
.name = "Am29LV040B",
@@ -496,11 +505,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
- .voltage = {2700, 3600},
+ .voltage = {3000, 3600}, /* 3.0-3.6V (-60R), 2.7-3.6V for others */
},
{
.vendor = "AMD",
.name = "Am29LV081B",
@@ -523,11 +532,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
- .voltage = {2700, 3600},
+ .voltage = {3000, 3600}, /* regulated voltage range- full range is 2.7-3.6V */
},
{
.vendor = "AMIC",
.name = "A25L05PT",
@@ -589,10 +598,11 @@
},
.printlock = spi_prettyprint_status_register_amic_a25l05p,
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_256,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
},
{
.vendor = "AMIC",
.name = "A25L10PT",
@@ -1330,11 +1340,11 @@
},
.printlock = spi_prettyprint_status_register_at25df,
.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 */
+ .voltage = {2700, 3600}, /* Datasheet says there's a 2.3-3.6V & 2.7-3.6V model */
},
{
.vendor = "Atmel",
.name = "AT25DF041A",
@@ -1368,11 +1378,11 @@
},
.printlock = spi_prettyprint_status_register_at25df,
.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 */
+ .voltage = {2700, 3600}, /* Datasheet says there's a 2.3-3.6V & 2.7-3.6V model */
},
{
.vendor = "Atmel",
.name = "AT25DF081",
@@ -1444,10 +1454,11 @@
},
.printlock = spi_prettyprint_status_register_at25df_sec,
.unlock = spi_disable_blockprotect_at25df_sec,
.write = spi_chip_write_256,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
},
{
.vendor = "Atmel",
.name = "AT25DF161",
@@ -1771,11 +1782,11 @@
.block_erase = spi_block_erase_20,
}
},
.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 */
+ .voltage = {2700, 3600}, /* Datasheet says 3.0-3.6 V or 2.7-3.6 V- either range is fine */
},
{
.vendor = "Atmel",
.name = "AT26DF081A",
@@ -2112,11 +2123,11 @@
.tested = TEST_BAD_READ,
.probe = probe_spi_rdid,
.probe_timing = TIMING_ZERO,
.write = NULL,
.read = NULL,
- .voltage = {2500, 3600}, /* Datasheet says 2.5-3.6 V or 2.7-3.6 V */
+ .voltage = {2700, 3600}, /* Datasheet says 2.5-3.6 V or 2.7-3.6 V */
},
{
.vendor = "Atmel",
.name = "AT45DB161D",
@@ -2128,11 +2139,11 @@
.tested = TEST_BAD_READ,
.probe = probe_spi_rdid,
.probe_timing = TIMING_ZERO,
.write = NULL,
.read = NULL,
- .voltage = {2500, 3600}, /* Datasheet says 2.5-3.6 V or 2.7-3.6 V */
+ .voltage = {2700, 3600}, /* Datasheet says 2.5-3.6 V or 2.7-3.6 V */
},
{
.vendor = "Atmel",
.name = "AT45DB321C",
@@ -2315,10 +2326,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {4500, 5500},
},
{
.vendor = "EMST",
.name = "F49B002UA",
@@ -3499,10 +3511,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {4500, 5500},
},
{
.vendor = "Intel",
.name = "28F001BN/BX-B",
@@ -4050,10 +4063,11 @@
}
},
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_256,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
},
{
.vendor = "Macronix",
.name = "MX25L3205",
@@ -4342,10 +4356,11 @@
.block_erase = erase_chip_block_jedec,
},
},
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {4500, 5500},
},
{
.vendor = "Macronix",
.name = "MX29LV040",
@@ -4773,10 +4788,11 @@
}
},
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_256,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
},
{
.vendor = "PMC",
.name = "Pm25LV020",
@@ -4898,10 +4914,11 @@
}
},
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_256,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
},
{
.vendor = "PMC",
.name = "Pm29F002T",
@@ -5199,10 +5216,11 @@
}
},
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_256,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
},
{
.vendor = "Spansion",
.name = "S25FL008A",
@@ -5279,10 +5297,11 @@
}
},
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_256,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
},
{
.vendor = "Spansion",
.name = "S25FL064A",
@@ -5305,10 +5324,11 @@
}
},
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_256,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
},
{
.vendor = "SST",
.name = "SST25VF010.REMS",
@@ -5334,10 +5354,11 @@
},
},
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_1,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
},
{
.vendor = "SST",
.name = "SST25VF016B",
@@ -5471,10 +5492,11 @@
},
},
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_1,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
},
{
.vendor = "SST",
.name = "SST25VF040B",
@@ -5536,10 +5558,11 @@
},
},
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_1,
.read = spi_chip_read,
+ .voltage = {3000, 3600},
},
{
.vendor = "SST",
.name = "SST25VF040B.REMS",
@@ -5571,10 +5594,11 @@
},
},
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_1,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
},
{
.vendor = "SST",
.name = "SST25VF080B",
@@ -5769,11 +5793,11 @@
.manufacture_id = SST_ID,
.model_id = SST_SST39SF010,
.total_size = 128,
.page_size = 4096,
.feature_bits = FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 1, /* 150 ns */
.block_erasers =
{
{
@@ -6703,11 +6727,11 @@
.bustype = CHIP_BUSTYPE_SPI,
.manufacture_id = ST_ID,
.model_id = ST_M25P128,
.total_size = 16384,
.page_size = 256,
- .tested = TEST_OK_PREW,
+ .tested = TEST_UNTESTED,
.probe = probe_spi_rdid,
.probe_timing = TIMING_ZERO,
.block_erasers =
{
{
@@ -6778,10 +6802,11 @@
}
},
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_256,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
},
{
.vendor = "ST",
.name = "M25PX64",
@@ -7774,11 +7799,11 @@
.read = spi_chip_read,
},
{
.vendor = "Winbond",
- .name = "W25X10",
+ .name = "W25x10",
.bustype = CHIP_BUSTYPE_SPI,
.manufacture_id = WINBOND_NEX_ID,
.model_id = WINBOND_NEX_W25X10,
.total_size = 128,
.page_size = 256,
@@ -7805,11 +7830,11 @@
.voltage = {2700, 3600},
},
{
.vendor = "Winbond",
- .name = "W25X20",
+ .name = "W25x20",
.bustype = CHIP_BUSTYPE_SPI,
.manufacture_id = WINBOND_NEX_ID,
.model_id = WINBOND_NEX_W25X20,
.total_size = 256,
.page_size = 256,
@@ -7836,11 +7861,11 @@
.voltage = {2700, 3600},
},
{
.vendor = "Winbond",
- .name = "W25X40",
+ .name = "W25x40",
.bustype = CHIP_BUSTYPE_SPI,
.manufacture_id = WINBOND_NEX_ID,
.model_id = WINBOND_NEX_W25X40,
.total_size = 512,
.page_size = 256,
@@ -7867,11 +7892,11 @@
.voltage = {2700, 3600},
},
{
.vendor = "Winbond",
- .name = "W25X80",
+ .name = "W25x80",
.bustype = CHIP_BUSTYPE_SPI,
.manufacture_id = WINBOND_NEX_ID,
.model_id = WINBOND_NEX_W25X80,
.total_size = 1024,
.page_size = 256,
@@ -7898,11 +7923,11 @@
.voltage = {2700, 3600},
},
{
.vendor = "Winbond",
- .name = "W25X16",
+ .name = "W25x16",
.bustype = CHIP_BUSTYPE_SPI,
.manufacture_id = WINBOND_NEX_ID,
.model_id = WINBOND_NEX_W25X16,
.total_size = 2048,
.page_size = 256,
@@ -7935,11 +7960,11 @@
.voltage = {2700, 3600},
},
{
.vendor = "Winbond",
- .name = "W25X32",
+ .name = "W25x32",
.bustype = CHIP_BUSTYPE_SPI,
.manufacture_id = WINBOND_NEX_ID,
.model_id = WINBOND_NEX_W25X32,
.total_size = 4096,
.page_size = 256,
@@ -7972,11 +7997,11 @@
.voltage = {2700, 3600},
},
{
.vendor = "Winbond",
- .name = "W25X64",
+ .name = "W25x64",
.bustype = CHIP_BUSTYPE_SPI,
.manufacture_id = WINBOND_NEX_ID,
.model_id = WINBOND_NEX_W25X64,
.total_size = 8192,
.page_size = 256,
@@ -8039,13 +8064,13 @@
.manufacture_id = WINBOND_ID,
.model_id = WINBOND_W29C020,
.total_size = 256,
.page_size = 128,
.feature_bits = FEATURE_LONG_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PRE,
.probe = probe_jedec,
- .probe_timing = 10,
+ .probe_timing = 10,
.block_erasers =
{
{
.eraseblocks = { {256 * 1024, 1} },
.block_erase = erase_chip_block_jedec,
@@ -8129,10 +8154,11 @@
}
},
.printlock = printlock_w39l040,
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {3000, 3600},
},
{
.vendor = "Winbond",
.name = "W39V040A",
@@ -8273,10 +8299,11 @@
},
.printlock = printlock_w39v040fb,
.unlock = unlock_w39v040fb,
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {3000, 3600}, /*Also offers a 12V fast program */
},
{
.vendor = "Winbond",
.name = "W39V040FC",
@@ -8300,10 +8327,11 @@
}
},
.printlock = printlock_w39v040fc,
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {3000, 3600}, /*Also offers a 12V fast program */
},
{
.vendor = "Winbond",
.name = "W39V080A",
@@ -8395,13 +8423,13 @@
.manufacture_id = WINBOND_ID,
.model_id = WINBOND_W49V002A,
.total_size = 256,
.page_size = 128,
.feature_bits = FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PRE,
.probe = probe_jedec,
- .probe_timing = 10,
+ .probe_timing = 10,
.block_erasers =
{
{
.eraseblocks = {
{64 * 1024, 3},
@@ -8504,10 +8532,11 @@
}
},
.printlock = printlock_w39v080fa_dual,
.write = write_jedec_1,
.read = read_memmapped,
+ .voltage = {3000, 3600}, /* 12 V fast program mode */
},
{
.vendor = "AMIC",
.name = "unknown AMIC SPI chip",
_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom