On Tue, Feb 7, 2012 at 7:25 PM, Stefan Tauner < [email protected]> wrote:
> On Tue, 07 Feb 2012 23:31:50 +0100 > Carl-Daniel Hailfinger <[email protected]> wrote: > > > Ahem. Once we do the per-region unlock dance, this will be extremely > > painful. We have three choices: > > - Keep that part of the code as is. Not good. > > - Spit out that message for every status register write. Not good. > > - Fix all flash chip definitions. Good, but separate patch. > > How do we proceed? > > fixing the stuff that needs fixing, of course. > > steve said he might look into it, so this is what has to be done: > i have attached a file containing what seems to be the spi chips > without correctly set feature_bits fields. we need to check the > datasheets for the opcodes needed to enable writing to the status > register. normally this is either WREN (write enable) or EWSR (enable > write status register), or both. > currently we are only interested in the non-volatile bits of the status > register, but there are chips that require another write enable command > for the volatile bits. if anyone creates a spreadsheet, he should > probably note those too if feasible or maybe even add a comment in the > patch. > > the field should be added after page_size and either set to: > .feature_bits = FEATURE_WRSR_EWSR > or > .feature_bits = FEATURE_WRSR_EITHER > if EWSR and WREN are allowed (all other SPI chips are already set > to FEATURE_WRSR_WREN). in the case we encounter a chip that does use > something else a comment should suffice for the time being. > > we could also split the work up, if it takes too long otherwise... > -- > Kind regards/Mit freundlichen Grüßen, Stefan Tauner > I have tagged all of the ones in this list Stefan gave me except the Sanyo one (no datasheet- apparently not a new issue either). If there are any questions or comments, please send them. Signed-off-by: Steven Zakulec <[email protected]>
Index: flashchips.c =================================================================== --- flashchips.c (revision 1517) +++ flashchips.c (working copy) @@ -545,6 +545,7 @@ .model_id = AMIC_A25L05PT, .total_size = 64, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, .probe_timing = TIMING_ZERO, @@ -578,6 +579,7 @@ .model_id = AMIC_A25L05PU, .total_size = 64, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, .probe_timing = TIMING_ZERO, @@ -611,6 +613,7 @@ .model_id = AMIC_A25L10PT, .total_size = 128, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, .probe_timing = TIMING_ZERO, @@ -645,6 +648,7 @@ .model_id = AMIC_A25L10PU, .total_size = 128, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, .probe_timing = TIMING_ZERO, @@ -679,6 +683,7 @@ .model_id = AMIC_A25L20PT, .total_size = 256, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, .probe_timing = TIMING_ZERO, @@ -713,6 +718,7 @@ .model_id = AMIC_A25L20PU, .total_size = 256, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, .probe_timing = TIMING_ZERO, @@ -752,6 +758,7 @@ .model_id = AMIC_A25L40PT, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN .tested = TEST_OK_PR, .probe = probe_spi_rdid4, .probe_timing = TIMING_ZERO, @@ -786,6 +793,7 @@ .model_id = AMIC_A25L40PU, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN .tested = TEST_OK_PR, .probe = probe_spi_rdid4, .probe_timing = TIMING_ZERO, @@ -820,6 +828,7 @@ .model_id = AMIC_A25L80P, .total_size = 1024, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN .tested = TEST_OK_PRE, .probe = probe_spi_rdid4, .probe_timing = TIMING_ZERO, @@ -854,6 +863,7 @@ .model_id = AMIC_A25L16PT, .total_size = 2048, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, .probe_timing = TIMING_ZERO, @@ -891,6 +901,7 @@ .model_id = AMIC_A25L16PU, .total_size = 2048, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN .tested = TEST_OK_PR, .probe = probe_spi_rdid4, .probe_timing = TIMING_ZERO, @@ -1701,6 +1712,7 @@ .model_id = ATMEL_AT25FS010, .total_size = 128, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -1741,6 +1753,7 @@ .model_id = ATMEL_AT25FS040, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -1778,6 +1791,7 @@ .model_id = ATMEL_AT26DF041, .total_size = 512, .page_size = 256, + /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -1839,6 +1853,7 @@ .model_id = ATMEL_AT26DF161, .total_size = 2048, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -1876,6 +1891,7 @@ .model_id = ATMEL_AT26DF161A, .total_size = 2048, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -1914,6 +1930,7 @@ .model_id = ATMEL_AT26DF321, .total_size = 4096, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -1932,6 +1949,7 @@ .total_size = 512, .page_size = 256, .tested = TEST_UNTESTED, + .feature_bits = FEATURE_WRSR_WREN, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, .block_erasers = @@ -2062,6 +2080,7 @@ .model_id = ATMEL_AT45CS1282, .total_size = 16896 /* No power of two sizes */, .page_size = 1056 /* No power of two sizes */, + /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ .tested = TEST_BAD_READ, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2078,6 +2097,7 @@ .model_id = ATMEL_AT45DB011D, .total_size = 128 /* Size can only be determined from status register */, .page_size = 256 /* Size can only be determined from status register */, + /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ .tested = TEST_BAD_READ, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2094,6 +2114,7 @@ .model_id = ATMEL_AT45DB021D, .total_size = 256 /* Size can only be determined from status register */, .page_size = 256 /* Size can only be determined from status register */, + /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ .tested = TEST_BAD_READ, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2110,6 +2131,7 @@ .model_id = ATMEL_AT45DB041D, .total_size = 512 /* Size can only be determined from status register */, .page_size = 256 /* Size can only be determined from status register */, + /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ .tested = TEST_BAD_READ, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2126,6 +2148,7 @@ .model_id = ATMEL_AT45DB081D, .total_size = 1024 /* Size can only be determined from status register */, .page_size = 256 /* Size can only be determined from status register */, + /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ .tested = TEST_BAD_READ, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2142,6 +2165,7 @@ .model_id = ATMEL_AT45DB161D, .total_size = 2048 /* Size can only be determined from status register */, .page_size = 512 /* Size can only be determined from status register */, + /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ .tested = TEST_BAD_READ, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2158,6 +2182,7 @@ .model_id = ATMEL_AT45DB321C, .total_size = 4224 /* No power of two sizes */, .page_size = 528 /* No power of two sizes */, + /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ .tested = TEST_BAD_READ, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2175,6 +2200,7 @@ .total_size = 4096 /* Size can only be determined from status register */, .page_size = 512 /* Size can only be determined from status register */, /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ + /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ .feature_bits = FEATURE_OTP, .tested = TEST_BAD_READ, .probe = probe_spi_rdid, @@ -2192,6 +2218,7 @@ .model_id = ATMEL_AT45DB642D, .total_size = 8192 /* Size can only be determined from status register */, .page_size = 1024 /* Size can only be determined from status register */, + /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ .tested = TEST_BAD_READ, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2439,6 +2466,7 @@ .model_id = EMST_F25L008A, .total_size = 1024, .page_size = 256, + .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2472,6 +2500,7 @@ .model_id = EON_EN25B05, .total_size = 64, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2504,6 +2533,7 @@ .model_id = EON_EN25B05, .total_size = 64, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2536,6 +2566,7 @@ .model_id = EON_EN25B10, .total_size = 128, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2568,6 +2599,7 @@ .model_id = EON_EN25B10, .total_size = 128, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2600,6 +2632,7 @@ .model_id = EON_EN25B20, .total_size = 256, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2633,6 +2666,7 @@ .model_id = EON_EN25B20, .total_size = 256, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2666,6 +2700,7 @@ .model_id = EON_EN25B40, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2699,6 +2734,7 @@ .model_id = EON_EN25B40, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2732,6 +2768,7 @@ .model_id = EON_EN25B80, .total_size = 1024, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2765,6 +2802,7 @@ .model_id = EON_EN25B80, .total_size = 1024, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2798,6 +2836,7 @@ .model_id = EON_EN25B16, .total_size = 2048, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2831,6 +2870,7 @@ .model_id = EON_EN25B16, .total_size = 2048, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2864,6 +2904,7 @@ .model_id = EON_EN25B32, .total_size = 4096, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2897,6 +2938,7 @@ .model_id = EON_EN25B32, .total_size = 4096, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -2964,6 +3006,7 @@ .model_id = EON_EN25B64, .total_size = 8192, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -4867,6 +4910,7 @@ .model_id = ST_M25PE10, .total_size = 128, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -4897,6 +4941,7 @@ .model_id = ST_M25PE20, .total_size = 256, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -4927,6 +4972,7 @@ .model_id = ST_M25PE40, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -4957,6 +5003,7 @@ .model_id = ST_M25PE80, .total_size = 1024, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -4987,6 +5034,7 @@ .model_id = ST_M25PE16, .total_size = 2048, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5017,6 +5065,7 @@ .model_id = PMC_PM25LV010, .total_size = 128, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5047,6 +5096,7 @@ .model_id = PMC_PM25LV016B, .total_size = 2048, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5083,6 +5133,7 @@ .model_id = PMC_PM25LV020, .total_size = 256, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5113,6 +5164,7 @@ .model_id = PMC_PM25LV040, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5143,6 +5195,7 @@ .model_id = PMC_PM25LV080B, .total_size = 1024, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5179,6 +5232,7 @@ .model_id = PMC_PM25LV512, .total_size = 64, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5514,6 +5568,7 @@ .model_id = SPANSION_S25FL004A, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5541,6 +5596,7 @@ .model_id = SPANSION_S25FL008A, .total_size = 1024, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PRE, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5568,6 +5624,7 @@ .model_id = SPANSION_S25FL016A, .total_size = 2048, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PR, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5595,6 +5652,7 @@ .model_id = SPANSION_S25FL032A, .total_size = 4096, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5622,6 +5680,7 @@ .model_id = SPANSION_S25FL064A, .total_size = 8192, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5649,6 +5708,7 @@ .model_id = SST_SST25VF040_REMS, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_res2, .probe_timing = TIMING_ZERO, @@ -5679,6 +5739,7 @@ .model_id = SST_SST25VF080_REMS, .total_size = 1024, .page_size = 256, + .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_UNTESTED, .probe = probe_spi_res2, .probe_timing = TIMING_ZERO, @@ -5709,6 +5770,7 @@ .model_id = SST_SST25VF010_REMS, .total_size = 128, .page_size = 256, + .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rems, .probe_timing = TIMING_ZERO, @@ -5739,6 +5801,7 @@ .model_id = SST_SST25VF016B, .total_size = 2048, .page_size = 256, + .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5775,6 +5838,7 @@ .model_id = SST_SST25VF032B, .total_size = 4096, .page_size = 256, + .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5811,6 +5875,7 @@ .model_id = SST_SST25VF064C, .total_size = 8192, .page_size = 256, + .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5847,6 +5912,7 @@ .model_id = SST_SST25VF040_REMS, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_EWSR .tested = TEST_OK_PR, .probe = probe_spi_rems, .probe_timing = TIMING_ZERO, @@ -5877,6 +5943,7 @@ .model_id = SST_SST25VF040B, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -5913,6 +5980,7 @@ .model_id = SST_SST25VF040B_REMS, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PR, .probe = probe_spi_rems, .probe_timing = TIMING_ZERO, @@ -5949,6 +6017,7 @@ .model_id = SST_SST25VF080B, .total_size = 1024, .page_size = 256, + .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -6769,6 +6838,7 @@ .model_id = ST_M25P05A, .total_size = 64, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -6801,6 +6871,7 @@ .model_id = ST_M25P05_RES, .total_size = 64, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_res1, .probe_timing = TIMING_ZERO, @@ -6828,6 +6899,7 @@ .model_id = ST_M25P10A, .total_size = 128, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PRE, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -6856,6 +6928,7 @@ .model_id = ST_M25P10_RES, .total_size = 128, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_res1, .probe_timing = TIMING_ZERO, @@ -6883,6 +6956,7 @@ .model_id = ST_M25P20, .total_size = 256, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -6910,6 +6984,7 @@ .model_id = ST_M25P40, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -6937,6 +7012,7 @@ .model_id = ST_M25P40_RES, .total_size = 512, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_res1, .probe_timing = TIMING_ZERO, @@ -6963,6 +7039,7 @@ .model_id = ST_M25P80, .total_size = 1024, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -6990,6 +7067,7 @@ .model_id = ST_M25P16, .total_size = 2048, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PR, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -7017,6 +7095,7 @@ .model_id = ST_M25P32, .total_size = 4096, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -7044,6 +7123,7 @@ .model_id = ST_M25P64, .total_size = 8192, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -7071,6 +7151,7 @@ .model_id = ST_M25P128, .total_size = 16384, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -7099,7 +7180,7 @@ .total_size = 2048, .page_size = 256, /* OTP: 64B total; read 0x4B; write 0x42 */ - .feature_bits = FEATURE_OTP, + .feature_bits = FEATURE_OTP,FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -7129,6 +7210,7 @@ .model_id = ST_M25PX32, .total_size = 4096, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PRE, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, @@ -7159,6 +7241,7 @@ .model_id = ST_M25PX64, .total_size = 8192, .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PRE, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO,
_______________________________________________ flashrom mailing list [email protected] http://www.flashrom.org/mailman/listinfo/flashrom
