1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
--- flashchips.c 2014-12-14 11:05:12.512662091 +0000
+++ flashchips.c.patch.i945_lenovobios_sst 2014-12-14 11:11:27.790522994 +0000
@@ -6602,115 +6602,6 @@
{
.vendor = "Macronix",
- .name = "MX25L1605",
- .bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L1605,
- .total_size = 2048,
- .page_size = 256,
- .feature_bits = FEATURE_WRSR_WREN,
- .tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
- .probe_timing = TIMING_ZERO,
- .block_erasers =
- {
- {
- .eraseblocks = { {64 * 1024, 32} },
- .block_erase = spi_block_erase_20,
- }, {
- .eraseblocks = { {64 * 1024, 32} },
- .block_erase = spi_block_erase_d8,
- }, {
- .eraseblocks = { {2 * 1024 * 1024, 1} },
- .block_erase = spi_block_erase_60,
- }, {
- .eraseblocks = { {2 * 1024 * 1024, 1} },
- .block_erase = spi_block_erase_c7,
- },
- },
- .printlock = spi_prettyprint_status_register_bp2_srwd, /* bit6: error flag */
- .unlock = spi_disable_blockprotect,
- .write = spi_chip_write_256,
- .read = spi_chip_read, /* Fast read (0x0B) supported */
- .voltage = {2700, 3600},
- },
-
- {
- .vendor = "Macronix",
- .name = "MX25L1605A/MX25L1606E",
- .bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L1605,
- .total_size = 2048,
- .page_size = 256,
- /* OTP: 64B total; enter 0xB1, exit 0xC1 (MX25L1606E only) */
- .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
- .tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
- .probe_timing = TIMING_ZERO,
- .block_erasers =
- {
- {
- .eraseblocks = { {4 * 1024, 512} },
- .block_erase = spi_block_erase_20,
- }, {
- .eraseblocks = { {64 * 1024, 32} },
- .block_erase = spi_block_erase_52,
- }, {
- .eraseblocks = { {64 * 1024, 32} },
- .block_erase = spi_block_erase_d8,
- }, {
- .eraseblocks = { {2 * 1024 * 1024, 1} },
- .block_erase = spi_block_erase_60,
- }, {
- .eraseblocks = { {2 * 1024 * 1024, 1} },
- .block_erase = spi_block_erase_c7,
- },
- },
- .printlock = spi_prettyprint_status_register_bp3_srwd, /* MX25L1605A bp2 only */
- .unlock = spi_disable_blockprotect,
- .write = spi_chip_write_256,
- .read = spi_chip_read, /* Fast read (0x0B) supported */
- .voltage = {2700, 3600},
- },
-
- {
- .vendor = "Macronix",
- .name = "MX25L1605D/MX25L1608D/MX25L1673E",
- .bustype = BUS_SPI,
- .manufacture_id = MACRONIX_ID,
- .model_id = MACRONIX_MX25L1605,
- .total_size = 2048,
- .page_size = 256,
- .feature_bits = FEATURE_WRSR_WREN,
- .tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
- .probe_timing = TIMING_ZERO,
- .block_erasers =
- {
- {
- .eraseblocks = { {4 * 1024, 512} },
- .block_erase = spi_block_erase_20,
- }, {
- .eraseblocks = { {64 * 1024, 32} },
- .block_erase = spi_block_erase_d8,
- }, {
- .eraseblocks = { {2 * 1024 * 1024, 1} },
- .block_erase = spi_block_erase_60,
- }, {
- .eraseblocks = { {2 * 1024 * 1024, 1} },
- .block_erase = spi_block_erase_c7,
- },
- },
- .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6: Continuously Program (CP) mode */
- .unlock = spi_disable_blockprotect,
- .write = spi_chip_write_256,
- .read = spi_chip_read, /* Fast read (0x0B), dual I/O supported */
- .voltage = {2700, 3600},
- },
-
- {
- .vendor = "Macronix",
.name = "MX25L1635D",
.bustype = BUS_SPI,
.manufacture_id = MACRONIX_ID,
@@ -11149,12 +11040,12 @@
.name = "SST25VF016B",
.bustype = BUS_SPI,
.manufacture_id = SST_ID,
- .model_id = SST_SST25VF016B,
+ .model_id = 0x41,
.total_size = 2048,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EITHER,
.tested = TEST_OK_PREW,
- .probe = probe_spi_rdid,
+ .probe = probe_spi_res2,
.probe_timing = TIMING_ZERO,
.block_erasers =
{
@@ -11177,7 +11068,7 @@
},
.printlock = spi_prettyprint_status_register_sst25vf016,
.unlock = spi_disable_blockprotect,
- .write = spi_aai_write,
+ .write = spi_chip_write_1,
.read = spi_chip_read,
.voltage = {2700, 3600},
},
|