@@ -61,64 +61,110 @@ static const struct spi_nor_fixups sst26vf_nor_fixups = {
6161};
6262
6363static const struct flash_info sst_nor_parts [] = {
64- { "sst25vf040b" , INFO (0xbf258d , 0 , 64 * 1024 , 8 )
65- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE )
66- NO_SFDP_FLAGS (SECT_4K )
67- MFR_FLAGS (SST_WRITE ) },
68- { "sst25vf080b" , INFO (0xbf258e , 0 , 64 * 1024 , 16 )
69- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE )
70- NO_SFDP_FLAGS (SECT_4K )
71- MFR_FLAGS (SST_WRITE ) },
72- { "sst25vf016b" , INFO (0xbf2541 , 0 , 64 * 1024 , 32 )
73- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE )
74- NO_SFDP_FLAGS (SECT_4K )
75- MFR_FLAGS (SST_WRITE ) },
76- { "sst25vf032b" , INFO (0xbf254a , 0 , 64 * 1024 , 64 )
77- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE )
78- NO_SFDP_FLAGS (SECT_4K )
79- MFR_FLAGS (SST_WRITE ) },
80- { "sst25vf064c" , INFO (0xbf254b , 0 , 64 * 1024 , 128 )
81- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP |
82- SPI_NOR_SWP_IS_VOLATILE )
83- NO_SFDP_FLAGS (SECT_4K ) },
84- { "sst25wf512" , INFO (0xbf2501 , 0 , 64 * 1024 , 1 )
85- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE )
86- NO_SFDP_FLAGS (SECT_4K )
87- MFR_FLAGS (SST_WRITE ) },
88- { "sst25wf010" , INFO (0xbf2502 , 0 , 64 * 1024 , 2 )
89- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE )
90- NO_SFDP_FLAGS (SECT_4K )
91- MFR_FLAGS (SST_WRITE ) },
92- { "sst25wf020" , INFO (0xbf2503 , 0 , 64 * 1024 , 4 )
93- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE )
94- NO_SFDP_FLAGS (SECT_4K )
95- MFR_FLAGS (SST_WRITE ) },
96- { "sst25wf020a" , INFO (0x621612 , 0 , 64 * 1024 , 4 )
97- FLAGS (SPI_NOR_HAS_LOCK )
98- NO_SFDP_FLAGS (SECT_4K ) },
99- { "sst25wf040b" , INFO (0x621613 , 0 , 64 * 1024 , 8 )
100- FLAGS (SPI_NOR_HAS_LOCK )
101- NO_SFDP_FLAGS (SECT_4K ) },
102- { "sst25wf040" , INFO (0xbf2504 , 0 , 64 * 1024 , 8 )
103- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE )
104- NO_SFDP_FLAGS (SECT_4K )
105- MFR_FLAGS (SST_WRITE ) },
106- { "sst25wf080" , INFO (0xbf2505 , 0 , 64 * 1024 , 16 )
107- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE )
108- NO_SFDP_FLAGS (SECT_4K )
109- MFR_FLAGS (SST_WRITE ) },
110- { "sst26wf016b" , INFO (0xbf2651 , 0 , 64 * 1024 , 32 )
111- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ |
112- SPI_NOR_QUAD_READ ) },
113- { "sst26vf016b" , INFO (0xbf2641 , 0 , 64 * 1024 , 32 )
114- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ ) },
115- { "sst26vf032b" , INFO (0xbf2642 , 0 , 0 , 0 )
116- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE )
117- .fixups = & sst26vf_nor_fixups },
118- { "sst26vf064b" , INFO (0xbf2643 , 0 , 64 * 1024 , 128 )
119- FLAGS (SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE )
120- NO_SFDP_FLAGS (SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ )
121- .fixups = & sst26vf_nor_fixups },
64+ {
65+ .id = SNOR_ID (0xbf , 0x25 , 0x8d ),
66+ .name = "sst25vf040b" ,
67+ .size = SZ_512K ,
68+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE ,
69+ .no_sfdp_flags = SECT_4K ,
70+ .mfr_flags = SST_WRITE ,
71+ }, {
72+ .id = SNOR_ID (0xbf , 0x25 , 0x8e ),
73+ .name = "sst25vf080b" ,
74+ .size = SZ_1M ,
75+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE ,
76+ .no_sfdp_flags = SECT_4K ,
77+ .mfr_flags = SST_WRITE ,
78+ }, {
79+ .id = SNOR_ID (0xbf , 0x25 , 0x41 ),
80+ .name = "sst25vf016b" ,
81+ .size = SZ_2M ,
82+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE ,
83+ .no_sfdp_flags = SECT_4K ,
84+ .mfr_flags = SST_WRITE ,
85+ }, {
86+ .id = SNOR_ID (0xbf , 0x25 , 0x4a ),
87+ .name = "sst25vf032b" ,
88+ .size = SZ_4M ,
89+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE ,
90+ .no_sfdp_flags = SECT_4K ,
91+ .mfr_flags = SST_WRITE ,
92+ }, {
93+ .id = SNOR_ID (0xbf , 0x25 , 0x4b ),
94+ .name = "sst25vf064c" ,
95+ .size = SZ_8M ,
96+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP | SPI_NOR_SWP_IS_VOLATILE ,
97+ .no_sfdp_flags = SECT_4K ,
98+ }, {
99+ .id = SNOR_ID (0xbf , 0x25 , 0x01 ),
100+ .name = "sst25wf512" ,
101+ .size = SZ_64K ,
102+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE ,
103+ .no_sfdp_flags = SECT_4K ,
104+ .mfr_flags = SST_WRITE ,
105+ }, {
106+ .id = SNOR_ID (0xbf , 0x25 , 0x02 ),
107+ .name = "sst25wf010" ,
108+ .size = SZ_128K ,
109+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE ,
110+ .no_sfdp_flags = SECT_4K ,
111+ .mfr_flags = SST_WRITE ,
112+ }, {
113+ .id = SNOR_ID (0xbf , 0x25 , 0x03 ),
114+ .name = "sst25wf020" ,
115+ .size = SZ_256K ,
116+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE ,
117+ .no_sfdp_flags = SECT_4K ,
118+ .mfr_flags = SST_WRITE ,
119+ }, {
120+ .id = SNOR_ID (0x62 , 0x16 , 0x12 ),
121+ .name = "sst25wf020a" ,
122+ .size = SZ_256K ,
123+ .flags = SPI_NOR_HAS_LOCK ,
124+ .no_sfdp_flags = SECT_4K ,
125+ }, {
126+ .id = SNOR_ID (0x62 , 0x16 , 0x13 ),
127+ .name = "sst25wf040b" ,
128+ .size = SZ_512K ,
129+ .flags = SPI_NOR_HAS_LOCK ,
130+ .no_sfdp_flags = SECT_4K ,
131+ }, {
132+ .id = SNOR_ID (0xbf , 0x25 , 0x04 ),
133+ .name = "sst25wf040" ,
134+ .size = SZ_512K ,
135+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE ,
136+ .no_sfdp_flags = SECT_4K ,
137+ .mfr_flags = SST_WRITE ,
138+ }, {
139+ .id = SNOR_ID (0xbf , 0x25 , 0x05 ),
140+ .name = "sst25wf080" ,
141+ .size = SZ_1M ,
142+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE ,
143+ .no_sfdp_flags = SECT_4K ,
144+ .mfr_flags = SST_WRITE ,
145+ }, {
146+ .id = SNOR_ID (0xbf , 0x26 , 0x51 ),
147+ .name = "sst26wf016b" ,
148+ .size = SZ_2M ,
149+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
150+ }, {
151+ .id = SNOR_ID (0xbf , 0x26 , 0x41 ),
152+ .name = "sst26vf016b" ,
153+ .size = SZ_2M ,
154+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ ,
155+ }, {
156+ .id = SNOR_ID (0xbf , 0x26 , 0x42 ),
157+ .name = "sst26vf032b" ,
158+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE ,
159+ .fixups = & sst26vf_nor_fixups ,
160+ }, {
161+ .id = SNOR_ID (0xbf , 0x26 , 0x43 ),
162+ .name = "sst26vf064b" ,
163+ .size = SZ_8M ,
164+ .flags = SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE ,
165+ .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ ,
166+ .fixups = & sst26vf_nor_fixups ,
167+ }
122168};
123169
124170static int sst_nor_write (struct mtd_info * mtd , loff_t to , size_t len ,
0 commit comments