.. | .. |
---|
13 | 13 | #include "sfc_nor.h" |
---|
14 | 14 | |
---|
15 | 15 | static struct flash_info spi_flash_tbl[] = { |
---|
16 | | - /* GD25Q40B */ |
---|
17 | | - { 0xc84013, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x05, 10, 9, 0 }, |
---|
18 | 16 | /* GD25Q32B */ |
---|
19 | 17 | { 0xc84016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 13, 9, 0 }, |
---|
20 | | - /* GD25Q64B/C/E */ |
---|
21 | | - { 0xc84017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
---|
| 18 | + /* GD25Q64B */ |
---|
| 19 | + { 0xc84017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 9, 0 }, |
---|
22 | 20 | /* GD25Q127C and GD25Q128C/E */ |
---|
23 | 21 | { 0xc84018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
---|
24 | 22 | /* GD25Q256B/C/D/E */ |
---|
.. | .. |
---|
27 | 25 | { 0xc84020, 128, 8, 0x13, 0x12, 0x6C, 0x3E, 0x21, 0xDC, 0x1C, 17, 6, 0 }, |
---|
28 | 26 | /* GD25LQ64C */ |
---|
29 | 27 | { 0xc86017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 9, 0 }, |
---|
30 | | - /* GD25LQ128 */ |
---|
31 | | - { 0xc86018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 15, 9, 0 }, |
---|
32 | 28 | /* GD25LQ32E */ |
---|
33 | 29 | { 0xc86016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 13, 9, 0 }, |
---|
34 | 30 | /* GD25B512MEYIG */ |
---|
35 | 31 | { 0xc8471A, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 17, 0, 0 }, |
---|
36 | | - /* GD25LQ255E and GD25LQ256C */ |
---|
37 | | - { 0xc86019, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1D, 16, 9, 0 }, |
---|
38 | | - /* GD25LB512MEYIG */ |
---|
39 | | - { 0xc8671A, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 17, 0, 0 }, |
---|
40 | | - /* GD55B01GE */ |
---|
41 | | - { 0xc8471B, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 18, 0, 0 }, |
---|
42 | 32 | |
---|
43 | 33 | /* W25Q32JV */ |
---|
44 | 34 | { 0xef4016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 13, 9, 0 }, |
---|
.. | .. |
---|
84 | 74 | |
---|
85 | 75 | /* XM25QH32C */ |
---|
86 | 76 | { 0x204016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 13, 9, 0 }, |
---|
87 | | - /* XM25QH64C */ |
---|
88 | | - { 0x204017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
---|
89 | | - /* XM25QH128C */ |
---|
90 | | - { 0x204018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x05, 15, 9, 0 }, |
---|
91 | | - /* XM25QH256C */ |
---|
92 | | - { 0x204019, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 16, 9, 0 }, |
---|
93 | 77 | /* XM25QH64B */ |
---|
94 | 78 | { 0x206017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 6, 0 }, |
---|
95 | 79 | /* XM25QH128B */ |
---|
.. | .. |
---|
98 | 82 | { 0x206019, 128, 8, 0x13, 0x12, 0x6C, 0x3E, 0x21, 0xDC, 0x1D, 16, 6, 0 }, |
---|
99 | 83 | /* XM25QH64A */ |
---|
100 | 84 | { 0x207017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 0, 0 }, |
---|
101 | | - /* XM25QU128C */ |
---|
102 | | - { 0x204118, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
---|
103 | | - /* XM25QU64C */ |
---|
104 | | - { 0x204117, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
---|
105 | 85 | |
---|
106 | 86 | /* XT25F128A XM25QH128A */ |
---|
107 | 87 | { 0x207018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 0, 0 }, |
---|
.. | .. |
---|
111 | 91 | { 0x0b4018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 15, 9, 0 }, |
---|
112 | 92 | /* XT25F256BSFIGU */ |
---|
113 | 93 | { 0x0b4019, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 16, 9, 0 }, |
---|
114 | | - /* XT25F32BS XT25F32F */ |
---|
| 94 | + /* XT25F32BS */ |
---|
115 | 95 | { 0x0b4016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 13, 9, 0 }, |
---|
116 | 96 | /* XT25F16BS */ |
---|
117 | 97 | { 0x0b4015, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 12, 9, 0 }, |
---|
118 | | - /* XT25Q64D */ |
---|
119 | | - { 0x0b6017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
---|
120 | | - /* XT25Q128D */ |
---|
121 | | - { 0x0b6018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
---|
122 | 98 | |
---|
123 | 99 | /* EN25QH64A */ |
---|
124 | 100 | { 0x1c7017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 0, 0 }, |
---|
.. | .. |
---|
131 | 107 | /* EN25S64A */ |
---|
132 | 108 | { 0x1c3817, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 0, 0 }, |
---|
133 | 109 | /* EN25QH256A */ |
---|
134 | | - { 0x1c7019, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 16, 0, 0 }, |
---|
135 | | - /* EN25QX256A */ |
---|
136 | | - { 0x1c7119, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 16, 9, 0 }, |
---|
137 | | - /* EN25QX128A */ |
---|
138 | | - { 0x1c7118, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
---|
| 110 | + { 0x1c7019, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x3C, 16, 0, 0 }, |
---|
139 | 111 | |
---|
140 | 112 | /* P25Q64H */ |
---|
141 | 113 | { 0x856017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
---|
.. | .. |
---|
143 | 115 | { 0x856018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
---|
144 | 116 | /* P25Q16H-SUH-IT */ |
---|
145 | 117 | { 0x856015, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 12, 9, 0 }, |
---|
146 | | - /* P25Q32SL P25Q32SH-SSH-IT */ |
---|
| 118 | + /* FM25Q64A */ |
---|
| 119 | + { 0xf83217, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 9, 0 }, |
---|
| 120 | + /* FM25M64C */ |
---|
| 121 | + { 0xf84317, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 9, 0 }, |
---|
| 122 | + /* P25Q32SL */ |
---|
147 | 123 | { 0x856016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 13, 9, 0 }, |
---|
148 | | - /* PY25Q64HA */ |
---|
149 | | - { 0x852017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
---|
150 | | - /* PY25Q128H */ |
---|
151 | | - { 0x852018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
---|
152 | | - /* PY25Q256H */ |
---|
153 | | - { 0x852019, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 16, 9, 0 }, |
---|
154 | 124 | |
---|
155 | 125 | /* ZB25VQ64 */ |
---|
156 | 126 | { 0x5e4017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
---|
.. | .. |
---|
164 | 134 | /* BH25Q64BS */ |
---|
165 | 135 | { 0x684017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
---|
166 | 136 | |
---|
| 137 | + /* P25Q64H */ |
---|
| 138 | + { 0x856017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
---|
| 139 | + /* P25Q32SH-SSH-IT */ |
---|
| 140 | + { 0x856016, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 13, 9, 0 }, |
---|
| 141 | + |
---|
167 | 142 | /* FM25Q128A */ |
---|
168 | 143 | { 0xA14018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
---|
169 | 144 | /* FM25Q64-SOB-T-G */ |
---|
170 | 145 | { 0xA14017, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 14, 9, 0 }, |
---|
171 | | - /* FM25Q256I3 */ |
---|
172 | | - { 0xA14019, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 16, 9, 0 }, |
---|
173 | 146 | |
---|
174 | 147 | /* FM25Q64A */ |
---|
175 | 148 | { 0xf83217, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 9, 0 }, |
---|
176 | 149 | /* FM25M4AA */ |
---|
177 | 150 | { 0xf84218, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 15, 9, 0 }, |
---|
178 | | - /* FM25M64C */ |
---|
179 | | - { 0xf84317, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0D, 14, 9, 0 }, |
---|
180 | | - |
---|
181 | 151 | /* DS25M4AB-1AIB4 */ |
---|
182 | 152 | { 0xe54218, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
---|
183 | 153 | |
---|
184 | 154 | /* GM25Q128A */ |
---|
185 | 155 | { 0x1c4018, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 9, 0 }, |
---|
186 | | - |
---|
187 | | - /* IS25LP512M */ |
---|
188 | | - { 0x9D601A, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x3C, 17, 6, 0 }, |
---|
189 | | - /* IS25WP512M */ |
---|
190 | | - { 0x9D701A, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x3C, 17, 6, 0 }, |
---|
191 | | - |
---|
192 | | - /* BY25Q256FSEIG */ |
---|
193 | | - { 0x684919, 128, 8, 0x13, 0x12, 0x6C, 0x34, 0x21, 0xDC, 0x1C, 16, 9, 0 }, |
---|
194 | | - |
---|
195 | | - /* NM25Q128EVB */ |
---|
196 | | - { 0x522118, 128, 8, 0x03, 0x02, 0x6B, 0x32, 0x20, 0xD8, 0x0C, 15, 10, 0 }, |
---|
197 | 156 | }; |
---|
198 | 157 | |
---|
199 | 158 | static int snor_write_en(void) |
---|
.. | .. |
---|
763 | 722 | snor_read_id(id_byte); |
---|
764 | 723 | rkflash_print_error("sfc nor id: %x %x %x\n", |
---|
765 | 724 | id_byte[0], id_byte[1], id_byte[2]); |
---|
766 | | - if (0xFF == id_byte[0] || 0x00 == id_byte[0] || 0xFF == id_byte[1] || 0x00 == id_byte[1]) |
---|
| 725 | + if (0xFF == id_byte[0] || 0x00 == id_byte[0]) |
---|
767 | 726 | return SFC_ERROR; |
---|
768 | 727 | |
---|
769 | 728 | g_spi_flash_info = snor_get_flash_info(id_byte); |
---|