@@ -42,102 +42,191 @@ static const struct spi_nor_fixups w25q256_fixups = {
4242};
4343
4444static const struct flash_info winbond_nor_parts [] = {
45- { "w25x05" , INFO (0xef3010 , 0 , 64 * 1024 , 1 )
46- NO_SFDP_FLAGS (SECT_4K ) },
47- { "w25x10" , INFO (0xef3011 , 0 , 64 * 1024 , 2 )
48- NO_SFDP_FLAGS (SECT_4K ) },
49- { "w25x20" , INFO (0xef3012 , 0 , 64 * 1024 , 4 )
50- NO_SFDP_FLAGS (SECT_4K ) },
51- { "w25x40" , INFO (0xef3013 , 0 , 64 * 1024 , 8 )
52- NO_SFDP_FLAGS (SECT_4K ) },
53- { "w25x80" , INFO (0xef3014 , 0 , 64 * 1024 , 16 )
54- NO_SFDP_FLAGS (SECT_4K ) },
55- { "w25x16" , INFO (0xef3015 , 0 , 64 * 1024 , 32 )
56- NO_SFDP_FLAGS (SECT_4K ) },
57- { "w25q16dw" , INFO (0xef6015 , 0 , 64 * 1024 , 32 )
58- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB )
59- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
60- SPI_NOR_QUAD_READ ) },
61- { "w25x32" , INFO (0xef3016 , 0 , 64 * 1024 , 64 )
62- NO_SFDP_FLAGS (SECT_4K ) },
63- { "w25q16jv-im/jm" , INFO (0xef7015 , 0 , 64 * 1024 , 32 )
64- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB )
65- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
66- SPI_NOR_QUAD_READ ) },
67- { "w25q20cl" , INFO (0xef4012 , 0 , 64 * 1024 , 4 )
68- NO_SFDP_FLAGS (SECT_4K ) },
69- { "w25q20bw" , INFO (0xef5012 , 0 , 64 * 1024 , 4 )
70- NO_SFDP_FLAGS (SECT_4K ) },
71- { "w25q20ew" , INFO (0xef6012 , 0 , 64 * 1024 , 4 )
72- NO_SFDP_FLAGS (SECT_4K ) },
73- { "w25q32" , INFO (0xef4016 , 0 , 64 * 1024 , 64 )
74- NO_SFDP_FLAGS (SECT_4K ) },
75- { "w25q32dw" , INFO (0xef6016 , 0 , 64 * 1024 , 64 )
76- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB )
77- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
78- OTP_INFO (256 , 3 , 0x1000 , 0x1000 ) },
79- { "w25q32jv" , INFO (0xef7016 , 0 , 64 * 1024 , 64 )
80- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB )
81- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
82- SPI_NOR_QUAD_READ ) },
83- { "w25q32jwm" , INFO (0xef8016 , 0 , 64 * 1024 , 64 )
84- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB )
85- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
86- OTP_INFO (256 , 3 , 0x1000 , 0x1000 ) },
87- { "w25q64jwm" , INFO (0xef8017 , 0 , 64 * 1024 , 128 )
88- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB )
89- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
90- SPI_NOR_QUAD_READ ) },
91- { "w25q128jwm" , INFO (0xef8018 , 0 , 64 * 1024 , 256 )
92- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB )
93- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
94- SPI_NOR_QUAD_READ ) },
95- { "w25q256jwm" , INFO (0xef8019 , 0 , 64 * 1024 , 512 )
96- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB )
97- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
98- SPI_NOR_QUAD_READ ) },
99- { "w25x64" , INFO (0xef3017 , 0 , 64 * 1024 , 128 )
100- NO_SFDP_FLAGS (SECT_4K ) },
101- { "w25q64" , INFO (0xef4017 , 0 , 64 * 1024 , 128 )
102- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
103- SPI_NOR_QUAD_READ ) },
104- { "w25q64dw" , INFO (0xef6017 , 0 , 64 * 1024 , 128 )
105- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB )
106- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
107- SPI_NOR_QUAD_READ ) },
108- { "w25q64jvm" , INFO (0xef7017 , 0 , 64 * 1024 , 128 )
109- NO_SFDP_FLAGS (SECT_4K ) },
110- { "w25q128fw" , INFO (0xef6018 , 0 , 64 * 1024 , 256 )
111- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB )
112- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
113- SPI_NOR_QUAD_READ ) },
114- { "w25q128jv" , INFO (0xef7018 , 0 , 64 * 1024 , 256 )
115- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB )
116- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
117- SPI_NOR_QUAD_READ ) },
118- { "w25q80" , INFO (0xef5014 , 0 , 64 * 1024 , 16 )
119- NO_SFDP_FLAGS (SECT_4K ) },
120- { "w25q80bl" , INFO (0xef4014 , 0 , 64 * 1024 , 16 )
121- NO_SFDP_FLAGS (SECT_4K ) },
122- { "w25q128" , INFO (0xef4018 , 0 , 0 , 0 )
123- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ) },
124- { "w25q256" , INFO (0xef4019 , 0 , 64 * 1024 , 512 )
125- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
126- .fixups = & w25q256_fixups },
127- { "w25q256jvm" , INFO (0xef7019 , 0 , 64 * 1024 , 0 ) },
128- { "w25q256jw" , INFO (0xef6019 , 0 , 64 * 1024 , 512 )
129- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
130- SPI_NOR_QUAD_READ ) },
131- { "w25m512jv" , INFO (0xef7119 , 0 , 64 * 1024 , 1024 )
132- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_QUAD_READ |
133- SPI_NOR_DUAL_READ ) },
134- { "w25q512nwq" , INFO (0xef6020 , 0 , 0 , 0 )
135- OTP_INFO (256 , 3 , 0x1000 , 0x1000 ) },
136- { "w25q512nwm" , INFO (0xef8020 , 0 , 64 * 1024 , 0 )
137- OTP_INFO (256 , 3 , 0x1000 , 0x1000 ) },
138- { "w25q512jvq" , INFO (0xef4020 , 0 , 64 * 1024 , 1024 )
139- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
140- SPI_NOR_QUAD_READ ) },
45+ {
46+ .id = SNOR_ID (0xef , 0x30 , 0x10 ),
47+ .name = "w25x05" ,
48+ .size = SZ_64K ,
49+ .no_sfdp_flags = SECT_4K ,
50+ }, {
51+ .id = SNOR_ID (0xef , 0x30 , 0x11 ),
52+ .name = "w25x10" ,
53+ .size = SZ_128K ,
54+ .no_sfdp_flags = SECT_4K ,
55+ }, {
56+ .id = SNOR_ID (0xef , 0x30 , 0x12 ),
57+ .name = "w25x20" ,
58+ .size = SZ_256K ,
59+ .no_sfdp_flags = SECT_4K ,
60+ }, {
61+ .id = SNOR_ID (0xef , 0x30 , 0x13 ),
62+ .name = "w25x40" ,
63+ .size = SZ_512K ,
64+ .no_sfdp_flags = SECT_4K ,
65+ }, {
66+ .id = SNOR_ID (0xef , 0x30 , 0x14 ),
67+ .name = "w25x80" ,
68+ .size = SZ_1M ,
69+ .no_sfdp_flags = SECT_4K ,
70+ }, {
71+ .id = SNOR_ID (0xef , 0x30 , 0x15 ),
72+ .name = "w25x16" ,
73+ .size = SZ_2M ,
74+ .no_sfdp_flags = SECT_4K ,
75+ }, {
76+ .id = SNOR_ID (0xef , 0x60 , 0x15 ),
77+ .name = "w25q16dw" ,
78+ .size = SZ_2M ,
79+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ,
80+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
81+ }, {
82+ .id = SNOR_ID (0xef , 0x30 , 0x16 ),
83+ .name = "w25x32" ,
84+ .size = SZ_4M ,
85+ .no_sfdp_flags = SECT_4K ,
86+ }, {
87+ .id = SNOR_ID (0xef , 0x70 , 0x15 ),
88+ .name = "w25q16jv-im/jm" ,
89+ .size = SZ_2M ,
90+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ,
91+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
92+ }, {
93+ .id = SNOR_ID (0xef , 0x40 , 0x12 ),
94+ .name = "w25q20cl" ,
95+ .size = SZ_256K ,
96+ .no_sfdp_flags = SECT_4K ,
97+ }, {
98+ .id = SNOR_ID (0xef , 0x50 , 0x12 ),
99+ .name = "w25q20bw" ,
100+ .size = SZ_256K ,
101+ .no_sfdp_flags = SECT_4K ,
102+ }, {
103+ .id = SNOR_ID (0xef , 0x60 , 0x12 ),
104+ .name = "w25q20ew" ,
105+ .size = SZ_256K ,
106+ .no_sfdp_flags = SECT_4K ,
107+ }, {
108+ .id = SNOR_ID (0xef , 0x40 , 0x16 ),
109+ .name = "w25q32" ,
110+ .size = SZ_4M ,
111+ .no_sfdp_flags = SECT_4K ,
112+ }, {
113+ .id = SNOR_ID (0xef , 0x60 , 0x16 ),
114+ .name = "w25q32dw" ,
115+ .size = SZ_4M ,
116+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ,
117+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
118+ .otp = SNOR_OTP (256 , 3 , 0x1000 , 0x1000 ),
119+ }, {
120+ .id = SNOR_ID (0xef , 0x70 , 0x16 ),
121+ .name = "w25q32jv" ,
122+ .size = SZ_4M ,
123+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ,
124+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
125+ }, {
126+ .id = SNOR_ID (0xef , 0x80 , 0x16 ),
127+ .name = "w25q32jwm" ,
128+ .size = SZ_4M ,
129+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ,
130+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
131+ .otp = SNOR_OTP (256 , 3 , 0x1000 , 0x1000 ),
132+ }, {
133+ .id = SNOR_ID (0xef , 0x80 , 0x17 ),
134+ .name = "w25q64jwm" ,
135+ .size = SZ_8M ,
136+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ,
137+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
138+ }, {
139+ .id = SNOR_ID (0xef , 0x80 , 0x18 ),
140+ .name = "w25q128jwm" ,
141+ .size = SZ_16M ,
142+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ,
143+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
144+ }, {
145+ .id = SNOR_ID (0xef , 0x80 , 0x19 ),
146+ .name = "w25q256jwm" ,
147+ .size = SZ_32M ,
148+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ,
149+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
150+ }, {
151+ .id = SNOR_ID (0xef , 0x30 , 0x17 ),
152+ .name = "w25x64" ,
153+ .size = SZ_8M ,
154+ .no_sfdp_flags = SECT_4K ,
155+ }, {
156+ .id = SNOR_ID (0xef , 0x40 , 0x17 ),
157+ .name = "w25q64" ,
158+ .size = SZ_8M ,
159+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
160+ }, {
161+ .id = SNOR_ID (0xef , 0x60 , 0x17 ),
162+ .name = "w25q64dw" ,
163+ .size = SZ_8M ,
164+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ,
165+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
166+ }, {
167+ .id = SNOR_ID (0xef , 0x70 , 0x17 ),
168+ .name = "w25q64jvm" ,
169+ .size = SZ_8M ,
170+ .no_sfdp_flags = SECT_4K ,
171+ }, {
172+ .id = SNOR_ID (0xef , 0x60 , 0x18 ),
173+ .name = "w25q128fw" ,
174+ .size = SZ_16M ,
175+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ,
176+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
177+ }, {
178+ .id = SNOR_ID (0xef , 0x70 , 0x18 ),
179+ .name = "w25q128jv" ,
180+ .size = SZ_16M ,
181+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ,
182+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
183+ }, {
184+ .id = SNOR_ID (0xef , 0x50 , 0x14 ),
185+ .name = "w25q80" ,
186+ .size = SZ_1M ,
187+ .no_sfdp_flags = SECT_4K ,
188+ }, {
189+ .id = SNOR_ID (0xef , 0x40 , 0x14 ),
190+ .name = "w25q80bl" ,
191+ .size = SZ_1M ,
192+ .no_sfdp_flags = SECT_4K ,
193+ }, {
194+ .id = SNOR_ID (0xef , 0x40 , 0x18 ),
195+ .name = "w25q128" ,
196+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB ,
197+ }, {
198+ .id = SNOR_ID (0xef , 0x40 , 0x19 ),
199+ .name = "w25q256" ,
200+ .size = SZ_32M ,
201+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
202+ .fixups = & w25q256_fixups ,
203+ }, {
204+ .id = SNOR_ID (0xef , 0x70 , 0x19 ),
205+ .name = "w25q256jvm" ,
206+ }, {
207+ .id = SNOR_ID (0xef , 0x60 , 0x19 ),
208+ .name = "w25q256jw" ,
209+ .size = SZ_32M ,
210+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
211+ }, {
212+ .id = SNOR_ID (0xef , 0x71 , 0x19 ),
213+ .name = "w25m512jv" ,
214+ .size = SZ_64M ,
215+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
216+ }, {
217+ .id = SNOR_ID (0xef , 0x60 , 0x20 ),
218+ .name = "w25q512nwq" ,
219+ .otp = SNOR_OTP (256 , 3 , 0x1000 , 0x1000 ),
220+ }, {
221+ .id = SNOR_ID (0xef , 0x80 , 0x20 ),
222+ .name = "w25q512nwm" ,
223+ .otp = SNOR_OTP (256 , 3 , 0x1000 , 0x1000 ),
224+ }, {
225+ .id = SNOR_ID (0xef , 0x40 , 0x20 ),
226+ .name = "w25q512jvq" ,
227+ .size = SZ_64M ,
228+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
229+ },
141230};
142231
143232/**
0 commit comments