On Sun, Jul 10, 2011 at 5:27 PM, Stefan Tauner <stefan.tauner@student.tuwien.ac.at> wrote:
On Sun, 10 Jul 2011 16:07:33 -0400
Steven Zakulec <spzakulec@gmail.com> wrote:

> 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 */

probably a speed grade distinction again?

>       },
>
>       {
>               .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 */

that comment is a bit vague... i like the one of the AT25DF041A above
better.

>       },
>
>       {
>               .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,

why?

>               .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,

why?

>               .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",

ah i think i see the pattern... you are reverting my last changes.
you need to rebase your changes on top of mine/the ones in svn instead.

>               .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 */

space after /* please

>       },
>
>       {
>               .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 */

again

>       },
>
>       {
>               .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",

i just skimmed through it, so i may have missed a few things.

thanks for trying to provide more context in the patch. it is not
enough though... the number of 5 i told you was just an example.
this adds 5 lines above and 5 lines below every change in a patch.
what i wanted to accomplish is that the model name of every chip that
is changed is mentioned in the patch. so depending on the number of
erasers in the affected chips a number as high as 20 or so is needed
(another example number).

> 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.

st created a joint venture with others forming numonyx.
numonyx was acquired by micron later...
http://www.micron.com/get-document/?documentId=5983
--
Kind regards/Mit freundlichen Grüßen, Stefan Tauner

_______________________________________________
flashrom mailing list
flashrom@flashrom.org
http://www.flashrom.org/mailman/listinfo/flashrom

Here's a new version rebased on r1368, with no extraneous changes.