flashchips: Enable unbounded reads for all 25-series SPI flash chips

This adds FEATURES_UNBOUND_READ for all 25-series SPI flash chips
and marks them as tested for unbound reads. It assumes that all
currently supported 25-series SPI chips will auto-increment and
are not limited to page-sized reads.

I only checked a few data sheets representing popular vendors
(Winbond, Gigadevice, Macronix, Spansion) and for specific older
chips such as W25X- series (<1MB, sometimes used for EC ROMs). All of
them describe the read command as auto-incrementing and able to
read the entire memory in a single operation.

BUG=none
BRANCH=none
TEST=Tested in-system on veyron_danger (non-x86) and paine (x86),
no real difference in speed. However, Servo read time for a 4MB
ROM on Danger went from about 34sec down to just under 5sec.

Signed-off by: David Hendricks <dhendrix@chromium.org>
Change-Id: Iadbed33cfc570a4cb8d6274ff6ec7d56a1e5008d
Reviewed-on: https://chromium-review.googlesource.com/314239
Commit-Ready: David Hendricks <dhendrix@chromium.org>
Tested-by: David Hendricks <dhendrix@chromium.org>
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
diff --git a/flashchips.c b/flashchips.c
index 6edbf71..e25fcf6 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -546,6 +546,7 @@
 		.model_id	= AMIC_A25L05PT,
 		.total_size	= 64,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid4,
 		.probe_timing	= TIMING_ZERO,
@@ -579,6 +580,7 @@
 		.model_id	= AMIC_A25L05PU,
 		.total_size	= 64,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid4,
 		.probe_timing	= TIMING_ZERO,
@@ -612,6 +614,7 @@
 		.model_id	= AMIC_A25L10PT,
 		.total_size	= 128,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid4,
 		.probe_timing	= TIMING_ZERO,
@@ -646,6 +649,7 @@
 		.model_id	= AMIC_A25L10PU,
 		.total_size	= 128,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid4,
 		.probe_timing	= TIMING_ZERO,
@@ -680,6 +684,7 @@
 		.model_id	= AMIC_A25L20PT,
 		.total_size	= 256,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid4,
 		.probe_timing	= TIMING_ZERO,
@@ -714,6 +719,7 @@
 		.model_id	= AMIC_A25L20PU,
 		.total_size	= 256,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid4,
 		.probe_timing	= TIMING_ZERO,
@@ -753,7 +759,8 @@
 		.model_id	= AMIC_A25L40PT,
 		.total_size	= 512,
 		.page_size	= 256,
-		.tested		= TEST_OK_PR,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PRU,
 		.probe		= probe_spi_rdid4,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -787,7 +794,8 @@
 		.model_id	= AMIC_A25L40PU,
 		.total_size	= 512,
 		.page_size	= 256,
-		.tested		= TEST_OK_PR,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PRU,
 		.probe		= probe_spi_rdid4,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -821,7 +829,8 @@
 		.model_id	= AMIC_A25L80P,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.tested		= TEST_OK_PRE,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREU,
 		.probe		= probe_spi_rdid4,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -855,6 +864,7 @@
 		.model_id	= AMIC_A25L16PT,
 		.total_size	= 2048,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid4,
 		.probe_timing	= TIMING_ZERO,
@@ -892,7 +902,8 @@
 		.model_id	= AMIC_A25L16PU,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.tested		= TEST_OK_PR,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PRU,
 		.probe		= probe_spi_rdid4,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -929,7 +940,7 @@
 		.model_id	= AMIC_A25L512,
 		.total_size	= 64,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -961,7 +972,7 @@
 		.model_id	= AMIC_A25L010,
 		.total_size	= 128,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -993,7 +1004,7 @@
 		.model_id	= AMIC_A25L020,
 		.total_size	= 256,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1025,7 +1036,7 @@
 		.model_id	= AMIC_A25L040,
 		.total_size	= 512,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1058,7 +1069,7 @@
 		.model_id	= AMIC_A25L080,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1090,7 +1101,7 @@
 		.model_id	= AMIC_A25L016,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1122,7 +1133,7 @@
 		.model_id	= AMIC_A25L032,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1160,7 +1171,7 @@
 		.model_id	= AMIC_A25LQ032,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1317,7 +1328,7 @@
 		.model_id	= ATMEL_AT25DF021,
 		.total_size	= 256,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1355,7 +1366,7 @@
 		.model_id	= ATMEL_AT25DF041A,
 		.total_size	= 512,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1393,7 +1404,7 @@
 		.model_id	= ATMEL_AT25DF081,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1431,7 +1442,7 @@
 		.model_id	= ATMEL_AT25DF081A,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1469,7 +1480,7 @@
 		.model_id	= ATMEL_AT25DF161,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1507,8 +1518,8 @@
 		.model_id	= ATMEL_AT25DF321,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PRE,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -1545,7 +1556,7 @@
 		.model_id	= ATMEL_AT25DF321A,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_OK_PROBE,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1583,7 +1594,7 @@
 		.model_id	= ATMEL_AT25DF641,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1621,7 +1632,7 @@
 		.model_id	= ATMEL_AT25DQ161,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1659,7 +1670,7 @@
 		.model_id	= ATMEL_AT25F512B,
 		.total_size	= 64,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1697,6 +1708,7 @@
 		.model_id	= ATMEL_AT25FS010,
 		.total_size	= 128,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -1737,6 +1749,7 @@
 		.model_id	= ATMEL_AT25FS040,
 		.total_size	= 512,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2459,6 +2472,7 @@
 		.model_id	= EMST_F25L008A,
 		.total_size	= 1024,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2492,6 +2506,7 @@
 		.model_id	= EON_EN25B05,
 		.total_size	= 64,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2524,6 +2539,7 @@
 		.model_id	= EON_EN25B05,
 		.total_size	= 64,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2556,6 +2572,7 @@
 		.model_id	= EON_EN25B10,
 		.total_size	= 128,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2588,6 +2605,7 @@
 		.model_id	= EON_EN25B10,
 		.total_size	= 128,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2620,6 +2638,7 @@
 		.model_id	= EON_EN25B20,
 		.total_size	= 256,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2653,6 +2672,7 @@
 		.model_id	= EON_EN25B20,
 		.total_size	= 256,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2686,6 +2706,7 @@
 		.model_id	= EON_EN25B40,
 		.total_size	= 512,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2719,6 +2740,7 @@
 		.model_id	= EON_EN25B40,
 		.total_size	= 512,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2752,6 +2774,7 @@
 		.model_id	= EON_EN25B80,
 		.total_size	= 1024,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2785,6 +2808,7 @@
 		.model_id	= EON_EN25B80,
 		.total_size	= 1024,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2818,6 +2842,7 @@
 		.model_id	= EON_EN25B16,
 		.total_size	= 2048,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2851,6 +2876,7 @@
 		.model_id	= EON_EN25B16,
 		.total_size	= 2048,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2884,6 +2910,7 @@
 		.model_id	= EON_EN25B32,
 		.total_size	= 4096,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2917,6 +2944,7 @@
 		.model_id	= EON_EN25B32,
 		.total_size	= 4096,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2950,7 +2978,7 @@
 		.model_id	= EON_EN25B64,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -2984,6 +3012,7 @@
 		.model_id	= EON_EN25B64,
 		.total_size	= 8192,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3019,7 +3048,7 @@
 		.model_id	= EON_EN25D16,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3056,7 +3085,7 @@
 		.model_id	= EON_EN25F05,
 		.total_size	= 64,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3093,7 +3122,7 @@
 		.model_id	= EON_EN25F10,
 		.total_size	= 128,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3130,7 +3159,7 @@
 		.model_id	= EON_EN25F20,
 		.total_size	= 256,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3167,7 +3196,7 @@
 		.model_id	= EON_EN25F40,
 		.total_size	= 512,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_OK_PROBE,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3202,8 +3231,8 @@
 		.model_id	= EON_EN25F80,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -3236,8 +3265,8 @@
 		.model_id	= EON_EN25F16,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -3270,7 +3299,7 @@
 		.model_id	= EON_EN25F32,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3303,7 +3332,7 @@
 		.model_id	= EON_EN25Q40,
 		.total_size	= 512,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3337,7 +3366,7 @@
 		.model_id	= EON_EN25Q80,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3371,7 +3400,7 @@
 		.model_id	= EON_EN25Q32,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3406,7 +3435,7 @@
 		.model_id	= EON_EN25Q64,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3440,7 +3469,7 @@
 		.model_id	= EON_EN25Q128,
 		.total_size	= 16384,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3475,7 +3504,7 @@
 		.total_size	= 512,
 		.page_size	= 256,
 		/* TODO: chip features 256-byte one-time programmable region */
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3510,7 +3539,7 @@
 		.total_size	= 1024,
 		.page_size	= 256,
 		/* TODO: chip features 256-byte one-time programmable region */
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3545,7 +3574,7 @@
 		.total_size	= 4096,
 		.page_size	= 256,
 		/* TODO: chip features 512-byte one-time programmable region */
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3580,7 +3609,7 @@
 		.total_size	= 8192,
 		.page_size	= 256,
 		/* TODO: chip features 512-byte one-time programmable region */
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3615,7 +3644,7 @@
 		.total_size	= 16384,
 		.page_size	= 256,
 		/* TODO: chip features 512-byte one-time programmable region */
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3651,7 +3680,7 @@
 		/* TODO: chip features 512-byte one-time programmable region
 		 * and supports SFDP.
 		 */
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3686,8 +3715,8 @@
 		.page_size	= 256,
 		/* FIXME: add FEATURE_OTP and FEATURE_QPI removed */
 		/* OTP: 512B total; enter 0x3A */
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	= {
@@ -3909,7 +3938,7 @@
 		.model_id	= GIGADEVICE_GD25Q20,
 		.total_size	= 256,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3946,7 +3975,7 @@
 		.model_id	= GIGADEVICE_GD25Q40,
 		.total_size	= 512,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -3985,8 +4014,8 @@
 		.page_size	= 256,
 		/* FIXME: add FEATURE_OTP when we sync w/ upstream */
 		/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42 */
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -4024,7 +4053,7 @@
 		.page_size	= 256,
 		/* FIXME: add FEATURE_OTP when we sync w/ upstream */
 		/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42 */
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -4063,8 +4092,8 @@
 		.page_size	= 256,
 		/* FIXME: add FEATURE_OTP when we sync w/ upstream */
 		/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42 */
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -4103,8 +4132,8 @@
 		.page_size	= 256,
 		/* FIXME: add FEATURE_OTP when we sync w/ upstream */
 		/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42 */
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -4142,7 +4171,7 @@
 		.page_size	= 256,
 		/* FIXME: add FEATURE_OTP when we sync w/ upstream */
 		/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42 */
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -4210,8 +4239,8 @@
 		.model_id	= GIGADEVICE_GD25LQ32,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -4250,8 +4279,8 @@
 			.page_size	= 256,
 			/* FIXME: add FEATURE_OTP when we sync w/ upstream */
 			/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42 */
-			.feature_bits	= FEATURE_WRSR_WREN,
-			.tested		= TEST_OK_PREW,
+			.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+			.tested		= TEST_OK_PREWU,
 			.probe		= probe_spi_rdid,
 			.probe_timing	= TIMING_ZERO,
 			.block_erasers	=
@@ -4643,7 +4672,7 @@
 		.total_size	= 64,
 		.page_size	= 256,
 		/* MX25L512E supports SFDP */
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -4681,8 +4710,8 @@
 		.total_size	= 128,
 		.page_size	= 256,
 		/* MX25L1006E supports SFDP */
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -4716,7 +4745,7 @@
 		.model_id	= MACRONIX_MX25L2005,
 		.total_size	= 256,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -4754,8 +4783,8 @@
 		.model_id	= MACRONIX_MX25L4005,
 		.total_size	= 512,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -4792,8 +4821,8 @@
 		.model_id	= MACRONIX_MX25L8005,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -4830,8 +4859,8 @@
 		.model_id	= MACRONIX_MX25L1605,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -4868,7 +4897,7 @@
 		.model_id	= MACRONIX_MX25L1635D,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -4902,7 +4931,7 @@
 		.model_id	= MACRONIX_MX25L1635E,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -4936,8 +4965,8 @@
 		.model_id	= MACRONIX_MX25L3205,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -4971,7 +5000,7 @@
 		.model_id	= MACRONIX_MX25L3235D,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -5005,7 +5034,7 @@
 		.model_id	= MACRONIX_MX25U3235E,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -5044,7 +5073,7 @@
 		.model_id	= MACRONIX_MX25L6405,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_OK_PROBE,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -5082,8 +5111,8 @@
 		.model_id	= MACRONIX_MX25L6405,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -5120,8 +5149,8 @@
 		.model_id	= MACRONIX_MX25L6495F,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -5158,8 +5187,8 @@
 		.model_id	= MACRONIX_MX25U6435E,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -5197,8 +5226,8 @@
 		/* FIXME(dhendrix): support 32-bit addressing */
 		.total_size	= 32768/2,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -5237,7 +5266,7 @@
 		.model_id	= MACRONIX_MX25L12805,
 		.total_size	= 16384,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -5670,6 +5699,7 @@
 		.model_id	= ST_M25PE10,
 		.total_size	= 128,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -5700,6 +5730,7 @@
 		.model_id	= ST_M25PE20,
 		.total_size	= 256,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -5730,6 +5761,7 @@
 		.model_id	= ST_M25PE40,
 		.total_size	= 512,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -5760,7 +5792,8 @@
 		.model_id	= ST_M25PE80,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.tested		= TEST_OK_PRE,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -5790,6 +5823,7 @@
 		.model_id	= ST_M25PE16,
 		.total_size	= 2048,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -5824,8 +5858,8 @@
 		/* supports SFDP */
 		/* OTP: 64B total; read 0x4B, write 0x42 */
 		/* FIXME: add FEATURE_OTP when we sync w/ upstream */
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -5860,8 +5894,8 @@
 		/* supports SFDP */
 		/* OTP: 64B total; read 0x4B, write 0x42 */
 		/* FIXME: add FEATURE_OTP when we sync w/ upstream */
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -5898,8 +5932,8 @@
 		/* supports SFDP */
 		/* OTP: 64B total; read 0x4B, write 0x42 */
 		/* FIXME: add FEATURE_OTP when we sync w/ upstream */
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -5944,6 +5978,7 @@
 		.model_id	= PMC_PM25LV010,
 		.total_size	= 128,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -5974,6 +6009,7 @@
 		.model_id	= PMC_PM25LV016B,
 		.total_size	= 2048,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -6010,6 +6046,7 @@
 		.model_id	= PMC_PM25LV020,
 		.total_size	= 256,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -6040,7 +6077,8 @@
 		.model_id	= PMC_PM25LV040,
 		.total_size	= 512,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -6070,6 +6108,7 @@
 		.model_id	= PMC_PM25LV080B,
 		.total_size	= 1024,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -6106,6 +6145,7 @@
 		.model_id	= PMC_PM25LV512,
 		.total_size	= 64,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -6352,6 +6392,7 @@
 		.model_id	= SANYO_LE25FW203A,
 		.total_size	= 2048,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -6441,6 +6482,7 @@
 		.model_id	= SPANSION_S25FL004A,
 		.total_size	= 512,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -6468,6 +6510,7 @@
 		.model_id	= SPANSION_S25FL004A,
 		.total_size	= 512,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -6494,7 +6537,8 @@
 		.model_id	= SPANSION_S25FL008A,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.tested		= TEST_OK_PRE,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -6521,7 +6565,8 @@
 		.model_id	= SPANSION_S25FL016A,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.tested		= TEST_OK_PR,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PRU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -6548,6 +6593,7 @@
 		.model_id	= SPANSION_S25FL032A,
 		.total_size	= 4096,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -6575,7 +6621,8 @@
 		.model_id	= SPANSION_S25FL064A,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -6602,7 +6649,8 @@
 		.model_id	= SPANSION_S25FL116K,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -6633,7 +6681,7 @@
 		.model_id	= SPANSION_S25FS128S_L,
 		.total_size	= 16384,
 		.page_size	= 256,
-		.feature_bits   = FEATURE_WRSR_WREN,
+		.feature_bits   = FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_big_spansion,
 		.probe_timing	= TIMING_ZERO,
@@ -6665,8 +6713,8 @@
 		.model_id	= SPANSION_S25FS128S_S,
 		.total_size	= 16384,
 		.page_size	= 256,
-		.feature_bits   = FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits   = FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_big_spansion,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -6697,7 +6745,7 @@
 		.model_id	= SPANSION_S25FL256S_UL,
 		.total_size	= 16384,  /* This is just half the size.... */
 		.page_size	= 256,
-		.feature_bits   = FEATURE_WRSR_WREN,
+		.feature_bits   = FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_big_spansion,
 		.probe_timing	= TIMING_ZERO,
@@ -6726,8 +6774,8 @@
 		.model_id	= SPANSION_S25FL256S_US,
 		.total_size	= 16384,   /* This is just half the size.... */
 		.page_size	= 256,
-		.feature_bits   = FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits   = FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_big_spansion,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -6755,7 +6803,7 @@
 		.model_id	= SPANSION_S25FL128S_UL,
 		.total_size	= 16384,
 		.page_size	= 256,
-		.feature_bits   = FEATURE_WRSR_WREN,
+		.feature_bits   = FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_big_spansion,
 		.probe_timing	= TIMING_ZERO,
@@ -6819,7 +6867,8 @@
 		.model_id	= SST_SST25VF040_REMS,
 		.total_size	= 512,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_res2,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -6849,6 +6898,7 @@
 		.model_id	= SST_SST25VF080_REMS,
 		.total_size	= 1024,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_res2,
 		.probe_timing	= TIMING_ZERO,
@@ -6879,7 +6929,8 @@
 		.model_id	= SST_SST25VF010_REMS,
 		.total_size	= 128,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rems,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -6909,6 +6960,7 @@
 		.model_id	= SPANSION_S25FL032A,
 		.total_size	= 4096,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -6935,7 +6987,8 @@
 		.model_id	= SPANSION_S25FL064A,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -6961,7 +7014,8 @@
 		.model_id	= SST_SST25VF010_REMS,
 		.total_size	= 128,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rems,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -6990,7 +7044,8 @@
 		.model_id	= SST_SST25VF016B,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -7026,7 +7081,8 @@
 		.model_id	= SST_SST25VF032B,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -7062,7 +7118,8 @@
 		.model_id	= SST_SST25VF064C,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.tested		= TEST_OK_PRE,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -7098,7 +7155,8 @@
 		.model_id	= SST_SST25VF040_REMS,
 		.total_size	= 512,
 		.page_size	= 256,
-		.tested		= TEST_OK_PR,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PRU,
 		.probe		= probe_spi_rems,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -7128,6 +7186,7 @@
 		.model_id	= SST_SST25VF040B,
 		.total_size	= 512,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -7164,7 +7223,8 @@
 		.model_id	= SST_SST25VF040B_REMS,
 		.total_size	= 512,
 		.page_size	= 256,
-		.tested		= TEST_OK_PR,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PRU,
 		.probe		= probe_spi_rems,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -7200,7 +7260,8 @@
 		.model_id	= SST_SST25VF080B,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.tested		= TEST_OK_PRE,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -8020,6 +8081,7 @@
 		.model_id	= ST_M25P05A,
 		.total_size	= 64,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -8052,6 +8114,7 @@
 		.model_id	= ST_M25P05_RES,
 		.total_size	= 64,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_res1,
 		.probe_timing	= TIMING_ZERO,
@@ -8079,7 +8142,8 @@
 		.model_id	= ST_M25P10A,
 		.total_size	= 128,
 		.page_size	= 256,
-		.tested		= TEST_OK_PRE,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -8107,6 +8171,7 @@
 		.model_id	= ST_M25P10_RES,
 		.total_size	= 128,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_res1,
 		.probe_timing	= TIMING_ZERO,
@@ -8134,6 +8199,7 @@
 		.model_id	= ST_M25P20,
 		.total_size	= 256,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -8161,7 +8227,8 @@
 		.model_id	= ST_M25P40,
 		.total_size	= 512,
 		.page_size	= 256,
-		.tested		= TEST_OK_PR,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PRU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -8188,6 +8255,7 @@
 		.model_id	= ST_M25P40_RES,
 		.total_size	= 512,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_res1,
 		.probe_timing	= TIMING_ZERO,
@@ -8214,7 +8282,8 @@
 		.model_id	= ST_M25P80,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -8241,7 +8310,8 @@
 		.model_id	= ST_M25P16,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.tested		= TEST_OK_PR,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PRU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -8268,7 +8338,8 @@
 		.model_id	= ST_M25P32,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -8295,6 +8366,7 @@
 		.model_id	= ST_M25P64,
 		.total_size	= 8192,
 		.page_size	= 256,
+		.feature_bits	= FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -8322,7 +8394,8 @@
 		.model_id	= ST_M25P128,
 		.total_size	= 16384,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -8349,7 +8422,8 @@
 		.model_id	= ST_M25PX16,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -8378,7 +8452,8 @@
 		.model_id	= ST_M25PX32,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.tested		= TEST_OK_PRE,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -8408,7 +8483,8 @@
 		.model_id	= ST_M25PX64,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.tested		= TEST_OK_PRE,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -8437,7 +8513,8 @@
 		.model_id	= ST_M25PX32,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.tested		= TEST_OK_PRE,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -8466,7 +8543,8 @@
 		.model_id	= ST_M25PX64,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.tested		= TEST_OK_PRE,
+		.feature_bits	= FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -9275,8 +9353,8 @@
 		.model_id	= WINBOND_NEX_W25Q80,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -9313,8 +9391,8 @@
 		.model_id	= WINBOND_NEX_W25Q16,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -9351,8 +9429,8 @@
 		.model_id	= WINBOND_NEX_W25Q32,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -9389,8 +9467,8 @@
 		.model_id	= WINBOND_NEX_W25Q32DW,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -9427,8 +9505,8 @@
 		.model_id	= WINBOND_NEX_W25Q64,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -9465,8 +9543,8 @@
 		.model_id	= WINBOND_NEX_W25Q64DW,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -9540,7 +9618,7 @@
 		.model_id	= WINBOND_NEX_W25Q128FW,
 		.total_size	= 16384,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_OK_PROBE,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -9577,8 +9655,8 @@
 		.model_id	= WINBOND_NEX_W25X10,
 		.total_size	= 128,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -9609,7 +9687,7 @@
 		.model_id	= WINBOND_NEX_W25X20,
 		.total_size	= 256,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -9641,8 +9719,8 @@
 		.model_id	= WINBOND_NEX_W25X40,
 		.total_size	= 512,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -9673,8 +9751,8 @@
 		.model_id	= WINBOND_NEX_W25X80,
 		.total_size	= 1024,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -9705,8 +9783,8 @@
 		.model_id	= WINBOND_NEX_W25X16,
 		.total_size	= 2048,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
-		.tested		= TEST_OK_PREW,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
+		.tested		= TEST_OK_PREWU,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.block_erasers	=
@@ -9742,7 +9820,7 @@
 		.model_id	= WINBOND_NEX_W25X32,
 		.total_size	= 4096,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_OK_PROBE,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
@@ -9779,7 +9857,7 @@
 		.model_id	= WINBOND_NEX_W25X64,
 		.total_size	= 8192,
 		.page_size	= 256,
-		.feature_bits	= FEATURE_WRSR_WREN,
+		.feature_bits	= FEATURE_WRSR_WREN | FEATURE_UNBOUND_READ,
 		.tested		= TEST_OK_PROBE,
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,