hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/drivers/rk_nand/rk_ftl_arm_v7_thumb.S
....@@ -5,11 +5,10 @@
55 * it under the terms of the GNU General Public License as published by
66 * the Free Software Foundation; either version 2 of the License, or
77 * (at your option) any later version.
8
- * date: 2020-09-23
8
+ * date: 2021-07-26
99 */
1010 .syntax unified
1111 .arch armv7-a
12
- .fpu softvfp
1312 .eabi_attribute 20, 1
1413 .eabi_attribute 21, 1
1514 .eabi_attribute 23, 3
....@@ -18,148 +17,250 @@
1817 .eabi_attribute 26, 2
1918 .eabi_attribute 30, 4
2019 .eabi_attribute 34, 1
21
- .eabi_attribute 18, 2
22
- .thumb
23
- .file "rk_ftl_arm_v7.S"
24
-#APP
25
- .syntax unified
20
+ .file "rk_ftl_arm_v7.c"
2621 .thumb
2722 .text
2823 .align 1
29
- .global FlashMemCmp8
3024 .thumb
3125 .thumb_func
26
+ .fpu softvfp
27
+ .type ndelay, %function
28
+ndelay:
29
+ .fnstart
30
+ @ args = 0, pretend = 0, frame = 0
31
+ @ frame_needed = 0, uses_anonymous_args = 0
32
+ @ link register save eliminated.
33
+ ldr r3, .L2
34
+ addw r0, r0, #999
35
+ umull r0, r1, r0, r3
36
+ ldr r3, .L2+4
37
+ ldr r3, [r3, #8]
38
+ lsrs r0, r1, #6
39
+ bx r3 @ indirect register sibling call
40
+.L3:
41
+ .align 2
42
+.L2:
43
+ .word 274877907
44
+ .word arm_delay_ops
45
+ .fnend
46
+ .size ndelay, .-ndelay
47
+ .align 1
48
+ .syntax unified
49
+ .thumb
50
+ .thumb_func
51
+ .fpu softvfp
52
+ .type flash_read_ecc, %function
53
+flash_read_ecc:
54
+ .fnstart
55
+ @ args = 0, pretend = 0, frame = 0
56
+ @ frame_needed = 0, uses_anonymous_args = 0
57
+ ldr r3, .L5
58
+ push {r4, lr}
59
+ .save {r4, lr}
60
+ ldr r4, [r3, r0, lsl #3]
61
+ add r3, r3, r0, lsl #3
62
+ movs r0, #80
63
+ ldrb r3, [r3, #4] @ zero_extendqisi2
64
+ add r4, r4, r3, lsl #8
65
+ movs r3, #122
66
+ str r3, [r4, #2056]
67
+ bl ndelay
68
+ ldr r3, [r4, #2048]
69
+ ldr r0, [r4, #2048]
70
+ and r3, r3, #15
71
+ and r0, r0, #15
72
+ cmp r0, r3
73
+ it cc
74
+ movcc r0, r3
75
+ ldr r3, [r4, #2048]
76
+ and r3, r3, #15
77
+ cmp r3, r0
78
+ it cc
79
+ movcc r3, r0
80
+ ldr r0, [r4, #2048]
81
+ and r0, r0, #15
82
+ cmp r0, r3
83
+ it cc
84
+ movcc r0, r3
85
+ pop {r4, pc}
86
+.L6:
87
+ .align 2
88
+.L5:
89
+ .word .LANCHOR0
90
+ .fnend
91
+ .size flash_read_ecc, .-flash_read_ecc
92
+ .align 1
93
+ .syntax unified
94
+ .thumb
95
+ .thumb_func
96
+ .fpu softvfp
97
+ .type ftl_set_blk_mode.part.9, %function
98
+ftl_set_blk_mode.part.9:
99
+ .fnstart
100
+ @ args = 0, pretend = 0, frame = 0
101
+ @ frame_needed = 0, uses_anonymous_args = 0
102
+ @ link register save eliminated.
103
+ ldr r3, .L8
104
+ lsrs r1, r0, #5
105
+ and r0, r0, #31
106
+ ldr r2, [r3, #32]
107
+ movs r3, #1
108
+ lsl r0, r3, r0
109
+ ldr r3, [r2, r1, lsl #2]
110
+ orrs r3, r3, r0
111
+ str r3, [r2, r1, lsl #2]
112
+ bx lr
113
+.L9:
114
+ .align 2
115
+.L8:
116
+ .word .LANCHOR0
117
+ .fnend
118
+ .size ftl_set_blk_mode.part.9, .-ftl_set_blk_mode.part.9
119
+ .align 1
120
+ .global FlashMemCmp8
121
+ .syntax unified
122
+ .thumb
123
+ .thumb_func
124
+ .fpu softvfp
32125 .type FlashMemCmp8, %function
33126 FlashMemCmp8:
34127 .fnstart
35128 @ args = 0, pretend = 0, frame = 0
36129 @ frame_needed = 0, uses_anonymous_args = 0
37
- ldr r3, .L10
130
+ ldr r3, .L18
38131 push {r4, r5, lr}
39132 .save {r4, r5, lr}
40
- ldrb r3, [r3] @ zero_extendqisi2
41
- cbz r3, .L4
133
+ ldrb r3, [r3, #36] @ zero_extendqisi2
134
+ cbz r3, .L13
42135 ldrb r4, [r0, #1] @ zero_extendqisi2
43136 ldrb r3, [r1, #1] @ zero_extendqisi2
44137 cmp r4, r3
45
- beq .L8
138
+ beq .L17
46139 movs r3, #0
47
-.L4:
140
+.L13:
48141 cmp r3, r2
49
- beq .L8
142
+ bne .L15
143
+.L17:
144
+ movs r0, #0
145
+ pop {r4, r5, pc}
146
+.L15:
50147 ldrb r5, [r0, r3] @ zero_extendqisi2
51148 ldrb r4, [r1, r3] @ zero_extendqisi2
52149 adds r3, r3, #1
53150 cmp r5, r4
54
- beq .L4
151
+ beq .L13
55152 mov r0, r3
56153 pop {r4, r5, pc}
57
-.L8:
58
- movs r0, #0
59
- pop {r4, r5, pc}
60
-.L11:
154
+.L19:
61155 .align 2
62
-.L10:
156
+.L18:
63157 .word .LANCHOR0
64158 .fnend
65159 .size FlashMemCmp8, .-FlashMemCmp8
66160 .align 1
67161 .global FlashRsvdBlkChk
162
+ .syntax unified
68163 .thumb
69164 .thumb_func
165
+ .fpu softvfp
70166 .type FlashRsvdBlkChk, %function
71167 FlashRsvdBlkChk:
72168 .fnstart
73169 @ args = 0, pretend = 0, frame = 0
74170 @ frame_needed = 0, uses_anonymous_args = 0
75
- @ link register save eliminated.
76
- ldr r3, .L15
77
- ldrb r2, [r3, #1] @ zero_extendqisi2
78
- ldr r3, [r3, #4]
79
- muls r3, r2, r3
80
- cmp r1, r3
81
- bcs .L14
171
+ ldr r2, .L23
172
+ push {r4, lr}
173
+ .save {r4, lr}
174
+ ldrb r4, [r2, #37] @ zero_extendqisi2
175
+ ldr r3, [r2, #40]
176
+ muls r3, r4, r3
177
+ cmp r3, r1
178
+ bls .L22
82179 adds r0, r0, #0
83180 it ne
84181 movne r0, #1
85
- bx lr
86
-.L14:
182
+ pop {r4, pc}
183
+.L22:
87184 movs r0, #1
88
- bx lr
89
-.L16:
185
+ pop {r4, pc}
186
+.L24:
90187 .align 2
91
-.L15:
188
+.L23:
92189 .word .LANCHOR0
93190 .fnend
94191 .size FlashRsvdBlkChk, .-FlashRsvdBlkChk
95192 .align 1
96193 .global FlashGetRandomizer
194
+ .syntax unified
97195 .thumb
98196 .thumb_func
197
+ .fpu softvfp
99198 .type FlashGetRandomizer, %function
100199 FlashGetRandomizer:
101200 .fnstart
102201 @ args = 0, pretend = 0, frame = 0
103202 @ frame_needed = 0, uses_anonymous_args = 0
104
- ldr r3, .L25
203
+ ldr r3, .L33
105204 and r2, r1, #127
106205 push {r4, lr}
107206 .save {r4, lr}
108207 ldrh r4, [r3, r2, lsl #1]
109
- ldr r3, .L25+4
110
- ldrb r3, [r3, #8] @ zero_extendqisi2
111
- cbz r3, .L18
208
+ ldr r3, .L33+4
209
+ ldrb r3, [r3, #44] @ zero_extendqisi2
210
+ cbz r3, .L25
112211 bl FlashRsvdBlkChk
113
- cbz r0, .L18
212
+ cbz r0, .L25
114213 orr r4, r4, #-1073741824
115
-.L18:
214
+.L25:
116215 mov r0, r4
117216 pop {r4, pc}
118
-.L26:
217
+.L34:
119218 .align 2
120
-.L25:
219
+.L33:
121220 .word .LANCHOR1
122221 .word .LANCHOR0
123222 .fnend
124223 .size FlashGetRandomizer, .-FlashGetRandomizer
125224 .align 1
126225 .global FlashSetRandomizer
226
+ .syntax unified
127227 .thumb
128228 .thumb_func
229
+ .fpu softvfp
129230 .type FlashSetRandomizer, %function
130231 FlashSetRandomizer:
131232 .fnstart
132233 @ args = 0, pretend = 0, frame = 0
133234 @ frame_needed = 0, uses_anonymous_args = 0
134
- ldr r3, .L35
135
- and r2, r1, #127
136235 push {r4, r5, r6, lr}
137236 .save {r4, r5, r6, lr}
237
+ and r2, r1, #127
238
+ ldr r3, .L43
138239 mov r6, r0
240
+ ldr r4, .L43+4
139241 ldrh r5, [r3, r2, lsl #1]
140
- ldr r3, .L35+4
141
- ldrb r2, [r3, #8] @ zero_extendqisi2
142
- mov r4, r3
143
- cbz r2, .L28
242
+ ldrb r2, [r4, #44] @ zero_extendqisi2
243
+ cbz r2, .L36
144244 bl FlashRsvdBlkChk
145
- cbz r0, .L28
245
+ cbz r0, .L36
146246 orr r5, r5, #-1073741824
147
-.L28:
148
- add r4, r4, r6, lsl #3
149
- ldr r3, [r4, #12]
247
+.L36:
248
+ ldr r3, [r4, r6, lsl #3]
150249 str r5, [r3, #336]
151250 pop {r4, r5, r6, pc}
152
-.L36:
251
+.L44:
153252 .align 2
154
-.L35:
253
+.L43:
155254 .word .LANCHOR1
156255 .word .LANCHOR0
157256 .fnend
158257 .size FlashSetRandomizer, .-FlashSetRandomizer
159258 .align 1
160259 .global FlashBlockAlignInit
260
+ .syntax unified
161261 .thumb
162262 .thumb_func
263
+ .fpu softvfp
163264 .type FlashBlockAlignInit, %function
164265 FlashBlockAlignInit:
165266 .fnstart
....@@ -167,57 +268,60 @@
167268 @ frame_needed = 0, uses_anonymous_args = 0
168269 @ link register save eliminated.
169270 cmp r0, #512
170
- ldr r3, .L43
171
- bls .L38
271
+ ldr r3, .L51
272
+ bls .L46
172273 mov r2, #1024
173
- b .L42
174
-.L38:
274
+.L50:
275
+ str r2, [r3, #40]
276
+ bx lr
277
+.L46:
175278 cmp r0, #256
176
- bls .L40
279
+ bls .L48
177280 mov r2, #512
178
- b .L42
179
-.L40:
281
+ b .L50
282
+.L48:
180283 cmp r0, #128
181
- bhi .L41
182
- str r0, [r3, #4]
284
+ bhi .L49
285
+ str r0, [r3, #40]
183286 bx lr
184
-.L41:
287
+.L49:
185288 mov r2, #256
186
-.L42:
187
- str r2, [r3, #4]
188
- bx lr
189
-.L44:
289
+ b .L50
290
+.L52:
190291 .align 2
191
-.L43:
292
+.L51:
192293 .word .LANCHOR0
193294 .fnend
194295 .size FlashBlockAlignInit, .-FlashBlockAlignInit
195296 .align 1
196297 .global FlashReadCmd
298
+ .syntax unified
197299 .thumb
198300 .thumb_func
301
+ .fpu softvfp
199302 .type FlashReadCmd, %function
200303 FlashReadCmd:
201304 .fnstart
202305 @ args = 0, pretend = 0, frame = 0
203306 @ frame_needed = 0, uses_anonymous_args = 0
204
- ldr r2, .L47
205
- push {r4, r5, lr}
206
- .save {r4, r5, lr}
207
- add r3, r2, r0, lsl #3
208
- ldr r2, [r2, #44]
209
- ldr r4, [r3, #12]
210
- ldrb r3, [r3, #16] @ zero_extendqisi2
211
- ldrb r2, [r2, #7] @ zero_extendqisi2
212
- lsls r3, r3, #8
213
- cmp r2, #1
214
- it eq
215
- addeq r2, r4, r3
216
- add r3, r3, r4
307
+ @ link register save eliminated.
308
+ push {r4, r5}
309
+ .save {r4, r5}
310
+ ldr r4, .L55
311
+ ldr r3, [r4, r0, lsl #3]
312
+ add r2, r4, r0, lsl #3
313
+ ldr r4, [r4, #48]
314
+ ldrb r2, [r2, #4] @ zero_extendqisi2
315
+ ldrb r4, [r4, #7] @ zero_extendqisi2
316
+ lsls r2, r2, #8
317
+ cmp r4, #1
217318 itt eq
218319 moveq r5, #38
219
- streq r5, [r2, #2056]
220
- movs r2, #0
320
+ addeq r4, r3, r2
321
+ add r3, r3, r2
322
+ mov r2, #0
323
+ it eq
324
+ streq r5, [r4, #2056]
221325 str r2, [r3, #2056]
222326 str r2, [r3, #2052]
223327 str r2, [r3, #2052]
....@@ -229,37 +333,40 @@
229333 str r2, [r3, #2052]
230334 movs r2, #48
231335 str r2, [r3, #2056]
232
- pop {r4, r5, lr}
336
+ pop {r4, r5}
233337 b FlashSetRandomizer
234
-.L48:
338
+.L56:
235339 .align 2
236
-.L47:
340
+.L55:
237341 .word .LANCHOR0
238342 .fnend
239343 .size FlashReadCmd, .-FlashReadCmd
240344 .align 1
241345 .global FlashReadDpDataOutCmd
346
+ .syntax unified
242347 .thumb
243348 .thumb_func
349
+ .fpu softvfp
244350 .type FlashReadDpDataOutCmd, %function
245351 FlashReadDpDataOutCmd:
246352 .fnstart
247353 @ args = 0, pretend = 0, frame = 0
248354 @ frame_needed = 0, uses_anonymous_args = 0
249
- push {r4, r5, r6, lr}
250
- .save {r4, r5, r6, lr}
355
+ @ link register save eliminated.
356
+ push {r4, r5, r6}
357
+ .save {r4, r5, r6}
251358 uxtb r6, r1
252
- ldr r4, .L53
359
+ ldr r4, .L61
253360 lsrs r5, r1, #8
254
- add r3, r4, r0, lsl #3
255
- ldrb r4, [r4, #64] @ zero_extendqisi2
256
- ldr r2, [r3, #12]
257
- ldrb r3, [r3, #16] @ zero_extendqisi2
361
+ ldr r3, [r4, r0, lsl #3]
362
+ add r2, r4, r0, lsl #3
363
+ ldrb r4, [r4, #68] @ zero_extendqisi2
364
+ ldrb r2, [r2, #4] @ zero_extendqisi2
258365 cmp r4, #1
259366 lsr r4, r1, #16
260
- lsl r3, r3, #8
367
+ lsl r2, r2, #8
261368 add r3, r3, r2
262
- bne .L50
369
+ bne .L58
263370 movs r2, #6
264371 str r2, [r3, #2056]
265372 movs r2, #0
....@@ -268,8 +375,12 @@
268375 str r6, [r3, #2052]
269376 str r5, [r3, #2052]
270377 str r4, [r3, #2052]
271
- b .L52
272
-.L50:
378
+.L60:
379
+ movs r2, #224
380
+ str r2, [r3, #2056]
381
+ pop {r4, r5, r6}
382
+ b FlashSetRandomizer
383
+.L58:
273384 movs r2, #0
274385 str r2, [r3, #2056]
275386 str r2, [r3, #2052]
....@@ -281,33 +392,32 @@
281392 str r4, [r3, #2056]
282393 str r2, [r3, #2052]
283394 str r2, [r3, #2052]
284
-.L52:
285
- movs r2, #224
286
- str r2, [r3, #2056]
287
- pop {r4, r5, r6, lr}
288
- b FlashSetRandomizer
289
-.L54:
395
+ b .L60
396
+.L62:
290397 .align 2
291
-.L53:
398
+.L61:
292399 .word .LANCHOR0
293400 .fnend
294401 .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd
295402 .align 1
296403 .global FlashProgFirstCmd
404
+ .syntax unified
297405 .thumb
298406 .thumb_func
407
+ .fpu softvfp
299408 .type FlashProgFirstCmd, %function
300409 FlashProgFirstCmd:
301410 .fnstart
302411 @ args = 0, pretend = 0, frame = 0
303412 @ frame_needed = 0, uses_anonymous_args = 0
304
- push {r4, lr}
305
- .save {r4, lr}
413
+ @ link register save eliminated.
414
+ push {r4, r5}
415
+ .save {r4, r5}
306416 lsrs r2, r1, #16
307
- ldr r4, .L56
417
+ ldr r4, .L64
418
+ ldr r3, [r4, r0, lsl #3]
308419 add r4, r4, r0, lsl #3
309
- ldr r3, [r4, #12]
310
- ldrb r4, [r4, #16] @ zero_extendqisi2
420
+ ldrb r4, [r4, #4] @ zero_extendqisi2
311421 add r3, r3, r4, lsl #8
312422 movs r4, #128
313423 str r4, [r3, #2056]
....@@ -319,18 +429,20 @@
319429 lsrs r4, r1, #8
320430 str r4, [r3, #2052]
321431 str r2, [r3, #2052]
322
- pop {r4, lr}
432
+ pop {r4, r5}
323433 b FlashSetRandomizer
324
-.L57:
434
+.L65:
325435 .align 2
326
-.L56:
436
+.L64:
327437 .word .LANCHOR0
328438 .fnend
329439 .size FlashProgFirstCmd, .-FlashProgFirstCmd
330440 .align 1
331441 .global FlashEraseCmd
442
+ .syntax unified
332443 .thumb
333444 .thumb_func
445
+ .fpu softvfp
334446 .type FlashEraseCmd, %function
335447 FlashEraseCmd:
336448 .fnstart
....@@ -338,25 +450,25 @@
338450 @ frame_needed = 0, uses_anonymous_args = 0
339451 push {r4, r5, lr}
340452 .save {r4, r5, lr}
341
- ldr r5, .L63
342
- add r0, r5, r0, lsl #3
343
- ldrb r3, [r0, #16] @ zero_extendqisi2
344
- ldr r4, [r0, #12]
345
- lsls r3, r3, #8
346
- cbz r2, .L59
347
- adds r2, r4, r3
348
- movs r0, #96
349
- str r0, [r2, #2056]
350
- uxtb r0, r1
351
- str r0, [r2, #2052]
352
- lsrs r0, r1, #8
353
- str r0, [r2, #2052]
354
- lsrs r0, r1, #16
355
- str r0, [r2, #2052]
356
- ldr r2, [r5, #4]
453
+ ldr r4, .L71
454
+ ldr r3, [r4, r0, lsl #3]
455
+ add r0, r4, r0, lsl #3
456
+ ldrb r0, [r0, #4] @ zero_extendqisi2
457
+ lsls r0, r0, #8
458
+ cbz r2, .L67
459
+ adds r2, r3, r0
460
+ movs r5, #96
461
+ str r5, [r2, #2056]
462
+ uxtb r5, r1
463
+ str r5, [r2, #2052]
464
+ lsrs r5, r1, #8
465
+ str r5, [r2, #2052]
466
+ lsrs r5, r1, #16
467
+ str r5, [r2, #2052]
468
+ ldr r2, [r4, #40]
357469 add r1, r1, r2
358
-.L59:
359
- add r3, r3, r4
470
+.L67:
471
+ add r3, r3, r0
360472 movs r2, #96
361473 str r2, [r3, #2056]
362474 uxtb r2, r1
....@@ -364,34 +476,37 @@
364476 lsrs r2, r1, #8
365477 lsrs r1, r1, #16
366478 str r2, [r3, #2052]
367
- str r1, [r3, #2052]
368479 movs r2, #208
480
+ str r1, [r3, #2052]
369481 str r2, [r3, #2056]
370482 pop {r4, r5, pc}
371
-.L64:
483
+.L72:
372484 .align 2
373
-.L63:
485
+.L71:
374486 .word .LANCHOR0
375487 .fnend
376488 .size FlashEraseCmd, .-FlashEraseCmd
377489 .align 1
378490 .global FlashProgDpSecondCmd
491
+ .syntax unified
379492 .thumb
380493 .thumb_func
494
+ .fpu softvfp
381495 .type FlashProgDpSecondCmd, %function
382496 FlashProgDpSecondCmd:
383497 .fnstart
384498 @ args = 0, pretend = 0, frame = 0
385499 @ frame_needed = 0, uses_anonymous_args = 0
386
- push {r4, r5, lr}
387
- .save {r4, r5, lr}
500
+ @ link register save eliminated.
501
+ push {r4, r5, r6}
502
+ .save {r4, r5, r6}
388503 lsrs r2, r1, #16
389
- ldr r4, .L66
390
- add r5, r4, r0, lsl #3
391
- ldrb r4, [r4, #59] @ zero_extendqisi2
392
- ldr r3, [r5, #12]
393
- ldrb r5, [r5, #16] @ zero_extendqisi2
394
- add r3, r3, r5, lsl #8
504
+ ldr r5, .L74
505
+ ldr r3, [r5, r0, lsl #3]
506
+ add r4, r5, r0, lsl #3
507
+ ldrb r6, [r4, #4] @ zero_extendqisi2
508
+ ldrb r4, [r5, #63] @ zero_extendqisi2
509
+ add r3, r3, r6, lsl #8
395510 str r4, [r3, #2056]
396511 movs r4, #0
397512 str r4, [r3, #2052]
....@@ -401,18 +516,20 @@
401516 lsrs r4, r1, #8
402517 str r4, [r3, #2052]
403518 str r2, [r3, #2052]
404
- pop {r4, r5, lr}
519
+ pop {r4, r5, r6}
405520 b FlashSetRandomizer
406
-.L67:
521
+.L75:
407522 .align 2
408
-.L66:
523
+.L74:
409524 .word .LANCHOR0
410525 .fnend
411526 .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd
412527 .align 1
413528 .global FlashProgSecondCmd
529
+ .syntax unified
414530 .thumb
415531 .thumb_func
532
+ .fpu softvfp
416533 .type FlashProgSecondCmd, %function
417534 FlashProgSecondCmd:
418535 .fnstart
....@@ -420,85 +537,123 @@
420537 @ frame_needed = 0, uses_anonymous_args = 0
421538 push {r3, r4, r5, lr}
422539 .save {r3, r4, r5, lr}
423
- ldr r3, .L69
424
- add r0, r3, r0, lsl #3
425
- ldr r3, .L69+4
426
- ldr r4, [r0, #12]
427
- ldrb r5, [r0, #16] @ zero_extendqisi2
428
- ldr r3, [r3, #4]
429
- ldr r0, .L69+8
430
- blx r3
540
+ ldr r3, .L77
541
+ ldr r4, [r3, r0, lsl #3]
542
+ add r3, r3, r0, lsl #3
543
+ ldr r0, .L77+4
544
+ ldrb r5, [r3, #4] @ zero_extendqisi2
545
+ ldr r3, .L77+8
431546 add r4, r4, r5, lsl #8
547
+ ldr r3, [r3, #4]
548
+ blx r3
432549 movs r3, #16
433550 str r3, [r4, #2056]
434551 pop {r3, r4, r5, pc}
435
-.L70:
552
+.L78:
436553 .align 2
437
-.L69:
554
+.L77:
438555 .word .LANCHOR0
556
+ .word 64424500
439557 .word arm_delay_ops
440
- .word 214748300
441558 .fnend
442559 .size FlashProgSecondCmd, .-FlashProgSecondCmd
443560 .align 1
444561 .global FlashProgDpFirstCmd
562
+ .syntax unified
445563 .thumb
446564 .thumb_func
565
+ .fpu softvfp
447566 .type FlashProgDpFirstCmd, %function
448567 FlashProgDpFirstCmd:
449568 .fnstart
450569 @ args = 0, pretend = 0, frame = 0
451570 @ frame_needed = 0, uses_anonymous_args = 0
452571 @ link register save eliminated.
453
- ldr r2, .L72
572
+ ldr r2, .L80
573
+ ldr r3, [r2, r0, lsl #3]
454574 add r0, r2, r0, lsl #3
455
- ldrb r2, [r2, #58] @ zero_extendqisi2
456
- ldrb r1, [r0, #16] @ zero_extendqisi2
457
- ldr r3, [r0, #12]
575
+ ldrb r2, [r2, #62] @ zero_extendqisi2
576
+ ldrb r1, [r0, #4] @ zero_extendqisi2
458577 add r3, r3, r1, lsl #8
459578 str r2, [r3, #2056]
460579 bx lr
461
-.L73:
580
+.L81:
462581 .align 2
463
-.L72:
582
+.L80:
464583 .word .LANCHOR0
465584 .fnend
466585 .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd
467586 .align 1
468
- .global js_hash
587
+ .global FlashReadStatus
588
+ .syntax unified
469589 .thumb
470590 .thumb_func
591
+ .fpu softvfp
592
+ .type FlashReadStatus, %function
593
+FlashReadStatus:
594
+ .fnstart
595
+ @ args = 0, pretend = 0, frame = 0
596
+ @ frame_needed = 0, uses_anonymous_args = 0
597
+ push {r3, r4, r5, lr}
598
+ .save {r3, r4, r5, lr}
599
+ movs r2, #112
600
+ ldr r3, .L83
601
+ ldr r5, [r3, r0, lsl #3]
602
+ add r3, r3, r0, lsl #3
603
+ movs r0, #80
604
+ ldrb r4, [r3, #4] @ zero_extendqisi2
605
+ add r3, r5, r4, lsl #8
606
+ adds r4, r4, #8
607
+ lsls r4, r4, #8
608
+ str r2, [r3, #2056]
609
+ bl ndelay
610
+ ldr r0, [r5, r4]
611
+ pop {r3, r4, r5, pc}
612
+.L84:
613
+ .align 2
614
+.L83:
615
+ .word .LANCHOR0
616
+ .fnend
617
+ .size FlashReadStatus, .-FlashReadStatus
618
+ .align 1
619
+ .global js_hash
620
+ .syntax unified
621
+ .thumb
622
+ .thumb_func
623
+ .fpu softvfp
471624 .type js_hash, %function
472625 js_hash:
473626 .fnstart
474627 @ args = 0, pretend = 0, frame = 0
475628 @ frame_needed = 0, uses_anonymous_args = 0
476
- ldr r3, .L78
629
+ ldr r3, .L88
477630 add r1, r1, r0
478631 push {r4, lr}
479632 .save {r4, lr}
480
-.L75:
633
+.L86:
481634 cmp r0, r1
482
- beq .L77
483
- lsls r2, r3, #5
484
- ldrb r4, [r0], #1 @ zero_extendqisi2
485
- add r2, r2, r3, lsr #2
486
- add r2, r2, r4
487
- eors r3, r3, r2
488
- b .L75
489
-.L77:
635
+ bne .L87
490636 mov r0, r3
491637 pop {r4, pc}
492
-.L79:
638
+.L87:
639
+ lsrs r2, r3, #2
640
+ ldrb r4, [r0], #1 @ zero_extendqisi2
641
+ add r2, r2, r3, lsl #5
642
+ add r2, r2, r4
643
+ eors r3, r3, r2
644
+ b .L86
645
+.L89:
493646 .align 2
494
-.L78:
647
+.L88:
495648 .word 1204201446
496649 .fnend
497650 .size js_hash, .-js_hash
498651 .align 1
499652 .global FlashLoadIdbInfo
653
+ .syntax unified
500654 .thumb
501655 .thumb_func
656
+ .fpu softvfp
502657 .type FlashLoadIdbInfo, %function
503658 FlashLoadIdbInfo:
504659 .fnstart
....@@ -511,8 +666,10 @@
511666 .size FlashLoadIdbInfo, .-FlashLoadIdbInfo
512667 .align 1
513668 .global FlashPrintInfo
669
+ .syntax unified
514670 .thumb
515671 .thumb_func
672
+ .fpu softvfp
516673 .type FlashPrintInfo, %function
517674 FlashPrintInfo:
518675 .fnstart
....@@ -523,45 +680,156 @@
523680 .fnend
524681 .size FlashPrintInfo, .-FlashPrintInfo
525682 .align 1
526
- .global ftl_flash_suspend
683
+ .global ToshibaSetRRPara
684
+ .syntax unified
527685 .thumb
528686 .thumb_func
687
+ .fpu softvfp
688
+ .type ToshibaSetRRPara, %function
689
+ToshibaSetRRPara:
690
+ .fnstart
691
+ @ args = 0, pretend = 0, frame = 0
692
+ @ frame_needed = 0, uses_anonymous_args = 0
693
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
694
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
695
+ add r8, r1, r1, lsl #2
696
+ ldr r9, .L100+8
697
+ mov r5, r0
698
+ mov r6, r1
699
+ movs r4, #0
700
+ ldr r7, .L100
701
+ add r10, r9, #256
702
+.L93:
703
+ ldrb r3, [r7, #85] @ zero_extendqisi2
704
+ cmp r4, r3
705
+ bcc .L97
706
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
707
+.L97:
708
+ movs r3, #85
709
+ movs r0, #200
710
+ str r3, [r5, #8]
711
+ ldrsb r3, [r4, r10]
712
+ str r3, [r5, #4]
713
+ bl ndelay
714
+ ldrb r3, [r7, #84] @ zero_extendqisi2
715
+ cmp r3, #34
716
+ bne .L94
717
+ add r3, r4, r8
718
+ add r3, r3, r10
719
+.L99:
720
+ ldrsb r3, [r3, #5]
721
+.L98:
722
+ str r3, [r5]
723
+ adds r4, r4, #1
724
+ b .L93
725
+.L94:
726
+ cmp r3, #35
727
+ bne .L96
728
+ ldr r2, .L100+4
729
+ add r3, r4, r8
730
+ add r3, r3, r2
731
+ b .L99
732
+.L96:
733
+ add r3, r9, r6
734
+ ldrsb r3, [r3, #396]
735
+ b .L98
736
+.L101:
737
+ .align 2
738
+.L100:
739
+ .word .LANCHOR0
740
+ .word .LANCHOR1+301
741
+ .word .LANCHOR1
742
+ .fnend
743
+ .size ToshibaSetRRPara, .-ToshibaSetRRPara
744
+ .align 1
745
+ .global SamsungSetRRPara
746
+ .syntax unified
747
+ .thumb
748
+ .thumb_func
749
+ .fpu softvfp
750
+ .type SamsungSetRRPara, %function
751
+SamsungSetRRPara:
752
+ .fnstart
753
+ @ args = 0, pretend = 0, frame = 0
754
+ @ frame_needed = 0, uses_anonymous_args = 0
755
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
756
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
757
+ movs r4, #0
758
+ ldr r7, .L105
759
+ mov r6, r0
760
+ mov r9, #161
761
+ mov r10, r4
762
+ ldr r8, .L105+4
763
+ add r1, r7, r1, lsl #2
764
+ adds r5, r1, #3
765
+.L103:
766
+ ldrb r3, [r8, #85] @ zero_extendqisi2
767
+ cmp r4, r3
768
+ bcc .L104
769
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
770
+.L104:
771
+ str r9, [r6, #8]
772
+ mov r0, #300
773
+ str r10, [r6]
774
+ ldrsb r3, [r7, r4]
775
+ adds r4, r4, #1
776
+ str r3, [r6]
777
+ ldrsb r3, [r5, #1]!
778
+ str r3, [r6]
779
+ bl ndelay
780
+ b .L103
781
+.L106:
782
+ .align 2
783
+.L105:
784
+ .word .LANCHOR1+404
785
+ .word .LANCHOR0
786
+ .fnend
787
+ .size SamsungSetRRPara, .-SamsungSetRRPara
788
+ .align 1
789
+ .global ftl_flash_suspend
790
+ .syntax unified
791
+ .thumb
792
+ .thumb_func
793
+ .fpu softvfp
529794 .type ftl_flash_suspend, %function
530795 ftl_flash_suspend:
531796 .fnstart
532797 @ args = 0, pretend = 0, frame = 0
533798 @ frame_needed = 0, uses_anonymous_args = 0
534799 @ link register save eliminated.
535
- ldr r3, .L83
536
- ldr r2, [r3, #80]
800
+ ldr r3, .L108
801
+ ldr r2, [r3, #88]
537802 ldr r1, [r2]
538
- str r1, [r3, #84]
539
- ldr r1, [r2, #4]
540
- str r1, [r3, #88]
541
- ldr r1, [r2, #8]
542803 str r1, [r3, #92]
543
- ldr r1, [r2, #12]
804
+ ldr r1, [r2, #4]
544805 str r1, [r3, #96]
545
- ldr r1, [r2, #304]
806
+ ldr r1, [r2, #8]
546807 str r1, [r3, #100]
547
- ldr r1, [r2, #308]
808
+ ldr r1, [r2, #12]
548809 str r1, [r3, #104]
810
+ ldr r1, [r2, #304]
811
+ str r1, [r3, #108]
812
+ ldr r1, [r2, #308]
813
+ str r1, [r3, #112]
549814 ldr r1, [r2, #336]
550815 ldr r2, [r2, #344]
551
- str r1, [r3, #108]
552
- str r2, [r3, #112]
816
+ str r1, [r3, #116]
817
+ str r2, [r3, #120]
553818 bx lr
554
-.L84:
819
+.L109:
555820 .align 2
556
-.L83:
821
+.L108:
557822 .word .LANCHOR0
558823 .fnend
559824 .size ftl_flash_suspend, .-ftl_flash_suspend
560825 .global __aeabi_uidiv
826
+ .global __aeabi_uidivmod
561827 .align 1
562828 .global LogAddr2PhyAddr
829
+ .syntax unified
563830 .thumb
564831 .thumb_func
832
+ .fpu softvfp
565833 .type LogAddr2PhyAddr, %function
566834 LogAddr2PhyAddr:
567835 .fnstart
....@@ -570,117 +838,221 @@
570838 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
571839 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
572840 .pad #12
573
- mov r7, r0
574
- ldr r0, .L90
575
- mov r8, r3
576
- ldr r4, [r7, #4]
577
- mov r10, r1
578841 mov r9, r2
579
- ldrh r3, [r0, #130]
580
- bic r4, r4, #-2147483648
581
- ldrh r5, [r0, #128]
582
- mov r6, r0
583
- ldrh fp, [r0, #4]
584
- smulbb r5, r5, r3
585
- ldrb r3, [r0] @ zero_extendqisi2
586
- cmp r3, #1
587
- ubfx r3, r4, #10, #16
588
- it eq
589
- lsleq fp, fp, #1
590
- str r3, [sp, #4]
591
- mov r0, r3
592
- uxth r5, r5
593
- it eq
594
- uxtheq fp, fp
595
- mov r1, r5
596
- bl __aeabi_uidiv
597
- cmp r10, #1
598
- ubfx r1, r4, #0, #10
599
- uxth r0, r0
600
- ldr r3, [sp, #4]
601
- smulbb r5, r0, r5
602
- sub r3, r3, r5
842
+ ldr r4, .L115
843
+ mov fp, r3
844
+ mov r10, r1
845
+ mov r7, r0
846
+ ldr r5, [r0, #4]
847
+ ldrh r2, [r4, #136]
848
+ ldrh r3, [r4, #138]
849
+ ldrh r6, [r4, #40]
850
+ smulbb r3, r3, r2
851
+ ldrb r2, [r4, #36] @ zero_extendqisi2
603852 uxth r3, r3
604
- bne .L87
605
- ldrb r2, [r6, #144] @ zero_extendqisi2
606
- cbnz r2, .L87
607
- ldr r2, .L90
608
- add r1, r2, r1, lsl #1
609
- ldrh r1, [r1, #148]
610
-.L87:
611
- add r6, r6, r0, lsl #2
612
- ldr r2, [r6, #1172]
613
- mla fp, fp, r3, r2
853
+ cmp r2, #1
854
+ it eq
855
+ lsleq r6, r6, #1
856
+ ubfx r2, r5, #10, #16
857
+ mov r1, r3
858
+ str r3, [sp, #4]
859
+ mov r0, r2
860
+ it eq
861
+ uxtheq r6, r6
862
+ str r2, [sp]
863
+ bl __aeabi_uidiv
864
+ ldr r3, [sp, #4]
865
+ uxth r8, r0
866
+ ldr r2, [sp]
867
+ mov r1, r3
868
+ mov r0, r2
869
+ bl __aeabi_uidivmod
870
+ cmp r10, #1
871
+ uxth r1, r1
872
+ ubfx r0, r5, #0, #10
873
+ bne .L112
874
+ ldrb r3, [r4, #152] @ zero_extendqisi2
875
+ cbnz r3, .L112
876
+ add r0, r4, r0, lsl #1
877
+ ldrh r0, [r0, #156]
878
+.L112:
879
+ add r4, r4, r8, lsl #2
880
+ ldr r3, [r4, #1180]
881
+ mla r6, r6, r1, r3
614882 ldrb r3, [sp, #48] @ zero_extendqisi2
615883 cmp r3, #1
616
- add r1, r1, fp
617
- str r1, [r9]
618
- str r0, [r8]
619
- bls .L89
884
+ add r0, r0, r6
885
+ str r0, [r9]
886
+ str r8, [fp]
887
+ bls .L114
620888 ldr r0, [r7, #4]
621889 ldr r3, [r7, #40]
622890 add r0, r0, #1024
623891 subs r3, r0, r3
624892 rsbs r0, r3, #0
625893 adcs r0, r0, r3
626
- b .L88
627
-.L89:
628
- movs r0, #0
629
-.L88:
894
+.L113:
630895 add sp, sp, #12
631896 @ sp needed
632897 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
633
-.L91:
898
+.L114:
899
+ movs r0, #0
900
+ b .L113
901
+.L116:
634902 .align 2
635
-.L90:
903
+.L115:
636904 .word .LANCHOR0
637905 .fnend
638906 .size LogAddr2PhyAddr, .-LogAddr2PhyAddr
639907 .align 1
640
- .global FlashScheduleEnSet
908
+ .global FlashReadStatusEN
909
+ .syntax unified
641910 .thumb
642911 .thumb_func
912
+ .fpu softvfp
913
+ .type FlashReadStatusEN, %function
914
+FlashReadStatusEN:
915
+ .fnstart
916
+ @ args = 0, pretend = 0, frame = 0
917
+ @ frame_needed = 0, uses_anonymous_args = 0
918
+ ldr r3, .L129
919
+ push {r4, r5, r6, lr}
920
+ .save {r4, r5, r6, lr}
921
+ ldr r5, [r3, r0, lsl #3]
922
+ add r0, r3, r0, lsl #3
923
+ ldrb r4, [r0, #4] @ zero_extendqisi2
924
+ ldr r0, [r3, #48]
925
+ ldrb r0, [r0, #8] @ zero_extendqisi2
926
+ cmp r0, #2
927
+ mov r0, r3
928
+ lsl r3, r4, #8
929
+ add r4, r4, #8
930
+ bne .L118
931
+ cbnz r2, .L119
932
+ ldrb r2, [r0, #65] @ zero_extendqisi2
933
+.L128:
934
+ add r3, r3, r5
935
+ str r2, [r3, #2056]
936
+ ldrb r0, [r0, #67] @ zero_extendqisi2
937
+ cbz r0, .L123
938
+ add r6, r5, r4, lsl #8
939
+ movs r2, #0
940
+.L122:
941
+ cmp r2, r0
942
+ bcc .L124
943
+.L123:
944
+ lsls r4, r4, #8
945
+ movs r0, #80
946
+ bl ndelay
947
+ ldr r0, [r5, r4]
948
+ uxtb r0, r0
949
+ pop {r4, r5, r6, pc}
950
+.L119:
951
+ ldrb r2, [r0, #66] @ zero_extendqisi2
952
+ b .L128
953
+.L124:
954
+ lsls r3, r2, #3
955
+ adds r2, r2, #1
956
+ lsr r3, r1, r3
957
+ uxtb r3, r3
958
+ str r3, [r6, #4]
959
+ b .L122
960
+.L118:
961
+ add r3, r3, r5
962
+ movs r2, #112
963
+ str r2, [r3, #2056]
964
+ b .L123
965
+.L130:
966
+ .align 2
967
+.L129:
968
+ .word .LANCHOR0
969
+ .fnend
970
+ .size FlashReadStatusEN, .-FlashReadStatusEN
971
+ .align 1
972
+ .global FlashWaitReadyEN
973
+ .syntax unified
974
+ .thumb
975
+ .thumb_func
976
+ .fpu softvfp
977
+ .type FlashWaitReadyEN, %function
978
+FlashWaitReadyEN:
979
+ .fnstart
980
+ @ args = 0, pretend = 0, frame = 0
981
+ @ frame_needed = 0, uses_anonymous_args = 0
982
+ push {r4, r5, r6, lr}
983
+ .save {r4, r5, r6, lr}
984
+ mov r4, r0
985
+ mov r5, r1
986
+ mov r6, r2
987
+.L132:
988
+ mov r2, r6
989
+ mov r1, r5
990
+ mov r0, r4
991
+ bl FlashReadStatusEN
992
+ cmp r0, #255
993
+ mov r3, r0
994
+ beq .L132
995
+ lsls r3, r3, #25
996
+ bmi .L131
997
+ movs r1, #3
998
+ movs r0, #1
999
+ bl usleep_range
1000
+ b .L132
1001
+.L131:
1002
+ pop {r4, r5, r6, pc}
1003
+ .fnend
1004
+ .size FlashWaitReadyEN, .-FlashWaitReadyEN
1005
+ .align 1
1006
+ .global FlashScheduleEnSet
1007
+ .syntax unified
1008
+ .thumb
1009
+ .thumb_func
1010
+ .fpu softvfp
6431011 .type FlashScheduleEnSet, %function
6441012 FlashScheduleEnSet:
6451013 .fnstart
6461014 @ args = 0, pretend = 0, frame = 0
6471015 @ frame_needed = 0, uses_anonymous_args = 0
6481016 @ link register save eliminated.
649
- ldr r3, .L93
650
- ldr r2, [r3, #1204]
651
- str r0, [r3, #1204]
1017
+ ldr r3, .L138
1018
+ ldr r2, [r3, #1212]
1019
+ str r0, [r3, #1212]
6521020 mov r0, r2
6531021 bx lr
654
-.L94:
1022
+.L139:
6551023 .align 2
656
-.L93:
1024
+.L138:
6571025 .word .LANCHOR0
6581026 .fnend
6591027 .size FlashScheduleEnSet, .-FlashScheduleEnSet
6601028 .align 1
6611029 .global FlashGetPageSize
1030
+ .syntax unified
6621031 .thumb
6631032 .thumb_func
1033
+ .fpu softvfp
6641034 .type FlashGetPageSize, %function
6651035 FlashGetPageSize:
6661036 .fnstart
6671037 @ args = 0, pretend = 0, frame = 0
6681038 @ frame_needed = 0, uses_anonymous_args = 0
6691039 @ link register save eliminated.
670
- ldr r3, .L96
671
- ldr r3, [r3, #44]
1040
+ ldr r3, .L141
1041
+ ldr r3, [r3, #48]
6721042 ldrb r0, [r3, #9] @ zero_extendqisi2
6731043 bx lr
674
-.L97:
1044
+.L142:
6751045 .align 2
676
-.L96:
1046
+.L141:
6771047 .word .LANCHOR0
6781048 .fnend
6791049 .size FlashGetPageSize, .-FlashGetPageSize
6801050 .align 1
6811051 .global NandcReadDontCaseBusyEn
1052
+ .syntax unified
6821053 .thumb
6831054 .thumb_func
1055
+ .fpu softvfp
6841056 .type NandcReadDontCaseBusyEn, %function
6851057 NandcReadDontCaseBusyEn:
6861058 .fnstart
....@@ -692,355 +1064,210 @@
6921064 .size NandcReadDontCaseBusyEn, .-NandcReadDontCaseBusyEn
6931065 .align 1
6941066 .global NandcGetChipIf
1067
+ .syntax unified
6951068 .thumb
6961069 .thumb_func
1070
+ .fpu softvfp
6971071 .type NandcGetChipIf, %function
6981072 NandcGetChipIf:
6991073 .fnstart
7001074 @ args = 0, pretend = 0, frame = 0
7011075 @ frame_needed = 0, uses_anonymous_args = 0
7021076 @ link register save eliminated.
703
- ldr r3, .L100
704
- add r0, r3, r0, lsl #3
705
- ldrb r2, [r0, #16] @ zero_extendqisi2
706
- ldr r0, [r0, #12]
707
- adds r2, r2, #8
708
- add r0, r0, r2, lsl #8
1077
+ ldr r2, .L145
1078
+ add r3, r2, r0, lsl #3
1079
+ ldr r0, [r2, r0, lsl #3]
1080
+ ldrb r3, [r3, #4] @ zero_extendqisi2
1081
+ adds r3, r3, #8
1082
+ add r0, r0, r3, lsl #8
7091083 bx lr
710
-.L101:
1084
+.L146:
7111085 .align 2
712
-.L100:
1086
+.L145:
7131087 .word .LANCHOR0
7141088 .fnend
7151089 .size NandcGetChipIf, .-NandcGetChipIf
7161090 .align 1
7171091 .global NandcSetDdrPara
1092
+ .syntax unified
7181093 .thumb
7191094 .thumb_func
1095
+ .fpu softvfp
7201096 .type NandcSetDdrPara, %function
7211097 NandcSetDdrPara:
7221098 .fnstart
7231099 @ args = 0, pretend = 0, frame = 0
7241100 @ frame_needed = 0, uses_anonymous_args = 0
7251101 @ link register save eliminated.
726
- ldr r3, .L103
727
- ldr r2, [r3, #80]
1102
+ ldr r3, .L148
1103
+ ldr r2, [r3, #88]
7281104 lsls r3, r0, #8
7291105 orr r0, r3, r0, lsl #16
730
- orr r3, r0, #1
731
- str r3, [r2, #304]
1106
+ orr r0, r0, #1
1107
+ str r0, [r2, #304]
7321108 bx lr
733
-.L104:
1109
+.L149:
7341110 .align 2
735
-.L103:
1111
+.L148:
7361112 .word .LANCHOR0
7371113 .fnend
7381114 .size NandcSetDdrPara, .-NandcSetDdrPara
7391115 .align 1
7401116 .global NandcSetDdrDiv
1117
+ .syntax unified
7411118 .thumb
7421119 .thumb_func
1120
+ .fpu softvfp
7431121 .type NandcSetDdrDiv, %function
7441122 NandcSetDdrDiv:
7451123 .fnstart
7461124 @ args = 0, pretend = 0, frame = 0
7471125 @ frame_needed = 0, uses_anonymous_args = 0
7481126 @ link register save eliminated.
749
- ldr r3, .L106
1127
+ ldr r3, .L151
7501128 orr r0, r0, #16640
751
- ldr r3, [r3, #80]
1129
+ ldr r3, [r3, #88]
7521130 str r0, [r3, #344]
7531131 bx lr
754
-.L107:
1132
+.L152:
7551133 .align 2
756
-.L106:
1134
+.L151:
7571135 .word .LANCHOR0
7581136 .fnend
7591137 .size NandcSetDdrDiv, .-NandcSetDdrDiv
7601138 .align 1
7611139 .global NandcSetDdrMode
1140
+ .syntax unified
7621141 .thumb
7631142 .thumb_func
1143
+ .fpu softvfp
7641144 .type NandcSetDdrMode, %function
7651145 NandcSetDdrMode:
7661146 .fnstart
7671147 @ args = 0, pretend = 0, frame = 0
7681148 @ frame_needed = 0, uses_anonymous_args = 0
7691149 @ link register save eliminated.
770
- ldr r3, .L111
771
- ldr r2, [r3, #80]
1150
+ ldr r3, .L156
1151
+ ldr r2, [r3, #88]
7721152 ldr r3, [r2]
773
- cbnz r0, .L109
1153
+ cbnz r0, .L154
7741154 bfi r3, r0, #13, #1
775
- b .L110
776
-.L109:
777
- orr r3, r3, #253952
778
-.L110:
1155
+.L155:
7791156 str r3, [r2]
7801157 bx lr
781
-.L112:
1158
+.L154:
1159
+ orr r3, r3, #253952
1160
+ b .L155
1161
+.L157:
7821162 .align 2
783
-.L111:
1163
+.L156:
7841164 .word .LANCHOR0
7851165 .fnend
7861166 .size NandcSetDdrMode, .-NandcSetDdrMode
7871167 .align 1
7881168 .global NandcSetMode
1169
+ .syntax unified
7891170 .thumb
7901171 .thumb_func
1172
+ .fpu softvfp
7911173 .type NandcSetMode, %function
7921174 NandcSetMode:
7931175 .fnstart
7941176 @ args = 0, pretend = 0, frame = 0
7951177 @ frame_needed = 0, uses_anonymous_args = 0
7961178 @ link register save eliminated.
797
- ldr r3, .L120
1179
+ ldr r3, .L165
7981180 ands r1, r0, #6
799
- ldr r2, [r3, #80]
1181
+ ldr r2, [r3, #88]
8001182 ldr r3, [r2]
801
- beq .L114
802
- orr r3, r3, #24576
1183
+ beq .L159
8031184 lsls r1, r0, #29
804
- bfc r3, #15, #1
1185
+ orr r3, r3, #24576
8051186 movw r1, #8322
806
- orr r3, r3, #196608
1187
+ bfc r3, #15, #1
8071188 str r1, [r2, #344]
8081189 add r1, r1, #1040384
1190
+ addw r1, r1, #3969
1191
+ orr r3, r3, #196608
1192
+ str r1, [r2, #304]
8091193 it mi
8101194 orrmi r3, r3, #32768
811
- addw r1, r1, #3969
812
- str r1, [r2, #304]
8131195 movs r1, #38
8141196 str r1, [r2, #308]
8151197 movs r1, #39
8161198 str r1, [r2, #308]
817
- b .L116
818
-.L114:
819
- bfi r3, r1, #13, #1
820
-.L116:
1199
+.L161:
8211200 str r3, [r2]
8221201 movs r0, #0
8231202 bx lr
824
-.L121:
1203
+.L159:
1204
+ bfi r3, r1, #13, #1
1205
+ b .L161
1206
+.L166:
8251207 .align 2
826
-.L120:
1208
+.L165:
8271209 .word .LANCHOR0
8281210 .fnend
8291211 .size NandcSetMode, .-NandcSetMode
8301212 .align 1
8311213 .global NandcFlashCs
1214
+ .syntax unified
8321215 .thumb
8331216 .thumb_func
1217
+ .fpu softvfp
8341218 .type NandcFlashCs, %function
8351219 NandcFlashCs:
8361220 .fnstart
8371221 @ args = 0, pretend = 0, frame = 0
8381222 @ frame_needed = 0, uses_anonymous_args = 0
8391223 @ link register save eliminated.
840
- ldr r2, .L123
841
- add r0, r2, r0, lsl #3
1224
+ ldr r3, .L168
8421225 movs r2, #1
843
- ldr r1, [r0, #12]
844
- ldrb r0, [r0, #16] @ zero_extendqisi2
1226
+ ldr r1, [r3, r0, lsl #3]
1227
+ add r0, r3, r0, lsl #3
1228
+ ldrb r0, [r0, #4] @ zero_extendqisi2
8451229 ldr r3, [r1]
8461230 lsls r2, r2, r0
8471231 bfi r3, r2, #0, #8
8481232 str r3, [r1]
8491233 bx lr
850
-.L124:
1234
+.L169:
8511235 .align 2
852
-.L123:
1236
+.L168:
8531237 .word .LANCHOR0
8541238 .fnend
8551239 .size NandcFlashCs, .-NandcFlashCs
8561240 .align 1
8571241 .global NandcFlashDeCs
1242
+ .syntax unified
8581243 .thumb
8591244 .thumb_func
1245
+ .fpu softvfp
8601246 .type NandcFlashDeCs, %function
8611247 NandcFlashDeCs:
8621248 .fnstart
8631249 @ args = 0, pretend = 0, frame = 0
8641250 @ frame_needed = 0, uses_anonymous_args = 0
8651251 @ link register save eliminated.
866
- ldr r3, .L126
867
- add r0, r3, r0, lsl #3
868
- ldr r2, [r0, #12]
1252
+ ldr r3, .L171
1253
+ ldr r2, [r3, r0, lsl #3]
8691254 ldr r3, [r2]
8701255 bfc r3, #0, #8
8711256 bfc r3, #17, #1
8721257 str r3, [r2]
8731258 bx lr
874
-.L127:
1259
+.L172:
8751260 .align 2
876
-.L126:
1261
+.L171:
8771262 .word .LANCHOR0
8781263 .fnend
8791264 .size NandcFlashDeCs, .-NandcFlashDeCs
8801265 .align 1
881
- .global NandcDelayns
882
- .thumb
883
- .thumb_func
884
- .type NandcDelayns, %function
885
-NandcDelayns:
886
- .fnstart
887
- @ args = 0, pretend = 0, frame = 0
888
- @ frame_needed = 0, uses_anonymous_args = 0
889
- push {r3, lr}
890
- .save {r3, lr}
891
- addw r0, r0, #999
892
- ldr r3, .L129
893
- umull r0, r1, r0, r3
894
- ldr r3, .L129+4
895
- ldr r3, [r3, #8]
896
- lsrs r0, r1, #6
897
- blx r3
898
- movs r0, #0
899
- pop {r3, pc}
900
-.L130:
901
- .align 2
902
-.L129:
903
- .word 274877907
904
- .word arm_delay_ops
905
- .fnend
906
- .size NandcDelayns, .-NandcDelayns
907
- .align 1
908
- .global FlashReadStatus
909
- .thumb
910
- .thumb_func
911
- .type FlashReadStatus, %function
912
-FlashReadStatus:
913
- .fnstart
914
- @ args = 0, pretend = 0, frame = 0
915
- @ frame_needed = 0, uses_anonymous_args = 0
916
- push {r3, r4, r5, lr}
917
- .save {r3, r4, r5, lr}
918
- movs r2, #112
919
- ldr r3, .L132
920
- add r0, r3, r0, lsl #3
921
- ldrb r4, [r0, #16] @ zero_extendqisi2
922
- ldr r5, [r0, #12]
923
- movs r0, #80
924
- add r3, r5, r4, lsl #8
925
- adds r4, r4, #8
926
- str r2, [r3, #2056]
927
- lsls r4, r4, #8
928
- bl NandcDelayns
929
- ldr r0, [r5, r4]
930
- pop {r3, r4, r5, pc}
931
-.L133:
932
- .align 2
933
-.L132:
934
- .word .LANCHOR0
935
- .fnend
936
- .size FlashReadStatus, .-FlashReadStatus
937
- .align 1
938
- .global ToshibaSetRRPara
939
- .thumb
940
- .thumb_func
941
- .type ToshibaSetRRPara, %function
942
-ToshibaSetRRPara:
943
- .fnstart
944
- @ args = 0, pretend = 0, frame = 0
945
- @ frame_needed = 0, uses_anonymous_args = 0
946
- push {r4, r5, r6, r7, r8, r9, r10, lr}
947
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
948
- add r8, r1, r1, lsl #2
949
- ldr r9, .L143+8
950
- movs r4, #0
951
- ldr r7, .L143
952
- mov r5, r0
953
- add r10, r9, #256
954
- mov r6, r1
955
-.L135:
956
- ldrb r3, [r7, #1209] @ zero_extendqisi2
957
- cmp r4, r3
958
- bcs .L142
959
- movs r3, #85
960
- str r3, [r5, #8]
961
- ldrsb r3, [r4, r10]
962
- movs r0, #200
963
- str r3, [r5, #4]
964
- bl NandcDelayns
965
- ldrb r3, [r7, #1208] @ zero_extendqisi2
966
- cmp r3, #34
967
- bne .L136
968
- add r3, r4, r8
969
- add r3, r3, r10
970
- b .L141
971
-.L136:
972
- cmp r3, #35
973
- bne .L138
974
- ldr r2, .L143+4
975
- add r3, r4, r8
976
- add r3, r3, r2
977
-.L141:
978
- ldrsb r3, [r3, #5]
979
- b .L140
980
-.L138:
981
- add r3, r9, r6
982
- ldrsb r3, [r3, #400]
983
-.L140:
984
- str r3, [r5]
985
- adds r4, r4, #1
986
- b .L135
987
-.L142:
988
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
989
-.L144:
990
- .align 2
991
-.L143:
992
- .word .LANCHOR0
993
- .word .LANCHOR1+304
994
- .word .LANCHOR1
995
- .fnend
996
- .size ToshibaSetRRPara, .-ToshibaSetRRPara
997
- .align 1
998
- .global SamsungSetRRPara
999
- .thumb
1000
- .thumb_func
1001
- .type SamsungSetRRPara, %function
1002
-SamsungSetRRPara:
1003
- .fnstart
1004
- @ args = 0, pretend = 0, frame = 0
1005
- @ frame_needed = 0, uses_anonymous_args = 0
1006
- ldr r3, .L149
1007
- push {r4, r5, r6, r7, r8, r9, r10, lr}
1008
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
1009
- add r1, r3, r1, lsl #2
1010
- movs r4, #0
1011
- ldr r8, .L149+4
1012
- adds r5, r1, #3
1013
- mov r9, #161
1014
- mov r6, r0
1015
- mov r7, r3
1016
- mov r10, r4
1017
-.L146:
1018
- ldrb r3, [r8, #1209] @ zero_extendqisi2
1019
- cmp r4, r3
1020
- bcs .L148
1021
- str r9, [r6, #8]
1022
- mov r0, #300
1023
- str r10, [r6]
1024
- ldrsb r3, [r7, r4]
1025
- adds r4, r4, #1
1026
- str r3, [r6]
1027
- ldrsb r3, [r5, #1]!
1028
- str r3, [r6]
1029
- bl NandcDelayns
1030
- b .L146
1031
-.L148:
1032
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
1033
-.L150:
1034
- .align 2
1035
-.L149:
1036
- .word .LANCHOR1+408
1037
- .word .LANCHOR0
1038
- .fnend
1039
- .size SamsungSetRRPara, .-SamsungSetRRPara
1040
- .align 1
10411266 .global HynixSetRRPara
1267
+ .syntax unified
10421268 .thumb
10431269 .thumb_func
1270
+ .fpu softvfp
10441271 .type HynixSetRRPara, %function
10451272 HynixSetRRPara:
10461273 .fnstart
....@@ -1050,407 +1277,303 @@
10501277 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10511278 .pad #12
10521279 mov r7, r3
1053
- ldr r5, .L159
1280
+ ldr r5, .L181
10541281 mov r6, r0
1055
- mov r9, r1
1056
- mov fp, r2
1057
- ldr r3, [r5, #44]
1058
- ldrb r4, [r3, #19] @ zero_extendqisi2
1059
- lsls r3, r0, #3
1060
- cmp r4, #6
1061
- bne .L152
1062
- add r4, r5, r0, lsl #6
1063
- addw r4, r4, #1230
1064
- add r4, r4, r7, lsl #2
1065
- b .L153
1066
-.L152:
1067
- cmp r4, #7
1068
- bne .L154
1069
- mov r10, #160
1070
- add r4, r7, r7, lsl #2
1071
- mla r10, r10, r0, r5
1072
- addw r10, r10, #1238
1073
- add r4, r10, r4, lsl #1
1074
- b .L153
1075
-.L154:
1076
- cmp r4, #8
1077
- iteet ne
1078
- addne r4, r7, r3
1079
- addweq r4, r5, #1238
1080
- addeq r2, r7, r7, lsl #2
1081
- addne r4, r5, r4, lsl #3
1082
- ite eq
1083
- addeq r4, r4, r2
1084
- addwne r4, r4, #1230
1085
-.L153:
1086
- add r3, r3, r5
1282
+ mov r8, r1
1283
+ mov r9, r2
1284
+ ldr r3, [r5, #48]
1285
+ ldrb r3, [r3, #19] @ zero_extendqisi2
1286
+ cmp r3, #6
1287
+ bne .L174
1288
+ movs r3, #20
1289
+ add r4, r5, #1216
1290
+ add r3, r3, r0, lsl #6
1291
+ add r3, r3, r7, lsl #2
1292
+.L180:
1293
+ add r4, r4, r3
1294
+ b .L175
1295
+.L174:
1296
+ cmp r3, #7
1297
+ bne .L176
1298
+ movs r3, #160
1299
+ movs r4, #28
1300
+ smlabb r4, r3, r0, r4
1301
+ movs r3, #10
1302
+ add r2, r5, #1216
1303
+ smlabb r3, r3, r7, r4
1304
+ adds r4, r2, r3
1305
+.L175:
1306
+ add r3, r5, r6, lsl #3
1307
+ ldr r10, [r5, r6, lsl #3]
10871308 mov r0, r6
1088
- add r9, r9, #-1
1089
- subs r4, r4, #1
1090
- ldrb r8, [r3, #16] @ zero_extendqisi2
1091
- add r9, r9, fp
1092
- ldr r10, [r3, #12]
1309
+ ldrb fp, [r3, #4] @ zero_extendqisi2
1310
+ add r8, r8, #-1
10931311 bl NandcFlashCs
1094
- add r1, fp, #-1
1095
- movs r2, #54
1096
- lsl r8, r8, #8
1097
- add r3, r10, r8
1098
- mov fp, r3
1099
- str r2, [r3, #2056]
1100
-.L156:
1101
- cmp r1, r9
1102
- beq .L158
1103
- ldrb r3, [r1, #1]! @ zero_extendqisi2
1104
- movs r0, #200
1105
- str r3, [fp, #2052]
1106
- str r1, [sp, #4]
1107
- bl NandcDelayns
1108
- ldrsb r3, [r4, #1]!
1109
- str r3, [fp, #2048]
1110
- ldr r1, [sp, #4]
1111
- b .L156
1112
-.L158:
1113
- add r8, r8, r10
1312
+ movs r3, #54
1313
+ add r8, r8, r9
1314
+ subs r4, r4, #1
1315
+ lsl fp, fp, #8
1316
+ add r0, r10, fp
1317
+ str r3, [r0, #2056]
1318
+ add r3, r9, #-1
1319
+ mov r9, r0
1320
+.L178:
1321
+ cmp r3, r8
1322
+ bne .L179
11141323 movs r3, #22
1324
+ add r10, r10, fp
1325
+ str r3, [r10, #2056]
11151326 mov r0, r6
11161327 add r5, r5, r6
1117
- str r3, [r8, #2056]
11181328 bl NandcFlashDeCs
1119
- strb r7, [r5, #2064]
1329
+ strb r7, [r5, #2068]
11201330 add sp, sp, #12
11211331 @ sp needed
11221332 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
1123
-.L160:
1333
+.L176:
1334
+ cmp r3, #8
1335
+ bne .L177
1336
+ addw r4, r5, #1244
1337
+ add r3, r7, r7, lsl #2
1338
+ b .L180
1339
+.L177:
1340
+ adds r4, r7, #2
1341
+ add r4, r4, r0, lsl #3
1342
+ add r4, r5, r4, lsl #3
1343
+ addw r4, r4, #1220
1344
+ b .L175
1345
+.L179:
1346
+ ldrb r2, [r3, #1]! @ zero_extendqisi2
1347
+ movs r0, #200
1348
+ str r2, [r9, #2052]
1349
+ str r3, [sp, #4]
1350
+ bl ndelay
1351
+ ldrsb r2, [r4, #1]!
1352
+ ldr r3, [sp, #4]
1353
+ str r2, [r9, #2048]
1354
+ b .L178
1355
+.L182:
11241356 .align 2
1125
-.L159:
1357
+.L181:
11261358 .word .LANCHOR0
11271359 .fnend
11281360 .size HynixSetRRPara, .-HynixSetRRPara
11291361 .align 1
11301362 .global FlashSetReadRetryDefault
1363
+ .syntax unified
11311364 .thumb
11321365 .thumb_func
1366
+ .fpu softvfp
11331367 .type FlashSetReadRetryDefault, %function
11341368 FlashSetReadRetryDefault:
11351369 .fnstart
11361370 @ args = 0, pretend = 0, frame = 0
11371371 @ frame_needed = 0, uses_anonymous_args = 0
1138
- push {r3, r4, r5, lr}
1139
- .save {r3, r4, r5, lr}
1140
- ldr r3, .L167
1141
- ldr r2, [r3, #44]
1142
- ldrb r2, [r2, #19] @ zero_extendqisi2
1143
- subs r2, r2, #1
1144
- cmp r2, #7
1145
- bhi .L161
1372
+ push {r4, r5, r6, lr}
1373
+ .save {r4, r5, r6, lr}
1374
+ ldr r5, .L189
1375
+ ldr r3, [r5, #48]
1376
+ ldrb r3, [r3, #19] @ zero_extendqisi2
1377
+ subs r3, r3, #1
1378
+ cmp r3, #7
1379
+ bhi .L183
11461380 movs r4, #0
1147
- mov r5, r3
1148
-.L162:
1149
- ldr r2, .L167+4
1381
+ addw r6, r5, #2072
1382
+.L186:
1383
+ ldrb r3, [r6, r4, lsl #3] @ zero_extendqisi2
11501384 uxtb r0, r4
1151
- ldrb r3, [r2, r4, lsl #3] @ zero_extendqisi2
11521385 cmp r3, #173
1153
- bne .L163
1154
- ldrb r1, [r5, #1211] @ zero_extendqisi2
1155
- subw r2, r2, #854
1386
+ bne .L185
11561387 movs r3, #0
1388
+ ldr r2, .L189+4
1389
+ ldrb r1, [r5, #1217] @ zero_extendqisi2
11571390 bl HynixSetRRPara
1158
-.L163:
1391
+.L185:
11591392 adds r4, r4, #1
11601393 cmp r4, #4
1161
- bne .L162
1162
-.L161:
1163
- pop {r3, r4, r5, pc}
1164
-.L168:
1394
+ bne .L186
1395
+.L183:
1396
+ pop {r4, r5, r6, pc}
1397
+.L190:
11651398 .align 2
1166
-.L167:
1399
+.L189:
11671400 .word .LANCHOR0
1168
- .word .LANCHOR0+2068
1401
+ .word .LANCHOR0+1220
11691402 .fnend
11701403 .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault
11711404 .align 1
1172
- .global FlashReadStatusEN
1173
- .thumb
1174
- .thumb_func
1175
- .type FlashReadStatusEN, %function
1176
-FlashReadStatusEN:
1177
- .fnstart
1178
- @ args = 0, pretend = 0, frame = 0
1179
- @ frame_needed = 0, uses_anonymous_args = 0
1180
- push {r4, r5, r6, lr}
1181
- .save {r4, r5, r6, lr}
1182
- ldr r5, .L179
1183
- add r0, r5, r0, lsl #3
1184
- ldr r3, [r5, #44]
1185
- ldrb r4, [r0, #16] @ zero_extendqisi2
1186
- ldr r6, [r0, #12]
1187
- ldrb r3, [r3, #8] @ zero_extendqisi2
1188
- cmp r3, #2
1189
- lsl r3, r4, #8
1190
- add r4, r4, #8
1191
- bne .L170
1192
- cbnz r2, .L171
1193
- ldrb r2, [r5, #61] @ zero_extendqisi2
1194
- b .L178
1195
-.L171:
1196
- ldrb r2, [r5, #62] @ zero_extendqisi2
1197
-.L178:
1198
- add r3, r3, r6
1199
- str r2, [r3, #2056]
1200
- ldrb r0, [r5, #63] @ zero_extendqisi2
1201
- cbz r0, .L174
1202
- movs r3, #0
1203
- add r5, r6, r4, lsl #8
1204
-.L173:
1205
- cmp r3, r0
1206
- bcs .L174
1207
- lsls r2, r3, #3
1208
- adds r3, r3, #1
1209
- lsr r2, r1, r2
1210
- uxtb r2, r2
1211
- str r2, [r5, #4]
1212
- b .L173
1213
-.L170:
1214
- add r3, r3, r6
1215
- movs r2, #112
1216
- str r2, [r3, #2056]
1217
-.L174:
1218
- movs r0, #80
1219
- lsls r4, r4, #8
1220
- bl NandcDelayns
1221
- ldr r0, [r6, r4]
1222
- uxtb r0, r0
1223
- pop {r4, r5, r6, pc}
1224
-.L180:
1225
- .align 2
1226
-.L179:
1227
- .word .LANCHOR0
1228
- .fnend
1229
- .size FlashReadStatusEN, .-FlashReadStatusEN
1230
- .align 1
1231
- .global FlashWaitReadyEN
1232
- .thumb
1233
- .thumb_func
1234
- .type FlashWaitReadyEN, %function
1235
-FlashWaitReadyEN:
1236
- .fnstart
1237
- @ args = 0, pretend = 0, frame = 0
1238
- @ frame_needed = 0, uses_anonymous_args = 0
1239
- push {r4, r5, r6, lr}
1240
- .save {r4, r5, r6, lr}
1241
- mov r4, r0
1242
- mov r5, r1
1243
- mov r6, r2
1244
-.L182:
1245
- mov r0, r4
1246
- mov r1, r5
1247
- mov r2, r6
1248
- bl FlashReadStatusEN
1249
- cmp r0, #255
1250
- mov r3, r0
1251
- beq .L182
1252
- lsls r3, r3, #25
1253
- bmi .L183
1254
- movs r0, #1
1255
- movs r1, #3
1256
- bl usleep_range
1257
- b .L182
1258
-.L183:
1259
- pop {r4, r5, r6, pc}
1260
- .fnend
1261
- .size FlashWaitReadyEN, .-FlashWaitReadyEN
1262
- .align 1
12631405 .global FlashWaitCmdDone
1406
+ .syntax unified
12641407 .thumb
12651408 .thumb_func
1409
+ .fpu softvfp
12661410 .type FlashWaitCmdDone, %function
12671411 FlashWaitCmdDone:
12681412 .fnstart
12691413 @ args = 0, pretend = 0, frame = 0
12701414 @ frame_needed = 0, uses_anonymous_args = 0
1271
- push {r3, r4, r5, r6, r7, r8, r9, lr}
1272
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
1273
- mov r8, r0
1274
- ldr r5, .L194
1415
+ push {r3, r4, r5, r6, r7, lr}
1416
+ .save {r3, r4, r5, r6, r7, lr}
1417
+ mov r7, r0
1418
+ ldr r5, .L198
12751419 add r4, r5, r0, lsl #4
1276
- ldr r3, [r4, #2108]
1277
- ldrb r6, [r4, #2100] @ zero_extendqisi2
1278
- cbz r3, .L189
1279
- add r5, r5, r8, lsl #2
1420
+ ldr r3, [r4, #2112]
1421
+ cbz r3, .L193
1422
+ ldrb r6, [r4, #2104] @ zero_extendqisi2
1423
+ add r5, r5, r7, lsl #2
12801424 mov r0, r6
12811425 bl NandcFlashCs
1282
- ldr r1, [r4, #2104]
1283
- ldr r2, [r5, #1172]
1426
+ ldr r2, [r5, #1180]
12841427 mov r0, r6
1428
+ ldr r1, [r4, #2108]
12851429 adds r2, r2, #0
12861430 it ne
12871431 movne r2, #1
12881432 bl FlashWaitReadyEN
1289
- mov r5, r0
1433
+ mov r1, r0
12901434 mov r0, r6
12911435 bl NandcFlashDeCs
1292
- ldr r2, [r4, #2108]
1293
- sbfx r3, r5, #0, #1
1294
- str r3, [r2]
1295
- movs r2, #0
1296
- ldr r1, [r4, #2112]
1297
- str r2, [r4, #2108]
1298
- cbz r1, .L189
1299
- str r3, [r1]
1300
- str r2, [r4, #2112]
1301
-.L189:
1436
+ ldr r3, [r4, #2112]
1437
+ sbfx r1, r1, #0, #1
1438
+ str r1, [r3]
1439
+ movs r3, #0
1440
+ ldr r2, [r4, #2116]
1441
+ str r3, [r4, #2112]
1442
+ cbz r2, .L193
1443
+ str r1, [r2]
1444
+ str r3, [r4, #2116]
1445
+.L193:
13021446 movs r0, #0
1303
- pop {r3, r4, r5, r6, r7, r8, r9, pc}
1304
-.L195:
1447
+ pop {r3, r4, r5, r6, r7, pc}
1448
+.L199:
13051449 .align 2
1306
-.L194:
1450
+.L198:
13071451 .word .LANCHOR0
13081452 .fnend
13091453 .size FlashWaitCmdDone, .-FlashWaitCmdDone
13101454 .align 1
1455
+ .global NandcDelayns
1456
+ .syntax unified
13111457 .thumb
13121458 .thumb_func
1313
- .type flash_read_ecc, %function
1314
-flash_read_ecc:
1459
+ .fpu softvfp
1460
+ .type NandcDelayns, %function
1461
+NandcDelayns:
13151462 .fnstart
13161463 @ args = 0, pretend = 0, frame = 0
13171464 @ frame_needed = 0, uses_anonymous_args = 0
1318
- ldr r2, .L197
1319
- push {r4, lr}
1320
- .save {r4, lr}
1321
- add r0, r2, r0, lsl #3
1322
- ldrb r4, [r0, #16] @ zero_extendqisi2
1323
- ldr r3, [r0, #12]
1324
- movs r0, #80
1325
- add r4, r3, r4, lsl #8
1326
- movs r3, #122
1327
- str r3, [r4, #2056]
1328
- bl NandcDelayns
1329
- ldr r3, [r4, #2048]
1330
- ldr r0, [r4, #2048]
1331
- and r3, r3, #15
1332
- and r0, r0, #15
1333
- cmp r0, r3
1334
- it cc
1335
- movcc r0, r3
1336
- ldr r3, [r4, #2048]
1337
- and r3, r3, #15
1338
- cmp r0, r3
1339
- it cc
1340
- movcc r0, r3
1341
- ldr r3, [r4, #2048]
1342
- and r3, r3, #15
1343
- cmp r0, r3
1344
- it cc
1345
- movcc r0, r3
1346
- pop {r4, pc}
1347
-.L198:
1348
- .align 2
1349
-.L197:
1350
- .word .LANCHOR0
1465
+ push {r3, lr}
1466
+ .save {r3, lr}
1467
+ bl ndelay
1468
+ movs r0, #0
1469
+ pop {r3, pc}
13511470 .fnend
1352
- .size flash_read_ecc, .-flash_read_ecc
1471
+ .size NandcDelayns, .-NandcDelayns
13531472 .align 1
13541473 .global NandcWaitFlashReadyNoDelay
1474
+ .syntax unified
13551475 .thumb
13561476 .thumb_func
1477
+ .fpu softvfp
13571478 .type NandcWaitFlashReadyNoDelay, %function
13581479 NandcWaitFlashReadyNoDelay:
13591480 .fnstart
13601481 @ args = 0, pretend = 0, frame = 8
13611482 @ frame_needed = 0, uses_anonymous_args = 0
1362
- ldr r3, .L204
1483
+ ldr r3, .L206
13631484 push {r0, r1, r2, r4, r5, lr}
13641485 .save {r4, r5, lr}
13651486 .pad #12
1366
- add r0, r3, r0, lsl #3
1367
- ldr r4, .L204+4
1368
- ldr r5, [r0, #12]
1369
-.L201:
1487
+ ldr r4, .L206+4
1488
+ ldr r5, [r3, r0, lsl #3]
1489
+.L203:
13701490 ldr r3, [r5]
13711491 str r3, [sp, #4]
13721492 ldr r3, [sp, #4]
13731493 lsls r3, r3, #22
1374
- bmi .L202
1494
+ bmi .L204
13751495 movs r0, #10
1376
- bl NandcDelayns
1496
+ bl ndelay
13771497 subs r4, r4, #1
1378
- bne .L201
1498
+ bne .L203
13791499 mov r0, #-1
1380
- b .L200
1381
-.L202:
1382
- movs r0, #0
1383
-.L200:
1500
+.L201:
13841501 add sp, sp, #12
13851502 @ sp needed
13861503 pop {r4, r5, pc}
1387
-.L205:
1388
- .align 2
13891504 .L204:
1505
+ movs r0, #0
1506
+ b .L201
1507
+.L207:
1508
+ .align 2
1509
+.L206:
13901510 .word .LANCHOR0
13911511 .word 100000
13921512 .fnend
13931513 .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay
13941514 .align 1
13951515 .global NandcWaitFlashReady
1516
+ .syntax unified
13961517 .thumb
13971518 .thumb_func
1519
+ .fpu softvfp
13981520 .type NandcWaitFlashReady, %function
13991521 NandcWaitFlashReady:
14001522 .fnstart
14011523 @ args = 0, pretend = 0, frame = 8
14021524 @ frame_needed = 0, uses_anonymous_args = 0
1403
- ldr r3, .L211
14041525 push {r0, r1, r2, r4, r5, lr}
14051526 .save {r4, r5, lr}
14061527 .pad #12
1407
- add r0, r3, r0, lsl #3
1408
- ldr r4, .L211+4
1409
- ldr r5, [r0, #12]
1528
+ ldr r3, .L213
1529
+ ldr r4, .L213+4
1530
+ ldr r5, [r3, r0, lsl #3]
14101531 movs r0, #130
1411
- bl NandcDelayns
1412
-.L208:
1532
+ bl ndelay
1533
+.L210:
14131534 ldr r3, [r5]
14141535 str r3, [sp, #4]
14151536 ldr r3, [sp, #4]
14161537 lsls r3, r3, #22
1417
- bmi .L209
1418
- movs r0, #1
1538
+ bmi .L211
14191539 movs r1, #2
1540
+ movs r0, #1
14201541 bl usleep_range
14211542 subs r4, r4, #1
1422
- bne .L208
1543
+ bne .L210
14231544 mov r0, #-1
1424
- b .L207
1425
-.L209:
1426
- movs r0, #0
1427
-.L207:
1545
+.L208:
14281546 add sp, sp, #12
14291547 @ sp needed
14301548 pop {r4, r5, pc}
1431
-.L212:
1432
- .align 2
14331549 .L211:
1550
+ movs r0, #0
1551
+ b .L208
1552
+.L214:
1553
+ .align 2
1554
+.L213:
14341555 .word .LANCHOR0
14351556 .word 100000
14361557 .fnend
14371558 .size NandcWaitFlashReady, .-NandcWaitFlashReady
14381559 .align 1
14391560 .global FlashReset
1561
+ .syntax unified
14401562 .thumb
14411563 .thumb_func
1564
+ .fpu softvfp
14421565 .type FlashReset, %function
14431566 FlashReset:
14441567 .fnstart
14451568 @ args = 0, pretend = 0, frame = 0
14461569 @ frame_needed = 0, uses_anonymous_args = 0
1447
- ldr r3, .L214
1570
+ ldr r3, .L216
14481571 push {r4, r5, r6, lr}
14491572 .save {r4, r5, r6, lr}
1450
- add r3, r3, r0, lsl #3
14511573 mov r4, r0
1452
- ldrb r6, [r3, #16] @ zero_extendqisi2
1453
- ldr r5, [r3, #12]
1574
+ ldr r5, [r3, r0, lsl #3]
1575
+ add r3, r3, r0, lsl #3
1576
+ ldrb r6, [r3, #4] @ zero_extendqisi2
14541577 bl NandcFlashCs
14551578 movs r3, #255
14561579 mov r0, r4
....@@ -1460,16 +1583,18 @@
14601583 mov r0, r4
14611584 pop {r4, r5, r6, lr}
14621585 b NandcFlashDeCs
1463
-.L215:
1586
+.L217:
14641587 .align 2
1465
-.L214:
1588
+.L216:
14661589 .word .LANCHOR0
14671590 .fnend
14681591 .size FlashReset, .-FlashReset
14691592 .align 1
14701593 .global flash_enter_slc_mode
1594
+ .syntax unified
14711595 .thumb
14721596 .thumb_func
1597
+ .fpu softvfp
14731598 .type flash_enter_slc_mode, %function
14741599 flash_enter_slc_mode:
14751600 .fnstart
....@@ -1477,25 +1602,25 @@
14771602 @ frame_needed = 0, uses_anonymous_args = 0
14781603 push {r4, r5, r6, r7, r8, lr}
14791604 .save {r4, r5, r6, r7, r8, lr}
1480
- mov r7, r0
1481
- ldr r6, .L222
1482
- ldrb r3, [r6, #144] @ zero_extendqisi2
1483
- cbz r3, .L216
1484
- add r4, r6, r7, lsl #3
1605
+ mov r6, r0
1606
+ ldr r5, .L224
1607
+ ldrb r3, [r5, #152] @ zero_extendqisi2
1608
+ cbz r3, .L218
14851609 bl NandcFlashCs
1486
- ldrb r3, [r4, #2068] @ zero_extendqisi2
1487
- ldrb r5, [r4, #16] @ zero_extendqisi2
1610
+ add r3, r5, r6, lsl #3
1611
+ ldr r7, [r5, r6, lsl #3]
1612
+ ldrb r8, [r3, #4] @ zero_extendqisi2
1613
+ ldrb r3, [r3, #2072] @ zero_extendqisi2
14881614 cmp r3, #44
1489
- ldr r8, [r4, #12]
1490
- lsl r5, r5, #8
1491
- bne .L218
1492
- add r4, r8, r5
1615
+ lsl r8, r8, #8
1616
+ bne .L220
1617
+ add r4, r7, r8
14931618 movs r3, #239
1494
- movs r0, #50
14951619 str r3, [r4, #2056]
14961620 movs r3, #145
14971621 str r3, [r4, #2052]
1498
- bl NandcDelayns
1622
+ movs r0, #50
1623
+ bl ndelay
14991624 movs r3, #0
15001625 movs r2, #1
15011626 str r3, [r4, #2048]
....@@ -1503,29 +1628,31 @@
15031628 str r2, [r4, #2048]
15041629 str r3, [r4, #2048]
15051630 str r3, [r4, #2048]
1506
- bl NandcDelayns
1507
-.L218:
1508
- add r5, r5, r8
1509
- mov r0, r7
1631
+ bl ndelay
1632
+.L220:
1633
+ mov r0, r6
1634
+ add r7, r7, r8
15101635 bl NandcWaitFlashReadyNoDelay
15111636 movs r3, #218
1512
- mov r0, r7
1513
- str r3, [r5, #2056]
1637
+ mov r0, r6
1638
+ str r3, [r7, #2056]
15141639 bl NandcWaitFlashReady
15151640 movs r3, #2
1516
- strb r3, [r6, #2228]
1517
-.L216:
1641
+ strb r3, [r5, #2232]
1642
+.L218:
15181643 pop {r4, r5, r6, r7, r8, pc}
1519
-.L223:
1644
+.L225:
15201645 .align 2
1521
-.L222:
1646
+.L224:
15221647 .word .LANCHOR0
15231648 .fnend
15241649 .size flash_enter_slc_mode, .-flash_enter_slc_mode
15251650 .align 1
15261651 .global flash_exit_slc_mode
1652
+ .syntax unified
15271653 .thumb
15281654 .thumb_func
1655
+ .fpu softvfp
15291656 .type flash_exit_slc_mode, %function
15301657 flash_exit_slc_mode:
15311658 .fnstart
....@@ -1533,25 +1660,25 @@
15331660 @ frame_needed = 0, uses_anonymous_args = 0
15341661 push {r4, r5, r6, r7, r8, lr}
15351662 .save {r4, r5, r6, r7, r8, lr}
1536
- mov r7, r0
1537
- ldr r6, .L230
1538
- ldrb r3, [r6, #144] @ zero_extendqisi2
1539
- cbz r3, .L224
1540
- add r4, r6, r7, lsl #3
1663
+ mov r6, r0
1664
+ ldr r5, .L232
1665
+ ldrb r3, [r5, #152] @ zero_extendqisi2
1666
+ cbz r3, .L226
15411667 bl NandcFlashCs
1542
- ldrb r3, [r4, #2068] @ zero_extendqisi2
1543
- ldrb r5, [r4, #16] @ zero_extendqisi2
1668
+ add r3, r5, r6, lsl #3
1669
+ ldr r7, [r5, r6, lsl #3]
1670
+ ldrb r8, [r3, #4] @ zero_extendqisi2
1671
+ ldrb r3, [r3, #2072] @ zero_extendqisi2
15441672 cmp r3, #44
1545
- ldr r8, [r4, #12]
1546
- lsl r5, r5, #8
1547
- bne .L226
1548
- add r4, r8, r5
1673
+ lsl r8, r8, #8
1674
+ bne .L228
1675
+ add r4, r7, r8
15491676 movs r3, #239
1550
- movs r0, #50
15511677 str r3, [r4, #2056]
15521678 movs r3, #145
15531679 str r3, [r4, #2052]
1554
- bl NandcDelayns
1680
+ movs r0, #50
1681
+ bl ndelay
15551682 movs r3, #2
15561683 movs r0, #100
15571684 str r3, [r4, #2048]
....@@ -1560,29 +1687,31 @@
15601687 movs r3, #0
15611688 str r3, [r4, #2048]
15621689 str r3, [r4, #2048]
1563
- bl NandcDelayns
1564
-.L226:
1565
- add r5, r5, r8
1566
- mov r0, r7
1690
+ bl ndelay
1691
+.L228:
1692
+ mov r0, r6
1693
+ add r7, r7, r8
15671694 bl NandcWaitFlashReadyNoDelay
15681695 movs r3, #223
1569
- mov r0, r7
1570
- str r3, [r5, #2056]
1696
+ mov r0, r6
1697
+ str r3, [r7, #2056]
15711698 bl NandcWaitFlashReady
15721699 movs r3, #0
1573
- strb r3, [r6, #2228]
1574
-.L224:
1700
+ strb r3, [r5, #2232]
1701
+.L226:
15751702 pop {r4, r5, r6, r7, r8, pc}
1576
-.L231:
1703
+.L233:
15771704 .align 2
1578
-.L230:
1705
+.L232:
15791706 .word .LANCHOR0
15801707 .fnend
15811708 .size flash_exit_slc_mode, .-flash_exit_slc_mode
15821709 .align 1
15831710 .global FlashEraseBlock
1711
+ .syntax unified
15841712 .thumb
15851713 .thumb_func
1714
+ .fpu softvfp
15861715 .type FlashEraseBlock, %function
15871716 FlashEraseBlock:
15881717 .fnstart
....@@ -1605,140 +1734,139 @@
16051734 mov r1, r5
16061735 mov r0, r4
16071736 bl FlashReadStatus
1608
- mov r5, r0
1737
+ mov r1, r0
16091738 mov r0, r4
16101739 bl NandcFlashDeCs
1611
- and r0, r5, #1
1740
+ and r0, r1, #1
16121741 pop {r4, r5, r6, pc}
16131742 .fnend
16141743 .size FlashEraseBlock, .-FlashEraseBlock
16151744 .align 1
16161745 .global FlashSetInterfaceMode
1746
+ .syntax unified
16171747 .thumb
16181748 .thumb_func
1749
+ .fpu softvfp
16191750 .type FlashSetInterfaceMode, %function
16201751 FlashSetInterfaceMode:
16211752 .fnstart
1622
- @ args = 0, pretend = 0, frame = 16
1753
+ @ args = 0, pretend = 0, frame = 8
16231754 @ frame_needed = 0, uses_anonymous_args = 0
1624
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1755
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
16251756 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1626
- .pad #20
1627
- sub sp, sp, #20
1628
- ldr r5, .L261
1629
- movs r4, #0
1630
- movs r7, #239
1631
- mov lr, #128
1632
- mov ip, #1
1633
- mov r8, #35
1634
- ldrb r3, [r5, #2229] @ zero_extendqisi2
1757
+ .pad #12
1758
+ movs r5, #0
1759
+ ldr r6, .L263
1760
+ mov ip, #128
1761
+ mov lr, #1
16351762 mov r9, #32
16361763 mov r10, #5
1637
- and r2, r3, #1
1638
- str r2, [sp, #12]
1764
+ ldrb r3, [r6, #2233] @ zero_extendqisi2
1765
+ addw r8, r6, #2072
16391766 and r2, r3, #4
1640
- uxtb r3, r2
1641
- mov r2, r4
1642
- str r3, [sp, #8]
1643
- add r3, r5, #12
1644
- str r3, [sp, #4]
1645
-.L243:
1646
- ldr r1, .L261+4
1647
- ldr r3, [sp, #4]
1648
- ldrb r1, [r4, r1] @ zero_extendqisi2
1649
- ldr r6, [r4, r3]
1650
- add r3, r3, r4
1651
- cmp r1, #152
1652
- ldr r3, [r3, #4]
1653
- beq .L234
1654
- cmp r1, #69
1655
- beq .L234
1656
- cmp r1, #173
1657
- beq .L234
1658
- cmp r1, #44
1659
- bne .L235
1660
-.L234:
1661
- cmp r0, #1
1662
- uxtb r3, r3
1663
- bne .L236
1664
- ldr r5, [sp, #12]
1665
- cbz r5, .L235
1666
- lsls r3, r3, #8
1667
- cmp r1, #173
1668
- add fp, r6, r3
1669
- str r7, [fp, #2056]
1767
+ and r3, r3, #1
1768
+ str r2, [sp, #4]
1769
+ mov r2, r5
1770
+ str r3, [sp]
1771
+.L245:
1772
+ ldrb r4, [r5, r8] @ zero_extendqisi2
1773
+ cmp r4, #152
1774
+ beq .L236
1775
+ cmp r4, #69
1776
+ beq .L236
1777
+ cmp r4, #173
1778
+ beq .L236
1779
+ cmp r4, #44
16701780 bne .L237
1781
+.L236:
1782
+ cmp r0, #1
1783
+ add r3, r6, r5
1784
+ ldr r1, [r6, r5]
1785
+ ldrb r3, [r3, #4] @ zero_extendqisi2
1786
+ bne .L238
1787
+ ldr r7, [sp]
1788
+ cbz r7, .L237
1789
+ lsls r3, r3, #8
1790
+ cmp r4, #173
1791
+ mov r7, #239
1792
+ add fp, r1, r3
1793
+ str r7, [fp, #2056]
1794
+ bne .L239
16711795 str r0, [fp, #2052]
1672
- b .L260
1673
-.L237:
1674
- cmp r1, #44
1796
+.L262:
1797
+ str r2, [fp, #2048]
1798
+ b .L243
1799
+.L239:
1800
+ cmp r4, #44
16751801 itete eq
16761802 streq r0, [fp, #2052]
1677
- strne lr, [fp, #2052]
1803
+ strne ip, [fp, #2052]
16781804 streq r10, [fp, #2048]
16791805 strne r0, [fp, #2048]
1680
- b .L241
1681
-.L236:
1682
- ldr r5, [sp, #8]
1683
- cbz r5, .L235
1684
- lsls r3, r3, #8
1685
- cmp r1, #173
1686
- add fp, r6, r3
1687
- str r7, [fp, #2056]
1688
- bne .L240
1689
- str ip, [fp, #2052]
1690
- str r9, [fp, #2048]
1691
- b .L241
1692
-.L240:
1693
- cmp r1, #44
1694
- bne .L242
1695
- str ip, [fp, #2052]
1696
- str r8, [fp, #2048]
1697
- b .L241
1698
-.L242:
1699
- str lr, [fp, #2052]
1700
-.L260:
1701
- str r2, [fp, #2048]
1702
-.L241:
1703
- add r3, r3, r6
1806
+.L243:
1807
+ add r3, r3, r1
17041808 str r2, [r3, #2048]
17051809 str r2, [r3, #2048]
17061810 str r2, [r3, #2048]
1707
-.L235:
1708
- adds r4, r4, #8
1709
- cmp r4, #32
1710
- bne .L243
1811
+.L237:
1812
+ adds r5, r5, #8
1813
+ cmp r5, #32
1814
+ bne .L245
17111815 movs r0, #0
17121816 bl NandcWaitFlashReady
17131817 movs r0, #0
1714
- add sp, sp, #20
1818
+ add sp, sp, #12
17151819 @ sp needed
17161820 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
1717
-.L262:
1821
+.L238:
1822
+ ldr r7, [sp, #4]
1823
+ cmp r7, #0
1824
+ beq .L237
1825
+ lsls r3, r3, #8
1826
+ cmp r4, #173
1827
+ mov r7, #239
1828
+ add fp, r1, r3
1829
+ str r7, [fp, #2056]
1830
+ bne .L242
1831
+ str lr, [fp, #2052]
1832
+ str r9, [fp, #2048]
1833
+ b .L243
1834
+.L242:
1835
+ cmp r4, #44
1836
+ bne .L244
1837
+ movs r4, #35
1838
+ str lr, [fp, #2052]
1839
+ str r4, [fp, #2048]
1840
+ b .L243
1841
+.L244:
1842
+ str ip, [fp, #2052]
1843
+ b .L262
1844
+.L264:
17181845 .align 2
1719
-.L261:
1846
+.L263:
17201847 .word .LANCHOR0
1721
- .word .LANCHOR0+2068
17221848 .fnend
17231849 .size FlashSetInterfaceMode, .-FlashSetInterfaceMode
17241850 .align 1
17251851 .global FlashReadSpare
1852
+ .syntax unified
17261853 .thumb
17271854 .thumb_func
1855
+ .fpu softvfp
17281856 .type FlashReadSpare, %function
17291857 FlashReadSpare:
17301858 .fnstart
17311859 @ args = 0, pretend = 0, frame = 0
17321860 @ frame_needed = 0, uses_anonymous_args = 0
1733
- push {r4, r5, r6, lr}
1734
- .save {r4, r5, r6, lr}
1735
- mov r6, r2
1736
- ldr r5, .L264
1737
- ldr r3, .L264+4
1861
+ push {r3, r4, r5, r6, r7, lr}
1862
+ .save {r3, r4, r5, r6, r7, lr}
1863
+ mov r7, r2
1864
+ ldr r5, .L266
1865
+ ldr r3, .L266+4
1866
+ ldr r4, [r5, r0, lsl #3]
17381867 add r5, r5, r0, lsl #3
1739
- ldrb r3, [r3, #481] @ zero_extendqisi2
1740
- ldrb r2, [r5, #16] @ zero_extendqisi2
1741
- ldr r4, [r5, #12]
1868
+ ldrb r3, [r3, #477] @ zero_extendqisi2
1869
+ ldrb r2, [r5, #4] @ zero_extendqisi2
17421870 lsls r3, r3, #9
17431871 add r4, r4, r2, lsl #8
17441872 movs r2, #0
....@@ -1756,31 +1884,33 @@
17561884 str r3, [r4, #2056]
17571885 bl NandcWaitFlashReady
17581886 ldr r3, [r4, #2048]
1759
- strb r3, [r6]
1760
- pop {r4, r5, r6, pc}
1761
-.L265:
1887
+ strb r3, [r7]
1888
+ pop {r3, r4, r5, r6, r7, pc}
1889
+.L267:
17621890 .align 2
1763
-.L264:
1891
+.L266:
17641892 .word .LANCHOR0
17651893 .word .LANCHOR1
17661894 .fnend
17671895 .size FlashReadSpare, .-FlashReadSpare
17681896 .align 1
17691897 .global SandiskProgTestBadBlock
1898
+ .syntax unified
17701899 .thumb
17711900 .thumb_func
1901
+ .fpu softvfp
17721902 .type SandiskProgTestBadBlock, %function
17731903 SandiskProgTestBadBlock:
17741904 .fnstart
17751905 @ args = 0, pretend = 0, frame = 0
17761906 @ frame_needed = 0, uses_anonymous_args = 0
1777
- ldr r2, .L267
1907
+ ldr r3, .L269
17781908 push {r4, lr}
17791909 .save {r4, lr}
1780
- add r2, r2, r0, lsl #3
1781
- ldrb r4, [r2, #16] @ zero_extendqisi2
1782
- ldr r3, [r2, #12]
1783
- add r4, r3, r4, lsl #8
1910
+ ldr r4, [r3, r0, lsl #3]
1911
+ add r3, r3, r0, lsl #3
1912
+ ldrb r3, [r3, #4] @ zero_extendqisi2
1913
+ add r4, r4, r3, lsl #8
17841914 movs r3, #162
17851915 str r3, [r4, #2056]
17861916 movs r3, #128
....@@ -1793,169 +1923,183 @@
17931923 lsrs r3, r1, #8
17941924 lsrs r1, r1, #16
17951925 str r3, [r4, #2052]
1796
- str r1, [r4, #2052]
17971926 movs r3, #16
1927
+ str r1, [r4, #2052]
17981928 str r3, [r4, #2056]
17991929 bl NandcWaitFlashReady
18001930 movs r3, #112
18011931 movs r0, #80
18021932 str r3, [r4, #2056]
1803
- bl NandcDelayns
1933
+ bl ndelay
18041934 ldr r0, [r4, #2048]
18051935 and r0, r0, #1
18061936 pop {r4, pc}
1807
-.L268:
1937
+.L270:
18081938 .align 2
1809
-.L267:
1939
+.L269:
18101940 .word .LANCHOR0
18111941 .fnend
18121942 .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock
18131943 .align 1
18141944 .global SandiskSetRRPara
1945
+ .syntax unified
18151946 .thumb
18161947 .thumb_func
1948
+ .fpu softvfp
18171949 .type SandiskSetRRPara, %function
18181950 SandiskSetRRPara:
18191951 .fnstart
18201952 @ args = 0, pretend = 0, frame = 0
18211953 @ frame_needed = 0, uses_anonymous_args = 0
1954
+ movs r3, #239
18221955 push {r4, r5, r6, lr}
18231956 .save {r4, r5, r6, lr}
1824
- movs r3, #239
1825
- mov r5, r0
18261957 str r3, [r0, #8]
18271958 movs r3, #17
1959
+ mov r5, r0
1960
+ mov r4, r1
18281961 str r3, [r0, #4]
18291962 movs r0, #200
1830
- mov r4, r1
1831
- bl NandcDelayns
1832
- ldr r0, .L276
1833
- ldr r1, .L276+4
1963
+ bl ndelay
1964
+ ldr r0, .L277
18341965 add r4, r4, r4, lsl #2
1966
+ ldr r1, .L277+4
18351967 movs r2, #0
1836
- sub r6, r0, #48
1837
-.L270:
1838
- ldrb r3, [r1, #1209] @ zero_extendqisi2
1968
+ sub r6, r0, #45
1969
+.L272:
1970
+ ldrb r3, [r1, #85] @ zero_extendqisi2
18391971 cmp r2, r3
1840
- bcs .L275
1841
- ldrb r3, [r1, #1208] @ zero_extendqisi2
1972
+ bcc .L275
1973
+ movs r0, #0
1974
+ pop {r4, r5, r6, lr}
1975
+ b NandcWaitFlashReady
1976
+.L275:
1977
+ ldrb r3, [r1, #84] @ zero_extendqisi2
18421978 cmp r3, #67
18431979 add r3, r2, r4
18441980 ite eq
18451981 addeq r3, r3, r6
18461982 addne r3, r3, r0
1847
- adds r2, r2, #1
18481983 ldrsb r3, [r3, #5]
1984
+ adds r2, r2, #1
18491985 str r3, [r5]
1850
- b .L270
1851
-.L275:
1852
- movs r0, #0
1853
- pop {r4, r5, r6, lr}
1854
- b NandcWaitFlashReady
1855
-.L277:
1986
+ b .L272
1987
+.L278:
18561988 .align 2
1857
-.L276:
1858
- .word .LANCHOR1+304
1989
+.L277:
1990
+ .word .LANCHOR1+301
18591991 .word .LANCHOR0
18601992 .fnend
18611993 .size SandiskSetRRPara, .-SandiskSetRRPara
18621994 .align 1
18631995 .global micron_auto_read_calibration_config
1996
+ .syntax unified
18641997 .thumb
18651998 .thumb_func
1999
+ .fpu softvfp
18662000 .type micron_auto_read_calibration_config, %function
18672001 micron_auto_read_calibration_config:
18682002 .fnstart
18692003 @ args = 0, pretend = 0, frame = 0
18702004 @ frame_needed = 0, uses_anonymous_args = 0
1871
- push {r3, r4, r5, lr}
1872
- .save {r3, r4, r5, lr}
1873
- mov r4, r0
1874
- mov r5, r1
2005
+ push {r4, r5, r6, lr}
2006
+ .save {r4, r5, r6, lr}
2007
+ mov r5, r0
2008
+ mov r6, r1
18752009 bl NandcWaitFlashReady
1876
- ldr r3, .L279
2010
+ ldr r0, .L280
2011
+ ldr r4, [r0, r5, lsl #3]
2012
+ add r0, r0, r5, lsl #3
2013
+ ldrb r3, [r0, #4] @ zero_extendqisi2
18772014 movs r0, #200
1878
- add r2, r3, r4, lsl #3
1879
- ldrb r4, [r2, #16] @ zero_extendqisi2
1880
- ldr r3, [r2, #12]
1881
- add r4, r3, r4, lsl #8
2015
+ add r4, r4, r3, lsl #8
18822016 movs r3, #239
18832017 str r3, [r4, #2056]
18842018 movs r3, #150
18852019 str r3, [r4, #2052]
1886
- bl NandcDelayns
1887
- str r5, [r4, #2048]
2020
+ bl ndelay
18882021 movs r3, #0
2022
+ str r6, [r4, #2048]
18892023 str r3, [r4, #2048]
18902024 str r3, [r4, #2048]
18912025 str r3, [r4, #2048]
1892
- pop {r3, r4, r5, pc}
1893
-.L280:
2026
+ pop {r4, r5, r6, pc}
2027
+.L281:
18942028 .align 2
1895
-.L279:
2029
+.L280:
18962030 .word .LANCHOR0
18972031 .fnend
18982032 .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config
18992033 .align 1
19002034 .global FlashEraseSLc2KBlocks
2035
+ .syntax unified
19012036 .thumb
19022037 .thumb_func
2038
+ .fpu softvfp
19032039 .type FlashEraseSLc2KBlocks, %function
19042040 FlashEraseSLc2KBlocks:
19052041 .fnstart
19062042 @ args = 0, pretend = 0, frame = 8
19072043 @ frame_needed = 0, uses_anonymous_args = 0
1908
- push {r4, r5, r6, r7, r8, r9, lr}
1909
- .save {r4, r5, r6, r7, r8, r9, lr}
2044
+ push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr}
2045
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
2046
+ .pad #16
19102047 movs r5, #0
1911
- ldr r8, .L292+4
1912
- .pad #20
1913
- sub sp, sp, #20
2048
+ ldr r8, .L292
19142049 mov r6, r0
19152050 mov r9, r1
19162051 mov r7, r5
1917
-.L282:
2052
+ ldr r10, .L292+4
2053
+.L283:
19182054 cmp r7, r9
1919
- beq .L291
1920
- rsb r3, r7, r9
2055
+ bne .L288
2056
+ movs r0, #0
2057
+ add sp, sp, #16
2058
+ @ sp needed
2059
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
2060
+.L288:
2061
+ sub r3, r9, r7
19212062 add r2, sp, #8
1922
- adds r0, r6, r5
1923
- movs r1, #0
19242063 uxtb r3, r3
2064
+ movs r1, #0
2065
+ adds r0, r6, r5
19252066 str r3, [sp]
19262067 add r3, sp, #12
19272068 bl LogAddr2PhyAddr
1928
- ldrb r2, [r8, #2230] @ zero_extendqisi2
2069
+ ldrb r2, [r8, #2234] @ zero_extendqisi2
19292070 ldr r3, [sp, #12]
1930
- cmp r3, r2
1931
- bcc .L283
2071
+ cmp r2, r3
2072
+ bhi .L284
19322073 mov r3, #-1
19332074 str r3, [r6, r5]
1934
- b .L284
1935
-.L283:
2075
+.L285:
2076
+ adds r7, r7, #1
2077
+ adds r5, r5, #36
2078
+ b .L283
2079
+.L284:
19362080 add r2, r8, r3
19372081 add r3, r8, r3, lsl #4
1938
- ldrb r4, [r2, #2232] @ zero_extendqisi2
1939
- strb r4, [r3, #2100]
2082
+ ldrb r4, [r2, #2236] @ zero_extendqisi2
2083
+ strb r4, [r3, #2104]
19402084 mov r0, r4
19412085 bl NandcWaitFlashReady
19422086 mov r0, r4
19432087 bl NandcFlashCs
19442088 movs r2, #0
1945
- mov r0, r4
19462089 ldr r1, [sp, #8]
2090
+ mov r0, r4
19472091 bl FlashEraseCmd
19482092 mov r0, r4
19492093 bl NandcWaitFlashReady
19502094 mov r0, r4
19512095 ldr r1, [sp, #8]
19522096 bl FlashReadStatus
1953
- movs r2, #0
1954
- ldr r3, [sp, #8]
19552097 sbfx r0, r0, #0, #1
2098
+ ldr r1, [sp, #8]
19562099 str r0, [r6, r5]
2100
+ movs r2, #0
2101
+ ldr r3, [r8, #40]
19572102 mov r0, r4
1958
- ldr r1, [r8, #4]
19592103 add r1, r1, r3
19602104 bl FlashEraseCmd
19612105 mov r0, r4
....@@ -1969,191 +2113,181 @@
19692113 strmi r3, [r6, r5]
19702114 ldr r3, [r6, r5]
19712115 adds r3, r3, #1
1972
- bne .L286
1973
- ldr r0, .L292
2116
+ bne .L287
19742117 ldr r1, [sp, #8]
2118
+ mov r0, r10
19752119 bl printk
1976
-.L286:
2120
+.L287:
19772121 mov r0, r4
19782122 bl NandcFlashDeCs
1979
-.L284:
1980
- adds r7, r7, #1
1981
- adds r5, r5, #36
1982
- b .L282
1983
-.L291:
1984
- movs r0, #0
1985
- add sp, sp, #20
1986
- @ sp needed
1987
- pop {r4, r5, r6, r7, r8, r9, pc}
2123
+ b .L285
19882124 .L293:
19892125 .align 2
19902126 .L292:
1991
- .word .LC1
19922127 .word .LANCHOR0
2128
+ .word .LC1
19932129 .fnend
19942130 .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks
19952131 .align 1
19962132 .global FlashEraseBlocks
2133
+ .syntax unified
19972134 .thumb
19982135 .thumb_func
2136
+ .fpu softvfp
19992137 .type FlashEraseBlocks, %function
20002138 FlashEraseBlocks:
20012139 .fnstart
2002
- @ args = 0, pretend = 0, frame = 16
2140
+ @ args = 0, pretend = 0, frame = 8
20032141 @ frame_needed = 0, uses_anonymous_args = 0
20042142 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
20052143 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
20062144 mov r9, r0
2007
- ldr r4, .L328
2008
- .pad #28
2009
- sub sp, sp, #28
2145
+ ldr r4, .L325
2146
+ .pad #20
2147
+ sub sp, sp, #20
20102148 mov r10, r1
20112149 mov r8, r2
2012
- ldrb r5, [r4] @ zero_extendqisi2
2013
- cbz r5, .L312
2150
+ ldrb r5, [r4, #36] @ zero_extendqisi2
2151
+ cbz r5, .L296
20142152 mov r1, r2
20152153 bl FlashEraseSLc2KBlocks
2016
- b .L296
2017
-.L312:
2018
- mov fp, r4
2019
-.L295:
2020
- cmp r5, r8
2021
- bcs .L326
2154
+.L294:
2155
+ add sp, sp, #20
2156
+ @ sp needed
2157
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2158
+.L305:
20222159 movs r3, #36
2023
- movs r1, #0
2024
- add r2, sp, #16
2160
+ add r2, sp, #8
20252161 mul r6, r3, r5
2026
- add r3, r9, r6
2027
- str r3, [sp, #12]
2028
- rsb r3, r5, r8
2029
- ldr r0, [sp, #12]
2162
+ sub r3, r8, r5
20302163 uxtb r3, r3
2164
+ movs r1, #0
20312165 str r3, [sp]
2032
- add r3, sp, #20
2166
+ add r3, sp, #12
2167
+ add fp, r9, r6
2168
+ mov r0, fp
20332169 bl LogAddr2PhyAddr
2034
- ldrb r3, [r4, #2230] @ zero_extendqisi2
2170
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
20352171 mov r7, r0
2036
- ldr r0, [sp, #20]
2037
- cmp r0, r3
2038
- bcc .L297
2172
+ ldr r0, [sp, #12]
2173
+ cmp r3, r0
2174
+ bhi .L298
20392175 mov r3, #-1
20402176 str r3, [r9, r6]
2041
- b .L298
2042
-.L297:
2043
- ldrb r3, [fp, #2240] @ zero_extendqisi2
2177
+.L299:
2178
+ adds r5, r5, #1
2179
+.L296:
2180
+ cmp r5, r8
2181
+ bcc .L305
2182
+ ldr r6, .L325+4
2183
+ movs r5, #0
2184
+.L306:
2185
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
2186
+ cmp r5, r3
2187
+ bcc .L308
2188
+ ldr r3, [r4, #2248]
2189
+ cmp r3, #0
2190
+ bne .L309
2191
+.L310:
2192
+ movs r0, #0
2193
+ b .L294
2194
+.L298:
2195
+ ldrb r3, [r4, #2244] @ zero_extendqisi2
20442196 cmp r3, #0
20452197 add r3, r4, r0, lsl #4
20462198 it eq
20472199 moveq r7, #0
2048
- ldr r3, [r3, #2108]
2049
- cbz r3, .L300
2200
+ ldr r3, [r3, #2112]
2201
+ cbz r3, .L301
20502202 uxtb r0, r0
20512203 bl FlashWaitCmdDone
2052
-.L300:
2053
- ldr r1, [sp, #20]
2054
- ldr r3, [sp, #12]
2055
- lsls r2, r1, #4
2056
- add lr, r4, r2
2057
- str r3, [lr, #2108]
2058
- movs r3, #0
2059
- str r3, [lr, #2112]
2060
- ldr r3, [sp, #16]
2061
- str r3, [lr, #2104]
2062
- cbz r7, .L301
2063
- add r3, r6, #36
2064
- add r3, r3, r9
2065
- str r3, [lr, #2112]
20662204 .L301:
2067
- add r1, r1, r4
2205
+ ldr r2, [sp, #12]
2206
+ movs r0, #0
2207
+ lsls r3, r2, #4
2208
+ adds r1, r4, r3
2209
+ str r0, [r1, #2116]
2210
+ ldr r0, [sp, #8]
2211
+ str fp, [r1, #2112]
2212
+ str r0, [r1, #2108]
2213
+ cbz r7, .L302
2214
+ adds r6, r6, #36
2215
+ add r6, r6, r9
2216
+ str r6, [r1, #2116]
2217
+.L302:
20682218 add r2, r2, r4
2069
- ldrb r6, [r1, #2232] @ zero_extendqisi2
2219
+ add r3, r3, r4
2220
+ ldrb r6, [r2, #2236] @ zero_extendqisi2
20702221 mov r0, r6
2071
- strb r6, [r2, #2100]
2222
+ strb r6, [r3, #2104]
20722223 bl NandcFlashCs
20732224 cmp r10, #1
20742225 mov r0, r6
2075
- bne .L302
2076
- ldrb r3, [fp, #144] @ zero_extendqisi2
2077
- cbz r3, .L302
2226
+ bne .L303
2227
+ ldrb r3, [r4, #152] @ zero_extendqisi2
2228
+ cbz r3, .L303
20782229 bl flash_enter_slc_mode
2079
- b .L303
2080
-.L302:
2081
- bl flash_exit_slc_mode
2082
-.L303:
2083
- ldr r3, [sp, #20]
2230
+.L304:
2231
+ ldr r3, [sp, #12]
20842232 mov r0, r6
2085
- ldr r1, [sp, #16]
2233
+ ldr r1, [sp, #8]
20862234 add r5, r5, r7
20872235 add r3, r4, r3, lsl #2
2088
- ldr r2, [r3, #1172]
2236
+ ldr r2, [r3, #1180]
20892237 adds r2, r2, #0
20902238 it ne
20912239 movne r2, #1
20922240 bl FlashWaitReadyEN
2093
- mov r0, r6
20942241 mov r2, r7
2095
- ldr r1, [sp, #16]
2242
+ ldr r1, [sp, #8]
2243
+ mov r0, r6
20962244 bl FlashEraseCmd
20972245 mov r0, r6
20982246 bl NandcFlashDeCs
2099
-.L298:
2100
- adds r5, r5, #1
2101
- b .L295
2102
-.L326:
2103
- ldr r6, .L328
2104
- movs r5, #0
2105
- addw r7, r6, #2100
2106
-.L305:
2107
- ldrb r2, [r4, #2230] @ zero_extendqisi2
2108
- ldr r3, .L328
2109
- cmp r5, r2
2110
- bcs .L327
2247
+ b .L299
2248
+.L303:
2249
+ bl flash_exit_slc_mode
2250
+ b .L304
2251
+.L308:
21112252 uxtb r0, r5
21122253 bl FlashWaitCmdDone
21132254 cmp r10, #1
2114
- bne .L306
2115
- ldrb r3, [r6, #144] @ zero_extendqisi2
2116
- cbz r3, .L306
2255
+ bne .L307
2256
+ ldrb r3, [r4, #152] @ zero_extendqisi2
2257
+ cbz r3, .L307
21172258 lsls r3, r5, #4
2118
- ldrb r0, [r7, r3] @ zero_extendqisi2
2259
+ ldrb r0, [r6, r3] @ zero_extendqisi2
21192260 bl flash_exit_slc_mode
2120
-.L306:
2261
+.L307:
21212262 adds r5, r5, #1
2122
- b .L305
2123
-.L327:
2124
- ldr r2, [r3, #2244]
2125
- cbnz r2, .L308
2126
-.L310:
2127
- movs r0, #0
2128
- b .L296
2129
-.L308:
2130
- ldrb r3, [r3, #2068] @ zero_extendqisi2
2263
+ b .L306
2264
+.L309:
2265
+ ldrb r3, [r4, #2072] @ zero_extendqisi2
21312266 cmp r3, #69
21322267 bne .L310
21332268 movs r3, #0
21342269 movs r2, #36
21352270 mov r1, r3
2136
-.L309:
2271
+.L311:
21372272 cmp r3, r8
21382273 beq .L310
21392274 mul r0, r2, r3
21402275 adds r3, r3, #1
21412276 str r1, [r9, r0]
2142
- b .L309
2143
-.L296:
2144
- add sp, sp, #28
2145
- @ sp needed
2146
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2147
-.L329:
2277
+ b .L311
2278
+.L326:
21482279 .align 2
2149
-.L328:
2280
+.L325:
21502281 .word .LANCHOR0
2282
+ .word .LANCHOR0+2104
21512283 .fnend
21522284 .size FlashEraseBlocks, .-FlashEraseBlocks
21532285 .align 1
21542286 .global FlashReadDpCmd
2287
+ .syntax unified
21552288 .thumb
21562289 .thumb_func
2290
+ .fpu softvfp
21572291 .type FlashReadDpCmd, %function
21582292 FlashReadDpCmd:
21592293 .fnstart
....@@ -2161,65 +2295,68 @@
21612295 @ frame_needed = 0, uses_anonymous_args = 0
21622296 push {r4, r5, r6, r7, r8, r9, r10, lr}
21632297 .save {r4, r5, r6, r7, r8, r9, r10, lr}
2164
- mov r7, r0
2165
- ldr r0, .L335
2166
- mov r6, r1
2298
+ mov r6, r0
2299
+ ldr r0, .L332
2300
+ mov r7, r1
21672301 uxtb r9, r2
21682302 lsr r8, r2, #8
2169
- add r3, r0, r7, lsl #3
21702303 lsrs r5, r2, #16
2171
- ldrb r1, [r0, #64] @ zero_extendqisi2
2172
- uxtb ip, r6
2173
- ldr r4, [r3, #12]
2174
- lsr lr, r6, #8
2175
- ldrb r3, [r3, #16] @ zero_extendqisi2
2176
- cmp r1, #1
2177
- ldr r2, [r0, #44]
2178
- lsr r1, r6, #16
2179
- lsl r3, r3, #8
2304
+ uxtb lr, r7
2305
+ ldr r2, [r0, #48]
2306
+ lsr ip, r7, #8
2307
+ add r1, r0, r6, lsl #3
2308
+ ldr r3, [r0, r6, lsl #3]
2309
+ ldrb r4, [r1, #4] @ zero_extendqisi2
2310
+ ldrb r1, [r0, #68] @ zero_extendqisi2
21802311 ldrb r2, [r2, #7] @ zero_extendqisi2
2181
- bne .L331
2312
+ cmp r1, #1
2313
+ lsl r4, r4, #8
2314
+ lsr r1, r7, #16
2315
+ bne .L328
21822316 cmp r2, #1
21832317 itt eq
2184
- addeq r2, r4, r3
2318
+ addeq r2, r3, r4
21852319 moveq r10, #38
21862320 add r4, r4, r3
21872321 it eq
21882322 streq r10, [r2, #2056]
2323
+ ldrb r3, [r0, #61] @ zero_extendqisi2
21892324 mov r10, #0
2190
- ldrb r3, [r0, #57] @ zero_extendqisi2
2191
- ldrb r2, [r0, #56] @ zero_extendqisi2
2192
- mov r0, r7
2325
+ ldrb r2, [r0, #60] @ zero_extendqisi2
2326
+ mov r0, r6
21932327 str r2, [r4, #2056]
21942328 str r10, [r4, #2052]
21952329 str r10, [r4, #2052]
2196
- str ip, [r4, #2052]
21972330 str lr, [r4, #2052]
2331
+ str ip, [r4, #2052]
21982332 str r1, [r4, #2052]
21992333 str r3, [r4, #2056]
22002334 bl NandcWaitFlashReady
2201
- str r10, [r4, #2056]
22022335 movs r3, #48
2336
+ str r10, [r4, #2056]
22032337 str r10, [r4, #2052]
22042338 str r10, [r4, #2052]
22052339 str r9, [r4, #2052]
22062340 str r8, [r4, #2052]
22072341 str r5, [r4, #2052]
22082342 str r3, [r4, #2056]
2209
- b .L333
2210
-.L331:
2343
+.L330:
2344
+ mov r1, r7
2345
+ mov r0, r6
2346
+ pop {r4, r5, r6, r7, r8, r9, r10, lr}
2347
+ b FlashSetRandomizer
2348
+.L328:
22112349 cmp r2, #1
2212
- itt eq
2213
- addeq r2, r4, r3
2350
+ ittt eq
2351
+ addeq r2, r3, r4
22142352 moveq r10, #38
2215
- add r3, r3, r4
2216
- it eq
22172353 streq r10, [r2, #2056]
2218
- ldrb r2, [r0, #56] @ zero_extendqisi2
2354
+ add r3, r3, r4
2355
+ ldrb r2, [r0, #60] @ zero_extendqisi2
22192356 str r2, [r3, #2056]
2220
- ldrb r2, [r0, #57] @ zero_extendqisi2
2221
- str ip, [r3, #2052]
2357
+ ldrb r2, [r0, #61] @ zero_extendqisi2
22222358 str lr, [r3, #2052]
2359
+ str ip, [r3, #2052]
22232360 str r1, [r3, #2052]
22242361 str r2, [r3, #2056]
22252362 movs r2, #48
....@@ -2227,89 +2364,89 @@
22272364 str r8, [r3, #2052]
22282365 str r5, [r3, #2052]
22292366 str r2, [r3, #2056]
2367
+ b .L330
22302368 .L333:
2231
- mov r0, r7
2232
- mov r1, r6
2233
- pop {r4, r5, r6, r7, r8, r9, r10, lr}
2234
- b FlashSetRandomizer
2235
-.L336:
22362369 .align 2
2237
-.L335:
2370
+.L332:
22382371 .word .LANCHOR0
22392372 .fnend
22402373 .size FlashReadDpCmd, .-FlashReadDpCmd
22412374 .align 1
22422375 .global ftl_flash_de_init
2376
+ .syntax unified
22432377 .thumb
22442378 .thumb_func
2379
+ .fpu softvfp
22452380 .type ftl_flash_de_init, %function
22462381 ftl_flash_de_init:
22472382 .fnstart
22482383 @ args = 0, pretend = 0, frame = 0
22492384 @ frame_needed = 0, uses_anonymous_args = 0
2250
- push {r3, r4, r5, lr}
2251
- .save {r3, r4, r5, lr}
2385
+ push {r4, lr}
2386
+ .save {r4, lr}
22522387 movs r0, #0
2253
- ldr r4, .L347
2388
+ ldr r4, .L344
22542389 bl NandcWaitFlashReady
22552390 bl FlashSetReadRetryDefault
2256
- ldr r0, [r4, #2248]
2257
- cbz r0, .L338
2391
+ ldr r0, [r4, #2252]
2392
+ cbz r0, .L335
22582393 movs r0, #0
22592394 bl flash_enter_slc_mode
2260
- b .L339
2261
-.L338:
2262
- bl flash_exit_slc_mode
2263
-.L339:
2264
- ldrb r3, [r4, #2252] @ zero_extendqisi2
2265
- ldr r5, .L347
2266
- cbz r3, .L340
2267
- ldrb r3, [r5, #2229] @ zero_extendqisi2
2395
+.L336:
2396
+ ldrb r3, [r4, #2256] @ zero_extendqisi2
2397
+ cbz r3, .L337
2398
+ ldrb r3, [r4, #2233] @ zero_extendqisi2
22682399 lsls r3, r3, #31
2269
- bpl .L340
2400
+ bpl .L337
22702401 movs r0, #1
22712402 bl FlashSetInterfaceMode
22722403 movs r0, #1
22732404 bl NandcSetMode
22742405 movs r3, #0
2275
- strb r3, [r5, #2252]
2276
-.L340:
2277
- ldr r3, [r4, #12]
2406
+ strb r3, [r4, #2256]
2407
+.L337:
2408
+ ldr r3, [r4]
22782409 movs r0, #0
22792410 str r0, [r3, #336]
2280
- pop {r3, r4, r5, pc}
2281
-.L348:
2411
+ pop {r4, pc}
2412
+.L335:
2413
+ bl flash_exit_slc_mode
2414
+ b .L336
2415
+.L345:
22822416 .align 2
2283
-.L347:
2417
+.L344:
22842418 .word .LANCHOR0
22852419 .fnend
22862420 .size ftl_flash_de_init, .-ftl_flash_de_init
22872421 .align 1
22882422 .global NandcRandmzSel
2423
+ .syntax unified
22892424 .thumb
22902425 .thumb_func
2426
+ .fpu softvfp
22912427 .type NandcRandmzSel, %function
22922428 NandcRandmzSel:
22932429 .fnstart
22942430 @ args = 0, pretend = 0, frame = 0
22952431 @ frame_needed = 0, uses_anonymous_args = 0
22962432 @ link register save eliminated.
2297
- ldr r3, .L350
2298
- add r0, r3, r0, lsl #3
2299
- ldr r3, [r0, #12]
2433
+ ldr r3, .L347
2434
+ ldr r3, [r3, r0, lsl #3]
23002435 str r1, [r3, #336]
23012436 bx lr
2302
-.L351:
2437
+.L348:
23032438 .align 2
2304
-.L350:
2439
+.L347:
23052440 .word .LANCHOR0
23062441 .fnend
23072442 .size NandcRandmzSel, .-NandcRandmzSel
23082443 .global __aeabi_idiv
23092444 .align 1
23102445 .global NandcTimeCfg
2446
+ .syntax unified
23112447 .thumb
23122448 .thumb_func
2449
+ .fpu softvfp
23132450 .type NandcTimeCfg, %function
23142451 NandcTimeCfg:
23152452 .fnstart
....@@ -2320,53 +2457,55 @@
23202457 mov r4, r0
23212458 movs r0, #0
23222459 bl rknand_get_clk_rate
2323
- ldr r1, .L362
2460
+ ldr r1, .L359
23242461 bl __aeabi_idiv
2325
- ldr r3, .L362+4
2326
- ldr r3, [r3, #80]
2462
+ ldr r3, .L359+4
23272463 cmp r0, #250
2328
- ble .L353
2464
+ ldr r3, [r3, #88]
2465
+ ble .L350
23292466 movw r2, #8354
2330
- b .L360
2331
-.L353:
2332
- cmp r0, #220
2333
- bgt .L361
2334
- cmp r0, #185
2335
- ble .L356
2336
- movw r2, #4226
2337
- b .L360
2338
-.L356:
2339
- cmp r0, #160
2340
- ble .L357
2341
- movw r2, #4194
2342
- b .L360
23432467 .L357:
2344
- cmp r4, #35
2345
- bhi .L358
2346
- movw r2, #4193
2347
- b .L360
2348
-.L358:
2349
- cmp r4, #99
2350
- bls .L359
2351
-.L361:
2352
- movw r2, #8322
2353
- b .L360
2354
-.L359:
2355
- movw r2, #4225
2356
-.L360:
23572468 str r2, [r3, #4]
23582469 pop {r4, pc}
2359
-.L363:
2470
+.L350:
2471
+ cmp r0, #220
2472
+ ble .L352
2473
+.L358:
2474
+ movw r2, #8322
2475
+ b .L357
2476
+.L352:
2477
+ cmp r0, #185
2478
+ ble .L353
2479
+ movw r2, #4226
2480
+ b .L357
2481
+.L353:
2482
+ cmp r0, #160
2483
+ ble .L354
2484
+ movw r2, #4194
2485
+ b .L357
2486
+.L354:
2487
+ cmp r4, #35
2488
+ bhi .L355
2489
+ movw r2, #4193
2490
+ b .L357
2491
+.L355:
2492
+ cmp r4, #99
2493
+ bhi .L358
2494
+ movw r2, #4225
2495
+ b .L357
2496
+.L360:
23602497 .align 2
2361
-.L362:
2498
+.L359:
23622499 .word 1000000
23632500 .word .LANCHOR0
23642501 .fnend
23652502 .size NandcTimeCfg, .-NandcTimeCfg
23662503 .align 1
23672504 .global FlashTimingCfg
2505
+ .syntax unified
23682506 .thumb
23692507 .thumb_func
2508
+ .fpu softvfp
23702509 .type FlashTimingCfg, %function
23712510 FlashTimingCfg:
23722511 .fnstart
....@@ -2376,33 +2515,35 @@
23762515 sub r3, r0, #4192
23772516 subs r3, r3, #1
23782517 cmp r3, #1
2379
- bls .L365
2518
+ bls .L362
23802519 sub r3, r0, #4224
23812520 subs r3, r3, #1
23822521 cmp r3, #1
2383
- bls .L365
2522
+ bls .L362
23842523 movw r3, #8322
23852524 cmp r0, r3
2386
- bne .L366
2387
-.L365:
2388
- ldr r3, .L367
2389
- ldr r3, [r3, #80]
2525
+ bne .L363
2526
+.L362:
2527
+ ldr r3, .L364
2528
+ ldr r3, [r3, #88]
23902529 str r0, [r3, #4]
2391
-.L366:
2392
- ldr r3, .L367+4
2393
- ldrb r0, [r3, #493] @ zero_extendqisi2
2530
+.L363:
2531
+ ldr r3, .L364+4
2532
+ ldrb r0, [r3, #489] @ zero_extendqisi2
23942533 b NandcTimeCfg
2395
-.L368:
2534
+.L365:
23962535 .align 2
2397
-.L367:
2536
+.L364:
23982537 .word .LANCHOR0
23992538 .word .LANCHOR1
24002539 .fnend
24012540 .size FlashTimingCfg, .-FlashTimingCfg
24022541 .align 1
24032542 .global NandcInit
2543
+ .syntax unified
24042544 .thumb
24052545 .thumb_func
2546
+ .fpu softvfp
24062547 .type NandcInit, %function
24072548 NandcInit:
24082549 .fnstart
....@@ -2410,68 +2551,69 @@
24102551 @ frame_needed = 0, uses_anonymous_args = 0
24112552 push {r3, r4, r5, lr}
24122553 .save {r3, r4, r5, lr}
2413
- movs r1, #0
2414
- ldr r3, .L371
24152554 movs r2, #1
2555
+ ldr r3, .L368
2556
+ movs r1, #0
24162557 movs r5, #0
2417
- str r1, [r3, #16]
2418
- str r0, [r3, #12]
2419
- str r2, [r3, #24]
2558
+ str r2, [r3, #12]
24202559 movs r2, #2
2421
- str r0, [r3, #20]
2422
- str r2, [r3, #32]
2560
+ str r2, [r3, #20]
24232561 movs r2, #3
2424
- str r0, [r3, #28]
2425
- str r0, [r3, #36]
2426
- str r0, [r3, #80]
2427
- str r2, [r3, #40]
2562
+ stm r3, {r0, r1}
2563
+ str r0, [r3, #8]
2564
+ str r0, [r3, #16]
2565
+ str r0, [r3, #24]
2566
+ str r0, [r3, #88]
2567
+ str r2, [r3, #28]
24282568 ldr r2, [r0]
24292569 and r2, r2, #253952
24302570 ubfx r4, r2, #13, #1
24312571 bfi r2, r1, #13, #1
24322572 ldr r1, [r0, #352]
24332573 orr r2, r2, #256
2434
- str r4, [r3, #2256]
2574
+ str r4, [r3, #2260]
24352575 movw r4, #2049
24362576 ubfx r1, r1, #16, #4
2437
- str r1, [r3, #2260]
2577
+ str r1, [r3, #2264]
24382578 ldr r1, [r0, #352]
24392579 cmp r1, r4
2580
+ str r1, [r3, #2268]
24402581 mov r4, r3
2441
- str r1, [r3, #2264]
24422582 itt eq
24432583 moveq r3, #8
2444
- streq r3, [r4, #2260]
2584
+ streq r3, [r4, #2264]
24452585 str r2, [r0]
24462586 movs r0, #40
2447
- ldr r3, [r4, #80]
2587
+ ldr r3, [r4, #88]
24482588 str r5, [r3, #336]
24492589 bl NandcTimeCfg
2450
- ldr r3, [r4, #80]
2590
+ ldr r3, [r4, #88]
24512591 movw r2, #8322
24522592 mov r0, #36864
24532593 str r2, [r3, #344]
2454
- ldr r2, .L371+4
2594
+ ldr r2, .L368+4
24552595 str r2, [r3, #304]
24562596 bl ftl_malloc
2457
- str r5, [r4, #2296]
2458
- str r5, [r4, #2304]
2459
- str r0, [r4, #2268]
24602597 str r0, [r4, #2272]
2461
- add r0, r0, #32768
24622598 str r0, [r4, #2276]
2599
+ add r0, r0, #32768
2600
+ str r0, [r4, #2280]
2601
+ str r5, [r4, #2300]
2602
+ str r5, [r4, #2308]
24632603 pop {r3, r4, r5, pc}
2464
-.L372:
2604
+.L369:
24652605 .align 2
2466
-.L371:
2606
+.L368:
24672607 .word .LANCHOR0
24682608 .word 1579009
24692609 .fnend
24702610 .size NandcInit, .-NandcInit
24712611 .align 1
24722612 .global NandcGetTimeCfg
2613
+ .syntax unified
24732614 .thumb
24742615 .thumb_func
2616
+ .fpu softvfp
24752617 .type NandcGetTimeCfg, %function
24762618 NandcGetTimeCfg:
24772619 .fnstart
....@@ -2479,163 +2621,171 @@
24792621 @ frame_needed = 0, uses_anonymous_args = 0
24802622 push {r4, r5, lr}
24812623 .save {r4, r5, lr}
2482
- ldr r4, .L374
2483
- ldr r5, [r4, #80]
2624
+ ldr r4, .L371
2625
+ ldr r5, [r4, #88]
24842626 ldr r5, [r5, #4]
24852627 str r5, [r0]
2486
- ldr r0, [r4, #80]
2628
+ ldr r0, [r4, #88]
24872629 ldr r0, [r0]
24882630 str r0, [r1]
2489
- ldr r1, [r4, #80]
2631
+ ldr r1, [r4, #88]
24902632 ldr r1, [r1, #304]
24912633 str r1, [r2]
2492
- ldr r1, [r4, #80]
2634
+ ldr r1, [r4, #88]
24932635 ldr r2, [r1, #308]
24942636 ldr r1, [r1, #344]
24952637 uxtb r2, r2
24962638 orr r2, r2, r1, lsl #16
24972639 str r2, [r3]
24982640 pop {r4, r5, pc}
2499
-.L375:
2641
+.L372:
25002642 .align 2
2501
-.L374:
2643
+.L371:
25022644 .word .LANCHOR0
25032645 .fnend
25042646 .size NandcGetTimeCfg, .-NandcGetTimeCfg
25052647 .align 1
25062648 .global NandcBchSel
2649
+ .syntax unified
25072650 .thumb
25082651 .thumb_func
2652
+ .fpu softvfp
25092653 .type NandcBchSel, %function
25102654 NandcBchSel:
25112655 .fnstart
25122656 @ args = 0, pretend = 0, frame = 0
25132657 @ frame_needed = 0, uses_anonymous_args = 0
2514
- @ link register save eliminated.
2515
- ldr r3, .L384
2516
- movs r1, #1
2517
- ldr r2, [r3, #80]
2518
- str r0, [r3, #2308]
2519
- movs r3, #0
2520
- str r1, [r2, #8]
2521
- movs r1, #16
2522
- cmp r0, r1
2523
- bfi r3, r1, #8, #8
2524
- bfc r3, #18, #1
2525
- bne .L377
2526
-.L380:
2527
- bfc r3, #4, #1
2528
- b .L378
2658
+ ldr r3, .L381
2659
+ movs r1, #0
2660
+ push {r4, lr}
2661
+ .save {r4, lr}
2662
+ movs r4, #1
2663
+ ldr r2, [r3, #88]
2664
+ str r0, [r3, #2312]
2665
+ mov r3, r1
2666
+ str r4, [r2, #8]
2667
+ movs r4, #16
2668
+ cmp r0, r4
2669
+ bfi r3, r4, #8, #8
2670
+ bfi r3, r1, #18, #1
2671
+ bne .L374
25292672 .L377:
2673
+ bfc r3, #4, #1
2674
+.L375:
2675
+ orr r3, r3, #1
2676
+ str r3, [r2, #12]
2677
+ pop {r4, pc}
2678
+.L374:
25302679 cmp r0, #24
2531
- bne .L379
2680
+ bne .L376
25322681 orr r3, r3, #16
2533
- b .L378
2534
-.L379:
2682
+ b .L375
2683
+.L376:
25352684 cmp r0, #40
25362685 orr r3, r3, #262144
25372686 orr r3, r3, #16
2538
- beq .L380
2539
-.L378:
2540
- orr r3, r3, #1
2541
- str r3, [r2, #12]
2542
- bx lr
2543
-.L385:
2687
+ bne .L375
2688
+ b .L377
2689
+.L382:
25442690 .align 2
2545
-.L384:
2691
+.L381:
25462692 .word .LANCHOR0
25472693 .fnend
25482694 .size NandcBchSel, .-NandcBchSel
25492695 .align 1
25502696 .global FlashBchSel
2697
+ .syntax unified
25512698 .thumb
25522699 .thumb_func
2700
+ .fpu softvfp
25532701 .type FlashBchSel, %function
25542702 FlashBchSel:
25552703 .fnstart
25562704 @ args = 0, pretend = 0, frame = 0
25572705 @ frame_needed = 0, uses_anonymous_args = 0
25582706 @ link register save eliminated.
2559
- ldr r3, .L387
2560
- strb r0, [r3, #2312]
2707
+ ldr r3, .L384
2708
+ strb r0, [r3, #2316]
25612709 b NandcBchSel
2562
-.L388:
2710
+.L385:
25632711 .align 2
2564
-.L387:
2712
+.L384:
25652713 .word .LANCHOR0
25662714 .fnend
25672715 .size FlashBchSel, .-FlashBchSel
25682716 .align 1
25692717 .global ftl_flash_resume
2718
+ .syntax unified
25702719 .thumb
25712720 .thumb_func
2721
+ .fpu softvfp
25722722 .type ftl_flash_resume, %function
25732723 ftl_flash_resume:
25742724 .fnstart
25752725 @ args = 0, pretend = 0, frame = 0
25762726 @ frame_needed = 0, uses_anonymous_args = 0
2577
- ldr r3, .L397
25782727 push {r4, r5, r6, lr}
25792728 .save {r4, r5, r6, lr}
25802729 movs r5, #0
2581
- ldr r2, [r3, #80]
2582
- addw r6, r3, #2068
2583
- ldr r1, [r3, #84]
2584
- mov r4, r3
2730
+ ldr r4, .L394
2731
+ ldr r2, [r4, #88]
2732
+ addw r6, r4, #2072
2733
+ ldr r1, [r4, #92]
25852734 str r1, [r2]
2586
- ldr r1, [r3, #88]
2587
- ldr r2, [r3, #80]
2735
+ ldr r1, [r4, #96]
2736
+ ldr r2, [r4, #88]
25882737 str r1, [r2, #4]
2589
- ldr r1, [r3, #92]
2738
+ ldr r1, [r4, #100]
25902739 str r1, [r2, #8]
2591
- ldr r1, [r3, #96]
2740
+ ldr r1, [r4, #104]
25922741 str r1, [r2, #12]
2593
- ldr r1, [r3, #100]
2742
+ ldr r1, [r4, #108]
25942743 str r1, [r2, #304]
2595
- ldr r1, [r3, #104]
2744
+ ldr r1, [r4, #112]
25962745 str r1, [r2, #308]
2597
- ldr r1, [r3, #108]
2746
+ ldr r1, [r4, #116]
25982747 str r1, [r2, #336]
2599
- ldr r1, [r3, #112]
2748
+ ldr r1, [r4, #120]
26002749 str r1, [r2, #344]
2601
-.L391:
2750
+.L388:
26022751 ldrb r3, [r6, r5, lsl #3] @ zero_extendqisi2
26032752 subs r3, r3, #1
26042753 uxtb r3, r3
26052754 cmp r3, #253
2606
- bhi .L390
2755
+ bhi .L387
26072756 uxtb r0, r5
26082757 bl FlashReset
2609
-.L390:
2758
+.L387:
26102759 adds r5, r5, #1
26112760 cmp r5, #4
2612
- bne .L391
2613
- ldrb r3, [r4, #2252] @ zero_extendqisi2
2614
- ldr r5, .L397
2615
- cbz r3, .L392
2761
+ bne .L388
2762
+ ldrb r3, [r4, #2256] @ zero_extendqisi2
2763
+ cbz r3, .L389
26162764 movs r0, #1
26172765 bl NandcSetMode
2618
- ldrb r0, [r5, #2229] @ zero_extendqisi2
2766
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
26192767 bl FlashSetInterfaceMode
2620
- ldrb r0, [r5, #2229] @ zero_extendqisi2
2768
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
26212769 bl NandcSetMode
2622
- ldrb r0, [r5, #101] @ zero_extendqisi2
2770
+ ldrb r0, [r4, #109] @ zero_extendqisi2
26232771 bl NandcSetDdrPara
2624
-.L392:
2625
- ldr r3, [r4, #44]
2772
+.L389:
2773
+ ldr r3, [r4, #48]
26262774 pop {r4, r5, r6, lr}
26272775 ldrb r0, [r3, #20] @ zero_extendqisi2
26282776 b FlashBchSel
2629
-.L398:
2777
+.L395:
26302778 .align 2
2631
-.L397:
2779
+.L394:
26322780 .word .LANCHOR0
26332781 .fnend
26342782 .size ftl_flash_resume, .-ftl_flash_resume
26352783 .align 1
26362784 .global ftl_nandc_get_irq_status
2785
+ .syntax unified
26372786 .thumb
26382787 .thumb_func
2788
+ .fpu softvfp
26392789 .type ftl_nandc_get_irq_status, %function
26402790 ftl_nandc_get_irq_status:
26412791 .fnstart
....@@ -2648,8 +2798,10 @@
26482798 .size ftl_nandc_get_irq_status, .-ftl_nandc_get_irq_status
26492799 .align 1
26502800 .global rk_nandc_flash_ready
2801
+ .syntax unified
26512802 .thumb
26522803 .thumb_func
2804
+ .fpu softvfp
26532805 .type rk_nandc_flash_ready, %function
26542806 rk_nandc_flash_ready:
26552807 .fnstart
....@@ -2667,8 +2819,10 @@
26672819 .size rk_nandc_flash_ready, .-rk_nandc_flash_ready
26682820 .align 1
26692821 .global NandcIqrWaitFlashReady
2822
+ .syntax unified
26702823 .thumb
26712824 .thumb_func
2825
+ .fpu softvfp
26722826 .type NandcIqrWaitFlashReady, %function
26732827 NandcIqrWaitFlashReady:
26742828 .fnstart
....@@ -2680,8 +2834,10 @@
26802834 .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady
26812835 .align 1
26822836 .global rk_nandc_flash_xfer_completed
2837
+ .syntax unified
26832838 .thumb
26842839 .thumb_func
2840
+ .fpu softvfp
26852841 .type rk_nandc_flash_xfer_completed, %function
26862842 rk_nandc_flash_xfer_completed:
26872843 .fnstart
....@@ -2699,8 +2855,10 @@
26992855 .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed
27002856 .align 1
27012857 .global NandcSendDumpDataStart
2858
+ .syntax unified
27022859 .thumb
27032860 .thumb_func
2861
+ .fpu softvfp
27042862 .type NandcSendDumpDataStart, %function
27052863 NandcSendDumpDataStart:
27062864 .fnstart
....@@ -2710,10 +2868,10 @@
27102868 ldr r2, [r0, #16]
27112869 .pad #8
27122870 sub sp, sp, #8
2713
- ldr r3, .L404
2871
+ ldr r3, .L401
27142872 str r2, [sp, #4]
27152873 ldr r2, [sp, #4]
2716
- bic r2, r2, #4
2874
+ bfc r2, #2, #1
27172875 str r2, [sp, #4]
27182876 ldr r2, [sp, #4]
27192877 str r2, [r0, #16]
....@@ -2723,16 +2881,18 @@
27232881 add sp, sp, #8
27242882 @ sp needed
27252883 bx lr
2726
-.L405:
2884
+.L402:
27272885 .align 2
2728
-.L404:
2886
+.L401:
27292887 .word 538969130
27302888 .fnend
27312889 .size NandcSendDumpDataStart, .-NandcSendDumpDataStart
27322890 .align 1
27332891 .global NandcSendDumpDataDone
2892
+ .syntax unified
27342893 .thumb
27352894 .thumb_func
2895
+ .fpu softvfp
27362896 .type NandcSendDumpDataDone, %function
27372897 NandcSendDumpDataDone:
27382898 .fnstart
....@@ -2741,12 +2901,12 @@
27412901 @ link register save eliminated.
27422902 .pad #8
27432903 sub sp, sp, #8
2744
-.L407:
2904
+.L404:
27452905 ldr r3, [r0, #8]
27462906 str r3, [sp, #4]
27472907 ldr r3, [sp, #4]
27482908 lsls r3, r3, #11
2749
- bpl .L407
2909
+ bpl .L404
27502910 add sp, sp, #8
27512911 @ sp needed
27522912 bx lr
....@@ -2754,8 +2914,10 @@
27542914 .size NandcSendDumpDataDone, .-NandcSendDumpDataDone
27552915 .align 1
27562916 .global NandcXferStart
2917
+ .syntax unified
27572918 .thumb
27582919 .thumb_func
2920
+ .fpu softvfp
27592921 .type NandcXferStart, %function
27602922 NandcXferStart:
27612923 .fnstart
....@@ -2767,158 +2929,162 @@
27672929 sub sp, sp, #20
27682930 mov r6, r1
27692931 ldr r1, [sp, #60]
2932
+ str r2, [sp, #4]
27702933 ldr fp, [sp, #56]
2771
- cbnz r1, .L424
2934
+ cmp r1, #0
2935
+ bne .L421
27722936 adds r1, fp, #0
27732937 it ne
27742938 movne r1, #1
2775
- b .L411
2776
-.L424:
2777
- movs r1, #1
2778
-.L411:
2779
- ldr r5, .L429
2780
- mov lr, #16
2781
- movs r4, #0
2782
- add r0, r5, r0, lsl #3
2783
- ldr r7, [r0, #12]
2784
- ldrb r0, [r0, #16] @ zero_extendqisi2
2939
+.L408:
2940
+ ldr r4, .L426
2941
+ mov ip, #16
2942
+ movs r5, #0
2943
+ ldr r7, [r4, r0, lsl #3]
2944
+ add r0, r4, r0, lsl #3
27852945 ldr r8, [r7, #12]
2786
- bfi r8, lr, #8, #8
2787
- bfi r8, r4, #3, #1
2788
- bfi r4, r6, #1, #1
2946
+ ldrb r0, [r0, #4] @ zero_extendqisi2
2947
+ bfi r8, ip, #8, #8
2948
+ bfi r8, r5, #3, #1
2949
+ bfi r5, r6, #1, #1
27892950 bfi r8, r0, #5, #3
2790
- orr r4, r4, #8
2951
+ orr r5, r5, #8
27912952 movs r0, #1
2792
- bfi r4, r0, #5, #2
2953
+ bfi r5, r0, #5, #2
27932954 lsrs r3, r3, r0
2794
- orr r4, r4, #536870912
2795
- orr r4, r4, #1024
2796
- bfi r4, r3, #4, #1
2797
- ldr r3, [r5, #2260]
2955
+ orr r5, r5, #536870912
2956
+ orr r5, r5, #1024
2957
+ bfi r5, r3, #4, #1
2958
+ ldr r3, [r4, #2264]
27982959 cmp r3, #3
2799
- bls .L412
2960
+ bls .L409
28002961 ldr r3, [r7, #16]
28012962 str r3, [sp, #12]
28022963 ldr r3, [sp, #12]
2803
- bic r3, r3, #4
2964
+ bfc r3, #2, #1
28042965 str r3, [sp, #12]
28052966 cmp r1, #0
2806
- beq .L413
2807
- cbnz r6, .L414
2808
-.L422:
2967
+ beq .L410
2968
+ cmp r6, #0
2969
+ bne .L411
2970
+.L419:
2971
+ ldr r2, [sp, #4]
28092972 adds r2, r2, #1
28102973 asrs r2, r2, #1
2811
- bfi r4, r2, #22, #6
2974
+ bfi r5, r2, #22, #6
28122975 cmp fp, #0
2813
- beq .L415
2976
+ beq .L412
28142977 mov r0, fp
2815
- b .L416
2816
-.L414:
2817
- ldr r3, [r5, #2308]
2818
- mov r9, r5
2819
- ldr lr, [sp, #60]
2820
- cmp r3, #25
2821
- ite cc
2822
- movcc r3, #64
2823
- movcs r3, #128
2824
- str r3, [sp]
2825
- lsrs r3, r2, #1
2826
- str r3, [sp, #4]
2827
- movs r3, #0
2828
- mov r0, r3
2829
-.L418:
2830
- ldr r1, [sp, #4]
2831
- cmp r0, r1
2832
- bcs .L422
2833
- ldr r1, [sp, #60]
2834
- lsr r10, r3, #2
2835
- cbz r1, .L419
2836
- ldrh r1, [lr, #2]
2837
- ldrh ip, [lr], #4
2838
- orr ip, ip, r1, lsl #16
2839
- ldr r1, [r9, #2276]
2840
- str ip, [r1, r10, lsl #2]
2841
- b .L420
2842
-.L419:
2843
- ldr r1, [r9, #2276]
2844
- mov ip, r1
2845
- mov r1, #-1
2846
- str r1, [ip, r10, lsl #2]
2847
-.L420:
2848
- ldr r1, [sp]
2849
- adds r0, r0, #1
2850
- add r3, r3, r1
2851
- b .L418
2852
-.L415:
2853
- ldr r0, [r5, #2272]
2854
-.L416:
2855
- ldr r3, [r5, #2276]
2856
- ubfx r9, r4, #22, #5
2978
+.L413:
2979
+ ldr r3, [r4, #2280]
2980
+ ubfx r9, r5, #22, #5
28572981 mov r2, r6
2858
- str r0, [r5, #2280]
28592982 lsl r1, r9, #10
2860
- str r3, [r5, #2284]
2983
+ str r0, [r4, #2284]
2984
+ str r3, [r4, #2288]
28612985 bl rknand_dma_map_single
28622986 mov r2, r6
2987
+ str r0, [r4, #2292]
28632988 lsl r1, r9, #7
2989
+ ldr r0, [r4, #2288]
28642990 clz r6, r6
2865
- lsrs r6, r6, #5
2866
- str r0, [r5, #2288]
2867
- ldr r0, [r5, #2284]
28682991 bl rknand_dma_map_single
28692992 movs r3, #1
2870
- str r3, [r5, #2296]
2993
+ str r0, [r4, #2296]
2994
+ str r3, [r4, #2300]
2995
+ movs r2, #16
2996
+ ldr r3, [r4, #2292]
28712997 tst fp, #3
2872
- ldr r3, [r5, #2288]
2873
- str r0, [r5, #2292]
2998
+ lsr r6, r6, #5
28742999 str r3, [r7, #20]
2875
- ldr r3, [r5, #2292]
3000
+ ldr r3, [r4, #2296]
28763001 str r3, [r7, #24]
28773002 mov r3, #0
28783003 str r3, [sp, #12]
28793004 ldr r3, [sp, #12]
2880
- bic r3, r3, #15872
2881
- orr r3, r3, #8192
3005
+ bfi r3, r2, #9, #5
3006
+ it eq
3007
+ moveq r2, #2
28823008 str r3, [sp, #12]
28833009 ldr r3, [sp, #12]
28843010 orr r3, r3, #448
28853011 str r3, [sp, #12]
2886
- itttt eq
3012
+ ittt eq
28873013 ldreq r3, [sp, #12]
2888
- biceq r3, r3, #56
2889
- orreq r3, r3, #16
3014
+ bfieq r3, r2, #3, #3
28903015 streq r3, [sp, #12]
28913016 ldr r3, [sp, #12]
28923017 orr r3, r3, #4
28933018 str r3, [sp, #12]
28943019 ldr r3, [sp, #12]
2895
- bic r3, r3, #2
2896
- orr r6, r3, r6, lsl #1
2897
- str r6, [sp, #12]
3020
+ bfi r3, r6, #1, #1
3021
+ str r3, [sp, #12]
28983022 ldr r3, [sp, #12]
28993023 orr r3, r3, #1
29003024 str r3, [sp, #12]
2901
-.L413:
3025
+.L410:
29023026 ldr r3, [sp, #12]
29033027 str r3, [r7, #16]
2904
-.L412:
3028
+.L409:
29053029 str r8, [r7, #12]
2906
- str r4, [r7, #8]
2907
- orr r4, r4, #4
2908
- str r4, [r7, #8]
3030
+ str r5, [r7, #8]
3031
+ orr r5, r5, #4
3032
+ str r5, [r7, #8]
29093033 add sp, sp, #20
29103034 @ sp needed
29113035 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2912
-.L430:
3036
+.L421:
3037
+ movs r1, #1
3038
+ b .L408
3039
+.L411:
3040
+ ldr r3, [r4, #2312]
3041
+ cmp r3, #25
3042
+ ldr r3, [sp, #4]
3043
+ ite cc
3044
+ movcc r10, #64
3045
+ movcs r10, #128
3046
+ lsr r9, r3, #1
3047
+ ldr r3, [sp, #60]
3048
+ str r3, [sp]
3049
+ movs r3, #0
3050
+ mov r0, r3
3051
+.L415:
3052
+ cmp r0, r9
3053
+ bcs .L419
3054
+ ldr r1, [sp, #60]
3055
+ bic lr, r3, #3
3056
+ cbz r1, .L416
3057
+ ldr r2, [sp]
3058
+ ldr r1, [r2], #4 @ unaligned
3059
+ str r2, [sp]
3060
+ mov r2, r1
3061
+ ldr r1, [r4, #2280]
3062
+ mov ip, r1
3063
+ str r2, [ip, lr]
3064
+.L417:
3065
+ adds r0, r0, #1
3066
+ add r3, r3, r10
3067
+ b .L415
3068
+.L416:
3069
+ ldr r1, [r4, #2280]
3070
+ mov r2, #-1
3071
+ str r2, [r1, lr]
3072
+ b .L417
3073
+.L412:
3074
+ ldr r0, [r4, #2276]
3075
+ b .L413
3076
+.L427:
29133077 .align 2
2914
-.L429:
3078
+.L426:
29153079 .word .LANCHOR0
29163080 .fnend
29173081 .size NandcXferStart, .-NandcXferStart
29183082 .align 1
29193083 .global Ftl_log2
3084
+ .syntax unified
29203085 .thumb
29213086 .thumb_func
3087
+ .fpu softvfp
29223088 .type Ftl_log2, %function
29233089 Ftl_log2:
29243090 .fnstart
....@@ -2927,23 +3093,25 @@
29273093 @ link register save eliminated.
29283094 movs r1, #0
29293095 movs r2, #1
2930
-.L432:
3096
+.L429:
29313097 cmp r2, r0
29323098 uxth r3, r1
29333099 add r1, r1, #1
2934
- bhi .L434
2935
- lsls r2, r2, #1
2936
- b .L432
2937
-.L434:
3100
+ bls .L430
29383101 subs r0, r3, #1
29393102 uxth r0, r0
29403103 bx lr
3104
+.L430:
3105
+ lsls r2, r2, #1
3106
+ b .L429
29413107 .fnend
29423108 .size Ftl_log2, .-Ftl_log2
29433109 .align 1
29443110 .global FtlPrintInfo
3111
+ .syntax unified
29453112 .thumb
29463113 .thumb_func
3114
+ .fpu softvfp
29473115 .type FtlPrintInfo, %function
29483116 FtlPrintInfo:
29493117 .fnstart
....@@ -2955,40 +3123,44 @@
29553123 .size FtlPrintInfo, .-FtlPrintInfo
29563124 .align 1
29573125 .global FtlSysBlkNumInit
3126
+ .syntax unified
29583127 .thumb
29593128 .thumb_func
3129
+ .fpu softvfp
29603130 .type FtlSysBlkNumInit, %function
29613131 FtlSysBlkNumInit:
29623132 .fnstart
29633133 @ args = 0, pretend = 0, frame = 0
29643134 @ frame_needed = 0, uses_anonymous_args = 0
29653135 @ link register save eliminated.
2966
- ldr r3, .L438
2967
- cmp r0, #23
2968
- it ls
2969
- movls r0, #24
2970
- ldrh r2, [r3, #2320]
2971
- ldrh r1, [r3, #2330]
2972
- str r0, [r3, #2316]
3136
+ ldr r3, .L433
3137
+ cmp r0, #24
3138
+ it cc
3139
+ movcc r0, #24
3140
+ ldrh r2, [r3, #2324]
3141
+ ldrh r1, [r3, #2334]
3142
+ str r0, [r3, #2320]
29733143 muls r2, r0, r2
29743144 subs r0, r1, r0
2975
- ldr r1, [r3, #2336]
2976
- strh r0, [r3, #2328] @ movhi
3145
+ ldr r1, [r3, #2340]
3146
+ strh r0, [r3, #2332] @ movhi
29773147 movs r0, #0
2978
- str r2, [r3, #2324]
3148
+ str r2, [r3, #2328]
29793149 subs r2, r1, r2
2980
- str r2, [r3, #2332]
3150
+ str r2, [r3, #2336]
29813151 bx lr
2982
-.L439:
3152
+.L434:
29833153 .align 2
2984
-.L438:
3154
+.L433:
29853155 .word .LANCHOR0
29863156 .fnend
29873157 .size FtlSysBlkNumInit, .-FtlSysBlkNumInit
29883158 .align 1
29893159 .global FtlConstantsInit
3160
+ .syntax unified
29903161 .thumb
29913162 .thumb_func
3163
+ .fpu softvfp
29923164 .type FtlConstantsInit, %function
29933165 FtlConstantsInit:
29943166 .fnstart
....@@ -3000,388 +3172,392 @@
30003172 sub sp, sp, #20
30013173 ldrh r1, [r0, #14]
30023174 mov r5, r0
3003
- ldr r4, .L468
3004
- ldrh lr, [r0, #8]
3175
+ ldr r4, .L462
30053176 str r1, [sp]
30063177 ldrh r1, [sp]
3178
+ ldrh ip, [r0, #8]
30073179 ldrh r2, [r0, #10]
30083180 ldrh r3, [r0, #12]
3009
- addw r0, r4, #2348
3010
- strh r1, [r4, #2330] @ movhi
3181
+ addw r0, r4, #2350
3182
+ strh r1, [r4, #2334] @ movhi
30113183 movs r1, #0
3012
- strh lr, [r4, #2340] @ movhi
3013
- strh r2, [r4, #2342] @ movhi
3014
- strh r3, [r4, #2344] @ movhi
3015
-.L441:
3184
+ strh ip, [r4, #2344] @ movhi
3185
+ strh r2, [r4, #2346] @ movhi
3186
+ strh r3, [r4, #2348] @ movhi
3187
+.L436:
30163188 strb r1, [r1, r0]
30173189 adds r1, r1, #1
30183190 cmp r1, #32
3019
- bne .L441
3191
+ bne .L436
30203192 ldrh r0, [r5, #14]
30213193 ldrh r1, [r5, #20]
30223194 cmp r1, r0, lsr #8
3023
- bcs .L442
3195
+ bcs .L437
30243196 uxtb r10, r3
3025
- ldr r9, .L468+4
3197
+ ldr r9, .L462+4
30263198 lsl r1, r10, #1
30273199 uxtb r1, r1
3028
- str r1, [sp, #8]
3200
+ str r1, [sp, #4]
30293201 subs r1, r2, #1
30303202 muls r1, r3, r1
3031
- str r1, [sp, #4]
3203
+ str r1, [sp, #12]
30323204 movs r1, #0
3033
-.L443:
3205
+.L438:
30343206 cmp r1, r3
3035
- bcs .L445
3036
- ldr r6, [sp, #4]
3037
- rsb ip, r3, r1
3207
+ bcs .L440
3208
+ ldr r6, [sp, #12]
3209
+ sub lr, r1, r3
30383210 uxtb r0, r1
3039
- add ip, ip, r9
3211
+ add lr, lr, r9
30403212 adds r6, r1, r6
30413213 add r6, r9, r6
3042
- str r6, [sp, #12]
3214
+ str r6, [sp, #8]
30433215 movs r6, #0
30443216 mov r8, r6
3045
-.L446:
3046
- cmp r8, r2
3047
- add r6, r6, r3
3048
- bcs .L467
3049
- ldr r7, [sp, #12]
3050
- add fp, r0, r10
3051
- strb r0, [ip, r6]
3217
+ b .L441
3218
+.L439:
3219
+ ldr r7, [sp, #8]
3220
+ add fp, r10, r0
3221
+ strb r0, [lr, r6]
30523222 add r8, r8, #1
30533223 strb fp, [r7, r6]
3054
- ldr r7, [sp, #8]
3224
+ ldr r7, [sp, #4]
30553225 add r0, r0, r7
30563226 uxtb r0, r0
3057
- b .L446
3058
-.L467:
3227
+.L441:
3228
+ cmp r8, r2
3229
+ add r6, r6, r3
3230
+ bcc .L439
30593231 adds r1, r1, #1
3060
- b .L443
3061
-.L445:
3232
+ b .L438
3233
+.L440:
30623234 lsls r2, r2, #1
3063
- strh r2, [r4, #2342] @ movhi
3235
+ strh r2, [r4, #2346] @ movhi
30643236 ldr r2, [sp]
30653237 lsrs r7, r2, #1
3066
- strh r7, [r4, #2330] @ movhi
3067
-.L442:
3068
- cmp lr, #1
3069
- mov r2, #5
3070
- strh r2, [r4, #2380] @ movhi
3071
- mov r2, #0
3238
+ strh r7, [r4, #2334] @ movhi
3239
+.L437:
3240
+ movs r2, #5
3241
+ ldrb r9, [r4, #36] @ zero_extendqisi2
30723242 strh r2, [r4, #2382] @ movhi
3073
- it eq
3074
- ldreq r2, .L468
3075
- ldrb r9, [r4] @ zero_extendqisi2
3076
- it eq
3077
- strheq lr, [r2, #2380] @ movhi
3078
- mov r2, #4352
3243
+ movs r2, #0
30793244 strh r2, [r4, #2384] @ movhi
3245
+ cmp ip, #1
3246
+ mov r2, #4352
3247
+ it eq
3248
+ strheq ip, [r4, #2382] @ movhi
3249
+ strh r2, [r4, #2386] @ movhi
30803250 cmp r9, #0
3081
- beq .L448
3082
- ldr r2, .L468
3083
- mov r1, #384
3084
- strh r1, [r2, #2384] @ movhi
3085
-.L448:
3086
- ldrh r7, [r4, #2342]
3087
- ldrh r6, [r4, #2330]
3251
+ beq .L443
3252
+ mov r2, #384
3253
+ strh r2, [r4, #2386] @ movhi
3254
+.L443:
3255
+ ldrh r7, [r4, #2346]
3256
+ ldrh r6, [r4, #2334]
30883257 ldrh r8, [r5, #16]
3089
- smulbb r7, r7, r3
30903258 ldrh fp, [r5, #20]
3091
- smulbb r3, r6, r3
3259
+ smulbb r7, r7, r3
30923260 ldrh r1, [r5, #18]
3261
+ smulbb r3, r3, r6
3262
+ strh r8, [r4, #2390] @ movhi
30933263 mov r0, fp
3094
- strh r8, [r4, #2388] @ movhi
3095
- strh fp, [r4, #2394] @ movhi
3264
+ strh fp, [r4, #2396] @ movhi
30963265 uxth r7, r7
3097
- strh r1, [r4, #2390] @ movhi
3098
- str r1, [sp]
3099
- strh r3, [r4, #2386] @ movhi
3266
+ strh r1, [r4, #2392] @ movhi
3267
+ strh r3, [r4, #2388] @ movhi
31003268 smulbb r3, r7, r8
3101
- strh r7, [r4, #2320] @ movhi
3102
- strh r3, [r4, #2392] @ movhi
3269
+ str r1, [sp]
3270
+ strh r7, [r4, #2324] @ movhi
3271
+ strh r3, [r4, #2394] @ movhi
31033272 bl Ftl_log2
31043273 lsl r3, fp, #9
31053274 cmp r6, #1024
3275
+ strh r0, [r4, #2398] @ movhi
3276
+ mov r10, r0
31063277 uxth r3, r3
3107
- strh r3, [r4, #2398] @ movhi
3108
- it hi
3109
- ldrhi r2, .L468
3110
- lsr r3, r3, #8
3278
+ ldr r1, [sp]
3279
+ ldrh r0, [r4, #2386]
31113280 strh r3, [r4, #2400] @ movhi
3112
- ldrh r3, [r5, #26]
3281
+ lsr r3, r3, #8
31133282 strh r3, [r4, #2402] @ movhi
3283
+ mul r1, fp, r1
3284
+ ldrh r3, [r5, #26]
3285
+ lsl r0, r0, #3
3286
+ strh r3, [r4, #2404] @ movhi
31143287 mul r3, r6, r7
3115
- str r3, [r4, #2336]
3288
+ str r3, [r4, #2340]
31163289 itt hi
31173290 uxtbhi r3, r6
3118
- strhhi r3, [r2, #2382] @ movhi
3119
- mov r10, r0
3120
- ldrh r5, [r4, #2382]
3121
- ldr r1, [sp]
3122
- subs r5, r6, r5
3123
- strh r0, [r4, #2396] @ movhi
3124
- ldrh r0, [r4, #2384]
3125
- muls r5, r7, r5
3126
- ldr r3, .L468
3127
- lsls r0, r0, #3
3128
- mul r1, r1, fp
3129
- str r3, [sp]
3130
- mul r5, fp, r5
3131
- mul r5, r8, r5
3132
- asrs r5, r5, #11
3133
- str r5, [r4, #2404]
3291
+ strhhi r3, [r4, #2384] @ movhi
3292
+ ldrh r3, [r4, #2384]
3293
+ subs r3, r6, r3
3294
+ muls r3, r7, r3
3295
+ mul r3, fp, r3
3296
+ mul r8, r8, r3
3297
+ asr r3, r8, #11
3298
+ str r3, [r4, #2408]
31343299 bl __aeabi_idiv
3135
- ldr r3, [sp]
31363300 uxth r0, r0
31373301 cmp r0, #4
31383302 itet ls
3139
- movls r2, #4
3140
- strhhi r0, [r3, #2408] @ movhi
3141
- strhls r2, [r3, #2408] @ movhi
3303
+ movls r3, #4
3304
+ strhhi r0, [r4, #2412] @ movhi
3305
+ strhls r3, [r4, #2412] @ movhi
31423306 cmp r9, #0
3143
- beq .L452
3307
+ beq .L447
31443308 mov r3, #640
3145
- strh r3, [r4, #2384] @ movhi
3146
-.L452:
3147
- ldrh r3, [r4, #2384]
3309
+ strh r3, [r4, #2386] @ movhi
3310
+.L447:
3311
+ ldrh r3, [r4, #2386]
31483312 lsls r6, r6, #6
31493313 mov r1, r7
3150
- ldr r5, .L468
3314
+ ldrh r0, [r4, #2412]
31513315 asr r3, r3, r10
31523316 add r10, r10, #9
31533317 asr r6, r6, r10
31543318 adds r3, r3, #2
3155
- strh r3, [r4, #2410] @ movhi
3156
- uxth r0, r6
3157
- strh r6, [r4, #2412] @ movhi
3158
- add r6, r0, #8
3159
- mul r3, r7, r0
3160
- ldrh r0, [r4, #2408]
3161
- str r3, [r4, #2416]
3319
+ strh r6, [r4, #2416] @ movhi
3320
+ uxth r6, r6
3321
+ strh r3, [r4, #2414] @ movhi
3322
+ mul r3, r6, r7
3323
+ adds r6, r6, #8
3324
+ str r3, [r4, #2420]
31623325 bl __aeabi_uidiv
3163
- cmp r7, #1
31643326 uxtah r0, r6, r0
3165
- ldr r6, .L468
3327
+ cmp r7, #1
31663328 it eq
31673329 addeq r0, r0, #4
3168
- str r0, [r5, #2316]
3169
- ldrh r0, [r4, #2316]
3330
+ str r0, [r4, #2320]
3331
+ ldrh r0, [r4, #2320]
31703332 bl FtlSysBlkNumInit
3171
- ldr r3, [r4, #2316]
3172
- ldr r5, [r4, #2332]
3333
+ ldr r5, [r4, #2336]
31733334 mov r0, #2048
3174
- ldrh r7, [r4, #2394]
3175
- str r3, [r4, #2420]
3176
- ldrh r3, [r4, #2388]
3177
- lsls r5, r5, #2
3178
- mov r1, r7
3335
+ ldr r3, [r4, #2320]
3336
+ ldrh r6, [r4, #2396]
3337
+ str r3, [r4, #2424]
3338
+ lsls r3, r5, #2
3339
+ ldrh r5, [r4, #2390]
3340
+ mov r1, r6
31793341 muls r5, r3, r5
3180
- ldrh r3, [r4, #2396]
3342
+ ldrh r3, [r4, #2398]
31813343 adds r3, r3, #9
31823344 lsrs r5, r5, r3
31833345 adds r5, r5, #2
31843346 uxth r5, r5
3185
- strh r5, [r4, #2424] @ movhi
3347
+ strh r5, [r4, #2428] @ movhi
31863348 bl __aeabi_idiv
3187
- ldrh r2, [r4, #2408]
3349
+ ldrh r2, [r4, #2412]
31883350 movs r3, #0
3189
- str r3, [r4, #2428]
3351
+ str r3, [r4, #2432]
3352
+ strh r0, [r4, #2430] @ movhi
31903353 adds r3, r2, #3
3191
- strh r3, [r4, #2408] @ movhi
3192
- ldr r3, [r4, #2416]
3354
+ ldrb r0, [r4, #152] @ zero_extendqisi2
3355
+ strh r3, [r4, #2412] @ movhi
3356
+ ldr r3, [r4, #2420]
31933357 adds r1, r3, #3
3194
- str r1, [r4, #2416]
3195
- strh r0, [r4, #2426] @ movhi
3196
- ldrb r0, [r4, #144] @ zero_extendqisi2
3197
- cbz r0, .L455
3198
- adds r2, r2, #4
3358
+ str r1, [r4, #2420]
3359
+ cbz r0, .L450
31993360 adds r3, r3, #5
3200
- strh r2, [r6, #2408] @ movhi
3201
- b .L466
3202
-.L455:
3203
- cmp r1, #7
3204
- bhi .L456
3205
- movs r3, #8
3206
-.L466:
3207
- str r3, [r6, #2416]
3208
-.L456:
3209
- ldrh r2, [r4, #2328]
3361
+ adds r2, r2, #4
3362
+ strh r2, [r4, #2412] @ movhi
3363
+.L461:
3364
+ str r3, [r4, #2420]
3365
+.L451:
3366
+ ldrh r2, [r4, #2332]
32103367 movs r3, #0
3211
- strh r3, [r4, #2432] @ movhi
3368
+ strh r3, [r4, #2436] @ movhi
32123369 movs r0, #0
32133370 lsrs r3, r2, #3
32143371 add r3, r3, r2, lsl #1
32153372 adds r3, r3, #52
32163373 add r5, r3, r5, lsl #2
3217
- cmp r5, r7, lsl #9
3218
- ittt cc
3219
- movcc r2, #1
3220
- ldrcc r3, .L468
3221
- strhcc r2, [r3, #2432] @ movhi
3374
+ cmp r5, r6, lsl #9
3375
+ itt cc
3376
+ movcc r3, #1
3377
+ strhcc r3, [r4, #2436] @ movhi
32223378 add sp, sp, #20
32233379 @ sp needed
32243380 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
3225
-.L469:
3381
+.L450:
3382
+ cmp r1, #7
3383
+ bhi .L451
3384
+ movs r3, #8
3385
+ b .L461
3386
+.L463:
32263387 .align 2
3227
-.L468:
3388
+.L462:
32283389 .word .LANCHOR0
3229
- .word .LANCHOR0+2348
3390
+ .word .LANCHOR0+2350
32303391 .fnend
32313392 .size FtlConstantsInit, .-FtlConstantsInit
32323393 .align 1
32333394 .global IsBlkInVendorPart
3395
+ .syntax unified
32343396 .thumb
32353397 .thumb_func
3398
+ .fpu softvfp
32363399 .type IsBlkInVendorPart, %function
32373400 IsBlkInVendorPart:
32383401 .fnstart
32393402 @ args = 0, pretend = 0, frame = 0
32403403 @ frame_needed = 0, uses_anonymous_args = 0
32413404 @ link register save eliminated.
3242
- ldr r2, .L477
3243
- ldrh r3, [r2, #2434]
3244
- cbz r3, .L476
3245
- ldr r3, [r2, #2436]
3246
- ldrh r2, [r2, #2408]
3405
+ ldr r2, .L471
3406
+ ldrh r3, [r2, #2438]
3407
+ cbz r3, .L470
3408
+ ldr r3, [r2, #2440]
3409
+ ldrh r2, [r2, #2412]
32473410 add r2, r3, r2, lsl #1
3248
-.L472:
3411
+.L466:
32493412 cmp r3, r2
3250
- beq .L476
3251
- ldrh r1, [r3], #2
3252
- cmp r1, r0
3253
- bne .L472
3254
- movs r0, #1
3255
- bx lr
3256
-.L476:
3413
+ bne .L467
3414
+.L470:
32573415 movs r0, #0
32583416 bx lr
3259
-.L478:
3417
+.L467:
3418
+ ldrh r1, [r3], #2
3419
+ cmp r0, r1
3420
+ bne .L466
3421
+ movs r0, #1
3422
+ bx lr
3423
+.L472:
32603424 .align 2
3261
-.L477:
3425
+.L471:
32623426 .word .LANCHOR0
32633427 .fnend
32643428 .size IsBlkInVendorPart, .-IsBlkInVendorPart
32653429 .align 1
32663430 .global FtlCacheMetchLpa
3431
+ .syntax unified
32673432 .thumb
32683433 .thumb_func
3434
+ .fpu softvfp
32693435 .type FtlCacheMetchLpa, %function
32703436 FtlCacheMetchLpa:
32713437 .fnstart
32723438 @ args = 0, pretend = 0, frame = 0
32733439 @ frame_needed = 0, uses_anonymous_args = 0
3274
- ldr r2, .L487
3440
+ ldr r2, .L481
32753441 push {r4, r5, r6, lr}
32763442 .save {r4, r5, r6, lr}
3277
- ldr r3, [r2, #2440]
3278
- cbz r3, .L486
3279
- ldr r5, [r2, #2444]
3443
+ ldr r3, [r2, #2444]
3444
+ cbz r3, .L480
3445
+ ldr r5, [r2, #2448]
32803446 movs r6, #36
32813447 movs r2, #0
3282
-.L482:
3448
+.L476:
32833449 mla r4, r6, r2, r5
32843450 ldr r4, [r4, #16]
32853451 cmp r4, r0
3286
- bcc .L481
3452
+ bcc .L475
32873453 cmp r4, r1
3288
- bls .L484
3289
-.L481:
3454
+ bls .L478
3455
+.L475:
32903456 adds r2, r2, #1
3291
- cmp r2, r3
3292
- bne .L482
3293
-.L486:
3457
+ cmp r3, r2
3458
+ bne .L476
3459
+.L480:
32943460 movs r0, #0
32953461 pop {r4, r5, r6, pc}
3296
-.L484:
3462
+.L478:
32973463 movs r0, #1
32983464 pop {r4, r5, r6, pc}
3299
-.L488:
3465
+.L482:
33003466 .align 2
3301
-.L487:
3467
+.L481:
33023468 .word .LANCHOR0
33033469 .fnend
33043470 .size FtlCacheMetchLpa, .-FtlCacheMetchLpa
33053471 .align 1
33063472 .global FtlGetCap
3473
+ .syntax unified
33073474 .thumb
33083475 .thumb_func
3476
+ .fpu softvfp
33093477 .type FtlGetCap, %function
33103478 FtlGetCap:
33113479 .fnstart
33123480 @ args = 0, pretend = 0, frame = 0
33133481 @ frame_needed = 0, uses_anonymous_args = 0
33143482 @ link register save eliminated.
3315
- ldr r3, .L490
3316
- ldr r0, [r3, #2428]
3483
+ ldr r3, .L484
3484
+ ldr r0, [r3, #2432]
33173485 bx lr
3318
-.L491:
3486
+.L485:
33193487 .align 2
3320
-.L490:
3488
+.L484:
33213489 .word .LANCHOR0
33223490 .fnend
33233491 .size FtlGetCap, .-FtlGetCap
33243492 .align 1
33253493 .global FtlGetCapacity
3494
+ .syntax unified
33263495 .thumb
33273496 .thumb_func
3497
+ .fpu softvfp
33283498 .type FtlGetCapacity, %function
33293499 FtlGetCapacity:
33303500 .fnstart
33313501 @ args = 0, pretend = 0, frame = 0
33323502 @ frame_needed = 0, uses_anonymous_args = 0
33333503 @ link register save eliminated.
3334
- ldr r3, .L493
3335
- ldr r0, [r3, #2428]
3504
+ ldr r3, .L487
3505
+ ldr r0, [r3, #2432]
33363506 bx lr
3337
-.L494:
3507
+.L488:
33383508 .align 2
3339
-.L493:
3509
+.L487:
33403510 .word .LANCHOR0
33413511 .fnend
33423512 .size FtlGetCapacity, .-FtlGetCapacity
33433513 .align 1
33443514 .global ftl_get_density
3515
+ .syntax unified
33453516 .thumb
33463517 .thumb_func
3518
+ .fpu softvfp
33473519 .type ftl_get_density, %function
33483520 ftl_get_density:
33493521 .fnstart
33503522 @ args = 0, pretend = 0, frame = 0
33513523 @ frame_needed = 0, uses_anonymous_args = 0
33523524 @ link register save eliminated.
3353
- ldr r3, .L496
3354
- ldr r0, [r3, #2428]
3525
+ ldr r3, .L490
3526
+ ldr r0, [r3, #2432]
33553527 bx lr
3356
-.L497:
3528
+.L491:
33573529 .align 2
3358
-.L496:
3530
+.L490:
33593531 .word .LANCHOR0
33603532 .fnend
33613533 .size ftl_get_density, .-ftl_get_density
33623534 .align 1
33633535 .global FtlGetLpn
3536
+ .syntax unified
33643537 .thumb
33653538 .thumb_func
3539
+ .fpu softvfp
33663540 .type FtlGetLpn, %function
33673541 FtlGetLpn:
33683542 .fnstart
33693543 @ args = 0, pretend = 0, frame = 0
33703544 @ frame_needed = 0, uses_anonymous_args = 0
33713545 @ link register save eliminated.
3372
- ldr r3, .L499
3373
- ldr r0, [r3, #2448]
3546
+ ldr r3, .L493
3547
+ ldr r0, [r3, #2452]
33743548 bx lr
3375
-.L500:
3549
+.L494:
33763550 .align 2
3377
-.L499:
3551
+.L493:
33783552 .word .LANCHOR0
33793553 .fnend
33803554 .size FtlGetLpn, .-FtlGetLpn
33813555 .align 1
33823556 .global FtlBbmMapBadBlock
3557
+ .syntax unified
33833558 .thumb
33843559 .thumb_func
3560
+ .fpu softvfp
33853561 .type FtlBbmMapBadBlock, %function
33863562 FtlBbmMapBadBlock:
33873563 .fnstart
....@@ -3390,47 +3566,50 @@
33903566 push {r0, r1, r2, r4, r5, r6, r7, lr}
33913567 .save {r4, r5, r6, r7, lr}
33923568 .pad #12
3393
- mov r6, r0
3394
- ldr r5, .L502
3395
- ldrh r4, [r5, #2386]
3396
- mov r1, r4
3569
+ mov r5, r0
3570
+ ldr r4, .L496
3571
+ ldrh r7, [r4, #2388]
3572
+ mov r1, r7
33973573 bl __aeabi_uidiv
3398
- uxth r2, r0
3399
- smulbb r3, r2, r4
3400
- add r1, r5, r2, lsl #2
3401
- ldr r4, [r1, #2480]
3402
- movs r1, #1
3403
- subs r3, r6, r3
3404
- uxth r3, r3
3405
- and r0, r3, #31
3406
- lsrs r7, r3, #5
3407
- lsls r1, r1, r0
3408
- ldr r0, [r4, r7, lsl #2]
3409
- orrs r1, r1, r0
3410
- ldr r0, .L502+4
3411
- str r1, [r4, r7, lsl #2]
3412
- str r1, [sp]
3413
- mov r1, r6
3574
+ uxth r6, r0
3575
+ mov r1, r7
3576
+ mov r0, r5
3577
+ bl __aeabi_uidivmod
3578
+ add r2, r4, r6, lsl #2
3579
+ uxth r3, r1
3580
+ ldr r2, [r2, #2484]
3581
+ lsrs r1, r3, #5
3582
+ and r7, r3, #31
3583
+ movs r0, #1
3584
+ lsls r0, r0, r7
3585
+ ldr r7, [r2, r1, lsl #2]
3586
+ orrs r0, r0, r7
3587
+ str r0, [r2, r1, lsl #2]
3588
+ mov r2, r6
3589
+ str r0, [sp]
3590
+ mov r1, r5
3591
+ ldr r0, .L496+4
34143592 bl printk
3415
- ldrh r3, [r5, #2458]
3593
+ ldrh r3, [r4, #2462]
34163594 movs r0, #0
34173595 adds r3, r3, #1
3418
- strh r3, [r5, #2458] @ movhi
3596
+ strh r3, [r4, #2462] @ movhi
34193597 add sp, sp, #12
34203598 @ sp needed
34213599 pop {r4, r5, r6, r7, pc}
3422
-.L503:
3600
+.L497:
34233601 .align 2
3424
-.L502:
3602
+.L496:
34253603 .word .LANCHOR0
34263604 .word .LC2
34273605 .fnend
34283606 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
3429
- .global __aeabi_uidivmod
34303607 .align 1
34313608 .global FtlBbmIsBadBlock
3609
+ .syntax unified
34323610 .thumb
34333611 .thumb_func
3612
+ .fpu softvfp
34343613 .type FtlBbmIsBadBlock, %function
34353614 FtlBbmIsBadBlock:
34363615 .fnstart
....@@ -3439,33 +3618,35 @@
34393618 push {r3, r4, r5, r6, r7, lr}
34403619 .save {r3, r4, r5, r6, r7, lr}
34413620 mov r7, r0
3442
- ldr r5, .L505
3443
- ldrh r6, [r5, #2386]
3621
+ ldr r5, .L499
3622
+ ldrh r6, [r5, #2388]
34443623 mov r1, r6
34453624 bl __aeabi_uidivmod
34463625 mov r0, r7
34473626 uxth r4, r1
34483627 mov r1, r6
34493628 bl __aeabi_uidiv
3450
- lsrs r2, r4, #5
3451
- and r4, r4, #31
34523629 uxth r0, r0
3630
+ lsrs r2, r4, #5
34533631 add r5, r5, r0, lsl #2
3454
- ldr r3, [r5, #2480]
3632
+ and r4, r4, #31
3633
+ ldr r3, [r5, #2484]
34553634 ldr r0, [r3, r2, lsl #2]
34563635 lsrs r0, r0, r4
34573636 and r0, r0, #1
34583637 pop {r3, r4, r5, r6, r7, pc}
3459
-.L506:
3638
+.L500:
34603639 .align 2
3461
-.L505:
3640
+.L499:
34623641 .word .LANCHOR0
34633642 .fnend
34643643 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
34653644 .align 1
34663645 .global FtlBbtInfoPrint
3646
+ .syntax unified
34673647 .thumb
34683648 .thumb_func
3649
+ .fpu softvfp
34693650 .type FtlBbtInfoPrint, %function
34703651 FtlBbtInfoPrint:
34713652 .fnstart
....@@ -3477,45 +3658,49 @@
34773658 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint
34783659 .align 1
34793660 .global FtlBbtCalcTotleCnt
3661
+ .syntax unified
34803662 .thumb
34813663 .thumb_func
3664
+ .fpu softvfp
34823665 .type FtlBbtCalcTotleCnt, %function
34833666 FtlBbtCalcTotleCnt:
34843667 .fnstart
34853668 @ args = 0, pretend = 0, frame = 0
34863669 @ frame_needed = 0, uses_anonymous_args = 0
3670
+ ldr r3, .L509
34873671 push {r4, r5, r6, lr}
34883672 .save {r4, r5, r6, lr}
34893673 movs r5, #0
3490
- ldr r4, .L516
3491
- ldrh r6, [r4, #2386]
3492
- ldrh r3, [r4, #2342]
34933674 mov r4, r5
3494
- muls r6, r3, r6
3495
-.L509:
3675
+ ldrh r2, [r3, #2388]
3676
+ ldrh r6, [r3, #2346]
3677
+ muls r6, r2, r6
3678
+.L503:
34963679 uxth r0, r5
34973680 cmp r0, r6
3498
- bge .L515
3499
- bl FtlBbmIsBadBlock
3500
- cbz r0, .L510
3501
- adds r4, r4, #1
3502
- uxth r4, r4
3503
-.L510:
3504
- adds r5, r5, #1
3505
- b .L509
3506
-.L515:
3681
+ blt .L505
35073682 mov r0, r4
35083683 pop {r4, r5, r6, pc}
3509
-.L517:
3684
+.L505:
3685
+ bl FtlBbmIsBadBlock
3686
+ cbz r0, .L504
3687
+ adds r4, r4, #1
3688
+ uxth r4, r4
3689
+.L504:
3690
+ adds r5, r5, #1
3691
+ b .L503
3692
+.L510:
35103693 .align 2
3511
-.L516:
3694
+.L509:
35123695 .word .LANCHOR0
35133696 .fnend
35143697 .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
35153698 .align 1
35163699 .global V2P_block
3700
+ .syntax unified
35173701 .thumb
35183702 .thumb_func
3703
+ .fpu softvfp
35193704 .type V2P_block, %function
35203705 V2P_block:
35213706 .fnstart
....@@ -3523,41 +3708,45 @@
35233708 @ frame_needed = 0, uses_anonymous_args = 0
35243709 push {r3, r4, r5, r6, r7, lr}
35253710 .save {r3, r4, r5, r6, r7, lr}
3526
- mov r4, r1
3527
- ldr r6, .L519
3711
+ mov r5, r1
3712
+ ldr r4, .L512
35283713 mov r7, r0
3529
- ldrh r5, [r6, #2344]
3530
- mov r1, r5
3531
- bl __aeabi_uidivmod
3532
- mov r0, r7
3533
- smlabb r4, r4, r5, r1
3534
- mov r1, r5
3714
+ ldrh r6, [r4, #2348]
3715
+ mov r1, r6
35353716 bl __aeabi_uidiv
3536
- ldrh r3, [r6, #2386]
3537
- smlabb r0, r3, r0, r4
3717
+ ldrh r4, [r4, #2388]
3718
+ smulbb r5, r6, r5
3719
+ mov r1, r6
3720
+ smulbb r4, r4, r0
3721
+ mov r0, r7
3722
+ bl __aeabi_uidivmod
3723
+ adds r0, r5, r1
3724
+ add r0, r0, r4
35383725 uxth r0, r0
35393726 pop {r3, r4, r5, r6, r7, pc}
3540
-.L520:
3727
+.L513:
35413728 .align 2
3542
-.L519:
3729
+.L512:
35433730 .word .LANCHOR0
35443731 .fnend
35453732 .size V2P_block, .-V2P_block
35463733 .align 1
35473734 .global P2V_plane
3735
+ .syntax unified
35483736 .thumb
35493737 .thumb_func
3738
+ .fpu softvfp
35503739 .type P2V_plane, %function
35513740 P2V_plane:
35523741 .fnstart
35533742 @ args = 0, pretend = 0, frame = 0
35543743 @ frame_needed = 0, uses_anonymous_args = 0
3555
- ldr r3, .L522
3744
+ ldr r3, .L515
35563745 push {r4, r5, r6, lr}
35573746 .save {r4, r5, r6, lr}
35583747 mov r6, r0
3559
- ldrh r1, [r3, #2386]
3560
- ldrh r5, [r3, #2344]
3748
+ ldrh r5, [r3, #2348]
3749
+ ldrh r1, [r3, #2388]
35613750 bl __aeabi_uidiv
35623751 mov r1, r5
35633752 smulbb r4, r0, r5
....@@ -3566,16 +3755,18 @@
35663755 add r1, r1, r4
35673756 uxth r0, r1
35683757 pop {r4, r5, r6, pc}
3569
-.L523:
3758
+.L516:
35703759 .align 2
3571
-.L522:
3760
+.L515:
35723761 .word .LANCHOR0
35733762 .fnend
35743763 .size P2V_plane, .-P2V_plane
35753764 .align 1
35763765 .global P2V_block_in_plane
3766
+ .syntax unified
35773767 .thumb
35783768 .thumb_func
3769
+ .fpu softvfp
35793770 .type P2V_block_in_plane, %function
35803771 P2V_block_in_plane:
35813772 .fnstart
....@@ -3583,24 +3774,26 @@
35833774 @ frame_needed = 0, uses_anonymous_args = 0
35843775 push {r4, lr}
35853776 .save {r4, lr}
3586
- ldr r4, .L525
3587
- ldrh r1, [r4, #2386]
3777
+ ldr r4, .L518
3778
+ ldrh r1, [r4, #2388]
35883779 bl __aeabi_uidivmod
35893780 uxth r0, r1
3590
- ldrh r1, [r4, #2344]
3781
+ ldrh r1, [r4, #2348]
35913782 bl __aeabi_uidiv
35923783 uxth r0, r0
35933784 pop {r4, pc}
3594
-.L526:
3785
+.L519:
35953786 .align 2
3596
-.L525:
3787
+.L518:
35973788 .word .LANCHOR0
35983789 .fnend
35993790 .size P2V_block_in_plane, .-P2V_block_in_plane
36003791 .align 1
36013792 .global ftl_cmp_data_ver
3793
+ .syntax unified
36023794 .thumb
36033795 .thumb_func
3796
+ .fpu softvfp
36043797 .type ftl_cmp_data_ver, %function
36053798 ftl_cmp_data_ver:
36063799 .fnstart
....@@ -3608,14 +3801,14 @@
36083801 @ frame_needed = 0, uses_anonymous_args = 0
36093802 @ link register save eliminated.
36103803 cmp r0, r1
3611
- bls .L528
3804
+ bls .L521
36123805 subs r0, r0, r1
36133806 cmp r0, #-2147483648
36143807 ite hi
36153808 movhi r0, #0
36163809 movls r0, #1
36173810 bx lr
3618
-.L528:
3811
+.L521:
36193812 subs r0, r1, r0
36203813 cmp r0, #-2147483648
36213814 ite ls
....@@ -3626,51 +3819,57 @@
36263819 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver
36273820 .align 1
36283821 .global FtlFreeSysBlkQueueEmpty
3822
+ .syntax unified
36293823 .thumb
36303824 .thumb_func
3825
+ .fpu softvfp
36313826 .type FtlFreeSysBlkQueueEmpty, %function
36323827 FtlFreeSysBlkQueueEmpty:
36333828 .fnstart
36343829 @ args = 0, pretend = 0, frame = 0
36353830 @ frame_needed = 0, uses_anonymous_args = 0
36363831 @ link register save eliminated.
3637
- ldr r3, .L531
3638
- ldrh r0, [r3, #2518]
3832
+ ldr r3, .L524
3833
+ ldrh r0, [r3, #2522]
36393834 clz r0, r0
36403835 lsrs r0, r0, #5
36413836 bx lr
3642
-.L532:
3837
+.L525:
36433838 .align 2
3644
-.L531:
3839
+.L524:
36453840 .word .LANCHOR0
36463841 .fnend
36473842 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
36483843 .align 1
36493844 .global FtlFreeSysBlkQueueFull
3845
+ .syntax unified
36503846 .thumb
36513847 .thumb_func
3848
+ .fpu softvfp
36523849 .type FtlFreeSysBlkQueueFull, %function
36533850 FtlFreeSysBlkQueueFull:
36543851 .fnstart
36553852 @ args = 0, pretend = 0, frame = 0
36563853 @ frame_needed = 0, uses_anonymous_args = 0
36573854 @ link register save eliminated.
3658
- ldr r3, .L534
3659
- ldrh r0, [r3, #2518]
3855
+ ldr r3, .L527
3856
+ ldrh r0, [r3, #2522]
36603857 sub r3, r0, #1024
36613858 rsbs r0, r3, #0
36623859 adcs r0, r0, r3
36633860 bx lr
3664
-.L535:
3861
+.L528:
36653862 .align 2
3666
-.L534:
3863
+.L527:
36673864 .word .LANCHOR0
36683865 .fnend
36693866 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
36703867 .align 1
36713868 .global FtlFreeSysBlkQueueIn
3869
+ .syntax unified
36723870 .thumb
36733871 .thumb_func
3872
+ .fpu softvfp
36743873 .type FtlFreeSysBlkQueueIn, %function
36753874 FtlFreeSysBlkQueueIn:
36763875 .fnstart
....@@ -3679,229 +3878,236 @@
36793878 push {r3, r4, r5, r6, r7, lr}
36803879 .save {r3, r4, r5, r6, r7, lr}
36813880 subs r3, r0, #1
3881
+ uxth r3, r3
36823882 movw r2, #65533
36833883 mov r6, r0
3684
- uxth r3, r3
36853884 cmp r3, r2
3686
- bhi .L536
3687
- ldr r4, .L545
3688
- ldrh r3, [r4, #2518]
3885
+ bhi .L529
3886
+ ldr r4, .L538
3887
+ ldrh r3, [r4, #2522]
36893888 cmp r3, #1024
3690
- beq .L536
3691
- cbz r1, .L538
3692
- ldr r5, .L545+4
3693
- ldr r3, [r5, #224]
3694
- cbnz r3, .L538
3889
+ beq .L529
3890
+ cbz r1, .L531
3891
+ ldr r5, .L538+4
3892
+ ldr r3, [r5, #228]
3893
+ cbnz r3, .L531
36953894 bl P2V_block_in_plane
3696
- movs r1, #1
3697
- lsls r3, r6, #10
3698
- mov r2, r1
36993895 mov r7, r0
3700
- ldr r0, [r5, #228]
3896
+ ldr r0, [r5, #232]
3897
+ lsls r3, r6, #10
3898
+ movs r2, #1
3899
+ mov r1, r2
37013900 str r3, [r0, #4]
37023901 bl FlashEraseBlocks
3703
- ldr r2, [r5, #232]
3902
+ ldr r2, [r5, #236]
37043903 ldrh r3, [r2, r7, lsl #1]
37053904 adds r3, r3, #1
37063905 strh r3, [r2, r7, lsl #1] @ movhi
3707
- ldr r3, [r5, #236]
3906
+ ldr r3, [r5, #240]
37083907 adds r3, r3, #1
3709
- str r3, [r5, #236]
3710
-.L538:
3711
- ldrh r3, [r4, #2518]
3908
+ str r3, [r5, #240]
3909
+.L531:
3910
+ ldrh r3, [r4, #2522]
37123911 adds r3, r3, #1
3713
- strh r3, [r4, #2518] @ movhi
3714
- ldrh r3, [r4, #2516]
3912
+ strh r3, [r4, #2522] @ movhi
3913
+ ldrh r3, [r4, #2520]
37153914 add r2, r4, r3, lsl #1
37163915 adds r3, r3, #1
37173916 ubfx r3, r3, #0, #10
3718
- strh r3, [r4, #2516] @ movhi
3719
- strh r6, [r2, #2520] @ movhi
3720
-.L536:
3917
+ strh r6, [r2, #2524] @ movhi
3918
+ strh r3, [r4, #2520] @ movhi
3919
+.L529:
37213920 pop {r3, r4, r5, r6, r7, pc}
3722
-.L546:
3921
+.L539:
37233922 .align 2
3724
-.L545:
3923
+.L538:
37253924 .word .LANCHOR0
37263925 .word .LANCHOR2
37273926 .fnend
37283927 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
37293928 .align 1
37303929 .global FtlFreeSysBLkSort
3930
+ .syntax unified
37313931 .thumb
37323932 .thumb_func
3933
+ .fpu softvfp
37333934 .type FtlFreeSysBLkSort, %function
37343935 FtlFreeSysBLkSort:
37353936 .fnstart
37363937 @ args = 0, pretend = 0, frame = 0
37373938 @ frame_needed = 0, uses_anonymous_args = 0
3738
- ldr r3, .L558
3939
+ ldr r3, .L549
37393940 push {r4, r5, r6, lr}
37403941 .save {r4, r5, r6, lr}
3741
- ldrh r4, [r3, #268]
3742
- ldr r3, .L558+4
3743
- ldrh r2, [r3, #2518]
3744
- cbz r2, .L547
3942
+ ldrh r2, [r3, #2522]
3943
+ cbz r2, .L540
3944
+ ldr r2, .L549+4
37453945 movs r0, #0
3746
- ldrh r1, [r3, #2514]
3747
- ldrh r2, [r3, #2516]
3748
- and r4, r4, #31
3946
+ ldrh r1, [r3, #2518]
37493947 mov r6, r0
3750
-.L549:
3751
- uxth r5, r0
3948
+ ldrh r5, [r2, #272]
3949
+ ldrh r2, [r3, #2520]
3950
+ and r5, r5, #31
3951
+.L542:
3952
+ uxth r4, r0
37523953 adds r0, r0, #1
37533954 cmp r5, r4
3754
- bge .L557
3755
- add r5, r3, r1, lsl #1
3955
+ bgt .L543
3956
+ cbz r6, .L540
3957
+ strh r1, [r3, #2518] @ movhi
3958
+ strh r2, [r3, #2520] @ movhi
3959
+.L540:
3960
+ pop {r4, r5, r6, pc}
3961
+.L543:
3962
+ add r4, r3, r1, lsl #1
37563963 adds r1, r1, #1
37573964 ubfx r1, r1, #0, #10
3758
- ldrh r6, [r5, #2520]
3759
- add r5, r3, r2, lsl #1
3760
- strh r6, [r5, #2520] @ movhi
3965
+ ldrh r6, [r4, #2524]
3966
+ add r4, r3, r2, lsl #1
3967
+ strh r6, [r4, #2524] @ movhi
37613968 movs r6, #1
37623969 add r2, r2, r6
37633970 ubfx r2, r2, #0, #10
3764
- b .L549
3765
-.L557:
3766
- cbz r6, .L547
3767
- strh r1, [r3, #2514] @ movhi
3768
- strh r2, [r3, #2516] @ movhi
3769
-.L547:
3770
- pop {r4, r5, r6, pc}
3771
-.L559:
3971
+ b .L542
3972
+.L550:
37723973 .align 2
3773
-.L558:
3774
- .word .LANCHOR2
3974
+.L549:
37753975 .word .LANCHOR0
3976
+ .word .LANCHOR2
37763977 .fnend
37773978 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
37783979 .align 1
37793980 .global FtlFreeSysBlkQueueOut
3981
+ .syntax unified
37803982 .thumb
37813983 .thumb_func
3984
+ .fpu softvfp
37823985 .type FtlFreeSysBlkQueueOut, %function
37833986 FtlFreeSysBlkQueueOut:
37843987 .fnstart
37853988 @ args = 0, pretend = 0, frame = 0
37863989 @ frame_needed = 0, uses_anonymous_args = 0
3787
- push {r4, r5, r6, r7, r8, r9, r10, lr}
3788
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
3789
- ldr r4, .L570
3790
- ldr r6, .L570+4
3990
+ push {r3, r4, r5, r6, r7, r8, r9, lr}
3991
+ .save {r3, r4, r5, r6, r7, r8, r9, lr}
3992
+ ldr r4, .L561
3993
+ ldr r5, .L561+4
37913994 mov r7, r4
3792
-.L561:
3793
- ldrh r1, [r4, #2518]
3794
- cbz r1, .L562
3795
- ldrh r3, [r4, #2514]
3995
+.L552:
3996
+ ldrh r1, [r4, #2522]
3997
+ cmp r1, #0
3998
+ beq .L553
3999
+ ldrh r3, [r4, #2518]
37964000 subs r1, r1, #1
3797
- ldr r10, [r6, #224]
3798
- strh r1, [r4, #2518] @ movhi
4001
+ ldr r9, [r5, #228]
4002
+ strh r1, [r4, #2522] @ movhi
37994003 add r2, r4, r3, lsl #1
38004004 adds r3, r3, #1
38014005 ubfx r3, r3, #0, #10
3802
- ldr r8, .L570+4
3803
- ldrh r5, [r2, #2520]
3804
- strh r3, [r4, #2514] @ movhi
3805
- cmp r10, #0
3806
- bne .L563
3807
- mov r0, r5
4006
+ ldrh r6, [r2, #2524]
4007
+ strh r3, [r4, #2518] @ movhi
4008
+ cmp r9, #0
4009
+ bne .L554
4010
+ mov r0, r6
38084011 bl P2V_block_in_plane
3809
- lsls r3, r5, #10
3810
- mov r9, r0
3811
- ldr r0, [r6, #228]
4012
+ mov r8, r0
4013
+ ldr r0, [r5, #232]
4014
+ lsls r3, r6, #10
38124015 str r3, [r0, #4]
3813
- ldrb r3, [r4, #144] @ zero_extendqisi2
3814
- cbz r3, .L564
3815
- mov r1, r10
4016
+ ldrb r3, [r4, #152] @ zero_extendqisi2
4017
+ cbz r3, .L555
38164018 movs r2, #1
4019
+ mov r1, r9
38174020 bl FlashEraseBlocks
3818
-.L564:
3819
- movs r1, #1
3820
- ldr r0, [r8, #228]
3821
- mov r2, r1
4021
+.L555:
4022
+ movs r2, #1
4023
+ ldr r0, [r5, #232]
4024
+ mov r1, r2
38224025 bl FlashEraseBlocks
3823
- ldr r2, [r8, #232]
3824
- ldrh r3, [r2, r9, lsl #1]
4026
+ ldr r2, [r5, #236]
4027
+ ldrh r3, [r2, r8, lsl #1]
38254028 adds r3, r3, #1
3826
- strh r3, [r2, r9, lsl #1] @ movhi
3827
- ldr r3, [r8, #236]
4029
+ strh r3, [r2, r8, lsl #1] @ movhi
4030
+ ldr r3, [r5, #240]
38284031 adds r3, r3, #1
3829
- str r3, [r8, #236]
3830
- b .L563
3831
-.L562:
3832
- ldr r0, .L570+8
3833
- bl printk
3834
-.L565:
3835
- b .L565
3836
-.L563:
3837
- subs r3, r5, #1
4032
+ str r3, [r5, #240]
4033
+.L554:
4034
+ subs r3, r6, #1
38384035 movw r2, #65533
38394036 uxth r3, r3
38404037 cmp r3, r2
3841
- bls .L566
3842
- mov r1, r5
3843
- ldrh r2, [r7, #2518]
3844
- ldr r0, .L570+12
4038
+ bls .L557
4039
+ ldrh r2, [r7, #2522]
4040
+ mov r1, r6
4041
+ ldr r0, .L561+8
38454042 bl printk
3846
- b .L561
3847
-.L566:
3848
- mov r0, r5
3849
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
3850
-.L571:
4043
+ b .L552
4044
+.L553:
4045
+ ldr r0, .L561+12
4046
+ bl printk
4047
+.L556:
4048
+ b .L556
4049
+.L557:
4050
+ mov r0, r6
4051
+ pop {r3, r4, r5, r6, r7, r8, r9, pc}
4052
+.L562:
38514053 .align 2
3852
-.L570:
4054
+.L561:
38534055 .word .LANCHOR0
38544056 .word .LANCHOR2
3855
- .word .LC3
38564057 .word .LC4
4058
+ .word .LC3
38574059 .fnend
38584060 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
38594061 .align 1
38604062 .global test_node_in_list
4063
+ .syntax unified
38614064 .thumb
38624065 .thumb_func
4066
+ .fpu softvfp
38634067 .type test_node_in_list, %function
38644068 test_node_in_list:
38654069 .fnstart
38664070 @ args = 0, pretend = 0, frame = 0
38674071 @ frame_needed = 0, uses_anonymous_args = 0
3868
- ldr r3, .L577
4072
+ ldr r3, .L568
38694073 push {r4, r5, lr}
38704074 .save {r4, r5, lr}
38714075 movw r5, #65535
3872
- ldr r4, [r3, #288]
38734076 ldr r2, [r0]
3874
- ldr r3, .L577+4
3875
- subs r0, r2, r4
3876
- asrs r0, r0, #1
4077
+ ldr r4, [r3, #292]
4078
+ subs r3, r2, r4
4079
+ asrs r0, r3, #1
4080
+ ldr r3, .L568+4
38774081 muls r3, r0, r3
38784082 movs r0, #6
38794083 uxth r3, r3
3880
-.L574:
3881
- cmp r1, r3
3882
- beq .L575
4084
+.L565:
4085
+ cmp r3, r1
4086
+ beq .L566
38834087 ldrh r3, [r2]
38844088 cmp r3, r5
3885
- beq .L576
4089
+ beq .L567
38864090 mla r2, r0, r3, r4
3887
- b .L574
3888
-.L575:
4091
+ b .L565
4092
+.L566:
38894093 movs r0, #1
38904094 pop {r4, r5, pc}
3891
-.L576:
4095
+.L567:
38924096 movs r0, #0
38934097 pop {r4, r5, pc}
3894
-.L578:
4098
+.L569:
38954099 .align 2
3896
-.L577:
4100
+.L568:
38974101 .word .LANCHOR2
38984102 .word -1431655765
38994103 .fnend
39004104 .size test_node_in_list, .-test_node_in_list
39014105 .align 1
39024106 .global insert_data_list
4107
+ .syntax unified
39034108 .thumb
39044109 .thumb_func
4110
+ .fpu softvfp
39054111 .type insert_data_list, %function
39064112 insert_data_list:
39074113 .fnstart
....@@ -3910,113 +4116,113 @@
39104116 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
39114117 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
39124118 .pad #12
3913
- ldr r5, .L595
3914
- ldrh r3, [r5, #2328]
4119
+ ldr r5, .L585
4120
+ ldrh r3, [r5, #2332]
39154121 cmp r3, r0
3916
- bls .L581
4122
+ bls .L572
4123
+ ldr r2, .L585+4
39174124 movs r4, #6
3918
- ldr r2, .L595+4
3919
- movw r3, #65535
39204125 muls r4, r0, r4
3921
- ldr lr, [r2, #288]
4126
+ movw r3, #65535
4127
+ ldr ip, [r2, #292]
39224128 mov r7, r2
3923
- add r1, lr, r4
4129
+ add r1, ip, r4
39244130 strh r3, [r1, #2] @ movhi
3925
- strh r3, [lr, r4] @ movhi
3926
- ldr r3, [r2, #292]
3927
- cmp r3, #0
3928
- beq .L594
3929
- ldr r8, [r2, #296]
3930
- lsl fp, r0, #1
3931
- ldrh r2, [r1, #4]
3932
- ldrh r6, [r8, r0, lsl #1]
3933
- cbz r2, .L592
3934
- muls r6, r2, r6
3935
- b .L583
3936
-.L592:
3937
- mov r6, #-1
3938
-.L583:
3939
- ldr ip, [r7, #288]
3940
- ldr r2, .L595+8
3941
- rsb r9, ip, r3
3942
- ldrh r5, [r5, #2328]
3943
- asr r9, r9, #1
3944
- str r5, [sp]
3945
- mul r2, r2, r9
3946
- ldr r9, [r7, #232]
3947
- add r5, r9, fp
3948
- str r5, [sp, #4]
3949
- movs r5, #0
3950
- uxth r2, r2
3951
-.L590:
3952
- adds r5, r5, #1
3953
- ldr r7, [sp]
3954
- uxth r5, r5
3955
- cmp r5, r7
3956
- bhi .L581
3957
- cmp r0, r2
3958
- beq .L581
3959
- ldrh r7, [r3, #4]
3960
- lsl r10, r2, #1
3961
- ldrh fp, [r8, r2, lsl #1]
3962
- cbz r7, .L593
3963
- mul r7, r7, fp
3964
- b .L585
3965
-.L593:
3966
- mov r7, #-1
3967
-.L585:
3968
- cmp r7, r6
3969
- bne .L586
3970
- ldr r7, [sp, #4]
3971
- ldrh r10, [r9, r10]
3972
- ldrh r7, [r7]
3973
- cmp r10, r7
3974
- bcc .L588
3975
- b .L587
3976
-.L586:
3977
- bhi .L587
3978
-.L588:
3979
- ldrh r7, [r3]
3980
- movw r10, #65535
3981
- cmp r7, r10
3982
- bne .L589
3983
- strh r2, [r1, #2] @ movhi
3984
- strh r0, [r3] @ movhi
3985
- ldr r3, .L595+4
3986
- str r1, [r3, #300]
3987
- b .L581
3988
-.L589:
3989
- movs r3, #6
3990
- mov r2, r7
3991
- mla r3, r3, r7, ip
3992
- b .L590
3993
-.L587:
3994
- strh r2, [lr, r4] @ movhi
3995
- ldrh r2, [r3, #2]
3996
- strh r2, [r1, #2] @ movhi
3997
- ldr r2, .L595+4
3998
- ldr r4, [r2, #292]
3999
- cmp r3, r4
4000
- bne .L591
4001
- strh r0, [r3, #2] @ movhi
4002
-.L594:
4003
- str r1, [r2, #292]
4004
- b .L581
4005
-.L591:
4006
- ldrh r4, [r3, #2]
4007
- ldr r1, [r2, #288]
4008
- movs r2, #6
4009
- muls r2, r4, r2
4010
- strh r0, [r1, r2] @ movhi
4011
- strh r0, [r3, #2] @ movhi
4012
-.L581:
4131
+ strh r3, [ip, r4] @ movhi
4132
+ ldr r3, [r2, #296]
4133
+ cbnz r3, .L573
4134
+ str r1, [r2, #296]
4135
+.L572:
40134136 movs r0, #0
40144137 add sp, sp, #12
40154138 @ sp needed
40164139 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4017
-.L596:
4140
+.L573:
4141
+ ldrh r6, [r1, #4]
4142
+ lsl r10, r0, #1
4143
+ ldr r8, [r2, #300]
4144
+ ldrh r2, [r8, r0, lsl #1]
4145
+ cmp r6, #0
4146
+ beq .L583
4147
+ muls r6, r2, r6
4148
+.L574:
4149
+ ldr lr, [r7, #292]
4150
+ ldrh r5, [r5, #2332]
4151
+ sub r2, r3, lr
4152
+ asr r9, r2, #1
4153
+ ldr r2, .L585+8
4154
+ str r5, [sp]
4155
+ mul r2, r2, r9
4156
+ ldr r9, [r7, #236]
4157
+ add r5, r9, r10
4158
+ uxth r2, r2
4159
+ str r5, [sp, #4]
4160
+ movs r5, #0
4161
+.L581:
4162
+ adds r5, r5, #1
4163
+ ldr r7, [sp]
4164
+ uxth r5, r5
4165
+ cmp r5, r7
4166
+ bhi .L572
4167
+ cmp r0, r2
4168
+ beq .L572
4169
+ ldrh r7, [r3, #4]
4170
+ lsl r10, r2, #1
4171
+ ldrh fp, [r8, r2, lsl #1]
4172
+ cbz r7, .L584
4173
+ mul r7, r7, fp
4174
+.L576:
4175
+ cmp r6, r7
4176
+ bne .L577
4177
+ ldr r7, [sp, #4]
4178
+ ldrh r10, [r9, r10]
4179
+ ldrh r7, [r7]
4180
+ cmp r10, r7
4181
+ bcc .L579
4182
+.L578:
4183
+ strh r2, [ip, r4] @ movhi
4184
+ ldr r4, .L585+4
4185
+ ldrh r2, [r3, #2]
4186
+ strh r2, [r1, #2] @ movhi
4187
+ ldr r2, [r4, #296]
4188
+ cmp r3, r2
4189
+ ittte ne
4190
+ ldrhne r5, [r3, #2]
4191
+ movne r2, #6
4192
+ ldrne r1, [r4, #292]
4193
+ strheq r0, [r3, #2] @ movhi
4194
+ iteee eq
4195
+ streq r1, [r4, #296]
4196
+ mulne r2, r2, r5
4197
+ strhne r0, [r1, r2] @ movhi
4198
+ strhne r0, [r3, #2] @ movhi
4199
+ b .L572
4200
+.L583:
4201
+ mov r6, #-1
4202
+ b .L574
4203
+.L584:
4204
+ mov r7, #-1
4205
+ b .L576
4206
+.L577:
4207
+ bcc .L578
4208
+.L579:
4209
+ ldrh r7, [r3]
4210
+ movw r10, #65535
4211
+ cmp r7, r10
4212
+ bne .L580
4213
+ strh r2, [r1, #2] @ movhi
4214
+ strh r0, [r3] @ movhi
4215
+ ldr r3, .L585+4
4216
+ str r1, [r3, #304]
4217
+ b .L572
4218
+.L580:
4219
+ movs r3, #6
4220
+ mov r2, r7
4221
+ mla r3, r3, r7, lr
4222
+ b .L581
4223
+.L586:
40184224 .align 2
4019
-.L595:
4225
+.L585:
40204226 .word .LANCHOR0
40214227 .word .LANCHOR2
40224228 .word -1431655765
....@@ -4024,8 +4230,10 @@
40244230 .size insert_data_list, .-insert_data_list
40254231 .align 1
40264232 .global INSERT_DATA_LIST
4233
+ .syntax unified
40274234 .thumb
40284235 .thumb_func
4236
+ .fpu softvfp
40294237 .type INSERT_DATA_LIST, %function
40304238 INSERT_DATA_LIST:
40314239 .fnstart
....@@ -4034,21 +4242,23 @@
40344242 push {r3, lr}
40354243 .save {r3, lr}
40364244 bl insert_data_list
4037
- ldr r2, .L598
4038
- ldrh r3, [r2, #304]
4245
+ ldr r2, .L588
4246
+ ldrh r3, [r2, #308]
40394247 adds r3, r3, #1
4040
- strh r3, [r2, #304] @ movhi
4248
+ strh r3, [r2, #308] @ movhi
40414249 pop {r3, pc}
4042
-.L599:
4250
+.L589:
40434251 .align 2
4044
-.L598:
4252
+.L588:
40454253 .word .LANCHOR2
40464254 .fnend
40474255 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST
40484256 .align 1
40494257 .global insert_free_list
4258
+ .syntax unified
40504259 .thumb
40514260 .thumb_func
4261
+ .fpu softvfp
40524262 .type insert_free_list, %function
40534263 insert_free_list:
40544264 .fnstart
....@@ -4056,74 +4266,77 @@
40564266 @ frame_needed = 0, uses_anonymous_args = 0
40574267 push {r4, r5, r6, r7, r8, r9, r10, lr}
40584268 .save {r4, r5, r6, r7, r8, r9, r10, lr}
4059
- movw r5, #65535
4060
- cmp r0, r5
4061
- beq .L601
4269
+ movw r4, #65535
4270
+ cmp r0, r4
4271
+ beq .L591
4272
+ ldr r2, .L597
40624273 movs r1, #6
4063
- ldr r2, .L608
4064
- mul lr, r1, r0
4065
- ldr ip, [r2, #288]
4066
- mov r7, r2
4067
- add r6, ip, lr
4068
- strh r5, [r6, #2] @ movhi
4069
- strh r5, [ip, lr] @ movhi
4070
- ldr r3, [r2, #308]
4071
- cbz r3, .L607
4072
- ldr r8, [r2, #288]
4073
- ldr r9, [r2, #232]
4074
- rsb r4, r8, r3
4075
- ldr r2, .L608+4
4076
- asrs r4, r4, #1
4077
- ldrh r10, [r9, r0, lsl #1]
4078
- muls r4, r2, r4
4079
- uxth r2, r4
4080
-.L605:
4081
- ldrh r4, [r9, r2, lsl #1]
4082
- cmp r4, r10
4083
- bcs .L603
4084
- ldrh r4, [r3]
4085
- cmp r4, r5
4086
- bne .L604
4087
- strh r2, [r6, #2] @ movhi
4088
- strh r0, [r3] @ movhi
4089
- b .L601
4090
-.L604:
4091
- mla r3, r1, r4, r8
4092
- mov r2, r4
4093
- b .L605
4094
-.L603:
4095
- ldrh r1, [r3, #2]
4096
- strh r1, [r6, #2] @ movhi
4097
- strh r2, [ip, lr] @ movhi
4098
- ldr r1, [r7, #308]
4099
- ldr r2, .L608
4100
- cmp r3, r1
4101
- bne .L606
4102
- strh r0, [r3, #2] @ movhi
4103
-.L607:
4104
- str r6, [r2, #308]
4105
- b .L601
4106
-.L606:
4107
- ldrh r4, [r3, #2]
4108
- ldr r1, [r2, #288]
4109
- movs r2, #6
4110
- muls r2, r4, r2
4111
- strh r0, [r1, r2] @ movhi
4112
- strh r0, [r3, #2] @ movhi
4113
-.L601:
4274
+ mul r7, r1, r0
4275
+ ldr ip, [r2, #292]
4276
+ mov r5, r2
4277
+ add r6, ip, r7
4278
+ strh r4, [r6, #2] @ movhi
4279
+ strh r4, [ip, r7] @ movhi
4280
+ ldr r3, [r2, #312]
4281
+ cbnz r3, .L592
4282
+ str r6, [r2, #312]
4283
+.L591:
41144284 movs r0, #0
41154285 pop {r4, r5, r6, r7, r8, r9, r10, pc}
4116
-.L609:
4286
+.L592:
4287
+ ldr lr, [r2, #292]
4288
+ ldr r8, [r2, #236]
4289
+ sub r2, r3, lr
4290
+ asr r10, r2, #1
4291
+ ldr r2, .L597+4
4292
+ ldrh r9, [r8, r0, lsl #1]
4293
+ mul r2, r2, r10
4294
+ mov r10, r4
4295
+ uxth r2, r2
4296
+.L595:
4297
+ ldrh r4, [r8, r2, lsl #1]
4298
+ cmp r4, r9
4299
+ bcs .L593
4300
+ ldrh r4, [r3]
4301
+ cmp r4, r10
4302
+ bne .L594
4303
+ strh r2, [r6, #2] @ movhi
4304
+ strh r0, [r3] @ movhi
4305
+ b .L591
4306
+.L594:
4307
+ mla r3, r1, r4, lr
4308
+ mov r2, r4
4309
+ b .L595
4310
+.L593:
4311
+ ldrh r1, [r3, #2]
4312
+ strh r1, [r6, #2] @ movhi
4313
+ strh r2, [ip, r7] @ movhi
4314
+ ldr r2, [r5, #312]
4315
+ cmp r3, r2
4316
+ ittte ne
4317
+ ldrhne r4, [r3, #2]
4318
+ movne r2, #6
4319
+ ldrne r1, [r5, #292]
4320
+ strheq r0, [r3, #2] @ movhi
4321
+ iteee eq
4322
+ streq r6, [r5, #312]
4323
+ mulne r2, r2, r4
4324
+ strhne r0, [r1, r2] @ movhi
4325
+ strhne r0, [r3, #2] @ movhi
4326
+ b .L591
4327
+.L598:
41174328 .align 2
4118
-.L608:
4329
+.L597:
41194330 .word .LANCHOR2
41204331 .word -1431655765
41214332 .fnend
41224333 .size insert_free_list, .-insert_free_list
41234334 .align 1
41244335 .global INSERT_FREE_LIST
4336
+ .syntax unified
41254337 .thumb
41264338 .thumb_func
4339
+ .fpu softvfp
41274340 .type INSERT_FREE_LIST, %function
41284341 INSERT_FREE_LIST:
41294342 .fnstart
....@@ -4132,21 +4345,23 @@
41324345 push {r3, lr}
41334346 .save {r3, lr}
41344347 bl insert_free_list
4135
- ldr r2, .L611
4136
- ldrh r3, [r2, #312]
4348
+ ldr r2, .L600
4349
+ ldrh r3, [r2, #316]
41374350 adds r3, r3, #1
4138
- strh r3, [r2, #312] @ movhi
4351
+ strh r3, [r2, #316] @ movhi
41394352 pop {r3, pc}
4140
-.L612:
4353
+.L601:
41414354 .align 2
4142
-.L611:
4355
+.L600:
41434356 .word .LANCHOR2
41444357 .fnend
41454358 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST
41464359 .align 1
41474360 .global List_remove_node
4361
+ .syntax unified
41484362 .thumb
41494363 .thumb_func
4364
+ .fpu softvfp
41504365 .type List_remove_node, %function
41514366 List_remove_node:
41524367 .fnstart
....@@ -4155,57 +4370,59 @@
41554370 push {r4, r5, r6, r7, lr}
41564371 .save {r4, r5, r6, r7, lr}
41574372 movs r4, #6
4158
- ldr r7, .L618
4159
- movw r6, #65535
4373
+ ldr r7, .L607
41604374 muls r1, r4, r1
4375
+ movw r6, #65535
41614376 ldr r3, [r0]
4162
- ldr r2, [r7, #288]
4377
+ ldr r2, [r7, #292]
41634378 adds r5, r2, r1
41644379 cmp r5, r3
41654380 ldrh r3, [r2, r1]
4166
- bne .L614
4381
+ bne .L603
41674382 cmp r3, r6
4168
- ittee eq
4383
+ iteet ne
4384
+ mlane r3, r4, r3, r2
41694385 moveq r3, #0
41704386 streq r3, [r0]
4171
- mlane r3, r4, r3, r2
41724387 strne r3, [r0]
41734388 it ne
41744389 strhne r6, [r3, #2] @ movhi
4175
- b .L616
4176
-.L614:
4177
- cmp r3, r6
4178
- ldrh r0, [r5, #2]
4179
- bne .L617
4180
- cmp r0, r3
4181
- beq .L616
4182
- muls r0, r4, r0
4183
- strh r3, [r2, r0] @ movhi
4184
- b .L616
4185
-.L617:
4186
- mla r3, r4, r3, r2
4187
- strh r0, [r3, #2] @ movhi
4188
- ldrh r6, [r5, #2]
4189
- ldrh r0, [r2, r1]
4190
- ldr r3, [r7, #288]
4191
- muls r4, r6, r4
4192
- strh r0, [r3, r4] @ movhi
4193
-.L616:
4390
+.L605:
41944391 movw r3, #65535
41954392 movs r0, #0
41964393 strh r3, [r2, r1] @ movhi
41974394 strh r3, [r5, #2] @ movhi
41984395 pop {r4, r5, r6, r7, pc}
4199
-.L619:
4396
+.L603:
4397
+ cmp r3, r6
4398
+ ldrh r0, [r5, #2]
4399
+ bne .L606
4400
+ cmp r0, r3
4401
+ beq .L605
4402
+ muls r4, r0, r4
4403
+ strh r3, [r2, r4] @ movhi
4404
+ b .L605
4405
+.L606:
4406
+ mla r3, r4, r3, r2
4407
+ strh r0, [r3, #2] @ movhi
4408
+ ldrh r3, [r5, #2]
4409
+ ldrh r6, [r2, r1]
4410
+ ldr r0, [r7, #292]
4411
+ muls r3, r4, r3
4412
+ strh r6, [r0, r3] @ movhi
4413
+ b .L605
4414
+.L608:
42004415 .align 2
4201
-.L618:
4416
+.L607:
42024417 .word .LANCHOR2
42034418 .fnend
42044419 .size List_remove_node, .-List_remove_node
42054420 .align 1
42064421 .global List_pop_index_node
4422
+ .syntax unified
42074423 .thumb
42084424 .thumb_func
4425
+ .fpu softvfp
42094426 .type List_pop_index_node, %function
42104427 List_pop_index_node:
42114428 .fnstart
....@@ -4214,88 +4431,92 @@
42144431 push {r4, r5, r6, lr}
42154432 .save {r4, r5, r6, lr}
42164433 ldr r3, [r0]
4217
- cbz r3, .L626
4218
- ldr r2, .L627
4219
- movs r6, #6
4434
+ cbz r3, .L615
4435
+ ldr r2, .L616
42204436 movw r5, #65535
4221
- ldr r4, [r2, #288]
4222
-.L622:
4223
- cbnz r1, .L623
4224
-.L625:
4225
- subs r4, r3, r4
4226
- ldr r3, .L627+4
4227
- asrs r4, r4, #1
4437
+ movs r6, #6
4438
+ ldr r2, [r2, #292]
4439
+.L611:
4440
+ cbnz r1, .L612
4441
+.L614:
4442
+ ldr r4, .L616+4
4443
+ subs r3, r3, r2
4444
+ asrs r3, r3, #1
42284445 muls r4, r3, r4
4229
- uxth r4, r4
4230
- mov r1, r4
4446
+ uxth r1, r4
42314447 bl List_remove_node
4232
- mov r0, r4
4448
+ uxth r0, r4
42334449 pop {r4, r5, r6, pc}
4234
-.L623:
4235
- ldrh r2, [r3]
4236
- cmp r2, r5
4237
- beq .L625
4450
+.L612:
4451
+ ldrh r4, [r3]
4452
+ cmp r4, r5
4453
+ beq .L614
42384454 subs r1, r1, #1
4239
- mla r3, r6, r2, r4
4455
+ mla r3, r6, r4, r2
42404456 uxth r1, r1
4241
- b .L622
4242
-.L626:
4457
+ b .L611
4458
+.L615:
42434459 movw r0, #65535
42444460 pop {r4, r5, r6, pc}
4245
-.L628:
4461
+.L617:
42464462 .align 2
4247
-.L627:
4463
+.L616:
42484464 .word .LANCHOR2
42494465 .word -1431655765
42504466 .fnend
42514467 .size List_pop_index_node, .-List_pop_index_node
42524468 .align 1
42534469 .global List_get_gc_head_node
4470
+ .syntax unified
42544471 .thumb
42554472 .thumb_func
4473
+ .fpu softvfp
42564474 .type List_get_gc_head_node, %function
42574475 List_get_gc_head_node:
42584476 .fnstart
42594477 @ args = 0, pretend = 0, frame = 0
42604478 @ frame_needed = 0, uses_anonymous_args = 0
4261
- ldr r2, .L636
4479
+ ldr r2, .L624
42624480 push {r4, lr}
42634481 .save {r4, lr}
4264
- ldr r3, [r2, #292]
4265
- cbz r3, .L634
4482
+ ldr r3, [r2, #296]
4483
+ cbz r3, .L623
4484
+ ldr r1, [r2, #292]
42664485 movs r4, #6
4267
- ldr r1, [r2, #288]
42684486 movw r2, #65535
4269
-.L631:
4270
- cbz r0, .L632
4487
+.L620:
4488
+ cbz r0, .L621
42714489 ldrh r3, [r3]
42724490 cmp r3, r2
4273
- beq .L634
4491
+ bne .L622
4492
+.L623:
4493
+ movw r0, #65535
4494
+ pop {r4, pc}
4495
+.L622:
42744496 subs r0, r0, #1
42754497 mla r3, r4, r3, r1
42764498 uxth r0, r0
4277
- b .L631
4278
-.L634:
4279
- movw r0, #65535
4280
- pop {r4, pc}
4281
-.L632:
4499
+ b .L620
4500
+.L621:
4501
+ ldr r0, .L624+4
42824502 subs r3, r3, r1
4283
- ldr r0, .L636+4
42844503 asrs r3, r3, #1
4285
- muls r0, r3, r0
4286
- uxth r0, r0
4504
+ muls r3, r0, r3
4505
+ uxth r0, r3
42874506 pop {r4, pc}
4288
-.L637:
4507
+.L625:
42894508 .align 2
4290
-.L636:
4509
+.L624:
42914510 .word .LANCHOR2
42924511 .word -1431655765
42934512 .fnend
42944513 .size List_get_gc_head_node, .-List_get_gc_head_node
42954514 .align 1
42964515 .global List_update_data_list
4516
+ .syntax unified
42974517 .thumb
42984518 .thumb_func
4519
+ .fpu softvfp
42994520 .type List_update_data_list, %function
43004521 List_update_data_list:
43014522 .fnstart
....@@ -4304,79 +4525,81 @@
43044525 push {r3, r4, r5, r6, r7, lr}
43054526 .save {r3, r4, r5, r6, r7, lr}
43064527 mov r5, r0
4307
- ldr r4, .L645
4308
- ldrh r3, [r4, #316]
4528
+ ldr r4, .L633
4529
+ ldrh r3, [r4, #320]
43094530 cmp r3, r0
4310
- beq .L639
4311
- ldrh r3, [r4, #364]
4531
+ beq .L627
4532
+ ldrh r3, [r4, #368]
43124533 cmp r3, r0
4313
- beq .L639
4314
- ldrh r3, [r4, #412]
4534
+ beq .L627
4535
+ ldrh r3, [r4, #416]
43154536 cmp r3, r0
4316
- beq .L639
4537
+ beq .L627
43174538 movs r3, #6
4318
- ldr r1, [r4, #288]
4319
- ldr r2, [r4, #292]
4539
+ ldr r1, [r4, #292]
43204540 muls r3, r0, r3
4541
+ ldr r2, [r4, #296]
43214542 adds r0, r1, r3
43224543 cmp r0, r2
4323
- beq .L639
4324
- ldr r6, [r4, #296]
4544
+ beq .L627
43254545 ldrh r2, [r0, #4]
4326
- ldrh r7, [r6, r5, lsl #1]
4327
- cbz r2, .L643
4328
- muls r2, r7, r2
4329
- b .L640
4330
-.L643:
4331
- mov r2, #-1
4332
-.L640:
4333
- ldrh r0, [r0, #2]
4334
- movw r7, #65535
4335
- cmp r0, r7
4336
- bne .L641
4546
+ ldr r7, [r4, #300]
4547
+ ldrh r6, [r7, r5, lsl #1]
4548
+ cbz r2, .L631
4549
+ muls r2, r6, r2
4550
+.L628:
4551
+ ldrh r6, [r0, #2]
4552
+ movw r0, #65535
4553
+ cmp r6, r0
4554
+ bne .L629
43374555 ldrh r3, [r1, r3]
4338
- cmp r3, r0
4339
- beq .L639
4340
-.L641:
4341
- movs r3, #6
4342
- muls r3, r0, r3
4343
- ldr r0, .L645+4
4344
- asrs r7, r3, #1
4345
- add r3, r3, r1
4346
- muls r0, r7, r0
4347
- ldrh r3, [r3, #4]
4348
- ldrh r0, [r6, r0, lsl #1]
4349
- cbz r3, .L644
4350
- muls r3, r0, r3
4351
- b .L642
4352
-.L644:
4353
- mov r3, #-1
4354
-.L642:
4556
+ cmp r3, r6
4557
+ beq .L627
4558
+.L629:
4559
+ movs r0, #6
4560
+ ldr r3, .L633+4
4561
+ muls r0, r6, r0
4562
+ asrs r6, r0, #1
4563
+ add r1, r1, r0
4564
+ muls r3, r6, r3
4565
+ ldrh r6, [r7, r3, lsl #1]
4566
+ ldrh r3, [r1, #4]
4567
+ cbz r3, .L632
4568
+ muls r3, r6, r3
4569
+.L630:
43554570 cmp r2, r3
4356
- bcs .L639
4357
- ldr r0, .L645+8
4571
+ bcs .L627
43584572 mov r1, r5
4573
+ ldr r0, .L633+8
43594574 bl List_remove_node
4360
- ldrh r3, [r4, #304]
4575
+ ldrh r3, [r4, #308]
43614576 mov r0, r5
43624577 subs r3, r3, #1
4363
- strh r3, [r4, #304] @ movhi
4578
+ strh r3, [r4, #308] @ movhi
43644579 bl INSERT_DATA_LIST
4365
-.L639:
4580
+.L627:
43664581 movs r0, #0
43674582 pop {r3, r4, r5, r6, r7, pc}
4368
-.L646:
4583
+.L631:
4584
+ mov r2, #-1
4585
+ b .L628
4586
+.L632:
4587
+ mov r3, #-1
4588
+ b .L630
4589
+.L634:
43694590 .align 2
4370
-.L645:
4591
+.L633:
43714592 .word .LANCHOR2
43724593 .word -1431655765
4373
- .word .LANCHOR2+292
4594
+ .word .LANCHOR2+296
43744595 .fnend
43754596 .size List_update_data_list, .-List_update_data_list
43764597 .align 1
43774598 .global ftl_map_blk_alloc_new_blk
4599
+ .syntax unified
43784600 .thumb
43794601 .thumb_func
4602
+ .fpu softvfp
43804603 .type ftl_map_blk_alloc_new_blk, %function
43814604 ftl_map_blk_alloc_new_blk:
43824605 .fnstart
....@@ -4384,57 +4607,59 @@
43844607 @ frame_needed = 0, uses_anonymous_args = 0
43854608 push {r3, r4, r5, r6, r7, lr}
43864609 .save {r3, r4, r5, r6, r7, lr}
4387
- movs r3, #0
4388
- ldrh r1, [r0, #10]
43894610 mov r4, r0
4611
+ ldrh r1, [r0, #10]
4612
+ movs r3, #0
43904613 ldr r2, [r0, #12]
4391
-.L648:
4614
+.L636:
43924615 uxth r5, r3
43934616 cmp r5, r1
4394
- bcs .L651
4617
+ bcs .L639
43954618 mov r7, r2
43964619 adds r3, r3, #1
43974620 ldrh r6, [r7]
43984621 adds r2, r2, #2
43994622 cmp r6, #0
4400
- bne .L648
4623
+ bne .L636
44014624 bl FtlFreeSysBlkQueueOut
4402
- movw r2, #65533
44034625 subs r3, r0, #1
4626
+ movw r2, #65533
4627
+ uxth r3, r3
44044628 mov r1, r0
44054629 strh r0, [r7] @ movhi
4406
- uxth r3, r3
44074630 cmp r3, r2
4408
- bls .L649
4409
- ldr r3, .L654
4410
- ldr r0, .L654+4
4411
- ldrh r2, [r3, #2518]
4631
+ bls .L637
4632
+ ldr r3, .L642
4633
+ ldr r0, .L642+4
4634
+ ldrh r2, [r3, #2522]
44124635 bl printk
4413
-.L650:
4414
- b .L650
4415
-.L649:
4636
+.L638:
4637
+ b .L638
4638
+.L637:
44164639 ldr r3, [r4, #28]
44174640 strh r6, [r4, #2] @ movhi
4641
+ strh r5, [r4] @ movhi
44184642 adds r3, r3, #1
44194643 str r3, [r4, #28]
44204644 ldrh r3, [r4, #8]
4421
- strh r5, [r4] @ movhi
44224645 adds r3, r3, #1
44234646 strh r3, [r4, #8] @ movhi
4424
-.L651:
4647
+.L639:
44254648 movs r0, #0
44264649 pop {r3, r4, r5, r6, r7, pc}
4427
-.L655:
4650
+.L643:
44284651 .align 2
4429
-.L654:
4652
+.L642:
44304653 .word .LANCHOR0
44314654 .word .LC5
44324655 .fnend
44334656 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
44344657 .align 1
44354658 .global select_l2p_ram_region
4659
+ .syntax unified
44364660 .thumb
44374661 .thumb_func
4662
+ .fpu softvfp
44384663 .type select_l2p_ram_region, %function
44394664 select_l2p_ram_region:
44404665 .fnstart
....@@ -4443,244 +4668,247 @@
44434668 push {r4, r5, r6, r7, lr}
44444669 .save {r4, r5, r6, r7, lr}
44454670 movs r1, #0
4446
- ldr r3, .L670
4671
+ ldr r3, .L654
44474672 movs r4, #12
4448
- ldr r7, .L670+4
44494673 movw r5, #65535
4450
- ldrh r2, [r3, #2426]
4451
- ldr r3, [r7, #460]
4452
-.L657:
4674
+ ldr r7, .L654+4
4675
+ ldrh r2, [r3, #2430]
4676
+ ldr r3, [r7, #464]
4677
+.L645:
44534678 uxth r0, r1
44544679 cmp r0, r2
4455
- bcs .L668
4680
+ bcc .L647
4681
+ mov r0, r2
4682
+ movs r1, #0
4683
+ mov r6, #-2147483648
4684
+ mov ip, #12
4685
+.L648:
4686
+ uxth r5, r1
4687
+ cmp r5, r2
4688
+ bcc .L650
4689
+ cmp r0, r2
4690
+ bcc .L646
4691
+ ldrh r7, [r7, #468]
4692
+ mov r0, r2
4693
+ movs r1, #0
4694
+ mov r4, #-1
4695
+.L651:
4696
+ uxth r5, r1
4697
+ cmp r5, r2
4698
+ bcs .L646
4699
+ ldr r6, [r3, #4]
4700
+ cmp r4, r6
4701
+ bls .L652
4702
+ ldrh ip, [r3]
4703
+ cmp ip, r7
4704
+ itt ne
4705
+ movne r4, r6
4706
+ movne r0, r5
4707
+.L652:
4708
+ adds r1, r1, #1
4709
+ adds r3, r3, #12
4710
+ b .L651
4711
+.L647:
44564712 adds r1, r1, #1
44574713 mla r6, r4, r1, r3
44584714 ldrh r6, [r6, #-12]
44594715 cmp r6, r5
4460
- bne .L657
4461
- b .L658
4462
-.L668:
4463
- movs r1, #0
4464
- mov r6, #-2147483648
4465
- mov lr, #12
4466
- mov r0, r2
4467
-.L660:
4468
- uxth r5, r1
4469
- cmp r5, r2
4470
- bcs .L669
4471
- mla r4, lr, r1, r3
4716
+ bne .L645
4717
+.L646:
4718
+ pop {r4, r5, r6, r7, pc}
4719
+.L650:
4720
+ mla r4, ip, r1, r3
44724721 ldr r4, [r4, #4]
44734722 cmp r4, #0
4474
- blt .L661
4475
- cmp r4, r6
4476
- itt cc
4477
- movcc r6, r4
4478
- movcc r0, r5
4479
-.L661:
4480
- adds r1, r1, #1
4481
- b .L660
4482
-.L669:
4483
- cmp r0, r2
4484
- bcc .L658
4485
- ldrh r7, [r7, #464]
4486
- movs r1, #0
4487
- mov r4, #-1
4488
- mov r0, r2
4489
-.L663:
4490
- uxth r5, r1
4491
- cmp r5, r2
4492
- bcs .L658
4493
- ldr r6, [r3, #4]
4723
+ blt .L649
44944724 cmp r6, r4
4495
- bcs .L664
4496
- ldrh lr, [r3]
4497
- cmp lr, r7
4498
- itt ne
4499
- movne r4, r6
4500
- movne r0, r5
4501
-.L664:
4725
+ itt hi
4726
+ movhi r6, r4
4727
+ movhi r0, r5
4728
+.L649:
45024729 adds r1, r1, #1
4503
- adds r3, r3, #12
4504
- b .L663
4505
-.L658:
4506
- pop {r4, r5, r6, r7, pc}
4507
-.L671:
4730
+ b .L648
4731
+.L655:
45084732 .align 2
4509
-.L670:
4733
+.L654:
45104734 .word .LANCHOR0
45114735 .word .LANCHOR2
45124736 .fnend
45134737 .size select_l2p_ram_region, .-select_l2p_ram_region
45144738 .align 1
45154739 .global FtlUpdateVaildLpn
4740
+ .syntax unified
45164741 .thumb
45174742 .thumb_func
4743
+ .fpu softvfp
45184744 .type FtlUpdateVaildLpn, %function
45194745 FtlUpdateVaildLpn:
45204746 .fnstart
45214747 @ args = 0, pretend = 0, frame = 0
45224748 @ frame_needed = 0, uses_anonymous_args = 0
4523
- ldr r1, .L679
4749
+ ldr r1, .L662
45244750 push {r4, r5, lr}
45254751 .save {r4, r5, lr}
4526
- ldrh r2, [r1, #466]
45274752 mov r3, r1
4753
+ ldrh r2, [r1, #470]
45284754 cmp r2, #4
4529
- bhi .L673
4530
- cbnz r0, .L673
4755
+ bhi .L657
4756
+ cbnz r0, .L657
45314757 adds r2, r2, #1
4532
- strh r2, [r1, #466] @ movhi
4758
+ strh r2, [r1, #470] @ movhi
45334759 pop {r4, r5, pc}
4534
-.L673:
4535
- ldr r1, .L679+4
4760
+.L657:
4761
+ ldr r1, .L662+4
45364762 movs r2, #0
4537
- strh r2, [r3, #466] @ movhi
4763
+ strh r2, [r3, #470] @ movhi
45384764 movw r5, #65535
4539
- str r2, [r3, #468]
4540
- ldrh r1, [r1, #2328]
4541
- ldr r2, [r3, #296]
4765
+ str r2, [r3, #472]
4766
+ ldrh r1, [r1, #2332]
4767
+ ldr r2, [r3, #300]
45424768 add r1, r2, r1, lsl #1
4543
-.L674:
4769
+.L658:
45444770 cmp r2, r1
4545
- beq .L678
4771
+ bne .L660
4772
+ pop {r4, r5, pc}
4773
+.L660:
45464774 ldrh r4, [r2], #2
45474775 cmp r4, r5
45484776 ittt ne
4549
- ldrne r0, [r3, #468]
4777
+ ldrne r0, [r3, #472]
45504778 addne r0, r0, r4
4551
- strne r0, [r3, #468]
4552
- b .L674
4553
-.L678:
4554
- pop {r4, r5, pc}
4555
-.L680:
4779
+ strne r0, [r3, #472]
4780
+ b .L658
4781
+.L663:
45564782 .align 2
4557
-.L679:
4783
+.L662:
45584784 .word .LANCHOR2
45594785 .word .LANCHOR0
45604786 .fnend
45614787 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
45624788 .align 1
45634789 .global ftl_set_blk_mode
4790
+ .syntax unified
45644791 .thumb
45654792 .thumb_func
4793
+ .fpu softvfp
45664794 .type ftl_set_blk_mode, %function
45674795 ftl_set_blk_mode:
45684796 .fnstart
45694797 @ args = 0, pretend = 0, frame = 0
45704798 @ frame_needed = 0, uses_anonymous_args = 0
45714799 @ link register save eliminated.
4572
- lsrs r3, r0, #5
4573
- ldr r2, .L684
4574
- and r0, r0, #31
4575
- uxth r3, r3
4576
- cbz r1, .L682
4577
- ldr r1, [r2, #472]
4800
+ mov r3, r0
4801
+ cbz r1, .L665
4802
+ b ftl_set_blk_mode.part.9
4803
+.L665:
4804
+ ldr r2, .L666
4805
+ lsrs r0, r0, #5
4806
+ and r3, r3, #31
4807
+ ldr r1, [r2, #32]
45784808 movs r2, #1
4579
- lsls r2, r2, r0
4580
- ldr r0, [r1, r3, lsl #2]
4581
- orrs r2, r2, r0
4582
- str r2, [r1, r3, lsl #2]
4809
+ lsl r3, r2, r3
4810
+ ldr r2, [r1, r0, lsl #2]
4811
+ bic r2, r2, r3
4812
+ str r2, [r1, r0, lsl #2]
45834813 bx lr
4584
-.L682:
4585
- ldr r1, [r2, #472]
4586
- movs r2, #1
4587
- lsls r2, r2, r0
4588
- ldr r0, [r1, r3, lsl #2]
4589
- bic r0, r0, r2
4590
- str r0, [r1, r3, lsl #2]
4591
- bx lr
4592
-.L685:
4814
+.L667:
45934815 .align 2
4594
-.L684:
4595
- .word .LANCHOR2
4816
+.L666:
4817
+ .word .LANCHOR0
45964818 .fnend
45974819 .size ftl_set_blk_mode, .-ftl_set_blk_mode
45984820 .align 1
45994821 .global ftl_get_blk_mode
4822
+ .syntax unified
46004823 .thumb
46014824 .thumb_func
4825
+ .fpu softvfp
46024826 .type ftl_get_blk_mode, %function
46034827 ftl_get_blk_mode:
46044828 .fnstart
46054829 @ args = 0, pretend = 0, frame = 0
46064830 @ frame_needed = 0, uses_anonymous_args = 0
46074831 @ link register save eliminated.
4608
- ldr r3, .L687
4609
- lsrs r1, r0, #5
4610
- ldr r2, [r3, #472]
4611
- and r3, r0, #31
4612
- ldr r0, [r2, r1, lsl #2]
4613
- lsrs r0, r0, r3
4832
+ ldr r3, .L669
4833
+ lsrs r2, r0, #5
4834
+ and r0, r0, #31
4835
+ ldr r3, [r3, #32]
4836
+ ldr r3, [r3, r2, lsl #2]
4837
+ lsr r0, r3, r0
46144838 and r0, r0, #1
46154839 bx lr
4616
-.L688:
4840
+.L670:
46174841 .align 2
4618
-.L687:
4619
- .word .LANCHOR2
4842
+.L669:
4843
+ .word .LANCHOR0
46204844 .fnend
46214845 .size ftl_get_blk_mode, .-ftl_get_blk_mode
46224846 .align 1
46234847 .global ftl_sb_update_avl_pages
4848
+ .syntax unified
46244849 .thumb
46254850 .thumb_func
4851
+ .fpu softvfp
46264852 .type ftl_sb_update_avl_pages, %function
46274853 ftl_sb_update_avl_pages:
46284854 .fnstart
46294855 @ args = 0, pretend = 0, frame = 0
46304856 @ frame_needed = 0, uses_anonymous_args = 0
46314857 movs r3, #0
4632
- strh r3, [r0, #4] @ movhi
4633
- ldr r3, .L698
46344858 push {r4, r5, r6, r7, lr}
46354859 .save {r4, r5, r6, r7, lr}
4636
- adds r4, r2, #7
4637
- ldrh r5, [r3, #2320]
4860
+ strh r3, [r0, #4] @ movhi
4861
+ add r4, r0, r2, lsl #1
46384862 movw r7, #65535
4639
- add r4, r0, r4, lsl #1
4640
-.L690:
4863
+ ldr r3, .L678
4864
+ adds r4, r4, #14
4865
+ ldrh r5, [r3, #2324]
4866
+.L672:
46414867 cmp r2, r5
4642
- bcs .L696
4868
+ bcc .L674
4869
+ ldrh r3, [r3, #2390]
4870
+ add r4, r0, #16
4871
+ movw r6, #65535
4872
+ subs r3, r3, #1
4873
+ subs r1, r3, r1
4874
+ movs r3, #0
4875
+ uxth r1, r1
4876
+.L675:
4877
+ uxth r2, r3
4878
+ cmp r5, r2
4879
+ bhi .L677
4880
+ pop {r4, r5, r6, r7, pc}
4881
+.L674:
46434882 ldrh r6, [r4, #2]!
46444883 adds r2, r2, #1
4645
- cmp r6, r7
46464884 uxth r2, r2
4885
+ cmp r6, r7
46474886 ittt ne
46484887 ldrhne r6, [r0, #4]
46494888 addne r6, r6, #1
46504889 strhne r6, [r0, #4] @ movhi
4651
- b .L690
4652
-.L696:
4653
- ldrh r6, [r3, #2388]
4654
- add r4, r0, #14
4655
- movs r2, #0
4656
- movw r7, #65535
4657
-.L693:
4658
- uxth r3, r2
4659
- cmp r3, r5
4660
- bcs .L697
4661
- ldrh r3, [r4, #2]!
4662
- adds r2, r2, #1
4663
- cmp r3, r7
4664
- itttt ne
4665
- ldrhne r3, [r0, #4]
4666
- addne r3, r3, r6
4667
- addne r3, r3, #-1
4668
- subne r3, r3, r1
4669
- it ne
4670
- strhne r3, [r0, #4] @ movhi
4671
- b .L693
4672
-.L697:
4673
- pop {r4, r5, r6, r7, pc}
4674
-.L699:
4890
+ b .L672
4891
+.L677:
4892
+ ldrh r2, [r4], #2
4893
+ adds r3, r3, #1
4894
+ cmp r2, r6
4895
+ ittt ne
4896
+ ldrhne r2, [r0, #4]
4897
+ addne r2, r2, r1
4898
+ strhne r2, [r0, #4] @ movhi
4899
+ b .L675
4900
+.L679:
46754901 .align 2
4676
-.L698:
4902
+.L678:
46774903 .word .LANCHOR0
46784904 .fnend
46794905 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
46804906 .align 1
46814907 .global make_superblock
4908
+ .syntax unified
46824909 .thumb
46834910 .thumb_func
4911
+ .fpu softvfp
46844912 .type make_superblock, %function
46854913 make_superblock:
46864914 .fnstart
....@@ -4688,71 +4916,72 @@
46884916 @ frame_needed = 0, uses_anonymous_args = 0
46894917 push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
46904918 .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
4691
- movs r3, #0
4692
- ldr r6, .L713
4693
- add r7, r0, #16
46944919 mov r4, r0
4695
- mov r5, r3
4696
- addw r10, r6, #2348
4920
+ ldr r6, .L692
4921
+ add r7, r0, #16
46974922 movw r9, #65535
4698
- ldrh r8, [r6, #2320]
4699
- strh r3, [r0, #4] @ movhi
4700
- strb r3, [r0, #7]
4701
-.L701:
4923
+ movs r5, #0
4924
+ strh r5, [r0, #4] @ movhi
4925
+ ldrh r8, [r6, #2324]
4926
+ addw r10, r6, #2350
4927
+ strb r5, [r0, #7]
4928
+.L681:
47024929 uxth r3, r5
4703
- cmp r3, r8
4704
- bcs .L712
4705
- ldrb r0, [r10, r5] @ zero_extendqisi2
4706
- ldrh r1, [r4]
4707
- bl V2P_block
4708
- strh r9, [r7] @ movhi
4709
- mov fp, r0
4710
- bl FtlBbmIsBadBlock
4711
- cbnz r0, .L702
4712
- strh fp, [r7] @ movhi
4930
+ cmp r8, r3
4931
+ bhi .L683
47134932 ldrb r3, [r4, #7] @ zero_extendqisi2
4714
- adds r3, r3, #1
4715
- strb r3, [r4, #7]
4716
-.L702:
4717
- adds r5, r5, #1
4718
- adds r7, r7, #2
4719
- b .L701
4720
-.L712:
4721
- ldrb r2, [r4, #7] @ zero_extendqisi2
4722
- ldrh r3, [r6, #2388]
4723
- smulbb r3, r2, r3
4933
+ ldrh r2, [r6, #2390]
4934
+ smulbb r3, r3, r2
47244935 strh r3, [r4, #4] @ movhi
47254936 movs r3, #0
47264937 strb r3, [r4, #9]
4727
- ldr r3, [r6, #2244]
4728
- cbz r3, .L704
4729
- ldr r3, .L713+4
4938
+ ldr r3, [r6, #2248]
4939
+ cbz r3, .L684
4940
+ ldr r3, .L692+4
47304941 ldrh r2, [r4]
4731
- ldr r3, [r3, #232]
4942
+ ldr r3, [r3, #236]
47324943 ldrh r3, [r3, r2, lsl #1]
47334944 cmp r3, #79
47344945 itt ls
47354946 movls r3, #1
47364947 strbls r3, [r4, #9]
4737
-.L704:
4738
- ldrb r3, [r6] @ zero_extendqisi2
4739
- cbz r3, .L705
4948
+.L684:
4949
+ ldrb r3, [r6, #36] @ zero_extendqisi2
4950
+ cbz r3, .L685
47404951 movs r3, #1
47414952 strb r3, [r4, #9]
4742
-.L705:
4953
+.L685:
47434954 movs r0, #0
47444955 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
4745
-.L714:
4956
+.L683:
4957
+ ldrh r1, [r4]
4958
+ ldrb r0, [r10, r5] @ zero_extendqisi2
4959
+ bl V2P_block
4960
+ strh r9, [r7] @ movhi
4961
+ mov fp, r0
4962
+ bl FtlBbmIsBadBlock
4963
+ cbnz r0, .L682
4964
+ strh fp, [r7] @ movhi
4965
+ ldrb r3, [r4, #7] @ zero_extendqisi2
4966
+ adds r3, r3, #1
4967
+ strb r3, [r4, #7]
4968
+.L682:
4969
+ adds r5, r5, #1
4970
+ adds r7, r7, #2
4971
+ b .L681
4972
+.L693:
47464973 .align 2
4747
-.L713:
4974
+.L692:
47484975 .word .LANCHOR0
47494976 .word .LANCHOR2
47504977 .fnend
47514978 .size make_superblock, .-make_superblock
47524979 .align 1
47534980 .global update_multiplier_value
4981
+ .syntax unified
47544982 .thumb
47554983 .thumb_func
4984
+ .fpu softvfp
47564985 .type update_multiplier_value, %function
47574986 update_multiplier_value:
47584987 .fnstart
....@@ -4761,470 +4990,514 @@
47614990 push {r3, r4, r5, r6, r7, r8, r9, lr}
47624991 .save {r3, r4, r5, r6, r7, r8, r9, lr}
47634992 movs r5, #0
4764
- ldr r3, .L724
4993
+ ldr r6, .L700
47654994 mov r7, r0
47664995 mov r4, r5
4767
- addw r6, r3, #2348
4768
- ldrh r8, [r3, #2320]
4769
- ldrh r9, [r3, #2388]
4770
-.L716:
4996
+ ldrh r8, [r6, #2324]
4997
+ addw r6, r6, #2350
4998
+ ldrh r9, [r6, #40]
4999
+.L695:
47715000 uxth r3, r5
4772
- cmp r3, r8
4773
- bcs .L723
5001
+ cmp r8, r3
5002
+ bhi .L697
5003
+ cbz r4, .L699
5004
+ mov r1, r4
5005
+ mov r0, #32768
5006
+ bl __aeabi_idiv
5007
+.L698:
5008
+ ldr r3, .L700+4
5009
+ movs r2, #6
5010
+ ldr r3, [r3, #292]
5011
+ mla r7, r2, r7, r3
5012
+ strh r0, [r7, #4] @ movhi
5013
+ movs r0, #0
5014
+ pop {r3, r4, r5, r6, r7, r8, r9, pc}
5015
+.L697:
47745016 mov r1, r7
47755017 ldrb r0, [r6, r5] @ zero_extendqisi2
47765018 bl V2P_block
47775019 bl FtlBbmIsBadBlock
4778
- cbnz r0, .L717
5020
+ cbnz r0, .L696
47795021 add r4, r4, r9
47805022 uxth r4, r4
4781
-.L717:
5023
+.L696:
47825024 adds r5, r5, #1
4783
- b .L716
4784
-.L723:
4785
- cbz r4, .L719
4786
- mov r1, r4
4787
- mov r0, #32768
4788
- bl __aeabi_idiv
4789
- uxth r4, r0
4790
-.L719:
4791
- ldr r3, .L724+4
4792
- movs r2, #6
4793
- movs r0, #0
4794
- ldr r3, [r3, #288]
4795
- mla r7, r2, r7, r3
4796
- strh r4, [r7, #4] @ movhi
4797
- pop {r3, r4, r5, r6, r7, r8, r9, pc}
4798
-.L725:
5025
+ b .L695
5026
+.L699:
5027
+ mov r0, r4
5028
+ b .L698
5029
+.L701:
47995030 .align 2
4800
-.L724:
5031
+.L700:
48015032 .word .LANCHOR0
48025033 .word .LANCHOR2
48035034 .fnend
48045035 .size update_multiplier_value, .-update_multiplier_value
48055036 .align 1
48065037 .global GetFreeBlockMinEraseCount
5038
+ .syntax unified
48075039 .thumb
48085040 .thumb_func
5041
+ .fpu softvfp
48095042 .type GetFreeBlockMinEraseCount, %function
48105043 GetFreeBlockMinEraseCount:
48115044 .fnstart
48125045 @ args = 0, pretend = 0, frame = 0
48135046 @ frame_needed = 0, uses_anonymous_args = 0
48145047 @ link register save eliminated.
4815
- ldr r2, .L729
4816
- ldr r0, [r2, #308]
4817
- cbz r0, .L727
4818
- ldr r3, [r2, #288]
5048
+ ldr r2, .L705
5049
+ ldr r0, [r2, #312]
5050
+ cbz r0, .L703
5051
+ ldr r3, [r2, #292]
48195052 subs r0, r0, r3
4820
- ldr r3, .L729+4
5053
+ ldr r3, .L705+4
48215054 asrs r0, r0, #1
48225055 muls r0, r3, r0
4823
- ldr r3, [r2, #232]
5056
+ ldr r3, [r2, #236]
48245057 uxth r0, r0
48255058 ldrh r0, [r3, r0, lsl #1]
4826
-.L727:
5059
+.L703:
48275060 bx lr
4828
-.L730:
5061
+.L706:
48295062 .align 2
4830
-.L729:
5063
+.L705:
48315064 .word .LANCHOR2
48325065 .word -1431655765
48335066 .fnend
48345067 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
48355068 .align 1
48365069 .global GetFreeBlockMaxEraseCount
5070
+ .syntax unified
48375071 .thumb
48385072 .thumb_func
5073
+ .fpu softvfp
48395074 .type GetFreeBlockMaxEraseCount, %function
48405075 GetFreeBlockMaxEraseCount:
48415076 .fnstart
48425077 @ args = 0, pretend = 0, frame = 0
48435078 @ frame_needed = 0, uses_anonymous_args = 0
4844
- ldr r1, .L739
5079
+ ldr r1, .L715
48455080 push {r4, r5, r6, r7, lr}
48465081 .save {r4, r5, r6, r7, lr}
4847
- ldr r3, [r1, #308]
4848
- cbz r3, .L737
4849
- ldrh r2, [r1, #312]
5082
+ ldr r3, [r1, #312]
5083
+ cbz r3, .L713
5084
+ ldrh r2, [r1, #316]
48505085 movs r6, #6
4851
- ldr r4, [r1, #288]
5086
+ ldr r4, [r1, #292]
48525087 movw r7, #65535
48535088 rsb r2, r2, r2, lsl #3
48545089 subs r3, r3, r4
4855
- asrs r2, r2, #3
48565090 asrs r3, r3, #1
5091
+ asrs r2, r2, #3
48575092 cmp r0, r2
48585093 it gt
48595094 uxthgt r0, r2
4860
- ldr r2, .L739+4
5095
+ ldr r2, .L715+4
48615096 muls r3, r2, r3
48625097 movs r2, #0
48635098 uxth r3, r3
4864
-.L734:
5099
+.L710:
48655100 uxth r5, r2
4866
- cmp r5, r0
4867
- bcs .L736
5101
+ cmp r0, r5
5102
+ bls .L712
48685103 mul r5, r6, r3
48695104 adds r2, r2, #1
48705105 ldrh r5, [r4, r5]
48715106 cmp r5, r7
4872
- bne .L738
4873
-.L736:
4874
- ldr r2, [r1, #232]
5107
+ bne .L714
5108
+.L712:
5109
+ ldr r2, [r1, #236]
48755110 ldrh r0, [r2, r3, lsl #1]
48765111 pop {r4, r5, r6, r7, pc}
4877
-.L738:
5112
+.L714:
48785113 mov r3, r5
4879
- b .L734
4880
-.L737:
5114
+ b .L710
5115
+.L713:
48815116 mov r0, r3
48825117 pop {r4, r5, r6, r7, pc}
4883
-.L740:
5118
+.L716:
48845119 .align 2
4885
-.L739:
5120
+.L715:
48865121 .word .LANCHOR2
48875122 .word -1431655765
48885123 .fnend
48895124 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
48905125 .align 1
48915126 .global FtlPrintInfo2buf
5127
+ .syntax unified
48925128 .thumb
48935129 .thumb_func
5130
+ .fpu softvfp
48945131 .type FtlPrintInfo2buf, %function
48955132 FtlPrintInfo2buf:
48965133 .fnstart
48975134 @ args = 0, pretend = 0, frame = 16
48985135 @ frame_needed = 0, uses_anonymous_args = 0
4899
- push {r4, r5, r6, r7, r8, r9, r10, lr}
4900
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
4901
- mov r6, r0
4902
- ldr r8, .L751+240
4903
- add r4, r6, #12
4904
- ldr r1, .L751
4905
- .pad #32
4906
- sub sp, sp, #32
5136
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5137
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5138
+ mov r7, r0
5139
+ ldr r4, .L729
5140
+ add r5, r7, #12
5141
+ .pad #36
5142
+ sub sp, sp, #36
5143
+ ldr r1, .L729+4
49075144 bl strcpy
4908
- mov r0, r4
4909
- ldr r1, .L751+4
4910
- ldr r2, [r8, #116]
5145
+ ldr r2, [r4, #124]
5146
+ mov r0, r5
5147
+ ldr r1, .L729+8
49115148 bl sprintf
4912
- ldr r1, .L751+8
4913
- ldr r2, [r8, #2404]
4914
- add r4, r4, r0
4915
- mov r0, r4
5149
+ add r5, r5, r0
5150
+ ldr r2, [r4, #2408]
5151
+ mov r0, r5
5152
+ ldr r1, .L729+12
49165153 bl sprintf
4917
- ldr r3, .L751+12
4918
- ldr r3, [r3, #504]
5154
+ ldr r3, .L729+16
5155
+ add r5, r5, r0
5156
+ ldr r3, [r3, #500]
49195157 cmp r3, #1
4920
- add r4, r4, r0
4921
- bne .L747
4922
- add r0, sp, #16
4923
- add r1, sp, #20
4924
- add r2, sp, #24
4925
- add r3, sp, #28
4926
- bl NandcGetTimeCfg
4927
- mov r0, r4
4928
- ldr r1, .L751+16
4929
- ldr r7, .L751+20
4930
- ldr r3, [sp, #24]
4931
- ldr r2, [sp, #16]
4932
- str r3, [sp]
4933
- ldr r3, [sp, #28]
4934
- str r3, [sp, #4]
4935
- ldr r3, [sp, #20]
4936
- bl sprintf
4937
- ldr r1, .L751+24
4938
- add r4, r4, r0
4939
- add r5, r4, #10
4940
- mov r0, r4
4941
- bl strcpy
4942
- mov r0, r5
4943
- ldr r1, .L751+28
4944
- ldr r2, [r8, #2448]
4945
- bl sprintf
4946
- ldr r1, .L751+32
4947
- ldr r2, [r7, #468]
4948
- add r5, r5, r0
4949
- mov r0, r5
4950
- bl sprintf
4951
- ldr r1, .L751+36
4952
- ldr r2, [r7, #476]
4953
- add r5, r5, r0
4954
- mov r0, r5
4955
- bl sprintf
4956
- ldr r1, .L751+40
4957
- ldr r2, [r7, #480]
4958
- add r5, r5, r0
4959
- mov r0, r5
4960
- bl sprintf
4961
- ldr r1, .L751+44
4962
- ldr r2, [r7, #484]
4963
- add r5, r5, r0
4964
- mov r0, r5
4965
- bl sprintf
4966
- ldr r1, .L751+48
4967
- ldr r2, [r7, #488]
4968
- add r5, r5, r0
4969
- mov r0, r5
4970
- bl sprintf
4971
- ldr r1, .L751+52
4972
- ldr r2, [r7, #492]
4973
- add r5, r5, r0
4974
- mov r0, r5
4975
- bl sprintf
4976
- ldr r1, .L751+56
4977
- ldr r2, [r7, #496]
4978
- add r5, r5, r0
4979
- mov r0, r5
4980
- bl sprintf
4981
- ldr r2, [r7, #500]
4982
- ldr r1, .L751+60
4983
- lsrs r2, r2, #11
4984
- add r5, r5, r0
4985
- mov r0, r5
4986
- bl sprintf
4987
- ldr r2, [r7, #504]
4988
- ldr r1, .L751+64
4989
- lsrs r2, r2, #11
4990
- add r5, r5, r0
4991
- mov r0, r5
4992
- bl sprintf
4993
- ldr r1, .L751+68
4994
- ldr r2, [r7, #508]
4995
- add r5, r5, r0
4996
- mov r0, r5
4997
- bl sprintf
4998
- ldr r1, .L751+72
4999
- ldr r2, [r7, #512]
5000
- add r5, r5, r0
5001
- mov r0, r5
5002
- bl sprintf
5003
- add r5, r5, r0
5004
- bl FtlBbtCalcTotleCnt
5005
- ldr r1, .L751+76
5006
- ldrh r2, [r8, #2458]
5007
- mov r3, r0
5008
- mov r0, r5
5009
- bl sprintf
5010
- ldr r1, .L751+80
5011
- ldrh r2, [r7, #312]
5012
- add r5, r5, r0
5013
- mov r0, r5
5014
- bl sprintf
5015
- ldr r1, .L751+84
5016
- ldr r2, [r7, #516]
5017
- add r5, r5, r0
5018
- mov r0, r5
5019
- bl sprintf
5020
- ldr r1, .L751+88
5021
- ldr r2, [r7, #520]
5022
- add r5, r5, r0
5023
- mov r0, r5
5024
- bl sprintf
5025
- ldr r1, .L751+92
5026
- ldr r2, [r7, #524]
5027
- add r5, r5, r0
5028
- mov r0, r5
5029
- bl sprintf
5030
- ldr r1, .L751+96
5031
- ldr r2, [r7, #236]
5032
- add r5, r5, r0
5033
- mov r0, r5
5034
- bl sprintf
5035
- ldr r1, .L751+100
5036
- ldr r2, [r7, #528]
5037
- add r5, r5, r0
5038
- mov r0, r5
5039
- bl sprintf
5040
- ldr r1, .L751+104
5041
- ldr r2, [r7, #532]
5042
- add r5, r5, r0
5043
- mov r0, r5
5044
- bl sprintf
5045
- ldr r1, .L751+108
5046
- ldrh r2, [r7, #270]
5047
- add r5, r5, r0
5048
- mov r0, r5
5049
- bl sprintf
5050
- ldr r1, .L751+112
5051
- ldrh r2, [r7, #268]
5052
- add r5, r5, r0
5053
- mov r0, r5
5054
- bl sprintf
5055
- ldr r1, .L751+116
5056
- ldr r2, [r8, #2428]
5057
- add r5, r5, r0
5058
- mov r0, r5
5059
- bl sprintf
5060
- ldr r1, .L751+120
5061
- ldr r2, [r8, #2420]
5062
- add r5, r5, r0
5063
- mov r0, r5
5064
- bl sprintf
5065
- ldr r1, .L751+124
5066
- ldr r2, [r8, #2316]
5067
- add r5, r5, r0
5068
- mov r0, r5
5069
- bl sprintf
5070
- ldr r1, .L751+128
5071
- ldrh r2, [r8, #2518]
5072
- add r5, r5, r0
5073
- mov r0, r5
5074
- bl sprintf
5075
- ldr r1, .L751+132
5076
- ldrh r2, [r8, #2328]
5077
- add r5, r5, r0
5078
- mov r0, r5
5079
- bl sprintf
5080
- ldr r1, .L751+136
5081
- ldrh r2, [r7, #536]
5082
- add r5, r5, r0
5083
- mov r0, r5
5084
- bl sprintf
5085
- ldr r1, .L751+140
5086
- ldr r2, [r8, #2332]
5087
- add r5, r5, r0
5088
- mov r0, r5
5089
- bl sprintf
5090
- ldr r1, .L751+144
5091
- ldrh r2, [r7, #540]
5092
- add r5, r5, r0
5093
- mov r0, r5
5094
- bl sprintf
5095
- ldr r1, .L751+148
5096
- ldrh r2, [r8, #2452]
5097
- add r5, r5, r0
5098
- mov r0, r5
5099
- bl sprintf
5100
- ldr r1, .L751+152
5101
- ldrh r2, [r7, #318]
5102
- add r5, r5, r0
5103
- mov r0, r5
5104
- bl sprintf
5105
- ldr r1, .L751+156
5106
- ldrb r2, [r7, #322] @ zero_extendqisi2
5107
- add r5, r5, r0
5108
- mov r0, r5
5109
- bl sprintf
5110
- ldr r1, .L751+160
5111
- ldrh r2, [r7, #316]
5112
- add r5, r5, r0
5113
- mov r0, r5
5114
- bl sprintf
5115
- ldr r1, .L751+164
5116
- ldrb r2, [r7, #324] @ zero_extendqisi2
5117
- add r5, r5, r0
5118
- mov r0, r5
5119
- bl sprintf
5120
- ldr r1, .L751+168
5121
- ldrh r2, [r7, #320]
5122
- add r5, r5, r0
5123
- mov r0, r5
5124
- bl sprintf
5125
- ldr r3, [r7, #296]
5126
- ldrh r2, [r7, #316]
5127
- ldr r1, .L751+172
5128
- ldrh r2, [r3, r2, lsl #1]
5129
- add r5, r5, r0
5130
- mov r0, r5
5131
- bl sprintf
5132
- ldr r1, .L751+176
5133
- ldrh r2, [r7, #366]
5134
- add r5, r5, r0
5135
- mov r0, r5
5136
- bl sprintf
5137
- ldr r1, .L751+180
5138
- ldrb r2, [r7, #370] @ zero_extendqisi2
5139
- add r5, r5, r0
5140
- mov r0, r5
5141
- bl sprintf
5142
- ldr r1, .L751+184
5143
- ldrh r2, [r7, #364]
5144
- add r5, r5, r0
5145
- mov r0, r5
5146
- bl sprintf
5147
- ldr r1, .L751+188
5148
- ldrb r2, [r7, #372] @ zero_extendqisi2
5149
- add r5, r5, r0
5150
- mov r0, r5
5151
- bl sprintf
5152
- ldr r1, .L751+192
5153
- ldrh r2, [r7, #368]
5154
- add r5, r5, r0
5155
- mov r0, r5
5156
- bl sprintf
5157
- ldr r3, [r7, #296]
5158
- ldrh r2, [r7, #364]
5159
- ldr r1, .L751+196
5160
- ldrh r2, [r3, r2, lsl #1]
5161
- add r5, r5, r0
5162
- mov r0, r5
5163
- bl sprintf
5164
- ldr r1, .L751+200
5165
- ldrh r2, [r7, #414]
5166
- add r5, r5, r0
5167
- mov r0, r5
5168
- bl sprintf
5169
- ldr r1, .L751+204
5170
- ldrb r2, [r7, #418] @ zero_extendqisi2
5171
- add r5, r5, r0
5172
- mov r0, r5
5173
- bl sprintf
5174
- ldr r1, .L751+208
5175
- ldrh r2, [r7, #412]
5176
- add r5, r5, r0
5177
- mov r0, r5
5178
- bl sprintf
5179
- ldr r1, .L751+212
5180
- ldrb r2, [r7, #420] @ zero_extendqisi2
5181
- add r5, r5, r0
5182
- mov r0, r5
5183
- bl sprintf
5184
- ldr r1, .L751+216
5185
- ldrh r2, [r7, #416]
5186
- add r5, r5, r0
5187
- mov r0, r5
5188
- bl sprintf
5189
- ldr r1, .L751+220
5190
- ldrh r2, [r7, #558]
5191
- add r5, r5, r0
5192
- mov r0, r5
5193
- bl sprintf
5194
- ldr r1, .L751+224
5195
- ldrb r2, [r7, #562] @ zero_extendqisi2
5196
- add r5, r5, r0
5197
- mov r0, r5
5198
- bl sprintf
5199
- ldr r1, .L751+228
5200
- ldrh r2, [r7, #556]
5201
- add r5, r5, r0
5202
- mov r0, r5
5203
- bl sprintf
5204
- ldr r1, .L751+232
5205
- ldrb r2, [r7, #564] @ zero_extendqisi2
5206
- add r5, r5, r0
5207
- mov r0, r5
5208
- bl sprintf
5209
- ldr r1, .L751+236
5210
- ldrh r2, [r7, #560]
5211
- add r5, r5, r0
5212
- mov r0, r5
5213
- bl sprintf
5214
- ldr r1, [r7, #692]
5215
- ldr r3, [r8, #2244]
5216
- ldr r2, [r7, #604]
5217
- b .L752
5218
-.L753:
5158
+ beq .L718
5159
+ subs r0, r5, r7
5160
+.L717:
5161
+ add sp, sp, #36
5162
+ @ sp needed
5163
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5164
+.L730:
52195165 .align 2
5220
-.L751:
5166
+.L729:
5167
+ .word .LANCHOR0
52215168 .word .LC6
52225169 .word .LC7
52235170 .word .LC8
52245171 .word .LANCHOR1
5172
+.L718:
5173
+ add r3, sp, #28
5174
+ add r2, sp, #24
5175
+ add r1, sp, #20
5176
+ add r0, sp, #16
5177
+ bl NandcGetTimeCfg
5178
+ ldr r3, [sp, #28]
5179
+ mov r0, r5
5180
+ ldr r2, [sp, #16]
5181
+ ldr r1, .L731
5182
+ str r3, [sp, #4]
5183
+ ldr r3, [sp, #24]
5184
+ str r3, [sp]
5185
+ ldr r3, [sp, #20]
5186
+ bl sprintf
5187
+ adds r6, r5, r0
5188
+ ldr r1, .L731+4
5189
+ ldr r5, .L731+8
5190
+ mov r0, r6
5191
+ adds r6, r6, #10
5192
+ bl strcpy
5193
+ ldr r2, [r4, #2452]
5194
+ mov r0, r6
5195
+ ldr r1, .L731+12
5196
+ bl sprintf
5197
+ add r6, r6, r0
5198
+ ldr r2, [r5, #472]
5199
+ ldr r1, .L731+16
5200
+ mov r0, r6
5201
+ bl sprintf
5202
+ add r6, r6, r0
5203
+ ldr r2, [r5, #476]
5204
+ ldr r1, .L731+20
5205
+ mov r0, r6
5206
+ bl sprintf
5207
+ add r6, r6, r0
5208
+ ldr r2, [r5, #480]
5209
+ ldr r1, .L731+24
5210
+ mov r0, r6
5211
+ bl sprintf
5212
+ add r6, r6, r0
5213
+ ldr r2, [r5, #484]
5214
+ ldr r1, .L731+28
5215
+ mov r0, r6
5216
+ bl sprintf
5217
+ add r6, r6, r0
5218
+ ldr r2, [r5, #488]
5219
+ ldr r1, .L731+32
5220
+ mov r0, r6
5221
+ bl sprintf
5222
+ add r6, r6, r0
5223
+ ldr r2, [r5, #492]
5224
+ ldr r1, .L731+36
5225
+ mov r0, r6
5226
+ bl sprintf
5227
+ add r6, r6, r0
5228
+ ldr r2, [r5, #496]
5229
+ ldr r1, .L731+40
5230
+ mov r0, r6
5231
+ bl sprintf
5232
+ ldr r2, [r5, #500]
5233
+ add r6, r6, r0
5234
+ ldr r1, .L731+44
5235
+ mov r0, r6
5236
+ lsrs r2, r2, #11
5237
+ bl sprintf
5238
+ ldr r2, [r5, #504]
5239
+ add r6, r6, r0
5240
+ ldr r1, .L731+48
5241
+ mov r0, r6
5242
+ lsrs r2, r2, #11
5243
+ bl sprintf
5244
+ add r6, r6, r0
5245
+ ldr r2, [r5, #508]
5246
+ ldr r1, .L731+52
5247
+ mov r0, r6
5248
+ bl sprintf
5249
+ add r6, r6, r0
5250
+ ldr r2, [r5, #512]
5251
+ ldr r1, .L731+56
5252
+ mov r0, r6
5253
+ bl sprintf
5254
+ add r6, r6, r0
5255
+ bl FtlBbtCalcTotleCnt
5256
+ ldrh r2, [r4, #2462]
5257
+ mov r3, r0
5258
+ ldr r1, .L731+60
5259
+ mov r0, r6
5260
+ bl sprintf
5261
+ add r6, r6, r0
5262
+ ldrh r2, [r5, #316]
5263
+ ldr r1, .L731+64
5264
+ mov r0, r6
5265
+ bl sprintf
5266
+ add r6, r6, r0
5267
+ ldr r2, [r5, #516]
5268
+ ldr r1, .L731+68
5269
+ mov r0, r6
5270
+ bl sprintf
5271
+ add r6, r6, r0
5272
+ ldr r2, [r5, #520]
5273
+ ldr r1, .L731+72
5274
+ mov r0, r6
5275
+ bl sprintf
5276
+ add r6, r6, r0
5277
+ ldr r2, [r5, #524]
5278
+ ldr r1, .L731+76
5279
+ mov r0, r6
5280
+ bl sprintf
5281
+ add r6, r6, r0
5282
+ ldr r2, [r5, #240]
5283
+ ldr r1, .L731+80
5284
+ mov r0, r6
5285
+ bl sprintf
5286
+ add r6, r6, r0
5287
+ ldr r2, [r5, #528]
5288
+ ldr r1, .L731+84
5289
+ mov r0, r6
5290
+ bl sprintf
5291
+ add r6, r6, r0
5292
+ ldr r2, [r5, #532]
5293
+ ldr r1, .L731+88
5294
+ mov r0, r6
5295
+ bl sprintf
5296
+ add r6, r6, r0
5297
+ ldrh r2, [r5, #274]
5298
+ ldr r1, .L731+92
5299
+ mov r0, r6
5300
+ bl sprintf
5301
+ add r6, r6, r0
5302
+ ldrh r2, [r5, #272]
5303
+ ldr r1, .L731+96
5304
+ mov r0, r6
5305
+ bl sprintf
5306
+ add r6, r6, r0
5307
+ ldr r2, [r4, #2432]
5308
+ ldr r1, .L731+100
5309
+ mov r0, r6
5310
+ bl sprintf
5311
+ add r6, r6, r0
5312
+ ldr r2, [r4, #2424]
5313
+ ldr r1, .L731+104
5314
+ mov r0, r6
5315
+ bl sprintf
5316
+ add r6, r6, r0
5317
+ ldr r2, [r4, #2320]
5318
+ ldr r1, .L731+108
5319
+ mov r0, r6
5320
+ bl sprintf
5321
+ add r6, r6, r0
5322
+ ldrh r2, [r4, #2522]
5323
+ ldr r1, .L731+112
5324
+ mov r0, r6
5325
+ bl sprintf
5326
+ add r6, r6, r0
5327
+ ldrh r2, [r4, #2332]
5328
+ ldr r1, .L731+116
5329
+ mov r0, r6
5330
+ bl sprintf
5331
+ add r6, r6, r0
5332
+ ldrh r2, [r5, #536]
5333
+ ldr r1, .L731+120
5334
+ mov r0, r6
5335
+ bl sprintf
5336
+ add r6, r6, r0
5337
+ ldr r2, [r4, #2336]
5338
+ ldr r1, .L731+124
5339
+ mov r0, r6
5340
+ bl sprintf
5341
+ add r6, r6, r0
5342
+ ldrh r2, [r5, #540]
5343
+ ldr r1, .L731+128
5344
+ mov r0, r6
5345
+ bl sprintf
5346
+ add r6, r6, r0
5347
+ ldrh r2, [r4, #2456]
5348
+ ldr r1, .L731+132
5349
+ mov r0, r6
5350
+ bl sprintf
5351
+ add r6, r6, r0
5352
+ ldrh r2, [r5, #322]
5353
+ ldr r1, .L731+136
5354
+ mov r0, r6
5355
+ bl sprintf
5356
+ add r6, r6, r0
5357
+ ldrb r2, [r5, #326] @ zero_extendqisi2
5358
+ ldr r1, .L731+140
5359
+ mov r0, r6
5360
+ bl sprintf
5361
+ add r6, r6, r0
5362
+ ldrh r2, [r5, #320]
5363
+ ldr r1, .L731+144
5364
+ mov r0, r6
5365
+ bl sprintf
5366
+ add r6, r6, r0
5367
+ ldrb r2, [r5, #328] @ zero_extendqisi2
5368
+ ldr r1, .L731+148
5369
+ mov r0, r6
5370
+ bl sprintf
5371
+ add r6, r6, r0
5372
+ ldrh r2, [r5, #324]
5373
+ ldr r1, .L731+152
5374
+ mov r0, r6
5375
+ bl sprintf
5376
+ ldr r3, [r5, #300]
5377
+ add r6, r6, r0
5378
+ ldrh r2, [r5, #320]
5379
+ mov r0, r6
5380
+ ldr r1, .L731+156
5381
+ ldrh r2, [r3, r2, lsl #1]
5382
+ bl sprintf
5383
+ add r6, r6, r0
5384
+ ldrh r2, [r5, #370]
5385
+ ldr r1, .L731+160
5386
+ mov r0, r6
5387
+ bl sprintf
5388
+ add r6, r6, r0
5389
+ ldrb r2, [r5, #374] @ zero_extendqisi2
5390
+ ldr r1, .L731+164
5391
+ mov r0, r6
5392
+ bl sprintf
5393
+ add r6, r6, r0
5394
+ ldrh r2, [r5, #368]
5395
+ ldr r1, .L731+168
5396
+ mov r0, r6
5397
+ bl sprintf
5398
+ add r6, r6, r0
5399
+ ldrb r2, [r5, #376] @ zero_extendqisi2
5400
+ ldr r1, .L731+172
5401
+ mov r0, r6
5402
+ bl sprintf
5403
+ add r6, r6, r0
5404
+ ldrh r2, [r5, #372]
5405
+ ldr r1, .L731+176
5406
+ mov r0, r6
5407
+ bl sprintf
5408
+ ldr r3, [r5, #300]
5409
+ add r6, r6, r0
5410
+ ldrh r2, [r5, #368]
5411
+ mov r0, r6
5412
+ ldr r1, .L731+180
5413
+ ldrh r2, [r3, r2, lsl #1]
5414
+ bl sprintf
5415
+ add r6, r6, r0
5416
+ ldrh r2, [r5, #418]
5417
+ ldr r1, .L731+184
5418
+ mov r0, r6
5419
+ bl sprintf
5420
+ add r6, r6, r0
5421
+ ldrb r2, [r5, #422] @ zero_extendqisi2
5422
+ ldr r1, .L731+188
5423
+ mov r0, r6
5424
+ bl sprintf
5425
+ add r6, r6, r0
5426
+ ldrh r2, [r5, #416]
5427
+ ldr r1, .L731+192
5428
+ mov r0, r6
5429
+ bl sprintf
5430
+ add r6, r6, r0
5431
+ ldrb r2, [r5, #424] @ zero_extendqisi2
5432
+ ldr r1, .L731+196
5433
+ mov r0, r6
5434
+ bl sprintf
5435
+ add r6, r6, r0
5436
+ ldrh r2, [r5, #420]
5437
+ ldr r1, .L731+200
5438
+ mov r0, r6
5439
+ bl sprintf
5440
+ add r6, r6, r0
5441
+ ldrh r2, [r5, #558]
5442
+ ldr r1, .L731+204
5443
+ mov r0, r6
5444
+ bl sprintf
5445
+ add r6, r6, r0
5446
+ ldrb r2, [r5, #562] @ zero_extendqisi2
5447
+ ldr r1, .L731+208
5448
+ mov r0, r6
5449
+ bl sprintf
5450
+ add r6, r6, r0
5451
+ ldrh r2, [r5, #556]
5452
+ ldr r1, .L731+212
5453
+ mov r0, r6
5454
+ bl sprintf
5455
+ add r6, r6, r0
5456
+ ldrb r2, [r5, #564] @ zero_extendqisi2
5457
+ ldr r1, .L731+216
5458
+ mov r0, r6
5459
+ bl sprintf
5460
+ add r6, r6, r0
5461
+ ldrh r2, [r5, #560]
5462
+ ldr r1, .L731+220
5463
+ mov r0, r6
5464
+ bl sprintf
5465
+ ldr r3, [r5, #680]
5466
+ add r6, r6, r0
5467
+ ldr r1, [r5, #1116]
5468
+ mov r0, r6
5469
+ ldr r2, [r4, #2248]
5470
+ str r3, [sp, #4]
5471
+ ldr r3, [r5, #688]
5472
+ orr r2, r2, r1, lsl #8
5473
+ ldr r1, .L731+224
5474
+ str r3, [sp]
5475
+ ldr r3, [r5, #684]
5476
+ bl sprintf
5477
+ adds r4, r6, r0
5478
+ ldr r2, [r5, #676]
5479
+ ldr r1, .L731+228
5480
+ mov r0, r4
5481
+ bl sprintf
5482
+ add r4, r4, r0
5483
+ ldr r2, [r5, #700]
5484
+ ldr r1, .L731+232
5485
+ mov r0, r4
5486
+ bl sprintf
5487
+ add r4, r4, r0
5488
+ ldrh r2, [r5, #1120]
5489
+ ldr r1, .L731+236
5490
+ mov r0, r4
5491
+ bl sprintf
5492
+ add r4, r4, r0
5493
+ ldrh r2, [r5, #1122]
5494
+ b .L732
5495
+.L733:
5496
+ .align 2
5497
+.L731:
52255498 .word .LC9
5226
- .word .LANCHOR2
52275499 .word .LC10
5500
+ .word .LANCHOR2
52285501 .word .LC11
52295502 .word .LC12
52305503 .word .LC13
....@@ -5278,161 +5551,137 @@
52785551 .word .LC61
52795552 .word .LC62
52805553 .word .LC63
5281
- .word .LANCHOR0
5282
-.L752:
5283
- orr r2, r3, r2, lsl #8
5284
- str r1, [sp]
5285
- add r5, r5, r0
5286
- ldr r1, [r7, #684]
5287
- mov r0, r5
5288
- str r1, [sp, #4]
5289
- ldr r3, [r7, #688]
5290
- ldr r1, .L754
5291
- bl sprintf
5292
- ldr r1, .L754+4
5293
- ldr r2, [r7, #680]
5294
- add r5, r5, r0
5295
- mov r0, r5
5296
- bl sprintf
5297
- ldr r1, .L754+8
5298
- ldr r2, [r7, #704]
5299
- adds r4, r5, r0
5300
- mov r0, r4
5301
- bl sprintf
5302
- ldr r1, .L754+12
5303
- ldrh r2, [r7, #1120]
5304
- add r4, r4, r0
5305
- mov r0, r4
5306
- bl sprintf
5307
- ldr r1, .L754+16
5308
- ldrh r2, [r7, #1122]
5309
- add r4, r4, r0
5310
- mov r0, r4
5311
- bl sprintf
5312
- ldr r1, .L754+20
5313
- ldr r2, [r7, #1124]
5314
- add r4, r4, r0
5315
- mov r0, r4
5316
- bl sprintf
5317
- ldr r1, .L754+24
5318
- ldrh r2, [r7, #1128]
5319
- add r4, r4, r0
5320
- mov r0, r4
5321
- bl sprintf
5322
- add r4, r4, r0
5323
- bl GetFreeBlockMinEraseCount
5324
- ldr r1, .L754+28
5325
- mov r2, r0
5326
- mov r0, r4
5327
- bl sprintf
5328
- add r4, r4, r0
5329
- ldrh r0, [r7, #312]
5330
- bl GetFreeBlockMaxEraseCount
5331
- ldr r1, .L754+32
5332
- mov r2, r0
5333
- mov r0, r4
5334
- bl sprintf
5335
- ldrh r3, [r7, #556]
5336
- movw r2, #65535
5337
- cmp r3, r2
5338
- add r4, r4, r0
5339
- beq .L744
5340
- ldr r2, [r7, #296]
5341
- mov r0, r4
5342
- ldr r1, .L754+36
5343
- ldrh r2, [r2, r3, lsl #1]
5344
- bl sprintf
5345
- add r4, r4, r0
5346
-.L744:
5347
- movs r0, #0
5348
- movs r5, #0
5349
- bl List_get_gc_head_node
5350
- mov r9, #6
5351
- movw r10, #65535
5352
- uxth r3, r0
5353
-.L746:
5354
- cmp r3, r10
5355
- beq .L745
5356
- ldr r2, [r7, #296]
5357
- mov r0, r4
5358
- mul r8, r9, r3
5359
- ldr r1, .L754+40
5360
- ldrh r2, [r2, r3, lsl #1]
5361
- str r2, [sp]
5362
- ldr r2, [r7, #288]
5363
- add r2, r2, r8
5364
- ldrh r2, [r2, #4]
5365
- str r2, [sp, #4]
5366
- ldr r2, [r7, #232]
5367
- ldrh r2, [r2, r3, lsl #1]
5368
- str r2, [sp, #8]
5369
- mov r2, r5
5370
- bl sprintf
5371
- adds r5, r5, #1
5372
- ldr r3, [r7, #288]
5373
- cmp r5, #16
5374
- ldrh r3, [r3, r8]
5375
- add r4, r4, r0
5376
- bne .L746
5377
-.L745:
5378
- ldr r2, [r7, #288]
5379
- movs r5, #0
5380
- ldr r3, [r7, #308]
5381
- mov r9, #6
5382
- movw r10, #65535
5383
- subs r3, r3, r2
5384
- ldr r2, .L754+44
5385
- asrs r3, r3, #1
5386
- muls r3, r2, r3
5387
- uxth r3, r3
5388
-.L748:
5389
- cmp r3, r10
5390
- beq .L747
5391
- mul r8, r9, r3
5392
- ldr r2, [r7, #288]
5393
- mov r0, r4
5394
- ldr r1, .L754+48
5395
- add r2, r2, r8
5396
- ldrh r2, [r2, #4]
5397
- str r2, [sp]
5398
- ldr r2, [r7, #232]
5399
- ldrh r2, [r2, r3, lsl #1]
5400
- str r2, [sp, #4]
5401
- mov r2, r5
5402
- bl sprintf
5403
- adds r5, r5, #1
5404
- ldr r3, [r7, #288]
5405
- cmp r5, #4
5406
- ldrh r3, [r3, r8]
5407
- add r4, r4, r0
5408
- bne .L748
5409
-.L747:
5410
- subs r0, r4, r6
5411
- add sp, sp, #32
5412
- @ sp needed
5413
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
5414
-.L755:
5415
- .align 2
5416
-.L754:
54175554 .word .LC64
54185555 .word .LC65
54195556 .word .LC66
54205557 .word .LC67
5558
+.L732:
5559
+ ldr r1, .L734
5560
+ mov r0, r4
5561
+ bl sprintf
5562
+ add r4, r4, r0
5563
+ ldr r2, [r5, #1124]
5564
+ ldr r1, .L734+4
5565
+ mov r0, r4
5566
+ bl sprintf
5567
+ add r4, r4, r0
5568
+ ldrh r2, [r5, #1128]
5569
+ ldr r1, .L734+8
5570
+ mov r0, r4
5571
+ bl sprintf
5572
+ add r4, r4, r0
5573
+ bl GetFreeBlockMinEraseCount
5574
+ ldr r1, .L734+12
5575
+ mov r2, r0
5576
+ mov r0, r4
5577
+ bl sprintf
5578
+ add r4, r4, r0
5579
+ ldrh r0, [r5, #316]
5580
+ bl GetFreeBlockMaxEraseCount
5581
+ ldr r1, .L734+16
5582
+ mov r2, r0
5583
+ mov r0, r4
5584
+ bl sprintf
5585
+ ldrh r3, [r5, #556]
5586
+ movw r2, #65535
5587
+ add r4, r4, r0
5588
+ cmp r3, r2
5589
+ beq .L720
5590
+ ldr r2, [r5, #300]
5591
+ mov r0, r4
5592
+ ldr r1, .L734+20
5593
+ ldrh r2, [r2, r3, lsl #1]
5594
+ bl sprintf
5595
+ add r4, r4, r0
5596
+.L720:
5597
+ movs r0, #0
5598
+ ldr r9, .L734+28
5599
+ bl List_get_gc_head_node
5600
+ uxth r3, r0
5601
+ movs r6, #0
5602
+ movw fp, #65535
5603
+ mov r10, #6
5604
+.L722:
5605
+ cmp r3, fp
5606
+ beq .L721
5607
+ ldr r2, [r5, #236]
5608
+ mul r8, r10, r3
5609
+ mov r0, r4
5610
+ mov r1, r9
5611
+ ldrh r2, [r2, r3, lsl #1]
5612
+ str r2, [sp, #8]
5613
+ ldr r2, [r5, #292]
5614
+ add r2, r2, r8
5615
+ ldrh r2, [r2, #4]
5616
+ str r2, [sp, #4]
5617
+ ldr r2, [r5, #300]
5618
+ ldrh r2, [r2, r3, lsl #1]
5619
+ str r2, [sp]
5620
+ mov r2, r6
5621
+ bl sprintf
5622
+ adds r6, r6, #1
5623
+ ldr r3, [r5, #292]
5624
+ cmp r6, #16
5625
+ add r4, r4, r0
5626
+ ldrh r3, [r3, r8]
5627
+ bne .L722
5628
+.L721:
5629
+ ldr r2, [r5, #292]
5630
+ movs r6, #0
5631
+ ldr r3, [r5, #312]
5632
+ movw r9, #65535
5633
+ ldr fp, .L734+32
5634
+ mov r10, #6
5635
+ subs r3, r3, r2
5636
+ asrs r2, r3, #1
5637
+ ldr r3, .L734+24
5638
+ muls r3, r2, r3
5639
+ uxth r3, r3
5640
+.L724:
5641
+ cmp r3, r9
5642
+ beq .L723
5643
+ ldr r2, [r5, #236]
5644
+ mul r8, r10, r3
5645
+ mov r0, r4
5646
+ mov r1, fp
5647
+ ldrh r2, [r2, r3, lsl #1]
5648
+ str r2, [sp, #4]
5649
+ ldr r2, [r5, #292]
5650
+ add r2, r2, r8
5651
+ ldrh r2, [r2, #4]
5652
+ str r2, [sp]
5653
+ mov r2, r6
5654
+ adds r6, r6, #1
5655
+ bl sprintf
5656
+ cmp r6, #4
5657
+ add r4, r4, r0
5658
+ beq .L723
5659
+ ldr r3, [r5, #292]
5660
+ ldrh r3, [r3, r8]
5661
+ b .L724
5662
+.L723:
5663
+ subs r0, r4, r7
5664
+ b .L717
5665
+.L735:
5666
+ .align 2
5667
+.L734:
54215668 .word .LC68
54225669 .word .LC69
54235670 .word .LC70
54245671 .word .LC71
54255672 .word .LC72
54265673 .word .LC73
5427
- .word .LC74
54285674 .word -1431655765
5675
+ .word .LC74
54295676 .word .LC75
54305677 .fnend
54315678 .size FtlPrintInfo2buf, .-FtlPrintInfo2buf
54325679 .align 1
54335680 .global ftl_proc_ftl_read
5681
+ .syntax unified
54345682 .thumb
54355683 .thumb_func
5684
+ .fpu softvfp
54365685 .type ftl_proc_ftl_read, %function
54375686 ftl_proc_ftl_read:
54385687 .fnstart
....@@ -5441,8 +5690,8 @@
54415690 push {r3, r4, r5, lr}
54425691 .save {r3, r4, r5, lr}
54435692 mov r5, r0
5444
- ldr r1, .L757
5445
- ldr r2, .L757+4
5693
+ ldr r2, .L737
5694
+ ldr r1, .L737+4
54465695 bl sprintf
54475696 adds r4, r5, r0
54485697 mov r0, r4
....@@ -5450,17 +5699,19 @@
54505699 add r0, r0, r4
54515700 subs r0, r0, r5
54525701 pop {r3, r4, r5, pc}
5453
-.L758:
5702
+.L738:
54545703 .align 2
5455
-.L757:
5704
+.L737:
54565705 .word .LC76
54575706 .word .LC77
54585707 .fnend
54595708 .size ftl_proc_ftl_read, .-ftl_proc_ftl_read
54605709 .align 1
54615710 .global GetSwlReplaceBlock
5711
+ .syntax unified
54625712 .thumb
54635713 .thumb_func
5714
+ .fpu softvfp
54645715 .type GetSwlReplaceBlock, %function
54655716 GetSwlReplaceBlock:
54665717 .fnstart
....@@ -5470,500 +5721,505 @@
54705721 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
54715722 .pad #28
54725723 sub sp, sp, #28
5473
- ldr r4, .L787
5724
+ ldr r4, .L765
54745725 ldr r2, [r4, #524]
54755726 ldr r3, [r4, #532]
54765727 cmp r2, r3
5477
- bcs .L760
5478
- ldr r2, .L787+4
5728
+ bcs .L740
5729
+ ldr r5, .L765+4
54795730 movs r3, #0
5480
- ldr r0, [r4, #232]
5731
+ ldr r0, [r4, #236]
54815732 str r3, [r4, #516]
5482
- ldrh r1, [r2, #2328]
5483
- mov r5, r2
5484
-.L761:
5733
+ ldrh r1, [r5, #2332]
5734
+.L741:
54855735 cmp r3, r1
5486
- bcs .L786
5487
- ldrh r6, [r0, r3, lsl #1]
5488
- adds r3, r3, #1
5489
- ldr r2, [r4, #516]
5490
- add r2, r2, r6
5491
- str r2, [r4, #516]
5492
- b .L761
5493
-.L786:
5736
+ bcc .L742
54945737 ldr r6, [r4, #516]
54955738 mov r0, r6
54965739 bl __aeabi_uidiv
5497
- ldrh r1, [r5, #2380]
54985740 str r0, [r4, #524]
54995741 ldr r0, [r4, #520]
5742
+ ldrh r1, [r5, #2382]
55005743 subs r0, r6, r0
55015744 bl __aeabi_uidiv
55025745 str r0, [r4, #516]
5503
- b .L763
5504
-.L760:
5746
+.L743:
5747
+ ldr r6, [r4, #532]
5748
+ ldr r7, [r4, #524]
5749
+ add r3, r6, #256
5750
+ cmp r3, r7
5751
+ bls .L748
5752
+ ldr r2, [r4, #528]
5753
+ add r3, r6, #768
5754
+ cmp r3, r2
5755
+ bls .L748
5756
+ ldr r3, .L765+4
5757
+ ldr r3, [r3, #2248]
5758
+ cbnz r3, .L749
5759
+.L751:
5760
+ movw r5, #65535
5761
+.L750:
5762
+ mov r0, r5
5763
+ add sp, sp, #28
5764
+ @ sp needed
5765
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5766
+.L742:
5767
+ ldrh r2, [r0, r3, lsl #1]
5768
+ adds r3, r3, #1
5769
+ ldr r6, [r4, #516]
5770
+ add r2, r2, r6
5771
+ str r2, [r4, #516]
5772
+ b .L741
5773
+.L740:
55055774 ldr r3, [r4, #528]
55065775 cmp r2, r3
5507
- bls .L763
5508
- ldr r0, .L787+4
5776
+ bls .L743
5777
+ ldr r0, .L765+4
55095778 adds r3, r3, #1
55105779 str r3, [r4, #528]
55115780 movs r3, #0
5512
-.L765:
5513
- ldrh r2, [r0, #2328]
5781
+.L745:
5782
+ ldrh r2, [r0, #2332]
55145783 cmp r3, r2
5515
- bcs .L763
5516
- ldr r1, [r4, #232]
5784
+ bcs .L743
5785
+ ldr r1, [r4, #236]
55175786 ldrh r2, [r1, r3, lsl #1]
55185787 adds r2, r2, #1
55195788 strh r2, [r1, r3, lsl #1] @ movhi
55205789 adds r3, r3, #1
5521
- b .L765
5522
-.L763:
5523
- ldr r6, [r4, #532]
5524
- ldr r8, [r4, #524]
5525
- add r3, r6, #256
5526
- cmp r3, r8
5527
- bls .L768
5528
- ldr r2, .L787
5529
- add r3, r6, #768
5530
- ldr r2, [r2, #528]
5531
- cmp r3, r2
5532
- bls .L768
5533
- ldr r3, .L787+4
5534
- ldr r3, [r3, #2244]
5535
- cbnz r3, .L769
5536
-.L771:
5537
- movw r0, #65535
5538
- b .L770
5539
-.L769:
5790
+ b .L745
5791
+.L749:
55405792 cmp r6, #40
5541
- bhi .L771
5542
-.L768:
5543
- ldrh r0, [r4, #312]
5793
+ bhi .L751
5794
+.L748:
5795
+ ldrh r0, [r4, #316]
55445796 add r0, r0, r0, lsl #1
55455797 ubfx r0, r0, #2, #16
55465798 bl GetFreeBlockMaxEraseCount
55475799 add r3, r6, #64
5548
- cmp r0, r3
55495800 mov r9, r0
5550
- bcs .L772
5801
+ cmp r0, r3
5802
+ bcs .L752
55515803 cmp r6, #40
5552
- bhi .L771
5553
-.L772:
5554
- ldr r3, [r4, #292]
5555
- ldr r2, .L787
5804
+ bhi .L751
5805
+.L752:
5806
+ ldr r3, [r4, #296]
55565807 cmp r3, #0
5557
- beq .L771
5558
- ldr r1, .L787+4
5559
- movw r7, #65535
5560
- ldr r0, [r2, #288]
5561
- mov ip, #6
5562
- ldr r10, [r2, #232]
5563
- mov r5, r7
5564
- ldrh r1, [r1, #2328]
5565
- mov lr, r7
5566
- str r1, [sp, #20]
5567
- movs r1, #0
5568
-.L773:
5569
- ldrh r2, [r3]
5570
- cmp r2, lr
5571
- str r2, [sp, #16]
5572
- beq .L775
5573
- adds r1, r1, #1
5574
- ldr r2, [sp, #20]
5575
- uxth r1, r1
5576
- cmp r1, r2
5577
- bhi .L771
5578
- ldrh fp, [r3, #4]
5579
- cmp fp, #0
5580
- beq .L774
5581
- subs r3, r3, r0
5582
- ldr r2, .L787+8
5583
- asrs r3, r3, #1
5584
- muls r3, r2, r3
5585
- uxth r3, r3
5586
- ldrh fp, [r10, r3, lsl #1]
5587
- cmp fp, r6
5588
- bls .L779
5589
- cmp fp, r7
5590
- itt cc
5591
- movcc r7, fp
5592
- movcc r5, r3
5593
-.L774:
5594
- ldr r3, [sp, #16]
5595
- mla r3, ip, r3, r0
5596
- b .L773
5597
-.L779:
5598
- mov r5, r3
5599
-.L775:
5808
+ beq .L751
5809
+ ldr r2, .L765+4
5810
+ movw r1, #65535
5811
+ ldr lr, [r4, #292]
5812
+ movs r0, #0
5813
+ ldr r8, [r4, #236]
5814
+ mov r10, r1
5815
+ ldrh r2, [r2, #2332]
5816
+ mov fp, #6
5817
+ str r2, [sp, #20]
5818
+ mov r2, r1
5819
+.L753:
5820
+ ldrh ip, [r3]
5821
+ cmp ip, r10
5822
+ bne .L756
5823
+ mov r5, r2
5824
+.L755:
56005825 movw r3, #65535
56015826 cmp r5, r3
5602
- beq .L771
5603
- ldrh fp, [r10, r5, lsl #1]
5604
- lsls r3, r5, #1
5605
- cmp fp, r6
5606
- bls .L777
5607
- str r3, [sp, #16]
5827
+ beq .L751
5828
+ ldrh r10, [r8, r5, lsl #1]
5829
+ lsl fp, r5, #1
5830
+ cmp r6, r10
5831
+ bcs .L757
56085832 bl GetFreeBlockMinEraseCount
5609
- ldr r3, [sp, #16]
5610
- cmp r0, r6
5611
- it hi
5612
- strhi r7, [r4, #532]
5613
-.L777:
5614
- cmp fp, r8
5615
- bcs .L771
5616
- add r2, fp, #128
5617
- cmp r9, r2
5618
- ble .L771
5619
- add r2, fp, #256
5620
- cmp r2, r8
5621
- bcc .L778
5622
- ldr r2, [r4, #528]
5623
- add fp, fp, #768
5624
- cmp fp, r2
5625
- bcs .L771
5626
-.L778:
5627
- ldr r2, [r4, #296]
5628
- mov r1, r5
5629
- ldr r0, .L787+12
5630
- ldrh r2, [r2, r3]
5631
- str r2, [sp]
5632
- mov r2, r8
5633
- ldrh r3, [r10, r3]
5833
+ cmp r6, r0
5834
+ it cc
5835
+ strcc r1, [r4, #532]
5836
+.L757:
5837
+ cmp r7, r10
5838
+ bls .L751
5839
+ add r3, r10, #128
5840
+ cmp r9, r3
5841
+ ble .L751
5842
+ add r3, r10, #256
5843
+ cmp r7, r3
5844
+ bhi .L758
5845
+ ldr r3, [r4, #528]
5846
+ add r10, r10, #768
5847
+ cmp r10, r3
5848
+ bcs .L751
5849
+.L758:
56345850 str r9, [sp, #8]
5851
+ mov r2, r7
5852
+ ldrh r3, [r8, fp]
5853
+ mov r1, r5
5854
+ ldr r0, .L765+8
56355855 str r3, [sp, #4]
5856
+ ldr r3, [r4, #300]
5857
+ ldrh r3, [r3, fp]
5858
+ str r3, [sp]
56365859 ldr r3, [r4, #528]
56375860 bl printk
5638
- mov r0, r5
56395861 movs r3, #1
56405862 str r3, [r4, #1132]
5641
-.L770:
5642
- add sp, sp, #28
5643
- @ sp needed
5644
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5645
-.L788:
5863
+ b .L750
5864
+.L756:
5865
+ adds r0, r0, #1
5866
+ ldr r5, [sp, #20]
5867
+ uxth r0, r0
5868
+ cmp r0, r5
5869
+ bhi .L751
5870
+ ldrh r5, [r3, #4]
5871
+ cbz r5, .L754
5872
+ ldr r5, .L765+12
5873
+ sub r3, r3, lr
5874
+ asrs r3, r3, #1
5875
+ muls r3, r5, r3
5876
+ uxth r5, r3
5877
+ ldrh r3, [r8, r5, lsl #1]
5878
+ cmp r6, r3
5879
+ bcs .L755
5880
+ cmp r1, r3
5881
+ itt hi
5882
+ movhi r1, r3
5883
+ movhi r2, r5
5884
+.L754:
5885
+ mla r3, fp, ip, lr
5886
+ b .L753
5887
+.L766:
56465888 .align 2
5647
-.L787:
5889
+.L765:
56485890 .word .LANCHOR2
56495891 .word .LANCHOR0
5650
- .word -1431655765
56515892 .word .LC78
5893
+ .word -1431655765
56525894 .fnend
56535895 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock
56545896 .align 1
56555897 .global free_data_superblock
5898
+ .syntax unified
56565899 .thumb
56575900 .thumb_func
5901
+ .fpu softvfp
56585902 .type free_data_superblock, %function
56595903 free_data_superblock:
56605904 .fnstart
56615905 @ args = 0, pretend = 0, frame = 0
56625906 @ frame_needed = 0, uses_anonymous_args = 0
56635907 movw r2, #65535
5664
- cmp r0, r2
56655908 push {r3, lr}
56665909 .save {r3, lr}
5667
- beq .L790
5668
- ldr r2, .L791
5910
+ cmp r0, r2
5911
+ beq .L768
5912
+ ldr r2, .L769
56695913 movs r1, #0
5670
- ldr r2, [r2, #296]
5914
+ ldr r2, [r2, #300]
56715915 strh r1, [r2, r0, lsl #1] @ movhi
56725916 bl INSERT_FREE_LIST
5673
-.L790:
5917
+.L768:
56745918 movs r0, #0
56755919 pop {r3, pc}
5676
-.L792:
5920
+.L770:
56775921 .align 2
5678
-.L791:
5922
+.L769:
56795923 .word .LANCHOR2
56805924 .fnend
56815925 .size free_data_superblock, .-free_data_superblock
56825926 .align 1
56835927 .global FtlGcBufInit
5928
+ .syntax unified
56845929 .thumb
56855930 .thumb_func
5931
+ .fpu softvfp
56865932 .type FtlGcBufInit, %function
56875933 FtlGcBufInit:
56885934 .fnstart
56895935 @ args = 0, pretend = 0, frame = 0
56905936 @ frame_needed = 0, uses_anonymous_args = 0
5691
- ldr r2, .L804
5692
- mov ip, #36
5693
- ldr r0, .L804+4
5937
+ ldr r2, .L780
5938
+ mov ip, #1
5939
+ ldr r0, .L780+4
56945940 movs r3, #0
56955941 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
56965942 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
56975943 movs r7, #12
5698
- mov lr, #1
5699
- mov r6, r0
5700
- mov r4, r2
5944
+ mov r5, r2
5945
+ mov lr, #36
5946
+ mov r1, r0
57015947 str r3, [r2, #1136]
5702
-.L794:
5703
- ldrh r1, [r0, #2320]
5704
- adds r5, r3, #1
5705
- uxth r3, r3
5706
- ldr r8, .L804+4
5707
- cmp r3, r1
5708
- bcs .L802
5709
- mul r8, r7, r3
5710
- ldr r9, [r2, #1140]
5711
- add r1, r9, r8
5712
- str lr, [r1, #8]
5713
- ldrh r1, [r0, #2398]
5714
- muls r1, r3, r1
5715
- it mi
5716
- addmi r1, r1, #3
5717
- bic r10, r1, #3
5718
- ldr r1, [r4, #1144]
5719
- add r1, r1, r10
5720
- str r1, [r9, r8]
5721
- ldr r10, [r2, #1140]
5722
- ldrh r1, [r6, #2400]
5723
- muls r1, r3, r1
5724
- it mi
5725
- addmi r1, r1, #3
5726
- add r9, r10, r8
5727
- bic fp, r1, #3
5728
- ldr r1, [r4, #1148]
5729
- add r1, r1, fp
5730
- str r1, [r9, #4]
5731
- ldr r1, [r2, #1152]
5732
- mla r3, ip, r3, r1
5733
- ldr r1, [r10, r8]
5734
- str r1, [r3, #8]
5735
- ldr r1, [r9, #4]
5736
- str r1, [r3, #12]
5737
- mov r3, r5
5738
- b .L794
5739
-.L802:
5740
- ldr r0, .L804
5948
+.L772:
5949
+ ldrh r4, [r0, #2324]
5950
+ uxth r8, r3
5951
+ adds r6, r3, #1
5952
+ cmp r8, r4
5953
+ bcc .L775
5954
+ ldr r7, .L780
57415955 mov lr, #12
5742
- movs r5, #0
5743
-.L798:
5956
+ movs r6, #0
5957
+.L776:
57445958 ldr r3, [r2, #1156]
5745
- cmp r1, r3
5746
- bcs .L803
5747
- mul r7, lr, r1
5748
- ldr r6, [r0, #1140]
5749
- ldr r4, [r0, #1144]
5750
- adds r3, r6, r7
5751
- str r5, [r3, #8]
5752
- ldrh r3, [r8, #2398]
5753
- muls r3, r1, r3
5754
- it mi
5755
- addmi r3, r3, #3
5756
- bic r3, r3, #3
5757
- add r3, r3, r4
5758
- str r3, [r6, r7]
5759
- ldr r3, [r2, #1140]
5760
- ldr r6, [r0, #1148]
5761
- add r7, r7, r3
5762
- ldrh r3, [r8, #2400]
5763
- muls r3, r1, r3
5764
- add r1, r1, #1
5765
- it mi
5766
- addmi r3, r3, #3
5767
- bic r3, r3, #3
5768
- uxth r1, r1
5769
- add r3, r3, r6
5770
- str r3, [r7, #4]
5771
- b .L798
5772
-.L803:
5959
+ cmp r4, r3
5960
+ bcc .L779
57735961 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5774
-.L805:
5962
+.L775:
5963
+ uxth r3, r3
5964
+ ldr r9, [r2, #1140]
5965
+ mul r8, r7, r3
5966
+ add r4, r9, r8
5967
+ str ip, [r4, #8]
5968
+ ldrh r4, [r0, #2400]
5969
+ muls r4, r3, r4
5970
+ it mi
5971
+ addmi r4, r4, #3
5972
+ bic r10, r4, #3
5973
+ ldr r4, [r5, #1144]
5974
+ add r4, r4, r10
5975
+ str r4, [r9, r8]
5976
+ ldrh r4, [r1, #2402]
5977
+ muls r4, r3, r4
5978
+ it mi
5979
+ addmi r4, r4, #3
5980
+ ldr r10, [r2, #1140]
5981
+ bic fp, r4, #3
5982
+ ldr r4, [r5, #1148]
5983
+ add r9, r10, r8
5984
+ add r4, r4, fp
5985
+ str r4, [r9, #4]
5986
+ ldr r4, [r2, #1152]
5987
+ mla r3, lr, r3, r4
5988
+ ldr r4, [r10, r8]
5989
+ str r4, [r3, #8]
5990
+ ldr r4, [r9, #4]
5991
+ str r4, [r3, #12]
5992
+ mov r3, r6
5993
+ b .L772
5994
+.L779:
5995
+ mul ip, lr, r4
5996
+ ldr r0, [r2, #1140]
5997
+ ldr r5, [r2, #1144]
5998
+ add r3, r0, ip
5999
+ str r6, [r3, #8]
6000
+ ldrh r3, [r1, #2400]
6001
+ muls r3, r4, r3
6002
+ it mi
6003
+ addmi r3, r3, #3
6004
+ bic r3, r3, #3
6005
+ add r3, r3, r5
6006
+ str r3, [r0, ip]
6007
+ ldr r3, [r2, #1140]
6008
+ ldr r0, [r7, #1148]
6009
+ add ip, ip, r3
6010
+ ldrh r3, [r1, #2402]
6011
+ muls r3, r4, r3
6012
+ it mi
6013
+ addmi r3, r3, #3
6014
+ bic r3, r3, #3
6015
+ adds r4, r4, #1
6016
+ add r3, r3, r0
6017
+ uxth r4, r4
6018
+ str r3, [ip, #4]
6019
+ b .L776
6020
+.L781:
57756021 .align 2
5776
-.L804:
6022
+.L780:
57776023 .word .LANCHOR2
57786024 .word .LANCHOR0
57796025 .fnend
57806026 .size FtlGcBufInit, .-FtlGcBufInit
57816027 .align 1
57826028 .global FtlGcBufFree
6029
+ .syntax unified
57836030 .thumb
57846031 .thumb_func
6032
+ .fpu softvfp
57856033 .type FtlGcBufFree, %function
57866034 FtlGcBufFree:
57876035 .fnstart
57886036 @ args = 0, pretend = 0, frame = 0
57896037 @ frame_needed = 0, uses_anonymous_args = 0
5790
- ldr r3, .L813
6038
+ ldr r3, .L789
57916039 push {r4, r5, r6, r7, r8, r9, r10, lr}
57926040 .save {r4, r5, r6, r7, r8, r9, r10, lr}
57936041 movs r5, #0
5794
- ldr lr, [r3, #1156]
57956042 mov r10, #36
6043
+ mov lr, #12
6044
+ mov r8, r5
6045
+ ldr ip, [r3, #1156]
57966046 ldr r6, [r3, #1140]
5797
- mov r8, #12
5798
- mov ip, r5
5799
-.L807:
5800
- uxth r4, r5
5801
- cmp r4, r1
5802
- bcs .L806
5803
- mla r4, r10, r4, r0
6047
+.L783:
6048
+ uxth r3, r5
6049
+ cmp r1, r3
6050
+ bls .L782
6051
+ mla r4, r10, r3, r0
58046052 movs r2, #0
5805
-.L808:
6053
+.L784:
58066054 uxth r3, r2
5807
- cmp r3, lr
5808
- bcs .L809
5809
- mul r3, r8, r3
6055
+ cmp ip, r3
6056
+ bls .L785
6057
+ mul r3, lr, r3
58106058 ldr r7, [r4, #8]
58116059 adds r2, r2, #1
58126060 add r9, r6, r3
58136061 ldr r3, [r6, r3]
58146062 cmp r3, r7
5815
- bne .L808
5816
- str ip, [r9, #8]
5817
-.L809:
6063
+ bne .L784
6064
+ str r8, [r9, #8]
6065
+.L785:
58186066 adds r5, r5, #1
5819
- b .L807
5820
-.L806:
6067
+ b .L783
6068
+.L782:
58216069 pop {r4, r5, r6, r7, r8, r9, r10, pc}
5822
-.L814:
6070
+.L790:
58236071 .align 2
5824
-.L813:
6072
+.L789:
58256073 .word .LANCHOR2
58266074 .fnend
58276075 .size FtlGcBufFree, .-FtlGcBufFree
58286076 .align 1
58296077 .global FtlGcBufAlloc
6078
+ .syntax unified
58306079 .thumb
58316080 .thumb_func
6081
+ .fpu softvfp
58326082 .type FtlGcBufAlloc, %function
58336083 FtlGcBufAlloc:
58346084 .fnstart
58356085 @ args = 0, pretend = 0, frame = 0
58366086 @ frame_needed = 0, uses_anonymous_args = 0
5837
- ldr r3, .L823
5838
- mov ip, #1
6087
+ ldr r3, .L798
6088
+ mov ip, #12
58396089 push {r4, r5, r6, r7, r8, r9, lr}
58406090 .save {r4, r5, r6, r7, r8, r9, lr}
58416091 movs r4, #0
5842
- ldr r5, [r3, #1156]
5843
- mov lr, #12
5844
- ldr r6, [r3, #1140]
6092
+ mov lr, #1
58456093 mov r8, #36
5846
-.L816:
6094
+ ldr r5, [r3, #1156]
6095
+ ldr r6, [r3, #1140]
6096
+.L792:
58476097 uxth r2, r4
5848
- cmp r2, r1
5849
- bcs .L822
6098
+ cmp r1, r2
6099
+ bhi .L796
6100
+ pop {r4, r5, r6, r7, r8, r9, pc}
6101
+.L796:
58506102 mov r9, #0
5851
-.L817:
6103
+.L793:
58526104 uxth r3, r9
5853
- cmp r3, r5
5854
- bcs .L818
5855
- mla r3, lr, r3, r6
6105
+ cmp r5, r3
6106
+ bls .L794
6107
+ mla r3, ip, r3, r6
58566108 add r9, r9, #1
58576109 ldr r7, [r3, #8]
58586110 cmp r7, #0
5859
- bne .L817
6111
+ bne .L793
58606112 mla r2, r8, r2, r0
58616113 ldr r7, [r3]
5862
- str ip, [r3, #8]
6114
+ str lr, [r3, #8]
58636115 str r7, [r2, #8]
58646116 ldr r3, [r3, #4]
58656117 str r3, [r2, #12]
5866
-.L818:
6118
+.L794:
58676119 adds r4, r4, #1
5868
- b .L816
5869
-.L822:
5870
- pop {r4, r5, r6, r7, r8, r9, pc}
5871
-.L824:
6120
+ b .L792
6121
+.L799:
58726122 .align 2
5873
-.L823:
6123
+.L798:
58746124 .word .LANCHOR2
58756125 .fnend
58766126 .size FtlGcBufAlloc, .-FtlGcBufAlloc
58776127 .align 1
58786128 .global IsBlkInGcList
6129
+ .syntax unified
58796130 .thumb
58806131 .thumb_func
6132
+ .fpu softvfp
58816133 .type IsBlkInGcList, %function
58826134 IsBlkInGcList:
58836135 .fnstart
58846136 @ args = 0, pretend = 0, frame = 0
58856137 @ frame_needed = 0, uses_anonymous_args = 0
58866138 @ link register save eliminated.
5887
- ldr r2, .L831
6139
+ ldr r2, .L805
58886140 ldr r3, [r2, #1160]
58896141 ldrh r2, [r2, #1164]
58906142 add r2, r3, r2, lsl #1
5891
-.L826:
6143
+.L801:
58926144 cmp r3, r2
5893
- beq .L830
5894
- ldrh r1, [r3], #2
5895
- cmp r1, r0
5896
- bne .L826
5897
- movs r0, #1
5898
- bx lr
5899
-.L830:
6145
+ bne .L803
59006146 movs r0, #0
59016147 bx lr
5902
-.L832:
6148
+.L803:
6149
+ ldrh r1, [r3], #2
6150
+ cmp r1, r0
6151
+ bne .L801
6152
+ movs r0, #1
6153
+ bx lr
6154
+.L806:
59036155 .align 2
5904
-.L831:
6156
+.L805:
59056157 .word .LANCHOR2
59066158 .fnend
59076159 .size IsBlkInGcList, .-IsBlkInGcList
59086160 .align 1
59096161 .global FtlGcUpdatePage
6162
+ .syntax unified
59106163 .thumb
59116164 .thumb_func
6165
+ .fpu softvfp
59126166 .type FtlGcUpdatePage, %function
59136167 FtlGcUpdatePage:
59146168 .fnstart
59156169 @ args = 0, pretend = 0, frame = 0
59166170 @ frame_needed = 0, uses_anonymous_args = 0
5917
- push {r4, r5, r6, r7, r8, lr}
5918
- .save {r4, r5, r6, r7, r8, lr}
5919
- mov r6, r0
6171
+ push {r3, r4, r5, r6, r7, lr}
6172
+ .save {r3, r4, r5, r6, r7, lr}
6173
+ mov r5, r0
59206174 ubfx r0, r0, #10, #16
5921
- mov r7, r1
5922
- mov r8, r2
5923
- bl P2V_block_in_plane
5924
- ldr r3, .L840
6175
+ mov r6, r1
6176
+ mov r7, r2
59256177 movs r4, #0
6178
+ bl P2V_block_in_plane
6179
+ ldr r3, .L811
59266180 ldrh r1, [r3, #1164]
59276181 ldr r2, [r3, #1160]
5928
-.L834:
5929
- uxth r5, r4
5930
- cmp r5, r1
5931
- bcs .L838
5932
- adds r4, r4, #1
5933
- add lr, r2, r4, lsl #1
5934
- ldrh lr, [lr, #-2]
5935
- cmp lr, r0
5936
- bne .L834
5937
-.L838:
5938
- cmp r5, r1
5939
- bne .L836
5940
- strh r0, [r2, r5, lsl #1] @ movhi
6182
+.L808:
6183
+ uxth ip, r4
6184
+ cmp ip, r1
6185
+ bcc .L810
6186
+ bne .L809
6187
+ strh r0, [r2, ip, lsl #1] @ movhi
59416188 ldrh r0, [r3, #1164]
59426189 adds r0, r0, #1
59436190 strh r0, [r3, #1164] @ movhi
5944
-.L836:
6191
+ b .L809
6192
+.L810:
6193
+ adds r4, r4, #1
6194
+ add ip, r2, r4, lsl #1
6195
+ ldrh ip, [ip, #-2]
6196
+ cmp ip, r0
6197
+ bne .L808
6198
+.L809:
59456199 ldrh r2, [r3, #1172]
59466200 movs r0, #12
59476201 muls r0, r2, r0
59486202 ldr r2, [r3, #1168]
59496203 adds r1, r2, r0
5950
- str r7, [r1, #4]
5951
- str r8, [r1, #8]
5952
- str r6, [r2, r0]
6204
+ str r6, [r1, #4]
6205
+ str r7, [r1, #8]
6206
+ str r5, [r2, r0]
59536207 ldrh r2, [r3, #1172]
59546208 adds r2, r2, #1
59556209 strh r2, [r3, #1172] @ movhi
5956
- pop {r4, r5, r6, r7, r8, pc}
5957
-.L841:
6210
+ pop {r3, r4, r5, r6, r7, pc}
6211
+.L812:
59586212 .align 2
5959
-.L840:
6213
+.L811:
59606214 .word .LANCHOR2
59616215 .fnend
59626216 .size FtlGcUpdatePage, .-FtlGcUpdatePage
59636217 .align 1
59646218 .global FtlGcRefreshOpenBlock
6219
+ .syntax unified
59656220 .thumb
59666221 .thumb_func
6222
+ .fpu softvfp
59676223 .type FtlGcRefreshOpenBlock, %function
59686224 FtlGcRefreshOpenBlock:
59696225 .fnstart
....@@ -5972,59 +6228,61 @@
59726228 push {r3, r4, r5, lr}
59736229 .save {r3, r4, r5, lr}
59746230 mov r5, r0
5975
- ldr r4, .L849
6231
+ ldr r4, .L820
59766232 ldrh r3, [r4, #1174]
59776233 cmp r3, r0
5978
- beq .L844
6234
+ beq .L815
59796235 ldrh r3, [r4, #1176]
59806236 cmp r3, r0
5981
- beq .L844
6237
+ beq .L815
59826238 ldrh r3, [r4, #1178]
59836239 cmp r3, r0
5984
- beq .L844
6240
+ beq .L815
59856241 ldrh r3, [r4, #1180]
59866242 cmp r3, r0
5987
- beq .L844
5988
- ldr r0, .L849+4
5989
- mov r1, r5
6243
+ beq .L815
6244
+ mov r1, r0
6245
+ ldr r0, .L820+4
59906246 bl printk
59916247 ldrh r2, [r4, #1174]
59926248 movw r3, #65535
59936249 cmp r2, r3
5994
- bne .L846
6250
+ bne .L817
59956251 strh r5, [r4, #1174] @ movhi
5996
- b .L844
5997
-.L846:
6252
+.L815:
6253
+ movs r0, #0
6254
+ pop {r3, r4, r5, pc}
6255
+.L817:
59986256 ldrh r2, [r4, #1176]
59996257 cmp r2, r3
6000
- bne .L847
6258
+ bne .L818
60016259 strh r5, [r4, #1176] @ movhi
6002
- b .L844
6003
-.L847:
6260
+ b .L815
6261
+.L818:
60046262 ldrh r2, [r4, #1178]
60056263 cmp r2, r3
6006
- bne .L848
6264
+ bne .L819
60076265 strh r5, [r4, #1178] @ movhi
6008
- b .L844
6009
-.L848:
6266
+ b .L815
6267
+.L819:
60106268 ldrh r2, [r4, #1180]
60116269 cmp r2, r3
60126270 it eq
60136271 strheq r5, [r4, #1180] @ movhi
6014
-.L844:
6015
- movs r0, #0
6016
- pop {r3, r4, r5, pc}
6017
-.L850:
6272
+ b .L815
6273
+.L821:
60186274 .align 2
6019
-.L849:
6275
+.L820:
60206276 .word .LANCHOR2
60216277 .word .LC79
60226278 .fnend
60236279 .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock
60246280 .align 1
60256281 .global FtlGcRefreshBlock
6282
+ .syntax unified
60266283 .thumb
60276284 .thumb_func
6285
+ .fpu softvfp
60286286 .type FtlGcRefreshBlock, %function
60296287 FtlGcRefreshBlock:
60306288 .fnstart
....@@ -6033,62 +6291,64 @@
60336291 push {r3, r4, r5, lr}
60346292 .save {r3, r4, r5, lr}
60356293 mov r5, r0
6036
- ldr r4, .L861
6294
+ ldr r4, .L832
60376295 ldrh r3, [r4, #1174]
60386296 cmp r3, r0
6039
- beq .L859
6297
+ beq .L830
60406298 ldrh r3, [r4, #1176]
60416299 cmp r3, r0
6042
- beq .L859
6300
+ beq .L830
60436301 ldrh r3, [r4, #1178]
60446302 cmp r3, r0
6045
- beq .L859
6303
+ beq .L830
60466304 ldrh r3, [r4, #1180]
60476305 cmp r3, r0
6048
- beq .L859
6049
- ldr r0, .L861+4
6050
- mov r1, r5
6306
+ beq .L830
6307
+ mov r1, r0
6308
+ ldr r0, .L832+4
60516309 bl printk
60526310 ldrh r2, [r4, #1174]
60536311 movw r3, #65535
60546312 cmp r2, r3
6055
- bne .L853
6313
+ bne .L824
60566314 strh r5, [r4, #1174] @ movhi
6057
- b .L859
6058
-.L853:
6059
- ldrh r2, [r4, #1176]
6060
- cmp r2, r3
6061
- bne .L854
6062
- strh r5, [r4, #1176] @ movhi
6063
- b .L859
6064
-.L854:
6065
- ldrh r2, [r4, #1178]
6066
- cmp r2, r3
6067
- bne .L855
6068
- strh r5, [r4, #1178] @ movhi
6069
- b .L859
6070
-.L855:
6071
- ldrh r2, [r4, #1180]
6072
- cmp r2, r3
6073
- bne .L860
6074
- strh r5, [r4, #1180] @ movhi
6075
-.L859:
6315
+.L830:
60766316 movs r0, #0
60776317 pop {r3, r4, r5, pc}
6078
-.L860:
6318
+.L824:
6319
+ ldrh r2, [r4, #1176]
6320
+ cmp r2, r3
6321
+ bne .L825
6322
+ strh r5, [r4, #1176] @ movhi
6323
+ b .L830
6324
+.L825:
6325
+ ldrh r2, [r4, #1178]
6326
+ cmp r2, r3
6327
+ bne .L826
6328
+ strh r5, [r4, #1178] @ movhi
6329
+ b .L830
6330
+.L826:
6331
+ ldrh r2, [r4, #1180]
6332
+ cmp r2, r3
6333
+ bne .L831
6334
+ strh r5, [r4, #1180] @ movhi
6335
+ b .L830
6336
+.L831:
60796337 mov r0, #-1
60806338 pop {r3, r4, r5, pc}
6081
-.L862:
6339
+.L833:
60826340 .align 2
6083
-.L861:
6341
+.L832:
60846342 .word .LANCHOR2
60856343 .word .LC79
60866344 .fnend
60876345 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock
60886346 .align 1
60896347 .global FtlGcMarkBadPhyBlk
6348
+ .syntax unified
60906349 .thumb
60916350 .thumb_func
6351
+ .fpu softvfp
60926352 .type FtlGcMarkBadPhyBlk, %function
60936353 FtlGcMarkBadPhyBlk:
60946354 .fnstart
....@@ -6097,52 +6357,52 @@
60976357 push {r4, r5, r6, lr}
60986358 .save {r4, r5, r6, lr}
60996359 mov r5, r0
6360
+ ldr r4, .L842
61006361 bl P2V_block_in_plane
6101
- ldr r4, .L872
61026362 mov r2, r5
6103
- ldrh r1, [r4, #1182]
61046363 mov r6, r0
6105
- ldr r0, .L872+4
6364
+ ldrh r1, [r4, #1182]
6365
+ ldr r0, .L842+4
61066366 bl printk
61076367 mov r0, r6
61086368 bl FtlGcRefreshBlock
6109
- ldr r3, .L872+8
6110
- ldr r2, [r3, #2244]
6369
+ ldr r3, .L842+8
6370
+ ldr r2, [r3, #2248]
61116371 mov r3, r4
6112
- cbz r2, .L864
6113
- ldr r1, [r4, #232]
6372
+ cbz r2, .L835
6373
+ ldr r1, [r4, #236]
61146374 ldrh r2, [r1, r6, lsl #1]
61156375 cmp r2, #39
61166376 itt hi
61176377 subhi r2, r2, #40
61186378 strhhi r2, [r1, r6, lsl #1] @ movhi
6119
-.L864:
6379
+.L835:
61206380 ldrh r2, [r3, #1182]
61216381 movs r1, #0
6122
- ldr r4, .L872+12
6123
-.L865:
6382
+ ldr r4, .L842+12
6383
+.L836:
61246384 uxth r0, r1
6125
- cmp r0, r2
6126
- bcs .L871
6127
- adds r1, r1, #1
6128
- add r0, r4, r1, lsl #1
6129
- ldrh r0, [r0, #-2]
6130
- cmp r0, r5
6131
- bne .L865
6132
- b .L866
6133
-.L871:
6385
+ cmp r2, r0
6386
+ bhi .L838
61346387 cmp r2, #15
61356388 itttt ls
61366389 addls r1, r2, #1
61376390 strhls r1, [r3, #1182] @ movhi
61386391 addls r3, r3, r2, lsl #1
61396392 strhls r5, [r3, #1184] @ movhi
6140
-.L866:
6393
+ b .L837
6394
+.L838:
6395
+ adds r1, r1, #1
6396
+ add r0, r4, r1, lsl #1
6397
+ ldrh r0, [r0, #-2]
6398
+ cmp r0, r5
6399
+ bne .L836
6400
+.L837:
61416401 movs r0, #0
61426402 pop {r4, r5, r6, pc}
6143
-.L873:
6403
+.L843:
61446404 .align 2
6145
-.L872:
6405
+.L842:
61466406 .word .LANCHOR2
61476407 .word .LC80
61486408 .word .LANCHOR0
....@@ -6151,8 +6411,10 @@
61516411 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
61526412 .align 1
61536413 .global FtlGcReFreshBadBlk
6414
+ .syntax unified
61546415 .thumb
61556416 .thumb_func
6417
+ .fpu softvfp
61566418 .type FtlGcReFreshBadBlk, %function
61576419 FtlGcReFreshBadBlk:
61586420 .fnstart
....@@ -6160,13 +6422,13 @@
61606422 @ frame_needed = 0, uses_anonymous_args = 0
61616423 push {r4, lr}
61626424 .save {r4, lr}
6163
- ldr r4, .L880
6425
+ ldr r4, .L850
61646426 ldrh r3, [r4, #1182]
6165
- cbz r3, .L875
6427
+ cbz r3, .L845
61666428 ldrh r1, [r4, #1174]
61676429 movw r2, #65535
61686430 cmp r1, r2
6169
- bne .L875
6431
+ bne .L845
61706432 ldrh r2, [r4, #1218]
61716433 cmp r2, r3
61726434 itt cs
....@@ -6180,19 +6442,21 @@
61806442 ldrh r3, [r4, #1218]
61816443 adds r3, r3, #1
61826444 strh r3, [r4, #1218] @ movhi
6183
-.L875:
6445
+.L845:
61846446 movs r0, #0
61856447 pop {r4, pc}
6186
-.L881:
6448
+.L851:
61876449 .align 2
6188
-.L880:
6450
+.L850:
61896451 .word .LANCHOR2
61906452 .fnend
61916453 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
61926454 .align 1
61936455 .global ftl_memset
6456
+ .syntax unified
61946457 .thumb
61956458 .thumb_func
6459
+ .fpu softvfp
61966460 .type ftl_memset, %function
61976461 ftl_memset:
61986462 .fnstart
....@@ -6204,386 +6468,381 @@
62046468 .size ftl_memset, .-ftl_memset
62056469 .align 1
62066470 .global BuildFlashLsbPageTable
6471
+ .syntax unified
62076472 .thumb
62086473 .thumb_func
6474
+ .fpu softvfp
62096475 .type BuildFlashLsbPageTable, %function
62106476 BuildFlashLsbPageTable:
62116477 .fnstart
62126478 @ args = 0, pretend = 0, frame = 0
62136479 @ frame_needed = 0, uses_anonymous_args = 0
6214
- push {r4, r5, r6, lr}
6215
- .save {r4, r5, r6, lr}
6480
+ push {r3, r4, r5, lr}
6481
+ .save {r3, r4, r5, lr}
62166482 mov r4, r1
6217
- cbnz r0, .L884
6218
- ldr r3, .L926
6219
-.L885:
6483
+ cbnz r0, .L854
6484
+ ldr r3, .L909
6485
+.L855:
62206486 strh r0, [r3, r0, lsl #1] @ movhi
62216487 adds r0, r0, #1
62226488 cmp r0, #512
6223
- bne .L885
6224
-.L889:
6489
+ bne .L855
6490
+.L861:
62256491 movs r1, #255
6226
- ldr r0, .L926+4
62276492 mov r2, #2048
6493
+ ldr r0, .L909+4
62286494 uxth r4, r4
62296495 bl ftl_memset
6496
+ ldr r1, .L909
62306497 movs r3, #0
6231
- ldr r1, .L926
6232
- ldr r0, .L926+8
6233
- b .L886
6234
-.L884:
6498
+ ldr r0, .L909+8
6499
+.L856:
6500
+ uxth r2, r3
6501
+ cmp r4, r2
6502
+ bhi .L889
6503
+ pop {r3, r4, r5, pc}
6504
+.L854:
62356505 cmp r0, #1
6236
- bne .L887
6237
- ldr r5, .L926
6506
+ bne .L857
6507
+ ldr r1, .L909
62386508 movs r3, #0
6239
-.L888:
6509
+.L860:
6510
+ cmp r3, #3
62406511 uxth r2, r3
6241
- cmp r2, #3
6242
- ite ls
6243
- movls r0, #0
6244
- movhi r0, #1
6245
- bics r1, r0, r3
6512
+ bls .L858
6513
+ tst r2, #1
62466514 ite ne
6247
- movne r1, #2
6248
- moveq r1, #3
6249
- rsb r1, r1, r2, lsl #1
6250
- cmp r0, #0
6251
- it ne
6252
- movne r2, r1
6253
- strh r2, [r5, r3, lsl #1] @ movhi
6515
+ movne r0, #3
6516
+ moveq r0, #2
6517
+ rsb r2, r0, r2, lsl #1
6518
+ uxth r2, r2
6519
+.L858:
6520
+ strh r2, [r1, r3, lsl #1] @ movhi
62546521 adds r3, r3, #1
62556522 cmp r3, #512
6256
- bne .L888
6257
- b .L889
6258
-.L887:
6523
+ bne .L860
6524
+ b .L861
6525
+.L857:
62596526 cmp r0, #2
6260
- bne .L890
6261
- ldr r0, .L926
6262
- movs r3, #0
6263
-.L891:
6264
- uxth r2, r3
6265
- lsls r1, r2, #1
6266
- subs r1, r1, #1
6527
+ bne .L862
6528
+ ldr r1, .L909
6529
+ movs r2, #0
6530
+.L864:
6531
+ uxth r3, r2
62676532 cmp r2, #1
6268
- it hi
6269
- movhi r2, r1
6270
- strh r2, [r0, r3, lsl #1] @ movhi
6271
- adds r3, r3, #1
6272
- cmp r3, #512
6273
- bne .L891
6274
- b .L889
6275
-.L890:
6533
+ ittt hi
6534
+ lslhi r3, r3, #1
6535
+ addhi r3, r3, #-1
6536
+ uxthhi r3, r3
6537
+ strh r3, [r1, r2, lsl #1] @ movhi
6538
+ adds r2, r2, #1
6539
+ cmp r2, #512
6540
+ bne .L864
6541
+ b .L861
6542
+.L862:
62766543 cmp r0, #3
6277
- bne .L892
6278
- ldr r5, .L926
6544
+ bne .L865
6545
+ ldr r1, .L909
62796546 movs r3, #0
6280
-.L893:
6547
+.L868:
6548
+ cmp r3, #5
62816549 uxth r2, r3
6282
- cmp r2, #5
6283
- ite ls
6284
- movls r0, #0
6285
- movhi r0, #1
6286
- bics r1, r0, r3
6550
+ bls .L866
6551
+ tst r2, #1
62876552 ite ne
6288
- movne r1, #4
6289
- moveq r1, #5
6290
- rsb r1, r1, r2, lsl #1
6291
- cmp r0, #0
6292
- it ne
6293
- movne r2, r1
6294
- strh r2, [r5, r3, lsl #1] @ movhi
6553
+ movne r0, #5
6554
+ moveq r0, #4
6555
+ rsb r2, r0, r2, lsl #1
6556
+ uxth r2, r2
6557
+.L866:
6558
+ strh r2, [r1, r3, lsl #1] @ movhi
62956559 adds r3, r3, #1
62966560 cmp r3, #512
6297
- bne .L893
6298
- b .L889
6299
-.L892:
6561
+ bne .L868
6562
+ b .L861
6563
+.L865:
63006564 cmp r0, #4
63016565 mov r3, #0
6302
- bne .L894
6303
- ldr r2, .L926+12
6304
- strh r3, [r2, #148] @ movhi
6566
+ bne .L869
6567
+ ldr r2, .L909+12
6568
+ strh r3, [r2, #156] @ movhi
63056569 movs r3, #1
6306
- strh r0, [r2, #156] @ movhi
6307
- strh r3, [r2, #150] @ movhi
6308
- movs r3, #2
6309
- strh r3, [r2, #152] @ movhi
6310
- movs r3, #3
6311
- strh r3, [r2, #154] @ movhi
6312
- movs r3, #5
63136570 strh r3, [r2, #158] @ movhi
6314
- movs r3, #7
6571
+ movs r3, #2
63156572 strh r3, [r2, #160] @ movhi
6573
+ movs r3, #3
6574
+ strh r3, [r2, #162] @ movhi
6575
+ movs r3, #5
6576
+ strh r3, [r2, #166] @ movhi
6577
+ movs r3, #7
6578
+ strh r3, [r2, #168] @ movhi
63166579 movs r3, #8
6317
- strh r3, [r2, #162]! @ movhi
6318
-.L895:
6580
+ strh r0, [r2, #164] @ movhi
6581
+ strh r3, [r2, #170]! @ movhi
6582
+.L871:
63196583 tst r3, #1
63206584 ite ne
63216585 movne r1, #7
63226586 moveq r1, #6
63236587 rsb r1, r1, r3, lsl #1
63246588 adds r3, r3, #1
6325
- strh r1, [r2, #2]! @ movhi
63266589 uxth r3, r3
6590
+ strh r1, [r2, #2]! @ movhi
63276591 cmp r3, #512
6328
- bne .L895
6329
- b .L889
6330
-.L894:
6592
+ bne .L871
6593
+ b .L861
6594
+.L869:
63316595 cmp r0, #5
6332
- bne .L896
6333
- ldr r2, .L926
6334
-.L897:
6335
- strh r3, [r2, r3, lsl #1] @ movhi
6596
+ bne .L872
6597
+ ldr r2, .L909+12
6598
+ add r1, r2, #156
6599
+.L873:
6600
+ strh r3, [r1, r3, lsl #1] @ movhi
63366601 adds r3, r3, #1
63376602 cmp r3, #16
6338
- bne .L897
6339
- ldr r2, .L926+16
6340
-.L898:
6603
+ bne .L873
6604
+ adds r2, r2, #186
6605
+.L874:
63416606 strh r3, [r2, #2]! @ movhi
63426607 adds r3, r3, #2
63436608 uxth r3, r3
63446609 cmp r3, #1008
6345
- bne .L898
6346
- b .L889
6347
-.L896:
6610
+ bne .L874
6611
+ b .L861
6612
+.L872:
63486613 cmp r0, #6
6349
- bne .L899
6350
- ldr r5, .L926
6351
-.L900:
6352
- uxth r2, r3
6353
- cmp r2, #5
6354
- ite ls
6355
- movls r0, #0
6356
- movhi r0, #1
6357
- add r1, r2, r2, lsl #1
6358
- bics r6, r0, r3
6614
+ bne .L875
6615
+ ldr r0, .L909
6616
+ mov r1, r3
6617
+.L878:
6618
+ cmp r1, #5
6619
+ uxth r2, r1
6620
+ bls .L876
6621
+ tst r2, #1
63596622 ite ne
6360
- movne r6, #10
6361
- moveq r6, #12
6362
- subs r1, r1, r6
6363
- cmp r0, #0
6364
- it ne
6365
- movne r2, r1
6366
- strh r2, [r5, r3, lsl #1] @ movhi
6367
- adds r3, r3, #1
6368
- cmp r3, #512
6369
- bne .L900
6370
- b .L889
6371
-.L899:
6372
- cmp r0, #9
6373
- bne .L901
6374
- ldr r2, .L926+12
6375
- movw r1, #1021
6376
- strh r3, [r2, #148] @ movhi
6377
- movs r3, #1
6378
- strh r3, [r2, #150] @ movhi
6379
- movs r3, #2
6380
- strh r3, [r2, #152]! @ movhi
6381
- movs r3, #3
6382
-.L902:
6383
- strh r3, [r2, #2]! @ movhi
6384
- adds r3, r3, #2
6623
+ movne r2, #12
6624
+ moveq r2, #10
6625
+ subs r2, r3, r2
6626
+ uxth r2, r2
6627
+.L876:
6628
+ strh r2, [r0, r1, lsl #1] @ movhi
6629
+ adds r1, r1, #1
6630
+ cmp r1, #512
6631
+ add r3, r3, #3
63856632 uxth r3, r3
6386
- cmp r3, r1
6387
- bne .L902
6388
- b .L889
6389
-.L901:
6633
+ bne .L878
6634
+ b .L861
6635
+.L875:
6636
+ cmp r0, #9
6637
+ bne .L879
6638
+ ldr r2, .L909+12
6639
+ movw r1, #1021
6640
+ strh r3, [r2, #156] @ movhi
6641
+ movs r3, #1
6642
+ strh r3, [r2, #158] @ movhi
6643
+ mov r3, r2
6644
+ movs r2, #2
6645
+ strh r2, [r3, #160]! @ movhi
6646
+ movs r2, #3
6647
+.L880:
6648
+ strh r2, [r3, #2]! @ movhi
6649
+ adds r2, r2, #2
6650
+ uxth r2, r2
6651
+ cmp r2, r1
6652
+ bne .L880
6653
+ b .L861
6654
+.L879:
63906655 cmp r0, #10
6391
- bne .L903
6392
- ldr r2, .L926
6393
-.L904:
6394
- strh r3, [r2, r3, lsl #1] @ movhi
6656
+ bne .L881
6657
+ ldr r2, .L909+12
6658
+ add r1, r2, #156
6659
+.L882:
6660
+ strh r3, [r1, r3, lsl #1] @ movhi
63956661 adds r3, r3, #1
63966662 cmp r3, #63
6397
- bne .L904
6398
- ldr r2, .L926+20
6663
+ bne .L882
6664
+ add r2, r2, #280
63996665 movw r1, #961
6400
-.L905:
6666
+.L883:
64016667 strh r3, [r2, #2]! @ movhi
64026668 adds r3, r3, #2
64036669 uxth r3, r3
64046670 cmp r3, r1
6405
- bne .L905
6406
- b .L889
6407
-.L903:
6671
+ bne .L883
6672
+ b .L861
6673
+.L881:
64086674 cmp r0, #11
6409
- bne .L906
6410
- ldr r2, .L926
6675
+ bne .L884
6676
+ ldr r2, .L909+12
64116677 movs r3, #0
6412
-.L907:
6413
- strh r3, [r2, r3, lsl #1] @ movhi
6678
+ add r1, r2, #156
6679
+.L885:
6680
+ strh r3, [r1, r3, lsl #1] @ movhi
64146681 adds r3, r3, #1
64156682 cmp r3, #8
6416
- bne .L907
6417
- ldr r1, .L926+24
6418
-.L908:
6683
+ bne .L885
6684
+ adds r2, r2, #170
6685
+.L887:
64196686 tst r3, #1
64206687 ite ne
6421
- movne r2, #7
6422
- moveq r2, #6
6423
- rsb r2, r2, r3, lsl #1
6688
+ movne r1, #7
6689
+ moveq r1, #6
6690
+ rsb r1, r1, r3, lsl #1
64246691 adds r3, r3, #1
6425
- strh r2, [r1, #2]! @ movhi
64266692 uxth r3, r3
6693
+ strh r1, [r2, #2]! @ movhi
64276694 cmp r3, #512
6428
- bne .L908
6429
- b .L889
6430
-.L906:
6695
+ bne .L887
6696
+ b .L861
6697
+.L884:
64316698 cmp r0, #12
6432
- bne .L889
6433
- ldr r3, .L926+12
6699
+ bne .L861
6700
+ ldr r3, .L909+12
64346701 movs r2, #0
6435
- strh r2, [r3, #148] @ movhi
6702
+ strh r2, [r3, #156] @ movhi
64366703 movs r2, #1
6437
- strh r2, [r3, #150] @ movhi
6704
+ strh r2, [r3, #158] @ movhi
64386705 movs r2, #2
6439
- strh r2, [r3, #152] @ movhi
6706
+ strh r2, [r3, #160] @ movhi
64406707 movs r2, #3
6441
- strh r2, [r3, #154]! @ movhi
6708
+ strh r2, [r3, #162]! @ movhi
64426709 movs r2, #4
6443
-.L909:
6710
+.L888:
64446711 subs r1, r2, #1
64456712 add r1, r1, r2, lsr #1
64466713 adds r2, r2, #1
6447
- strh r1, [r3, #2]! @ movhi
64486714 uxth r2, r2
6715
+ strh r1, [r3, #2]! @ movhi
64496716 cmp r2, #512
6450
- bne .L909
6451
- b .L889
6452
-.L886:
6453
- uxth r2, r3
6454
- cmp r2, r4
6455
- bcs .L925
6717
+ bne .L888
6718
+ b .L861
6719
+.L889:
64566720 ldrh r2, [r1, r3, lsl #1]
64576721 adds r3, r3, #1
64586722 add r5, r0, r2, lsl #1
64596723 strh r2, [r5, #1220] @ movhi
6460
- b .L886
6461
-.L925:
6462
- pop {r4, r5, r6, pc}
6463
-.L927:
6724
+ b .L856
6725
+.L910:
64646726 .align 2
6465
-.L926:
6466
- .word .LANCHOR0+148
6727
+.L909:
6728
+ .word .LANCHOR0+156
64676729 .word .LANCHOR2+1220
64686730 .word .LANCHOR2
64696731 .word .LANCHOR0
6470
- .word .LANCHOR0+178
6471
- .word .LANCHOR0+272
6472
- .word .LANCHOR0+162
64736732 .fnend
64746733 .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable
64756734 .align 1
64766735 .global FlashDieInfoInit
6736
+ .syntax unified
64776737 .thumb
64786738 .thumb_func
6739
+ .fpu softvfp
64796740 .type FlashDieInfoInit, %function
64806741 FlashDieInfoInit:
64816742 .fnstart
64826743 @ args = 0, pretend = 0, frame = 0
64836744 @ frame_needed = 0, uses_anonymous_args = 0
6484
- push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
6485
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
6745
+ ldr r3, .L925
6746
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
6747
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
64866748 movs r7, #0
6487
- ldr r3, .L942
6488
- ldr r4, .L942+4
6489
- ldr r6, .L942+8
6490
- ldrh r0, [r3, #482]
6491
- addw fp, r4, #2068
6492
- strb r7, [r4, #2230]
6493
- mov r9, r4
6749
+ ldr r4, .L925+4
6750
+ ldr r6, .L925+8
6751
+ ldrh r0, [r3, #478]
6752
+ addw r10, r4, #2072
6753
+ strb r7, [r4, #2234]
6754
+ mov r9, r10
64946755 strb r7, [r6, #3268]
64956756 bl FlashBlockAlignInit
6496
- mov r1, r7
64976757 movs r2, #8
6498
- addw r0, r4, #2232
6499
- bl ftl_memset
65006758 mov r1, r7
6759
+ addw r0, r4, #2236
6760
+ bl ftl_memset
65016761 movs r2, #32
6502
- addw r0, r4, #1172
6503
- bl ftl_memset
6504
- addw r0, r4, #2100
65056762 mov r1, r7
6506
- movs r2, #128
6763
+ addw r0, r4, #1180
65076764 bl ftl_memset
6508
- ldr r5, [r4, #44]
6765
+ movs r2, #128
6766
+ mov r1, r7
6767
+ addw r0, r4, #2104
6768
+ bl ftl_memset
6769
+ ldr r5, [r4, #48]
65096770 add r8, r5, #1
6510
-.L930:
6511
- mov r0, r8
6512
- add r1, fp, r7, lsl #3
6771
+.L913:
65136772 ldrb r2, [r5] @ zero_extendqisi2
6773
+ add r1, r10, r7, lsl #3
6774
+ mov r0, r8
65146775 bl FlashMemCmp8
6515
- ldr r10, .L942+12
6516
- cbnz r0, .L929
6517
- ldrb r3, [r9, #2230] @ zero_extendqisi2
6518
- add r2, r9, r3, lsl #2
6519
- str r0, [r2, #1172]
6776
+ cbnz r0, .L912
6777
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
6778
+ add r2, r4, r3, lsl #2
6779
+ str r0, [r2, #1180]
65206780 adds r2, r3, #1
6521
- add r3, r3, r9
6522
- strb r2, [r9, #2230]
6523
- strb r7, [r3, #2232]
6524
-.L929:
6781
+ add r3, r3, r4
6782
+ strb r2, [r4, #2234]
6783
+ strb r7, [r3, #2236]
6784
+.L912:
65256785 adds r7, r7, #1
65266786 cmp r7, #4
6527
- bne .L930
6528
- ldrb r3, [r4, #2230] @ zero_extendqisi2
6529
- ldr r2, .L942+4
6787
+ bne .L913
6788
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
65306789 strb r3, [r6, #3268]
65316790 ldrb r3, [r5, #8] @ zero_extendqisi2
65326791 cmp r3, #2
6533
- beq .L931
6534
-.L935:
6535
- ldrb r3, [r5, #13] @ zero_extendqisi2
6536
- ldrb r2, [r4, #2230] @ zero_extendqisi2
6537
- smulbb r2, r2, r3
6538
- ldrh r3, [r5, #14]
6539
- smulbb r3, r2, r3
6792
+ beq .L914
6793
+.L918:
6794
+ ldrh r2, [r5, #14]
6795
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
6796
+ smulbb r3, r3, r2
6797
+ ldrb r2, [r5, #13] @ zero_extendqisi2
6798
+ smulbb r3, r3, r2
65406799 strh r3, [r6, #3270] @ movhi
6541
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
6542
-.L931:
6543
- ldr r9, [r2, #4]
6800
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
6801
+.L914:
6802
+ ldr r10, [r4, #40]
65446803 movs r7, #0
6545
- mov fp, r2
6546
-.L934:
6547
- mov r0, r8
6548
- add r1, r10, r7, lsl #3
6804
+.L917:
65496805 ldrb r2, [r5] @ zero_extendqisi2
6806
+ add r1, r9, r7, lsl #3
6807
+ mov r0, r8
65506808 bl FlashMemCmp8
6551
- cbnz r0, .L932
6552
- ldrb r0, [r5, #13] @ zero_extendqisi2
6809
+ cbnz r0, .L915
65536810 ldrh r3, [r5, #14]
6554
- ldrb r2, [fp, #2230] @ zero_extendqisi2
6555
- mul r0, r9, r0
6556
- and r3, r3, #65280
6557
- add r1, fp, r2, lsl #2
6558
- muls r3, r0, r3
6559
- str r3, [r1, #1172]
6811
+ ldrb r2, [r4, #2234] @ zero_extendqisi2
6812
+ and r1, r3, #65280
6813
+ ldrb r3, [r5, #13] @ zero_extendqisi2
6814
+ mul r3, r10, r3
6815
+ muls r3, r1, r3
6816
+ add r1, r4, r2, lsl #2
6817
+ str r3, [r1, #1180]
65606818 ldrb r0, [r5, #23] @ zero_extendqisi2
6561
- cbz r0, .L933
6819
+ cbz r0, .L916
65626820 lsls r3, r3, #1
6563
- str r3, [r1, #1172]
6564
-.L933:
6821
+ str r3, [r1, #1180]
6822
+.L916:
65656823 adds r3, r2, #1
65666824 add r2, r2, r4
6567
- strb r3, [r4, #2230]
6568
- strb r7, [r2, #2232]
6569
-.L932:
6825
+ strb r3, [r4, #2234]
6826
+ strb r7, [r2, #2236]
6827
+.L915:
65706828 adds r7, r7, #1
65716829 cmp r7, #4
6572
- bne .L934
6573
- b .L935
6574
-.L943:
6830
+ bne .L917
6831
+ b .L918
6832
+.L926:
65756833 .align 2
6576
-.L942:
6834
+.L925:
65776835 .word .LANCHOR1
65786836 .word .LANCHOR0
65796837 .word .LANCHOR2
6580
- .word .LANCHOR0+2068
65816838 .fnend
65826839 .size FlashDieInfoInit, .-FlashDieInfoInit
65836840 .align 1
65846841 .global ftl_read_flash_info
6842
+ .syntax unified
65856843 .thumb
65866844 .thumb_func
6845
+ .fpu softvfp
65876846 .type ftl_read_flash_info, %function
65886847 ftl_read_flash_info:
65896848 .fnstart
....@@ -6591,23 +6850,23 @@
65916850 @ frame_needed = 0, uses_anonymous_args = 0
65926851 push {r4, r5, r6, lr}
65936852 .save {r4, r5, r6, lr}
6594
- movs r1, #0
65956853 movs r2, #11
6854
+ movs r1, #0
65966855 mov r4, r0
6597
- bl ftl_memset
6598
- ldr r3, .L948
65996856 movs r5, #1
6600
- ldr r2, [r3, #44]
6601
- ldrb r1, [r2, #9] @ zero_extendqisi2
6602
- ldr r2, [r3, #4]
6603
- smulbb r2, r1, r2
6857
+ bl ftl_memset
6858
+ ldr r3, .L930
6859
+ ldr r2, [r3, #48]
6860
+ ldr r1, [r3, #40]
6861
+ ldrb r2, [r2, #9] @ zero_extendqisi2
6862
+ smulbb r2, r2, r1
66046863 strh r2, [r4, #4] @ unaligned
6605
- ldrb r2, [r3, #2312] @ zero_extendqisi2
6864
+ ldrb r2, [r3, #2316] @ zero_extendqisi2
66066865 strb r2, [r4, #7]
6607
- ldr r2, [r3, #2428]
6866
+ ldr r2, [r3, #2432]
66086867 str r2, [r4] @ unaligned
6609
- ldr r2, [r3, #44]
6610
- addw r3, r3, #2232
6868
+ ldr r2, [r3, #48]
6869
+ addw r3, r3, #2236
66116870 ldrb r0, [r3, #-2] @ zero_extendqisi2
66126871 ldrb r1, [r2, #9] @ zero_extendqisi2
66136872 strb r1, [r4, #6]
....@@ -6617,29 +6876,31 @@
66176876 strb r2, [r4, #9]
66186877 movs r2, #0
66196878 strb r2, [r4, #10]
6620
-.L945:
6879
+.L928:
66216880 uxtb r1, r2
6622
- cmp r1, r0
6623
- bcs .L947
6881
+ cmp r0, r1
6882
+ bhi .L929
6883
+ pop {r4, r5, r6, pc}
6884
+.L929:
66246885 ldrb r1, [r2, r3] @ zero_extendqisi2
66256886 adds r2, r2, #1
6626
- lsl r6, r5, r1
6627
- ldrb r1, [r4, #10] @ zero_extendqisi2
6887
+ ldrb r6, [r4, #10] @ zero_extendqisi2
6888
+ lsl r1, r5, r1
66286889 orrs r1, r1, r6
66296890 strb r1, [r4, #10]
6630
- b .L945
6631
-.L947:
6632
- pop {r4, r5, r6, pc}
6633
-.L949:
6891
+ b .L928
6892
+.L931:
66346893 .align 2
6635
-.L948:
6894
+.L930:
66366895 .word .LANCHOR0
66376896 .fnend
66386897 .size ftl_read_flash_info, .-ftl_read_flash_info
66396898 .align 1
66406899 .global FtlMemInit
6900
+ .syntax unified
66416901 .thumb
66426902 .thumb_func
6903
+ .fpu softvfp
66436904 .type FtlMemInit, %function
66446905 FtlMemInit:
66456906 .fnstart
....@@ -6647,16 +6908,25 @@
66476908 @ frame_needed = 0, uses_anonymous_args = 0
66486909 push {r3, r4, r5, r6, r7, r8, r9, lr}
66496910 .save {r3, r4, r5, r6, r7, r8, r9, lr}
6650
- mov r0, #1024
6651
- ldr r4, .L1054
6652
- movs r6, #0
6653
- ldr r5, .L1054+4
66546911 movw r3, #65535
6912
+ ldr r4, .L1034
6913
+ movs r6, #0
6914
+ mov r0, #1024
66556915 movs r7, #12
6916
+ ldr r5, .L1034+4
66566917 mov r8, #36
6918
+ str r3, [r4, #3284]
6919
+ strh r3, [r4, #1174] @ movhi
6920
+ strh r3, [r4, #1176] @ movhi
6921
+ strh r3, [r4, #1178] @ movhi
6922
+ strh r3, [r4, #1180] @ movhi
6923
+ movs r3, #32
6924
+ strh r3, [r4, #1120] @ movhi
6925
+ movs r3, #128
6926
+ strh r3, [r4, #1122] @ movhi
66576927 strh r6, [r4, #3272] @ movhi
66586928 str r6, [r4, #3276]
6659
- str r6, [r4, #604]
6929
+ str r6, [r4, #1116]
66606930 str r6, [r4, #508]
66616931 str r6, [r4, #512]
66626932 str r6, [r4, #496]
....@@ -6667,47 +6937,38 @@
66676937 str r6, [r4, #476]
66686938 str r6, [r4, #516]
66696939 str r6, [r4, #520]
6670
- str r6, [r4, #236]
6940
+ str r6, [r4, #240]
66716941 str r6, [r4, #528]
66726942 str r6, [r4, #532]
66736943 str r6, [r4, #3280]
66746944 str r6, [r4, #1132]
6675
- str r3, [r4, #3284]
66766945 str r6, [r4, #3288]
66776946 str r6, [r4, #1124]
66786947 str r6, [r4, #3292]
6679
- strh r3, [r4, #1174] @ movhi
6680
- strh r3, [r4, #1176] @ movhi
6681
- strh r3, [r4, #1178] @ movhi
6682
- strh r3, [r4, #1180] @ movhi
6683
- movs r3, #32
66846948 strh r6, [r4, #1128] @ movhi
6685
- strh r3, [r4, #1120] @ movhi
6686
- movs r3, #128
66876949 strh r6, [r4, #1182] @ movhi
6688
- strh r3, [r4, #1122] @ movhi
66896950 strh r6, [r4, #3296] @ movhi
66906951 strh r6, [r4, #1218] @ movhi
6691
- ldrh r1, [r5, #2394]
6952
+ ldrh r1, [r5, #2396]
66926953 bl __aeabi_idiv
6693
- ldrh r3, [r5, #2320]
6694
- str r6, [r5, #2440]
6954
+ ldrh r3, [r5, #2324]
6955
+ str r0, [r4, #3300]
6956
+ str r6, [r5, #2444]
66956957 lsls r3, r3, #2
66966958 cmp r0, r3
6697
- str r0, [r4, #3300]
6698
- ldrh r0, [r5, #2392]
6959
+ ldrh r0, [r5, #2394]
66996960 it hi
67006961 strhi r3, [r4, #3300]
67016962 lsls r0, r0, #1
67026963 bl ftl_malloc
67036964 str r0, [r4, #1160]
6704
- ldrh r0, [r5, #2392]
6965
+ ldrh r0, [r5, #2394]
67056966 muls r0, r7, r0
67066967 bl ftl_malloc
6707
- ldrh r6, [r5, #2320]
6968
+ ldrh r6, [r5, #2324]
6969
+ str r0, [r4, #1168]
67086970 mul r6, r8, r6
67096971 lsl r9, r6, #3
6710
- str r0, [r4, #1168]
67116972 mov r0, r9
67126973 bl ftl_malloc
67136974 str r0, [r4, #3304]
....@@ -6719,20 +6980,20 @@
67196980 str r0, [r4, #3312]
67206981 mov r0, r6
67216982 bl ftl_malloc
6722
- str r0, [r4, #228]
6983
+ str r0, [r4, #232]
67236984 mov r0, r6
67246985 bl ftl_malloc
67256986 str r0, [r4, #1152]
67266987 ldr r0, [r4, #3300]
67276988 mul r0, r8, r0
67286989 bl ftl_malloc
6729
- ldrh r6, [r5, #2398]
6730
- ldrh r3, [r5, #2320]
6990
+ ldrh r3, [r5, #2324]
6991
+ ldrh r6, [r5, #2400]
6992
+ str r0, [r5, #2448]
67316993 lsls r3, r3, #1
6994
+ mov r0, r6
67326995 adds r3, r3, #1
67336996 str r3, [r4, #1156]
6734
- str r0, [r5, #2444]
6735
- mov r0, r6
67366997 bl ftl_malloc
67376998 str r0, [r4, #3316]
67386999 mov r0, r6
....@@ -6758,272 +7019,274 @@
67587019 ldr r0, [r4, #1156]
67597020 muls r0, r7, r0
67607021 bl ftl_malloc
6761
- ldrh r3, [r5, #2320]
6762
- ldrh r6, [r5, #2400]
6763
- muls r6, r3, r6
7022
+ ldrh r3, [r5, #2402]
7023
+ ldrh r6, [r5, #2324]
67647024 str r0, [r4, #1140]
7025
+ muls r6, r3, r6
67657026 mov r0, r6
67667027 bl ftl_malloc
67677028 str r0, [r4, #3340]
67687029 lsls r0, r6, #3
67697030 bl ftl_malloc
6770
- ldrh r3, [r5, #2400]
7031
+ ldrh r3, [r5, #2402]
67717032 str r0, [r4, #3344]
67727033 ldr r0, [r4, #1156]
67737034 muls r0, r3, r0
67747035 bl ftl_malloc
6775
- ldrh r3, [r5, #2400]
7036
+ ldrh r3, [r5, #2402]
67767037 str r0, [r4, #1148]
67777038 ldr r0, [r4, #3300]
67787039 muls r0, r3, r0
67797040 bl ftl_malloc
67807041 str r0, [r4, #3348]
6781
- ldrh r0, [r5, #2330]
7042
+ ldrh r0, [r5, #2334]
67827043 lsls r0, r0, #1
67837044 uxth r0, r0
67847045 strh r0, [r4, #3352] @ movhi
67857046 bl ftl_malloc
7047
+ ldrh r3, [r4, #3352]
67867048 str r0, [r4, #3356]
6787
- ldrh r0, [r4, #3352]
6788
- addw r0, r0, #547
6789
- lsrs r0, r0, #9
6790
- strh r0, [r4, #3352] @ movhi
6791
- lsls r0, r0, #9
7049
+ ldr r0, .L1034+8
7050
+ addw r3, r3, #547
7051
+ lsrs r3, r3, #9
7052
+ and r0, r0, r3, lsl #9
7053
+ strh r3, [r4, #3352] @ movhi
67927054 bl ftl_malloc
6793
- ldrh r6, [r5, #2330]
6794
- lsls r6, r6, #1
7055
+ ldrh r6, [r5, #2334]
67957056 str r0, [r4, #3360]
67967057 adds r0, r0, #32
6797
- str r0, [r4, #232]
7058
+ str r0, [r4, #236]
7059
+ lsls r6, r6, #1
67987060 mov r0, r6
67997061 bl ftl_malloc
68007062 str r0, [r4, #3364]
68017063 mov r0, r6
68027064 bl ftl_malloc
6803
- ldr r6, [r5, #2416]
7065
+ ldr r6, [r5, #2420]
7066
+ str r0, [r4, #300]
68047067 lsls r6, r6, #1
6805
- str r0, [r4, #296]
68067068 mov r0, r6
68077069 bl ftl_malloc
68087070 str r0, [r4, #3368]
68097071 mov r0, r6
68107072 bl ftl_malloc
68117073 str r0, [r4, #3372]
6812
- ldrh r0, [r5, #2330]
7074
+ ldrh r0, [r5, #2334]
68137075 lsrs r0, r0, #3
68147076 adds r0, r0, #4
68157077 bl ftl_malloc
6816
- str r0, [r4, #472]
6817
- ldrh r0, [r5, #2408]
7078
+ str r0, [r5, #32]
7079
+ ldrh r0, [r5, #2412]
68187080 lsls r0, r0, #1
68197081 bl ftl_malloc
6820
- str r0, [r5, #2436]
6821
- ldrh r0, [r5, #2408]
7082
+ str r0, [r5, #2440]
7083
+ ldrh r0, [r5, #2412]
68227084 lsls r0, r0, #1
68237085 bl ftl_malloc
68247086 str r0, [r4, #3376]
6825
- ldrh r0, [r5, #2408]
7087
+ ldrh r0, [r5, #2412]
68267088 lsls r0, r0, #2
68277089 bl ftl_malloc
68287090 str r0, [r4, #3380]
6829
- ldrh r0, [r5, #2410]
7091
+ ldrh r0, [r5, #2414]
68307092 lsls r0, r0, #2
68317093 bl ftl_malloc
6832
- ldrh r2, [r5, #2410]
7094
+ ldrh r2, [r5, #2414]
68337095 movs r1, #0
6834
- lsls r2, r2, #2
68357096 str r0, [r4, #3384]
7097
+ lsls r2, r2, #2
68367098 bl ftl_memset
6837
- ldrh r6, [r5, #2424]
7099
+ ldrh r6, [r5, #2428]
68387100 lsls r6, r6, #2
68397101 mov r0, r6
68407102 bl ftl_malloc
68417103 str r0, [r4, #3388]
68427104 mov r0, r6
68437105 bl ftl_malloc
6844
- ldr r6, .L1054+8
68457106 str r0, [r4, #3392]
6846
- ldr r0, [r5, #2416]
7107
+ ldr r0, [r5, #2420]
7108
+ ldr r6, .L1034+12
68477109 lsls r0, r0, #2
68487110 bl ftl_malloc
68497111 str r0, [r4, #3396]
6850
- ldrh r0, [r5, #2426]
7112
+ ldrh r0, [r5, #2430]
68517113 muls r0, r7, r0
68527114 bl ftl_malloc
6853
- ldrh r3, [r5, #2426]
6854
- str r0, [r4, #460]
6855
- ldrh r0, [r5, #2398]
7115
+ ldrh r3, [r5, #2430]
7116
+ str r0, [r4, #464]
7117
+ ldrh r0, [r5, #2400]
68567118 muls r0, r3, r0
68577119 bl ftl_malloc
6858
- ldrh r3, [r5, #2330]
7120
+ ldrh r3, [r5, #2334]
68597121 str r0, [r4, #3400]
68607122 movs r0, #6
68617123 muls r0, r3, r0
68627124 bl ftl_malloc
6863
- ldrh r3, [r5, #2386]
6864
- adds r3, r3, #31
6865
- asrs r3, r3, #5
6866
- strh r3, [r4, #3404] @ movhi
6867
- str r0, [r4, #288]
6868
- ldrh r0, [r5, #2342]
7125
+ str r0, [r4, #292]
7126
+ ldrh r0, [r5, #2388]
7127
+ ldrh r3, [r5, #2346]
7128
+ adds r0, r0, #31
7129
+ asrs r0, r0, #5
7130
+ strh r0, [r4, #3404] @ movhi
68697131 muls r0, r3, r0
68707132 lsls r0, r0, #2
68717133 bl ftl_malloc
68727134 ldrh r2, [r4, #3404]
6873
- ldrh r7, [r5, #2342]
68747135 movs r3, #1
7136
+ ldrh r7, [r5, #2346]
7137
+ str r0, [r5, #2484]
68757138 lsls r2, r2, #2
68767139 mov r1, r2
6877
- str r0, [r5, #2480]
6878
-.L952:
7140
+.L934:
68797141 cmp r3, r7
6880
- bcs .L1052
6881
- ldr r0, [r5, #2480]
7142
+ bcc .L935
7143
+ ldr r2, .L1034+16
7144
+ movs r1, #0
7145
+ add r3, r2, r3, lsl #2
7146
+ adds r2, r2, #56
7147
+ adds r3, r3, #24
7148
+.L936:
7149
+ cmp r2, r3
7150
+ bne .L937
7151
+ ldr r3, [r4, #3368]
7152
+ cbnz r3, .L938
7153
+.L940:
7154
+ ldr r1, .L1034+20
7155
+ ldr r0, .L1034+24
7156
+ bl printk
7157
+ mov r0, #-1
7158
+ pop {r3, r4, r5, r6, r7, r8, r9, pc}
7159
+.L935:
7160
+ ldr r0, [r5, #2484]
68827161 adds r3, r3, #1
68837162 add r0, r0, r1
68847163 add r1, r1, r2
68857164 str r0, [r6, #4]!
6886
- b .L952
6887
-.L1052:
6888
- ldr r2, .L1054+12
6889
- movs r1, #0
6890
-.L954:
6891
- cmp r3, #8
6892
- beq .L1053
6893
- add r0, r2, r3, lsl #2
6894
- adds r3, r3, #1
6895
- str r1, [r0, #28]
6896
- b .L954
6897
-.L1053:
6898
- ldr r2, [r4, #3368]
6899
- ldr r3, .L1054
6900
- cbnz r2, .L956
6901
-.L958:
6902
- ldr r1, .L1054+16
6903
- ldr r0, .L1054+20
6904
- bl printk
6905
- mov r0, #-1
6906
- pop {r3, r4, r5, r6, r7, r8, r9, pc}
6907
-.L1055:
7165
+ b .L934
7166
+.L937:
7167
+ str r1, [r3, #4]!
7168
+ b .L936
7169
+.L1035:
69087170 .align 2
6909
-.L1054:
7171
+.L1034:
69107172 .word .LANCHOR2
69117173 .word .LANCHOR0
6912
- .word .LANCHOR0+2480
6913
- .word .LANCHOR0+2452
7174
+ .word 33553920
7175
+ .word .LANCHOR0+2484
7176
+ .word .LANCHOR0+2456
69147177 .word .LANCHOR3
69157178 .word .LC81
6916
-.L956:
6917
- ldr r2, [r3, #3372]
6918
- cmp r2, #0
6919
- beq .L958
6920
- ldr r2, [r3, #3388]
6921
- cmp r2, #0
6922
- beq .L958
6923
- ldr r2, [r3, #3396]
6924
- cmp r2, #0
6925
- beq .L958
6926
- ldr r2, [r3, #460]
6927
- cmp r2, #0
6928
- beq .L958
6929
- ldr r2, [r3, #3400]
6930
- cmp r2, #0
6931
- beq .L958
6932
- ldr r2, [r3, #288]
6933
- cmp r2, #0
6934
- beq .L958
6935
- ldr r2, [r5, #2480]
6936
- cmp r2, #0
6937
- beq .L958
6938
- ldr r3, [r3, #296]
7179
+.L938:
7180
+ ldr r3, [r4, #3372]
69397181 cmp r3, #0
6940
- beq .L958
6941
- ldr r2, [r4, #1160]
6942
- ldr r3, .L1056
6943
- cmp r2, #0
6944
- beq .L958
6945
- ldr r2, [r3, #1168]
6946
- cmp r2, #0
6947
- beq .L958
6948
- ldr r2, [r3, #3304]
6949
- cmp r2, #0
6950
- beq .L958
6951
- ldr r2, [r3, #3312]
6952
- cmp r2, #0
6953
- beq .L958
6954
- ldr r2, [r3, #228]
6955
- cmp r2, #0
6956
- beq .L958
6957
- ldr r2, [r3, #1152]
6958
- cmp r2, #0
6959
- beq .L958
6960
- ldr r2, [r3, #3308]
6961
- cmp r2, #0
6962
- beq .L958
6963
- ldr r2, [r3, #3316]
6964
- cmp r2, #0
6965
- beq .L958
6966
- ldr r2, [r3, #3320]
6967
- cmp r2, #0
6968
- beq .L958
6969
- ldr r3, [r3, #3324]
7182
+ beq .L940
7183
+ ldr r3, [r4, #3388]
69707184 cmp r3, #0
6971
- beq .L958
6972
- ldr r2, [r4, #1144]
6973
- ldr r3, .L1056
6974
- cmp r2, #0
6975
- beq .L958
6976
- ldr r2, [r3, #3332]
6977
- cmp r2, #0
6978
- beq .L958
6979
- ldr r2, [r3, #3336]
6980
- cmp r2, #0
6981
- beq .L958
6982
- ldr r2, [r3, #1140]
6983
- cmp r2, #0
6984
- beq .L958
6985
- ldr r2, [r3, #3340]
6986
- cmp r2, #0
6987
- beq .L958
6988
- ldr r2, [r3, #3344]
6989
- cmp r2, #0
6990
- beq .L958
6991
- ldr r2, [r3, #1148]
6992
- cmp r2, #0
6993
- beq .L958
6994
- ldr r2, [r3, #232]
6995
- cmp r2, #0
6996
- beq .L958
6997
- ldr r3, [r3, #3356]
7185
+ beq .L940
7186
+ ldr r3, [r4, #3396]
69987187 cmp r3, #0
6999
- beq .L958
7000
- ldr r3, .L1056+4
7001
- ldr r3, [r3, #2436]
7188
+ beq .L940
7189
+ ldr r3, [r4, #464]
70027190 cmp r3, #0
7003
- beq .L958
7004
- ldr r3, .L1056
7191
+ beq .L940
7192
+ ldr r3, [r4, #3400]
7193
+ cmp r3, #0
7194
+ beq .L940
7195
+ ldr r3, [r4, #292]
7196
+ cmp r3, #0
7197
+ beq .L940
7198
+ ldr r3, [r5, #2484]
7199
+ cmp r3, #0
7200
+ beq .L940
7201
+ ldr r3, [r4, #300]
7202
+ cmp r3, #0
7203
+ beq .L940
7204
+ ldr r3, [r4, #1160]
7205
+ cmp r3, #0
7206
+ beq .L940
7207
+ ldr r3, [r4, #1168]
7208
+ cmp r3, #0
7209
+ beq .L940
7210
+ ldr r3, [r4, #3304]
7211
+ cmp r3, #0
7212
+ beq .L940
7213
+ ldr r3, [r4, #3312]
7214
+ cmp r3, #0
7215
+ beq .L940
7216
+ ldr r3, [r4, #232]
7217
+ cmp r3, #0
7218
+ beq .L940
7219
+ ldr r3, [r4, #1152]
7220
+ cmp r3, #0
7221
+ beq .L940
7222
+ ldr r3, [r4, #3308]
7223
+ cmp r3, #0
7224
+ beq .L940
7225
+ ldr r3, [r4, #3316]
7226
+ cmp r3, #0
7227
+ beq .L940
7228
+ ldr r3, [r4, #3320]
7229
+ cmp r3, #0
7230
+ beq .L940
7231
+ ldr r3, [r4, #3324]
7232
+ cmp r3, #0
7233
+ beq .L940
7234
+ ldr r3, [r4, #1144]
7235
+ cmp r3, #0
7236
+ beq .L940
7237
+ ldr r3, [r4, #3332]
7238
+ cmp r3, #0
7239
+ beq .L940
7240
+ ldr r3, [r4, #3336]
7241
+ cmp r3, #0
7242
+ beq .L940
7243
+ ldr r3, [r4, #1140]
7244
+ cmp r3, #0
7245
+ beq .L940
7246
+ ldr r3, [r4, #3340]
7247
+ cmp r3, #0
7248
+ beq .L940
7249
+ ldr r3, [r4, #3344]
7250
+ cmp r3, #0
7251
+ beq .L940
7252
+ ldr r3, [r4, #1148]
7253
+ cmp r3, #0
7254
+ beq .L940
7255
+ ldr r3, [r4, #236]
7256
+ cmp r3, #0
7257
+ beq .L940
7258
+ ldr r3, [r4, #3356]
7259
+ cmp r3, #0
7260
+ beq .L940
7261
+ ldr r3, .L1036
7262
+ ldr r3, [r3, #2440]
7263
+ cmp r3, #0
7264
+ beq .L940
7265
+ ldr r3, .L1036+4
70057266 ldr r2, [r3, #3376]
70067267 cmp r2, #0
7007
- beq .L958
7268
+ beq .L940
70087269 ldr r2, [r3, #3380]
70097270 cmp r2, #0
7010
- beq .L958
7271
+ beq .L940
70117272 ldr r3, [r3, #3384]
70127273 cmp r3, #0
7013
- beq .L958
7274
+ beq .L940
70147275 movs r0, #0
70157276 pop {r3, r4, r5, r6, r7, r8, r9, pc}
7016
-.L1057:
7277
+.L1037:
70177278 .align 2
7018
-.L1056:
7019
- .word .LANCHOR2
7279
+.L1036:
70207280 .word .LANCHOR0
7281
+ .word .LANCHOR2
70217282 .fnend
70227283 .size FtlMemInit, .-FtlMemInit
70237284 .align 1
70247285 .global FtlBbt2Bitmap
7286
+ .syntax unified
70257287 .thumb
70267288 .thumb_func
7289
+ .fpu softvfp
70277290 .type FtlBbt2Bitmap, %function
70287291 FtlBbt2Bitmap:
70297292 .fnstart
....@@ -7031,101 +7294,107 @@
70317294 @ frame_needed = 0, uses_anonymous_args = 0
70327295 push {r3, r4, r5, r6, r7, lr}
70337296 .save {r3, r4, r5, r6, r7, lr}
7034
- mov r4, r0
7035
- ldr r3, .L1063
7036
- mov r0, r1
70377297 mov r5, r1
7298
+ ldr r3, .L1043
7299
+ mov r4, r0
70387300 movs r1, #0
7301
+ mov r0, r5
70397302 movs r7, #1
70407303 ldrh r2, [r3, #3404]
70417304 lsls r2, r2, #2
70427305 bl ftl_memset
7043
- ldr r1, .L1063+4
7306
+ ldr r0, .L1043+4
70447307 subs r2, r4, #2
7308
+ movw ip, #65535
70457309 addw r4, r4, #1022
7046
- movw lr, #65535
7047
-.L1060:
7310
+.L1040:
70487311 ldrh r3, [r2, #2]!
7049
- cmp r3, lr
7050
- beq .L1058
7051
- lsrs r0, r3, #5
7312
+ cmp r3, ip
7313
+ beq .L1038
7314
+ lsrs r6, r3, #5
70527315 and r3, r3, #31
70537316 lsl r3, r7, r3
70547317 cmp r2, r4
7055
- ldr r6, [r5, r0, lsl #2]
7056
- orr r3, r3, r6
7057
- str r3, [r5, r0, lsl #2]
7058
- ldrh r3, [r1, #2458]
7318
+ ldr r1, [r5, r6, lsl #2]
7319
+ orr r3, r3, r1
7320
+ str r3, [r5, r6, lsl #2]
7321
+ ldrh r3, [r0, #2462]
70597322 add r3, r3, #1
7060
- strh r3, [r1, #2458] @ movhi
7061
- bne .L1060
7062
-.L1058:
7323
+ strh r3, [r0, #2462] @ movhi
7324
+ bne .L1040
7325
+.L1038:
70637326 pop {r3, r4, r5, r6, r7, pc}
7064
-.L1064:
7327
+.L1044:
70657328 .align 2
7066
-.L1063:
7329
+.L1043:
70677330 .word .LANCHOR2
70687331 .word .LANCHOR0
70697332 .fnend
70707333 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap
70717334 .align 1
70727335 .global FtlBbtMemInit
7336
+ .syntax unified
70737337 .thumb
70747338 .thumb_func
7339
+ .fpu softvfp
70757340 .type FtlBbtMemInit, %function
70767341 FtlBbtMemInit:
70777342 .fnstart
70787343 @ args = 0, pretend = 0, frame = 0
70797344 @ frame_needed = 0, uses_anonymous_args = 0
70807345 @ link register save eliminated.
7081
- ldr r0, .L1066
7346
+ ldr r0, .L1046
70827347 movw r3, #65535
7083
- movs r1, #255
70847348 movs r2, #16
7085
- add r0, r0, #2464
7086
- strh r3, [r0, #-12] @ movhi
7349
+ movs r1, #255
7350
+ strh r3, [r0, #2456] @ movhi
70877351 movs r3, #0
7088
- strh r3, [r0, #-6] @ movhi
7352
+ strh r3, [r0, #2462] @ movhi
7353
+ addw r0, r0, #2468
70897354 b ftl_memset
7090
-.L1067:
7355
+.L1047:
70917356 .align 2
7092
-.L1066:
7357
+.L1046:
70937358 .word .LANCHOR0
70947359 .fnend
70957360 .size FtlBbtMemInit, .-FtlBbtMemInit
70967361 .align 1
70977362 .global FtlFreeSysBlkQueueInit
7363
+ .syntax unified
70987364 .thumb
70997365 .thumb_func
7366
+ .fpu softvfp
71007367 .type FtlFreeSysBlkQueueInit, %function
71017368 FtlFreeSysBlkQueueInit:
71027369 .fnstart
71037370 @ args = 0, pretend = 0, frame = 0
71047371 @ frame_needed = 0, uses_anonymous_args = 0
7105
- ldr r3, .L1069
7372
+ ldr r3, .L1049
71067373 mov r2, #2048
71077374 push {r4, lr}
71087375 .save {r4, lr}
71097376 movs r4, #0
7110
- strh r0, [r3, #2512] @ movhi
7111
- addw r0, r3, #2520
71127377 mov r1, r4
7113
- strh r4, [r3, #2514] @ movhi
7114
- strh r4, [r3, #2516] @ movhi
7378
+ strh r0, [r3, #2516] @ movhi
7379
+ addw r0, r3, #2524
71157380 strh r4, [r3, #2518] @ movhi
7381
+ strh r4, [r3, #2520] @ movhi
7382
+ strh r4, [r3, #2522] @ movhi
71167383 bl ftl_memset
71177384 mov r0, r4
71187385 pop {r4, pc}
7119
-.L1070:
7386
+.L1050:
71207387 .align 2
7121
-.L1069:
7388
+.L1049:
71227389 .word .LANCHOR0
71237390 .fnend
71247391 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
71257392 .align 1
71267393 .global ftl_free_no_use_map_blk
7394
+ .syntax unified
71277395 .thumb
71287396 .thumb_func
7397
+ .fpu softvfp
71297398 .type ftl_free_no_use_map_blk, %function
71307399 ftl_free_no_use_map_blk:
71317400 .fnstart
....@@ -7136,159 +7405,142 @@
71367405 movs r1, #0
71377406 ldrh r2, [r0, #10]
71387407 mov r4, r0
7139
- ldr r6, [r0, #20]
7408
+ ldr r5, [r0, #20]
71407409 ldr r7, [r0, #12]
7141
- ldr r5, [r0, #24]
7410
+ ldr r6, [r0, #24]
71427411 lsls r2, r2, #1
7143
- mov r0, r6
7412
+ mov r0, r5
71447413 bl ftl_memset
7145
- movs r1, #0
7146
-.L1072:
7147
- ldrh r2, [r4, #6]
7148
- uxth r3, r1
7149
- cmp r2, r3
7150
- bls .L1091
7151
- ldr r2, [r5, r3, lsl #2]
7152
- movs r0, #0
7153
- ubfx r2, r2, #10, #16
7154
-.L1073:
7155
- ldrh lr, [r4, #10]
7156
- uxth r3, r0
7157
- cmp lr, r3
7158
- bls .L1092
7159
- ldrh lr, [r7, r3, lsl #1]
7160
- cmp lr, r2
7161
- bne .L1074
7162
- cbz r2, .L1074
7163
- ldrh lr, [r6, r3, lsl #1]
7164
- add lr, lr, #1
7165
- strh lr, [r6, r3, lsl #1] @ movhi
7166
-.L1074:
7167
- adds r0, r0, #1
7168
- b .L1073
7169
-.L1092:
7170
- adds r1, r1, #1
7171
- b .L1072
7172
-.L1091:
7173
- ldr r3, .L1095
7174
- mov r8, #0
7175
- mov r10, r8
7176
- ldrh r2, [r3, #2390]
7414
+ movs r3, #0
7415
+.L1052:
7416
+ ldrh r1, [r4, #6]
7417
+ uxth r2, r3
7418
+ cmp r1, r2
7419
+ bhi .L1056
7420
+ ldr r3, .L1071
7421
+ movs r6, #0
7422
+ mov r9, r6
7423
+ mov fp, r6
7424
+ ldrh r2, [r3, #2392]
71777425 ldrh r3, [r4]
7178
- strh r2, [r6, r3, lsl #1] @ movhi
7179
- mov r2, r8
7180
- ldrh r9, [r6]
7181
-.L1077:
7426
+ strh r2, [r5, r3, lsl #1] @ movhi
7427
+ ldrh r10, [r5]
7428
+.L1057:
71827429 ldrh r3, [r4, #10]
7183
- uxth r5, r8
7184
- cmp r3, r5
7185
- bls .L1093
7186
- ldrh r3, [r6, r5, lsl #1]
7187
- lsls r1, r5, #1
7188
- cmp r9, r3
7189
- bls .L1078
7190
- ldrh r0, [r7, r5, lsl #1]
7191
- add fp, r7, r1
7192
- cbnz r0, .L1079
7193
- b .L1080
7194
-.L1078:
7195
- cbnz r3, .L1080
7196
- ldrh r0, [r7, r1]
7197
- add fp, r7, r1
7198
- cbz r0, .L1080
7199
- mov r5, r2
7200
- b .L1082
7201
-.L1079:
7202
- cbnz r3, .L1094
7203
- mov r9, r3
7204
-.L1082:
7430
+ uxth r1, r6
7431
+ cmp r3, r1
7432
+ bhi .L1061
7433
+ mov r0, r9
7434
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
7435
+.L1056:
7436
+ uxth r2, r3
7437
+ ldr r1, [r6, r2, lsl #2]
7438
+ movs r2, #0
7439
+ ubfx r1, r1, #10, #16
7440
+.L1053:
7441
+ ldrh ip, [r4, #10]
7442
+ uxth r0, r2
7443
+ cmp ip, r0
7444
+ bhi .L1055
7445
+ adds r3, r3, #1
7446
+ b .L1052
7447
+.L1055:
7448
+ uxth r0, r2
7449
+ ldrh ip, [r7, r0, lsl #1]
7450
+ cmp ip, r1
7451
+ bne .L1054
7452
+ cbz r1, .L1054
7453
+ ldrh ip, [r5, r0, lsl #1]
7454
+ add ip, ip, #1
7455
+ strh ip, [r5, r0, lsl #1] @ movhi
7456
+.L1054:
7457
+ adds r2, r2, #1
7458
+ b .L1053
7459
+.L1061:
7460
+ uxth r2, r6
7461
+ ldrh r3, [r5, r2, lsl #1]
7462
+ lsl r8, r2, #1
7463
+ cmp r10, r3
7464
+ bls .L1058
7465
+ ldrh r0, [r7, r2, lsl #1]
7466
+ add r8, r8, r7
7467
+ cbnz r0, .L1059
7468
+.L1060:
7469
+ adds r6, r6, #1
7470
+ b .L1057
7471
+.L1058:
7472
+ cmp r3, #0
7473
+ bne .L1060
7474
+ ldrh r0, [r7, r2, lsl #1]
7475
+ add r8, r8, r7
7476
+ cmp r0, #0
7477
+ beq .L1060
7478
+.L1062:
72057479 movs r1, #1
72067480 bl FtlFreeSysBlkQueueIn
7207
- strh r10, [fp] @ movhi
7481
+ strh fp, [r8] @ movhi
72087482 ldrh r3, [r4, #8]
7209
- mov r2, r5
72107483 subs r3, r3, #1
72117484 strh r3, [r4, #8] @ movhi
7212
-.L1080:
7213
- add r8, r8, #1
7214
- b .L1077
7215
-.L1094:
7216
- mov r2, r5
7217
- mov r9, r3
7218
- b .L1080
7219
-.L1093:
7220
- mov r0, r2
7221
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
7222
-.L1096:
7485
+ b .L1060
7486
+.L1059:
7487
+ mov r9, r1
7488
+ mov r10, r3
7489
+ cmp r3, #0
7490
+ beq .L1062
7491
+ b .L1060
7492
+.L1072:
72237493 .align 2
7224
-.L1095:
7494
+.L1071:
72257495 .word .LANCHOR0
72267496 .fnend
72277497 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
72287498 .align 1
72297499 .global FtlL2PDataInit
7500
+ .syntax unified
72307501 .thumb
72317502 .thumb_func
7503
+ .fpu softvfp
72327504 .type FtlL2PDataInit, %function
72337505 FtlL2PDataInit:
72347506 .fnstart
72357507 @ args = 0, pretend = 0, frame = 0
72367508 @ frame_needed = 0, uses_anonymous_args = 0
7237
- push {r3, r4, r5, r6, r7, r8, r9, lr}
7238
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
7509
+ push {r3, r4, r5, r6, r7, lr}
7510
+ .save {r3, r4, r5, r6, r7, lr}
72397511 movs r1, #0
7240
- ldr r4, .L1101
7241
- movs r7, #0
7242
- ldr r5, .L1101+4
7243
- mov r6, r7
7244
- ldr r2, [r4, #2416]
7245
- mov r9, r4
7512
+ ldr r4, .L1076
7513
+ movs r7, #12
7514
+ ldr r5, .L1076+4
7515
+ ldr r2, [r4, #2420]
72467516 ldr r0, [r5, #3372]
72477517 lsls r2, r2, #1
72487518 bl ftl_memset
7249
- ldrh r3, [r4, #2398]
7250
- ldrh r2, [r4, #2426]
7519
+ ldrh r3, [r4, #2400]
72517520 movs r1, #255
7521
+ ldrh r2, [r4, #2430]
72527522 ldr r0, [r5, #3400]
72537523 muls r2, r3, r2
72547524 bl ftl_memset
7525
+ movs r2, #0
72557526 mov r3, r5
7256
- movs r5, #12
7257
- mov r2, r4
7258
- movw lr, #65535
7259
-.L1098:
7260
- ldrh ip, [r2, #2426]
7261
- adds r0, r7, #1
7262
- uxth r7, r7
7263
- ldr r1, .L1101
7264
- cmp ip, r7
7265
- bls .L1100
7266
- mul r1, r5, r7
7267
- ldr ip, [r3, #460]
7268
- add r8, ip, r1
7269
- str r6, [r8, #4]
7270
- strh lr, [ip, r1] @ movhi
7271
- ldr r4, [r3, #460]
7272
- add ip, r4, r1
7273
- ldrh r1, [r9, #2398]
7274
- muls r1, r7, r1
7275
- ldr r7, [r3, #3400]
7276
- bic r1, r1, #3
7277
- add r1, r1, r7
7278
- mov r7, r0
7279
- str r1, [ip, #8]
7280
- b .L1098
7281
-.L1100:
7282
- movw r2, #65535
7283
- strh r2, [r3, #3410] @ movhi
7284
- strh r2, [r3, #3408] @ movhi
7285
- ldr r2, [r1, #2416]
7527
+ movw r1, #65535
7528
+ mov ip, r2
7529
+.L1074:
7530
+ ldrh r5, [r4, #2430]
7531
+ uxth r0, r2
7532
+ adds r6, r2, #1
7533
+ cmp r5, r0
7534
+ bhi .L1075
7535
+ ldr r2, [r4, #2420]
7536
+ strh r1, [r3, #3410] @ movhi
7537
+ strh r1, [r3, #3408] @ movhi
72867538 strh r2, [r3, #3418] @ movhi
72877539 movw r2, #61634
72887540 strh r2, [r3, #3412] @ movhi
72897541 ldrh r2, [r3, #3452]
72907542 strh r2, [r3, #3416] @ movhi
7291
- ldrh r2, [r1, #2424]
7543
+ ldrh r2, [r4, #2428]
72927544 strh r2, [r3, #3414] @ movhi
72937545 ldr r2, [r3, #3368]
72947546 str r2, [r3, #3420]
....@@ -7298,18 +7550,37 @@
72987550 str r2, [r3, #3428]
72997551 ldr r2, [r3, #3388]
73007552 str r2, [r3, #3432]
7301
- pop {r3, r4, r5, r6, r7, r8, r9, pc}
7302
-.L1102:
7553
+ pop {r3, r4, r5, r6, r7, pc}
7554
+.L1075:
7555
+ uxth r2, r2
7556
+ ldr r0, [r3, #464]
7557
+ mul r5, r7, r2
7558
+ add lr, r0, r5
7559
+ str ip, [lr, #4]
7560
+ strh r1, [r0, r5] @ movhi
7561
+ ldr r0, [r3, #464]
7562
+ add r0, r0, r5
7563
+ ldrh r5, [r4, #2400]
7564
+ muls r2, r5, r2
7565
+ ldr r5, [r3, #3400]
7566
+ bic r2, r2, #3
7567
+ add r2, r2, r5
7568
+ str r2, [r0, #8]
7569
+ mov r2, r6
7570
+ b .L1074
7571
+.L1077:
73037572 .align 2
7304
-.L1101:
7573
+.L1076:
73057574 .word .LANCHOR0
73067575 .word .LANCHOR2
73077576 .fnend
73087577 .size FtlL2PDataInit, .-FtlL2PDataInit
73097578 .align 1
73107579 .global FtlVariablesInit
7580
+ .syntax unified
73117581 .thumb
73127582 .thumb_func
7583
+ .fpu softvfp
73137584 .type FtlVariablesInit, %function
73147585 FtlVariablesInit:
73157586 .fnstart
....@@ -7317,56 +7588,58 @@
73177588 @ frame_needed = 0, uses_anonymous_args = 0
73187589 push {r4, r5, r6, lr}
73197590 .save {r4, r5, r6, lr}
7320
- movs r4, #0
7321
- ldr r6, .L1104
73227591 movw r3, #65535
7323
- ldr r5, .L1104+4
7592
+ ldr r6, .L1079
7593
+ movs r4, #0
73247594 mov r1, r4
7325
- ldrh r2, [r6, #2408]
7326
- ldr r0, [r6, #2436]
7595
+ ldr r5, .L1079+4
7596
+ ldrh r2, [r6, #2412]
7597
+ ldr r0, [r6, #2440]
73277598 strh r3, [r5, #3460] @ movhi
73287599 mov r3, #-1
7329
- lsls r2, r2, #1
73307600 str r3, [r5, #3472]
7601
+ lsls r2, r2, #1
73317602 str r4, [r5, #3456]
73327603 str r4, [r5, #3464]
73337604 str r4, [r5, #3468]
7334
- str r4, [r6, #2244]
7335
- strh r4, [r6, #2434] @ movhi
7605
+ str r4, [r6, #2248]
7606
+ strh r4, [r6, #2438] @ movhi
73367607 bl ftl_memset
7337
- ldrh r2, [r6, #2330]
7608
+ ldrh r2, [r6, #2334]
73387609 mov r1, r4
7339
- ldr r0, [r5, #232]
7610
+ ldr r0, [r5, #236]
73407611 lsls r2, r2, #1
73417612 bl ftl_memset
7342
- ldrh r2, [r6, #2330]
7613
+ ldrh r2, [r6, #2334]
73437614 mov r1, r4
73447615 ldr r0, [r5, #3356]
73457616 lsls r2, r2, #1
73467617 bl ftl_memset
73477618 mov r1, r4
7348
- add r0, r5, #240
73497619 movs r2, #48
7620
+ add r0, r5, #244
73507621 bl ftl_memset
7351
- mov r1, r4
73527622 mov r2, #512
7353
- add r0, r5, #608
7623
+ mov r1, r4
7624
+ add r0, r5, #604
73547625 bl ftl_memset
73557626 bl FtlGcBufInit
73567627 bl FtlL2PDataInit
73577628 mov r0, r4
73587629 pop {r4, r5, r6, pc}
7359
-.L1105:
7630
+.L1080:
73607631 .align 2
7361
-.L1104:
7632
+.L1079:
73627633 .word .LANCHOR0
73637634 .word .LANCHOR2
73647635 .fnend
73657636 .size FtlVariablesInit, .-FtlVariablesInit
73667637 .align 1
73677638 .global SupperBlkListInit
7639
+ .syntax unified
73687640 .thumb
73697641 .thumb_func
7642
+ .fpu softvfp
73707643 .type SupperBlkListInit, %function
73717644 SupperBlkListInit:
73727645 .fnstart
....@@ -7374,119 +7647,121 @@
73747647 @ frame_needed = 0, uses_anonymous_args = 0
73757648 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
73767649 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7377
- movs r2, #6
7378
- ldr r6, .L1117
73797650 movs r5, #0
7380
- ldr r4, .L1117+4
7651
+ ldr r6, .L1091
7652
+ movs r2, #6
7653
+ mov r9, r5
7654
+ mov r10, r5
7655
+ ldr r4, .L1091+4
7656
+ movw fp, #65535
7657
+ ldrh r3, [r6, #2334]
7658
+ mov r8, r6
73817659 .pad #20
73827660 sub sp, sp, #20
73837661 movs r1, #0
7384
- mov r9, r5
7385
- ldrh r3, [r6, #2330]
7386
- mov r10, r5
7387
- ldr r0, [r4, #288]
7388
- mov r8, r6
7662
+ ldr r0, [r4, #292]
73897663 muls r2, r3, r2
73907664 bl ftl_memset
7391
- str r5, [r4, #308]
7392
- str r5, [r4, #292]
7393
- str r5, [r4, #300]
7394
- strh r5, [r4, #304] @ movhi
7395
- strh r5, [r4, #312] @ movhi
7665
+ str r5, [r4, #312]
7666
+ str r5, [r4, #296]
7667
+ str r5, [r4, #304]
7668
+ strh r5, [r4, #308] @ movhi
7669
+ strh r5, [r4, #316] @ movhi
73967670 strh r5, [r4, #3272] @ movhi
7397
-.L1107:
7398
- uxth fp, r5
7399
- ldrh r2, [r8, #2328]
7400
- sxth r7, fp
7401
- cmp r7, r2
7402
- bge .L1114
7403
- ldr r3, .L1117
7404
- movs r2, #0
7405
- mov r6, r2
7406
- ldrh ip, [r3, #2320]
7407
- ldrh r3, [r3, #2388]
7408
- str r3, [sp, #4]
7409
-.L1115:
7410
- sxth r1, r2
7411
- cmp r1, ip
7412
- bge .L1116
7413
- add r1, r1, r8
7414
- str r2, [sp, #12]
7415
- str ip, [sp, #8]
7416
- ldrb r0, [r1, #2348] @ zero_extendqisi2
7417
- mov r1, fp
7671
+.L1082:
7672
+ ldrh r3, [r8, #2332]
7673
+ sxth r7, r5
7674
+ cmp r7, r3
7675
+ bge .L1089
7676
+ ldrh r3, [r8, #2390]
7677
+ uxth r1, r5
7678
+ ldrh r2, [r8, #2324]
7679
+ str r1, [sp, #4]
7680
+ str r3, [sp]
7681
+ movs r3, #0
7682
+ mov r6, r3
7683
+ b .L1090
7684
+.L1084:
7685
+ add r0, r8, r1
7686
+ ldr r1, [sp, #4]
7687
+ ldrb r0, [r0, #2350] @ zero_extendqisi2
7688
+ str r3, [sp, #12]
7689
+ str r2, [sp, #8]
74187690 bl V2P_block
74197691 bl FtlBbmIsBadBlock
7420
- ldr ip, [sp, #8]
7421
- ldr r2, [sp, #12]
7422
- cbnz r0, .L1108
7423
- ldr r3, [sp, #4]
7424
- add r6, r6, r3
7425
- uxth r6, r6
7426
-.L1108:
7427
- adds r2, r2, #1
7428
- b .L1115
7429
-.L1116:
7430
- cbz r6, .L1110
7431
- sxth r1, r6
7692
+ ldr r2, [sp, #8]
7693
+ ldr r3, [sp, #12]
7694
+ cbnz r0, .L1083
7695
+ ldr r1, [sp]
7696
+ add r6, r6, r1
7697
+ sxth r6, r6
7698
+.L1083:
7699
+ adds r3, r3, #1
7700
+.L1090:
7701
+ sxth r1, r3
7702
+ cmp r1, r2
7703
+ blt .L1084
7704
+ lsls r2, r7, #1
7705
+ cbz r6, .L1085
7706
+ mov r1, r6
7707
+ str r2, [sp]
74327708 mov r0, #32768
74337709 bl __aeabi_idiv
7434
- uxth r6, r0
7435
- b .L1111
7436
-.L1110:
7437
- ldr r1, [r4, #296]
7438
- sxth r2, fp
7439
- movw r0, #65535
7440
- strh r0, [r1, r2, lsl #1] @ movhi
7441
-.L1111:
7442
- add r0, r7, r7, lsl #1
7443
- ldr r1, [r4, #288]
7444
- ldr r2, .L1117+4
7445
- add r1, r1, r0, lsl #1
7446
- strh r6, [r1, #4] @ movhi
7447
- ldrh r1, [r4, #316]
7448
- cmp r7, r1
7449
- beq .L1112
7450
- ldrh r1, [r2, #364]
7451
- cmp r7, r1
7452
- beq .L1112
7453
- ldrh r1, [r2, #412]
7454
- cmp r7, r1
7455
- beq .L1112
7456
- ldr r2, [r2, #296]
7457
- ldrh r2, [r2, r7, lsl #1]
7458
- cbnz r2, .L1113
7710
+ ldr r2, [sp]
7711
+ sxth r6, r0
7712
+.L1086:
7713
+ ldr r3, [r4, #292]
7714
+ add r2, r2, r7
7715
+ add r3, r3, r2, lsl #1
7716
+ strh r6, [r3, #4] @ movhi
7717
+ ldrh r3, [r4, #320]
7718
+ cmp r7, r3
7719
+ beq .L1087
7720
+ ldrh r3, [r4, #368]
7721
+ cmp r7, r3
7722
+ beq .L1087
7723
+ ldrh r3, [r4, #416]
7724
+ cmp r7, r3
7725
+ beq .L1087
7726
+ ldr r3, [r4, #300]
7727
+ uxth r0, r5
7728
+ ldrh r3, [r3, r7, lsl #1]
7729
+ cbnz r3, .L1088
74597730 add r9, r9, #1
7460
- mov r0, fp
74617731 uxth r9, r9
74627732 bl INSERT_FREE_LIST
7463
- b .L1112
7464
-.L1113:
7733
+.L1087:
7734
+ adds r5, r5, #1
7735
+ b .L1082
7736
+.L1085:
7737
+ ldr r3, [r4, #300]
7738
+ strh fp, [r3, r7, lsl #1] @ movhi
7739
+ b .L1086
7740
+.L1088:
74657741 add r10, r10, #1
7466
- mov r0, fp
74677742 uxth r10, r10
74687743 bl INSERT_DATA_LIST
7469
-.L1112:
7470
- adds r5, r5, #1
7471
- b .L1107
7472
-.L1114:
7744
+ b .L1087
7745
+.L1089:
74737746 movs r0, #0
7474
- strh r10, [r4, #304] @ movhi
7475
- strh r9, [r4, #312] @ movhi
7747
+ strh r10, [r4, #308] @ movhi
7748
+ strh r9, [r4, #316] @ movhi
74767749 add sp, sp, #20
74777750 @ sp needed
74787751 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7479
-.L1118:
7752
+.L1092:
74807753 .align 2
7481
-.L1117:
7754
+.L1091:
74827755 .word .LANCHOR0
74837756 .word .LANCHOR2
74847757 .fnend
74857758 .size SupperBlkListInit, .-SupperBlkListInit
74867759 .align 1
74877760 .global FtlGcPageVarInit
7761
+ .syntax unified
74887762 .thumb
74897763 .thumb_func
7764
+ .fpu softvfp
74907765 .type FtlGcPageVarInit, %function
74917766 FtlGcPageVarInit:
74927767 .fnstart
....@@ -7495,16 +7770,16 @@
74957770 push {r3, r4, r5, lr}
74967771 .save {r3, r4, r5, lr}
74977772 movs r1, #255
7498
- ldr r5, .L1120
7773
+ ldr r5, .L1094
74997774 movs r3, #0
7500
- ldr r4, .L1120+4
7501
- ldrh r2, [r5, #2392]
7775
+ ldr r4, .L1094+4
7776
+ ldrh r2, [r5, #2394]
75027777 ldr r0, [r4, #1160]
75037778 strh r3, [r4, #1164] @ movhi
75047779 lsls r2, r2, #1
75057780 strh r3, [r4, #1172] @ movhi
75067781 bl ftl_memset
7507
- ldrh r3, [r5, #2392]
7782
+ ldrh r3, [r5, #2394]
75087783 movs r2, #12
75097784 ldr r0, [r4, #1168]
75107785 movs r1, #255
....@@ -7512,17 +7787,19 @@
75127787 bl ftl_memset
75137788 pop {r3, r4, r5, lr}
75147789 b FtlGcBufInit
7515
-.L1121:
7790
+.L1095:
75167791 .align 2
7517
-.L1120:
7792
+.L1094:
75187793 .word .LANCHOR0
75197794 .word .LANCHOR2
75207795 .fnend
75217796 .size FtlGcPageVarInit, .-FtlGcPageVarInit
75227797 .align 1
75237798 .global ftl_memcpy
7799
+ .syntax unified
75247800 .thumb
75257801 .thumb_func
7802
+ .fpu softvfp
75267803 .type ftl_memcpy, %function
75277804 ftl_memcpy:
75287805 .fnstart
....@@ -7534,8 +7811,10 @@
75347811 .size ftl_memcpy, .-ftl_memcpy
75357812 .align 1
75367813 .global FlashReadIdbData
7814
+ .syntax unified
75377815 .thumb
75387816 .thumb_func
7817
+ .fpu softvfp
75397818 .type FlashReadIdbData, %function
75407819 FlashReadIdbData:
75417820 .fnstart
....@@ -7544,94 +7823,93 @@
75447823 push {r3, lr}
75457824 .save {r3, lr}
75467825 mov r2, #2048
7547
- ldr r1, .L1124
7826
+ ldr r1, .L1098
75487827 bl ftl_memcpy
75497828 movs r0, #0
75507829 pop {r3, pc}
7551
-.L1125:
7830
+.L1099:
75527831 .align 2
7553
-.L1124:
7832
+.L1098:
75547833 .word .LANCHOR2+3476
75557834 .fnend
75567835 .size FlashReadIdbData, .-FlashReadIdbData
75577836 .align 1
75587837 .global FlashLoadPhyInfoInRam
7838
+ .syntax unified
75597839 .thumb
75607840 .thumb_func
7841
+ .fpu softvfp
75617842 .type FlashLoadPhyInfoInRam, %function
75627843 FlashLoadPhyInfoInRam:
75637844 .fnstart
75647845 @ args = 0, pretend = 0, frame = 0
75657846 @ frame_needed = 0, uses_anonymous_args = 0
7566
- push {r3, r4, r5, r6, r7, lr}
7567
- .save {r3, r4, r5, r6, r7, lr}
7847
+ push {r4, r5, r6, r7, r8, lr}
7848
+ .save {r4, r5, r6, r7, r8, lr}
75687849 movs r4, #0
7569
- ldr r5, .L1138
7570
-.L1130:
7571
- mov r0, r5
7572
- ldr r1, .L1138+4
7573
- ldrb r2, [r5, #-1] @ zero_extendqisi2
7574
- bl FlashMemCmp8
7575
- mov r6, r0
7576
- cbnz r0, .L1127
7577
- ldr r5, .L1138+8
7578
- lsls r4, r4, #5
7579
- add r2, r5, #508
7580
- adds r7, r2, r4
7581
- beq .L1133
7582
- add r4, r4, r5
7583
- mov r3, r0
7584
- addw r1, r5, #3260
7585
- ldrb r2, [r4, #530] @ zero_extendqisi2
7586
- b .L1132
7587
-.L1127:
7588
- adds r4, r4, #1
7589
- adds r5, r5, #32
7590
- cmp r4, #86
7591
- bne .L1130
7592
- b .L1133
7593
-.L1137:
7594
- adds r3, r3, #1
7595
- cmp r3, #4
7596
- beq .L1131
7597
-.L1132:
7598
- lsls r0, r3, #5
7599
- ldrb r0, [r0, r1] @ zero_extendqisi2
7600
- cmp r0, r2
7601
- bne .L1137
7602
-.L1131:
7603
- ldr r1, .L1138+12
7604
- movs r2, #32
7605
- ldr r0, .L1138+16
7606
- add r1, r1, r3, lsl #5
7607
- bl ftl_memcpy
7608
- mov r1, r7
7609
- movs r2, #32
7610
- ldr r0, .L1138+20
7611
- bl ftl_memcpy
7612
- ldrh r0, [r5, #482]
7613
- bl FlashBlockAlignInit
7614
- b .L1128
7615
-.L1133:
7616
- mov r6, #-1
7617
-.L1128:
7850
+ ldr r6, .L1108
7851
+ ldr r8, .L1108+16
7852
+.L1103:
7853
+ ldrb r2, [r6, #-1] @ zero_extendqisi2
7854
+ mov r1, r8
76187855 mov r0, r6
7619
- pop {r3, r4, r5, r6, r7, pc}
7620
-.L1139:
7856
+ lsls r7, r4, #5
7857
+ bl FlashMemCmp8
7858
+ mov r5, r0
7859
+ cbnz r0, .L1101
7860
+ ldr r4, .L1108+4
7861
+ mov r1, r0
7862
+ add r6, r4, #504
7863
+ addw r3, r4, #3256
7864
+ add r6, r6, r7
7865
+ add r7, r7, r4
7866
+ ldrb r2, [r7, #526] @ zero_extendqisi2
7867
+ mov r0, r3
7868
+.L1102:
7869
+ lsls r7, r1, #5
7870
+ ldrb r7, [r7, r3] @ zero_extendqisi2
7871
+ cmp r7, r2
7872
+ beq .L1105
7873
+ adds r1, r1, #1
7874
+ cmp r1, #4
7875
+ bne .L1102
7876
+.L1105:
7877
+ add r1, r0, r1, lsl #5
7878
+ movs r2, #32
7879
+ ldr r0, .L1108+8
7880
+ bl ftl_memcpy
7881
+ movs r2, #32
7882
+ mov r1, r6
7883
+ ldr r0, .L1108+12
7884
+ bl ftl_memcpy
7885
+ ldrh r0, [r4, #478]
7886
+ bl FlashBlockAlignInit
7887
+ b .L1100
7888
+.L1101:
7889
+ adds r4, r4, #1
7890
+ adds r6, r6, #32
7891
+ cmp r4, #86
7892
+ bne .L1103
7893
+ mov r5, #-1
7894
+.L1100:
7895
+ mov r0, r5
7896
+ pop {r4, r5, r6, r7, r8, pc}
7897
+.L1109:
76217898 .align 2
7622
-.L1138:
7623
- .word .LANCHOR1+509
7624
- .word .LANCHOR0+2068
7899
+.L1108:
7900
+ .word .LANCHOR1+505
76257901 .word .LANCHOR1
7626
- .word .LANCHOR1+3260
7627
- .word .LANCHOR0+48
7628
- .word .LANCHOR1+472
7902
+ .word .LANCHOR0+52
7903
+ .word .LANCHOR1+468
7904
+ .word .LANCHOR0+2072
76297905 .fnend
76307906 .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam
76317907 .align 1
76327908 .global NandcCopy1KB
7909
+ .syntax unified
76337910 .thumb
76347911 .thumb_func
7912
+ .fpu softvfp
76357913 .type NandcCopy1KB, %function
76367914 NandcCopy1KB:
76377915 .fnstart
....@@ -7642,57 +7920,51 @@
76427920 .save {r4, r5, r6, lr}
76437921 mov r4, r2
76447922 add r2, r0, #4096
7645
- ldr r6, [sp, #16]
76467923 add r5, r0, #512
7647
- add r2, r2, r4, lsl #9
7648
- bne .L1141
7649
- cbz r3, .L1142
7650
- mov r0, r2
7651
- mov r1, r3
7924
+ add r0, r2, r4, lsl #9
7925
+ ldr r6, [sp, #16]
7926
+ bne .L1111
7927
+ cbz r3, .L1112
76527928 mov r2, #1024
7929
+ mov r1, r3
76537930 bl ftl_memcpy
7654
-.L1142:
7655
- cbz r6, .L1140
7656
- ldrb r3, [r6, #2] @ zero_extendqisi2
7931
+.L1112:
7932
+ cbz r6, .L1110
76577933 lsrs r4, r4, #1
7658
- ldrb r2, [r6, #1] @ zero_extendqisi2
7934
+ ldr r3, [r6] @ unaligned
76597935 add r4, r4, r4, lsl #1
7660
- lsls r3, r3, #16
7661
- orr r2, r3, r2, lsl #8
7662
- ldrb r3, [r6] @ zero_extendqisi2
76637936 lsls r4, r4, #2
7664
- orrs r3, r3, r2
7665
- ldrb r2, [r6, #3] @ zero_extendqisi2
7666
- orr r3, r3, r2, lsl #24
76677937 str r3, [r5, r4, lsl #2]
76687938 pop {r4, r5, r6, pc}
7669
-.L1141:
7670
- cbz r3, .L1145
7671
- mov r1, r2
7672
- mov r0, r3
7939
+.L1111:
7940
+ cbz r3, .L1115
7941
+ mov r1, r0
76737942 mov r2, #1024
7943
+ mov r0, r3
76747944 bl ftl_memcpy
7675
-.L1145:
7676
- cbz r6, .L1140
7945
+.L1115:
7946
+ cbz r6, .L1110
76777947 lsrs r4, r4, #1
76787948 add r4, r4, r4, lsl #1
76797949 lsls r4, r4, #2
76807950 ldr r3, [r5, r4, lsl #2]
7681
- lsrs r2, r3, #8
76827951 strb r3, [r6]
7952
+ lsrs r2, r3, #8
76837953 strb r2, [r6, #1]
76847954 lsrs r2, r3, #16
76857955 lsrs r3, r3, #24
76867956 strb r2, [r6, #2]
76877957 strb r3, [r6, #3]
7688
-.L1140:
7958
+.L1110:
76897959 pop {r4, r5, r6, pc}
76907960 .fnend
76917961 .size NandcCopy1KB, .-NandcCopy1KB
76927962 .align 1
76937963 .global ftl_memcpy32
7964
+ .syntax unified
76947965 .thumb
76957966 .thumb_func
7967
+ .fpu softvfp
76967968 .type ftl_memcpy32, %function
76977969 ftl_memcpy32:
76987970 .fnstart
....@@ -7701,21 +7973,23 @@
77017973 movs r3, #0
77027974 push {r4, lr}
77037975 .save {r4, lr}
7704
-.L1157:
7976
+.L1127:
77057977 cmp r3, r2
7706
- beq .L1159
7978
+ bne .L1128
7979
+ pop {r4, pc}
7980
+.L1128:
77077981 ldr r4, [r1, r3, lsl #2]
77087982 str r4, [r0, r3, lsl #2]
77097983 adds r3, r3, #1
7710
- b .L1157
7711
-.L1159:
7712
- pop {r4, pc}
7984
+ b .L1127
77137985 .fnend
77147986 .size ftl_memcpy32, .-ftl_memcpy32
77157987 .align 1
77167988 .global ftl_memcmp
7989
+ .syntax unified
77177990 .thumb
77187991 .thumb_func
7992
+ .fpu softvfp
77197993 .type ftl_memcmp, %function
77207994 ftl_memcmp:
77217995 .fnstart
....@@ -7727,56 +8001,66 @@
77278001 .size ftl_memcmp, .-ftl_memcmp
77288002 .align 1
77298003 .global timer_get_time
8004
+ .syntax unified
77308005 .thumb
77318006 .thumb_func
8007
+ .fpu softvfp
77328008 .type timer_get_time, %function
77338009 timer_get_time:
77348010 .fnstart
77358011 @ args = 0, pretend = 0, frame = 0
77368012 @ frame_needed = 0, uses_anonymous_args = 0
77378013 @ link register save eliminated.
7738
- ldr r3, .L1162
8014
+ ldr r3, .L1131
77398015 ldr r0, [r3]
77408016 b jiffies_to_msecs
7741
-.L1163:
8017
+.L1132:
77428018 .align 2
7743
-.L1162:
8019
+.L1131:
77448020 .word jiffies
77458021 .fnend
77468022 .size timer_get_time, .-timer_get_time
77478023 .align 1
77488024 .global FlashSramLoadStore
8025
+ .syntax unified
77498026 .thumb
77508027 .thumb_func
8028
+ .fpu softvfp
77518029 .type FlashSramLoadStore, %function
77528030 FlashSramLoadStore:
77538031 .fnstart
77548032 @ args = 0, pretend = 0, frame = 0
77558033 @ frame_needed = 0, uses_anonymous_args = 0
7756
- push {r4, r5, lr}
7757
- .save {r4, r5, lr}
7758
- mov r5, r0
7759
- ldr r4, .L1167
8034
+ @ link register save eliminated.
8035
+ push {r4, r5}
8036
+ .save {r4, r5}
8037
+ ldr r4, .L1136
77608038 ldr r4, [r4, #1180]
77618039 add r4, r4, #4096
7762
- add r1, r1, r4
7763
- cbz r2, .L1166
7764
- mov r0, r1
7765
- mov r1, r5
7766
-.L1166:
8040
+ add r4, r4, r1
8041
+ cbnz r2, .L1134
77678042 mov r2, r3
7768
- pop {r4, r5, lr}
8043
+ mov r1, r4
8044
+.L1135:
8045
+ pop {r4, r5}
77698046 b ftl_memcpy
7770
-.L1168:
8047
+.L1134:
8048
+ mov r1, r0
8049
+ mov r2, r3
8050
+ mov r0, r4
8051
+ b .L1135
8052
+.L1137:
77718053 .align 2
7772
-.L1167:
8054
+.L1136:
77738055 .word .LANCHOR4
77748056 .fnend
77758057 .size FlashSramLoadStore, .-FlashSramLoadStore
77768058 .align 1
77778059 .global FlashCs123Init
8060
+ .syntax unified
77788061 .thumb
77798062 .thumb_func
8063
+ .fpu softvfp
77808064 .type FlashCs123Init, %function
77818065 FlashCs123Init:
77828066 .fnstart
....@@ -7787,9 +8071,55 @@
77878071 .fnend
77888072 .size FlashCs123Init, .-FlashCs123Init
77898073 .align 1
7790
- .global rk_nand_suspend
8074
+ .global ftl_dma32_malloc
8075
+ .syntax unified
77918076 .thumb
77928077 .thumb_func
8078
+ .fpu softvfp
8079
+ .type ftl_dma32_malloc, %function
8080
+ftl_dma32_malloc:
8081
+ .fnstart
8082
+ @ args = 0, pretend = 0, frame = 0
8083
+ @ frame_needed = 0, uses_anonymous_args = 0
8084
+ cmp r0, #8192
8085
+ push {r3, r4, r5, lr}
8086
+ .save {r3, r4, r5, lr}
8087
+ mov r4, r0
8088
+ ble .L1140
8089
+ pop {r3, r4, r5, lr}
8090
+ b ftl_malloc
8091
+.L1140:
8092
+ ldr r5, .L1142
8093
+ adds r4, r4, #63
8094
+ bic r4, r4, #63
8095
+ ldr r3, [r5, #1184]
8096
+ cmp r4, r3
8097
+ ble .L1141
8098
+ mov r0, #16384
8099
+ bl ftl_malloc
8100
+ mov r3, #16384
8101
+ str r0, [r5, #1188]
8102
+ str r3, [r5, #1184]
8103
+.L1141:
8104
+ ldr r3, [r5, #1184]
8105
+ ldr r0, [r5, #1188]
8106
+ subs r3, r3, r4
8107
+ add r4, r4, r0
8108
+ str r3, [r5, #1184]
8109
+ str r4, [r5, #1188]
8110
+ pop {r3, r4, r5, pc}
8111
+.L1143:
8112
+ .align 2
8113
+.L1142:
8114
+ .word .LANCHOR4
8115
+ .fnend
8116
+ .size ftl_dma32_malloc, .-ftl_dma32_malloc
8117
+ .align 1
8118
+ .global rk_nand_suspend
8119
+ .syntax unified
8120
+ .thumb
8121
+ .thumb_func
8122
+ .fpu softvfp
77938123 .type rk_nand_suspend, %function
77948124 rk_nand_suspend:
77958125 .fnstart
....@@ -7801,8 +8131,10 @@
78018131 .size rk_nand_suspend, .-rk_nand_suspend
78028132 .align 1
78038133 .global rk_nand_resume
8134
+ .syntax unified
78048135 .thumb
78058136 .thumb_func
8137
+ .fpu softvfp
78068138 .type rk_nand_resume, %function
78078139 rk_nand_resume:
78088140 .fnstart
....@@ -7814,27 +8146,31 @@
78148146 .size rk_nand_resume, .-rk_nand_resume
78158147 .align 1
78168148 .global rk_ftl_get_capacity
8149
+ .syntax unified
78178150 .thumb
78188151 .thumb_func
8152
+ .fpu softvfp
78198153 .type rk_ftl_get_capacity, %function
78208154 rk_ftl_get_capacity:
78218155 .fnstart
78228156 @ args = 0, pretend = 0, frame = 0
78238157 @ frame_needed = 0, uses_anonymous_args = 0
78248158 @ link register save eliminated.
7825
- ldr r3, .L1173
7826
- ldr r0, [r3, #2428]
8159
+ ldr r3, .L1147
8160
+ ldr r0, [r3, #2432]
78278161 bx lr
7828
-.L1174:
8162
+.L1148:
78298163 .align 2
7830
-.L1173:
8164
+.L1147:
78318165 .word .LANCHOR0
78328166 .fnend
78338167 .size rk_ftl_get_capacity, .-rk_ftl_get_capacity
78348168 .align 1
78358169 .global rk_nandc_get_irq_status
8170
+ .syntax unified
78368171 .thumb
78378172 .thumb_func
8173
+ .fpu softvfp
78388174 .type rk_nandc_get_irq_status, %function
78398175 rk_nandc_get_irq_status:
78408176 .fnstart
....@@ -7847,8 +8183,10 @@
78478183 .size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status
78488184 .align 1
78498185 .global rknand_proc_ftlread
8186
+ .syntax unified
78508187 .thumb
78518188 .thumb_func
8189
+ .fpu softvfp
78528190 .type rknand_proc_ftlread, %function
78538191 rknand_proc_ftlread:
78548192 .fnstart
....@@ -7860,8 +8198,10 @@
78608198 .size rknand_proc_ftlread, .-rknand_proc_ftlread
78618199 .align 1
78628200 .global ReadFlashInfo
8201
+ .syntax unified
78638202 .thumb
78648203 .thumb_func
8204
+ .fpu softvfp
78658205 .type ReadFlashInfo, %function
78668206 ReadFlashInfo:
78678207 .fnstart
....@@ -7873,269 +8213,280 @@
78738213 .size ReadFlashInfo, .-ReadFlashInfo
78748214 .align 1
78758215 .global rknand_print_hex
8216
+ .syntax unified
78768217 .thumb
78778218 .thumb_func
8219
+ .fpu softvfp
78788220 .type rknand_print_hex, %function
78798221 rknand_print_hex:
78808222 .fnstart
78818223 @ args = 0, pretend = 0, frame = 0
78828224 @ frame_needed = 0, uses_anonymous_args = 0
7883
- push {r3, r4, r5, r6, r7, r8, r9, lr}
7884
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
8225
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
8226
+ .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
78858227 movs r5, #0
7886
- mov r9, r0
8228
+ ldr r7, .L1161
8229
+ mov r10, r0
78878230 mov r6, r1
7888
- mov r7, r2
7889
- mov r8, r3
8231
+ mov r8, r2
8232
+ ldr fp, .L1161+4
8233
+ mov r9, r3
78908234 mov r4, r5
7891
-.L1179:
7892
- cmp r4, r8
7893
- beq .L1187
7894
- cbnz r5, .L1180
7895
- ldr r0, .L1188
7896
- mov r1, r9
7897
- mov r2, r6
8235
+.L1153:
8236
+ cmp r4, r9
8237
+ bne .L1159
8238
+ ldr r1, .L1161+4
8239
+ ldr r0, .L1161+8
8240
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
8241
+ b printk
8242
+.L1159:
8243
+ cbnz r5, .L1154
78988244 mov r3, r4
8245
+ mov r2, r6
8246
+ mov r1, r10
8247
+ ldr r0, .L1161+12
78998248 bl printk
7900
-.L1180:
7901
- cmp r7, #4
7902
- ldr r0, .L1188+4
7903
- bne .L1181
8249
+.L1154:
8250
+ cmp r8, #4
8251
+ bne .L1155
79048252 ldr r1, [r6, r4, lsl #2]
7905
- b .L1186
7906
-.L1181:
7907
- cmp r7, #2
7908
- ite eq
7909
- ldrsheq r1, [r6, r4, lsl #1]
7910
- ldrbne r1, [r6, r4] @ zero_extendqisi2
7911
-.L1186:
8253
+.L1160:
8254
+ mov r0, r7
79128255 adds r5, r5, #1
79138256 bl printk
79148257 cmp r5, #15
7915
- bls .L1184
7916
- ldr r0, .L1188+8
8258
+ bls .L1158
79178259 movs r5, #0
7918
- ldr r1, .L1188+12
8260
+ mov r1, fp
8261
+ ldr r0, .L1161+8
79198262 bl printk
7920
-.L1184:
8263
+.L1158:
79218264 adds r4, r4, #1
7922
- b .L1179
7923
-.L1187:
7924
- ldr r0, .L1188+8
7925
- ldr r1, .L1188+12
7926
- pop {r3, r4, r5, r6, r7, r8, r9, lr}
7927
- b printk
7928
-.L1189:
8265
+ b .L1153
8266
+.L1155:
8267
+ cmp r8, #2
8268
+ ite eq
8269
+ ldrsheq r1, [r6, r4, lsl #1]
8270
+ ldrbne r1, [r6, r4] @ zero_extendqisi2
8271
+ b .L1160
8272
+.L1162:
79298273 .align 2
7930
-.L1188:
7931
- .word .LC82
8274
+.L1161:
79328275 .word .LC83
7933
- .word .LC76
79348276 .word .LC84
8277
+ .word .LC77
8278
+ .word .LC82
79358279 .fnend
79368280 .size rknand_print_hex, .-rknand_print_hex
79378281 .align 1
79388282 .global HynixGetReadRetryDefault
8283
+ .syntax unified
79398284 .thumb
79408285 .thumb_func
8286
+ .fpu softvfp
79418287 .type HynixGetReadRetryDefault, %function
79428288 HynixGetReadRetryDefault:
79438289 .fnstart
7944
- @ args = 0, pretend = 0, frame = 40
8290
+ @ args = 0, pretend = 0, frame = 56
79458291 @ frame_needed = 0, uses_anonymous_args = 0
79468292 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
79478293 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8294
+ movs r3, #172
8295
+ ldr r7, .L1279
79488296 cmp r0, #2
7949
- ldr r7, .L1299
7950
- mov r3, #172
79518297 mov r1, #173
79528298 mov r2, #174
7953
- .pad #44
7954
- sub sp, sp, #44
8299
+ .pad #60
8300
+ sub sp, sp, #60
79558301 mov r4, r0
7956
- strb r3, [r7, #1214]
8302
+ strb r3, [r7, #1220]
79578303 mov r3, #175
7958
- strb r0, [r7, #1210]
7959
- strb r1, [r7, #1215]
7960
- strb r2, [r7, #1216]
7961
- strb r3, [r7, #1217]
7962
- bne .L1191
7963
- movs r3, #167
7964
- strb r3, [r7, #1214]
7965
- ldr r3, .L1299+4
7966
- movs r2, #247
7967
- movs r5, #7
7968
- strb r2, [r3, #3405]
7969
- b .L1252
7970
-.L1191:
7971
- cmp r0, #3
7972
- bne .L1193
7973
- movs r3, #176
7974
- strb r3, [r7, #1214]
7975
- movs r3, #177
7976
- strb r3, [r7, #1215]
7977
- movs r3, #178
7978
- strb r3, [r7, #1216]
7979
- movs r3, #179
7980
- strb r3, [r7, #1217]
7981
- movs r3, #180
7982
- strb r3, [r7, #1218]
7983
- movs r3, #181
7984
- strb r3, [r7, #1219]
7985
- movs r3, #182
7986
- strb r3, [r7, #1220]
7987
- movs r3, #183
7988
- b .L1293
7989
-.L1193:
7990
- cmp r0, #4
7991
- bne .L1194
7992
- movs r0, #204
7993
- strb r1, [r7, #1219]
7994
- strb r0, [r7, #1214]
7995
- movs r0, #191
7996
- strb r2, [r7, #1220]
7997
- strb r0, [r7, #1215]
7998
- movs r0, #170
79998304 strb r0, [r7, #1216]
8000
- movs r0, #171
8001
- strb r0, [r7, #1217]
8002
- movs r0, #205
8003
- strb r0, [r7, #1218]
8004
-.L1293:
8005
- movs r5, #8
8006
- strb r3, [r7, #1221]
8007
- mov r6, r5
8008
- b .L1192
8009
-.L1194:
8010
- cmp r0, #5
8011
- bne .L1195
8012
- movs r3, #56
8013
- movs r5, #8
8014
- strb r3, [r7, #1214]
8015
- movs r3, #57
8016
- strb r3, [r7, #1215]
8017
- movs r3, #58
8018
- strb r3, [r7, #1216]
8019
- movs r3, #59
8020
- strb r3, [r7, #1217]
8021
- b .L1252
8022
-.L1195:
8023
- cmp r0, #6
8024
- bne .L1196
8025
- movs r3, #14
8026
- movs r5, #12
8027
- strb r3, [r7, #1214]
8028
- movs r3, #15
8029
- strb r3, [r7, #1215]
8030
- movs r3, #16
8031
- strb r3, [r7, #1216]
8032
- movs r3, #17
8033
- strb r3, [r7, #1217]
8034
- b .L1252
8035
-.L1196:
8036
- cmp r0, #7
8037
- bne .L1197
8038
- movs r3, #176
8039
- movs r5, #12
8040
- strb r3, [r7, #1214]
8041
- movs r6, #10
8042
- movs r3, #177
8043
- strb r3, [r7, #1215]
8044
- movs r3, #178
8045
- strb r3, [r7, #1216]
8046
- movs r3, #179
8047
- strb r3, [r7, #1217]
8048
- movs r3, #180
8049
- strb r3, [r7, #1218]
8050
- movs r3, #181
8051
- strb r3, [r7, #1219]
8052
- movs r3, #182
8053
- strb r3, [r7, #1220]
8054
- movs r3, #183
8055
- strb r3, [r7, #1221]
8056
- movs r3, #212
8057
- strb r3, [r7, #1222]
8058
- movs r3, #213
8305
+ strb r1, [r7, #1221]
8306
+ strb r2, [r7, #1222]
80598307 strb r3, [r7, #1223]
8060
- b .L1192
8061
-.L1197:
8062
- cmp r0, #8
8063
- mov r5, #7
8064
- bne .L1252
8065
- movs r3, #6
8066
- strb r5, [r7, #1215]
8067
- strb r3, [r7, #1214]
8068
- movs r5, #50
8069
- movs r3, #9
8070
- strb r0, [r7, #1216]
8071
- strb r3, [r7, #1217]
8072
- movs r6, #5
8073
- movs r3, #10
8074
- strb r3, [r7, #1218]
8075
- b .L1192
8076
-.L1252:
8308
+ bne .L1164
8309
+ movs r3, #167
8310
+ movs r5, #7
8311
+ strb r3, [r7, #1220]
8312
+ movs r2, #247
8313
+ ldr r3, .L1279+4
8314
+ strb r2, [r3, #3401]
8315
+.L1229:
80778316 movs r6, #4
8078
-.L1192:
8317
+ b .L1165
8318
+.L1164:
8319
+ cmp r0, #3
8320
+ bne .L1166
8321
+ movs r3, #176
8322
+ strb r3, [r7, #1220]
8323
+ movs r3, #177
8324
+ strb r3, [r7, #1221]
8325
+ movs r3, #178
8326
+ strb r3, [r7, #1222]
8327
+ movs r3, #179
8328
+ strb r3, [r7, #1223]
8329
+ movs r3, #180
8330
+ strb r3, [r7, #1224]
8331
+ movs r3, #181
8332
+ strb r3, [r7, #1225]
8333
+ movs r3, #182
8334
+ strb r3, [r7, #1226]
8335
+ movs r3, #183
8336
+.L1274:
8337
+ movs r5, #8
8338
+ strb r3, [r7, #1227]
8339
+ mov r6, r5
8340
+.L1165:
80798341 subs r3, r4, #1
80808342 cmp r3, #1
8081
- bhi .L1290
8082
- ldr r1, .L1299+8
8343
+ bhi .L1171
8344
+ ldr fp, .L1279+12
80838345 mov r10, #0
8084
-.L1198:
8085
- ldrb r3, [r7, #2230] @ zero_extendqisi2
8086
- uxtb r8, r10
8087
- ldr r2, .L1299
8088
- cmp r3, r8
8089
- bls .L1205
8090
- add r8, r8, r2
8091
- addw fp, r2, #1213
8092
- ldrb r3, [r8, #2232] @ zero_extendqisi2
8093
- add r4, r2, r3, lsl #6
8094
- add r3, r2, r3, lsl #3
8095
- addw r4, r4, #1230
8096
- movs r2, #55
8097
- ldrb r8, [r3, #16] @ zero_extendqisi2
8098
- ldr r0, [r3, #12]
8099
- mov r9, r4
8100
- mov r3, r4
8101
- add r8, r0, r8, lsl #8
8102
- addw ip, r8, #2056
8103
-.L1200:
8104
- str r2, [ip]
8105
- ldrb r0, [fp, #1]! @ zero_extendqisi2
8106
- str r1, [sp, #16]
8107
- str r3, [sp, #12]
8108
- str r0, [r8, #2052]
8109
- movs r0, #80
8346
+ ldr r2, .L1279+8
8347
+.L1172:
8348
+ ldrb r1, [r7, #2234] @ zero_extendqisi2
8349
+ uxtb r3, r10
8350
+ cmp r1, r3
8351
+ bhi .L1178
8352
+.L1179:
8353
+ ldr r3, .L1279
8354
+ strb r6, [r3, #1217]
8355
+ strb r5, [r3, #1218]
8356
+ add sp, sp, #60
8357
+ @ sp needed
8358
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8359
+.L1166:
8360
+ cmp r0, #4
8361
+ bne .L1167
8362
+ movs r0, #204
8363
+ strb r1, [r7, #1225]
8364
+ strb r0, [r7, #1220]
8365
+ movs r0, #191
8366
+ strb r0, [r7, #1221]
8367
+ movs r0, #170
8368
+ strb r0, [r7, #1222]
8369
+ movs r0, #171
8370
+ strb r0, [r7, #1223]
8371
+ movs r0, #205
8372
+ strb r0, [r7, #1224]
8373
+ strb r2, [r7, #1226]
8374
+ b .L1274
8375
+.L1167:
8376
+ cmp r0, #5
8377
+ bne .L1168
8378
+ movs r3, #56
8379
+ movs r5, #8
8380
+ strb r3, [r7, #1220]
8381
+ movs r3, #57
8382
+ strb r3, [r7, #1221]
8383
+ movs r3, #58
8384
+ strb r3, [r7, #1222]
8385
+ movs r3, #59
8386
+ strb r3, [r7, #1223]
8387
+ b .L1229
8388
+.L1168:
8389
+ cmp r0, #6
8390
+ bne .L1169
8391
+ movs r3, #14
8392
+ movs r5, #12
8393
+ strb r3, [r7, #1220]
8394
+ movs r3, #15
8395
+ strb r3, [r7, #1221]
8396
+ movs r3, #16
8397
+ strb r3, [r7, #1222]
8398
+ movs r3, #17
8399
+ strb r3, [r7, #1223]
8400
+ b .L1229
8401
+.L1169:
8402
+ cmp r0, #7
8403
+ bne .L1170
8404
+ movs r3, #176
8405
+ movs r5, #12
8406
+ strb r3, [r7, #1220]
8407
+ movs r3, #177
8408
+ strb r3, [r7, #1221]
8409
+ movs r3, #178
8410
+ strb r3, [r7, #1222]
8411
+ movs r3, #179
8412
+ strb r3, [r7, #1223]
8413
+ movs r3, #180
8414
+ strb r3, [r7, #1224]
8415
+ movs r3, #181
8416
+ strb r3, [r7, #1225]
8417
+ movs r3, #182
8418
+ strb r3, [r7, #1226]
8419
+ movs r3, #183
8420
+ strb r3, [r7, #1227]
8421
+ movs r3, #212
8422
+ strb r3, [r7, #1228]
8423
+ movs r3, #213
8424
+ strb r3, [r7, #1229]
8425
+ movs r6, #10
8426
+ b .L1165
8427
+.L1170:
8428
+ cmp r0, #8
8429
+ mov r5, #7
8430
+ bne .L1229
8431
+ movs r3, #6
8432
+ strb r5, [r7, #1221]
8433
+ strb r3, [r7, #1220]
8434
+ movs r3, #9
8435
+ strb r3, [r7, #1223]
8436
+ movs r3, #10
8437
+ strb r0, [r7, #1222]
8438
+ movs r5, #50
8439
+ strb r3, [r7, #1224]
8440
+ movs r6, #5
8441
+ b .L1165
8442
+.L1178:
8443
+ add r3, r3, r7
8444
+ mov r8, #0
8445
+ ldrb r3, [r3, #2236] @ zero_extendqisi2
8446
+ ldr r1, [r7, r3, lsl #3]
8447
+ add r4, fp, r3, lsl #6
8448
+ add r3, r7, r3, lsl #3
8449
+ ldrb r9, [r3, #4] @ zero_extendqisi2
8450
+ adds r4, r4, #20
8451
+ add r9, r1, r9, lsl #8
8452
+ movs r1, #55
8453
+ addw r3, r9, #2056
8454
+.L1173:
8455
+ add r0, fp, r8
8456
+ str r1, [r3]
8457
+ ldrb r0, [r0, #4] @ zero_extendqisi2
81108458 str r2, [sp, #8]
8111
- str ip, [sp, #4]
8112
- bl NandcDelayns
8113
- ldr r0, [r8, #2048]
8114
- ldr r3, [sp, #12]
8115
- ldr ip, [sp, #4]
8459
+ str r1, [sp, #4]
8460
+ str r0, [r9, #2052]
8461
+ movs r0, #80
8462
+ str r3, [sp]
8463
+ bl ndelay
8464
+ ldr r0, [r9, #2048]
8465
+ ldr r3, [sp]
8466
+ ldr r1, [sp, #4]
8467
+ strb r0, [r4, r8]
8468
+ add r8, r8, #1
8469
+ uxtb r0, r8
81168470 ldr r2, [sp, #8]
8117
- strb r0, [r3], #1
8118
- subs r0, r3, r4
8119
- ldr r1, [sp, #16]
8120
- uxtb r0, r0
8121
- cmp r0, r6
8122
- bcc .L1200
8123
- movs r2, #0
8124
-.L1201:
8471
+ cmp r6, r0
8472
+ bhi .L1173
8473
+ mov r0, r4
8474
+ movs r1, #0
8475
+.L1176:
81258476 movs r3, #1
8126
- add lr, r1, r2
8127
-.L1202:
8477
+ add lr, r2, r1
8478
+.L1175:
81288479 ldrb ip, [lr, r3, lsl #2] @ zero_extendqisi2
8129
- ldrb r0, [r9] @ zero_extendqisi2
8130
- add r0, r0, ip
8131
- strb r0, [r9, r3, lsl #3]
8480
+ ldrb r8, [r0] @ zero_extendqisi2
8481
+ add ip, ip, r8
8482
+ strb ip, [r0, r3, lsl #3]
81328483 adds r3, r3, #1
81338484 cmp r3, #7
8134
- bne .L1202
8135
- adds r2, r2, #1
8136
- add r9, r9, #1
8137
- cmp r2, #4
8138
- bne .L1201
8485
+ bne .L1175
8486
+ adds r1, r1, #1
8487
+ adds r0, r0, #1
8488
+ cmp r1, #4
8489
+ bne .L1176
81398490 movs r3, #0
81408491 add r10, r10, #1
81418492 strb r3, [r4, #16]
....@@ -8145,105 +8496,90 @@
81458496 strb r3, [r4, #48]
81468497 strb r3, [r4, #41]
81478498 strb r3, [r4, #49]
8148
- b .L1198
8149
-.L1290:
8499
+ b .L1172
8500
+.L1171:
81508501 subs r3, r4, #3
81518502 cmp r3, #5
8152
- bhi .L1205
8153
- smulbb r2, r6, r5
8154
- lsls r3, r2, #4
8155
- asrs r2, r2, #1
8156
- str r3, [sp, #36]
8503
+ bhi .L1179
8504
+ smulbb r3, r6, r5
8505
+ ldr r8, .L1279
8506
+ asrs r2, r3, #1
8507
+ lsls r3, r3, #4
8508
+ str r3, [sp, #48]
8509
+ lsls r3, r2, #2
8510
+ str r2, [sp, #8]
8511
+ str r3, [sp, #44]
81578512 lsls r3, r2, #1
8158
- str r3, [sp, #8]
8513
+ str r3, [sp, #28]
81598514 movs r3, #0
8160
-.L1297:
8161
- str r3, [sp, #20]
8162
- ldrb r3, [sp, #20] @ zero_extendqisi2
8163
- str r3, [sp, #16]
8164
- ldr r3, .L1299
8165
- ldr r2, [sp, #16]
8166
- ldrb r3, [r3, #2230] @ zero_extendqisi2
8515
+ str r3, [sp, #24]
8516
+.L1180:
8517
+ ldrb r3, [sp, #24] @ zero_extendqisi2
8518
+ str r3, [sp, #12]
8519
+ ldr r2, [sp, #12]
8520
+ ldrb r3, [r8, #2234] @ zero_extendqisi2
81678521 cmp r3, r2
8168
- bhi .L1250
8169
-.L1205:
8170
- ldr r3, .L1299
8171
- strb r6, [r3, #1211]
8172
- strb r5, [r3, #1212]
8173
- add sp, sp, #44
8174
- @ sp needed
8175
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8176
-.L1250:
8177
- ldr r2, [sp, #16]
8178
- ldr r3, .L1299
8179
- add r3, r3, r2
8180
- ldrb fp, [r3, #2232] @ zero_extendqisi2
8181
- ldr r3, .L1299
8182
- add r3, r3, fp, lsl #3
8183
- mov r0, fp
8184
- ldr r10, [r3, #12]
8185
- ldrb r3, [r3, #16] @ zero_extendqisi2
8186
- lsls r7, r3, #8
8187
- str r3, [sp, #4]
8188
- add r8, r10, r7
8522
+ bls .L1179
8523
+ ldr r3, [sp, #12]
8524
+ add r3, r8, r3
8525
+ ldrb r10, [r3, #2236] @ zero_extendqisi2
8526
+ ldr fp, [r8, r10, lsl #3]
8527
+ mov r0, r10
8528
+ add r3, r8, r10, lsl #3
8529
+ ldrb r9, [r3, #4] @ zero_extendqisi2
81898530 movs r3, #255
8190
- str r3, [r8, #2056]
8531
+ add r7, fp, r9, lsl #8
8532
+ str r3, [r7, #2056]
81918533 bl NandcWaitFlashReady
81928534 cmp r4, #7
8193
- bne .L1207
8194
- ldr r2, .L1299+12
8195
- movs r3, #160
8196
- mla ip, r3, fp, r2
8197
- add r3, ip, #28
8198
- b .L1294
8199
-.L1207:
8200
- cmp r4, #8
8201
- beq .L1209
8202
- ldr r2, .L1299+12
8203
- add ip, r2, fp, lsl #6
8204
- add r3, ip, #20
8205
-.L1294:
8206
- add r7, r7, r10
8535
+ bne .L1181
8536
+ ldr r3, .L1279+12
8537
+ movs r0, #160
8538
+ mla r0, r0, r10, r3
8539
+ add r3, r0, #28
8540
+.L1275:
8541
+ str r3, [sp, #16]
82078542 cmp r4, #4
8208
- str r3, [sp, #24]
8209
- mov r3, #54
8210
- str r3, [r7, #2056]
8211
- bne .L1210
8212
- movs r3, #255
8213
- str r3, [r7, #2052]
8214
- movs r3, #64
8215
- str r3, [r7, #2048]
8216
- movs r3, #204
8217
- b .L1295
8218
-.L1210:
8219
- subs r3, r4, #5
8220
- cmp r3, #1
8221
- bhi .L1212
8222
- ldr r3, .L1299
8223
- ldrb r2, [r3, #1214] @ zero_extendqisi2
8224
- ldr r3, [sp, #4]
8225
- add r3, r10, r3, lsl #8
8543
+ add r3, fp, r9, lsl #8
8544
+ mov r2, #54
8545
+ str r2, [r3, #2056]
8546
+ bne .L1184
8547
+ movs r2, #255
8548
+ str r2, [r3, #2052]
8549
+ movs r2, #64
8550
+ str r2, [r3, #2048]
8551
+ movs r2, #204
8552
+.L1276:
8553
+ str r2, [r3, #2052]
8554
+ movs r2, #77
8555
+ b .L1277
8556
+.L1181:
8557
+ cmp r4, #8
8558
+ beq .L1183
8559
+ ldr r0, .L1279+12
8560
+ add r0, r0, r10, lsl #6
8561
+ add r3, r0, #20
8562
+ b .L1275
8563
+.L1280:
8564
+ .align 2
8565
+.L1279:
8566
+ .word .LANCHOR0
8567
+ .word .LANCHOR1
8568
+ .word .LANCHOR1+3384
8569
+ .word .LANCHOR0+1216
8570
+.L1184:
8571
+ subs r2, r4, #5
8572
+ cmp r2, #1
8573
+ bhi .L1186
8574
+ ldrb r2, [r8, #1220] @ zero_extendqisi2
82268575 str r2, [r3, #2052]
82278576 movs r2, #82
8577
+.L1277:
82288578 str r2, [r3, #2048]
8229
- b .L1211
8230
-.L1212:
8231
- cmp r4, #7
8232
- bne .L1211
8233
- movs r3, #174
8234
- str r3, [r7, #2052]
8235
- movs r3, #0
8236
- str r3, [r7, #2048]
8237
- movs r3, #176
8238
-.L1295:
8239
- str r3, [r7, #2052]
8240
- movs r3, #77
8241
- str r3, [r7, #2048]
8242
-.L1211:
8243
- ldr r3, [sp, #4]
8579
+.L1185:
8580
+ add r3, fp, r9, lsl #8
8581
+ movs r2, #22
82448582 cmp r4, #6
8245
- mov r2, #22
8246
- add r3, r10, r3, lsl #8
82478583 str r2, [r3, #2056]
82488584 mov r2, #23
82498585 str r2, [r3, #2056]
....@@ -8262,314 +8598,334 @@
82628598 str r2, [r3, #2052]
82638599 movs r2, #0
82648600 str r2, [r3, #2052]
8265
-.L1251:
8266
- ldr r3, [sp, #4]
8601
+.L1228:
8602
+ add r3, fp, r9, lsl #8
82678603 movs r2, #48
8268
- mov r0, fp
8269
- add r3, r10, r3, lsl #8
8604
+ mov r0, r10
82708605 str r2, [r3, #2056]
82718606 bl NandcWaitFlashReady
82728607 subs r3, r4, #5
82738608 cmp r3, #1
8274
- str r3, [sp, #28]
8275
- bls .L1255
8609
+ str r3, [sp, #32]
8610
+ bls .L1231
82768611 cmp r4, #8
8277
- beq .L1255
8612
+ beq .L1231
82788613 cmp r4, #7
8279
- ite ne
8280
- movne r2, #2
8614
+ ite eq
82818615 moveq r2, #32
8282
- b .L1215
8283
-.L1300:
8284
- .align 2
8285
-.L1299:
8286
- .word .LANCHOR0
8287
- .word .LANCHOR1
8288
- .word .LANCHOR1+3388
8289
- .word .LANCHOR0+1210
8290
-.L1255:
8291
- movs r2, #16
8292
-.L1215:
8293
- ldr r3, .L1301
8294
- ldr r1, [sp, #4]
8295
- ldr r3, [r3, #1184]
8296
- add r0, r10, r1, lsl #8
8297
- mov r7, r3
8298
-.L1216:
8299
- ldr r1, [r0, #2048]
8300
- strb r1, [r7], #1
8301
- subs r1, r7, r3
8302
- uxtb r1, r1
8303
- cmp r1, r2
8304
- bcc .L1216
8616
+ movne r2, #2
8617
+.L1189:
8618
+ ldr r3, .L1281
8619
+ subs r2, r2, #1
8620
+ add r7, fp, r9, lsl #8
8621
+ ldr r3, [r3, #1192]
8622
+ str r7, [sp, #4]
8623
+ subs r1, r3, #1
8624
+ uxtab r2, r3, r2
8625
+ mov r0, r1
8626
+.L1190:
8627
+ ldr r7, [sp, #4]
8628
+ ldr r7, [r7, #2048]
8629
+ strb r7, [r0, #1]!
8630
+ cmp r0, r2
8631
+ bne .L1190
83058632 cmp r4, #8
8306
- bne .L1217
8633
+ bne .L1191
83078634 movs r2, #0
8308
-.L1219:
8309
- ldrb r7, [r3, r2, lsl #2] @ zero_extendqisi2
8635
+.L1193:
8636
+ ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2
83108637 uxtb r1, r2
8311
- cmp r7, #50
8312
- beq .L1218
8313
- add r7, r3, r2, lsl #2
8314
- ldrb r7, [r7, #1] @ zero_extendqisi2
8315
- cmp r7, #5
8316
- beq .L1218
8638
+ cmp r0, #50
8639
+ beq .L1192
8640
+ add r0, r3, r2, lsl #2
8641
+ ldrb r0, [r0, #1] @ zero_extendqisi2
8642
+ cmp r0, #5
8643
+ beq .L1192
83178644 adds r2, r2, #1
83188645 cmp r2, #8
8319
- bne .L1219
8320
- b .L1220
8321
-.L1218:
8322
- cmp r1, #7
8323
- bne .L1221
8324
-.L1220:
8325
- ldr r0, .L1301+4
8646
+ bne .L1193
8647
+.L1194:
83268648 movs r1, #0
8649
+ ldr r0, .L1281+4
83278650 bl printk
8328
-.L1222:
8329
- b .L1222
8330
-.L1217:
8651
+.L1196:
8652
+ b .L1196
8653
+.L1186:
83318654 cmp r4, #7
8332
- bne .L1223
8655
+ bne .L1185
8656
+ movs r2, #174
8657
+ str r2, [r3, #2052]
83338658 movs r2, #0
8334
-.L1225:
8335
- ldrb r7, [r3, r2, lsl #2] @ zero_extendqisi2
8336
- uxtb r1, r2
8337
- cmp r7, #12
8338
- beq .L1224
8339
- add r7, r3, r2, lsl #2
8340
- ldrb r7, [r7, #1] @ zero_extendqisi2
8341
- cmp r7, #10
8342
- beq .L1224
8343
- adds r2, r2, #1
8344
- cmp r2, #8
8345
- bne .L1225
8346
- b .L1226
8347
-.L1224:
8348
- cmp r1, #7
8349
- bne .L1221
8350
-.L1226:
8351
- ldr r0, .L1301+4
8352
- movs r1, #0
8353
- bl printk
8354
-.L1227:
8355
- b .L1227
8356
-.L1223:
8357
- cmp r4, #6
8358
- bne .L1221
8359
- subs r2, r3, #1
8360
- adds r3, r3, #7
8361
-.L1228:
8362
- ldrb r1, [r2, #1]! @ zero_extendqisi2
8363
- cmp r1, #12
8364
- beq .L1221
8365
- ldrb r1, [r2, #8] @ zero_extendqisi2
8366
- cmp r1, #4
8367
- beq .L1221
8368
- cmp r2, r3
8369
- bne .L1228
8370
- ldr r0, .L1301+4
8371
- movs r1, #0
8372
- bl printk
8373
-.L1230:
8374
- b .L1230
8375
-.L1221:
8376
- ldr r1, .L1301
8377
- ldr r7, [sp, #36]
8378
- ldr r2, [r1, #1184]
8379
- adds r7, r2, r7
8380
- mov r3, r2
8659
+ str r2, [r3, #2048]
8660
+ movs r2, #176
8661
+ b .L1276
83818662 .L1231:
8382
- cmp r3, r7
8383
- beq .L1298
8384
- ldr lr, [r0, #2048]
8385
- strb lr, [r3], #1
8386
- b .L1231
8387
-.L1298:
8388
- ldr r3, [r1, #1184]
8389
- movs r0, #8
8390
- ldr r1, [sp, #8]
8391
- adds r1, r3, r1
8392
- str r1, [sp, #32]
8393
-.L1234:
8394
- ldr r7, [sp, #8]
8395
- add lr, r1, r7
8396
-.L1233:
8397
- ldrh r7, [r1]
8398
- mvns r7, r7
8399
- strh r7, [r1], #2 @ movhi
8400
- cmp r1, lr
8401
- bne .L1233
8402
- ldr r7, [sp, #8]
8403
- subs r0, r0, #1
8404
- add r1, r1, r7
8405
- bne .L1234
8406
- str r3, [sp, #12]
8407
-.L1235:
8663
+ movs r2, #16
8664
+ b .L1189
8665
+.L1192:
8666
+ cmp r1, #6
8667
+ bhi .L1194
8668
+.L1195:
8669
+ ldr r3, .L1281
8670
+ ldr r3, [r3, #1192]
8671
+ str r3, [sp]
8672
+.L1205:
8673
+ ldr r2, [sp]
8674
+ ldr r0, [sp, #48]
8675
+ subs r1, r3, r2
8676
+ cmp r1, r0
8677
+ blt .L1206
8678
+ ldr r3, .L1281
8679
+ ldr r1, [r3, #1192]
8680
+ ldr r3, [sp, #28]
8681
+ adds r0, r1, r3
8682
+ movs r3, #8
8683
+.L1208:
8684
+ mov ip, r0
8685
+ movs r7, #0
8686
+.L1207:
8687
+ ldr r2, [sp, #8]
8688
+ adds r7, r7, #1
8689
+ ldrh lr, [ip]
8690
+ cmp r2, r7
8691
+ mvn lr, lr
8692
+ strh lr, [ip], #2 @ movhi
8693
+ bgt .L1207
8694
+ ldr r2, [sp, #44]
8695
+ subs r3, r3, #1
8696
+ add r0, r0, r2
8697
+ bne .L1208
8698
+ str r3, [sp, #20]
8699
+.L1214:
84088700 movs r7, #0
84098701 mov r0, r7
8410
-.L1238:
8411
- movs r3, #1
8702
+.L1213:
8703
+ movs r2, #1
8704
+ mov ip, r1
8705
+ lsls r2, r2, r0
84128706 mov lr, #0
8413
- mov r8, #16
8414
- lsl r1, r3, r0
8415
- mov ip, lr
8416
-.L1236:
8417
- ldr r3, [sp, #12]
8418
- ldrh r9, [r3, lr]
8419
- ldr r3, [sp, #8]
8420
- and r9, r9, r1
8421
- cmp r9, r1
8707
+ str r2, [sp, #36]
8708
+ movs r2, #16
8709
+ str r2, [sp, #40]
8710
+.L1211:
8711
+ ldrh r2, [ip]
8712
+ str r2, [sp, #52]
8713
+ ldr r2, [sp, #36]
8714
+ mov r3, r2
8715
+ ldr r2, [sp, #52]
8716
+ bics r3, r3, r2
8717
+ ldr r2, [sp, #28]
84228718 it eq
8423
- addeq ip, ip, #1
8424
- subs r8, r8, #1
8425
- add lr, lr, r3
8426
- bne .L1236
8427
- cmp ip, #8
8719
+ addeq lr, lr, #1
8720
+ add ip, ip, r2
8721
+ ldr r2, [sp, #40]
8722
+ subs r2, r2, #1
8723
+ str r2, [sp, #40]
8724
+ bne .L1211
8725
+ cmp lr, #8
84288726 add r0, r0, #1
8429
- itt hi
8430
- orrhi r7, r7, r1
8727
+ ittt hi
8728
+ ldrhi r2, [sp, #36]
8729
+ orrhi r7, r7, r2
84318730 uxthhi r7, r7
84328731 cmp r0, #16
8433
- bne .L1238
8434
- ldr r3, [sp, #12]
8435
- strh r7, [r3], #2 @ movhi
8436
- str r3, [sp, #12]
8437
- ldr r1, [sp, #12]
8438
- ldr r3, [sp, #32]
8439
- cmp r1, r3
8440
- bne .L1235
8441
- ldr r3, .L1301
8442
- ldr r1, [r3, #1184]
8732
+ bne .L1213
8733
+ ldr r3, [sp, #20]
8734
+ ldr r2, [sp, #8]
8735
+ strh r7, [r1], #2 @ movhi
8736
+ adds r3, r3, #1
8737
+ cmp r2, r3
8738
+ str r3, [sp, #20]
8739
+ bgt .L1214
8740
+ ldr r3, .L1281
8741
+ ldr r1, [r3, #1192]
84438742 movs r3, #0
84448743 subs r0, r1, #4
84458744 add r7, r1, #28
8446
-.L1240:
8447
- ldr lr, [r0, #4]!
8448
- cmp lr, #0
8449
- it eq
8450
- addeq r3, r3, #1
8451
- cmp r0, r7
8452
- bne .L1240
8745
+.L1217:
8746
+ ldr ip, [r0, #4]!
8747
+ cmp ip, #0
8748
+ bne .L1216
8749
+ adds r3, r3, #1
8750
+.L1216:
8751
+ cmp r7, r0
8752
+ bne .L1217
84538753 cmp r3, #7
8454
- ble .L1241
8455
- ldr r0, .L1301+8
8456
- movs r2, #1
8754
+ ble .L1218
8755
+ ldr r0, .L1281+8
84578756 mov r3, #1024
8757
+ movs r2, #1
84588758 bl rknand_print_hex
8459
- ldr r0, .L1301+4
84608759 movs r1, #0
8760
+ ldr r0, .L1281+4
84618761 bl printk
8462
-.L1242:
8463
- b .L1242
8464
-.L1241:
8465
- cmp r4, #6
8466
- beq .L1257
8762
+.L1219:
8763
+ b .L1219
8764
+.L1191:
84678765 cmp r4, #7
8468
- beq .L1258
8766
+ bne .L1197
8767
+ movs r2, #0
8768
+.L1199:
8769
+ ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2
8770
+ uxtb r1, r2
8771
+ cmp r0, #12
8772
+ beq .L1198
8773
+ add r0, r3, r2, lsl #2
8774
+ ldrb r0, [r0, #1] @ zero_extendqisi2
8775
+ cmp r0, #10
8776
+ beq .L1198
8777
+ adds r2, r2, #1
8778
+ cmp r2, #8
8779
+ bne .L1199
8780
+.L1200:
8781
+ movs r1, #0
8782
+ ldr r0, .L1281+4
8783
+ bl printk
8784
+.L1201:
8785
+ b .L1201
8786
+.L1198:
8787
+ cmp r1, #6
8788
+ bls .L1195
8789
+ b .L1200
8790
+.L1197:
8791
+ cmp r4, #6
8792
+ bne .L1195
8793
+ adds r3, r3, #7
8794
+.L1202:
8795
+ ldrb r2, [r1, #1]! @ zero_extendqisi2
8796
+ cmp r2, #12
8797
+ beq .L1195
8798
+ ldrb r2, [r1, #8] @ zero_extendqisi2
8799
+ cmp r2, #4
8800
+ beq .L1195
8801
+ cmp r1, r3
8802
+ bne .L1202
8803
+ movs r1, #0
8804
+ ldr r0, .L1281+4
8805
+ bl printk
8806
+.L1204:
8807
+ b .L1204
8808
+.L1206:
8809
+ ldr r1, [sp, #4]
8810
+ ldr r1, [r1, #2048]
8811
+ strb r1, [r3], #1
8812
+ b .L1205
8813
+.L1218:
8814
+ cmp r4, #6
8815
+ beq .L1233
8816
+ cmp r4, #7
8817
+ beq .L1234
84698818 cmp r4, #8
8470
- ite ne
8471
- movne r0, #8
8472
- moveq r0, #5
8473
- b .L1243
8474
-.L1257:
8475
- movs r0, #4
8476
- b .L1243
8477
-.L1258:
8478
- movs r0, #10
8479
-.L1243:
8480
- add r9, r6, #-1
8481
- ldr r1, [sp, #24]
8482
- movs r7, #0
8483
- uxtb r9, r9
8484
- add r9, r9, #1
8485
-.L1244:
8486
- mov ip, r1
8487
- mov r3, r2
8488
-.L1245:
8489
- ldrb lr, [r3], #1 @ zero_extendqisi2
8490
- strb lr, [ip], #1
8491
- rsb lr, r2, r3
8492
- uxtb lr, lr
8493
- cmp lr, r6
8494
- bcc .L1245
8495
- adds r7, r7, #1
8496
- add r2, r2, r9
8497
- cmp r7, r5
8498
- add r1, r1, r0
8499
- blt .L1244
8500
- ldr r3, [sp, #4]
8501
- mov r0, fp
8502
- add r7, r10, r3, lsl #8
8503
- movs r3, #255
8504
- str r3, [r7, #2056]
8505
- bl NandcWaitFlashReady
8506
- ldr r3, [sp, #28]
8507
- cmp r3, #1
8508
- bhi .L1247
8509
- movs r3, #54
8510
- str r3, [r7, #2056]
8511
- ldr r3, .L1301+12
8512
- mov r1, #-1
8819
+ ite eq
8820
+ moveq r7, #5
8821
+ movne r7, #8
8822
+.L1220:
8823
+ subs r3, r6, #1
85138824 ldr r0, [sp, #16]
8514
- ldrb r3, [r3, #1214] @ zero_extendqisi2
8515
- str r3, [r7, #2052]
8825
+ uxtb r3, r3
8826
+ mov ip, #0
8827
+ adds r3, r3, #1
8828
+ mov r2, r3
8829
+.L1221:
8830
+ ldr r1, [sp]
8831
+ str r0, [sp, #16]
8832
+.L1222:
8833
+ ldr r3, [sp, #16]
8834
+ ldrb lr, [r1], #1 @ zero_extendqisi2
8835
+ strb lr, [r3], #1
8836
+ str r3, [sp, #16]
8837
+ ldr r3, [sp]
8838
+ sub lr, r1, r3
8839
+ uxtb lr, lr
8840
+ cmp r6, lr
8841
+ bhi .L1222
8842
+ ldr r1, [sp]
8843
+ add ip, ip, #1
8844
+ cmp r5, ip
8845
+ add r0, r0, r7
8846
+ add r1, r1, r2
8847
+ str r1, [sp]
8848
+ bgt .L1221
8849
+ add r9, fp, r9, lsl #8
8850
+ movs r3, #255
8851
+ mov r0, r10
8852
+ str r3, [r9, #2056]
8853
+ bl NandcWaitFlashReady
8854
+ ldr r3, [sp, #32]
8855
+ cmp r3, #1
8856
+ bhi .L1224
8857
+ movs r3, #54
8858
+ ldr r2, [sp, #4]
8859
+ str r3, [r9, #2056]
8860
+ mov r1, #-1
8861
+ ldrb r3, [r8, #1220] @ zero_extendqisi2
8862
+ ldr r0, [sp, #12]
8863
+ str r3, [r2, #2052]
85168864 movs r3, #0
8517
- str r3, [r7, #2048]
8865
+ str r3, [r2, #2048]
85188866 movs r3, #22
8519
- str r3, [r7, #2056]
8867
+ str r3, [r9, #2056]
85208868 bl FlashReadCmd
8521
- b .L1248
8522
-.L1247:
8869
+.L1225:
8870
+ mov r0, r10
8871
+ bl NandcWaitFlashReady
8872
+ ldr r3, [sp, #24]
8873
+ adds r3, r3, #1
8874
+ str r3, [sp, #24]
8875
+ b .L1180
8876
+.L1233:
8877
+ movs r7, #4
8878
+ b .L1220
8879
+.L1234:
8880
+ movs r7, #10
8881
+ b .L1220
8882
+.L1224:
85238883 cmp r4, #8
85248884 ite eq
85258885 moveq r3, #190
85268886 movne r3, #56
8527
- str r3, [r7, #2056]
8528
-.L1248:
8529
- mov r0, fp
8530
- bl NandcWaitFlashReady
8531
- ldr r3, [sp, #20]
8532
- adds r3, r3, #1
8533
- b .L1297
8534
-.L1209:
8887
+ str r3, [r9, #2056]
8888
+ b .L1225
8889
+.L1183:
85358890 movs r3, #120
85368891 movs r2, #23
8537
- str r3, [r8, #2056]
8538
- movs r1, #25
8892
+ str r3, [r7, #2056]
85398893 movs r3, #0
8540
- str r3, [r8, #2052]
8541
- str r3, [r8, #2052]
8542
- str r3, [r8, #2052]
8543
- str r2, [r8, #2056]
8894
+ str r3, [r7, #2052]
8895
+ movs r1, #25
8896
+ str r3, [r7, #2052]
8897
+ str r3, [r7, #2052]
8898
+ str r2, [r7, #2056]
85448899 movs r2, #4
8545
- str r2, [r8, #2056]
8546
- str r1, [r8, #2056]
8900
+ str r2, [r7, #2056]
8901
+ str r1, [r7, #2056]
85478902 movs r1, #218
8548
- str r1, [r8, #2056]
8903
+ str r1, [r7, #2056]
85498904 movs r1, #21
8550
- str r3, [r8, #2056]
8551
- str r3, [r8, #2052]
8552
- str r3, [r8, #2052]
8553
- str r1, [r8, #2052]
8554
- str r2, [r8, #2052]
8555
- str r3, [r8, #2052]
8556
- ldr r3, .L1301+16
8557
- str r3, [sp, #24]
8558
- b .L1251
8559
-.L1302:
8905
+ str r3, [r7, #2056]
8906
+ str r3, [r7, #2052]
8907
+ str r3, [r7, #2052]
8908
+ str r1, [r7, #2052]
8909
+ str r2, [r7, #2052]
8910
+ str r3, [r7, #2052]
8911
+ ldr r3, .L1281+12
8912
+ str r3, [sp, #16]
8913
+ b .L1228
8914
+.L1282:
85608915 .align 2
8561
-.L1301:
8916
+.L1281:
85628917 .word .LANCHOR4
85638918 .word .LC85
85648919 .word .LC86
8565
- .word .LANCHOR0
8566
- .word .LANCHOR0+1238
8920
+ .word .LANCHOR0+1244
85678921 .fnend
85688922 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault
85698923 .align 1
85708924 .global FlashGetReadRetryDefault
8925
+ .syntax unified
85718926 .thumb
85728927 .thumb_func
8928
+ .fpu softvfp
85738929 .type FlashGetReadRetryDefault, %function
85748930 FlashGetReadRetryDefault:
85758931 .fnstart
....@@ -8578,245 +8934,248 @@
85788934 @ link register save eliminated.
85798935 mov r3, r0
85808936 cmp r0, #0
8581
- beq .L1303
8937
+ beq .L1283
85828938 subs r2, r0, #1
85838939 cmp r2, #7
8584
- bhi .L1305
8940
+ bhi .L1285
85858941 b HynixGetReadRetryDefault
8586
-.L1305:
8942
+.L1285:
85878943 cmp r0, #49
8588
- bne .L1306
8589
- ldr r0, .L1326
8944
+ bne .L1286
8945
+ ldr r0, .L1306
85908946 movs r2, #64
8591
- ldr r1, .L1326+4
8592
- addw r0, r0, #1214
8593
- strb r3, [r0, #-4]
8947
+ ldr r1, .L1306+4
8948
+ strb r3, [r0, #1216]
85948949 movs r3, #4
8595
- strb r3, [r0, #-3]
8950
+ strb r3, [r0, #1217]
85968951 movs r3, #15
8597
- strb r3, [r0, #-2]
8598
- b .L1324
8599
-.L1306:
8952
+ strb r3, [r0, #1218]
8953
+.L1304:
8954
+ addw r0, r0, #1220
8955
+ b ftl_memcpy
8956
+.L1286:
86008957 cmp r0, #33
8601
- beq .L1307
8958
+ beq .L1287
86028959 sub r2, r0, #65
86038960 cmp r2, #1
8604
- bhi .L1308
8605
-.L1307:
8606
- ldr r0, .L1326
8607
- strb r3, [r0, #1210]
8961
+ bhi .L1288
8962
+.L1287:
8963
+ ldr r0, .L1306
8964
+ strb r3, [r0, #1216]
86088965 movs r3, #4
8609
- b .L1325
8610
-.L1308:
8611
- cmp r0, #34
8612
- beq .L1309
8613
- cmp r0, #67
8614
- bne .L1310
8615
-.L1309:
8616
- ldr r0, .L1326
8617
- strb r3, [r0, #1210]
8618
- movs r3, #5
8619
-.L1325:
8620
- strb r3, [r0, #1211]
8621
- movs r2, #45
8966
+.L1305:
8967
+ strb r3, [r0, #1217]
86228968 movs r3, #7
8623
- addw r0, r0, #1214
8624
- strb r3, [r0, #-2]
8625
- ldr r1, .L1326+8
8626
- b .L1324
8627
-.L1310:
8628
- cmp r0, #35
8629
- beq .L1311
8630
- cmp r0, #68
8631
- bne .L1303
8632
-.L1311:
8633
- ldr r0, .L1326
8634
- movs r2, #95
8635
- ldr r1, .L1326+12
8636
- addw r0, r0, #1214
8637
- strb r3, [r0, #-4]
8969
+ strb r3, [r0, #1218]
8970
+ movs r2, #45
8971
+ ldr r1, .L1306+8
8972
+ b .L1304
8973
+.L1288:
8974
+ cmp r0, #34
8975
+ beq .L1289
8976
+ cmp r0, #67
8977
+ bne .L1290
8978
+.L1289:
8979
+ ldr r0, .L1306
8980
+ strb r3, [r0, #1216]
86388981 movs r3, #5
8639
- strb r3, [r0, #-3]
8982
+ b .L1305
8983
+.L1290:
8984
+ cmp r0, #35
8985
+ beq .L1291
8986
+ cmp r0, #68
8987
+ bne .L1283
8988
+.L1291:
8989
+ ldr r0, .L1306
8990
+ movs r2, #95
8991
+ ldr r1, .L1306+12
8992
+ strb r3, [r0, #1216]
8993
+ movs r3, #5
8994
+ strb r3, [r0, #1217]
86408995 movs r3, #17
8641
- strb r3, [r0, #-2]
8642
-.L1324:
8643
- b ftl_memcpy
8644
-.L1303:
8996
+ strb r3, [r0, #1218]
8997
+ b .L1304
8998
+.L1283:
86458999 bx lr
8646
-.L1327:
9000
+.L1307:
86479001 .align 2
8648
-.L1326:
9002
+.L1306:
86499003 .word .LANCHOR0
8650
- .word .LANCHOR1+408
9004
+ .word .LANCHOR1+404
86519005 .word .LANCHOR1+256
8652
- .word .LANCHOR1+304
9006
+ .word .LANCHOR1+301
86539007 .fnend
86549008 .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault
86559009 .align 1
86569010 .global NandcXferComp
9011
+ .syntax unified
86579012 .thumb
86589013 .thumb_func
9014
+ .fpu softvfp
86599015 .type NandcXferComp, %function
86609016 NandcXferComp:
86619017 .fnstart
86629018 @ args = 0, pretend = 0, frame = 8
86639019 @ frame_needed = 0, uses_anonymous_args = 0
8664
- push {r0, r1, r4, r5, r6, lr}
8665
- .save {r4, r5, r6, lr}
9020
+ push {r0, r1, r4, r5, r6, r7, r8, lr}
9021
+ .save {r4, r5, r6, r7, r8, lr}
86669022 .pad #8
8667
- ldr r5, .L1367
8668
- add r0, r5, r0, lsl #3
8669
- ldr r3, [r5, #2260]
8670
- ldr r4, [r0, #12]
9023
+ ldr r5, .L1347
9024
+ ldr r3, [r5, #2264]
9025
+ ldr r4, [r5, r0, lsl #3]
86719026 cmp r3, #3
8672
- bls .L1359
9027
+ bls .L1339
86739028 ldr r3, [r4, #16]
86749029 lsls r6, r3, #29
8675
- bpl .L1359
9030
+ bpl .L1339
86769031 ldr r6, [r4, #16]
86779032 ldr r3, [r4, #8]
86789033 ubfx r6, r6, #1, #1
86799034 str r3, [sp]
86809035 cmp r6, #0
8681
- beq .L1341
9036
+ beq .L1310
9037
+ ldr r7, .L1347+4
86829038 movs r6, #0
8683
-.L1331:
9039
+ ldr r8, .L1347+12
9040
+.L1311:
86849041 ldr r2, [r4, #28]
86859042 ldr r3, [sp]
86869043 ubfx r2, r2, #16, #5
86879044 ubfx r3, r3, #22, #6
86889045 cmp r2, r3
8689
- bge .L1339
8690
- ldr r3, [r5, #2260]
9046
+ bge .L1319
9047
+ ldr r3, [r5, #2264]
86919048 cmp r3, #5
8692
- bhi .L1332
8693
-.L1335:
9049
+ bhi .L1312
9050
+.L1315:
86949051 adds r6, r6, #1
8695
- bic r3, r6, #-16777216
8696
- cmp r3, #0
8697
- bne .L1334
9052
+ bics r3, r6, #-16777216
9053
+ bne .L1314
86989054 ldr r2, [r4, #28]
86999055 mov r1, r6
87009056 ldr r3, [sp]
9057
+ mov r0, r7
87019058 ubfx r2, r2, #16, #5
8702
- ldr r0, .L1367+4
87039059 ubfx r3, r3, #22, #6
87049060 bl printk
8705
- ldr r0, .L1367+8
8706
- mov r1, r4
8707
- movs r2, #4
87089061 mov r3, #512
9062
+ movs r2, #4
9063
+ mov r1, r4
9064
+ mov r0, r8
87099065 bl rknand_print_hex
8710
- b .L1334
8711
-.L1332:
9066
+.L1314:
9067
+ movs r1, #5
9068
+ movs r0, #1
9069
+ bl usleep_range
9070
+ b .L1311
9071
+.L1312:
87129072 ldr r3, [r4]
87139073 str r3, [sp, #4]
87149074 ldr r3, [sp, #4]
87159075 lsls r0, r3, #18
8716
- bpl .L1335
9076
+ bpl .L1315
87179077 ldr r3, [sp, #4]
87189078 lsls r1, r3, #14
8719
- bpl .L1335
8720
-.L1339:
8721
- ldr r3, [r5, #2296]
8722
- ldr r4, .L1367
8723
- cmp r3, #0
8724
- beq .L1340
9079
+ bpl .L1315
9080
+.L1319:
9081
+ ldr r3, [r5, #2300]
9082
+ cbz r3, .L1320
87259083 ldr r1, [sp]
87269084 movs r2, #0
8727
- ldr r0, [r4, #2288]
9085
+ ldr r0, [r5, #2292]
87289086 ubfx r1, r1, #22, #5
87299087 lsls r1, r1, #10
87309088 bl rknand_dma_unmap_single
8731
- ldr r0, [r4, #2292]
8732
- movs r2, #0
87339089 ldr r1, [sp]
9090
+ movs r2, #0
9091
+ ldr r0, [r5, #2296]
87349092 ubfx r1, r1, #22, #5
87359093 lsls r1, r1, #7
87369094 bl rknand_dma_unmap_single
8737
- b .L1340
8738
-.L1334:
8739
- movs r0, #1
8740
- movs r1, #5
8741
- bl usleep_range
8742
- b .L1331
8743
-.L1343:
9095
+.L1320:
9096
+ movs r3, #0
9097
+ str r3, [r5, #2300]
9098
+.L1308:
9099
+ add sp, sp, #8
9100
+ @ sp needed
9101
+ pop {r4, r5, r6, r7, r8, pc}
9102
+.L1310:
9103
+ ldr r7, .L1347+8
9104
+ ldr r8, .L1347+12
9105
+.L1321:
9106
+ ldr r3, [sp]
9107
+ lsls r2, r3, #11
9108
+ bpl .L1323
9109
+ ldr r3, [r5, #2308]
9110
+ cbz r3, .L1324
9111
+ mov r0, r4
9112
+ bl NandcSendDumpDataStart
9113
+.L1324:
9114
+ ldr r3, [r5, #2300]
9115
+ cbz r3, .L1325
9116
+ ldr r1, [sp]
9117
+ movs r2, #1
9118
+ ldr r0, [r5, #2292]
9119
+ ubfx r1, r1, #22, #5
9120
+ lsls r1, r1, #10
9121
+ bl rknand_dma_unmap_single
9122
+ ldr r1, [sp]
9123
+ movs r2, #1
9124
+ ldr r0, [r5, #2296]
9125
+ ubfx r1, r1, #22, #5
9126
+ lsls r1, r1, #7
9127
+ bl rknand_dma_unmap_single
9128
+.L1325:
9129
+ ldr r3, [r5, #2308]
9130
+ cmp r3, #0
9131
+ beq .L1320
9132
+ mov r0, r4
9133
+ bl NandcSendDumpDataDone
9134
+ b .L1320
9135
+.L1323:
87449136 ldr r3, [r4, #8]
87459137 adds r6, r6, #1
87469138 str r3, [sp]
8747
- bic r3, r6, #-16777216
8748
- cbnz r3, .L1342
9139
+ bics r3, r6, #-16777216
9140
+ bne .L1322
87499141 ldr r2, [sp]
87509142 mov r1, r6
87519143 ldr r3, [r4, #28]
8752
- ldr r0, .L1367+12
9144
+ mov r0, r7
87539145 ubfx r3, r3, #16, #5
87549146 bl printk
8755
- ldr r0, .L1367+8
8756
- mov r1, r4
8757
- movs r2, #4
87589147 mov r3, #512
9148
+ movs r2, #4
9149
+ mov r1, r4
9150
+ mov r0, r8
87599151 bl rknand_print_hex
8760
-.L1342:
8761
- movs r0, #1
9152
+.L1322:
87629153 movs r1, #5
9154
+ movs r0, #1
87639155 bl usleep_range
8764
-.L1341:
8765
- ldr r3, [sp]
8766
- lsls r2, r3, #11
8767
- bpl .L1343
8768
- ldr r3, [r5, #2304]
8769
- cbz r3, .L1344
8770
- mov r0, r4
8771
- bl NandcSendDumpDataStart
8772
-.L1344:
8773
- ldr r3, [r5, #2296]
8774
- ldr r6, .L1367
8775
- cbz r3, .L1345
8776
- ldr r1, [sp]
8777
- movs r2, #1
8778
- ldr r0, [r6, #2288]
8779
- ubfx r1, r1, #22, #5
8780
- lsls r1, r1, #10
8781
- bl rknand_dma_unmap_single
8782
- ldr r0, [r6, #2292]
8783
- movs r2, #1
8784
- ldr r1, [sp]
8785
- ubfx r1, r1, #22, #5
8786
- lsls r1, r1, #7
8787
- bl rknand_dma_unmap_single
8788
-.L1345:
8789
- ldr r3, [r5, #2304]
8790
- cbz r3, .L1340
8791
- mov r0, r4
8792
- bl NandcSendDumpDataDone
8793
-.L1340:
8794
- movs r3, #0
8795
- str r3, [r5, #2296]
8796
- b .L1328
8797
-.L1359:
9156
+ b .L1321
9157
+.L1339:
87989158 ldr r3, [r4, #8]
87999159 str r3, [sp]
88009160 ldr r3, [sp]
88019161 lsls r3, r3, #11
8802
- bpl .L1359
8803
-.L1328:
8804
- add sp, sp, #8
8805
- @ sp needed
8806
- pop {r4, r5, r6, pc}
8807
-.L1368:
9162
+ bpl .L1339
9163
+ b .L1308
9164
+.L1348:
88089165 .align 2
8809
-.L1367:
9166
+.L1347:
88109167 .word .LANCHOR0
88119168 .word .LC87
8812
- .word .LC88
88139169 .word .LC89
9170
+ .word .LC88
88149171 .fnend
88159172 .size NandcXferComp, .-NandcXferComp
88169173 .align 1
88179174 .global NandcXferData
9175
+ .syntax unified
88189176 .thumb
88199177 .thumb_func
9178
+ .fpu softvfp
88209179 .type NandcXferData, %function
88219180 NandcXferData:
88229181 .fnstart
....@@ -8824,293 +9183,288 @@
88249183 @ frame_needed = 0, uses_anonymous_args = 0
88259184 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
88269185 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8827
- mov r10, r3
8828
- ldr r6, .L1413
8829
- tst r10, #63
9186
+ mov r8, r3
9187
+ ldr r3, .L1385
9188
+ tst r8, #63
88309189 .pad #92
88319190 sub sp, sp, #92
8832
- mov r9, r0
8833
- add r3, r6, r0, lsl #3
9191
+ mov r7, r0
88349192 mov r5, r1
8835
- mov r7, r2
8836
- ldr r8, [r3, #12]
8837
- bne .L1370
8838
- ldr r3, [sp, #128]
8839
- cbnz r3, .L1371
8840
- add r0, sp, #24
8841
- movs r1, #255
9193
+ mov r10, r2
9194
+ ldr fp, [sp, #128]
9195
+ mov r9, r3
9196
+ ldr r6, [r3, r0, lsl #3]
9197
+ bne .L1350
9198
+ cmp fp, #0
9199
+ bne .L1351
88429200 movs r2, #64
9201
+ movs r1, #255
9202
+ add r0, sp, #24
88439203 bl ftl_memset
8844
- add r3, sp, #24
8845
- str r3, [sp, #128]
8846
-.L1371:
8847
- ldr r3, [sp, #128]
8848
- mov r0, r9
9204
+ add fp, sp, #24
9205
+.L1351:
88499206 mov r1, r5
8850
- str r10, [sp]
8851
- mov r2, r7
8852
- str r3, [sp, #4]
9207
+ mov r0, r7
9208
+ stm sp, {r8, fp}
88539209 movs r3, #0
9210
+ mov r2, r10
88549211 bl NandcXferStart
8855
- mov r0, r9
88569212 mov r1, r5
9213
+ mov r0, r7
88579214 bl NandcXferComp
88589215 cmp r5, #0
8859
- bne .L1397
8860
- ldr r3, [r6, #2308]
8861
- lsrs r4, r7, #1
9216
+ bne .L1375
9217
+ ldr r3, [r9, #2312]
9218
+ lsr r0, r10, #1
88629219 mov r2, r5
8863
- mov r1, r5
88649220 cmp r3, #25
8865
- ldr r3, [sp, #128]
9221
+ mov r3, r5
88669222 ite cc
8867
- movcc lr, #64
8868
- movcs lr, #128
8869
-.L1374:
8870
- cmp r1, r4
8871
- add r3, r3, #4
8872
- add ip, r2, lr
8873
- bcs .L1411
8874
- ldr r0, [r6, #2276]
8875
- lsrs r2, r2, #2
8876
- adds r1, r1, #1
8877
- ldr r2, [r0, r2, lsl #2]
8878
- lsrs r0, r2, #8
8879
- strb r2, [r3, #-4]
8880
- strb r0, [r3, #-3]
8881
- lsrs r0, r2, #16
8882
- lsrs r2, r2, #24
8883
- strb r0, [r3, #-2]
8884
- strb r2, [r3, #-1]
8885
- mov r2, ip
8886
- b .L1374
8887
-.L1411:
9223
+ movcc r4, #64
9224
+ movcs r4, #128
9225
+.L1354:
9226
+ cmp r2, r0
9227
+ add fp, fp, #4
9228
+ add r7, r4, r3
9229
+ bcc .L1355
88889230 movs r2, #0
8889
- ldr r0, [r6, #2308]
8890
- ldr r1, [r6, #2260]
8891
- lsrs r7, r7, #2
8892
- mov fp, r2
8893
-.L1376:
8894
- cmp r2, r7
8895
- bcs .L1372
8896
- cmp r0, #0
8897
- beq .L1372
8898
- add r3, r2, #8
8899
- ldr r3, [r8, r3, lsl #2]
8900
- str r3, [sp, #20]
8901
- ldr r3, [sp, #20]
8902
- lsls r4, r3, #29
8903
- bmi .L1400
8904
- ldr r4, [sp, #20]
8905
- ubfx r4, r4, #15, #1
8906
- cmp r4, #0
8907
- bne .L1400
8908
- cmp r1, #5
8909
- bls .L1378
8910
- ldr r4, [sp, #20]
8911
- ldr r3, [sp, #20]
8912
- ubfx r4, r4, #3, #5
8913
- ubfx ip, r3, #27, #1
8914
- ldr r3, [sp, #20]
8915
- ldr lr, [sp, #20]
8916
- ubfx r3, r3, #16, #5
8917
- orr r4, r4, ip, lsl #5
8918
- ubfx lr, lr, #29, #1
8919
- orr r3, r3, lr, lsl #5
8920
- cmp r4, r3
8921
- ldr r3, [sp, #20]
8922
- ittee hi
8923
- ldrhi r4, [sp, #20]
8924
- ubfxhi r3, r3, #3, #5
8925
- ldrls r4, [sp, #20]
8926
- ubfxls r3, r3, #16, #5
8927
- ite hi
8928
- ubfxhi r4, r4, #27, #1
8929
- ubfxls r4, r4, #29, #1
8930
- b .L1410
8931
-.L1378:
8932
- cmp r1, #3
8933
- bls .L1380
8934
- ldr r4, [sp, #20]
8935
- ldr r3, [sp, #20]
8936
- ubfx r4, r4, #3, #5
8937
- ubfx ip, r3, #28, #1
8938
- ldr r3, [sp, #20]
8939
- ldr lr, [sp, #20]
8940
- ubfx r3, r3, #16, #5
8941
- orr r4, r4, ip, lsl #5
8942
- ubfx lr, lr, #30, #1
8943
- orr r3, r3, lr, lsl #5
8944
- cmp r4, r3
8945
- ldr r3, [sp, #20]
8946
- ittee hi
8947
- ldrhi r4, [sp, #20]
8948
- ubfxhi r3, r3, #3, #5
8949
- ldrls r4, [sp, #20]
8950
- ubfxls r3, r3, #16, #5
8951
- ite hi
8952
- ubfxhi r4, r4, #28, #1
8953
- ubfxls r4, r4, #30, #1
8954
-.L1410:
8955
- orr r4, r3, r4, lsl #5
8956
-.L1380:
8957
- cmp fp, r4
8958
- it cc
8959
- movcc fp, r4
8960
- b .L1377
8961
-.L1400:
8962
- mov fp, #-1
8963
-.L1377:
8964
- adds r2, r2, #1
8965
- b .L1376
8966
-.L1397:
8967
- mov fp, #0
8968
-.L1372:
9231
+ lsr r0, r10, #2
9232
+ ldr r1, [r9, #2312]
9233
+ ldr r4, [r9, #2264]
9234
+ mov r9, r2
9235
+.L1356:
9236
+ cmp r2, r0
9237
+ bcs .L1352
9238
+ cbnz r1, .L1362
9239
+.L1352:
89699240 movs r3, #0
8970
- str r3, [r8, #16]
8971
- b .L1383
8972
-.L1370:
8973
- cmp r1, #1
8974
- mov r4, #0
8975
- bne .L1409
8976
- mov fp, r4
8977
-.L1384:
8978
- cmp r4, r7
8979
- bcs .L1412
8980
- and ip, r4, #3
8981
- cmp r10, #0
8982
- beq .L1403
8983
- add r3, r10, r4, lsl #9
8984
- b .L1386
8985
-.L1403:
8986
- mov r3, r10
8987
-.L1386:
8988
- ldr r2, [sp, #128]
8989
- mov r0, r8
8990
- ldr r1, [sp, #128]
8991
- cmp r2, #0
8992
- str ip, [sp, #8]
8993
- ite ne
8994
- movne r2, #2
8995
- moveq r2, #0
8996
- mla r2, r4, r2, r1
8997
- movs r1, #1
8998
- adds r4, r4, #2
8999
- str r2, [sp]
9000
- mov r2, ip
9001
- bl NandcCopy1KB
9002
- mov r0, r9
9003
- movs r1, #1
9004
- movs r2, #2
9005
- ldr ip, [sp, #8]
9006
- str fp, [sp]
9007
- str fp, [sp, #4]
9008
- mov r3, ip
9009
- bl NandcXferStart
9010
- mov r0, r9
9011
- movs r1, #1
9012
- bl NandcXferComp
9013
- b .L1384
9014
-.L1412:
9015
- mov fp, #0
9016
- b .L1383
9017
-.L1409:
9018
- str r4, [sp]
9019
- mov r1, r4
9020
- str r4, [sp, #4]
9021
- movs r2, #2
9022
- mov r3, r4
9023
- mov fp, r4
9024
- bl NandcXferStart
9025
- str r10, [sp, #8]
9026
-.L1389:
9027
- cmp r4, r7
9028
- bcs .L1383
9029
- mov r0, r9
9030
- mov r1, r5
9031
- bl NandcXferComp
9032
- ldr r3, [r8, #32]
9033
- add ip, r4, #2
9034
- cmp ip, r7
9035
- str r3, [sp, #20]
9036
- bcs .L1390
9037
- movs r3, #0
9038
- mov r0, r9
9039
- str r3, [sp]
9040
- movs r2, #2
9041
- str r3, [sp, #4]
9042
- mov r1, r3
9043
- and r3, ip, #3
9044
- str ip, [sp, #12]
9045
- bl NandcXferStart
9046
- ldr ip, [sp, #12]
9047
-.L1390:
9048
- ldr r3, [sp, #20]
9049
- lsls r3, r3, #29
9050
- bmi .L1405
9051
- ldr r2, [sp, #20]
9052
- ldr r3, [sp, #20]
9053
- ubfx r2, r2, #3, #5
9054
- ubfx r3, r3, #27, #1
9055
- orr r3, r2, r3, lsl #5
9056
- cmp fp, r3
9057
- it cc
9058
- movcc fp, r3
9059
- b .L1391
9060
-.L1405:
9061
- mov fp, #-1
9062
-.L1391:
9063
- ldr r1, [sp, #128]
9064
- cmp r10, #0
9065
- ldr r3, [sp, #8]
9066
- it eq
9067
- moveq r3, #0
9068
- ldr r0, [sp, #128]
9069
- cmp r1, #0
9070
- ite ne
9071
- movne r1, #2
9072
- moveq r1, #0
9073
- sub r2, ip, #2
9074
- str ip, [sp, #12]
9075
- mla r4, r4, r1, r0
9076
- and r2, r2, #3
9077
- mov r0, r8
9078
- movs r1, #0
9079
- str r4, [sp]
9080
- bl NandcCopy1KB
9081
- ldr ip, [sp, #12]
9082
- ldr r3, [sp, #8]
9083
- mov r4, ip
9084
- add r3, r3, #1024
9085
- str r3, [sp, #8]
9086
- b .L1389
9087
-.L1383:
9088
- ldr r3, [r6, #2260]
9241
+ str r3, [r6, #16]
9242
+.L1363:
9243
+ ldr r3, .L1385
9244
+ ldr r3, [r3, #2264]
90899245 cmp r3, #5
9090
- bls .L1395
9091
- cbnz r5, .L1395
9092
- ldr r3, [r8]
9246
+ bls .L1349
9247
+ cbnz r5, .L1349
9248
+ ldr r3, [r6]
90939249 and r2, r3, #139264
90949250 cmp r2, #139264
90959251 ittt eq
9096
- moveq fp, #-1
9252
+ moveq r9, #-1
90979253 orreq r3, r3, #131072
9098
- streq r3, [r8]
9099
-.L1395:
9100
- mov r0, fp
9254
+ streq r3, [r6]
9255
+.L1349:
9256
+ mov r0, r9
91019257 add sp, sp, #92
91029258 @ sp needed
91039259 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9104
-.L1414:
9260
+.L1355:
9261
+ ldr r1, [r9, #2280]
9262
+ bic r3, r3, #3
9263
+ adds r2, r2, #1
9264
+ ldr r3, [r1, r3]
9265
+ strb r3, [fp, #-4]
9266
+ lsrs r1, r3, #8
9267
+ strb r1, [fp, #-3]
9268
+ lsrs r1, r3, #16
9269
+ lsrs r3, r3, #24
9270
+ strb r1, [fp, #-2]
9271
+ strb r3, [fp, #-1]
9272
+ mov r3, r7
9273
+ b .L1354
9274
+.L1362:
9275
+ add r3, r2, #8
9276
+ ldr r3, [r6, r3, lsl #2]
9277
+ str r3, [sp, #20]
9278
+ ldr r3, [sp, #20]
9279
+ lsls r7, r3, #29
9280
+ bmi .L1378
9281
+ ldr r3, [sp, #20]
9282
+ ubfx r3, r3, #15, #1
9283
+ cmp r3, #0
9284
+ bne .L1378
9285
+ cmp r4, #5
9286
+ bls .L1358
9287
+ ldr r7, [sp, #20]
9288
+ ldr r3, [sp, #20]
9289
+ ubfx r7, r7, #3, #5
9290
+ ubfx lr, r3, #27, #1
9291
+ ldr r3, [sp, #20]
9292
+ ldr ip, [sp, #20]
9293
+ orr r7, r7, lr, lsl #5
9294
+ ubfx r3, r3, #16, #5
9295
+ ubfx ip, ip, #29, #1
9296
+ orr r3, r3, ip, lsl #5
9297
+ cmp r7, r3
9298
+ ldr r3, [sp, #20]
9299
+ itete hi
9300
+ ldrhi r7, [sp, #20]
9301
+ ldrls r7, [sp, #20]
9302
+ ubfxhi r3, r3, #3, #5
9303
+ ubfxls r3, r3, #16, #5
9304
+ ite hi
9305
+ ubfxhi r7, r7, #27, #1
9306
+ ubfxls r7, r7, #29, #1
9307
+.L1384:
9308
+ orr r3, r3, r7, lsl #5
9309
+.L1360:
9310
+ cmp r9, r3
9311
+ it cc
9312
+ movcc r9, r3
9313
+.L1357:
9314
+ adds r2, r2, #1
9315
+ b .L1356
9316
+.L1358:
9317
+ cmp r4, #3
9318
+ bls .L1360
9319
+ ldr r7, [sp, #20]
9320
+ ldr r3, [sp, #20]
9321
+ ubfx r7, r7, #3, #5
9322
+ ubfx lr, r3, #28, #1
9323
+ ldr r3, [sp, #20]
9324
+ ldr ip, [sp, #20]
9325
+ orr r7, r7, lr, lsl #5
9326
+ ubfx r3, r3, #16, #5
9327
+ ubfx ip, ip, #30, #1
9328
+ orr r3, r3, ip, lsl #5
9329
+ cmp r7, r3
9330
+ ldr r3, [sp, #20]
9331
+ itete hi
9332
+ ldrhi r7, [sp, #20]
9333
+ ldrls r7, [sp, #20]
9334
+ ubfxhi r3, r3, #3, #5
9335
+ ubfxls r3, r3, #16, #5
9336
+ ite hi
9337
+ ubfxhi r7, r7, #28, #1
9338
+ ubfxls r7, r7, #30, #1
9339
+ b .L1384
9340
+.L1378:
9341
+ mov r9, #-1
9342
+ b .L1357
9343
+.L1375:
9344
+ mov r9, #0
9345
+ b .L1352
9346
+.L1350:
9347
+ cmp r1, #1
9348
+ bne .L1364
9349
+ cmp fp, #0
9350
+ mov r4, fp
9351
+ mov r9, #0
9352
+ ite ne
9353
+ movne r3, #4
9354
+ moveq r3, #0
9355
+ str r3, [sp, #8]
9356
+.L1365:
9357
+ cmp r9, r10
9358
+ bcc .L1367
9359
+ mov r9, #0
9360
+ b .L1363
9361
+.L1367:
9362
+ and fp, r9, #3
9363
+ cmp r8, #0
9364
+ beq .L1380
9365
+ add r3, r8, r9, lsl #9
9366
+.L1366:
9367
+ str r4, [sp]
9368
+ mov r2, fp
9369
+ movs r1, #1
9370
+ mov r0, r6
9371
+ bl NandcCopy1KB
9372
+ movs r3, #0
9373
+ movs r2, #2
9374
+ str r3, [sp, #4]
9375
+ movs r1, #1
9376
+ str r3, [sp]
9377
+ mov r0, r7
9378
+ mov r3, fp
9379
+ add r9, r9, #2
9380
+ bl NandcXferStart
9381
+ movs r1, #1
9382
+ mov r0, r7
9383
+ bl NandcXferComp
9384
+ ldr r3, [sp, #8]
9385
+ add r4, r4, r3
9386
+ b .L1365
9387
+.L1380:
9388
+ mov r3, r8
9389
+ b .L1366
9390
+.L1364:
9391
+ movs r4, #0
9392
+ movs r2, #2
9393
+ mov r3, r4
9394
+ str r4, [sp, #4]
9395
+ str r4, [sp]
9396
+ mov r1, r4
9397
+ bl NandcXferStart
9398
+ mov r9, r4
9399
+ cmp fp, r4
9400
+ ite ne
9401
+ movne r3, #4
9402
+ moveq r3, r4
9403
+ str r3, [sp, #12]
9404
+ str r8, [sp, #8]
9405
+.L1368:
9406
+ cmp r4, r10
9407
+ bcs .L1363
9408
+ mov r1, r5
9409
+ mov r0, r7
9410
+ bl NandcXferComp
9411
+ adds r4, r4, #2
9412
+ ldr r3, [r6, #32]
9413
+ cmp r10, r4
9414
+ str r3, [sp, #20]
9415
+ bls .L1369
9416
+ movs r3, #0
9417
+ movs r2, #2
9418
+ str r3, [sp, #4]
9419
+ movs r1, #0
9420
+ str r3, [sp]
9421
+ mov r0, r7
9422
+ and r3, r4, #3
9423
+ bl NandcXferStart
9424
+.L1369:
9425
+ ldr r3, [sp, #20]
9426
+ lsls r3, r3, #29
9427
+ bmi .L1381
9428
+ ldr r3, [sp, #20]
9429
+ ldr r2, [sp, #20]
9430
+ ubfx r3, r3, #3, #5
9431
+ ubfx r2, r2, #27, #1
9432
+ orr r3, r3, r2, lsl #5
9433
+ cmp r9, r3
9434
+ it cc
9435
+ movcc r9, r3
9436
+.L1370:
9437
+ cmp r8, #0
9438
+ sub r2, r4, #2
9439
+ ldr r3, [sp, #8]
9440
+ and r2, r2, #3
9441
+ str fp, [sp]
9442
+ it eq
9443
+ moveq r3, #0
9444
+ movs r1, #0
9445
+ mov r0, r6
9446
+ bl NandcCopy1KB
9447
+ ldr r3, [sp, #8]
9448
+ add r3, r3, #1024
9449
+ str r3, [sp, #8]
9450
+ ldr r3, [sp, #12]
9451
+ add fp, fp, r3
9452
+ b .L1368
9453
+.L1381:
9454
+ mov r9, #-1
9455
+ b .L1370
9456
+.L1386:
91059457 .align 2
9106
-.L1413:
9458
+.L1385:
91079459 .word .LANCHOR0
91089460 .fnend
91099461 .size NandcXferData, .-NandcXferData
91109462 .align 1
91119463 .global FlashReadRawPage
9464
+ .syntax unified
91129465 .thumb
91139466 .thumb_func
9467
+ .fpu softvfp
91149468 .type FlashReadRawPage, %function
91159469 FlashReadRawPage:
91169470 .fnstart
....@@ -9120,20 +9474,20 @@
91209474 .save {r4, r5, r6, r7, r8, lr}
91219475 .pad #8
91229476 mov r8, r3
9123
- ldr r3, .L1417
9477
+ ldr r3, .L1389
91249478 mov r6, r1
91259479 mov r7, r2
91269480 mov r4, r0
9127
- ldrb r5, [r3, #481] @ zero_extendqisi2
9128
- cbnz r0, .L1416
9129
- ldr r2, .L1417+4
9130
- ldrb r3, [r2, #1] @ zero_extendqisi2
9131
- ldr r2, [r2, #4]
9132
- muls r2, r3, r2
9133
- cmp r1, r2
9134
- it cc
9135
- movcc r5, #4
9136
-.L1416:
9481
+ ldrb r5, [r3, #477] @ zero_extendqisi2
9482
+ cbnz r0, .L1388
9483
+ ldr r1, .L1389+4
9484
+ ldrb r3, [r1, #37] @ zero_extendqisi2
9485
+ ldr r0, [r1, #40]
9486
+ muls r0, r3, r0
9487
+ cmp r0, r6
9488
+ it hi
9489
+ movhi r5, #4
9490
+.L1388:
91379491 mov r0, r4
91389492 bl NandcWaitFlashReady
91399493 mov r0, r4
....@@ -9143,30 +9497,32 @@
91439497 bl FlashReadCmd
91449498 mov r0, r4
91459499 bl NandcWaitFlashReady
9146
- mov r2, r5
9147
- movs r1, #0
91489500 mov r3, r7
9149
- mov r0, r4
9501
+ mov r2, r5
91509502 str r8, [sp]
9503
+ movs r1, #0
9504
+ mov r0, r4
91519505 bl NandcXferData
9152
- mov r5, r0
9506
+ mov r1, r0
91539507 mov r0, r4
91549508 bl NandcFlashDeCs
9155
- mov r0, r5
9509
+ mov r0, r1
91569510 add sp, sp, #8
91579511 @ sp needed
91589512 pop {r4, r5, r6, r7, r8, pc}
9159
-.L1418:
9513
+.L1390:
91609514 .align 2
9161
-.L1417:
9515
+.L1389:
91629516 .word .LANCHOR1
91639517 .word .LANCHOR0
91649518 .fnend
91659519 .size FlashReadRawPage, .-FlashReadRawPage
91669520 .align 1
91679521 .global FlashDdrTunningRead
9522
+ .syntax unified
91689523 .thumb
91699524 .thumb_func
9525
+ .fpu softvfp
91709526 .type FlashDdrTunningRead, %function
91719527 FlashDdrTunningRead:
91729528 .fnstart
....@@ -9175,156 +9531,149 @@
91759531 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
91769532 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
91779533 mov r7, r3
9178
- ldr r4, .L1445
9534
+ ldr r4, .L1416
91799535 .pad #20
91809536 sub sp, sp, #20
9181
- mov r10, r0
91829537 mov fp, r2
9183
- str r1, [sp]
9184
- ldr r3, [r4, #80]
9538
+ stm sp, {r0, r1}
9539
+ ldr r3, [r4, #88]
91859540 ldr r3, [r3, #304]
9186
- str r3, [sp, #8]
9187
- ldr r3, [r4, #2260]
9541
+ str r3, [sp, #12]
9542
+ ldr r3, [r4, #2264]
91889543 cmp r3, #8
91899544 ldr r3, [sp, #56]
91909545 ite cc
9191
- movcc r9, #6
9192
- movcs r9, #12
9546
+ movcc r10, #6
9547
+ movcs r10, #12
91939548 cmp r3, #0
9194
- beq .L1433
9549
+ beq .L1405
91959550 movs r0, #1
91969551 bl FlashSetInterfaceMode
91979552 movs r0, #1
91989553 bl NandcSetMode
9199
- mov r0, r10
9554
+ ldr r0, [sp]
92009555 bl FlashReset
92019556 mov r3, r7
92029557 mov r2, fp
9203
- mov r0, r10
9204
- ldr r1, [sp]
9558
+ ldm sp, {r0, r1}
92059559 bl FlashReadRawPage
9206
- mov r6, r0
9207
- ldrb r0, [r4, #2229] @ zero_extendqisi2
9560
+ mov r5, r0
9561
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
92089562 bl FlashSetInterfaceMode
9209
- ldrb r0, [r4, #2229] @ zero_extendqisi2
9563
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
92109564 bl NandcSetMode
9211
- adds r3, r6, #1
9212
- bne .L1422
9213
-.L1431:
9214
- mov r6, #-1
9215
- b .L1423
9216
-.L1422:
9217
- mov r2, r6
9218
- ldr r0, .L1445+4
9219
- ldr r1, [sp]
9220
- bl printk
9221
- cmp r6, #9
9222
- itt ls
9223
- addls r4, r4, r10, lsl #3
9224
- ldrls r3, [r4, #12]
9225
- ldr r4, .L1445+8
9226
- itttt ls
9227
- ldrls r2, [r3, #3840]
9228
- ldrls r2, [r3]
9229
- orrls r2, r2, #131072
9230
- strls r2, [r3]
9231
- ldr r3, [r4, #1188]
9232
- adds r3, r3, #1
9233
- str r3, [r4, #1188]
9234
- cmp r3, #2048
9235
- bcc .L1423
9236
- movs r7, #0
9237
- str r7, [r4, #1188]
9238
- mov fp, r7
9239
- b .L1421
9240
-.L1433:
9241
- mov r6, #1024
9242
-.L1421:
9243
- movs r4, #0
9244
- mov r8, #-1
9245
- str r4, [sp, #4]
9246
- mov ip, r4
9247
- mov r5, r4
9248
-.L1429:
9249
- uxtb r0, r9
9250
- str ip, [sp, #12]
9251
- bl NandcSetDdrPara
9252
- mov r3, r7
9253
- mov r0, r10
9254
- mov r2, fp
9255
- ldr r1, [sp]
9256
- bl FlashReadRawPage
9257
- adds r3, r6, #1
9258
- cmp r0, r3
9259
- ldr ip, [sp, #12]
9260
- bhi .L1425
9261
- cmp r0, #2
9262
- bhi .L1435
9263
- adds r5, r5, #1
9264
- cmp r5, #9
9265
- bls .L1435
9266
- rsb r4, r5, r9
9267
- mov r6, r0
9268
- mov r8, #0
9269
- b .L1427
9270
-.L1425:
9271
- ldr r3, [sp, #4]
9272
- cmp r3, r5
9273
- bcs .L1436
9274
- cmp r5, #7
9275
- rsb ip, r5, r4
9276
- bhi .L1437
9277
- str r5, [sp, #4]
9278
- b .L1436
9279
-.L1435:
9280
- mov r8, #0
9281
- mov r4, r9
9282
- mov r6, r0
9283
- mov r7, r8
9284
- mov fp, r8
9285
- b .L1426
9286
-.L1436:
9287
- movs r5, #0
9288
-.L1426:
9289
- add r9, r9, #2
9290
- cmp r9, #69
9291
- bls .L1429
9292
-.L1427:
9293
- ldr r3, [sp, #4]
9294
- cmp r3, r5
9295
- it cs
9296
- movcs r4, ip
9297
- b .L1428
9298
-.L1437:
9299
- mov r4, ip
9300
-.L1428:
9301
- cbz r4, .L1430
9302
- ldr r0, .L1445+12
9303
- mov r1, r4
9304
- bl printk
9305
- uxtb r0, r4
9306
- bl NandcSetDdrPara
9307
-.L1430:
9308
- cmp r8, #0
9309
- beq .L1423
9310
- ldr r0, .L1445+16
9311
- mov r1, r10
9312
- ldr r2, [sp]
9313
- bl printk
9314
- ldr r3, [sp, #56]
9315
- cmp r3, #0
9316
- beq .L1431
9317
- ldr r3, [sp, #8]
9318
- ubfx r0, r3, #8, #8
9319
- bl NandcSetDdrPara
9320
-.L1423:
9321
- mov r0, r6
9565
+ adds r3, r5, #1
9566
+ bne .L1394
9567
+.L1403:
9568
+ mov r5, #-1
9569
+.L1391:
9570
+ mov r0, r5
93229571 add sp, sp, #20
93239572 @ sp needed
93249573 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9325
-.L1446:
9574
+.L1394:
9575
+ mov r2, r5
9576
+ ldr r1, [sp, #4]
9577
+ ldr r0, .L1416+4
9578
+ bl printk
9579
+ cmp r5, #9
9580
+ bhi .L1396
9581
+ ldr r3, [sp]
9582
+ ldr r3, [r4, r3, lsl #3]
9583
+ ldr r2, [r3, #3840]
9584
+ ldr r2, [r3]
9585
+ orr r2, r2, #131072
9586
+ str r2, [r3]
9587
+.L1396:
9588
+ ldr r2, .L1416+8
9589
+ ldr r3, [r2, #1196]
9590
+ adds r3, r3, #1
9591
+ cmp r3, #2048
9592
+ str r3, [r2, #1196]
9593
+ bcc .L1391
9594
+ movs r7, #0
9595
+ mov fp, r7
9596
+ str r7, [r2, #1196]
9597
+.L1393:
9598
+ mov r9, #0
9599
+ mov r8, #-1
9600
+ mov r6, r9
9601
+ mov r4, r9
9602
+ str r9, [sp, #8]
9603
+.L1401:
9604
+ uxtb r0, r10
9605
+ bl NandcSetDdrPara
9606
+ mov r3, r7
9607
+ mov r2, fp
9608
+ ldm sp, {r0, r1}
9609
+ bl FlashReadRawPage
9610
+ adds r3, r5, #1
9611
+ cmp r0, r3
9612
+ bhi .L1397
9613
+ cmp r0, #2
9614
+ bhi .L1407
9615
+ adds r4, r4, #1
9616
+ cmp r4, #9
9617
+ bls .L1407
9618
+ mov r3, r6
9619
+ mov r5, r0
9620
+ sub r6, r10, r4
9621
+ mov r8, #0
9622
+.L1399:
9623
+ ldr r2, [sp, #8]
9624
+ cmp r4, r2
9625
+ it ls
9626
+ movls r6, r3
9627
+.L1400:
9628
+ cbz r6, .L1402
9629
+ mov r1, r6
9630
+ ldr r0, .L1416+12
9631
+ bl printk
9632
+ uxtb r0, r6
9633
+ bl NandcSetDdrPara
9634
+.L1402:
9635
+ cmp r8, #0
9636
+ beq .L1391
9637
+ ldm sp, {r1, r2}
9638
+ ldr r0, .L1416+16
9639
+ bl printk
9640
+ ldr r3, [sp, #56]
9641
+ cmp r3, #0
9642
+ beq .L1403
9643
+ ldr r3, [sp, #12]
9644
+ ubfx r0, r3, #8, #8
9645
+ bl NandcSetDdrPara
9646
+ b .L1391
9647
+.L1405:
9648
+ mov r5, #1024
9649
+ b .L1393
9650
+.L1397:
9651
+ ldr r3, [sp, #8]
9652
+ cmp r4, r3
9653
+ bls .L1408
9654
+ cmp r4, #7
9655
+ sub r6, r9, r4
9656
+ bhi .L1400
9657
+ str r4, [sp, #8]
9658
+.L1408:
9659
+ movs r4, #0
9660
+ b .L1398
9661
+.L1407:
9662
+ mov r8, #0
9663
+ mov r9, r10
9664
+ mov r5, r0
9665
+ mov r7, r8
9666
+ mov fp, r8
9667
+.L1398:
9668
+ add r10, r10, #2
9669
+ cmp r10, #69
9670
+ bls .L1401
9671
+ mov r3, r6
9672
+ mov r6, r9
9673
+ b .L1399
9674
+.L1417:
93269675 .align 2
9327
-.L1445:
9676
+.L1416:
93289677 .word .LANCHOR0
93299678 .word .LC90
93309679 .word .LANCHOR4
....@@ -9334,8 +9683,10 @@
93349683 .size FlashDdrTunningRead, .-FlashDdrTunningRead
93359684 .align 1
93369685 .global FlashReadPage
9686
+ .syntax unified
93379687 .thumb
93389688 .thumb_func
9689
+ .fpu softvfp
93399690 .type FlashReadPage, %function
93409691 FlashReadPage:
93419692 .fnstart
....@@ -9344,98 +9695,95 @@
93449695 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
93459696 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
93469697 .pad #12
9347
- mov r8, r2
9698
+ mov r7, r2
93489699 mov r5, r0
93499700 mov r6, r1
9350
- mov r7, r3
9701
+ mov r8, r3
93519702 bl FlashReadRawPage
93529703 adds r2, r0, #1
93539704 mov r4, r0
9354
- bne .L1448
9355
- ldr r9, .L1467+4
9356
- ldrb fp, [r9, #8] @ zero_extendqisi2
9705
+ bne .L1419
9706
+ ldr r9, .L1437+4
9707
+ ldrb fp, [r9, #44] @ zero_extendqisi2
93579708 mov r10, r9
93589709 cmp fp, #0
9359
- bne .L1449
9360
-.L1451:
9361
- ldrb r3, [r10, #2252] @ zero_extendqisi2
9362
- ldr r9, .L1467+4
9363
- cbz r3, .L1448
9364
- b .L1466
9365
-.L1449:
9366
- movs r3, #0
9367
- mov r0, r5
9368
- strb r3, [r9, #8]
9710
+ bne .L1420
9711
+.L1422:
9712
+ ldrb r3, [r10, #2256] @ zero_extendqisi2
9713
+ cbz r3, .L1419
9714
+ ldr r3, [r10, #88]
93699715 mov r1, r6
9370
- mov r3, r7
9371
- mov r2, r8
9372
- bl FlashReadRawPage
9373
- strb fp, [r9, #8]
9374
- adds r3, r0, #1
9375
- beq .L1451
9376
- mov r4, r0
9377
- b .L1448
9378
-.L1466:
9379
- ldr r3, [r9, #80]
9380
- mov r1, r6
9716
+ mov r2, r7
93819717 mov r0, r5
9382
- mov r2, r8
9383
- ldr r10, [r3, #304]
9718
+ ldr r9, [r3, #304]
93849719 movs r3, #1
93859720 str r3, [sp]
9386
- mov r3, r7
9721
+ mov r3, r8
93879722 bl FlashDdrTunningRead
93889723 adds r1, r0, #1
93899724 mov r4, r0
9390
- beq .L1452
9391
- ldrb r3, [r9, #2312] @ zero_extendqisi2
9725
+ beq .L1423
9726
+ ldrb r3, [r10, #2316] @ zero_extendqisi2
93929727 cmp r0, r3, lsr #1
9393
- bls .L1448
9394
-.L1452:
9395
- ubfx r0, r10, #8, #8
9728
+ bls .L1419
9729
+.L1423:
9730
+ ubfx r0, r9, #8, #8
93969731 bl NandcSetDdrPara
9397
-.L1448:
9398
- ldr r9, .L1467+8
9399
- ldr ip, [r9, #1192]
9400
- cmp ip, #0
9401
- beq .L1453
9402
- adds r2, r4, #1
9403
- bne .L1453
9732
+ b .L1419
9733
+.L1420:
9734
+ movs r3, #0
9735
+ mov r2, r7
9736
+ strb r3, [r9, #44]
94049737 mov r1, r6
9405
- mov r2, r8
9406
- mov r3, r7
9738
+ mov r3, r8
94079739 mov r0, r5
9408
- blx ip
9409
- mov r3, r6
9410
- mov r2, r5
9740
+ bl FlashReadRawPage
9741
+ adds r3, r0, #1
9742
+ strb fp, [r9, #44]
9743
+ beq .L1422
94119744 mov r4, r0
9412
- ldr r0, .L1467
9413
- mov r1, r4
9745
+.L1419:
9746
+ ldr r9, .L1437+8
9747
+ ldr r10, [r9, #1200]
9748
+ cmp r10, #0
9749
+ beq .L1418
9750
+ adds r2, r4, #1
9751
+ bne .L1418
9752
+ mov r3, r8
9753
+ mov r2, r7
9754
+ mov r1, r6
9755
+ mov r0, r5
9756
+ blx r10
9757
+ mov r3, r6
9758
+ mov r4, r0
9759
+ mov r1, r0
9760
+ mov r2, r5
9761
+ ldr r0, .L1437
94149762 bl printk
94159763 adds r3, r4, #1
9416
- bne .L1453
9417
- ldr r3, .L1467+4
9418
- ldrb r3, [r3, #144] @ zero_extendqisi2
9419
- cbz r3, .L1453
9764
+ bne .L1418
9765
+ ldr r3, .L1437+4
9766
+ ldrb r3, [r3, #152] @ zero_extendqisi2
9767
+ cbz r3, .L1418
94209768 mov r0, r5
94219769 bl flash_enter_slc_mode
9422
- ldr r4, [r9, #1192]
9423
- mov r0, r5
9770
+ ldr r4, [r9, #1200]
9771
+ mov r3, r8
9772
+ mov r2, r7
94249773 mov r1, r6
9425
- mov r2, r8
9426
- mov r3, r7
9774
+ mov r0, r5
94279775 blx r4
94289776 mov r4, r0
94299777 mov r0, r5
94309778 bl flash_exit_slc_mode
9431
-.L1453:
9779
+.L1418:
94329780 mov r0, r4
94339781 add sp, sp, #12
94349782 @ sp needed
94359783 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9436
-.L1468:
9784
+.L1438:
94379785 .align 2
9438
-.L1467:
9786
+.L1437:
94399787 .word .LC93
94409788 .word .LANCHOR0
94419789 .word .LANCHOR4
....@@ -9443,8 +9791,10 @@
94439791 .size FlashReadPage, .-FlashReadPage
94449792 .align 1
94459793 .global FlashDdrParaScan
9794
+ .syntax unified
94469795 .thumb
94479796 .thumb_func
9797
+ .fpu softvfp
94489798 .type FlashDdrParaScan, %function
94499799 FlashDdrParaScan:
94509800 .fnstart
....@@ -9453,60 +9803,60 @@
94539803 push {r0, r1, r4, r5, r6, r7, r8, lr}
94549804 .save {r4, r5, r6, r7, r8, lr}
94559805 .pad #8
9456
- mov r7, r0
9457
- ldr r4, .L1479
9458
- mov r6, r1
9806
+ mov r6, r0
9807
+ ldr r4, .L1450
94599808 movs r5, #0
9460
- ldrb r0, [r4, #2229] @ zero_extendqisi2
9809
+ mov r7, r1
9810
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
94619811 bl FlashSetInterfaceMode
9462
- ldrb r0, [r4, #2229] @ zero_extendqisi2
9812
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
94639813 bl NandcSetMode
9464
- mov r1, r6
9465
- mov r2, r5
94669814 mov r3, r5
9467
- mov r0, r7
9468
- str r5, [sp]
9469
- bl FlashDdrTunningRead
9470
- mov r1, r6
94719815 mov r2, r5
9816
+ mov r1, r7
9817
+ str r5, [sp]
9818
+ mov r0, r6
9819
+ bl FlashDdrTunningRead
94729820 mov r3, r5
94739821 mov r8, r0
9474
- mov r0, r7
9822
+ mov r2, r5
9823
+ mov r1, r7
9824
+ mov r0, r6
94759825 bl FlashReadRawPage
94769826 adds r0, r0, #1
9477
- beq .L1470
9827
+ beq .L1440
94789828 cmp r8, #-1
9479
- bne .L1471
9480
-.L1470:
9481
- ldrb r3, [r4, #2229] @ zero_extendqisi2
9829
+ bne .L1441
9830
+.L1440:
9831
+ ldrb r3, [r4, #2233] @ zero_extendqisi2
94829832 lsls r3, r3, #31
9483
- bpl .L1471
9833
+ bpl .L1441
94849834 movs r0, #1
94859835 bl FlashSetInterfaceMode
94869836 movs r0, #1
94879837 bl NandcSetMode
9488
- ldr r3, .L1479
9489
- movs r2, #0
9490
- strb r2, [r3, #2252]
9491
- b .L1472
9492
-.L1471:
9493
- movs r3, #1
9494
- strb r3, [r4, #2252]
9495
-.L1472:
9838
+ movs r3, #0
9839
+.L1449:
94969840 movs r0, #0
9841
+ strb r3, [r4, #2256]
94979842 add sp, sp, #8
94989843 @ sp needed
94999844 pop {r4, r5, r6, r7, r8, pc}
9500
-.L1480:
9845
+.L1441:
9846
+ movs r3, #1
9847
+ b .L1449
9848
+.L1451:
95019849 .align 2
9502
-.L1479:
9850
+.L1450:
95039851 .word .LANCHOR0
95049852 .fnend
95059853 .size FlashDdrParaScan, .-FlashDdrParaScan
95069854 .align 1
95079855 .global FlashLoadPhyInfo
9856
+ .syntax unified
95089857 .thumb
95099858 .thumb_func
9859
+ .fpu softvfp
95109860 .type FlashLoadPhyInfo, %function
95119861 FlashLoadPhyInfo:
95129862 .fnstart
....@@ -9514,136 +9864,141 @@
95149864 @ frame_needed = 0, uses_anonymous_args = 0
95159865 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
95169866 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9867
+ movs r3, #60
95179868 .pad #20
95189869 sub sp, sp, #20
9519
- ldr r3, .L1496
9520
- movs r4, #0
9521
- ldr r7, .L1496+4
9522
- mov r9, #4
9523
- ldr r5, .L1496+8
9524
- mov r8, #-1
9525
- ldr r0, [r3] @ unaligned
9526
- ldr r3, [r7, #4]
9527
- str r4, [r5, #1200]
9528
- mov r6, r5
9529
- str r0, [sp, #12] @ unaligned
9530
- mov r0, r4
9870
+ ldr r6, .L1466
9871
+ movs r5, #0
9872
+ mov r8, #4
9873
+ strb r3, [sp, #12]
9874
+ movs r3, #40
9875
+ strb r3, [sp, #13]
9876
+ movs r3, #24
9877
+ strb r3, [sp, #14]
9878
+ movs r3, #16
9879
+ ldr r4, .L1466+4
9880
+ mov r7, #-1
9881
+ strb r3, [sp, #15]
9882
+ mov r0, r5
9883
+ ldr r3, [r6, #40]
9884
+ ldr r10, .L1466+24
9885
+ str r5, [r4, #1208]
95319886 str r3, [sp, #4]
9532
- ldr r3, [r5, #1184]
9533
- str r3, [r5, #1196]
9887
+ ldr r3, [r4, #1192]
9888
+ str r3, [r4, #1204]
95349889 bl flash_enter_slc_mode
9535
-.L1482:
9536
- add fp, r4, #1
9537
- mov r10, #0
9538
-.L1484:
9890
+.L1453:
9891
+ add fp, r5, #1
9892
+ mov r9, #0
9893
+.L1455:
95399894 add r3, sp, #12
9540
- ldrb r0, [r3, r10] @ zero_extendqisi2
9895
+ ldrb r0, [r3, r9] @ zero_extendqisi2
95419896 bl FlashBchSel
9542
- movs r0, #0
9543
- mov r1, r4
9544
- ldr r2, [r5, #1184]
9545
- mov r3, r0
9897
+ movs r3, #0
9898
+ ldr r2, [r4, #1192]
9899
+ mov r1, r5
9900
+ mov r0, r3
95469901 bl FlashReadRawPage
95479902 adds r0, r0, #1
9548
- bne .L1483
9549
- movs r0, #0
9903
+ bne .L1454
9904
+ movs r3, #0
9905
+ ldr r2, [r4, #1192]
95509906 mov r1, fp
9551
- ldr r2, [r6, #1184]
9552
- mov r3, r0
9907
+ mov r0, r3
95539908 bl FlashReadRawPage
95549909 adds r0, r0, #1
9555
- bne .L1483
9556
- add r10, r10, #1
9557
- cmp r10, #4
9558
- beq .L1485
9559
- b .L1484
9560
-.L1486:
9561
- add r0, fp, #12
9910
+ bne .L1454
9911
+ add r9, r9, #1
9912
+ cmp r9, #4
9913
+ bne .L1455
9914
+.L1456:
9915
+ ldr r3, [sp, #4]
9916
+ subs r8, r8, #1
9917
+ add r5, r5, r3
9918
+ bne .L1453
9919
+ mov r0, r8
9920
+ b .L1465
9921
+.L1457:
95629922 movw r1, #2036
9923
+ add r0, r9, #12
95639924 bl js_hash
9564
- ldr r3, [fp, #8]
9925
+ ldr r3, [r9, #8]
95659926 cmp r3, r0
9566
- bne .L1492
9567
- ldr r8, .L1496+24
9568
- add r1, fp, #160
9927
+ bne .L1463
95699928 movs r2, #32
9570
- add r0, r8, #472
9929
+ add r1, r9, #160
9930
+ ldr r0, .L1466+8
95719931 bl ftl_memcpy
9572
- ldr r1, [r6, #1196]
9932
+ ldr r1, [r4, #1204]
95739933 movs r2, #32
9574
- ldr r0, .L1496+12
9934
+ ldr r0, .L1466+12
95759935 adds r1, r1, #192
95769936 bl ftl_memcpy
9577
- ldr r1, [r6, #1196]
9937
+ ldr r1, [r4, #1204]
95789938 mov r2, #852
9579
- ldr r0, .L1496+16
9939
+ ldr r0, .L1466+16
95809940 adds r1, r1, #224
95819941 bl ftl_memcpy
9582
- ldrh r0, [r8, #482]
9942
+ ldrh r0, [r10, #478]
95839943 bl FlashBlockAlignInit
9584
- ldr r8, [r6, #1196]
9585
- str r4, [r6, #1200]
9586
- mov r0, r4
9587
- ldr r1, [r7, #4]
9588
- ldr r3, [r8, #1076]
9589
- strb r3, [r7, #2252]
9944
+ ldr r7, [r4, #1204]
9945
+ mov r0, r5
9946
+ str r5, [r4, #1208]
9947
+ ldr r1, [r6, #40]
9948
+ ldr r3, [r7, #1076]
9949
+ strb r3, [r6, #2256]
95909950 bl __aeabi_uidiv
95919951 adds r0, r0, #1
95929952 cmp r0, #1
9593
- itee hi
9594
- strhi r0, [r6, #1204]
9953
+ itet ls
95959954 movls r3, #2
9596
- strls r3, [r6, #1204]
9597
- ldrh r3, [r8, #14]
9598
- mov r8, #0
9599
- strb r3, [r5, #1208]
9600
-.L1485:
9601
- ldr r3, [sp, #4]
9602
- subs r9, r9, #1
9603
- add r4, r4, r3
9604
- bne .L1482
9605
- mov r0, r9
9606
-.L1495:
9955
+ strhi r0, [r4, #1212]
9956
+ strls r3, [r4, #1212]
9957
+ ldrh r3, [r7, #14]
9958
+ movs r7, #0
9959
+ strb r3, [r4, #1216]
9960
+ b .L1456
9961
+.L1463:
9962
+ mov r7, #-1
9963
+ b .L1456
9964
+.L1454:
9965
+ ldr r9, [r4, #1204]
9966
+ ldr r2, .L1466+20
9967
+ ldr r3, [r9]
9968
+ cmp r3, r2
9969
+ bne .L1456
9970
+ cmp r7, #0
9971
+ bne .L1457
9972
+ ldr r1, [r6, #40]
9973
+ mov r0, r5
9974
+ bl __aeabi_uidiv
9975
+ adds r0, r0, #1
9976
+ str r0, [r4, #1212]
9977
+ mov r0, r7
9978
+.L1465:
96079979 bl flash_exit_slc_mode
9608
- mov r0, r8
9980
+ mov r0, r7
96099981 add sp, sp, #20
96109982 @ sp needed
96119983 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9612
-.L1483:
9613
- ldr fp, [r5, #1196]
9614
- ldr r2, .L1496+20
9615
- ldr r3, [fp]
9616
- cmp r3, r2
9617
- bne .L1485
9618
- cmp r8, #0
9619
- bne .L1486
9620
- mov r0, r4
9621
- ldr r1, [r7, #4]
9622
- bl __aeabi_uidiv
9623
- ldr r3, .L1496+8
9624
- adds r0, r0, #1
9625
- str r0, [r3, #1204]
9626
- mov r0, r8
9627
- b .L1495
9628
-.L1492:
9629
- mov r8, #-1
9630
- b .L1485
9631
-.L1497:
9984
+.L1467:
96329985 .align 2
9633
-.L1496:
9634
- .word .LANCHOR3+11
9986
+.L1466:
96359987 .word .LANCHOR0
96369988 .word .LANCHOR4
9637
- .word .LANCHOR0+48
9638
- .word .LANCHOR0+1210
9989
+ .word .LANCHOR1+468
9990
+ .word .LANCHOR0+52
9991
+ .word .LANCHOR0+1216
96399992 .word 1312902724
96409993 .word .LANCHOR1
96419994 .fnend
96429995 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo
96439996 .align 1
96449997 .global ToshibaReadRetrial
9998
+ .syntax unified
96459999 .thumb
964610000 .thumb_func
10001
+ .fpu softvfp
964710002 .type ToshibaReadRetrial, %function
964810003 ToshibaReadRetrial:
964910004 .fnstart
....@@ -9651,171 +10006,167 @@
965110006 @ frame_needed = 0, uses_anonymous_args = 0
965210007 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
965310008 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10009
+ mov r8, r0
10010
+ ldr r4, .L1495
965410011 .pad #28
965510012 sub sp, sp, #28
9656
- mov r9, r0
965710013 mov fp, r3
10014
+ str r1, [sp, #12]
965810015 str r2, [sp, #8]
9659
- str r1, [sp, #16]
966010016 bl NandcWaitFlashReady
9661
- ldr r4, .L1526
9662
- add r3, r4, r9, lsl #3
9663
- ldrb r2, [r3, #16] @ zero_extendqisi2
9664
- ldr r7, [r3, #12]
9665
- ldrb r3, [r4, #1208] @ zero_extendqisi2
9666
- add r6, r2, #8
10017
+ add r3, r4, r8, lsl #3
10018
+ ldr r6, [r4, r8, lsl #3]
10019
+ ldrb r1, [r3, #4] @ zero_extendqisi2
10020
+ ldrb r3, [r4, #84] @ zero_extendqisi2
10021
+ add r7, r1, #8
966710022 subs r3, r3, #67
9668
- add r6, r7, r6, lsl #8
10023
+ add r7, r6, r7, lsl #8
966910024 cmp r3, #1
9670
- lsl r3, r2, #8
9671
- str r3, [sp, #12]
9672
- bls .L1515
9673
- ldrb r5, [r4, #2252] @ zero_extendqisi2
9674
- cbz r5, .L1516
10025
+ lsl r3, r1, #8
10026
+ str r3, [sp, #16]
10027
+ bls .L1485
10028
+ ldrb r5, [r4, #2256] @ zero_extendqisi2
10029
+ cbz r5, .L1470
10030
+ movs r5, #1
967510031 movs r0, #0
9676
- str r2, [sp, #20]
967710032 bl NandcSetDdrMode
9678
- movs r3, #1
9679
- ldr r2, [sp, #20]
10033
+.L1470:
10034
+ lsls r3, r1, #8
10035
+ movs r2, #92
10036
+ adds r3, r6, r3
10037
+ str r2, [r3, #2056]
10038
+ movs r2, #197
10039
+ str r2, [r3, #2056]
10040
+.L1469:
10041
+ mov r3, #-1
10042
+ mov r9, #1
968010043 str r3, [sp, #4]
9681
- b .L1500
9682
-.L1516:
9683
- str r5, [sp, #4]
9684
-.L1500:
9685
- ldr r3, [sp, #12]
9686
- movs r1, #92
9687
- adds r3, r7, r3
9688
- str r1, [r3, #2056]
9689
- movs r1, #197
9690
- str r1, [r3, #2056]
9691
- b .L1499
9692
-.L1515:
9693
- movs r3, #0
9694
- str r3, [sp, #4]
9695
-.L1499:
9696
- mov r8, #1
9697
- mov r10, #-1
9698
- lsls r3, r2, #8
10044
+ lsls r3, r1, #8
969910045 str r3, [sp, #20]
9700
-.L1501:
9701
- ldr r3, .L1526+4
9702
- ldrb r3, [r3, #1209] @ zero_extendqisi2
10046
+.L1471:
10047
+ ldr r3, .L1495+4
10048
+ ldrb r3, [r3, #1217] @ zero_extendqisi2
970310049 adds r3, r3, #1
9704
- cmp r8, r3
9705
- bcs .L1525
9706
- ldrb r3, [r4, #1208] @ zero_extendqisi2
9707
- mov r0, r6
9708
- uxtb r1, r8
9709
- subs r3, r3, #67
9710
- cmp r3, #1
9711
- bhi .L1502
9712
- bl SandiskSetRRPara
9713
- b .L1503
9714
-.L1502:
9715
- bl ToshibaSetRRPara
9716
-.L1503:
9717
- ldrb r3, [r4, #1208] @ zero_extendqisi2
9718
- cmp r3, #34
9719
- bne .L1504
9720
- ldr r3, .L1526+4
9721
- ldrb r3, [r3, #1209] @ zero_extendqisi2
9722
- subs r3, r3, #3
9723
- cmp r8, r3
9724
- itttt eq
9725
- moveq r2, #179
9726
- ldreq r3, [sp, #20]
9727
- addeq r3, r7, r3
9728
- streq r2, [r3, #2056]
9729
-.L1504:
9730
- ldr r3, [sp, #12]
9731
- movs r2, #38
9732
- adds r3, r7, r3
9733
- str r2, [r3, #2056]
9734
- movs r2, #93
9735
- str r2, [r3, #2056]
9736
- ldr r3, [sp, #4]
9737
- cbz r3, .L1505
9738
- movs r0, #4
9739
- bl NandcSetDdrMode
9740
- mov r0, r9
9741
- mov r3, fp
9742
- ldr r1, [sp, #16]
9743
- ldr r2, [sp, #8]
9744
- bl FlashReadRawPage
9745
- mov r5, r0
9746
- movs r0, #0
9747
- bl NandcSetDdrMode
9748
- b .L1506
9749
-.L1505:
9750
- mov r0, r9
9751
- ldr r1, [sp, #16]
9752
- ldr r2, [sp, #8]
9753
- mov r3, fp
9754
- bl FlashReadRawPage
9755
- mov r5, r0
9756
-.L1506:
9757
- adds r2, r5, #1
9758
- beq .L1507
9759
- ldrb r2, [r4, #2312] @ zero_extendqisi2
9760
- cmp r10, #-1
9761
- it eq
9762
- moveq r10, r5
9763
- add r2, r2, r2, lsl #1
9764
- cmp r5, r2, asr #2
9765
- bcc .L1509
9766
- mov fp, #0
9767
- str fp, [sp, #8]
9768
-.L1507:
9769
- add r8, r8, #1
9770
- b .L1501
9771
-.L1525:
9772
- mov r5, r10
9773
-.L1509:
9774
- ldrb r2, [r4, #1208] @ zero_extendqisi2
9775
- mov r0, r6
10050
+ cmp r9, r3
10051
+ bcc .L1480
10052
+ ldr r10, [sp, #4]
10053
+.L1479:
10054
+ ldrb r2, [r4, #84] @ zero_extendqisi2
977610055 movs r1, #0
10056
+ mov r0, r7
977710057 subs r2, r2, #67
977810058 cmp r2, #1
9779
- bhi .L1511
10059
+ bhi .L1481
978010060 bl SandiskSetRRPara
9781
- b .L1512
9782
-.L1511:
9783
- bl ToshibaSetRRPara
9784
-.L1512:
9785
- ldr r3, [sp, #12]
10061
+.L1482:
10062
+ ldr r3, [sp, #16]
978610063 movs r2, #255
9787
- add r7, r7, r3
9788
- str r2, [r7, #2056]
9789
- ldrb r2, [r4, #2312] @ zero_extendqisi2
10064
+ add r6, r6, r3
10065
+ str r2, [r6, #2056]
10066
+ ldrb r2, [r4, #2316] @ zero_extendqisi2
979010067 add r2, r2, r2, lsl #1
9791
- cmp r5, r2, asr #2
9792
- bcc .L1513
9793
- adds r3, r5, #1
10068
+ cmp r10, r2, asr #2
10069
+ bcc .L1483
10070
+ cmp r10, #-1
979410071 it ne
9795
- movne r5, #256
9796
-.L1513:
9797
- mov r0, r9
10072
+ movne r10, #256
10073
+.L1483:
10074
+ mov r0, r8
979810075 bl NandcWaitFlashReady
9799
- ldr r3, [sp, #4]
9800
- cbz r3, .L1514
10076
+ cbz r5, .L1468
980110077 movs r0, #4
980210078 bl NandcSetDdrMode
9803
-.L1514:
9804
- mov r0, r5
10079
+.L1468:
10080
+ mov r0, r10
980510081 add sp, sp, #28
980610082 @ sp needed
980710083 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9808
-.L1527:
10084
+.L1485:
10085
+ movs r5, #0
10086
+ b .L1469
10087
+.L1480:
10088
+ ldrb r3, [r4, #84] @ zero_extendqisi2
10089
+ mov r0, r7
10090
+ uxtb r1, r9
10091
+ subs r3, r3, #67
10092
+ cmp r3, #1
10093
+ bhi .L1472
10094
+ bl SandiskSetRRPara
10095
+.L1473:
10096
+ ldrb r3, [r4, #84] @ zero_extendqisi2
10097
+ cmp r3, #34
10098
+ bne .L1474
10099
+ ldr r3, .L1495+4
10100
+ ldrb r3, [r3, #1217] @ zero_extendqisi2
10101
+ subs r3, r3, #3
10102
+ cmp r9, r3
10103
+ itttt eq
10104
+ ldreq r3, [sp, #20]
10105
+ moveq r2, #179
10106
+ addeq r3, r6, r3
10107
+ streq r2, [r3, #2056]
10108
+.L1474:
10109
+ ldr r3, [sp, #16]
10110
+ movs r2, #38
10111
+ adds r3, r6, r3
10112
+ str r2, [r3, #2056]
10113
+ movs r2, #93
10114
+ str r2, [r3, #2056]
10115
+ cbz r5, .L1475
10116
+ movs r0, #4
10117
+ bl NandcSetDdrMode
10118
+ mov r3, fp
10119
+ ldr r2, [sp, #8]
10120
+ ldr r1, [sp, #12]
10121
+ mov r0, r8
10122
+ bl FlashReadRawPage
10123
+ mov r10, r0
10124
+ movs r0, #0
10125
+ bl NandcSetDdrMode
10126
+.L1476:
10127
+ cmp r10, #-1
10128
+ beq .L1477
10129
+ ldrb r2, [r4, #2316] @ zero_extendqisi2
10130
+ ldr r3, [sp, #4]
10131
+ add r2, r2, r2, lsl #1
10132
+ cmp r3, #-1
10133
+ it eq
10134
+ moveq r3, r10
10135
+ str r3, [sp, #4]
10136
+ cmp r10, r2, asr #2
10137
+ bcc .L1479
10138
+ mov fp, #0
10139
+ str fp, [sp, #8]
10140
+.L1477:
10141
+ add r9, r9, #1
10142
+ b .L1471
10143
+.L1472:
10144
+ bl ToshibaSetRRPara
10145
+ b .L1473
10146
+.L1475:
10147
+ mov r3, fp
10148
+ ldr r2, [sp, #8]
10149
+ ldr r1, [sp, #12]
10150
+ mov r0, r8
10151
+ bl FlashReadRawPage
10152
+ mov r10, r0
10153
+ b .L1476
10154
+.L1481:
10155
+ bl ToshibaSetRRPara
10156
+ b .L1482
10157
+.L1496:
980910158 .align 2
9810
-.L1526:
10159
+.L1495:
981110160 .word .LANCHOR0
981210161 .word .LANCHOR4
981310162 .fnend
981410163 .size ToshibaReadRetrial, .-ToshibaReadRetrial
981510164 .align 1
981610165 .global SamsungReadRetrial
10166
+ .syntax unified
981710167 .thumb
981810168 .thumb_func
10169
+ .fpu softvfp
981910170 .type SamsungReadRetrial, %function
982010171 SamsungReadRetrial:
982110172 .fnstart
....@@ -9824,73 +10175,77 @@
982410175 push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
982510176 .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
982610177 mov r8, r0
9827
- ldr r5, .L1541
9828
- mov r9, r2
9829
- mov r7, r3
10178
+ ldr r5, .L1510
10179
+ mov r9, r3
983010180 mov fp, r1
10181
+ mov r10, r2
983110182 bl NandcWaitFlashReady
9832
- add r2, r5, r8, lsl #3
9833
- mov r10, #1
10183
+ movs r7, #1
983410184 mov r4, #-1
9835
- ldrb r3, [r2, #16] @ zero_extendqisi2
9836
- ldr r6, [r2, #12]
9837
- adds r3, r3, #8
10185
+ add r3, r5, r8, lsl #3
10186
+ ldrb r6, [r3, #4] @ zero_extendqisi2
10187
+ add r3, r6, #8
10188
+ ldr r6, [r5, r8, lsl #3]
983810189 add r6, r6, r3, lsl #8
9839
-.L1529:
9840
- ldr r3, .L1541+4
9841
- ldrb r3, [r3, #1209] @ zero_extendqisi2
10190
+.L1498:
10191
+ ldr r3, .L1510+4
10192
+ ldrb r3, [r3, #1217] @ zero_extendqisi2
984210193 adds r3, r3, #1
9843
- cmp r10, r3
9844
- bcs .L1532
10194
+ cmp r7, r3
10195
+ bcc .L1502
10196
+.L1501:
10197
+ movs r1, #0
984510198 mov r0, r6
9846
- uxtb r1, r10
984710199 bl SamsungSetRRPara
9848
- mov r2, r9
9849
- mov r0, r8
10200
+ ldrb r3, [r5, #2316] @ zero_extendqisi2
10201
+ add r3, r3, r3, lsl #1
10202
+ cmp r4, r3, asr #2
10203
+ bcc .L1497
10204
+ adds r3, r4, #1
10205
+ it ne
10206
+ movne r4, #256
10207
+.L1497:
10208
+ mov r0, r4
10209
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
10210
+.L1502:
10211
+ uxtb r1, r7
10212
+ mov r0, r6
10213
+ bl SamsungSetRRPara
10214
+ mov r2, r10
10215
+ mov r3, r9
985010216 mov r1, fp
9851
- mov r3, r7
10217
+ mov r0, r8
985210218 bl FlashReadRawPage
985310219 adds r2, r0, #1
9854
- beq .L1530
9855
- ldrb r3, [r5, #2312] @ zero_extendqisi2
10220
+ beq .L1499
10221
+ ldrb r3, [r5, #2316] @ zero_extendqisi2
985610222 cmp r4, #-1
985710223 it eq
985810224 moveq r4, r0
985910225 add r3, r3, r3, lsl #1
986010226 cmp r0, r3, asr #2
9861
- bcc .L1535
9862
- movs r7, #0
9863
- mov r9, r7
9864
-.L1530:
9865
- add r10, r10, #1
9866
- b .L1529
9867
-.L1535:
10227
+ bcc .L1505
10228
+ mov r9, #0
10229
+ mov r10, r9
10230
+.L1499:
10231
+ adds r7, r7, #1
10232
+ b .L1498
10233
+.L1505:
986810234 mov r4, r0
9869
-.L1532:
9870
- mov r0, r6
9871
- movs r1, #0
9872
- bl SamsungSetRRPara
9873
- ldrb r3, [r5, #2312] @ zero_extendqisi2
9874
- add r3, r3, r3, lsl #1
9875
- cmp r4, r3, asr #2
9876
- bcc .L1534
9877
- adds r3, r4, #1
9878
- it ne
9879
- movne r4, #256
9880
-.L1534:
9881
- mov r0, r4
9882
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
9883
-.L1542:
10235
+ b .L1501
10236
+.L1511:
988410237 .align 2
9885
-.L1541:
10238
+.L1510:
988610239 .word .LANCHOR0
988710240 .word .LANCHOR4
988810241 .fnend
988910242 .size SamsungReadRetrial, .-SamsungReadRetrial
989010243 .align 1
989110244 .global MicronReadRetrial
10245
+ .syntax unified
989210246 .thumb
989310247 .thumb_func
10248
+ .fpu softvfp
989410249 .type MicronReadRetrial, %function
989510250 MicronReadRetrial:
989610251 .fnstart
....@@ -9898,156 +10253,162 @@
989810253 @ frame_needed = 0, uses_anonymous_args = 0
989910254 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
990010255 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9901
- mov r8, r3
9902
- ldr r3, .L1567
10256
+ mov r7, r3
10257
+ ldr r3, .L1536
10258
+ mov r10, r2
990310259 .pad #36
990410260 sub sp, sp, #36
9905
- mov r6, r0
9906
- mov fp, r2
9907
- str r1, [sp, #20]
9908
- ldrb r5, [r3, #2312] @ zero_extendqisi2
9909
- ldrb r3, [r3, #144] @ zero_extendqisi2
9910
- cbnz r3, .L1544
9911
- add r5, r5, r5, lsl #1
9912
- ubfx r5, r5, #2, #8
9913
- b .L1545
9914
-.L1544:
9915
- ldr r2, .L1567+4
9916
- smull r2, r3, r5, r2
9917
- uxtb r5, r3
9918
-.L1545:
9919
- ldr r3, .L1567
9920
- mov r10, #0
9921
- add r3, r3, r6, lsl #3
9922
- str r3, [sp, #24]
9923
-.L1555:
9924
- mov r0, r6
10261
+ mov r5, r0
10262
+ str r1, [sp, #24]
10263
+ ldrb r2, [r3, #2316] @ zero_extendqisi2
10264
+ ldrb r3, [r3, #152] @ zero_extendqisi2
10265
+ cmp r3, #0
10266
+ bne .L1513
10267
+ add r2, r2, r2, lsl #1
10268
+ asr fp, r2, #2
10269
+.L1514:
10270
+ movs r3, #0
10271
+ str r3, [sp, #8]
10272
+ ldr r3, .L1536
10273
+ add r3, r3, r5, lsl #3
10274
+ str r3, [sp, #28]
10275
+.L1524:
10276
+ mov r0, r5
992510277 mov r9, #0
992610278 bl NandcWaitFlashReady
10279
+ ldr r3, .L1536
992710280 mov r4, #-1
9928
- ldr r3, [sp, #24]
9929
- ldr r3, [r3, #12]
9930
- str r3, [sp, #12]
9931
- ldr r3, [sp, #24]
9932
- ldrb r3, [r3, #16] @ zero_extendqisi2
10281
+ ldr r3, [r3, r5, lsl #3]
993310282 str r3, [sp, #16]
9934
- ldr r2, [sp, #16]
9935
- ldr r3, [sp, #12]
9936
- add r7, r3, r2, lsl #8
9937
-.L1546:
9938
- ldr r3, .L1567+8
9939
- ldrb r3, [r3, #1209] @ zero_extendqisi2
10283
+ ldr r3, [sp, #28]
10284
+ ldrb r3, [r3, #4] @ zero_extendqisi2
10285
+ str r3, [sp, #20]
10286
+ ldr r2, [sp, #20]
10287
+ ldr r3, [sp, #16]
10288
+ add r6, r3, r2, lsl #8
10289
+.L1515:
10290
+ ldr r3, .L1536+4
10291
+ ldrb r3, [r3, #1217] @ zero_extendqisi2
994010292 cmp r9, r3
9941
- bcs .L1549
10293
+ bcc .L1519
10294
+.L1518:
10295
+ ldr r3, [sp, #16]
10296
+ movs r0, #200
10297
+ ldr r2, [sp, #20]
10298
+ movs r6, #0
10299
+ add r8, r3, r2, lsl #8
10300
+ movs r3, #239
10301
+ str r3, [r8, #2056]
10302
+ movs r3, #137
10303
+ str r3, [r8, #2052]
10304
+ bl ndelay
10305
+ cmp r4, fp
10306
+ str r6, [r8, #2048]
10307
+ str r6, [r8, #2048]
10308
+ str r6, [r8, #2048]
10309
+ str r6, [r8, #2048]
10310
+ bcc .L1520
10311
+ adds r1, r4, #1
10312
+ mov r3, r9
10313
+ it ne
10314
+ movne r4, #256
10315
+ ldr r2, [sp, #24]
10316
+ str r4, [sp]
10317
+ mov r1, r9
10318
+ ldr r0, .L1536+8
10319
+ bl printk
10320
+ ldr r3, [sp, #8]
10321
+ cmp r3, #0
10322
+ bne .L1522
10323
+ ldr r3, .L1536
10324
+ ldrb r3, [r3, #152] @ zero_extendqisi2
10325
+ cmp r3, #0
10326
+ beq .L1512
10327
+ adds r2, r4, #1
10328
+ bne .L1512
10329
+ movs r1, #3
10330
+ mov r0, r5
10331
+ bl micron_auto_read_calibration_config
10332
+ movs r3, #1
10333
+ str r3, [sp, #8]
10334
+ b .L1524
10335
+.L1513:
10336
+ ldr r3, .L1536+12
10337
+ smull r2, r3, r2, r3
10338
+ mov fp, r3
10339
+ b .L1514
10340
+.L1519:
994210341 movs r3, #239
994310342 movs r0, #200
9944
- str r3, [r7, #2056]
10343
+ str r3, [r6, #2056]
994510344 movs r3, #137
9946
- str r3, [r7, #2052]
9947
- bl NandcDelayns
9948
- mov ip, #0
10345
+ str r3, [r6, #2052]
10346
+ mov r8, #0
10347
+ bl ndelay
994910348 add r3, r9, #1
9950
- mov r0, r6
9951
- str r3, [r7, #2048]
9952
- mov r2, fp
9953
- str ip, [r7, #2048]
9954
- str ip, [r7, #2048]
9955
- str ip, [r7, #2048]
9956
- str r3, [sp, #8]
9957
- mov r3, r8
9958
- ldr r1, [sp, #20]
9959
- str ip, [sp, #28]
10349
+ mov r2, r10
10350
+ str r3, [r6, #2048]
10351
+ mov r0, r5
10352
+ str r8, [r6, #2048]
10353
+ str r3, [sp, #12]
10354
+ mov r3, r7
10355
+ str r8, [r6, #2048]
10356
+ ldr r1, [sp, #24]
10357
+ str r8, [r6, #2048]
996010358 bl FlashReadRawPage
996110359 adds r3, r0, #1
9962
- beq .L1547
10360
+ beq .L1516
996310361 cmp r4, #-1
996410362 it eq
996510363 moveq r4, r0
9966
- cmp r0, r5
9967
- ldr ip, [sp, #28]
9968
- bcc .L1557
9969
- mov r8, ip
9970
- mov fp, ip
9971
-.L1547:
9972
- ldr r9, [sp, #8]
9973
- b .L1546
9974
-.L1557:
10364
+ cmp r0, fp
10365
+ bcc .L1526
10366
+ mov r7, r8
10367
+ mov r10, r8
10368
+.L1516:
10369
+ ldr r9, [sp, #12]
10370
+ b .L1515
10371
+.L1526:
997510372 mov r4, r0
9976
- mov r8, ip
9977
- mov fp, ip
9978
-.L1549:
9979
- ldr r2, [sp, #16]
9980
- movs r0, #200
9981
- ldr r3, [sp, #12]
9982
- movs r7, #0
9983
- add r3, r3, r2, lsl #8
9984
- movs r2, #239
9985
- str r3, [sp, #8]
9986
- str r2, [r3, #2056]
9987
- movs r2, #137
9988
- str r2, [r3, #2052]
9989
- bl NandcDelayns
9990
- cmp r4, r5
9991
- ldr r3, [sp, #8]
9992
- str r7, [r3, #2048]
9993
- str r7, [r3, #2048]
9994
- str r7, [r3, #2048]
9995
- str r7, [r3, #2048]
9996
- bcc .L1551
9997
- adds r1, r4, #1
9998
- ldr r0, .L1567+12
9999
- it ne
10000
- movne r4, #256
10001
- mov r1, r9
10002
- str r4, [sp]
10003
- mov r3, r9
10004
- ldr r2, [sp, #20]
10005
- bl printk
10006
- cmp r10, #0
10007
- bne .L1553
10008
- ldr r3, .L1567
10009
- ldrb r3, [r3, #144] @ zero_extendqisi2
10010
- cbz r3, .L1562
10011
- adds r2, r4, #1
10012
- bne .L1562
10013
- mov r0, r6
10014
- movs r1, #3
10015
- bl micron_auto_read_calibration_config
10016
- mov r10, #1
10017
- b .L1555
10018
-.L1553:
10019
- mov r0, r6
10020
- mov r1, r7
10373
+ mov r7, r8
10374
+ mov r10, r8
10375
+ b .L1518
10376
+.L1522:
10377
+ mov r1, r6
10378
+ mov r0, r5
1002110379 bl micron_auto_read_calibration_config
1002210380 adds r3, r4, #1
1002310381 it ne
1002410382 movne r4, #256
10025
- b .L1562
10026
-.L1551:
10027
- cmp r10, #0
10028
- beq .L1562
10029
- mov r0, r6
10030
- mov r1, r7
10031
- bl micron_auto_read_calibration_config
10032
- mov r4, #256
10033
-.L1562:
10383
+.L1512:
1003410384 mov r0, r4
1003510385 add sp, sp, #36
1003610386 @ sp needed
1003710387 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10038
-.L1568:
10388
+.L1520:
10389
+ ldr r3, [sp, #8]
10390
+ cmp r3, #0
10391
+ beq .L1512
10392
+ mov r1, r6
10393
+ mov r0, r5
10394
+ bl micron_auto_read_calibration_config
10395
+ mov r4, #256
10396
+ b .L1512
10397
+.L1537:
1003910398 .align 2
10040
-.L1567:
10399
+.L1536:
1004110400 .word .LANCHOR0
10042
- .word 1431655766
1004310401 .word .LANCHOR4
1004410402 .word .LC94
10403
+ .word 1431655766
1004510404 .fnend
1004610405 .size MicronReadRetrial, .-MicronReadRetrial
1004710406 .align 1
1004810407 .global HynixReadRetrial
10408
+ .syntax unified
1004910409 .thumb
1005010410 .thumb_func
10411
+ .fpu softvfp
1005110412 .type HynixReadRetrial, %function
1005210413 HynixReadRetrial:
1005310414 .fnstart
....@@ -10056,267 +10417,267 @@
1005610417 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1005710418 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1005810419 .pad #12
10059
- mov r8, r3
10060
- ldr r5, .L1586
10061
- mov r10, r2
10062
- mov r7, r0
10063
- mov fp, r1
10064
- adds r2, r5, r0
10420
+ mov r9, r3
10421
+ ldr r5, .L1555
10422
+ mov r8, #0
1006510423 mov r6, #-1
10066
- ldr r3, [r5, #44]
10067
- ldrb r4, [r2, #1222] @ zero_extendqisi2
10068
- ldrb r9, [r5, #1212] @ zero_extendqisi2
10424
+ mov fp, r2
10425
+ mov r7, r0
10426
+ str r1, [sp, #4]
10427
+ ldr r3, [r5, #48]
10428
+ adds r2, r5, r0
10429
+ ldrb r4, [r2, #1228] @ zero_extendqisi2
10430
+ ldrb r10, [r5, #1218] @ zero_extendqisi2
1006910431 ldrb r3, [r3, #19] @ zero_extendqisi2
1007010432 subs r3, r3, #7
1007110433 cmp r3, #1
1007210434 it ls
10073
- ldrbls r4, [r2, #1230] @ zero_extendqisi2
10435
+ ldrbls r4, [r2, #1236] @ zero_extendqisi2
1007410436 bl NandcWaitFlashReady
10075
- mov ip, #0
10076
-.L1571:
10077
- cmp ip, r9
10078
- bcs .L1575
10437
+.L1540:
10438
+ cmp r8, r10
10439
+ bcc .L1545
10440
+.L1544:
10441
+ ldr r3, [r5, #48]
10442
+ add r7, r7, r5
10443
+ ldrb r3, [r3, #19] @ zero_extendqisi2
10444
+ subs r3, r3, #7
10445
+ cmp r3, #1
10446
+ ldrb r3, [r5, #2316] @ zero_extendqisi2
10447
+ ite ls
10448
+ strbls r4, [r7, #1236]
10449
+ strbhi r4, [r7, #1228]
10450
+ add r3, r3, r3, lsl #1
10451
+ cmp r6, r3, asr #2
10452
+ bcc .L1538
10453
+ adds r3, r6, #1
10454
+ it ne
10455
+ movne r6, #256
10456
+.L1538:
10457
+ mov r0, r6
10458
+ add sp, sp, #12
10459
+ @ sp needed
10460
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10461
+.L1545:
1007910462 adds r4, r4, #1
10080
- mov r0, r7
10081
- ldrb r1, [r5, #1211] @ zero_extendqisi2
10463
+ ldr r2, .L1555+4
1008210464 uxtb r4, r4
10083
- ldr r2, .L1586+4
10084
- cmp r4, r9
10085
- it cs
10086
- movcs r4, #0
10087
- str ip, [sp, #4]
10465
+ ldrb r1, [r5, #1217] @ zero_extendqisi2
10466
+ mov r0, r7
10467
+ cmp r10, r4
10468
+ it ls
10469
+ movls r4, #0
1008810470 mov r3, r4
1008910471 bl HynixSetRRPara
10090
- mov r2, r10
10472
+ mov r2, fp
10473
+ mov r3, r9
10474
+ ldr r1, [sp, #4]
1009110475 mov r0, r7
10092
- mov r1, fp
10093
- mov r3, r8
1009410476 bl FlashReadRawPage
1009510477 adds r2, r0, #1
10096
- ldr ip, [sp, #4]
10097
- beq .L1573
10098
- ldrb r3, [r5, #2312] @ zero_extendqisi2
10478
+ beq .L1542
10479
+ ldrb r3, [r5, #2316] @ zero_extendqisi2
1009910480 cmp r6, #-1
1010010481 it eq
1010110482 moveq r6, r0
1010210483 add r3, r3, r3, lsl #1
1010310484 cmp r0, r3, asr #2
10104
- bcc .L1580
10105
- mov r8, #0
10106
- mov r10, r8
10107
-.L1573:
10108
- add ip, ip, #1
10109
- b .L1571
10110
-.L1580:
10485
+ bcc .L1549
10486
+ mov r9, #0
10487
+ mov fp, r9
10488
+.L1542:
10489
+ add r8, r8, #1
10490
+ b .L1540
10491
+.L1549:
1011110492 mov r6, r0
10112
-.L1575:
10113
- ldr r3, [r5, #44]
10114
- add r7, r7, r5
10115
- ldrb r3, [r3, #19] @ zero_extendqisi2
10116
- subs r3, r3, #7
10117
- cmp r3, #1
10118
- ldrb r3, [r5, #2312] @ zero_extendqisi2
10119
- ite ls
10120
- strbls r4, [r7, #1230]
10121
- strbhi r4, [r7, #1222]
10122
- add r3, r3, r3, lsl #1
10123
- cmp r6, r3, asr #2
10124
- bcc .L1579
10125
- adds r3, r6, #1
10126
- it ne
10127
- movne r6, #256
10128
-.L1579:
10129
- mov r0, r6
10130
- add sp, sp, #12
10131
- @ sp needed
10132
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10133
-.L1587:
10493
+ b .L1544
10494
+.L1556:
1013410495 .align 2
10135
-.L1586:
10496
+.L1555:
1013610497 .word .LANCHOR0
10137
- .word .LANCHOR0+1214
10498
+ .word .LANCHOR0+1220
1013810499 .fnend
1013910500 .size HynixReadRetrial, .-HynixReadRetrial
1014010501 .align 1
10502
+ .syntax unified
1014110503 .thumb
1014210504 .thumb_func
10505
+ .fpu softvfp
1014310506 .type samsung_read_retrial, %function
1014410507 samsung_read_retrial:
1014510508 .fnstart
10146
- @ args = 0, pretend = 0, frame = 24
10509
+ @ args = 0, pretend = 0, frame = 16
1014710510 @ frame_needed = 0, uses_anonymous_args = 0
1014810511 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1014910512 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10150
- .pad #36
10151
- sub sp, sp, #36
10152
- mov r9, r0
10153
- mov r10, r2
10154
- mov r7, r3
10155
- str r1, [sp, #16]
10513
+ .pad #28
10514
+ sub sp, sp, #28
10515
+ mov r10, r0
10516
+ mov fp, r2
10517
+ mov r9, r3
10518
+ str r1, [sp, #12]
1015610519 bl NandcWaitFlashReady
10157
- ldr r3, .L1614
10158
- add r2, r3, r9, lsl #3
10159
- ldr r4, [r2, #12]
10160
- ldrb r2, [r2, #16] @ zero_extendqisi2
10161
- str r2, [sp, #12]
10162
- ldrb r2, [r3, #2228] @ zero_extendqisi2
10520
+ ldr r3, .L1582
10521
+ ldr r2, [r3, r10, lsl #3]
1016310522 str r3, [sp, #20]
10523
+ str r2, [sp, #8]
10524
+ add r2, r3, r10, lsl #3
10525
+ ldrb r6, [r2, #4] @ zero_extendqisi2
10526
+ ldrb r2, [r3, #2232] @ zero_extendqisi2
1016410527 cmp r2, #0
10165
- bne .L1589
10166
- ldr r3, [sp, #12]
10167
- mov r5, #-1
10168
- movs r6, #1
10169
- lsl fp, r3, #8
10170
- add r8, r4, fp
10171
- addw r3, r8, #2056
10172
- str r3, [sp, #24]
10173
-.L1593:
10174
- ldr r3, [sp, #24]
10175
- mov ip, #0
10176
- ldr r1, [sp, #16]
10177
- mov r0, r9
10178
- str ip, [sp, #28]
10528
+ bne .L1558
10529
+ ldr r3, [sp, #8]
10530
+ lsl r8, r6, #8
10531
+ mov r4, #-1
10532
+ movs r7, #1
10533
+ add r5, r3, r8
10534
+ addw r3, r5, #2056
10535
+ str r3, [sp, #16]
10536
+.L1562:
10537
+ ldr r3, [sp, #16]
10538
+ movs r6, #0
10539
+ ldr r1, [sp, #12]
10540
+ mov r0, r10
1017910541 mov r2, r3
1018010542 movs r3, #239
1018110543 str r3, [r2]
1018210544 movs r3, #141
10183
- str r3, [r8, #2052]
10184
- mov r2, r10
10185
- ldr r3, .L1614+4
10186
- ldrsb r3, [r6, r3]
10187
- str r3, [r8, #2048]
10188
- mov r3, r7
10189
- str ip, [r8, #2048]
10190
- str ip, [r8, #2048]
10191
- str ip, [r8, #2048]
10545
+ str r3, [r5, #2052]
10546
+ mov r2, fp
10547
+ ldr r3, .L1582+4
10548
+ ldrsb r3, [r7, r3]
10549
+ str r3, [r5, #2048]
10550
+ mov r3, r9
10551
+ str r6, [r5, #2048]
10552
+ str r6, [r5, #2048]
10553
+ str r6, [r5, #2048]
1019210554 bl FlashReadRawPage
1019310555 adds r1, r0, #1
10194
- beq .L1590
10556
+ beq .L1559
1019510557 ldr r3, [sp, #20]
10196
- cmp r5, #-1
10558
+ cmp r4, #-1
1019710559 it eq
10198
- moveq r5, r0
10199
- ldrb r3, [r3, #2312] @ zero_extendqisi2
10560
+ moveq r4, r0
10561
+ ldrb r3, [r3, #2316] @ zero_extendqisi2
1020010562 add r3, r3, r3, lsl #1
1020110563 cmp r0, r3, asr #2
10202
- bcc .L1601
10203
- ldr ip, [sp, #28]
10204
- mov r7, ip
10205
- mov r10, ip
10206
-.L1590:
10207
- adds r6, r6, #1
10208
- cmp r6, #26
10209
- bne .L1593
10210
- b .L1592
10211
-.L1601:
10212
- mov r5, r0
10213
-.L1592:
10214
- add fp, fp, r4
10564
+ bcc .L1570
10565
+ mov r9, r6
10566
+ mov fp, r6
10567
+.L1559:
10568
+ adds r7, r7, #1
10569
+ cmp r7, #26
10570
+ bne .L1562
10571
+.L1561:
10572
+ ldr r3, [sp, #8]
10573
+ add r3, r3, r8
10574
+ mov r8, r3
1021510575 movs r3, #239
10216
- str r3, [fp, #2056]
10217
- ldr r3, [sp, #12]
10218
- add r4, r4, r3, lsl #8
10576
+ str r3, [r8, #2056]
1021910577 movs r3, #141
10220
- b .L1613
10221
-.L1589:
10222
- ldr r3, [sp, #12]
10223
- mov r5, #-1
10224
- ldr r8, .L1614+12
10225
- movs r6, #1
10226
- lsl ip, r3, #8
10227
- add fp, r4, ip
10228
- addw r3, fp, #2056
10229
- str r3, [sp, #24]
10230
-.L1598:
10231
- ldr r3, [sp, #24]
10232
- mov r0, r9
10233
- ldr r1, [sp, #16]
10234
- str ip, [sp, #28]
10578
+.L1581:
10579
+ str r3, [r5, #2052]
10580
+ movs r3, #0
10581
+ str r3, [r5, #2048]
10582
+ str r3, [r5, #2048]
10583
+ str r3, [r5, #2048]
10584
+ str r3, [r5, #2048]
10585
+ ldr r3, .L1582
10586
+ ldrb r3, [r3, #2316] @ zero_extendqisi2
10587
+ add r3, r3, r3, lsl #1
10588
+ cmp r4, r3, asr #2
10589
+ bcc .L1568
10590
+ adds r3, r4, #1
10591
+ ldr r2, [sp, #12]
10592
+ it ne
10593
+ movne r4, #256
10594
+ mov r3, r7
10595
+ str r4, [sp]
10596
+ mov r1, r7
10597
+ ldr r0, .L1582+8
10598
+ bl printk
10599
+.L1568:
10600
+ mov r0, r10
10601
+ bl NandcWaitFlashReady
10602
+ mov r0, r4
10603
+ add sp, sp, #28
10604
+ @ sp needed
10605
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10606
+.L1570:
10607
+ mov r4, r0
10608
+ b .L1561
10609
+.L1558:
10610
+ ldr r3, [sp, #8]
10611
+ lsls r6, r6, #8
10612
+ ldr r8, .L1582+12
10613
+ mov r4, #-1
10614
+ movs r7, #1
10615
+ adds r5, r3, r6
10616
+ addw r3, r5, #2056
10617
+ str r3, [sp, #16]
10618
+.L1567:
10619
+ ldr r3, [sp, #16]
10620
+ mov r0, r10
10621
+ ldr r1, [sp, #12]
1023510622 mov r2, r3
1023610623 movs r3, #239
1023710624 str r3, [r2]
1023810625 movs r3, #137
10239
- str r3, [fp, #2052]
10240
- mov r2, r10
10626
+ str r3, [r5, #2052]
10627
+ mov r2, fp
1024110628 ldrb r3, [r8, #4] @ zero_extendqisi2
10242
- str r3, [fp, #2048]
10629
+ str r3, [r5, #2048]
1024310630 ldrb r3, [r8, #5] @ zero_extendqisi2
10244
- str r3, [fp, #2048]
10631
+ str r3, [r5, #2048]
1024510632 ldrb r3, [r8, #6] @ zero_extendqisi2
10246
- str r3, [fp, #2048]
10633
+ str r3, [r5, #2048]
1024710634 ldrb r3, [r8, #7] @ zero_extendqisi2
10248
- str r3, [fp, #2048]
10249
- mov r3, r7
10635
+ str r3, [r5, #2048]
10636
+ mov r3, r9
1025010637 bl FlashReadRawPage
1025110638 adds r2, r0, #1
10252
- ldr ip, [sp, #28]
10253
- beq .L1595
10254
- ldr r3, [sp, #20]
10255
- cmp r5, #-1
10639
+ beq .L1564
10640
+ ldr r3, .L1582
10641
+ cmp r4, #-1
1025610642 it eq
10257
- moveq r5, r0
10258
- ldrb r3, [r3, #2312] @ zero_extendqisi2
10643
+ moveq r4, r0
10644
+ ldrb r3, [r3, #2316] @ zero_extendqisi2
1025910645 add r3, r3, r3, lsl #1
1026010646 cmp r0, r3, asr #2
10261
- bcc .L1602
10262
- movs r7, #0
10263
- mov r10, r7
10264
-.L1595:
10265
- adds r6, r6, #1
10647
+ bcc .L1571
10648
+ mov r9, #0
10649
+ mov fp, r9
10650
+.L1564:
10651
+ adds r7, r7, #1
1026610652 add r8, r8, #4
10267
- cmp r6, #26
10268
- bne .L1598
10269
- b .L1597
10270
-.L1602:
10271
- mov r5, r0
10272
-.L1597:
10273
- add ip, ip, r4
10653
+ cmp r7, #26
10654
+ bne .L1567
10655
+.L1566:
10656
+ ldr r3, [sp, #8]
10657
+ add r3, r3, r6
10658
+ mov r6, r3
1027410659 movs r3, #239
10275
- str r3, [ip, #2056]
10276
- ldr r3, [sp, #12]
10277
- add r4, r4, r3, lsl #8
10660
+ str r3, [r6, #2056]
1027810661 movs r3, #137
10279
-.L1613:
10280
- str r3, [r4, #2052]
10281
- movs r3, #0
10282
- str r3, [r4, #2048]
10283
- str r3, [r4, #2048]
10284
- str r3, [r4, #2048]
10285
- str r3, [r4, #2048]
10286
- ldr r3, [sp, #20]
10287
- ldrb r3, [r3, #2312] @ zero_extendqisi2
10288
- add r3, r3, r3, lsl #1
10289
- cmp r5, r3, asr #2
10290
- bcc .L1599
10291
- adds r3, r5, #1
10292
- ldr r0, .L1614+8
10293
- it ne
10294
- movne r5, #256
10295
- mov r1, r6
10296
- str r5, [sp]
10297
- mov r3, r6
10298
- ldr r2, [sp, #16]
10299
- bl printk
10300
-.L1599:
10301
- mov r0, r9
10302
- bl NandcWaitFlashReady
10303
- mov r0, r5
10304
- add sp, sp, #36
10305
- @ sp needed
10306
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10307
-.L1615:
10662
+ b .L1581
10663
+.L1571:
10664
+ mov r4, r0
10665
+ b .L1566
10666
+.L1583:
1030810667 .align 2
10309
-.L1614:
10668
+.L1582:
1031010669 .word .LANCHOR0
10311
- .word .LANCHOR3+16
10670
+ .word .LANCHOR3+11
1031210671 .word .LC95
10313
- .word .LANCHOR3+44
10672
+ .word .LANCHOR3+37
1031410673 .fnend
1031510674 .size samsung_read_retrial, .-samsung_read_retrial
1031610675 .align 1
1031710676 .global FlashProgPage
10677
+ .syntax unified
1031810678 .thumb
1031910679 .thumb_func
10680
+ .fpu softvfp
1032010681 .type FlashProgPage, %function
1032110682 FlashProgPage:
1032210683 .fnstart
....@@ -10326,35 +10687,35 @@
1032610687 .save {r4, r5, r6, r7, r8, lr}
1032710688 .pad #8
1032810689 mov r8, r3
10329
- ldr r3, .L1619
10690
+ ldr r3, .L1587
1033010691 mov r5, r1
1033110692 mov r7, r2
1033210693 mov r4, r0
10333
- ldrb r6, [r3, #481] @ zero_extendqisi2
10334
- cbnz r0, .L1617
10335
- ldr r2, .L1619+4
10336
- ldrb r3, [r2, #1] @ zero_extendqisi2
10337
- ldr r1, [r2, #4]
10338
- muls r1, r3, r1
10339
- cmp r5, r1
10340
- bcs .L1617
10341
- ldrb r3, [r2] @ zero_extendqisi2
10694
+ ldrb r6, [r3, #477] @ zero_extendqisi2
10695
+ cbnz r0, .L1585
10696
+ ldr r1, .L1587+4
10697
+ ldrb r3, [r1, #37] @ zero_extendqisi2
10698
+ ldr r0, [r1, #40]
10699
+ muls r0, r3, r0
10700
+ cmp r0, r5
10701
+ bls .L1585
10702
+ ldrb r3, [r1, #36] @ zero_extendqisi2
1034210703 cmp r3, #0
1034310704 it ne
1034410705 movne r6, #4
10345
-.L1617:
10706
+.L1585:
1034610707 mov r0, r4
1034710708 bl NandcWaitFlashReady
1034810709 mov r0, r4
1034910710 bl NandcFlashCs
10350
- mov r0, r4
1035110711 mov r1, r5
10352
- bl FlashProgFirstCmd
10353
- mov r2, r6
10354
- mov r3, r7
1035510712 mov r0, r4
10356
- movs r1, #1
10713
+ bl FlashProgFirstCmd
10714
+ mov r3, r7
10715
+ mov r2, r6
1035710716 str r8, [sp]
10717
+ movs r1, #1
10718
+ mov r0, r4
1035810719 bl NandcXferData
1035910720 mov r1, r5
1036010721 mov r0, r4
....@@ -10364,281 +10725,285 @@
1036410725 mov r1, r5
1036510726 mov r0, r4
1036610727 bl FlashReadStatus
10367
- mov r5, r0
10728
+ mov r1, r0
1036810729 mov r0, r4
1036910730 bl NandcFlashDeCs
10370
- and r0, r5, #1
10731
+ and r0, r1, #1
1037110732 add sp, sp, #8
1037210733 @ sp needed
1037310734 pop {r4, r5, r6, r7, r8, pc}
10374
-.L1620:
10735
+.L1588:
1037510736 .align 2
10376
-.L1619:
10737
+.L1587:
1037710738 .word .LANCHOR1
1037810739 .word .LANCHOR0
1037910740 .fnend
1038010741 .size FlashProgPage, .-FlashProgPage
1038110742 .align 1
1038210743 .global FlashSavePhyInfo
10744
+ .syntax unified
1038310745 .thumb
1038410746 .thumb_func
10747
+ .fpu softvfp
1038510748 .type FlashSavePhyInfo, %function
1038610749 FlashSavePhyInfo:
1038710750 .fnstart
10388
- @ args = 0, pretend = 0, frame = 8
10751
+ @ args = 0, pretend = 0, frame = 0
1038910752 @ frame_needed = 0, uses_anonymous_args = 0
10390
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
10391
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10392
- .pad #12
10393
- ldr r4, .L1634
10394
- ldr r5, .L1634+4
10395
- ldr r8, .L1634+12
10396
- ldr r3, [r4, #1184]
10397
- mov fp, r4
10398
- ldrb r0, [r4, #1210] @ zero_extendqisi2
10399
- mov r10, r5
10400
- str r3, [r4, #1196]
10753
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
10754
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
10755
+ ldr r4, .L1602
10756
+ ldr r5, .L1602+4
10757
+ ldr r3, [r4, #1192]
10758
+ ldrb r0, [r4, #1218] @ zero_extendqisi2
10759
+ ldr r8, .L1602+12
10760
+ str r3, [r4, #1204]
1040110761 bl FlashBchSel
10402
- movs r1, #0
1040310762 mov r2, #2048
10404
- ldr r0, [r4, #1184]
10763
+ movs r1, #0
10764
+ ldr r0, [r4, #1192]
1040510765 bl ftl_memset
10406
- ldr r3, [r4, #1196]
10407
- addw r1, r5, #2068
10766
+ ldr r3, [r4, #1204]
1040810767 movs r2, #32
10768
+ addw r1, r5, #2072
1040910769 str r8, [r3]
10410
- ldr r0, [r4, #1196]
10411
- ldrb r3, [r5, #2230] @ zero_extendqisi2
10770
+ ldr r0, [r4, #1204]
10771
+ ldrb r3, [r5, #2234] @ zero_extendqisi2
1041210772 adds r0, r0, #16
1041310773 strh r3, [r0, #-4] @ movhi
10414
- ldrb r3, [r5, #1] @ zero_extendqisi2
10774
+ ldrb r3, [r5, #37] @ zero_extendqisi2
1041510775 strh r3, [r0, #-2] @ movhi
10416
- ldrb r3, [r5, #2252] @ zero_extendqisi2
10776
+ ldrb r3, [r5, #2256] @ zero_extendqisi2
1041710777 str r3, [r0, #1060]
1041810778 bl ftl_memcpy
10419
- ldr r0, [r4, #1196]
10420
- addw r1, r5, #2232
10779
+ ldr r0, [r4, #1204]
1042110780 movs r2, #8
10781
+ addw r1, r5, #2236
1042210782 adds r0, r0, #80
1042310783 bl ftl_memcpy
10424
- ldr r0, [r4, #1196]
10425
- addw r1, r5, #1172
10784
+ ldr r0, [r4, #1204]
1042610785 movs r2, #32
10786
+ addw r1, r5, #1180
1042710787 adds r0, r0, #96
1042810788 bl ftl_memcpy
10429
- ldr r0, [r4, #1196]
10430
- ldr r1, .L1634+8
10789
+ ldr r0, [r4, #1204]
1043110790 movs r2, #32
10791
+ ldr r1, .L1602+8
1043210792 adds r0, r0, #160
1043310793 bl ftl_memcpy
10434
- ldr r0, [r4, #1196]
10435
- add r1, r5, #48
10794
+ ldr r0, [r4, #1204]
1043610795 movs r2, #32
10796
+ add r1, r5, #52
1043710797 adds r0, r0, #192
1043810798 bl ftl_memcpy
10439
- ldr r0, [r4, #1196]
10799
+ ldr r0, [r4, #1204]
1044010800 mov r2, #852
10441
- addw r1, r5, #1210
10801
+ add r1, r5, #1216
1044210802 adds r0, r0, #224
1044310803 bl ftl_memcpy
10444
- ldr r6, [r4, #1196]
10804
+ ldr r6, [r4, #1204]
1044510805 movw r1, #2036
1044610806 add r0, r6, #12
1044710807 bl js_hash
1044810808 mov r3, #1592
10449
- str r3, [r6, #4]
10450
- ldr r3, [r4, #1212]
10451
- str r3, [r4, #1196]
1045210809 str r0, [r6, #8]
10453
- movs r0, #0
10454
- bl flash_enter_slc_mode
10810
+ str r3, [r6, #4]
1045510811 movs r6, #0
10812
+ ldr r3, [r4, #1220]
1045610813 mov r7, r6
10457
-.L1627:
10458
- ldr r1, [r5, #4]
1045910814 movs r0, #0
10460
- mov r2, r0
10815
+ str r3, [r4, #1204]
10816
+ bl flash_enter_slc_mode
10817
+.L1595:
10818
+ ldr r1, [r5, #40]
10819
+ movs r2, #0
10820
+ mov r0, r2
1046110821 muls r1, r7, r1
1046210822 bl FlashEraseBlock
10463
- ldrb r9, [r5, #144] @ zero_extendqisi2
10823
+ ldrb r9, [r5, #152] @ zero_extendqisi2
1046410824 cmp r9, #0
10465
- beq .L1622
10825
+ beq .L1590
1046610826 mov r9, #0
10467
-.L1623:
10468
- ldr r1, [r5, #4]
10469
- movs r0, #0
10470
- ldr r2, [r4, #1184]
10471
- mov r3, r0
10827
+.L1591:
10828
+ ldr r1, [r5, #40]
10829
+ movs r3, #0
10830
+ ldr r2, [r4, #1192]
10831
+ mov r0, r3
1047210832 mla r1, r1, r7, r9
1047310833 add r9, r9, #1
1047410834 bl FlashProgPage
1047510835 cmp r9, #10
10476
- bne .L1623
10477
- b .L1624
10478
-.L1622:
10479
- ldr r1, [r10, #4]
10480
- mov r3, r9
10481
- ldr r2, [r4, #1184]
10482
- mov r0, r9
10483
- muls r1, r7, r1
10484
- bl FlashProgPage
10485
- ldr r1, [r10, #4]
10486
- mov r0, r9
10487
- ldr r2, [r4, #1184]
10488
- mov r3, r9
10489
- muls r1, r7, r1
10490
- adds r1, r1, #1
10491
- bl FlashProgPage
10492
-.L1624:
10493
- ldr r1, [r5, #4]
10494
- movs r0, #0
10495
- ldr r2, [r4, #1212]
10496
- mov r3, r0
10836
+ bne .L1591
10837
+.L1592:
10838
+ ldr r1, [r5, #40]
10839
+ movs r3, #0
10840
+ ldr r2, [r4, #1220]
10841
+ mov r0, r3
10842
+ add r10, r7, #1
1049710843 muls r1, r7, r1
1049810844 bl FlashReadRawPage
10499
- adds r2, r7, #1
1050010845 adds r0, r0, #1
10501
- beq .L1625
10502
- ldr r9, [fp, #1196]
10846
+ beq .L1593
10847
+ ldr r9, [r4, #1204]
1050310848 ldr r3, [r9]
1050410849 cmp r3, r8
10505
- bne .L1625
10506
- add r0, r9, #12
10850
+ bne .L1593
1050710851 movw r1, #2036
10508
- str r2, [sp, #4]
10852
+ add r0, r9, #12
1050910853 bl js_hash
1051010854 ldr r3, [r9, #8]
1051110855 cmp r3, r0
10512
- ldr r2, [sp, #4]
10513
- bne .L1625
10514
- ldr r3, [r10, #4]
10856
+ bne .L1593
10857
+ ldr r3, [r5, #40]
1051510858 cmp r6, #1
10516
- str r2, [fp, #1204]
10517
- mul r3, r3, r7
10518
- str r3, [fp, #1200]
10519
- beq .L1628
10859
+ str r10, [r4, #1212]
10860
+ mul r7, r7, r3
10861
+ str r7, [r4, #1208]
10862
+ beq .L1596
1052010863 movs r6, #1
10521
-.L1625:
10522
- cmp r2, #4
10523
- mov r7, r2
10524
- bne .L1627
10525
- b .L1626
10526
-.L1628:
10527
- movs r6, #2
10528
-.L1626:
10864
+.L1593:
10865
+ mov r7, r10
10866
+ cmp r7, #4
10867
+ bne .L1595
10868
+.L1594:
1052910869 movs r0, #0
1053010870 bl flash_exit_slc_mode
1053110871 clz r0, r6
1053210872 lsrs r0, r0, #5
1053310873 negs r0, r0
10534
- add sp, sp, #12
10535
- @ sp needed
10536
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10537
-.L1635:
10874
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
10875
+.L1590:
10876
+ ldr r1, [r5, #40]
10877
+ mov r3, r9
10878
+ ldr r2, [r4, #1192]
10879
+ mov r0, r9
10880
+ muls r1, r7, r1
10881
+ bl FlashProgPage
10882
+ ldr r1, [r5, #40]
10883
+ mov r3, r9
10884
+ ldr r2, [r4, #1192]
10885
+ mov r0, r9
10886
+ muls r1, r7, r1
10887
+ adds r1, r1, #1
10888
+ bl FlashProgPage
10889
+ b .L1592
10890
+.L1596:
10891
+ movs r6, #2
10892
+ b .L1594
10893
+.L1603:
1053810894 .align 2
10539
-.L1634:
10895
+.L1602:
1054010896 .word .LANCHOR4
1054110897 .word .LANCHOR0
10542
- .word .LANCHOR1+472
10898
+ .word .LANCHOR1+468
1054310899 .word 1312902724
1054410900 .fnend
1054510901 .size FlashSavePhyInfo, .-FlashSavePhyInfo
1054610902 .align 1
1054710903 .global FlashReadIdbDataRaw
10904
+ .syntax unified
1054810905 .thumb
1054910906 .thumb_func
10907
+ .fpu softvfp
1055010908 .type FlashReadIdbDataRaw, %function
1055110909 FlashReadIdbDataRaw:
1055210910 .fnstart
10553
- @ args = 0, pretend = 0, frame = 8
10911
+ @ args = 0, pretend = 0, frame = 16
1055410912 @ frame_needed = 0, uses_anonymous_args = 0
10555
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
10913
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1055610914 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10557
- .pad #12
10558
- mov r9, r0
10559
- ldr r3, .L1655
10560
- ldr r4, .L1655+4
10561
- ldr r0, [r3] @ unaligned
10562
- ldr r3, [r4, #2248]
10563
- ldrb r10, [r4, #2312] @ zero_extendqisi2
10564
- str r0, [sp, #4] @ unaligned
10565
- cbz r3, .L1637
10915
+ movs r3, #60
10916
+ .pad #20
10917
+ sub sp, sp, #20
10918
+ ldr r4, .L1622
10919
+ mov r10, r0
10920
+ strb r3, [sp, #12]
10921
+ movs r3, #40
10922
+ strb r3, [sp, #13]
10923
+ movs r3, #24
10924
+ strb r3, [sp, #14]
10925
+ movs r3, #16
10926
+ strb r3, [sp, #15]
10927
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
10928
+ str r3, [sp, #4]
10929
+ ldr r3, [r4, #2252]
10930
+ cbz r3, .L1605
1056610931 movs r0, #0
1056710932 bl flash_enter_slc_mode
10568
-.L1637:
10569
- mov r0, r9
10570
- movs r1, #0
10571
- mov r2, #2048
10933
+.L1605:
10934
+ ldr r6, .L1622+4
1057210935 mov r8, #-1
10573
- bl ftl_memset
1057410936 movs r5, #2
10575
-.L1638:
10576
- ldrb r3, [r4, #1] @ zero_extendqisi2
10577
- cmp r5, r3
10578
- bcs .L1642
10579
- movs r7, #0
10580
-.L1640:
10581
- add r3, sp, #4
10582
- ldr r6, .L1655+8
10583
- ldrb fp, [r7, r3] @ zero_extendqisi2
10584
- mov r0, fp
10585
- bl FlashBchSel
10586
- ldr r1, [r4, #4]
10587
- movs r0, #0
10588
- ldr r2, [r6, #1184]
10589
- muls r1, r5, r1
10590
- mov r3, r0
10591
- bl FlashReadRawPage
10592
- adds r0, r0, #1
10593
- bne .L1639
10594
- adds r7, r7, #1
10595
- cmp r7, #4
10596
- bne .L1640
10597
- b .L1641
10598
-.L1639:
10599
- ldr r3, [r6, #1184]
10600
- ldr r2, .L1655+12
10601
- ldr r3, [r3]
10602
- cmp r3, r2
10603
- bne .L1641
10604
- mov r1, fp
10605
- ldr r0, .L1655+16
10606
- bl printk
1060710937 mov r2, #2048
10608
- mov r0, r9
10609
- ldr r1, [r6, #1184]
10610
- bl ftl_memcpy
10611
- ldr r3, [r6, #1184]
10612
- ldr r2, .L1655+4
10613
- ldr r3, [r3, #512]
10614
- strb r3, [r2, #1]
10615
- ldr r3, [r6, #1204]
10616
- cmp r3, r5
10617
- bls .L1645
10618
- str r5, [r6, #1204]
10619
- bl FlashSavePhyInfo
10620
- mov r8, #0
10621
-.L1641:
10622
- adds r5, r5, #1
10623
- b .L1638
10624
-.L1645:
10625
- mov r8, #0
10626
-.L1642:
10938
+ movs r1, #0
1062710939 mov r0, r10
10940
+ bl ftl_memset
10941
+.L1606:
10942
+ ldrb r3, [r4, #37] @ zero_extendqisi2
10943
+ cmp r5, r3
10944
+ bcc .L1611
10945
+.L1610:
10946
+ ldr r0, [sp, #4]
1062810947 bl FlashBchSel
10629
- ldr r3, [r4, #2248]
10630
- cbz r3, .L1649
10948
+ ldr r3, [r4, #2252]
10949
+ cbz r3, .L1604
1063110950 movs r0, #0
1063210951 bl flash_exit_slc_mode
10633
-.L1649:
10952
+.L1604:
1063410953 mov r0, r8
10635
- add sp, sp, #12
10954
+ add sp, sp, #20
1063610955 @ sp needed
1063710956 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10638
-.L1656:
10957
+.L1611:
10958
+ movs r7, #0
10959
+ add fp, sp, #12
10960
+.L1608:
10961
+ ldrb r9, [r7, fp] @ zero_extendqisi2
10962
+ mov r0, r9
10963
+ bl FlashBchSel
10964
+ ldr r1, [r4, #40]
10965
+ movs r3, #0
10966
+ ldr r2, [r6, #1192]
10967
+ mov r0, r3
10968
+ muls r1, r5, r1
10969
+ bl FlashReadRawPage
10970
+ adds r0, r0, #1
10971
+ bne .L1607
10972
+ adds r7, r7, #1
10973
+ cmp r7, #4
10974
+ bne .L1608
10975
+.L1609:
10976
+ adds r5, r5, #1
10977
+ b .L1606
10978
+.L1614:
10979
+ mov r8, #0
10980
+ b .L1610
10981
+.L1607:
10982
+ ldr r3, [r6, #1192]
10983
+ ldr r2, .L1622+8
10984
+ ldr r3, [r3]
10985
+ cmp r3, r2
10986
+ bne .L1609
10987
+ mov r1, r9
10988
+ ldr r0, .L1622+12
10989
+ bl printk
10990
+ mov r2, #2048
10991
+ ldr r1, [r6, #1192]
10992
+ mov r0, r10
10993
+ bl ftl_memcpy
10994
+ ldr r3, [r6, #1192]
10995
+ ldr r3, [r3, #512]
10996
+ strb r3, [r4, #37]
10997
+ ldr r3, [r6, #1212]
10998
+ cmp r5, r3
10999
+ bcs .L1614
11000
+ str r5, [r6, #1212]
11001
+ mov r8, #0
11002
+ bl FlashSavePhyInfo
11003
+ b .L1609
11004
+.L1623:
1063911005 .align 2
10640
-.L1655:
10641
- .word .LANCHOR3+11
11006
+.L1622:
1064211007 .word .LANCHOR0
1064311008 .word .LANCHOR4
1064411009 .word -52655045
....@@ -10647,619 +11012,603 @@
1064711012 .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw
1064811013 .align 1
1064911014 .global FlashInit
11015
+ .syntax unified
1065011016 .thumb
1065111017 .thumb_func
11018
+ .fpu softvfp
1065211019 .type FlashInit, %function
1065311020 FlashInit:
1065411021 .fnstart
10655
- @ args = 0, pretend = 0, frame = 0
11022
+ @ args = 0, pretend = 0, frame = 8
1065611023 @ frame_needed = 0, uses_anonymous_args = 0
1065711024 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1065811025 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10659
- mov r5, r0
10660
- .pad #20
10661
- sub sp, sp, #20
11026
+ mov r7, r0
11027
+ ldr r5, .L1740
11028
+ .pad #28
11029
+ sub sp, sp, #28
11030
+ mov r0, #32768
11031
+ movs r6, #0
11032
+ bl ftl_malloc
11033
+ str r0, [r5, #1192]
1066211034 mov r0, #32768
1066311035 bl ftl_malloc
10664
- ldr r4, .L1780
10665
- ldr r6, .L1780+4
10666
- movs r7, #0
10667
- add r9, r6, #12
10668
- mov r8, r4
10669
- str r0, [r4, #1184]
10670
- mov r0, #32768
10671
- bl ftl_malloc
10672
- str r0, [r4, #1212]
11036
+ str r0, [r5, #1220]
1067311037 mov r0, #4096
10674
- bl ftl_malloc
10675
- str r0, [r4, #1216]
11038
+ ldr r4, .L1740+4
11039
+ mov r8, r6
11040
+ bl ftl_dma32_malloc
11041
+ str r0, [r5, #1224]
1067611042 mov r0, #32768
1067711043 bl ftl_malloc
10678
- str r0, [r4, #1220]
11044
+ ldr fp, .L1740+40
11045
+ str r0, [r5, #1228]
1067911046 mov r0, #4096
10680
- bl ftl_malloc
11047
+ bl ftl_dma32_malloc
1068111048 movs r3, #50
10682
- str r7, [r4, #1204]
10683
- strb r3, [r4, #1208]
10684
- strb r3, [r6, #1]
11049
+ str r0, [r5, #1232]
11050
+ strb r3, [r4, #37]
11051
+ mov r0, r7
11052
+ strb r3, [r5, #1216]
11053
+ addw r7, r4, #2072
1068511054 movs r3, #128
10686
- str r7, [r4, #1188]
10687
- str r3, [r6, #4]
11055
+ str r6, [r5, #1212]
11056
+ str r3, [r4, #40]
1068811057 movs r3, #60
10689
- strb r7, [r4, #1228]
10690
- strb r3, [r4, #1210]
10691
- strb r7, [r6, #2252]
10692
- strb r7, [r6]
10693
- str r0, [r4, #1224]
10694
- mov r0, r5
11058
+ strb r6, [r4, #2256]
11059
+ str r6, [r5, #1196]
11060
+ strb r6, [r4, #36]
11061
+ strb r6, [r5, #1236]
11062
+ strb r3, [r5, #1218]
1069511063 bl NandcInit
10696
- addw r5, r6, #2068
10697
- mov r4, r6
10698
-.L1663:
10699
- add r3, r9, r7, lsl #3
10700
- uxtb fp, r7
10701
- ldr r6, [r9, r7, lsl #3]
10702
- ldrb r10, [r3, #4] @ zero_extendqisi2
10703
- mov r0, fp
11064
+.L1630:
11065
+ ldr r3, [r4, r6, lsl #3]
11066
+ uxtb r9, r6
11067
+ add r2, r4, r6, lsl #3
11068
+ mov r0, r9
11069
+ ldrb r10, [r2, #4] @ zero_extendqisi2
11070
+ str r3, [sp, #20]
1070411071 bl FlashReset
10705
- mov r0, fp
11072
+ mov r0, r9
1070611073 bl NandcFlashCs
10707
- movs r3, #144
10708
- add r6, r6, r10, lsl #8
11074
+ ldr r3, [sp, #20]
1070911075 movs r0, #200
10710
- mov r10, #0
10711
- str r3, [r6, #2056]
10712
- str r10, [r6, #2052]
10713
- bl NandcDelayns
10714
- ldr r2, [r6, #2048]
11076
+ add r10, r3, r10, lsl #8
11077
+ movs r3, #144
11078
+ str r3, [r10, #2056]
11079
+ str r8, [r10, #2052]
11080
+ bl ndelay
11081
+ ldr r2, [r10, #2048]
1071511082 uxtb r2, r2
10716
- strb r2, [r5]
10717
- ldr r1, [r6, #2048]
11083
+ strb r2, [r7]
1071811084 cmp r2, #44
10719
- strb r1, [r5, #1]
10720
- ldr r1, [r6, #2048]
10721
- strb r1, [r5, #2]
10722
- ldr r1, [r6, #2048]
10723
- strb r1, [r5, #3]
10724
- ldr r1, [r6, #2048]
10725
- strb r1, [r5, #4]
10726
- ldr r1, [r6, #2048]
10727
- strb r1, [r5, #5]
10728
- bne .L1658
11085
+ ldr r1, [r10, #2048]
11086
+ strb r1, [r7, #1]
11087
+ ldr r1, [r10, #2048]
11088
+ strb r1, [r7, #2]
11089
+ ldr r1, [r10, #2048]
11090
+ strb r1, [r7, #3]
11091
+ ldr r1, [r10, #2048]
11092
+ strb r1, [r7, #4]
11093
+ ldr r1, [r10, #2048]
11094
+ strb r1, [r7, #5]
11095
+ bne .L1625
1072911096 movs r2, #239
1073011097 movs r0, #200
10731
- str r2, [r6, #2056]
11098
+ str r2, [r10, #2056]
1073211099 movs r2, #1
10733
- str r2, [r6, #2052]
10734
- bl NandcDelayns
11100
+ str r2, [r10, #2052]
11101
+ bl ndelay
1073511102 movs r2, #4
10736
- str r2, [r6, #2048]
10737
- str r10, [r6, #2048]
10738
- str r10, [r6, #2048]
10739
- str r10, [r6, #2048]
10740
-.L1658:
10741
- mov r0, fp
11103
+ str r2, [r10, #2048]
11104
+ str r8, [r10, #2048]
11105
+ str r8, [r10, #2048]
11106
+ str r8, [r10, #2048]
11107
+.L1625:
11108
+ mov r0, r9
1074211109 bl NandcFlashDeCs
10743
- ldrb r2, [r5] @ zero_extendqisi2
11110
+ ldrb r2, [r7] @ zero_extendqisi2
1074411111 subs r3, r2, #1
1074511112 uxtb r3, r3
1074611113 cmp r3, #253
10747
- bhi .L1659
10748
- ldrb r1, [r5, #2] @ zero_extendqisi2
10749
- ldrb r3, [r5, #1] @ zero_extendqisi2
10750
- ldr r0, .L1780+8
10751
- str r1, [sp]
10752
- ldrb r1, [r5, #3] @ zero_extendqisi2
10753
- str r1, [sp, #4]
10754
- ldrb r1, [r5, #4] @ zero_extendqisi2
10755
- str r1, [sp, #8]
10756
- ldrb r1, [r5, #5] @ zero_extendqisi2
11114
+ bhi .L1626
11115
+ ldrb r1, [r7, #5] @ zero_extendqisi2
11116
+ mov r0, fp
11117
+ ldrb r3, [r7, #1] @ zero_extendqisi2
1075711118 str r1, [sp, #12]
10758
- adds r1, r7, #1
11119
+ ldrb r1, [r7, #4] @ zero_extendqisi2
11120
+ str r1, [sp, #8]
11121
+ ldrb r1, [r7, #3] @ zero_extendqisi2
11122
+ str r1, [sp, #4]
11123
+ ldrb r1, [r7, #2] @ zero_extendqisi2
11124
+ str r1, [sp]
11125
+ adds r1, r6, #1
1075911126 bl printk
10760
-.L1659:
10761
- cbnz r7, .L1660
10762
- ldrb r3, [r4, #2068] @ zero_extendqisi2
11127
+.L1626:
11128
+ cbnz r6, .L1627
11129
+ ldrb r3, [r4, #2072] @ zero_extendqisi2
1076311130 subs r3, r3, #1
1076411131 uxtb r3, r3
1076511132 cmp r3, #253
10766
- bhi .L1716
10767
- ldr r3, .L1780+4
10768
- ldrb r3, [r3, #2069] @ zero_extendqisi2
11133
+ bhi .L1681
11134
+ ldrb r3, [r4, #2073] @ zero_extendqisi2
1076911135 cmp r3, #255
10770
- beq .L1716
10771
-.L1660:
10772
- ldrb r3, [r5] @ zero_extendqisi2
10773
- adds r7, r7, #1
10774
- adds r5, r5, #8
11136
+ beq .L1681
11137
+.L1627:
11138
+ ldrb r3, [r7] @ zero_extendqisi2
11139
+ adds r6, r6, #1
11140
+ adds r7, r7, #8
1077511141 cmp r3, #181
1077611142 itt eq
1077711143 moveq r3, #44
10778
- strbeq r3, [r5, #-8]
10779
- cmp r7, #4
10780
- bne .L1663
10781
- ldrb r3, [r4, #2068] @ zero_extendqisi2
11144
+ strbeq r3, [r7, #-8]
11145
+ cmp r6, #4
11146
+ bne .L1630
11147
+ ldrb r3, [r4, #2072] @ zero_extendqisi2
1078211148 cmp r3, #173
10783
- beq .L1664
10784
- ldr r3, .L1780+4
10785
- ldr r0, [r3, #2256]
11149
+ beq .L1631
11150
+ ldr r0, [r4, #2260]
1078611151 bl NandcSetDdrMode
10787
-.L1664:
10788
- ldr r6, .L1780+4
10789
- movs r1, #0
11152
+.L1631:
1079011153 mov r2, #852
10791
- ldr r5, .L1780+12
10792
- addw r0, r6, #1210
11154
+ movs r1, #0
11155
+ ldr r0, .L1740+8
1079311156 bl ftl_memset
10794
- ldr r0, .L1780+16
10795
- add r3, r0, #472
10796
- str r3, [r4, #44]
10797
- movs r3, #0
10798
- strb r3, [r4, #8]
10799
- ldr r3, [r4, #2264]
10800
- cmp r3, r5
10801
- bne .L1665
10802
- ldrb r2, [r0, #491] @ zero_extendqisi2
11157
+ ldr r6, .L1740+12
11158
+ ldr r3, .L1740+16
11159
+ ldr r1, [r4, #2268]
11160
+ add r2, r3, #468
11161
+ cmp r1, r6
11162
+ str r2, [r4, #48]
11163
+ mov r2, #0
11164
+ strb r2, [r4, #44]
11165
+ bne .L1632
11166
+ ldrb r2, [r3, #487] @ zero_extendqisi2
1080311167 cmp r2, #50
1080411168 itt ne
1080511169 movne r2, #1
10806
- strne r2, [r6, #2248]
10807
-.L1665:
10808
- ldrb r6, [r4, #2069] @ zero_extendqisi2
10809
- cmp r6, #161
10810
- beq .L1666
10811
- cmp r6, #241
10812
- beq .L1666
10813
- cmp r6, #218
10814
- beq .L1666
10815
- and r2, r6, #253
10816
- cmp r2, #209
10817
- beq .L1666
10818
- cmp r6, #220
10819
- bne .L1667
10820
- ldr r2, .L1780+4
10821
- ldrb r2, [r2, #2071] @ zero_extendqisi2
10822
- cmp r2, #149
10823
- bne .L1667
10824
-.L1666:
11170
+ strne r2, [r4, #2252]
11171
+.L1632:
11172
+ ldrb r2, [r4, #2073] @ zero_extendqisi2
11173
+ cmp r2, #161
11174
+ beq .L1633
11175
+ cmp r2, #241
11176
+ beq .L1633
11177
+ cmp r2, #218
11178
+ beq .L1633
11179
+ and r0, r2, #253
11180
+ cmp r0, #209
11181
+ beq .L1633
11182
+ cmp r2, #220
11183
+ bne .L1634
11184
+ ldrb r0, [r4, #2075] @ zero_extendqisi2
11185
+ cmp r0, #149
11186
+ bne .L1634
11187
+.L1633:
1082511188 movs r7, #16
10826
- strb r7, [r4, #1]
10827
- strb r7, [r8, #1210]
10828
- movs r1, #1
10829
- ldrb r7, [r4, #2068] @ zero_extendqisi2
10830
- strb r1, [r4]
11189
+ movs r0, #1
11190
+ strb r7, [r4, #37]
11191
+ strb r7, [r5, #1218]
11192
+ ldrb r7, [r4, #2072] @ zero_extendqisi2
11193
+ strb r0, [r4, #36]
11194
+ strb r2, [r3, #3414]
1083111195 cmp r7, #152
10832
- ldr r2, .L1780
10833
- strb r7, [r0, #3417]
10834
- strb r6, [r0, #3418]
10835
- bne .L1669
10836
- ldr r7, .L1780+4
10837
- ldrsb r7, [r7, #2072]
11196
+ strb r7, [r3, #3413]
11197
+ bne .L1636
11198
+ ldrsb r7, [r4, #2076]
1083811199 cmp r7, #0
10839
- blt .L1670
10840
- movs r1, #24
10841
- strb r1, [r2, #1210]
10842
-.L1669:
10843
- cmp r3, r5
10844
- beq .L1672
10845
- movw r2, #2049
10846
- cmp r3, r2
10847
- bne .L1673
10848
-.L1672:
10849
- movs r3, #16
10850
- strb r3, [r8, #1210]
10851
-.L1673:
10852
- cmp r6, #218
10853
- bne .L1674
10854
- mov r3, #2048
10855
- b .L1775
10856
-.L1674:
10857
- cmp r6, #220
10858
- bne .L1676
10859
- mov r3, #4096
10860
-.L1775:
10861
- strh r3, [r0, #3430] @ movhi
10862
- strb r6, [r0, #3418]
10863
- b .L1675
10864
-.L1676:
10865
- cmp r6, #211
10866
- itttt eq
10867
- moveq r3, #4096
10868
- strheq r3, [r0, #3430] @ movhi
10869
- moveq r3, #2
10870
- strbeq r3, [r0, #3429]
10871
-.L1675:
10872
- ldr r1, .L1780+20
11200
+ blt .L1637
11201
+ movs r0, #24
11202
+ strb r0, [r5, #1218]
11203
+.L1636:
11204
+ cmp r1, r6
11205
+ beq .L1639
11206
+ movw r0, #2049
11207
+ cmp r1, r0
11208
+ bne .L1640
11209
+.L1639:
11210
+ movs r1, #16
11211
+ strb r1, [r5, #1218]
11212
+.L1640:
11213
+ cmp r2, #218
11214
+ bne .L1641
11215
+ mov r1, #2048
11216
+.L1734:
11217
+ strh r1, [r3, #3426] @ movhi
11218
+ strb r2, [r3, #3414]
11219
+.L1642:
1087311220 movs r2, #32
10874
- ldr r0, .L1780+24
11221
+ ldr r1, .L1740+20
11222
+ ldr r0, .L1740+24
1087511223 bl ftl_memcpy
10876
- ldr r0, .L1780+28
11224
+ ldr r1, .L1740+28
1087711225 movs r2, #32
10878
- add r1, r0, #2944
11226
+ sub r0, r1, #2944
1087911227 bl ftl_memcpy
10880
-.L1667:
10881
- ldrb r3, [r4] @ zero_extendqisi2
10882
- ldr r6, .L1780+4
11228
+.L1634:
11229
+ ldrb r3, [r4, #36] @ zero_extendqisi2
1088311230 cmp r3, #0
10884
- bne .L1677
11231
+ bne .L1645
1088511232 bl FlashLoadPhyInfoInRam
10886
- cbnz r0, .L1679
10887
- ldr r3, [r6, #44]
11233
+ cbnz r0, .L1647
11234
+ ldr r3, [r4, #48]
1088811235 ldrh r3, [r3, #16]
1088911236 lsrs r3, r3, #8
1089011237 lsls r7, r3, #31
1089111238 and r0, r3, #7
10892
- strb r0, [r6, #2229]
10893
- bmi .L1679
11239
+ strb r0, [r4, #2233]
11240
+ bmi .L1647
1089411241 movs r3, #1
10895
- strb r3, [r6, #2252]
11242
+ strb r3, [r4, #2256]
1089611243 bl FlashSetInterfaceMode
10897
- ldrb r0, [r6, #2229] @ zero_extendqisi2
11244
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
1089811245 bl NandcSetMode
10899
-.L1679:
10900
- ldr r3, [r4, #44]
10901
- ldr r6, .L1780+4
11246
+.L1647:
11247
+ ldr r3, [r4, #48]
1090211248 ldrb r3, [r3, #26] @ zero_extendqisi2
10903
- strb r3, [r4, #144]
11249
+ strb r3, [r4, #152]
1090411250 bl FlashLoadPhyInfo
1090511251 cmp r0, #0
10906
- beq .L1677
10907
- ldr r3, [r6, #2256]
10908
- cbz r3, .L1682
11252
+ beq .L1645
11253
+ ldr r3, [r4, #2260]
11254
+ cmp r3, #0
11255
+ beq .L1650
1090911256 movs r0, #1
1091011257 bl FlashSetInterfaceMode
1091111258 movs r0, #1
10912
- b .L1776
10913
-.L1781:
10914
- .align 2
10915
-.L1780:
10916
- .word .LANCHOR4
10917
- .word .LANCHOR0
10918
- .word .LC97
10919
- .word 1446522928
10920
- .word .LANCHOR1
10921
- .word .LANCHOR1+3292
10922
- .word .LANCHOR0+48
10923
- .word .LANCHOR1+472
10924
-.L1682:
10925
- ldrb r0, [r6, #2229] @ zero_extendqisi2
10926
- bl FlashSetInterfaceMode
10927
- ldrb r0, [r6, #2229] @ zero_extendqisi2
10928
-.L1776:
11259
+.L1735:
1092911260 bl NandcSetMode
1093011261 bl FlashLoadPhyInfo
1093111262 cmp r0, #0
10932
- beq .L1677
11263
+ beq .L1645
1093311264 movs r0, #1
10934
- ldr r6, .L1782
1093511265 bl FlashSetInterfaceMode
1093611266 movs r0, #1
1093711267 bl NandcSetMode
10938
- ldr r3, [r4, #44]
10939
- ldr r0, .L1782+4
11268
+ ldr r3, [r4, #48]
11269
+ ldr r0, .L1740+32
1094011270 ldrh r1, [r3, #14]
1094111271 bl printk
1094211272 bl FlashLoadPhyInfoInRam
1094311273 adds r1, r0, #1
10944
- beq .L1736
11274
+ beq .L1624
1094511275 bl FlashDieInfoInit
10946
- ldr r3, [r6, #44]
11276
+ ldr r3, [r4, #48]
1094711277 ldrb r0, [r3, #19] @ zero_extendqisi2
1094811278 bl FlashGetReadRetryDefault
10949
- ldr r2, .L1782+8
10950
- ldr r3, [r6, #44]
10951
- ldrh r2, [r2, #3270]
11279
+ ldr r3, [r4, #48]
11280
+ ldr r2, .L1740+36
1095211281 ldrb r1, [r3, #9] @ zero_extendqisi2
11282
+ ldrh r2, [r2, #3270]
1095311283 addw r2, r2, #4095
1095411284 cmp r1, r2, asr #12
10955
- blt .L1684
11285
+ blt .L1652
1095611286 ldrh r2, [r3, #14]
1095711287 adds r2, r2, #255
1095811288 cmp r1, r2, asr #8
10959
- bge .L1685
10960
-.L1684:
11289
+ bge .L1653
11290
+ b .L1741
11291
+.L1742:
11292
+ .align 2
11293
+.L1740:
11294
+ .word .LANCHOR4
11295
+ .word .LANCHOR0
11296
+ .word .LANCHOR0+1216
11297
+ .word 1446522928
11298
+ .word .LANCHOR1
11299
+ .word .LANCHOR1+3288
11300
+ .word .LANCHOR0+52
11301
+ .word .LANCHOR1+3412
11302
+ .word .LC98
11303
+ .word .LANCHOR2
11304
+ .word .LC97
11305
+.L1741:
11306
+.L1652:
1096111307 ldrh r2, [r3, #14]
1096211308 bic r2, r2, #255
1096311309 strh r2, [r3, #14] @ movhi
10964
-.L1685:
10965
- ldrb r3, [r4, #2229] @ zero_extendqisi2
11310
+.L1653:
11311
+ ldrb r3, [r4, #2233] @ zero_extendqisi2
1096611312 tst r3, #6
10967
- beq .L1686
11313
+ beq .L1654
1096811314 bl FlashSavePhyInfo
1096911315 movs r0, #0
1097011316 bl flash_enter_slc_mode
11317
+ ldr r1, [r5, #1208]
1097111318 movs r0, #0
10972
- ldr r1, [r8, #1200]
1097311319 bl FlashDdrParaScan
1097411320 movs r0, #0
1097511321 bl flash_exit_slc_mode
10976
-.L1686:
11322
+.L1654:
1097711323 bl FlashSavePhyInfo
10978
-.L1677:
10979
- ldr r2, [r4, #44]
10980
- mov r9, #0
10981
- str r9, [r8, #1192]
10982
- ldr r7, .L1782
10983
- ldrb r3, [r2, #26] @ zero_extendqisi2
10984
- ldrh r0, [r2, #10]
10985
- ldrb r10, [r2, #18] @ zero_extendqisi2
10986
- strb r3, [r4, #144]
10987
- ldrh r3, [r2, #16]
10988
- ldr r6, .L1782+12
10989
- ubfx r1, r3, #7, #1
10990
- strb r1, [r4, #8]
10991
- ubfx r1, r3, #3, #1
10992
- strb r1, [r8, #1229]
10993
- ubfx r1, r3, #4, #1
11324
+.L1645:
11325
+ ldr r7, [r4, #48]
11326
+ mov r8, #0
11327
+ str r8, [r5, #1200]
11328
+ ldrb r3, [r7, #26] @ zero_extendqisi2
11329
+ ldrb r1, [r7, #12] @ zero_extendqisi2
11330
+ ldrh r0, [r7, #10]
11331
+ strb r3, [r4, #152]
11332
+ ldrh r3, [r7, #16]
11333
+ ubfx r2, r3, #7, #1
11334
+ strb r2, [r4, #44]
11335
+ ubfx r2, r3, #3, #1
11336
+ strb r2, [r5, #1237]
11337
+ ubfx r2, r3, #4, #1
1099411338 ubfx r3, r3, #8, #3
10995
- strb r1, [r4, #2240]
10996
- strb r3, [r4, #2229]
10997
- ldrb r1, [r2, #12] @ zero_extendqisi2
11339
+ strb r2, [r4, #2244]
11340
+ strb r3, [r4, #2233]
1099811341 bl __aeabi_idiv
1099911342 mov r1, r0
11000
- mov r0, r10
11343
+ ldrb r0, [r7, #18] @ zero_extendqisi2
1100111344 bl BuildFlashLsbPageTable
1100211345 bl FlashDieInfoInit
11003
- ldr r3, [r4, #44]
11346
+ ldr r3, [r4, #48]
1100411347 ldrh r2, [r3, #16]
1100511348 lsls r2, r2, #25
11006
- bpl .L1688
11349
+ bpl .L1656
1100711350 ldrb r0, [r3, #19] @ zero_extendqisi2
11008
- ldrb r3, [r7, #1211] @ zero_extendqisi2
11009
- strb r0, [r7, #1208]
11010
- strb r3, [r7, #1209]
11011
- ldrb r3, [r7, #1212] @ zero_extendqisi2
11012
- strb r3, [r6, #1209]
11351
+ ldrb r3, [r4, #1217] @ zero_extendqisi2
11352
+ strb r0, [r4, #84]
11353
+ strb r3, [r4, #85]
11354
+ ldrb r3, [r4, #1218] @ zero_extendqisi2
11355
+ strb r3, [r5, #1217]
1101311356 subs r3, r0, #1
1101411357 cmp r3, #7
11015
- bhi .L1689
11016
- ldr r3, .L1782+16
11017
- str r3, [r6, #1192]
11358
+ bhi .L1657
11359
+ ldr r3, .L1743
11360
+ str r3, [r5, #1200]
1101811361 subs r3, r0, #5
1101911362 cmp r3, #1
11020
- bls .L1690
11363
+ bls .L1658
1102111364 cmp r0, #8
11022
- bne .L1691
11023
-.L1690:
11365
+ bne .L1659
11366
+.L1658:
11367
+ movs r3, #1
11368
+ str r3, [r4, #2308]
11369
+.L1659:
1102411370 cmp r0, #7
11025
- mov r3, #1
11026
- str r3, [r4, #2304]
11027
- beq .L1717
11371
+ ldr r3, .L1743+4
11372
+ beq .L1660
11373
+ sub r2, r3, #8
1102811374 cmp r0, #8
11029
- b .L1779
11030
-.L1717:
11031
- ldr r3, .L1782+20
11032
-.L1693:
11375
+ it ne
11376
+ movne r3, r2
11377
+.L1660:
1103311378 subs r1, r3, #1
1103411379 movs r2, #0
1103511380 adds r3, r3, #31
11036
-.L1694:
11037
- ldrsb r6, [r1, #1]!
11038
- cmp r6, #0
11039
- it eq
11040
- addeq r2, r2, #1
11041
- cmp r1, r3
11042
- bne .L1694
11381
+.L1662:
11382
+ ldrsb r7, [r1, #1]!
11383
+ cbnz r7, .L1661
11384
+ adds r2, r2, #1
11385
+.L1661:
11386
+ cmp r3, r1
11387
+ bne .L1662
1104311388 cmp r2, #27
11044
- bls .L1688
11389
+ bls .L1656
1104511390 bl FlashGetReadRetryDefault
1104611391 bl FlashSavePhyInfo
11047
- b .L1688
11048
-.L1689:
11049
- sub r3, r0, #17
11050
- cmp r3, #2
11051
- bhi .L1696
11052
- ldr r3, .L1782+24
11053
- cmp r0, #19
11054
- str r3, [r6, #1192]
11055
- ite ne
11056
- movne r3, #7
11057
- moveq r3, #15
11058
- strb r3, [r6, #1209]
11059
- b .L1688
11060
-.L1696:
11061
- cmp r0, #33
11062
- beq .L1698
11063
- sub r3, r0, #65
11064
- cmp r3, #1
11065
- bhi .L1699
11066
-.L1698:
11067
- ldr r3, .L1782+28
11068
- str r3, [r8, #1192]
11069
- movs r3, #4
11070
- strb r3, [r4, #1209]
11071
- movs r3, #7
11072
- strb r3, [r8, #1209]
11073
- b .L1688
11074
-.L1699:
11075
- sub r3, r0, #67
11076
- uxtb r3, r3
11077
- cmp r3, #1
11078
- bls .L1700
11079
- sub r2, r0, #34
11080
- cmp r2, #1
11081
- bhi .L1701
11082
-.L1700:
11083
- ldr r2, .L1782+28
11084
- cmp r0, #35
11085
- str r2, [r8, #1192]
11086
- beq .L1702
11087
- cmp r0, #68
11088
- beq .L1702
11089
- ldr r2, .L1782+12
11090
- movs r1, #7
11091
- strb r1, [r2, #1209]
11092
- b .L1703
11093
-.L1702:
11094
- movs r2, #17
11095
- strb r2, [r8, #1209]
11096
-.L1703:
11097
- cmp r3, #1
11098
- ite ls
11099
- movls r3, #4
11100
- movhi r3, #5
11101
- strb r3, [r4, #1209]
11102
- b .L1688
11103
-.L1701:
11104
- cmp r0, #49
11105
- bne .L1705
11106
- ldr r3, .L1782+32
11107
- str r3, [r6, #1192]
11108
- b .L1688
11109
-.L1705:
11110
- cmp r0, #50
11111
- ittt eq
11112
- streq r9, [r7, #2248]
11113
- ldreq r3, .L1782+36
11114
- streq r3, [r6, #1192]
11115
-.L1688:
11116
- ldr r2, [r4, #2264]
11117
- ldr r3, .L1782
11118
- cmp r2, r5
11119
- bne .L1706
11120
- ldrb r1, [r3, #144] @ zero_extendqisi2
11121
- cbz r1, .L1706
11122
- ldr r3, [r3, #44]
11392
+.L1656:
11393
+ ldr r3, [r4, #2268]
11394
+ cmp r3, r6
11395
+ bne .L1674
11396
+ ldrb r2, [r4, #152] @ zero_extendqisi2
11397
+ cbz r2, .L1674
11398
+ ldr r2, [r4, #48]
1112311399 movs r1, #0
11124
- strb r1, [r3, #18]
11125
-.L1706:
11126
- ldrb r1, [r4, #2068] @ zero_extendqisi2
11127
- ldr r3, .L1782
11128
- cmp r1, #44
11129
- bne .L1707
11130
- ldrb r1, [r3, #2252] @ zero_extendqisi2
11131
- cbz r1, .L1707
11132
- cmp r2, r5
11133
- bne .L1708
11134
- ldrb r3, [r3, #144] @ zero_extendqisi2
11135
- cbnz r3, .L1707
11136
-.L1708:
11137
- movs r0, #1
11400
+ strb r1, [r2, #18]
11401
+.L1674:
11402
+ ldrb r2, [r4, #2072] @ zero_extendqisi2
11403
+ cmp r2, #44
11404
+ bne .L1675
11405
+ ldrb r2, [r4, #2256] @ zero_extendqisi2
11406
+ cbz r2, .L1675
11407
+ cmp r3, r6
11408
+ bne .L1676
11409
+ ldrb r3, [r4, #152] @ zero_extendqisi2
11410
+ cbnz r3, .L1675
11411
+.L1676:
1113811412 movs r3, #0
11139
- strb r3, [r4, #2252]
11413
+ movs r0, #1
11414
+ strb r3, [r4, #2256]
1114011415 bl FlashSetInterfaceMode
1114111416 movs r0, #1
1114211417 bl NandcSetMode
11143
-.L1707:
11144
- ldrb r3, [r4, #2229] @ zero_extendqisi2
11418
+.L1675:
11419
+ ldrb r3, [r4, #2233] @ zero_extendqisi2
1114511420 tst r3, #6
11146
- beq .L1709
11147
- ldr r2, .L1782
11148
- ldrb r2, [r2, #2252] @ zero_extendqisi2
11149
- cbnz r2, .L1710
11421
+ beq .L1677
11422
+ ldrb r2, [r4, #2256] @ zero_extendqisi2
11423
+ cbnz r2, .L1678
1115011424 lsls r3, r3, #31
11151
- bmi .L1709
11152
-.L1710:
11425
+ bmi .L1677
11426
+.L1678:
1115311427 movs r0, #0
1115411428 bl flash_enter_slc_mode
11429
+ ldr r1, [r5, #1208]
1115511430 movs r0, #0
11156
- ldr r1, [r8, #1200]
1115711431 bl FlashDdrParaScan
1115811432 movs r0, #0
1115911433 bl flash_exit_slc_mode
11160
-.L1709:
11161
- ldr r3, [r4, #44]
11162
- movs r7, #16
11163
- ldr r6, .L1782
11434
+.L1677:
11435
+ ldr r3, [r4, #48]
11436
+ movs r6, #16
1116411437 ldrb r0, [r3, #20] @ zero_extendqisi2
1116511438 bl FlashBchSel
11166
- ldr r0, .L1782+40
11439
+ ldr r0, .L1743+8
1116711440 bl FlashReadIdbDataRaw
11168
- ldr r0, .L1782+44
11169
- strb r7, [r4, #1]
11441
+ ldr r0, .L1743+12
11442
+ strb r6, [r4, #37]
1117011443 bl FlashTimingCfg
11171
- ldr r5, [r4, #44]
11172
- ldrb r2, [r4, #2069] @ zero_extendqisi2
11444
+ ldr r5, [r4, #48]
11445
+ ldrb r2, [r4, #2073] @ zero_extendqisi2
1117311446 ldrb r3, [r5, #12] @ zero_extendqisi2
11174
- ldrh r8, [r5, #14]
11175
- strh r3, [r4, #124] @ movhi
11176
- ldrb r3, [r5, #7] @ zero_extendqisi2
11177
- str r3, [r4, #120]
11178
- lsl r3, r2, r7
11179
- orr r2, r3, r2, lsl #8
11180
- ldrb r3, [r4, #2068] @ zero_extendqisi2
11181
- orrs r3, r3, r2
11182
- ldrb r2, [r4, #2071] @ zero_extendqisi2
11183
- orr r3, r3, r2, lsl #24
11184
- str r3, [r4, #116]
11185
- ldrb r3, [r4, #2230] @ zero_extendqisi2
11186
- strh r3, [r4, #126] @ movhi
11187
- ldrb r3, [r5, #13] @ zero_extendqisi2
11188
- strh r8, [r4, #130] @ movhi
11189
- strh r3, [r4, #128] @ movhi
11190
- ldrh r3, [r5, #10]
11447
+ ldrh r7, [r5, #14]
1119111448 strh r3, [r4, #132] @ movhi
11449
+ ldrb r3, [r5, #7] @ zero_extendqisi2
11450
+ str r3, [r4, #128]
11451
+ lsl r3, r2, r6
11452
+ orr r3, r3, r2, lsl #8
11453
+ ldrb r2, [r4, #2072] @ zero_extendqisi2
11454
+ orrs r3, r3, r2
11455
+ ldrb r2, [r4, #2075] @ zero_extendqisi2
11456
+ orr r3, r3, r2, lsl #24
11457
+ str r3, [r4, #124]
11458
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
11459
+ strh r3, [r4, #134] @ movhi
11460
+ ldrb r3, [r5, #13] @ zero_extendqisi2
11461
+ strh r7, [r4, #138] @ movhi
11462
+ strh r3, [r4, #136] @ movhi
11463
+ ldrh r3, [r5, #10]
11464
+ strh r3, [r4, #140] @ movhi
1119211465 ldrb r1, [r5, #12] @ zero_extendqisi2
1119311466 ldrh r0, [r5, #10]
1119411467 bl __aeabi_idiv
11195
- strh r0, [r4, #134] @ movhi
11468
+ strh r0, [r4, #142] @ movhi
1119611469 ldrb r2, [r5, #9] @ zero_extendqisi2
11197
- strh r2, [r4, #136] @ movhi
11198
- ldrb r1, [r5, #9] @ zero_extendqisi2
11199
- ldrh r3, [r5, #10]
11200
- smulbb r3, r1, r3
11470
+ strh r2, [r4, #144] @ movhi
11471
+ ldrh r1, [r5, #10]
11472
+ ldrb r3, [r5, #9] @ zero_extendqisi2
11473
+ smulbb r3, r3, r1
1120111474 mov r1, #512
11202
- strh r1, [r4, #140] @ movhi
11203
- ldrb r1, [r4, #1] @ zero_extendqisi2
11204
- strh r1, [r4, #142] @ movhi
11475
+ strh r1, [r4, #148] @ movhi
11476
+ ldrb r1, [r4, #37] @ zero_extendqisi2
1120511477 uxth r3, r3
11206
- ldrb r1, [r4] @ zero_extendqisi2
11207
- strh r3, [r4, #138] @ movhi
11478
+ strh r1, [r4, #150] @ movhi
11479
+ ldrb r1, [r4, #36] @ zero_extendqisi2
11480
+ strh r3, [r4, #146] @ movhi
1120811481 cmp r1, #1
11209
- bne .L1712
11482
+ bne .L1679
1121011483 lsls r3, r3, #1
11211
- lsr r1, r8, #1
11484
+ lsrs r1, r7, #1
1121211485 lsls r2, r2, #1
11213
- strh r3, [r6, #138] @ movhi
11214
- strb r7, [r6, #1]
11486
+ strb r6, [r4, #37]
11487
+ strh r3, [r4, #146] @ movhi
1121511488 movs r3, #8
11216
- strh r1, [r6, #130] @ movhi
11217
- strh r2, [r6, #136] @ movhi
11218
- strh r3, [r6, #142] @ movhi
11219
-.L1712:
11489
+ strh r1, [r4, #138] @ movhi
11490
+ strh r2, [r4, #144] @ movhi
11491
+ strh r3, [r4, #150] @ movhi
11492
+.L1679:
1122011493 ldrb r0, [r5, #20] @ zero_extendqisi2
1122111494 bl FlashBchSel
1122211495 bl ftl_flash_suspend
1122311496 movs r0, #0
11224
- b .L1736
11225
-.L1716:
11226
- mvn r0, #1
11227
- b .L1736
11228
-.L1691:
11229
- cmp r0, #7
11230
-.L1779:
11231
- beq .L1717
11232
- ldr r3, .L1782+48
11233
- b .L1693
11234
-.L1670:
11235
- strb r1, [r2, #1228]
11236
- b .L1669
11237
-.L1736:
11238
- add sp, sp, #20
11497
+.L1624:
11498
+ add sp, sp, #28
1123911499 @ sp needed
1124011500 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11241
-.L1783:
11501
+.L1641:
11502
+ cmp r2, #220
11503
+ bne .L1643
11504
+ mov r1, #4096
11505
+ b .L1734
11506
+.L1643:
11507
+ cmp r2, #211
11508
+ itttt eq
11509
+ moveq r2, #4096
11510
+ strheq r2, [r3, #3426] @ movhi
11511
+ moveq r2, #2
11512
+ strbeq r2, [r3, #3425]
11513
+ b .L1642
11514
+.L1650:
11515
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
11516
+ bl FlashSetInterfaceMode
11517
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
11518
+ b .L1735
11519
+.L1657:
11520
+ sub r3, r0, #17
11521
+ cmp r3, #2
11522
+ bhi .L1664
11523
+ ldr r3, .L1743+16
11524
+ cmp r0, #19
11525
+ str r3, [r5, #1200]
11526
+ beq .L1665
11527
+.L1739:
11528
+ movs r3, #7
11529
+ b .L1737
11530
+.L1665:
11531
+ movs r3, #15
11532
+.L1737:
11533
+ strb r3, [r5, #1217]
11534
+ b .L1656
11535
+.L1664:
11536
+ cmp r0, #33
11537
+ beq .L1666
11538
+ sub r3, r0, #65
11539
+ cmp r3, #1
11540
+ bhi .L1667
11541
+.L1666:
11542
+ ldr r3, .L1743+20
11543
+ str r3, [r5, #1200]
11544
+ movs r3, #4
11545
+ strb r3, [r4, #85]
11546
+ b .L1739
11547
+.L1667:
11548
+ sub r3, r0, #67
11549
+ uxtb r3, r3
11550
+ cmp r3, #1
11551
+ bls .L1668
11552
+ sub r2, r0, #34
11553
+ cmp r2, #1
11554
+ bhi .L1669
11555
+.L1668:
11556
+ ldr r2, .L1743+20
11557
+ cmp r0, #35
11558
+ str r2, [r5, #1200]
11559
+ beq .L1670
11560
+ cmp r0, #68
11561
+ beq .L1670
11562
+ movs r2, #7
11563
+.L1736:
11564
+ cmp r3, #1
11565
+ strb r2, [r5, #1217]
11566
+ ite ls
11567
+ movls r3, #4
11568
+ movhi r3, #5
11569
+ strb r3, [r4, #85]
11570
+ b .L1656
11571
+.L1670:
11572
+ movs r2, #17
11573
+ b .L1736
11574
+.L1669:
11575
+ cmp r0, #49
11576
+ bne .L1673
11577
+ ldr r3, .L1743+24
11578
+ str r3, [r5, #1200]
11579
+ b .L1656
11580
+.L1673:
11581
+ cmp r0, #50
11582
+ ittt eq
11583
+ ldreq r3, .L1743+28
11584
+ streq r8, [r4, #2252]
11585
+ streq r3, [r5, #1200]
11586
+ b .L1656
11587
+.L1681:
11588
+ mvn r0, #1
11589
+ b .L1624
11590
+.L1637:
11591
+ strb r0, [r5, #1236]
11592
+ b .L1636
11593
+.L1744:
1124211594 .align 2
11243
-.L1782:
11244
- .word .LANCHOR0
11245
- .word .LC98
11246
- .word .LANCHOR2
11247
- .word .LANCHOR4
11595
+.L1743:
1124811596 .word HynixReadRetrial
11249
- .word .LANCHOR0+1238
11597
+ .word .LANCHOR0+1244
11598
+ .word .LANCHOR2+3476
11599
+ .word 150000
1125011600 .word MicronReadRetrial
1125111601 .word ToshibaReadRetrial
1125211602 .word SamsungReadRetrial
1125311603 .word samsung_read_retrial
11254
- .word .LANCHOR2+3476
11255
- .word 150000
11256
- .word .LANCHOR0+1230
1125711604 .fnend
1125811605 .size FlashInit, .-FlashInit
1125911606 .align 1
1126011607 .global FlashPageProgMsbFFData
11608
+ .syntax unified
1126111609 .thumb
1126211610 .thumb_func
11611
+ .fpu softvfp
1126311612 .type FlashPageProgMsbFFData, %function
1126411613 FlashPageProgMsbFFData:
1126511614 .fnstart
....@@ -11267,749 +11616,742 @@
1126711616 @ frame_needed = 0, uses_anonymous_args = 0
1126811617 push {r4, r5, r6, r7, r8, r9, r10, lr}
1126911618 .save {r4, r5, r6, r7, r8, r9, r10, lr}
11619
+ mov r6, r0
11620
+ ldr r5, .L1765
11621
+ mov r7, r1
1127011622 mov r4, r2
11271
- ldr r2, .L1805
11272
- mov r8, r1
11273
- mov r7, r0
11274
- ldr r3, [r2, #44]
11275
- mov r5, r2
11276
- ldrb r1, [r2, #144] @ zero_extendqisi2
11277
- ldrb r3, [r3, #19] @ zero_extendqisi2
11278
- cbz r1, .L1785
11279
- ldr r2, [r2, #2248]
11280
- cbnz r2, .L1784
11281
-.L1785:
11282
- subs r2, r3, #5
11283
- cmp r2, #2
11284
- bls .L1786
11285
- cmp r3, #50
11286
- beq .L1786
11287
- cmp r3, #68
11288
- beq .L1786
11289
- cmp r3, #35
11290
- beq .L1786
11291
- cmp r3, #19
11292
- bne .L1784
11293
-.L1786:
11294
- ldr r9, .L1805+8
11623
+ ldrb r3, [r5, #152] @ zero_extendqisi2
11624
+ cbz r3, .L1746
11625
+ ldr r3, [r5, #2252]
11626
+ cbnz r3, .L1745
11627
+.L1746:
11628
+ ldr r3, [r5, #48]
11629
+ ldrb r2, [r3, #19] @ zero_extendqisi2
11630
+ subs r3, r2, #5
11631
+ uxtb r3, r3
11632
+ cmp r3, #30
11633
+ bhi .L1747
11634
+ ldr r1, .L1765+4
11635
+ lsr r3, r1, r3
11636
+ lsls r3, r3, #31
11637
+ bmi .L1748
11638
+.L1752:
11639
+ cmp r2, #68
11640
+ bne .L1745
11641
+.L1748:
11642
+ ldr r9, .L1765+8
1129511643 movw r10, #65535
11296
- ldr r6, .L1805+4
11297
-.L1788:
11298
- ldr r3, [r5, #44]
11644
+ ldr r8, .L1765+12
11645
+.L1750:
11646
+ ldr r3, [r5, #48]
1129911647 ldrh r3, [r3, #10]
1130011648 cmp r3, r4
11301
- bls .L1784
11649
+ bhi .L1751
11650
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
11651
+.L1751:
1130211652 add r3, r9, r4, lsl #1
1130311653 ldrh r3, [r3, #1220]
1130411654 cmp r3, r10
11305
- bne .L1784
11306
- movs r1, #255
11655
+ bne .L1745
1130711656 mov r2, #32768
11308
- ldr r0, [r6, #1212]
11657
+ movs r1, #255
11658
+ ldr r0, [r8, #1220]
1130911659 bl ftl_memset
11310
- ldr r2, [r6, #1212]
11311
- add r1, r4, r8
11660
+ ldr r3, [r8, #1220]
11661
+ adds r1, r4, r7
11662
+ mov r0, r6
1131211663 adds r4, r4, #1
11313
- mov r0, r7
11314
- mov r3, r2
1131511664 uxth r4, r4
11665
+ mov r2, r3
1131611666 bl FlashProgPage
11317
- b .L1788
11318
-.L1784:
11667
+ b .L1750
11668
+.L1747:
11669
+ cmp r2, #50
11670
+ bne .L1752
11671
+ b .L1748
11672
+.L1745:
1131911673 pop {r4, r5, r6, r7, r8, r9, r10, pc}
11320
-.L1806:
11674
+.L1766:
1132111675 .align 2
11322
-.L1805:
11676
+.L1765:
1132311677 .word .LANCHOR0
11324
- .word .LANCHOR4
11678
+ .word 1073758215
1132511679 .word .LANCHOR2
11680
+ .word .LANCHOR4
1132611681 .fnend
1132711682 .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData
1132811683 .align 1
1132911684 .global FlashReadSlc2KPages
11685
+ .syntax unified
1133011686 .thumb
1133111687 .thumb_func
11688
+ .fpu softvfp
1133211689 .type FlashReadSlc2KPages, %function
1133311690 FlashReadSlc2KPages:
1133411691 .fnstart
11335
- @ args = 0, pretend = 0, frame = 24
11692
+ @ args = 0, pretend = 0, frame = 16
1133611693 @ frame_needed = 0, uses_anonymous_args = 0
11337
- ldr r3, .L1857
11694
+ ldr r3, .L1824
1133811695 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1133911696 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
11340
- movs r7, #0
11341
- ldrb r3, [r3, #481] @ zero_extendqisi2
11342
- .pad #36
11343
- sub sp, sp, #36
1134411697 mov r4, r0
11345
- str r1, [sp, #16]
11346
- str r2, [sp, #20]
11347
- str r3, [sp, #12]
11348
-.L1808:
11349
- ldr r3, [sp, #16]
11350
- cmp r7, r3
11351
- beq .L1856
11352
- ldr r3, [sp, #16]
11353
- add r2, sp, #28
11698
+ ldr r7, .L1824+4
11699
+ mov r8, #0
11700
+ .pad #28
11701
+ sub sp, sp, #28
11702
+ ldrb fp, [r3, #477] @ zero_extendqisi2
11703
+ str r1, [sp, #8]
11704
+ str r2, [sp, #12]
11705
+.L1768:
11706
+ ldr r3, [sp, #8]
11707
+ cmp r8, r3
11708
+ bne .L1792
11709
+ movs r0, #0
11710
+ add sp, sp, #28
11711
+ @ sp needed
11712
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11713
+.L1792:
11714
+ ldr r3, [sp, #8]
11715
+ add r2, sp, #20
11716
+ ldr r1, [sp, #12]
1135411717 mov r0, r4
11355
- ldr r1, [sp, #20]
11356
- subs r3, r3, r7
11357
- ldr r8, .L1857+20
11718
+ sub r3, r3, r8
1135811719 uxtb r3, r3
1135911720 str r3, [sp]
11360
- add r3, sp, #24
11361
- mov fp, r8
11721
+ add r3, sp, #16
1136211722 bl LogAddr2PhyAddr
11363
- ldrb r2, [r8, #2230] @ zero_extendqisi2
11364
- ldr r3, [sp, #24]
11365
- cmp r3, r2
11366
- bcc .L1809
11723
+ ldrb r2, [r7, #2234] @ zero_extendqisi2
11724
+ ldr r3, [sp, #16]
11725
+ cmp r2, r3
11726
+ bhi .L1769
1136711727 mov r3, #-1
1136811728 str r3, [r4]
11369
- b .L1810
11370
-.L1809:
11371
- add r3, r3, r8
11729
+.L1770:
11730
+ add r8, r8, #1
11731
+ adds r4, r4, #36
11732
+ b .L1768
11733
+.L1769:
11734
+ add r3, r3, r7
1137211735 mov r9, #0
11373
- ldrb r6, [r3, #2232] @ zero_extendqisi2
11374
- mov r0, r6
11736
+ ldrb r5, [r3, #2236] @ zero_extendqisi2
11737
+ mov r0, r5
1137511738 bl NandcWaitFlashReady
11376
- mov r0, r6
11739
+ mov r0, r5
1137711740 bl NandcFlashCs
11378
-.L1811:
11379
- ldr r1, [sp, #28]
11380
- mov r0, r6
11741
+.L1771:
11742
+ ldr r1, [sp, #20]
11743
+ mov r0, r5
1138111744 bl FlashReadCmd
11382
- mov r0, r6
11745
+ mov r0, r5
1138311746 bl NandcWaitFlashReady
1138411747 ldr r3, [r4, #12]
11385
- mov r0, r6
11748
+ mov r2, fp
1138611749 movs r1, #0
11750
+ mov r0, r5
1138711751 str r3, [sp]
11388
- ldr r2, [sp, #12]
1138911752 ldr r3, [r4, #8]
1139011753 bl NandcXferData
11391
- ldr r3, .L1857+4
11392
- ldrb r3, [r3, #1228] @ zero_extendqisi2
11393
- mov r5, r0
11394
- cbnz r3, .L1812
11395
-.L1815:
11396
- adds r3, r5, #1
11397
- beq .L1813
11398
- b .L1814
11399
-.L1812:
11400
- mov r0, r6
11401
- bl flash_read_ecc
11402
- cmp r0, #5
11403
- bls .L1815
11404
- mov r5, #256
11405
- b .L1814
11406
-.L1813:
11407
- cmp r9, #10
11408
- beq .L1834
11409
- add r9, r9, #1
11410
- b .L1811
11411
-.L1814:
11754
+ ldr r3, .L1824+8
11755
+ mov r6, r0
11756
+ ldrb r3, [r3, #1236] @ zero_extendqisi2
11757
+ cmp r3, #0
11758
+ bne .L1772
11759
+.L1775:
11760
+ adds r0, r6, #1
11761
+ beq .L1773
11762
+.L1774:
1141211763 cmp r9, #0
11413
- it ne
11414
- movne r5, #256
11415
- b .L1816
11416
-.L1834:
11417
- mov r5, #256
11418
-.L1816:
11764
+ beq .L1777
11765
+.L1776:
11766
+ mov r6, #256
11767
+.L1777:
1141911768 mov r9, #0
11420
-.L1817:
11421
- ldr r3, [sp, #28]
11422
- mov r0, r6
11423
- ldr r1, [fp, #4]
11769
+.L1778:
11770
+ ldr r3, [r7, #40]
11771
+ mov r0, r5
11772
+ ldr r1, [sp, #20]
1142411773 add r1, r1, r3
1142511774 bl FlashReadCmd
11426
- mov r0, r6
11775
+ mov r0, r5
1142711776 bl NandcWaitFlashReady
1142811777 ldr r3, [r4, #8]
11429
- cbz r3, .L1818
11778
+ cbz r3, .L1779
1143011779 add r3, r3, #2048
11431
-.L1818:
11780
+.L1779:
1143211781 ldr r2, [r4, #12]
11433
- cbz r2, .L1819
11782
+ cbz r2, .L1780
1143411783 adds r2, r2, #8
11435
-.L1819:
11784
+.L1780:
1143611785 str r2, [sp]
11437
- mov r0, r6
11438
- ldr r2, [sp, #12]
1143911786 movs r1, #0
11787
+ mov r2, fp
11788
+ mov r0, r5
1144011789 bl NandcXferData
11441
- ldr r3, .L1857+4
11442
- ldrb r2, [r3, #1228] @ zero_extendqisi2
11790
+ ldr r3, .L1824+8
1144311791 mov r10, r0
11444
- cbnz r2, .L1820
11445
-.L1823:
11792
+ ldrb r2, [r3, #1236] @ zero_extendqisi2
11793
+ cmp r2, #0
11794
+ bne .L1781
11795
+.L1784:
1144611796 cmp r10, #-1
11447
- beq .L1821
11448
- b .L1822
11449
-.L1820:
11450
- mov r0, r6
11451
- bl flash_read_ecc
11452
- cmp r0, #5
11453
- bls .L1823
11454
- mov r10, #256
11455
- b .L1822
11456
-.L1821:
11457
- cmp r9, #10
11458
- beq .L1838
11459
- add r9, r9, #1
11460
- b .L1817
11461
-.L1822:
11797
+ beq .L1782
11798
+.L1783:
1146211799 cmp r9, #0
11463
- it ne
11464
- movne r10, #256
11465
- b .L1824
11466
-.L1838:
11800
+ beq .L1786
11801
+.L1785:
1146711802 mov r10, #256
11468
-.L1824:
11469
- mov r0, r6
11803
+.L1786:
11804
+ mov r0, r5
1147011805 bl NandcFlashDeCs
11471
- ldrb r3, [r8, #2312] @ zero_extendqisi2
11472
- cmp r5, r10
11473
- add r3, r3, r3, lsl #1
11806
+ ldrb r3, [r7, #2316] @ zero_extendqisi2
11807
+ cmp r6, r10
1147411808 it cc
11475
- movcc r5, r10
11476
- cmp r5, r3, asr #2
11477
- bls .L1825
11478
- adds r0, r5, #1
11479
- it ne
11480
- movne r5, #256
11481
- str r5, [r4]
11482
- b .L1827
11483
-.L1825:
11809
+ movcc r6, r10
11810
+ add r3, r3, r3, lsl #1
11811
+ cmp r6, r3, asr #2
11812
+ bhi .L1787
1148411813 movs r3, #0
11814
+.L1823:
1148511815 str r3, [r4]
11486
-.L1827:
1148711816 ldr r3, [r4, #12]
11488
- cbz r3, .L1828
11817
+ cbz r3, .L1788
1148911818 ldr r2, [r3, #12]
1149011819 adds r2, r2, #1
11491
- bne .L1828
11820
+ bne .L1788
1149211821 ldr r2, [r3, #8]
1149311822 adds r1, r2, #1
11494
- bne .L1828
11823
+ bne .L1788
1149511824 ldr r3, [r3]
1149611825 adds r3, r3, #1
1149711826 it ne
1149811827 strne r2, [r4]
11499
-.L1828:
11828
+.L1788:
1150011829 ldr r3, [r4]
1150111830 adds r2, r3, #1
11502
- bne .L1810
11831
+ bne .L1770
1150311832 ldr r1, [r4, #4]
11504
- ldr r0, .L1857+8
11505
- ldrb r2, [r8, #2312] @ zero_extendqisi2
11833
+ ldrb r2, [r7, #2316] @ zero_extendqisi2
11834
+ ldr r0, .L1824+12
1150611835 bl printk
1150711836 ldr r1, [r4, #8]
11508
- cbz r1, .L1830
11509
- ldr r0, .L1857+12
11510
- movs r2, #4
11837
+ cbz r1, .L1790
1151111838 movs r3, #8
11512
- bl rknand_print_hex
11513
-.L1830:
11514
- ldr r1, [r4, #12]
11515
- cbz r1, .L1810
1151611839 movs r2, #4
11517
- ldr r0, .L1857+16
11518
- mov r3, r2
11840
+ ldr r0, .L1824+16
1151911841 bl rknand_print_hex
11520
-.L1810:
11521
- adds r7, r7, #1
11522
- adds r4, r4, #36
11523
- b .L1808
11524
-.L1856:
11525
- movs r0, #0
11526
- add sp, sp, #36
11527
- @ sp needed
11528
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11529
-.L1858:
11842
+.L1790:
11843
+ ldr r1, [r4, #12]
11844
+ cmp r1, #0
11845
+ beq .L1770
11846
+ movs r3, #4
11847
+ ldr r0, .L1824+20
11848
+ mov r2, r3
11849
+ bl rknand_print_hex
11850
+ b .L1770
11851
+.L1772:
11852
+ mov r0, r5
11853
+ bl flash_read_ecc
11854
+ cmp r0, #5
11855
+ bls .L1775
11856
+ mov r6, #256
11857
+ b .L1774
11858
+.L1773:
11859
+ cmp r9, #10
11860
+ beq .L1776
11861
+ add r9, r9, #1
11862
+ b .L1771
11863
+.L1781:
11864
+ mov r0, r5
11865
+ bl flash_read_ecc
11866
+ cmp r0, #5
11867
+ bls .L1784
11868
+ mov r10, #256
11869
+ b .L1783
11870
+.L1782:
11871
+ cmp r9, #10
11872
+ beq .L1785
11873
+ add r9, r9, #1
11874
+ b .L1778
11875
+.L1787:
11876
+ mov r3, #256
11877
+ b .L1823
11878
+.L1825:
1153011879 .align 2
11531
-.L1857:
11880
+.L1824:
1153211881 .word .LANCHOR1
11882
+ .word .LANCHOR0
1153311883 .word .LANCHOR4
1153411884 .word .LC99
1153511885 .word .LC100
1153611886 .word .LC101
11537
- .word .LANCHOR0
1153811887 .fnend
1153911888 .size FlashReadSlc2KPages, .-FlashReadSlc2KPages
1154011889 .align 1
1154111890 .global FlashReadPages
11891
+ .syntax unified
1154211892 .thumb
1154311893 .thumb_func
11894
+ .fpu softvfp
1154411895 .type FlashReadPages, %function
1154511896 FlashReadPages:
1154611897 .fnstart
1154711898 @ args = 0, pretend = 0, frame = 40
1154811899 @ frame_needed = 0, uses_anonymous_args = 0
11549
- ldr r3, .L1958
1155011900 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1155111901 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1155211902 .pad #52
1155311903 sub sp, sp, #52
11554
- ldrb r3, [r3, #481] @ zero_extendqisi2
11555
- mov r10, r0
11556
- ldr r5, .L1958+4
11557
- str r1, [sp, #28]
11558
- str r3, [sp, #24]
11559
- ldrb r3, [r5, #8] @ zero_extendqisi2
11560
- str r2, [sp, #16]
11561
- str r3, [sp, #32]
11562
- ldrb r3, [r5] @ zero_extendqisi2
11563
- cbz r3, .L1902
11564
- bl FlashReadSlc2KPages
11565
- b .L1953
11566
-.L1902:
11904
+ ldr r4, .L1917
11905
+ mov r9, r0
11906
+ str r1, [sp, #32]
11907
+ ldrb r3, [r4, #36] @ zero_extendqisi2
11908
+ str r2, [sp, #20]
11909
+ cbnz r3, .L1827
11910
+ ldr r2, .L1917+4
1156711911 mov r8, r3
11912
+ ldr r10, .L1917+12
1156811913 str r3, [sp, #12]
11569
-.L1860:
11914
+ ldrb r2, [r2, #477] @ zero_extendqisi2
11915
+ str r2, [sp, #28]
11916
+ ldrb r2, [r4, #44] @ zero_extendqisi2
11917
+ str r2, [sp, #36]
11918
+.L1828:
1157011919 ldr r3, [sp, #12]
11571
- ldr r2, [sp, #28]
11920
+ ldr r2, [sp, #32]
1157211921 cmp r3, r2
11573
- bcs .L1955
11574
- ldr r3, [sp, #12]
11575
- mov r9, #36
11922
+ bcc .L1866
11923
+ movs r0, #0
11924
+ b .L1826
11925
+.L1827:
11926
+ bl FlashReadSlc2KPages
11927
+.L1826:
11928
+ add sp, sp, #52
11929
+ @ sp needed
11930
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11931
+.L1866:
1157611932 ldr r2, [sp, #12]
11577
- ldr r1, [sp, #16]
11578
- mul r9, r9, r3
11579
- ldr r3, [sp, #28]
11933
+ movs r3, #36
11934
+ ldr r1, [sp, #20]
11935
+ muls r3, r2, r3
11936
+ add r7, r9, r3
11937
+ str r3, [sp, #16]
11938
+ ldr r3, [r7, #4]
11939
+ mov r0, r7
11940
+ str r3, [sp, #24]
11941
+ ldr r3, [sp, #32]
1158011942 subs r3, r3, r2
1158111943 add r2, sp, #44
11582
- add r7, r10, r9
1158311944 uxtb r3, r3
11584
- ldr fp, [r7, #4]
11585
- mov r0, r7
1158611945 str r3, [sp]
1158711946 add r3, sp, #40
1158811947 bl LogAddr2PhyAddr
11589
- ldrb r2, [r5, #2230] @ zero_extendqisi2
11590
- ldr r3, [sp, #40]
11948
+ ldrb r2, [r4, #2234] @ zero_extendqisi2
1159111949 mov r6, r0
11592
- cmp r3, r2
11593
- bcc .L1862
11950
+ ldr r3, [sp, #40]
11951
+ cmp r2, r3
11952
+ bhi .L1830
11953
+ ldr r2, [sp, #16]
1159411954 mov r3, #-1
11595
- str r3, [r10, r9]
11596
- b .L1863
11597
-.L1862:
11598
- add r3, r3, r5
11599
- ldrb r4, [r3, #2232] @ zero_extendqisi2
11600
- ldr r3, .L1958+8
11601
- mov r0, r4
11602
- ldrb r3, [r3, #1229] @ zero_extendqisi2
11955
+ str r3, [r9, r2]
11956
+.L1831:
11957
+ ldr r3, [sp, #12]
11958
+ adds r3, r3, #1
11959
+ str r3, [sp, #12]
11960
+ b .L1828
11961
+.L1830:
11962
+ add r3, r3, r4
11963
+ ldrb r5, [r3, #2236] @ zero_extendqisi2
11964
+ ldrb r3, [r10, #1237] @ zero_extendqisi2
11965
+ mov r0, r5
1160311966 cmp r3, #0
1160411967 it eq
1160511968 moveq r6, #0
1160611969 bl NandcWaitFlashReady
11607
- ldr r3, .L1958+4
11608
- ldr r3, [r3, #44]
11970
+ ldr r3, [r4, #48]
1160911971 ldrb r2, [r3, #19] @ zero_extendqisi2
1161011972 subs r3, r2, #1
1161111973 cmp r3, #7
11612
- bhi .L1865
11974
+ bhi .L1833
1161311975 subs r2, r2, #7
11614
- adds r1, r5, r4
11976
+ adds r1, r4, r5
1161511977 cmp r2, #1
11616
- ldr r2, .L1958+4
11617
- ldrb r3, [r1, #1222] @ zero_extendqisi2
11618
- add r2, r2, r4
11978
+ add r2, r4, r5
11979
+ ldrb r3, [r1, #1228] @ zero_extendqisi2
11980
+ ldrb r2, [r2, #2068] @ zero_extendqisi2
1161911981 it ls
11620
- ldrbls r3, [r1, #1230] @ zero_extendqisi2
11621
- ldrb r2, [r2, #2064] @ zero_extendqisi2
11982
+ ldrbls r3, [r1, #1236] @ zero_extendqisi2
1162211983 cmp r2, r3
11623
- beq .L1865
11624
- mov r0, r4
11625
- ldrb r1, [r5, #1211] @ zero_extendqisi2
11626
- ldr r2, .L1958+12
11984
+ beq .L1833
11985
+ ldr r2, .L1917+8
11986
+ mov r0, r5
11987
+ ldrb r1, [r4, #1217] @ zero_extendqisi2
1162711988 bl HynixSetRRPara
11628
-.L1865:
11629
- mov r0, r4
11630
- and r3, fp, #-2147483648
11631
- str r3, [sp, #20]
11989
+.L1833:
11990
+ mov r0, r5
1163211991 bl NandcFlashCs
11633
- ldr r3, [sp, #16]
11634
- cmp r3, #1
11635
- beq .L1867
1163611992 ldr r3, [sp, #20]
11637
- cbz r3, .L1868
11638
-.L1867:
11639
- ldr r3, .L1958+4
11640
- ldrb r3, [r3, #144] @ zero_extendqisi2
11641
- cbz r3, .L1868
11642
- mov r0, r4
11993
+ cmp r3, #1
11994
+ beq .L1835
11995
+ ldr r3, [sp, #24]
11996
+ cmp r3, #0
11997
+ bge .L1836
11998
+.L1835:
11999
+ ldrb r3, [r4, #152] @ zero_extendqisi2
12000
+ cbz r3, .L1836
12001
+ mov r0, r5
1164312002 bl flash_enter_slc_mode
11644
-.L1870:
11645
- mov fp, #0
11646
- b .L1869
11647
-.L1868:
11648
- mov r0, r4
11649
- bl flash_exit_slc_mode
11650
- b .L1870
11651
-.L1956:
11652
- cmp r4, #255
11653
- beq .L1903
11654
-.L1871:
11655
- cbz r6, .L1873
11656
- ldr r2, [r5, #4]
11657
- mov r0, r4
12003
+.L1843:
12004
+ ldr r1, [sp, #44]
12005
+ adds r0, r1, #1
12006
+ bne .L1838
12007
+ cmp r5, #255
12008
+ beq .L1868
12009
+.L1838:
12010
+ cbz r6, .L1840
12011
+ ldr r2, [r4, #40]
12012
+ mov r0, r5
1165812013 add r2, r2, r1
1165912014 bl FlashReadDpCmd
11660
-.L1874:
11661
- mov r0, r4
12015
+.L1841:
12016
+ mov r0, r5
1166212017 bl NandcWaitFlashReady
11663
- cbz r6, .L1872
11664
- mov r0, r4
12018
+ cbz r6, .L1839
1166512019 ldr r1, [sp, #44]
12020
+ mov r0, r5
1166612021 bl FlashReadDpDataOutCmd
11667
-.L1872:
12022
+.L1839:
1166812023 ldr r3, [r7, #12]
11669
- mov r0, r4
1167012024 movs r1, #0
11671
- ldr r2, [sp, #24]
12025
+ ldr r2, [sp, #28]
12026
+ mov r0, r5
1167212027 str r3, [sp]
1167312028 ldr r3, [r7, #8]
1167412029 bl NandcXferData
11675
- ldrb r3, [r5, #8] @ zero_extendqisi2
11676
- mov ip, r0
11677
- cbz r3, .L1905
12030
+ ldrb r3, [r4, #44] @ zero_extendqisi2
12031
+ mov fp, r0
12032
+ cbz r3, .L1842
1167812033 cmp r0, #-1
11679
- bne .L1905
12034
+ bne .L1842
12035
+ mov r3, #0
1168012036 movs r6, #0
11681
- strb fp, [r5, #8]
11682
-.L1869:
11683
- ldr r1, [sp, #44]
11684
- adds r0, r1, #1
11685
- bne .L1871
11686
- b .L1956
11687
-.L1873:
11688
- mov r0, r4
12037
+ strb r3, [r4, #44]
12038
+ b .L1843
12039
+.L1836:
12040
+ mov r0, r5
12041
+ bl flash_exit_slc_mode
12042
+ b .L1843
12043
+.L1840:
12044
+ mov r0, r5
1168912045 bl FlashReadCmd
11690
- b .L1874
11691
-.L1903:
12046
+ b .L1841
12047
+.L1868:
1169212048 movs r6, #0
11693
- b .L1872
11694
-.L1905:
11695
- mov fp, ip
11696
- cbz r6, .L1876
11697
- ldr r3, .L1958+4
11698
- mov r0, r4
11699
- str ip, [sp, #36]
11700
- ldr r1, [r3, #4]
11701
- ldr r3, [sp, #44]
12049
+ b .L1839
12050
+.L1842:
12051
+ cbz r6, .L1844
12052
+ ldr r3, [r4, #40]
12053
+ mov r0, r5
12054
+ ldr r1, [sp, #44]
1170212055 add r1, r1, r3
1170312056 bl FlashReadDpDataOutCmd
11704
- add r3, r9, #36
11705
- add r3, r3, r10
11706
- mov r0, r4
12057
+ ldr r3, [sp, #16]
1170712058 movs r1, #0
12059
+ mov r0, r5
12060
+ adds r3, r3, #36
12061
+ add r3, r3, r9
1170812062 ldr r2, [r3, #12]
1170912063 str r2, [sp]
11710
- ldr r2, [sp, #24]
12064
+ ldr r2, [sp, #28]
1171112065 ldr r3, [r3, #8]
1171212066 bl NandcXferData
1171312067 cmp r0, #-1
11714
- ldr ip, [sp, #36]
12068
+ mov r8, r0
1171512069 it eq
1171612070 moveq r6, #0
11717
- mov r8, r0
11718
-.L1876:
11719
- mov r0, r4
11720
- str ip, [sp, #36]
12071
+.L1844:
12072
+ mov r0, r5
1172112073 bl NandcFlashDeCs
11722
- ldr ip, [sp, #36]
11723
- ldrb r3, [sp, #32] @ zero_extendqisi2
11724
- cmp ip, #-1
11725
- strb r3, [r5, #8]
11726
- bne .L1883
11727
- ldrb r3, [r5, #2252] @ zero_extendqisi2
11728
- cbnz r3, .L1878
11729
-.L1882:
11730
- ldr r3, .L1958+8
11731
- ldr r6, [r3, #1192]
11732
- cbnz r6, .L1879
11733
- b .L1957
11734
-.L1878:
11735
- ldr r3, [r5, #80]
11736
- mov r0, r4
12074
+ ldrb r3, [sp, #36] @ zero_extendqisi2
12075
+ cmp fp, #-1
12076
+ strb r3, [r4, #44]
12077
+ bne .L1845
12078
+ ldrb r3, [r4, #2256] @ zero_extendqisi2
12079
+ cbnz r3, .L1846
12080
+.L1850:
12081
+ ldr r6, [r10, #1200]
12082
+ cmp r6, #0
12083
+ bne .L1847
12084
+ ldr r3, [r7, #12]
12085
+ mov r0, r5
12086
+ ldr r2, [r7, #8]
12087
+ ldr r1, [sp, #44]
12088
+ bl FlashReadRawPage
12089
+ b .L1916
12090
+.L1846:
12091
+ ldr r3, [r4, #88]
12092
+ mov r0, r5
1173712093 ldr r1, [sp, #44]
1173812094 ldr r6, [r3, #304]
1173912095 movs r3, #1
1174012096 str r3, [sp]
11741
- ldr r2, [r7, #8]
1174212097 ldr r3, [r7, #12]
12098
+ ldr r2, [r7, #8]
1174312099 bl FlashDdrTunningRead
1174412100 cmp r0, #-1
1174512101 mov fp, r0
11746
- beq .L1881
11747
- ldrb r3, [r5, #2312] @ zero_extendqisi2
12102
+ beq .L1849
12103
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
1174812104 cmp r0, r3, lsr #1
11749
- bls .L1907
11750
-.L1881:
12105
+ bls .L1869
12106
+.L1849:
1175112107 ubfx r0, r6, #8, #8
1175212108 bl NandcSetDdrPara
1175312109 cmp fp, #-1
11754
- beq .L1882
11755
- b .L1907
11756
-.L1879:
11757
- mov r0, r4
11758
- ldr r1, [sp, #44]
11759
- ldr r2, [r7, #8]
12110
+ beq .L1850
12111
+.L1869:
12112
+ movs r6, #0
12113
+.L1845:
12114
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
12115
+ add r3, r3, r3, lsl #1
12116
+ cmp fp, r3, asr #2
12117
+ bls .L1858
12118
+ ldr r3, [r10, #1200]
12119
+ cmp r3, #0
12120
+ bne .L1858
12121
+ mov fp, #256
12122
+ b .L1853
12123
+.L1918:
12124
+ .align 2
12125
+.L1917:
12126
+ .word .LANCHOR0
12127
+ .word .LANCHOR1
12128
+ .word .LANCHOR0+1220
12129
+ .word .LANCHOR4
12130
+.L1847:
1176012131 ldr r3, [r7, #12]
12132
+ mov r0, r5
12133
+ ldr r2, [r7, #8]
12134
+ ldr r1, [sp, #44]
1176112135 blx r6
1176212136 cmp r0, #-1
1176312137 mov fp, r0
11764
- bne .L1884
11765
- ldr r3, [r5, #44]
12138
+ bne .L1851
12139
+ ldr r3, [r4, #48]
1176612140 ldrb r3, [r3, #19] @ zero_extendqisi2
1176712141 subs r3, r3, #1
1176812142 cmp r3, #7
11769
- bhi .L1885
11770
- mov r0, r4
11771
- ldrb r1, [r5, #1211] @ zero_extendqisi2
11772
- ldr r2, .L1958+12
12143
+ bhi .L1852
1177312144 movs r3, #0
12145
+ ldr r2, .L1919
12146
+ ldrb r1, [r4, #1217] @ zero_extendqisi2
12147
+ mov r0, r5
1177412148 bl HynixSetRRPara
11775
-.L1885:
11776
- ldr r1, [sp, #44]
11777
- mov r0, r4
11778
- ldr r2, [r7, #8]
12149
+.L1852:
1177912150 ldr r3, [r7, #12]
12151
+ mov r0, r5
12152
+ ldr r2, [r7, #8]
12153
+ ldr r1, [sp, #44]
1178012154 bl FlashReadRawPage
11781
- ldr r1, [r7, #4]
11782
- ldrb r2, [r5, #2312] @ zero_extendqisi2
12155
+ ldrb r2, [r4, #2316] @ zero_extendqisi2
1178312156 mov fp, r0
11784
- ldr r0, .L1958+16
11785
- mov r3, fp
12157
+ mov r3, r0
12158
+ ldr r1, [r7, #4]
12159
+ ldr r0, .L1919+4
1178612160 bl printk
1178712161 cmp fp, #-1
11788
- bne .L1884
11789
- ldrb r6, [r5, #144] @ zero_extendqisi2
11790
- cbz r6, .L1886
11791
- ldr r3, [sp, #16]
11792
- mov r0, r4
11793
- cmp r3, #1
11794
- beq .L1887
12162
+ bne .L1851
12163
+ ldrb r6, [r4, #152] @ zero_extendqisi2
12164
+ cbz r6, .L1853
1179512165 ldr r3, [sp, #20]
11796
- cbz r3, .L1888
11797
-.L1887:
12166
+ mov r0, r5
12167
+ cmp r3, #1
12168
+ beq .L1854
12169
+ ldr r3, [sp, #24]
12170
+ cmp r3, #0
12171
+ bge .L1855
12172
+.L1854:
1179812173 bl flash_enter_slc_mode
11799
- b .L1889
11800
-.L1888:
11801
- bl flash_exit_slc_mode
11802
-.L1889:
11803
- ldr r3, .L1958+8
11804
- mov r0, r4
11805
- ldr r1, [sp, #44]
11806
- ldr r2, [r7, #8]
11807
- ldr r6, [r3, #1192]
12174
+.L1856:
12175
+ ldr r6, [r10, #1200]
12176
+ mov r0, r5
1180812177 ldr r3, [r7, #12]
12178
+ ldr r2, [r7, #8]
12179
+ ldr r1, [sp, #44]
1180912180 blx r6
11810
- movs r6, #0
12181
+.L1916:
12182
+ cmp r0, #-1
1181112183 mov fp, r0
11812
- b .L1890
11813
-.L1957:
11814
- mov r0, r4
11815
- ldr r1, [sp, #44]
11816
- ldr r2, [r7, #8]
11817
- ldr r3, [r7, #12]
11818
- bl FlashReadRawPage
11819
- mov fp, r0
11820
- b .L1890
11821
-.L1907:
11822
- movs r6, #0
11823
-.L1883:
11824
- ldrb r3, [r5, #2312] @ zero_extendqisi2
11825
- add r3, r3, r3, lsl #1
11826
- cmp fp, r3, asr #2
11827
- bls .L1892
11828
- ldr r3, .L1958+8
11829
- ldr r3, [r3, #1192]
11830
- cbz r3, .L1909
11831
-.L1890:
11832
- cmp fp, #-1
11833
- beq .L1886
11834
- b .L1892
11835
-.L1909:
11836
- mov fp, #256
11837
-.L1886:
11838
- str fp, [r10, r9]
11839
- b .L1893
11840
-.L1959:
11841
- .align 2
11842
-.L1958:
11843
- .word .LANCHOR1
11844
- .word .LANCHOR0
11845
- .word .LANCHOR4
11846
- .word .LANCHOR0+1214
11847
- .word .LC102
11848
-.L1884:
11849
- movs r6, #0
11850
-.L1892:
11851
- cmp fp, #256
11852
- beq .L1886
11853
- movs r3, #0
11854
- str r3, [r10, r9]
11855
-.L1893:
11856
- ldr r3, [r10, r9]
12184
+ mov r6, #0
12185
+ bne .L1858
12186
+.L1853:
12187
+ ldr r3, [sp, #16]
12188
+ str fp, [r9, r3]
12189
+.L1859:
12190
+ ldr r3, [sp, #16]
12191
+ ldr r3, [r9, r3]
1185712192 adds r2, r3, #1
11858
- bne .L1895
12193
+ bne .L1861
1185912194 ldr r1, [r7, #4]
11860
- ldr r0, .L1960
11861
- ldrb r2, [r5, #2312] @ zero_extendqisi2
12195
+ ldrb r2, [r4, #2316] @ zero_extendqisi2
12196
+ ldr r0, .L1919+8
1186212197 bl printk
1186312198 ldr r1, [r7, #12]
11864
- cbz r1, .L1895
11865
- movs r2, #4
11866
- ldr r0, .L1960+4
11867
- mov r3, r2
12199
+ cbz r1, .L1861
12200
+ movs r3, #4
12201
+ ldr r0, .L1919+12
12202
+ mov r2, r3
1186812203 bl rknand_print_hex
11869
-.L1895:
11870
- cbz r6, .L1897
11871
- ldrb r3, [r5, #2312] @ zero_extendqisi2
12204
+.L1861:
12205
+ cbz r6, .L1863
12206
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
1187212207 add r3, r3, r3, lsl #1
1187312208 cmp r8, r3, asr #2
11874
- bls .L1898
11875
- ldr r3, .L1960+8
11876
- ldr r3, [r3, #1192]
12209
+ bls .L1864
12210
+ ldr r3, [r10, #1200]
1187712211 cmp r3, #0
1187812212 it eq
1187912213 moveq r8, #256
11880
-.L1898:
11881
- add r9, r9, #36
12214
+.L1864:
12215
+ ldr r3, [sp, #16]
1188212216 cmp r8, #-1
11883
- str r8, [r10, r9]
11884
- beq .L1897
12217
+ add r3, r3, #36
12218
+ str r8, [r9, r3]
12219
+ beq .L1863
1188512220 cmp r8, #256
1188612221 itt ne
11887
- movne r3, #0
11888
- strne r3, [r10, r9]
11889
-.L1897:
12222
+ movne r2, #0
12223
+ strne r2, [r9, r3]
12224
+.L1863:
1189012225 ldr r3, [sp, #12]
1189112226 add r3, r3, r6
1189212227 str r3, [sp, #12]
11893
- ldr r3, [sp, #16]
11894
- cmp r3, #1
11895
- beq .L1899
1189612228 ldr r3, [sp, #20]
11897
- cbz r3, .L1863
11898
-.L1899:
11899
- ldrb r3, [r5, #144] @ zero_extendqisi2
11900
- cbz r3, .L1863
11901
- mov r0, r4
12229
+ cmp r3, #1
12230
+ beq .L1865
12231
+ ldr r3, [sp, #24]
12232
+ cmp r3, #0
12233
+ bge .L1831
12234
+.L1865:
12235
+ ldrb r3, [r4, #152] @ zero_extendqisi2
12236
+ cmp r3, #0
12237
+ beq .L1831
12238
+ mov r0, r5
1190212239 bl flash_exit_slc_mode
11903
-.L1863:
11904
- ldr r3, [sp, #12]
11905
- adds r3, r3, #1
11906
- str r3, [sp, #12]
11907
- b .L1860
11908
-.L1955:
11909
- movs r0, #0
11910
-.L1953:
11911
- add sp, sp, #52
11912
- @ sp needed
11913
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11914
-.L1961:
12240
+ b .L1831
12241
+.L1855:
12242
+ bl flash_exit_slc_mode
12243
+ b .L1856
12244
+.L1851:
12245
+ movs r6, #0
12246
+.L1858:
12247
+ cmp fp, #256
12248
+ beq .L1853
12249
+ ldr r2, [sp, #16]
12250
+ movs r3, #0
12251
+ str r3, [r9, r2]
12252
+ b .L1859
12253
+.L1920:
1191512254 .align 2
11916
-.L1960:
12255
+.L1919:
12256
+ .word .LANCHOR0+1220
12257
+ .word .LC102
1191712258 .word .LC99
1191812259 .word .LC101
11919
- .word .LANCHOR4
1192012260 .fnend
1192112261 .size FlashReadPages, .-FlashReadPages
1192212262 .align 1
1192312263 .global FlashLoadFactorBbt
12264
+ .syntax unified
1192412265 .thumb
1192512266 .thumb_func
12267
+ .fpu softvfp
1192612268 .type FlashLoadFactorBbt, %function
1192712269 FlashLoadFactorBbt:
1192812270 .fnstart
11929
- @ args = 0, pretend = 0, frame = 48
12271
+ @ args = 0, pretend = 0, frame = 56
1193012272 @ frame_needed = 0, uses_anonymous_args = 0
1193112273 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1193212274 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
11933
- movs r1, #0
11934
- ldr r7, .L1974
11935
- .pad #52
11936
- sub sp, sp, #52
11937
- ldr r4, .L1974+4
1193812275 movs r2, #16
11939
- movs r5, #0
12276
+ ldr r7, .L1932
12277
+ .pad #60
12278
+ sub sp, sp, #60
12279
+ movs r1, #0
1194012280 mov fp, #-1
11941
- ldrh r3, [r7, #130]
11942
- add r0, r4, #1232
11943
- ldrh r6, [r7, #128]
12281
+ ldr r4, .L1932+4
12282
+ movs r5, #0
12283
+ ldrh r3, [r7, #136]
1194412284 mov r10, r5
12285
+ ldrh r6, [r7, #138]
1194512286 mov r8, r7
12287
+ addw r0, r4, #1238
1194612288 mov r9, r4
1194712289 smulbb r6, r6, r3
1194812290 bl ftl_memset
11949
- ldr r3, [r4, #1216]
12291
+ ldr r3, [r4, #1224]
1195012292 uxth r6, r6
11951
- str r5, [sp, #20]
11952
- str r3, [sp, #24]
11953
-.L1963:
11954
- ldrb r3, [r8, #2230] @ zero_extendqisi2
12293
+ str r5, [sp, #28]
12294
+ str r3, [sp, #32]
12295
+ add r3, r6, fp
12296
+ uxth r3, r3
12297
+ str r3, [sp, #8]
12298
+.L1922:
12299
+ ldrb r3, [r8, #2234] @ zero_extendqisi2
1195512300 uxtb r7, r5
1195612301 cmp r3, r7
11957
- bls .L1973
11958
- mul ip, r6, r7
11959
- subs r4, r6, #1
11960
- sub r3, r6, #12
11961
- uxth r4, r4
11962
-.L1964:
11963
- cmp r4, r3
11964
- ble .L1966
11965
- add r2, ip, r4
11966
- movs r1, #1
11967
- add r0, sp, #12
11968
- str r3, [sp, #4]
12302
+ bhi .L1928
12303
+ mov r0, fp
12304
+ add sp, sp, #60
12305
+ @ sp needed
12306
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12307
+.L1928:
12308
+ ldr r4, [sp, #8]
12309
+ mul r3, r7, r6
12310
+ sub r2, r6, #12
12311
+ str r2, [sp, #4]
12312
+.L1923:
12313
+ ldr r2, [sp, #4]
12314
+ cmp r4, r2
12315
+ ble .L1925
12316
+ adds r2, r4, r3
12317
+ add r0, sp, #20
1196912318 lsls r2, r2, #10
11970
- str r2, [sp, #16]
11971
- mov r2, r1
11972
- str ip, [sp]
12319
+ str r3, [sp, #12]
12320
+ str r2, [sp, #24]
12321
+ movs r2, #1
12322
+ mov r1, r2
1197312323 bl FlashReadPages
11974
- ldr r2, [sp, #12]
11975
- ldr ip, [sp]
12324
+ ldr r2, [sp, #20]
12325
+ ldr r3, [sp, #12]
1197612326 adds r2, r2, #1
11977
- ldr r3, [sp, #4]
11978
- beq .L1965
11979
- ldr r2, [r9, #1216]
12327
+ beq .L1924
12328
+ ldr r2, [r9, #1224]
1198012329 ldrh r1, [r2]
1198112330 movw r2, #61664
1198212331 cmp r1, r2
11983
- bne .L1965
11984
- mov r1, r7
11985
- ldr r0, .L1974+8
11986
- mov r2, r4
12332
+ bne .L1924
1198712333 add r10, r10, #1
11988
- bl printk
11989
- ldr r3, .L1974+4
12334
+ mov r1, r7
1199012335 uxth r10, r10
11991
- add r7, r3, r7, lsl #1
11992
- strh r4, [r7, #1232] @ movhi
11993
- b .L1966
11994
-.L1965:
11995
- subs r4, r4, #1
11996
- uxth r4, r4
11997
- b .L1964
11998
-.L1966:
11999
- ldrb r3, [r8, #2230] @ zero_extendqisi2
12336
+ add r7, r9, r7, lsl #1
12337
+ ldr r0, .L1932+8
12338
+ mov r2, r4
12339
+ bl printk
12340
+ strh r4, [r7, #1238] @ movhi
12341
+.L1925:
12342
+ ldrb r3, [r8, #2234] @ zero_extendqisi2
1200012343 adds r5, r5, #1
1200112344 cmp r3, r10
1200212345 it eq
1200312346 moveq fp, #0
12004
- b .L1963
12005
-.L1973:
12006
- mov r0, fp
12007
- add sp, sp, #52
12008
- @ sp needed
12009
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12010
-.L1975:
12347
+ b .L1922
12348
+.L1924:
12349
+ subs r4, r4, #1
12350
+ uxth r4, r4
12351
+ b .L1923
12352
+.L1933:
1201112353 .align 2
12012
-.L1974:
12354
+.L1932:
1201312355 .word .LANCHOR0
1201412356 .word .LANCHOR4
1201512357 .word .LC103
....@@ -12017,1320 +12359,1276 @@
1201712359 .size FlashLoadFactorBbt, .-FlashLoadFactorBbt
1201812360 .align 1
1201912361 .global FlashProgSlc2KPages
12362
+ .syntax unified
1202012363 .thumb
1202112364 .thumb_func
12365
+ .fpu softvfp
1202212366 .type FlashProgSlc2KPages, %function
1202312367 FlashProgSlc2KPages:
1202412368 .fnstart
12025
- @ args = 0, pretend = 0, frame = 56
12369
+ @ args = 0, pretend = 0, frame = 48
1202612370 @ frame_needed = 0, uses_anonymous_args = 0
12027
- ldr r3, .L2005
12371
+ ldr r3, .L1961
1202812372 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1202912373 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12030
- movs r6, #0
12031
- ldr r8, .L2005+24
12032
- .pad #68
12033
- sub sp, sp, #68
12034
- ldrb r3, [r3, #481] @ zero_extendqisi2
12035
- mov r7, r1
12374
+ mov r10, r1
12375
+ ldr r8, .L1961+20
12376
+ .pad #60
12377
+ sub sp, sp, #60
1203612378 mov r9, r2
1203712379 mov r4, r0
12038
- mov r10, r0
12039
- mov fp, r8
12040
- str r3, [sp, #12]
12041
-.L1977:
12042
- cmp r6, r7
12043
- beq .L2003
12044
- subs r3, r7, r6
12045
- add r2, sp, #20
12046
- mov r0, r10
12047
- mov r1, r9
12380
+ ldrb fp, [r3, #477] @ zero_extendqisi2
12381
+ mov r6, r0
12382
+ movs r7, #0
12383
+.L1935:
12384
+ cmp r7, r10
12385
+ bne .L1941
12386
+ ldr r8, .L1961+24
12387
+ mov r10, #0
12388
+ ldr fp, .L1961+28
12389
+.L1942:
12390
+ cmp r7, r10
12391
+ bne .L1949
12392
+ movs r0, #0
12393
+ add sp, sp, #60
12394
+ @ sp needed
12395
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12396
+.L1941:
12397
+ sub r3, r10, r7
12398
+ add r2, sp, #12
1204812399 uxtb r3, r3
12400
+ mov r1, r9
12401
+ mov r0, r6
1204912402 str r3, [sp]
12050
- add r3, sp, #24
12403
+ add r3, sp, #16
1205112404 bl LogAddr2PhyAddr
12052
- ldrb r2, [r8, #2230] @ zero_extendqisi2
12053
- ldr r3, [sp, #24]
12054
- cmp r3, r2
12055
- bcc .L1978
12405
+ ldrb r2, [r8, #2234] @ zero_extendqisi2
12406
+ ldr r3, [sp, #16]
12407
+ cmp r2, r3
12408
+ bhi .L1936
1205612409 mov r3, #-1
12057
- str r3, [r10]
12058
- b .L1979
12059
-.L1978:
12410
+ str r3, [r6]
12411
+.L1937:
12412
+ adds r7, r7, #1
12413
+ adds r6, r6, #36
12414
+ b .L1935
12415
+.L1936:
1206012416 add r3, r3, r8
12061
- ldrb r5, [r3, #2232] @ zero_extendqisi2
12417
+ ldrb r5, [r3, #2236] @ zero_extendqisi2
1206212418 mov r0, r5
1206312419 bl NandcWaitFlashReady
1206412420 mov r0, r5
1206512421 bl NandcFlashCs
1206612422 mov r0, r5
12067
- ldr r1, [sp, #20]
12423
+ ldr r1, [sp, #12]
1206812424 bl FlashProgFirstCmd
12069
- ldr r3, [r10, #12]
12425
+ ldr r3, [r6, #12]
12426
+ mov r2, fp
1207012427 movs r1, #1
1207112428 mov r0, r5
12072
- ldr r2, [sp, #12]
1207312429 str r3, [sp]
12074
- ldr r3, [r10, #8]
12430
+ ldr r3, [r6, #8]
1207512431 bl NandcXferData
1207612432 mov r0, r5
12077
- ldr r1, [sp, #20]
12433
+ ldr r1, [sp, #12]
1207812434 bl FlashProgSecondCmd
1207912435 mov r0, r5
1208012436 bl NandcWaitFlashReady
1208112437 mov r0, r5
12082
- ldr r1, [sp, #20]
12438
+ ldr r1, [sp, #12]
1208312439 bl FlashReadStatus
12084
- ldr r3, [sp, #20]
1208512440 sbfx r0, r0, #0, #1
12086
- str r0, [r10]
12441
+ ldr r1, [sp, #12]
12442
+ str r0, [r6]
1208712443 mov r0, r5
12088
- ldr r1, [r8, #4]
12444
+ ldr r3, [r8, #40]
1208912445 add r1, r1, r3
1209012446 bl FlashProgFirstCmd
12091
- ldr r3, [r10, #8]
12092
- cbz r3, .L1980
12447
+ ldr r3, [r6, #8]
12448
+ cbz r3, .L1938
1209312449 add r3, r3, #2048
12094
-.L1980:
12095
- ldr r2, [r10, #12]
12096
- cbz r2, .L1981
12450
+.L1938:
12451
+ ldr r2, [r6, #12]
12452
+ cbz r2, .L1939
1209712453 adds r2, r2, #8
12098
-.L1981:
12454
+.L1939:
1209912455 str r2, [sp]
1210012456 movs r1, #1
12101
- ldr r2, [sp, #12]
12457
+ mov r2, fp
1210212458 mov r0, r5
1210312459 bl NandcXferData
12104
- ldr r1, [fp, #4]
12460
+ ldr r3, [r8, #40]
1210512461 mov r0, r5
12106
- ldr r3, [sp, #20]
12462
+ ldr r1, [sp, #12]
1210712463 add r1, r1, r3
1210812464 bl FlashProgSecondCmd
1210912465 mov r0, r5
1211012466 bl NandcWaitFlashReady
1211112467 mov r0, r5
12112
- ldr r1, [sp, #20]
12468
+ ldr r1, [sp, #12]
1211312469 bl FlashReadStatus
1211412470 lsls r2, r0, #31
1211512471 mov r0, r5
1211612472 itt mi
1211712473 movmi r3, #-1
12118
- strmi r3, [r10]
12474
+ strmi r3, [r6]
1211912475 bl NandcFlashDeCs
12120
-.L1979:
12121
- adds r6, r6, #1
12122
- add r10, r10, #36
12123
- b .L1977
12124
-.L2003:
12125
- ldr r8, .L2005+28
12126
- mov r10, #0
12127
- mov fp, r8
12128
-.L1984:
12129
- cmp r10, r7
12130
- beq .L2004
12476
+ b .L1937
12477
+.L1949:
1213112478 ldr r3, [r4]
1213212479 adds r3, r3, #1
12133
- bne .L1985
12480
+ bne .L1943
1213412481 ldr r1, [r4, #4]
12135
- ldr r0, .L2005+4
12482
+ ldr r0, .L1961+4
1213612483 bl printk
12137
- b .L1986
12138
-.L1985:
12139
- rsb r3, r10, r7
12140
- mov r1, r9
12141
- add r2, sp, #20
12142
- mov r0, r4
12143
- uxtb r3, r3
12144
- str r3, [sp]
12145
- add r3, sp, #24
12146
- mov r6, r4
12147
- bl LogAddr2PhyAddr
12148
- ldr r2, [r8, #1220]
12149
- movs r3, #0
12150
- str r3, [r2]
12151
- ldr r2, [r8, #1224]
12152
- str r3, [r2]
12153
- ldmia r6!, {r0, r1, r2, r3}
12154
- add r5, sp, #28
12155
- stmia r5!, {r0, r1, r2, r3}
12156
- ldmia r6!, {r0, r1, r2, r3}
12157
- stmia r5!, {r0, r1, r2, r3}
12158
- add r0, sp, #28
12159
- ldr r3, [r6]
12160
- movs r1, #1
12161
- mov r2, r9
12162
- str r3, [r5]
12163
- ldr r3, [r8, #1220]
12164
- str r3, [sp, #36]
12165
- ldr r3, [r8, #1224]
12166
- str r3, [sp, #40]
12167
- bl FlashReadPages
12168
- ldr r5, [sp, #28]
12169
- adds r3, r5, #1
12170
- bne .L1987
12171
- ldr r0, .L2005+8
12172
- ldr r1, [r4, #4]
12173
- bl printk
12174
- str r5, [r4]
12175
-.L1987:
12176
- ldr r5, [sp, #28]
12177
- cmp r5, #256
12178
- bne .L1988
12179
- ldr r0, .L2005+12
12180
- ldr r1, [r4, #4]
12181
- bl printk
12182
- str r5, [r4]
12183
-.L1988:
12184
- ldr r3, [r4, #12]
12185
- cbz r3, .L1989
12186
- ldr r2, [r3]
12187
- ldr r3, [fp, #1224]
12188
- ldr r3, [r3]
12189
- cmp r2, r3
12190
- beq .L1989
12191
- ldr r0, .L2005+16
12192
- ldr r1, [r4, #4]
12193
- bl printk
12194
- mov r3, #-1
12195
- str r3, [r4]
12196
-.L1989:
12197
- ldr r3, [r4, #8]
12198
- cbz r3, .L1986
12199
- ldr r2, [r3]
12200
- ldr r3, [fp, #1220]
12201
- ldr r3, [r3]
12202
- cmp r2, r3
12203
- beq .L1986
12204
- ldr r0, .L2005+20
12205
- ldr r1, [r4, #4]
12206
- bl printk
12207
- mov r3, #-1
12208
- str r3, [r4]
12209
-.L1986:
12484
+.L1944:
1221012485 add r10, r10, #1
1221112486 adds r4, r4, #36
12212
- b .L1984
12213
-.L2004:
12214
- movs r0, #0
12215
- add sp, sp, #68
12216
- @ sp needed
12217
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12218
-.L2006:
12487
+ b .L1942
12488
+.L1943:
12489
+ sub r3, r7, r10
12490
+ add r2, sp, #12
12491
+ uxtb r3, r3
12492
+ mov r1, r9
12493
+ mov r0, r4
12494
+ str r3, [sp]
12495
+ add r3, sp, #16
12496
+ bl LogAddr2PhyAddr
12497
+ ldr r2, [r8, #1228]
12498
+ movs r3, #0
12499
+ mov r6, r4
12500
+ add r5, sp, #20
12501
+ str r3, [r2]
12502
+ ldr r2, [r8, #1232]
12503
+ str r3, [r2]
12504
+ ldmia r6!, {r0, r1, r2, r3}
12505
+ stmia r5!, {r0, r1, r2, r3}
12506
+ ldmia r6!, {r0, r1, r2, r3}
12507
+ stmia r5!, {r0, r1, r2, r3}
12508
+ mov r2, r9
12509
+ ldr r3, [r6]
12510
+ movs r1, #1
12511
+ add r0, sp, #20
12512
+ str r3, [r5]
12513
+ ldr r3, [r8, #1228]
12514
+ str r3, [sp, #28]
12515
+ ldr r3, [r8, #1232]
12516
+ str r3, [sp, #32]
12517
+ bl FlashReadPages
12518
+ ldr r5, [sp, #20]
12519
+ adds r3, r5, #1
12520
+ bne .L1945
12521
+ ldr r1, [r4, #4]
12522
+ ldr r0, .L1961+8
12523
+ bl printk
12524
+ str r5, [r4]
12525
+.L1945:
12526
+ ldr r5, [sp, #20]
12527
+ cmp r5, #256
12528
+ bne .L1946
12529
+ ldr r1, [r4, #4]
12530
+ ldr r0, .L1961+12
12531
+ bl printk
12532
+ str r5, [r4]
12533
+.L1946:
12534
+ ldr r3, [r4, #12]
12535
+ cbz r3, .L1947
12536
+ ldr r2, [r3]
12537
+ ldr r3, [r8, #1232]
12538
+ ldr r3, [r3]
12539
+ cmp r2, r3
12540
+ beq .L1947
12541
+ ldr r1, [r4, #4]
12542
+ ldr r0, .L1961+16
12543
+ bl printk
12544
+ mov r3, #-1
12545
+ str r3, [r4]
12546
+.L1947:
12547
+ ldr r3, [r4, #8]
12548
+ cmp r3, #0
12549
+ beq .L1944
12550
+ ldr r2, [r3]
12551
+ ldr r3, [r8, #1228]
12552
+ ldr r3, [r3]
12553
+ cmp r2, r3
12554
+ beq .L1944
12555
+ ldr r1, [r4, #4]
12556
+ mov r0, fp
12557
+ bl printk
12558
+ mov r3, #-1
12559
+ str r3, [r4]
12560
+ b .L1944
12561
+.L1962:
1221912562 .align 2
12220
-.L2005:
12563
+.L1961:
1222112564 .word .LANCHOR1
1222212565 .word .LC104
1222312566 .word .LC105
1222412567 .word .LC106
1222512568 .word .LC107
12226
- .word .LC108
1222712569 .word .LANCHOR0
1222812570 .word .LANCHOR4
12571
+ .word .LC108
1222912572 .fnend
1223012573 .size FlashProgSlc2KPages, .-FlashProgSlc2KPages
1223112574 .align 1
1223212575 .global FtlLoadFactoryBbt
12576
+ .syntax unified
1223312577 .thumb
1223412578 .thumb_func
12579
+ .fpu softvfp
1223512580 .type FtlLoadFactoryBbt, %function
1223612581 FtlLoadFactoryBbt:
1223712582 .fnstart
12238
- @ args = 0, pretend = 0, frame = 0
12583
+ @ args = 0, pretend = 0, frame = 8
1223912584 @ frame_needed = 0, uses_anonymous_args = 0
12240
- push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
12241
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
12585
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
12586
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12587
+ .pad #12
1224212588 movs r6, #0
12243
- ldr r3, .L2018
12244
- ldr r7, .L2018+4
12245
- ldr r5, .L2018+8
12589
+ ldr r3, .L1973
12590
+ ldr r7, .L1973+4
12591
+ ldr r5, .L1973+8
1224612592 ldr r2, [r3, #3316]
12247
- subw r8, r7, #2462
1224812593 ldr r9, [r3, #3340]
12594
+ subw r8, r7, #2466
1224912595 mov r10, r8
12250
- str r2, [r5, #1256]
12251
- str r9, [r5, #1260]
12252
-.L2008:
12253
- ldrh r3, [r8, #2342]
12596
+ add fp, r5, #1256
12597
+ str r2, [r5, #1264]
12598
+ str r9, [r5, #1268]
12599
+.L1964:
12600
+ ldrh r3, [r8, #2346]
1225412601 cmp r6, r3
12255
- bcs .L2017
12256
- ldrh r4, [r8, #2386]
12257
- movw fp, #61664
12602
+ bcc .L1969
12603
+ movs r0, #0
12604
+ add sp, sp, #12
12605
+ @ sp needed
12606
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12607
+.L1969:
12608
+ ldrh r4, [r8, #2388]
1225812609 movw r3, #65535
1225912610 strh r3, [r7, #2]! @ movhi
12611
+ movw r3, #61664
1226012612 subs r4, r4, #1
1226112613 uxth r4, r4
12262
-.L2009:
12263
- ldrh r3, [r10, #2386]
12264
- sub r2, r3, #16
12265
- cmp r4, r2
12266
- ble .L2011
12267
- mla r3, r3, r6, r4
12268
- movs r1, #1
12269
- ldr r0, .L2018+12
12270
- mov r2, r1
12271
- lsls r3, r3, #10
12272
- str r3, [r5, #1252]
12614
+.L1965:
12615
+ ldrh r2, [r10, #2388]
12616
+ sub r1, r2, #16
12617
+ cmp r4, r1
12618
+ ble .L1967
12619
+ mla r2, r6, r2, r4
12620
+ str r3, [sp, #4]
12621
+ mov r0, fp
12622
+ lsls r2, r2, #10
12623
+ str r2, [r5, #1260]
12624
+ movs r2, #1
12625
+ mov r1, r2
1227312626 bl FlashReadPages
12274
- ldr r3, [r5, #1248]
12275
- adds r3, r3, #1
12276
- beq .L2010
12277
- ldrh r3, [r9]
12278
- cmp r3, fp
12279
- bne .L2010
12627
+ ldr r2, [r5, #1256]
12628
+ ldr r3, [sp, #4]
12629
+ adds r2, r2, #1
12630
+ beq .L1966
12631
+ ldrh r2, [r9]
12632
+ cmp r2, r3
12633
+ bne .L1966
1228012634 strh r4, [r7] @ movhi
12281
- b .L2011
12282
-.L2010:
12635
+.L1967:
12636
+ adds r6, r6, #1
12637
+ b .L1964
12638
+.L1966:
1228312639 subs r4, r4, #1
1228412640 uxth r4, r4
12285
- b .L2009
12286
-.L2011:
12287
- adds r6, r6, #1
12288
- b .L2008
12289
-.L2017:
12290
- movs r0, #0
12291
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
12292
-.L2019:
12641
+ b .L1965
12642
+.L1974:
1229312643 .align 2
12294
-.L2018:
12644
+.L1973:
1229512645 .word .LANCHOR2
12296
- .word .LANCHOR0+2462
12646
+ .word .LANCHOR0+2466
1229712647 .word .LANCHOR4
12298
- .word .LANCHOR4+1248
1229912648 .fnend
1230012649 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
1230112650 .align 1
1230212651 .global FtlGetLastWrittenPage
12652
+ .syntax unified
1230312653 .thumb
1230412654 .thumb_func
12655
+ .fpu softvfp
1230512656 .type FtlGetLastWrittenPage, %function
1230612657 FtlGetLastWrittenPage:
1230712658 .fnstart
1230812659 @ args = 0, pretend = 0, frame = 104
1230912660 @ frame_needed = 0, uses_anonymous_args = 0
12310
- ldr r3, .L2031
12661
+ ldr r3, .L1986
1231112662 cmp r1, #1
1231212663 push {r4, r5, r6, r7, r8, lr}
1231312664 .save {r4, r5, r6, r7, r8, lr}
12665
+ lsl r8, r0, #10
1231412666 .pad #104
1231512667 sub sp, sp, #104
12668
+ mov r2, r1
12669
+ mov r7, r1
1231612670 it eq
12317
- ldrheq r4, [r3, #2390]
12318
- mov r8, r1
12671
+ ldrheq r5, [r3, #2392]
12672
+ mov r6, #0
1231912673 it ne
12320
- ldrhne r4, [r3, #2388]
12321
- lsls r6, r0, #10
12674
+ ldrhne r5, [r3, #2390]
1232212675 add r3, sp, #40
12323
- add r0, sp, #4
12324
- subs r5, r4, #1
1232512676 str r3, [sp, #16]
1232612677 movs r1, #1
12327
- mov r2, r8
12328
- uxth r5, r5
12329
- movs r7, #0
12330
- str r7, [sp, #12]
12331
- sxth r3, r5
12332
- orrs r3, r3, r6
12333
- str r3, [sp, #8]
12334
- bl FlashReadPages
12335
- ldr r3, [sp, #40]
12336
- adds r3, r3, #1
12337
- bne .L2023
12338
-.L2024:
12339
- sxth r3, r7
12340
- sxth r4, r5
12341
- cmp r3, r4
12342
- bgt .L2023
12343
- add r4, r4, r3
1234412678 add r0, sp, #4
12345
- movs r1, #1
12346
- mov r2, r8
12347
- add r4, r4, r4, lsr #31
12348
- asrs r4, r4, #1
12349
- sxth r3, r4
12350
- orrs r3, r3, r6
12679
+ str r6, [sp, #12]
12680
+ subs r5, r5, #1
12681
+ sxth r5, r5
12682
+ orr r3, r5, r8
1235112683 str r3, [sp, #8]
1235212684 bl FlashReadPages
1235312685 ldr r3, [sp, #40]
1235412686 adds r3, r3, #1
12355
- bne .L2025
12356
- ldr r3, [sp, #44]
12357
- adds r3, r3, #1
12358
- bne .L2025
12359
- ldr r3, [sp, #4]
12360
- adds r3, r3, #1
12361
- beq .L2025
12362
- subs r4, r4, #1
12363
- uxth r5, r4
12364
- b .L2024
12365
-.L2025:
12366
- adds r3, r4, #1
12367
- uxth r7, r3
12368
- b .L2024
12369
-.L2023:
12370
- sxth r0, r5
12687
+ bne .L1978
12688
+.L1979:
12689
+ cmp r6, r5
12690
+ ble .L1982
12691
+.L1978:
12692
+ mov r0, r5
1237112693 add sp, sp, #104
1237212694 @ sp needed
1237312695 pop {r4, r5, r6, r7, r8, pc}
12374
-.L2032:
12696
+.L1982:
12697
+ adds r3, r6, r5
12698
+ mov r2, r7
12699
+ add r3, r3, r3, lsr #31
12700
+ movs r1, #1
12701
+ add r0, sp, #4
12702
+ asrs r4, r3, #1
12703
+ sxth r3, r4
12704
+ orr r3, r3, r8
12705
+ str r3, [sp, #8]
12706
+ bl FlashReadPages
12707
+ ldr r3, [sp, #40]
12708
+ adds r3, r3, #1
12709
+ bne .L1980
12710
+ ldr r3, [sp, #44]
12711
+ adds r3, r3, #1
12712
+ bne .L1980
12713
+ ldr r3, [sp, #4]
12714
+ adds r3, r3, #1
12715
+ beq .L1980
12716
+ subs r4, r4, #1
12717
+ sxth r5, r4
12718
+ b .L1979
12719
+.L1980:
12720
+ adds r4, r4, #1
12721
+ sxth r6, r4
12722
+ b .L1979
12723
+.L1987:
1237512724 .align 2
12376
-.L2031:
12725
+.L1986:
1237712726 .word .LANCHOR0
1237812727 .fnend
1237912728 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
1238012729 .align 1
1238112730 .global FtlLoadBbt
12731
+ .syntax unified
1238212732 .thumb
1238312733 .thumb_func
12734
+ .fpu softvfp
1238412735 .type FtlLoadBbt, %function
1238512736 FtlLoadBbt:
1238612737 .fnstart
1238712738 @ args = 0, pretend = 0, frame = 0
1238812739 @ frame_needed = 0, uses_anonymous_args = 0
12389
- push {r3, r4, r5, r6, r7, r8, r9, lr}
12390
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
12391
- ldr r8, .L2062+16
12392
- ldr r4, .L2062
12393
- ldr r5, .L2062+4
12740
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
12741
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
12742
+ movw r10, #61649
12743
+ ldr r8, .L2016+16
12744
+ ldr r5, .L2016
1239412745 ldr r3, [r8, #3316]
1239512746 ldr r7, [r8, #3340]
12396
- mov r9, r4
12397
- str r3, [r4, #1256]
12398
- str r7, [r4, #1260]
12747
+ ldr r4, .L2016+4
12748
+ add r9, r5, #1256
12749
+ str r3, [r5, #1264]
12750
+ str r7, [r5, #1268]
1239912751 bl FtlBbtMemInit
12400
- ldrh r6, [r5, #2386]
12752
+ ldrh r6, [r4, #2388]
1240112753 subs r6, r6, #1
1240212754 uxth r6, r6
12403
-.L2034:
12404
- ldrh r3, [r5, #2386]
12755
+.L1989:
12756
+ ldrh r3, [r4, #2388]
1240512757 subs r3, r3, #48
1240612758 cmp r6, r3
12407
- ble .L2037
12408
- movs r1, #1
12409
- ldr r0, .L2062+8
12759
+ ble .L1992
1241012760 lsls r3, r6, #10
12411
- str r3, [r4, #1252]
12412
- mov r2, r1
12761
+ movs r2, #1
12762
+ mov r1, r2
12763
+ mov r0, r9
12764
+ str r3, [r5, #1260]
1241312765 bl FlashReadPages
12414
- ldr r3, [r4, #1248]
12766
+ ldr r3, [r5, #1256]
1241512767 adds r3, r3, #1
12416
- bne .L2035
12417
- movs r1, #1
12418
- ldr r3, [r9, #1252]
12419
- ldr r0, .L2062+8
12420
- mov r2, r1
12768
+ bne .L1990
12769
+ ldr r3, [r5, #1260]
12770
+ movs r2, #1
12771
+ mov r1, r2
12772
+ mov r0, r9
1242112773 adds r3, r3, #1
12422
- str r3, [r9, #1252]
12774
+ str r3, [r5, #1260]
1242312775 bl FlashReadPages
12424
-.L2035:
12425
- ldr r3, [r4, #1248]
12776
+.L1990:
12777
+ ldr r3, [r5, #1256]
1242612778 adds r3, r3, #1
12427
- beq .L2036
12428
- ldrh r2, [r7]
12429
- movw r3, #61649
12430
- cmp r2, r3
12431
- bne .L2036
12432
- ldr r3, [r7, #4]
12433
- strh r6, [r5, #2452] @ movhi
12434
- str r3, [r5, #2460]
12435
- ldrh r3, [r7, #8]
12436
- strh r3, [r5, #2456] @ movhi
12437
- b .L2037
12438
-.L2036:
12439
- subs r6, r6, #1
12440
- uxth r6, r6
12441
- b .L2034
12442
-.L2037:
12443
- ldrh r3, [r5, #2452]
12444
- movw r2, #65535
12445
- ldr r6, .L2062+4
12446
- cmp r3, r2
12447
- beq .L2051
12448
- ldrh r3, [r6, #2456]
12449
- cmp r3, r2
12450
- beq .L2041
12451
- movs r1, #1
12452
- ldr r0, .L2062+8
12453
- lsls r3, r3, #10
12454
- str r3, [r4, #1252]
12455
- mov r2, r1
12456
- bl FlashReadPages
12457
- ldr r3, [r4, #1248]
12458
- adds r3, r3, #1
12459
- beq .L2041
12460
- ldrh r2, [r7]
12461
- movw r3, #61649
12462
- cmp r2, r3
12463
- bne .L2041
12464
- ldr r3, [r7, #4]
12465
- ldr r2, [r6, #2460]
12466
- cmp r3, r2
12467
- itttt hi
12468
- strhi r3, [r6, #2460]
12469
- ldrhhi r2, [r6, #2456]
12470
- ldrhhi r3, [r7, #8]
12471
- strhhi r2, [r6, #2452] @ movhi
12472
- it hi
12473
- strhhi r3, [r6, #2456] @ movhi
12474
-.L2041:
12475
- ldrh r0, [r5, #2452]
12476
- movs r1, #1
12477
- bl FtlGetLastWrittenPage
12478
- movw r9, #61649
12479
- uxth r6, r0
12480
- adds r0, r0, #1
12481
- strh r0, [r5, #2454] @ movhi
12482
-.L2043:
12483
- sxth r3, r6
12484
- cmp r3, #0
12485
- blt .L2048
12486
- ldrh r2, [r5, #2452]
12487
- movs r1, #1
12488
- ldr r0, .L2062+8
12489
- orr r3, r3, r2, lsl #10
12490
- str r3, [r4, #1252]
12491
- ldr r3, [r8, #3316]
12492
- mov r2, r1
12493
- str r3, [r4, #1256]
12494
- bl FlashReadPages
12495
- ldr r3, [r4, #1248]
12496
- adds r3, r3, #1
12497
- beq .L2044
12779
+ beq .L1991
1249812780 ldrh r3, [r7]
12499
- cmp r3, r9
12500
- bne .L2044
12501
-.L2048:
12502
- ldrh r2, [r7, #10]
12503
- ldrh r0, [r7, #12]
12504
- ldr r3, .L2062+4
12505
- strh r2, [r5, #2458] @ movhi
12781
+ cmp r3, r10
12782
+ bne .L1991
12783
+ ldr r3, [r7, #4]
12784
+ strh r6, [r4, #2456] @ movhi
12785
+ str r3, [r4, #2464]
12786
+ ldrh r3, [r7, #8]
12787
+ strh r3, [r4, #2460] @ movhi
12788
+.L1992:
12789
+ ldrh r3, [r4, #2456]
1250612790 movw r2, #65535
12507
- cmp r0, r2
12508
- bne .L2045
12509
- b .L2046
12510
-.L2044:
12791
+ cmp r3, r2
12792
+ beq .L2006
12793
+ ldrh r3, [r4, #2460]
12794
+ cmp r3, r2
12795
+ beq .L1996
12796
+ lsls r3, r3, #10
12797
+ movs r2, #1
12798
+ mov r1, r2
12799
+ ldr r0, .L2016+8
12800
+ str r3, [r5, #1260]
12801
+ bl FlashReadPages
12802
+ ldr r3, [r5, #1256]
12803
+ adds r3, r3, #1
12804
+ beq .L1996
12805
+ ldrh r2, [r7]
12806
+ movw r3, #61649
12807
+ cmp r2, r3
12808
+ bne .L1996
12809
+ ldr r3, [r7, #4]
12810
+ ldr r2, [r4, #2464]
12811
+ cmp r3, r2
12812
+ bls .L1996
12813
+ ldrh r2, [r4, #2460]
12814
+ str r3, [r4, #2464]
12815
+ ldrh r3, [r7, #8]
12816
+ strh r2, [r4, #2456] @ movhi
12817
+ strh r3, [r4, #2460] @ movhi
12818
+.L1996:
12819
+ ldr r9, .L2016+8
12820
+ movs r1, #1
12821
+ ldrh r0, [r4, #2456]
12822
+ movw r10, #61649
12823
+ bl FtlGetLastWrittenPage
12824
+ sxth r6, r0
12825
+ adds r0, r0, #1
12826
+ strh r0, [r4, #2458] @ movhi
12827
+.L1998:
12828
+ cmp r6, #0
12829
+ blt .L2003
12830
+ ldrh r3, [r4, #2456]
12831
+ movs r2, #1
12832
+ mov r1, r2
12833
+ mov r0, r9
12834
+ orr r3, r6, r3, lsl #10
12835
+ str r3, [r5, #1260]
12836
+ ldr r3, [r8, #3316]
12837
+ str r3, [r5, #1264]
12838
+ bl FlashReadPages
12839
+ ldr r3, [r5, #1256]
12840
+ adds r3, r3, #1
12841
+ beq .L1999
12842
+ ldrh r3, [r7]
12843
+ cmp r3, r10
12844
+ bne .L1999
12845
+.L2003:
12846
+ ldrh r3, [r7, #10]
12847
+ ldrh r0, [r7, #12]
12848
+ strh r3, [r4, #2462] @ movhi
12849
+ movw r3, #65535
12850
+ cmp r0, r3
12851
+ bne .L2000
12852
+.L2001:
12853
+ ldr r7, .L2016+12
12854
+ movs r6, #0
12855
+.L2004:
12856
+ ldrh r3, [r4, #2346]
12857
+ cmp r6, r3
12858
+ bcc .L2005
12859
+ movs r0, #0
12860
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
12861
+.L1991:
1251112862 subs r6, r6, #1
1251212863 uxth r6, r6
12513
- b .L2043
12514
-.L2045:
12515
- ldr r2, [r3, #2316]
12864
+ b .L1989
12865
+.L1999:
12866
+ subs r6, r6, #1
12867
+ sxth r6, r6
12868
+ b .L1998
12869
+.L2000:
12870
+ ldr r2, [r4, #2320]
1251612871 cmp r0, r2
12517
- beq .L2046
12518
- ldrh r3, [r3, #2330]
12872
+ beq .L2001
12873
+ ldrh r3, [r4, #2334]
1251912874 lsrs r3, r3, #2
1252012875 cmp r2, r3
12521
- bcs .L2046
12876
+ bcs .L2001
1252212877 cmp r0, r3
12523
- bcs .L2046
12878
+ bcs .L2001
1252412879 bl FtlSysBlkNumInit
12525
-.L2046:
12526
- ldr r7, .L2062+12
12527
- movs r6, #0
12528
-.L2049:
12529
- ldrh r3, [r5, #2342]
12530
- cmp r6, r3
12531
- bcs .L2061
12880
+ b .L2001
12881
+.L2005:
1253212882 ldrh r2, [r8, #3404]
12533
- ldr r1, [r4, #1256]
12883
+ ldr r1, [r5, #1264]
1253412884 ldr r0, [r7, #4]!
1253512885 lsls r2, r2, #2
1253612886 mla r1, r6, r2, r1
12537
- bl ftl_memcpy
1253812887 adds r6, r6, #1
12539
- b .L2049
12540
-.L2061:
12541
- movs r0, #0
12542
- pop {r3, r4, r5, r6, r7, r8, r9, pc}
12543
-.L2051:
12888
+ bl ftl_memcpy
12889
+ b .L2004
12890
+.L2006:
1254412891 mov r0, #-1
12545
- pop {r3, r4, r5, r6, r7, r8, r9, pc}
12546
-.L2063:
12892
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
12893
+.L2017:
1254712894 .align 2
12548
-.L2062:
12895
+.L2016:
1254912896 .word .LANCHOR4
1255012897 .word .LANCHOR0
12551
- .word .LANCHOR4+1248
12552
- .word .LANCHOR0+2476
12898
+ .word .LANCHOR4+1256
12899
+ .word .LANCHOR0+2480
1255312900 .word .LANCHOR2
1255412901 .fnend
1255512902 .size FtlLoadBbt, .-FtlLoadBbt
1255612903 .align 1
1255712904 .global FtlScanSysBlk
12905
+ .syntax unified
1255812906 .thumb
1255912907 .thumb_func
12908
+ .fpu softvfp
1256012909 .type FtlScanSysBlk, %function
1256112910 FtlScanSysBlk:
1256212911 .fnstart
12563
- @ args = 0, pretend = 0, frame = 32
12912
+ @ args = 0, pretend = 0, frame = 24
1256412913 @ frame_needed = 0, uses_anonymous_args = 0
1256512914 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1256612915 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1256712916 movs r6, #0
12568
- ldr r5, .L2149
12569
- .pad #36
12570
- sub sp, sp, #36
12571
- ldr r4, .L2149+4
12917
+ ldr r5, .L2098
1257212918 mov r1, r6
12573
- ldr r2, [r5, #2416]
12919
+ .pad #28
12920
+ sub sp, sp, #28
12921
+ ldr r4, .L2098+4
12922
+ ldr r2, [r5, #2420]
12923
+ mov fp, r5
12924
+ strh r6, [r5, #2438] @ movhi
1257412925 ldr r0, [r4, #3396]
12575
- mov r9, r4
12576
- strh r6, [r5, #2434] @ movhi
12577
- lsls r2, r2, #2
1257812926 strh r6, [r4, #3452] @ movhi
12927
+ lsls r2, r2, #2
1257912928 bl ftl_memset
12580
- ldr r2, [r5, #2416]
12929
+ ldr r2, [r5, #2420]
1258112930 mov r1, r6
1258212931 ldr r0, [r4, #3368]
1258312932 lsls r2, r2, #1
1258412933 bl ftl_memset
12585
- ldrh r2, [r5, #2408]
12934
+ ldrh r2, [r5, #2412]
1258612935 mov r1, r6
1258712936 ldr r0, [r4, #3380]
1258812937 lsls r2, r2, #2
1258912938 bl ftl_memset
12590
- ldrh r2, [r5, #2408]
12591
- ldr r0, [r5, #2436]
12939
+ ldrh r2, [r5, #2412]
1259212940 mov r1, r6
12941
+ ldr r0, [r5, #2440]
12942
+ mov r6, r5
1259312943 lsls r2, r2, #1
1259412944 bl ftl_memset
12595
- add r0, r4, #540
12596
- movs r1, #255
1259712945 movs r2, #16
12946
+ movs r1, #255
12947
+ add r0, r4, #540
1259812948 bl ftl_memset
12599
- ldrh r3, [r5, #2328]
12600
- str r5, [sp, #12]
12601
- mov r5, r4
12949
+ ldrh r3, [r5, #2332]
1260212950 str r3, [sp, #4]
12603
-.L2065:
12604
- ldr r6, .L2149
12951
+.L2019:
12952
+ ldrh r3, [r6, #2334]
1260512953 ldr r2, [sp, #4]
12606
- ldrh r3, [r6, #2330]
12607
- mov r0, r6
1260812954 cmp r3, r2
12609
- bls .L2107
12610
- ldr r1, [r4, #1148]
12611
- mov r10, #36
12612
- ldrh r8, [r6, #2320]
12955
+ bls .L2060
12956
+ ldr r2, [r4, #1148]
1261312957 movs r7, #0
12614
- ldr r2, [r4, #3304]
12615
- str r1, [sp, #8]
12958
+ ldrh r8, [r6, #2324]
12959
+ mov r10, #36
12960
+ ldr r9, [r4, #3304]
12961
+ str r2, [sp, #8]
1261612962 ldr r3, [r4, #1144]
12617
- ldrh r1, [r6, #2400]
12963
+ ldrh r2, [r6, #2402]
1261812964 str r7, [sp]
12619
- str r1, [sp, #16]
12620
- addw r1, r6, #2348
12621
- str r1, [sp, #20]
12622
-.L2108:
12623
- uxth r1, r7
12624
- cmp r1, r8
12625
- bcs .L2144
12626
- str r3, [sp, #28]
12627
- ldr r3, [sp, #20]
12965
+ b .L2061
12966
+.L2022:
12967
+ str r3, [sp, #16]
12968
+ ldr r3, .L2098+8
1262812969 ldr r1, [sp, #4]
12629
- str r2, [sp, #24]
12970
+ str r2, [sp, #20]
1263012971 ldrb r0, [r3, r7] @ zero_extendqisi2
1263112972 bl V2P_block
12632
- mov fp, r0
12973
+ str r0, [sp, #12]
1263312974 bl FtlBbmIsBadBlock
12634
- ldr r2, [sp, #24]
12635
- ldr r3, [sp, #28]
12636
- cbnz r0, .L2066
12975
+ ldr r3, [sp, #16]
12976
+ ldr r2, [sp, #20]
12977
+ cbnz r0, .L2020
1263712978 ldr r1, [sp]
12638
- ldr r6, [sp]
12639
- mla r0, r10, r1, r2
12640
- lsl r1, fp, #10
12979
+ mla r0, r10, r1, r9
12980
+ ldr r1, [sp, #12]
12981
+ lsls r1, r1, #10
12982
+ str r3, [r0, #8]
1264112983 str r1, [r0, #4]
12642
- ldr r1, [sp, #16]
12643
- muls r1, r6, r1
12644
- ldr r6, [sp, #8]
12984
+ ldr r1, [sp]
12985
+ muls r1, r2, r1
1264512986 it mi
1264612987 addmi r1, r1, #3
12647
- bic r1, r1, #3
12648
- str r3, [r0, #8]
12649
- add r1, r1, r6
12988
+ bic ip, r1, #3
12989
+ ldr r1, [sp, #8]
12990
+ add r1, r1, ip
1265012991 str r1, [r0, #12]
1265112992 ldr r1, [sp]
1265212993 adds r1, r1, #1
1265312994 uxth r1, r1
1265412995 str r1, [sp]
12655
-.L2066:
12996
+.L2020:
1265612997 adds r7, r7, #1
12657
- b .L2108
12658
-.L2144:
12998
+.L2061:
12999
+ uxth r1, r7
13000
+ cmp r8, r1
13001
+ bhi .L2022
1265913002 ldr r3, [sp]
12660
- cmp r3, #0
12661
- beq .L2070
12662
- mov r1, r3
12663
- ldr r0, [r4, #3304]
13003
+ cbnz r3, .L2023
13004
+.L2059:
13005
+ ldr r3, [sp, #4]
13006
+ adds r3, r3, #1
13007
+ uxth r3, r3
13008
+ str r3, [sp, #4]
13009
+ b .L2019
13010
+.L2023:
1266413011 movs r2, #1
12665
- ldr r8, .L2149
13012
+ ldr r1, [sp]
13013
+ mov r0, r9
1266613014 bl FlashReadPages
1266713015 movs r3, #0
13016
+.L2096:
1266813017 str r3, [sp, #8]
12669
-.L2071:
12670
- ldrh r3, [sp, #8]
1267113018 ldr r2, [sp]
12672
- cmp r3, r2
12673
- bcs .L2070
13019
+ ldrh r3, [sp, #8]
13020
+ cmp r2, r3
13021
+ bls .L2059
1267413022 ldr r3, [sp, #8]
12675
- mov r10, #36
12676
- mul r10, r10, r3
13023
+ movs r2, #36
13024
+ mul r9, r2, r3
1267713025 ldr r3, [r4, #3304]
12678
- add r2, r3, r10
12679
- ldr r3, [r3, r10]
12680
- ldr r6, [r2, #4]
13026
+ add r2, r3, r9
13027
+ ldr r3, [r3, r9]
13028
+ ldr r7, [r2, #4]
13029
+ ldr r8, [r2, #12]
1268113030 adds r3, r3, #1
12682
- ldr r7, [r2, #12]
12683
- ubfx r6, r6, #10, #16
12684
- bne .L2073
12685
- mov fp, #16
12686
- movw r3, #65535
12687
-.L2072:
13031
+ ubfx r7, r7, #10, #16
13032
+ bne .L2027
13033
+ mov r10, #16
13034
+.L2029:
1268813035 ldr r0, [r4, #3304]
12689
- movs r1, #1
12690
- str r3, [sp, #16]
12691
- add r0, r0, r10
12692
- ldr r2, [r0, #4]
12693
- adds r2, r2, #1
12694
- str r2, [r0, #4]
12695
- mov r2, r1
12696
- bl FlashReadPages
12697
- ldrh r2, [r7]
12698
- ldr r3, [sp, #16]
12699
- cmp r2, r3
12700
- bne .L2074
12701
- ldr r3, [r9, #3304]
12702
- mov r2, #-1
12703
- str r2, [r3, r10]
12704
- b .L2073
12705
-.L2074:
12706
- ldr r2, [r5, #3304]
12707
- ldr r2, [r2, r10]
12708
- adds r2, r2, #1
12709
- bne .L2073
12710
- add fp, fp, #-1
12711
- uxth fp, fp
12712
- cmp fp, #0
12713
- bne .L2072
12714
-.L2073:
12715
- ldr r3, [r5, #3304]
12716
- ldr r3, [r3, r10]
13036
+ movs r2, #1
13037
+ mov r1, r2
13038
+ add r0, r0, r9
13039
+ ldr r3, [r0, #4]
1271713040 adds r3, r3, #1
12718
- beq .L2076
12719
- ldr r2, [r5, #508]
12720
- ldr r3, [r7, #4]
13041
+ str r3, [r0, #4]
13042
+ bl FlashReadPages
13043
+ ldrh r3, [r8]
13044
+ movw r2, #65535
13045
+ cmp r3, r2
13046
+ ldr r3, [r4, #3304]
13047
+ bne .L2026
13048
+ mov r2, #-1
13049
+ str r2, [r3, r9]
13050
+ ldr r3, [r4, #3304]
13051
+ ldr r3, [r3, r9]
13052
+ cmp r3, r2
13053
+ beq .L2028
13054
+.L2027:
13055
+ ldr r2, [r4, #508]
13056
+ ldr r3, [r8, #4]
1272113057 adds r1, r2, #1
12722
- beq .L2077
13058
+ beq .L2030
1272313059 cmp r2, r3
12724
- bhi .L2078
12725
-.L2077:
13060
+ bhi .L2031
13061
+.L2030:
1272613062 adds r2, r3, #1
1272713063 itt ne
1272813064 addne r2, r3, #1
12729
- strne r2, [r9, #508]
12730
-.L2078:
12731
- ldrh r2, [r7]
13065
+ strne r2, [r4, #508]
13066
+.L2031:
13067
+ ldrh r2, [r8]
1273213068 movw r1, #61604
1273313069 cmp r2, r1
12734
- beq .L2080
12735
- bhi .L2081
13070
+ beq .L2033
13071
+ bhi .L2034
1273613072 movw r3, #61574
1273713073 cmp r2, r3
12738
- bne .L2079
12739
- ldr r3, [sp, #12]
12740
- ldr r2, [sp, #12]
12741
- ldrh r10, [r3, #2408]
12742
- ldrh r0, [r2, #2434]
12743
- ldr r2, [r9, #3380]
12744
- add lr, r10, #-1
12745
- uxth r3, lr
12746
- rsb lr, r0, lr
12747
- str r2, [sp, #16]
12748
- b .L2094
12749
-.L2081:
13074
+ beq .L2035
13075
+.L2032:
13076
+ ldr r3, [sp, #8]
13077
+ adds r3, r3, #1
13078
+ b .L2096
13079
+.L2026:
13080
+ ldr r3, [r3, r9]
13081
+ adds r3, r3, #1
13082
+ bne .L2027
13083
+ add r10, r10, #-1
13084
+ uxth r10, r10
13085
+ cmp r10, #0
13086
+ bne .L2029
13087
+.L2028:
13088
+ ldrb r1, [r6, #152] @ zero_extendqisi2
13089
+ cbnz r1, .L2097
13090
+.L2057:
13091
+ mov r0, r7
13092
+ bl FtlFreeSysBlkQueueIn
13093
+ b .L2032
13094
+.L2034:
1275013095 movw r3, #61634
1275113096 cmp r2, r3
12752
- beq .L2083
13097
+ beq .L2036
1275313098 movw r3, #65535
1275413099 cmp r2, r3
12755
- bne .L2079
12756
- mov r0, r6
12757
- b .L2143
12758
-.L2083:
12759
- ldr r3, [sp, #12]
13100
+ bne .L2032
13101
+.L2097:
13102
+ movs r1, #0
13103
+ b .L2057
13104
+.L2036:
13105
+ ldr r1, [r5, #2420]
1276013106 ldrh r0, [r4, #3452]
12761
- ldr r2, [r4, #3396]
12762
- ldr r1, [r3, #2416]
12763
- str r2, [sp, #16]
12764
- uxth lr, r1
12765
- add r3, lr, #-1
12766
- rsb lr, r0, lr
12767
- add lr, lr, #-1
12768
- uxth r3, r3
12769
- sxth lr, lr
12770
-.L2085:
12771
- sxth ip, r3
12772
- cmp ip, lr
12773
- ble .L2145
12774
- ldr r2, [r7, #4]
12775
- lsl fp, ip, #2
12776
- mov r10, r2
12777
- ldr r2, [sp, #16]
12778
- ldr r2, [r2, ip, lsl #2]
12779
- cmp r10, r2
12780
- bls .L2086
12781
- ldr r2, [sp, #16]
12782
- ldr r2, [r2]
12783
- cbnz r2, .L2087
12784
- cmp r0, r1
13107
+ ldr r9, [r4, #3396]
13108
+ uxth ip, r1
13109
+ add r3, ip, #-1
13110
+ sub ip, ip, r0
13111
+ add ip, ip, #-1
13112
+ sxth r3, r3
13113
+ sxth ip, ip
13114
+.L2038:
13115
+ cmp r3, ip
13116
+ bgt .L2044
13117
+ cmp r3, #0
13118
+ bge .L2074
13119
+ b .L2032
13120
+.L2044:
13121
+ ldr r2, [r8, #4]
13122
+ lsl r10, r3, #2
13123
+ mov lr, r2
13124
+ ldr r2, [r9, r3, lsl #2]
13125
+ cmp lr, r2
13126
+ bls .L2039
13127
+ ldr r2, [r9]
13128
+ cbnz r2, .L2040
13129
+ cmp r1, r0
1278513130 itt ne
1278613131 addne r0, r0, #1
12787
- strhne r0, [r9, #3452] @ movhi
12788
-.L2087:
12789
- movs r1, #0
12790
- uxth lr, r3
12791
-.L2088:
12792
- uxth r2, r1
12793
- cmp r2, lr
12794
- bcs .L2146
12795
- ldr r0, [r5, #3396]
12796
- sxth r2, r2
12797
- adds r1, r1, #1
12798
- add r10, r0, r2, lsl #2
12799
- ldr r10, [r10, #4]
12800
- str r10, [r0, r2, lsl #2]
12801
- ldr r0, [r5, #3368]
12802
- add r10, r0, r2, lsl #1
12803
- ldrh r10, [r10, #2]
12804
- strh r10, [r0, r2, lsl #1] @ movhi
12805
- b .L2088
12806
-.L2146:
12807
- ldr r1, [r7, #4]
13132
+ strhne r0, [r4, #3452] @ movhi
13133
+.L2040:
13134
+ uxth ip, r3
13135
+ movs r2, #0
13136
+.L2041:
13137
+ uxth r0, r2
13138
+ sxth r1, r2
13139
+ cmp r0, ip
13140
+ bcc .L2042
1280813141 ldr r2, [r4, #3396]
12809
- str r1, [r2, fp]
12810
- sxth r1, r3
13142
+ cmp r3, #0
13143
+ ldr r1, [r8, #4]
13144
+ str r1, [r2, r10]
1281113145 ldr r2, [r4, #3368]
12812
- cmp r1, #0
12813
- strh r6, [r2, ip, lsl #1] @ movhi
12814
- bge .L2090
12815
- b .L2079
12816
-.L2086:
12817
- subs r3, r3, #1
12818
- uxth r3, r3
12819
- b .L2085
12820
-.L2145:
12821
- cmp ip, #0
12822
- bge .L2121
12823
- b .L2079
12824
-.L2090:
12825
- ldrh r0, [r5, #3452]
12826
- ldr r2, [r8, #2416]
13146
+ strh r7, [r2, r3, lsl #1] @ movhi
13147
+ blt .L2032
13148
+ ldrh r0, [r4, #3452]
13149
+ ldr r2, [r5, #2420]
1282713150 subs r2, r2, r0
1282813151 subs r2, r2, #1
1282913152 sxth r2, r2
12830
- cmp r1, r2
12831
- bgt .L2079
12832
-.L2121:
13153
+ cmp r3, r2
13154
+ bgt .L2032
13155
+.L2074:
1283313156 ldr r2, [r4, #3396]
12834
- sxth r3, r3
12835
- ldr r1, [r7, #4]
1283613157 adds r0, r0, #1
13158
+ ldr r1, [r8, #4]
1283713159 strh r0, [r4, #3452] @ movhi
1283813160 str r1, [r2, r3, lsl #2]
1283913161 ldr r2, [r4, #3368]
12840
- b .L2141
12841
-.L2100:
12842
- ldr r1, [sp, #16]
12843
- lsl fp, ip, #2
12844
- ldr r2, [r7, #4]
12845
- ldr r1, [r1, ip, lsl #2]
12846
- cmp r2, r1
12847
- bhi .L2147
12848
- subs r3, r3, #1
12849
- uxth r3, r3
1285013162 .L2094:
12851
- sxth ip, r3
12852
- cmp ip, lr
12853
- bgt .L2100
12854
- b .L2099
12855
-.L2150:
13163
+ strh r7, [r2, r3, lsl #1] @ movhi
13164
+ b .L2032
13165
+.L2042:
13166
+ ldr r0, [r4, #3396]
13167
+ adds r2, r2, #1
13168
+ add lr, r0, r1, lsl #2
13169
+ ldr lr, [lr, #4]
13170
+ str lr, [r0, r1, lsl #2]
13171
+ ldr r0, [r4, #3368]
13172
+ add lr, r0, r1, lsl #1
13173
+ ldrh lr, [lr, #2]
13174
+ strh lr, [r0, r1, lsl #1] @ movhi
13175
+ b .L2041
13176
+.L2039:
13177
+ subs r3, r3, #1
13178
+ sxth r3, r3
13179
+ b .L2038
13180
+.L2099:
1285613181 .align 2
12857
-.L2149:
13182
+.L2098:
1285813183 .word .LANCHOR0
1285913184 .word .LANCHOR2
12860
-.L2147:
12861
- ldr r2, [sp, #16]
12862
- ldr r2, [r2]
12863
- cbnz r2, .L2096
12864
- cmp r0, r10
13185
+ .word .LANCHOR0+2350
13186
+.L2035:
13187
+ ldrh lr, [r5, #2412]
13188
+ ldrh r0, [r5, #2438]
13189
+ ldr r9, [r4, #3380]
13190
+ add ip, lr, #-1
13191
+ sxth r3, ip
13192
+ sub ip, ip, r0
13193
+.L2047:
13194
+ cmp r3, ip
13195
+ ble .L2052
13196
+ ldr r2, [r8, #4]
13197
+ lsl r10, r3, #2
13198
+ ldr r1, [r9, r3, lsl #2]
13199
+ cmp r2, r1
13200
+ bls .L2048
13201
+ ldr r2, [r9]
13202
+ cbnz r2, .L2049
13203
+ cmp lr, r0
1286513204 itt ne
1286613205 addne r0, r0, #1
12867
- strhne r0, [r8, #2434] @ movhi
12868
-.L2096:
12869
- movs r1, #0
12870
- uxth lr, r3
12871
-.L2097:
12872
- uxth r2, r1
12873
- cmp r2, lr
12874
- bcs .L2148
12875
- ldr r0, [r4, #3380]
12876
- sxth r2, r2
12877
- adds r1, r1, #1
12878
- add r10, r0, r2, lsl #2
12879
- ldr r10, [r10, #4]
12880
- str r10, [r0, r2, lsl #2]
12881
- ldr r0, [r8, #2436]
12882
- add r10, r0, r2, lsl #1
12883
- ldrh r10, [r10, #2]
12884
- strh r10, [r0, r2, lsl #1] @ movhi
12885
- b .L2097
12886
-.L2148:
12887
- ldr r2, [r5, #3380]
12888
- ldr r1, [r7, #4]
12889
- str r1, [r2, fp]
12890
- ldr r2, .L2151
12891
- ldr r2, [r2, #2436]
12892
- strh r6, [r2, ip, lsl #1] @ movhi
12893
-.L2099:
12894
- sxth r3, r3
13206
+ strhne r0, [r6, #2438] @ movhi
13207
+.L2049:
13208
+ uxth ip, r3
13209
+ movs r2, #0
13210
+.L2050:
13211
+ uxth r0, r2
13212
+ sxth r1, r2
13213
+ cmp r0, ip
13214
+ bcc .L2051
13215
+ ldr r2, [r4, #3380]
13216
+ ldr r1, [r8, #4]
13217
+ str r1, [r2, r10]
13218
+ ldr r2, [r6, #2440]
13219
+ strh r7, [r2, r3, lsl #1] @ movhi
13220
+.L2052:
1289513221 cmp r3, #0
12896
- blt .L2079
12897
- ldrh r2, [r8, #2408]
12898
- ldrh r1, [r8, #2434]
13222
+ blt .L2032
13223
+ ldrh r2, [r6, #2412]
13224
+ ldrh r1, [r6, #2438]
1289913225 subs r2, r2, #1
1290013226 subs r2, r2, r1
1290113227 sxth r2, r2
1290213228 cmp r3, r2
12903
- bgt .L2079
13229
+ bgt .L2032
1290413230 adds r1, r1, #1
12905
- ldr r2, [r9, #3380]
12906
- strh r1, [r8, #2434] @ movhi
12907
- ldr r1, [r7, #4]
13231
+ ldr r2, [r4, #3380]
13232
+ strh r1, [r6, #2438] @ movhi
13233
+ ldr r1, [r8, #4]
1290813234 str r1, [r2, r3, lsl #2]
12909
- ldr r2, [r8, #2436]
12910
-.L2141:
12911
- strh r6, [r2, r3, lsl #1] @ movhi
12912
- b .L2079
12913
-.L2080:
12914
- ldrh r1, [r9, #540]
13235
+ ldr r2, [r6, #2440]
13236
+ b .L2094
13237
+.L2051:
13238
+ ldr r0, [r4, #3380]
13239
+ adds r2, r2, #1
13240
+ add lr, r0, r1, lsl #2
13241
+ ldr lr, [lr, #4]
13242
+ str lr, [r0, r1, lsl #2]
13243
+ ldr r0, [r6, #2440]
13244
+ add lr, r0, r1, lsl #1
13245
+ ldrh lr, [lr, #2]
13246
+ strh lr, [r0, r1, lsl #1] @ movhi
13247
+ b .L2050
13248
+.L2048:
13249
+ subs r3, r3, #1
13250
+ sxth r3, r3
13251
+ b .L2047
13252
+.L2033:
13253
+ ldrh r1, [r4, #540]
1291513254 movw r2, #65535
1291613255 cmp r1, r2
12917
- bne .L2101
12918
- strh r6, [r5, #540] @ movhi
12919
- b .L2142
12920
-.L2101:
12921
- ldrh r0, [r5, #544]
13256
+ bne .L2054
13257
+ strh r7, [r4, #540] @ movhi
13258
+.L2095:
13259
+ str r3, [r4, #548]
13260
+ b .L2032
13261
+.L2054:
13262
+ ldrh r0, [r4, #544]
1292213263 cmp r0, r2
12923
- beq .L2102
13264
+ beq .L2055
1292413265 movs r1, #1
1292513266 bl FtlFreeSysBlkQueueIn
12926
-.L2102:
12927
- ldr r2, [r9, #548]
12928
- ldr r3, [r7, #4]
13267
+.L2055:
13268
+ ldr r2, [r4, #548]
13269
+ ldr r3, [r8, #4]
1292913270 cmp r2, r3
12930
- bcs .L2103
12931
- ldrh r3, [r5, #540]
12932
- strh r6, [r5, #540] @ movhi
12933
- strh r3, [r5, #544] @ movhi
12934
- ldr r3, [r7, #4]
12935
-.L2142:
12936
- str r3, [r5, #548]
12937
- b .L2079
12938
-.L2103:
12939
- strh r6, [r5, #544] @ movhi
12940
- b .L2079
12941
-.L2076:
12942
- ldrb r1, [r8, #144] @ zero_extendqisi2
12943
- mov r0, r6
12944
- cbz r1, .L2104
12945
-.L2143:
12946
- movs r1, #0
12947
-.L2104:
12948
- bl FtlFreeSysBlkQueueIn
12949
-.L2079:
12950
- ldr r3, [sp, #8]
12951
- adds r3, r3, #1
12952
- str r3, [sp, #8]
12953
- b .L2071
12954
-.L2070:
12955
- ldr r6, [sp, #4]
12956
- adds r6, r6, #1
12957
- uxth r3, r6
12958
- str r3, [sp, #4]
12959
- b .L2065
12960
-.L2107:
12961
- ldr r3, .L2151+4
12962
- ldr r5, [r3, #3368]
12963
- ldrh r2, [r5]
12964
- cbz r2, .L2109
12965
-.L2112:
12966
- ldr r5, [r0, #2436]
12967
- ldr r3, .L2151
12968
- ldrh r2, [r5]
12969
- cbz r2, .L2110
12970
- b .L2133
12971
-.L2109:
12972
- ldrh r3, [r3, #3452]
12973
- cmp r3, #0
12974
- beq .L2112
12975
- ldr r6, [r6, #2416]
12976
-.L2113:
12977
- uxth r3, r2
12978
- sxth r1, r3
12979
- cmp r1, r6
12980
- bcs .L2112
12981
- ldrh r7, [r5, r1, lsl #1]
12982
- adds r2, r2, #1
12983
- cmp r7, #0
12984
- beq .L2113
12985
- mov lr, #0
12986
-.L2114:
12987
- ldr r5, [r0, #2416]
12988
- sxth r2, r3
12989
- cmp r2, r5
12990
- bcs .L2112
12991
- ldr r5, [r4, #3368]
12992
- subs r6, r2, r1
12993
- adds r3, r3, #1
12994
- ldrh r7, [r5, r2, lsl #1]
12995
- uxth r3, r3
12996
- strh r7, [r5, r6, lsl #1] @ movhi
12997
- ldr r5, [r4, #3396]
12998
- ldr r7, [r5, r2, lsl #2]
12999
- str r7, [r5, r6, lsl #2]
13000
- ldr r5, [r4, #3368]
13001
- strh lr, [r5, r2, lsl #1] @ movhi
13002
- b .L2114
13003
-.L2110:
13004
- ldrh r1, [r3, #2434]
13005
- cbz r1, .L2133
13006
- ldrh r6, [r3, #2408]
13007
-.L2117:
13008
- uxth r3, r2
13009
- sxth r1, r3
13010
- cmp r1, r6
13011
- bge .L2133
13012
- ldrh r7, [r5, r1, lsl #1]
13013
- adds r2, r2, #1
13014
- cmp r7, #0
13015
- beq .L2117
13016
- ldr r5, .L2151
13017
- mov ip, #0
13018
-.L2118:
13019
- ldrh r6, [r0, #2408]
13020
- sxth r2, r3
13021
- cmp r2, r6
13022
- bge .L2133
13023
- ldr r6, [r5, #2436]
13024
- rsb lr, r1, r2
13025
- adds r3, r3, #1
13026
- ldrh r7, [r6, r2, lsl #1]
13027
- uxth r3, r3
13028
- strh r7, [r6, lr, lsl #1] @ movhi
13029
- ldr r6, [r4, #3380]
13030
- ldr r7, [r6, r2, lsl #2]
13031
- str r7, [r6, lr, lsl #2]
13032
- ldr r6, [r5, #2436]
13033
- strh ip, [r6, r2, lsl #1] @ movhi
13034
- b .L2118
13035
-.L2133:
13271
+ bcs .L2056
13272
+ ldrh r3, [r4, #540]
13273
+ strh r7, [r4, #540] @ movhi
13274
+ strh r3, [r4, #544] @ movhi
13275
+ ldr r3, [r8, #4]
13276
+ b .L2095
13277
+.L2056:
13278
+ strh r7, [r4, #544] @ movhi
13279
+ b .L2032
13280
+.L2060:
13281
+ ldr r1, [r4, #3368]
13282
+ ldrh r3, [r1]
13283
+ cbz r3, .L2062
13284
+.L2065:
13285
+ ldr r1, [r5, #2440]
13286
+ ldrh r2, [r1]
13287
+ cbz r2, .L2063
13288
+.L2085:
1303613289 movs r0, #0
13037
- add sp, sp, #36
13290
+ add sp, sp, #28
1303813291 @ sp needed
1303913292 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13040
-.L2152:
13041
- .align 2
13042
-.L2151:
13043
- .word .LANCHOR0
13044
- .word .LANCHOR2
13293
+.L2062:
13294
+ ldrh r2, [r4, #3452]
13295
+ cmp r2, #0
13296
+ beq .L2065
13297
+ ldr r0, [r6, #2420]
13298
+.L2066:
13299
+ sxth r2, r3
13300
+ cmp r2, r0
13301
+ bcs .L2065
13302
+ ldrh r6, [r1, r2, lsl #1]
13303
+ adds r3, r3, #1
13304
+ cmp r6, #0
13305
+ beq .L2066
13306
+ mov r3, r2
13307
+ movs r7, #0
13308
+.L2067:
13309
+ ldr r1, [fp, #2420]
13310
+ cmp r3, r1
13311
+ bcs .L2065
13312
+ ldr r1, [r4, #3368]
13313
+ subs r0, r3, r2
13314
+ ldrh r6, [r1, r3, lsl #1]
13315
+ strh r6, [r1, r0, lsl #1] @ movhi
13316
+ ldr r1, [r4, #3396]
13317
+ ldr r6, [r1, r3, lsl #2]
13318
+ str r6, [r1, r0, lsl #2]
13319
+ ldr r1, [r4, #3368]
13320
+ strh r7, [r1, r3, lsl #1] @ movhi
13321
+ adds r3, r3, #1
13322
+ sxth r3, r3
13323
+ b .L2067
13324
+.L2063:
13325
+ ldrh r3, [r5, #2438]
13326
+ cmp r3, #0
13327
+ beq .L2085
13328
+ ldrh r0, [r5, #2412]
13329
+.L2070:
13330
+ sxth r3, r2
13331
+ cmp r3, r0
13332
+ mov r5, r3
13333
+ bge .L2085
13334
+ ldrh r6, [r1, r3, lsl #1]
13335
+ adds r2, r2, #1
13336
+ cmp r6, #0
13337
+ beq .L2070
13338
+ movs r0, #0
13339
+.L2071:
13340
+ ldrh r2, [fp, #2412]
13341
+ cmp r3, r2
13342
+ bge .L2085
13343
+ ldr r2, [fp, #2440]
13344
+ subs r1, r3, r5
13345
+ ldrh r6, [r2, r3, lsl #1]
13346
+ strh r6, [r2, r1, lsl #1] @ movhi
13347
+ ldr r2, [r4, #3380]
13348
+ ldr r6, [r2, r3, lsl #2]
13349
+ str r6, [r2, r1, lsl #2]
13350
+ ldr r2, [fp, #2440]
13351
+ strh r0, [r2, r3, lsl #1] @ movhi
13352
+ adds r3, r3, #1
13353
+ sxth r3, r3
13354
+ b .L2071
1304513355 .fnend
1304613356 .size FtlScanSysBlk, .-FtlScanSysBlk
1304713357 .align 1
1304813358 .global FtlLoadSysInfo
13359
+ .syntax unified
1304913360 .thumb
1305013361 .thumb_func
13362
+ .fpu softvfp
1305113363 .type FtlLoadSysInfo, %function
1305213364 FtlLoadSysInfo:
1305313365 .fnstart
13054
- @ args = 0, pretend = 0, frame = 16
13366
+ @ args = 0, pretend = 0, frame = 8
1305513367 @ frame_needed = 0, uses_anonymous_args = 0
1305613368 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1305713369 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1305813370 movs r1, #0
13059
- ldr r4, .L2181
13060
- .pad #44
13061
- sub sp, sp, #44
13062
- ldr r7, .L2181+4
13063
- ldr r5, .L2181+8
13371
+ ldr r4, .L2128
13372
+ .pad #36
13373
+ sub sp, sp, #36
13374
+ ldr r5, .L2128+4
1306413375 ldr r3, [r4, #3316]
13065
- ldrh r2, [r7, #2328]
13066
- ldr r0, [r4, #296]
13067
- str r3, [r5, #1256]
13376
+ ldr r6, .L2128+8
13377
+ ldrh r2, [r5, #2332]
13378
+ ldr r0, [r4, #300]
13379
+ str r3, [r6, #1264]
1306813380 ldr r3, [r4, #3340]
1306913381 lsls r2, r2, #1
13070
- str r3, [r5, #1260]
13382
+ str r3, [r6, #1268]
1307113383 bl ftl_memset
1307213384 ldrh r0, [r4, #540]
1307313385 movw r3, #65535
1307413386 cmp r0, r3
13075
- bne .L2154
13076
-.L2165:
13387
+ bne .L2101
13388
+.L2112:
1307713389 mov r0, #-1
13078
- b .L2155
13079
-.L2154:
13390
+.L2100:
13391
+ add sp, sp, #36
13392
+ @ sp needed
13393
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13394
+.L2101:
1308013395 movs r1, #1
13081
- mov r8, r5
13396
+ ldr fp, .L2128+36
1308213397 bl FtlGetLastWrittenPage
13083
- ldrh r10, [r4, #540]
13084
- uxth r6, r0
13398
+ ldrsh r9, [r4, #540]
13399
+ add r10, r6, #1256
13400
+ sxth r7, r0
1308513401 adds r0, r0, #1
1308613402 strh r0, [r4, #542] @ movhi
13087
-.L2156:
13088
- sxth r3, r6
13089
- cmp r3, #0
13090
- blt .L2164
13091
- sxth fp, r10
13092
- movs r1, #1
13093
- ldr r0, .L2181+12
13094
- orr r3, r3, fp, lsl #10
13095
- str r3, [r5, #1252]
13403
+.L2103:
13404
+ cmp r7, #0
13405
+ blt .L2111
13406
+ orr r3, r7, r9, lsl #10
13407
+ movs r2, #1
13408
+ mov r1, r2
13409
+ str r3, [r6, #1260]
13410
+ mov r0, r10
1309613411 ldr r3, [r4, #3316]
13097
- mov r2, r1
13098
- ldr r9, .L2181
13099
- str r3, [r5, #1256]
13412
+ str r3, [r6, #1264]
1310013413 bl FlashReadPages
13101
- ldrb r3, [r7] @ zero_extendqisi2
13414
+ ldrb r3, [r5, #36] @ zero_extendqisi2
1310213415 cmp r3, #0
13103
- beq .L2157
13104
- ldr r3, [r8, #1260]
13105
- ldr r2, [r3, #12]
13106
- cmp r2, #0
13107
- beq .L2157
13108
- ldr ip, [r8, #1256]
13109
- str r3, [sp, #32]
13110
- ldr r3, .L2181+4
13111
- mov r0, ip
13112
- str r2, [sp, #36]
13113
- str ip, [sp, #28]
13114
- ldrh r1, [r3, #2398]
13416
+ beq .L2104
13417
+ ldr r8, [r6, #1268]
13418
+ ldr r3, [r8, #12]
13419
+ str r3, [sp, #28]
13420
+ cbz r3, .L2104
13421
+ ldr r2, [r6, #1264]
13422
+ ldrh r1, [r5, #2400]
13423
+ mov r0, r2
13424
+ str r2, [sp, #24]
1311513425 bl js_hash
13116
- ldr r2, [sp, #36]
13117
- cmp r2, r0
13118
- beq .L2157
13119
- ldr ip, [sp, #28]
13120
- ldr r3, [sp, #32]
13121
- cbnz r6, .L2158
13122
- ldrh r1, [r9, #544]
13123
- cmp fp, r1
13124
- beq .L2158
13125
- ldr r0, [r3]
13126
- ldrh r1, [r9, #540]
13127
- str r0, [sp]
13128
- ldr r0, [r3, #4]
13129
- str r0, [sp, #4]
13130
- ldr r3, [r3, #8]
13131
- str r2, [sp, #12]
13132
- ldr r0, .L2181+16
13426
+ ldr r3, [sp, #28]
13427
+ cmp r3, r0
13428
+ beq .L2104
13429
+ cbnz r7, .L2105
13430
+ ldrh r1, [r4, #544]
13431
+ ldr r2, [sp, #24]
13432
+ cmp r9, r1
13433
+ beq .L2105
13434
+ ldr r2, [r2]
13435
+ mov r0, fp
13436
+ str r3, [sp, #12]
13437
+ ldrh r1, [r4, #540]
13438
+ str r2, [sp, #16]
13439
+ ldr r3, [r8, #8]
13440
+ ldr r2, [r6, #1256]
1313313441 str r3, [sp, #8]
13134
- ldr r3, [ip]
13135
- str r3, [sp, #16]
13136
- ldr r3, [r8, #1252]
13137
- ldr r2, [r8, #1248]
13442
+ ldr r3, [r8, #4]
13443
+ str r3, [sp, #4]
13444
+ ldr r3, [r8]
13445
+ str r3, [sp]
13446
+ ldr r3, [r6, #1260]
1313813447 bl printk
13139
- ldr r3, .L2181+4
13140
- ldrh r10, [r9, #544]
13141
- ldrh r6, [r3, #2390]
13142
- b .L2160
13143
-.L2158:
13448
+ ldrsh r9, [r4, #544]
13449
+ ldrh r7, [r5, #2392]
13450
+.L2107:
13451
+ subs r7, r7, #1
13452
+ sxth r7, r7
13453
+ b .L2103
13454
+.L2105:
1314413455 mov r3, #-1
13145
- str r3, [r5, #1248]
13146
-.L2157:
13147
- ldr r3, [r5, #1248]
13456
+ str r3, [r6, #1256]
13457
+.L2104:
13458
+ ldr r3, [r6, #1256]
1314813459 adds r3, r3, #1
13149
- beq .L2160
13460
+ beq .L2107
1315013461 ldr r3, [r4, #3316]
13151
- ldr r2, .L2181+20
13462
+ ldr r2, .L2128+12
1315213463 ldr r3, [r3]
1315313464 cmp r3, r2
13154
- bne .L2160
13155
- ldr r3, .L2181
13156
- ldr r3, [r3, #3340]
13465
+ bne .L2107
13466
+ ldr r3, [r4, #3340]
1315713467 ldrh r2, [r3]
1315813468 movw r3, #61604
1315913469 cmp r2, r3
13160
- bne .L2160
13161
-.L2164:
13162
- ldr r6, .L2181
13470
+ bne .L2107
13471
+.L2111:
1316313472 movs r2, #48
13164
- ldr r1, [r5, #1256]
13165
- add r0, r6, #240
13166
- ldr r8, .L2181+4
13473
+ ldr r1, [r6, #1264]
13474
+ ldr r0, .L2128+16
1316713475 bl ftl_memcpy
13168
- ldrh r2, [r7, #2328]
13169
- ldr r1, [r5, #1256]
13170
- ldr r0, [r4, #296]
13171
- adds r1, r1, #48
13476
+ ldrh r2, [r5, #2332]
13477
+ ldr r1, [r6, #1264]
13478
+ ldr r0, [r4, #300]
1317213479 lsls r2, r2, #1
13480
+ adds r1, r1, #48
1317313481 bl ftl_memcpy
13174
- ldrh r2, [r7, #2328]
13175
- ldr r1, [r5, #1256]
13176
- ldr r0, [r4, #472]
13177
- lsls r3, r2, #1
13178
- lsrs r2, r2, #3
13179
- adds r3, r3, #51
13482
+ ldrh r1, [r5, #2332]
13483
+ ldr r3, [r6, #1264]
13484
+ ldr r0, [r5, #32]
13485
+ lsrs r2, r1, #3
13486
+ lsls r1, r1, #1
13487
+ adds r1, r1, #51
1318013488 adds r2, r2, #4
13181
- bic r3, r3, #3
13489
+ bic r1, r1, #3
1318213490 add r1, r1, r3
1318313491 bl ftl_memcpy
13184
- ldrh r3, [r7, #2432]
13185
- cbz r3, .L2162
13186
- ldrh r2, [r8, #2328]
13187
- ldr r0, [r6, #3392]
13188
- lsrs r3, r2, #3
13189
- add r3, r3, r2, lsl #1
13190
- ldr r2, .L2181+8
13492
+ ldrh r3, [r5, #2436]
13493
+ cbz r3, .L2109
13494
+ ldrh r1, [r5, #2332]
13495
+ ldrh r2, [r5, #2428]
13496
+ ldr r0, [r4, #3392]
13497
+ lsrs r3, r1, #3
13498
+ lsls r2, r2, #2
13499
+ add r3, r3, r1, lsl #1
13500
+ ldr r1, [r6, #1264]
1319113501 adds r3, r3, #52
1319213502 ubfx r3, r3, #2, #14
13193
- ldr r1, [r2, #1256]
13194
- ldrh r2, [r8, #2424]
1319513503 add r1, r1, r3, lsl #2
13196
- lsls r2, r2, #2
1319713504 bl ftl_memcpy
13198
- b .L2162
13199
-.L2160:
13200
- subs r6, r6, #1
13201
- uxth r6, r6
13202
- b .L2156
13203
-.L2162:
13204
- ldr r2, [r4, #240]
13205
- ldr r3, .L2181+20
13206
- ldr r6, .L2181
13505
+.L2109:
13506
+ ldr r2, [r4, #244]
13507
+ ldr r3, .L2128+12
1320713508 cmp r2, r3
13208
- bne .L2165
13209
- ldrb r0, [r6, #250] @ zero_extendqisi2
13210
- ldrh r1, [r7, #2342]
13211
- ldrh r2, [r6, #248]
13212
- cmp r0, r1
13213
- ldr r3, .L2181+4
13214
- strh r2, [r6, #546] @ movhi
13215
- bne .L2165
13216
- ldrh r1, [r3, #2388]
13217
- ldrh r0, [r3, #2394]
13218
- str r2, [r5, #1284]
13219
- muls r1, r2, r1
13220
- str r1, [r3, #2448]
13221
- muls r1, r0, r1
13222
- ldrh r0, [r3, #2458]
13223
- str r1, [r3, #2428]
13224
- ldr r1, [r3, #2332]
13225
- subs r0, r1, r0
13226
- ldrh r1, [r3, #2320]
13509
+ bne .L2112
13510
+ ldrb r1, [r4, #254] @ zero_extendqisi2
13511
+ ldrh r3, [r5, #2346]
13512
+ ldrh r2, [r4, #252]
13513
+ cmp r1, r3
13514
+ strh r2, [r4, #546] @ movhi
13515
+ bne .L2112
13516
+ ldrh r3, [r5, #2390]
13517
+ ldrh r1, [r5, #2396]
13518
+ ldr r0, [r5, #2336]
13519
+ str r2, [r6, #1292]
13520
+ muls r3, r2, r3
13521
+ str r3, [r5, #2452]
13522
+ muls r3, r1, r3
13523
+ ldrh r1, [r5, #2324]
13524
+ str r3, [r5, #2432]
13525
+ ldrh r3, [r5, #2462]
13526
+ subs r0, r0, r3
1322713527 subs r0, r0, r2
1322813528 bl __aeabi_uidiv
13229
- ldrh r3, [r6, #256]
13230
- ldrh r1, [r6, #254]
13529
+ ldrh r3, [r4, #260]
13530
+ strh r0, [r4, #536] @ movhi
13531
+ ldrh r1, [r4, #258]
1323113532 lsrs r2, r3, #6
13232
- strh r2, [r6, #318] @ movhi
13233
- ldrh r2, [r6, #258]
1323413533 and r3, r3, #63
13235
- strb r3, [r6, #322]
13236
- ldrb r3, [r6, #251] @ zero_extendqisi2
13237
- strh r2, [r6, #364] @ movhi
13238
- ldrh r2, [r6, #260]
13239
- strb r3, [r6, #324]
13534
+ strb r3, [r4, #326]
13535
+ strh r2, [r4, #322] @ movhi
13536
+ ldrh r2, [r4, #262]
13537
+ ldrb r3, [r4, #255] @ zero_extendqisi2
13538
+ strh r1, [r4, #320] @ movhi
13539
+ strh r2, [r4, #368] @ movhi
13540
+ ldrh r2, [r4, #264]
13541
+ strb r3, [r4, #328]
1324013542 movw r3, #65535
13241
- strh r1, [r6, #316] @ movhi
13242
- strh r3, [r6, #556] @ movhi
13543
+ strh r3, [r4, #556] @ movhi
1324313544 movs r3, #0
13244
- strh r3, [r6, #558] @ movhi
13245
- strb r3, [r6, #562]
13246
- strb r3, [r6, #564]
13247
- str r3, [r6, #496]
13248
- strh r0, [r6, #536] @ movhi
13545
+ strh r3, [r4, #558] @ movhi
1324913546 lsrs r0, r2, #6
1325013547 and r2, r2, #63
13251
- strb r2, [r6, #370]
13252
- ldrb r2, [r6, #252] @ zero_extendqisi2
13253
- strh r0, [r6, #366] @ movhi
13254
- strb r2, [r6, #372]
13255
- ldrh r2, [r6, #262]
13256
- strh r2, [r6, #412] @ movhi
13257
- ldrh r2, [r6, #264]
13548
+ strb r2, [r4, #374]
13549
+ ldrb r2, [r4, #256] @ zero_extendqisi2
13550
+ strh r0, [r4, #370] @ movhi
13551
+ strb r3, [r4, #562]
13552
+ strb r2, [r4, #376]
13553
+ ldrh r2, [r4, #266]
13554
+ strb r3, [r4, #564]
13555
+ strh r2, [r4, #416] @ movhi
13556
+ ldrh r2, [r4, #268]
1325813557 lsrs r0, r2, #6
1325913558 and r2, r2, #63
13260
- strb r2, [r6, #418]
13261
- ldrb r2, [r6, #253] @ zero_extendqisi2
13262
- strh r0, [r6, #414] @ movhi
13263
- strb r2, [r6, #420]
13264
- str r3, [r6, #484]
13265
- ldr r2, [r6, #272]
13266
- str r3, [r6, #476]
13267
- str r3, [r6, #492]
13268
- str r3, [r6, #520]
13269
- str r3, [r6, #528]
13270
- str r3, [r6, #488]
13271
- ldr r3, [r6, #280]
13272
- str r2, [r6, #516]
13273
- ldr r2, [r6, #508]
13559
+ strb r2, [r4, #422]
13560
+ ldrb r2, [r4, #257] @ zero_extendqisi2
13561
+ strh r0, [r4, #418] @ movhi
13562
+ strb r2, [r4, #424]
13563
+ str r3, [r4, #496]
13564
+ ldr r2, [r4, #276]
13565
+ str r3, [r4, #484]
13566
+ str r3, [r4, #476]
13567
+ str r3, [r4, #492]
13568
+ str r2, [r4, #516]
13569
+ str r3, [r4, #520]
13570
+ ldr r2, [r4, #508]
13571
+ str r3, [r4, #528]
13572
+ str r3, [r4, #488]
13573
+ ldr r3, [r4, #284]
1327413574 cmp r3, r2
1327513575 ldr r2, [r4, #512]
1327613576 it hi
13277
- strhi r3, [r6, #508]
13278
- ldr r3, [r4, #276]
13577
+ strhi r3, [r4, #508]
13578
+ ldr r3, [r4, #280]
1327913579 cmp r3, r2
13280
- itt hi
13281
- ldrhi r2, .L2181
13282
- strhi r3, [r2, #512]
13580
+ it hi
13581
+ strhi r3, [r4, #512]
1328313582 movw r3, #65535
1328413583 cmp r1, r3
13285
- beq .L2168
13286
- ldr r0, .L2181+24
13584
+ beq .L2115
13585
+ ldr r0, .L2128+20
1328713586 bl make_superblock
13288
-.L2168:
13289
- ldrh r2, [r4, #364]
13587
+.L2115:
13588
+ ldrh r2, [r4, #368]
1329013589 movw r3, #65535
1329113590 cmp r2, r3
13292
- beq .L2169
13293
- ldr r0, .L2181+28
13591
+ beq .L2116
13592
+ ldr r0, .L2128+24
1329413593 bl make_superblock
13295
-.L2169:
13296
- ldrh r2, [r4, #412]
13594
+.L2116:
13595
+ ldrh r2, [r4, #416]
1329713596 movw r3, #65535
1329813597 cmp r2, r3
13299
- beq .L2170
13300
- ldr r0, .L2181+32
13598
+ beq .L2117
13599
+ ldr r0, .L2128+28
1330113600 bl make_superblock
13302
-.L2170:
13601
+.L2117:
1330313602 ldrh r2, [r4, #556]
1330413603 movw r3, #65535
1330513604 cmp r2, r3
13306
- beq .L2171
13307
- ldr r0, .L2181+36
13605
+ beq .L2118
13606
+ ldr r0, .L2128+32
1330813607 bl make_superblock
13309
-.L2171:
13608
+.L2118:
1331013609 movs r0, #0
13311
-.L2155:
13312
- add sp, sp, #44
13313
- @ sp needed
13314
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13315
-.L2182:
13610
+ b .L2100
13611
+.L2129:
1331613612 .align 2
13317
-.L2181:
13613
+.L2128:
1331813614 .word .LANCHOR2
1331913615 .word .LANCHOR0
1332013616 .word .LANCHOR4
13321
- .word .LANCHOR4+1248
13322
- .word .LC109
1332313617 .word 1179929683
13324
- .word .LANCHOR2+316
13325
- .word .LANCHOR2+364
13326
- .word .LANCHOR2+412
13618
+ .word .LANCHOR2+244
13619
+ .word .LANCHOR2+320
13620
+ .word .LANCHOR2+368
13621
+ .word .LANCHOR2+416
1332713622 .word .LANCHOR2+556
13623
+ .word .LC109
1332813624 .fnend
1332913625 .size FtlLoadSysInfo, .-FtlLoadSysInfo
1333013626 .align 1
1333113627 .global FtlDumpBlockInfo
13628
+ .syntax unified
1333213629 .thumb
1333313630 .thumb_func
13631
+ .fpu softvfp
1333413632 .type FtlDumpBlockInfo, %function
1333513633 FtlDumpBlockInfo:
1333613634 .fnstart
....@@ -13339,151 +13637,149 @@
1333913637 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1334013638 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1334113639 ubfx r0, r0, #10, #16
13640
+ ldr r4, .L2144
1334213641 .pad #100
1334313642 sub sp, sp, #100
13344
- mov r8, r1
13643
+ mov r9, r1
13644
+ ldr r7, .L2144+4
1334513645 bl P2V_block_in_plane
13346
- ldr r4, .L2199
13347
- ldr r7, .L2199+4
13348
- ldr r1, .L2199+8
13349
- ldrh r9, [r4, #2388]
13646
+ ldr r1, .L2144+8
1335013647 mov r6, r0
13351
- ldr r0, .L2199+12
13648
+ ldr r0, .L2144+12
13649
+ ldrh r8, [r4, #2390]
1335213650 bl printk
13353
- ldr r3, [r7, #296]
13651
+ ldr r3, [r7, #300]
1335413652 mov r1, r6
13355
- ldr r0, .L2199+16
13653
+ ldr r0, .L2144+16
1335613654 ldrh r2, [r3, r6, lsl #1]
1335713655 bl printk
1335813656 add r0, sp, #96
1335913657 strh r6, [r0, #-48]! @ movhi
1336013658 bl make_superblock
13361
- ldrb r5, [r4, #144] @ zero_extendqisi2
13659
+ ldrb r5, [r4, #152] @ zero_extendqisi2
1336213660 str r7, [sp, #44]
13363
- cbz r5, .L2184
13364
- cmp r8, #0
13365
- bne .L2195
13661
+ cbz r5, .L2131
13662
+ cmp r9, #0
13663
+ bne .L2142
1336613664 mov r0, r6
1336713665 bl ftl_get_blk_mode
1336813666 cmp r0, #1
1336913667 mov r5, r0
13370
- bne .L2184
13371
- ldrh r9, [r4, #2390]
13372
- b .L2184
13373
-.L2195:
13374
- movs r5, #0
13375
-.L2184:
13376
- ldr r0, .L2199+20
13668
+ bne .L2131
13669
+ ldrh r8, [r4, #2392]
13670
+.L2131:
13671
+ ldr r9, .L2144
13672
+ mov r2, r8
13673
+ ldrh r3, [r4, #2390]
1337713674 mov r1, r5
13378
- mov r2, r9
13379
- ldrh r3, [r4, #2388]
13675
+ ldr r0, .L2144+20
13676
+ mov r10, #36
1338013677 bl printk
13381
- ldr r10, .L2199
13382
- movs r6, #0
13383
-.L2185:
13384
- ldr r3, .L2199+4
13385
- movs r2, #0
13386
- ldrh fp, [r10, #2320]
13387
- add lr, sp, #62
13388
- ldrh r0, [r10, #2400]
13389
- mov r8, #36
13390
- ldr r3, [r3, #3304]
13391
- mov r4, r2
13392
- movw ip, #65535
13678
+ movs r3, #0
1339313679 str r3, [sp, #28]
13394
- ldr r3, .L2199+4
13395
- ldr r3, [r3, #1144]
13396
- str r3, [sp, #32]
13397
- ldrh r3, [r10, #2398]
13398
- str r3, [sp, #36]
13399
- ldr r3, .L2199+4
13680
+.L2132:
13681
+ ldr r3, .L2144+4
13682
+ add ip, sp, #62
13683
+ ldrh fp, [r9, #2324]
13684
+ movw lr, #65535
13685
+ ldrh r7, [r9, #2402]
13686
+ ldr r2, [r3, #1144]
13687
+ ldr r0, [r3, #3304]
1340013688 ldr r3, [r3, #1148]
13689
+ str r2, [sp, #32]
13690
+ ldrh r2, [r9, #2400]
1340113691 str r3, [sp, #40]
13402
-.L2186:
13692
+ str r2, [sp, #36]
13693
+ movs r2, #0
13694
+ mov r4, r2
13695
+.L2133:
1340313696 uxth r3, r2
13404
- cmp r3, fp
13405
- bcs .L2197
13406
- ldrh r3, [lr, #2]!
13407
- cmp r3, ip
13408
- beq .L2187
13409
- ldr r1, [sp, #28]
13697
+ cmp fp, r3
13698
+ bhi .L2137
13699
+ ldr fp, .L2144+24
13700
+ movs r7, #0
13701
+ mov r2, r5
13702
+ mov r1, r4
13703
+ bl FlashReadPages
13704
+.L2138:
13705
+ uxth r3, r7
13706
+ cmp r4, r3
13707
+ bhi .L2139
13708
+ ldr r6, [sp, #28]
13709
+ adds r6, r6, #1
13710
+ uxth r3, r6
13711
+ cmp r8, r3
13712
+ str r3, [sp, #28]
13713
+ bne .L2132
13714
+.L2140:
13715
+ movs r0, #0
13716
+ add sp, sp, #100
13717
+ @ sp needed
13718
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13719
+.L2142:
13720
+ movs r5, #0
13721
+ b .L2131
13722
+.L2137:
13723
+ ldrh r3, [ip, #2]!
13724
+ cmp r3, lr
13725
+ beq .L2134
13726
+ ldr r6, [sp, #28]
13727
+ mla r1, r10, r4, r0
1341013728 orr r3, r6, r3, lsl #10
13411
- ldr r7, [sp, #32]
13412
- mla r1, r8, r4, r1
13729
+ ldr r6, [sp, #32]
1341313730 str r3, [r1, #4]
1341413731 ldr r3, [sp, #36]
1341513732 muls r3, r4, r3
1341613733 it mi
1341713734 addmi r3, r3, #3
1341813735 bic r3, r3, #3
13419
- add r3, r3, r7
13736
+ add r3, r3, r6
13737
+ ldr r6, [sp, #40]
1342013738 str r3, [r1, #8]
13421
- mov r3, r0
13739
+ mov r3, r7
1342213740 muls r3, r4, r3
1342313741 add r4, r4, #1
1342413742 it mi
1342513743 addmi r3, r3, #3
13426
- ldr r7, [sp, #40]
13427
- bic r3, r3, #3
1342813744 uxth r4, r4
13429
- add r3, r3, r7
13745
+ bic r3, r3, #3
13746
+ add r3, r3, r6
1343013747 str r3, [r1, #12]
13431
-.L2187:
13748
+.L2134:
1343213749 adds r2, r2, #1
13433
- b .L2186
13434
-.L2197:
13435
- ldr r3, .L2199+4
13436
- mov r1, r4
13437
- mov r2, r5
13438
- mov r8, #0
13439
- mov fp, #36
13440
- ldr r0, [r3, #3304]
13441
- bl FlashReadPages
13442
-.L2191:
13443
- uxth r3, r8
13444
- cmp r3, r4
13445
- bcs .L2198
13750
+ b .L2133
13751
+.L2139:
1344613752 ldr r3, [sp, #44]
13447
- mul r2, fp, r8
13753
+ mul r0, r10, r7
1344813754 ldrh r1, [sp, #48]
13755
+ adds r7, r7, #1
1344913756 ldr ip, [r3, #3304]
13450
- add r8, r8, #1
13451
- add lr, ip, r2
13452
- ldr r3, [lr, #12]
13453
- ldr r0, [lr, #8]
13454
- ldr r7, [r3]
13455
- str r7, [sp]
13456
- ldr r7, [r3, #4]
13457
- str r7, [sp, #4]
13458
- ldr r7, [r3, #8]
13459
- str r7, [sp, #8]
13460
- ldr r3, [r3, #12]
13461
- str r3, [sp, #12]
13462
- ldr r3, [r0]
13463
- str r3, [sp, #16]
13464
- ldr r3, [r0, #4]
13465
- ldr r0, .L2199+24
13466
- str r3, [sp, #20]
13467
- ldr r2, [ip, r2]
13468
- ldr r3, [lr, #4]
13757
+ add r2, ip, r0
13758
+ ldr lr, [r2, #8]
13759
+ ldr r3, [r2, #12]
13760
+ ldr r6, [lr, #4]
13761
+ str r6, [sp, #20]
13762
+ ldr r6, [lr]
13763
+ str r6, [sp, #16]
13764
+ ldr r6, [r3, #12]
13765
+ str r6, [sp, #12]
13766
+ ldr r6, [r3, #8]
13767
+ str r6, [sp, #8]
13768
+ ldr r6, [r3, #4]
13769
+ str r6, [sp, #4]
13770
+ ldr r3, [r3]
13771
+ str r3, [sp]
13772
+ ldr r3, [r2, #4]
13773
+ ldr r2, [ip, r0]
13774
+ mov r0, fp
1346913775 bl printk
13470
- b .L2191
13471
-.L2198:
13472
- adds r6, r6, #1
13473
- uxth r6, r6
13474
- cmp r6, r9
13475
- bne .L2185
13476
-.L2193:
13477
- movs r0, #0
13478
- add sp, sp, #100
13479
- @ sp needed
13480
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13481
-.L2200:
13776
+ b .L2138
13777
+.L2145:
1348213778 .align 2
13483
-.L2199:
13779
+.L2144:
1348413780 .word .LANCHOR0
1348513781 .word .LANCHOR2
13486
- .word .LANCHOR3+148
13782
+ .word .LANCHOR3+141
1348713783 .word .LC110
1348813784 .word .LC111
1348913785 .word .LC112
....@@ -13492,172 +13788,172 @@
1349213788 .size FtlDumpBlockInfo, .-FtlDumpBlockInfo
1349313789 .align 1
1349413790 .global FtlScanAllBlock
13791
+ .syntax unified
1349513792 .thumb
1349613793 .thumb_func
13794
+ .fpu softvfp
1349713795 .type FtlScanAllBlock, %function
1349813796 FtlScanAllBlock:
1349913797 .fnstart
13500
- @ args = 0, pretend = 0, frame = 64
13798
+ @ args = 0, pretend = 0, frame = 56
1350113799 @ frame_needed = 0, uses_anonymous_args = 0
1350213800 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1350313801 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13504
- .pad #92
13505
- sub sp, sp, #92
13506
- ldr r0, .L2217
13507
- mov r8, #0
13508
- ldr r1, .L2217+4
13802
+ movs r7, #0
13803
+ ldr r5, .L2158
13804
+ .pad #84
13805
+ sub sp, sp, #84
13806
+ ldr r1, .L2158+4
13807
+ ldr r0, .L2158+8
1350913808 bl printk
13510
- ldr r5, .L2217+8
13511
- mov r7, r5
13512
-.L2202:
13513
- ldr r3, .L2217+12
13514
- uxth r4, r8
13515
- ldrh r3, [r3, #2330]
13516
- cmp r3, r4
13517
- bls .L2213
13518
- add r9, sp, #88
13519
- mov r0, r4
13520
- mov fp, #36
13809
+.L2147:
13810
+ ldr r3, .L2158+12
13811
+ uxth r0, r7
13812
+ ldrh r3, [r3, #2334]
13813
+ cmp r3, r0
13814
+ bhi .L2157
13815
+ movs r0, #0
13816
+ add sp, sp, #84
13817
+ @ sp needed
13818
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13819
+.L2157:
13820
+ add r4, sp, #80
1352113821 movw r10, #65535
13522
- strh r4, [r9, #-48]! @ movhi
13822
+ strh r0, [r4, #-48]! @ movhi
13823
+ mov fp, #36
1352313824 bl ftl_get_blk_mode
13524
- ldr r2, [r5, #296]
13525
- mov r1, r4
13526
- ldrh r2, [r2, r4, lsl #1]
13825
+ ldr r2, [r5, #300]
13826
+ uxth r1, r7
1352713827 mov r3, r0
13528
- ldr r0, .L2217+16
13828
+ ldr r0, .L2158+16
13829
+ ldrh r2, [r2, r1, lsl #1]
1352913830 bl printk
13530
- mov r0, r9
13831
+ mov r0, r4
1353113832 bl make_superblock
13532
- ldr r3, .L2217+12
13833
+ ldr r3, .L2158+12
1353313834 movs r2, #0
13835
+ ldr r0, [r5, #3304]
13836
+ add r8, sp, #46
1353413837 ldr r9, [r5, #1148]
13535
- ldrh lr, [r3, #2320]
1353613838 mov r4, r2
13537
- ldr r3, [r5, #3304]
13538
- str r3, [sp, #28]
13539
- add ip, sp, #54
13839
+ ldrh ip, [r3, #2324]
1354013840 ldr r3, [r5, #1144]
13541
- str r3, [sp, #32]
13542
- ldr r3, .L2217+12
13543
- ldrh r0, [r3, #2398]
13841
+ str r3, [sp, #24]
13842
+ ldr r3, .L2158+12
1354413843 ldrh r3, [r3, #2400]
13545
- str r3, [sp, #36]
13546
-.L2203:
13844
+ str r3, [sp, #28]
13845
+ ldr r3, .L2158+12
13846
+ ldrh lr, [r3, #2402]
13847
+.L2148:
1354713848 uxth r3, r2
13548
- cmp r3, lr
13549
- bcs .L2214
13550
- ldrh r3, [ip, #2]!
13849
+ cmp ip, r3
13850
+ bhi .L2152
13851
+ ldr r10, .L2158+20
13852
+ mov r8, #0
13853
+ mov r9, #36
13854
+ movs r2, #0
13855
+ mov r1, r4
13856
+ bl FlashReadPages
13857
+.L2153:
13858
+ uxth r3, r8
13859
+ cmp r4, r3
13860
+ bhi .L2154
13861
+ ldr r10, .L2158+24
13862
+ mov r8, #0
13863
+ mov r9, #36
13864
+ movs r2, #1
13865
+ mov r1, r4
13866
+ ldr r0, [r5, #3304]
13867
+ bl FlashReadPages
13868
+.L2155:
13869
+ uxth r3, r8
13870
+ cmp r4, r3
13871
+ bhi .L2156
13872
+ adds r7, r7, #1
13873
+ b .L2147
13874
+.L2152:
13875
+ ldrh r3, [r8, #2]!
1355113876 cmp r3, r10
13552
- beq .L2204
13553
- ldr r1, [sp, #28]
13877
+ beq .L2149
13878
+ mla r1, fp, r4, r0
13879
+ ldr r6, [sp, #24]
1355413880 lsls r3, r3, #10
13555
- ldr r6, [sp, #32]
13556
- mla r1, fp, r4, r1
1355713881 str r3, [r1, #4]
13558
- mov r3, r0
13882
+ ldr r3, [sp, #28]
1355913883 muls r3, r4, r3
1356013884 it mi
1356113885 addmi r3, r3, #3
1356213886 bic r3, r3, #3
1356313887 add r3, r3, r6
1356413888 str r3, [r1, #8]
13565
- ldr r3, [sp, #36]
13889
+ mov r3, lr
1356613890 muls r3, r4, r3
1356713891 add r4, r4, #1
1356813892 it mi
1356913893 addmi r3, r3, #3
13570
- bic r3, r3, #3
1357113894 uxth r4, r4
13895
+ bic r3, r3, #3
1357213896 add r3, r3, r9
1357313897 str r3, [r1, #12]
13574
-.L2204:
13898
+.L2149:
1357513899 adds r2, r2, #1
13576
- b .L2203
13577
-.L2214:
13578
- ldr r0, [r7, #3304]
13579
- mov r1, r4
13580
- movs r2, #0
13581
- mov r9, #0
13582
- bl FlashReadPages
13583
- mov r10, #36
13584
-.L2208:
13585
- uxth r3, r9
13586
- cmp r3, r4
13587
- bcs .L2215
13588
- mul r2, r10, r9
13589
- ldr ip, [r7, #3304]
13590
- ldrh r1, [sp, #40]
13591
- add r9, r9, #1
13592
- add lr, ip, r2
13593
- ldr r3, [lr, #12]
13594
- ldr r0, [lr, #8]
13595
- ldr r6, [r3]
13596
- str r6, [sp]
13597
- ldr r6, [r3, #4]
13598
- str r6, [sp, #4]
13599
- ldr r6, [r3, #8]
13600
- str r6, [sp, #8]
13601
- ldr r3, [r3, #12]
13602
- str r3, [sp, #12]
13603
- ldr r3, [r0]
13604
- str r3, [sp, #16]
13605
- ldr r3, [r0, #4]
13606
- ldr r0, .L2217+20
13607
- str r3, [sp, #20]
13608
- ldr r2, [ip, r2]
13609
- ldr r3, [lr, #4]
13610
- bl printk
13611
- b .L2208
13612
-.L2215:
13613
- ldr r0, [r7, #3304]
13614
- mov r1, r4
13615
- movs r2, #1
13616
- mov r9, #0
13617
- bl FlashReadPages
13618
- mov r10, #36
13619
-.L2210:
13620
- uxth r3, r9
13621
- cmp r3, r4
13622
- bcs .L2216
13623
- mul r2, r10, r9
13624
- ldr ip, [r7, #3304]
13625
- ldrh r1, [sp, #40]
13626
- add r9, r9, #1
13627
- add lr, ip, r2
13628
- ldr r3, [lr, #12]
13629
- ldr r0, [lr, #8]
13630
- ldr r6, [r3]
13631
- str r6, [sp]
13632
- ldr r6, [r3, #4]
13633
- str r6, [sp, #4]
13634
- ldr r6, [r3, #8]
13635
- str r6, [sp, #8]
13636
- ldr r3, [r3, #12]
13637
- str r3, [sp, #12]
13638
- ldr r3, [r0]
13639
- str r3, [sp, #16]
13640
- ldr r3, [r0, #4]
13641
- ldr r0, .L2217+24
13642
- str r3, [sp, #20]
13643
- ldr r2, [ip, r2]
13644
- ldr r3, [lr, #4]
13645
- bl printk
13646
- b .L2210
13647
-.L2216:
13900
+ b .L2148
13901
+.L2154:
13902
+ mul r2, r9, r8
13903
+ ldr r0, [r5, #3304]
13904
+ ldrh r1, [sp, #32]
1364813905 add r8, r8, #1
13649
- b .L2202
13650
-.L2213:
13651
- movs r0, #0
13652
- add sp, sp, #92
13653
- @ sp needed
13654
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13655
-.L2218:
13906
+ add lr, r0, r2
13907
+ ldr fp, [lr, #8]
13908
+ ldr r3, [lr, #12]
13909
+ ldr r6, [fp, #4]
13910
+ str r6, [sp, #20]
13911
+ ldr r6, [fp]
13912
+ str r6, [sp, #16]
13913
+ ldr r6, [r3, #12]
13914
+ str r6, [sp, #12]
13915
+ ldr r6, [r3, #8]
13916
+ str r6, [sp, #8]
13917
+ ldr r6, [r3, #4]
13918
+ str r6, [sp, #4]
13919
+ ldr r3, [r3]
13920
+ str r3, [sp]
13921
+ ldr r2, [r0, r2]
13922
+ mov r0, r10
13923
+ ldr r3, [lr, #4]
13924
+ bl printk
13925
+ b .L2153
13926
+.L2156:
13927
+ mul r2, r9, r8
13928
+ ldr r0, [r5, #3304]
13929
+ ldrh r1, [sp, #32]
13930
+ add r8, r8, #1
13931
+ add lr, r0, r2
13932
+ ldr fp, [lr, #8]
13933
+ ldr r3, [lr, #12]
13934
+ ldr r6, [fp, #4]
13935
+ str r6, [sp, #20]
13936
+ ldr r6, [fp]
13937
+ str r6, [sp, #16]
13938
+ ldr r6, [r3, #12]
13939
+ str r6, [sp, #12]
13940
+ ldr r6, [r3, #8]
13941
+ str r6, [sp, #8]
13942
+ ldr r6, [r3, #4]
13943
+ str r6, [sp, #4]
13944
+ ldr r3, [r3]
13945
+ str r3, [sp]
13946
+ ldr r2, [r0, r2]
13947
+ mov r0, r10
13948
+ ldr r3, [lr, #4]
13949
+ bl printk
13950
+ b .L2155
13951
+.L2159:
1365613952 .align 2
13657
-.L2217:
13658
- .word .LC110
13659
- .word .LANCHOR3+168
13953
+.L2158:
1366013954 .word .LANCHOR2
13955
+ .word .LANCHOR3+158
13956
+ .word .LC110
1366113957 .word .LANCHOR0
1366213958 .word .LC114
1366313959 .word .LC115
....@@ -13666,129 +13962,131 @@
1366613962 .size FtlScanAllBlock, .-FtlScanAllBlock
1366713963 .align 1
1366813964 .global ftl_scan_all_ppa
13965
+ .syntax unified
1366913966 .thumb
1367013967 .thumb_func
13968
+ .fpu softvfp
1367113969 .type ftl_scan_all_ppa, %function
1367213970 ftl_scan_all_ppa:
1367313971 .fnstart
13674
- @ args = 0, pretend = 0, frame = 8
13972
+ @ args = 0, pretend = 0, frame = 0
1367513973 @ frame_needed = 0, uses_anonymous_args = 0
1367613974 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1367713975 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13678
- .pad #36
13679
- sub sp, sp, #36
13680
- ldr r6, .L2237
13681
- ldr r5, .L2237+4
13682
- ldrh r4, [r6, #2386]
13683
- mov r10, r6
13976
+ .pad #28
13977
+ sub sp, sp, #28
13978
+ ldr r5, .L2176
13979
+ ldr r6, .L2176+4
13980
+ ldrh r4, [r5, #2388]
1368413981 subs r4, r4, #16
13685
-.L2220:
13686
- ldrh r3, [r6, #2386]
13982
+ lsl r10, r4, #10
13983
+.L2161:
13984
+ ldrh r3, [r5, #2388]
1368713985 cmp r4, r3
13688
- bge .L2235
13689
- uxth r8, r4
13690
- mov r0, r8
13691
- bl ftl_get_blk_mode
13692
- ldrb r3, [r10, #144] @ zero_extendqisi2
13693
- cbz r3, .L2221
13694
- ldrh r3, [r10, #2328]
13695
- cmp r4, r3
13696
- bge .L2222
13697
- ldrh r3, [r10, #2402]
13698
- cmp r4, r3
13699
- blt .L2222
13700
-.L2221:
13701
- cmp r0, #1
13702
- bne .L2223
13703
-.L2222:
13704
- ldrh r7, [r6, #2390]
13705
- mov r9, #-2147483648
13706
- b .L2224
13707
-.L2223:
13708
- ldrh r7, [r6, #2388]
13709
- mov r9, #0
13710
-.L2224:
13711
- ldr r0, .L2237+8
13712
- mov r1, r4
13713
- mov r2, r7
13714
- mov r3, r9
13715
- bl printk
13716
- mov r0, r8
13717
- bl FtlBbmIsBadBlock
13718
- cbz r0, .L2225
13719
- ldr r0, .L2237+12
13720
- mov r1, r4
13721
- mov r2, r7
13722
- mov r3, r9
13723
- bl printk
13724
-.L2225:
13725
- ldr fp, .L2237+32
13726
- lsl ip, r4, #10
13727
- mov r8, #0
13728
-.L2226:
13729
- cmp r8, r7
13730
- beq .L2236
13731
- add r3, r9, ip
13732
- movs r2, #0
13733
- add r3, r3, r8
13734
- str r3, [r5, #1252]
13735
- ldr r3, [fp, #3316]
13736
- movs r1, #1
13737
- ldr r0, .L2237+16
13738
- add r8, r8, #1
13739
- str ip, [sp, #28]
13740
- str r3, [r5, #1256]
13741
- ldr r3, [fp, #3340]
13742
- str r2, [r5, #1248]
13743
- str r3, [r5, #1260]
13744
- bl FlashReadPages
13745
- ldr r3, [r5, #1260]
13746
- ldr r2, [r5, #1256]
13747
- ldr r0, .L2237+20
13748
- ldr r1, [r3, #4]
13749
- str r1, [sp]
13750
- ldr r1, [r3, #8]
13751
- str r1, [sp, #4]
13752
- ldr r1, [r3, #12]
13753
- str r1, [sp, #8]
13754
- ldr r1, [r2]
13755
- str r1, [sp, #12]
13756
- ldr r2, [r2, #4]
13757
- ldr r1, [r5, #1252]
13758
- str r2, [sp, #16]
13759
- ldr r2, [r5, #1248]
13760
- ldr r3, [r3]
13761
- bl printk
13762
- ldr ip, [sp, #28]
13763
- b .L2226
13764
-.L2236:
13765
- adds r4, r4, #1
13766
- b .L2220
13767
-.L2235:
13768
- ldr r0, .L2237+24
13769
- ldr r1, .L2237+28
13770
- add sp, sp, #36
13986
+ blt .L2169
13987
+ ldr r1, .L2176+8
13988
+ ldr r0, .L2176+12
13989
+ add sp, sp, #28
1377113990 @ sp needed
1377213991 pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1377313992 b printk
13774
-.L2238:
13993
+.L2169:
13994
+ uxth r8, r4
13995
+ mov r0, r8
13996
+ bl ftl_get_blk_mode
13997
+ ldrb r3, [r5, #152] @ zero_extendqisi2
13998
+ cbz r3, .L2162
13999
+ ldrh r3, [r5, #2332]
14000
+ cmp r4, r3
14001
+ bge .L2163
14002
+ ldrh r3, [r5, #2404]
14003
+ cmp r4, r3
14004
+ blt .L2163
14005
+.L2162:
14006
+ cmp r0, #1
14007
+ bne .L2164
14008
+.L2163:
14009
+ ldrh r7, [r5, #2392]
14010
+ mov r9, #-2147483648
14011
+.L2165:
14012
+ mov r3, r9
14013
+ mov r2, r7
14014
+ mov r1, r4
14015
+ ldr r0, .L2176+16
14016
+ bl printk
14017
+ mov r0, r8
14018
+ bl FtlBbmIsBadBlock
14019
+ cbz r0, .L2166
14020
+ mov r3, r9
14021
+ mov r2, r7
14022
+ mov r1, r4
14023
+ ldr r0, .L2176+20
14024
+ bl printk
14025
+.L2166:
14026
+ ldr fp, .L2176+32
14027
+ mov r8, #0
14028
+.L2167:
14029
+ cmp r8, r7
14030
+ bne .L2168
14031
+ adds r4, r4, #1
14032
+ add r10, r10, #1024
14033
+ b .L2161
14034
+.L2164:
14035
+ ldrh r7, [r5, #2390]
14036
+ mov r9, #0
14037
+ b .L2165
14038
+.L2168:
14039
+ add r3, r9, r10
14040
+ movs r2, #0
14041
+ add r3, r3, r8
14042
+ movs r1, #1
14043
+ str r3, [r6, #1260]
14044
+ add r8, r8, #1
14045
+ ldr r3, [fp, #3316]
14046
+ ldr r0, .L2176+24
14047
+ str r2, [r6, #1256]
14048
+ str r3, [r6, #1264]
14049
+ ldr r3, [fp, #3340]
14050
+ str r3, [r6, #1268]
14051
+ bl FlashReadPages
14052
+ ldr r2, [r6, #1264]
14053
+ ldr r3, [r6, #1268]
14054
+ ldr r0, .L2176+28
14055
+ ldr r1, [r2, #4]
14056
+ str r1, [sp, #16]
14057
+ ldr r2, [r2]
14058
+ ldr r1, [r6, #1260]
14059
+ str r2, [sp, #12]
14060
+ ldr r2, [r3, #12]
14061
+ str r2, [sp, #8]
14062
+ ldr r2, [r3, #8]
14063
+ str r2, [sp, #4]
14064
+ ldr r2, [r3, #4]
14065
+ str r2, [sp]
14066
+ ldr r2, [r6, #1256]
14067
+ ldr r3, [r3]
14068
+ bl printk
14069
+ b .L2167
14070
+.L2177:
1377514071 .align 2
13776
-.L2237:
14072
+.L2176:
1377714073 .word .LANCHOR0
1377814074 .word .LANCHOR4
14075
+ .word .LANCHOR3+174
14076
+ .word .LC120
1377914077 .word .LC117
1378014078 .word .LC118
13781
- .word .LANCHOR4+1248
14079
+ .word .LANCHOR4+1256
1378214080 .word .LC119
13783
- .word .LC120
13784
- .word .LANCHOR3+184
1378514081 .word .LANCHOR2
1378614082 .fnend
1378714083 .size ftl_scan_all_ppa, .-ftl_scan_all_ppa
1378814084 .align 1
1378914085 .global FlashProgPages
14086
+ .syntax unified
1379014087 .thumb
1379114088 .thumb_func
14089
+ .fpu softvfp
1379214090 .type FlashProgPages, %function
1379314091 FlashProgPages:
1379414092 .fnstart
....@@ -13798,288 +14096,288 @@
1379814096 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1379914097 .pad #76
1380014098 sub sp, sp, #76
13801
- ldr r6, .L2293
14099
+ ldr r5, .L2230
1380214100 mov r4, r0
13803
- str r1, [sp, #8]
1380414101 mov r9, r2
14102
+ str r1, [sp, #8]
14103
+ ldr r6, [r5, #48]
14104
+ ldrb r7, [r5, #36] @ zero_extendqisi2
1380514105 str r3, [sp, #20]
13806
- ldr r5, [r6, #44]
13807
- ldrb r7, [r6] @ zero_extendqisi2
13808
- ldrb r5, [r5, #19] @ zero_extendqisi2
13809
- str r5, [sp, #16]
13810
- ldr r5, .L2293+4
13811
- ldrb r5, [r5, #481] @ zero_extendqisi2
13812
- str r5, [sp, #12]
13813
- cbz r7, .L2240
14106
+ ldrb r6, [r6, #19] @ zero_extendqisi2
14107
+ str r6, [sp, #16]
14108
+ cbnz r7, .L2179
14109
+ ldr r3, .L2230+4
14110
+ ldrb r3, [r3, #477] @ zero_extendqisi2
14111
+ str r3, [sp, #12]
14112
+.L2180:
14113
+ ldr r3, [sp, #8]
14114
+ cmp r7, r3
14115
+ bcc .L2193
14116
+ ldr r7, .L2230+8
14117
+ movs r6, #0
14118
+.L2194:
14119
+ ldrb r3, [r5, #2234] @ zero_extendqisi2
14120
+ cmp r6, r3
14121
+ bcc .L2196
14122
+ ldr r3, [sp, #20]
14123
+ cmp r3, #0
14124
+ bne .L2197
14125
+.L2205:
14126
+ movs r0, #0
14127
+ b .L2178
14128
+.L2179:
1381414129 bl FlashProgSlc2KPages
13815
- b .L2241
13816
-.L2253:
14130
+.L2178:
14131
+ add sp, sp, #76
14132
+ @ sp needed
14133
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14134
+.L2193:
1381714135 movs r3, #36
13818
- mov r1, r9
1381914136 add r2, sp, #28
1382014137 mul r8, r3, r7
1382114138 ldr r3, [sp, #8]
14139
+ mov r1, r9
1382214140 subs r3, r3, r7
13823
- add fp, r4, r8
1382414141 uxtb r3, r3
13825
- str r3, [sp]
14142
+ add fp, r4, r8
1382614143 mov r0, fp
14144
+ str r3, [sp]
1382714145 add r3, sp, #32
1382814146 bl LogAddr2PhyAddr
13829
- ldrb r3, [r6, #2230] @ zero_extendqisi2
14147
+ ldrb r3, [r5, #2234] @ zero_extendqisi2
1383014148 mov r10, r0
1383114149 ldr r0, [sp, #32]
13832
- cmp r0, r3
13833
- bcc .L2242
14150
+ cmp r3, r0
14151
+ bhi .L2182
1383414152 mov r3, #-1
1383514153 str r3, [r4, r8]
13836
-.L2243:
14154
+.L2183:
1383714155 adds r7, r7, #1
13838
-.L2240:
13839
- ldr r3, [sp, #8]
13840
- ldr r8, .L2293
13841
- cmp r7, r3
13842
- bcc .L2253
13843
- b .L2291
13844
-.L2242:
13845
- ldrb r3, [r6, #2240] @ zero_extendqisi2
14156
+ b .L2180
14157
+.L2182:
14158
+ ldrb r3, [r5, #2244] @ zero_extendqisi2
1384614159 cmp r3, #0
13847
- add r3, r6, r0, lsl #4
14160
+ add r3, r5, r0, lsl #4
1384814161 it eq
1384914162 moveq r10, #0
13850
- ldr r3, [r3, #2108]
13851
- cbz r3, .L2245
14163
+ ldr r3, [r3, #2112]
14164
+ cbz r3, .L2185
1385214165 uxtb r0, r0
1385314166 bl FlashWaitCmdDone
13854
-.L2245:
14167
+.L2185:
1385514168 ldr r3, [sp, #32]
13856
- movs r0, #0
13857
- add r2, r6, r3, lsl #4
13858
- addw r1, r2, #2108
13859
- str r0, [r2, #2112]
13860
- ldr r0, [sp, #28]
13861
- str fp, [r2, #2108]
13862
- str r0, [r2, #2104]
13863
- cmp r10, #0
13864
- beq .L2246
13865
- add r2, r8, #36
13866
- add r2, r2, r4
13867
- str r2, [r1, #4]
13868
-.L2246:
13869
- adds r2, r6, r3
13870
- add r3, r6, r3, lsl #4
13871
- ldrb r5, [r2, #2232] @ zero_extendqisi2
13872
- strb r5, [r3, #2100]
13873
- mov r0, r5
13874
- ldrb r3, [r6, #2230] @ zero_extendqisi2
13875
- cmp r3, #1
13876
- bne .L2247
13877
- bl NandcWaitFlashReady
13878
- b .L2248
13879
-.L2247:
13880
- bl NandcFlashCs
13881
- mov r0, r5
13882
- ldr r3, [sp, #32]
14169
+ movs r1, #0
14170
+ add r2, r5, r3, lsl #4
14171
+ str r1, [r2, #2116]
1388314172 ldr r1, [sp, #28]
13884
- add r3, r6, r3, lsl #2
13885
- ldr r2, [r3, #1172]
13886
- adds r2, r2, #0
13887
- it ne
13888
- movne r2, #1
13889
- bl FlashWaitReadyEN
13890
- mov r0, r5
13891
- bl NandcFlashDeCs
13892
-.L2248:
14173
+ str fp, [r2, #2112]
14174
+ str r1, [r2, #2108]
14175
+ cmp r10, #0
14176
+ beq .L2186
14177
+ add r1, r8, #36
14178
+ add r1, r1, r4
14179
+ str r1, [r2, #2116]
14180
+.L2186:
14181
+ adds r2, r5, r3
14182
+ add r3, r5, r3, lsl #4
14183
+ ldrb r6, [r2, #2236] @ zero_extendqisi2
14184
+ strb r6, [r3, #2104]
14185
+ mov r0, r6
14186
+ ldrb r3, [r5, #2234] @ zero_extendqisi2
14187
+ cmp r3, #1
14188
+ bne .L2187
14189
+ bl NandcWaitFlashReady
14190
+.L2188:
1389314191 ldr r3, [sp, #16]
1389414192 subs r3, r3, #1
1389514193 cmp r3, #7
13896
- bhi .L2249
13897
- adds r3, r6, r5
13898
- ldrb r3, [r3, #2064] @ zero_extendqisi2
13899
- cbz r3, .L2249
13900
- mov r0, r5
13901
- ldrb r1, [r6, #1211] @ zero_extendqisi2
13902
- ldr r2, .L2293+8
14194
+ bhi .L2189
14195
+ adds r3, r5, r6
14196
+ ldrb r3, [r3, #2068] @ zero_extendqisi2
14197
+ cbz r3, .L2189
1390314198 movs r3, #0
14199
+ ldr r2, .L2230+12
14200
+ ldrb r1, [r5, #1217] @ zero_extendqisi2
14201
+ mov r0, r6
1390414202 bl HynixSetRRPara
13905
-.L2249:
13906
- mov r0, r5
14203
+.L2189:
14204
+ mov r0, r6
1390714205 bl NandcFlashCs
1390814206 cmp r9, #1
13909
- mov r0, r5
13910
- bne .L2250
13911
- ldrb r3, [r6, #144] @ zero_extendqisi2
13912
- cbz r3, .L2250
14207
+ mov r0, r6
14208
+ bne .L2190
14209
+ ldrb r3, [r5, #152] @ zero_extendqisi2
14210
+ cmp r3, #0
14211
+ beq .L2190
1391314212 bl flash_enter_slc_mode
13914
- b .L2251
13915
-.L2250:
13916
- bl flash_exit_slc_mode
13917
-.L2251:
13918
- mov r0, r5
14213
+.L2191:
1391914214 ldr r1, [sp, #28]
14215
+ mov r0, r6
1392014216 bl FlashProgFirstCmd
1392114217 ldr r3, [fp, #12]
13922
- mov r0, r5
1392314218 movs r1, #1
13924
- str r3, [sp]
1392514219 ldr r2, [sp, #12]
14220
+ mov r0, r6
14221
+ str r3, [sp]
1392614222 ldr r3, [fp, #8]
1392714223 bl NandcXferData
1392814224 cmp r10, #0
13929
- beq .L2252
13930
- mov r0, r5
14225
+ beq .L2192
1393114226 ldr r1, [sp, #28]
14227
+ mov r0, r6
1393214228 bl FlashProgDpFirstCmd
13933
- mov r0, r5
14229
+ ldr r3, [sp, #32]
14230
+ mov r0, r6
14231
+ ldr r1, [sp, #28]
1393414232 add r8, r8, #36
1393514233 add r8, r8, r4
13936
- ldr r3, [sp, #32]
13937
- ldr r1, [sp, #28]
13938
- add r3, r6, r3, lsl #2
13939
- ldr r2, [r3, #1172]
14234
+ add r3, r5, r3, lsl #2
14235
+ ldr r2, [r3, #1180]
1394014236 adds r2, r2, #0
1394114237 it ne
1394214238 movne r2, #1
1394314239 bl FlashWaitReadyEN
13944
- ldr r1, [r6, #4]
13945
- mov r0, r5
13946
- ldr r3, [sp, #28]
14240
+ ldr r3, [r5, #40]
14241
+ mov r0, r6
14242
+ ldr r1, [sp, #28]
1394714243 add r1, r1, r3
1394814244 bl FlashProgDpSecondCmd
1394914245 ldr r3, [r8, #12]
13950
- mov r0, r5
1395114246 movs r1, #1
13952
- str r3, [sp]
1395314247 ldr r2, [sp, #12]
14248
+ mov r0, r6
14249
+ str r3, [sp]
1395414250 ldr r3, [r8, #8]
1395514251 bl NandcXferData
13956
-.L2252:
13957
- mov r0, r5
14252
+.L2192:
1395814253 ldr r1, [sp, #28]
14254
+ mov r0, r6
1395914255 bl FlashProgSecondCmd
13960
- mov r0, r5
13961
- bl NandcFlashDeCs
14256
+ mov r0, r6
1396214257 add r7, r7, r10
13963
- b .L2243
13964
-.L2291:
13965
- movs r5, #0
13966
- addw r7, r8, #2100
13967
- mov r6, r8
13968
-.L2254:
13969
- ldrb r3, [r8, #2230] @ zero_extendqisi2
13970
- cmp r5, r3
13971
- bcs .L2292
13972
- uxtb r0, r5
14258
+ bl NandcFlashDeCs
14259
+ b .L2183
14260
+.L2187:
14261
+ bl NandcFlashCs
14262
+ ldr r3, [sp, #32]
14263
+ mov r0, r6
14264
+ ldr r1, [sp, #28]
14265
+ add r3, r5, r3, lsl #2
14266
+ ldr r2, [r3, #1180]
14267
+ adds r2, r2, #0
14268
+ it ne
14269
+ movne r2, #1
14270
+ bl FlashWaitReadyEN
14271
+ mov r0, r6
14272
+ bl NandcFlashDeCs
14273
+ b .L2188
14274
+.L2190:
14275
+ bl flash_exit_slc_mode
14276
+ b .L2191
14277
+.L2196:
14278
+ uxtb r0, r6
1397314279 bl FlashWaitCmdDone
1397414280 cmp r9, #1
13975
- bne .L2255
13976
- ldrb r3, [r6, #144] @ zero_extendqisi2
13977
- cbz r3, .L2255
13978
- lsls r3, r5, #4
14281
+ bne .L2195
14282
+ ldrb r3, [r5, #152] @ zero_extendqisi2
14283
+ cbz r3, .L2195
14284
+ lsls r3, r6, #4
1397914285 ldrb r0, [r7, r3] @ zero_extendqisi2
1398014286 bl flash_exit_slc_mode
13981
-.L2255:
13982
- adds r5, r5, #1
13983
- b .L2254
13984
-.L2292:
13985
- ldr r3, [sp, #20]
13986
- cbnz r3, .L2257
13987
-.L2265:
13988
- movs r0, #0
13989
- b .L2241
13990
-.L2257:
13991
- ldr r7, .L2293+12
14287
+.L2195:
14288
+ adds r6, r6, #1
14289
+ b .L2194
14290
+.L2197:
14291
+ ldr r7, .L2230+16
1399214292 mov r8, #0
13993
- mov r10, r7
13994
-.L2258:
14293
+ ldr r10, .L2230+32
14294
+.L2198:
1399514295 ldr r3, [sp, #8]
1399614296 cmp r8, r3
13997
- beq .L2265
14297
+ beq .L2205
1399814298 ldr r3, [r4]
1399914299 adds r3, r3, #1
14000
- bne .L2259
14300
+ bne .L2199
1400114301 ldr r1, [r4, #4]
14002
- ldr r0, .L2293+16
14302
+ ldr r0, .L2230+20
1400314303 bl printk
14004
- b .L2260
14005
-.L2259:
14304
+.L2200:
14305
+ add r8, r8, #1
14306
+ adds r4, r4, #36
14307
+ b .L2198
14308
+.L2199:
1400614309 ldr r3, [sp, #8]
14007
- mov r1, r9
1400814310 add r2, sp, #28
14311
+ mov r1, r9
1400914312 mov r0, r4
14010
- rsb r3, r8, r3
1401114313 mov r6, r4
14314
+ sub r3, r3, r8
1401214315 uxtb r3, r3
1401314316 str r3, [sp]
1401414317 add r3, sp, #32
1401514318 bl LogAddr2PhyAddr
14016
- ldr r2, [r7, #1220]
14319
+ ldr r2, [r7, #1228]
1401714320 movs r3, #0
14018
- str r3, [r2]
14019
- ldr r2, [r7, #1224]
14020
- str r3, [r2]
14021
- ldmia r6!, {r0, r1, r2, r3}
1402214321 add r5, sp, #36
14322
+ str r3, [r2]
14323
+ ldr r2, [r7, #1232]
14324
+ str r3, [r2]
14325
+ ldmia r6!, {r0, r1, r2, r3}
1402314326 stmia r5!, {r0, r1, r2, r3}
1402414327 ldmia r6!, {r0, r1, r2, r3}
1402514328 stmia r5!, {r0, r1, r2, r3}
14026
- add r0, sp, #36
14329
+ mov r2, r9
1402714330 ldr r3, [r6]
1402814331 movs r1, #1
14029
- mov r2, r9
14332
+ add r0, sp, #36
1403014333 str r3, [r5]
14031
- ldr r3, [r7, #1220]
14334
+ ldr r3, [r7, #1228]
1403214335 str r3, [sp, #44]
14033
- ldr r3, [r7, #1224]
14336
+ ldr r3, [r7, #1232]
1403414337 str r3, [sp, #48]
1403514338 bl FlashReadPages
1403614339 ldr r5, [sp, #36]
1403714340 adds r3, r5, #1
14038
- bne .L2261
14039
- ldr r0, .L2293+20
14341
+ bne .L2201
1404014342 ldr r1, [r4, #4]
14343
+ ldr r0, .L2230+24
1404114344 bl printk
1404214345 str r5, [r4]
14043
-.L2261:
14346
+.L2201:
1404414347 ldr r3, [r4, #12]
14045
- cbz r3, .L2262
14348
+ cbz r3, .L2202
1404614349 ldr r2, [r3]
14047
- ldr r3, [r10, #1224]
14350
+ ldr r3, [r7, #1232]
1404814351 ldr r3, [r3]
1404914352 cmp r2, r3
14050
- beq .L2262
14051
- ldr r0, .L2293+24
14353
+ beq .L2202
1405214354 ldr r1, [r4, #4]
14355
+ ldr r0, .L2230+28
1405314356 bl printk
1405414357 mov r3, #-1
1405514358 str r3, [r4]
14056
-.L2262:
14359
+.L2202:
1405714360 ldr r3, [r4, #8]
14058
- cbz r3, .L2260
14361
+ cmp r3, #0
14362
+ beq .L2200
1405914363 ldr r2, [r3]
14060
- ldr r3, [r10, #1220]
14364
+ ldr r3, [r7, #1228]
1406114365 ldr r3, [r3]
1406214366 cmp r2, r3
14063
- beq .L2260
14064
- ldr r0, .L2293+28
14367
+ beq .L2200
1406514368 ldr r1, [r4, #4]
14369
+ mov r0, r10
1406614370 bl printk
1406714371 mov r3, #-1
1406814372 str r3, [r4]
14069
-.L2260:
14070
- add r8, r8, #1
14071
- adds r4, r4, #36
14072
- b .L2258
14073
-.L2241:
14074
- add sp, sp, #76
14075
- @ sp needed
14076
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14077
-.L2294:
14373
+ b .L2200
14374
+.L2231:
1407814375 .align 2
14079
-.L2293:
14376
+.L2230:
1408014377 .word .LANCHOR0
1408114378 .word .LANCHOR1
14082
- .word .LANCHOR0+1214
14379
+ .word .LANCHOR0+2104
14380
+ .word .LANCHOR0+1220
1408314381 .word .LANCHOR4
1408414382 .word .LC104
1408514383 .word .LC105
....@@ -14089,8 +14387,10 @@
1408914387 .size FlashProgPages, .-FlashProgPages
1409014388 .align 1
1409114389 .global FlashTestBlk
14390
+ .syntax unified
1409214391 .thumb
1409314392 .thumb_func
14393
+ .fpu softvfp
1409414394 .type FlashTestBlk, %function
1409514395 FlashTestBlk:
1409614396 .fnstart
....@@ -14099,61 +14399,63 @@
1409914399 push {r4, r5, lr}
1410014400 .save {r4, r5, lr}
1410114401 mov r4, r0
14102
- ldr r5, .L2298
14402
+ ldr r5, .L2235
1410314403 .pad #108
1410414404 sub sp, sp, #108
14105
- ldr r3, [r5, #1204]
14106
- cmp r0, r3
14107
- bcc .L2297
1410814405 ldr r3, [r5, #1212]
14406
+ cmp r0, r3
14407
+ bcc .L2234
14408
+ ldr r3, [r5, #1220]
1410914409 add r0, sp, #40
14110
- movs r1, #165
1411114410 movs r2, #32
14411
+ movs r1, #165
1411214412 str r0, [sp, #16]
1411314413 lsls r4, r4, #10
1411414414 str r3, [sp, #12]
1411514415 bl ftl_memset
14116
- ldr r0, [r5, #1212]
14117
- movs r1, #90
1411814416 movs r2, #8
14417
+ movs r1, #90
14418
+ ldr r0, [r5, #1220]
1411914419 bl ftl_memset
14120
- movs r1, #1
14121
- mov r2, r1
14420
+ movs r2, #1
1412214421 add r0, sp, #4
14422
+ mov r1, r2
1412314423 str r4, [sp, #8]
1412414424 bl FlashEraseBlocks
14125
- movs r1, #1
14126
- mov r2, r1
14127
- mov r3, r1
14425
+ movs r3, #1
1412814426 add r0, sp, #4
14427
+ mov r2, r3
14428
+ mov r1, r3
1412914429 bl FlashProgPages
14130
- movs r1, #0
14131
- movs r2, #1
1413214430 ldr r4, [sp, #4]
14431
+ movs r2, #1
14432
+ movs r1, #0
1413314433 add r0, sp, #4
1413414434 adds r4, r4, #0
1413514435 it ne
1413614436 movne r4, #1
1413714437 negs r4, r4
1413814438 bl FlashEraseBlocks
14139
- b .L2296
14140
-.L2297:
14141
- movs r4, #0
14142
-.L2296:
14439
+.L2232:
1414314440 mov r0, r4
1414414441 add sp, sp, #108
1414514442 @ sp needed
1414614443 pop {r4, r5, pc}
14147
-.L2299:
14444
+.L2234:
14445
+ movs r4, #0
14446
+ b .L2232
14447
+.L2236:
1414814448 .align 2
14149
-.L2298:
14449
+.L2235:
1415014450 .word .LANCHOR4
1415114451 .fnend
1415214452 .size FlashTestBlk, .-FlashTestBlk
1415314453 .align 1
1415414454 .global FlashMakeFactorBbt
14455
+ .syntax unified
1415514456 .thumb
1415614457 .thumb_func
14458
+ .fpu softvfp
1415714459 .type FlashMakeFactorBbt, %function
1415814460 FlashMakeFactorBbt:
1415914461 .fnstart
....@@ -14163,757 +14465,747 @@
1416314465 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1416414466 .pad #84
1416514467 sub sp, sp, #84
14166
- ldr r5, .L2361
14167
- movs r1, #1
14168
- ldr r4, .L2361+4
14169
- ldr r0, .L2361+8
14170
- ldr r3, [r5, #1216]
14171
- ldrh r8, [r4, #128]
14172
- str r3, [sp, #20]
14173
- ldrh r3, [r4, #130]
14174
- smulbb r8, r8, r3
14175
- ldr r3, [r4, #44]
14176
- ldrb r3, [r3, #24] @ zero_extendqisi2
14177
- uxth r8, r8
14468
+ ldr r4, .L2293
14469
+ ldr r0, .L2293+4
14470
+ ldr r3, [r4, #1224]
14471
+ ldr r5, .L2293
1417814472 str r3, [sp, #24]
14179
- ldrh r3, [r4, #4]
14180
- str r3, [sp, #16]
14181
- ldrb r3, [r4] @ zero_extendqisi2
14182
- ldr r4, .L2361+4
14473
+ ldr r3, .L2293+8
14474
+ ldrh r1, [r3, #136]
14475
+ ldrh r6, [r3, #138]
14476
+ smulbb r6, r6, r1
14477
+ ldr r1, [r3, #48]
14478
+ ldrb r2, [r1, #24] @ zero_extendqisi2
14479
+ uxth r6, r6
14480
+ movs r1, #1
14481
+ str r2, [sp, #28]
14482
+ ldrh r2, [r3, #40]
14483
+ ldrb r3, [r3, #36] @ zero_extendqisi2
14484
+ str r2, [sp, #20]
1418314485 cmp r3, #1
1418414486 itttt eq
14185
- ldreq r3, [sp, #16]
14487
+ moveq r3, r2
1418614488 lsleq r3, r3, #1
1418714489 uxtheq r3, r3
14188
- streq r3, [sp, #16]
14490
+ streq r3, [sp, #20]
1418914491 bl printk
14190
- ldr r0, [r5, #1216]
14191
- movs r1, #0
14492
+ ldr r0, [r4, #1224]
1419214493 mov r2, #4096
14494
+ movs r1, #0
14495
+ ldr r4, .L2293+8
1419314496 bl ftl_memset
14194
- ldr r5, .L2361
14195
- lsr r3, r8, #4
14196
- str r3, [sp, #28]
14497
+ lsrs r3, r6, #4
14498
+ str r3, [sp, #32]
1419714499 movs r3, #0
14198
- str r3, [sp, #8]
14199
-.L2302:
14200
- ldrb r7, [sp, #8] @ zero_extendqisi2
14201
- ldrb r3, [r4, #2230] @ zero_extendqisi2
14202
- cmp r3, r7
14203
- bls .L2357
14204
- add r3, r5, r7, lsl #1
14205
- ldrh r6, [r3, #1232]
14206
- cmp r6, #0
14207
- bne .L2332
14208
- ldrh r2, [r4, #136]
14209
- mov r1, r6
14210
- ldr r0, [r5, #1184]
14211
- mov r9, r6
14500
+ str r3, [sp, #12]
14501
+.L2239:
14502
+ ldrb r8, [sp, #12] @ zero_extendqisi2
14503
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
14504
+ cmp r3, r8
14505
+ bhi .L2266
14506
+ add sp, sp, #84
14507
+ @ sp needed
14508
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14509
+.L2266:
14510
+ add r3, r5, r8, lsl #1
14511
+ ldrh r7, [r3, #1238]
14512
+ cmp r7, #0
14513
+ bne .L2240
14514
+ ldrh r2, [r4, #144]
14515
+ mov r1, r7
14516
+ ldr r0, [r5, #1192]
14517
+ add fp, r4, r8, lsl #2
14518
+ mov r9, r7
14519
+ mov r10, r7
1421214520 lsls r2, r2, #9
1421314521 bl ftl_memset
14214
- adds r3, r4, r7
14215
- ldrb r10, [r3, #2232] @ zero_extendqisi2
14216
- lsls r3, r7, #2
14217
- add fp, r4, r3
14218
- str r6, [sp, #4]
14219
- str r3, [sp, #32]
14220
-.L2304:
14522
+ add r3, r4, r8
14523
+ str r7, [sp, #4]
14524
+ ldrb r3, [r3, #2236] @ zero_extendqisi2
14525
+ str r3, [sp, #8]
14526
+.L2241:
1422114527 ldrh r3, [sp, #4]
14222
- cmp r3, r8
14223
- str r3, [sp, #12]
14224
- bcs .L2314
14528
+ cmp r3, r6
14529
+ str r3, [sp, #16]
14530
+ bcc .L2252
14531
+.L2251:
14532
+ mov r2, r9
14533
+ mov r1, r8
14534
+ ldr r0, .L2293+12
14535
+ bl printk
14536
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
14537
+ ldr r2, [sp, #32]
14538
+ muls r3, r2, r3
14539
+ cmp r9, r3
14540
+ blt .L2253
14541
+ ldrh r2, [r4, #144]
14542
+ movs r1, #0
14543
+ ldr r0, [r5, #1192]
14544
+ lsls r2, r2, #9
14545
+ bl ftl_memset
14546
+.L2253:
14547
+ cmp r8, #0
14548
+ bne .L2255
14549
+ ldrh fp, [r5, #1212]
14550
+ mov r10, #1
14551
+ ldr r9, .L2293+20
14552
+.L2256:
14553
+ ldrb r3, [r4, #37] @ zero_extendqisi2
14554
+ cmp r3, fp
14555
+ bhi .L2258
14556
+ subs r3, r6, #1
14557
+ sub r9, r6, #50
14558
+ uxth r10, r3
14559
+ mov fp, #1
14560
+.L2259:
14561
+ cmp r10, r9
14562
+ bgt .L2261
14563
+ ldrb r3, [r4, #37] @ zero_extendqisi2
14564
+ ldr r2, [r5, #1212]
14565
+ subs r3, r3, r2
14566
+ cmp r7, r3
14567
+ bcc .L2255
14568
+ ldrh r2, [r4, #144]
14569
+ movs r1, #0
14570
+ ldr r0, [r5, #1192]
14571
+ lsls r2, r2, #9
14572
+ bl ftl_memset
14573
+.L2255:
14574
+ ldrb r9, [sp, #12] @ zero_extendqisi2
14575
+ subs r7, r6, #1
14576
+ ldr fp, .L2293+24
14577
+ uxth r7, r7
14578
+ add r10, r5, r8, lsl #1
14579
+ mul r9, r6, r9
14580
+.L2263:
14581
+ mov r1, r8
14582
+ mov r2, r7
14583
+ mov r0, fp
14584
+ bl printk
14585
+ ldr r1, [r5, #1192]
14586
+.L2264:
14587
+ lsrs r2, r7, #5
14588
+ and r3, r7, #31
14589
+ ldr r2, [r1, r2, lsl #2]
14590
+ lsr r3, r2, r3
14591
+ ands r3, r3, #1
14592
+ bne .L2265
14593
+ ldr r1, [sp, #24]
14594
+ movw r2, #61664
14595
+ strh r7, [r10, #1238] @ movhi
14596
+ add r0, sp, #44
14597
+ strh r2, [r1] @ movhi
14598
+ movs r2, #1
14599
+ strh r7, [r1, #2] @ movhi
14600
+ strh r3, [r1, #8] @ movhi
14601
+ mov r1, r2
14602
+ ldr r3, [r5, #1192]
14603
+ str r3, [sp, #52]
14604
+ ldr r3, [r5, #1224]
14605
+ str r3, [sp, #56]
14606
+ add r3, r7, r9
14607
+ lsls r3, r3, #10
14608
+ str r3, [sp, #48]
14609
+ bl FlashEraseBlocks
14610
+ movs r3, #1
14611
+ add r0, sp, #44
14612
+ mov r2, r3
14613
+ mov r1, r3
14614
+ bl FlashProgPages
14615
+ ldr r3, [sp, #44]
14616
+ cmp r3, #0
14617
+ beq .L2240
14618
+ subs r7, r7, #1
14619
+ uxth r7, r7
14620
+ b .L2263
14621
+.L2252:
1422514622 movs r3, #255
1422614623 strb r3, [sp, #42]
1422714624 strb r3, [sp, #43]
14228
- ldr r3, [sp, #24]
14625
+ ldr r3, [sp, #28]
1422914626 lsls r1, r3, #31
14230
- bpl .L2306
14231
- ldr r3, [fp, #1172]
14627
+ bpl .L2243
14628
+ ldr r3, [fp, #1180]
1423214629 add r2, sp, #42
14233
- mov r0, r10
14234
- add r3, r3, r6
14235
- str r3, [sp, #36]
14630
+ ldr r0, [sp, #8]
14631
+ add r3, r3, r10
1423614632 mov r1, r3
14633
+ str r3, [sp, #36]
1423714634 bl FlashReadSpare
14238
- ldrb r2, [r4] @ zero_extendqisi2
14239
- cmp r2, #1
14635
+ ldrb r2, [r4, #36] @ zero_extendqisi2
1424014636 ldr r3, [sp, #36]
14241
- bne .L2306
14242
- ldr r1, [r4, #4]
14637
+ cmp r2, #1
14638
+ bne .L2243
14639
+ ldr r1, [r4, #40]
1424314640 add r2, sp, #43
14244
- mov r0, r10
14641
+ ldr r0, [sp, #8]
1424514642 add r1, r1, r3
1424614643 bl FlashReadSpare
1424714644 ldrb r3, [sp, #42] @ zero_extendqisi2
1424814645 ldrb r2, [sp, #43] @ zero_extendqisi2
1424914646 ands r3, r3, r2
1425014647 strb r3, [sp, #42]
14251
-.L2306:
14252
- ldr r3, [sp, #24]
14648
+.L2243:
14649
+ ldr r3, [sp, #28]
1425314650 lsls r2, r3, #30
14254
- bpl .L2308
14255
- ldr r3, [r4, #44]
14256
- mov r0, r10
14651
+ bpl .L2245
14652
+ ldr r3, [r4, #48]
1425714653 add r2, sp, #43
14654
+ ldr r0, [sp, #8]
1425814655 ldrh r1, [r3, #10]
14259
- ldr r3, [fp, #1172]
14656
+ ldr r3, [fp, #1180]
1426014657 subs r1, r1, #1
1426114658 add r1, r1, r3
14262
- add r1, r1, r6
14659
+ add r1, r1, r10
1426314660 bl FlashReadSpare
14264
-.L2308:
14265
- ldr r3, [r4, #44]
14661
+.L2245:
14662
+ ldr r3, [r4, #48]
1426614663 ldrb r2, [r3, #7] @ zero_extendqisi2
1426714664 cmp r2, #1
14268
- beq .L2309
14665
+ beq .L2246
1426914666 cmp r2, #8
14270
- beq .L2309
14667
+ beq .L2246
1427114668 ldrb r3, [r3, #18] @ zero_extendqisi2
1427214669 cmp r3, #12
14273
- bne .L2310
14274
-.L2309:
14670
+ bne .L2247
14671
+.L2246:
1427514672 ldrb r3, [sp, #42] @ zero_extendqisi2
14276
- cbz r3, .L2331
14673
+ cmp r3, #0
14674
+ beq .L2268
1427714675 ldrb r0, [sp, #43] @ zero_extendqisi2
1427814676 clz r0, r0
1427914677 lsrs r0, r0, #5
14280
- b .L2311
14281
-.L2310:
14678
+.L2248:
14679
+ ldr r3, [sp, #28]
14680
+ lsls r3, r3, #29
14681
+ bpl .L2249
14682
+ ldr r1, [fp, #1180]
14683
+ ldr r0, [sp, #8]
14684
+ add r1, r1, r10
14685
+ bl SandiskProgTestBadBlock
14686
+.L2249:
14687
+ cbz r0, .L2250
14688
+ ldr r2, [sp, #4]
14689
+ mov r1, r8
14690
+ ldr r0, .L2293+16
14691
+ add r9, r9, #1
14692
+ bl printk
14693
+ ldr r3, [sp, #16]
14694
+ uxth r9, r9
14695
+ ldr r1, [r5, #1192]
14696
+ and r2, r3, #31
14697
+ lsrs r0, r3, #5
14698
+ movs r3, #1
14699
+ lsl r2, r3, r2
14700
+ ldr r3, [r1, r0, lsl #2]
14701
+ orrs r3, r3, r2
14702
+ ldr r2, [sp, #32]
14703
+ str r3, [r1, r0, lsl #2]
14704
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
14705
+ muls r3, r2, r3
14706
+ cmp r9, r3
14707
+ bgt .L2251
14708
+.L2250:
14709
+ ldr r3, [sp, #4]
14710
+ adds r3, r3, #1
14711
+ str r3, [sp, #4]
14712
+ ldr r3, [sp, #20]
14713
+ add r10, r10, r3
14714
+ b .L2241
14715
+.L2247:
1428214716 ldrb r3, [sp, #42] @ zero_extendqisi2
1428314717 cmp r3, #255
14284
- bne .L2331
14718
+ bne .L2268
1428514719 ldrb r0, [sp, #43] @ zero_extendqisi2
1428614720 subs r0, r0, #255
1428714721 it ne
1428814722 movne r0, #1
14289
- b .L2311
14290
-.L2331:
14723
+ b .L2248
14724
+.L2268:
1429114725 movs r0, #1
14292
-.L2311:
14293
- ldr r3, [sp, #24]
14294
- lsls r3, r3, #29
14295
- bpl .L2312
14296
- ldr r3, .L2361+4
14297
- mov r0, r10
14298
- ldr r2, [sp, #32]
14299
- add r3, r3, r2
14300
- ldr r1, [r3, #1172]
14301
- add r1, r1, r6
14302
- bl SandiskProgTestBadBlock
14303
-.L2312:
14304
- cbz r0, .L2313
14305
- mov r1, r7
14306
- ldr r2, [sp, #4]
14307
- ldr r0, .L2361+12
14308
- add r9, r9, #1
14309
- bl printk
14310
- ldr r2, [r5, #1184]
14311
- uxth r9, r9
14312
- ldr r3, [sp, #12]
14313
- and r0, r3, #31
14314
- lsrs r1, r3, #5
14315
- movs r3, #1
14316
- lsls r3, r3, r0
14317
- ldr r0, [r2, r1, lsl #2]
14318
- orrs r3, r3, r0
14319
- str r3, [r2, r1, lsl #2]
14320
- ldr r2, [sp, #28]
14321
- ldrb r3, [r4, #2230] @ zero_extendqisi2
14322
- muls r3, r2, r3
14323
- cmp r9, r3
14324
- bgt .L2314
14325
-.L2313:
14326
- ldr r3, [sp, #4]
14327
- adds r3, r3, #1
14328
- str r3, [sp, #4]
14329
- ldr r3, [sp, #16]
14330
- add r6, r6, r3
14331
- b .L2304
14332
-.L2314:
14333
- mov r2, r9
14334
- ldr r0, .L2361+16
14335
- mov r1, r7
14336
- bl printk
14337
- ldrb r3, [r4, #2230] @ zero_extendqisi2
14338
- ldr r2, [sp, #28]
14339
- muls r3, r2, r3
14340
- cmp r9, r3
14341
- blt .L2316
14342
- ldrh r2, [r4, #136]
14343
- movs r1, #0
14344
- ldr r0, [r5, #1184]
14345
- lsls r2, r2, #9
14346
- bl ftl_memset
14347
-.L2316:
14348
- cmp r7, #0
14349
- bne .L2318
14350
- ldrh r10, [r5, #1204]
14351
- mov r9, #1
14352
- mov r6, r7
14353
-.L2319:
14354
- ldr r3, .L2361+4
14355
- ldrb r3, [r3, #1] @ zero_extendqisi2
14356
- cmp r3, r10
14357
- bls .L2358
14358
- mov r0, r10
14359
- bl FlashTestBlk
14360
- cbz r0, .L2320
14361
- mov r1, r10
14362
- ldr r0, .L2361+20
14363
- bl printk
14364
- ldr r2, [r5, #1184]
14365
- lsr r0, r10, #5
14366
- adds r6, r6, #1
14367
- and r3, r10, #31
14368
- ldr r1, [r2, r0, lsl #2]
14369
- uxth r6, r6
14370
- lsl r3, r9, r3
14371
- orrs r3, r3, r1
14372
- str r3, [r2, r0, lsl #2]
14373
-.L2320:
14374
- add r10, r10, #1
14375
- uxth r10, r10
14376
- b .L2319
14377
-.L2358:
14378
- add fp, r8, #-1
14379
- sub r9, r8, #50
14380
- mov r10, #1
14381
- uxth fp, fp
14382
-.L2322:
14383
- cmp fp, r9
14384
- ble .L2359
14726
+ b .L2248
14727
+.L2258:
1438514728 mov r0, fp
1438614729 bl FlashTestBlk
14387
- cbz r0, .L2323
14730
+ cbz r0, .L2257
1438814731 mov r1, fp
14389
- ldr r0, .L2361+20
14732
+ mov r0, r9
1439014733 bl printk
14391
- ldr r2, [r5, #1184]
14734
+ ldr r1, [r5, #1192]
1439214735 lsr r0, fp, #5
1439314736 and r3, fp, #31
14394
- lsl r3, r10, r3
14395
- ldr r1, [r2, r0, lsl #2]
14396
- orrs r3, r3, r1
14397
- str r3, [r2, r0, lsl #2]
14398
-.L2323:
14399
- add fp, fp, #-1
14737
+ lsl r2, r10, r3
14738
+ adds r7, r7, #1
14739
+ ldr r3, [r1, r0, lsl #2]
14740
+ uxth r7, r7
14741
+ orrs r3, r3, r2
14742
+ str r3, [r1, r0, lsl #2]
14743
+.L2257:
14744
+ add fp, fp, #1
1440014745 uxth fp, fp
14401
- b .L2322
14402
-.L2359:
14403
- ldr r3, .L2361+4
14404
- ldr r2, [r5, #1204]
14405
- ldrb r3, [r3, #1] @ zero_extendqisi2
14406
- subs r3, r3, r2
14407
- cmp r6, r3
14408
- bcc .L2318
14409
- ldrh r2, [r4, #136]
14410
- movs r1, #0
14411
- ldr r0, [r5, #1184]
14412
- lsls r2, r2, #9
14413
- bl ftl_memset
14414
-.L2318:
14415
- ldrb r6, [sp, #8] @ zero_extendqisi2
14416
- add r10, r8, #-1
14417
- add r9, r5, r7, lsl #1
14418
- uxth r10, r10
14419
- mul r6, r8, r6
14420
-.L2326:
14421
- mov r1, r7
14422
- ldr r0, .L2361+24
14423
- mov r2, r10
14746
+ b .L2256
14747
+.L2261:
14748
+ mov r0, r10
14749
+ bl FlashTestBlk
14750
+ cbz r0, .L2260
14751
+ mov r1, r10
14752
+ ldr r0, .L2293+20
1442414753 bl printk
14425
- ldr r1, [r5, #1184]
14426
-.L2327:
14427
- lsr r3, r10, #5
14754
+ ldr r0, [r5, #1192]
14755
+ lsr ip, r10, #5
1442814756 and r2, r10, #31
14429
- ldr r3, [r1, r3, lsl #2]
14430
- lsrs r3, r3, r2
14431
- ands r3, r3, #1
14432
- beq .L2360
14433
- add r10, r10, #-1
14434
- uxth r10, r10
14435
- b .L2327
14436
-.L2360:
14437
- ldr r1, [sp, #20]
14438
- movw r2, #61664
14439
- strh r10, [r9, #1232] @ movhi
14440
- add r0, sp, #44
14441
- strh r2, [r1] @ movhi
14442
- strh r10, [r1, #2] @ movhi
14443
- strh r3, [r1, #8] @ movhi
14444
- movs r1, #1
14445
- ldr r3, [r5, #1184]
14446
- mov r2, r1
14447
- str r3, [sp, #52]
14448
- ldr r3, [r5, #1216]
14449
- str r3, [sp, #56]
14450
- add r3, r10, r6
14451
- lsls r3, r3, #10
14452
- str r3, [sp, #48]
14453
- bl FlashEraseBlocks
14454
- movs r1, #1
14455
- mov r3, r1
14456
- mov r2, r1
14457
- add r0, sp, #44
14458
- bl FlashProgPages
14459
- ldr r3, [sp, #44]
14460
- cbz r3, .L2332
14461
- add r10, r10, #-1
14462
- uxth r10, r10
14463
- b .L2326
14464
-.L2332:
14465
- ldr r3, [sp, #8]
14757
+ lsl r1, fp, r2
14758
+ ldr r2, [r0, ip, lsl #2]
14759
+ orrs r2, r2, r1
14760
+ str r2, [r0, ip, lsl #2]
14761
+.L2260:
14762
+ add r3, r10, #-1
14763
+ uxth r10, r3
14764
+ b .L2259
14765
+.L2265:
14766
+ subs r7, r7, #1
14767
+ uxth r7, r7
14768
+ b .L2264
14769
+.L2240:
14770
+ ldr r3, [sp, #12]
1446614771 adds r3, r3, #1
14467
- str r3, [sp, #8]
14468
- b .L2302
14469
-.L2357:
14470
- add sp, sp, #84
14471
- @ sp needed
14472
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14473
-.L2362:
14772
+ str r3, [sp, #12]
14773
+ b .L2239
14774
+.L2294:
1447414775 .align 2
14475
-.L2361:
14776
+.L2293:
1447614777 .word .LANCHOR4
14477
- .word .LANCHOR0
1447814778 .word .LC121
14479
- .word .LC122
14779
+ .word .LANCHOR0
1448014780 .word .LC123
14781
+ .word .LC122
1448114782 .word .LC124
1448214783 .word .LC125
1448314784 .fnend
1448414785 .size FlashMakeFactorBbt, .-FlashMakeFactorBbt
1448514786 .align 1
1448614787 .global FtlLowFormatEraseBlock
14788
+ .syntax unified
1448714789 .thumb
1448814790 .thumb_func
14791
+ .fpu softvfp
1448914792 .type FtlLowFormatEraseBlock, %function
1449014793 FtlLowFormatEraseBlock:
1449114794 .fnstart
1449214795 @ args = 0, pretend = 0, frame = 24
1449314796 @ frame_needed = 0, uses_anonymous_args = 0
14797
+ ldr r3, .L2342
1449414798 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1449514799 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1449614800 .pad #28
1449714801 sub sp, sp, #28
14498
- ldr r7, .L2415
14499
- str r0, [sp, #4]
14500
- str r1, [sp]
14501
- ldrb r3, [r7, #2240] @ zero_extendqisi2
14502
- str r3, [sp, #16]
14503
- ldr r3, .L2415+4
14504
- ldr r2, [r3, #224]
14505
- mov fp, r3
14506
- cmp r2, #0
14507
- bne .L2392
14508
- ldrb r3, [r7, #144] @ zero_extendqisi2
14509
- mov r8, #36
14510
- mov r9, r2
14511
- mov r5, r2
14512
- mov r4, r2
14513
- mov r10, fp
14514
- str r3, [sp, #8]
14515
- str r0, [fp, #3292]
14516
-.L2365:
14517
- ldrh r0, [r7, #2320]
14518
- uxth r1, r9
14519
- ldr r3, .L2415
14520
- cmp r0, r1
14521
- bls .L2410
14522
- mul r6, r8, r1
14523
- ldr r0, [fp, #228]
14524
- movs r3, #0
14525
- str r3, [r0, r6]
14526
- ldr r3, .L2415
14527
- add r1, r1, r3
14528
- ldrb r0, [r1, #2348] @ zero_extendqisi2
14529
- ldr r1, [sp, #4]
14530
- bl V2P_block
14531
- ldr r3, [sp]
14532
- mov r6, r0
14533
- cbz r3, .L2366
14534
- bl IsBlkInVendorPart
14535
- cbnz r0, .L2367
14536
-.L2366:
14537
- mov r0, r6
14538
- bl FtlBbmIsBadBlock
14539
- cbnz r0, .L2368
14540
- ldr r3, [fp, #228]
14541
- lsls r6, r6, #10
14542
- ldrh r1, [r7, #2400]
14543
- muls r1, r5, r1
14544
- it mi
14545
- addmi r1, r1, #3
14546
- mla lr, r8, r5, r3
14547
- adds r5, r5, #1
14548
- bic r1, r1, #3
14549
- uxth r5, r5
14550
- str r0, [lr, #8]
14551
- ldr r0, [r10, #3344]
14552
- str r6, [lr, #4]
14553
- add r1, r1, r0
14554
- str r1, [lr, #12]
14555
- b .L2367
14556
-.L2368:
14557
- adds r4, r4, #1
14558
- uxth r4, r4
14559
-.L2367:
14560
- add r9, r9, #1
14561
- b .L2365
14562
-.L2410:
14563
- cmp r5, #0
14564
- beq .L2391
14565
- ldr r2, [sp, #8]
14566
- mov r8, #0
14567
- ldr r0, [fp, #228]
14802
+ str r0, [sp, #8]
14803
+ mov r10, r3
14804
+ ldr r6, [r3, #228]
14805
+ str r1, [sp, #4]
14806
+ cmp r6, #0
14807
+ bne .L2324
14808
+ ldr r5, .L2342+4
14809
+ mov r7, r6
14810
+ mov r4, r6
1456814811 mov r9, #36
14569
- adds r6, r2, #0
14570
- mov r2, r5
14812
+ mov fp, r10
14813
+ str r0, [r10, #3292]
14814
+ ldrb r3, [r5, #2244] @ zero_extendqisi2
14815
+ str r3, [sp, #16]
14816
+ ldrb r3, [r5, #152] @ zero_extendqisi2
14817
+ str r3, [sp, #12]
14818
+.L2297:
14819
+ ldrh r0, [r5, #2324]
14820
+ uxth r1, r6
14821
+ cmp r0, r1
14822
+ bhi .L2302
14823
+ cmp r7, #0
14824
+ beq .L2295
14825
+ ldr r3, [sp, #12]
14826
+ mov r8, #0
14827
+ mov r2, r7
14828
+ ldr r0, [r10, #232]
14829
+ strb r8, [r5, #2244]
14830
+ mov r9, #36
14831
+ adds r6, r3, #0
1457114832 it ne
1457214833 movne r6, #1
14573
- strb r8, [r3, #2240]
14574
- str r3, [sp, #8]
1457514834 mov r1, r6
1457614835 bl FlashEraseBlocks
14577
- ldrb r2, [sp, #16] @ zero_extendqisi2
14578
- ldr r3, [sp, #8]
14579
- strb r2, [r3, #2240]
14580
-.L2372:
14836
+ ldrb r3, [sp, #16] @ zero_extendqisi2
14837
+ strb r3, [r5, #2244]
14838
+.L2304:
1458114839 uxth r2, r8
14582
- cmp r2, r5
14583
- bcs .L2411
14840
+ cmp r7, r2
14841
+ bhi .L2306
14842
+ ldr r3, [sp, #4]
14843
+ cmp r3, #0
14844
+ bne .L2307
14845
+ uxth r6, r6
14846
+ mov fp, #6
14847
+ movs r3, #1
14848
+ str r3, [sp, #12]
14849
+.L2308:
14850
+ ldr r7, .L2342
14851
+ mov r9, #0
14852
+.L2318:
14853
+ ldr r10, .L2342+4
14854
+ mov r8, #0
14855
+ mov r5, r8
14856
+.L2309:
14857
+ ldrh r1, [r10, #2324]
14858
+ uxth r3, r8
14859
+ cmp r1, r3
14860
+ bhi .L2313
14861
+ cbz r5, .L2295
14862
+ movs r3, #1
14863
+ mov r8, #0
14864
+ mov r2, r6
14865
+ mov r1, r5
14866
+ ldr r0, [r7, #232]
14867
+ strb r8, [r10, #2244]
14868
+ bl FlashProgPages
14869
+ ldrb r3, [sp, #16] @ zero_extendqisi2
14870
+ strb r3, [r10, #2244]
14871
+ mov r10, #36
14872
+.L2315:
14873
+ uxth r3, r8
14874
+ cmp r5, r3
14875
+ bhi .L2317
14876
+ add r9, r9, fp
14877
+ ldr r3, [sp, #12]
14878
+ uxth r9, r9
14879
+ cmp r3, r9
14880
+ bhi .L2318
14881
+ mov r8, #0
14882
+ mov r9, #36
14883
+.L2319:
14884
+ uxth r3, r8
14885
+ cmp r5, r3
14886
+ bhi .L2321
14887
+ ldr r3, [sp, #8]
14888
+ cmp r3, #63
14889
+ bls .L2322
14890
+ ldr r3, [sp, #4]
14891
+ cbz r3, .L2295
14892
+.L2322:
14893
+ mov r2, r5
14894
+ mov r1, r6
14895
+ ldr r0, [r7, #232]
14896
+ bl FlashEraseBlocks
14897
+.L2295:
14898
+ mov r0, r4
14899
+ add sp, sp, #28
14900
+ @ sp needed
14901
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14902
+.L2302:
14903
+ uxth r1, r6
14904
+ ldr r0, [r10, #232]
14905
+ movs r3, #0
14906
+ mul ip, r9, r1
14907
+ str r3, [r0, ip]
14908
+ adds r0, r5, r1
14909
+ ldrb r0, [r0, #2350] @ zero_extendqisi2
14910
+ ldr r1, [sp, #8]
14911
+ bl V2P_block
14912
+ ldr r3, [sp, #4]
14913
+ mov r8, r0
14914
+ cbz r3, .L2298
14915
+ bl IsBlkInVendorPart
14916
+ cbnz r0, .L2299
14917
+.L2298:
14918
+ mov r0, r8
14919
+ bl FtlBbmIsBadBlock
14920
+ cbnz r0, .L2300
14921
+ ldr r1, [r10, #232]
14922
+ mla ip, r9, r7, r1
14923
+ lsl r1, r8, #10
14924
+ str r0, [ip, #8]
14925
+ str r1, [ip, #4]
14926
+ ldr r0, [fp, #3344]
14927
+ ldrh r1, [r5, #2402]
14928
+ muls r1, r7, r1
14929
+ add r7, r7, #1
14930
+ it mi
14931
+ addmi r1, r1, #3
14932
+ uxth r7, r7
14933
+ bic r1, r1, #3
14934
+ add r1, r1, r0
14935
+ str r1, [ip, #12]
14936
+.L2299:
14937
+ adds r6, r6, #1
14938
+ b .L2297
14939
+.L2300:
14940
+ adds r4, r4, #1
14941
+ uxth r4, r4
14942
+ b .L2299
14943
+.L2306:
1458414944 mul r2, r9, r8
14585
- ldr r1, [fp, #228]
14586
- adds r0, r1, r2
14945
+ ldr r1, [r10, #232]
14946
+ add ip, r1, r2
1458714947 ldr r2, [r1, r2]
1458814948 adds r2, r2, #1
14589
- bne .L2373
14590
- ldr r0, [r0, #4]
14949
+ bne .L2305
14950
+ ldr r0, [ip, #4]
1459114951 adds r4, r4, #1
14592
- ubfx r0, r0, #10, #16
1459314952 uxth r4, r4
14953
+ ubfx r0, r0, #10, #16
1459414954 bl FtlBbmMapBadBlock
14595
-.L2373:
14955
+.L2305:
1459614956 add r8, r8, #1
14597
- b .L2372
14598
-.L2411:
14599
- ldr r3, [sp]
14600
- cbnz r3, .L2375
14601
- movs r3, #6
14602
- uxth r6, r6
14957
+ b .L2304
14958
+.L2307:
14959
+ ldrh r3, [r5, #2392]
1460314960 str r3, [sp, #12]
14604
- movs r3, #1
14605
- str r3, [sp, #8]
14606
- b .L2376
14607
-.L2375:
14608
- ldrh r3, [r7, #2390]
14609
- str r3, [sp, #8]
14610
- ldrb r3, [r7, #144] @ zero_extendqisi2
14611
- cbnz r3, .L2393
14612
- ldr r3, [sp, #8]
14961
+ ldrb r3, [r5, #152] @ zero_extendqisi2
14962
+ cbnz r3, .L2325
14963
+ ldr r3, [sp, #12]
1461314964 movs r6, #1
14614
- lsrs r3, r3, #2
14615
- str r3, [sp, #12]
14616
- b .L2376
14617
-.L2393:
14965
+ lsr fp, r3, #2
14966
+ b .L2308
14967
+.L2325:
1461814968 movs r6, #1
14619
- str r6, [sp, #12]
14620
-.L2376:
14621
- ldr r8, .L2415+4
14622
- movs r7, #0
14623
- mov r10, r8
14624
-.L2386:
14625
- mov fp, #0
14626
- mov r5, fp
14627
-.L2377:
14628
- ldr r9, .L2415
14629
- uxth r3, fp
14630
- ldrh r1, [r9, #2320]
14631
- cmp r1, r3
14632
- bls .L2412
14969
+ mov fp, r6
14970
+ b .L2308
14971
+.L2313:
14972
+ uxth r3, r8
1463314973 movs r2, #36
14634
- ldr r0, [r8, #228]
14974
+ ldr r0, [r7, #232]
1463514975 mul r1, r2, r3
14976
+ add r3, r3, r10
1463614977 movs r2, #0
1463714978 str r2, [r0, r1]
14638
- ldr r2, .L2415
14639
- ldr r1, [sp, #4]
14640
- add r3, r3, r2
14641
- ldrb r0, [r3, #2348] @ zero_extendqisi2
14979
+ ldr r1, [sp, #8]
14980
+ ldrb r0, [r3, #2350] @ zero_extendqisi2
1464214981 bl V2P_block
14643
- ldr r3, [sp]
14644
- mov r9, r0
14645
- cbz r3, .L2378
14982
+ ldr r3, [sp, #4]
14983
+ str r0, [sp, #20]
14984
+ cbz r3, .L2310
1464614985 bl IsBlkInVendorPart
14647
- cbnz r0, .L2379
14648
-.L2378:
14649
- mov r0, r9
14986
+ cbnz r0, .L2311
14987
+.L2310:
14988
+ ldr r0, [sp, #20]
1465014989 bl FtlBbmIsBadBlock
14651
- cbnz r0, .L2379
14652
- ldr r1, [r10, #228]
14990
+ cbnz r0, .L2311
14991
+ ldr r1, [r7, #232]
1465314992 movs r3, #36
14654
- ldr r0, [r8, #3336]
14993
+ ldr r0, [r7, #3336]
1465514994 mla r1, r3, r5, r1
14656
- add r3, r7, r9, lsl #10
14995
+ ldr r3, [sp, #20]
14996
+ add r3, r9, r3, lsl #10
1465714997 str r3, [r1, #4]
14658
- ldr r3, [r10, #3332]
14998
+ ldr r3, [r7, #3332]
1465914999 str r3, [r1, #8]
14660
- ldr r3, .L2415
14661
- ldrh r3, [r3, #2400]
15000
+ ldrh r3, [r10, #2402]
1466215001 muls r3, r5, r3
1466315002 add r5, r5, #1
1466415003 it mi
1466515004 addmi r3, r3, #3
14666
- bic r3, r3, #3
1466715005 uxth r5, r5
15006
+ bic r3, r3, #3
1466815007 add r3, r3, r0
1466915008 str r3, [r1, #12]
14670
-.L2379:
14671
- add fp, fp, #1
14672
- b .L2377
14673
-.L2412:
14674
- cmp r5, #0
14675
- beq .L2391
14676
- mov r2, r6
14677
- movs r3, #1
14678
- ldr r0, [r8, #228]
14679
- mov r1, r5
14680
- mov fp, #0
14681
- strb fp, [r9, #2240]
14682
- bl FlashProgPages
14683
- movs r2, #36
14684
- ldrb r3, [sp, #16] @ zero_extendqisi2
14685
- strb r3, [r9, #2240]
14686
- ldr r9, .L2415+4
14687
-.L2383:
14688
- uxth r3, fp
14689
- cmp r3, r5
14690
- bcs .L2413
14691
- mul r3, r2, fp
14692
- ldr r1, [r10, #228]
14693
- adds r0, r1, r3
14694
- ldr r3, [r1, r3]
14695
- cbz r3, .L2384
14696
- ldr r0, [r0, #4]
14697
- adds r4, r4, #1
14698
- str r2, [sp, #20]
14699
- ubfx r0, r0, #10, #16
14700
- uxth r4, r4
14701
- bl FtlBbmMapBadBlock
14702
- ldr r2, [sp, #20]
14703
-.L2384:
14704
- add fp, fp, #1
14705
- b .L2383
14706
-.L2413:
14707
- ldr r3, [sp, #12]
14708
- add r7, r7, r3
14709
- ldr r3, [sp, #8]
14710
- uxth r7, r7
14711
- cmp r7, r3
14712
- bcc .L2386
14713
- movs r7, #0
14714
- mov r8, #36
14715
-.L2387:
14716
- uxth r3, r7
14717
- cmp r3, r5
14718
- bcs .L2414
14719
- ldr r3, [sp]
14720
- cbz r3, .L2388
14721
- mul r3, r8, r7
14722
- ldr r2, [r9, #228]
15009
+.L2311:
15010
+ add r8, r8, #1
15011
+ b .L2309
15012
+.L2317:
15013
+ mul r3, r10, r8
15014
+ ldr r2, [r7, #232]
1472315015 adds r1, r2, r3
1472415016 ldr r3, [r2, r3]
14725
- cbnz r3, .L2388
15017
+ cbz r3, .L2316
15018
+ ldr r0, [r1, #4]
15019
+ adds r4, r4, #1
15020
+ uxth r4, r4
15021
+ ubfx r0, r0, #10, #16
15022
+ bl FtlBbmMapBadBlock
15023
+.L2316:
15024
+ add r8, r8, #1
15025
+ b .L2315
15026
+.L2321:
15027
+ ldr r3, [sp, #4]
15028
+ cbz r3, .L2320
15029
+ mul r3, r9, r8
15030
+ ldr r2, [r7, #232]
15031
+ adds r1, r2, r3
15032
+ ldr r3, [r2, r3]
15033
+ cbnz r3, .L2320
1472615034 ldr r0, [r1, #4]
1472715035 movs r1, #1
1472815036 ubfx r0, r0, #10, #16
1472915037 bl FtlFreeSysBlkQueueIn
14730
-.L2388:
14731
- adds r7, r7, #1
14732
- b .L2387
14733
-.L2414:
14734
- ldr r3, [sp, #4]
14735
- cmp r3, #63
14736
- bls .L2390
14737
- ldr r3, [sp]
14738
- cbz r3, .L2391
14739
-.L2390:
14740
- ldr r0, [r9, #228]
14741
- mov r1, r6
14742
- mov r2, r5
14743
- bl FlashEraseBlocks
14744
-.L2391:
14745
- mov r0, r4
14746
- b .L2364
14747
-.L2392:
14748
- movs r0, #0
14749
-.L2364:
14750
- add sp, sp, #28
14751
- @ sp needed
14752
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14753
-.L2416:
15038
+.L2320:
15039
+ add r8, r8, #1
15040
+ b .L2319
15041
+.L2324:
15042
+ movs r4, #0
15043
+ b .L2295
15044
+.L2343:
1475415045 .align 2
14755
-.L2415:
14756
- .word .LANCHOR0
15046
+.L2342:
1475715047 .word .LANCHOR2
15048
+ .word .LANCHOR0
1475815049 .fnend
1475915050 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
1476015051 .align 1
1476115052 .global FtlBbmTblFlush
15053
+ .syntax unified
1476215054 .thumb
1476315055 .thumb_func
15056
+ .fpu softvfp
1476415057 .type FtlBbmTblFlush, %function
1476515058 FtlBbmTblFlush:
1476615059 .fnstart
14767
- @ args = 0, pretend = 0, frame = 8
15060
+ @ args = 0, pretend = 0, frame = 0
1476815061 @ frame_needed = 0, uses_anonymous_args = 0
14769
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15062
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1477015063 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14771
- .pad #20
14772
- sub sp, sp, #20
14773
- ldr r7, .L2434
14774
- ldr r6, [r7, #224]
15064
+ .pad #12
15065
+ ldr r7, .L2358
15066
+ ldr r6, [r7, #228]
1477515067 cmp r6, #0
14776
- bne .L2419
14777
- ldr r4, .L2434+4
15068
+ bne .L2346
15069
+ ldr r4, .L2358+4
1477815070 mov r1, r6
1477915071 ldr r0, [r7, #3316]
14780
- ldr r5, .L2434+8
14781
- addw r9, r4, #2476
15072
+ ldr r5, .L2358+8
1478215073 ldr r3, [r7, #3340]
14783
- ldrh r2, [r4, #2398]
14784
- str r0, [r5, #1256]
14785
- str r3, [r5, #1260]
15074
+ add r8, r4, #2480
15075
+ ldrh r2, [r4, #2400]
15076
+ str r0, [r5, #1264]
15077
+ str r3, [r5, #1268]
1478615078 bl ftl_memset
14787
-.L2420:
14788
- ldrh r3, [r4, #2342]
14789
- ldr r8, .L2434+4
15079
+.L2347:
15080
+ ldrh r3, [r4, #2346]
1479015081 cmp r6, r3
14791
- bge .L2433
14792
- ldrh r2, [r7, #3404]
15082
+ blt .L2348
15083
+ ldr r6, [r5, #1268]
15084
+ movs r2, #16
15085
+ movs r1, #255
15086
+ ldr fp, .L2358+24
15087
+ mov r8, #0
15088
+ mov r0, r6
15089
+ mov r9, r8
15090
+ bl ftl_memset
15091
+ movw r3, #61649
15092
+ strh r3, [r6] @ movhi
15093
+ ldr r3, [r4, #2464]
15094
+ str r3, [r6, #4]
15095
+ ldrh r3, [r4, #2456]
15096
+ strh r3, [r6, #2] @ movhi
15097
+ ldrh r3, [r4, #2460]
15098
+ strh r3, [r6, #8] @ movhi
15099
+ ldrh r3, [r4, #2462]
15100
+ strh r3, [r6, #10] @ movhi
15101
+ ldr r3, [r4, #2320]
15102
+ strh r3, [r6, #12] @ movhi
15103
+.L2349:
15104
+ ldr r3, [r7, #3316]
15105
+ mov r10, #0
15106
+ ldrh r2, [r4, #2458]
15107
+ ldrh r1, [r4, #2456]
15108
+ str r3, [r5, #1264]
15109
+ ldr r3, [r7, #3340]
15110
+ str r10, [r5, #1256]
15111
+ str r3, [r5, #1268]
15112
+ orr r3, r2, r1, lsl #10
15113
+ ldrh r0, [r6, #10]
15114
+ str r3, [r5, #1260]
15115
+ ldrh r3, [r4, #2460]
15116
+ str r0, [sp]
15117
+ ldr r0, .L2358+12
15118
+ bl printk
15119
+ ldrh r3, [r4, #2392]
15120
+ ldrh r2, [r4, #2458]
15121
+ subs r3, r3, #1
15122
+ cmp r2, r3
15123
+ blt .L2350
15124
+ ldr r3, [r4, #2464]
15125
+ ldrh r2, [r4, #2456]
15126
+ ldr r0, [r7, #232]
15127
+ adds r3, r3, #1
15128
+ strh r10, [r4, #2458] @ movhi
15129
+ str r3, [r4, #2464]
15130
+ str r3, [r6, #4]
15131
+ ldrh r3, [r4, #2460]
15132
+ strh r2, [r6, #8] @ movhi
15133
+ strh r2, [r4, #2460] @ movhi
15134
+ movs r2, #1
15135
+ strh r3, [r4, #2456] @ movhi
15136
+ mov r1, r2
15137
+ lsls r3, r3, #10
15138
+ str r3, [r5, #1260]
15139
+ str r3, [r0, #4]
15140
+ bl FlashEraseBlocks
15141
+.L2350:
15142
+ movs r3, #1
15143
+ mov r0, fp
15144
+ mov r2, r3
15145
+ mov r1, r3
15146
+ bl FlashProgPages
15147
+ ldrh r3, [r4, #2458]
15148
+ adds r3, r3, #1
15149
+ strh r3, [r4, #2458] @ movhi
1479315150 ldr r3, [r5, #1256]
14794
- ldr r1, [r9, #4]!
14795
- mul r0, r2, r6
15151
+ adds r2, r3, #1
15152
+ bne .L2351
15153
+ add r8, r8, #1
15154
+ ldr r1, [r5, #1260]
15155
+ uxth r8, r8
15156
+ ldr r0, .L2358+16
15157
+ bl printk
15158
+ cmp r8, #3
15159
+ bls .L2349
15160
+ mov r2, r8
15161
+ ldr r1, [r5, #1260]
15162
+ ldr r0, .L2358+20
15163
+ bl printk
15164
+ movs r3, #1
15165
+ str r3, [r7, #228]
15166
+.L2346:
15167
+ movs r0, #0
15168
+ add sp, sp, #12
15169
+ @ sp needed
15170
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
15171
+.L2348:
15172
+ ldrh r2, [r7, #3404]
15173
+ ldr r3, [r5, #1264]
15174
+ ldr r1, [r8, #4]!
15175
+ mul r0, r6, r2
1479615176 lsls r2, r2, #2
1479715177 adds r6, r6, #1
1479815178 add r0, r3, r0, lsl #2
1479915179 bl ftl_memcpy
14800
- b .L2420
14801
-.L2433:
14802
- ldr r6, [r5, #1260]
14803
- movs r1, #255
14804
- movs r2, #16
14805
- ldr fp, .L2434
14806
- mov r0, r6
14807
- bl ftl_memset
14808
- movw r3, #61649
14809
- strh r3, [r6] @ movhi
14810
- ldr r3, [r8, #2460]
14811
- str r3, [r6, #4]
14812
- ldrh r3, [r8, #2452]
14813
- strh r3, [r6, #2] @ movhi
14814
- ldrh r3, [r8, #2456]
14815
- strh r3, [r6, #8] @ movhi
14816
- ldrh r3, [r8, #2458]
14817
- strh r3, [r6, #10] @ movhi
14818
- ldr r3, [r8, #2316]
14819
- mov r8, #0
14820
- mov r10, r8
14821
- strh r3, [r6, #12] @ movhi
14822
-.L2422:
14823
- ldr r3, [r7, #3316]
14824
- mov ip, #0
14825
- ldrh r1, [r4, #2452]
14826
- ldrh r2, [r4, #2454]
14827
- str r3, [r5, #1256]
14828
- ldr r3, [r7, #3340]
14829
- str ip, [r5, #1248]
14830
- str ip, [sp, #12]
14831
- str r3, [r5, #1260]
14832
- orr r3, r2, r1, lsl #10
14833
- ldrh r0, [r6, #10]
14834
- str r3, [r5, #1252]
14835
- ldrh r3, [r4, #2456]
14836
- str r0, [sp]
14837
- ldr r0, .L2434+12
14838
- bl printk
14839
- ldrh r3, [r4, #2390]
14840
- ldrh r2, [r4, #2454]
14841
- subs r3, r3, #1
14842
- ldr r9, .L2434+4
14843
- cmp r2, r3
14844
- ldr ip, [sp, #12]
14845
- blt .L2423
14846
- ldrh r2, [r9, #2452]
14847
- movs r1, #1
14848
- ldr r3, [r9, #2460]
14849
- ldr r0, [fp, #228]
14850
- adds r3, r3, #1
14851
- str r3, [r9, #2460]
14852
- str r3, [r6, #4]
14853
- strh r2, [r6, #8] @ movhi
14854
- ldrh r3, [r9, #2456]
14855
- strh r2, [r9, #2456] @ movhi
14856
- ldr r2, .L2434+8
14857
- strh r3, [r9, #2452] @ movhi
14858
- lsls r3, r3, #10
14859
- strh ip, [r9, #2454] @ movhi
14860
- str r3, [r2, #1252]
14861
- mov r2, r1
14862
- str r3, [r0, #4]
14863
- bl FlashEraseBlocks
14864
-.L2423:
14865
- movs r1, #1
14866
- ldr r9, .L2434+8
14867
- mov r2, r1
14868
- mov r3, r1
14869
- add r0, r9, #1248
14870
- bl FlashProgPages
14871
- ldrh r3, [r4, #2454]
14872
- adds r3, r3, #1
14873
- strh r3, [r4, #2454] @ movhi
14874
- ldr r3, [r5, #1248]
14875
- adds r2, r3, #1
14876
- bne .L2424
14877
- add r8, r8, #1
14878
- ldr r0, .L2434+16
14879
- ldr r1, [r9, #1252]
14880
- uxth r8, r8
14881
- bl printk
14882
- cmp r8, #3
14883
- bls .L2422
14884
- ldr r0, .L2434+20
14885
- mov r2, r8
14886
- ldr r1, [r9, #1252]
14887
- bl printk
14888
- movs r3, #1
14889
- str r3, [r7, #224]
14890
- b .L2419
14891
-.L2424:
14892
- add r10, r10, #1
14893
- cmp r10, #1
14894
- beq .L2422
15180
+ b .L2347
15181
+.L2354:
15182
+ mov r9, #1
15183
+ b .L2349
15184
+.L2351:
15185
+ add r9, r9, #1
15186
+ cmp r9, #1
15187
+ ble .L2354
1489515188 cmp r3, #256
14896
- beq .L2422
14897
-.L2419:
14898
- movs r0, #0
14899
- add sp, sp, #20
14900
- @ sp needed
14901
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14902
-.L2435:
15189
+ bne .L2346
15190
+ b .L2349
15191
+.L2359:
1490315192 .align 2
14904
-.L2434:
15193
+.L2358:
1490515194 .word .LANCHOR2
1490615195 .word .LANCHOR0
1490715196 .word .LANCHOR4
1490815197 .word .LC126
1490915198 .word .LC127
1491015199 .word .LC128
15200
+ .word .LANCHOR4+1256
1491115201 .fnend
1491215202 .size FtlBbmTblFlush, .-FtlBbmTblFlush
1491315203 .align 1
1491415204 .global allocate_data_superblock
15205
+ .syntax unified
1491515206 .thumb
1491615207 .thumb_func
15208
+ .fpu softvfp
1491715209 .type allocate_data_superblock, %function
1491815210 allocate_data_superblock:
1491915211 .fnstart
....@@ -14922,263 +15214,258 @@
1492215214 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1492315215 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1492415216 mov r5, r0
14925
- ldr r4, .L2492
15217
+ ldr r4, .L2409
1492615218 .pad #20
1492715219 sub sp, sp, #20
14928
- ldr r3, [r4, #224]
15220
+ ldr r3, [r4, #228]
1492915221 cmp r3, #0
14930
- bne .L2437
14931
- ldr r9, .L2492+16
14932
- mov r8, r4
14933
-.L2438:
14934
- ldr r3, .L2492+4
15222
+ bne .L2361
15223
+.L2362:
15224
+ ldr r3, .L2409+4
15225
+ ldr r7, .L2409+8
1493515226 ldrb r2, [r5, #8] @ zero_extendqisi2
1493615227 cmp r5, r3
14937
- bne .L2439
14938
- ldrh r7, [r8, #312]
14939
- ldr r6, [r8, #1132]
14940
- lsrs r1, r7, #1
14941
- mul r0, r6, r7
14942
- adds r3, r1, #1
14943
- add r3, r3, r0, lsr #2
14944
- ldr r0, [r9, #2244]
14945
- uxth r3, r3
14946
- cbz r0, .L2462
14947
- ldr r0, [r8, #532]
15228
+ bne .L2363
15229
+ ldrh ip, [r4, #316]
15230
+ ldr r3, [r4, #1132]
15231
+ lsr r6, ip, #1
15232
+ mul r0, r3, ip
15233
+ adds r1, r6, #1
15234
+ add r1, r1, r0, lsr #2
15235
+ ldr r0, [r7, #2248]
15236
+ uxth r1, r1
15237
+ cbz r0, .L2364
15238
+ ldr r0, [r4, #532]
1494815239 cmp r0, #39
14949
- bhi .L2462
15240
+ bhi .L2364
1495015241 cmp r0, #2
14951
- bls .L2467
14952
- lsls r0, r7, #31
14953
- bpl .L2440
14954
- cbz r6, .L2464
14955
- b .L2440
14956
-.L2439:
15242
+ bls .L2391
15243
+ tst ip, #1
15244
+ beq .L2387
15245
+ cmp r3, #0
15246
+ beq .L2391
15247
+.L2387:
15248
+ mov r1, r6
15249
+ b .L2364
15250
+.L2363:
1495715251 cmp r2, #1
14958
- bne .L2467
14959
- ldrh r3, [r9, #2340]
15252
+ bne .L2391
15253
+ ldrh r3, [r7, #2344]
1496015254 cmp r3, #1
14961
- beq .L2467
14962
- ldrb r3, [r9, #144] @ zero_extendqisi2
14963
- cbnz r3, .L2467
14964
- ldrh r0, [r8, #312]
14965
- ldr r3, [r9, #2244]
14966
- lsrs r1, r0, #3
14967
- cbz r3, .L2440
14968
- ldr r3, [r8, #532]
14969
- cmp r3, #1
14970
- bhi .L2440
14971
- rsb r0, r0, r0, lsl #3
14972
- ubfx r1, r0, #3, #16
14973
- b .L2440
14974
-.L2462:
14975
- mov r1, r3
14976
-.L2440:
14977
- cbz r1, .L2441
15255
+ beq .L2391
15256
+ ldrb r3, [r7, #152] @ zero_extendqisi2
15257
+ cmp r3, #0
15258
+ bne .L2391
15259
+ ldrh r3, [r4, #316]
15260
+ ldr r0, [r7, #2248]
15261
+ lsrs r1, r3, #3
15262
+ cbz r0, .L2364
15263
+ ldr r0, [r4, #532]
15264
+ cmp r0, #1
15265
+ bhi .L2364
15266
+ rsb r3, r3, r3, lsl #3
15267
+ ubfx r1, r3, #3, #16
15268
+.L2364:
15269
+ cbz r1, .L2365
1497815270 subs r1, r1, #1
1497915271 uxth r1, r1
14980
- b .L2441
14981
-.L2464:
14982
- mov r1, r6
14983
- b .L2441
14984
-.L2467:
14985
- movs r1, #0
14986
-.L2441:
14987
- ldr r0, .L2492+8
15272
+.L2365:
15273
+ ldr r0, .L2409+12
1498815274 bl List_pop_index_node
14989
- ldrh r3, [r4, #312]
15275
+ ldrh r3, [r4, #316]
15276
+ uxth r9, r0
1499015277 subs r3, r3, #1
14991
- strh r3, [r4, #312] @ movhi
14992
- ldrh r3, [r9, #2328]
14993
- uxth r6, r0
14994
- cmp r3, r6
14995
- bls .L2438
14996
- ldr r3, [r8, #296]
14997
- ldrh r7, [r3, r6, lsl #1]
14998
- cmp r7, #0
14999
- bne .L2438
15000
- strh r6, [r5] @ movhi
15278
+ strh r3, [r4, #316] @ movhi
15279
+ ldrh r3, [r7, #2332]
15280
+ cmp r3, r9
15281
+ bls .L2362
15282
+ ldr r3, [r4, #300]
15283
+ movw fp, #65535
15284
+ mov r6, r9
15285
+ ldrh r8, [r3, r9, lsl #1]
15286
+ cmp r8, #0
15287
+ bne .L2362
15288
+ strh r9, [r5] @ movhi
1500115289 mov r0, r5
1500215290 bl make_superblock
1500315291 ldrb r3, [r5, #7] @ zero_extendqisi2
15004
- cbz r3, .L2443
15005
- ldr r0, [r8, #228]
15292
+ cmp r3, #0
15293
+ beq .L2367
15294
+ ldr r0, [r4, #232]
1500615295 movs r2, #36
15007
- ldrh ip, [r9, #2320]
15008
- add lr, r5, #14
15009
- movw r10, #65535
15296
+ ldrh r1, [r7, #2324]
15297
+ add r10, r5, #16
15298
+ mov ip, r10
15299
+ mov lr, r8
1501015300 mov r3, r0
15011
- mla r1, r2, ip, r0
15012
- mov ip, r7
15301
+ str r2, [sp, #8]
15302
+ mla r1, r2, r1, r0
1501315303 str r1, [sp, #4]
15014
- b .L2444
15015
-.L2443:
15016
- ldr r3, [r8, #296]
15017
- b .L2487
15018
-.L2444:
15019
- ldr r1, [sp, #4]
15020
- cmp r3, r1
15021
- beq .L2489
15022
- str ip, [r3, #8]
15023
- adds r3, r3, #36
15024
- str ip, [r3, #-24]
15025
- ldrh r1, [lr, #2]!
15026
- cmp r1, r10
15027
- itttt ne
15028
- lslne r1, r1, #10
15029
- mlane fp, r2, r7, r0
15030
- addne r7, r7, #1
15031
- uxthne r7, r7
15032
- it ne
15033
- strne r1, [fp, #4]
15034
- b .L2444
15035
-.L2489:
15036
- ldr r3, [r9, #2244]
15037
- cbz r3, .L2447
15038
- ldr r3, .L2492+12
15304
+.L2368:
15305
+ ldr r2, [sp, #4]
15306
+ cmp r2, r3
15307
+ bne .L2370
15308
+ ldr r3, [r7, #2248]
15309
+ cbz r3, .L2371
15310
+ ldr r3, .L2409+16
1503915311 cmp r5, r3
15040
- bne .L2447
15041
- ldr r3, [r8, #232]
15312
+ bne .L2371
15313
+ ldr r3, [r4, #236]
1504215314 ldrh r3, [r3, r6, lsl #1]
1504315315 cmp r3, #40
1504415316 itt hi
1504515317 movhi r3, #0
15046
- strbhi r3, [r8, #324]
15047
-.L2447:
15318
+ strbhi r3, [r4, #328]
15319
+.L2371:
1504815320 ldrb r3, [r5, #8] @ zero_extendqisi2
15049
- ldr r2, [r4, #232]
15050
- cbnz r3, .L2448
15051
- ldrh r1, [r2, r6, lsl #1]
15052
- cbz r1, .L2468
15053
- ldrh r3, [r9, #2380]
15321
+ ldr r2, [r4, #236]
15322
+ cmp r3, #0
15323
+ bne .L2372
15324
+ ldrh r3, [r2, r6, lsl #1]
15325
+ cmp r3, #0
15326
+ beq .L2373
15327
+ ldrh r1, [r7, #2382]
1505415328 add r3, r3, r1
15055
- uxth r3, r3
15056
- b .L2449
15057
-.L2468:
15058
- movs r3, #2
15059
-.L2449:
15329
+.L2407:
1506015330 strh r3, [r2, r6, lsl #1] @ movhi
15061
- mov r0, r6
15062
- ldr r3, [r4, #516]
1506315331 movs r1, #0
15332
+ ldr r3, [r4, #516]
15333
+ mov r0, r9
1506415334 adds r3, r3, #1
1506515335 str r3, [r4, #516]
1506615336 bl ftl_set_blk_mode
15067
- b .L2450
15068
-.L2448:
15069
- ldrh r3, [r2, r6, lsl #1]
15070
- lsrs r0, r6, #5
15071
- and r1, r6, #31
15072
- adds r3, r3, #1
15073
- strh r3, [r2, r6, lsl #1] @ movhi
15074
- ldr r3, [r4, #520]
15075
- ldr r2, [r4, #472]
15076
- adds r3, r3, #1
15077
- str r3, [r4, #520]
15078
- movs r3, #1
15079
- lsls r3, r3, r1
15080
- ldr r1, [r2, r0, lsl #2]
15081
- orrs r3, r3, r1
15082
- str r3, [r2, r0, lsl #2]
15083
-.L2450:
15084
- ldr r3, [r4, #232]
15337
+.L2375:
15338
+ ldr r3, [r4, #236]
1508515339 ldr r2, [r4, #528]
15086
- ldr r0, [r4, #516]
15340
+ ldrh r0, [r7, #2382]
1508715341 ldrh r3, [r3, r6, lsl #1]
15088
- ldrh r1, [r9, #2328]
15342
+ ldrh r1, [r7, #2332]
1508915343 cmp r3, r2
15090
- ldrh r2, [r9, #2380]
15344
+ ldr r2, [r4, #516]
1509115345 it hi
15092
- strhi r3, [r8, #528]
15346
+ strhi r3, [r4, #528]
1509315347 ldr r3, [r4, #520]
15094
- mla r0, r0, r2, r3
15348
+ mla r0, r2, r0, r3
1509515349 bl __aeabi_uidiv
1509615350 ldr r2, [r4, #3360]
15097
- ldr r1, [r4, #228]
15351
+ ldr r1, [r4, #232]
15352
+ str r0, [r4, #524]
1509815353 ldr r3, [r2, #16]
1509915354 adds r3, r3, #1
1510015355 str r3, [r2, #16]
15101
- movs r3, #36
15102
- adds r2, r1, #4
15103
- mla r3, r3, r7, r1
15104
- adds r3, r3, #40
15105
- str r0, [r4, #524]
15106
-.L2452:
15107
- adds r2, r2, #36
15356
+ movs r2, #36
15357
+ mla r2, r2, r8, r1
15358
+ adds r3, r1, #4
15359
+ adds r2, r2, #40
15360
+.L2377:
15361
+ adds r3, r3, #36
1510815362 cmp r2, r3
15109
- beq .L2490
15110
- ldr r1, [r2, #-36]
15111
- bic r1, r1, #1020
15112
- bic r1, r1, #3
15113
- str r1, [r2, #-36]
15114
- b .L2452
15115
-.L2490:
15116
- ldrb r3, [r9, #144] @ zero_extendqisi2
15117
- cbz r3, .L2454
15363
+ bne .L2378
15364
+ ldrb r3, [r7, #152] @ zero_extendqisi2
15365
+ cbz r3, .L2379
1511815366 ldrb r3, [r5, #8] @ zero_extendqisi2
15119
- mov r2, r7
15120
- ldr r0, [r4, #228]
15367
+ mov r2, r8
15368
+ ldr r0, [r4, #232]
1512115369 cmp r3, #1
1512215370 ite eq
1512315371 moveq r1, #0
1512415372 movne r1, #1
1512515373 bl FlashEraseBlocks
15126
-.L2454:
15127
- mov r2, r7
15128
- ldr r0, [r4, #228]
15374
+.L2379:
1512915375 ldrb r1, [r5, #8] @ zero_extendqisi2
15130
- mov r10, #0
15376
+ mov r2, r8
15377
+ ldr r0, [r4, #232]
15378
+ mov fp, #0
1513115379 bl FlashEraseBlocks
15132
- add r2, r5, #16
15133
- mov ip, #36
15134
- mov fp, r10
15135
-.L2456:
15136
- uxth r3, r10
15137
- cmp r3, r7
15138
- bcs .L2491
15139
- mul r3, ip, r10
15140
- ldr r1, [r4, #228]
15141
- adds r0, r1, r3
15142
- ldr r3, [r1, r3]
15143
- adds r1, r3, #1
15144
- bne .L2457
15145
- ldr r0, [r0, #4]
15146
- add fp, fp, #1
15147
- str ip, [sp, #12]
15148
- ubfx r0, r0, #10, #16
15149
- str r3, [sp, #8]
15150
- str r2, [sp, #4]
15151
- bl FtlBbmMapBadBlock
15152
- ldr r3, [sp, #8]
15153
- ldr r2, [sp, #4]
15154
- ldr ip, [sp, #12]
15155
- strh r3, [r2] @ movhi
15156
- ldrb r3, [r5, #7] @ zero_extendqisi2
15157
- subs r3, r3, #1
15158
- strb r3, [r5, #7]
15159
-.L2457:
15160
- add r10, r10, #1
15161
- adds r2, r2, #2
15162
- b .L2456
15163
-.L2491:
15164
- cmp fp, #0
15165
- beq .L2459
15166
- mov r0, r6
15380
+ mov r3, fp
15381
+ movs r1, #36
15382
+.L2381:
15383
+ uxth r2, fp
15384
+ cmp r8, r2
15385
+ bhi .L2383
15386
+ cmp r3, #0
15387
+ ble .L2384
15388
+ mov r0, r9
1516715389 bl update_multiplier_value
1516815390 bl FtlBbmTblFlush
15169
-.L2459:
15170
- ldrb r3, [r5, #7] @ zero_extendqisi2
15171
- cbnz r3, .L2460
15172
- ldr r3, [r4, #296]
15173
-.L2487:
15391
+.L2384:
15392
+ ldrb r2, [r5, #7] @ zero_extendqisi2
15393
+ cmp r2, #0
15394
+ bne .L2385
15395
+ ldr r3, [r4, #300]
1517415396 movw r2, #65535
1517515397 strh r2, [r3, r6, lsl #1] @ movhi
15176
- b .L2438
15177
-.L2460:
15178
- ldr r2, .L2492+16
15179
- ldrh r2, [r2, #2388]
15180
- strh r6, [r5] @ movhi
15181
- smulbb r3, r2, r3
15398
+ b .L2362
15399
+.L2391:
15400
+ movs r1, #0
15401
+ b .L2365
15402
+.L2367:
15403
+ ldr r3, [r4, #300]
15404
+ strh fp, [r3, r9, lsl #1] @ movhi
15405
+ b .L2362
15406
+.L2370:
15407
+ str lr, [r3, #8]
15408
+ str lr, [r3, #12]
15409
+ ldrh r1, [ip], #2
15410
+ cmp r1, fp
15411
+ beq .L2369
15412
+ ldr r2, [sp, #8]
15413
+ lsls r1, r1, #10
15414
+ mla r2, r2, r8, r0
15415
+ add r8, r8, #1
15416
+ uxth r8, r8
15417
+ str r1, [r2, #4]
15418
+.L2369:
15419
+ adds r3, r3, #36
15420
+ b .L2368
15421
+.L2373:
15422
+ movs r3, #2
15423
+ b .L2407
15424
+.L2372:
15425
+ ldrh r3, [r2, r6, lsl #1]
15426
+ mov r0, r9
15427
+ adds r3, r3, #1
15428
+ strh r3, [r2, r6, lsl #1] @ movhi
15429
+ ldr r3, [r4, #520]
15430
+ adds r3, r3, #1
15431
+ str r3, [r4, #520]
15432
+ bl ftl_set_blk_mode.part.9
15433
+ b .L2375
15434
+.L2378:
15435
+ ldr r1, [r3, #-36]
15436
+ bic r1, r1, #1020
15437
+ bic r1, r1, #3
15438
+ str r1, [r3, #-36]
15439
+ b .L2377
15440
+.L2383:
15441
+ mul r2, r1, fp
15442
+ ldr r0, [r4, #232]
15443
+ add ip, r0, r2
15444
+ ldr r2, [r0, r2]
15445
+ adds r0, r2, #1
15446
+ bne .L2382
15447
+ ldr r0, [ip, #4]
15448
+ adds r3, r3, #1
15449
+ str r1, [sp, #12]
15450
+ str r2, [sp, #8]
15451
+ ubfx r0, r0, #10, #16
15452
+ str r3, [sp, #4]
15453
+ bl FtlBbmMapBadBlock
15454
+ ldr r2, [sp, #8]
15455
+ ldr r1, [sp, #12]
15456
+ ldr r3, [sp, #4]
15457
+ strh r2, [r10] @ movhi
15458
+ ldrb r2, [r5, #7] @ zero_extendqisi2
15459
+ subs r2, r2, #1
15460
+ strb r2, [r5, #7]
15461
+.L2382:
15462
+ add fp, fp, #1
15463
+ add r10, r10, #2
15464
+ b .L2381
15465
+.L2385:
15466
+ ldrh r3, [r7, #2390]
15467
+ strh r9, [r5] @ movhi
15468
+ smulbb r3, r3, r2
1518215469 movs r2, #0
1518315470 strh r2, [r5, #2] @ movhi
1518415471 strb r2, [r5, #6]
....@@ -15188,28 +15475,30 @@
1518815475 str r2, [r5, #12]
1518915476 adds r2, r2, #1
1519015477 str r2, [r4, #508]
15191
- ldr r2, [r4, #296]
15478
+ ldr r2, [r4, #300]
1519215479 ldrh r1, [r5]
1519315480 strh r3, [r2, r1, lsl #1] @ movhi
15194
-.L2437:
15481
+.L2361:
1519515482 movs r0, #0
1519615483 add sp, sp, #20
1519715484 @ sp needed
1519815485 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
15199
-.L2493:
15486
+.L2410:
1520015487 .align 2
15201
-.L2492:
15488
+.L2409:
1520215489 .word .LANCHOR2
15203
- .word .LANCHOR2+412
15204
- .word .LANCHOR2+308
15205
- .word .LANCHOR2+316
15490
+ .word .LANCHOR2+416
1520615491 .word .LANCHOR0
15492
+ .word .LANCHOR2+312
15493
+ .word .LANCHOR2+320
1520715494 .fnend
1520815495 .size allocate_data_superblock, .-allocate_data_superblock
1520915496 .align 1
1521015497 .global FtlGcFreeBadSuperBlk
15498
+ .syntax unified
1521115499 .thumb
1521215500 .thumb_func
15501
+ .fpu softvfp
1521315502 .type FtlGcFreeBadSuperBlk, %function
1521415503 FtlGcFreeBadSuperBlk:
1521515504 .fnstart
....@@ -15218,209 +15507,212 @@
1521815507 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1521915508 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1522015509 .pad #12
15221
- ldr r5, .L2507
15222
- str r0, [sp]
15223
- ldrh r3, [r5, #1182]
15224
- cmp r3, #0
15225
- beq .L2496
15226
- ldr r7, .L2507+4
15227
- mov r10, #0
15228
- mov r8, r5
15229
-.L2495:
15230
- ldrh r2, [r7, #2320]
15231
- uxth r3, r10
15232
- cmp r2, r3
15233
- bls .L2504
15234
- add r3, r3, r7
15235
- ldr r1, [sp]
15236
- mov fp, #0
15237
- ldrb r0, [r3, #2348] @ zero_extendqisi2
15238
- bl V2P_block
15239
- ldr r2, .L2507+8
1524015510 mov r9, r0
15241
-.L2497:
15242
- ldrh r3, [r5, #1182]
15243
- uxth r4, fp
15244
- cmp r3, r4
15245
- bls .L2505
15246
- lsls r6, r4, #1
15247
- add r3, r8, r6
15248
- ldrh r3, [r3, #1184]
15249
- cmp r3, r9
15250
- bne .L2498
15251
- mov r1, r9
15252
- ldr r0, .L2507+12
15253
- str r2, [sp, #4]
15254
- bl printk
15255
- mov r0, r9
15256
- bl FtlBbmMapBadBlock
15257
- bl FtlBbmTblFlush
15258
- ldrh r1, [r8, #1182]
15259
- ldr r2, [sp, #4]
15260
- adds r3, r2, r6
15261
-.L2499:
15262
- cmp r4, r1
15263
- bcs .L2506
15264
- ldrh r0, [r3, #2]
15265
- adds r4, r4, #1
15266
- uxth r4, r4
15267
- strh r0, [r3], #2 @ movhi
15268
- b .L2499
15269
-.L2506:
15270
- subs r1, r1, #1
15271
- strh r1, [r5, #1182] @ movhi
15272
-.L2498:
15273
- add fp, fp, #1
15274
- b .L2497
15275
-.L2505:
15276
- add r10, r10, #1
15277
- b .L2495
15278
-.L2504:
15511
+ ldr r4, .L2423
15512
+ ldrh r3, [r4, #1182]
15513
+ cbz r3, .L2412
15514
+ ldr r8, .L2423+8
15515
+ movs r6, #0
15516
+ add r10, r4, #1184
15517
+.L2413:
15518
+ ldrh r2, [r8, #2324]
15519
+ uxth r3, r6
15520
+ cmp r2, r3
15521
+ bhi .L2419
1527915522 bl FtlGcReFreshBadBlk
15280
-.L2496:
15523
+.L2412:
1528115524 movs r0, #0
1528215525 add sp, sp, #12
1528315526 @ sp needed
1528415527 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
15285
-.L2508:
15528
+.L2419:
15529
+ uxtah r3, r8, r6
15530
+ mov r1, r9
15531
+ movs r7, #0
15532
+ ldrb r0, [r3, #2350] @ zero_extendqisi2
15533
+ bl V2P_block
15534
+ ldr r2, .L2423+4
15535
+ mov fp, r0
15536
+.L2414:
15537
+ ldrh r3, [r4, #1182]
15538
+ uxth r5, r7
15539
+ cmp r3, r5
15540
+ bhi .L2418
15541
+ adds r6, r6, #1
15542
+ b .L2413
15543
+.L2418:
15544
+ uxth r3, r7
15545
+ add r1, r4, r3, lsl #1
15546
+ ldrh r1, [r1, #1184]
15547
+ cmp r1, fp
15548
+ bne .L2415
15549
+ mov r1, fp
15550
+ mov r0, r2
15551
+ str r3, [sp, #4]
15552
+ str r2, [sp]
15553
+ bl printk
15554
+ mov r0, fp
15555
+ bl FtlBbmMapBadBlock
15556
+ bl FtlBbmTblFlush
15557
+ ldr r3, [sp, #4]
15558
+ ldrh r1, [r4, #1182]
15559
+ ldr r2, [sp]
15560
+ add r3, r10, r3, lsl #1
15561
+.L2416:
15562
+ cmp r5, r1
15563
+ bcc .L2417
15564
+ subs r1, r1, #1
15565
+ strh r1, [r4, #1182] @ movhi
15566
+.L2415:
15567
+ adds r7, r7, #1
15568
+ b .L2414
15569
+.L2417:
15570
+ ldrh r0, [r3, #2]!
15571
+ adds r5, r5, #1
15572
+ uxth r5, r5
15573
+ strh r0, [r3, #-2] @ movhi
15574
+ b .L2416
15575
+.L2424:
1528615576 .align 2
15287
-.L2507:
15577
+.L2423:
1528815578 .word .LANCHOR2
15289
- .word .LANCHOR0
15290
- .word .LANCHOR2+1184
1529115579 .word .LC129
15580
+ .word .LANCHOR0
1529215581 .fnend
1529315582 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
1529415583 .align 1
1529515584 .global update_vpc_list
15585
+ .syntax unified
1529615586 .thumb
1529715587 .thumb_func
15588
+ .fpu softvfp
1529815589 .type update_vpc_list, %function
1529915590 update_vpc_list:
1530015591 .fnstart
1530115592 @ args = 0, pretend = 0, frame = 0
1530215593 @ frame_needed = 0, uses_anonymous_args = 0
15303
- ldr r2, .L2518
15594
+ ldr r2, .L2433
1530415595 push {r3, r4, r5, lr}
1530515596 .save {r3, r4, r5, lr}
1530615597 mov r4, r0
15307
- ldr r3, [r2, #296]
1530815598 mov r5, r2
15599
+ ldr r3, [r2, #300]
1530915600 ldrh r3, [r3, r0, lsl #1]
15310
- cbnz r3, .L2510
15601
+ cbnz r3, .L2426
1531115602 ldrh r1, [r2, #556]
1531215603 cmp r1, r0
15313
- bne .L2511
15604
+ bne .L2427
1531415605 movw r3, #65535
1531515606 strh r3, [r2, #556] @ movhi
15316
- b .L2512
15317
-.L2511:
15318
- ldrh r1, [r2, #316]
15319
- cmp r1, r0
15320
- beq .L2517
15321
- ldrh r1, [r2, #364]
15322
- cmp r1, r0
15323
- beq .L2517
15324
- ldrh r2, [r2, #412]
15325
- cmp r2, r0
15326
- beq .L2517
15327
-.L2512:
15607
+.L2428:
1532815608 mov r1, r4
15329
- ldr r0, .L2518+4
15609
+ ldr r0, .L2433+4
1533015610 bl List_remove_node
15331
- ldrh r3, [r5, #304]
15611
+ ldrh r3, [r5, #308]
1533215612 mov r0, r4
1533315613 subs r3, r3, #1
15334
- strh r3, [r5, #304] @ movhi
15614
+ strh r3, [r5, #308] @ movhi
1533515615 bl free_data_superblock
1533615616 mov r0, r4
1533715617 bl FtlGcFreeBadSuperBlk
15338
- movs r0, #1
15618
+ movs r3, #1
15619
+ b .L2425
15620
+.L2427:
15621
+ ldrh r1, [r2, #320]
15622
+ cmp r1, r0
15623
+ beq .L2425
15624
+ ldrh r1, [r2, #368]
15625
+ cmp r1, r0
15626
+ beq .L2425
15627
+ ldrh r2, [r2, #416]
15628
+ cmp r2, r0
15629
+ bne .L2428
15630
+.L2425:
15631
+ mov r0, r3
1533915632 pop {r3, r4, r5, pc}
15340
-.L2510:
15633
+.L2426:
1534115634 bl List_update_data_list
15342
-.L2517:
15343
- movs r0, #0
15344
- pop {r3, r4, r5, pc}
15345
-.L2519:
15635
+ movs r3, #0
15636
+ b .L2425
15637
+.L2434:
1534615638 .align 2
15347
-.L2518:
15639
+.L2433:
1534815640 .word .LANCHOR2
15349
- .word .LANCHOR2+292
15641
+ .word .LANCHOR2+296
1535015642 .fnend
1535115643 .size update_vpc_list, .-update_vpc_list
1535215644 .align 1
1535315645 .global decrement_vpc_count
15646
+ .syntax unified
1535415647 .thumb
1535515648 .thumb_func
15649
+ .fpu softvfp
1535615650 .type decrement_vpc_count, %function
1535715651 decrement_vpc_count:
1535815652 .fnstart
1535915653 @ args = 0, pretend = 0, frame = 0
1536015654 @ frame_needed = 0, uses_anonymous_args = 0
15655
+ push {r3, r4, r5, lr}
15656
+ .save {r3, r4, r5, lr}
1536115657 movw r3, #65535
1536215658 cmp r0, r3
15363
- push {r4, r5, r6, lr}
15364
- .save {r4, r5, r6, lr}
1536515659 mov r4, r0
15366
- ldr r5, .L2530
15367
- beq .L2521
15368
- ldr r3, [r5, #296]
15660
+ ldr r5, .L2445
15661
+ beq .L2436
15662
+ ldr r3, [r5, #300]
1536915663 ldrh r2, [r3, r0, lsl #1]
15370
- cbnz r2, .L2522
15371
- mov r1, r4
15372
- ldr r0, .L2530+4
15664
+ cbnz r2, .L2437
15665
+ mov r1, r0
15666
+ ldr r0, .L2445+4
1537315667 bl printk
15374
- ldr r3, [r5, #296]
15668
+ ldr r3, [r5, #300]
1537515669 movs r2, #32
15376
- add r0, r5, #308
1537715670 mov r1, r4
15671
+ add r0, r5, #312
1537815672 strh r2, [r3, r4, lsl #1] @ movhi
1537915673 bl test_node_in_list
15380
- cbz r0, .L2523
15674
+ cbz r0, .L2438
1538115675 mov r1, r4
15382
- add r0, r5, #308
15676
+ add r0, r5, #312
1538315677 bl List_remove_node
15384
- ldrh r3, [r5, #312]
15678
+ ldrh r3, [r5, #316]
1538515679 mov r0, r4
1538615680 subs r3, r3, #1
15387
- strh r3, [r5, #312] @ movhi
15681
+ strh r3, [r5, #316] @ movhi
1538815682 bl INSERT_DATA_LIST
15389
- ldr r3, [r5, #296]
15390
- ldr r0, .L2530+8
15683
+ ldr r3, [r5, #300]
1539115684 mov r1, r4
15685
+ ldr r0, .L2445+8
1539215686 ldrh r2, [r3, r4, lsl #1]
1539315687 bl printk
15394
-.L2523:
15688
+.L2438:
1539515689 mov r0, r4
1539615690 bl FtlGcRefreshBlock
15397
- b .L2526
15398
-.L2522:
15691
+.L2441:
15692
+ movs r0, #0
15693
+ pop {r3, r4, r5, pc}
15694
+.L2437:
1539915695 subs r2, r2, #1
1540015696 strh r2, [r3, r0, lsl #1] @ movhi
15401
-.L2521:
15697
+.L2436:
1540215698 ldrh r0, [r5, #3460]
1540315699 movw r3, #65535
15404
- ldr r6, .L2530
1540515700 cmp r0, r3
15406
- bne .L2525
15407
- strh r4, [r6, #3460] @ movhi
15408
- b .L2526
15409
-.L2525:
15410
- cmp r0, r4
15411
- beq .L2526
15701
+ bne .L2440
15702
+ strh r4, [r5, #3460] @ movhi
15703
+ b .L2441
15704
+.L2440:
15705
+ cmp r4, r0
15706
+ beq .L2441
1541215707 bl update_vpc_list
15413
- strh r4, [r6, #3460] @ movhi
1541415708 adds r0, r0, #0
15709
+ strh r4, [r5, #3460] @ movhi
1541515710 it ne
1541615711 movne r0, #1
15417
- pop {r4, r5, r6, pc}
15418
-.L2526:
15419
- movs r0, #0
15420
- pop {r4, r5, r6, pc}
15421
-.L2531:
15712
+ pop {r3, r4, r5, pc}
15713
+.L2446:
1542215714 .align 2
15423
-.L2530:
15715
+.L2445:
1542415716 .word .LANCHOR2
1542515717 .word .LC130
1542615718 .word .LC131
....@@ -15428,8 +15720,10 @@
1542815720 .size decrement_vpc_count, .-decrement_vpc_count
1542915721 .align 1
1543015722 .global FtlSlcSuperblockCheck
15723
+ .syntax unified
1543115724 .thumb
1543215725 .thumb_func
15726
+ .fpu softvfp
1543315727 .type FtlSlcSuperblockCheck, %function
1543415728 FtlSlcSuperblockCheck:
1543515729 .fnstart
....@@ -15440,161 +15734,157 @@
1544015734 mov r4, r0
1544115735 ldrh r3, [r0, #4]
1544215736 cmp r3, #0
15443
- beq .L2532
15737
+ beq .L2447
1544415738 ldrh r3, [r0]
15445
- movw r5, #65535
15446
- cmp r3, r5
15447
- beq .L2532
15739
+ movw r6, #65535
15740
+ cmp r3, r6
15741
+ beq .L2447
1544815742 ldrb r3, [r0, #6] @ zero_extendqisi2
15449
- ldr r7, .L2544
15743
+ ldr r5, .L2458
15744
+ ldr r7, .L2458+4
1545015745 adds r3, r3, #8
15451
- ldr r6, .L2544+4
1545215746 ldrh r3, [r0, r3, lsl #1]
15453
-.L2536:
15454
- cmp r3, r5
15455
- bne .L2543
15456
-.L2538:
15457
- ldrb r3, [r4, #6] @ zero_extendqisi2
15458
- ldrh r2, [r7, #2320]
15459
- adds r3, r3, #1
15460
- uxtb r3, r3
15461
- strb r3, [r4, #6]
15462
- cmp r2, r3
15463
- itttt eq
15464
- ldrheq r3, [r4, #2]
15465
- addeq r3, r3, #1
15466
- strheq r3, [r4, #2] @ movhi
15467
- moveq r3, #0
15468
- it eq
15469
- strbeq r3, [r4, #6]
15470
- ldrb r3, [r4, #6] @ zero_extendqisi2
15471
- adds r3, r3, #8
15472
- ldrh r3, [r4, r3, lsl #1]
15473
- b .L2536
15474
-.L2543:
15475
- ldrb r1, [r4, #8] @ zero_extendqisi2
15476
- cmp r1, #1
15477
- bne .L2539
15478
- ldrb r3, [r7, #144] @ zero_extendqisi2
15479
- cbnz r3, .L2539
15747
+.L2451:
15748
+ cmp r3, r6
15749
+ beq .L2453
15750
+ ldrb r2, [r4, #8] @ zero_extendqisi2
15751
+ cmp r2, #1
15752
+ bne .L2454
15753
+ ldrb r3, [r5, #152] @ zero_extendqisi2
15754
+ cbnz r3, .L2454
1548015755 ldrh r3, [r4, #2]
15481
- add r3, r6, r3, lsl #1
15756
+ add r3, r7, r3, lsl #1
1548215757 ldrh r3, [r3, #1220]
15483
- cmp r3, r5
15484
- bne .L2539
15758
+ cmp r3, r6
15759
+ bne .L2454
1548515760 ldrh r3, [r4, #4]
1548615761 ldrh r0, [r4]
1548715762 subs r3, r3, #1
1548815763 strh r3, [r4, #4] @ movhi
1548915764 bl decrement_vpc_count
1549015765 ldrh r2, [r4, #4]
15491
- cmp r2, #0
15492
- bne .L2538
15766
+ cbnz r2, .L2453
1549315767 ldrh r3, [r4, #2]
1549415768 strb r2, [r4, #6]
1549515769 adds r3, r3, #1
1549615770 strh r3, [r4, #2] @ movhi
1549715771 pop {r3, r4, r5, r6, r7, pc}
15498
-.L2539:
15499
- ldr r2, .L2544
15500
- ldrb r3, [r2, #144] @ zero_extendqisi2
15501
- cbz r3, .L2532
15502
- cmp r1, #1
15503
- bne .L2532
15504
- ldrh r1, [r4, #2]
15505
- ldrh r3, [r2, #2390]
15506
- cmp r1, r3
15507
- bcc .L2532
15508
- ldr r3, .L2544+4
15509
- ldrh r0, [r4]
15510
- ldrh r5, [r4, #4]
15511
- ldr r1, [r3, #296]
15512
- ldrh r3, [r1, r0, lsl #1]
15513
- subs r3, r3, r5
15514
- strh r3, [r1, r0, lsl #1] @ movhi
15515
- ldrh r2, [r2, #2388]
15772
+.L2453:
15773
+ ldrb r3, [r4, #6] @ zero_extendqisi2
15774
+ ldrh r2, [r5, #2324]
15775
+ adds r3, r3, #1
15776
+ uxtb r3, r3
15777
+ cmp r2, r3
15778
+ strb r3, [r4, #6]
15779
+ bne .L2452
15780
+ ldrh r3, [r4, #2]
15781
+ adds r3, r3, #1
15782
+ strh r3, [r4, #2] @ movhi
1551615783 movs r3, #0
15784
+ strb r3, [r4, #6]
15785
+.L2452:
15786
+ ldrb r3, [r4, #6] @ zero_extendqisi2
15787
+ adds r3, r3, #8
15788
+ ldrh r3, [r4, r3, lsl #1]
15789
+ b .L2451
15790
+.L2454:
15791
+ ldrb r3, [r5, #152] @ zero_extendqisi2
15792
+ cbz r3, .L2447
15793
+ cmp r2, #1
15794
+ bne .L2447
15795
+ ldrh r2, [r4, #2]
15796
+ ldrh r3, [r5, #2392]
15797
+ cmp r2, r3
15798
+ bcc .L2447
15799
+ ldr r3, .L2458+4
15800
+ ldrh r1, [r4]
15801
+ ldrh r0, [r4, #4]
15802
+ ldr r2, [r3, #300]
15803
+ ldrh r3, [r2, r1, lsl #1]
15804
+ subs r3, r3, r0
15805
+ strh r3, [r2, r1, lsl #1] @ movhi
15806
+ movs r3, #0
15807
+ ldrh r2, [r5, #2390]
1551715808 strh r3, [r4, #4] @ movhi
1551815809 strb r3, [r4, #6]
1551915810 strh r2, [r4, #2] @ movhi
15520
-.L2532:
15811
+.L2447:
1552115812 pop {r3, r4, r5, r6, r7, pc}
15522
-.L2545:
15813
+.L2459:
1552315814 .align 2
15524
-.L2544:
15815
+.L2458:
1552515816 .word .LANCHOR0
1552615817 .word .LANCHOR2
1552715818 .fnend
1552815819 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
1552915820 .align 1
1553015821 .global get_new_active_ppa
15822
+ .syntax unified
1553115823 .thumb
1553215824 .thumb_func
15825
+ .fpu softvfp
1553315826 .type get_new_active_ppa, %function
1553415827 get_new_active_ppa:
1553515828 .fnstart
1553615829 @ args = 0, pretend = 0, frame = 0
1553715830 @ frame_needed = 0, uses_anonymous_args = 0
15831
+ movs r3, #0
1553815832 push {r4, r5, r6, r7, r8, lr}
1553915833 .save {r4, r5, r6, r7, r8, lr}
15540
- movs r3, #0
1554115834 strb r3, [r0, #10]
1554215835 mov r4, r0
15543
- ldrb r3, [r0, #6] @ zero_extendqisi2
1554415836 movw r7, #65535
15545
- ldr r8, .L2563+4
15837
+ ldrb r3, [r0, #6] @ zero_extendqisi2
15838
+ ldr r5, .L2475
15839
+ ldr r6, .L2475+4
1554615840 adds r3, r3, #8
15547
- ldr r5, .L2563
1554815841 ldrh r2, [r0, r3, lsl #1]
15549
-.L2547:
15842
+.L2461:
1555015843 cmp r2, r7
15551
- ldr r6, .L2563+4
15552
- bne .L2562
15553
-.L2548:
15554
- ldrb r3, [r4, #6] @ zero_extendqisi2
15555
- ldrh r2, [r8, #2320]
15556
- adds r3, r3, #1
15557
- uxtb r3, r3
15558
- strb r3, [r4, #6]
15559
- cmp r2, r3
15560
- itttt eq
15561
- ldrheq r3, [r4, #2]
15562
- addeq r3, r3, #1
15563
- strheq r3, [r4, #2] @ movhi
15564
- moveq r3, #0
15565
- it eq
15566
- strbeq r3, [r4, #6]
15567
- ldrb r3, [r4, #6] @ zero_extendqisi2
15568
- adds r3, r3, #8
15569
- ldrh r2, [r4, r3, lsl #1]
15570
- b .L2547
15571
-.L2562:
15844
+ beq .L2462
1557215845 ldrb r3, [r4, #8] @ zero_extendqisi2
1557315846 ldrh r1, [r4, #2]
1557415847 cmp r3, #1
1557515848 ldrh r3, [r4, #4]
15576
- bne .L2550
15577
- ldrb r0, [r8, #144] @ zero_extendqisi2
15578
- cbnz r0, .L2550
15579
- add r0, r5, r1, lsl #1
15849
+ bne .L2464
15850
+ ldrb r0, [r5, #152] @ zero_extendqisi2
15851
+ cbnz r0, .L2464
15852
+ add r0, r6, r1, lsl #1
1558015853 ldrh r0, [r0, #1220]
1558115854 cmp r0, r7
15582
- bne .L2550
15855
+ bne .L2464
1558315856 subs r3, r3, #1
1558415857 ldrh r0, [r4]
1558515858 strh r3, [r4, #4] @ movhi
1558615859 bl decrement_vpc_count
15587
- b .L2548
15588
-.L2550:
15860
+.L2462:
15861
+ ldrb r3, [r4, #6] @ zero_extendqisi2
15862
+ ldrh r2, [r5, #2324]
15863
+ adds r3, r3, #1
15864
+ uxtb r3, r3
15865
+ cmp r2, r3
15866
+ strb r3, [r4, #6]
15867
+ bne .L2463
15868
+ ldrh r3, [r4, #2]
15869
+ adds r3, r3, #1
15870
+ strh r3, [r4, #2] @ movhi
15871
+ movs r3, #0
15872
+ strb r3, [r4, #6]
15873
+.L2463:
15874
+ ldrb r3, [r4, #6] @ zero_extendqisi2
15875
+ adds r3, r3, #8
15876
+ ldrh r2, [r4, r3, lsl #1]
15877
+ b .L2461
15878
+.L2464:
15879
+ ldr r8, .L2475+4
15880
+ orr r6, r1, r2, lsl #10
1558915881 movw r7, #65535
15590
- orr r5, r1, r2, lsl #10
15591
- mov r8, r7
1559215882 subs r3, r3, #1
1559315883 strh r3, [r4, #4] @ movhi
15594
-.L2551:
15884
+.L2465:
1559515885 ldrb r3, [r4, #6] @ zero_extendqisi2
15596
- ldrh r1, [r6, #2320]
15597
-.L2553:
15886
+ ldrh r1, [r5, #2324]
15887
+.L2467:
1559815888 adds r3, r3, #1
1559915889 uxtb r3, r3
1560015890 cmp r3, r1
....@@ -15606,60 +15896,57 @@
1560615896 add r2, r3, #8
1560715897 ldrh r2, [r4, r2, lsl #1]
1560815898 cmp r2, r7
15609
- beq .L2553
15899
+ beq .L2467
1561015900 strb r3, [r4, #6]
1561115901 ldrb r3, [r4, #8] @ zero_extendqisi2
1561215902 cmp r3, #1
15613
- bne .L2558
15614
- ldrb r3, [r6, #144] @ zero_extendqisi2
15615
- cbnz r3, .L2555
15616
- ldrh r2, [r4, #2]
15617
- ldr r3, .L2563
15618
- add r3, r3, r2, lsl #1
15903
+ bne .L2460
15904
+ ldrb r2, [r5, #152] @ zero_extendqisi2
15905
+ ldrh r3, [r4, #2]
15906
+ cbnz r2, .L2469
15907
+ add r3, r8, r3, lsl #1
1561915908 ldrh r3, [r3, #1220]
15620
- cmp r3, r8
15621
- bne .L2555
15909
+ cmp r3, r7
15910
+ bne .L2460
1562215911 ldrh r3, [r4, #4]
15623
- cbz r3, .L2555
15912
+ cbz r3, .L2460
1562415913 subs r3, r3, #1
1562515914 ldrh r0, [r4]
1562615915 strh r3, [r4, #4] @ movhi
1562715916 bl decrement_vpc_count
15628
- b .L2551
15629
-.L2555:
15630
- ldrb r3, [r6, #144] @ zero_extendqisi2
15631
- ldr r2, .L2563+4
15632
- cbz r3, .L2558
15633
- ldrh r1, [r4, #2]
15634
- ldrh r3, [r2, #2390]
15635
- cmp r1, r3
15636
- bcc .L2558
15637
- ldr r3, .L2563
15638
- ldrh r0, [r4]
15639
- ldrh r6, [r4, #4]
15640
- ldr r1, [r3, #296]
15641
- ldrh r3, [r1, r0, lsl #1]
15642
- subs r3, r3, r6
15643
- strh r3, [r1, r0, lsl #1] @ movhi
15644
- ldrh r2, [r2, #2388]
15917
+ b .L2465
15918
+.L2469:
15919
+ ldrh r2, [r5, #2392]
15920
+ cmp r3, r2
15921
+ bcc .L2460
15922
+ ldr r3, .L2475+4
15923
+ ldrh r1, [r4]
15924
+ ldrh r0, [r4, #4]
15925
+ ldr r2, [r3, #300]
15926
+ ldrh r3, [r2, r1, lsl #1]
15927
+ subs r3, r3, r0
15928
+ strh r3, [r2, r1, lsl #1] @ movhi
1564515929 movs r3, #0
15930
+ ldrh r2, [r5, #2390]
1564615931 strh r3, [r4, #4] @ movhi
1564715932 strb r3, [r4, #6]
1564815933 strh r2, [r4, #2] @ movhi
15649
-.L2558:
15650
- mov r0, r5
15934
+.L2460:
15935
+ mov r0, r6
1565115936 pop {r4, r5, r6, r7, r8, pc}
15652
-.L2564:
15937
+.L2476:
1565315938 .align 2
15654
-.L2563:
15655
- .word .LANCHOR2
15939
+.L2475:
1565615940 .word .LANCHOR0
15941
+ .word .LANCHOR2
1565715942 .fnend
1565815943 .size get_new_active_ppa, .-get_new_active_ppa
1565915944 .align 1
1566015945 .global FtlVpcTblFlush
15946
+ .syntax unified
1566115947 .thumb
1566215948 .thumb_func
15949
+ .fpu softvfp
1566315950 .type FtlVpcTblFlush, %function
1566415951 FtlVpcTblFlush:
1566515952 .fnstart
....@@ -15667,249 +15954,245 @@
1566715954 @ frame_needed = 0, uses_anonymous_args = 0
1566815955 push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1566915956 .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
15670
- ldr r4, .L2588
15671
- ldr r3, [r4, #224]
15957
+ ldr r4, .L2500
15958
+ ldr r3, [r4, #228]
1567215959 cmp r3, #0
15673
- bne .L2567
15674
- ldr r5, .L2588+4
15960
+ bne .L2479
15961
+ ldr r5, .L2500+4
1567515962 movs r1, #255
1567615963 ldr r2, [r4, #3316]
1567715964 ldr r7, [r4, #3340]
15678
- ldr r6, .L2588+8
15679
- str r2, [r5, #1256]
15965
+ ldr r6, .L2500+8
15966
+ str r2, [r5, #1264]
1568015967 ldrh r2, [r4, #540]
15681
- str r7, [r5, #1260]
15968
+ str r7, [r5, #1268]
1568215969 str r3, [r7, #12]
1568315970 strh r2, [r7, #2] @ movhi
1568415971 movw r2, #61604
1568515972 strh r2, [r7] @ movhi
1568615973 ldr r2, [r4, #548]
1568715974 str r3, [r7, #8]
15688
- ldr r3, .L2588+12
15975
+ ldr r3, .L2500+12
1568915976 str r2, [r7, #4]
15690
- ldrh r2, [r4, #318]
15691
- str r3, [r4, #240]
15692
- ldr r3, .L2588+16
15977
+ ldrh r2, [r4, #322]
1569315978 str r3, [r4, #244]
15979
+ ldr r3, .L2500+16
15980
+ str r3, [r4, #248]
1569415981 ldrh r3, [r4, #546]
15695
- strh r3, [r4, #248] @ movhi
15696
- ldrh r3, [r6, #2342]
15697
- strb r3, [r4, #250]
15698
- ldrh r3, [r4, #316]
15699
- strh r3, [r4, #254] @ movhi
15700
- ldrb r3, [r4, #322] @ zero_extendqisi2
15701
- orr r3, r3, r2, lsl #6
15702
- strh r3, [r4, #256] @ movhi
15703
- ldrb r3, [r4, #324] @ zero_extendqisi2
15704
- ldrh r2, [r4, #366]
15705
- strb r3, [r4, #251]
15706
- ldrh r3, [r4, #364]
15982
+ strh r3, [r4, #252] @ movhi
15983
+ ldrh r3, [r6, #2346]
15984
+ strb r3, [r4, #254]
15985
+ ldrh r3, [r4, #320]
1570715986 strh r3, [r4, #258] @ movhi
15708
- ldrb r3, [r4, #370] @ zero_extendqisi2
15987
+ ldrb r3, [r4, #326] @ zero_extendqisi2
1570915988 orr r3, r3, r2, lsl #6
15989
+ ldrh r2, [r4, #370]
1571015990 strh r3, [r4, #260] @ movhi
15711
- ldrb r3, [r4, #372] @ zero_extendqisi2
15712
- strb r3, [r4, #252]
15713
- ldrh r3, [r4, #412]
15991
+ ldrb r3, [r4, #328] @ zero_extendqisi2
15992
+ strb r3, [r4, #255]
15993
+ ldrh r3, [r4, #368]
1571415994 strh r3, [r4, #262] @ movhi
15715
- ldrh r2, [r4, #414]
15716
- ldrb r3, [r4, #418] @ zero_extendqisi2
15717
- ldr r0, [r5, #1256]
15995
+ ldrb r3, [r4, #374] @ zero_extendqisi2
1571815996 orr r3, r3, r2, lsl #6
1571915997 strh r3, [r4, #264] @ movhi
15720
- ldrb r3, [r4, #420] @ zero_extendqisi2
15721
- ldrh r2, [r6, #2398]
15722
- strb r3, [r4, #253]
15998
+ ldrb r3, [r4, #376] @ zero_extendqisi2
15999
+ strb r3, [r4, #256]
16000
+ ldrh r3, [r4, #416]
16001
+ strh r3, [r4, #266] @ movhi
16002
+ ldrh r2, [r4, #418]
16003
+ ldrb r3, [r4, #422] @ zero_extendqisi2
16004
+ ldr r0, [r5, #1264]
16005
+ orr r3, r3, r2, lsl #6
16006
+ ldrh r2, [r6, #2400]
16007
+ strh r3, [r4, #268] @ movhi
16008
+ ldrb r3, [r4, #424] @ zero_extendqisi2
16009
+ strb r3, [r4, #257]
1572316010 ldr r3, [r4, #516]
15724
- str r3, [r4, #272]
15725
- ldr r3, [r4, #508]
15726
- str r3, [r4, #280]
15727
- ldr r3, [r4, #512]
1572816011 str r3, [r4, #276]
16012
+ ldr r3, [r4, #508]
16013
+ str r3, [r4, #284]
16014
+ ldr r3, [r4, #512]
16015
+ str r3, [r4, #280]
1572916016 ldrh r3, [r4, #1174]
15730
- strh r3, [r4, #284] @ movhi
16017
+ strh r3, [r4, #288] @ movhi
1573116018 ldrh r3, [r4, #1176]
15732
- strh r3, [r4, #286] @ movhi
16019
+ strh r3, [r4, #290] @ movhi
1573316020 bl ftl_memset
15734
- add r1, r4, #240
1573516021 movs r2, #48
15736
- ldr r0, [r5, #1256]
16022
+ add r1, r4, #244
16023
+ ldr r0, [r5, #1264]
1573716024 bl ftl_memcpy
15738
- ldrh r2, [r6, #2328]
15739
- ldr r0, [r5, #1256]
15740
- ldr r1, [r4, #296]
16025
+ ldrh r2, [r6, #2332]
16026
+ ldr r0, [r5, #1264]
16027
+ ldr r1, [r4, #300]
1574116028 lsls r2, r2, #1
1574216029 adds r0, r0, #48
1574316030 bl ftl_memcpy
15744
- ldrh r2, [r6, #2328]
15745
- ldr r0, [r5, #1256]
15746
- ldr r1, [r4, #472]
15747
- lsls r3, r2, #1
15748
- lsrs r2, r2, #3
15749
- adds r3, r3, #51
16031
+ ldrh r0, [r6, #2332]
16032
+ ldr r3, [r5, #1264]
16033
+ ldr r1, [r6, #32]
16034
+ lsrs r2, r0, #3
16035
+ lsls r0, r0, #1
16036
+ adds r0, r0, #51
1575016037 adds r2, r2, #4
15751
- bic r3, r3, #3
16038
+ bic r0, r0, #3
1575216039 add r0, r0, r3
1575316040 bl ftl_memcpy
15754
- ldrh r3, [r6, #2432]
15755
- cbz r3, .L2568
15756
- ldrh r2, [r6, #2328]
15757
- ldr r0, [r5, #1256]
16041
+ ldrh r3, [r6, #2436]
16042
+ cbz r3, .L2480
16043
+ ldrh r0, [r6, #2332]
16044
+ ldrh r2, [r6, #2428]
1575816045 ldr r1, [r4, #3388]
15759
- lsrs r3, r2, #3
15760
- add r3, r3, r2, lsl #1
15761
- ldrh r2, [r6, #2424]
16046
+ lsrs r3, r0, #3
16047
+ lsls r2, r2, #2
16048
+ add r3, r3, r0, lsl #1
16049
+ ldr r0, [r5, #1264]
1576216050 adds r3, r3, #52
1576316051 ubfx r3, r3, #2, #14
15764
- lsls r2, r2, #2
1576516052 add r0, r0, r3, lsl #2
1576616053 bl ftl_memcpy
15767
-.L2568:
15768
- movs r0, #0
15769
- ldr r10, .L2588
15770
- bl FtlUpdateVaildLpn
15771
- ldr fp, .L2588+8
16054
+.L2480:
16055
+ ldr fp, .L2500+24
1577216056 mov r8, #0
1577316057 movw r9, #65535
15774
-.L2569:
16058
+ mov r10, r8
16059
+ movs r0, #0
16060
+ bl FtlUpdateVaildLpn
16061
+.L2481:
1577516062 ldr r3, [r4, #3316]
15776
- ldrh r2, [r4, #540]
1577716063 ldrh r1, [r4, #542]
15778
- str r3, [r5, #1256]
16064
+ ldrh r2, [r4, #540]
16065
+ str r3, [r5, #1264]
1577916066 ldr r3, [r4, #3340]
15780
- str r3, [r5, #1260]
16067
+ str r3, [r5, #1268]
1578116068 orr r3, r1, r2, lsl #10
15782
- str r3, [r5, #1252]
15783
- ldrh r3, [r6, #2390]
16069
+ str r3, [r5, #1260]
16070
+ ldrh r3, [r6, #2392]
1578416071 subs r3, r3, #1
1578516072 cmp r1, r3
15786
- blt .L2570
15787
- movs r3, #0
15788
- ldrh r9, [r10, #544]
15789
- strh r3, [r10, #542] @ movhi
15790
- strh r2, [r10, #544] @ movhi
16073
+ blt .L2482
16074
+ ldrh r9, [r4, #544]
16075
+ strh r10, [r4, #542] @ movhi
16076
+ strh r2, [r4, #544] @ movhi
1579116077 bl FtlFreeSysBlkQueueOut
15792
- ldr r3, [r10, #508]
15793
- ldr r1, .L2588+4
16078
+ ldr r3, [r4, #508]
16079
+ strh r0, [r4, #540] @ movhi
1579416080 adds r2, r3, #1
15795
- str r2, [r10, #508]
15796
- str r3, [r10, #548]
16081
+ str r3, [r4, #548]
16082
+ str r2, [r4, #508]
1579716083 lsls r2, r0, #10
15798
- strh r0, [r10, #540] @ movhi
15799
- str r2, [r1, #1252]
16084
+ str r2, [r5, #1260]
1580016085 str r3, [r7, #4]
1580116086 strh r0, [r7, #2] @ movhi
15802
-.L2570:
15803
- ldrb r3, [r6] @ zero_extendqisi2
15804
- cbz r3, .L2571
16087
+.L2482:
16088
+ ldrb r3, [r6, #36] @ zero_extendqisi2
16089
+ cbz r3, .L2483
16090
+ ldrh r1, [r6, #2400]
1580516091 ldr r0, [r4, #3316]
15806
- ldrh r1, [fp, #2398]
1580716092 bl js_hash
1580816093 str r0, [r7, #12]
15809
-.L2571:
15810
- movs r1, #1
15811
- ldr r0, .L2588+20
15812
- mov r2, r1
15813
- mov r3, r1
16094
+.L2483:
16095
+ movs r3, #1
16096
+ mov r0, fp
16097
+ mov r2, r3
16098
+ mov r1, r3
1581416099 bl FlashProgPages
1581516100 ldrh r3, [r4, #542]
15816
- ldr r2, [r5, #1248]
16101
+ ldr r2, [r5, #1256]
1581716102 adds r3, r3, #1
15818
- adds r1, r2, #1
1581916103 uxth r3, r3
16104
+ adds r1, r2, #1
1582016105 strh r3, [r4, #542] @ movhi
15821
- bne .L2572
16106
+ bne .L2484
1582216107 cmp r3, #1
1582316108 add r8, r8, #1
1582416109 it eq
15825
- ldrheq r3, [r6, #2390]
16110
+ ldrheq r3, [r6, #2392]
1582616111 uxth r8, r8
1582716112 itt eq
1582816113 addeq r3, r3, #-1
15829
- strheq r3, [r10, #542] @ movhi
16114
+ strheq r3, [r4, #542] @ movhi
1583016115 cmp r8, #3
15831
- bls .L2569
15832
- ldr r0, .L2588+24
16116
+ bls .L2481
1583316117 mov r2, r8
15834
- ldr r1, [r5, #1252]
16118
+ ldr r1, [r5, #1260]
16119
+ ldr r0, .L2500+20
1583516120 bl printk
1583616121 movs r3, #1
15837
- str r3, [r4, #224]
15838
- b .L2567
15839
-.L2572:
15840
- cmp r3, #1
15841
- beq .L2569
15842
- cmp r2, #256
15843
- beq .L2569
15844
- movw r3, #65535
15845
- cmp r9, r3
15846
- beq .L2567
15847
- mov r0, r9
15848
- movs r1, #1
15849
- bl FtlFreeSysBlkQueueIn
15850
-.L2567:
16122
+ str r3, [r4, #228]
16123
+.L2479:
1585116124 movs r0, #0
1585216125 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
15853
-.L2589:
16126
+.L2484:
16127
+ cmp r3, #1
16128
+ beq .L2481
16129
+ cmp r2, #256
16130
+ beq .L2481
16131
+ movw r3, #65535
16132
+ cmp r9, r3
16133
+ beq .L2479
16134
+ movs r1, #1
16135
+ mov r0, r9
16136
+ bl FtlFreeSysBlkQueueIn
16137
+ b .L2479
16138
+.L2501:
1585416139 .align 2
15855
-.L2588:
16140
+.L2500:
1585616141 .word .LANCHOR2
1585716142 .word .LANCHOR4
1585816143 .word .LANCHOR0
1585916144 .word 1179929683
1586016145 .word 1342177379
15861
- .word .LANCHOR4+1248
1586216146 .word .LC132
16147
+ .word .LANCHOR4+1256
1586316148 .fnend
1586416149 .size FtlVpcTblFlush, .-FtlVpcTblFlush
1586516150 .align 1
1586616151 .global FtlSuperblockPowerLostFix
16152
+ .syntax unified
1586716153 .thumb
1586816154 .thumb_func
16155
+ .fpu softvfp
1586916156 .type FtlSuperblockPowerLostFix, %function
1587016157 FtlSuperblockPowerLostFix:
1587116158 .fnstart
1587216159 @ args = 0, pretend = 0, frame = 40
1587316160 @ frame_needed = 0, uses_anonymous_args = 0
15874
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15875
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
16161
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
16162
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
1587616163 mov r4, r0
15877
- ldr r5, .L2606
15878
- .pad #44
15879
- sub sp, sp, #44
15880
- ldr r3, [r5, #224]
15881
- cmp r3, #0
15882
- bne .L2590
15883
- ldr r2, .L2606+4
15884
- ldrb r6, [r2, #144] @ zero_extendqisi2
15885
- mov r8, r2
15886
- cbz r6, .L2605
15887
- ldrb r6, [r0, #8] @ zero_extendqisi2
15888
- cmp r6, #1
15889
- bne .L2601
15890
- ldrh fp, [r0, #4]
15891
- b .L2592
15892
-.L2601:
15893
- mov r6, r3
15894
-.L2605:
15895
- mov fp, #12
15896
-.L2592:
15897
- ldr r7, [r5, #3340]
16164
+ ldr r5, .L2517
16165
+ .pad #40
16166
+ sub sp, sp, #40
16167
+ ldr r10, [r5, #228]
16168
+ cmp r10, #0
16169
+ bne .L2502
16170
+ ldr r3, .L2517+4
16171
+ ldrb r2, [r3, #152] @ zero_extendqisi2
16172
+ mov r8, r3
16173
+ cmp r2, #0
16174
+ beq .L2513
16175
+ ldrb r3, [r0, #8] @ zero_extendqisi2
16176
+ cmp r3, #1
16177
+ bne .L2513
16178
+ ldrh r7, [r0, #4]
16179
+ mov r10, r3
16180
+.L2504:
1589816181 mov r3, #-1
16182
+ ldr r6, [r5, #3340]
1589916183 str r3, [sp, #20]
1590016184 mov r9, #0
1590116185 ldr r3, [r5, #3316]
1590216186 movw r2, #61589
15903
- str r7, [sp, #16]
15904
- ldr r10, .L2606
16187
+ str r6, [sp, #16]
1590516188 str r3, [sp, #12]
1590616189 mvn r3, #2
15907
- str r3, [r7, #8]
16190
+ str r3, [r6, #8]
1590816191 mvn r3, #1
15909
- str r3, [r7, #12]
16192
+ str r3, [r6, #12]
1591016193 ldrh r3, [r4]
15911
- strh r9, [r7] @ movhi
15912
- strh r3, [r7, #2] @ movhi
16194
+ strh r9, [r6] @ movhi
16195
+ strh r3, [r6, #2] @ movhi
1591316196 ldr r3, [r5, #3316]
1591416197 str r2, [r3]
1591516198 add r2, r2, #304087040
....@@ -15917,60 +16200,64 @@
1591716200 add r2, r2, #1269760
1591816201 addw r2, r2, #1507
1591916202 str r2, [r3, #4]
15920
-.L2593:
15921
- adds fp, fp, #-1
15922
- bcc .L2596
16203
+.L2505:
16204
+ adds r7, r7, #-1
16205
+ bcc .L2508
1592316206 ldrh r3, [r4, #4]
15924
- cbnz r3, .L2594
15925
-.L2596:
15926
- ldr r2, [r5, #296]
16207
+ cbnz r3, .L2506
16208
+.L2508:
16209
+ ldr r2, [r5, #300]
1592716210 ldrh r1, [r4]
1592816211 ldrh r0, [r4, #4]
1592916212 ldrh r3, [r2, r1, lsl #1]
1593016213 subs r3, r3, r0
1593116214 strh r3, [r2, r1, lsl #1] @ movhi
15932
- ldrh r3, [r8, #2388]
16215
+ ldrh r3, [r8, #2390]
1593316216 strh r3, [r4, #2] @ movhi
1593416217 movs r3, #0
1593516218 strb r3, [r4, #6]
1593616219 strh r3, [r4, #4] @ movhi
15937
- b .L2590
15938
-.L2594:
16220
+.L2502:
16221
+ add sp, sp, #40
16222
+ @ sp needed
16223
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
16224
+.L2513:
16225
+ movs r7, #12
16226
+ b .L2504
16227
+.L2506:
1593916228 mov r0, r4
1594016229 bl get_new_active_ppa
1594116230 str r0, [sp, #8]
1594216231 adds r0, r0, #1
15943
- beq .L2596
16232
+ beq .L2508
1594416233 ldr r3, [r5, #512]
1594516234 movs r1, #1
1594616235 add r0, sp, #4
15947
- str r3, [r7, #4]
16236
+ str r3, [r6, #4]
1594816237 adds r3, r3, #1
1594916238 adds r2, r3, #1
15950
- mov r2, r6
16239
+ mov r2, r10
1595116240 it eq
1595216241 moveq r3, r9
15953
- str r3, [r10, #512]
16242
+ str r3, [r5, #512]
1595416243 movs r3, #0
1595516244 bl FlashProgPages
1595616245 ldrh r0, [r4]
1595716246 bl decrement_vpc_count
15958
- b .L2593
15959
-.L2590:
15960
- add sp, sp, #44
15961
- @ sp needed
15962
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
15963
-.L2607:
16247
+ b .L2505
16248
+.L2518:
1596416249 .align 2
15965
-.L2606:
16250
+.L2517:
1596616251 .word .LANCHOR2
1596716252 .word .LANCHOR0
1596816253 .fnend
1596916254 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
1597016255 .align 1
1597116256 .global ftl_map_blk_gc
16257
+ .syntax unified
1597216258 .thumb
1597316259 .thumb_func
16260
+ .fpu softvfp
1597416261 .type ftl_map_blk_gc, %function
1597516262 ftl_map_blk_gc:
1597616263 .fnstart
....@@ -15981,20 +16268,19 @@
1598116268 .pad #12
1598216269 mov r4, r0
1598316270 ldr r5, [r0, #12]
15984
- ldr r8, [r0, #24]
16271
+ ldr r10, [r0, #24]
1598516272 bl ftl_free_no_use_map_blk
1598616273 ldrh r3, [r4, #10]
1598716274 ldrh r2, [r4, #8]
1598816275 subs r3, r3, #4
1598916276 cmp r2, r3
15990
- blt .L2609
16277
+ blt .L2520
1599116278 uxth r0, r0
15992
- ldrh r10, [r5, r0, lsl #1]
15993
- cmp r10, #0
15994
- beq .L2609
16279
+ ldrh r9, [r5, r0, lsl #1]
16280
+ cmp r9, #0
16281
+ beq .L2520
1599516282 ldr r3, [r4, #32]
15996
- cmp r3, #0
15997
- bne .L2609
16283
+ cbnz r3, .L2520
1599816284 movs r2, #1
1599916285 str r2, [r4, #32]
1600016286 strh r3, [r5, r0, lsl #1] @ movhi
....@@ -16002,99 +16288,103 @@
1600216288 ldrh r2, [r4, #2]
1600316289 subs r3, r3, #1
1600416290 strh r3, [r4, #8] @ movhi
16005
- ldr r3, .L2621
16006
- ldrh r3, [r3, #2390]
16291
+ ldr r3, .L2531
16292
+ ldrh r3, [r3, #2392]
1600716293 cmp r2, r3
16008
- bcc .L2610
16294
+ bcc .L2521
1600916295 mov r0, r4
1601016296 bl ftl_map_blk_alloc_new_blk
16011
-.L2610:
16012
- ldr r6, .L2621+4
16013
- mov fp, #0
16014
- ldr r9, .L2621+16
16015
-.L2611:
16297
+.L2521:
16298
+ ldr r5, .L2531+4
16299
+ movs r6, #0
16300
+ ldr fp, .L2531+16
16301
+.L2522:
1601616302 ldrh r2, [r4, #6]
16017
- uxth r5, fp
16018
- cmp r2, r5
16019
- bls .L2620
16020
- ldr r2, [r8, r5, lsl #2]
16021
- add ip, r8, r5, lsl #2
16022
- cmp r10, r2, lsr #10
16023
- bne .L2612
16024
- ldr r2, [r9, #3320]
16303
+ uxth r3, r6
16304
+ cmp r2, r3
16305
+ bhi .L2527
1602516306 movs r1, #1
16026
- ldr r7, [r9, #3340]
16027
- ldr r0, .L2621+8
16028
- str r2, [r6, #1256]
16029
- str r7, [r6, #1260]
16030
- ldr r2, [r8, r5, lsl #2]
16031
- str ip, [sp, #4]
16032
- str r2, [r6, #1252]
16033
- mov r2, r1
16034
- bl FlashReadPages
16035
- ldr r2, [r6, #1248]
16036
- adds r2, r2, #1
16037
- ldr ip, [sp, #4]
16038
- bne .L2613
16039
-.L2615:
16040
- movs r3, #0
16041
- str r3, [ip]
16042
- ldr r3, .L2621+4
16043
- ldrh r2, [r7, #8]
16044
- ldr r0, .L2621+12
16045
- ldr r1, [r3, #1252]
16046
- bl printk
16047
- ldr r3, .L2621+16
16048
- movs r2, #1
16049
- str r2, [r3, #224]
16050
- b .L2614
16051
-.L2613:
16052
- ldrh r1, [r7, #8]
16053
- cmp r1, r5
16054
- bne .L2615
16055
- ldrh r0, [r7]
16056
- ldrh r2, [r4, #4]
16057
- cmp r0, r2
16058
- bne .L2615
16059
- mov r0, r4
16060
- ldr r2, [r6, #1256]
16061
- bl FtlMapWritePage
16062
-.L2612:
16063
- add fp, fp, #1
16064
- b .L2611
16065
-.L2620:
16066
- mov r0, r10
16067
- movs r1, #1
16307
+ mov r0, r9
1606816308 bl FtlFreeSysBlkQueueIn
1606916309 movs r3, #0
1607016310 str r3, [r4, #32]
16071
-.L2609:
16072
- ldr r3, .L2621
16311
+.L2520:
16312
+ ldr r3, .L2531
1607316313 ldrh r2, [r4, #2]
16074
- ldrh r3, [r3, #2390]
16314
+ ldrh r3, [r3, #2392]
1607516315 cmp r2, r3
16076
- bcc .L2614
16316
+ bcc .L2525
1607716317 mov r0, r4
1607816318 bl ftl_map_blk_alloc_new_blk
16079
-.L2614:
16319
+ b .L2525
16320
+.L2527:
16321
+ uxth r7, r6
16322
+ add r2, r10, r7, lsl #2
16323
+ str r2, [sp]
16324
+ ldr r2, [r10, r7, lsl #2]
16325
+ cmp r9, r2, lsr #10
16326
+ bne .L2523
16327
+ ldr r2, [fp, #3320]
16328
+ ldr r8, [fp, #3340]
16329
+ ldr r0, .L2531+8
16330
+ str r2, [r5, #1264]
16331
+ str r8, [r5, #1268]
16332
+ ldr r2, [r10, r7, lsl #2]
16333
+ str r3, [sp, #4]
16334
+ str r2, [r5, #1260]
16335
+ movs r2, #1
16336
+ mov r1, r2
16337
+ bl FlashReadPages
16338
+ ldr r2, [r5, #1256]
16339
+ ldr r3, [sp, #4]
16340
+ adds r2, r2, #1
16341
+ bne .L2524
16342
+.L2526:
16343
+ ldr r2, [sp]
16344
+ movs r3, #0
16345
+ ldr r0, .L2531+12
16346
+ str r3, [r2]
16347
+ ldrh r2, [r8, #8]
16348
+ ldr r1, [r5, #1260]
16349
+ bl printk
16350
+ movs r3, #1
16351
+ str r3, [fp, #228]
16352
+.L2525:
1608016353 movs r0, #0
1608116354 add sp, sp, #12
1608216355 @ sp needed
1608316356 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16084
-.L2622:
16357
+.L2524:
16358
+ ldrh r2, [r8, #8]
16359
+ cmp r2, r3
16360
+ bne .L2526
16361
+ ldrh r2, [r8]
16362
+ ldrh r3, [r4, #4]
16363
+ cmp r2, r3
16364
+ bne .L2526
16365
+ ldr r2, [r5, #1264]
16366
+ mov r1, r7
16367
+ mov r0, r4
16368
+ bl FtlMapWritePage
16369
+.L2523:
16370
+ adds r6, r6, #1
16371
+ b .L2522
16372
+.L2532:
1608516373 .align 2
16086
-.L2621:
16374
+.L2531:
1608716375 .word .LANCHOR0
1608816376 .word .LANCHOR4
16089
- .word .LANCHOR4+1248
16377
+ .word .LANCHOR4+1256
1609016378 .word .LC133
1609116379 .word .LANCHOR2
1609216380 .fnend
1609316381 .size ftl_map_blk_gc, .-ftl_map_blk_gc
1609416382 .align 1
1609516383 .global Ftl_write_map_blk_to_last_page
16384
+ .syntax unified
1609616385 .thumb
1609716386 .thumb_func
16387
+ .fpu softvfp
1609816388 .type Ftl_write_map_blk_to_last_page, %function
1609916389 Ftl_write_map_blk_to_last_page:
1610016390 .fnstart
....@@ -16103,16 +16393,14 @@
1610316393 push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1610416394 .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1610516395 mov r4, r0
16106
- ldr r6, .L2634
16107
- ldr r7, [r0, #12]
16108
- ldr r10, [r0, #24]
16109
- ldr r5, [r6, #224]
16110
- cmp r5, #0
16111
- bne .L2624
16396
+ ldr r6, .L2543
16397
+ ldr r5, [r6, #228]
16398
+ cbnz r5, .L2534
1611216399 ldrh r3, [r0]
1611316400 movw r2, #65535
16401
+ ldr r7, [r0, #12]
1611416402 cmp r3, r2
16115
- bne .L2625
16403
+ bne .L2535
1611616404 ldrh r3, [r0, #8]
1611716405 adds r3, r3, #1
1611816406 strh r3, [r0, #8] @ movhi
....@@ -16120,88 +16408,92 @@
1612016408 strh r0, [r7] @ movhi
1612116409 ldr r3, [r4, #28]
1612216410 strh r5, [r4, #2] @ movhi
16123
- adds r3, r3, #1
1612416411 strh r5, [r4] @ movhi
16412
+ adds r3, r3, #1
1612516413 str r3, [r4, #28]
16126
- b .L2624
16127
-.L2625:
16128
- ldrh r9, [r7, r3, lsl #1]
16414
+.L2534:
16415
+ movs r0, #0
16416
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
16417
+.L2535:
16418
+ ldrh r10, [r7, r3, lsl #1]
1612916419 movs r1, #255
16130
- ldr fp, .L2634+12
1613116420 ldrh r3, [r0, #2]
16421
+ ldr r8, .L2543+8
1613216422 ldr r7, [r6, #3340]
16133
- orr r3, r3, r9, lsl #10
16134
- str r3, [fp, #1252]
16423
+ ldr fp, [r0, #24]
16424
+ orr r3, r3, r10, lsl #10
16425
+ ldr r9, .L2543+12
16426
+ str r7, [r8, #1268]
16427
+ str r3, [r8, #1260]
1613516428 ldr r3, [r6, #3316]
16136
- str r7, [fp, #1260]
16137
- ldr r8, .L2634+4
16138
- str r3, [fp, #1256]
16429
+ str r3, [r8, #1264]
1613916430 ldr r3, [r0, #28]
1614016431 str r3, [r7, #4]
1614116432 movw r3, #64245
1614216433 strh r3, [r7, #8] @ movhi
1614316434 ldrh r3, [r0, #4]
16144
- strh r9, [r7, #2] @ movhi
16435
+ strh r10, [r7, #2] @ movhi
1614516436 strh r3, [r7] @ movhi
16146
- ldrh r2, [r8, #2390]
16437
+ ldrh r2, [r9, #2392]
1614716438 ldr r0, [r6, #3316]
1614816439 lsls r2, r2, #3
1614916440 bl ftl_memset
16150
- mov r1, r5
16151
-.L2626:
16152
- ldrh r2, [r4, #6]
16153
- uxth r3, r1
16154
- cmp r2, r3
16155
- bls .L2633
16156
- ldr r2, [r10, r3, lsl #2]
16157
- cmp r9, r2, lsr #10
16158
- bne .L2627
16159
- adds r5, r5, #1
16160
- ldr r2, [r6, #3316]
16161
- uxth r5, r5
16162
- str r3, [r2, r5, lsl #3]
16163
- ldr r2, [r10, r3, lsl #2]
16164
- ldr r3, [r6, #3316]
16165
- add r3, r3, r5, lsl #3
16166
- str r2, [r3, #4]
16167
-.L2627:
16168
- adds r1, r1, #1
16169
- b .L2626
16170
-.L2633:
16171
- ldrb r3, [r8] @ zero_extendqisi2
16172
- cbz r3, .L2629
16173
- ldr r3, .L2634+4
16174
- ldr r0, [fp, #1256]
16175
- ldrh r1, [r3, #2398]
16441
+ mov r3, r5
16442
+ mov r2, r5
16443
+.L2536:
16444
+ ldrh r0, [r4, #6]
16445
+ uxth r1, r3
16446
+ cmp r0, r1
16447
+ bhi .L2538
16448
+ ldrb r3, [r9, #36] @ zero_extendqisi2
16449
+ cbz r3, .L2539
16450
+ ldrh r1, [r9, #2400]
16451
+ ldr r0, [r8, #1264]
1617616452 bl js_hash
1617716453 str r0, [r7, #12]
16178
-.L2629:
16179
- movs r1, #1
16454
+.L2539:
16455
+ movs r2, #1
1618016456 movs r3, #0
16181
- ldr r0, .L2634+8
16182
- mov r2, r1
16457
+ mov r1, r2
16458
+ ldr r0, .L2543+4
1618316459 bl FlashProgPages
1618416460 ldrh r3, [r4, #2]
1618516461 mov r0, r4
1618616462 adds r3, r3, #1
1618716463 strh r3, [r4, #2] @ movhi
1618816464 bl ftl_map_blk_gc
16189
-.L2624:
16190
- movs r0, #0
16191
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
16192
-.L2635:
16465
+ b .L2534
16466
+.L2538:
16467
+ uxth r0, r3
16468
+ ldr r1, [fp, r0, lsl #2]
16469
+ cmp r10, r1, lsr #10
16470
+ bne .L2537
16471
+ ldr r1, [r6, #3316]
16472
+ adds r2, r2, #1
16473
+ uxth r2, r2
16474
+ str r0, [r1, r2, lsl #3]
16475
+ ldr r1, [r6, #3316]
16476
+ ldr r0, [fp, r0, lsl #2]
16477
+ add r1, r1, r2, lsl #3
16478
+ str r0, [r1, #4]
16479
+.L2537:
16480
+ adds r3, r3, #1
16481
+ b .L2536
16482
+.L2544:
1619316483 .align 2
16194
-.L2634:
16484
+.L2543:
1619516485 .word .LANCHOR2
16196
- .word .LANCHOR0
16197
- .word .LANCHOR4+1248
16486
+ .word .LANCHOR4+1256
1619816487 .word .LANCHOR4
16488
+ .word .LANCHOR0
1619916489 .fnend
1620016490 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
1620116491 .align 1
1620216492 .global FtlMapWritePage
16493
+ .syntax unified
1620316494 .thumb
1620416495 .thumb_func
16496
+ .fpu softvfp
1620516497 .type FtlMapWritePage, %function
1620616498 FtlMapWritePage:
1620716499 .fnstart
....@@ -16210,142 +16502,140 @@
1621016502 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1621116503 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1621216504 .pad #12
16213
- movs r6, #0
16214
- ldr r7, .L2660
1621516505 mov r4, r0
16216
- mov r9, r1
16506
+ ldr r8, .L2569+20
16507
+ mov fp, r1
16508
+ movs r6, #0
16509
+ ldr r7, .L2569
16510
+ mov r9, r8
1621716511 str r2, [sp]
16218
-.L2637:
16219
- ldr r3, [r7, #492]
16220
- ldr fp, .L2660+4
16512
+.L2546:
16513
+ ldr r3, [r8, #492]
1622116514 adds r3, r3, #1
16222
- str r3, [r7, #492]
16223
- ldr r3, .L2660+4
16515
+ str r3, [r8, #492]
16516
+ ldrh r3, [r7, #2392]
1622416517 ldrh r2, [r4, #2]
16225
- ldrh r3, [r3, #2390]
1622616518 subs r3, r3, #1
1622716519 cmp r2, r3
16228
- bge .L2638
16520
+ bge .L2547
1622916521 ldrh r2, [r4]
1623016522 movw r3, #65535
1623116523 cmp r2, r3
16232
- bne .L2639
16233
-.L2638:
16524
+ bne .L2548
16525
+.L2547:
1623416526 mov r0, r4
1623516527 bl Ftl_write_map_blk_to_last_page
16236
-.L2639:
16237
- ldr r3, .L2660
16238
- ldr r1, [r3, #224]
16528
+.L2548:
16529
+ ldr r1, [r9, #228]
1623916530 cmp r1, #0
16240
- bne .L2655
16531
+ bne .L2564
1624116532 ldrh r2, [r4]
1624216533 ldr r3, [r4, #12]
16243
- ldr r5, .L2660+8
16244
- ldr r0, [r7, #3340]
16245
- ldrh r8, [r3, r2, lsl #1]
16534
+ ldr r5, .L2569+4
16535
+ ldr r0, [r9, #3340]
16536
+ ldrh r10, [r3, r2, lsl #1]
1624616537 movs r2, #16
1624716538 ldrh r3, [r4, #2]
16248
- mov r10, r5
16249
- str r0, [r5, #1260]
16250
- orr r3, r3, r8, lsl #10
16251
- str r3, [r5, #1252]
16539
+ str r0, [r5, #1268]
16540
+ orr r3, r3, r10, lsl #10
16541
+ str r3, [r5, #1260]
1625216542 ldr r3, [sp]
16253
- str r3, [r5, #1256]
16543
+ str r3, [r5, #1264]
1625416544 bl ftl_memset
16545
+ ldr r3, [r5, #1268]
1625516546 ldr r2, [r4, #28]
16256
- ldr r3, [r5, #1260]
16547
+ strh fp, [r3, #8] @ movhi
1625716548 str r2, [r3, #4]
16258
- strh r9, [r3, #8] @ movhi
1625916549 ldrh r2, [r4, #4]
16260
- strh r8, [r3, #2] @ movhi
16261
- strh r2, [r3] @ movhi
16262
- ldrb r2, [fp] @ zero_extendqisi2
16263
- cbz r2, .L2641
1626416550 str r3, [sp, #4]
16265
- ldr r3, .L2660+4
16266
- ldr r0, [r5, #1256]
16267
- ldrh r1, [r3, #2398]
16551
+ strh r10, [r3, #2] @ movhi
16552
+ strh r2, [r3] @ movhi
16553
+ ldrb r2, [r7, #36] @ zero_extendqisi2
16554
+ cbz r2, .L2550
16555
+ ldrh r1, [r7, #2400]
16556
+ ldr r0, [r5, #1264]
1626816557 bl js_hash
1626916558 ldr r3, [sp, #4]
1627016559 str r0, [r3, #12]
16271
-.L2641:
16272
- ldr ip, .L2660+8
16273
- movs r1, #1
16274
- add r0, ip, #1248
16275
- mov r2, r1
16276
- mov r3, r1
16277
- str ip, [sp, #4]
16560
+.L2550:
16561
+ movs r3, #1
16562
+ ldr r0, .L2569+8
16563
+ mov r2, r3
16564
+ mov r1, r3
1627816565 bl FlashProgPages
1627916566 ldrh r3, [r4, #2]
1628016567 adds r3, r3, #1
1628116568 uxth r3, r3
1628216569 strh r3, [r4, #2] @ movhi
16283
- ldr r2, [r5, #1248]
16570
+ ldr r2, [r5, #1256]
1628416571 adds r1, r2, #1
16285
- ldr ip, [sp, #4]
16286
- bne .L2642
16287
- ldr r0, .L2660+12
16572
+ bne .L2551
16573
+ ldr r1, [r5, #1260]
1628816574 adds r6, r6, #1
16289
- ldr r1, [ip, #1252]
16575
+ ldr r0, .L2569+12
16576
+ uxth r6, r6
1629016577 bl printk
1629116578 ldrh r3, [r4, #2]
16292
- uxth r6, r6
1629316579 cmp r3, #2
1629416580 ittt ls
16295
- ldrhls r3, [fp, #2390]
16581
+ ldrhls r3, [r7, #2392]
1629616582 addls r3, r3, #-1
1629716583 strhls r3, [r4, #2] @ movhi
1629816584 cmp r6, #3
16299
- bls .L2637
16585
+ bls .L2546
16586
+ ldr r3, .L2569+4
1630016587 mov r2, r6
16301
- ldr r0, .L2660+16
16302
- ldr r1, [r10, #1252]
16588
+ ldr r0, .L2569+16
16589
+ ldr r1, [r3, #1260]
1630316590 bl printk
16304
- ldr r3, .L2660
16305
- movs r2, #1
16306
- str r2, [r3, #224]
16307
- b .L2655
16308
-.L2642:
16309
- cbz r2, .L2645
16310
- cmp r3, #1
16311
- strh r8, [r4, #40] @ movhi
16312
- bne .L2646
16313
-.L2647:
16314
- movs r3, #0
16315
- str r3, [r4, #36]
16316
- b .L2637
16317
-.L2646:
16318
- cmp r2, #256
16319
- b .L2659
16320
-.L2645:
16321
- cmp r3, #1
16322
-.L2659:
16323
- beq .L2647
16324
- ldr r3, [r4, #36]
16325
- cmp r3, #0
16326
- bne .L2647
16327
- ldr r2, [r10, #1252]
16328
- ldr r3, [r4, #24]
16329
- str r2, [r3, r9, lsl #2]
16330
-.L2655:
16591
+ movs r3, #1
16592
+ str r3, [r9, #228]
16593
+.L2564:
1633116594 movs r0, #0
1633216595 add sp, sp, #12
1633316596 @ sp needed
1633416597 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16335
-.L2661:
16598
+.L2551:
16599
+ cbz r2, .L2554
16600
+ cmp r3, #1
16601
+ strh r10, [r4, #40] @ movhi
16602
+ bne .L2555
16603
+.L2556:
16604
+ movs r3, #0
16605
+ str r3, [r4, #36]
16606
+ b .L2546
16607
+.L2555:
16608
+ cmp r2, #256
16609
+.L2568:
16610
+ beq .L2556
16611
+ ldr r3, [r4, #36]
16612
+ cmp r3, #0
16613
+ bne .L2556
16614
+ ldr r3, .L2569+4
16615
+ ldr r2, [r3, #1260]
16616
+ ldr r3, [r4, #24]
16617
+ str r2, [r3, fp, lsl #2]
16618
+ b .L2564
16619
+.L2554:
16620
+ cmp r3, #1
16621
+ b .L2568
16622
+.L2570:
1633616623 .align 2
16337
-.L2660:
16338
- .word .LANCHOR2
16624
+.L2569:
1633916625 .word .LANCHOR0
1634016626 .word .LANCHOR4
16627
+ .word .LANCHOR4+1256
1634116628 .word .LC134
1634216629 .word .LC135
16630
+ .word .LANCHOR2
1634316631 .fnend
1634416632 .size FtlMapWritePage, .-FtlMapWritePage
1634516633 .align 1
1634616634 .global flush_l2p_region
16635
+ .syntax unified
1634716636 .thumb
1634816637 .thumb_func
16638
+ .fpu softvfp
1634916639 .type flush_l2p_region, %function
1635016640 flush_l2p_region:
1635116641 .fnstart
....@@ -16354,31 +16644,33 @@
1635416644 push {r3, r4, r5, lr}
1635516645 .save {r3, r4, r5, lr}
1635616646 movs r4, #12
16357
- ldr r5, .L2663
16647
+ ldr r5, .L2572
1635816648 muls r4, r0, r4
16649
+ ldr r3, [r5, #464]
1635916650 add r0, r5, #3408
16360
- ldr r3, [r5, #460]
1636116651 adds r2, r3, r4
1636216652 ldrh r1, [r3, r4]
1636316653 ldr r2, [r2, #8]
1636416654 bl FtlMapWritePage
16365
- ldr r3, [r5, #460]
16655
+ ldr r3, [r5, #464]
1636616656 movs r0, #0
1636716657 add r4, r4, r3
1636816658 ldr r3, [r4, #4]
1636916659 bic r3, r3, #-2147483648
1637016660 str r3, [r4, #4]
1637116661 pop {r3, r4, r5, pc}
16372
-.L2664:
16662
+.L2573:
1637316663 .align 2
16374
-.L2663:
16664
+.L2572:
1637516665 .word .LANCHOR2
1637616666 .fnend
1637716667 .size flush_l2p_region, .-flush_l2p_region
1637816668 .align 1
1637916669 .global FtlMapTblRecovery
16670
+ .syntax unified
1638016671 .thumb
1638116672 .thumb_func
16673
+ .fpu softvfp
1638216674 .type FtlMapTblRecovery, %function
1638316675 FtlMapTblRecovery:
1638416676 .fnstart
....@@ -16388,225 +16680,79 @@
1638816680 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1638916681 .pad #36
1639016682 sub sp, sp, #36
16391
- ldr r3, [r0, #16]
16683
+ ldr r3, [r0, #24]
1639216684 mov r4, r0
16393
- ldrh r9, [r0, #6]
1639416685 movs r1, #0
16395
- ldr r7, [r0, #24]
16686
+ movs r7, #0
16687
+ ldr fp, .L2615+8
16688
+ str r3, [sp, #4]
16689
+ ldr r3, [r0, #12]
16690
+ ldr r5, .L2615
16691
+ ldr r6, .L2615+4
16692
+ str r3, [sp, #8]
16693
+ ldr r3, [r0, #16]
16694
+ str r3, [sp, #20]
16695
+ ldrh r3, [r0, #6]
1639616696 str r3, [sp, #12]
1639716697 ldrh r3, [r0, #8]
16398
- lsl r2, r9, #2
16399
- ldr r8, [r0, #12]
16400
- mov r0, r7
16401
- ldr r10, .L2707+12
16402
- str r3, [sp, #8]
16403
- bl ftl_memset
16404
- ldr r3, .L2707
16405
- movs r0, #1
16406
- ldr r2, .L2707+4
16407
- str r0, [r4, #36]
16408
- ldr r1, [r3, #3316]
16409
- ldr r6, [r3, #3340]
16410
- mov r5, r2
16411
- str r1, [r2, #1256]
16412
- movw r1, #65535
16413
- str r6, [r2, #1260]
16414
- strh r1, [r4] @ movhi
16415
- strh r1, [r4, #2] @ movhi
16416
- movs r1, #0
16417
- str r1, [r4, #32]
16418
- str r1, [r4, #28]
16419
- str r1, [sp, #4]
16420
- str r3, [sp, #20]
16421
-.L2666:
16422
- ldrh r2, [sp, #4]
16423
- ldr r1, [sp, #8]
16424
- ldr fp, .L2707+12
16425
- sxth r3, r2
16426
- cmp r3, r1
16427
- bge .L2684
16428
- ldr r1, [sp, #8]
16429
- subs r1, r1, #1
16430
- cmp r3, r1
16431
- lsl r1, r3, #1
16432
- bne .L2667
16433
- ldrh r0, [r8, r3, lsl #1]
16434
- str r2, [sp, #16]
16435
- add r2, r8, r1
16436
- movs r1, #1
16437
- str r2, [sp, #4]
16438
- str r3, [sp, #8]
16439
- bl FtlGetLastWrittenPage
16440
- ldr r10, .L2707+4
16441
- mov r8, #0
16442
- ldr r2, [sp, #16]
16443
- adds r1, r0, #1
16698
+ ldr r0, [sp, #4]
16699
+ str r3, [sp, #16]
1644416700 ldr r3, [sp, #12]
16445
- sxth r0, r0
16446
- strh r1, [r4, #2] @ movhi
16701
+ lsls r2, r3, #2
16702
+ bl ftl_memset
16703
+ ldr r2, [fp, #3316]
16704
+ ldr r8, [fp, #3340]
16705
+ str r7, [r4, #32]
16706
+ str r2, [r5, #1264]
16707
+ movw r2, #65535
16708
+ str r8, [r5, #1268]
1644716709 strh r2, [r4] @ movhi
16448
- mov r2, r3
16710
+ strh r2, [r4, #2] @ movhi
16711
+ movs r2, #1
16712
+ str r7, [r4, #28]
16713
+ str r2, [r4, #36]
16714
+.L2575:
16715
+ ldr r3, [sp, #16]
16716
+ sxth r10, r7
16717
+ cmp r10, r3
16718
+ bge .L2594
16719
+ ldr r3, [sp, #16]
16720
+ lsl r9, r10, #1
16721
+ subs r2, r3, #1
16722
+ cmp r10, r2
16723
+ bne .L2576
1644916724 ldr r3, [sp, #8]
16450
- ldr r3, [r2, r3, lsl #2]
16451
- str r3, [r4, #28]
16452
- adds r3, r0, #1
16453
- str r3, [sp, #8]
16454
-.L2668:
16455
- ldr r3, [sp, #8]
16456
- sxth r2, r8
16457
- cmp r2, r3
16458
- bge .L2684
16459
- ldr r3, [sp, #4]
16460
- ldr r0, .L2707+8
16461
- ldrh r1, [r3]
16462
- orr r2, r2, r1, lsl #10
1646316725 movs r1, #1
16464
- str r2, [r5, #1252]
16465
- mov r2, r1
16466
- bl FlashReadPages
16467
- ldrb r2, [fp] @ zero_extendqisi2
16468
- cbz r2, .L2669
16469
- ldr r2, [r10, #1260]
16470
- ldr r2, [r2, #12]
16471
- cbz r2, .L2669
16472
- ldr r1, .L2707+12
16473
- ldr r0, [r10, #1256]
16474
- str r2, [sp, #12]
16475
- ldrh r1, [r1, #2398]
16476
- bl js_hash
16477
- ldr r2, [sp, #12]
16478
- cmp r2, r0
16479
- itt ne
16480
- movne r2, #-1
16481
- strne r2, [r10, #1248]
16482
-.L2669:
16483
- ldr r2, [r10, #1248]
16484
- adds r2, r2, #1
16485
- beq .L2670
16486
- ldrh r2, [r6, #8]
16487
- cmp r2, r9
16488
- bcs .L2670
16489
- ldrh r1, [r4, #4]
16490
- ldrh r0, [r6]
16491
- cmp r0, r1
16492
- itt eq
16493
- ldreq r1, [r10, #1252]
16494
- streq r1, [r7, r2, lsl #2]
16495
-.L2670:
16496
- add r8, r8, #1
16497
- b .L2668
16498
-.L2684:
16726
+ ldr fp, .L2615+12
16727
+ ldrh r0, [r3, r10, lsl #1]
16728
+ add r9, r9, r3
16729
+ bl FtlGetLastWrittenPage
16730
+ ldr r2, [sp, #20]
16731
+ sxth r3, r0
16732
+ adds r0, r0, #1
16733
+ strh r7, [r4] @ movhi
16734
+ strh r0, [r4, #2] @ movhi
16735
+ sub r7, fp, #1256
16736
+ ldr r2, [r2, r10, lsl #2]
16737
+ mov r10, #0
16738
+ adds r3, r3, #1
16739
+ str r3, [sp, #8]
16740
+ str r2, [r4, #28]
16741
+.L2577:
16742
+ ldr r3, [sp, #8]
16743
+ sxth r2, r10
16744
+ cmp r2, r3
16745
+ blt .L2580
16746
+.L2594:
1649916747 mov r0, r4
1650016748 bl ftl_free_no_use_map_blk
1650116749 ldrh r2, [r4, #2]
16502
- ldrh r3, [fp, #2390]
16750
+ ldrh r3, [r6, #2392]
1650316751 cmp r2, r3
16504
- bne .L2673
16752
+ bne .L2582
1650516753 mov r0, r4
1650616754 bl ftl_map_blk_alloc_new_blk
16507
- b .L2673
16508
-.L2667:
16509
- ldr r2, [sp, #20]
16510
- ldr r0, .L2707+8
16511
- ldr r2, [r2, #3316]
16512
- str r2, [r5, #1256]
16513
- add r2, r8, r1
16514
- str r2, [sp, #16]
16515
- movs r1, #1
16516
- ldrh r2, [r8, r3, lsl #1]
16517
- ldrh r3, [r10, #2390]
16518
- subs r3, r3, #1
16519
- orr r3, r3, r2, lsl #10
16520
- mov r2, r1
16521
- str r3, [r5, #1252]
16522
- bl FlashReadPages
16523
- ldr r3, [r5, #1248]
16524
- adds r3, r3, #1
16525
- beq .L2686
16526
- ldrh r2, [r6]
16527
- ldrh r3, [r4, #4]
16528
- cmp r2, r3
16529
- bne .L2686
16530
- ldrh r2, [r6, #8]
16531
- movw r3, #64245
16532
- cmp r2, r3
16533
- bne .L2686
16534
- movs r1, #0
16535
- mov lr, #8
16536
- mov ip, #4
16537
-.L2675:
16538
- uxth r3, r1
16539
- ldrh r2, [r10, #2390]
16540
- sxth r0, r3
16541
- subs r2, r2, #1
16542
- cmp r0, r2
16543
- bge .L2678
16544
- ldr r2, .L2707
16545
- adds r1, r1, #1
16546
- ldr r2, [r2, #3316]
16547
- ldrh r0, [r2, r0, lsl #3]
16548
- cmp r0, r9
16549
- ittt cc
16550
- smlabbcc r3, r3, lr, ip
16551
- ldrcc r3, [r2, r3]
16552
- strcc r3, [r7, r0, lsl #2]
16553
- b .L2675
16554
-.L2686:
16555
- ldr r3, .L2707+4
16556
- mov fp, #0
16557
-.L2706:
16558
- ldrh r1, [r10, #2390]
16559
- sxth r2, fp
16560
- cmp r2, r1
16561
- bge .L2678
16562
- ldr r1, [sp, #16]
16563
- ldr r0, .L2707+8
16564
- str r3, [sp, #24]
16565
- ldrh r1, [r1]
16566
- orr r2, r2, r1, lsl #10
16567
- movs r1, #1
16568
- str r2, [r3, #1252]
16569
- mov r2, r1
16570
- bl FlashReadPages
16571
- ldrb r2, [r10] @ zero_extendqisi2
16572
- ldr r3, [sp, #24]
16573
- cbz r2, .L2679
16574
- ldr r2, [r3, #1260]
16575
- ldr r2, [r2, #12]
16576
- cbz r2, .L2679
16577
- ldr r0, [r3, #1256]
16578
- ldrh r1, [r10, #2398]
16579
- str r2, [sp, #28]
16580
- bl js_hash
16581
- ldr r2, [sp, #28]
16582
- ldr r3, [sp, #24]
16583
- cmp r2, r0
16584
- itt ne
16585
- movne r2, #-1
16586
- strne r2, [r3, #1248]
16587
-.L2679:
16588
- ldr r2, .L2707+4
16589
- ldr r2, [r2, #1248]
16590
- adds r2, r2, #1
16591
- beq .L2680
16592
- ldrh r2, [r6, #8]
16593
- cmp r2, r9
16594
- bcs .L2680
16595
- ldrh r1, [r4, #4]
16596
- ldrh r0, [r6]
16597
- cmp r0, r1
16598
- itt eq
16599
- ldreq r1, [r3, #1252]
16600
- streq r1, [r7, r2, lsl #2]
16601
-.L2680:
16602
- add fp, fp, #1
16603
- b .L2706
16604
-.L2678:
16605
- ldr r3, [sp, #4]
16606
- adds r3, r3, #1
16607
- str r3, [sp, #4]
16608
- b .L2666
16609
-.L2673:
16755
+.L2582:
1661016756 mov r0, r4
1661116757 bl ftl_map_blk_gc
1661216758 mov r0, r4
....@@ -16615,19 +16761,163 @@
1661516761 add sp, sp, #36
1661616762 @ sp needed
1661716763 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16618
-.L2708:
16764
+.L2580:
16765
+ ldrh r1, [r9]
16766
+ mov r0, fp
16767
+ orr r2, r2, r1, lsl #10
16768
+ str r2, [r5, #1260]
16769
+ movs r2, #1
16770
+ mov r1, r2
16771
+ bl FlashReadPages
16772
+ ldrb r2, [r6, #36] @ zero_extendqisi2
16773
+ cbz r2, .L2578
16774
+ ldr r2, [r5, #1268]
16775
+ ldr r2, [r2, #12]
16776
+ str r2, [sp, #16]
16777
+ cbz r2, .L2578
16778
+ ldrh r1, [r6, #2400]
16779
+ ldr r0, [r5, #1264]
16780
+ bl js_hash
16781
+ ldr r2, [sp, #16]
16782
+ cmp r2, r0
16783
+ itt ne
16784
+ movne r2, #-1
16785
+ strne r2, [r5, #1256]
16786
+.L2578:
16787
+ ldr r2, [r7, #1256]
16788
+ adds r2, r2, #1
16789
+ beq .L2579
16790
+ ldrh r2, [r8, #8]
16791
+ ldr r3, [sp, #12]
16792
+ cmp r3, r2
16793
+ bls .L2579
16794
+ ldrh r1, [r4, #4]
16795
+ ldrh r0, [r8]
16796
+ cmp r0, r1
16797
+ ittt eq
16798
+ ldreq r1, [r7, #1260]
16799
+ ldreq r3, [sp, #4]
16800
+ streq r1, [r3, r2, lsl #2]
16801
+.L2579:
16802
+ add r10, r10, #1
16803
+ b .L2577
16804
+.L2576:
16805
+ ldr r3, .L2615+8
16806
+ ldr r0, .L2615+12
16807
+ ldr r2, [r3, #3316]
16808
+ ldr r3, [sp, #8]
16809
+ str r2, [r5, #1264]
16810
+ add r3, r3, r9
16811
+ ldrh r2, [r6, #2392]
16812
+ str r3, [sp, #24]
16813
+ ldr r3, [sp, #8]
16814
+ subs r2, r2, #1
16815
+ ldrh r1, [r3, r10, lsl #1]
16816
+ orr r2, r2, r1, lsl #10
16817
+ str r2, [r5, #1260]
16818
+ movs r2, #1
16819
+ mov r1, r2
16820
+ bl FlashReadPages
16821
+ ldr r2, [r5, #1256]
16822
+ adds r2, r2, #1
16823
+ beq .L2596
16824
+ ldrh r1, [r8]
16825
+ ldrh r2, [r4, #4]
16826
+ cmp r1, r2
16827
+ bne .L2596
16828
+ ldrh r1, [r8, #8]
16829
+ movw r2, #64245
16830
+ cmp r1, r2
16831
+ beq .L2584
16832
+.L2596:
16833
+ ldr r9, .L2615
16834
+ mov r10, #0
16835
+.L2585:
16836
+ ldrh r1, [r6, #2392]
16837
+ sxth r2, r10
16838
+ cmp r2, r1
16839
+ bge .L2592
16840
+ ldr r3, [sp, #24]
16841
+ ldr r0, .L2615+12
16842
+ ldrh r1, [r3]
16843
+ orr r2, r2, r1, lsl #10
16844
+ str r2, [r9, #1260]
16845
+ movs r2, #1
16846
+ mov r1, r2
16847
+ bl FlashReadPages
16848
+ ldrb r2, [r6, #36] @ zero_extendqisi2
16849
+ cbz r2, .L2589
16850
+ ldr r2, [r9, #1268]
16851
+ ldr r2, [r2, #12]
16852
+ str r2, [sp, #28]
16853
+ cbz r2, .L2589
16854
+ ldrh r1, [r6, #2400]
16855
+ ldr r0, [r9, #1264]
16856
+ bl js_hash
16857
+ ldr r2, [sp, #28]
16858
+ cmp r2, r0
16859
+ itt ne
16860
+ movne r2, #-1
16861
+ strne r2, [r9, #1256]
16862
+.L2589:
16863
+ ldr r2, [r9, #1256]
16864
+ adds r2, r2, #1
16865
+ beq .L2590
16866
+ ldrh r2, [r8, #8]
16867
+ ldr r3, [sp, #12]
16868
+ cmp r3, r2
16869
+ bls .L2590
16870
+ ldrh r1, [r4, #4]
16871
+ ldrh r0, [r8]
16872
+ cmp r0, r1
16873
+ ittt eq
16874
+ ldreq r1, [r9, #1260]
16875
+ ldreq r3, [sp, #4]
16876
+ streq r1, [r3, r2, lsl #2]
16877
+.L2590:
16878
+ add r10, r10, #1
16879
+ b .L2585
16880
+.L2584:
16881
+ movs r0, #0
16882
+ mov lr, #4
16883
+.L2586:
16884
+ ldrh r1, [r6, #2392]
16885
+ sxth r2, r0
16886
+ subs r1, r1, #1
16887
+ cmp r2, r1
16888
+ blt .L2588
16889
+.L2592:
16890
+ adds r7, r7, #1
16891
+ b .L2575
16892
+.L2588:
16893
+ ldr ip, [fp, #3316]
16894
+ ldr r3, [sp, #12]
16895
+ ldr r1, [ip, r2, lsl #3]
16896
+ uxth r9, r1
16897
+ cmp r3, r9
16898
+ bls .L2587
16899
+ add r2, lr, r2, lsl #3
16900
+ ldr r3, [sp, #4]
16901
+ ldr r2, [ip, r2]
16902
+ str r2, [r3, r9, lsl #2]
16903
+.L2587:
16904
+ adds r0, r0, #1
16905
+ b .L2586
16906
+.L2616:
1661916907 .align 2
16620
-.L2707:
16621
- .word .LANCHOR2
16908
+.L2615:
1662216909 .word .LANCHOR4
16623
- .word .LANCHOR4+1248
1662416910 .word .LANCHOR0
16911
+ .word .LANCHOR2
16912
+ .word .LANCHOR4+1256
1662516913 .fnend
1662616914 .size FtlMapTblRecovery, .-FtlMapTblRecovery
1662716915 .align 1
1662816916 .global FtlLoadVonderInfo
16917
+ .syntax unified
1662916918 .thumb
1663016919 .thumb_func
16920
+ .fpu softvfp
1663116921 .type FtlLoadVonderInfo, %function
1663216922 FtlLoadVonderInfo:
1663316923 .fnstart
....@@ -16635,20 +16925,20 @@
1663516925 @ frame_needed = 0, uses_anonymous_args = 0
1663616926 push {r3, lr}
1663716927 .save {r3, lr}
16638
- ldr r3, .L2710
16639
- ldr r0, .L2710+4
16640
- ldrh r2, [r3, #2408]
16641
- add r0, r0, #1288
16928
+ ldr r3, .L2618
16929
+ ldr r0, .L2618+4
16930
+ ldrh r2, [r3, #2412]
16931
+ add r0, r0, #1296
1664216932 strh r2, [r0, #10] @ movhi
1664316933 movw r2, #61574
1664416934 strh r2, [r0, #4] @ movhi
16645
- ldrh r2, [r3, #2434]
16935
+ ldrh r2, [r3, #2438]
1664616936 strh r2, [r0, #8] @ movhi
16647
- ldrh r2, [r3, #2410]
16648
- ldr r3, [r3, #2436]
16937
+ ldrh r2, [r3, #2414]
16938
+ ldr r3, [r3, #2440]
1664916939 strh r2, [r0, #6] @ movhi
1665016940 str r3, [r0, #12]
16651
- ldr r3, .L2710+8
16941
+ ldr r3, .L2618+8
1665216942 ldr r2, [r3, #3380]
1665316943 str r2, [r0, #16]
1665416944 ldr r2, [r3, #3376]
....@@ -16658,9 +16948,9 @@
1665816948 bl FtlMapTblRecovery
1665916949 movs r0, #0
1666016950 pop {r3, pc}
16661
-.L2711:
16951
+.L2619:
1666216952 .align 2
16663
-.L2710:
16953
+.L2618:
1666416954 .word .LANCHOR0
1666516955 .word .LANCHOR4
1666616956 .word .LANCHOR2
....@@ -16668,8 +16958,10 @@
1666816958 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo
1666916959 .align 1
1667016960 .global FtlLoadMapInfo
16961
+ .syntax unified
1667116962 .thumb
1667216963 .thumb_func
16964
+ .fpu softvfp
1667316965 .type FtlLoadMapInfo, %function
1667416966 FtlLoadMapInfo:
1667516967 .fnstart
....@@ -16678,182 +16970,179 @@
1667816970 push {r3, lr}
1667916971 .save {r3, lr}
1668016972 bl FtlL2PDataInit
16681
- ldr r0, .L2713
16973
+ ldr r0, .L2621
1668216974 bl FtlMapTblRecovery
1668316975 movs r0, #0
1668416976 pop {r3, pc}
16685
-.L2714:
16977
+.L2622:
1668616978 .align 2
16687
-.L2713:
16979
+.L2621:
1668816980 .word .LANCHOR2+3408
1668916981 .fnend
1669016982 .size FtlLoadMapInfo, .-FtlLoadMapInfo
1669116983 .align 1
1669216984 .global FtlVendorPartWrite
16985
+ .syntax unified
1669316986 .thumb
1669416987 .thumb_func
16988
+ .fpu softvfp
1669516989 .type FtlVendorPartWrite, %function
1669616990 FtlVendorPartWrite:
1669716991 .fnstart
1669816992 @ args = 0, pretend = 0, frame = 56
1669916993 @ frame_needed = 0, uses_anonymous_args = 0
16700
- ldr r3, .L2728
16994
+ ldr r3, .L2635
1670116995 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1670216996 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
16703
- mov r5, r0
16704
- mov r4, r1
16705
- add r0, r0, r1
16706
- ldrh r1, [r3, #2384]
16997
+ mov r10, r2
16998
+ mov r5, r1
16999
+ adds r1, r0, r1
1670717000 .pad #60
1670817001 sub sp, sp, #60
16709
- mov r10, r2
16710
- ldrh r2, [r3, #2396]
16711
- cmp r0, r1
16712
- str r3, [sp, #4]
16713
- bhi .L2723
16714
- ldr r7, .L2728+4
16715
- lsr r6, r5, r2
16716
- mov fp, #0
16717
- lsls r3, r6, #2
17002
+ mov r7, r0
17003
+ ldrh r2, [r3, #2386]
1671817004 str r3, [sp]
16719
-.L2717:
16720
- cmp r4, #0
16721
- beq .L2727
16722
- ldr r3, .L2728+4
16723
- mov r0, r5
16724
- ldr r2, [sp]
16725
- ldr r3, [r3, #3384]
16726
- ldr ip, [r3, r2]
16727
- ldr r3, [sp, #4]
16728
- str ip, [sp, #12]
16729
- ldrh r2, [r3, #2394]
16730
- mov r1, r2
16731
- str r2, [sp, #8]
16732
- bl __aeabi_uidivmod
16733
- ldr r2, [sp, #8]
16734
- mov r8, r1
16735
- ldr ip, [sp, #12]
16736
- subs r3, r2, r1
16737
- uxth r9, r3
16738
- cmp r9, r4
16739
- it hi
16740
- uxthhi r9, r4
16741
- cmp ip, #0
16742
- beq .L2719
16743
- cmp r9, r2
16744
- beq .L2719
16745
- ldr r2, [r7, #3324]
16746
- movs r1, #1
16747
- add r0, sp, #20
16748
- str ip, [sp, #24]
16749
- str r2, [sp, #28]
16750
- movs r2, #0
16751
- str r2, [sp, #32]
16752
- mov r2, r1
16753
- bl FlashReadPages
16754
- b .L2720
16755
-.L2719:
16756
- ldr r3, [sp, #4]
16757
- movs r1, #0
16758
- ldr r0, [r7, #3324]
16759
- ldrh r2, [r3, #2398]
16760
- bl ftl_memset
16761
-.L2720:
16762
- lsl ip, r9, #9
16763
- ldr r0, [r7, #3324]
16764
- uxth r8, r8
16765
- mov r1, r10
16766
- mov r2, ip
16767
- str ip, [sp, #8]
16768
- add r0, r0, r8, lsl #9
16769
- rsb r4, r9, r4
16770
- bl ftl_memcpy
16771
- mov r1, r6
16772
- ldr r0, .L2728+8
16773
- adds r6, r6, #1
16774
- ldr r2, [r7, #3324]
16775
- add r5, r5, r9
16776
- bl FtlMapWritePage
16777
- ldr r3, [sp]
16778
- adds r0, r0, #1
16779
- ldr ip, [sp, #8]
16780
- it eq
16781
- moveq fp, #-1
16782
- adds r3, r3, #4
16783
- str r3, [sp]
16784
- add r10, r10, ip
16785
- b .L2717
16786
-.L2727:
16787
- mov r0, fp
16788
- b .L2716
16789
-.L2723:
16790
- mov r0, #-1
16791
-.L2716:
17005
+ cmp r1, r2
17006
+ bhi .L2631
17007
+ ldrh r6, [r3, #2398]
17008
+ mov r9, #0
17009
+ ldr r8, .L2635+8
17010
+ lsr r6, r0, r6
17011
+ lsl fp, r6, #2
17012
+.L2625:
17013
+ cbnz r5, .L2630
17014
+.L2623:
17015
+ mov r0, r9
1679217016 add sp, sp, #60
1679317017 @ sp needed
1679417018 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16795
-.L2729:
17019
+.L2630:
17020
+ ldr r3, [r8, #3384]
17021
+ mov r0, r7
17022
+ ldr r2, [r3, fp]
17023
+ ldr r3, [sp]
17024
+ str r2, [sp, #12]
17025
+ ldrh r3, [r3, #2396]
17026
+ mov r1, r3
17027
+ str r3, [sp, #8]
17028
+ bl __aeabi_uidivmod
17029
+ ldr r3, [sp, #8]
17030
+ ldr r2, [sp, #12]
17031
+ str r1, [sp, #4]
17032
+ subs r4, r3, r1
17033
+ uxth r4, r4
17034
+ cmp r5, r4
17035
+ it cc
17036
+ uxthcc r4, r5
17037
+ cbz r2, .L2627
17038
+ cmp r4, r3
17039
+ beq .L2627
17040
+ ldr r3, [r8, #3324]
17041
+ add r0, sp, #20
17042
+ str r2, [sp, #24]
17043
+ movs r2, #1
17044
+ mov r1, r2
17045
+ str r3, [sp, #28]
17046
+ movs r3, #0
17047
+ str r3, [sp, #32]
17048
+ bl FlashReadPages
17049
+.L2628:
17050
+ lsls r3, r4, #9
17051
+ ldr r0, [r8, #3324]
17052
+ mov r1, r10
17053
+ mov r2, r3
17054
+ str r3, [sp, #8]
17055
+ ldr r3, [sp, #4]
17056
+ subs r5, r5, r4
17057
+ add r7, r7, r4
17058
+ add fp, fp, #4
17059
+ add r0, r0, r3, lsl #9
17060
+ bl ftl_memcpy
17061
+ mov r1, r6
17062
+ ldr r2, [r8, #3324]
17063
+ ldr r0, .L2635+4
17064
+ adds r6, r6, #1
17065
+ bl FtlMapWritePage
17066
+ ldr r3, [sp, #8]
17067
+ adds r0, r0, #1
17068
+ it eq
17069
+ moveq r9, #-1
17070
+ add r10, r10, r3
17071
+ b .L2625
17072
+.L2627:
17073
+ ldr r3, [sp]
17074
+ movs r1, #0
17075
+ ldr r0, [r8, #3324]
17076
+ ldrh r2, [r3, #2400]
17077
+ bl ftl_memset
17078
+ b .L2628
17079
+.L2631:
17080
+ mov r9, #-1
17081
+ b .L2623
17082
+.L2636:
1679617083 .align 2
16797
-.L2728:
17084
+.L2635:
1679817085 .word .LANCHOR0
17086
+ .word .LANCHOR4+1296
1679917087 .word .LANCHOR2
16800
- .word .LANCHOR4+1288
1680117088 .fnend
1680217089 .size FtlVendorPartWrite, .-FtlVendorPartWrite
1680317090 .align 1
1680417091 .global Ftl_save_ext_data
17092
+ .syntax unified
1680517093 .thumb
1680617094 .thumb_func
17095
+ .fpu softvfp
1680717096 .type Ftl_save_ext_data, %function
1680817097 Ftl_save_ext_data:
1680917098 .fnstart
1681017099 @ args = 0, pretend = 0, frame = 0
1681117100 @ frame_needed = 0, uses_anonymous_args = 0
1681217101 @ link register save eliminated.
16813
- ldr r2, .L2732
16814
- ldr r3, .L2732+4
16815
- ldr r1, [r2, #608]
17102
+ ldr r2, .L2639
17103
+ ldr r3, .L2639+4
17104
+ ldr r1, [r2, #604]
1681617105 cmp r1, r3
16817
- bne .L2730
16818
- ldr r3, .L2732+8
16819
- movs r0, #0
17106
+ bne .L2637
17107
+ ldr r3, .L2639+8
1682017108 movs r1, #1
16821
- str r3, [r2, #612]
17109
+ movs r0, #0
17110
+ str r3, [r2, #608]
1682217111 ldr r3, [r2, #500]
16823
- str r3, [r2, #696]
17112
+ str r3, [r2, #692]
1682417113 ldr r3, [r2, #504]
16825
- str r3, [r2, #700]
17114
+ str r3, [r2, #696]
1682617115 ldr r3, [r2, #496]
16827
- str r3, [r2, #616]
17116
+ str r3, [r2, #612]
1682817117 ldr r3, [r2, #484]
16829
- str r3, [r2, #620]
17118
+ str r3, [r2, #616]
1683017119 ldr r3, [r2, #476]
16831
- str r3, [r2, #624]
17120
+ str r3, [r2, #620]
1683217121 ldr r3, [r2, #492]
16833
- str r3, [r2, #628]
17122
+ str r3, [r2, #624]
1683417123 ldr r3, [r2, #520]
16835
- str r3, [r2, #636]
16836
- ldr r3, [r2, #236]
16837
- add r2, r2, #608
17124
+ str r3, [r2, #632]
17125
+ ldr r3, [r2, #240]
17126
+ add r2, r2, #604
1683817127 str r3, [r2, #32]
16839
- ldr r3, [r2, #-128]
17128
+ ldr r3, [r2, #-124]
1684017129 str r3, [r2, #36]
16841
- ldr r3, [r2, #-120]
17130
+ ldr r3, [r2, #-116]
1684217131 str r3, [r2, #40]
16843
- ldr r3, [r2, #-80]
16844
- str r3, [r2, #44]
1684517132 ldr r3, [r2, #-76]
17133
+ str r3, [r2, #44]
17134
+ ldr r3, [r2, #-72]
1684617135 str r3, [r2, #48]
16847
- ldr r3, [r2, #-4]
17136
+ ldr r3, [r2, #512]
1684817137 str r3, [r2, #60]
16849
- ldr r3, [r2, #2668]
17138
+ ldr r3, [r2, #2672]
1685017139 str r3, [r2, #64]
1685117140 b FtlVendorPartWrite
16852
-.L2730:
17141
+.L2637:
1685317142 bx lr
16854
-.L2733:
17143
+.L2640:
1685517144 .align 2
16856
-.L2732:
17145
+.L2639:
1685717146 .word .LANCHOR2
1685817147 .word 1179929683
1685917148 .word 1342177379
....@@ -16861,51 +17150,51 @@
1686117150 .size Ftl_save_ext_data, .-Ftl_save_ext_data
1686217151 .align 1
1686317152 .global FtlEctTblFlush
17153
+ .syntax unified
1686417154 .thumb
1686517155 .thumb_func
17156
+ .fpu softvfp
1686617157 .type FtlEctTblFlush, %function
1686717158 FtlEctTblFlush:
1686817159 .fnstart
1686917160 @ args = 0, pretend = 0, frame = 0
1687017161 @ frame_needed = 0, uses_anonymous_args = 0
16871
- ldr r3, .L2741
17162
+ ldr r3, .L2648
1687217163 push {r4, lr}
1687317164 .save {r4, lr}
16874
- ldr r2, [r3, #2244]
16875
- ldr r3, .L2741+4
16876
- cbz r2, .L2739
17165
+ ldr r2, [r3, #2248]
17166
+ ldr r3, .L2648+4
17167
+ cmp r2, #0
17168
+ beq .L2646
1687717169 ldr r2, [r3, #532]
1687817170 cmp r2, #39
1687917171 ite hi
16880
- movhi r1, #32
16881
- movls r1, #4
16882
- b .L2735
16883
-.L2739:
16884
- movs r1, #32
16885
-.L2735:
16886
- ldr r4, .L2741+8
16887
- ldrh r2, [r4, #1332]
16888
- cmp r2, #31
17172
+ movhi r2, #32
17173
+ movls r2, #4
17174
+.L2642:
17175
+ ldr r4, .L2648+8
17176
+ ldrh r1, [r4, #1340]
17177
+ cmp r1, #31
1688917178 ittt ls
16890
- addls r2, r2, #1
16891
- movls r1, #1
16892
- strhls r2, [r4, #1332] @ movhi
16893
- cbnz r0, .L2737
16894
- ldr r0, [r3, #3360]
16895
- ldr r2, [r0, #20]
16896
- add r2, r2, r1
16897
- ldr r1, [r0, #16]
17179
+ addls r1, r1, #1
17180
+ movls r2, #1
17181
+ strhls r1, [r4, #1340] @ movhi
17182
+ cbnz r0, .L2644
17183
+ ldr r1, [r3, #3360]
17184
+ ldr r0, [r1, #20]
17185
+ ldr r1, [r1, #16]
17186
+ add r2, r2, r0
1689817187 cmp r1, r2
16899
- bcc .L2738
16900
-.L2737:
17188
+ bcc .L2645
17189
+.L2644:
1690117190 ldr r2, [r3, #3360]
1690217191 movs r0, #64
1690317192 ldr r1, [r2, #16]
1690417193 str r1, [r2, #20]
16905
- ldr r1, .L2741+12
17194
+ ldr r1, .L2648+12
1690617195 str r1, [r2]
16907
- ldr r2, [r3, #3360]
1690817196 ldrh r1, [r3, #3352]
17197
+ ldr r2, [r3, #3360]
1690917198 lsls r3, r1, #9
1691017199 str r3, [r2, #12]
1691117200 ldr r3, [r2, #8]
....@@ -16915,12 +17204,15 @@
1691517204 str r3, [r2, #4]
1691617205 bl FtlVendorPartWrite
1691717206 bl Ftl_save_ext_data
16918
-.L2738:
17207
+.L2645:
1691917208 movs r0, #0
1692017209 pop {r4, pc}
16921
-.L2742:
17210
+.L2646:
17211
+ movs r2, #32
17212
+ b .L2642
17213
+.L2649:
1692217214 .align 2
16923
-.L2741:
17215
+.L2648:
1692417216 .word .LANCHOR0
1692517217 .word .LANCHOR2
1692617218 .word .LANCHOR4
....@@ -16929,122 +17221,125 @@
1692917221 .size FtlEctTblFlush, .-FtlEctTblFlush
1693017222 .align 1
1693117223 .global FtlVendorPartRead
17224
+ .syntax unified
1693217225 .thumb
1693317226 .thumb_func
17227
+ .fpu softvfp
1693417228 .type FtlVendorPartRead, %function
1693517229 FtlVendorPartRead:
1693617230 .fnstart
1693717231 @ args = 0, pretend = 0, frame = 56
1693817232 @ frame_needed = 0, uses_anonymous_args = 0
16939
- ldr r3, .L2754
17233
+ ldr r3, .L2660
1694017234 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1694117235 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
16942
- mov r6, r0
16943
- mov r4, r1
16944
- add r0, r0, r1
16945
- ldrh r1, [r3, #2384]
17236
+ mov r9, r2
17237
+ mov r6, r1
17238
+ adds r1, r0, r1
1694617239 .pad #60
1694717240 sub sp, sp, #60
16948
- mov r7, r2
16949
- ldrh r2, [r3, #2396]
16950
- cmp r0, r1
16951
- str r3, [sp, #12]
16952
- bhi .L2752
16953
- ldr r10, .L2754+4
16954
- lsr r5, r6, r2
16955
- mov fp, #0
16956
- lsls r3, r5, #2
16957
- str r3, [sp, #4]
16958
-.L2745:
16959
- cmp r4, #0
16960
- beq .L2753
16961
- ldr r3, .L2754+4
16962
- mov r0, r6
16963
- ldr r2, [sp, #4]
16964
- ldr r3, [r3, #3384]
16965
- ldr r8, [r3, r2]
16966
- ldr r3, [sp, #12]
16967
- ldrh r9, [r3, #2394]
16968
- mov r1, r9
16969
- bl __aeabi_uidivmod
16970
- rsb r3, r1, r9
16971
- str r1, [sp, #8]
16972
- uxth r9, r3
16973
- cmp r9, r4
16974
- it hi
16975
- uxthhi r9, r4
16976
- cmp r8, #0
16977
- beq .L2747
16978
- ldr r2, [r10, #3324]
16979
- movs r1, #1
16980
- add r0, sp, #20
16981
- str r8, [sp, #24]
16982
- str r2, [sp, #28]
16983
- movs r2, #0
16984
- str r2, [sp, #32]
16985
- mov r2, r1
16986
- bl FlashReadPages
16987
- ldr r3, .L2754+8
16988
- ldr r2, [sp, #20]
16989
- adds r2, r2, #1
16990
- ldr r2, [r3, #1248]
16991
- it eq
16992
- moveq fp, #-1
16993
- cmp r2, #256
16994
- bne .L2749
16995
- mov r1, r5
16996
- mov r2, r8
16997
- ldr r0, .L2754+12
16998
- bl printk
16999
- ldr r0, .L2754+16
17000
- mov r1, r5
17001
- ldr r2, [r10, #3324]
17002
- bl FtlMapWritePage
17003
-.L2749:
17004
- ldrh r8, [sp, #8]
17005
- mov r0, r7
17006
- ldr r1, [r10, #3324]
17007
- lsl r2, r9, #9
17008
- add r1, r1, r8, lsl #9
17009
- bl ftl_memcpy
17010
- b .L2750
17011
-.L2747:
17012
- mov r0, r7
17013
- mov r1, r8
17014
- lsl r2, r9, #9
17015
- bl ftl_memset
17016
-.L2750:
17017
- ldr r3, [sp, #4]
17018
- adds r5, r5, #1
17019
- rsb r4, r9, r4
17020
- add r6, r6, r9
17021
- adds r3, r3, #4
17022
- add r7, r7, r9, lsl #9
17023
- str r3, [sp, #4]
17024
- b .L2745
17025
-.L2753:
17026
- mov r0, fp
17027
- b .L2744
17028
-.L2752:
17029
- mov r0, #-1
17030
-.L2744:
17241
+ mov r7, r0
17242
+ ldrh r2, [r3, #2386]
17243
+ str r3, [sp, #8]
17244
+ cmp r1, r2
17245
+ bhi .L2659
17246
+ ldrh r5, [r3, #2398]
17247
+ mov r8, #0
17248
+ ldr r10, .L2660+16
17249
+ lsr r5, r0, r5
17250
+ lsl fp, r5, #2
17251
+.L2652:
17252
+ cbnz r6, .L2658
17253
+.L2650:
17254
+ mov r0, r8
1703117255 add sp, sp, #60
1703217256 @ sp needed
1703317257 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17034
-.L2755:
17258
+.L2658:
17259
+ ldr r3, [r10, #3384]
17260
+ mov r0, r7
17261
+ ldr r3, [r3, fp]
17262
+ str r3, [sp, #12]
17263
+ ldr r3, [sp, #8]
17264
+ ldrh r4, [r3, #2396]
17265
+ mov r1, r4
17266
+ bl __aeabi_uidivmod
17267
+ subs r4, r4, r1
17268
+ ldr r3, [sp, #12]
17269
+ uxth r4, r4
17270
+ str r1, [sp, #4]
17271
+ cmp r6, r4
17272
+ it cc
17273
+ uxthcc r4, r6
17274
+ lsls r2, r4, #9
17275
+ str r2, [sp, #12]
17276
+ cbz r3, .L2654
17277
+ ldr r2, [r10, #3324]
17278
+ add r0, sp, #20
17279
+ str r3, [sp, #24]
17280
+ str r3, [sp, #12]
17281
+ str r2, [sp, #28]
17282
+ movs r2, #0
17283
+ str r2, [sp, #32]
17284
+ movs r2, #1
17285
+ mov r1, r2
17286
+ bl FlashReadPages
17287
+ ldr r3, .L2660+4
17288
+ ldr r2, [sp, #20]
17289
+ adds r2, r2, #1
17290
+ ldr r2, [r3, #1256]
17291
+ it eq
17292
+ moveq r8, #-1
17293
+ ldr r3, [sp, #12]
17294
+ cmp r2, #256
17295
+ bne .L2656
17296
+ mov r2, r3
17297
+ mov r1, r5
17298
+ ldr r0, .L2660+8
17299
+ bl printk
17300
+ ldr r2, [r10, #3324]
17301
+ mov r1, r5
17302
+ ldr r0, .L2660+12
17303
+ bl FtlMapWritePage
17304
+.L2656:
17305
+ ldr r1, [r10, #3324]
17306
+ lsls r2, r4, #9
17307
+ ldr r3, [sp, #4]
17308
+ mov r0, r9
17309
+ add r1, r1, r3, lsl #9
17310
+ bl ftl_memcpy
17311
+.L2657:
17312
+ adds r5, r5, #1
17313
+ subs r6, r6, r4
17314
+ add r7, r7, r4
17315
+ add r9, r9, r4, lsl #9
17316
+ add fp, fp, #4
17317
+ b .L2652
17318
+.L2654:
17319
+ lsls r2, r4, #9
17320
+ mov r1, r3
17321
+ mov r0, r9
17322
+ bl ftl_memset
17323
+ b .L2657
17324
+.L2659:
17325
+ mov r8, #-1
17326
+ b .L2650
17327
+.L2661:
1703517328 .align 2
17036
-.L2754:
17329
+.L2660:
1703717330 .word .LANCHOR0
17038
- .word .LANCHOR2
1703917331 .word .LANCHOR4
1704017332 .word .LC136
17041
- .word .LANCHOR4+1288
17333
+ .word .LANCHOR4+1296
17334
+ .word .LANCHOR2
1704217335 .fnend
1704317336 .size FtlVendorPartRead, .-FtlVendorPartRead
1704417337 .align 1
1704517338 .global FtlLoadEctTbl
17339
+ .syntax unified
1704617340 .thumb
1704717341 .thumb_func
17342
+ .fpu softvfp
1704817343 .type FtlLoadEctTbl, %function
1704917344 FtlLoadEctTbl:
1705017345 .fnstart
....@@ -17053,39 +17348,41 @@
1705317348 push {r4, lr}
1705417349 .save {r4, lr}
1705517350 movs r0, #64
17056
- ldr r4, .L2758
17351
+ ldr r4, .L2664
1705717352 ldr r2, [r4, #3360]
1705817353 ldrh r1, [r4, #3352]
1705917354 bl FtlVendorPartRead
1706017355 ldr r3, [r4, #3360]
1706117356 ldr r2, [r3]
17062
- ldr r3, .L2758+4
17357
+ ldr r3, .L2664+4
1706317358 cmp r2, r3
17064
- beq .L2757
17065
- ldr r1, .L2758+8
17066
- ldr r0, .L2758+12
17359
+ beq .L2663
17360
+ ldr r1, .L2664+8
17361
+ ldr r0, .L2664+12
1706717362 bl printk
1706817363 ldrh r2, [r4, #3352]
17069
- ldr r0, [r4, #3360]
1707017364 movs r1, #0
17365
+ ldr r0, [r4, #3360]
1707117366 lsls r2, r2, #9
1707217367 bl ftl_memset
17073
-.L2757:
17368
+.L2663:
1707417369 movs r0, #0
1707517370 pop {r4, pc}
17076
-.L2759:
17371
+.L2665:
1707717372 .align 2
17078
-.L2758:
17373
+.L2664:
1707917374 .word .LANCHOR2
1708017375 .word 1112818501
1708117376 .word .LC137
17082
- .word .LC76
17377
+ .word .LC77
1708317378 .fnend
1708417379 .size FtlLoadEctTbl, .-FtlLoadEctTbl
1708517380 .align 1
1708617381 .global Ftl_load_ext_data
17382
+ .syntax unified
1708717383 .thumb
1708817384 .thumb_func
17385
+ .fpu softvfp
1708917386 .type Ftl_load_ext_data, %function
1709017387 Ftl_load_ext_data:
1709117388 .fnstart
....@@ -17093,95 +17390,95 @@
1709317390 @ frame_needed = 0, uses_anonymous_args = 0
1709417391 push {r3, r4, r5, lr}
1709517392 .save {r3, r4, r5, lr}
17096
- movs r0, #0
17097
- ldr r4, .L2765
1709817393 movs r1, #1
17099
- ldr r5, .L2765+4
17100
- add r2, r4, #608
17394
+ ldr r4, .L2671
17395
+ movs r0, #0
17396
+ ldr r5, .L2671+4
17397
+ add r2, r4, #604
1710117398 bl FtlVendorPartRead
17102
- ldr r3, [r4, #608]
17399
+ ldr r3, [r4, #604]
1710317400 cmp r3, r5
17104
- beq .L2761
17105
- add r0, r4, #608
17106
- movs r1, #0
17401
+ beq .L2667
1710717402 mov r2, #512
17403
+ movs r1, #0
17404
+ add r0, r4, #604
1710817405 bl ftl_memset
17109
- str r5, [r4, #608]
17110
-.L2761:
17111
- ldr r2, [r4, #608]
17112
- ldr r3, .L2765
17113
- cmp r2, r5
17114
- bne .L2762
17115
- ldr r2, [r3, #696]
17116
- str r2, [r3, #500]
17117
- ldr r2, [r3, #700]
17118
- str r2, [r3, #504]
17119
- ldr r2, [r3, #616]
17120
- str r2, [r3, #496]
17121
- ldr r2, [r3, #620]
17122
- str r2, [r3, #484]
17123
- ldr r2, [r3, #624]
17124
- str r2, [r3, #476]
17125
- ldr r2, [r3, #628]
17126
- str r2, [r3, #492]
17127
- ldr r2, [r3, #636]
17128
- str r2, [r3, #520]
17129
- ldr r2, [r3, #640]
17130
- str r2, [r3, #236]
17131
- ldr r2, [r3, #644]
17132
- str r2, [r3, #480]
17133
- ldr r2, [r3, #648]
17134
- str r2, [r3, #488]
17135
- ldr r2, [r3, #652]
17136
- str r2, [r3, #528]
17137
- ldr r2, [r3, #656]
17138
- str r2, [r3, #532]
17139
- ldr r2, [r3, #668]
17140
- str r2, [r3, #604]
17141
-.L2762:
17142
- ldr r1, [r4, #676]
17406
+ str r5, [r4, #604]
17407
+.L2667:
17408
+ ldr r3, [r4, #604]
17409
+ cmp r3, r5
17410
+ bne .L2668
17411
+ ldr r3, [r4, #692]
17412
+ str r3, [r4, #500]
17413
+ ldr r3, [r4, #696]
17414
+ str r3, [r4, #504]
17415
+ ldr r3, [r4, #612]
17416
+ str r3, [r4, #496]
17417
+ ldr r3, [r4, #616]
17418
+ str r3, [r4, #484]
17419
+ ldr r3, [r4, #620]
17420
+ str r3, [r4, #476]
17421
+ ldr r3, [r4, #624]
17422
+ str r3, [r4, #492]
17423
+ ldr r3, [r4, #632]
17424
+ str r3, [r4, #520]
17425
+ ldr r3, [r4, #636]
17426
+ str r3, [r4, #240]
17427
+ ldr r3, [r4, #640]
17428
+ str r3, [r4, #480]
17429
+ ldr r3, [r4, #644]
17430
+ str r3, [r4, #488]
17431
+ ldr r3, [r4, #648]
17432
+ str r3, [r4, #528]
17433
+ ldr r3, [r4, #652]
17434
+ str r3, [r4, #532]
17435
+ ldr r3, [r4, #664]
17436
+ str r3, [r4, #1116]
17437
+.L2668:
17438
+ ldr r1, [r4, #672]
1714317439 movs r3, #0
17144
- ldr r2, .L2765+8
17440
+ ldr r2, .L2671+8
1714517441 str r3, [r4, #3276]
17442
+ ldr r5, .L2671+12
1714617443 cmp r1, r2
17147
- ldr r5, .L2765+12
17148
- bne .L2763
17149
- ldrb r2, [r5, #144] @ zero_extendqisi2
17150
- cbz r2, .L2764
17151
- ldr r2, .L2765
17152
- str r3, [r2, #676]
17444
+ bne .L2669
17445
+ ldrb r2, [r5, #152] @ zero_extendqisi2
17446
+ cbz r2, .L2670
17447
+ str r3, [r4, #672]
1715317448 bl Ftl_save_ext_data
17154
- b .L2763
17155
-.L2764:
17156
- ldr r0, .L2765+16
17157
- movs r3, #1
17158
- ldr r1, .L2765+20
17159
- str r3, [r5, #2244]
17160
- bl printk
17161
-.L2763:
17162
- ldrh r2, [r5, #2380]
17449
+.L2669:
17450
+ ldrh r2, [r5, #2382]
1716317451 ldr r3, [r4, #520]
1716417452 ldr r0, [r4, #516]
17165
- ldrh r1, [r5, #2328]
17453
+ ldrh r1, [r5, #2332]
1716617454 mla r0, r0, r2, r3
1716717455 bl __aeabi_uidiv
1716817456 str r0, [r4, #524]
1716917457 pop {r3, r4, r5, pc}
17170
-.L2766:
17458
+.L2670:
17459
+ movs r3, #1
17460
+ ldr r1, .L2671+16
17461
+ ldr r0, .L2671+20
17462
+ str r3, [r5, #2248]
17463
+ bl printk
17464
+ b .L2669
17465
+.L2672:
1717117466 .align 2
17172
-.L2765:
17467
+.L2671:
1717317468 .word .LANCHOR2
1717417469 .word 1179929683
1717517470 .word 305432421
1717617471 .word .LANCHOR0
17177
- .word .LC76
1717817472 .word .LC138
17473
+ .word .LC77
1717917474 .fnend
1718017475 .size Ftl_load_ext_data, .-Ftl_load_ext_data
1718117476 .align 1
1718217477 .global FtlMapBlkWriteDumpData
17478
+ .syntax unified
1718317479 .thumb
1718417480 .thumb_func
17481
+ .fpu softvfp
1718517482 .type FtlMapBlkWriteDumpData, %function
1718617483 FtlMapBlkWriteDumpData:
1718717484 .fnstart
....@@ -17191,46 +17488,45 @@
1719117488 .save {r4, r5, r6, lr}
1719217489 mov r6, r0
1719317490 ldr r3, [r0, #36]
17194
- ldrh r5, [r0, #6]
17195
- ldr r1, [r0, #24]
17196
- cbz r3, .L2767
17197
- ldr r2, .L2773
17491
+ cbz r3, .L2673
17492
+ ldr r2, .L2679
1719817493 movs r3, #0
1719917494 str r3, [r0, #36]
17200
- ldr r3, [r2, #224]
17201
- cbnz r3, .L2767
17495
+ ldrh r5, [r0, #6]
17496
+ ldr r3, [r2, #228]
17497
+ ldr r1, [r0, #24]
17498
+ cbnz r3, .L2673
17499
+ ldr r4, .L2679+4
1720217500 subs r5, r5, #1
17203
- ldr r3, .L2773+4
1720417501 ldr r0, [r2, #3320]
17205
- ldr r2, [r2, #3340]
1720617502 uxth r5, r5
17207
- mov r4, r3
17208
- str r0, [r3, #1256]
17209
- str r2, [r3, #1260]
17503
+ ldr r2, [r2, #3340]
17504
+ str r0, [r4, #1264]
17505
+ str r2, [r4, #1268]
1721017506 ldr r2, [r1, r5, lsl #2]
17211
- str r2, [r3, #1252]
17212
- cbz r2, .L2771
17213
- movs r1, #1
17214
- add r0, r3, #1248
17215
- mov r2, r1
17507
+ str r2, [r4, #1260]
17508
+ cbz r2, .L2677
17509
+ movs r2, #1
17510
+ add r0, r4, #1256
17511
+ mov r1, r2
1721617512 bl FlashReadPages
17217
- b .L2772
17218
-.L2771:
17219
- ldr r3, .L2773+8
17220
- movs r1, #255
17221
- ldrh r2, [r3, #2398]
17222
- bl ftl_memset
17223
-.L2772:
17224
- mov r0, r6
17513
+.L2678:
17514
+ ldr r2, [r4, #1264]
1722517515 mov r1, r5
17226
- ldr r2, [r4, #1256]
17516
+ mov r0, r6
1722717517 pop {r4, r5, r6, lr}
1722817518 b FtlMapWritePage
17229
-.L2767:
17519
+.L2677:
17520
+ ldr r3, .L2679+8
17521
+ movs r1, #255
17522
+ ldrh r2, [r3, #2400]
17523
+ bl ftl_memset
17524
+ b .L2678
17525
+.L2673:
1723017526 pop {r4, r5, r6, pc}
17231
-.L2774:
17527
+.L2680:
1723217528 .align 2
17233
-.L2773:
17529
+.L2679:
1723417530 .word .LANCHOR2
1723517531 .word .LANCHOR4
1723617532 .word .LANCHOR0
....@@ -17238,100 +17534,102 @@
1723817534 .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData
1723917535 .align 1
1724017536 .global FlashReadFacBbtData
17537
+ .syntax unified
1724117538 .thumb
1724217539 .thumb_func
17540
+ .fpu softvfp
1724317541 .type FlashReadFacBbtData, %function
1724417542 FlashReadFacBbtData:
1724517543 .fnstart
1724617544 @ args = 0, pretend = 0, frame = 40
1724717545 @ frame_needed = 0, uses_anonymous_args = 0
17248
- ldr r3, .L2789
1724917546 push {r4, r5, r6, r7, r8, r9, r10, lr}
1725017547 .save {r4, r5, r6, r7, r8, r9, r10, lr}
1725117548 mov r8, r2
17252
- ldrh r2, [r3, #128]
17253
- mov r7, r1
17254
- ldrh r3, [r3, #130]
17549
+ ldr r2, .L2693
1725517550 .pad #40
1725617551 sub sp, sp, #40
1725717552 mov r5, r0
17258
- smulbb r3, r2, r3
17259
- ldr r2, .L2789+4
17260
- ldr r1, [r2, #1184]
17261
- mov r9, r2
17553
+ mov r9, r1
17554
+ ldr r7, .L2693+4
17555
+ ldrh r3, [r2, #138]
17556
+ ldrh r2, [r2, #136]
17557
+ smulbb r3, r3, r2
17558
+ ldr r2, [r7, #1192]
1726217559 uxth r3, r3
17560
+ str r2, [sp, #12]
17561
+ ldr r2, [r7, #1224]
1726317562 subs r6, r3, #1
17264
- str r1, [sp, #12]
17265
- mul r10, r3, r7
17266
- ldr r1, [r2, #1216]
17563
+ mul r10, r1, r3
1726717564 uxth r6, r6
1726817565 sub r4, r3, #16
17269
- str r1, [sp, #16]
17270
-.L2776:
17566
+ str r2, [sp, #16]
17567
+.L2682:
1727117568 cmp r6, r4
17272
- ble .L2788
17273
- movs r1, #1
17569
+ bgt .L2688
17570
+ mov r0, #-1
17571
+ b .L2681
17572
+.L2688:
1727417573 add r3, r6, r10
17275
- add r0, sp, #4
17276
- mov r2, r1
17574
+ movs r2, #1
1727717575 lsls r3, r3, #10
17576
+ mov r1, r2
17577
+ add r0, sp, #4
1727817578 str r3, [sp, #8]
1727917579 bl FlashReadPages
1728017580 ldr r3, [sp, #4]
1728117581 adds r3, r3, #1
17282
- beq .L2777
17283
- ldr r3, [r9, #1216]
17582
+ beq .L2683
17583
+ ldr r3, [r7, #1224]
1728417584 ldrh r2, [r3]
1728517585 movw r3, #61664
1728617586 cmp r2, r3
17287
- bne .L2777
17288
- cbz r5, .L2783
17289
- cbz r7, .L2784
17290
-.L2781:
17291
- ldr r1, [r9, #1184]
17587
+ bne .L2683
17588
+ cbz r5, .L2689
17589
+ cmp r9, #0
17590
+ bne .L2685
17591
+ mov r1, r9
17592
+ movs r4, #1
17593
+.L2686:
17594
+ ldr r0, [r7, #1212]
17595
+ uxth r3, r1
17596
+ adds r1, r1, #1
17597
+ cmp r3, r0
17598
+ bcc .L2687
17599
+.L2685:
1729217600 mov r2, r8
17601
+ ldr r1, [r7, #1192]
1729317602 mov r0, r5
1729417603 bl ftl_memcpy
17295
- movs r2, #4
17296
- ldr r0, .L2789+8
17604
+ movs r3, #4
17605
+ ldr r0, .L2693+8
17606
+ mov r2, r3
1729717607 mov r1, r5
17298
- mov r3, r2
1729917608 bl rknand_print_hex
1730017609 movs r0, #0
17301
- b .L2778
17302
-.L2784:
17303
- ldr r6, .L2789+4
17304
- mov lr, #1
17305
-.L2779:
17306
- ldr r2, [r9, #1204]
17307
- uxth r3, r7
17308
- adds r7, r7, #1
17309
- cmp r3, r2
17310
- bcs .L2781
17311
- ldr r2, [r6, #1184]
17312
- lsrs r1, r3, #5
17313
- and r4, r3, #31
17314
- lsl r3, lr, r4
17315
- ldr r0, [r2, r1, lsl #2]
17316
- orrs r3, r3, r0
17317
- str r3, [r2, r1, lsl #2]
17318
- b .L2779
17319
-.L2777:
17320
- subs r6, r6, #1
17321
- uxth r6, r6
17322
- b .L2776
17323
-.L2788:
17324
- mov r0, #-1
17325
- b .L2778
17326
-.L2783:
17327
- mov r0, r5
17328
-.L2778:
17610
+.L2681:
1732917611 add sp, sp, #40
1733017612 @ sp needed
1733117613 pop {r4, r5, r6, r7, r8, r9, r10, pc}
17332
-.L2790:
17614
+.L2687:
17615
+ ldr r0, [r7, #1192]
17616
+ lsrs r6, r3, #5
17617
+ and r3, r3, #31
17618
+ lsl r3, r4, r3
17619
+ ldr r2, [r0, r6, lsl #2]
17620
+ orrs r3, r3, r2
17621
+ str r3, [r0, r6, lsl #2]
17622
+ b .L2686
17623
+.L2683:
17624
+ subs r6, r6, #1
17625
+ uxth r6, r6
17626
+ b .L2682
17627
+.L2689:
17628
+ mov r0, r5
17629
+ b .L2681
17630
+.L2694:
1733317631 .align 2
17334
-.L2789:
17632
+.L2693:
1733517633 .word .LANCHOR0
1733617634 .word .LANCHOR4
1733717635 .word .LC139
....@@ -17339,72 +17637,76 @@
1733917637 .size FlashReadFacBbtData, .-FlashReadFacBbtData
1734017638 .align 1
1734117639 .global FlashGetBadBlockList
17640
+ .syntax unified
1734217641 .thumb
1734317642 .thumb_func
17643
+ .fpu softvfp
1734417644 .type FlashGetBadBlockList, %function
1734517645 FlashGetBadBlockList:
1734617646 .fnstart
1734717647 @ args = 0, pretend = 0, frame = 0
1734817648 @ frame_needed = 0, uses_anonymous_args = 0
17349
- ldr r3, .L2801
17649
+ ldr r3, .L2705
1735017650 push {r4, r5, r6, r7, r8, lr}
1735117651 .save {r4, r5, r6, r7, r8, lr}
1735217652 mov r5, r0
17353
- ldr r3, [r3, #44]
17354
- ldr r6, .L2801+4
17653
+ ldr r6, .L2705+4
17654
+ ldr r3, [r3, #48]
17655
+ ldr r0, [r6, #1220]
1735517656 ldrb r4, [r3, #13] @ zero_extendqisi2
1735617657 ldrh r3, [r3, #14]
17357
- ldr r0, [r6, #1212]
1735817658 smulbb r4, r4, r3
1735917659 uxth r4, r4
1736017660 adds r2, r4, #7
1736117661 asrs r2, r2, #3
1736217662 bl FlashReadFacBbtData
1736317663 adds r0, r0, #1
17364
- bne .L2792
17365
-.L2796:
17664
+ mov ip, r6
17665
+ bne .L2696
17666
+.L2700:
1736617667 movs r3, #0
17367
- b .L2793
17368
-.L2792:
17369
- movs r1, #0
17370
- lsr lr, r4, #4
17371
- mov ip, #1
17372
- subs r4, r4, #1
17373
- mov r3, r1
17374
-.L2794:
17375
- uxth r2, r1
17376
- cmp r2, r4
17377
- bge .L2793
17378
- ldr r7, [r6, #1212]
17379
- lsrs r0, r2, #5
17380
- and r8, r2, #31
17381
- adds r1, r1, #1
17382
- lsl r8, ip, r8
17383
- ldr r0, [r7, r0, lsl #2]
17384
- tst r8, r0
17385
- ittt ne
17386
- strhne r2, [r5, r3, lsl #1] @ movhi
17387
- addne r0, r3, #1
17388
- uxthne r3, r0
17389
- cmp r3, lr
17390
- bcc .L2794
17391
- b .L2796
17392
-.L2793:
17668
+.L2697:
1739317669 movw r2, #65535
1739417670 movs r0, #0
1739517671 strh r2, [r5, r3, lsl #1] @ movhi
1739617672 pop {r4, r5, r6, r7, r8, pc}
17397
-.L2802:
17673
+.L2696:
17674
+ movs r2, #0
17675
+ lsr lr, r4, #4
17676
+ mov r3, r2
17677
+ subs r4, r4, #1
17678
+ mov r8, #1
17679
+.L2698:
17680
+ uxth r1, r2
17681
+ cmp r1, r4
17682
+ bge .L2697
17683
+ ldr r6, [ip, #1220]
17684
+ lsrs r7, r1, #5
17685
+ and r0, r1, #31
17686
+ lsl r0, r8, r0
17687
+ adds r2, r2, #1
17688
+ ldr r6, [r6, r7, lsl #2]
17689
+ tst r0, r6
17690
+ ittt ne
17691
+ addne r0, r3, #1
17692
+ strhne r1, [r5, r3, lsl #1] @ movhi
17693
+ uxthne r3, r0
17694
+ cmp r3, lr
17695
+ bcc .L2698
17696
+ b .L2700
17697
+.L2706:
1739817698 .align 2
17399
-.L2801:
17699
+.L2705:
1740017700 .word .LANCHOR0
1740117701 .word .LANCHOR4
1740217702 .fnend
1740317703 .size FlashGetBadBlockList, .-FlashGetBadBlockList
1740417704 .align 1
1740517705 .global FtlMakeBbt
17706
+ .syntax unified
1740617707 .thumb
1740717708 .thumb_func
17709
+ .fpu softvfp
1740817710 .type FtlMakeBbt, %function
1740917711 FtlMakeBbt:
1741017712 .fnstart
....@@ -17413,405 +17715,399 @@
1741317715 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1741417716 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1741517717 .pad #12
17416
- ldr r5, .L2827
17417
- ldr r4, [r5, #224]
17418
- cmp r4, #0
17419
- bne .L2804
17718
+ ldr r6, .L2728
17719
+ ldr r7, [r6, #228]
17720
+ cmp r7, #0
17721
+ bne .L2708
17722
+ ldr r9, .L2728+8
17723
+ ldr r8, .L2728+12
1742017724 bl FtlBbtMemInit
17421
- ldr r6, .L2827+4
17725
+ subw r10, r9, #2484
17726
+ sub fp, r9, #18
17727
+ mov r4, r10
1742217728 bl FtlLoadFactoryBbt
17423
- ldr r9, .L2827+16
17424
- sub r8, r6, #18
17425
- sub r7, r6, #2480
17426
-.L2805:
17427
- ldrh r3, [r7, #2342]
17428
- ldr r10, .L2827+8
17429
- cmp r4, r3
17430
- bcs .L2824
17431
- ldr r3, [r5, #3340]
17729
+.L2709:
17730
+ ldrh r3, [r10, #2346]
17731
+ cmp r7, r3
17732
+ bcc .L2715
17733
+ movs r5, #0
17734
+.L2716:
17735
+ ldrh r3, [r4, #2404]
17736
+ uxth r0, r5
17737
+ adds r5, r5, #1
17738
+ cmp r3, r0
17739
+ bhi .L2717
17740
+ ldrh r5, [r4, #2468]
17741
+ movw r7, #65535
17742
+ subs r5, r5, #1
17743
+ uxth r5, r5
17744
+.L2718:
17745
+ ldrh r3, [r4, #2468]
17746
+ subs r3, r3, #48
17747
+ cmp r5, r3
17748
+ ble .L2722
17749
+ mov r0, r5
17750
+ bl FtlBbmIsBadBlock
17751
+ cmp r0, #1
17752
+ beq .L2719
17753
+ mov r0, r5
17754
+ bl FlashTestBlk
17755
+ cmp r0, #0
17756
+ beq .L2720
17757
+ mov r0, r5
17758
+ bl FtlBbmMapBadBlock
17759
+.L2719:
17760
+ subs r5, r5, #1
17761
+ uxth r5, r5
17762
+ b .L2718
17763
+.L2715:
17764
+ ldr r3, [r6, #3340]
1743217765 movw r2, #65535
17433
- ldr r0, [r5, #3316]
17434
- ldr fp, .L2827+16
17766
+ ldr r0, [r6, #3316]
1743517767 str r3, [sp]
17436
- str r3, [r9, #1260]
17437
- ldrh r3, [r8, #2]!
17438
- str r0, [r9, #1256]
17768
+ str r3, [r8, #1268]
17769
+ ldrh r3, [fp, #2]!
17770
+ str r0, [r8, #1264]
1743917771 cmp r3, r2
17440
- beq .L2806
17441
- ldrh ip, [r7, #2386]
17442
- movs r1, #1
17443
- add r0, fp, #1248
17444
- mov r2, r1
17445
- mla ip, ip, r4, r3
17446
- lsl r3, ip, #10
17447
- str ip, [sp]
17448
- str r3, [r9, #1252]
17772
+ beq .L2710
17773
+ ldrh r5, [r10, #2388]
17774
+ movs r2, #1
17775
+ mov r1, r2
17776
+ ldr r0, .L2728+4
17777
+ mla r5, r7, r5, r3
17778
+ lsls r3, r5, #10
17779
+ str r3, [r8, #1260]
1744917780 bl FlashReadPages
17450
- ldrh r2, [r7, #2386]
17451
- ldr r0, [r6]
17781
+ ldrh r2, [r10, #2388]
17782
+ ldr r1, [r8, #1264]
17783
+ ldr r0, [r9]
1745217784 adds r2, r2, #7
17453
- ldr r1, [r9, #1256]
1745417785 asrs r2, r2, #3
1745517786 bl ftl_memcpy
17456
- ldr ip, [sp]
17457
- b .L2807
17458
-.L2806:
17459
- mov r1, r4
17787
+.L2711:
17788
+ uxth r0, r5
17789
+ adds r7, r7, #1
17790
+ add r9, r9, #4
17791
+ bl FtlBbmMapBadBlock
17792
+ b .L2709
17793
+.L2710:
17794
+ mov r1, r7
1746017795 bl FlashGetBadBlockList
17461
- ldr r0, [r9, #1256]
17462
- ldr r1, [r6]
17796
+ ldr r1, [r9]
17797
+ ldr r0, [r8, #1264]
1746317798 bl FtlBbt2Bitmap
17464
- ldrh r3, [r7, #2386]
17799
+ ldrh r3, [r10, #2388]
17800
+.L2727:
1746517801 subs r3, r3, #1
17466
-.L2823:
17467
- uxth r10, r3
17468
-.L2808:
17469
- ldr r3, .L2827+8
17470
- ldrh r0, [r3, #2386]
17471
- smlabb r0, r0, r4, r10
17802
+ uxth r3, r3
17803
+ str r3, [sp, #4]
17804
+.L2712:
17805
+ ldr r3, [sp, #4]
17806
+ ldrh r0, [r4, #2388]
17807
+ smlabb r0, r0, r7, r3
1747217808 uxth r0, r0
1747317809 bl FtlBbmIsBadBlock
1747417810 cmp r0, #1
17475
- bne .L2825
17476
- add r3, r10, #-1
17477
- b .L2823
17478
-.L2825:
17479
- movs r1, #0
17811
+ beq .L2713
17812
+ ldrh r3, [sp, #4]
1748017813 movs r2, #16
17481
- strh r10, [r8] @ movhi
17482
- ldr r0, [r5, #3340]
17814
+ movs r1, #0
17815
+ ldr r0, [r6, #3340]
17816
+ strh r3, [fp] @ movhi
1748317817 bl ftl_memset
17484
- movw r3, #61664
1748517818 ldr r2, [sp]
17819
+ movw r3, #61664
1748617820 strh r3, [r2] @ movhi
1748717821 movs r3, #0
1748817822 str r3, [r2, #4]
17489
- ldrh r3, [r8]
17490
- ldrh ip, [r7, #2386]
17823
+ ldrh r3, [fp]
17824
+ ldrh r5, [r4, #2388]
1749117825 strh r3, [r2, #2] @ movhi
17492
- ldrh r3, [r8]
17493
- ldrh r2, [r5, #3404]
17494
- ldr r1, [r6]
17495
- mla ip, ip, r4, r3
17826
+ ldrh r3, [fp]
17827
+ ldrh r2, [r6, #3404]
17828
+ ldr r1, [r9]
17829
+ ldr r0, [r8, #1264]
17830
+ mla r5, r7, r5, r3
1749617831 lsls r2, r2, #2
17497
- ldr r0, [fp, #1256]
17498
- lsl r3, ip, #10
17499
- str ip, [sp, #4]
17500
- str r3, [fp, #1252]
17832
+ lsls r3, r5, #10
17833
+ str r3, [r8, #1260]
1750117834 bl ftl_memcpy
17502
- movs r1, #1
17503
- ldr r0, .L2827+12
17504
- mov r2, r1
17835
+ movs r2, #1
17836
+ ldr r0, .L2728+4
17837
+ mov r1, r2
1750517838 bl FlashEraseBlocks
17506
- movs r1, #1
17507
- ldr r0, .L2827+12
17508
- mov r3, r1
17509
- mov r2, r1
17839
+ movs r3, #1
17840
+ ldr r0, .L2728+4
17841
+ mov r2, r3
17842
+ mov r1, r3
1751017843 bl FlashProgPages
17511
- ldr r3, [fp, #1248]
17844
+ ldr r3, [r8, #1256]
1751217845 adds r3, r3, #1
17513
- ldr ip, [sp, #4]
17514
- bne .L2807
17515
- uxth r0, ip
17846
+ bne .L2711
17847
+ uxth r0, r5
1751617848 bl FtlBbmMapBadBlock
17517
- b .L2808
17518
-.L2807:
17519
- uxth r0, ip
17520
- adds r4, r4, #1
17849
+ b .L2712
17850
+.L2713:
17851
+ ldr r3, [sp, #4]
17852
+ b .L2727
17853
+.L2717:
1752117854 bl FtlBbmMapBadBlock
17522
- adds r6, r6, #4
17523
- b .L2805
17524
-.L2824:
17525
- movs r4, #0
17526
-.L2812:
17527
- ldrh r3, [r10, #2402]
17528
- uxth r0, r4
17529
- ldr r6, .L2827+8
17530
- adds r4, r4, #1
17531
- cmp r3, r0
17532
- bls .L2826
17533
- bl FtlBbmMapBadBlock
17534
- b .L2812
17535
-.L2826:
17536
- ldrh r4, [r6, #2464]
17537
- movw r7, #65535
17538
- subs r4, r4, #1
17539
- uxth r4, r4
17540
-.L2814:
17541
- ldrh r3, [r10, #2464]
17542
- subs r3, r3, #48
17543
- cmp r4, r3
17544
- ble .L2818
17545
- mov r0, r4
17546
- bl FtlBbmIsBadBlock
17547
- cmp r0, #1
17548
- beq .L2815
17549
- mov r0, r4
17550
- bl FlashTestBlk
17551
- cbz r0, .L2816
17552
- mov r0, r4
17553
- bl FtlBbmMapBadBlock
17554
- b .L2815
17555
-.L2816:
17556
- ldrh r3, [r6, #2452]
17855
+ b .L2716
17856
+.L2720:
17857
+ ldrh r3, [r4, #2456]
1755717858 cmp r3, r7
17558
- bne .L2817
17559
- strh r4, [r6, #2452] @ movhi
17560
- b .L2815
17561
-.L2817:
17562
- ldr r3, .L2827+8
17563
- strh r4, [r3, #2456] @ movhi
17564
- b .L2818
17565
-.L2815:
17566
- subs r4, r4, #1
17567
- uxth r4, r4
17568
- b .L2814
17569
-.L2818:
17570
- ldr r0, [r5, #228]
17571
- movs r4, #0
17572
- ldrh r3, [r10, #2452]
17859
+ bne .L2721
17860
+ strh r5, [r4, #2456] @ movhi
17861
+ b .L2719
17862
+.L2721:
17863
+ strh r5, [r4, #2460] @ movhi
17864
+.L2722:
17865
+ ldrh r3, [r4, #2456]
17866
+ movs r5, #0
17867
+ ldr r0, [r6, #232]
1757317868 movs r2, #2
17574
- str r4, [r10, #2460]
17869
+ str r5, [r4, #2464]
1757517870 movs r1, #1
17576
- strh r4, [r10, #2454] @ movhi
17871
+ strh r5, [r4, #2458] @ movhi
1757717872 lsls r3, r3, #10
1757817873 str r3, [r0, #4]
17579
- ldrh r3, [r10, #2456]
17874
+ ldrh r3, [r4, #2460]
1758017875 lsls r3, r3, #10
1758117876 str r3, [r0, #40]
1758217877 bl FlashEraseBlocks
17583
- ldrh r0, [r10, #2452]
17878
+ ldrh r0, [r4, #2456]
1758417879 bl FtlBbmMapBadBlock
17585
- ldrh r0, [r10, #2456]
17880
+ ldrh r0, [r4, #2460]
1758617881 bl FtlBbmMapBadBlock
1758717882 bl FtlBbmTblFlush
17588
- ldr r3, [r10, #2460]
17589
- ldrh r2, [r10, #2456]
17883
+ ldr r3, [r4, #2464]
17884
+ ldrh r2, [r4, #2460]
17885
+ strh r5, [r4, #2458] @ movhi
1759017886 adds r3, r3, #1
17591
- str r3, [r10, #2460]
17592
- ldrh r3, [r10, #2452]
17593
- strh r4, [r10, #2454] @ movhi
17594
- strh r2, [r10, #2452] @ movhi
17595
- strh r3, [r10, #2456] @ movhi
17887
+ str r3, [r4, #2464]
17888
+ ldrh r3, [r4, #2456]
17889
+ strh r2, [r4, #2456] @ movhi
17890
+ strh r3, [r4, #2460] @ movhi
1759617891 bl FtlBbmTblFlush
17597
-.L2804:
17892
+.L2708:
1759817893 movs r0, #0
1759917894 add sp, sp, #12
1760017895 @ sp needed
1760117896 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17602
-.L2828:
17897
+.L2729:
1760317898 .align 2
17604
-.L2827:
17899
+.L2728:
1760517900 .word .LANCHOR2
17606
- .word .LANCHOR0+2480
17607
- .word .LANCHOR0
17608
- .word .LANCHOR4+1248
17901
+ .word .LANCHOR4+1256
17902
+ .word .LANCHOR0+2484
1760917903 .word .LANCHOR4
1761017904 .fnend
1761117905 .size FtlMakeBbt, .-FtlMakeBbt
1761217906 .align 1
1761317907 .global log2phys
17908
+ .syntax unified
1761417909 .thumb
1761517910 .thumb_func
17911
+ .fpu softvfp
1761617912 .type log2phys, %function
1761717913 log2phys:
1761817914 .fnstart
1761917915 @ args = 0, pretend = 0, frame = 16
1762017916 @ frame_needed = 0, uses_anonymous_args = 0
17917
+ ldr r3, .L2745
1762117918 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1762217919 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1762317920 .pad #20
1762417921 sub sp, sp, #20
17625
- ldr r6, .L2845
17626
- mov r9, r0
1762717922 str r2, [sp, #8]
17628
- mov r10, r1
17629
- ldr r3, [r6, #2448]
17630
- ldrh r2, [r6, #2396]
17631
- cmp r0, r3
17632
- bcs .L2830
17633
- adds r3, r2, #7
17634
- ldr r2, .L2845+4
17635
- lsr r5, r0, r3
17923
+ mov fp, r1
17924
+ mov r8, r3
17925
+ ldr r2, [r3, #2452]
17926
+ str r0, [sp]
17927
+ cmp r0, r2
17928
+ bcs .L2731
17929
+ ldrh r3, [r3, #2398]
17930
+ movs r5, #12
17931
+ ldr r4, .L2745+4
17932
+ adds r3, r3, #7
1763617933 str r3, [sp, #4]
17637
- ldrh r1, [r6, #2426]
17638
- movs r4, #0
17639
- ldr fp, [r2, #460]
17640
- mov r8, r2
17641
- uxth r5, r5
17642
- movs r2, #12
17643
- b .L2831
17644
-.L2830:
17645
- ldr r3, [sp, #8]
17646
- mov r0, #-1
17647
- cmp r3, #0
17648
- bne .L2832
17649
- str r0, [r1]
17650
- b .L2832
17651
-.L2836:
17652
- adds r4, r4, #1
17653
- mla r0, r2, r4, fp
17654
- ldrh r0, [r0, #-12]
17655
- cmp r0, r5
17656
- beq .L2833
17657
-.L2831:
17658
- uxth r7, r4
17659
- cmp r7, r1
17660
- bcc .L2836
17934
+ movs r3, #0
17935
+ ldr r2, [sp, #4]
17936
+ ldr r7, [r4, #464]
17937
+ lsr r6, r0, r2
17938
+ ldrh r2, [r8, #2430]
17939
+ uxth r10, r6
17940
+.L2732:
17941
+ uxth r9, r3
17942
+ cmp r9, r2
17943
+ bcc .L2737
1766117944 bl select_l2p_ram_region
17662
- movs r4, #12
17663
- movw r3, #65535
17664
- muls r4, r0, r4
17665
- mov r7, r0
17666
- add r2, fp, r4
17667
- ldrh r1, [fp, r4]
17668
- cmp r1, r3
17669
- bne .L2844
17670
-.L2837:
17671
- ldr r3, [r8, #3388]
17672
- ldr fp, .L2845+4
17673
- ldr r3, [r3, r5, lsl #2]
17945
+ muls r5, r0, r5
17946
+ movw r2, #65535
17947
+ mov r9, r0
17948
+ ldrh r1, [r7, r5]
17949
+ adds r3, r7, r5
17950
+ cmp r1, r2
17951
+ beq .L2738
17952
+ ldr r3, [r3, #4]
1767417953 cmp r3, #0
17675
- bne .L2838
17676
- ldr r2, [fp, #460]
17954
+ bge .L2738
17955
+ bl flush_l2p_region
17956
+.L2738:
17957
+ ldr r3, [r4, #3388]
17958
+ uxth r6, r6
17959
+ ldr r3, [r3, r6, lsl #2]
17960
+ cmp r3, #0
17961
+ bne .L2739
17962
+ ldr r2, [r4, #464]
1767717963 movs r1, #255
1767817964 str r3, [sp, #12]
17679
- add r2, r2, r4
17680
- ldr r0, [r2, #8]
17681
- ldrh r2, [r6, #2398]
17965
+ adds r0, r2, r5
17966
+ ldrh r2, [r8, #2400]
17967
+ ldr r0, [r0, #8]
1768217968 bl ftl_memset
17683
- ldr r2, [fp, #460]
17684
- strh r5, [r2, r4] @ movhi
17685
- ldr r2, [fp, #460]
17686
- add r4, r4, r2
17969
+ ldr r2, [r4, #464]
1768717970 ldr r3, [sp, #12]
17688
- str r3, [r4, #4]
17689
-.L2833:
17690
- ldr r3, [sp, #4]
17691
- movs r2, #1
17692
- ldr r1, [sp, #8]
17693
- lsls r2, r2, r3
17694
- movs r3, #12
17695
- subs r2, r2, #1
17696
- and r9, r9, r2
17697
- ldr r2, .L2845+4
17698
- uxth r9, r9
17699
- cbnz r1, .L2834
17700
- ldr r1, [r2, #460]
17701
- mla r3, r3, r7, r1
17702
- ldr r3, [r3, #8]
17703
- ldr r3, [r3, r9, lsl #2]
17704
- str r3, [r10]
17705
- b .L2835
17706
-.L2834:
17707
- muls r3, r7, r3
17708
- ldr r1, [r2, #460]
17709
- ldr r0, [r10]
17710
- add r1, r1, r3
17711
- ldr r1, [r1, #8]
17712
- str r0, [r1, r9, lsl #2]
17713
- ldr r1, [r2, #460]
17714
- strh r5, [r2, #464] @ movhi
17715
- add r3, r3, r1
17716
- ldr r1, [r3, #4]
17717
- orr r1, r1, #-2147483648
17718
- str r1, [r3, #4]
17719
-.L2835:
17720
- ldr r2, [r2, #460]
17721
- movs r3, #12
17722
- mla r7, r3, r7, r2
17723
- ldr r3, [r7, #4]
17724
- adds r2, r3, #1
17725
- beq .L2842
17726
- adds r3, r3, #1
17727
- str r3, [r7, #4]
17728
- b .L2842
17729
-.L2844:
17730
- ldr r3, [r2, #4]
17731
- cmp r3, #0
17732
- bge .L2837
17733
- bl flush_l2p_region
17734
- b .L2837
17735
-.L2838:
17736
- ldr r2, [fp, #460]
17737
- movs r1, #1
17738
- ldr r8, .L2845+24
17739
- add r2, r2, r4
17740
- str r3, [sp, #12]
17741
- add r0, r8, #1248
17742
- ldr r2, [r2, #8]
17743
- str r3, [r8, #1252]
17744
- str r2, [r8, #1256]
17745
- ldr r2, [fp, #3340]
17746
- str r2, [r8, #1260]
17747
- mov r2, r1
17748
- bl FlashReadPages
17749
- ldr r2, [r8, #1260]
17750
- ldrh r2, [r2, #8]
17751
- cmp r2, r5
17752
- ldr r3, [sp, #12]
17753
- beq .L2839
17754
- mov r2, r3
17755
- mov r1, r5
17756
- ldr r0, .L2845+8
17757
- bl printk
17758
- movs r2, #4
17759
- ldr r0, .L2845+12
17760
- mov r3, r2
17761
- ldr r1, [r8, #1260]
17762
- bl rknand_print_hex
17763
- ldrh r3, [r6, #2424]
17764
- ldr r0, .L2845+16
17765
- movs r2, #4
17766
- ldr r1, [fp, #3388]
17767
- bl rknand_print_hex
17768
- movs r3, #1
17769
- str r3, [fp, #224]
17770
- b .L2840
17771
-.L2839:
17772
- ldr r2, [r8, #1248]
17773
- cmp r2, #256
17774
- bne .L2840
17775
- mov r2, r3
17776
- mov r1, r5
17777
- ldr r0, .L2845+20
17778
- bl printk
17779
- ldr r3, [fp, #460]
17780
- add r0, fp, #3408
17781
- mov r1, r5
17782
- add r3, r3, r4
17783
- ldr r2, [r3, #8]
17784
- bl FtlMapWritePage
17785
-.L2840:
17786
- ldr r3, .L2845+4
17787
- movs r1, #0
17788
- ldr r3, [r3, #460]
17789
- adds r2, r3, r4
17790
- str r1, [r2, #4]
17791
- strh r5, [r3, r4] @ movhi
17792
- b .L2833
17793
-.L2842:
17794
- movs r0, #0
17795
-.L2832:
17971
+ strh r10, [r2, r5] @ movhi
17972
+ ldr r2, [r4, #464]
17973
+ add r5, r5, r2
17974
+ str r3, [r5, #4]
17975
+ b .L2734
17976
+.L2731:
17977
+ ldr r3, [sp, #8]
17978
+ mov r0, #-1
17979
+ cbnz r3, .L2730
17980
+ str r0, [fp]
17981
+.L2730:
1779617982 add sp, sp, #20
1779717983 @ sp needed
1779817984 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17799
-.L2846:
17985
+.L2737:
17986
+ adds r3, r3, #1
17987
+ mla r1, r5, r3, r7
17988
+ ldrh r1, [r1, #-12]
17989
+ cmp r1, r10
17990
+ bne .L2732
17991
+.L2734:
17992
+ ldr r2, [sp, #4]
17993
+ movs r3, #1
17994
+ ldr r0, [sp, #8]
17995
+ ldr r1, .L2745+4
17996
+ lsls r3, r3, r2
17997
+ ldr r2, [sp]
17998
+ subs r3, r3, #1
17999
+ ands r3, r3, r2
18000
+ movs r2, #12
18001
+ uxth r3, r3
18002
+ cbnz r0, .L2735
18003
+ ldr r0, [r1, #464]
18004
+ mla r2, r2, r9, r0
18005
+ ldr r2, [r2, #8]
18006
+ ldr r3, [r2, r3, lsl #2]
18007
+ str r3, [fp]
18008
+.L2736:
18009
+ ldr r2, [r1, #464]
18010
+ movs r3, #12
18011
+ mla r9, r3, r9, r2
18012
+ ldr r3, [r9, #4]
18013
+ adds r2, r3, #1
18014
+ beq .L2743
18015
+ adds r3, r3, #1
18016
+ str r3, [r9, #4]
18017
+.L2743:
18018
+ movs r0, #0
18019
+ b .L2730
18020
+.L2735:
18021
+ mul r2, r2, r9
18022
+ ldr r0, [r4, #464]
18023
+ ldr r5, [fp]
18024
+ add r0, r0, r2
18025
+ ldr r0, [r0, #8]
18026
+ str r5, [r0, r3, lsl #2]
18027
+ ldr r3, [r4, #464]
18028
+ strh r10, [r4, #468] @ movhi
18029
+ add r2, r2, r3
18030
+ ldr r3, [r2, #4]
18031
+ orr r3, r3, #-2147483648
18032
+ str r3, [r2, #4]
18033
+ b .L2736
18034
+.L2739:
18035
+ ldr r2, [r4, #464]
18036
+ ldr r7, .L2745+8
18037
+ str r3, [sp, #12]
18038
+ add r2, r2, r5
18039
+ ldr r2, [r2, #8]
18040
+ add r0, r7, #1256
18041
+ str r3, [r7, #1260]
18042
+ str r2, [r7, #1264]
18043
+ ldr r2, [r4, #3340]
18044
+ str r2, [r7, #1268]
18045
+ movs r2, #1
18046
+ mov r1, r2
18047
+ bl FlashReadPages
18048
+ ldr r2, [r7, #1268]
18049
+ ldr r3, [sp, #12]
18050
+ ldrh r2, [r2, #8]
18051
+ cmp r2, r10
18052
+ beq .L2740
18053
+ mov r2, r3
18054
+ mov r1, r6
18055
+ ldr r0, .L2745+12
18056
+ bl printk
18057
+ movs r3, #4
18058
+ ldr r1, [r7, #1268]
18059
+ mov r2, r3
18060
+ ldr r0, .L2745+16
18061
+ bl rknand_print_hex
18062
+ ldrh r3, [r8, #2428]
18063
+ movs r2, #4
18064
+ ldr r1, [r4, #3388]
18065
+ ldr r0, .L2745+20
18066
+ bl rknand_print_hex
18067
+ movs r3, #1
18068
+ str r3, [r4, #228]
18069
+.L2741:
18070
+ ldr r3, .L2745+4
18071
+ movs r1, #0
18072
+ ldr r3, [r3, #464]
18073
+ adds r2, r3, r5
18074
+ str r1, [r2, #4]
18075
+ strh r10, [r3, r5] @ movhi
18076
+ b .L2734
18077
+.L2740:
18078
+ ldr r2, [r7, #1256]
18079
+ cmp r2, #256
18080
+ bne .L2741
18081
+ mov r2, r3
18082
+ mov r1, r6
18083
+ ldr r0, .L2745+24
18084
+ bl printk
18085
+ ldr r3, [r4, #464]
18086
+ mov r1, r6
18087
+ ldr r0, .L2745+28
18088
+ add r3, r3, r5
18089
+ ldr r2, [r3, #8]
18090
+ bl FtlMapWritePage
18091
+ b .L2741
18092
+.L2746:
1780018093 .align 2
17801
-.L2845:
18094
+.L2745:
1780218095 .word .LANCHOR0
1780318096 .word .LANCHOR2
18097
+ .word .LANCHOR4
1780418098 .word .LC140
1780518099 .word .LC101
1780618100 .word .LC141
1780718101 .word .LC142
17808
- .word .LANCHOR4
18102
+ .word .LANCHOR2+3408
1780918103 .fnend
1781018104 .size log2phys, .-log2phys
1781118105 .align 1
1781218106 .global FtlWriteDumpData
18107
+ .syntax unified
1781318108 .thumb
1781418109 .thumb_func
18110
+ .fpu softvfp
1781518111 .type FtlWriteDumpData, %function
1781618112 FtlWriteDumpData:
1781718113 .fnstart
....@@ -17821,110 +18117,114 @@
1782118117 .save {r4, r5, r6, r7, r8, r9, r10, lr}
1782218118 .pad #40
1782318119 sub sp, sp, #40
17824
- ldr r4, .L2865
17825
- ldr r3, [r4, #224]
18120
+ ldr r4, .L2765
18121
+ ldr r3, [r4, #228]
1782618122 cmp r3, #0
17827
- bne .L2847
17828
- ldrh r2, [r4, #320]
18123
+ bne .L2747
18124
+ ldrh r2, [r4, #324]
1782918125 cmp r2, #0
17830
- beq .L2849
17831
- ldrb r3, [r4, #324] @ zero_extendqisi2
18126
+ beq .L2749
18127
+ ldrb r3, [r4, #328] @ zero_extendqisi2
1783218128 cmp r3, #0
17833
- bne .L2849
17834
- ldr r7, .L2865+4
17835
- ldrb r1, [r4, #323] @ zero_extendqisi2
17836
- ldrh r3, [r7, #2388]
18129
+ bne .L2749
18130
+ ldr r7, .L2765+4
18131
+ ldrb r1, [r4, #327] @ zero_extendqisi2
18132
+ ldrh r3, [r7, #2390]
1783718133 muls r3, r1, r3
1783818134 cmp r2, r3
17839
- beq .L2849
17840
- ldrb r9, [r4, #326] @ zero_extendqisi2
17841
- ldr r6, [r7, #2448]
17842
- ldrh r8, [r7, #2320]
18135
+ beq .L2749
18136
+ ldrb r9, [r4, #330] @ zero_extendqisi2
1784318137 cmp r9, #0
17844
- bne .L2847
17845
- subs r6, r6, #1
17846
- mov r1, sp
18138
+ bne .L2747
18139
+ ldr r6, [r7, #2452]
1784718140 mov r2, r9
18141
+ mov r1, sp
18142
+ ldrh r8, [r7, #2324]
18143
+ subs r6, r6, #1
1784818144 mov r0, r6
1784918145 bl log2phys
18146
+ ldr r3, [sp]
1785018147 ldr r5, [r4, #3340]
1785118148 ldr r0, [r4, #3316]
17852
- ldr r3, [sp]
17853
- str r6, [sp, #20]
17854
- str r0, [sp, #12]
1785518149 str r3, [sp, #8]
1785618150 adds r3, r3, #1
18151
+ str r6, [sp, #20]
18152
+ str r0, [sp, #12]
1785718153 str r5, [sp, #16]
1785818154 str r9, [r5, #4]
17859
- beq .L2851
17860
- movs r1, #1
18155
+ beq .L2751
1786118156 mov r2, r9
18157
+ movs r1, #1
1786218158 add r0, sp, #4
1786318159 bl FlashReadPages
17864
- b .L2852
17865
-.L2851:
17866
- movs r1, #255
17867
- ldrh r2, [r7, #2398]
17868
- bl ftl_memset
17869
-.L2852:
18160
+.L2752:
18161
+ ldr r9, .L2765+8
1787018162 movs r7, #0
17871
- ldr r10, .L2865
1787218163 lsl r8, r8, #2
18164
+ mov r10, r7
1787318165 movw r3, #61589
17874
- mov r9, r7
1787518166 strh r3, [r5] @ movhi
17876
-.L2853:
17877
- cmp r7, r8
17878
- beq .L2854
17879
- ldrh r3, [r4, #320]
17880
- cbz r3, .L2854
18167
+.L2753:
18168
+ cmp r8, r7
18169
+ bne .L2757
18170
+.L2754:
18171
+ movs r3, #1
18172
+.L2764:
18173
+ strb r3, [r4, #330]
18174
+.L2747:
18175
+ add sp, sp, #40
18176
+ @ sp needed
18177
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
18178
+.L2751:
18179
+ ldrh r2, [r7, #2400]
18180
+ movs r1, #255
18181
+ bl ftl_memset
18182
+ b .L2752
18183
+.L2757:
18184
+ ldrh r3, [r4, #324]
18185
+ cmp r3, #0
18186
+ beq .L2754
1788118187 ldr r3, [sp, #8]
17882
- adds r7, r7, #1
18188
+ mov r0, r9
1788318189 str r6, [r5, #8]
17884
- ldr r0, .L2865+8
18190
+ adds r7, r7, #1
1788518191 str r3, [r5, #12]
17886
- ldrh r3, [r10, #316]
18192
+ ldrh r3, [r4, #320]
1788718193 strh r3, [r5, #2] @ movhi
1788818194 bl get_new_active_ppa
17889
- ldr r3, [r10, #512]
18195
+ ldr r3, [r4, #512]
1789018196 movs r1, #1
1789118197 str r0, [sp, #8]
1789218198 add r0, sp, #4
1789318199 str r3, [r5, #4]
1789418200 adds r3, r3, #1
1789518201 adds r2, r3, #1
17896
- mov r2, #0
1789718202 it eq
17898
- moveq r3, r9
17899
- str r3, [r10, #512]
17900
- mov r3, r2
17901
- bl FlashProgPages
17902
- ldrh r0, [r4, #316]
17903
- bl decrement_vpc_count
17904
- b .L2853
17905
-.L2854:
17906
- movs r3, #1
17907
- b .L2864
17908
-.L2849:
18203
+ moveq r3, r10
18204
+ str r3, [r4, #512]
1790918205 movs r3, #0
17910
-.L2864:
17911
- strb r3, [r4, #326]
17912
-.L2847:
17913
- add sp, sp, #40
17914
- @ sp needed
17915
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
17916
-.L2866:
18206
+ mov r2, r3
18207
+ bl FlashProgPages
18208
+ ldrh r0, [r4, #320]
18209
+ bl decrement_vpc_count
18210
+ b .L2753
18211
+.L2749:
18212
+ movs r3, #0
18213
+ b .L2764
18214
+.L2766:
1791718215 .align 2
17918
-.L2865:
18216
+.L2765:
1791918217 .word .LANCHOR2
1792018218 .word .LANCHOR0
17921
- .word .LANCHOR2+316
18219
+ .word .LANCHOR2+320
1792218220 .fnend
1792318221 .size FtlWriteDumpData, .-FtlWriteDumpData
1792418222 .align 1
1792518223 .global l2p_flush
18224
+ .syntax unified
1792618225 .thumb
1792718226 .thumb_func
18227
+ .fpu softvfp
1792818228 .type l2p_flush, %function
1792918229 l2p_flush:
1793018230 .fnstart
....@@ -17932,39 +18232,42 @@
1793218232 @ frame_needed = 0, uses_anonymous_args = 0
1793318233 push {r3, r4, r5, r6, r7, lr}
1793418234 .save {r3, r4, r5, r6, r7, lr}
17935
- bl FtlWriteDumpData
1793618235 movs r4, #0
17937
- ldr r5, .L2872
18236
+ ldr r5, .L2771
1793818237 movs r7, #12
17939
- ldr r6, .L2872+4
17940
-.L2868:
17941
- ldrh r3, [r5, #2426]
18238
+ ldr r6, .L2771+4
18239
+ bl FtlWriteDumpData
18240
+.L2768:
18241
+ ldrh r3, [r5, #2430]
1794218242 uxth r0, r4
1794318243 cmp r3, r0
17944
- bls .L2871
17945
- ldr r3, [r6, #460]
17946
- mla r3, r7, r0, r3
17947
- ldr r3, [r3, #4]
17948
- cmp r3, #0
17949
- bge .L2869
17950
- bl flush_l2p_region
17951
-.L2869:
17952
- adds r4, r4, #1
17953
- b .L2868
17954
-.L2871:
18244
+ bhi .L2770
1795518245 movs r0, #0
1795618246 pop {r3, r4, r5, r6, r7, pc}
17957
-.L2873:
18247
+.L2770:
18248
+ ldr r2, [r6, #464]
18249
+ uxth r3, r4
18250
+ mla r3, r7, r3, r2
18251
+ ldr r3, [r3, #4]
18252
+ cmp r3, #0
18253
+ bge .L2769
18254
+ bl flush_l2p_region
18255
+.L2769:
18256
+ adds r4, r4, #1
18257
+ b .L2768
18258
+.L2772:
1795818259 .align 2
17959
-.L2872:
18260
+.L2771:
1796018261 .word .LANCHOR0
1796118262 .word .LANCHOR2
1796218263 .fnend
1796318264 .size l2p_flush, .-l2p_flush
1796418265 .align 1
1796518266 .global allocate_new_data_superblock
18267
+ .syntax unified
1796618268 .thumb
1796718269 .thumb_func
18270
+ .fpu softvfp
1796818271 .type allocate_new_data_superblock, %function
1796918272 allocate_new_data_superblock:
1797018273 .fnstart
....@@ -17973,323 +18276,324 @@
1797318276 push {r4, r5, r6, lr}
1797418277 .save {r4, r5, r6, lr}
1797518278 mov r6, r0
17976
- ldr r4, .L2900
18279
+ ldr r4, .L2799
18280
+ ldr r3, [r4, #228]
18281
+ cbnz r3, .L2774
1797718282 ldrh r5, [r0]
17978
- ldr r3, [r4, #224]
17979
- cmp r3, #0
17980
- bne .L2875
1798118283 movw r3, #65535
1798218284 cmp r5, r3
17983
- beq .L2876
17984
- ldr r3, [r4, #296]
18285
+ beq .L2775
18286
+ ldr r3, [r4, #300]
1798518287 mov r0, r5
1798618288 ldrh r3, [r3, r5, lsl #1]
17987
- cbz r3, .L2877
18289
+ cbz r3, .L2776
1798818290 bl INSERT_DATA_LIST
17989
- b .L2876
17990
-.L2877:
17991
- bl INSERT_FREE_LIST
17992
-.L2876:
17993
- ldr r2, .L2900
18291
+.L2775:
18292
+ ldr r2, .L2799+4
1799418293 movs r3, #0
1799518294 strb r3, [r6, #8]
17996
- add r3, r2, #364
17997
- cmp r6, r3
17998
- beq .L2878
17999
- ldr r3, .L2900+4
18000
- ldrh r1, [r3, #2340]
18295
+ cmp r6, r2
18296
+ beq .L2777
18297
+ ldr r3, .L2799+8
18298
+ ldrh r1, [r3, #2344]
1800118299 cmp r1, #1
18002
- beq .L2878
18003
- ldrb r0, [r3, #144] @ zero_extendqisi2
18004
- cbz r0, .L2879
18005
-.L2878:
18300
+ beq .L2777
18301
+ ldrb r0, [r3, #152] @ zero_extendqisi2
18302
+ cbz r0, .L2778
18303
+.L2777:
1800618304 movs r3, #1
1800718305 strb r3, [r6, #8]
18008
- b .L2880
18009
-.L2879:
18010
- add r0, r2, #316
18011
- cmp r6, r0
18012
- bne .L2880
18013
- cmp r1, #3
18014
- beq .L2882
18015
- ldr r2, [r2, #604]
18016
- cmp r2, #1
18017
- bne .L2883
18018
-.L2882:
18019
- movs r2, #1
18020
- strb r2, [r4, #324]
18021
-.L2883:
18022
- ldr r3, [r3, #2244]
18023
- cbz r3, .L2880
18024
- ldr r3, [r4, #532]
18025
- cmp r3, #39
18026
- ittt ls
18027
- movls r2, #1
18028
- ldrls r3, .L2900
18029
- strbls r2, [r3, #324]
18030
-.L2880:
18306
+.L2779:
1803118307 ldrh r0, [r4, #3460]
1803218308 movw r3, #65535
1803318309 cmp r0, r3
18034
- beq .L2885
18310
+ beq .L2784
1803518311 cmp r5, r0
18036
- bne .L2886
18037
- ldr r3, .L2900
18038
- ldr r3, [r3, #296]
18312
+ bne .L2785
18313
+ ldr r3, [r4, #300]
1803918314 ldrh r3, [r3, r0, lsl #1]
18040
- cbz r3, .L2887
18041
-.L2886:
18315
+ cbz r3, .L2786
18316
+.L2785:
1804218317 bl update_vpc_list
18043
-.L2887:
18318
+.L2786:
1804418319 movw r3, #65535
1804518320 strh r3, [r4, #3460] @ movhi
18046
-.L2885:
18321
+.L2784:
1804718322 mov r0, r6
1804818323 bl allocate_data_superblock
1804918324 bl l2p_flush
1805018325 movs r0, #0
1805118326 bl FtlEctTblFlush
1805218327 bl FtlVpcTblFlush
18053
-.L2875:
18328
+.L2774:
1805418329 movs r0, #0
1805518330 pop {r4, r5, r6, pc}
18056
-.L2901:
18331
+.L2776:
18332
+ bl INSERT_FREE_LIST
18333
+ b .L2775
18334
+.L2778:
18335
+ subs r2, r2, #48
18336
+ cmp r6, r2
18337
+ bne .L2779
18338
+ cmp r1, #3
18339
+ beq .L2781
18340
+ ldr r2, [r4, #1116]
18341
+ cmp r2, #1
18342
+ bne .L2782
18343
+.L2781:
18344
+ movs r2, #1
18345
+ strb r2, [r4, #328]
18346
+.L2782:
18347
+ ldr r3, [r3, #2248]
18348
+ cmp r3, #0
18349
+ beq .L2779
18350
+ ldr r3, [r4, #532]
18351
+ cmp r3, #39
18352
+ itt ls
18353
+ movls r3, #1
18354
+ strbls r3, [r4, #328]
18355
+ b .L2779
18356
+.L2800:
1805718357 .align 2
18058
-.L2900:
18358
+.L2799:
1805918359 .word .LANCHOR2
18360
+ .word .LANCHOR2+368
1806018361 .word .LANCHOR0
1806118362 .fnend
1806218363 .size allocate_new_data_superblock, .-allocate_new_data_superblock
1806318364 .align 1
1806418365 .global FtlCheckVpc
18366
+ .syntax unified
1806518367 .thumb
1806618368 .thumb_func
18369
+ .fpu softvfp
1806718370 .type FtlCheckVpc, %function
1806818371 FtlCheckVpc:
1806918372 .fnstart
1807018373 @ args = 0, pretend = 0, frame = 8
1807118374 @ frame_needed = 0, uses_anonymous_args = 0
18072
- push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
18073
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
18074
- .pad #8
18375
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
18376
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
18377
+ .pad #12
1807518378 movs r4, #0
18076
- ldr r1, .L2924
18077
- ldr r0, .L2924+4
18379
+ ldr r5, .L2821
18380
+ ldr r6, .L2821+4
18381
+ ldr r1, .L2821+8
18382
+ mov r8, r5
18383
+ ldr r0, .L2821+12
1807818384 bl printk
18079
- ldr r0, .L2924+8
18080
- movs r1, #0
1808118385 mov r2, #8192
18386
+ movs r1, #0
18387
+ ldr r0, .L2821+4
1808218388 bl memset
18083
- ldr r5, .L2924+12
18084
- ldr r6, .L2924+16
18085
-.L2903:
18086
- ldr r3, [r5, #2448]
18087
- ldr r9, .L2924+12
18389
+.L2802:
18390
+ ldr r3, [r5, #2452]
1808818391 cmp r4, r3
18089
- bcs .L2922
18090
- mov r0, r4
18091
- add r1, sp, #4
18392
+ bcc .L2804
18393
+ ldr r5, .L2821+16
18394
+ movs r4, #0
18395
+ ldr r9, .L2821+4
18396
+ mov r7, r4
18397
+ ldr r10, .L2821+28
18398
+.L2805:
18399
+ ldrh r2, [r8, #2332]
18400
+ uxth r3, r4
18401
+ cmp r2, r3
18402
+ bhi .L2807
18403
+ ldr r4, [r5, #312]
18404
+ cbz r4, .L2808
18405
+ ldr r3, [r5, #292]
18406
+ movs r6, #0
18407
+ ldrh r8, [r5, #316]
18408
+ mov fp, #6
18409
+ ldr r9, .L2821+4
18410
+ subs r4, r4, r3
18411
+ ldr r3, .L2821+20
18412
+ asrs r4, r4, #1
18413
+ ldr r10, .L2821+32
18414
+ muls r4, r3, r4
18415
+ uxth r4, r4
18416
+.L2809:
18417
+ uxth r3, r6
18418
+ cmp r8, r3
18419
+ bls .L2808
18420
+ ldr r3, [r5, #300]
18421
+ ldrh r2, [r3, r4, lsl #1]
18422
+ cbz r2, .L2810
18423
+ movs r7, #1
18424
+ ldrh r3, [r9, r4, lsl #1]
18425
+ mov r1, r4
18426
+ mov r0, r10
18427
+ bl printk
18428
+.L2810:
18429
+ mul r4, fp, r4
18430
+ ldr r3, [r5, #292]
18431
+ adds r6, r6, #1
18432
+ ldrh r4, [r3, r4]
18433
+ movw r3, #65535
18434
+ cmp r4, r3
18435
+ bne .L2809
18436
+.L2808:
18437
+ mov r1, r7
18438
+ ldr r0, .L2821+24
18439
+ bl printk
18440
+ add sp, sp, #12
18441
+ @ sp needed
18442
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
18443
+.L2804:
1809218444 movs r2, #0
18445
+ add r1, sp, #4
18446
+ mov r0, r4
1809318447 bl log2phys
1809418448 ldr r0, [sp, #4]
1809518449 adds r3, r0, #1
18096
- beq .L2904
18450
+ beq .L2803
1809718451 ubfx r0, r0, #10, #16
1809818452 bl P2V_block_in_plane
18099
- add r0, r6, r0, lsl #1
18100
- ldrh r3, [r0, #1336]
18453
+ ldrh r3, [r6, r0, lsl #1]
1810118454 adds r3, r3, #1
18102
- strh r3, [r0, #1336] @ movhi
18103
-.L2904:
18455
+ strh r3, [r6, r0, lsl #1] @ movhi
18456
+.L2803:
1810418457 adds r4, r4, #1
18105
- b .L2903
18106
-.L2922:
18107
- movs r7, #0
18108
- ldr r8, .L2924+20
18109
- ldr r10, .L2924+16
18110
- mov r6, r7
18111
-.L2906:
18112
- ldrh r3, [r9, #2328]
18113
- uxth r4, r7
18114
- ldr r5, .L2924+20
18115
- cmp r3, r4
18116
- bls .L2923
18117
- ldr r3, [r8, #296]
18118
- add r5, r10, r4, lsl #1
18119
- ldrh r2, [r3, r4, lsl #1]
18120
- ldrh r3, [r5, #1336]
18458
+ b .L2802
18459
+.L2807:
18460
+ ldr r3, [r5, #300]
18461
+ uxth r6, r4
18462
+ ldrh r2, [r3, r6, lsl #1]
18463
+ ldrh r3, [r9, r6, lsl #1]
1812118464 cmp r2, r3
18122
- beq .L2907
18123
- ldr r0, .L2924+24
18124
- mov r1, r4
18465
+ beq .L2806
18466
+ mov r1, r6
18467
+ mov r0, r10
1812518468 bl printk
18126
- ldr r3, [r8, #296]
18469
+ ldr r3, [r5, #300]
1812718470 movw r2, #65535
18128
- ldrh r3, [r3, r4, lsl #1]
18471
+ ldrh r3, [r3, r6, lsl #1]
1812918472 cmp r3, r2
18130
- beq .L2907
18131
- ldrh r2, [r5, #1336]
18473
+ beq .L2806
18474
+ ldrh r2, [r9, r6, lsl #1]
1813218475 cmp r2, r3
1813318476 it hi
18134
- movhi r6, #1
18135
-.L2907:
18136
- adds r7, r7, #1
18137
- b .L2906
18138
-.L2923:
18139
- ldr r3, [r5, #308]
18140
- cbz r3, .L2909
18141
- ldr r2, [r5, #288]
18142
- movs r7, #0
18143
- ldrh r8, [r5, #312]
18144
- subs r3, r3, r2
18145
- ldr r2, .L2924+28
18146
- ldr r9, .L2924+16
18147
- asrs r3, r3, #1
18148
- muls r3, r2, r3
18149
- uxth r4, r3
18150
-.L2910:
18151
- uxth r3, r7
18152
- cmp r3, r8
18153
- bcs .L2909
18154
- ldr r3, [r5, #296]
18155
- ldrh r2, [r3, r4, lsl #1]
18156
- cbz r2, .L2911
18157
- add r3, r9, r4, lsl #1
18158
- ldr r0, .L2924+32
18159
- mov r1, r4
18160
- movs r6, #1
18161
- ldrh r3, [r3, #1336]
18162
- bl printk
18163
-.L2911:
18164
- movs r3, #6
18165
- ldr r2, [r5, #288]
18166
- adds r7, r7, #1
18167
- muls r4, r3, r4
18168
- movw r3, #65535
18169
- ldrh r4, [r2, r4]
18170
- cmp r4, r3
18171
- bne .L2910
18172
-.L2909:
18173
- mov r1, r6
18174
- ldr r0, .L2924+36
18175
- bl printk
18176
- add sp, sp, #8
18177
- @ sp needed
18178
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
18179
-.L2925:
18477
+ movhi r7, #1
18478
+.L2806:
18479
+ adds r4, r4, #1
18480
+ b .L2805
18481
+.L2822:
1818018482 .align 2
18181
-.L2924:
18182
- .word .LANCHOR3+204
18183
- .word .LC110
18184
- .word .LANCHOR4+1336
18483
+.L2821:
1818518484 .word .LANCHOR0
18186
- .word .LANCHOR4
18485
+ .word check_valid_page_count_table
18486
+ .word .LANCHOR3+191
18487
+ .word .LC110
1818718488 .word .LANCHOR2
18188
- .word .LC143
1818918489 .word -1431655765
18190
- .word .LC144
1819118490 .word .LC145
18491
+ .word .LC143
18492
+ .word .LC144
1819218493 .fnend
1819318494 .size FtlCheckVpc, .-FtlCheckVpc
1819418495 .align 1
1819518496 .global Ftlscanalldata
18497
+ .syntax unified
1819618498 .thumb
1819718499 .thumb_func
18500
+ .fpu softvfp
1819818501 .type Ftlscanalldata, %function
1819918502 Ftlscanalldata:
1820018503 .fnstart
1820118504 @ args = 0, pretend = 0, frame = 8
1820218505 @ frame_needed = 0, uses_anonymous_args = 0
18203
- push {r4, r5, r6, r7, lr}
18204
- .save {r4, r5, r6, r7, lr}
18506
+ push {r4, r5, r6, r7, r8, lr}
18507
+ .save {r4, r5, r6, r7, r8, lr}
18508
+ movs r5, #0
18509
+ ldr r4, .L2837
18510
+ .pad #32
18511
+ sub sp, sp, #32
1820518512 movs r1, #0
18206
- .pad #36
18207
- sub sp, sp, #36
18208
- ldr r0, .L2941
18513
+ ldr r7, .L2837+4
18514
+ add r8, r4, #1256
18515
+ ldr r0, .L2837+8
1820918516 bl printk
18210
- ldr r7, .L2941+4
18211
- ldr r5, .L2941+8
18212
- movs r4, #0
18213
-.L2927:
18214
- ldr r3, [r7, #2448]
18215
- cmp r4, r3
18216
- bcs .L2940
18217
- mov r0, r4
18218
- add r1, sp, #28
18517
+.L2824:
18518
+ ldr r3, [r7, #2452]
18519
+ cmp r5, r3
18520
+ bcc .L2830
18521
+ add sp, sp, #32
18522
+ @ sp needed
18523
+ pop {r4, r5, r6, r7, r8, pc}
18524
+.L2830:
1821918525 movs r2, #0
18526
+ add r1, sp, #28
18527
+ mov r0, r5
1822018528 bl log2phys
18221
- ubfx r3, r4, #0, #11
18222
- cbnz r3, .L2928
18223
- ldr r0, .L2941+12
18224
- mov r1, r4
18529
+ ubfx r3, r5, #0, #11
18530
+ cbnz r3, .L2825
1822518531 ldr r2, [sp, #28]
18532
+ mov r1, r5
18533
+ ldr r0, .L2837+12
1822618534 bl printk
18227
-.L2928:
18535
+.L2825:
1822818536 ldr r3, [sp, #28]
1822918537 adds r2, r3, #1
18230
- beq .L2930
18231
- str r3, [r5, #1252]
18538
+ beq .L2827
18539
+ str r3, [r4, #1260]
1823218540 movs r1, #1
18233
- ldr r3, .L2941+16
18234
- ldr r0, .L2941+20
18235
- str r4, [r5, #1264]
18541
+ ldr r3, .L2837+16
18542
+ mov r0, r8
18543
+ str r5, [r4, #1272]
1823618544 ldr r2, [r3, #3316]
1823718545 ldr r6, [r3, #3340]
18238
- str r2, [r5, #1256]
18546
+ str r2, [r4, #1264]
1823918547 movs r2, #0
18240
- str r6, [r5, #1260]
18241
- str r2, [r5, #1248]
18548
+ str r6, [r4, #1268]
18549
+ str r2, [r4, #1256]
1824218550 bl FlashReadPages
18243
- ldr r3, [r5, #1248]
18244
- ldr r2, .L2941+8
18551
+ ldr r3, [r4, #1256]
1824518552 cmp r3, #256
18246
- beq .L2931
18553
+ beq .L2828
1824718554 adds r3, r3, #1
18248
- beq .L2931
18555
+ beq .L2828
1824918556 ldr r3, [r6, #8]
18250
- cmp r3, r4
18251
- beq .L2930
18252
-.L2931:
18253
- ldr r3, [r2, #1260]
18254
- ldr r1, [r2, #1256]
18255
- ldr r0, [r3, #4]
18256
- str r0, [sp]
18257
- ldr r0, [r3, #8]
18258
- str r0, [sp, #4]
18259
- ldr r0, [r3, #12]
18260
- str r0, [sp, #8]
18261
- ldr r0, [r1]
18262
- str r0, [sp, #12]
18263
- ldr r1, [r1, #4]
18264
- ldr r0, .L2941+24
18557
+ cmp r5, r3
18558
+ beq .L2827
18559
+.L2828:
18560
+ ldr r2, [r4, #1264]
18561
+ ldr r3, [r4, #1268]
18562
+ ldr r0, .L2837+20
18563
+ ldr r1, [r2, #4]
1826518564 str r1, [sp, #16]
18266
- mov r1, r4
18267
- ldr r2, [r2, #1252]
18565
+ mov r1, r5
18566
+ ldr r2, [r2]
18567
+ str r2, [sp, #12]
18568
+ ldr r2, [r3, #12]
18569
+ str r2, [sp, #8]
18570
+ ldr r2, [r3, #8]
18571
+ str r2, [sp, #4]
18572
+ ldr r2, [r3, #4]
18573
+ str r2, [sp]
18574
+ ldr r2, [r4, #1260]
1826818575 ldr r3, [r3]
1826918576 bl printk
18270
-.L2930:
18271
- adds r4, r4, #1
18272
- b .L2927
18273
-.L2940:
18274
- add sp, sp, #36
18275
- @ sp needed
18276
- pop {r4, r5, r6, r7, pc}
18277
-.L2942:
18577
+.L2827:
18578
+ adds r5, r5, #1
18579
+ b .L2824
18580
+.L2838:
1827818581 .align 2
18279
-.L2941:
18280
- .word .LC146
18281
- .word .LANCHOR0
18582
+.L2837:
1828218583 .word .LANCHOR4
18584
+ .word .LANCHOR0
18585
+ .word .LC146
1828318586 .word .LC147
1828418587 .word .LANCHOR2
18285
- .word .LANCHOR4+1248
1828618588 .word .LC148
1828718589 .fnend
1828818590 .size Ftlscanalldata, .-Ftlscanalldata
1828918591 .align 1
1829018592 .global FtlReUsePrevPpa
18593
+ .syntax unified
1829118594 .thumb
1829218595 .thumb_func
18596
+ .fpu softvfp
1829318597 .type FtlReUsePrevPpa, %function
1829418598 FtlReUsePrevPpa:
1829518599 .fnstart
....@@ -18299,911 +18603,907 @@
1829918603 .save {r4, r5, r6, r7, lr}
1830018604 .pad #12
1830118605 mov r6, r0
18606
+ ldr r5, .L2848
1830218607 ubfx r0, r1, #10, #16
1830318608 str r1, [sp, #4]
1830418609 bl P2V_block_in_plane
18305
- ldr r5, .L2952
18306
- ldr r4, [r5, #296]
18307
- ldrh r3, [r4, r0, lsl #1]
18308
- cbnz r3, .L2944
18309
- ldr r4, [r5, #308]
18310
- cbz r4, .L2945
18311
- ldr r1, [r5, #288]
18312
- mov lr, #6
18313
- ldr r2, .L2952+4
18314
- movw ip, #65535
18610
+ ldr r2, [r5, #300]
18611
+ ldrh r3, [r2, r0, lsl #1]
18612
+ cbnz r3, .L2840
18613
+ ldr r4, [r5, #312]
18614
+ cbz r4, .L2841
18615
+ ldr r1, [r5, #292]
18616
+ mov ip, #6
18617
+ ldr r2, .L2848+4
18618
+ movw lr, #65535
18619
+ ldrh r7, [r5, #316]
1831518620 subs r4, r4, r1
18316
- ldrh r7, [r5, #312]
1831718621 asrs r4, r4, #1
1831818622 muls r4, r2, r4
1831918623 uxth r4, r4
18320
-.L2946:
18624
+.L2842:
1832118625 uxth r2, r3
18322
- cmp r2, r7
18323
- bcs .L2945
18626
+ cmp r7, r2
18627
+ bls .L2841
1832418628 cmp r4, r0
18325
- bne .L2947
18629
+ bne .L2843
1832618630 mov r1, r4
18327
- ldr r0, .L2952+8
18631
+ ldr r0, .L2848+8
1832818632 bl List_remove_node
18329
- ldrh r3, [r5, #312]
18633
+ ldrh r3, [r5, #316]
1833018634 mov r0, r4
1833118635 subs r3, r3, #1
18332
- strh r3, [r5, #312] @ movhi
18636
+ strh r3, [r5, #316] @ movhi
1833318637 bl INSERT_DATA_LIST
18334
- ldr r2, [r5, #296]
18638
+ ldr r2, [r5, #300]
1833518639 ldrh r3, [r2, r4, lsl #1]
1833618640 adds r3, r3, #1
1833718641 strh r3, [r2, r4, lsl #1] @ movhi
18338
- b .L2945
18339
-.L2947:
18340
- mul r4, lr, r4
18341
- adds r3, r3, #1
18342
- ldrh r4, [r1, r4]
18343
- cmp r4, ip
18344
- bne .L2946
18345
- b .L2945
18346
-.L2944:
18347
- adds r3, r3, #1
18348
- strh r3, [r4, r0, lsl #1] @ movhi
18349
-.L2945:
18350
- mov r0, r6
18351
- add r1, sp, #4
18642
+.L2841:
1835218643 movs r2, #1
18644
+ add r1, sp, #4
18645
+ mov r0, r6
1835318646 bl log2phys
1835418647 add sp, sp, #12
1835518648 @ sp needed
1835618649 pop {r4, r5, r6, r7, pc}
18357
-.L2953:
18650
+.L2843:
18651
+ mul r4, ip, r4
18652
+ adds r3, r3, #1
18653
+ ldrh r4, [r1, r4]
18654
+ cmp r4, lr
18655
+ bne .L2842
18656
+ b .L2841
18657
+.L2840:
18658
+ adds r3, r3, #1
18659
+ strh r3, [r2, r0, lsl #1] @ movhi
18660
+ b .L2841
18661
+.L2849:
1835818662 .align 2
18359
-.L2952:
18663
+.L2848:
1836018664 .word .LANCHOR2
1836118665 .word -1431655765
18362
- .word .LANCHOR2+308
18666
+ .word .LANCHOR2+312
1836318667 .fnend
1836418668 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa
1836518669 .align 1
1836618670 .global FtlRecoverySuperblock
18671
+ .syntax unified
1836718672 .thumb
1836818673 .thumb_func
18674
+ .fpu softvfp
1836918675 .type FtlRecoverySuperblock, %function
1837018676 FtlRecoverySuperblock:
1837118677 .fnstart
18372
- @ args = 0, pretend = 0, frame = 64
18678
+ @ args = 0, pretend = 0, frame = 56
1837318679 @ frame_needed = 0, uses_anonymous_args = 0
1837418680 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1837518681 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
18376
- movw r7, #65535
18682
+ movw r2, #65535
1837718683 ldrh r3, [r0]
18378
- .pad #68
18379
- sub sp, sp, #68
18684
+ .pad #60
18685
+ sub sp, sp, #60
1838018686 mov r4, r0
18381
- cmp r3, r7
18382
- beq .L3101
18383
- ldrh r3, [r0, #2]
18384
- movs r5, #0
18385
- ldr r6, .L3117
18386
- str r3, [sp, #12]
18387
- ldrb r3, [r0, #6] @ zero_extendqisi2
18388
- ldr r2, [sp, #12]
18389
- str r3, [sp, #28]
18390
- ldrh r3, [r6, #2388]
1839118687 cmp r3, r2
18392
- bne .L2957
18393
- strh r5, [r0, #4] @ movhi
18394
- strb r5, [r0, #6]
18395
- b .L3101
18396
-.L2957:
18688
+ beq .L2999
18689
+ ldrh r3, [r0, #2]
18690
+ ldr r6, .L3009
18691
+ str r3, [sp, #8]
18692
+ ldr r1, [sp, #8]
18693
+ ldrh r3, [r6, #2390]
18694
+ cmp r3, r1
18695
+ mov r3, #0
18696
+ bne .L2853
18697
+ strh r3, [r0, #4] @ movhi
18698
+.L3007:
18699
+ strb r3, [r4, #6]
18700
+.L2999:
18701
+ movs r0, #0
18702
+ add sp, sp, #60
18703
+ @ sp needed
18704
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
18705
+.L2853:
1839718706 ldrh r0, [r0, #16]
18398
-.L2958:
18399
- cmp r0, r7
18400
- add r5, r5, #1
18401
- bne .L3112
18402
- uxth r3, r5
18403
- adds r3, r3, #8
18404
- ldrh r0, [r4, r3, lsl #1]
18405
- b .L2958
18406
-.L3112:
18707
+.L2854:
18708
+ cmp r0, r2
18709
+ add r3, r3, #1
18710
+ beq .L2855
1840718711 ldrb r1, [r4, #8] @ zero_extendqisi2
18712
+ ldrb r3, [r4, #6] @ zero_extendqisi2
1840818713 cmp r1, #1
18409
- bne .L2960
18714
+ str r3, [sp, #20]
18715
+ bne .L2856
1841018716 bl FtlGetLastWrittenPage
18411
- adds r2, r0, #1
18717
+ adds r7, r0, #1
1841218718 mov r5, r0
18413
- beq .L2961
18414
- ldrb r3, [r6, #144] @ zero_extendqisi2
18415
- cbnz r3, .L3103
18416
- ldr r3, .L3117
18417
- add r3, r3, r0, lsl #1
18418
- ldrh r7, [r3, #148]
18419
- b .L3035
18420
-.L2960:
18719
+ beq .L2857
18720
+ ldrb r3, [r6, #152] @ zero_extendqisi2
18721
+ cmp r3, #0
18722
+ bne .L2931
18723
+ add r3, r6, r0, lsl #1
18724
+ ldrh r7, [r3, #156]
18725
+.L2858:
18726
+ ldr r3, .L3009+4
18727
+ movs r2, #0
18728
+ ldrh ip, [r6, #2324]
18729
+ movw r9, #65535
18730
+ mov r10, #36
18731
+ mov fp, r2
18732
+ ldr r0, [r3, #3304]
18733
+ ldr r8, [r3, #1148]
18734
+ ldrh r3, [r6, #2402]
18735
+ mov r6, r2
18736
+ str r3, [sp, #4]
18737
+ add r3, r4, #16
18738
+ mov lr, r3
18739
+ str r3, [sp, #16]
18740
+.L2859:
18741
+ uxth r3, r2
18742
+ cmp ip, r3
18743
+ bhi .L2862
18744
+ ldrb r3, [r4, #8] @ zero_extendqisi2
18745
+ cmp r3, #1
18746
+ bne .L2932
18747
+ ldr r3, .L3009
18748
+ ldrb r3, [r3, #152] @ zero_extendqisi2
18749
+ adds r3, r3, #0
18750
+ it ne
18751
+ movne r3, #1
18752
+.L3000:
18753
+ str r3, [sp, #24]
18754
+ mov r1, r6
18755
+ ldr r2, [sp, #24]
18756
+ mov r9, #0
18757
+ bl FlashReadPages
18758
+ ldr r3, .L3009+4
18759
+ ldr r2, [r3, #512]
18760
+ mov r8, r3
18761
+ mov fp, r3
18762
+ add r10, r2, #-1
18763
+ movw r2, #65535
18764
+ str r2, [sp, #12]
18765
+.L2864:
18766
+ uxth r3, r9
18767
+ cmp r6, r3
18768
+ bhi .L2869
18769
+ bne .L2867
18770
+ ldr r3, [r8, #3304]
18771
+ adds r5, r5, #1
18772
+ uxth fp, r5
18773
+ ldr r0, [r3, #4]
18774
+.L3001:
18775
+ ubfx r0, r0, #10, #16
18776
+ bl P2V_plane
18777
+ ldrb r2, [r4, #8] @ zero_extendqisi2
18778
+ str r0, [sp, #4]
18779
+ ldr r3, .L3009
18780
+ cmp r2, #1
18781
+ bne .L2871
18782
+ ldrb r1, [r3, #152] @ zero_extendqisi2
18783
+ cbnz r1, .L2871
18784
+ add r5, r3, fp, lsl #1
18785
+ ldrh fp, [r5, #156]
18786
+.L2871:
18787
+ ldrh r3, [r3, #2390]
18788
+ cmp r3, fp
18789
+ itttt eq
18790
+ moveq r3, #0
18791
+ strheq fp, [r4, #2] @ movhi
18792
+ strbeq r3, [r4, #6]
18793
+ strheq r3, [r4, #4] @ movhi
18794
+ ldrh r3, [sp, #20]
18795
+ str r3, [sp, #28]
18796
+ ldr r3, [sp, #8]
18797
+ cmp fp, r3
18798
+ bne .L2873
18799
+ ldr r3, [sp, #4]
18800
+ ldr r1, [sp, #28]
18801
+ cmp r3, r1
18802
+ bne .L2873
18803
+ mov r2, r3
18804
+.L3008:
18805
+ mov r1, fp
18806
+ mov r0, r4
18807
+ bl ftl_sb_update_avl_pages
18808
+ b .L2999
18809
+.L2855:
18810
+ uxth r1, r3
18811
+ adds r1, r1, #8
18812
+ ldrh r0, [r4, r1, lsl #1]
18813
+ b .L2854
18814
+.L2856:
1842118815 movs r1, #0
1842218816 bl FtlGetLastWrittenPage
18423
- adds r3, r0, #1
1842418817 mov r5, r0
18425
- beq .L2961
18426
-.L3103:
18818
+ adds r0, r0, #1
18819
+ beq .L2857
18820
+.L2931:
1842718821 mov r7, r5
18428
-.L3035:
18429
- ldr r3, .L3117+4
18430
- movw r9, #65535
18431
- ldrh ip, [r6, #2320]
18432
- mov r10, #36
18433
- ldrh r0, [r6, #2400]
18434
- ldr r2, [r3, #3304]
18435
- ldr r8, [r3, #1148]
18436
- add r3, r4, #14
18437
- str r3, [sp, #20]
18438
- str r2, [sp, #4]
18439
- movs r2, #0
18440
- mov lr, r3
18441
- mov r6, r2
18442
- mov fp, r2
18443
- b .L2963
18444
-.L2961:
18822
+ b .L2858
18823
+.L2857:
1844518824 movs r3, #0
1844618825 strh r3, [r4, #2] @ movhi
18447
- strb r3, [r4, #6]
18448
- b .L3101
18449
-.L2966:
18450
- ldrh r3, [lr, #2]!
18826
+ b .L3007
18827
+.L2862:
18828
+ ldrh r3, [lr], #2
1845118829 cmp r3, r9
18452
- beq .L2964
18453
- ldr r1, [sp, #4]
18830
+ beq .L2860
18831
+ mla r1, r10, r6, r0
1845418832 orr r3, r7, r3, lsl #10
18455
- mla r1, r10, r6, r1
1845618833 str r3, [r1, #4]
18457
- mov r3, r0
18834
+ ldr r3, [sp, #4]
1845818835 muls r3, r6, r3
1845918836 add r6, r6, #1
1846018837 it mi
1846118838 addmi r3, r3, #3
18462
- str fp, [r1, #8]
1846318839 uxth r6, r6
1846418840 bic r3, r3, #3
1846518841 add r3, r3, r8
18842
+ str fp, [r1, #8]
1846618843 str r3, [r1, #12]
18467
-.L2964:
18844
+.L2860:
1846818845 adds r2, r2, #1
18469
-.L2963:
18470
- uxth r3, r2
18471
- cmp r3, ip
18472
- bcc .L2966
18473
- ldrb r3, [r4, #8] @ zero_extendqisi2
18474
- cmp r3, #1
18475
- bne .L3037
18476
- ldr r3, .L3117
18477
- ldrb r1, [r3, #144] @ zero_extendqisi2
18478
- adds r3, r1, #0
18479
- it ne
18480
- movne r3, #1
18481
- b .L3104
18482
-.L3037:
18846
+ b .L2859
18847
+.L2932:
1848318848 movs r3, #0
18484
-.L3104:
18485
- ldr r8, .L3117+4
18486
- mov r1, r6
18487
- str r3, [sp, #24]
18488
- mov fp, #0
18489
- ldr r2, [sp, #24]
18490
- ldr r0, [r8, #3304]
18491
- bl FlashReadPages
18492
- ldr r3, [r8, #512]
18493
- subs r3, r3, #1
18494
- str r8, [sp, #8]
18495
- str r3, [sp, #4]
18496
- movw r3, #65535
18497
- str r3, [sp, #16]
18498
-.L2968:
18499
- uxth r9, fp
18500
- cmp r9, r6
18501
- bcs .L2975
18502
- movs r1, #36
18503
- ldr r0, [r8, #3304]
18504
- mul r1, r1, fp
18505
- add lr, r0, r1
18506
- ldr r1, [r0, r1]
18507
- cbnz r1, .L2969
18508
- ldr r3, [lr, #12]
18509
- ldr r10, [r3, #4]
18510
- cmp r10, #-1
18511
- beq .L2970
18512
- mov r0, r10
18513
- ldr r1, [r8, #512]
18514
- str r3, [sp, #32]
18849
+ b .L3000
18850
+.L2869:
18851
+ movs r3, #36
18852
+ ldr r1, [fp, #3304]
18853
+ mul r3, r3, r9
18854
+ adds r2, r1, r3
18855
+ ldr r3, [r1, r3]
18856
+ cbnz r3, .L2865
18857
+ ldr r2, [r2, #12]
18858
+ ldr r3, [r2, #4]
18859
+ adds r1, r3, #1
18860
+ beq .L2866
18861
+ ldr r1, [fp, #512]
18862
+ mov r0, r3
1851518863 bl ftl_cmp_data_ver
18516
- ldr r3, [sp, #32]
18517
- cbz r0, .L2970
18518
- add r1, r10, #1
18519
- str r1, [r8, #512]
18520
-.L2970:
18521
- ldr r1, [r3]
18522
- adds r1, r1, #1
18523
- bne .L2971
18524
-.L2975:
18525
- cmp r9, r6
18526
- ldr r6, .L3117+4
18527
- bne .L3102
18528
- ldr r3, [r6, #3304]
18529
- adds r5, r5, #1
18530
- uxth r10, r5
18531
- ldr r0, [r3, #4]
18532
- b .L3105
18533
-.L2969:
18534
- ldr r1, [lr, #4]
18535
- ldr r0, .L3117+8
18536
- bl printk
18537
- uxth r3, r7
18538
- ldrh r1, [r4]
18539
- str r3, [sp, #16]
18540
- ldr r3, .L3117+12
18541
- strh r1, [r3, #840] @ movhi
18542
-.L2971:
18543
- add fp, fp, #1
18544
- b .L2968
18545
-.L3102:
18546
- ldr r3, [sp, #8]
18864
+ cbz r0, .L2866
18865
+ adds r3, r3, #1
18866
+ str r3, [fp, #512]
18867
+.L2866:
18868
+ ldr r3, [r2]
18869
+ adds r3, r3, #1
18870
+ bne .L2868
18871
+.L2867:
18872
+ ldr r3, [r8, #3304]
18873
+ uxth r9, r9
1854718874 movs r2, #36
18548
- uxth r10, r5
18549
- ldr r3, [r3, #3304]
18875
+ uxth fp, r5
1855018876 mla r9, r2, r9, r3
1855118877 ldr r0, [r9, #4]
18552
-.L3105:
18553
- ubfx r0, r0, #10, #16
18554
- bl P2V_plane
18555
- ldrb r5, [r4, #8] @ zero_extendqisi2
18556
- ldr r2, .L3117
18557
- cmp r5, #1
18558
- str r0, [sp, #8]
18559
- bne .L2977
18560
- ldrb r3, [r2, #144] @ zero_extendqisi2
18561
- cbnz r3, .L2977
18562
- add r3, r2, r10, lsl #1
18563
- ldrh r10, [r3, #148]
18564
-.L2977:
18565
- ldrh r3, [r2, #2388]
18566
- cmp r3, r10
18567
- itttt eq
18568
- strheq r10, [r4, #2] @ movhi
18569
- moveq r3, #0
18570
- strbeq r3, [r4, #6]
18571
- strheq r3, [r4, #4] @ movhi
18572
- ldrh r3, [sp, #28]
18573
- str r3, [sp, #32]
18574
- ldr r3, [sp, #12]
18575
- cmp r10, r3
18576
- bne .L2979
18577
- ldr r3, [sp, #8]
18578
- ldr r2, [sp, #32]
18579
- cmp r3, r2
18580
- bne .L2979
18581
- mov r0, r4
18582
- mov r1, r10
18583
- mov r2, r3
18584
- b .L3110
18585
-.L2979:
18586
- ldr r2, [sp, #16]
18878
+ b .L3001
18879
+.L2865:
18880
+ ldr r1, [r2, #4]
18881
+ ldr r0, .L3009+8
18882
+ bl printk
18883
+ uxth r3, r7
18884
+ ldr r2, .L3009+12
18885
+ str r3, [sp, #12]
18886
+ ldrh r3, [r4]
18887
+ strh r3, [r2, #1342] @ movhi
18888
+.L2868:
18889
+ add r9, r9, #1
18890
+ b .L2864
18891
+.L2873:
18892
+ ldr r1, [sp, #12]
1858718893 movw r3, #65535
18588
- cmp r2, r3
18589
- bne .L2980
18590
- cmp r5, #0
18591
- bne .L2981
18592
-.L2980:
18593
- ldr r3, [r6, #3472]
18594
- uxth fp, r7
18894
+ cmp r1, r3
18895
+ bne .L2874
18896
+ cmp r2, #0
18897
+ bne .L2875
18898
+.L2874:
18899
+ uxth r3, r7
18900
+ uxth r7, r7
18901
+ str r3, [sp, #20]
1859518902 mov r9, #-1
18596
- ldr r7, .L3117+4
18903
+ ldr r3, [r8, #3472]
1859718904 adds r3, r3, #1
18905
+ it eq
18906
+ streq r10, [r8, #3472]
18907
+ ldr r3, [r8, #3472]
1859818908 mov r8, r9
18599
- ittt eq
18600
- ldreq r3, .L3117+4
18601
- ldreq r2, [sp, #4]
18602
- streq r2, [r3, #3472]
18603
- ldr r3, [r6, #3472]
18604
- str r3, [sp, #16]
18605
- ldr r3, [sp, #12]
18909
+ str r3, [sp, #32]
18910
+ ldr r3, [sp, #8]
1860618911 adds r3, r3, #7
18607
- cmp fp, r3
18608
- itet gt
18609
- subgt r5, fp, #7
18610
- ldrle r5, [sp, #12]
18912
+ cmp r7, r3
18913
+ ldr r7, .L3009+4
18914
+ itett gt
18915
+ ldrgt r3, [sp, #20]
18916
+ ldrle r5, [sp, #8]
18917
+ subgt r5, r3, #7
1861118918 uxthgt r5, r5
18612
-.L2984:
18613
- cmp r5, fp
18614
- bhi .L2997
18615
- ldr r3, .L3117
18616
- ldr r1, [sp, #20]
18617
- ldrh ip, [r3, #2320]
18618
- ldr r3, [r7, #3304]
18619
- str r3, [sp, #28]
18919
+.L2878:
18920
+ ldr r3, [sp, #20]
18921
+ cmp r5, r3
18922
+ bhi .L2891
18923
+ ldr r3, .L3009
18924
+ movw lr, #65535
18925
+ ldr r0, [r7, #3304]
18926
+ mov ip, #36
18927
+ ldrh r3, [r3, #2324]
18928
+ str r3, [sp, #36]
18929
+ ldr r3, [sp, #16]
18930
+ str r3, [sp, #12]
1862018931 movs r3, #0
1862118932 mov r6, r3
18622
-.L2998:
18623
- uxth r2, r3
18624
- cmp r2, ip
18625
- bcs .L3113
18626
- ldrh r2, [r1, #2]!
18627
- movw r0, #65535
18628
- cmp r2, r0
18629
- beq .L2985
18630
- ldr r0, [sp, #28]
18631
- mov lr, #36
18632
- orr r2, r5, r2, lsl #10
18633
- mla r0, lr, r6, r0
18933
+ b .L2892
18934
+.L2880:
18935
+ ldr r1, [sp, #12]
18936
+ ldrh r2, [r1], #2
18937
+ cmp r2, lr
18938
+ str r1, [sp, #12]
18939
+ beq .L2879
18940
+ mla r1, ip, r6, r0
1863418941 adds r6, r6, #1
18942
+ orr r2, r5, r2, lsl #10
1863518943 uxth r6, r6
18636
- str r2, [r0, #4]
18637
-.L2985:
18944
+ str r2, [r1, #4]
18945
+.L2879:
1863818946 adds r3, r3, #1
18639
- b .L2998
18640
-.L3113:
18947
+.L2892:
18948
+ ldr r1, [sp, #36]
18949
+ uxth r2, r3
18950
+ cmp r2, r1
18951
+ bcc .L2880
1864118952 mov r1, r6
1864218953 ldr r2, [sp, #24]
18643
- ldr r0, [r7, #3304]
1864418954 bl FlashReadPages
18645
- ldr r3, .L3117
18955
+ ldr r3, .L3009
1864618956 movs r2, #36
18647
- add lr, r7, r5, lsl #1
18957
+ add ip, r7, r5, lsl #1
1864818958 movw r1, #65535
18649
- ldrb r0, [r3, #144] @ zero_extendqisi2
18959
+ ldrb r0, [r3, #152] @ zero_extendqisi2
1865018960 ldr r3, [r7, #3304]
1865118961 mla r6, r2, r6, r3
18652
-.L2987:
18653
- cmp r3, r6
18654
- beq .L3114
18962
+.L2881:
18963
+ cmp r6, r3
18964
+ bne .L2890
18965
+ adds r5, r5, #1
18966
+ uxth r5, r5
18967
+ b .L2878
18968
+.L2890:
1865518969 ldr r2, [r3]
18656
- cbnz r2, .L2988
18970
+ cbnz r2, .L2882
1865718971 ldr r2, [r3, #12]
18658
- ldrh ip, [r2]
18659
- cmp ip, r1
18660
- beq .L2989
18972
+ ldrh lr, [r2]
18973
+ cmp lr, r1
18974
+ beq .L2883
1866118975 ldr r2, [r2, #4]
1866218976 cmp r2, #-1
18663
- beq .L2989
18977
+ beq .L2883
1866418978 cmp r9, #-1
1866518979 ldr r8, [r7, #3472]
1866618980 str r2, [r7, #3472]
18667
- bne .L2989
18668
- ldrh r2, [lr, #1220]
18981
+ bne .L2883
18982
+ ldrh r2, [ip, #1220]
1866918983 cmp r2, r1
18670
- bne .L2990
18671
- cmp r0, #0
18672
- beq .L2989
18673
-.L2990:
18674
- ldr r2, [sp, #4]
18675
- cmp r8, r2
18676
- ite ne
18984
+ bne .L2884
18985
+ cbz r0, .L2883
18986
+.L2884:
18987
+ cmp r10, r8
18988
+ it ne
1867718989 movne r9, r8
18678
- moveq r9, #-1
18679
- b .L2989
18680
-.L3118:
18990
+.L2883:
18991
+ adds r3, r3, #36
18992
+ b .L2881
18993
+.L3010:
1868118994 .align 2
18682
-.L3117:
18995
+.L3009:
1868318996 .word .LANCHOR0
1868418997 .word .LANCHOR2
1868518998 .word .LC149
18686
- .word .LANCHOR5
18687
-.L2988:
18688
- ldr r3, .L3119
18999
+ .word .LANCHOR4
19000
+.L2882:
19001
+ ldr r3, .L3011
1868919002 ldrh r2, [r4]
18690
- strh r2, [r3, #840] @ movhi
19003
+ strh r2, [r3, #1342] @ movhi
1869119004 ldrb r3, [r4, #8] @ zero_extendqisi2
18692
- cbnz r3, .L2981
18693
- ldr r3, .L3119+4
19005
+ cbnz r3, .L2875
19006
+ ldr r3, .L3011+4
1869419007 movw r2, #65535
1869519008 add r5, r3, r5, lsl #1
1869619009 ldrh r1, [r5, #1220]
1869719010 cmp r1, r2
18698
- bne .L2992
19011
+ bne .L2886
1869919012 cmp r9, #-1
18700
- beq .L2993
19013
+ beq .L2887
1870119014 str r9, [r3, #3472]
18702
- b .L2981
18703
-.L2993:
18704
- ldr r2, [sp, #16]
18705
- ldr r1, [sp, #4]
18706
- cmp r2, r1
18707
- bne .L3106
18708
- ldr r2, [r3, #3472]
18709
- b .L3111
18710
-.L2992:
18711
- ldr r2, [sp, #4]
18712
- cmp r8, r2
18713
- beq .L2995
18714
- cmp r8, #-1
18715
- beq .L2981
18716
- str r8, [r3, #3472]
18717
- b .L2981
18718
-.L2995:
18719
- ldr r2, [r3, #3472]
18720
- ldr r1, [sp, #4]
18721
- cmp r2, r1
18722
- beq .L2981
18723
-.L3111:
18724
- subs r2, r2, #1
18725
- b .L3106
18726
-.L2989:
18727
- adds r3, r3, #36
18728
- b .L2987
18729
-.L3114:
18730
- adds r5, r5, #1
18731
- uxth r5, r5
18732
- b .L2984
18733
-.L2997:
18734
- ldr r3, .L3119+4
18735
- mov r2, #-1
18736
-.L3106:
18737
- str r2, [r3, #3472]
18738
-.L2981:
18739
- ldr r3, .L3119
19015
+.L2875:
19016
+ ldr r6, [sp, #8]
1874019017 movs r2, #1
18741
- ldr fp, [sp, #12]
18742
- ldr r5, .L3119+4
18743
- strh r2, [r3, #842] @ movhi
18744
-.L2999:
18745
- ldr r3, .L3119+8
18746
- movw r9, #65535
18747
- ldr r1, [r5, #3304]
18748
- movs r6, #0
18749
- ldr r7, [sp, #20]
18750
- ldrh r8, [r3, #2320]
18751
- ldrb r0, [r3, #144] @ zero_extendqisi2
18752
- str r6, [sp, #16]
18753
-.L3000:
18754
- uxth r3, r6
18755
- cmp r3, r8
18756
- bcs .L3115
18757
- ldrh r3, [r7, #2]!
18758
- cmp r3, r9
18759
- beq .L3001
18760
- ldr r2, [sp, #16]
18761
- mov lr, #36
18762
- orr r3, fp, r3, lsl #10
18763
- mla r2, lr, r2, r1
18764
- str r3, [r2, #4]
18765
- ldrb lr, [r4, #8] @ zero_extendqisi2
18766
- cmp lr, #1
18767
- bne .L3002
18768
- cbz r0, .L3002
18769
- orr r3, r3, #-2147483648
18770
- str r3, [r2, #4]
18771
-.L3002:
18772
- ldr r3, [sp, #16]
18773
- add ip, r3, #1
18774
- uxth r3, ip
18775
- str r3, [sp, #16]
18776
-.L3001:
18777
- adds r6, r6, #1
18778
- b .L3000
18779
-.L3115:
19018
+ ldr r5, .L3011+4
19019
+ ldr r3, .L3011
19020
+ strh r2, [r3, #1344] @ movhi
19021
+.L2893:
19022
+ ldr r3, .L3011+8
19023
+ movw r8, #65535
1878019024 ldr r0, [r5, #3304]
18781
- ldr r1, [sp, #16]
19025
+ mov r9, #36
19026
+ movs r2, #0
19027
+ ldrh ip, [r3, #2324]
19028
+ ldrb r3, [r3, #152] @ zero_extendqisi2
19029
+ str r2, [sp, #12]
19030
+ mov r1, r3
19031
+ ldr r3, [sp, #16]
19032
+ str r3, [sp, #20]
19033
+.L2894:
19034
+ uxth r3, r2
19035
+ cmp ip, r3
19036
+ bhi .L2897
1878219037 ldr r2, [sp, #24]
19038
+ ldr r1, [sp, #12]
1878319039 bl FlashReadPages
1878419040 movs r3, #0
18785
-.L3109:
18786
- str r3, [sp, #28]
18787
- ldr r2, [sp, #16]
18788
- ldrh r3, [sp, #28]
18789
- cmp r3, r2
18790
- bcs .L3116
18791
- ldr r3, [sp, #28]
18792
- movs r6, #36
18793
- ldr r9, [r5, #3304]
18794
- muls r6, r3, r6
18795
- add r8, r9, r6
18796
- ldr r7, [r8, #4]
18797
- ubfx r0, r7, #10, #16
18798
- str r7, [sp, #60]
18799
- bl P2V_plane
18800
- ldr r3, [sp, #12]
18801
- cmp fp, r3
18802
- bcc .L3005
18803
- bne .L3006
18804
- ldr r3, [sp, #32]
18805
- cmp r0, r3
18806
- bcc .L3005
1880719041 .L3006:
18808
- cmp fp, r10
18809
- bne .L3007
18810
- ldr r3, [sp, #8]
18811
- cmp r0, r3
18812
- beq .L3008
18813
-.L3007:
18814
- ldr r3, [r9, r6]
18815
- adds r3, r3, #1
18816
- beq .L3009
18817
- ldr r8, [r8, #12]
18818
- movw r3, #61589
18819
- ldrh r2, [r8]
19042
+ str r3, [sp, #20]
19043
+ ldr r2, [sp, #12]
19044
+ ldrh r3, [sp, #20]
1882019045 cmp r2, r3
18821
- beq .L3010
18822
- ldrh r0, [r4]
18823
- b .L3107
18824
-.L3010:
18825
- ldr r3, [r8, #4]
18826
- adds r7, r3, #1
18827
- str r3, [sp, #4]
18828
- beq .L3011
18829
- mov r0, r3
18830
- ldr r1, [r5, #512]
18831
- bl ftl_cmp_data_ver
18832
- cbz r0, .L3011
18833
- ldr r3, [sp, #4]
19046
+ bhi .L2925
19047
+ ldrb r3, [r4, #8] @ zero_extendqisi2
19048
+ adds r6, r6, #1
19049
+ uxth r6, r6
19050
+ ldr r2, .L3011+8
19051
+ cmp r3, #1
19052
+ bne .L2926
19053
+ ldrb r3, [r2, #152] @ zero_extendqisi2
19054
+ cbz r3, .L2926
19055
+ ldrh r3, [r2, #2392]
19056
+ cmp r3, r6
19057
+ bne .L2926
19058
+ cmp fp, r6
19059
+ beq .L2902
19060
+.L2926:
19061
+ ldrh r3, [r2, #2390]
19062
+ cmp r3, r6
19063
+ bne .L2893
19064
+ ldrh r2, [r2, #2324]
19065
+ movw r0, #65535
19066
+ movs r3, #0
19067
+ strh r6, [r4, #2] @ movhi
19068
+ strh r3, [r4, #4] @ movhi
19069
+.L2927:
19070
+ uxth r1, r3
19071
+ cmp r1, r2
19072
+ bcs .L2999
19073
+ ldr r1, [sp, #16]
19074
+ ldrh r5, [r1], #2
19075
+ cmp r5, r0
19076
+ str r1, [sp, #16]
19077
+ add r1, r3, #1
19078
+ bne .L3007
19079
+ mov r3, r1
19080
+ b .L2927
19081
+.L2887:
19082
+ ldr r2, [sp, #32]
19083
+ cmp r10, r2
19084
+ beq .L2888
19085
+.L3003:
19086
+ str r2, [r3, #3472]
19087
+ b .L2875
19088
+.L2888:
19089
+ ldr r2, [r3, #3472]
19090
+.L3002:
19091
+ subs r2, r2, #1
19092
+ b .L3003
19093
+.L2886:
19094
+ cmp r8, r10
19095
+ beq .L2889
19096
+ cmp r8, #-1
19097
+ beq .L2875
19098
+ str r8, [r3, #3472]
19099
+ b .L2875
19100
+.L2889:
19101
+ ldr r2, [r3, #3472]
19102
+ cmp r10, r2
19103
+ bne .L3002
19104
+ b .L2875
19105
+.L2891:
19106
+ mov r3, #-1
19107
+ str r3, [r7, #3472]
19108
+ b .L2875
19109
+.L2897:
19110
+ ldr r7, [sp, #20]
19111
+ ldrh r3, [r7], #2
19112
+ cmp r3, r8
19113
+ str r7, [sp, #20]
19114
+ beq .L2895
19115
+ ldr r7, [sp, #12]
19116
+ orr r3, r6, r3, lsl #10
19117
+ mla r7, r9, r7, r0
19118
+ str r3, [r7, #4]
19119
+ ldrb lr, [r4, #8] @ zero_extendqisi2
19120
+ cmp lr, #1
19121
+ bne .L2896
19122
+ cbz r1, .L2896
19123
+ orr r3, r3, #-2147483648
19124
+ str r3, [r7, #4]
19125
+.L2896:
19126
+ ldr r3, [sp, #12]
1883419127 adds r3, r3, #1
18835
- str r3, [r5, #512]
18836
-.L3011:
18837
- ldr r7, [r8, #8]
18838
- add r1, sp, #56
18839
- ldr r3, [r8, #12]
19128
+ uxth r3, r3
19129
+ str r3, [sp, #12]
19130
+.L2895:
19131
+ adds r2, r2, #1
19132
+ b .L2894
19133
+.L2925:
19134
+ ldr r3, [sp, #20]
19135
+ mov r8, #36
19136
+ mul r8, r8, r3
19137
+ ldr r3, [r5, #3304]
19138
+ str r3, [sp, #32]
19139
+ add r9, r3, r8
19140
+ ldr r7, [r9, #4]
19141
+ ubfx r0, r7, #10, #16
19142
+ str r7, [sp, #52]
19143
+ bl P2V_plane
19144
+ ldr r3, [sp, #8]
19145
+ cmp r6, r3
19146
+ bcc .L2899
19147
+ ldr r3, [sp, #32]
19148
+ bne .L2900
19149
+ ldr r2, [sp, #28]
19150
+ cmp r2, r0
19151
+ bhi .L2899
19152
+.L2900:
19153
+ cmp r6, fp
19154
+ bne .L2901
19155
+ ldr r2, [sp, #4]
19156
+ cmp r2, r0
19157
+ beq .L2902
19158
+.L2901:
19159
+ ldr r3, [r3, r8]
19160
+ adds r3, r3, #1
19161
+ beq .L2903
19162
+ ldr r3, [r9, #12]
19163
+ movw r2, #61589
19164
+ ldrh r1, [r3]
19165
+ cmp r1, r2
19166
+ beq .L2904
19167
+ ldrh r0, [r4]
19168
+.L3004:
19169
+ bl decrement_vpc_count
19170
+ b .L2899
19171
+.L2904:
19172
+ ldr r10, [r3, #4]
19173
+ cmp r10, #-1
19174
+ beq .L2905
19175
+ ldr r1, [r5, #512]
19176
+ mov r0, r10
19177
+ bl ftl_cmp_data_ver
19178
+ cbz r0, .L2905
19179
+ add r2, r10, #1
19180
+ str r2, [r5, #512]
19181
+.L2905:
19182
+ ldr r7, [r3, #8]
19183
+ add r1, sp, #48
19184
+ ldr r3, [r3, #12]
1884019185 movs r2, #0
1884119186 mov r0, r7
18842
- str r3, [sp, #52]
19187
+ str r3, [sp, #44]
1884319188 bl log2phys
1884419189 ldr r1, [r5, #3472]
1884519190 adds r0, r1, #1
18846
- beq .L3012
18847
- ldr r0, [sp, #4]
19191
+ beq .L2906
19192
+ mov r0, r10
1884819193 bl ftl_cmp_data_ver
1884919194 cmp r0, #0
18850
- beq .L3012
18851
- ldr r3, [sp, #52]
19195
+ beq .L2906
19196
+ ldr r3, [sp, #44]
1885219197 adds r2, r3, #1
18853
- beq .L3013
19198
+ beq .L2907
1885419199 ldr r0, [r5, #3304]
1885519200 movs r2, #0
1885619201 movs r1, #1
18857
- add r0, r0, r6
19202
+ add r0, r0, r8
1885819203 str r3, [r0, #4]
1885919204 ldr r9, [r0, #12]
1886019205 bl FlashReadPages
1886119206 ldr r2, [r5, #3304]
18862
- ldr r3, [r9, #4]
18863
- add ip, r2, r6
18864
- str r3, [sp, #36]
18865
- ldr r3, [r2, r6]
18866
- adds r3, r3, #1
18867
- bne .L3014
18868
- b .L3015
18869
-.L3013:
18870
- ldr r3, [sp, #60]
18871
- ldr r2, [sp, #56]
18872
- cmp r2, r3
18873
- bne .L3005
18874
- mov r0, r7
18875
- add r1, sp, #52
18876
- movs r2, #1
18877
- bl log2phys
18878
- b .L3005
18879
-.L3014:
18880
- ldr r8, [r9, #8]
18881
- cmp r8, r7
18882
- bne .L3015
18883
- ldr r0, [r5, #3472]
18884
- ldr r1, [sp, #36]
18885
- str r2, [sp, #44]
18886
- str ip, [sp, #40]
18887
- bl ftl_cmp_data_ver
18888
- ldr ip, [sp, #40]
18889
- ldr r2, [sp, #44]
18890
- cbz r0, .L3015
18891
- ldr r3, [sp, #56]
18892
- ldr r1, [sp, #60]
18893
- cmp r3, r1
18894
- beq .L3020
18895
- ldr r1, [sp, #52]
18896
- cmp r3, r1
18897
- beq .L3015
18898
- adds r7, r3, #1
18899
- beq .L3018
18900
- str r3, [ip, #4]
18901
- mov r0, ip
18902
- movs r1, #1
18903
- movs r2, #0
18904
- ldr r9, [ip, #12]
18905
- bl FlashReadPages
18906
- b .L3019
18907
-.L3018:
18908
- str r3, [r2, r6]
18909
-.L3019:
18910
- ldr r3, [r5, #3304]
18911
- ldr r3, [r3, r6]
18912
- adds r3, r3, #1
18913
- beq .L3020
18914
- ldr r6, [r9, #4]
18915
- ldr r0, [r5, #3472]
18916
- mov r1, r6
18917
- bl ftl_cmp_data_ver
18918
- cbz r0, .L3020
18919
- ldr r0, [sp, #36]
18920
- mov r1, r6
18921
- bl ftl_cmp_data_ver
18922
- cbz r0, .L3015
18923
-.L3020:
18924
- mov r0, r8
18925
- ldr r1, [sp, #52]
18926
- bl FtlReUsePrevPpa
18927
-.L3015:
19207
+ ldr r1, [r2, r8]
19208
+ add r3, r2, r8
19209
+ adds r1, r1, #1
19210
+ bne .L2908
19211
+.L2909:
1892819212 mov r3, #-1
18929
- str r3, [sp, #52]
18930
- b .L3022
18931
-.L3120:
18932
- .align 2
18933
-.L3119:
18934
- .word .LANCHOR5
18935
- .word .LANCHOR2
18936
- .word .LANCHOR0
18937
-.L3012:
18938
- ldr r3, [sp, #60]
18939
- ldr r2, [sp, #56]
18940
- cmp r2, r3
18941
- beq .L3022
18942
- ldr r3, [sp, #52]
18943
- adds r0, r3, #1
18944
- beq .L3024
18945
- ldr r2, .L3121
18946
- ubfx r3, r3, #10, #21
18947
- ldr r2, [r2, #2336]
18948
- cmp r3, r2
18949
- bcs .L3005
18950
-.L3024:
18951
- mov r0, r7
18952
- add r1, sp, #60
18953
- movs r2, #1
18954
- bl log2phys
18955
- ldr r8, [sp, #56]
18956
- cmp r8, #-1
18957
- beq .L3022
18958
- ldr r3, [sp, #52]
18959
- cmp r8, r3
18960
- beq .L3022
18961
- ubfx r0, r8, #10, #16
18962
- bl P2V_block_in_plane
18963
- ldrh r3, [r5, #316]
18964
- cmp r3, r0
18965
- beq .L3026
18966
- ldrh r3, [r5, #364]
18967
- cmp r3, r0
18968
- beq .L3026
18969
- ldrh r3, [r5, #412]
18970
- cmp r3, r0
18971
- bne .L3022
18972
-.L3026:
18973
- ldr r3, .L3121+4
18974
- movs r1, #1
18975
- movs r2, #0
18976
- ldr r0, [r3, #3304]
18977
- str r8, [r0, #4]
18978
- ldr r6, [r0, #12]
18979
- bl FlashReadPages
18980
- ldr r3, .L3121+4
18981
- ldr r1, [r6, #4]
18982
- ldr r3, [r3, #3304]
18983
- ldr r3, [r3]
18984
- adds r3, r3, #1
18985
- beq .L3022
18986
- ldr r0, [sp, #4]
18987
- bl ftl_cmp_data_ver
18988
- cbnz r0, .L3022
18989
- mov r0, r7
18990
- add r1, sp, #56
18991
- movs r2, #1
18992
- bl log2phys
18993
-.L3022:
18994
- ldr r0, [sp, #52]
19213
+ str r3, [sp, #44]
19214
+.L2916:
19215
+ ldr r0, [sp, #44]
1899519216 adds r1, r0, #1
18996
- beq .L3005
19217
+ beq .L2899
19218
+.L2930:
1899719219 ubfx r0, r0, #10, #16
1899819220 bl P2V_block_in_plane
18999
- ldr r3, [r5, #296]
19000
- ldrh r3, [r3, r0, lsl #1]
19221
+ ldr r3, [r5, #300]
1900119222 mov r1, r0
19002
- cbz r3, .L3027
19003
-.L3107:
19004
- bl decrement_vpc_count
19005
- b .L3005
19006
-.L3027:
19007
- ldr r0, .L3121+8
19223
+ ldrh r3, [r3, r0, lsl #1]
19224
+ cmp r3, #0
19225
+ bne .L3004
19226
+ ldr r0, .L3011+12
1900819227 bl printk
19009
- b .L3005
19010
-.L3009:
19228
+ b .L2899
19229
+.L2907:
19230
+ ldr r3, [sp, #52]
19231
+ ldr r2, [sp, #48]
19232
+ cmp r2, r3
19233
+ bne .L2899
19234
+ movs r2, #1
19235
+ add r1, sp, #44
19236
+ mov r0, r7
19237
+ bl log2phys
19238
+.L2899:
19239
+ ldr r3, [sp, #20]
19240
+ adds r3, r3, #1
19241
+ b .L3006
19242
+.L2908:
19243
+ ldr r1, [r9, #8]
19244
+ cmp r7, r1
19245
+ bne .L2909
19246
+ ldr r1, [r9, #4]
19247
+ ldr r0, [r5, #3472]
19248
+ str r1, [sp, #32]
19249
+ bl ftl_cmp_data_ver
19250
+ cmp r0, #0
19251
+ beq .L2909
19252
+ ldr r1, [sp, #48]
19253
+ ldr r0, [sp, #52]
19254
+ cmp r1, r0
19255
+ bne .L2911
19256
+.L2914:
19257
+ ldr r1, [sp, #44]
19258
+ mov r0, r7
19259
+ bl FtlReUsePrevPpa
19260
+ b .L2909
19261
+.L2911:
19262
+ ldr r0, [sp, #44]
19263
+ cmp r1, r0
19264
+ beq .L2909
19265
+ adds r0, r1, #1
19266
+ beq .L2912
19267
+ str r1, [r3, #4]
19268
+ movs r2, #0
19269
+ movs r1, #1
19270
+ mov r0, r3
19271
+ ldr r9, [r3, #12]
19272
+ bl FlashReadPages
19273
+.L2913:
19274
+ ldr r3, [r5, #3304]
19275
+ ldr r3, [r3, r8]
19276
+ adds r3, r3, #1
19277
+ beq .L2914
19278
+ ldr r3, [r9, #4]
19279
+ ldr r0, [r5, #3472]
19280
+ mov r1, r3
19281
+ bl ftl_cmp_data_ver
19282
+ cmp r0, #0
19283
+ beq .L2914
19284
+ mov r1, r3
19285
+ ldr r0, [sp, #32]
19286
+ bl ftl_cmp_data_ver
19287
+ cmp r0, #0
19288
+ beq .L2909
19289
+ b .L2914
19290
+.L2912:
19291
+ str r1, [r2, r8]
19292
+ b .L2913
19293
+.L3012:
19294
+ .align 2
19295
+.L3011:
19296
+ .word .LANCHOR4
19297
+ .word .LANCHOR2
19298
+ .word .LANCHOR0
19299
+ .word .LC150
19300
+.L2906:
19301
+ ldr r3, [sp, #52]
19302
+ ldr r2, [sp, #48]
19303
+ cmp r2, r3
19304
+ beq .L2916
19305
+ ldr r3, [sp, #44]
19306
+ adds r0, r3, #1
19307
+ beq .L2918
19308
+ ldr r2, .L3013
19309
+ ubfx r3, r3, #10, #21
19310
+ ldr r2, [r2, #2340]
19311
+ cmp r3, r2
19312
+ bcs .L2899
19313
+.L2918:
19314
+ movs r2, #1
19315
+ add r1, sp, #52
19316
+ mov r0, r7
19317
+ bl log2phys
19318
+ ldr r9, [sp, #48]
19319
+ cmp r9, #-1
19320
+ beq .L2916
19321
+ ldr r3, [sp, #44]
19322
+ cmp r9, r3
19323
+ beq .L2920
19324
+ ubfx r0, r9, #10, #16
19325
+ bl P2V_block_in_plane
19326
+ ldrh r3, [r5, #320]
19327
+ cmp r3, r0
19328
+ beq .L2921
19329
+ ldrh r3, [r5, #368]
19330
+ cmp r3, r0
19331
+ beq .L2921
19332
+ ldrh r3, [r5, #416]
19333
+ cmp r3, r0
19334
+ bne .L2916
19335
+.L2921:
19336
+ ldr r0, [r5, #3304]
19337
+ movs r2, #0
19338
+ movs r1, #1
19339
+ str r9, [r0, #4]
19340
+ ldr r8, [r0, #12]
19341
+ bl FlashReadPages
19342
+ ldr r3, [r5, #3304]
19343
+ ldr r3, [r3]
19344
+ adds r3, r3, #1
19345
+ beq .L2916
19346
+ ldr r1, [r8, #4]
19347
+ mov r0, r10
19348
+ bl ftl_cmp_data_ver
19349
+ cmp r0, #0
19350
+ bne .L2916
19351
+ movs r2, #1
19352
+ add r1, sp, #48
19353
+ mov r0, r7
19354
+ bl log2phys
19355
+ b .L2916
19356
+.L2903:
1901119357 ldrh r3, [r4]
1901219358 mov r1, r7
19013
- ldr r2, .L3121+12
19014
- ldr r0, .L3121+16
19015
- strh r3, [r2, #840] @ movhi
19016
- ldr r2, [sp, #4]
19359
+ ldr r2, .L3013+4
19360
+ ldr r0, .L3013+8
19361
+ strh r3, [r2, #1342] @ movhi
19362
+ mov r2, r10
1901719363 bl printk
19018
- ldr r3, .L3121+12
19019
- ldr r3, [r3, #844]
19364
+ ldr r3, .L3013+4
19365
+ ldr r3, [r3, #1348]
1902019366 cmp r3, #31
19021
- bhi .L3028
19022
- ldr r2, .L3121+12
19023
- ldr r1, [sp, #60]
19367
+ bhi .L2923
19368
+ ldr r2, .L3013+4
19369
+ ldr r1, [sp, #52]
1902419370 add r2, r2, r3, lsl #2
1902519371 adds r3, r3, #1
19026
- str r1, [r2, #848]
19027
- ldr r2, .L3121+12
19028
- str r3, [r2, #844]
19029
-.L3028:
19372
+ str r1, [r2, #1352]
19373
+ ldr r2, .L3013+4
19374
+ str r3, [r2, #1348]
19375
+.L2923:
1903019376 ldrh r0, [r4]
1903119377 bl decrement_vpc_count
1903219378 ldr r3, [r5, #3472]
1903319379 adds r2, r3, #1
19034
- bne .L3029
19035
- ldr r3, [sp, #4]
19036
- b .L3108
19037
-.L3029:
19038
- ldr r2, [sp, #4]
19039
- cmp r3, r2
19040
- bls .L3005
19041
- mov r3, r2
19042
-.L3108:
19043
- str r3, [r5, #3472]
19380
+ bne .L2924
1904419381 .L3005:
19045
- ldr r3, [sp, #28]
19046
- adds r3, r3, #1
19047
- b .L3109
19048
-.L3116:
19049
- ldrb r3, [r4, #8] @ zero_extendqisi2
19050
- add fp, fp, #1
19051
- cmp r3, #1
19052
- uxth fp, fp
19053
- ldr r3, .L3121
19054
- bne .L3031
19055
- ldrb r2, [r3, #144] @ zero_extendqisi2
19056
- cbz r2, .L3031
19057
- ldrh r2, [r3, #2390]
19058
- cmp r2, fp
19059
- bne .L3031
19060
- cmp r10, fp
19061
- beq .L3008
19062
-.L3031:
19063
- ldrh r3, [r3, #2388]
19064
- cmp fp, r3
19065
- bne .L2999
19066
- ldr r2, .L3121
19067
- movw r0, #65535
19068
- movs r3, #0
19382
+ str r10, [r5, #3472]
19383
+ b .L2899
19384
+.L2924:
19385
+ cmp r10, r3
19386
+ bcs .L2899
19387
+ b .L3005
19388
+.L2902:
19389
+ ldrb r3, [sp, #4] @ zero_extendqisi2
1906919390 strh fp, [r4, #2] @ movhi
19070
- strh r3, [r4, #4] @ movhi
19071
- ldrh r1, [r2, #2320]
19072
-.L3032:
19073
- uxth r2, r3
19074
- cmp r2, r1
19075
- bcs .L3101
19076
- ldr r6, [sp, #20]
19077
- adds r3, r3, #1
19078
- ldrh r5, [r6, #2]!
19079
- cmp r5, r0
19080
- str r6, [sp, #20]
19081
- beq .L3032
19082
- strb r2, [r4, #6]
19083
- b .L3101
19084
-.L3008:
19085
- ldrb r3, [sp, #8] @ zero_extendqisi2
19086
- mov r0, r4
19087
- ldr r2, [sp, #8]
19088
- mov r1, r10
19089
- strh r10, [r4, #2] @ movhi
19391
+ ldr r2, [sp, #4]
1909019392 strb r3, [r4, #6]
19091
-.L3110:
19092
- bl ftl_sb_update_avl_pages
19093
-.L3101:
19094
- movs r0, #0
19095
- add sp, sp, #68
19096
- @ sp needed
19097
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
19098
-.L3122:
19393
+ b .L3008
19394
+.L2920:
19395
+ mov r0, r9
19396
+ b .L2930
19397
+.L3014:
1909919398 .align 2
19100
-.L3121:
19399
+.L3013:
1910119400 .word .LANCHOR0
19102
- .word .LANCHOR2
19103
- .word .LC150
19104
- .word .LANCHOR5
19401
+ .word .LANCHOR4
1910519402 .word .LC151
1910619403 .fnend
1910719404 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock
1910819405 .align 1
1910919406 .global FtlVpcCheckAndModify
19407
+ .syntax unified
1911019408 .thumb
1911119409 .thumb_func
19410
+ .fpu softvfp
1911219411 .type FtlVpcCheckAndModify, %function
1911319412 FtlVpcCheckAndModify:
1911419413 .fnstart
1911519414 @ args = 0, pretend = 0, frame = 8
1911619415 @ frame_needed = 0, uses_anonymous_args = 0
19117
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
19118
- .save {r4, r5, r6, r7, r8, r9, lr}
19119
- .pad #12
19120
- movs r4, #0
19121
- ldr r7, .L3136
19122
- ldr r1, .L3136+4
19123
- ldr r0, .L3136+8
19416
+ push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
19417
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
19418
+ .pad #8
19419
+ movs r5, #0
19420
+ ldr r7, .L3026
19421
+ ldr r1, .L3026+4
19422
+ ldr r0, .L3026+8
1912419423 bl printk
19125
- ldr r5, .L3136+12
19126
- ldrh r2, [r7, #2330]
19424
+ ldrh r2, [r7, #2334]
1912719425 movs r1, #0
19128
- ldr r0, [r5, #3364]
19426
+ ldr r4, .L3026+12
1912919427 lsls r2, r2, #1
19428
+ ldr r0, [r4, #3364]
1913019429 bl ftl_memset
19131
-.L3124:
19132
- ldr r3, [r7, #2448]
19133
- cmp r4, r3
19134
- bcs .L3134
19135
- mov r0, r4
19136
- add r1, sp, #4
19430
+.L3016:
19431
+ ldr r3, [r7, #2452]
19432
+ cmp r5, r3
19433
+ bcc .L3018
19434
+ ldr r10, .L3026+16
19435
+ mov r8, #0
19436
+ movw r9, #65535
19437
+.L3019:
19438
+ ldrh r3, [r7, #2332]
19439
+ uxth r6, r8
19440
+ cmp r3, r6
19441
+ bhi .L3022
19442
+ bl l2p_flush
19443
+ bl FtlVpcTblFlush
19444
+ add sp, sp, #8
19445
+ @ sp needed
19446
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
19447
+.L3018:
1913719448 movs r2, #0
19449
+ add r1, sp, #4
19450
+ mov r0, r5
1913819451 bl log2phys
1913919452 ldr r0, [sp, #4]
1914019453 adds r3, r0, #1
19141
- beq .L3125
19454
+ beq .L3017
1914219455 ubfx r0, r0, #10, #16
1914319456 bl P2V_block_in_plane
19144
- ldr r2, [r5, #3364]
19457
+ ldr r2, [r4, #3364]
1914519458 ldrh r3, [r2, r0, lsl #1]
1914619459 adds r3, r3, #1
1914719460 strh r3, [r2, r0, lsl #1] @ movhi
19148
-.L3125:
19149
- adds r4, r4, #1
19150
- b .L3124
19151
-.L3134:
19152
- ldr r6, .L3136+12
19153
- mov r8, #0
19154
- movw r9, #65535
19155
-.L3127:
19156
- ldrh r3, [r7, #2328]
19157
- uxth r4, r8
19158
- cmp r3, r4
19159
- bls .L3135
19160
- ldr r3, [r5, #296]
19161
- ldrh r2, [r3, r4, lsl #1]
19162
- ldr r3, [r5, #3364]
19163
- ldrh r3, [r3, r4, lsl #1]
19461
+.L3017:
19462
+ adds r5, r5, #1
19463
+ b .L3016
19464
+.L3022:
19465
+ ldr r3, [r4, #300]
19466
+ uxth r5, r8
19467
+ ldrh r2, [r3, r5, lsl #1]
19468
+ ldr r3, [r4, #3364]
19469
+ ldrh r3, [r3, r5, lsl #1]
1916419470 cmp r2, r3
19165
- beq .L3128
19471
+ beq .L3020
1916619472 cmp r2, r9
19167
- beq .L3128
19168
- ldrh r1, [r6, #316]
19169
- cmp r1, r4
19170
- beq .L3128
19171
- ldrh r1, [r6, #412]
19172
- cmp r1, r4
19173
- beq .L3128
19174
- ldrh r1, [r6, #364]
19175
- cmp r1, r4
19176
- beq .L3128
19177
- ldr r0, .L3136+16
19178
- mov r1, r4
19473
+ beq .L3020
19474
+ ldrh r1, [r4, #320]
19475
+ cmp r1, r6
19476
+ beq .L3020
19477
+ ldrh r1, [r4, #416]
19478
+ cmp r1, r6
19479
+ beq .L3020
19480
+ ldrh r1, [r4, #368]
19481
+ cmp r1, r6
19482
+ beq .L3020
19483
+ mov r1, r5
19484
+ mov r0, r10
1917919485 bl printk
19180
- ldr r3, [r6, #296]
19181
- ldrh r2, [r3, r4, lsl #1]
19182
- cbnz r2, .L3129
19183
- ldr r2, [r6, #3364]
19184
- ldrh r2, [r2, r4, lsl #1]
19185
- strh r2, [r3, r4, lsl #1] @ movhi
19186
- b .L3128
19187
-.L3129:
19188
- ldr r2, [r6, #3364]
19189
- mov r0, r4
19190
- ldrh r2, [r2, r4, lsl #1]
19191
- strh r2, [r3, r4, lsl #1] @ movhi
19192
- bl update_vpc_list
19193
-.L3128:
19486
+ ldr r3, [r4, #300]
19487
+ ldrh r2, [r3, r5, lsl #1]
19488
+ cbnz r2, .L3021
19489
+ ldr r2, [r4, #3364]
19490
+ ldrh r2, [r2, r5, lsl #1]
19491
+ strh r2, [r3, r5, lsl #1] @ movhi
19492
+.L3020:
1919419493 add r8, r8, #1
19195
- b .L3127
19196
-.L3135:
19197
- bl l2p_flush
19198
- bl FtlVpcTblFlush
19199
- add sp, sp, #12
19200
- @ sp needed
19201
- pop {r4, r5, r6, r7, r8, r9, pc}
19202
-.L3137:
19494
+ b .L3019
19495
+.L3021:
19496
+ ldr r2, [r4, #3364]
19497
+ mov r0, r6
19498
+ ldrh r2, [r2, r5, lsl #1]
19499
+ strh r2, [r3, r5, lsl #1] @ movhi
19500
+ bl update_vpc_list
19501
+ b .L3020
19502
+.L3027:
1920319503 .align 2
19204
-.L3136:
19504
+.L3026:
1920519505 .word .LANCHOR0
19206
- .word .LANCHOR3+216
19506
+ .word .LANCHOR3+203
1920719507 .word .LC110
1920819508 .word .LANCHOR2
1920919509 .word .LC152
....@@ -19211,301 +19511,290 @@
1921119511 .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
1921219512 .align 1
1921319513 .global FtlGcScanTempBlk
19514
+ .syntax unified
1921419515 .thumb
1921519516 .thumb_func
19517
+ .fpu softvfp
1921619518 .type FtlGcScanTempBlk, %function
1921719519 FtlGcScanTempBlk:
1921819520 .fnstart
1921919521 @ args = 0, pretend = 0, frame = 72
1922019522 @ frame_needed = 0, uses_anonymous_args = 0
19221
- ldr r3, .L3192
19523
+ ldr r3, .L3078
1922219524 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1922319525 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1922419526 .pad #76
1922519527 sub sp, sp, #76
19226
- ldrh r5, [r3, #3448]
19227
- movw r3, #65535
1922819528 mov r4, r0
19229
- str r1, [sp, #20]
19230
- cmp r5, r3
19231
- beq .L3174
19232
- cbnz r5, .L3139
19233
- b .L3140
19234
-.L3174:
19235
- movs r5, #0
19236
-.L3139:
19237
- ldr r3, .L3192+4
19238
- ldr r2, [sp, #20]
19239
- ldrh r3, [r3, #2388]
19240
- cmp r2, r3
19241
- bne .L3141
19242
-.L3140:
19529
+ str r1, [sp, #16]
19530
+ ldrh r6, [r3, #3444]
19531
+ movw r3, #65535
19532
+ cmp r6, r3
19533
+ beq .L3062
19534
+ cbnz r6, .L3029
19535
+.L3030:
1924319536 bl FtlGcPageVarInit
19244
-.L3141:
19245
- ldr r6, .L3192+8
19537
+ b .L3031
19538
+.L3062:
19539
+ movs r6, #0
19540
+.L3029:
19541
+ ldr r3, .L3078+4
19542
+ ldr r2, [sp, #16]
19543
+ ldrh r3, [r3, #2390]
19544
+ cmp r3, r2
19545
+ beq .L3030
19546
+.L3031:
19547
+ ldr r5, .L3078+8
1924619548 mov r3, #-1
19247
- str r3, [sp, #16]
19549
+ str r3, [sp, #12]
1924819550 movs r3, #0
1924919551 str r3, [sp, #4]
19250
-.L3142:
19552
+.L3032:
1925119553 ldrh r1, [r4]
1925219554 movw r3, #65535
1925319555 movs r2, #0
1925419556 strb r2, [r4, #8]
1925519557 cmp r1, r3
19256
- beq .L3143
19257
-.L3144:
19258
- ldr r10, .L3192+4
19259
-.L3171:
19260
- ldr r3, [r6, #3304]
19558
+ beq .L3033
19559
+ ldr r7, .L3078+4
19560
+.L3059:
19561
+ ldr r3, [r5, #3304]
1926119562 movs r2, #0
19262
- ldrh lr, [r10, #2320]
19263
- add ip, r4, #14
19264
- ldr r8, [r6, #1148]
19265
- mov fp, #36
19563
+ ldrh ip, [r7, #2324]
19564
+ add lr, r4, #16
19565
+ ldr r10, [r5, #1148]
19566
+ mov fp, r2
1926619567 str r3, [sp, #8]
19267
- mov r7, r2
19268
- ldr r3, [r6, #1144]
19269
- movw r9, #65535
19270
- str r3, [sp, #12]
19271
- ldrh r3, [r10, #2398]
19568
+ movw r8, #65535
19569
+ ldr r3, [r5, #1144]
19570
+ mov r9, #36
19571
+ str r3, [sp, #20]
19572
+ ldrh r3, [r7, #2400]
1927219573 str r3, [sp, #24]
19273
- ldrh r3, [r10, #2400]
19574
+ ldrh r3, [r7, #2402]
1927419575 str r3, [sp, #28]
19275
-.L3145:
19576
+.L3034:
1927619577 uxth r3, r2
19277
- cmp r3, lr
19278
- bcs .L3190
19279
- ldrh r3, [ip, #2]!
19280
- cmp r3, r9
19281
- beq .L3146
19578
+ cmp ip, r3
19579
+ bhi .L3038
19580
+ mov r10, #0
19581
+ movs r2, #0
19582
+ mov r1, fp
19583
+ ldr r0, [sp, #8]
19584
+ bl FlashReadPages
19585
+.L3039:
19586
+ uxth r3, r10
19587
+ cmp fp, r3
19588
+ bhi .L3057
19589
+ ldr r3, [sp, #4]
19590
+ adds r6, r6, #1
19591
+ uxth r6, r6
19592
+ adds r3, r3, #1
19593
+ str r3, [sp, #4]
19594
+ ldr r2, [sp, #4]
19595
+ ldr r3, [sp, #16]
19596
+ cmp r3, r2
19597
+ bls .L3058
19598
+.L3060:
19599
+ ldrh r3, [r7, #2390]
19600
+ cmp r3, r6
19601
+ bhi .L3059
19602
+ movs r2, #0
19603
+ b .L3033
19604
+.L3038:
19605
+ ldrh r3, [lr], #2
19606
+ cmp r3, r8
19607
+ beq .L3035
1928219608 ldr r1, [sp, #8]
19283
- orr r3, r5, r3, lsl #10
19284
- mla r1, fp, r7, r1
19609
+ orr r3, r6, r3, lsl #10
19610
+ mov r0, fp
19611
+ mla r1, r9, fp, r1
1928519612 str r3, [r1, #4]
1928619613 ldr r3, [sp, #24]
19287
- muls r3, r7, r3
19614
+ muls r3, r0, r3
19615
+ ldr r0, [sp, #20]
1928819616 it mi
1928919617 addmi r3, r3, #3
1929019618 bic r3, r3, #3
19291
- mov r0, r3
19292
- ldr r3, [sp, #12]
19293
- add r0, r0, r3
19619
+ add r3, r3, r0
19620
+ mov r0, fp
19621
+ str r3, [r1, #8]
1929419622 ldr r3, [sp, #28]
19295
- muls r3, r7, r3
19296
- add r7, r7, #1
19623
+ muls r3, r0, r3
1929719624 it mi
1929819625 addmi r3, r3, #3
19299
- str r0, [r1, #8]
19300
- uxth r7, r7
1930119626 bic r3, r3, #3
19302
- add r3, r3, r8
19627
+ add r3, r3, r10
1930319628 str r3, [r1, #12]
19304
-.L3146:
19629
+ add r3, fp, #1
19630
+ uxth fp, r3
19631
+.L3035:
1930519632 adds r2, r2, #1
19306
- b .L3145
19307
-.L3190:
19308
- ldr r0, [r6, #3304]
19309
- mov r1, r7
19310
- movs r2, #0
19311
- bl FlashReadPages
19312
- movs r3, #0
19313
-.L3189:
19314
- str r3, [sp, #8]
19315
- ldrh r3, [sp, #8]
19316
- cmp r3, r7
19317
- bcs .L3191
19318
- ldr r3, [sp, #8]
19633
+ b .L3034
19634
+.L3057:
1931919635 mov r9, #36
19320
- mul r9, r9, r3
19321
- ldr r3, .L3192+8
19322
- ldr r8, [r3, #3304]
19323
- add fp, r8, r9
19324
- ldr r3, [fp, #4]
19325
- ubfx r0, r3, #10, #16
19326
- str r3, [sp, #12]
19636
+ ldr r8, [r5, #3304]
19637
+ mul r9, r9, r10
19638
+ add r3, r8, r9
19639
+ ldr r2, [r3, #4]
19640
+ str r3, [sp, #20]
19641
+ ubfx r0, r2, #10, #16
19642
+ str r2, [sp, #8]
1932719643 bl P2V_plane
1932819644 ldr r8, [r8, r9]
19329
- ldr r3, [fp, #12]
19330
- ldr ip, .L3192+4
19331
- ldr fp, .L3192+8
1933219645 mov r2, r0
19646
+ ldr r3, [sp, #20]
19647
+ ldr r3, [r3, #12]
1933319648 cmp r8, #0
19334
- bne .L3151
19649
+ bne .L3040
1933519650 ldrh r0, [r3]
1933619651 movw r1, #65535
1933719652 cmp r0, r1
19338
- bne .L3152
19339
-.L3155:
19340
- ldrb r3, [ip, #144] @ zero_extendqisi2
19341
- cbz r3, .L3186
19653
+ bne .L3041
19654
+.L3044:
19655
+ ldrb r3, [r7, #152] @ zero_extendqisi2
19656
+ cbz r3, .L3074
1934219657 movs r3, #1
19343
- str r3, [fp, #3468]
19344
- b .L3143
19345
-.L3152:
19658
+ str r3, [r5, #3468]
19659
+.L3033:
19660
+ ldr r3, .L3078
19661
+ movw r1, #65535
19662
+ strh r6, [r4, #2] @ movhi
19663
+ mov r0, r4
19664
+ strb r2, [r4, #6]
19665
+ strh r1, [r3, #3444] @ movhi
19666
+ mov r1, r6
19667
+ bl ftl_sb_update_avl_pages
19668
+ b .L3028
19669
+.L3041:
1934619670 ldr r0, [r3, #8]
19347
- ldr r1, [r10, #2448]
19671
+ ldr r1, [r7, #2452]
1934819672 cmp r0, r1
19349
- bls .L3187
19350
- b .L3155
19351
-.L3186:
19673
+ bhi .L3044
19674
+ ldrb r2, [r7, #36] @ zero_extendqisi2
19675
+ cbnz r2, .L3047
19676
+.L3048:
19677
+ ldr r2, [r3, #8]
19678
+ add r10, r10, #1
19679
+ ldr r1, [sp, #8]
19680
+ ldr r0, [r3, #12]
19681
+ bl FtlGcUpdatePage
19682
+ b .L3039
19683
+.L3074:
1935219684 ldrh r1, [r4]
19353
- ldr r2, [fp, #296]
19685
+ ldr r2, [r5, #300]
1935419686 strh r3, [r2, r1, lsl #1] @ movhi
19687
+.L3077:
1935519688 ldrh r0, [r4]
1935619689 bl INSERT_FREE_LIST
1935719690 movw r3, #65535
1935819691 strh r3, [r4] @ movhi
19359
- strh r3, [fp, #556] @ movhi
19360
- b .L3188
19361
-.L3187:
19362
- ldrb r2, [r10] @ zero_extendqisi2
19363
- cmp r2, #0
19364
- beq .L3159
19365
- add r1, sp, #32
19692
+ strh r3, [r5, #556] @ movhi
19693
+.L3076:
19694
+ bl FtlGcPageVarInit
19695
+ movs r6, #0
19696
+ b .L3032
19697
+.L3047:
1936619698 mov r2, r8
19367
- str r3, [sp, #24]
19699
+ add r1, sp, #32
19700
+ str r3, [sp, #20]
1936819701 bl log2phys
19369
- ldr r3, [sp, #24]
19370
- ldr r2, [sp, #32]
19371
- ldr r1, [r3, #12]
19702
+ ldr r3, [sp, #20]
19703
+ ldr r1, [sp, #32]
19704
+ ldr r2, [r3, #12]
1937219705 cmp r2, r1
19373
- bne .L3159
19706
+ bne .L3048
1937419707 adds r1, r2, #1
19375
- beq .L3159
19708
+ beq .L3048
1937619709 str r2, [sp, #40]
1937719710 movs r1, #1
19378
- ldr r2, [r6, #3336]
19711
+ ldr r2, [r5, #3336]
1937919712 add r0, sp, #36
1938019713 str r2, [sp, #44]
19381
- ldr r2, [r6, #3344]
19714
+ ldr r2, [r5, #3344]
1938219715 str r2, [sp, #48]
1938319716 mov r2, r8
1938419717 bl FlashReadPages
19385
- ldrh r2, [r10, #2394]
19386
- ldr r1, [r6, #3304]
19387
- lsl lr, r2, #7
19388
- add r9, r9, r1
19718
+ ldrh r2, [r7, #2396]
19719
+ ldr r1, [r5, #3304]
1938919720 ldr r0, [sp, #44]
19390
- ldr r3, [sp, #24]
19391
-.L3161:
19392
- cmp r8, lr
19393
- beq .L3159
19721
+ ldr r3, [sp, #20]
19722
+ lsl ip, r2, #7
19723
+ add r9, r9, r1
19724
+.L3049:
19725
+ cmp r8, ip
19726
+ beq .L3048
1939419727 ldr r1, [r9, #8]
1939519728 ldr r2, [r0, r8, lsl #2]
1939619729 ldr r1, [r1, r8, lsl #2]
1939719730 cmp r1, r2
19398
- beq .L3162
19399
- ldrh r1, [r4]
19731
+ beq .L3050
1940019732 ldr r2, [sp, #40]
19401
- ldr r0, .L3192+12
19733
+ ldrh r1, [r4]
19734
+ ldr r0, .L3078+12
1940219735 bl printk
19403
- ldr r3, [r6, #296]
1940419736 ldrh r2, [r4]
19737
+ movs r1, #0
19738
+ ldr r3, [r5, #300]
19739
+ strh r1, [r3, r2, lsl #1] @ movhi
19740
+ b .L3077
19741
+.L3050:
19742
+ add r8, r8, #1
19743
+ b .L3049
19744
+.L3040:
19745
+ ldr r2, [sp, #8]
19746
+ ldrh r1, [r4]
19747
+ ldr r0, .L3078+16
19748
+ bl printk
19749
+ ldr r3, [r7, #2248]
19750
+ ldrh r2, [r4]
19751
+ cbnz r3, .L3053
19752
+ ldrb r3, [r7, #152] @ zero_extendqisi2
19753
+ cbz r3, .L3054
19754
+.L3053:
19755
+ ldr r3, [r5, #236]
19756
+ ldrh r3, [r3, r2, lsl #1]
19757
+ cmp r3, #159
19758
+ bls .L3055
19759
+.L3054:
19760
+ ldr r3, [r5, #3304]
19761
+ ldr r3, [r3, r9]
19762
+ adds r3, r3, #1
19763
+ bne .L3056
19764
+.L3055:
19765
+ ldr r3, [r5, #3304]
19766
+ add r3, r3, r9
19767
+ ldr r3, [r3, #4]
19768
+ str r3, [sp, #12]
19769
+.L3056:
19770
+ ldr r3, [r5, #300]
1940519771 movs r1, #0
1940619772 strh r1, [r3, r2, lsl #1] @ movhi
1940719773 ldrh r0, [r4]
1940819774 bl INSERT_FREE_LIST
1940919775 movw r3, #65535
1941019776 strh r3, [r4] @ movhi
19411
- strh r3, [r6, #556] @ movhi
19412
- b .L3188
19413
-.L3162:
19414
- add r8, r8, #1
19415
- b .L3161
19416
-.L3159:
19417
- ldr r0, [r3, #12]
19418
- ldr r2, [r3, #8]
19419
- ldr r1, [sp, #12]
19420
- bl FtlGcUpdatePage
19421
- ldr r3, [sp, #8]
19422
- adds r3, r3, #1
19423
- b .L3189
19424
-.L3151:
19425
- ldr r2, [sp, #12]
19426
- ldr r0, .L3192+16
19427
- ldrh r1, [r4]
19428
- str ip, [sp, #8]
19429
- bl printk
19430
- ldrh r3, [r4]
19431
- ldr ip, [sp, #8]
19432
- ldr r2, [ip, #2244]
19433
- cbnz r2, .L3165
19434
- ldrb r2, [ip, #144] @ zero_extendqisi2
19435
- cbz r2, .L3166
19436
-.L3165:
19437
- ldr r2, [fp, #232]
19438
- ldrh r2, [r2, r3, lsl #1]
19439
- cmp r2, #159
19440
- bls .L3167
19441
-.L3166:
19442
- ldr r2, [fp, #3304]
19443
- ldr r2, [r2, r9]
19444
- adds r2, r2, #1
19445
- bne .L3168
19446
-.L3167:
19447
- ldr r2, [fp, #3304]
19448
- add r9, r9, r2
19449
- ldr r2, [r9, #4]
19450
- str r2, [sp, #16]
19451
-.L3168:
19452
- ldr r2, .L3192+8
19453
- movs r1, #0
19454
- ldr r2, [r2, #296]
19455
- strh r1, [r2, r3, lsl #1] @ movhi
19456
- ldrh r0, [r4]
19457
- bl INSERT_FREE_LIST
19458
- movw r3, #65535
19459
- strh r3, [r4] @ movhi
19460
-.L3188:
19461
- bl FtlGcPageVarInit
19462
- movs r5, #0
19463
- b .L3142
19464
-.L3191:
19465
- ldr r3, [sp, #4]
19466
- adds r5, r5, #1
19467
- ldr r2, [sp, #20]
19468
- adds r3, r3, #1
19469
- uxth r5, r5
19470
- cmp r3, r2
19471
- str r3, [sp, #4]
19472
- bcs .L3170
19473
-.L3172:
19474
- ldrh r3, [r10, #2388]
19475
- cmp r3, r5
19476
- bhi .L3171
19477
- movs r2, #0
19478
- b .L3143
19479
-.L3170:
19480
- ldr r2, .L3192
19777
+ b .L3076
19778
+.L3058:
19779
+ ldr r2, .L3078
1948119780 movw r1, #65535
19482
- ldrh r3, [r2, #3448]
19781
+ ldrh r3, [r2, #3444]
1948319782 cmp r3, r1
19484
- beq .L3172
19783
+ beq .L3060
1948519784 ldr r1, [sp, #4]
1948619785 add r3, r3, r1
19487
- strh r3, [r2, #3448] @ movhi
19488
- ldrh r3, [r10, #2388]
19489
- cmp r3, r5
19490
- bls .L3172
19491
- b .L3173
19492
-.L3143:
19493
- ldr r3, .L3192
19494
- movw r1, #65535
19495
- strh r5, [r4, #2] @ movhi
19496
- mov r0, r4
19497
- strb r2, [r4, #6]
19498
- strh r1, [r3, #3448] @ movhi
19499
- mov r1, r5
19500
- bl ftl_sb_update_avl_pages
19501
-.L3173:
19502
- ldr r0, [sp, #16]
19786
+ strh r3, [r2, #3444] @ movhi
19787
+ ldrh r3, [r7, #2390]
19788
+ cmp r3, r6
19789
+ bls .L3060
19790
+.L3028:
19791
+ ldr r0, [sp, #12]
1950319792 add sp, sp, #76
1950419793 @ sp needed
1950519794 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
19506
-.L3193:
19795
+.L3079:
1950719796 .align 2
19508
-.L3192:
19797
+.L3078:
1950919798 .word .LANCHOR1
1951019799 .word .LANCHOR0
1951119800 .word .LANCHOR2
....@@ -19515,8 +19804,10 @@
1951519804 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk
1951619805 .align 1
1951719806 .global FtlReadRefresh
19807
+ .syntax unified
1951819808 .thumb
1951919809 .thumb_func
19810
+ .fpu softvfp
1952019811 .type FtlReadRefresh, %function
1952119812 FtlReadRefresh:
1952219813 .fnstart
....@@ -19526,36 +19817,42 @@
1952619817 .save {r4, r5, r6, r7, r8, r9, lr}
1952719818 .pad #44
1952819819 sub sp, sp, #44
19529
- ldr r5, .L3210
19530
- ldr r4, .L3210+4
19531
- ldr r9, [r5, #688]
19820
+ ldr r5, .L3096
19821
+ ldr r9, [r5, #684]
1953219822 mov r6, r5
1953319823 cmp r9, #0
19534
- beq .L3195
19535
- ldr r2, [r5, #692]
19536
- ldr r3, [r4, #2448]
19537
- cmp r2, r3
19538
- bcs .L3196
19824
+ beq .L3081
19825
+ ldr r4, .L3096+4
19826
+ ldr r1, [r5, #688]
19827
+ ldr r2, [r4, #2452]
19828
+ cmp r1, r2
19829
+ bcs .L3082
1953919830 mov r5, #2048
19540
- mov r7, r6
19541
-.L3201:
19542
- ldr r0, [r6, #692]
19543
- ldr r3, [r4, #2448]
19831
+.L3087:
19832
+ ldr r0, [r6, #688]
19833
+ ldr r3, [r4, #2452]
1954419834 cmp r0, r3
19545
- bcs .L3200
19835
+ bcc .L3083
19836
+.L3086:
19837
+ mov r0, #-1
19838
+.L3080:
19839
+ add sp, sp, #44
19840
+ @ sp needed
19841
+ pop {r4, r5, r6, r7, r8, r9, pc}
19842
+.L3083:
19843
+ movs r2, #0
1954619844 mov r1, sp
19547
- movs r2, #0
1954819845 bl log2phys
19549
- ldr r3, [r7, #692]
19550
- adds r3, r3, #1
19551
- str r3, [r7, #692]
1955219846 ldr r2, [sp]
19847
+ ldr r3, [r6, #688]
1955319848 adds r1, r2, #1
19554
- beq .L3199
19555
- add r0, sp, #40
19849
+ add r3, r3, #1
19850
+ str r3, [r6, #688]
19851
+ beq .L3085
1955619852 str r2, [sp, #8]
19557
- movs r1, #1
19853
+ add r0, sp, #40
1955819854 movs r2, #0
19855
+ movs r1, #1
1955919856 str r2, [r0, #-36]!
1956019857 str r3, [sp, #20]
1956119858 str r2, [sp, #12]
....@@ -19563,285 +19860,283 @@
1956319860 bl FlashReadPages
1956419861 ldr r3, [sp, #4]
1956519862 cmp r3, #256
19566
- bne .L3200
19863
+ bne .L3086
1956719864 ldr r0, [sp]
1956819865 ubfx r0, r0, #10, #16
1956919866 bl P2V_block_in_plane
1957019867 bl FtlGcRefreshBlock
19571
-.L3200:
19572
- mov r0, #-1
19573
- b .L3203
19574
-.L3199:
19868
+ b .L3086
19869
+.L3085:
1957519870 subs r5, r5, #1
19576
- bne .L3201
19577
- b .L3200
19578
-.L3196:
19871
+ bne .L3087
19872
+ b .L3086
19873
+.L3082:
1957919874 ldr r3, [r5, #476]
1958019875 movs r0, #0
19876
+ str r0, [r5, #684]
1958119877 str r0, [r5, #688]
19582
- str r0, [r5, #692]
19583
- str r3, [r5, #684]
19584
- b .L3203
19585
-.L3195:
19878
+ str r3, [r5, #680]
19879
+ b .L3080
19880
+.L3081:
1958619881 ldr r8, [r5, #476]
19587
- ldr r1, [r5, #528]
19588
- ldr r7, [r5, #684]
19589
- add r2, r8, #1048576
19590
- ldr r3, [r4, #2448]
1959119882 movw r4, #10000
19883
+ ldr r1, [r5, #528]
19884
+ ldr r7, [r5, #680]
19885
+ add r3, r8, #1048576
1959219886 cmp r1, r4
1959319887 ite hi
1959419888 movhi r4, #31
1959519889 movls r4, #63
19596
- cmp r7, r2
19597
- bhi .L3205
19598
- mov r0, #1000
19890
+ cmp r7, r3
19891
+ bhi .L3091
19892
+ ldr r3, .L3096+4
1959919893 lsrs r1, r1, #10
19894
+ mov r0, #1000
1960019895 adds r1, r1, #1
19896
+ ldr r3, [r3, #2452]
1960119897 muls r0, r3, r0
1960219898 bl __aeabi_uidiv
1960319899 add r0, r0, r7
19604
- cmp r0, r8
19605
- bcc .L3205
19606
- ldrh r3, [r5, #268]
19900
+ cmp r8, r0
19901
+ bhi .L3091
19902
+ ldrh r3, [r5, #272]
1960719903 ands r0, r4, r3
19608
- bne .L3207
19609
- ldr r2, [r5, #708]
19610
- cmp r2, r3
19611
- beq .L3203
19612
-.L3205:
19613
- ldrh r3, [r6, #268]
19904
+ bne .L3093
19905
+ ldr r2, [r5, #704]
19906
+ cmp r3, r2
19907
+ beq .L3080
19908
+.L3091:
19909
+ ldrh r3, [r6, #272]
1961419910 movs r0, #0
19615
- str r8, [r6, #684]
19616
- str r0, [r6, #692]
19617
- str r3, [r6, #708]
19911
+ str r0, [r6, #688]
19912
+ str r8, [r6, #680]
19913
+ str r3, [r6, #704]
1961819914 movs r3, #1
19619
- str r3, [r6, #688]
19620
- b .L3203
19621
-.L3207:
19915
+ str r3, [r6, #684]
19916
+ b .L3080
19917
+.L3093:
1962219918 mov r0, r9
19623
-.L3203:
19624
- add sp, sp, #44
19625
- @ sp needed
19626
- pop {r4, r5, r6, r7, r8, r9, pc}
19627
-.L3211:
19919
+ b .L3080
19920
+.L3097:
1962819921 .align 2
19629
-.L3210:
19922
+.L3096:
1963019923 .word .LANCHOR2
1963119924 .word .LANCHOR0
1963219925 .fnend
1963319926 .size FtlReadRefresh, .-FtlReadRefresh
1963419927 .align 1
1963519928 .global FtlGcFreeTempBlock
19929
+ .syntax unified
1963619930 .thumb
1963719931 .thumb_func
19932
+ .fpu softvfp
1963819933 .type FtlGcFreeTempBlock, %function
1963919934 FtlGcFreeTempBlock:
1964019935 .fnstart
1964119936 @ args = 0, pretend = 0, frame = 8
1964219937 @ frame_needed = 0, uses_anonymous_args = 0
19643
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
19644
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
19645
- .pad #12
19646
- ldr r5, .L3250
19647
- ldr r6, .L3250+4
19648
- ldr r2, [r5, #224]
19649
- mov r4, r5
19650
- ldrh r1, [r6, #2388]
19651
- cmp r2, #0
19652
- bne .L3248
19653
- ldrh r5, [r5, #412]
19938
+ push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
19939
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
19940
+ .pad #8
19941
+ ldr r4, .L3136
19942
+ ldr r6, .L3136+4
19943
+ ldr r2, [r4, #228]
19944
+ ldrh r1, [r6, #2390]
19945
+ cbz r2, .L3099
19946
+.L3134:
19947
+ movs r0, #0
19948
+.L3098:
19949
+ add sp, sp, #8
19950
+ @ sp needed
19951
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
19952
+.L3099:
19953
+ ldrh r5, [r4, #416]
1965419954 movw r7, #65535
1965519955 cmp r5, r7
19656
- bne .L3215
19657
-.L3224:
19658
- ldrh r2, [r4, #412]
19956
+ bne .L3101
19957
+.L3110:
19958
+ ldrh r2, [r4, #416]
1965919959 movw r3, #65535
19660
- movs r7, #0
19661
- ldr r5, .L3250
19960
+ movs r5, #0
19961
+ str r5, [r4, #3468]
1966219962 cmp r2, r3
19663
- str r7, [r4, #3468]
19664
- beq .L3248
19963
+ beq .L3134
1966519964 bl FtlCacheWriteBack
19666
- ldrb r0, [r5, #419] @ zero_extendqisi2
19667
- ldrh r3, [r6, #2388]
19668
- mov r10, #12
19669
- ldr r2, [r5, #296]
19670
- ldrh r1, [r5, #412]
19671
- smulbb r3, r0, r3
19965
+ ldrb r3, [r4, #423] @ zero_extendqisi2
19966
+ mov r9, #12
19967
+ ldrh r0, [r6, #2390]
19968
+ ldr r2, [r4, #300]
19969
+ ldrh r1, [r4, #416]
19970
+ smulbb r3, r3, r0
1967219971 strh r3, [r2, r1, lsl #1] @ movhi
19673
- ldr r3, [r5, #496]
19674
- ldrh r2, [r5, #1172]
19675
- add r3, r3, r2
19676
- str r3, [r5, #496]
19677
- b .L3225
19678
-.L3215:
19679
- cbz r0, .L3218
19680
- ldr r3, .L3250+8
19681
- ldrh r0, [r3, #3448]
19682
- cmp r0, r7
19683
- beq .L3219
19684
-.L3220:
19685
- movs r1, #2
19686
- b .L3218
19687
-.L3219:
19688
- strh r2, [r3, #3448] @ movhi
19689
- ldrh r3, [r4, #312]
19690
- cmp r3, #17
19691
- bhi .L3220
19692
-.L3218:
19693
- ldr r7, .L3250
19694
- add r0, r7, #412
19695
- bl FtlGcScanTempBlk
19696
- str r0, [sp, #4]
19697
- adds r0, r0, #1
19698
- beq .L3221
19699
- ldr r2, [r7, #232]
19700
- ldrh r3, [r2, r5, lsl #1]
19701
- cmp r3, #4
19702
- bls .L3222
19703
- subs r3, r3, #5
19704
- movs r0, #1
19705
- strh r3, [r2, r5, lsl #1] @ movhi
19706
- bl FtlEctTblFlush
19707
-.L3222:
19708
- ldr r3, [r4, #3468]
19709
- ldr r2, .L3250
19710
- cbnz r3, .L3223
19711
- ldr r0, [sp, #4]
19712
- ldr r3, [r2, #704]
19713
- ubfx r0, r0, #10, #16
19714
- adds r3, r3, #1
19715
- str r3, [r2, #704]
19716
- bl FtlBbmMapBadBlock
19717
- bl FtlBbmTblFlush
19718
-.L3223:
19719
- movs r3, #0
19720
- str r3, [r4, #3468]
19721
- b .L3235
19722
-.L3221:
19723
- ldr r3, .L3250+8
19724
- ldrh r2, [r3, #3448]
19725
- movw r3, #65535
19726
- cmp r2, r3
19727
- bne .L3235
19728
- b .L3224
19729
-.L3228:
19730
- ldr r3, [r9, #4]
19731
- cmp r0, r3
19732
- bne .L3246
19733
-.L3227:
19734
- adds r7, r7, #1
19735
-.L3225:
19972
+ ldr r2, [r4, #496]
1973619973 ldrh r3, [r4, #1172]
19737
- uxth r8, r7
19738
- cmp r3, r8
19739
- bls .L3249
19740
- mul r8, r10, r8
19741
- ldr fp, [r5, #1168]
19742
- ldr r3, [r6, #2448]
19743
- add r9, fp, r8
19744
- ldr r0, [r9, #8]
19745
- cmp r0, r3
19746
- bcs .L3246
19747
- add r1, sp, #4
19748
- movs r2, #0
19749
- bl log2phys
19750
- ldr r3, [fp, r8]
19751
- ldr r0, [sp, #4]
19752
- cmp r0, r3
19753
- bne .L3228
19754
- ubfx r0, r0, #10, #16
19755
- bl P2V_block_in_plane
19756
- add r1, r9, #4
19757
- movs r2, #1
19758
- mov r8, r0
19759
- ldr r0, [r9, #8]
19760
- bl log2phys
19761
- mov r0, r8
19762
- b .L3247
19763
-.L3246:
19764
- ldrh r0, [r5, #412]
19765
-.L3247:
19766
- bl decrement_vpc_count
19767
- b .L3227
19768
-.L3249:
19974
+ add r3, r3, r2
19975
+ str r3, [r4, #496]
19976
+.L3111:
19977
+ ldrh r2, [r4, #1172]
19978
+ uxth r3, r5
19979
+ cmp r2, r3
19980
+ bhi .L3115
1976919981 movw r0, #65535
1977019982 bl decrement_vpc_count
19771
- ldrb r3, [r6, #144] @ zero_extendqisi2
19772
- cbz r3, .L3230
19773
- ldr r3, .L3250
19774
- ldr r0, .L3250+12
19775
- ldrh r1, [r3, #412]
19983
+ ldrb r3, [r6, #152] @ zero_extendqisi2
19984
+ cbz r3, .L3116
19985
+ ldrh r1, [r4, #416]
19986
+ ldr r0, .L3136+8
1977619987 bl printk
19777
-.L3230:
19778
- ldrh r0, [r4, #412]
19779
- ldr r3, [r4, #296]
19988
+.L3116:
19989
+ ldrh r0, [r4, #416]
19990
+ ldr r3, [r4, #300]
1978019991 ldrh r3, [r3, r0, lsl #1]
19781
- cbz r3, .L3231
19992
+ cmp r3, #0
19993
+ beq .L3117
1978219994 bl INSERT_DATA_LIST
19783
- b .L3232
19784
-.L3231:
19785
- bl INSERT_FREE_LIST
19786
-.L3232:
19787
- movw r8, #65535
19995
+.L3118:
19996
+ movw r7, #65535
1978819997 movs r5, #0
19789
- strh r8, [r4, #412] @ movhi
19998
+ strh r7, [r4, #416] @ movhi
1979019999 strh r5, [r4, #1172] @ movhi
1979120000 strh r5, [r4, #1164] @ movhi
1979220001 bl l2p_flush
1979320002 bl FtlVpcTblFlush
19794
- ldr r3, [r6, #2244]
19795
- ldr r7, .L3250
19796
- strh r8, [r4, #556] @ movhi
19797
- cbz r3, .L3233
19798
- ldr r3, [r7, #532]
20003
+ ldr r3, [r6, #2248]
20004
+ strh r7, [r4, #556] @ movhi
20005
+ cmp r3, #0
20006
+ beq .L3119
20007
+ ldr r3, [r4, #532]
1979920008 cmp r3, #39
19800
- bhi .L3233
19801
- ldrh r3, [r7, #536]
19802
- ldrh r2, [r7, #312]
19803
- cmp r2, r3
19804
- bcs .L3248
19805
- lsls r3, r3, #1
19806
- strh r3, [r7, #1120] @ movhi
19807
- b .L3248
19808
-.L3233:
20009
+ bhi .L3119
1980920010 ldrh r3, [r4, #536]
19810
- ldrh r1, [r4, #312]
19811
- ldr r2, .L3250
19812
- add r0, r3, r3, lsl #1
19813
- cmp r1, r0, asr #2
19814
- ble .L3248
19815
- ldrb r0, [r6, #144] @ zero_extendqisi2
19816
- cbz r0, .L3234
19817
- subs r3, r3, #2
19818
- strh r3, [r2, #1120] @ movhi
19819
-.L3248:
19820
- movs r0, #0
19821
- b .L3214
19822
-.L3234:
19823
- movs r3, #20
19824
- strh r3, [r2, #1120] @ movhi
19825
- b .L3214
19826
-.L3235:
20011
+ ldrh r2, [r4, #316]
20012
+ cmp r2, r3
20013
+ bcs .L3134
20014
+ lsls r3, r3, #1
20015
+.L3135:
20016
+ strh r3, [r4, #1120] @ movhi
20017
+ b .L3134
20018
+.L3101:
20019
+ cbz r0, .L3104
20020
+ ldr r3, .L3136+12
20021
+ ldrh r0, [r3, #3444]
20022
+ cmp r0, r7
20023
+ beq .L3105
20024
+.L3106:
20025
+ movs r1, #2
20026
+.L3104:
20027
+ ldr r0, .L3136+16
20028
+ bl FtlGcScanTempBlk
20029
+ str r0, [sp, #4]
20030
+ adds r0, r0, #1
20031
+ beq .L3107
20032
+ ldr r2, [r4, #236]
20033
+ ldrh r3, [r2, r5, lsl #1]
20034
+ cmp r3, #4
20035
+ bls .L3108
20036
+ subs r3, r3, #5
1982720037 movs r0, #1
19828
-.L3214:
19829
- add sp, sp, #12
19830
- @ sp needed
19831
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
19832
-.L3251:
20038
+ strh r3, [r2, r5, lsl #1] @ movhi
20039
+ bl FtlEctTblFlush
20040
+.L3108:
20041
+ ldr r3, [r4, #3468]
20042
+ cbnz r3, .L3109
20043
+ ldr r3, [r4, #700]
20044
+ ldr r0, [sp, #4]
20045
+ adds r3, r3, #1
20046
+ ubfx r0, r0, #10, #16
20047
+ str r3, [r4, #700]
20048
+ bl FtlBbmMapBadBlock
20049
+ bl FtlBbmTblFlush
20050
+.L3109:
20051
+ movs r3, #0
20052
+ str r3, [r4, #3468]
20053
+.L3121:
20054
+ movs r0, #1
20055
+ b .L3098
20056
+.L3105:
20057
+ strh r2, [r3, #3444] @ movhi
20058
+ ldrh r3, [r4, #316]
20059
+ cmp r3, #17
20060
+ bhi .L3106
20061
+ b .L3104
20062
+.L3107:
20063
+ ldr r3, .L3136+12
20064
+ ldrh r2, [r3, #3444]
20065
+ movw r3, #65535
20066
+ cmp r2, r3
20067
+ bne .L3121
20068
+ b .L3110
20069
+.L3115:
20070
+ uxth r8, r5
20071
+ ldr r10, [r4, #1168]
20072
+ ldr r3, [r6, #2452]
20073
+ mul r8, r9, r8
20074
+ add r7, r10, r8
20075
+ ldr r0, [r7, #8]
20076
+ cmp r0, r3
20077
+ bcc .L3112
20078
+.L3132:
20079
+ ldrh r0, [r4, #416]
20080
+ b .L3133
20081
+.L3112:
20082
+ movs r2, #0
20083
+ add r1, sp, #4
20084
+ bl log2phys
20085
+ ldr r0, [r10, r8]
20086
+ ldr r3, [sp, #4]
20087
+ cmp r0, r3
20088
+ bne .L3114
20089
+ ubfx r0, r0, #10, #16
20090
+ bl P2V_block_in_plane
20091
+ movs r2, #1
20092
+ mov r8, r0
20093
+ adds r1, r7, #4
20094
+ ldr r0, [r7, #8]
20095
+ bl log2phys
20096
+ mov r0, r8
20097
+.L3133:
20098
+ bl decrement_vpc_count
20099
+ b .L3113
20100
+.L3114:
20101
+ ldr r2, [r7, #4]
20102
+ cmp r3, r2
20103
+ bne .L3132
20104
+.L3113:
20105
+ adds r5, r5, #1
20106
+ b .L3111
20107
+.L3117:
20108
+ bl INSERT_FREE_LIST
20109
+ b .L3118
20110
+.L3119:
20111
+ ldrh r3, [r4, #536]
20112
+ ldrh r2, [r4, #316]
20113
+ add r1, r3, r3, lsl #1
20114
+ cmp r2, r1, asr #2
20115
+ ble .L3134
20116
+ ldrb r0, [r6, #152] @ zero_extendqisi2
20117
+ cbz r0, .L3120
20118
+ subs r3, r3, #2
20119
+ b .L3135
20120
+.L3120:
20121
+ movs r3, #20
20122
+ strh r3, [r4, #1120] @ movhi
20123
+ b .L3098
20124
+.L3137:
1983320125 .align 2
19834
-.L3250:
20126
+.L3136:
1983520127 .word .LANCHOR2
1983620128 .word .LANCHOR0
19837
- .word .LANCHOR1
1983820129 .word .LC155
20130
+ .word .LANCHOR1
20131
+ .word .LANCHOR2+416
1983920132 .fnend
1984020133 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
1984120134 .align 1
1984220135 .global FtlGcPageRecovery
20136
+ .syntax unified
1984320137 .thumb
1984420138 .thumb_func
20139
+ .fpu softvfp
1984520140 .type FtlGcPageRecovery, %function
1984620141 FtlGcPageRecovery:
1984720142 .fnstart
....@@ -19849,34 +20144,36 @@
1984920144 @ frame_needed = 0, uses_anonymous_args = 0
1985020145 push {r3, r4, r5, lr}
1985120146 .save {r3, r4, r5, lr}
19852
- ldr r5, .L3254
19853
- ldr r4, .L3254+4
19854
- ldrh r1, [r5, #2388]
19855
- add r0, r4, #412
20147
+ ldr r5, .L3140
20148
+ ldr r4, .L3140+4
20149
+ ldrh r1, [r5, #2390]
20150
+ add r0, r4, #416
1985620151 bl FtlGcScanTempBlk
19857
- ldrh r2, [r4, #414]
19858
- ldrh r3, [r5, #2388]
20152
+ ldrh r2, [r4, #418]
20153
+ ldrh r3, [r5, #2390]
1985920154 cmp r2, r3
19860
- bcc .L3252
20155
+ bcc .L3138
1986120156 add r0, r4, #3408
1986220157 bl FtlMapBlkWriteDumpData
1986320158 movs r0, #0
1986420159 bl FtlGcFreeTempBlock
1986520160 movs r3, #0
1986620161 str r3, [r4, #3468]
19867
-.L3252:
20162
+.L3138:
1986820163 pop {r3, r4, r5, pc}
19869
-.L3255:
20164
+.L3141:
1987020165 .align 2
19871
-.L3254:
20166
+.L3140:
1987220167 .word .LANCHOR0
1987320168 .word .LANCHOR2
1987420169 .fnend
1987520170 .size FtlGcPageRecovery, .-FtlGcPageRecovery
1987620171 .align 1
1987720172 .global FtlPowerLostRecovery
20173
+ .syntax unified
1987820174 .thumb
1987920175 .thumb_func
20176
+ .fpu softvfp
1988020177 .type FtlPowerLostRecovery, %function
1988120178 FtlPowerLostRecovery:
1988220179 .fnstart
....@@ -19885,12 +20182,12 @@
1988520182 push {r4, r5, r6, lr}
1988620183 .save {r4, r5, r6, lr}
1988720184 movs r5, #0
19888
- ldr r4, .L3257
19889
- ldr r3, .L3257+4
19890
- add r6, r4, #316
19891
- add r4, r4, #364
20185
+ ldr r4, .L3143
20186
+ ldr r3, .L3143+4
20187
+ add r6, r4, #320
20188
+ add r4, r4, #368
1989220189 mov r0, r6
19893
- str r5, [r3, #844]
20190
+ str r5, [r3, #1348]
1989420191 bl FtlRecoverySuperblock
1989520192 mov r0, r6
1989620193 bl FtlSlcSuperblockCheck
....@@ -19903,17 +20200,19 @@
1990320200 bl decrement_vpc_count
1990420201 mov r0, r5
1990520202 pop {r4, r5, r6, pc}
19906
-.L3258:
20203
+.L3144:
1990720204 .align 2
19908
-.L3257:
20205
+.L3143:
1990920206 .word .LANCHOR2
19910
- .word .LANCHOR5
20207
+ .word .LANCHOR4
1991120208 .fnend
1991220209 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery
1991320210 .align 1
1991420211 .global FtlSysBlkInit
20212
+ .syntax unified
1991520213 .thumb
1991620214 .thumb_func
20215
+ .fpu softvfp
1991720216 .type FtlSysBlkInit, %function
1991820217 FtlSysBlkInit:
1991920218 .fnstart
....@@ -19922,26 +20221,29 @@
1992220221 push {r3, r4, r5, r6, r7, lr}
1992320222 .save {r3, r4, r5, r6, r7, lr}
1992420223 movs r3, #0
19925
- ldr r5, .L3276
20224
+ ldr r5, .L3162
1992620225 movw r7, #65535
19927
- ldr r6, .L3276+4
19928
- ldr r4, .L3276+8
19929
- ldrh r0, [r5, #2324]
19930
- strh r3, [r6, #842] @ movhi
19931
- strh r7, [r6, #840] @ movhi
20226
+ ldr r6, .L3162+4
20227
+ ldr r4, .L3162+8
20228
+ ldrh r0, [r5, #2328]
20229
+ strh r3, [r6, #1344] @ movhi
20230
+ strh r7, [r6, #1342] @ movhi
1993220231 bl FtlFreeSysBlkQueueInit
1993320232 bl FtlScanSysBlk
1993420233 ldrh r3, [r4, #540]
1993520234 cmp r3, r7
19936
- bne .L3260
19937
-.L3262:
19938
- mov r7, #-1
19939
- b .L3261
19940
-.L3260:
20235
+ mov r7, r6
20236
+ bne .L3146
20237
+.L3148:
20238
+ mov r6, #-1
20239
+.L3145:
20240
+ mov r0, r6
20241
+ pop {r3, r4, r5, r6, r7, pc}
20242
+.L3146:
1994120243 bl FtlLoadSysInfo
19942
- mov r7, r0
20244
+ mov r6, r0
1994320245 cmp r0, #0
19944
- bne .L3262
20246
+ bne .L3148
1994520247 bl FtlLoadMapInfo
1994620248 bl FtlLoadVonderInfo
1994720249 bl Ftl_load_ext_data
....@@ -19951,405 +20253,399 @@
1995120253 bl FtlPowerLostRecovery
1995220254 movs r0, #1
1995320255 bl FtlUpdateVaildLpn
19954
- ldrh r1, [r5, #2426]
19955
- ldr r2, [r4, #460]
20256
+ ldrh r1, [r5, #2430]
20257
+ mov r3, r6
20258
+ ldr r2, [r4, #464]
1995620259 movs r0, #12
19957
- mov r3, r7
19958
-.L3263:
20260
+.L3149:
1995920261 cmp r3, r1
19960
- bge .L3268
19961
- mla lr, r0, r3, r2
19962
- ldr lr, [lr, #4]
19963
- cmp lr, #0
19964
- bge .L3264
19965
-.L3268:
19966
- ldrh r2, [r4, #268]
20262
+ bge .L3154
20263
+ mla ip, r0, r3, r2
20264
+ ldr ip, [ip, #4]
20265
+ cmp ip, #0
20266
+ bge .L3150
20267
+.L3154:
20268
+ ldrh r2, [r4, #272]
1996720269 cmp r3, r1
1996820270 add r2, r2, #1
19969
- strh r2, [r4, #268] @ movhi
19970
- bge .L3275
19971
- b .L3265
19972
-.L3264:
19973
- adds r3, r3, #1
19974
- b .L3263
19975
-.L3275:
19976
- ldrh r3, [r6, #842]
19977
- cbz r3, .L3269
19978
-.L3265:
19979
- ldrh r1, [r4, #316]
19980
- ldr r2, [r4, #296]
19981
- ldrh r0, [r4, #320]
20271
+ strh r2, [r4, #272] @ movhi
20272
+ bge .L3161
20273
+.L3151:
20274
+ ldrh r1, [r4, #320]
20275
+ ldr r2, [r4, #300]
20276
+ ldrh r0, [r4, #324]
1998220277 ldrh r3, [r2, r1, lsl #1]
1998320278 subs r3, r3, r0
1998420279 strh r3, [r2, r1, lsl #1] @ movhi
19985
- ldr r1, [r4, #296]
19986
- ldrh r3, [r5, #2388]
19987
- ldrh r0, [r4, #364]
19988
- ldrh r6, [r4, #368]
19989
- strh r3, [r4, #318] @ movhi
20280
+ ldrh r3, [r5, #2390]
20281
+ ldr r1, [r4, #300]
20282
+ ldrh r0, [r4, #368]
20283
+ strh r3, [r4, #322] @ movhi
1999020284 movs r3, #0
19991
- strb r3, [r4, #322]
19992
- strh r3, [r4, #320] @ movhi
20285
+ strb r3, [r4, #326]
20286
+ strh r3, [r4, #324] @ movhi
20287
+ ldrh r7, [r4, #372]
1999320288 ldrh r2, [r1, r0, lsl #1]
19994
- subs r2, r2, r6
20289
+ subs r2, r2, r7
1999520290 strh r2, [r1, r0, lsl #1] @ movhi
19996
- ldrh r2, [r5, #2388]
19997
- strb r3, [r4, #370]
19998
- strh r3, [r4, #368] @ movhi
19999
- ldrh r3, [r4, #270]
20000
- strh r2, [r4, #366] @ movhi
20291
+ strb r3, [r4, #374]
20292
+ strh r3, [r4, #372] @ movhi
20293
+ ldrh r3, [r4, #274]
20294
+ ldrh r2, [r5, #2390]
2000120295 adds r3, r3, #1
20002
- strh r3, [r4, #270] @ movhi
20296
+ strh r2, [r4, #370] @ movhi
20297
+ strh r3, [r4, #274] @ movhi
2000320298 bl l2p_flush
2000420299 bl FtlVpcTblFlush
2000520300 bl FtlVpcTblFlush
20006
-.L3269:
20007
- ldrh r0, [r4, #316]
20301
+ b .L3155
20302
+.L3150:
20303
+ adds r3, r3, #1
20304
+ b .L3149
20305
+.L3161:
20306
+ ldrh r3, [r7, #1344]
20307
+ cmp r3, #0
20308
+ bne .L3151
20309
+.L3155:
20310
+ ldrh r0, [r4, #320]
2000820311 movw r3, #65535
20009
- ldr r6, .L3276+8
2001020312 cmp r0, r3
20011
- beq .L3270
20012
- ldrh r3, [r6, #320]
20013
- cbnz r3, .L3270
20014
- ldrh r3, [r6, #368]
20015
- cbnz r3, .L3270
20313
+ beq .L3156
20314
+ ldrh r3, [r4, #324]
20315
+ cbnz r3, .L3156
20316
+ ldrh r3, [r4, #372]
20317
+ cbnz r3, .L3156
2001620318 bl FtlGcRefreshOpenBlock
20017
- ldrh r0, [r6, #364]
20319
+ ldrh r0, [r4, #368]
2001820320 bl FtlGcRefreshOpenBlock
2001920321 bl FtlVpcTblFlush
20020
- add r0, r6, #316
20322
+ ldr r0, .L3162+12
2002120323 bl allocate_new_data_superblock
20022
- add r0, r6, #364
20324
+ ldr r0, .L3162+16
2002320325 bl allocate_new_data_superblock
20024
-.L3270:
20025
- ldrb r3, [r5] @ zero_extendqisi2
20026
- cbnz r3, .L3271
20027
- ldrh r3, [r4, #268]
20326
+.L3156:
20327
+ ldrb r3, [r5, #36] @ zero_extendqisi2
20328
+ cbnz r3, .L3157
20329
+ ldrh r3, [r4, #272]
2002820330 lsls r3, r3, #27
20029
- bne .L3261
20030
-.L3271:
20331
+ bne .L3145
20332
+.L3157:
2003120333 bl FtlVpcCheckAndModify
20032
-.L3261:
20033
- mov r0, r7
20034
- pop {r3, r4, r5, r6, r7, pc}
20035
-.L3277:
20334
+ b .L3145
20335
+.L3163:
2003620336 .align 2
20037
-.L3276:
20337
+.L3162:
2003820338 .word .LANCHOR0
20039
- .word .LANCHOR5
20339
+ .word .LANCHOR4
2004020340 .word .LANCHOR2
20341
+ .word .LANCHOR2+320
20342
+ .word .LANCHOR2+368
2004120343 .fnend
2004220344 .size FtlSysBlkInit, .-FtlSysBlkInit
2004320345 .align 1
2004420346 .global FtlLowFormat
20347
+ .syntax unified
2004520348 .thumb
2004620349 .thumb_func
20350
+ .fpu softvfp
2004720351 .type FtlLowFormat, %function
2004820352 FtlLowFormat:
2004920353 .fnstart
20050
- @ args = 0, pretend = 0, frame = 8
20354
+ @ args = 0, pretend = 0, frame = 0
2005120355 @ frame_needed = 0, uses_anonymous_args = 0
20052
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
20053
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
20054
- .pad #12
20055
- ldr r4, .L3312
20056
- ldr r6, [r4, #224]
20356
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
20357
+ .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
20358
+ ldr r4, .L3195
20359
+ ldr r6, [r4, #228]
2005720360 cmp r6, #0
20058
- bne .L3280
20059
- ldr r5, .L3312+4
20361
+ bne .L3166
20362
+ ldr r5, .L3195+4
2006020363 mov r1, r6
2006120364 ldr r0, [r4, #3392]
20062
- ldrh r2, [r5, #2424]
20365
+ ldrh r2, [r5, #2428]
2006320366 lsls r2, r2, #2
2006420367 bl ftl_memset
20065
- ldrh r2, [r5, #2424]
20368
+ ldrh r2, [r5, #2428]
2006620369 mov r1, r6
2006720370 ldr r0, [r4, #3388]
2006820371 lsls r2, r2, #2
2006920372 bl ftl_memset
20070
- ldrh r0, [r5, #2324]
20373
+ ldrh r0, [r5, #2328]
2007120374 str r6, [r4, #508]
2007220375 str r6, [r4, #512]
2007320376 bl FtlFreeSysBlkQueueInit
2007420377 bl FtlLoadBbt
20075
- cbz r0, .L3281
20378
+ cbz r0, .L3167
2007620379 bl FtlMakeBbt
20077
-.L3281:
20078
- ldr r0, .L3312+8
20380
+.L3167:
20381
+ ldr r0, .L3195+8
2007920382 movs r2, #0
20080
-.L3282:
20081
- ldrh r1, [r5, #2394]
20383
+.L3168:
20384
+ ldrh r1, [r5, #2396]
2008220385 uxth r3, r2
2008320386 adds r2, r2, #1
2008420387 cmp r3, r1, lsl #7
20085
- bge .L3309
20388
+ blt .L3169
20389
+ ldrh r7, [r5, #2332]
20390
+ movs r6, #0
20391
+.L3170:
20392
+ ldrh r3, [r5, #2334]
20393
+ cmp r3, r7
20394
+ bhi .L3171
20395
+ ldrh r1, [r5, #2324]
20396
+ subs r3, r6, #3
20397
+ cmp r3, r1, lsl #1
20398
+ blt .L3172
20399
+ mov r0, r6
20400
+ movs r6, #0
20401
+ bl __aeabi_uidiv
20402
+ ldr r3, [r5, #2424]
20403
+ add r0, r0, r3
20404
+ uxth r0, r0
20405
+ bl FtlSysBlkNumInit
20406
+ ldrh r0, [r5, #2328]
20407
+ bl FtlFreeSysBlkQueueInit
20408
+ ldrh r7, [r5, #2332]
20409
+.L3173:
20410
+ ldrh r3, [r5, #2334]
20411
+ cmp r3, r7
20412
+ bhi .L3174
20413
+.L3172:
20414
+ movs r7, #0
20415
+ mov r8, r7
20416
+.L3175:
20417
+ ldrh r3, [r5, #2332]
20418
+ uxth r0, r7
20419
+ adds r7, r7, #1
20420
+ cmp r3, r0
20421
+ bhi .L3176
20422
+ ldrh r3, [r5, #2334]
20423
+ ldrh r7, [r5, #2324]
20424
+ ldr fp, [r5, #2336]
20425
+ str r3, [r4, #3292]
20426
+ mov r1, r7
20427
+ mov r0, fp
20428
+ bl __aeabi_uidiv
20429
+ ubfx r9, r0, #5, #16
20430
+ mov r10, r0
20431
+ add r3, r9, #36
20432
+ str r0, [r5, #2452]
20433
+ strh r3, [r4, #536] @ movhi
20434
+ movs r3, #24
20435
+ muls r3, r7, r3
20436
+ cmp r8, r3
20437
+ ble .L3177
20438
+ mov r1, r7
20439
+ sub r0, fp, r8
20440
+ bl __aeabi_uidiv
20441
+ str r0, [r5, #2452]
20442
+ lsrs r0, r0, #5
20443
+ adds r0, r0, #24
20444
+ strh r0, [r4, #536] @ movhi
20445
+.L3177:
20446
+ ldr r3, [r5, #2248]
20447
+ cmp r3, #1
20448
+ bne .L3178
20449
+ ldrh fp, [r4, #536]
20450
+ mov r1, r7
20451
+ mov r0, r8
20452
+ bl __aeabi_uidiv
20453
+ uxtah r0, fp, r0
20454
+ add fp, fp, r0, asr #2
20455
+ strh fp, [r4, #536] @ movhi
20456
+.L3178:
20457
+ ldrb r3, [r5, #152] @ zero_extendqisi2
20458
+ cbz r3, .L3179
20459
+ ldrh fp, [r4, #536]
20460
+ mov r1, r7
20461
+ mov r0, r8
20462
+ bl __aeabi_uidiv
20463
+ uxtah r0, fp, r0
20464
+ add fp, fp, r0, asr #2
20465
+ strh fp, [r4, #536] @ movhi
20466
+.L3179:
20467
+ ldrh r3, [r5, #2384]
20468
+ cbz r3, .L3181
20469
+ ldrh r2, [r4, #536]
20470
+ add r2, r2, r3, lsr #1
20471
+ strh r2, [r4, #536] @ movhi
20472
+ mul r2, r7, r3
20473
+ cmp r8, r2
20474
+ itttt lt
20475
+ addlt r3, r3, #32
20476
+ strlt r10, [r5, #2452]
20477
+ addlt r3, r3, r9
20478
+ strhlt r3, [r4, #536] @ movhi
20479
+.L3181:
20480
+ ldrh r2, [r4, #536]
20481
+ ldr r3, [r5, #2452]
20482
+ ldr r9, .L3195+28
20483
+ subs r3, r3, r2
20484
+ muls r7, r3, r7
20485
+ ldrh r3, [r5, #2390]
20486
+ str r7, [r9, #1292]
20487
+ muls r7, r3, r7
20488
+ ldrh r3, [r5, #2396]
20489
+ str r7, [r5, #2452]
20490
+ muls r7, r3, r7
20491
+ str r7, [r5, #2432]
20492
+ bl FtlBbmTblFlush
20493
+ ldr r2, [r5, #2340]
20494
+ add r1, r6, r8
20495
+ ldrh r3, [r5, #2404]
20496
+ add r3, r3, r2, lsr #3
20497
+ cmp r1, r3
20498
+ bls .L3183
20499
+ lsrs r2, r2, #5
20500
+ ldr r0, .L3195+12
20501
+ bl printk
20502
+.L3183:
20503
+ ldrh r2, [r5, #2334]
20504
+ movs r1, #0
20505
+ ldr r0, [r4, #300]
20506
+ movw r7, #65535
20507
+ lsls r2, r2, #1
20508
+ bl ftl_memset
20509
+ ldrh r2, [r5, #2332]
20510
+ movs r3, #0
20511
+ ldr r0, [r5, #32]
20512
+ movs r1, #255
20513
+ ldr r5, .L3195+16
20514
+ str r3, [r4, #472]
20515
+ strh r3, [r4, #558] @ movhi
20516
+ lsrs r2, r2, #3
20517
+ strb r3, [r4, #562]
20518
+ strb r3, [r4, #564]
20519
+ strh r3, [r4, #322] @ movhi
20520
+ strb r3, [r4, #326]
20521
+ strh r3, [r4, #320] @ movhi
20522
+ movs r3, #1
20523
+ strh r7, [r4, #556] @ movhi
20524
+ strb r3, [r4, #328]
20525
+ bl ftl_memset
20526
+.L3184:
20527
+ mov r0, r5
20528
+ bl make_superblock
20529
+ ldrb r3, [r4, #327] @ zero_extendqisi2
20530
+ ldrh r2, [r4, #320]
20531
+ cbnz r3, .L3185
20532
+ ldr r3, [r4, #300]
20533
+ strh r7, [r3, r2, lsl #1] @ movhi
20534
+ ldrh r3, [r4, #320]
20535
+ adds r3, r3, #1
20536
+ strh r3, [r4, #320] @ movhi
20537
+ b .L3184
20538
+.L3169:
2008620539 ldr r6, [r4, #3332]
2008720540 mvns r1, r3
2008820541 orr r1, r3, r1, lsl #16
2008920542 str r1, [r6, r3, lsl #2]
2009020543 ldr r1, [r4, #3336]
2009120544 str r0, [r1, r3, lsl #2]
20092
- b .L3282
20093
-.L3309:
20094
- ldr r3, .L3312+4
20095
- movs r6, #0
20096
- ldrh r7, [r3, #2328]
20097
-.L3284:
20098
- ldrh r3, [r5, #2330]
20099
- ldr r8, .L3312+4
20100
- cmp r3, r7
20101
- bls .L3310
20545
+ b .L3168
20546
+.L3171:
2010220547 mov r0, r7
2010320548 movs r1, #1
2010420549 bl FtlLowFormatEraseBlock
2010520550 adds r7, r7, #1
20551
+ add r6, r6, r0
20552
+ uxth r6, r6
2010620553 uxth r7, r7
20107
- add r0, r0, r6
20108
- uxth r6, r0
20109
- b .L3284
20110
-.L3310:
20111
- ldrh r1, [r8, #2320]
20112
- subs r3, r6, #3
20113
- cmp r3, r1, lsl #1
20114
- blt .L3286
20115
- mov r0, r6
20116
- movs r6, #0
20117
- bl __aeabi_uidiv
20118
- ldr r3, [r8, #2420]
20119
- add r0, r0, r3
20120
- uxth r0, r0
20121
- bl FtlSysBlkNumInit
20122
- ldrh r0, [r8, #2324]
20123
- bl FtlFreeSysBlkQueueInit
20124
- ldrh r7, [r8, #2328]
20125
-.L3287:
20126
- ldrh r3, [r5, #2330]
20127
- cmp r3, r7
20128
- bls .L3286
20554
+ b .L3170
20555
+.L3174:
2012920556 mov r0, r7
2013020557 movs r1, #1
2013120558 bl FtlLowFormatEraseBlock
2013220559 adds r7, r7, #1
20560
+ add r6, r6, r0
20561
+ uxth r6, r6
2013320562 uxth r7, r7
20134
- add r0, r0, r6
20135
- uxth r6, r0
20136
- b .L3287
20137
-.L3286:
20138
- mov r8, #0
20139
- mov r7, r8
20140
-.L3289:
20141
- ldrh r3, [r5, #2328]
20142
- uxth r0, r8
20143
- ldr fp, .L3312+4
20144
- add r8, r8, #1
20145
- cmp r3, r0
20146
- bls .L3311
20563
+ b .L3173
20564
+.L3176:
2014720565 movs r1, #0
2014820566 bl FtlLowFormatEraseBlock
20149
- add r0, r0, r7
20150
- uxth r7, r0
20151
- b .L3289
20152
-.L3311:
20153
- ldr r2, [fp, #2332]
20154
- ldrh r3, [fp, #2330]
20155
- ldrh r8, [fp, #2320]
20156
- mov r0, r2
20157
- str r2, [sp, #4]
20158
- str r3, [r4, #3292]
20159
- mov r1, r8
20160
- bl __aeabi_uidiv
20161
- ubfx r9, r0, #5, #16
20162
- mov r10, r0
20163
- add r3, r9, #36
20164
- strh r3, [r4, #536] @ movhi
20165
- movs r3, #24
20166
- str r0, [fp, #2448]
20167
- ldr r2, [sp, #4]
20168
- mul r3, r3, r8
20169
- cmp r7, r3
20170
- ble .L3291
20171
- subs r0, r2, r7
20172
- mov r1, r8
20173
- bl __aeabi_uidiv
20174
- ldr r3, .L3312
20175
- str r0, [fp, #2448]
20176
- lsrs r0, r0, #5
20177
- adds r0, r0, #24
20178
- strh r0, [r3, #536] @ movhi
20179
-.L3291:
20180
- ldr r3, [r5, #2244]
20181
- cmp r3, #1
20182
- bne .L3292
20183
- mov r0, r7
20184
- mov r1, r8
20185
- bl __aeabi_uidiv
20186
- ldrh fp, [r4, #536]
20187
- uxtah r0, fp, r0
20188
- add fp, fp, r0, asr #2
20189
- strh fp, [r4, #536] @ movhi
20190
-.L3292:
20191
- ldrb r3, [r5, #144] @ zero_extendqisi2
20192
- cbz r3, .L3293
20193
- mov r0, r7
20194
- mov r1, r8
20195
- bl __aeabi_uidiv
20196
- ldrh fp, [r4, #536]
20197
- uxtah r0, fp, r0
20198
- add fp, fp, r0, asr #2
20199
- strh fp, [r4, #536] @ movhi
20200
-.L3293:
20201
- ldrh r3, [r5, #2382]
20202
- cbz r3, .L3295
20203
- ldrh r2, [r4, #536]
20204
- add r2, r2, r3, lsr #1
20205
- strh r2, [r4, #536] @ movhi
20206
- mul r2, r8, r3
20207
- cmp r2, r7
20208
- itttt gt
20209
- addgt r3, r3, #32
20210
- ldrgt r2, .L3312+4
20211
- addgt r3, r3, r9
20212
- strgt r10, [r2, #2448]
20213
- itt gt
20214
- ldrgt r2, .L3312
20215
- strhgt r3, [r2, #536] @ movhi
20216
-.L3295:
20217
- ldrh r2, [r4, #536]
20218
- ldr r3, [r5, #2448]
20219
- subs r3, r3, r2
20220
- ldrh r2, [r5, #2388]
20221
- mul r3, r8, r3
20222
- ldr r8, .L3312+20
20223
- str r3, [r8, #1284]
20224
- muls r3, r2, r3
20225
- ldrh r2, [r5, #2394]
20226
- str r3, [r5, #2448]
20227
- muls r3, r2, r3
20228
- str r3, [r5, #2428]
20229
- bl FtlBbmTblFlush
20230
- ldr r2, [r5, #2336]
20231
- adds r1, r7, r6
20232
- ldrh r3, [r5, #2402]
20233
- add r3, r3, r2, lsr #3
20234
- cmp r1, r3
20235
- bls .L3297
20236
- ldr r0, .L3312+12
20237
- lsrs r2, r2, #5
20238
- bl printk
20239
-.L3297:
20240
- ldrh r2, [r5, #2330]
20241
- movs r1, #0
20242
- ldr r0, [r4, #296]
20243
- movs r7, #0
20244
- movw r6, #65535
20245
- lsls r2, r2, #1
20246
- bl ftl_memset
20247
- ldrh r2, [r5, #2328]
20248
- ldr r0, [r4, #472]
20249
- movs r1, #255
20250
- str r7, [r4, #468]
20251
- movs r3, #1
20252
- lsrs r2, r2, #3
20253
- strh r7, [r4, #558] @ movhi
20254
- strb r7, [r4, #562]
20255
- strb r7, [r4, #564]
20256
- strh r7, [r4, #318] @ movhi
20257
- strb r7, [r4, #322]
20258
- strh r7, [r4, #316] @ movhi
20259
- strh r6, [r4, #556] @ movhi
20260
- strb r3, [r4, #324]
20261
- bl ftl_memset
20262
- ldr r7, .L3312
20263
-.L3298:
20264
- ldr r5, .L3312
20265
- add r0, r5, #316
20266
- bl make_superblock
20267
- ldrb r3, [r4, #323] @ zero_extendqisi2
20268
- ldrh r2, [r4, #316]
20269
- cbnz r3, .L3299
20270
- ldr r3, [r7, #296]
20271
- strh r6, [r3, r2, lsl #1] @ movhi
20272
- ldrh r3, [r7, #316]
20567
+ add r8, r8, r0
20568
+ uxth r8, r8
20569
+ b .L3175
20570
+.L3185:
20571
+ ldr r3, [r4, #508]
20572
+ movw r5, #65535
20573
+ ldrh r1, [r4, #324]
20574
+ ldr r7, .L3195+20
20575
+ str r3, [r4, #332]
2027320576 adds r3, r3, #1
20274
- strh r3, [r7, #316] @ movhi
20275
- b .L3298
20276
-.L3299:
20277
- ldr r3, [r5, #508]
20278
- movw r7, #65535
20279
- ldrh r1, [r5, #320]
20280
- str r3, [r5, #328]
20281
- adds r3, r3, #1
20282
- str r3, [r5, #508]
20283
- ldr r3, [r5, #296]
20577
+ str r3, [r4, #508]
20578
+ ldr r3, [r4, #300]
2028420579 strh r1, [r3, r2, lsl #1] @ movhi
2028520580 movs r3, #0
20286
- strh r3, [r5, #366] @ movhi
20287
- strb r3, [r5, #370]
20288
- ldrh r3, [r5, #316]
20581
+ strh r3, [r4, #370] @ movhi
20582
+ strb r3, [r4, #374]
20583
+ ldrh r3, [r4, #320]
2028920584 adds r3, r3, #1
20290
- strh r3, [r5, #364] @ movhi
20585
+ strh r3, [r4, #368] @ movhi
2029120586 movs r3, #1
20292
- strb r3, [r5, #372]
20293
-.L3300:
20294
- ldr r6, .L3312
20295
- add r0, r6, #364
20587
+ strb r3, [r4, #376]
20588
+.L3186:
20589
+ mov r0, r7
2029620590 bl make_superblock
20297
- ldrb r3, [r4, #371] @ zero_extendqisi2
20298
- ldrh r2, [r4, #364]
20299
- cbnz r3, .L3301
20300
- ldr r3, [r5, #296]
20301
- strh r7, [r3, r2, lsl #1] @ movhi
20302
- ldrh r3, [r5, #364]
20591
+ ldrb r3, [r4, #375] @ zero_extendqisi2
20592
+ ldrh r2, [r4, #368]
20593
+ cbnz r3, .L3187
20594
+ ldr r3, [r4, #300]
20595
+ strh r5, [r3, r2, lsl #1] @ movhi
20596
+ ldrh r3, [r4, #368]
2030320597 adds r3, r3, #1
20304
- strh r3, [r5, #364] @ movhi
20305
- b .L3300
20306
-.L3301:
20307
- ldr r3, [r6, #508]
20308
- movw r4, #65535
20309
- ldrh r1, [r6, #368]
20310
- str r3, [r6, #376]
20598
+ strh r3, [r4, #368] @ movhi
20599
+ b .L3186
20600
+.L3187:
20601
+ ldr r3, [r4, #508]
20602
+ movw r5, #65535
20603
+ ldrh r1, [r4, #372]
20604
+ str r3, [r4, #380]
2031120605 adds r3, r3, #1
20312
- str r3, [r6, #508]
20313
- ldr r3, [r6, #296]
20606
+ str r3, [r4, #508]
20607
+ ldr r3, [r4, #300]
2031420608 strh r1, [r3, r2, lsl #1] @ movhi
20315
- strh r4, [r6, #412] @ movhi
20609
+ strh r5, [r4, #416] @ movhi
2031620610 bl FtlFreeSysBlkQueueOut
2031720611 movs r3, #0
20318
- strh r3, [r6, #542] @ movhi
20319
- ldr r3, [r8, #1284]
20320
- strh r4, [r6, #544] @ movhi
20321
- strh r3, [r6, #546] @ movhi
20322
- ldr r3, [r6, #508]
20323
- str r3, [r6, #548]
20612
+ strh r0, [r4, #540] @ movhi
20613
+ strh r3, [r4, #542] @ movhi
20614
+ ldr r3, [r9, #1292]
20615
+ strh r5, [r4, #544] @ movhi
20616
+ strh r3, [r4, #546] @ movhi
20617
+ ldr r3, [r4, #508]
20618
+ str r3, [r4, #548]
2032420619 adds r3, r3, #1
20325
- str r3, [r6, #508]
20326
- strh r0, [r6, #540] @ movhi
20620
+ str r3, [r4, #508]
2032720621 bl FtlVpcTblFlush
2032820622 bl FtlSysBlkInit
20329
- cbnz r0, .L3280
20330
- ldr r3, .L3312+16
20623
+ cbnz r0, .L3166
20624
+ ldr r3, .L3195+24
2033120625 movs r2, #1
20332
- str r2, [r3, #504]
20333
-.L3280:
20626
+ str r2, [r3, #500]
20627
+.L3166:
2033420628 movs r0, #0
20335
- add sp, sp, #12
20336
- @ sp needed
20337
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
20338
-.L3313:
20629
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
20630
+.L3196:
2033920631 .align 2
20340
-.L3312:
20632
+.L3195:
2034120633 .word .LANCHOR2
2034220634 .word .LANCHOR0
2034320635 .word 168778952
2034420636 .word .LC156
20637
+ .word .LANCHOR2+320
20638
+ .word .LANCHOR2+368
2034520639 .word .LANCHOR1
2034620640 .word .LANCHOR4
2034720641 .fnend
2034820642 .size FtlLowFormat, .-FtlLowFormat
2034920643 .align 1
2035020644 .global FtlReInitForSDUpdata
20645
+ .syntax unified
2035120646 .thumb
2035220647 .thumb_func
20648
+ .fpu softvfp
2035320649 .type FtlReInitForSDUpdata, %function
2035420650 FtlReInitForSDUpdata:
2035520651 .fnstart
....@@ -20358,168 +20654,179 @@
2035820654 push {r0, r1, r2, r3, r4, r5, r6, lr}
2035920655 .save {r4, r5, r6, lr}
2036020656 .pad #16
20361
- ldr r4, .L3342
20362
- ldrb r3, [r4, #144] @ zero_extendqisi2
20363
- cbz r3, .L3315
20364
-.L3317:
20365
- movs r0, #0
20366
- b .L3316
20367
-.L3315:
20368
- ldr r5, .L3342+4
20369
- ldr r0, [r5, #1180]
20370
- bl FlashInit
20371
- cmp r0, #0
20372
- bne .L3317
20373
- bl FlashLoadFactorBbt
20374
- cbz r0, .L3318
20375
- bl FlashMakeFactorBbt
20376
-.L3318:
20377
- ldr r0, [r5, #1212]
20378
- bl FlashReadIdbDataRaw
20379
- cbz r0, .L3319
20380
- movs r1, #0
20381
- movs r2, #16
20382
- mov r0, sp
20383
- movs r6, #1
20384
- bl FlashReadFacBbtData
20385
- movs r3, #0
20386
- mov r2, r3
20387
- ldr r1, [sp]
20388
-.L3320:
20389
- lsl r5, r6, r2
20390
- adds r0, r3, #1
20391
- tst r5, r1
20392
- add r2, r2, #1
20393
- it ne
20394
- movne r3, r0
20395
- cmp r2, #16
20396
- bne .L3320
20397
- cmp r3, #6
20398
- bls .L3338
20399
- movs r2, #0
20400
- movs r6, #1
20401
-.L3323:
20402
- lsl r5, r6, r2
20403
- adds r0, r3, #1
20404
- tst r5, r1
20405
- add r2, r2, #1
20406
- it ne
20407
- movne r3, r0
20408
- cmp r2, #24
20409
- bne .L3323
20410
- cmp r3, #17
20411
- bhi .L3324
20412
-.L3338:
20413
- strb r2, [r4, #1]
20414
- b .L3322
20415
-.L3324:
20416
- movs r3, #36
20417
- strb r3, [r4, #1]
20418
-.L3322:
20419
- ldrb r3, [r4, #1] @ zero_extendqisi2
20420
- strh r3, [r4, #142] @ movhi
20421
-.L3319:
20422
- ldr r1, .L3342+8
20423
- ldr r0, .L3342+12
20424
- bl printk
20425
- ldr r0, .L3342+16
20426
- bl FtlConstantsInit
20427
- bl FtlVariablesInit
20428
- ldrh r0, [r4, #2324]
20429
- bl FtlFreeSysBlkQueueInit
20430
- movs r4, #1
20431
-.L3325:
20432
- bl FtlLoadBbt
20433
- cbz r0, .L3326
20434
-.L3340:
20435
- bl FtlLowFormat
20436
- cmp r4, #3
20437
- bhi .L3341
20438
- adds r4, r4, #1
20439
- b .L3325
20440
-.L3341:
20441
- mov r0, #-1
20442
- b .L3316
20443
-.L3326:
20444
- bl FtlSysBlkInit
20445
- cmp r0, #0
20446
- bne .L3340
20447
- ldr r3, .L3342+20
20448
- movs r2, #1
20449
- str r2, [r3, #504]
20450
-.L3316:
20657
+ ldr r4, .L3232
20658
+ ldrb r3, [r4, #152] @ zero_extendqisi2
20659
+ cbz r3, .L3198
20660
+.L3200:
20661
+ movs r5, #0
20662
+.L3197:
20663
+ mov r0, r5
2045120664 add sp, sp, #16
2045220665 @ sp needed
2045320666 pop {r4, r5, r6, pc}
20454
-.L3343:
20667
+.L3198:
20668
+ ldr r6, .L3232+4
20669
+ ldr r0, [r6, #1180]
20670
+ bl FlashInit
20671
+ mov r5, r0
20672
+ cmp r0, #0
20673
+ bne .L3200
20674
+ bl FlashLoadFactorBbt
20675
+ cbz r0, .L3201
20676
+ bl FlashMakeFactorBbt
20677
+.L3201:
20678
+ ldr r0, [r6, #1220]
20679
+ bl FlashReadIdbDataRaw
20680
+ cbz r0, .L3202
20681
+ movs r2, #16
20682
+ movs r1, #0
20683
+ mov r0, sp
20684
+ bl FlashReadFacBbtData
20685
+ ldr r1, [sp]
20686
+ movs r3, #0
20687
+ mov r2, r3
20688
+ movs r0, #1
20689
+.L3204:
20690
+ lsl r6, r0, r2
20691
+ adds r2, r2, #1
20692
+ tst r6, r1
20693
+ it ne
20694
+ addne r3, r3, #1
20695
+ cmp r2, #16
20696
+ bne .L3204
20697
+ cmp r3, #6
20698
+ bhi .L3205
20699
+.L3229:
20700
+ strb r2, [r4, #37]
20701
+.L3206:
20702
+ ldrb r3, [r4, #37] @ zero_extendqisi2
20703
+ strh r3, [r4, #150] @ movhi
20704
+.L3202:
20705
+ ldr r1, .L3232+8
20706
+ ldr r0, .L3232+12
20707
+ bl printk
20708
+ ldr r0, .L3232+16
20709
+ bl FtlConstantsInit
20710
+ bl FtlVariablesInit
20711
+ ldrh r0, [r4, #2328]
20712
+ movs r4, #1
20713
+ bl FtlFreeSysBlkQueueInit
20714
+.L3210:
20715
+ bl FtlLoadBbt
20716
+ cbz r0, .L3211
20717
+.L3231:
20718
+ bl FtlLowFormat
20719
+ cmp r4, #3
20720
+ bls .L3212
20721
+ mov r5, #-1
20722
+ b .L3197
20723
+.L3205:
20724
+ movs r2, #0
20725
+ movs r0, #1
20726
+.L3208:
20727
+ lsl r6, r0, r2
20728
+ adds r2, r2, #1
20729
+ tst r6, r1
20730
+ it ne
20731
+ addne r3, r3, #1
20732
+ cmp r2, #24
20733
+ bne .L3208
20734
+ cmp r3, #17
20735
+ bls .L3229
20736
+ movs r3, #36
20737
+ strb r3, [r4, #37]
20738
+ b .L3206
20739
+.L3212:
20740
+ adds r4, r4, #1
20741
+ b .L3210
20742
+.L3211:
20743
+ bl FtlSysBlkInit
20744
+ cmp r0, #0
20745
+ bne .L3231
20746
+ ldr r3, .L3232+20
20747
+ movs r2, #1
20748
+ str r2, [r3, #500]
20749
+ b .L3197
20750
+.L3233:
2045520751 .align 2
20456
-.L3342:
20752
+.L3232:
2045720753 .word .LANCHOR0
2045820754 .word .LANCHOR4
20459
- .word .LC77
2046020755 .word .LC76
20461
- .word .LANCHOR0+116
20756
+ .word .LC77
20757
+ .word .LANCHOR0+124
2046220758 .word .LANCHOR1
2046320759 .fnend
2046420760 .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata
2046520761 .align 1
2046620762 .global Ftl_gc_temp_data_write_back
20763
+ .syntax unified
2046720764 .thumb
2046820765 .thumb_func
20766
+ .fpu softvfp
2046920767 .type Ftl_gc_temp_data_write_back, %function
2047020768 Ftl_gc_temp_data_write_back:
2047120769 .fnstart
2047220770 @ args = 0, pretend = 0, frame = 0
2047320771 @ frame_needed = 0, uses_anonymous_args = 0
20474
- push {r4, r5, r6, r7, r8, lr}
20475
- .save {r4, r5, r6, r7, r8, lr}
20476
- ldr r5, .L3360
20477
- ldr r3, [r5, #224]
20478
- cbz r3, .L3345
20479
-.L3348:
20772
+ push {r4, r5, r6, lr}
20773
+ .save {r4, r5, r6, lr}
20774
+ ldr r4, .L3249
20775
+ ldr r3, [r4, #228]
20776
+ cbz r3, .L3235
20777
+.L3238:
2048020778 movs r0, #0
20481
- pop {r4, r5, r6, r7, r8, pc}
20482
-.L3345:
20483
- ldr r3, .L3360+4
20484
- ldrb r3, [r3, #144] @ zero_extendqisi2
20485
- cbz r3, .L3347
20486
- ldr r3, [r5, #1136]
20779
+ pop {r4, r5, r6, pc}
20780
+.L3235:
20781
+ ldr r3, .L3249+4
20782
+ ldrb r3, [r3, #152] @ zero_extendqisi2
20783
+ cbz r3, .L3237
20784
+ ldr r3, [r4, #1136]
2048720785 lsls r3, r3, #31
20488
- bpl .L3347
20489
- ldrh r3, [r5, #416]
20786
+ bpl .L3237
20787
+ ldrh r3, [r4, #420]
2049020788 cmp r3, #0
20491
- bne .L3348
20492
-.L3347:
20493
- movs r2, #0
20494
- ldr r0, [r5, #3308]
20495
- ldr r1, [r5, #1136]
20496
- movs r6, #0
20497
- mov r3, r2
20498
- ldr r7, .L3360
20499
- bl FlashProgPages
20500
- mov r8, #36
20501
-.L3349:
20502
- ldr r1, [r5, #1136]
20503
- uxth r3, r6
20504
- ldr r4, .L3360
20505
- cmp r3, r1
20506
- bcs .L3359
20507
- mul r3, r8, r3
20508
- ldr r0, [r7, #3308]
20509
- adds r6, r6, #1
20510
- adds r1, r0, r3
20511
- ldr r0, [r0, r3]
20512
- ldr r2, [r1, #12]
20513
- cmp r0, #-1
20514
- bne .L3350
20515
- ldrh r1, [r4, #412]
20789
+ bne .L3238
20790
+.L3237:
20791
+ movs r3, #0
2051620792 movs r5, #0
20517
- ldr r2, [r4, #296]
20518
- strh r5, [r2, r1, lsl #1] @ movhi
20519
- ldr r2, [r4, #704]
20520
- strh r0, [r4, #412] @ movhi
20793
+ movs r6, #36
20794
+ mov r2, r3
20795
+ ldr r1, [r4, #1136]
20796
+ ldr r0, [r4, #3308]
20797
+ bl FlashProgPages
20798
+.L3239:
20799
+ ldr r1, [r4, #1136]
20800
+ uxth r3, r5
20801
+ cmp r3, r1
20802
+ bcc .L3241
20803
+ ldr r0, [r4, #3308]
20804
+ bl FtlGcBufFree
20805
+ movs r3, #0
20806
+ str r3, [r4, #1136]
20807
+ ldrh r3, [r4, #420]
20808
+ cmp r3, #0
20809
+ bne .L3238
20810
+ movs r0, #1
20811
+ bl FtlGcFreeTempBlock
20812
+ b .L3248
20813
+.L3241:
20814
+ muls r3, r6, r3
20815
+ ldr r2, [r4, #3308]
20816
+ adds r5, r5, #1
20817
+ adds r1, r2, r3
20818
+ ldr r2, [r2, r3]
20819
+ ldr r0, [r1, #12]
20820
+ cmp r2, #-1
20821
+ bne .L3240
20822
+ ldrh r0, [r4, #416]
20823
+ movs r5, #0
20824
+ ldr r1, [r4, #300]
20825
+ strh r5, [r1, r0, lsl #1] @ movhi
20826
+ strh r2, [r4, #416] @ movhi
20827
+ ldr r2, [r4, #700]
2052120828 adds r2, r2, #1
20522
- str r2, [r4, #704]
20829
+ str r2, [r4, #700]
2052320830 ldr r2, [r4, #3308]
2052420831 add r3, r3, r2
2052520832 ldr r0, [r3, #4]
....@@ -20527,37 +20834,28 @@
2052720834 bl FtlBbmMapBadBlock
2052820835 bl FtlBbmTblFlush
2052920836 bl FtlGcPageVarInit
20530
- b .L3358
20531
-.L3350:
20532
- ldr r0, [r2, #12]
20837
+.L3248:
20838
+ movs r0, #1
20839
+ pop {r4, r5, r6, pc}
20840
+.L3240:
20841
+ ldr r2, [r0, #8]
2053320842 ldr r1, [r1, #4]
20534
- ldr r2, [r2, #8]
20843
+ ldr r0, [r0, #12]
2053520844 bl FtlGcUpdatePage
20536
- b .L3349
20537
-.L3359:
20538
- ldr r0, [r4, #3308]
20539
- bl FtlGcBufFree
20540
- movs r3, #0
20541
- str r3, [r4, #1136]
20542
- ldrh r3, [r4, #416]
20543
- cmp r3, #0
20544
- bne .L3348
20545
- movs r0, #1
20546
- bl FtlGcFreeTempBlock
20547
-.L3358:
20548
- movs r0, #1
20549
- pop {r4, r5, r6, r7, r8, pc}
20550
-.L3361:
20845
+ b .L3239
20846
+.L3250:
2055120847 .align 2
20552
-.L3360:
20848
+.L3249:
2055320849 .word .LANCHOR2
2055420850 .word .LANCHOR0
2055520851 .fnend
2055620852 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
2055720853 .align 1
2055820854 .global Ftl_get_new_temp_ppa
20855
+ .syntax unified
2055920856 .thumb
2056020857 .thumb_func
20858
+ .fpu softvfp
2056120859 .type Ftl_get_new_temp_ppa, %function
2056220860 Ftl_get_new_temp_ppa:
2056320861 .fnstart
....@@ -20566,19 +20864,19 @@
2056620864 push {r3, r4, r5, lr}
2056720865 .save {r3, r4, r5, lr}
2056820866 movw r3, #65535
20569
- ldr r4, .L3365
20570
- ldrh r2, [r4, #412]
20867
+ ldr r4, .L3254
20868
+ ldrh r2, [r4, #416]
2057120869 cmp r2, r3
20572
- beq .L3363
20573
- ldrh r3, [r4, #416]
20574
- cbnz r3, .L3364
20575
-.L3363:
20870
+ beq .L3252
20871
+ ldrh r3, [r4, #420]
20872
+ cbnz r3, .L3253
20873
+.L3252:
2057620874 bl FtlCacheWriteBack
2057720875 movs r0, #0
2057820876 movs r5, #0
2057920877 bl FtlGcFreeTempBlock
20580
- ldr r0, .L3365+4
20581
- strb r5, [r4, #420]
20878
+ ldr r0, .L3254+4
20879
+ strb r5, [r4, #424]
2058220880 bl allocate_data_superblock
2058320881 strh r5, [r4, #1164] @ movhi
2058420882 strh r5, [r4, #1172] @ movhi
....@@ -20586,970 +20884,941 @@
2058620884 mov r0, r5
2058720885 bl FtlEctTblFlush
2058820886 bl FtlVpcTblFlush
20589
-.L3364:
20590
- ldr r0, .L3365+4
20887
+.L3253:
20888
+ ldr r0, .L3254+4
2059120889 pop {r3, r4, r5, lr}
2059220890 b get_new_active_ppa
20593
-.L3366:
20891
+.L3255:
2059420892 .align 2
20595
-.L3365:
20893
+.L3254:
2059620894 .word .LANCHOR2
20597
- .word .LANCHOR2+412
20895
+ .word .LANCHOR2+416
2059820896 .fnend
2059920897 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
2060020898 .align 1
2060120899 .global ftl_do_gc
20900
+ .syntax unified
2060220901 .thumb
2060320902 .thumb_func
20903
+ .fpu softvfp
2060420904 .type ftl_do_gc, %function
2060520905 ftl_do_gc:
2060620906 .fnstart
2060720907 @ args = 0, pretend = 0, frame = 32
2060820908 @ frame_needed = 0, uses_anonymous_args = 0
20609
- ldr r3, .L3540
20909
+ ldr r3, .L3422
2061020910 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2061120911 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2061220912 mov r8, r0
20613
- ldr r0, [r3, #224]
2061420913 .pad #44
2061520914 sub sp, sp, #44
20616
- mov r6, r1
20617
- mov r7, r3
20915
+ mov r7, r1
20916
+ mov r6, r3
20917
+ ldr r0, [r3, #228]
2061820918 cmp r0, #0
20619
- bne .L3467
20620
- ldr r1, .L3540+4
20621
- ldr r4, [r1, #504]
20919
+ bne .L3355
20920
+ ldr r1, .L3422+4
20921
+ ldr r4, [r1, #500]
2062220922 cmp r4, #1
20623
- bne .L3527
20923
+ bne .L3256
2062420924 ldr r2, [r3, #3280]
2062520925 cmp r2, #0
20626
- bne .L3527
20627
- ldrh r0, [r3, #304]
20926
+ bne .L3256
20927
+ ldrh r0, [r3, #308]
2062820928 cmp r0, #47
20629
- bls .L3470
20630
- ldrh r1, [r1, #3448]
20929
+ bls .L3355
20930
+ ldrh r1, [r1, #3444]
2063120931 movw r2, #65535
2063220932 cmp r1, r2
20633
- bne .L3369
20634
-.L3372:
20635
- ldrh r4, [r7, #1176]
20636
- movw r1, #65535
20637
- ldr r3, .L3540
20638
- cmp r4, r1
20639
- bne .L3370
20640
- b .L3371
20641
-.L3369:
20642
- ldrh r3, [r3, #412]
20643
- cmp r3, r2
20644
- beq .L3372
20645
- mov r0, r4
20646
- bl FtlGcFreeTempBlock
20647
- cmp r0, #0
20648
- beq .L3372
20649
- mov r0, r4
20650
- b .L3527
20651
-.L3370:
20652
- ldrh r2, [r3, #1174]
20653
- cmp r2, r1
20654
- bne .L3371
20655
- ldrh r0, [r3, #1178]
20933
+ bne .L3258
20934
+.L3261:
20935
+ ldrh r0, [r6, #1176]
20936
+ movw r2, #65535
2065620937 cmp r0, r2
20657
- beq .L3371
20658
- ldrh r1, [r3, #1180]
20659
- cmp r1, r2
20660
- itttt ne
20661
- strhne r4, [r3, #1174] @ movhi
20662
- strhne r0, [r3, #1176] @ movhi
20663
- strhne r1, [r3, #1178] @ movhi
20664
- strhne r2, [r3, #1180] @ movhi
20665
-.L3371:
20666
- ldr r4, [r7, #1124]
20938
+ bne .L3259
20939
+.L3260:
20940
+ ldr r3, [r6, #1124]
2066720941 cmp r8, #1
20668
- add r4, r4, #1
20669
- add r4, r4, r8, lsl #7
20670
- str r4, [r7, #1124]
20671
- bne .L3383
20672
- ldr r3, .L3540+8
20673
- ldr r2, [r3, #2244]
20674
- mov r10, r3
20675
- cbnz r2, .L3374
20676
- ldrb r3, [r3, #144] @ zero_extendqisi2
20677
- cmp r3, #0
20678
- beq .L3383
20679
-.L3374:
20680
- ldr r3, [r7, #532]
20681
- ldr r5, .L3540
20682
- cmp r3, #39
20683
- bhi .L3383
20684
- ldr r9, .L3540+12
20685
- ldrh r3, [r9, #976]
20686
- add r4, r4, r3
20687
- str r4, [r5, #1124]
20942
+ add r3, r3, #1
20943
+ add r3, r3, r8, lsl #7
20944
+ str r3, [r6, #1124]
20945
+ bne .L3262
20946
+ ldr r2, .L3422+8
20947
+ ldr r1, [r2, #2248]
20948
+ mov r9, r2
20949
+ cbnz r1, .L3263
20950
+ ldrb r2, [r2, #152] @ zero_extendqisi2
20951
+ cmp r2, #0
20952
+ beq .L3262
20953
+.L3263:
20954
+ ldr r2, [r6, #532]
20955
+ cmp r2, #39
20956
+ bhi .L3262
20957
+ ldr r5, .L3422+12
20958
+ movw r4, #65535
20959
+ ldrh r2, [r5, #1480]
20960
+ add r3, r3, r2
20961
+ str r3, [r6, #1124]
2068820962 bl FtlGcReFreshBadBlk
20689
- ldrh r3, [r5, #556]
20690
- movw r2, #65535
20691
- cmp r3, r2
20692
- bne .L3383
20693
- ldrh r2, [r5, #1174]
20963
+ ldrh r3, [r6, #556]
20964
+ cmp r3, r4
20965
+ bne .L3264
20966
+ ldrh r2, [r6, #1174]
2069420967 cmp r2, r3
20695
- bne .L3383
20696
- ldr r3, [r5, #1124]
20968
+ bne .L3352
20969
+ ldr r3, [r6, #1124]
2069720970 cmp r3, #1024
20698
- bhi .L3375
20699
- ldrh r3, [r5, #312]
20971
+ bhi .L3266
20972
+ ldrh r3, [r6, #316]
2070020973 cmp r3, #63
20701
- bhi .L3383
20702
-.L3375:
20703
- ldrh r3, [r7, #1122]
20704
- movs r0, #0
20705
- ldrh r4, [r7, #312]
20974
+ bhi .L3352
20975
+.L3266:
20976
+ ldrh r3, [r6, #1122]
20977
+ movs r2, #0
20978
+ ldrh r1, [r6, #316]
20979
+ strh r2, [r5, #1480] @ movhi
2070620980 adds r3, r3, #64
20707
- ldr r2, .L3540+12
20708
- cmp r4, r3
20709
- strh r0, [r9, #976] @ movhi
20710
- ldr r1, .L3540
20711
- bgt .L3383
20712
- ldr r3, [r1, #532]
20713
- str r0, [r1, #1124]
20714
- cbnz r3, .L3376
20981
+ cmp r1, r3
20982
+ bgt .L3352
20983
+ ldr r3, [r6, #532]
20984
+ str r2, [r6, #1124]
20985
+ cmp r3, #0
20986
+ bne .L3267
2071520987 movs r3, #6
20716
- b .L3528
20717
-.L3376:
20718
- cmp r3, #5
20719
- bhi .L3377
20720
- movs r3, #18
20721
-.L3528:
20722
- strh r3, [r2, #976] @ movhi
20723
-.L3377:
20988
+.L3413:
20989
+ strh r3, [r5, #1480] @ movhi
20990
+.L3268:
2072420991 movs r0, #32
2072520992 bl List_get_gc_head_node
20726
- movw ip, #65535
2072720993 uxth r2, r0
20728
- cmp r2, ip
20729
- beq .L3382
20730
- ldrh r0, [r7, #1128]
20731
- ldr r5, .L3540
20732
- cmp r0, #0
20733
- beq .L3379
20734
- ldrh r4, [r10, #2390]
20735
- ldrh r3, [r10, #2320]
20736
- ldr fp, [r5, #296]
20737
- muls r3, r4, r3
20738
- ldrh r1, [fp, r2, lsl #1]
20739
- adds r3, r3, #1
20740
- cmp r1, r3
20741
- bgt .L3382
20742
- adds r1, r0, #1
20743
- str ip, [sp, #20]
20744
- str r2, [sp, #16]
20745
- mov r10, #0
20746
- uxth r1, r1
20747
- str r10, [r5, #1132]
20748
- strh r1, [r5, #1128] @ movhi
20749
- str r1, [sp, #12]
20994
+ movw r3, #65535
20995
+ str r3, [sp, #16]
20996
+ cmp r2, r3
20997
+ beq .L3272
20998
+ ldrh r4, [r6, #1128]
20999
+ cmp r4, #0
21000
+ beq .L3270
21001
+ ldrh ip, [r9, #2392]
21002
+ uxth r10, r0
21003
+ ldrh r1, [r9, #2324]
21004
+ ldr r2, [r6, #300]
21005
+ mul r1, r1, ip
21006
+ ldrh r0, [r2, r10, lsl #1]
21007
+ str r2, [sp, #12]
21008
+ adds r1, r1, #1
21009
+ cmp r0, r1
21010
+ bgt .L3272
21011
+ add fp, r4, #1
21012
+ mov r0, r4
21013
+ uxth fp, fp
21014
+ mov r9, #0
21015
+ str r9, [r6, #1132]
21016
+ strh fp, [r6, #1128] @ movhi
2075021017 bl List_get_gc_head_node
20751
- ldr ip, [sp, #20]
21018
+ ldr r3, [sp, #16]
2075221019 uxth r4, r0
20753
- ldr r1, [sp, #12]
20754
- cmp r4, ip
20755
- ldr r2, [sp, #16]
20756
- beq .L3382
20757
- ldrh r2, [fp, r2, lsl #1]
20758
- ldrh r3, [fp, r4, lsl #1]
20759
- ldr r0, .L3540+16
21020
+ ldr r2, [sp, #12]
21021
+ cmp r4, r3
21022
+ beq .L3272
21023
+ ldrh r3, [r2, r4, lsl #1]
21024
+ mov r1, fp
21025
+ ldrh r2, [r2, r10, lsl #1]
21026
+ ldr r0, .L3422+16
2076021027 str r2, [sp]
2076121028 mov r2, r4
2076221029 bl printk
20763
- ldrh r3, [r5, #1128]
21030
+ ldrh r3, [r6, #1128]
2076421031 cmp r3, #40
20765
- bls .L3380
20766
- ldr r3, [r5, #296]
21032
+ bls .L3271
21033
+ ldr r3, [r6, #300]
2076721034 ldrh r3, [r3, r4, lsl #1]
2076821035 cmp r3, #32
2076921036 it hi
20770
- strhhi r10, [r5, #1128] @ movhi
20771
-.L3380:
21037
+ strhhi r9, [r6, #1128] @ movhi
21038
+.L3271:
2077221039 movs r3, #6
20773
- strh r3, [r9, #976] @ movhi
20774
- b .L3399
20775
-.L3379:
21040
+ strh r3, [r5, #1480] @ movhi
21041
+.L3264:
21042
+ ldrh r2, [r6, #416]
21043
+ movw r3, #65535
21044
+ cmp r2, r3
21045
+ bne .L3299
21046
+.L3354:
21047
+ ldrh r3, [r6, #1174]
21048
+ movw r2, #65535
21049
+ cmp r3, r2
21050
+ bne .L3299
21051
+ cmp r4, r3
21052
+ bne .L3299
21053
+ ldrh r3, [r6, #556]
21054
+ cmp r3, r4
21055
+ beq .L3300
21056
+.L3305:
21057
+ movw r4, #65535
21058
+.L3299:
21059
+ ldr r3, .L3422+8
21060
+ ldr r3, [r3, #2248]
21061
+ cmp r3, #0
21062
+ ite eq
21063
+ moveq r5, #1
21064
+ movne r5, #2
21065
+.L3298:
21066
+ ldrh r3, [r6, #556]
21067
+ movw r2, #65535
21068
+ cmp r3, r2
21069
+ bne .L3308
21070
+ cmp r4, r3
21071
+ beq .L3309
21072
+ strh r4, [r6, #556] @ movhi
21073
+.L3310:
21074
+ ldrh r0, [r6, #556]
21075
+ movw r7, #65535
21076
+ movs r3, #0
21077
+ strb r3, [r6, #564]
21078
+ cmp r0, r7
21079
+ beq .L3308
21080
+ bl IsBlkInGcList
21081
+ cbz r0, .L3313
21082
+ strh r7, [r6, #556] @ movhi
21083
+.L3313:
21084
+ ldr r3, .L3422+8
21085
+ ldrb r3, [r3, #152] @ zero_extendqisi2
21086
+ cbz r3, .L3314
21087
+ ldrh r0, [r6, #556]
21088
+ bl ftl_get_blk_mode
21089
+ strb r0, [r6, #564]
21090
+.L3314:
21091
+ ldrh r2, [r6, #556]
21092
+ movw r3, #65535
21093
+ cmp r2, r3
21094
+ beq .L3308
21095
+ ldr r0, .L3422+20
21096
+ bl make_superblock
21097
+ ldr r2, .L3422+12
21098
+ movs r3, #0
21099
+ strh r3, [r6, #558] @ movhi
21100
+ strb r3, [r6, #562]
21101
+ strh r3, [r2, #1482] @ movhi
21102
+ ldrh r1, [r6, #556]
21103
+ ldr r3, [r6, #300]
21104
+ ldrh r3, [r3, r1, lsl #1]
21105
+ strh r3, [r2, #1484] @ movhi
21106
+.L3308:
21107
+ ldrh r3, [r6, #556]
21108
+ ldrh r2, [r6, #320]
21109
+ cmp r2, r3
21110
+ beq .L3315
21111
+ ldrh r2, [r6, #368]
21112
+ cmp r2, r3
21113
+ beq .L3315
21114
+ ldrh r2, [r6, #416]
21115
+ cmp r2, r3
21116
+ bne .L3316
21117
+.L3315:
21118
+ movw r3, #65535
21119
+ strh r3, [r6, #556] @ movhi
21120
+.L3316:
21121
+ ldr r7, .L3422+8
21122
+.L3349:
21123
+ ldr r9, .L3422
21124
+ movw r3, #65535
21125
+ ldrh fp, [r9, #556]
21126
+ mov r6, r9
21127
+ cmp fp, r3
21128
+ bne .L3317
21129
+ movs r3, #0
21130
+ str r3, [r9, #1132]
21131
+.L3318:
21132
+ ldrh r10, [r6, #1128]
21133
+ mov r0, r10
21134
+ bl List_get_gc_head_node
21135
+ uxth r2, r0
21136
+ cmp r2, fp
21137
+ strh r2, [r6, #556] @ movhi
21138
+ bne .L3319
21139
+ movs r3, #0
21140
+ movs r0, #8
21141
+ strh r3, [r6, #1128] @ movhi
21142
+ b .L3256
21143
+.L3258:
21144
+ ldrh r3, [r3, #416]
21145
+ cmp r3, r2
21146
+ beq .L3261
21147
+ mov r0, r4
21148
+ bl FtlGcFreeTempBlock
21149
+ cmp r0, #0
21150
+ beq .L3261
21151
+ mov r0, r4
21152
+ b .L3256
21153
+.L3259:
21154
+ ldrh r3, [r6, #1174]
21155
+ cmp r3, r2
21156
+ bne .L3260
21157
+ ldrh r1, [r6, #1178]
21158
+ cmp r1, r3
21159
+ beq .L3260
21160
+ ldrh r2, [r6, #1180]
21161
+ cmp r2, r3
21162
+ itttt ne
21163
+ strhne r0, [r6, #1174] @ movhi
21164
+ strhne r1, [r6, #1176] @ movhi
21165
+ strhne r2, [r6, #1178] @ movhi
21166
+ strhne r3, [r6, #1180] @ movhi
21167
+ b .L3260
21168
+.L3267:
21169
+ cmp r3, #5
21170
+ bhi .L3268
21171
+ movs r3, #18
21172
+ b .L3413
21173
+.L3270:
2077621174 movs r3, #1
20777
- strh r3, [r5, #1128] @ movhi
20778
-.L3382:
21175
+ strh r3, [r6, #1128] @ movhi
21176
+.L3272:
2077921177 bl GetSwlReplaceBlock
2078021178 movw r3, #65535
20781
- cmp r0, r3
2078221179 mov r4, r0
20783
- bne .L3399
21180
+ cmp r0, r3
21181
+ bne .L3264
2078421182 movs r3, #0
20785
- strh r3, [r9, #976] @ movhi
20786
-.L3383:
20787
- ldrh r3, [r7, #556]
21183
+ strh r3, [r5, #1480] @ movhi
21184
+.L3262:
21185
+ ldrh r3, [r6, #556]
2078821186 movw r4, #65535
20789
- ldr r5, .L3540
2079021187 cmp r3, r4
20791
- bne .L3533
20792
- ldrh r4, [r5, #412]
21188
+ beq .L3352
21189
+ cmp r8, #0
21190
+ beq .L3353
21191
+ b .L3264
21192
+.L3423:
21193
+ .align 2
21194
+.L3422:
21195
+ .word .LANCHOR2
21196
+ .word .LANCHOR1
21197
+ .word .LANCHOR0
21198
+ .word .LANCHOR4
21199
+ .word .LC157
21200
+ .word .LANCHOR2+556
21201
+.L3352:
21202
+ ldrh r4, [r6, #416]
21203
+ movw r3, #65535
2079321204 cmp r4, r3
20794
- bne .L3384
20795
- ldrh r10, [r5, #1174]
20796
- cmp r10, r4
20797
- bne .L3385
20798
- ldrh r3, [r5, #312]
20799
- ldr r2, [r5, #1124]
21205
+ bne .L3273
21206
+ ldrh r5, [r6, #1174]
21207
+ cmp r5, r4
21208
+ bne .L3274
21209
+ ldrh r3, [r6, #316]
21210
+ ldr r2, [r6, #1124]
2080021211 cmp r3, #24
2080121212 ite cc
2080221213 movcc r3, #5120
2080321214 movcs r3, #1024
2080421215 cmp r2, r3
20805
- bls .L3387
20806
- ldr r2, .L3540+12
21216
+ bls .L3274
21217
+ ldr r2, .L3424
2080721218 movs r3, #0
20808
- str r3, [r7, #1124]
20809
- mov r9, r5
20810
- strh r3, [r2, #976] @ movhi
21219
+ str r3, [r6, #1124]
21220
+ strh r3, [r2, #1480] @ movhi
2081121221 bl GetSwlReplaceBlock
20812
- cmp r0, r10
21222
+ cmp r0, r5
2081321223 mov r4, r0
20814
- bne .L3388
20815
- ldrh r2, [r5, #312]
20816
- ldrh r3, [r5, #1122]
21224
+ bne .L3362
21225
+ ldrh r2, [r6, #316]
21226
+ ldrh r3, [r6, #1122]
2081721227 cmp r2, r3
20818
- bcs .L3389
21228
+ bcs .L3277
2081921229 movs r0, #64
2082021230 bl List_get_gc_head_node
2082121231 uxth r3, r0
2082221232 cmp r3, r4
20823
- bne .L3534
20824
-.L3398:
20825
- bl FtlGcReFreshBadBlk
20826
- cmp r8, #0
20827
- beq .L3535
20828
-.L3399:
20829
- ldrh r2, [r7, #412]
20830
- movw r3, #65535
20831
- cmp r2, r3
20832
- bne .L3410
20833
-.L3465:
20834
- ldrh r3, [r7, #1174]
20835
- movw r2, #65535
20836
- cmp r3, r2
20837
- bne .L3410
20838
- cmp r4, r3
20839
- bne .L3410
20840
-.L3466:
20841
- ldrh r1, [r7, #556]
20842
- movw r3, #65535
20843
- ldr r2, .L3540
21233
+ beq .L3279
21234
+ ldr r2, [r6, #3276]
21235
+ ldr r9, .L3424+8
21236
+ cbnz r2, .L3280
21237
+ ldrh r2, [r9, #2344]
21238
+ cmp r2, #3
21239
+ beq .L3280
21240
+ ldr r2, [r6, #1116]
21241
+ cbnz r2, .L3280
21242
+ ldr r2, [r9, #2248]
21243
+ cbnz r2, .L3280
21244
+ ldrb r0, [r9, #152] @ zero_extendqisi2
21245
+ cmp r0, #0
21246
+ beq .L3281
21247
+.L3280:
21248
+ ldr r2, [r6, #300]
21249
+ ldrh r0, [r9, #2344]
21250
+ ldrh r1, [r2, r3, lsl #1]
21251
+ ldrh r3, [r9, #2392]
21252
+ cmp r0, #3
21253
+ ldrh r2, [r9, #2324]
21254
+ mul r2, r3, r2
21255
+ ite eq
21256
+ lsreq r3, r3, #1
21257
+ movne r3, #0
21258
+ add r3, r3, r2
2084421259 cmp r1, r3
20845
- beq .L3411
20846
-.L3415:
20847
- movw r4, #65535
20848
- b .L3410
20849
-.L3411:
20850
- movs r3, #0
20851
- ldrh r1, [r2, #312]
20852
- str r3, [r2, #1132]
20853
- ldrh r3, [r2, #1120]
20854
- ldr r4, .L3540+12
20855
- cmp r1, r3
20856
- bls .L3412
20857
- ldrh r3, [r4, #976]
20858
- cbnz r3, .L3413
20859
- ldr r3, .L3540+8
20860
- ldr r2, [r2, #468]
20861
- ldr r3, [r3, #2448]
21260
+ bgt .L3283
21261
+ movs r0, #0
21262
+ bl List_get_gc_head_node
21263
+ ldr r3, [r9, #2452]
21264
+ uxth r5, r0
21265
+ ldr r2, [r6, #472]
2086221266 add r3, r3, r3, lsl #1
2086321267 cmp r2, r3, lsr #2
20864
- bcs .L3478
20865
-.L3413:
20866
- ldrh r3, [r7, #536]
20867
- add r3, r3, r3, lsl #1
20868
- ubfx r3, r3, #2, #16
21268
+ bls .L3284
21269
+.L3415:
21270
+ movs r3, #128
2086921271 b .L3414
20870
-.L3478:
20871
- movs r3, #18
21272
+.L3284:
21273
+ movs r3, #160
2087221274 .L3414:
20873
- strh r3, [r7, #1120] @ movhi
21275
+ strh r3, [r6, #1122] @ movhi
21276
+ movw r3, #65535
21277
+ cmp r5, r3
21278
+ beq .L3279
21279
+.L3276:
21280
+ ldr r3, [r6, #300]
21281
+ mov r4, r5
21282
+ ldrh r1, [r6, #1120]
21283
+ ldrh r2, [r6, #316]
21284
+ ldrh r3, [r3, r5, lsl #1]
21285
+ str r1, [sp, #4]
21286
+ ldr r1, [r6, #236]
21287
+ ldr r0, .L3424+4
21288
+ ldrh r1, [r1, r5, lsl #1]
21289
+ str r1, [sp]
21290
+ mov r1, r5
21291
+ bl printk
21292
+ b .L3279
21293
+.L3283:
21294
+ movs r3, #128
21295
+.L3416:
21296
+ strh r3, [r6, #1122] @ movhi
21297
+.L3279:
21298
+ bl FtlGcReFreshBadBlk
21299
+ cmp r8, #0
21300
+ bne .L3264
21301
+ movw r3, #65535
21302
+ cmp r4, r3
21303
+ bne .L3264
21304
+.L3353:
21305
+ ldrh r3, [r6, #316]
21306
+ cmp r3, #24
21307
+ bhi .L3364
21308
+ ldr r2, .L3424+8
21309
+ cmp r3, #16
21310
+ ldrh r5, [r2, #2390]
21311
+ bls .L3289
21312
+ lsrs r5, r5, #5
21313
+.L3288:
21314
+ ldrh r2, [r6, #1120]
21315
+ cmp r2, r3
21316
+ bcs .L3292
21317
+ ldrh r3, [r6, #416]
21318
+ movw r2, #65535
21319
+ cmp r3, r2
21320
+ bne .L3293
21321
+ ldrh r2, [r6, #1174]
21322
+ cmp r2, r3
21323
+ bne .L3293
21324
+ ldr r3, .L3424
21325
+ ldrh r0, [r3, #1480]
21326
+ cbnz r0, .L3294
21327
+ ldr r3, .L3424+8
21328
+ ldr r2, [r6, #472]
21329
+ ldr r3, [r3, #2452]
21330
+ add r3, r3, r3, lsl #1
21331
+ cmp r2, r3, lsr #2
21332
+ bcs .L3295
21333
+.L3294:
21334
+ ldrh r3, [r6, #536]
21335
+ add r3, r3, r3, lsl #1
21336
+ asrs r3, r3, #2
21337
+.L3417:
21338
+ strh r3, [r6, #1120] @ movhi
21339
+ movs r3, #0
21340
+ str r3, [r6, #1132]
21341
+.L3256:
21342
+ add sp, sp, #44
21343
+ @ sp needed
21344
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
21345
+.L3281:
21346
+ ldr r2, [r6, #300]
21347
+ ldrh r3, [r2, r3, lsl #1]
21348
+ cmp r3, #7
21349
+ bhi .L3286
21350
+ bl List_get_gc_head_node
21351
+ uxth r5, r0
21352
+ b .L3415
21353
+.L3286:
21354
+ movs r3, #64
21355
+ b .L3416
21356
+.L3277:
21357
+ movs r3, #80
21358
+ b .L3416
21359
+.L3362:
21360
+ mov r5, r0
21361
+ b .L3276
21362
+.L3289:
21363
+ cmp r3, #12
21364
+ bls .L3290
21365
+ lsrs r5, r5, #4
21366
+ b .L3288
21367
+.L3290:
21368
+ cmp r3, #8
21369
+ bls .L3288
21370
+ lsrs r5, r5, #2
21371
+ b .L3288
21372
+.L3364:
21373
+ movs r5, #1
21374
+ b .L3288
21375
+.L3295:
21376
+ movs r3, #18
21377
+ b .L3417
21378
+.L3293:
21379
+ ldrh r3, [r6, #536]
21380
+ add r3, r3, r3, lsl #1
21381
+ asrs r3, r3, #2
21382
+ strh r3, [r6, #1120] @ movhi
21383
+.L3292:
21384
+ ldr r3, .L3424+8
21385
+ ldr r3, [r3, #2248]
21386
+ cbz r3, .L3366
21387
+ cmp r7, #2
21388
+ bhi .L3366
21389
+ adds r5, r5, #1
21390
+ uxth r5, r5
21391
+.L3366:
21392
+ movw r4, #65535
21393
+ b .L3298
21394
+.L3300:
21395
+ movs r3, #0
21396
+ ldrh r2, [r6, #316]
21397
+ str r3, [r6, #1132]
21398
+ ldrh r3, [r6, #1120]
21399
+ ldr r4, .L3424
21400
+ cmp r2, r3
21401
+ bls .L3301
21402
+ ldrh r3, [r4, #1480]
21403
+ cbnz r3, .L3302
21404
+ ldr r3, .L3424+8
21405
+ ldr r2, [r6, #472]
21406
+ ldr r3, [r3, #2452]
21407
+ add r3, r3, r3, lsl #1
21408
+ cmp r2, r3, lsr #2
21409
+ bcs .L3303
21410
+.L3302:
21411
+ ldrh r3, [r6, #536]
21412
+ add r3, r3, r3, lsl #1
21413
+ asrs r3, r3, #2
21414
+.L3418:
21415
+ strh r3, [r6, #1120] @ movhi
2087421416 bl FtlReadRefresh
2087521417 movs r0, #0
2087621418 bl List_get_gc_head_node
20877
- ldr r3, [r7, #296]
21419
+ ldr r3, [r6, #300]
2087821420 uxth r0, r0
2087921421 ldrh r3, [r3, r0, lsl #1]
2088021422 cmp r3, #4
20881
- bls .L3412
20882
- ldrh r0, [r4, #976]
20883
- b .L3527
20884
-.L3412:
20885
- ldrh r0, [r4, #976]
21423
+ bls .L3301
21424
+.L3420:
21425
+ ldrh r0, [r4, #1480]
21426
+ b .L3256
21427
+.L3303:
21428
+ movs r3, #18
21429
+ b .L3418
21430
+.L3301:
21431
+ ldrh r0, [r4, #1480]
2088621432 cmp r0, #0
20887
- bne .L3415
20888
- ldrh r4, [r7, #536]
20889
- add r3, r4, r4, lsl #1
21433
+ bne .L3305
21434
+ ldrh r5, [r6, #536]
21435
+ add r3, r5, r5, lsl #1
2089021436 asrs r3, r3, #2
20891
- strh r3, [r7, #1120] @ movhi
21437
+ strh r3, [r6, #1120] @ movhi
2089221438 bl List_get_gc_head_node
20893
- ldr r3, [r7, #296]
21439
+ ldr r3, [r6, #300]
2089421440 uxth r0, r0
21441
+ ldr r1, .L3424+8
2089521442 ldrh r2, [r3, r0, lsl #1]
20896
- ldr r3, .L3540+8
20897
- ldrh r1, [r3, #2390]
20898
- ldrh r3, [r3, #2320]
20899
- muls r3, r1, r3
21443
+ ldrh r0, [r1, #2392]
21444
+ ldrh r3, [r1, #2324]
21445
+ muls r3, r0, r3
2090021446 add r3, r3, r3, lsr #31
2090121447 cmp r2, r3, asr #1
20902
- ble .L3416
20903
- ldr r3, .L3540
20904
- subs r4, r4, #1
20905
- ldrh r3, [r3, #312]
20906
- cmp r3, r4
20907
- blt .L3416
21448
+ ble .L3306
21449
+ ldrh r3, [r6, #316]
21450
+ subs r5, r5, #1
21451
+ cmp r3, r5
21452
+ blt .L3306
2090821453 bl FtlReadRefresh
20909
- b .L3532
20910
-.L3416:
20911
- cmp r2, #0
20912
- bne .L3415
20913
- movw r0, #65535
20914
- bl decrement_vpc_count
20915
- ldrh r0, [r7, #312]
20916
- adds r0, r0, #1
20917
- b .L3527
20918
-.L3541:
20919
- .align 2
20920
-.L3540:
20921
- .word .LANCHOR2
20922
- .word .LANCHOR1
20923
- .word .LANCHOR0
20924
- .word .LANCHOR5
20925
- .word .LC157
20926
-.L3410:
20927
- ldr r3, .L3542
20928
- ldr r3, [r3, #2244]
20929
- cmp r3, #0
20930
- ite eq
20931
- moveq r5, #1
20932
- movne r5, #2
20933
- b .L3409
20934
-.L3535:
20935
- movw r3, #65535
20936
- cmp r4, r3
20937
- bne .L3399
20938
-.L3464:
20939
- ldrh r4, [r7, #312]
20940
- cmp r4, #24
20941
- bhi .L3474
20942
- ldr r3, .L3542
20943
- cmp r4, #16
20944
- ldrh r5, [r3, #2388]
20945
- bls .L3401
20946
- lsrs r5, r5, #5
20947
-.L3400:
20948
- ldrh r3, [r7, #1120]
20949
- ldr r2, .L3542+4
20950
- cmp r3, r4
20951
- bcc .L3536
20952
-.L3404:
20953
- ldr r3, .L3542
20954
- ldr r3, [r3, #2244]
20955
- cmp r3, #0
20956
- bne .L3537
20957
-.L3477:
20958
- movw r4, #65535
20959
-.L3409:
20960
- ldrh r2, [r7, #556]
20961
- movw r1, #65535
20962
- ldr r3, .L3542+4
20963
- cmp r2, r1
20964
- bne .L3418
20965
- cmp r4, r2
20966
- beq .L3419
20967
- strh r4, [r3, #556] @ movhi
2096821454 b .L3420
20969
-.L3419:
20970
- ldrh r2, [r3, #1174]
20971
- cmp r2, r4
20972
- beq .L3420
20973
- ldr r1, [r3, #296]
20974
- ldrh r2, [r1, r2, lsl #1]
20975
- cbnz r2, .L3421
20976
- strh r4, [r3, #1174] @ movhi
20977
-.L3421:
20978
- ldrh r3, [r7, #1174]
20979
- strh r3, [r7, #556] @ movhi
20980
- movw r3, #65535
20981
- strh r3, [r7, #1174] @ movhi
20982
-.L3420:
20983
- ldrh r0, [r7, #556]
20984
- movw r6, #65535
20985
- movs r3, #0
20986
- strb r3, [r7, #564]
20987
- cmp r0, r6
20988
- beq .L3418
20989
- bl IsBlkInGcList
20990
- cbz r0, .L3423
20991
- ldr r3, .L3542+4
20992
- strh r6, [r3, #556] @ movhi
20993
-.L3423:
20994
- ldr r3, .L3542
20995
- ldrb r3, [r3, #144] @ zero_extendqisi2
20996
- cbz r3, .L3424
20997
- ldrh r0, [r7, #556]
20998
- bl ftl_get_blk_mode
20999
- strb r0, [r7, #564]
21000
-.L3424:
21001
- ldrh r2, [r7, #556]
21002
- movw r3, #65535
21003
- ldr r6, .L3542+4
21004
- cmp r2, r3
21005
- beq .L3418
21006
- add r0, r6, #556
21007
- bl make_superblock
21008
- ldr r2, .L3542+8
21009
- movs r3, #0
21010
- ldrh r1, [r6, #556]
21011
- strh r3, [r6, #558] @ movhi
21012
- strb r3, [r6, #562]
21013
- strh r3, [r2, #978] @ movhi
21014
- ldr r3, [r6, #296]
21015
- ldrh r3, [r3, r1, lsl #1]
21016
- strh r3, [r2, #980] @ movhi
21017
-.L3418:
21018
- ldrh r3, [r7, #556]
21019
- ldrh r1, [r7, #316]
21020
- ldr r2, .L3542+4
21021
- cmp r1, r3
21022
- beq .L3425
21023
- ldrh r1, [r2, #364]
21024
- cmp r1, r3
21025
- beq .L3425
21026
- ldrh r2, [r2, #412]
21027
- cmp r2, r3
21028
- bne .L3426
21029
-.L3425:
21030
- movw r3, #65535
21031
- strh r3, [r7, #556] @ movhi
21032
-.L3426:
21033
- ldr r7, .L3542
21034
-.L3459:
21035
- ldr r6, .L3542+4
21036
- movw r3, #65535
21037
- ldrh r2, [r6, #556]
21038
- mov fp, r6
21039
- cmp r2, r3
21040
- bne .L3427
21041
- mov r10, r6
21042
- movs r3, #0
21043
- str r3, [r6, #1132]
21044
-.L3428:
21045
- ldrh r9, [fp, #1128]
21046
- mov r0, r9
21047
- bl List_get_gc_head_node
21048
- movw r2, #65535
21049
- uxth r3, r0
21050
- strh r3, [fp, #556] @ movhi
21051
- cmp r3, r2
21052
- bne .L3429
21053
- ldr r3, .L3542+4
21054
- movs r2, #0
21055
- movs r0, #8
21056
- strh r2, [r3, #1128] @ movhi
21057
- b .L3527
21058
-.L3429:
21059
- mov r0, r3
21060
- str r3, [sp, #12]
21061
- bl IsBlkInGcList
21062
- add r9, r9, #1
21063
- ldr r3, [sp, #12]
21064
- cbz r0, .L3430
21065
- strh r9, [r10, #1128] @ movhi
21066
- b .L3428
21067
-.L3430:
21068
- ldrh lr, [r7, #2320]
21069
- uxth r9, r9
21070
- ldrh r2, [r7, #2388]
21071
- ldr r1, [r10, #296]
21072
- strh r9, [r10, #1128] @ movhi
21073
- mul r2, lr, r2
21074
- ldrh r0, [r1, r3, lsl #1]
21075
- add lr, r2, r2, lsr #31
21076
- cmp r0, lr, asr #1
21077
- bgt .L3432
21078
- cmp r9, #48
21079
- bls .L3433
21080
- cmp r0, #8
21081
- bls .L3433
21082
- ldrh r0, [r10, #1164]
21083
- cmp r0, #35
21084
- bhi .L3433
21085
-.L3432:
21086
- movs r0, #0
21087
- strh r0, [fp, #1128] @ movhi
21088
-.L3433:
21089
- ldrh r1, [r1, r3, lsl #1]
21090
- cmp r1, r2
21091
- blt .L3434
21092
- movw r2, #65535
21093
- cmp r4, r2
21094
- bne .L3434
21095
- ldrh r0, [fp, #1128]
21096
- ldr r2, .L3542+4
21097
- cmp r0, #3
21098
- bhi .L3434
21099
- movs r3, #0
21100
- strh r4, [r2, #556] @ movhi
21101
- strh r3, [r2, #1128] @ movhi
21102
-.L3532:
21103
- ldr r3, .L3542+8
21104
- ldrh r0, [r3, #976]
21105
- b .L3527
21106
-.L3434:
21107
- cbnz r1, .L3435
21455
+.L3306:
21456
+ cmp r2, #0
21457
+ bne .L3305
2110821458 movw r0, #65535
2110921459 bl decrement_vpc_count
21110
- ldrh r3, [fp, #1128]
21111
- adds r3, r3, #1
21112
- strh r3, [fp, #1128] @ movhi
21113
- b .L3428
21114
-.L3435:
21115
- movs r2, #0
21116
- strb r2, [r6, #564]
21117
- ldr r2, .L3542
21118
- ldrb r2, [r2, #144] @ zero_extendqisi2
21119
- cbz r2, .L3436
21120
- mov r0, r3
21121
- bl ftl_get_blk_mode
21122
- ldr r3, .L3542+4
21123
- strb r0, [r3, #564]
21124
-.L3436:
21125
- ldr r0, .L3542+12
21126
- bl make_superblock
21127
- ldr r2, .L3542+8
21128
- ldrh r0, [r6, #556]
21460
+ ldrh r0, [r6, #316]
21461
+ adds r0, r0, #1
21462
+ b .L3256
21463
+.L3309:
21464
+ ldrh r3, [r6, #1174]
21465
+ cmp r3, r4
21466
+ beq .L3310
21467
+ ldr r2, [r6, #300]
21468
+ ldrh r3, [r2, r3, lsl #1]
21469
+ cbnz r3, .L3311
21470
+ strh r4, [r6, #1174] @ movhi
21471
+.L3311:
21472
+ ldrh r3, [r6, #1174]
21473
+ strh r3, [r6, #556] @ movhi
21474
+ movw r3, #65535
21475
+ strh r3, [r6, #1174] @ movhi
21476
+ b .L3310
21477
+.L3319:
21478
+ str r0, [sp, #16]
21479
+ mov r0, r2
21480
+ str r2, [sp, #12]
21481
+ add r10, r10, #1
21482
+ bl IsBlkInGcList
21483
+ ldr r2, [sp, #12]
21484
+ ldr r3, [sp, #16]
21485
+ cbz r0, .L3320
21486
+ strh r10, [r6, #1128] @ movhi
21487
+ b .L3318
21488
+.L3320:
21489
+ ldrh lr, [r7, #2324]
21490
+ uxth r10, r10
21491
+ ldrh r1, [r7, #2390]
21492
+ uxth r3, r3
21493
+ ldr r0, [r6, #300]
21494
+ strh r10, [r6, #1128] @ movhi
21495
+ mul r1, lr, r1
21496
+ ldrh ip, [r0, r3, lsl #1]
21497
+ add lr, r1, r1, lsr #31
21498
+ cmp ip, lr, asr #1
21499
+ bgt .L3322
21500
+ cmp r10, #48
21501
+ bls .L3323
21502
+ cmp ip, #8
21503
+ bls .L3323
21504
+ ldrh ip, [r6, #1164]
21505
+ cmp ip, #35
21506
+ bhi .L3323
21507
+.L3322:
21508
+ mov ip, #0
21509
+ strh ip, [r6, #1128] @ movhi
21510
+.L3323:
21511
+ ldrh r3, [r0, r3, lsl #1]
21512
+ cmp r1, r3
21513
+ bgt .L3324
21514
+ cmp r4, fp
21515
+ bne .L3324
21516
+ ldrh r1, [r6, #1128]
21517
+ cmp r1, #3
21518
+ bhi .L3324
2112921519 movs r3, #0
21130
- ldr r1, [r6, #296]
21131
- strh r3, [r2, #978] @ movhi
21520
+ strh r4, [r6, #556] @ movhi
21521
+ strh r3, [r6, #1128] @ movhi
21522
+.L3421:
21523
+ ldr r3, .L3424
21524
+ ldrh r0, [r3, #1480]
21525
+ b .L3256
21526
+.L3425:
21527
+ .align 2
21528
+.L3424:
21529
+ .word .LANCHOR4
21530
+ .word .LC158
21531
+ .word .LANCHOR0
21532
+.L3324:
21533
+ cbnz r3, .L3325
21534
+ movw r0, #65535
21535
+ bl decrement_vpc_count
21536
+ ldrh r3, [r6, #1128]
21537
+ adds r3, r3, #1
21538
+ strh r3, [r6, #1128] @ movhi
21539
+ b .L3318
21540
+.L3325:
21541
+ movs r3, #0
21542
+ strb r3, [r9, #564]
21543
+ ldrb r3, [r7, #152] @ zero_extendqisi2
21544
+ cbz r3, .L3326
21545
+ mov r0, r2
21546
+ bl ftl_get_blk_mode
21547
+ strb r0, [r9, #564]
21548
+.L3326:
21549
+ ldr r0, .L3426
21550
+ bl make_superblock
21551
+ ldr r2, .L3426+4
21552
+ movs r3, #0
21553
+ ldrh r0, [r9, #556]
21554
+ ldr r1, [r9, #300]
21555
+ strh r3, [r2, #1482] @ movhi
2113221556 ldrh r1, [r1, r0, lsl #1]
21133
- strh r3, [r6, #558] @ movhi
21134
- strb r3, [r6, #562]
21135
- strh r1, [r2, #980] @ movhi
21136
-.L3427:
21557
+ strh r3, [r9, #558] @ movhi
21558
+ strb r3, [r9, #562]
21559
+ strh r1, [r2, #1484] @ movhi
21560
+.L3317:
2113721561 cmp r8, #1
21138
- bne .L3437
21562
+ bne .L3327
2113921563 bl FtlReadRefresh
21140
-.L3437:
21564
+.L3327:
2114121565 movs r3, #1
21142
- str r3, [r6, #3280]
21143
- ldrh r3, [r7, #2388]
21144
- str r3, [sp, #12]
21145
- ldrb r3, [r7, #144] @ zero_extendqisi2
21146
- cbz r3, .L3438
21147
- ldr r3, .L3542+4
21148
- ldrb r3, [r3, #564] @ zero_extendqisi2
21566
+ str r3, [r9, #3280]
21567
+ ldrh r3, [r7, #2390]
21568
+ str r3, [sp, #16]
21569
+ ldrb r3, [r7, #152] @ zero_extendqisi2
21570
+ cbz r3, .L3328
21571
+ ldrb r3, [r9, #564] @ zero_extendqisi2
2114921572 cmp r3, #1
2115021573 itt eq
21151
- ldrheq r3, [r7, #2390]
21152
- streq r3, [sp, #12]
21153
-.L3438:
21154
- ldrh r3, [r6, #558]
21155
- ldr r1, [sp, #12]
21574
+ ldrheq r3, [r7, #2392]
21575
+ streq r3, [sp, #16]
21576
+.L3328:
21577
+ ldrh r3, [r9, #558]
21578
+ ldr r1, [sp, #16]
2115621579 adds r2, r3, r5
2115721580 cmp r2, r1
21158
- ittt gt
21581
+ itt gt
2115921582 movgt r2, r1
21160
- subgt r3, r2, r3
21161
- uxthgt r5, r3
21162
- movs r3, #0
21163
-.L3531:
21164
- str r3, [sp, #16]
21165
- ldrh r3, [sp, #16]
21166
- ldr r6, .L3542+4
21167
- cmp r3, r5
21168
- bcs .L3447
21169
- ldr r3, [r6, #1152]
21170
- addw r1, r6, #570
21171
- ldr r2, [sp, #16]
21172
- movw lr, #65535
21173
- ldrh r10, [r7, #2320]
21583
+ subgt r5, r2, r3
21584
+ mov r3, #0
21585
+ it gt
21586
+ uxthgt r5, r5
21587
+.L3419:
2117421588 str r3, [sp, #20]
21175
- ldrh r3, [r6, #558]
21176
- add ip, r3, r2
21177
- movs r3, #0
21178
- mov r9, r3
21179
-.L3448:
21180
- uxth r2, r3
21181
- cmp r2, r10
21182
- bcs .L3538
21183
- ldrh r2, [r1, #2]!
21184
- cmp r2, lr
21185
- beq .L3441
21186
- ldr r0, [sp, #20]
21187
- mov fp, #36
21188
- orr r2, ip, r2, lsl #10
21189
- mla fp, fp, r9, r0
21190
- add r9, r9, #1
21191
- uxth r9, r9
21192
- str r2, [fp, #4]
21193
-.L3441:
21194
- adds r3, r3, #1
21195
- b .L3448
21196
-.L3543:
21197
- .align 2
21198
-.L3542:
21199
- .word .LANCHOR0
21200
- .word .LANCHOR2
21201
- .word .LANCHOR5
21202
- .word .LANCHOR2+556
21203
-.L3538:
21589
+ ldrh r3, [sp, #20]
21590
+ ldr r6, .L3426+8
21591
+ cmp r5, r3
21592
+ bls .L3337
21593
+ ldr r3, [sp, #20]
21594
+ movw fp, #65535
21595
+ ldrh r10, [r6, #558]
21596
+ mov ip, #36
21597
+ ldrh r9, [r7, #2324]
2120421598 ldr r0, [r6, #1152]
21205
- mov r1, r9
21599
+ add r10, r10, r3
21600
+ addw r3, r6, #570
21601
+ str r3, [sp, #24]
21602
+ movs r3, #0
21603
+ str r3, [sp, #12]
21604
+ b .L3338
21605
+.L3332:
21606
+ ldr r1, [sp, #24]
21607
+ ldrh r2, [r1, #2]!
21608
+ cmp r2, fp
21609
+ str r1, [sp, #24]
21610
+ beq .L3331
21611
+ ldr r1, [sp, #12]
21612
+ orr r2, r10, r2, lsl #10
21613
+ mla lr, ip, r1, r0
21614
+ str r2, [lr, #4]
21615
+ mov r2, r1
21616
+ adds r2, r2, #1
21617
+ uxth r2, r2
21618
+ str r2, [sp, #12]
21619
+.L3331:
21620
+ adds r3, r3, #1
21621
+.L3338:
21622
+ uxth r2, r3
21623
+ cmp r9, r2
21624
+ bhi .L3332
2120621625 ldrb r2, [r6, #564] @ zero_extendqisi2
2120721626 mov fp, #0
21627
+ ldr r6, .L3426+8
21628
+ ldr r1, [sp, #12]
2120821629 bl FlashReadPages
21209
- ldr r6, .L3544
21210
-.L3443:
21630
+.L3333:
21631
+ ldr r2, [sp, #12]
2121121632 uxth r3, fp
21212
- cmp r3, r9
21213
- bcs .L3539
21214
- mov ip, #36
21633
+ cmp r2, r3
21634
+ bhi .L3336
21635
+ ldr r3, [sp, #20]
21636
+ adds r3, r3, #1
21637
+ b .L3419
21638
+.L3336:
21639
+ movs r3, #36
2121521640 ldr r2, [r6, #1152]
21216
- mul r10, ip, fp
21217
- add r3, r2, r10
21218
- ldr r2, [r2, r10]
21219
- ldr r3, [r3, #12]
21641
+ mul r9, r3, fp
21642
+ add r1, r2, r9
21643
+ ldr r2, [r2, r9]
2122021644 adds r2, r2, #1
21221
- beq .L3481
21222
- ldrh r1, [r3]
21645
+ beq .L3334
21646
+ ldr r10, [r1, #12]
2122321647 movw r2, #61589
21648
+ ldrh r1, [r10]
2122421649 cmp r1, r2
21225
- bne .L3481
21226
- ldr r0, [r3, #8]
21227
- add r1, sp, #32
21650
+ bne .L3334
2122821651 movs r2, #0
21229
- str ip, [sp, #24]
21230
- str r3, [sp, #20]
21652
+ add r1, sp, #32
21653
+ ldr r0, [r10, #8]
21654
+ str r3, [sp, #24]
2123121655 bl log2phys
2123221656 ldr r1, [r6, #1152]
21233
- add r1, r1, r10
21234
- ldr r0, [r1, #4]
2123521657 ldr r2, [sp, #32]
21236
- ldr r3, [sp, #20]
21658
+ ldr r3, [sp, #24]
21659
+ add r1, r1, r9
21660
+ ldr r0, [r1, #4]
2123721661 bic r2, r2, #-2147483648
21238
- ldr ip, [sp, #24]
2123921662 cmp r2, r0
21240
- bne .L3481
21241
- str r3, [sp, #28]
21242
- ldr r3, .L3544+4
21243
- ldr r0, [r6, #1136]
21663
+ bne .L3334
21664
+ ldr r2, .L3426+4
21665
+ ldr r0, .L3426+4
2124421666 ldr r1, [r1, #16]
21245
- ldrh r2, [r3, #978]
21667
+ ldrh r2, [r2, #1482]
21668
+ str r3, [sp, #28]
2124621669 adds r2, r2, #1
21247
- strh r2, [r3, #978] @ movhi
21670
+ strh r2, [r0, #1482] @ movhi
21671
+ ldr r0, [r6, #1136]
2124821672 ldr r2, [r6, #3308]
21249
- mla r2, ip, r0, r2
21673
+ mla r2, r3, r0, r2
2125021674 str r1, [r2, #16]
21251
- str r2, [sp, #20]
21675
+ str r2, [sp, #24]
2125221676 bl Ftl_get_new_temp_ppa
21253
- ldr r1, [r6, #1136]
21254
- ldr r2, [sp, #20]
21255
- ldr ip, [sp, #24]
21677
+ ldr r2, [sp, #24]
21678
+ ldr r1, [r6, #3308]
2125621679 ldr r3, [sp, #28]
2125721680 str r0, [r2, #4]
21258
- ldr r2, [r6, #3308]
21259
- mla ip, ip, r1, r2
21681
+ ldr r2, [r6, #1136]
21682
+ mla r3, r3, r2, r1
2126021683 ldr r2, [r6, #1152]
21261
- add r2, r2, r10
21684
+ add r2, r2, r9
2126221685 ldr r1, [r2, #8]
21263
- str r1, [ip, #8]
21686
+ str r1, [r3, #8]
2126421687 movs r1, #1
2126521688 ldr r2, [r2, #12]
21266
- str r2, [ip, #12]
21267
- ldr r2, [sp, #32]
2126821689 str r2, [r3, #12]
21269
- ldrh r2, [r6, #412]
21270
- strh r2, [r3, #2] @ movhi
21271
- ldr r2, [r6, #512]
21690
+ ldr r3, [sp, #32]
21691
+ str r3, [r10, #12]
21692
+ ldrh r3, [r6, #416]
21693
+ strh r3, [r10, #2] @ movhi
21694
+ ldr r3, [r6, #512]
2127221695 ldr r0, [r6, #1152]
21273
- str r2, [r3, #4]
21274
- add r0, r0, r10
21696
+ str r3, [r10, #4]
2127521697 ldr r3, [r6, #1136]
21698
+ add r0, r0, r9
2127621699 adds r3, r3, #1
2127721700 str r3, [r6, #1136]
2127821701 bl FtlGcBufAlloc
21279
- ldrb r3, [r7, #144] @ zero_extendqisi2
21280
- cbnz r3, .L3445
21281
- ldrb r3, [r6, #419] @ zero_extendqisi2
21282
- ldr r2, [r6, #1136]
21702
+ ldrb r3, [r7, #152] @ zero_extendqisi2
21703
+ cbnz r3, .L3335
21704
+ ldrb r2, [r6, #423] @ zero_extendqisi2
21705
+ ldr r3, [r6, #1136]
2128321706 cmp r2, r3
21284
- beq .L3445
21285
- ldrh r3, [r6, #416]
21286
- cbnz r3, .L3481
21287
-.L3445:
21707
+ beq .L3335
21708
+ ldrh r3, [r6, #420]
21709
+ cbnz r3, .L3334
21710
+.L3335:
2128821711 bl Ftl_gc_temp_data_write_back
21289
- cbz r0, .L3481
21290
- ldr r3, .L3544
21712
+ cbz r0, .L3334
21713
+ ldr r3, .L3426+8
2129121714 movs r2, #0
2129221715 movw r1, #65535
2129321716 str r2, [r3, #3280]
2129421717 strh r1, [r3, #556] @ movhi
2129521718 strh r2, [r3, #558] @ movhi
21296
- b .L3532
21297
-.L3481:
21719
+ b .L3421
21720
+.L3334:
2129821721 add fp, fp, #1
21299
- b .L3443
21300
-.L3539:
21301
- ldr r3, [sp, #16]
21302
- adds r3, r3, #1
21303
- b .L3531
21304
-.L3447:
21722
+ b .L3333
21723
+.L3337:
2130521724 ldrh r3, [r6, #558]
2130621725 add r5, r5, r3
21307
- ldr r3, [sp, #12]
21726
+ ldr r3, [sp, #16]
2130821727 uxth r5, r5
21728
+ cmp r3, r5
2130921729 strh r5, [r6, #558] @ movhi
21310
- cmp r5, r3
21311
- bcc .L3449
21730
+ bhi .L3339
2131221731 ldr r3, [r6, #1136]
21313
- ldr r5, .L3544+4
21314
- cbz r3, .L3450
21732
+ ldr r5, .L3426+4
21733
+ cbz r3, .L3340
2131521734 bl Ftl_gc_temp_data_write_back
21316
- cbz r0, .L3450
21735
+ cbz r0, .L3340
2131721736 movs r3, #0
21318
- ldrh r0, [r5, #976]
21737
+ ldrh r0, [r5, #1480]
2131921738 str r3, [r6, #3280]
21320
- b .L3527
21321
-.L3450:
21322
- ldrh r5, [r5, #978]
21323
- cbnz r5, .L3451
21739
+ b .L3256
21740
+.L3340:
21741
+ ldrh r5, [r5, #1482]
21742
+ cbnz r5, .L3341
2132421743 ldrh r2, [r6, #556]
21325
- ldr r3, [r6, #296]
21744
+ ldr r3, [r6, #300]
2132621745 ldrh r3, [r3, r2, lsl #1]
21327
- cbz r3, .L3451
21328
-.L3452:
21329
- ldr r3, [r7, #2448]
21746
+ cbz r3, .L3341
21747
+.L3342:
21748
+ ldr r3, [r7, #2452]
2133021749 cmp r5, r3
21331
- bcs .L3457
21332
- mov r0, r5
21333
- add r1, sp, #36
21750
+ bcs .L3347
2133421751 movs r2, #0
21752
+ add r1, sp, #36
21753
+ mov r0, r5
2133521754 bl log2phys
2133621755 ldr r0, [sp, #36]
2133721756 adds r3, r0, #1
21338
- beq .L3453
21757
+ beq .L3343
2133921758 ubfx r0, r0, #10, #16
2134021759 bl P2V_block_in_plane
2134121760 ldrh r3, [r6, #556]
2134221761 cmp r3, r0
21343
- bne .L3453
21344
-.L3457:
21345
- ldr r3, .L3544+8
21346
- ldr r3, [r3, #2448]
21762
+ bne .L3343
21763
+.L3347:
21764
+ ldr r3, [r7, #2452]
2134721765 cmp r5, r3
21348
- bcc .L3451
21766
+ bcc .L3341
2134921767 ldrh r2, [r6, #556]
2135021768 movs r1, #0
21351
- ldr r3, [r6, #296]
21769
+ ldr r3, [r6, #300]
2135221770 strh r1, [r3, r2, lsl #1] @ movhi
2135321771 ldrh r0, [r6, #556]
2135421772 bl update_vpc_list
2135521773 bl FtlCacheWriteBack
2135621774 bl l2p_flush
2135721775 bl FtlVpcTblFlush
21358
- b .L3451
21359
-.L3453:
21360
- adds r5, r5, #1
21361
- b .L3452
21362
-.L3451:
21776
+.L3341:
2136321777 movw r3, #65535
2136421778 strh r3, [r6, #556] @ movhi
21365
-.L3449:
21366
- ldrh r3, [r6, #312]
21779
+.L3339:
21780
+ ldrh r3, [r6, #316]
2136721781 cmp r3, #2
21368
- bhi .L3458
21369
- ldrh r5, [r7, #2388]
21370
- b .L3459
21371
-.L3458:
21372
- ldr r2, .L3544
21373
- movs r1, #0
21374
- str r1, [r2, #3280]
21375
- ldr r2, .L3544+4
21376
- ldrh r0, [r2, #976]
21377
- cmp r0, #0
21378
- bne .L3527
21379
- adds r0, r3, #1
21380
- b .L3527
21381
-.L3467:
21382
- movs r0, #0
21383
- b .L3527
21384
-.L3470:
21385
- mov r0, r2
21386
- b .L3527
21387
-.L3534:
21388
- ldr r2, [r5, #3276]
21389
- ldr r5, .L3544+8
21390
- cbnz r2, .L3391
21391
- ldrh r2, [r5, #2340]
21392
- cmp r2, #3
21393
- beq .L3391
21394
- ldr r2, [r9, #604]
21395
- cbnz r2, .L3391
21396
- ldr r2, [r5, #2244]
21397
- cbnz r2, .L3391
21398
- ldrb r0, [r5, #144] @ zero_extendqisi2
21399
- cbz r0, .L3392
21400
-.L3391:
21401
- ldr r2, [r7, #296]
21402
- ldrh r0, [r5, #2340]
21403
- ldrh r1, [r2, r3, lsl #1]
21404
- cmp r0, #3
21405
- ldrh r3, [r5, #2390]
21406
- ldrh r2, [r5, #2320]
21407
- mul r2, r2, r3
21408
- ite eq
21409
- lsreq r3, r3, #1
21410
- movne r3, #0
21411
- add r3, r3, r2
21412
- cmp r1, r3
21413
- bgt .L3394
21414
- movs r0, #0
21415
- bl List_get_gc_head_node
21416
- ldr r3, [r5, #2448]
21417
- ldr r2, .L3544
21418
- ldr r1, [r7, #468]
21419
- add r3, r3, r3, lsl #1
21420
- cmp r1, r3, lsr #2
21421
- ite hi
21422
- movhi r3, #128
21423
- movls r3, #160
21424
- strh r3, [r2, #1122] @ movhi
21425
- uxth r4, r0
21426
- b .L3396
21427
-.L3394:
21428
- movs r3, #128
21429
- b .L3530
21430
-.L3392:
21431
- ldr r2, [r9, #296]
21432
- ldrh r3, [r2, r3, lsl #1]
21433
- cmp r3, #7
21434
- bhi .L3397
21435
- bl List_get_gc_head_node
21436
- movs r3, #128
21437
- strh r3, [r7, #1122] @ movhi
21438
- uxth r4, r0
21439
- b .L3396
21440
-.L3397:
21441
- movs r3, #64
21442
-.L3530:
21443
- strh r3, [r7, #1122] @ movhi
21444
- b .L3398
21445
-.L3389:
21446
- movs r3, #80
21447
- strh r3, [r5, #1122] @ movhi
21448
- b .L3398
21449
-.L3396:
21450
- movw r3, #65535
21451
- cmp r4, r3
21452
- beq .L3398
21453
-.L3388:
21454
- ldr r1, [r7, #232]
21455
- ldr r3, [r7, #296]
21456
- ldrh r2, [r7, #312]
21457
- ldrh r1, [r1, r4, lsl #1]
21458
- ldrh r3, [r3, r4, lsl #1]
21459
- ldr r0, .L3544+12
21460
- str r1, [sp]
21461
- ldrh r1, [r7, #1120]
21462
- str r1, [sp, #4]
21463
- mov r1, r4
21464
- bl printk
21465
- b .L3398
21466
-.L3401:
21467
- cmp r4, #12
21468
- bls .L3402
21469
- lsrs r5, r5, #4
21470
- b .L3400
21471
-.L3402:
21472
- cmp r4, #8
21473
- bls .L3400
21474
- lsrs r5, r5, #2
21475
- b .L3400
21476
-.L3474:
21477
- movs r5, #1
21478
- b .L3400
21479
-.L3536:
21480
- ldrh r3, [r2, #412]
21481
- movw r1, #65535
21482
- cmp r3, r1
21483
- bne .L3405
21484
- ldrh r1, [r2, #1174]
21485
- cmp r1, r3
21486
- bne .L3405
21487
- ldr r3, .L3544+4
21488
- ldrh r0, [r3, #976]
21489
- cbnz r0, .L3406
21490
- ldr r3, .L3544+8
21491
- ldr r2, [r2, #468]
21492
- ldr r3, [r3, #2448]
21493
- add r3, r3, r3, lsl #1
21494
- cmp r2, r3, lsr #2
21495
- bcs .L3475
21496
-.L3406:
21497
- ldrh r3, [r7, #536]
21498
- add r3, r3, r3, lsl #1
21499
- ubfx r3, r3, #2, #16
21500
- b .L3407
21501
-.L3545:
21502
- .align 2
21503
-.L3544:
21504
- .word .LANCHOR2
21505
- .word .LANCHOR5
21506
- .word .LANCHOR0
21507
- .word .LC158
21508
-.L3475:
21509
- movs r3, #18
21510
-.L3407:
21511
- strh r3, [r7, #1120] @ movhi
21512
- movs r3, #0
21513
- str r3, [r7, #1132]
21514
- b .L3527
21515
-.L3405:
21516
- ldrh r3, [r7, #536]
21517
- add r3, r3, r3, lsl #1
21518
- asrs r3, r3, #2
21519
- strh r3, [r7, #1120] @ movhi
21520
- b .L3404
21521
-.L3537:
21522
- cmp r6, #2
21523
- bhi .L3477
21782
+ bhi .L3348
21783
+ ldrh r5, [r7, #2390]
21784
+ b .L3349
21785
+.L3343:
2152421786 adds r5, r5, #1
21525
- uxth r5, r5
21526
- b .L3477
21527
-.L3533:
21787
+ b .L3342
21788
+.L3348:
21789
+ movs r2, #0
21790
+ str r2, [r6, #3280]
21791
+ ldr r2, .L3426+4
21792
+ ldrh r0, [r2, #1480]
21793
+ cmp r0, #0
21794
+ bne .L3256
21795
+ adds r0, r3, #1
21796
+ b .L3256
21797
+.L3355:
21798
+ movs r0, #0
21799
+ b .L3256
21800
+.L3274:
2152821801 cmp r8, #0
21529
- beq .L3464
21530
- b .L3399
21531
-.L3385:
21802
+ bne .L3354
21803
+ b .L3353
21804
+.L3273:
2153221805 cmp r8, #0
21533
- beq .L3464
21534
- b .L3465
21535
-.L3384:
21536
- cmp r8, #0
21537
- beq .L3464
21538
- b .L3415
21539
-.L3387:
21540
- cmp r8, #0
21541
- beq .L3464
21542
- b .L3466
21543
-.L3527:
21544
- add sp, sp, #44
21545
- @ sp needed
21546
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
21806
+ bne .L3305
21807
+ b .L3353
21808
+.L3427:
21809
+ .align 2
21810
+.L3426:
21811
+ .word .LANCHOR2+556
21812
+ .word .LANCHOR4
21813
+ .word .LANCHOR2
2154721814 .fnend
2154821815 .size ftl_do_gc, .-ftl_do_gc
2154921816 .align 1
2155021817 .global FtlCacheWriteBack
21818
+ .syntax unified
2155121819 .thumb
2155221820 .thumb_func
21821
+ .fpu softvfp
2155321822 .type FtlCacheWriteBack, %function
2155421823 FtlCacheWriteBack:
2155521824 .fnstart
....@@ -21558,241 +21827,245 @@
2155821827 push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
2155921828 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2156021829 .pad #12
21561
- ldr r3, .L3589
21562
- ldr r7, .L3589+4
21563
- ldr r5, [r3, #984]
21564
- ldr r3, [r7, #224]
21565
- cmp r3, #0
21566
- bne .L3548
21567
- ldr r4, .L3589+8
21568
- ldr r1, [r4, #2440]
21569
- cmp r1, #0
21570
- beq .L3548
21571
- ldrb r3, [r4, #144] @ zero_extendqisi2
21572
- cbz r3, .L3571
21573
- ldrb r8, [r5, #8] @ zero_extendqisi2
21830
+ ldr r5, .L3470
21831
+ ldr r9, [r5, #228]
21832
+ cmp r9, #0
21833
+ bne .L3430
21834
+ ldr r4, .L3470+4
21835
+ ldr r1, [r4, #2444]
21836
+ cbz r1, .L3430
21837
+ ldr r3, .L3470+8
21838
+ ldr r6, [r3, #1488]
21839
+ ldrb r3, [r4, #152] @ zero_extendqisi2
21840
+ cbz r3, .L3455
21841
+ ldrb r8, [r6, #8] @ zero_extendqisi2
2157421842 add r0, r8, #-1
2157521843 rsbs r8, r0, #0
2157621844 adc r8, r8, r0
21577
- b .L3550
21578
-.L3571:
21579
- mov r8, r3
21580
-.L3550:
21581
- ldr r0, [r4, #2444]
21845
+.L3432:
21846
+ movs r7, #0
21847
+ mov r10, #36
21848
+ ldrb r3, [r6, #9] @ zero_extendqisi2
2158221849 mov r2, r8
21583
- ldrb r3, [r5, #9] @ zero_extendqisi2
21584
- mov r9, #0
21850
+ ldr r0, [r4, #2448]
2158521851 bl FlashProgPages
21586
- ldr r10, .L3589+8
21587
- mov fp, #36
21588
-.L3551:
21589
- ldr r3, [r4, #2440]
21590
- cmp r9, r3
21591
- bcs .L3569
21592
- mul r6, fp, r9
21593
- ldr r3, [r10, #2444]
21594
- adds r2, r3, r6
21595
- ldr r3, [r3, r6]
21596
- adds r3, r3, #1
21597
- beq .L3572
21598
- ldr r3, [r2, #4]
21599
- cmp r8, #0
21600
- beq .L3585
21601
- orr r3, r3, #-2147483648
21602
-.L3585:
21603
- ldr r0, [r2, #16]
21604
- add r1, sp, #4
21605
- movs r2, #1
21606
- str r3, [sp, #4]
21607
- bl log2phys
21852
+.L3433:
2160821853 ldr r3, [r4, #2444]
21609
- add r6, r6, r3
21610
- ldr r3, [r6, #12]
21611
- ldr r0, [r3, #12]
21612
- adds r2, r0, #1
21613
- beq .L3555
21614
- ubfx r0, r0, #10, #16
21615
- bl P2V_block_in_plane
21616
- ldr r3, [r7, #296]
21617
- ldrh r2, [r3, r0, lsl #1]
21618
- mov r6, r0
21619
- cbnz r2, .L3556
21620
- ldr r0, .L3589+12
21621
- mov r1, r6
21622
- bl printk
21623
-.L3556:
21624
- mov r0, r6
21625
- bl decrement_vpc_count
21626
-.L3555:
21627
- add r9, r9, #1
21628
- b .L3551
21629
-.L3587:
21630
- movw r5, #16386
21631
-.L3568:
21632
- ldrh r3, [r7, #1182]
21633
- cbz r3, .L3569
21634
- movs r0, #1
21635
- mov r1, r0
21636
- bl ftl_do_gc
21637
- subs r5, r5, #1
21638
- bne .L3568
21639
-.L3569:
21854
+ cmp r7, r3
21855
+ bcc .L3440
21856
+.L3452:
2164021857 movs r3, #0
21641
- str r3, [r4, #2440]
21642
- b .L3548
21643
-.L3572:
21644
- ldr r10, .L3589+8
21645
- mov r9, #0
21646
-.L3552:
21647
- ldr r3, [r4, #2440]
21648
- cmp r9, r3
21649
- bcs .L3587
21650
- movs r6, #36
21651
- ldr r3, [r10, #2444]
21652
- mov fp, #0
21653
- mov r2, #-1
21654
- mul r6, r6, r9
21655
- str r2, [r3, r6]
21656
-.L3558:
21657
- ldr r3, [r4, #2444]
21658
- adds r2, r3, r6
21659
- ldr r3, [r3, r6]
21660
- adds r3, r3, #1
21661
- bne .L3588
21662
- ldr r0, [r2, #4]
21663
- ubfx r0, r0, #10, #16
21664
- bl P2V_block_in_plane
21665
- ldrh r3, [r5]
21666
- cmp r3, r0
21667
- bne .L3559
21668
- ldr r1, [r7, #296]
21669
- ldrh r0, [r5, #4]
21670
- ldrh r2, [r1, r3, lsl #1]
21671
- subs r2, r2, r0
21672
- strh r2, [r1, r3, lsl #1] @ movhi
21673
- ldrh r3, [r10, #2388]
21674
- strb fp, [r5, #6]
21675
- strh fp, [r5, #4] @ movhi
21676
- strh r3, [r5, #2] @ movhi
21677
-.L3559:
21678
- ldrh r3, [r5, #4]
21679
- cbnz r3, .L3560
21680
- mov r0, r5
21681
- bl allocate_new_data_superblock
21682
-.L3560:
21683
- ldr r3, [r7, #704]
21684
- adds r3, r3, #1
21685
- str r3, [r7, #704]
21686
- ldr r3, [r4, #2444]
21687
- add r3, r3, r6
21688
- ldr r0, [r3, #4]
21689
- ubfx r0, r0, #10, #16
21690
- bl FtlGcMarkBadPhyBlk
21691
- mov r0, r5
21692
- bl get_new_active_ppa
21693
- ldr r3, [r4, #2444]
21694
- mov r2, r8
21695
- movs r1, #1
21696
- add r3, r3, r6
21697
- str r0, [sp, #4]
21698
- str r0, [r3, #4]
21699
- mov r0, r3
21700
- ldrb r3, [r5, #9] @ zero_extendqisi2
21701
- bl FlashProgPages
21702
- ldr r3, [r4, #2444]
21703
- ldr r3, [r3, r6]
21704
- adds r3, r3, #1
21705
- ittt eq
21706
- moveq r3, #1
21707
- ldreq r2, .L3589+4
21708
- streq r3, [r2, #224]
21709
- ldr r3, [r7, #224]
21710
- cmp r3, #0
21711
- beq .L3558
21712
- b .L3548
21713
-.L3588:
21714
- ldr r3, [r2, #4]
21715
- cmp r8, #0
21716
- beq .L3586
21717
- orr r3, r3, #-2147483648
21718
-.L3586:
21719
- ldr r0, [r2, #16]
21720
- add r1, sp, #4
21721
- movs r2, #1
21722
- str r3, [sp, #4]
21723
- bl log2phys
21724
- ldr r3, [r4, #2444]
21725
- add r6, r6, r3
21726
- ldr r3, [r6, #12]
21727
- ldr r0, [r3, #12]
21728
- adds r3, r0, #1
21729
- beq .L3565
21730
- ubfx r0, r0, #10, #16
21731
- bl P2V_block_in_plane
21732
- ldr r3, [r7, #296]
21733
- ldrh r2, [r3, r0, lsl #1]
21734
- mov r6, r0
21735
- cbnz r2, .L3566
21736
- ldr r0, .L3589+12
21737
- mov r1, r6
21738
- bl printk
21739
-.L3566:
21740
- mov r0, r6
21741
- bl decrement_vpc_count
21742
-.L3565:
21743
- add r9, r9, #1
21744
- b .L3552
21745
-.L3548:
21858
+ str r3, [r4, #2444]
21859
+.L3430:
2174621860 movs r0, #0
2174721861 add sp, sp, #12
2174821862 @ sp needed
2174921863 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
21750
-.L3590:
21864
+.L3455:
21865
+ mov r8, r9
21866
+ b .L3432
21867
+.L3440:
21868
+ mul fp, r10, r7
21869
+ ldr r2, [r4, #2448]
21870
+ add r0, r2, fp
21871
+ ldr r2, [r2, fp]
21872
+ adds r2, r2, #1
21873
+ bne .L3434
21874
+ mov r10, #0
21875
+.L3435:
21876
+ ldr r3, [r4, #2444]
21877
+ cmp r9, r3
21878
+ bcc .L3450
21879
+ movw r6, #16386
21880
+.L3453:
21881
+ ldrh r3, [r5, #1182]
21882
+ cmp r3, #0
21883
+ beq .L3452
21884
+ movs r1, #1
21885
+ mov r0, r1
21886
+ bl ftl_do_gc
21887
+ subs r6, r6, #1
21888
+ bne .L3453
21889
+ b .L3452
21890
+.L3434:
21891
+ ldr r2, [r0, #4]
21892
+ cmp r8, #0
21893
+ bne .L3436
21894
+.L3468:
21895
+ str r2, [sp, #4]
21896
+ add r1, sp, #4
21897
+ movs r2, #1
21898
+ ldr r0, [r0, #16]
21899
+ bl log2phys
21900
+ ldr r2, [r4, #2448]
21901
+ add r3, r2, fp
21902
+ ldr r3, [r3, #12]
21903
+ ldr r0, [r3, #12]
21904
+ adds r2, r0, #1
21905
+ beq .L3438
21906
+ ubfx r0, r0, #10, #16
21907
+ bl P2V_block_in_plane
21908
+ ldr r2, [r5, #300]
21909
+ mov fp, r0
21910
+ ldrh r2, [r2, r0, lsl #1]
21911
+ cbnz r2, .L3439
21912
+ mov r1, r0
21913
+ ldr r0, .L3470+12
21914
+ bl printk
21915
+.L3439:
21916
+ mov r0, fp
21917
+ bl decrement_vpc_count
21918
+.L3438:
21919
+ adds r7, r7, #1
21920
+ b .L3433
21921
+.L3436:
21922
+ orr r2, r2, #-2147483648
21923
+ b .L3468
21924
+.L3450:
21925
+ movs r7, #36
21926
+ ldr r3, [r4, #2448]
21927
+ mul r7, r7, r9
21928
+ mov fp, #1
21929
+ mov r2, #-1
21930
+ str r2, [r3, r7]
21931
+.L3441:
21932
+ ldr r2, [r4, #2448]
21933
+ adds r3, r2, r7
21934
+ ldr r2, [r2, r7]
21935
+ ldr r0, [r3, #4]
21936
+ adds r2, r2, #1
21937
+ beq .L3445
21938
+ cmp r8, #0
21939
+ bne .L3446
21940
+.L3469:
21941
+ str r0, [sp, #4]
21942
+ movs r2, #1
21943
+ ldr r0, [r3, #16]
21944
+ add r1, sp, #4
21945
+ bl log2phys
21946
+ ldr r3, [r4, #2448]
21947
+ add r7, r7, r3
21948
+ ldr r3, [r7, #12]
21949
+ ldr r0, [r3, #12]
21950
+ adds r3, r0, #1
21951
+ beq .L3448
21952
+ ubfx r0, r0, #10, #16
21953
+ bl P2V_block_in_plane
21954
+ ldr r3, [r5, #300]
21955
+ mov r7, r0
21956
+ ldrh r2, [r3, r0, lsl #1]
21957
+ cbnz r2, .L3449
21958
+ mov r1, r0
21959
+ ldr r0, .L3470+12
21960
+ bl printk
21961
+.L3449:
21962
+ mov r0, r7
21963
+ bl decrement_vpc_count
21964
+.L3448:
21965
+ add r9, r9, #1
21966
+ b .L3435
21967
+.L3445:
21968
+ ubfx r0, r0, #10, #16
21969
+ bl P2V_block_in_plane
21970
+ ldrh r3, [r6]
21971
+ cmp r3, r0
21972
+ bne .L3442
21973
+ ldr r1, [r5, #300]
21974
+ ldrh r0, [r6, #4]
21975
+ ldrh r2, [r1, r3, lsl #1]
21976
+ subs r2, r2, r0
21977
+ strh r2, [r1, r3, lsl #1] @ movhi
21978
+ ldrh r3, [r4, #2390]
21979
+ strb r10, [r6, #6]
21980
+ strh r10, [r6, #4] @ movhi
21981
+ strh r3, [r6, #2] @ movhi
21982
+.L3442:
21983
+ ldrh r3, [r6, #4]
21984
+ cbnz r3, .L3443
21985
+ mov r0, r6
21986
+ bl allocate_new_data_superblock
21987
+.L3443:
21988
+ ldr r3, [r5, #700]
21989
+ adds r3, r3, #1
21990
+ str r3, [r5, #700]
21991
+ ldr r3, [r4, #2448]
21992
+ add r3, r3, r7
21993
+ ldr r0, [r3, #4]
21994
+ ubfx r0, r0, #10, #16
21995
+ bl FtlGcMarkBadPhyBlk
21996
+ mov r0, r6
21997
+ bl get_new_active_ppa
21998
+ ldr r3, [r4, #2448]
21999
+ mov r2, r0
22000
+ str r0, [sp, #4]
22001
+ movs r1, #1
22002
+ adds r0, r3, r7
22003
+ str r2, [r0, #4]
22004
+ mov r2, r8
22005
+ ldrb r3, [r6, #9] @ zero_extendqisi2
22006
+ bl FlashProgPages
22007
+ ldr r3, [r4, #2448]
22008
+ ldr r3, [r3, r7]
22009
+ adds r3, r3, #1
22010
+ it eq
22011
+ streq fp, [r5, #228]
22012
+ ldr r3, [r5, #228]
22013
+ cmp r3, #0
22014
+ beq .L3441
22015
+ b .L3430
22016
+.L3446:
22017
+ orr r0, r0, #-2147483648
22018
+ b .L3469
22019
+.L3471:
2175122020 .align 2
21752
-.L3589:
21753
- .word .LANCHOR5
22021
+.L3470:
2175422022 .word .LANCHOR2
2175522023 .word .LANCHOR0
22024
+ .word .LANCHOR4
2175622025 .word .LC159
2175722026 .fnend
2175822027 .size FtlCacheWriteBack, .-FtlCacheWriteBack
2175922028 .align 1
2176022029 .global FtlSysFlush
22030
+ .syntax unified
2176122031 .thumb
2176222032 .thumb_func
22033
+ .fpu softvfp
2176322034 .type FtlSysFlush, %function
2176422035 FtlSysFlush:
2176522036 .fnstart
2176622037 @ args = 0, pretend = 0, frame = 0
2176722038 @ frame_needed = 0, uses_anonymous_args = 0
21768
- ldr r3, .L3593
22039
+ ldr r3, .L3474
2176922040 push {r4, lr}
2177022041 .save {r4, lr}
21771
- ldr r3, [r3, #224]
21772
- cbnz r3, .L3592
21773
- ldr r3, .L3593+4
21774
- ldr r4, [r3, #504]
22042
+ ldr r3, [r3, #228]
22043
+ cbnz r3, .L3473
22044
+ ldr r3, .L3474+4
22045
+ ldr r4, [r3, #500]
2177522046 cmp r4, #1
21776
- bne .L3592
22047
+ bne .L3473
2177722048 bl FtlCacheWriteBack
2177822049 bl l2p_flush
2177922050 mov r0, r4
2178022051 bl FtlEctTblFlush
2178122052 bl FtlVpcTblFlush
21782
-.L3592:
22053
+.L3473:
2178322054 movs r0, #0
2178422055 pop {r4, pc}
21785
-.L3594:
22056
+.L3475:
2178622057 .align 2
21787
-.L3593:
22058
+.L3474:
2178822059 .word .LANCHOR2
2178922060 .word .LANCHOR1
2179022061 .fnend
2179122062 .size FtlSysFlush, .-FtlSysFlush
2179222063 .align 1
2179322064 .global FtlDeInit
22065
+ .syntax unified
2179422066 .thumb
2179522067 .thumb_func
22068
+ .fpu softvfp
2179622069 .type FtlDeInit, %function
2179722070 FtlDeInit:
2179822071 .fnstart
....@@ -21800,24 +22073,26 @@
2180022073 @ frame_needed = 0, uses_anonymous_args = 0
2180122074 push {r3, lr}
2180222075 .save {r3, lr}
21803
- ldr r3, .L3597
21804
- ldr r3, [r3, #504]
22076
+ ldr r3, .L3478
22077
+ ldr r3, [r3, #500]
2180522078 cmp r3, #1
21806
- bne .L3596
22079
+ bne .L3477
2180722080 bl FtlSysFlush
21808
-.L3596:
22081
+.L3477:
2180922082 movs r0, #0
2181022083 pop {r3, pc}
21811
-.L3598:
22084
+.L3479:
2181222085 .align 2
21813
-.L3597:
22086
+.L3478:
2181422087 .word .LANCHOR1
2181522088 .fnend
2181622089 .size FtlDeInit, .-FtlDeInit
2181722090 .align 1
2181822091 .global ftl_deinit
22092
+ .syntax unified
2181922093 .thumb
2182022094 .thumb_func
22095
+ .fpu softvfp
2182122096 .type ftl_deinit, %function
2182222097 ftl_deinit:
2182322098 .fnstart
....@@ -21833,8 +22108,10 @@
2183322108 .size ftl_deinit, .-ftl_deinit
2183422109 .align 1
2183522110 .global rk_ftl_de_init
22111
+ .syntax unified
2183622112 .thumb
2183722113 .thumb_func
22114
+ .fpu softvfp
2183822115 .type rk_ftl_de_init, %function
2183922116 rk_ftl_de_init:
2184022117 .fnstart
....@@ -21843,20 +22120,22 @@
2184322120 push {r3, lr}
2184422121 .save {r3, lr}
2184522122 movs r1, #0
21846
- ldr r0, .L3601
22123
+ ldr r0, .L3482
2184722124 bl printk
2184822125 pop {r3, lr}
2184922126 b ftl_deinit
21850
-.L3602:
22127
+.L3483:
2185122128 .align 2
21852
-.L3601:
22129
+.L3482:
2185322130 .word .LC160
2185422131 .fnend
2185522132 .size rk_ftl_de_init, .-rk_ftl_de_init
2185622133 .align 1
2185722134 .global ftl_cache_flush
22135
+ .syntax unified
2185822136 .thumb
2185922137 .thumb_func
22138
+ .fpu softvfp
2186022139 .type ftl_cache_flush, %function
2186122140 ftl_cache_flush:
2186222141 .fnstart
....@@ -21868,8 +22147,10 @@
2186822147 .size ftl_cache_flush, .-ftl_cache_flush
2186922148 .align 1
2187022149 .global rk_ftl_cache_write_back
22150
+ .syntax unified
2187122151 .thumb
2187222152 .thumb_func
22153
+ .fpu softvfp
2187322154 .type rk_ftl_cache_write_back, %function
2187422155 rk_ftl_cache_write_back:
2187522156 .fnstart
....@@ -21881,8 +22162,10 @@
2188122162 .size rk_ftl_cache_write_back, .-rk_ftl_cache_write_back
2188222163 .align 1
2188322164 .global ftl_discard
22165
+ .syntax unified
2188422166 .thumb
2188522167 .thumb_func
22168
+ .fpu softvfp
2188622169 .type ftl_discard, %function
2188722170 ftl_discard:
2188822171 .fnstart
....@@ -21892,25 +22175,24 @@
2189222175 .save {r4, r5, r6, r7, r8, r9, lr}
2189322176 .pad #12
2189422177 mov r6, r0
21895
- ldr r7, .L3624
22178
+ ldr r7, .L3504
2189622179 mov r4, r1
21897
- ldr r5, [r7, #2428]
21898
- cmp r0, r5
21899
- bcs .L3614
21900
- cmp r1, r5
21901
- bhi .L3614
21902
- adds r3, r0, r1
21903
- cmp r3, r5
21904
- bhi .L3614
22180
+ ldr r3, [r7, #2432]
22181
+ cmp r3, r0
22182
+ bls .L3495
22183
+ cmp r3, r1
22184
+ bcc .L3495
22185
+ adds r2, r0, r1
22186
+ cmp r3, r2
22187
+ bcc .L3495
2190522188 cmp r1, #31
21906
- bls .L3616
21907
- ldr r3, .L3624+4
21908
- ldr r2, [r3, #224]
22189
+ bls .L3497
22190
+ ldr r3, .L3504+4
22191
+ ldr r2, [r3, #228]
2190922192 mov r8, r3
21910
- cmp r2, #0
21911
- bne .L3616
22193
+ cbnz r2, .L3497
2191222194 bl FtlCacheWriteBack
21913
- ldrh r5, [r7, #2394]
22195
+ ldrh r5, [r7, #2396]
2191422196 mov r0, r6
2191522197 mov r1, r5
2191622198 bl __aeabi_uidiv
....@@ -21918,7 +22200,7 @@
2191822200 mov r9, r0
2191922201 subs r6, r6, r3
2192022202 uxth r6, r6
21921
- cbz r6, .L3607
22203
+ cbz r6, .L3488
2192222204 subs r5, r5, r6
2192322205 add r9, r0, #1
2192422206 cmp r5, r4
....@@ -21926,27 +22208,39 @@
2192622208 movcs r5, r4
2192722209 uxth r5, r5
2192822210 subs r4, r4, r5
21929
-.L3607:
21930
- ldr r5, .L3624+8
22211
+.L3488:
22212
+ ldr r5, .L3504+8
2193122213 mov r3, #-1
2193222214 str r3, [sp, #4]
21933
-.L3608:
21934
- ldrh r3, [r7, #2394]
22215
+.L3489:
22216
+ ldrh r3, [r7, #2396]
2193522217 cmp r4, r3
21936
- bcc .L3623
21937
- mov r0, r9
21938
- mov r1, sp
22218
+ bcs .L3491
22219
+ ldr r3, .L3504+8
22220
+ ldr r2, [r3, #1492]
22221
+ cmp r2, #32
22222
+ bls .L3497
2193922223 movs r2, #0
22224
+ str r2, [r3, #1492]
22225
+ bl l2p_flush
22226
+ bl FtlVpcTblFlush
22227
+.L3497:
22228
+ movs r0, #0
22229
+ b .L3486
22230
+.L3491:
22231
+ movs r2, #0
22232
+ mov r1, sp
22233
+ mov r0, r9
2194022234 bl log2phys
2194122235 ldr r3, [sp]
2194222236 adds r3, r3, #1
21943
- beq .L3609
21944
- ldr r3, [r5, #988]
21945
- add r1, sp, #4
22237
+ beq .L3490
22238
+ ldr r3, [r5, #1492]
2194622239 movs r2, #1
22240
+ add r1, sp, #4
2194722241 mov r0, r9
2194822242 adds r3, r3, #1
21949
- str r3, [r5, #988]
22243
+ str r3, [r5, #1492]
2195022244 ldr r3, [r8, #480]
2195122245 adds r3, r3, #1
2195222246 str r3, [r8, #480]
....@@ -21955,42 +22249,31 @@
2195522249 ubfx r0, r0, #10, #16
2195622250 bl P2V_block_in_plane
2195722251 bl decrement_vpc_count
21958
-.L3609:
21959
- ldrh r3, [r7, #2394]
22252
+.L3490:
22253
+ ldrh r3, [r7, #2396]
2196022254 add r9, r9, #1
2196122255 subs r4, r4, r3
21962
- b .L3608
21963
-.L3623:
21964
- ldr r3, .L3624+8
21965
- ldr r2, [r3, #988]
21966
- cmp r2, #32
21967
- bls .L3616
21968
- movs r2, #0
21969
- str r2, [r3, #988]
21970
- bl l2p_flush
21971
- bl FtlVpcTblFlush
21972
- b .L3616
21973
-.L3614:
22256
+ b .L3489
22257
+.L3495:
2197422258 mov r0, #-1
21975
- b .L3606
21976
-.L3616:
21977
- movs r0, #0
21978
-.L3606:
22259
+.L3486:
2197922260 add sp, sp, #12
2198022261 @ sp needed
2198122262 pop {r4, r5, r6, r7, r8, r9, pc}
21982
-.L3625:
22263
+.L3505:
2198322264 .align 2
21984
-.L3624:
22265
+.L3504:
2198522266 .word .LANCHOR0
2198622267 .word .LANCHOR2
21987
- .word .LANCHOR5
22268
+ .word .LANCHOR4
2198822269 .fnend
2198922270 .size ftl_discard, .-ftl_discard
2199022271 .align 1
2199122272 .global FtlDiscard
22273
+ .syntax unified
2199222274 .thumb
2199322275 .thumb_func
22276
+ .fpu softvfp
2199422277 .type FtlDiscard, %function
2199522278 FtlDiscard:
2199622279 .fnstart
....@@ -22002,8 +22285,10 @@
2200222285 .size FtlDiscard, .-FtlDiscard
2200322286 .align 1
2200422287 .global ftl_read
22288
+ .syntax unified
2200522289 .thumb
2200622290 .thumb_func
22291
+ .fpu softvfp
2200722292 .type ftl_read, %function
2200822293 ftl_read:
2200922294 .fnstart
....@@ -22011,289 +22296,294 @@
2201122296 @ frame_needed = 0, uses_anonymous_args = 0
2201222297 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2201322298 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22014
- mov r8, r3
22015
- ldr r3, .L3672
22299
+ mov r9, r3
22300
+ ldr r3, .L3548
2201622301 .pad #84
2201722302 sub sp, sp, #84
2201822303 mov r5, r1
22019
- str r2, [sp, #36]
22020
- ldr r3, [r3, #504]
22304
+ str r2, [sp, #44]
22305
+ ldr r3, [r3, #500]
2202122306 cmp r3, #1
22022
- bne .L3653
22307
+ bne .L3532
2202322308 cmp r0, #16
22024
- bne .L3629
22025
- add r0, r1, #256
22026
- mov r1, r2
22027
- mov r2, r8
22309
+ bne .L3509
22310
+ mov r2, r9
22311
+ ldr r1, [sp, #44]
22312
+ add r0, r5, #256
2202822313 bl FtlVendorPartRead
22029
- b .L3628
22030
-.L3629:
22031
- ldr r2, .L3672+4
22032
- ldr r3, [r2, #2428]
22314
+ mov r8, r0
22315
+.L3507:
22316
+ mov r0, r8
22317
+ add sp, sp, #84
22318
+ @ sp needed
22319
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
22320
+.L3509:
22321
+ ldr r2, .L3548+4
22322
+ ldr r3, [r2, #2432]
2203322323 cmp r1, r3
22034
- bcs .L3653
22035
- ldr r1, [sp, #36]
22324
+ bcs .L3532
22325
+ ldr r1, [sp, #44]
2203622326 cmp r1, r3
22037
- bhi .L3653
22327
+ bhi .L3532
2203822328 adds r1, r5, r1
22039
- str r1, [sp, #40]
22040
- cmp r1, r3
22041
- bhi .L3653
22042
- ldrh r4, [r2, #2394]
22329
+ cmp r3, r1
22330
+ str r1, [sp, #48]
22331
+ bcc .L3532
22332
+ ldrh r4, [r2, #2396]
2204322333 mov r0, r5
2204422334 mov r1, r4
2204522335 bl __aeabi_uidiv
22336
+ ldr r3, [sp, #48]
2204622337 mov r1, r4
22047
- ldr r3, [sp, #40]
22048
- str r0, [sp, #28]
22338
+ str r0, [sp, #36]
2204922339 subs r0, r3, #1
2205022340 bl __aeabi_uidiv
22051
- ldr r3, [sp, #28]
22052
- ldr r1, [sp, #36]
22341
+ ldr r3, [sp, #36]
22342
+ ldr r1, [sp, #44]
22343
+ str r0, [sp, #40]
2205322344 rsb r3, r3, #1
22054
- str r0, [sp, #32]
2205522345 add r3, r3, r0
22056
- str r3, [sp, #24]
22057
- ldr r3, .L3672+8
22058
- ldr r0, [sp, #28]
22346
+ str r3, [sp, #32]
22347
+ ldr r3, .L3548+8
2205922348 ldr r2, [r3, #504]
2206022349 add r2, r2, r1
22061
- ldr r1, [sp, #24]
22350
+ ldr r1, [sp, #32]
2206222351 str r2, [r3, #504]
2206322352 ldr r2, [r3, #476]
2206422353 add r2, r2, r1
22065
- ldr r1, [sp, #32]
22354
+ mov r1, r0
22355
+ ldr r0, [sp, #36]
2206622356 str r2, [r3, #476]
2206722357 bl FtlCacheMetchLpa
22068
- cbz r0, .L3630
22358
+ cbz r0, .L3510
2206922359 bl FtlCacheWriteBack
22070
-.L3630:
22071
- mov r10, #0
22072
- ldr r6, [sp, #28]
22073
- ldr r4, .L3672+8
22074
- ldr r9, .L3672+4
22075
- mov r7, r10
22076
- str r10, [sp, #48]
22077
- str r10, [sp, #52]
22078
-.L3631:
22079
- ldr r3, [sp, #24]
22360
+.L3510:
22361
+ ldr r6, [sp, #36]
22362
+ movs r3, #0
22363
+ ldr r4, .L3548+8
22364
+ mov r7, r3
22365
+ mov r8, r3
22366
+ str r3, [sp, #28]
22367
+ str r3, [sp, #52]
22368
+.L3511:
22369
+ ldr r3, [sp, #32]
22370
+ cbnz r3, .L3528
22371
+ ldr r3, .L3548+8
22372
+ ldrh r3, [r3, #1182]
2208022373 cmp r3, #0
22081
- beq .L3671
22374
+ beq .L3507
22375
+ movs r1, #1
22376
+ ldr r0, [sp, #32]
22377
+ bl ftl_do_gc
22378
+ b .L3507
22379
+.L3528:
22380
+ movs r2, #0
2208222381 add r1, sp, #76
2208322382 mov r0, r6
22084
- movs r2, #0
2208522383 bl log2phys
2208622384 ldr r3, [sp, #76]
22087
- adds r1, r3, #1
22088
- bne .L3668
22089
- mov fp, #0
22090
-.L3632:
22091
- ldrh r0, [r9, #2394]
22092
- cmp fp, r0
22093
- bcs .L3636
22094
- mla r0, r0, r6, fp
22095
- cmp r0, r5
22096
- bcc .L3634
22097
- ldr r3, [sp, #40]
22098
- cmp r0, r3
22099
- bcs .L3634
22100
- subs r0, r0, r5
22101
- movs r1, #0
22102
- mov r2, #512
22103
- add r0, r8, r0, lsl #9
22104
- bl ftl_memset
22105
-.L3634:
22106
- add fp, fp, #1
22107
- b .L3632
22108
-.L3668:
22109
- ldr r2, [r4, #3304]
22110
- mov fp, #36
22111
- mla fp, fp, r7, r2
22112
- str r3, [fp, #4]
22113
- ldr r3, [sp, #28]
22114
- cmp r6, r3
22115
- bne .L3637
22116
- ldrh ip, [r9, #2394]
22117
- mov r0, r5
22118
- ldr r3, [r4, #3332]
22119
- mov r1, ip
22120
- str ip, [sp, #44]
22121
- str r3, [fp, #8]
22122
- bl __aeabi_uidivmod
22123
- ldr ip, [sp, #44]
22124
- ldr r2, [sp, #36]
22125
- rsb r3, r1, ip
22126
- str r1, [sp, #56]
22127
- cmp r3, r2
22128
- it cs
22129
- movcs r3, r2
22130
- cmp r3, ip
22131
- str r3, [sp, #48]
22132
- bne .L3638
22133
- str r8, [fp, #8]
22134
- b .L3638
22135
-.L3637:
22385
+ adds r2, r3, #1
22386
+ bne .L3512
22387
+ mov r10, #0
22388
+.L3513:
22389
+ ldr r3, .L3548+4
22390
+ ldrh r0, [r3, #2396]
22391
+ cmp r10, r0
22392
+ bcc .L3515
22393
+.L3516:
2213622394 ldr r3, [sp, #32]
22137
- cmp r6, r3
22138
- bne .L3639
22139
- ldr r3, [r4, #3336]
22140
- ldrh r2, [r9, #2394]
22141
- ldr r1, [sp, #40]
22142
- str r3, [fp, #8]
22143
- mul r3, r2, r6
22144
- rsb r10, r3, r1
22145
- cmp r10, r2
22146
- bne .L3638
22147
- b .L3669
22148
-.L3639:
22149
- ldrh r3, [r9, #2394]
22150
- muls r3, r6, r3
22151
-.L3669:
22152
- subs r3, r3, r5
22153
- add r3, r8, r3, lsl #9
22154
- str r3, [fp, #8]
22155
-.L3638:
22156
- ldrh r3, [r9, #2400]
22157
- ldr r2, [r4, #3344]
22158
- str r6, [fp, #16]
22159
- muls r3, r7, r3
22160
- adds r7, r7, #1
22161
- bic r3, r3, #3
22162
- add r3, r3, r2
22163
- str r3, [fp, #12]
22164
-.L3636:
22165
- ldr r3, [sp, #24]
2216622395 adds r6, r6, #1
2216722396 subs r3, r3, #1
22168
- str r3, [sp, #24]
22169
- beq .L3640
22170
- ldrh r3, [r9, #2320]
22397
+ str r3, [sp, #32]
22398
+ beq .L3520
22399
+ ldr r3, .L3548+4
22400
+ ldrh r3, [r3, #2324]
2217122401 cmp r7, r3, lsl #3
22172
- bne .L3631
22173
-.L3640:
22402
+ bne .L3511
22403
+.L3520:
2217422404 cmp r7, #0
22175
- beq .L3631
22176
- ldr r0, [r4, #3304]
22177
- mov r1, r7
22405
+ beq .L3511
2217822406 movs r2, #0
22407
+ mov r1, r7
22408
+ ldr r0, [r4, #3304]
22409
+ mov fp, #0
2217922410 bl FlashReadPages
22411
+ ldr r3, [sp, #28]
22412
+ lsls r3, r3, #9
22413
+ str r3, [sp, #68]
2218022414 ldr r3, [sp, #56]
2218122415 lsls r3, r3, #9
2218222416 str r3, [sp, #60]
22183
- ldr r3, [sp, #48]
22417
+ ldr r3, [sp, #52]
2218422418 lsls r3, r3, #9
2218522419 str r3, [sp, #64]
22186
- lsl r3, r10, #9
22187
- str r3, [sp, #68]
22188
- movs r3, #0
22189
- str r3, [sp, #44]
22190
-.L3647:
22191
- ldr r3, [sp, #44]
22192
- mov ip, #36
22193
- ldr r1, [sp, #28]
22194
- mul fp, ip, r3
22420
+.L3527:
22421
+ mov r10, #36
2219522422 ldr r3, [r4, #3304]
22196
- add r3, r3, fp
22423
+ mul r10, r10, fp
22424
+ ldr r1, [sp, #36]
22425
+ add r3, r3, r10
2219722426 ldr r2, [r3, #16]
22198
- cmp r2, r1
22199
- bne .L3642
22427
+ cmp r1, r2
22428
+ bne .L3522
2220022429 ldr r1, [r3, #8]
2220122430 ldr r3, [r4, #3332]
2220222431 cmp r1, r3
22203
- bne .L3643
22432
+ bne .L3523
2220422433 ldr r3, [sp, #60]
22205
- mov r0, r8
22434
+ mov r0, r9
2220622435 ldr r2, [sp, #64]
2220722436 add r1, r1, r3
22208
- b .L3670
22209
-.L3642:
22210
- ldr r1, [sp, #32]
22211
- cmp r2, r1
22212
- bne .L3643
22213
- ldr r1, [r3, #8]
22214
- ldr r3, [r4, #3336]
22215
- cmp r1, r3
22216
- bne .L3643
22217
- ldrh r0, [r9, #2394]
22218
- ldr r3, [sp, #32]
22219
- ldr r2, [sp, #68]
22220
- muls r0, r3, r0
22221
- subs r0, r0, r5
22222
- add r0, r8, r0, lsl #9
22223
-.L3670:
22437
+.L3547:
2222422438 bl ftl_memcpy
22225
-.L3643:
22226
- ldr r2, [r4, #3304]
22227
- add r3, r2, fp
22228
- ldr r1, [r2, fp]
22229
- adds r2, r1, #1
22230
- itttt eq
22231
- streq r1, [sp, #52]
22232
- ldreq r2, [r4, #680]
22233
- addeq r2, r2, #1
22234
- streq r2, [r4, #680]
22235
- ldr r2, [r3, #12]
22236
- ldr r1, [r3, #16]
22237
- ldr r2, [r2, #8]
22238
- cmp r1, r2
22239
- beq .L3645
22240
- ldr r2, [r4, #680]
22241
- ldr r0, .L3672+12
22242
- adds r2, r2, #1
22243
- str r2, [r4, #680]
22244
- ldr lr, [r3, #12]
22245
- ldr r2, [r3, #8]
22246
- ldr r1, [lr, #4]
22247
- str r1, [sp]
22248
- ldr r1, [lr, #8]
22249
- str r1, [sp, #4]
22250
- ldr r1, [lr, #12]
22251
- str r1, [sp, #8]
22252
- ldr r1, [r2]
22253
- str r1, [sp, #12]
22254
- ldr r2, [r2, #4]
22255
- str r2, [sp, #16]
22256
- ldr r1, [r3, #16]
22257
- ldr r2, [r3, #4]
22258
- ldr r3, [lr]
22259
- bl printk
22260
-.L3645:
22439
+.L3523:
2226122440 ldr r3, [r4, #3304]
22262
- add r2, r3, fp
22263
- ldr r3, [r3, fp]
22441
+ ldr r2, [r3, r10]
22442
+ add r1, r3, r10
22443
+ adds r3, r2, #1
22444
+ itttt eq
22445
+ ldreq r3, [r4, #676]
22446
+ moveq r8, r2
22447
+ addeq r3, r3, #1
22448
+ streq r3, [r4, #676]
22449
+ ldr r3, [r1, #12]
22450
+ ldr r2, [r1, #16]
22451
+ ldr r3, [r3, #8]
22452
+ cmp r2, r3
22453
+ beq .L3525
22454
+ ldr r3, [r4, #676]
22455
+ adds r3, r3, #1
22456
+ str r3, [r4, #676]
22457
+ ldr r2, [r1, #8]
22458
+ ldr r3, [r1, #12]
22459
+ ldr r0, [r2, #4]
22460
+ str r0, [sp, #16]
22461
+ ldr r2, [r2]
22462
+ ldr r0, .L3548+12
22463
+ str r2, [sp, #12]
22464
+ ldr r2, [r3, #12]
22465
+ str r2, [sp, #8]
22466
+ ldr r2, [r3, #8]
22467
+ str r2, [sp, #4]
22468
+ ldr r2, [r3, #4]
22469
+ str r2, [sp]
22470
+ ldr r2, [r1, #4]
22471
+ ldr r3, [r3]
22472
+ ldr r1, [r1, #16]
22473
+ bl printk
22474
+.L3525:
22475
+ ldr r3, [r4, #3304]
22476
+ add r2, r3, r10
22477
+ ldr r3, [r3, r10]
2226422478 cmp r3, #256
22265
- bne .L3646
22479
+ bne .L3526
2226622480 ldr r0, [r2, #4]
2226722481 ubfx r0, r0, #10, #16
2226822482 bl P2V_block_in_plane
2226922483 bl FtlGcRefreshBlock
22270
-.L3646:
22271
- ldr r3, [sp, #44]
22272
- adds r3, r3, #1
22273
- str r3, [sp, #44]
22274
- cmp r3, r7
22275
- bne .L3647
22484
+.L3526:
22485
+ add fp, fp, #1
22486
+ cmp r7, fp
22487
+ bne .L3527
2227622488 movs r7, #0
22277
- b .L3631
22278
-.L3671:
22279
- ldr r3, .L3672+8
22280
- ldrh r3, [r3, #1182]
22281
- cbz r3, .L3649
22282
- ldr r0, [sp, #24]
22283
- movs r1, #1
22284
- bl ftl_do_gc
22285
-.L3649:
22286
- ldr r0, [sp, #52]
22287
- b .L3628
22288
-.L3653:
22289
- mov r0, #-1
22290
-.L3628:
22291
- add sp, sp, #84
22292
- @ sp needed
22293
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
22294
-.L3673:
22489
+ b .L3511
22490
+.L3515:
22491
+ mla r0, r0, r6, r10
22492
+ cmp r5, r0
22493
+ bhi .L3514
22494
+ ldr r3, [sp, #48]
22495
+ cmp r3, r0
22496
+ bls .L3514
22497
+ subs r0, r0, r5
22498
+ mov r2, #512
22499
+ movs r1, #0
22500
+ add r0, r9, r0, lsl #9
22501
+ bl ftl_memset
22502
+.L3514:
22503
+ add r10, r10, #1
22504
+ b .L3513
22505
+.L3512:
22506
+ ldr r2, [r4, #3304]
22507
+ mov r10, #36
22508
+ mla r10, r10, r7, r2
22509
+ str r3, [r10, #4]
22510
+ ldr r3, [sp, #36]
22511
+ cmp r6, r3
22512
+ bne .L3517
22513
+ ldr r3, [r4, #3332]
22514
+ mov r0, r5
22515
+ str r3, [r10, #8]
22516
+ ldr r3, .L3548+4
22517
+ ldrh fp, [r3, #2396]
22518
+ mov r1, fp
22519
+ bl __aeabi_uidivmod
22520
+ ldr r2, [sp, #44]
22521
+ sub r3, fp, r1
22522
+ str r1, [sp, #56]
22523
+ cmp r3, r2
22524
+ it cs
22525
+ movcs r3, r2
22526
+ cmp r3, fp
22527
+ str r3, [sp, #52]
22528
+ bne .L3518
22529
+ str r9, [r10, #8]
22530
+.L3518:
22531
+ ldr r3, .L3548+4
22532
+ ldr r2, [r4, #3344]
22533
+ str r6, [r10, #16]
22534
+ ldrh r3, [r3, #2402]
22535
+ muls r3, r7, r3
22536
+ adds r7, r7, #1
22537
+ bic r3, r3, #3
22538
+ add r3, r3, r2
22539
+ str r3, [r10, #12]
22540
+ b .L3516
22541
+.L3517:
22542
+ ldr r3, [sp, #40]
22543
+ cmp r6, r3
22544
+ bne .L3519
22545
+ ldr r3, [r4, #3336]
22546
+ ldr r1, [sp, #48]
22547
+ str r3, [r10, #8]
22548
+ ldr r3, .L3548+4
22549
+ ldrh r2, [r3, #2396]
22550
+ mul r3, r2, r6
22551
+ subs r1, r1, r3
22552
+ cmp r2, r1
22553
+ str r1, [sp, #28]
22554
+ bne .L3518
22555
+.L3546:
22556
+ subs r3, r3, r5
22557
+ add r3, r9, r3, lsl #9
22558
+ str r3, [r10, #8]
22559
+ b .L3518
22560
+.L3519:
22561
+ ldr r3, .L3548+4
22562
+ ldrh r3, [r3, #2396]
22563
+ muls r3, r6, r3
22564
+ b .L3546
22565
+.L3522:
22566
+ ldr r1, [sp, #40]
22567
+ cmp r1, r2
22568
+ bne .L3523
22569
+ ldr r1, [r3, #8]
22570
+ ldr r3, [r4, #3336]
22571
+ cmp r1, r3
22572
+ bne .L3523
22573
+ ldr r3, .L3548+4
22574
+ ldr r2, [sp, #68]
22575
+ ldrh r0, [r3, #2396]
22576
+ ldr r3, [sp, #40]
22577
+ muls r0, r3, r0
22578
+ subs r0, r0, r5
22579
+ add r0, r9, r0, lsl #9
22580
+ b .L3547
22581
+.L3532:
22582
+ mov r8, #-1
22583
+ b .L3507
22584
+.L3549:
2229522585 .align 2
22296
-.L3672:
22586
+.L3548:
2229722587 .word .LANCHOR1
2229822588 .word .LANCHOR0
2229922589 .word .LANCHOR2
....@@ -22302,29 +22592,29 @@
2230222592 .size ftl_read, .-ftl_read
2230322593 .align 1
2230422594 .global ftl_vendor_read
22595
+ .syntax unified
2230522596 .thumb
2230622597 .thumb_func
22598
+ .fpu softvfp
2230722599 .type ftl_vendor_read, %function
2230822600 ftl_vendor_read:
2230922601 .fnstart
2231022602 @ args = 0, pretend = 0, frame = 0
2231122603 @ frame_needed = 0, uses_anonymous_args = 0
22312
- push {r4, r5, lr}
22313
- .save {r4, r5, lr}
22314
- mov r5, r0
22315
- mov r4, r1
22604
+ @ link register save eliminated.
2231622605 mov r3, r2
22317
- mov r1, r5
22318
- mov r2, r4
22606
+ mov r2, r1
22607
+ mov r1, r0
2231922608 movs r0, #16
22320
- pop {r4, r5, lr}
2232122609 b ftl_read
2232222610 .fnend
2232322611 .size ftl_vendor_read, .-ftl_vendor_read
2232422612 .align 1
2232522613 .global FlashBootVendorRead
22614
+ .syntax unified
2232622615 .thumb
2232722616 .thumb_func
22617
+ .fpu softvfp
2232822618 .type FlashBootVendorRead, %function
2232922619 FlashBootVendorRead:
2233022620 .fnstart
....@@ -22332,56 +22622,57 @@
2233222622 @ frame_needed = 0, uses_anonymous_args = 0
2233322623 push {r4, r5, r6, lr}
2233422624 .save {r4, r5, r6, lr}
22335
- mov r6, r0
22625
+ mov r4, r0
2233622626 mov r5, r1
22337
- mov r4, r2
22627
+ mov r6, r2
2233822628 bl rknand_device_lock
22339
- ldr r3, .L3678
22340
- ldr r3, [r3, #504]
22629
+ ldr r3, .L3554
22630
+ ldr r3, [r3, #500]
2234122631 cmp r3, #1
22342
- bne .L3677
22343
- mov r2, r4
22344
- mov r0, r6
22632
+ bne .L3553
22633
+ mov r0, r4
22634
+ mov r2, r6
2234522635 mov r1, r5
2234622636 bl ftl_vendor_read
2234722637 mov r4, r0
22348
- b .L3676
22349
-.L3677:
22350
- mov r4, #-1
22351
-.L3676:
22638
+.L3552:
2235222639 bl rknand_device_unlock
2235322640 mov r0, r4
2235422641 pop {r4, r5, r6, pc}
22355
-.L3679:
22642
+.L3553:
22643
+ mov r4, #-1
22644
+ b .L3552
22645
+.L3555:
2235622646 .align 2
22357
-.L3678:
22647
+.L3554:
2235822648 .word .LANCHOR1
2235922649 .fnend
2236022650 .size FlashBootVendorRead, .-FlashBootVendorRead
2236122651 .align 1
2236222652 .global ftl_sys_read
22653
+ .syntax unified
2236322654 .thumb
2236422655 .thumb_func
22656
+ .fpu softvfp
2236522657 .type ftl_sys_read, %function
2236622658 ftl_sys_read:
2236722659 .fnstart
2236822660 @ args = 0, pretend = 0, frame = 0
2236922661 @ frame_needed = 0, uses_anonymous_args = 0
22370
- push {r4, lr}
22371
- .save {r4, lr}
22372
- mov r4, r1
22662
+ @ link register save eliminated.
2237322663 mov r3, r2
22664
+ mov r2, r1
2237422665 add r1, r0, #256
22375
- mov r2, r4
2237622666 movs r0, #16
22377
- pop {r4, lr}
2237822667 b ftl_read
2237922668 .fnend
2238022669 .size ftl_sys_read, .-ftl_sys_read
2238122670 .align 1
2238222671 .global StorageSysDataLoad
22672
+ .syntax unified
2238322673 .thumb
2238422674 .thumb_func
22675
+ .fpu softvfp
2238522676 .type StorageSysDataLoad, %function
2238622677 StorageSysDataLoad:
2238722678 .fnstart
....@@ -22389,11 +22680,11 @@
2238922680 @ frame_needed = 0, uses_anonymous_args = 0
2239022681 push {r3, r4, r5, lr}
2239122682 .save {r3, r4, r5, lr}
22392
- mov r2, #512
22393
- mov r5, r0
2239422683 mov r4, r1
22395
- mov r0, r1
22684
+ mov r5, r0
22685
+ mov r2, #512
2239622686 movs r1, #0
22687
+ mov r0, r4
2239722688 bl ftl_memset
2239822689 bl rknand_device_lock
2239922690 mov r2, r4
....@@ -22408,8 +22699,10 @@
2240822699 .size StorageSysDataLoad, .-StorageSysDataLoad
2240922700 .align 1
2241022701 .global FtlRead
22702
+ .syntax unified
2241122703 .thumb
2241222704 .thumb_func
22705
+ .fpu softvfp
2241322706 .type FtlRead, %function
2241422707 FtlRead:
2241522708 .fnstart
....@@ -22421,279 +22714,287 @@
2242122714 .size FtlRead, .-FtlRead
2242222715 .align 1
2242322716 .global FtlInit
22717
+ .syntax unified
2242422718 .thumb
2242522719 .thumb_func
22720
+ .fpu softvfp
2242622721 .type FtlInit, %function
2242722722 FtlInit:
2242822723 .fnstart
2242922724 @ args = 0, pretend = 0, frame = 0
2243022725 @ frame_needed = 0, uses_anonymous_args = 0
22431
- push {r4, r5, r6, r7, r8, lr}
22432
- .save {r4, r5, r6, r7, r8, lr}
22726
+ push {r3, r4, r5, r6, r7, lr}
22727
+ .save {r3, r4, r5, r6, r7, lr}
2243322728 mov r3, #-1
22434
- ldr r2, .L3699
22435
- ldr r7, .L3699+4
22436
- ldr r4, .L3699+8
22437
- ldr r6, .L3699+12
22438
- ldr r1, .L3699+16
22439
- ldr r0, .L3699+20
22440
- str r3, [r7, #504]
22729
+ ldr r7, .L3575
22730
+ ldr r2, .L3575+4
22731
+ ldr r6, .L3575+8
22732
+ ldr r4, .L3575+12
22733
+ ldr r1, .L3575+16
22734
+ str r3, [r7, #500]
2244122735 movs r3, #0
22442
- str r3, [r2, #992]
22443
- str r3, [r4, #224]
22736
+ ldr r0, .L3575+20
22737
+ str r3, [r2, #1496]
22738
+ str r3, [r4, #228]
2244422739 bl printk
22445
- add r0, r6, #116
22740
+ add r0, r6, #124
2244622741 bl FtlConstantsInit
2244722742 bl FtlMemInit
2244822743 bl FtlVariablesInit
22449
- ldrh r0, [r6, #2324]
22744
+ ldrh r0, [r6, #2328]
2245022745 bl FtlFreeSysBlkQueueInit
2245122746 bl FtlLoadBbt
22452
- cbz r0, .L3684
22453
- ldr r0, .L3699+24
22454
- b .L3698
22455
-.L3684:
22747
+ cbz r0, .L3560
22748
+ ldr r1, .L3575+24
22749
+ ldr r0, .L3575+28
22750
+.L3574:
22751
+ bl printk
22752
+.L3561:
22753
+ movs r0, #0
22754
+ pop {r3, r4, r5, r6, r7, pc}
22755
+.L3560:
2245622756 bl FtlSysBlkInit
2245722757 mov r5, r0
22458
- cbz r0, .L3686
22459
- ldr r0, .L3699+28
22460
-.L3698:
22461
- ldr r1, .L3699+32
22462
- bl printk
22463
- b .L3685
22464
-.L3686:
22758
+ cbz r0, .L3562
22759
+ ldr r1, .L3575+24
22760
+ ldr r0, .L3575+32
22761
+ b .L3574
22762
+.L3562:
2246522763 movs r1, #1
22466
- str r1, [r7, #504]
22764
+ str r1, [r7, #500]
2246722765 bl ftl_do_gc
22468
- ldrh r7, [r4, #312]
22766
+ ldrh r7, [r4, #316]
2246922767 cmp r7, #15
22470
- bhi .L3687
22471
- mov r8, r4
22768
+ bhi .L3563
2247222769 movw r6, #65535
22473
-.L3690:
22770
+.L3566:
2247422771 ldrh r3, [r4, #556]
2247522772 cmp r3, r6
22476
- bne .L3688
22477
- ldrh r3, [r8, #1174]
22773
+ bne .L3564
22774
+ ldrh r3, [r4, #1174]
2247822775 cmp r3, r6
22479
- bne .L3688
22776
+ bne .L3564
2248022777 and r0, r5, #63
2248122778 bl List_get_gc_head_node
2248222779 uxth r0, r0
2248322780 bl FtlGcRefreshBlock
22484
-.L3688:
22485
- movs r0, #1
22486
- mov r1, r0
22487
- bl ftl_do_gc
22488
- movs r0, #0
22781
+.L3564:
2248922782 movs r1, #1
22783
+ mov r0, r1
2249022784 bl ftl_do_gc
22491
- ldrh r2, [r4, #312]
22785
+ movs r1, #1
22786
+ movs r0, #0
22787
+ bl ftl_do_gc
22788
+ ldrh r2, [r4, #316]
2249222789 adds r3, r7, #2
2249322790 cmp r2, r3
22494
- bhi .L3685
22791
+ bhi .L3561
2249522792 adds r5, r5, #1
2249622793 cmp r5, #4096
22497
- bne .L3690
22498
- b .L3685
22499
-.L3687:
22500
- ldrb r3, [r6, #144] @ zero_extendqisi2
22501
- cbz r3, .L3685
22794
+ bne .L3566
22795
+ b .L3561
22796
+.L3563:
22797
+ ldrb r3, [r6, #152] @ zero_extendqisi2
22798
+ cmp r3, #0
22799
+ beq .L3561
2250222800 movs r4, #128
22503
-.L3692:
22504
- movs r0, #1
22505
- mov r1, r0
22801
+.L3568:
22802
+ movs r1, #1
22803
+ mov r0, r1
2250622804 bl ftl_do_gc
2250722805 subs r4, r4, #1
22508
- bne .L3692
22509
-.L3685:
22510
- movs r0, #0
22511
- pop {r4, r5, r6, r7, r8, pc}
22512
-.L3700:
22806
+ bne .L3568
22807
+ b .L3561
22808
+.L3576:
2251322809 .align 2
22514
-.L3699:
22515
- .word .LANCHOR5
22810
+.L3575:
2251622811 .word .LANCHOR1
22517
- .word .LANCHOR2
22812
+ .word .LANCHOR4
2251822813 .word .LANCHOR0
22519
- .word .LC77
22814
+ .word .LANCHOR2
2252022815 .word .LC76
22816
+ .word .LC77
22817
+ .word .LANCHOR3+224
2252122818 .word .LC161
2252222819 .word .LC162
22523
- .word .LANCHOR3+240
2252422820 .fnend
2252522821 .size FtlInit, .-FtlInit
2252622822 .align 1
2252722823 .global rk_ftl_init
22824
+ .syntax unified
2252822825 .thumb
2252922826 .thumb_func
22827
+ .fpu softvfp
2253022828 .type rk_ftl_init, %function
2253122829 rk_ftl_init:
2253222830 .fnstart
2253322831 @ args = 0, pretend = 0, frame = 0
2253422832 @ frame_needed = 0, uses_anonymous_args = 0
22535
- push {r4, r5, r6, lr}
22536
- .save {r4, r5, r6, lr}
22833
+ push {r3, r4, r5, lr}
22834
+ .save {r3, r4, r5, lr}
2253722835 mov r0, #2048
22538
- bl ftl_malloc
22539
- ldr r5, .L3705
22540
- ldr r4, .L3705+4
22541
- movs r6, #0
22542
- add r1, r5, #1000
22543
- str r6, [r5, #1000]
22544
- str r6, [r4, #1180]
22545
- str r0, [r5, #996]
22836
+ ldr r4, .L3581
22837
+ movs r5, #0
22838
+ bl ftl_dma32_malloc
22839
+ add r1, r4, #1504
22840
+ str r0, [r4, #1500]
2254622841 addw r0, r4, #1180
22842
+ str r5, [r4, #1184]
22843
+ str r5, [r4, #1180]
22844
+ str r5, [r4, #1504]
2254722845 bl rknand_get_reg_addr
2254822846 ldr r3, [r4, #1180]
22549
- cbz r3, .L3704
22847
+ cbz r3, .L3580
2255022848 bl rk_nandc_irq_init
22551
- mov r1, r6
22552
- mov r2, r6
2255322849 mov r3, #2048
22554
- ldr r0, [r5, #996]
22850
+ mov r2, r5
22851
+ mov r1, r5
22852
+ ldr r0, [r4, #1500]
2255522853 bl FlashSramLoadStore
2255622854 bl rknand_flash_cs_init
2255722855 ldr r0, [r4, #1180]
2255822856 bl FlashInit
2255922857 mov r4, r0
22560
- cbnz r0, .L3703
22858
+ cbnz r0, .L3579
2256122859 bl FtlInit
22562
-.L3703:
22860
+.L3579:
2256322861 mov r1, r4
22564
- ldr r0, .L3705+8
22862
+ ldr r0, .L3581+4
2256522863 bl printk
22864
+.L3577:
2256622865 mov r0, r4
22567
- pop {r4, r5, r6, pc}
22568
-.L3704:
22569
- mov r0, #-1
22570
- pop {r4, r5, r6, pc}
22571
-.L3706:
22866
+ pop {r3, r4, r5, pc}
22867
+.L3580:
22868
+ mov r4, #-1
22869
+ b .L3577
22870
+.L3582:
2257222871 .align 2
22573
-.L3705:
22574
- .word .LANCHOR5
22872
+.L3581:
2257522873 .word .LANCHOR4
2257622874 .word .LC163
2257722875 .fnend
2257822876 .size rk_ftl_init, .-rk_ftl_init
2257922877 .align 1
2258022878 .global ftl_fix_nand_power_lost_error
22879
+ .syntax unified
2258122880 .thumb
2258222881 .thumb_func
22882
+ .fpu softvfp
2258322883 .type ftl_fix_nand_power_lost_error, %function
2258422884 ftl_fix_nand_power_lost_error:
2258522885 .fnstart
2258622886 @ args = 0, pretend = 0, frame = 48
2258722887 @ frame_needed = 0, uses_anonymous_args = 0
22588
- ldr r3, .L3722
22888
+ ldr r3, .L3597
2258922889 push {r4, r5, r6, r7, r8, r9, r10, lr}
2259022890 .save {r4, r5, r6, r7, r8, r9, r10, lr}
2259122891 .pad #48
2259222892 sub sp, sp, #48
22593
- ldrb r2, [r3, #144] @ zero_extendqisi2
2259422893 mov r8, r3
22894
+ ldrb r2, [r3, #152] @ zero_extendqisi2
2259522895 cmp r2, #0
22596
- beq .L3707
22597
- ldr r4, .L3722+4
22598
- movw r7, #4097
22599
- ldr r6, .L3722+8
22600
- ldr r0, .L3722+12
22601
- ldr r3, [r4, #296]
22602
- ldrh r5, [r6, #840]
22603
- mov r1, r5
22604
- ldrh r2, [r3, r5, lsl #1]
22896
+ beq .L3583
22897
+ ldr r4, .L3597+4
22898
+ movw r5, #4097
22899
+ ldr r7, .L3597+8
22900
+ ldr r0, .L3597+12
22901
+ ldr r3, [r4, #300]
22902
+ ldrh r6, [r7, #1342]
22903
+ ldrh r2, [r3, r6, lsl #1]
22904
+ mov r1, r6
2260522905 bl printk
22606
- ldrh r0, [r4, #316]
22906
+ ldrh r0, [r4, #320]
22907
+ lsl r9, r6, #1
2260722908 bl FtlGcRefreshOpenBlock
22608
- ldrh r0, [r4, #364]
22909
+ ldrh r0, [r4, #368]
2260922910 bl FtlGcRefreshOpenBlock
22610
- add r0, r4, #316
22911
+ add r0, r4, #320
2261122912 bl allocate_new_data_superblock
22612
- add r0, r4, #364
22913
+ add r0, r4, #368
2261322914 bl allocate_new_data_superblock
22614
- lsl r9, r5, #1
22615
-.L3709:
22616
- subs r7, r7, #1
22617
- beq .L3713
22618
- movs r0, #1
22619
- mov r1, r0
22915
+.L3585:
22916
+ subs r5, r5, #1
22917
+ beq .L3589
22918
+ movs r1, #1
22919
+ mov r0, r1
2262022920 bl ftl_do_gc
22621
- ldr r3, [r4, #296]
22921
+ ldr r3, [r4, #300]
2262222922 ldrh r3, [r3, r9]
2262322923 cmp r3, #0
22624
- bne .L3709
22625
-.L3713:
22626
- ldr r3, [r4, #296]
22627
- mov r1, r5
22628
- ldr r0, .L3722+12
22629
- ldrh r2, [r3, r5, lsl #1]
22924
+ bne .L3585
22925
+.L3589:
22926
+ ldr r3, [r4, #300]
22927
+ mov r1, r6
22928
+ ldr r0, .L3597+12
22929
+ ldrh r2, [r3, r6, lsl #1]
2263022930 bl printk
22631
- ldr r3, [r4, #296]
22632
- ldrh r7, [r3, r5, lsl #1]
22633
- cbnz r7, .L3711
22931
+ ldr r3, [r4, #300]
22932
+ ldrh r5, [r3, r6, lsl #1]
22933
+ cbnz r5, .L3587
2263422934 add r0, sp, #48
22635
- mov r10, #36
2263622935 movw r9, #65535
22637
- strh r5, [r0, #-48]! @ movhi
22936
+ strh r6, [r0, #-48]! @ movhi
22937
+ mov r10, #36
2263822938 bl make_superblock
22639
- ldr r3, .L3722+4
22640
- ldrh ip, [r8, #2320]
22641
- ldr r8, [r3, #228]
22642
- mov r3, r7
22643
- mov lr, r3
22939
+ ldrh lr, [r8, #2324]
2264422940 add r0, sp, #14
22645
-.L3714:
22646
- uxth r2, r3
22647
- cmp r2, ip
22648
- bcs .L3721
22649
- ldrh r2, [r0, #2]!
22650
- cmp r2, r9
22651
- beq .L3715
22652
- mla r1, r10, r7, r8
22653
- adds r7, r7, #1
22654
- lsls r2, r2, #10
22655
- uxth r7, r7
22656
- str r2, [r1, #4]
22657
- str lr, [r1, #8]
22658
- str lr, [r1, #12]
22659
-.L3715:
22660
- adds r3, r3, #1
22661
- b .L3714
22662
-.L3721:
22663
- ldr r3, [r4, #296]
22664
- mov r1, r5
22665
- ldr r0, .L3722+16
22666
- ldrh r2, [r3, r5, lsl #1]
22941
+ ldr r8, [r4, #232]
22942
+ mov r2, r5
22943
+ mov ip, r5
22944
+.L3590:
22945
+ uxth r3, r2
22946
+ cmp lr, r3
22947
+ bhi .L3592
22948
+ ldr r3, [r4, #300]
22949
+ mov r1, r6
22950
+ ldr r0, .L3597+16
22951
+ ldrh r2, [r3, r6, lsl #1]
2266722952 bl printk
22953
+ mov r2, r5
2266822954 movs r1, #0
22669
- mov r2, r7
22670
- ldr r0, [r4, #228]
22955
+ ldr r0, [r4, #232]
2267122956 bl FlashEraseBlocks
22672
- ldr r0, [r4, #228]
22957
+ mov r2, r5
2267322958 movs r1, #1
22674
- mov r2, r7
22959
+ ldr r0, [r4, #232]
2267522960 bl FlashEraseBlocks
22676
-.L3711:
22961
+.L3587:
2267722962 movw r3, #65535
22678
- strh r3, [r6, #840] @ movhi
22679
-.L3707:
22963
+ strh r3, [r7, #1342] @ movhi
22964
+.L3583:
2268022965 add sp, sp, #48
2268122966 @ sp needed
2268222967 pop {r4, r5, r6, r7, r8, r9, r10, pc}
22683
-.L3723:
22968
+.L3592:
22969
+ ldrh r3, [r0, #2]!
22970
+ cmp r3, r9
22971
+ beq .L3591
22972
+ mla r1, r10, r5, r8
22973
+ adds r5, r5, #1
22974
+ lsls r3, r3, #10
22975
+ uxth r5, r5
22976
+ str r3, [r1, #4]
22977
+ str ip, [r1, #8]
22978
+ str ip, [r1, #12]
22979
+.L3591:
22980
+ adds r2, r2, #1
22981
+ b .L3590
22982
+.L3598:
2268422983 .align 2
22685
-.L3722:
22984
+.L3597:
2268622985 .word .LANCHOR0
2268722986 .word .LANCHOR2
22688
- .word .LANCHOR5
22987
+ .word .LANCHOR4
2268922988 .word .LC164
2269022989 .word .LC165
2269122990 .fnend
2269222991 .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error
2269322992 .align 1
2269422993 .global rk_ftl_garbage_collect
22994
+ .syntax unified
2269522995 .thumb
2269622996 .thumb_func
22997
+ .fpu softvfp
2269722998 .type rk_ftl_garbage_collect, %function
2269822999 rk_ftl_garbage_collect:
2269923000 .fnstart
....@@ -22705,554 +23006,555 @@
2270523006 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
2270623007 .align 1
2270723008 .global ftl_write
23009
+ .syntax unified
2270823010 .thumb
2270923011 .thumb_func
23012
+ .fpu softvfp
2271023013 .type ftl_write, %function
2271123014 ftl_write:
2271223015 .fnstart
22713
- @ args = 0, pretend = 0, frame = 88
23016
+ @ args = 0, pretend = 0, frame = 80
2271423017 @ frame_needed = 0, uses_anonymous_args = 0
2271523018 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2271623019 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22717
- .pad #92
22718
- sub sp, sp, #92
22719
- ldr r9, .L3800+16
22720
- mov r8, r1
22721
- str r3, [sp, #12]
22722
- mov fp, r2
22723
- ldr r3, [r9, #224]
22724
- cmp r3, #0
22725
- bne .L3767
22726
- ldr r2, .L3800
22727
- ldr r2, [r2, #504]
22728
- cmp r2, #1
22729
- bne .L3768
22730
- cmp r0, #16
22731
- bne .L3727
22732
- add r0, r1, #256
22733
- ldr r2, [sp, #12]
22734
- mov r1, fp
22735
- bl FtlVendorPartWrite
22736
- b .L3726
22737
-.L3727:
22738
- ldr r7, .L3800+4
22739
- ldr r3, [r7, #2428]
22740
- cmp r1, r3
22741
- bcs .L3771
22742
- cmp fp, r3
22743
- bhi .L3771
22744
- add r6, r1, fp
22745
- cmp r6, r3
22746
- bhi .L3771
22747
- ldrh r4, [r7, #2394]
22748
- mov r3, #2048
22749
- ldr r5, .L3800+8
22750
- mov r0, r1
22751
- mov r1, r4
22752
- str r3, [r5, #1004]
22753
- bl __aeabi_uidiv
22754
- mov r1, r4
22755
- str r0, [sp, #4]
22756
- subs r0, r6, #1
22757
- bl __aeabi_uidiv
22758
- cmp fp, r4, lsl #1
22759
- ldr r2, [sp, #4]
22760
- str r0, [sp, #20]
22761
- sub r6, r0, r2
22762
- add r3, r6, #1
22763
- str r3, [sp, #8]
22764
- ldr r2, [sp, #8]
22765
- ldr r3, [r9, #484]
22766
- add r3, r3, r2
22767
- ldr r2, [r7, #2440]
22768
- str r3, [r9, #484]
22769
- ldr r3, [r9, #500]
22770
- add r3, r3, fp
22771
- str r3, [r9, #500]
22772
- ite cs
22773
- movcs r3, #1
22774
- movcc r3, #0
22775
- str r3, [sp, #28]
23020
+ mov r10, r3
23021
+ ldr r3, .L3672
23022
+ mov r9, r2
23023
+ .pad #84
23024
+ sub sp, sp, #84
23025
+ mov r7, r1
23026
+ ldr r2, [r3, #228]
2277623027 cmp r2, #0
22777
- beq .L3729
22778
- movs r3, #36
22779
- ldr r7, [r7, #2444]
22780
- muls r3, r2, r3
22781
- ldr r2, [sp, #4]
22782
- subs r3, r3, #36
22783
- add r7, r7, r3
22784
- ldr r3, [r7, #16]
22785
- cmp r2, r3
22786
- bne .L3730
22787
- ldr r3, [r9, #488]
22788
- mov r1, r4
22789
- mov r0, r8
22790
- adds r3, r3, #1
22791
- str r3, [r9, #488]
22792
- ldr r3, [r5, #1008]
22793
- adds r3, r3, #1
22794
- str r3, [r5, #1008]
22795
- bl __aeabi_uidivmod
22796
- ldr r0, [r7, #8]
22797
- subs r4, r4, r1
22798
- add r0, r0, r1, lsl #9
22799
- cmp r4, fp
22800
- ldr r1, [sp, #12]
22801
- it cs
22802
- movcs r4, fp
22803
- lsl r9, r4, #9
22804
- mov r2, r9
22805
- bl ftl_memcpy
22806
- cbnz r6, .L3731
22807
- ldr r3, [r5, #1008]
22808
- cmp r3, #2
22809
- ble .L3767
22810
-.L3731:
22811
- ldr r3, [sp, #12]
22812
- rsb fp, r4, fp
22813
- add r8, r8, r4
22814
- str r6, [sp, #8]
22815
- add r3, r3, r9
22816
- str r3, [sp, #12]
22817
- ldr r3, [sp, #4]
22818
- adds r3, r3, #1
23028
+ bne .L3642
23029
+ ldr r1, .L3672+4
23030
+ ldr r1, [r1, #500]
23031
+ cmp r1, #1
23032
+ bne .L3643
23033
+ cmp r0, #16
23034
+ bne .L3602
23035
+ mov r2, r10
23036
+ mov r1, r9
23037
+ add r0, r7, #256
23038
+ bl FtlVendorPartWrite
23039
+.L3600:
23040
+ add sp, sp, #84
23041
+ @ sp needed
23042
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
23043
+.L3602:
23044
+ ldr fp, .L3672+16
2281923045 str r3, [sp, #4]
22820
-.L3730:
22821
- movs r3, #0
22822
- str r3, [r5, #1008]
22823
-.L3729:
22824
- ldr r0, [sp, #4]
22825
- ldr r1, [sp, #20]
22826
- bl FtlCacheMetchLpa
22827
- cbz r0, .L3732
22828
- bl FtlCacheWriteBack
22829
-.L3732:
22830
- ldr r4, .L3800+4
22831
- ldr r7, .L3800+12
22832
- ldr r6, [sp, #4]
22833
- mov r10, r4
22834
- str r7, [r5, #984]
22835
-.L3733:
22836
- ldr r3, [sp, #8]
22837
- ldr r5, .L3800+16
22838
- cmp r3, #0
22839
- beq .L3799
22840
- ldrh r3, [r7, #4]
22841
- cbnz r3, .L3734
22842
- add r2, r5, #316
22843
- ldr r9, .L3800
23046
+ ldr r2, [fp, #2432]
2284423047 cmp r7, r2
22845
- bne .L3735
22846
- ldrh r7, [r5, #368]
22847
- cbnz r7, .L3736
22848
- add r0, r5, #364
22849
- bl allocate_new_data_superblock
22850
- str r7, [r9, #3452]
22851
-.L3736:
22852
- ldr r0, .L3800+12
22853
- bl allocate_new_data_superblock
22854
- ldr r3, [r9, #3452]
22855
- cbnz r3, .L3772
22856
-.L3738:
22857
- ldr r7, .L3800+12
22858
- b .L3737
22859
-.L3735:
22860
- str r3, [r9, #3452]
22861
- ldrh r3, [r5, #320]
22862
- cmp r3, #0
22863
- bne .L3738
23048
+ bcs .L3646
23049
+ cmp r9, r2
23050
+ bhi .L3646
23051
+ add r5, r7, r9
23052
+ cmp r2, r5
23053
+ bcc .L3646
23054
+ ldrh r4, [fp, #2396]
23055
+ mov r2, #2048
23056
+ ldr r6, .L3672+8
2286423057 mov r0, r7
22865
- bl allocate_new_data_superblock
22866
- b .L3737
22867
-.L3772:
22868
- ldr r7, .L3800+20
22869
-.L3737:
22870
- ldrh r3, [r7, #4]
22871
- cbnz r3, .L3739
22872
- mov r0, r7
22873
- bl allocate_new_data_superblock
22874
-.L3739:
22875
- ldr r3, .L3800+8
22876
- str r7, [r3, #984]
22877
-.L3734:
22878
- ldr r2, [r5, #3300]
22879
- ldr r3, [r4, #2440]
22880
- ldrh ip, [r7, #4]
22881
- subs r3, r2, r3
22882
- ldr r2, [sp, #8]
22883
- cmp ip, r3
22884
- ldr r9, .L3800+16
22885
- it cs
22886
- movcs ip, r3
22887
- cmp ip, r2
22888
- mov r3, ip
22889
- it cs
22890
- movcs r3, r2
22891
- str r3, [sp, #44]
22892
- movs r3, #0
22893
- str r3, [sp, #24]
22894
-.L3740:
22895
- ldr r3, [sp, #24]
22896
- ldr r2, [sp, #44]
22897
- cmp r3, r2
22898
- beq .L3741
22899
- ldrh r3, [r7, #4]
22900
- cmp r3, #0
22901
- beq .L3741
22902
- ldr r3, [sp, #28]
22903
- cbz r3, .L3742
22904
- ldr r3, [sp, #20]
22905
- cmp r6, r3
22906
- bne .L3742
22907
- ldr r3, [sp, #24]
22908
- cbz r3, .L3742
22909
- ldrh r2, [r4, #2394]
22910
- add r3, r8, fp
22911
- mls r3, r2, r6, r3
22912
- cmp r3, r2
22913
- bne .L3741
22914
-.L3742:
22915
- add r1, sp, #48
22916
- movs r2, #0
22917
- mov r0, r6
22918
- movs r5, #36
22919
- bl log2phys
22920
- mov r0, r7
22921
- bl get_new_active_ppa
22922
- ldr r3, [r4, #2440]
22923
- ldr r1, [r4, #2444]
22924
- ldrh r2, [r4, #2400]
22925
- mla r1, r5, r3, r1
22926
- mul ip, r3, r2
22927
- str r6, [r1, #16]
22928
- str r0, [r1, #4]
22929
- lsr r0, ip, #2
22930
- str r0, [sp, #36]
22931
- ldr r0, [r9, #3348]
22932
- mov lr, r0
22933
- str r0, [sp, #40]
22934
- ldr r0, [sp, #36]
22935
- add r0, lr, r0, lsl #2
22936
- ldrh lr, [r4, #2398]
22937
- str r0, [sp, #16]
22938
- str r0, [r1, #12]
22939
- mul r3, r3, lr
22940
- ldr r0, [r9, #3328]
22941
- bic r3, r3, #3
22942
- add r3, r3, r0
22943
- ldr r0, [sp, #16]
22944
- str r3, [r1, #8]
22945
- movs r1, #0
22946
- bl ftl_memset
23058
+ mov r1, r4
23059
+ str r2, [r6, #1508]
23060
+ bl __aeabi_uidiv
23061
+ mov r1, r4
23062
+ str r0, [sp]
23063
+ subs r0, r5, #1
23064
+ bl __aeabi_uidiv
2294723065 ldr r3, [sp, #4]
22948
- cmp r6, r3
22949
- beq .L3743
22950
- ldr r3, [sp, #20]
22951
- cmp r6, r3
22952
- bne .L3796
22953
- ldrh r3, [r4, #2394]
22954
- add r5, r8, fp
22955
- smulbb r3, r3, r6
22956
- subs r5, r5, r3
22957
- movs r3, #0
22958
- str r3, [sp, #32]
22959
- uxth r5, r5
22960
- b .L3746
22961
-.L3743:
22962
- ldrh r5, [r4, #2394]
22963
- mov r0, r8
22964
- mov r1, r5
23066
+ cmp r9, r4, lsl #1
23067
+ ldr r2, [sp]
23068
+ ldr r1, [fp, #2444]
23069
+ str r0, [sp, #12]
23070
+ sub r5, r0, r2
23071
+ ldr r2, [r3, #484]
23072
+ add r8, r5, #1
23073
+ add r2, r2, r8
23074
+ str r2, [r3, #484]
23075
+ ldr r2, [r3, #500]
23076
+ add r2, r2, r9
23077
+ str r2, [r3, #500]
23078
+ ite cs
23079
+ movcs r2, #1
23080
+ movcc r2, #0
23081
+ str r2, [sp, #16]
23082
+ cmp r1, #0
23083
+ beq .L3647
23084
+ movs r2, #36
23085
+ muls r2, r1, r2
23086
+ ldr r1, [fp, #2448]
23087
+ subs r2, r2, #36
23088
+ add fp, r1, r2
23089
+ ldr r1, [sp]
23090
+ ldr r2, [fp, #16]
23091
+ cmp r1, r2
23092
+ bne .L3648
23093
+ ldr r2, [r3, #488]
23094
+ mov r1, r4
23095
+ mov r0, r7
23096
+ adds r2, r2, #1
23097
+ str r2, [r3, #488]
23098
+ ldr r3, [r6, #1512]
23099
+ adds r3, r3, #1
23100
+ str r3, [r6, #1512]
2296523101 bl __aeabi_uidivmod
22966
- subs r5, r5, r1
22967
- str r1, [sp, #32]
22968
- cmp r5, fp
23102
+ subs r4, r4, r1
23103
+ ldr r0, [fp, #8]
23104
+ cmp r4, r9
23105
+ mov r3, r1
2296923106 it cs
22970
- movcs r5, fp
22971
-.L3746:
22972
- ldrh r3, [r4, #2394]
22973
- cmp r5, r3
22974
- bne .L3747
22975
- ldr r3, [sp, #4]
22976
- mov lr, #36
22977
- cmp r6, r3
22978
- ittet ne
22979
- mulne r1, r6, r5
22980
- ldrne r3, [sp, #12]
22981
- ldreq r1, [sp, #12]
22982
- rsbne r1, r8, r1
22983
- it ne
22984
- addne r1, r3, r1, lsl #9
22985
- ldr r3, [sp, #28]
22986
- cbz r3, .L3749
22987
- ldr r2, [r10, #2440]
22988
- ldr r5, [r10, #2444]
22989
- mla r2, lr, r2, r5
22990
- str r1, [r2, #8]
22991
- b .L3750
22992
-.L3749:
22993
- ldr r0, [r10, #2444]
22994
- ldr r3, [r10, #2440]
22995
- ldrh r2, [r10, #2398]
22996
- mla r3, lr, r3, r0
22997
- ldr r0, [r3, #8]
22998
- b .L3797
22999
-.L3747:
23000
- ldr r2, [sp, #48]
23001
- movs r3, #36
23002
- adds r1, r2, #1
23003
- beq .L3751
23004
- ldr r1, [r4, #2444]
23005
- add r0, sp, #52
23006
- str r2, [sp, #56]
23007
- ldr r2, [r4, #2440]
23008
- str r6, [sp, #68]
23009
- mla r3, r3, r2, r1
23010
- movs r1, #1
23011
- ldr r2, [r3, #8]
23012
- ldr r3, [r3, #12]
23013
- str r2, [sp, #60]
23014
- movs r2, #0
23015
- str r3, [sp, #64]
23016
- bl FlashReadPages
23017
- ldr r3, [sp, #52]
23018
- adds r3, r3, #1
23019
- bne .L3752
23020
- ldr r3, [r9, #680]
23021
- adds r3, r3, #1
23022
- str r3, [r9, #680]
23023
- b .L3754
23024
-.L3801:
23025
- .align 2
23026
-.L3800:
23027
- .word .LANCHOR1
23028
- .word .LANCHOR0
23029
- .word .LANCHOR5
23030
- .word .LANCHOR2+316
23031
- .word .LANCHOR2
23032
- .word .LANCHOR2+364
23033
-.L3752:
23034
- ldr r3, [sp, #16]
23035
- ldr r3, [r3, #8]
23036
- cmp r3, r6
23037
- beq .L3754
23038
- ldr r3, [r9, #680]
23039
- mov r2, r6
23040
- ldr r0, .L3802
23041
- adds r3, r3, #1
23042
- str r3, [r9, #680]
23043
- ldr r3, [sp, #16]
23044
- ldr r1, [r3, #8]
23045
- bl printk
23046
- b .L3754
23047
-.L3751:
23048
- ldr r1, [r4, #2444]
23049
- ldr r2, [r4, #2440]
23050
- mla r2, r3, r2, r1
23051
- movs r1, #0
23052
- ldr r0, [r2, #8]
23053
- ldrh r2, [r4, #2398]
23054
- bl ftl_memset
23055
-.L3754:
23056
- ldr r3, [sp, #4]
23057
- mov lr, #36
23058
- lsls r2, r5, #9
23059
- cmp r6, r3
23060
- bne .L3755
23061
- ldr r1, [r4, #2440]
23062
- ldr r5, [r4, #2444]
23063
- ldr r3, [sp, #32]
23064
- mla r1, lr, r1, r5
23065
- ldr r0, [r1, #8]
23066
- ldr r1, [sp, #12]
23107
+ movcs r4, r9
23108
+ mov r1, r10
23109
+ lsl r8, r4, #9
2306723110 add r0, r0, r3, lsl #9
23068
- b .L3797
23069
-.L3755:
23070
- ldr r0, [r4, #2444]
23071
- ldr r3, [r4, #2440]
23072
- ldrh r1, [r4, #2394]
23073
- mla r3, lr, r3, r0
23074
- muls r1, r6, r1
23075
- ldr r0, [r3, #8]
23076
- rsb r1, r8, r1
23077
- ldr r3, [sp, #12]
23078
- add r1, r3, r1, lsl #9
23079
- b .L3797
23080
-.L3796:
23081
- ldr r3, [sp, #28]
23082
- cbz r3, .L3756
23083
- ldr r3, [r4, #2440]
23084
- ldr r2, [r4, #2444]
23085
- mla r5, r5, r3, r2
23086
- ldrh r3, [r4, #2394]
23087
- ldr r2, [sp, #12]
23088
- muls r3, r6, r3
23089
- rsb r3, r8, r3
23090
- add r3, r2, r3, lsl #9
23091
- str r3, [r5, #8]
23092
- b .L3750
23093
-.L3756:
23094
- ldr r2, [r4, #2444]
23095
- ldr r3, [r4, #2440]
23096
- ldrh r1, [r4, #2394]
23097
- mla r3, r5, r3, r2
23098
- ldrh r2, [r4, #2398]
23099
- muls r1, r6, r1
23100
- ldr r0, [r3, #8]
23101
- rsb r1, r8, r1
23102
- ldr r3, [sp, #12]
23103
- add r1, r3, r1, lsl #9
23104
-.L3797:
23111
+ mov r2, r8
2310523112 bl ftl_memcpy
23106
-.L3750:
23107
- ldr r2, [sp, #40]
23108
- movw r3, #61589
23109
- ldr r1, [sp, #36]
23110
- strh r3, [r2, r1, lsl #2] @ movhi
23111
- ldr r2, [sp, #16]
23112
- ldr r3, [r9, #512]
23113
- str r3, [r2, #4]
23114
- adds r3, r3, #1
23115
- adds r2, r3, #1
23116
- ldr r2, [sp, #16]
23117
- it eq
23118
- moveq r3, #0
23119
- str r3, [r9, #512]
23120
- ldr r3, [sp, #16]
23121
- str r6, [r3, #8]
23122
- adds r6, r6, #1
23123
- ldr r3, [sp, #48]
23124
- str r3, [r2, #12]
23125
- ldrh r3, [r7]
23126
- strh r3, [r2, #2] @ movhi
23127
- ldr r3, [r4, #2440]
23128
- adds r3, r3, #1
23129
- str r3, [r4, #2440]
23130
- ldr r3, [sp, #24]
23131
- adds r3, r3, #1
23132
- str r3, [sp, #24]
23133
- b .L3740
23134
-.L3741:
23135
- ldr r3, [sp, #8]
23136
- ldr r2, [sp, #24]
23137
- subs r3, r3, r2
23113
+ cbnz r5, .L3606
23114
+ ldr r3, [r6, #1512]
23115
+ cmp r3, #2
23116
+ bgt .L3606
23117
+.L3642:
23118
+ movs r0, #0
23119
+ b .L3600
23120
+.L3606:
23121
+ add r3, r10, r8
23122
+ sub r9, r9, r4
2313823123 str r3, [sp, #8]
23139
- ldr r3, .L3802+4
23140
- ldr r2, [r10, #2440]
23141
- ldr r3, [r3, #3300]
23142
- cmp r2, r3
23143
- bcs .L3760
23144
- ldr r3, [sp, #28]
23145
- cbnz r3, .L3760
23146
- ldrh r3, [r7, #4]
23147
- cbz r3, .L3760
23148
-.L3762:
23124
+ add r7, r7, r4
23125
+ ldr r3, [sp]
23126
+ mov r8, r5
23127
+ adds r3, r3, #1
23128
+ str r3, [sp]
23129
+.L3605:
2314923130 movs r3, #0
23150
- str r3, [sp, #28]
23151
- b .L3733
23152
-.L3760:
23131
+ str r3, [r6, #1512]
23132
+.L3604:
23133
+ ldr r1, [sp, #12]
23134
+ ldr r0, [sp]
23135
+ bl FtlCacheMetchLpa
23136
+ cbz r0, .L3607
2315323137 bl FtlCacheWriteBack
23154
- movs r3, #0
23155
- str r3, [r10, #2440]
23156
- ldr r3, [sp, #8]
23157
- cmp r3, #1
23158
- bhi .L3733
23159
- b .L3762
23160
-.L3799:
23161
- mov r0, r3
23162
- ldr r2, [sp, #4]
23163
- ldr r3, [sp, #20]
23138
+.L3607:
23139
+ ldr r5, .L3672+12
23140
+ ldr fp, .L3672+16
23141
+ str r5, [r6, #1488]
23142
+ ldr r6, [sp]
23143
+.L3608:
23144
+ ldr r4, .L3672
23145
+ cmp r8, #0
23146
+ bne .L3637
23147
+ ldr r3, [sp, #12]
23148
+ mov r0, r8
23149
+ ldr r2, [sp]
2316423150 subs r1, r3, r2
2316523151 bl ftl_do_gc
23166
- ldrh r3, [r5, #312]
23152
+ ldrh r3, [r4, #316]
2316723153 cmp r3, #5
23168
- bls .L3775
23154
+ bls .L3638
2316923155 cmp r3, #31
23170
- bhi .L3767
23171
- ldr r3, .L3802+8
23172
- ldrb r3, [r3] @ zero_extendqisi2
23173
- cbnz r3, .L3767
23174
-.L3775:
23175
- ldr r4, [sp, #8]
23176
- mov r8, #128
23177
- ldr r6, .L3802+4
23178
- movw r7, #65535
23179
-.L3788:
23180
- ldrh r3, [r5, #556]
23181
- cmp r3, r7
23182
- bne .L3766
23183
- ldrh r3, [r6, #1174]
23184
- cmp r3, r7
23185
- bne .L3766
23186
- ldrh r3, [r6, #1176]
23187
- cmp r3, r7
23188
- bne .L3766
23189
- and r0, r4, #7
23156
+ bhi .L3642
23157
+ ldr r3, .L3672+16
23158
+ ldrb r3, [r3, #36] @ zero_extendqisi2
23159
+ cmp r3, #0
23160
+ bne .L3642
23161
+.L3638:
23162
+ movw r5, #65535
23163
+ movs r6, #128
23164
+.L3641:
23165
+ ldrh r3, [r4, #556]
23166
+ cmp r3, r5
23167
+ bne .L3640
23168
+ ldrh r3, [r4, #1174]
23169
+ cmp r3, r5
23170
+ bne .L3640
23171
+ ldrh r3, [r4, #1176]
23172
+ cmp r3, r5
23173
+ bne .L3640
23174
+ and r0, r8, #7
2319023175 bl List_get_gc_head_node
2319123176 uxth r0, r0
2319223177 bl FtlGcRefreshBlock
23193
-.L3766:
23194
- movs r0, #1
23195
- strh r8, [r5, #1122] @ movhi
23196
- strh r8, [r5, #1120] @ movhi
23197
- mov r1, r0
23198
- bl ftl_do_gc
23199
- movs r0, #0
23178
+.L3640:
2320023179 movs r1, #1
23180
+ strh r6, [r4, #1122] @ movhi
23181
+ mov r0, r1
23182
+ strh r6, [r4, #1120] @ movhi
2320123183 bl ftl_do_gc
23202
- ldr r3, [r5, #224]
23203
- cbnz r3, .L3767
23204
- ldrh r3, [r6, #312]
23205
- cmp r3, #2
23206
- bhi .L3767
23207
- adds r4, r4, #1
23208
- cmp r4, #256
23209
- bne .L3788
23210
- b .L3767
23211
-.L3771:
23212
- mov r0, #-1
23213
- b .L3726
23214
-.L3767:
23184
+ movs r1, #1
2321523185 movs r0, #0
23216
- b .L3726
23217
-.L3768:
23218
- mov r0, r3
23219
-.L3726:
23220
- add sp, sp, #92
23221
- @ sp needed
23222
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
23223
-.L3803:
23186
+ bl ftl_do_gc
23187
+ ldr r3, [r4, #228]
23188
+ cmp r3, #0
23189
+ bne .L3642
23190
+ ldrh r3, [r4, #316]
23191
+ cmp r3, #2
23192
+ bhi .L3642
23193
+ add r8, r8, #1
23194
+ cmp r8, #256
23195
+ bne .L3641
23196
+ b .L3642
23197
+.L3648:
23198
+ str r10, [sp, #8]
23199
+ b .L3605
23200
+.L3647:
23201
+ str r10, [sp, #8]
23202
+ b .L3604
23203
+.L3637:
23204
+ ldrh r1, [r5, #4]
23205
+ cbnz r1, .L3609
23206
+ add r2, r4, #320
23207
+ ldr r10, .L3672+4
23208
+ cmp r5, r2
23209
+ bne .L3610
23210
+ ldrh r5, [r4, #372]
23211
+ cbnz r5, .L3611
23212
+ add r0, r4, #368
23213
+ bl allocate_new_data_superblock
23214
+ str r5, [r10, #3448]
23215
+.L3611:
23216
+ ldr r5, .L3672+12
23217
+ ldr r0, .L3672+12
23218
+ bl allocate_new_data_superblock
23219
+ ldr r1, [r10, #3448]
23220
+ add r2, r5, #48
23221
+ cmp r1, #0
23222
+ it ne
23223
+ movne r5, r2
23224
+.L3612:
23225
+ ldrh r2, [r5, #4]
23226
+ cbnz r2, .L3613
23227
+ mov r0, r5
23228
+ bl allocate_new_data_superblock
23229
+.L3613:
23230
+ ldr r2, .L3672+8
23231
+ str r5, [r2, #1488]
23232
+.L3609:
23233
+ ldr r1, [fp, #2444]
23234
+ ldr r2, [r4, #3300]
23235
+ ldr r10, .L3672
23236
+ subs r2, r2, r1
23237
+ ldrh r1, [r5, #4]
23238
+ cmp r2, r8
23239
+ it cs
23240
+ movcs r2, r8
23241
+ cmp r1, r2
23242
+ mov r3, r1
23243
+ it cs
23244
+ movcs r3, r2
23245
+ str r3, [sp, #36]
23246
+ movs r3, #0
23247
+ str r3, [sp, #20]
23248
+.L3614:
23249
+ ldr r3, [sp, #20]
23250
+ ldr r2, [sp, #36]
23251
+ cmp r3, r2
23252
+ bne .L3633
23253
+.L3615:
23254
+ ldr r2, .L3672
23255
+ ldr r1, [fp, #2444]
23256
+ ldr r3, [sp, #20]
23257
+ ldr r2, [r2, #3300]
23258
+ sub r8, r8, r3
23259
+ cmp r1, r2
23260
+ bcs .L3634
23261
+ ldr r3, [sp, #16]
23262
+ cmp r3, #0
23263
+ bne .L3634
23264
+ ldrh r2, [r5, #4]
23265
+ cmp r2, #0
23266
+ beq .L3634
23267
+.L3636:
23268
+ movs r3, #0
23269
+ str r3, [sp, #16]
23270
+ b .L3608
23271
+.L3610:
23272
+ str r1, [r10, #3448]
23273
+ ldrh r1, [r4, #324]
23274
+ cbnz r1, .L3650
23275
+ mov r0, r5
23276
+ bl allocate_new_data_superblock
23277
+ b .L3612
23278
+.L3650:
23279
+ mov r5, r2
23280
+ b .L3613
23281
+.L3673:
2322423282 .align 2
23225
-.L3802:
23226
- .word .LC166
23283
+.L3672:
2322723284 .word .LANCHOR2
23285
+ .word .LANCHOR1
23286
+ .word .LANCHOR4
23287
+ .word .LANCHOR2+320
2322823288 .word .LANCHOR0
23289
+.L3633:
23290
+ ldrh r2, [r5, #4]
23291
+ cmp r2, #0
23292
+ beq .L3615
23293
+ ldr r3, [sp, #16]
23294
+ cbz r3, .L3616
23295
+ ldr r3, [sp, #12]
23296
+ cmp r3, r6
23297
+ bne .L3616
23298
+ ldr r3, [sp, #20]
23299
+ cbz r3, .L3616
23300
+ ldrh r1, [fp, #2396]
23301
+ add r2, r7, r9
23302
+ ldr r3, [sp, #12]
23303
+ mls r2, r1, r3, r2
23304
+ cmp r1, r2
23305
+ bne .L3615
23306
+.L3616:
23307
+ movs r2, #0
23308
+ add r1, sp, #40
23309
+ mov r0, r6
23310
+ movs r4, #36
23311
+ bl log2phys
23312
+ mov r0, r5
23313
+ bl get_new_active_ppa
23314
+ ldr r1, [fp, #2444]
23315
+ ldr r2, [fp, #2448]
23316
+ mla ip, r4, r1, r2
23317
+ ldrh r2, [fp, #2402]
23318
+ str r0, [ip, #4]
23319
+ mul r0, r2, r1
23320
+ str r6, [ip, #16]
23321
+ bic r3, r0, #3
23322
+ str r3, [sp, #28]
23323
+ ldr r0, [sp, #28]
23324
+ ldr r3, [r10, #3348]
23325
+ str r3, [sp, #32]
23326
+ add r3, r3, r0
23327
+ ldrh r0, [fp, #2400]
23328
+ str r3, [ip, #12]
23329
+ str r3, [sp, #4]
23330
+ muls r1, r0, r1
23331
+ ldr r0, [r10, #3328]
23332
+ bic r1, r1, #3
23333
+ add r1, r1, r0
23334
+ mov r0, r3
23335
+ str r1, [ip, #8]
23336
+ movs r1, #0
23337
+ bl ftl_memset
23338
+ ldr r3, [sp]
23339
+ cmp r3, r6
23340
+ beq .L3617
23341
+ ldr r3, [sp, #12]
23342
+ cmp r3, r6
23343
+ bne .L3668
23344
+ ldrh r3, [sp, #12]
23345
+ add r4, r7, r9
23346
+ ldrh r2, [fp, #2396]
23347
+ smulbb r2, r2, r3
23348
+ movs r3, #0
23349
+ str r3, [sp, #24]
23350
+ subs r4, r4, r2
23351
+ uxth r4, r4
23352
+ b .L3620
23353
+.L3617:
23354
+ ldrh r4, [fp, #2396]
23355
+ mov r0, r7
23356
+ mov r1, r4
23357
+ bl __aeabi_uidivmod
23358
+ subs r4, r4, r1
23359
+ str r1, [sp, #24]
23360
+ cmp r4, r9
23361
+ it cs
23362
+ movcs r4, r9
23363
+.L3620:
23364
+ ldrh r2, [fp, #2396]
23365
+ cmp r2, r4
23366
+ bne .L3621
23367
+ ldr r3, [sp]
23368
+ ldr r2, [fp, #2444]
23369
+ ldr r0, [fp, #2448]
23370
+ cmp r3, r6
23371
+ itte ne
23372
+ mulne r1, r4, r6
23373
+ ldrne r3, [sp, #8]
23374
+ ldreq r1, [sp, #8]
23375
+ mov r4, #36
23376
+ itt ne
23377
+ subne r1, r1, r7
23378
+ addne r1, r3, r1, lsl #9
23379
+ ldr r3, [sp, #16]
23380
+ cbz r3, .L3623
23381
+ mla r2, r4, r2, r0
23382
+ str r1, [r2, #8]
23383
+.L3624:
23384
+ ldr r3, [sp, #32]
23385
+ movw r2, #61589
23386
+ ldr r1, [sp, #28]
23387
+ strh r2, [r3, r1] @ movhi
23388
+ ldr r3, [sp, #4]
23389
+ ldr r2, [r10, #512]
23390
+ str r2, [r3, #4]
23391
+ adds r2, r2, #1
23392
+ adds r3, r2, #1
23393
+ ldr r3, [sp, #4]
23394
+ it eq
23395
+ moveq r2, #0
23396
+ str r2, [r10, #512]
23397
+ ldr r2, [sp, #40]
23398
+ str r6, [r3, #8]
23399
+ adds r6, r6, #1
23400
+ str r2, [r3, #12]
23401
+ ldrh r2, [r5]
23402
+ strh r2, [r3, #2] @ movhi
23403
+ ldr r3, [sp, #20]
23404
+ ldr r2, [fp, #2444]
23405
+ adds r3, r3, #1
23406
+ adds r2, r2, #1
23407
+ str r3, [sp, #20]
23408
+ str r2, [fp, #2444]
23409
+ b .L3614
23410
+.L3623:
23411
+ mla r0, r4, r2, r0
23412
+ ldrh r2, [fp, #2400]
23413
+.L3671:
23414
+ ldr r0, [r0, #8]
23415
+ b .L3669
23416
+.L3621:
23417
+ ldr r2, [sp, #40]
23418
+ movs r0, #36
23419
+ adds r1, r2, #1
23420
+ beq .L3625
23421
+ ldr r1, [fp, #2448]
23422
+ str r2, [sp, #48]
23423
+ ldr r2, [fp, #2444]
23424
+ str r6, [sp, #60]
23425
+ mla r2, r0, r2, r1
23426
+ add r0, sp, #44
23427
+ ldr r1, [r2, #8]
23428
+ ldr r2, [r2, #12]
23429
+ str r1, [sp, #52]
23430
+ movs r1, #1
23431
+ str r2, [sp, #56]
23432
+ movs r2, #0
23433
+ bl FlashReadPages
23434
+ ldr r2, [sp, #44]
23435
+ adds r2, r2, #1
23436
+ bne .L3626
23437
+ ldr r2, [r10, #676]
23438
+ adds r2, r2, #1
23439
+ str r2, [r10, #676]
23440
+.L3628:
23441
+ ldr r3, [sp]
23442
+ lsls r2, r4, #9
23443
+ cmp r3, r6
23444
+ bne .L3629
23445
+ ldr r0, [fp, #2448]
23446
+ movs r4, #36
23447
+ ldr r1, [fp, #2444]
23448
+ ldr r3, [sp, #24]
23449
+ mla r1, r4, r1, r0
23450
+ ldr r0, [r1, #8]
23451
+ ldr r1, [sp, #8]
23452
+ add r0, r0, r3, lsl #9
23453
+.L3669:
23454
+ bl ftl_memcpy
23455
+ b .L3624
23456
+.L3626:
23457
+ ldr r3, [sp, #4]
23458
+ ldr r2, [r3, #8]
23459
+ cmp r6, r2
23460
+ beq .L3628
23461
+ ldr r2, [r10, #676]
23462
+ ldr r0, .L3674
23463
+ adds r2, r2, #1
23464
+ str r2, [r10, #676]
23465
+ mov r2, r6
23466
+ ldr r1, [r3, #8]
23467
+ bl printk
23468
+ b .L3628
23469
+.L3625:
23470
+ ldr r1, [fp, #2444]
23471
+ ldr r2, [fp, #2448]
23472
+ mla r0, r0, r1, r2
23473
+ ldrh r2, [fp, #2400]
23474
+ movs r1, #0
23475
+ ldr r0, [r0, #8]
23476
+ bl ftl_memset
23477
+ b .L3628
23478
+.L3629:
23479
+ ldrh r1, [fp, #2396]
23480
+ movs r4, #36
23481
+ ldr r3, [fp, #2448]
23482
+ ldr r0, [fp, #2444]
23483
+ muls r1, r6, r1
23484
+ mla r0, r4, r0, r3
23485
+ ldr r3, [sp, #8]
23486
+ subs r1, r1, r7
23487
+ add r1, r3, r1, lsl #9
23488
+ b .L3671
23489
+.L3668:
23490
+ ldr r3, [sp, #16]
23491
+ cbz r3, .L3630
23492
+ ldr r2, [fp, #2444]
23493
+ ldr r1, [fp, #2448]
23494
+ ldr r3, [sp, #8]
23495
+ mla r4, r4, r2, r1
23496
+ ldrh r2, [fp, #2396]
23497
+ muls r2, r6, r2
23498
+ subs r2, r2, r7
23499
+ add r2, r3, r2, lsl #9
23500
+ str r2, [r4, #8]
23501
+ b .L3624
23502
+.L3630:
23503
+ ldrh r1, [fp, #2396]
23504
+ ldr r2, [fp, #2444]
23505
+ ldr r0, [fp, #2448]
23506
+ ldr r3, [sp, #8]
23507
+ muls r1, r6, r1
23508
+ mla r4, r4, r2, r0
23509
+ ldrh r2, [fp, #2400]
23510
+ subs r1, r1, r7
23511
+ add r1, r3, r1, lsl #9
23512
+ ldr r0, [r4, #8]
23513
+ b .L3669
23514
+.L3634:
23515
+ bl FtlCacheWriteBack
23516
+ cmp r8, #1
23517
+ mov r2, #0
23518
+ str r2, [fp, #2444]
23519
+ bhi .L3608
23520
+ b .L3636
23521
+.L3646:
23522
+ mov r0, #-1
23523
+ b .L3600
23524
+.L3643:
23525
+ mov r0, r2
23526
+ b .L3600
23527
+.L3675:
23528
+ .align 2
23529
+.L3674:
23530
+ .word .LC166
2322923531 .fnend
2323023532 .size ftl_write, .-ftl_write
2323123533 .align 1
2323223534 .global ftl_vendor_write
23535
+ .syntax unified
2323323536 .thumb
2323423537 .thumb_func
23538
+ .fpu softvfp
2323523539 .type ftl_vendor_write, %function
2323623540 ftl_vendor_write:
2323723541 .fnstart
2323823542 @ args = 0, pretend = 0, frame = 0
2323923543 @ frame_needed = 0, uses_anonymous_args = 0
23240
- push {r4, r5, lr}
23241
- .save {r4, r5, lr}
23242
- mov r5, r0
23243
- mov r4, r1
23544
+ @ link register save eliminated.
2324423545 mov r3, r2
23245
- mov r1, r5
23246
- mov r2, r4
23546
+ mov r2, r1
23547
+ mov r1, r0
2324723548 movs r0, #16
23248
- pop {r4, r5, lr}
2324923549 b ftl_write
2325023550 .fnend
2325123551 .size ftl_vendor_write, .-ftl_vendor_write
2325223552 .align 1
2325323553 .global FlashBootVendorWrite
23554
+ .syntax unified
2325423555 .thumb
2325523556 .thumb_func
23557
+ .fpu softvfp
2325623558 .type FlashBootVendorWrite, %function
2325723559 FlashBootVendorWrite:
2325823560 .fnstart
....@@ -23260,56 +23562,57 @@
2326023562 @ frame_needed = 0, uses_anonymous_args = 0
2326123563 push {r4, r5, r6, lr}
2326223564 .save {r4, r5, r6, lr}
23263
- mov r6, r0
23565
+ mov r4, r0
2326423566 mov r5, r1
23265
- mov r4, r2
23567
+ mov r6, r2
2326623568 bl rknand_device_lock
23267
- ldr r3, .L3808
23268
- ldr r3, [r3, #504]
23569
+ ldr r3, .L3680
23570
+ ldr r3, [r3, #500]
2326923571 cmp r3, #1
23270
- bne .L3807
23271
- mov r2, r4
23272
- mov r0, r6
23572
+ bne .L3679
23573
+ mov r0, r4
23574
+ mov r2, r6
2327323575 mov r1, r5
2327423576 bl ftl_vendor_write
2327523577 mov r4, r0
23276
- b .L3806
23277
-.L3807:
23278
- mov r4, #-1
23279
-.L3806:
23578
+.L3678:
2328023579 bl rknand_device_unlock
2328123580 mov r0, r4
2328223581 pop {r4, r5, r6, pc}
23283
-.L3809:
23582
+.L3679:
23583
+ mov r4, #-1
23584
+ b .L3678
23585
+.L3681:
2328423586 .align 2
23285
-.L3808:
23587
+.L3680:
2328623588 .word .LANCHOR1
2328723589 .fnend
2328823590 .size FlashBootVendorWrite, .-FlashBootVendorWrite
2328923591 .align 1
2329023592 .global ftl_sys_write
23593
+ .syntax unified
2329123594 .thumb
2329223595 .thumb_func
23596
+ .fpu softvfp
2329323597 .type ftl_sys_write, %function
2329423598 ftl_sys_write:
2329523599 .fnstart
2329623600 @ args = 0, pretend = 0, frame = 0
2329723601 @ frame_needed = 0, uses_anonymous_args = 0
23298
- push {r4, lr}
23299
- .save {r4, lr}
23300
- mov r4, r1
23602
+ @ link register save eliminated.
2330123603 mov r3, r2
23604
+ mov r2, r1
2330223605 add r1, r0, #256
23303
- mov r2, r4
2330423606 movs r0, #16
23305
- pop {r4, lr}
2330623607 b ftl_write
2330723608 .fnend
2330823609 .size ftl_sys_write, .-ftl_sys_write
2330923610 .align 1
2331023611 .global StorageSysDataStore
23612
+ .syntax unified
2331123613 .thumb
2331223614 .thumb_func
23615
+ .fpu softvfp
2331323616 .type StorageSysDataStore, %function
2331423617 StorageSysDataStore:
2331523618 .fnstart
....@@ -23317,12 +23620,12 @@
2331723620 @ frame_needed = 0, uses_anonymous_args = 0
2331823621 push {r3, r4, r5, lr}
2331923622 .save {r3, r4, r5, lr}
23320
- mov r4, r1
23321
- mov r5, r0
23623
+ mov r5, r1
23624
+ mov r4, r0
2332223625 bl rknand_device_lock
23323
- mov r2, r4
23626
+ mov r2, r5
2332423627 movs r1, #1
23325
- mov r0, r5
23628
+ mov r0, r4
2332623629 bl ftl_sys_write
2332723630 mov r4, r0
2332823631 bl rknand_device_unlock
....@@ -23332,86 +23635,91 @@
2333223635 .size StorageSysDataStore, .-StorageSysDataStore
2333323636 .align 1
2333423637 .global FtlDumpSysBlock
23638
+ .syntax unified
2333523639 .thumb
2333623640 .thumb_func
23641
+ .fpu softvfp
2333723642 .type FtlDumpSysBlock, %function
2333823643 FtlDumpSysBlock:
2333923644 .fnstart
2334023645 @ args = 0, pretend = 0, frame = 0
2334123646 @ frame_needed = 0, uses_anonymous_args = 0
23342
- push {r4, r5, r6, r7, r8, r9, lr}
23343
- .save {r4, r5, r6, r7, r8, r9, lr}
23344
- lsl r8, r0, #10
23345
- ldr r5, .L3820
23647
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23648
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23649
+ lsl r9, r0, #10
23650
+ ldr r5, .L3691
2334623651 .pad #28
2334723652 sub sp, sp, #28
23348
- ldr r4, .L3820+4
23349
- mov r9, #0
23350
- ldr r7, .L3820+8
23351
- mov r6, r0
23653
+ mov r7, r0
23654
+ movs r6, #0
23655
+ ldr r4, .L3691+4
2335223656 ldr r3, [r5, #3316]
23353
- str r3, [r4, #1256]
23657
+ ldr r8, .L3691+12
23658
+ ldr fp, .L3691+16
23659
+ add r10, r4, #1256
23660
+ str r3, [r4, #1264]
2335423661 ldr r3, [r5, #3340]
23355
- str r3, [r4, #1260]
23356
-.L3813:
23357
- ldrh r2, [r7, #2390]
23358
- sxth r3, r9
23662
+ str r3, [r4, #1268]
23663
+.L3685:
23664
+ ldrh r2, [r8, #2392]
23665
+ sxth r3, r6
2335923666 cmp r3, r2
23360
- bge .L3819
23361
- movs r1, #1
23362
- ldr r0, .L3820+12
23363
- orr r3, r3, r8
23364
- str r3, [r4, #1252]
23365
- mov r2, r1
23366
- bl FlashReadPages
23367
- ldr r3, [r4, #1260]
23368
- ldr r0, .L3820+16
23369
- mov r1, r6
23370
- ldr r2, [r3]
23371
- str r2, [sp]
23372
- ldr r2, [r3, #4]
23373
- str r2, [sp, #4]
23374
- ldr r2, [r3, #8]
23375
- str r2, [sp, #8]
23376
- ldr r3, [r3, #12]
23377
- ldr r2, [r4, #1248]
23378
- str r3, [sp, #12]
23379
- ldr r3, [r4, #1256]
23380
- ldr r3, [r3]
23381
- str r3, [sp, #16]
23382
- ldr r3, [r4, #1252]
23383
- bl printk
23384
- ldr r3, [r4, #1260]
23385
- ldr r3, [r3]
23386
- adds r3, r3, #1
23387
- beq .L3814
23388
- ldr r0, .L3820+20
23389
- movs r2, #4
23390
- ldr r1, [r5, #3316]
23391
- mov r3, #768
23392
- bl rknand_print_hex
23393
-.L3814:
23394
- add r9, r9, #1
23395
- b .L3813
23396
-.L3819:
23667
+ blt .L3687
2339723668 add sp, sp, #28
2339823669 @ sp needed
23399
- pop {r4, r5, r6, r7, r8, r9, pc}
23400
-.L3821:
23670
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
23671
+.L3687:
23672
+ movs r2, #1
23673
+ orr r3, r3, r9
23674
+ mov r1, r2
23675
+ mov r0, r10
23676
+ str r3, [r4, #1260]
23677
+ bl FlashReadPages
23678
+ ldr r2, [r4, #1264]
23679
+ mov r1, r7
23680
+ ldr r3, [r4, #1268]
23681
+ mov r0, fp
23682
+ ldr r2, [r2]
23683
+ str r2, [sp, #16]
23684
+ ldr r2, [r3, #12]
23685
+ str r2, [sp, #12]
23686
+ ldr r2, [r3, #8]
23687
+ str r2, [sp, #8]
23688
+ ldr r2, [r3, #4]
23689
+ str r2, [sp, #4]
23690
+ ldr r3, [r3]
23691
+ ldr r2, [r4, #1256]
23692
+ str r3, [sp]
23693
+ ldr r3, [r4, #1260]
23694
+ bl printk
23695
+ ldr r3, [r4, #1268]
23696
+ ldr r3, [r3]
23697
+ adds r3, r3, #1
23698
+ beq .L3686
23699
+ mov r3, #768
23700
+ movs r2, #4
23701
+ ldr r1, [r5, #3316]
23702
+ ldr r0, .L3691+8
23703
+ bl rknand_print_hex
23704
+.L3686:
23705
+ adds r6, r6, #1
23706
+ b .L3685
23707
+.L3692:
2340123708 .align 2
23402
-.L3820:
23709
+.L3691:
2340323710 .word .LANCHOR2
2340423711 .word .LANCHOR4
23405
- .word .LANCHOR0
23406
- .word .LANCHOR4+1248
23407
- .word .LC167
2340823712 .word .LC168
23713
+ .word .LANCHOR0
23714
+ .word .LC167
2340923715 .fnend
2341023716 .size FtlDumpSysBlock, .-FtlDumpSysBlock
2341123717 .align 1
2341223718 .global dump_map_info
23719
+ .syntax unified
2341323720 .thumb
2341423721 .thumb_func
23722
+ .fpu softvfp
2341523723 .type dump_map_info, %function
2341623724 dump_map_info:
2341723725 .fnstart
....@@ -23421,282 +23729,286 @@
2342123729 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2342223730 .pad #52
2342323731 sub sp, sp, #52
23424
- ldr r4, .L3840
23425
- addw fp, r4, #2348
23426
- ldrh r7, [r4, #2328]
23427
- mov r9, r4
23428
-.L3823:
23429
- ldrh r3, [r4, #2330]
23430
- ldr r6, .L3840+4
23732
+ ldr r4, .L3708
23733
+ ldr r5, .L3708+4
23734
+ ldrh r7, [r4, #2332]
23735
+ addw fp, r4, #2350
23736
+.L3694:
23737
+ ldrh r3, [r4, #2334]
2343123738 cmp r3, r7
23432
- bls .L3837
23433
- ldr r1, [r6, #1148]
23739
+ bhi .L3702
23740
+ ldr r6, .L3708+8
23741
+ mov r9, #0
23742
+ ldr fp, .L3708+24
23743
+ add r10, r6, #1256
23744
+.L3703:
23745
+ ldrh r3, [r5, #3452]
23746
+ sxth r7, r9
23747
+ cmp r7, r3
23748
+ bge .L3706
23749
+ lsls r7, r7, #1
2343423750 mov r8, #0
23435
- ldrh ip, [r9, #2320]
23436
- mov r10, #36
23437
- ldr r2, [r6, #3304]
23438
- mov r5, r8
23439
- str r1, [sp, #24]
23440
- ldr r3, [r6, #1144]
23441
- ldrh r1, [r9, #2400]
23442
- str r1, [sp, #28]
23443
-.L3833:
23444
- uxth r1, r8
23445
- cmp r1, ip
23446
- bcs .L3838
23751
+ b .L3707
23752
+.L3697:
2344723753 mov r1, r7
2344823754 ldrb r0, [fp, r8] @ zero_extendqisi2
2344923755 str r3, [sp, #44]
2345023756 str r2, [sp, #40]
23451
- str ip, [sp, #36]
2345223757 bl V2P_block
23453
- str r0, [sp, #32]
23758
+ str r0, [sp, #36]
2345423759 bl FtlBbmIsBadBlock
23455
- ldr r1, [sp, #32]
23456
- ldr ip, [sp, #36]
2345723760 ldr r2, [sp, #40]
2345823761 ldr r3, [sp, #44]
23459
- cbnz r0, .L3824
23460
- mla r0, r10, r5, r2
23762
+ cbnz r0, .L3695
23763
+ ldr r1, [sp, #36]
23764
+ mla r0, r10, r6, r9
2346123765 lsls r1, r1, #10
23766
+ str r3, [r0, #8]
2346223767 str r1, [r0, #4]
23463
- ldr r1, [sp, #28]
23464
- muls r1, r5, r1
23465
- add r5, r5, #1
23768
+ ldr r1, [sp, #32]
23769
+ muls r1, r6, r1
2346623770 it mi
2346723771 addmi r1, r1, #3
23468
- bic lr, r1, #3
23469
- ldr r1, [sp, #24]
23470
- uxth r5, r5
23471
- str r3, [r0, #8]
23472
- add r1, r1, lr
23772
+ adds r6, r6, #1
23773
+ bic ip, r1, #3
23774
+ ldr r1, [sp, #28]
23775
+ uxth r6, r6
23776
+ add r1, r1, ip
2347323777 str r1, [r0, #12]
23474
-.L3824:
23778
+.L3695:
2347523779 add r8, r8, #1
23476
- b .L3833
23477
-.L3838:
23478
- cbz r5, .L3828
23479
- ldr r0, [r6, #3304]
23480
- mov r1, r5
23481
- movs r2, #1
23482
- mov r8, #0
23483
- bl FlashReadPages
23484
- mov r10, #36
23485
-.L3829:
23486
- uxth r3, r8
23487
- cmp r3, r5
23488
- bcs .L3828
23489
- ldr r3, [r6, #3304]
23490
- ldr r0, .L3840+8
23491
- mla r3, r10, r8, r3
23492
- add r8, r8, #1
23493
- adds r2, r3, #4
23494
- ldmia r2, {r2, r3, lr}
23495
- ldr r1, [lr, #4]
23496
- str r1, [sp]
23497
- ldr r1, [lr, #8]
23498
- str r1, [sp, #4]
23499
- ldr r1, [lr, #12]
23500
- str r1, [sp, #8]
23501
- ldr r1, [r3]
23502
- str r1, [sp, #12]
23503
- ubfx r1, r2, #10, #16
23504
- ldr r3, [r3, #4]
23505
- str r3, [sp, #16]
23506
- ldr r3, [lr]
23507
- bl printk
23508
- b .L3829
23509
-.L3828:
23780
+.L3704:
23781
+ uxth r1, r8
23782
+ cmp r2, r1
23783
+ bhi .L3697
23784
+ cbnz r6, .L3698
23785
+.L3701:
2351023786 adds r7, r7, #1
2351123787 uxth r7, r7
23512
- b .L3823
23513
-.L3837:
23514
- ldr r7, .L3840+12
23788
+ b .L3694
23789
+.L3698:
23790
+ ldr r10, .L3708+28
23791
+ mov r0, r9
2351523792 mov r8, #0
23516
-.L3832:
23517
- ldrh r2, [r6, #3452]
23518
- sxth r3, r8
23519
- ldr r5, .L3840+4
23520
- cmp r3, r2
23521
- bge .L3835
23522
- lsls r5, r3, #1
23523
- mov r9, #0
23524
-.L3836:
23525
- ldrh r2, [r4, #2390]
23526
- sxth r3, r9
23527
- add r9, r9, #1
23528
- cmp r3, r2
23529
- bge .L3839
23530
- ldr r2, [r6, #3368]
23531
- movs r1, #1
23532
- ldr r0, .L3840+16
23533
- ldrh r2, [r2, r5]
23534
- orr r3, r3, r2, lsl #10
23535
- mov r2, r1
23536
- str r3, [r7, #1252]
23793
+ mov r9, #36
23794
+ movs r2, #1
23795
+ mov r1, r6
2353723796 bl FlashReadPages
23538
- ldr r3, [r7, #1260]
23539
- ldr r1, [r6, #3368]
23540
- ldr r2, [r7, #1256]
23541
- ldr r0, [r3]
23542
- ldrh r1, [r1, r5]
23543
- str r0, [sp]
23544
- ldr r0, [r3, #4]
23545
- str r0, [sp, #4]
23546
- ldr r0, [r3, #8]
23547
- str r0, [sp, #8]
23548
- ldr r3, [r3, #12]
23549
- ldr r0, .L3840+20
23550
- str r3, [sp, #12]
23551
- ldr r3, [r2]
23552
- str r3, [sp, #16]
23553
- ldr r3, [r2, #4]
23554
- str r3, [sp, #20]
23555
- ldr r2, [r7, #1248]
23556
- ldr r3, [r7, #1252]
23557
- bl printk
23558
- b .L3836
23559
-.L3839:
23797
+.L3699:
23798
+ uxth r3, r8
23799
+ cmp r6, r3
23800
+ bls .L3701
23801
+ ldr r3, [r5, #3304]
23802
+ mla r3, r9, r8, r3
2356023803 add r8, r8, #1
23561
- b .L3832
23562
-.L3835:
23804
+ ldr r1, [r3, #12]
23805
+ ldr r2, [r3, #4]
23806
+ ldr r3, [r3, #8]
23807
+ ldr r0, [r3, #4]
23808
+ str r0, [sp, #16]
23809
+ mov r0, r10
23810
+ ldr r3, [r3]
23811
+ str r3, [sp, #12]
23812
+ ldr r3, [r1, #12]
23813
+ str r3, [sp, #8]
23814
+ ldr r3, [r1, #8]
23815
+ str r3, [sp, #4]
23816
+ ldr r3, [r1, #4]
23817
+ str r3, [sp]
23818
+ ldr r3, [r1]
23819
+ ubfx r1, r2, #10, #16
23820
+ bl printk
23821
+ b .L3699
23822
+.L3702:
23823
+ ldr r1, [r5, #1148]
23824
+ mov r8, #0
23825
+ ldrh r2, [r4, #2324]
23826
+ mov r6, r8
23827
+ ldr r9, [r5, #3304]
23828
+ mov r10, #36
23829
+ str r1, [sp, #28]
23830
+ ldrh r1, [r4, #2402]
23831
+ ldr r3, [r5, #1144]
23832
+ str r1, [sp, #32]
23833
+ b .L3704
23834
+.L3705:
23835
+ ldr r2, [r5, #3368]
23836
+ mov r0, r10
23837
+ ldrh r2, [r2, r7]
23838
+ orr r3, r3, r2, lsl #10
23839
+ movs r2, #1
23840
+ mov r1, r2
23841
+ str r3, [r6, #1260]
23842
+ bl FlashReadPages
23843
+ ldr r2, [r6, #1264]
2356323844 ldr r1, [r5, #3368]
23845
+ ldr r3, [r6, #1268]
23846
+ ldr r0, [r2, #4]
23847
+ ldrh r1, [r1, r7]
23848
+ str r0, [sp, #20]
23849
+ mov r0, fp
23850
+ ldr r2, [r2]
23851
+ str r2, [sp, #16]
23852
+ ldr r2, [r3, #12]
23853
+ str r2, [sp, #12]
23854
+ ldr r2, [r3, #8]
23855
+ str r2, [sp, #8]
23856
+ ldr r2, [r3, #4]
23857
+ str r2, [sp, #4]
23858
+ ldr r3, [r3]
23859
+ str r3, [sp]
23860
+ ldr r3, [r6, #1260]
23861
+ ldr r2, [r6, #1256]
23862
+ bl printk
23863
+.L3707:
23864
+ ldrh r2, [r4, #2392]
23865
+ sxth r3, r8
23866
+ add r8, r8, #1
23867
+ cmp r3, r2
23868
+ blt .L3705
23869
+ add r9, r9, #1
23870
+ b .L3703
23871
+.L3706:
23872
+ ldr r3, [r4, #2420]
2356423873 movs r2, #2
23565
- ldr r3, [r4, #2416]
23566
- ldr r0, .L3840+24
23874
+ ldr r1, [r5, #3368]
23875
+ ldr r0, .L3708+12
2356723876 bl rknand_print_hex
23877
+ ldrh r3, [r4, #2428]
23878
+ movs r2, #4
2356823879 ldr r1, [r5, #3388]
23569
- ldrh r3, [r4, #2424]
23570
- movs r2, #4
23571
- ldr r0, .L3840+28
23880
+ ldr r0, .L3708+16
2357223881 bl rknand_print_hex
23573
- ldr r0, .L3840+32
23574
- ldr r1, [r5, #3392]
23882
+ ldrh r3, [r4, #2428]
2357523883 movs r2, #4
23576
- ldrh r3, [r4, #2424]
23884
+ ldr r1, [r5, #3392]
23885
+ ldr r0, .L3708+20
2357723886 add sp, sp, #52
2357823887 @ sp needed
2357923888 pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2358023889 b rknand_print_hex
23581
-.L3841:
23890
+.L3709:
2358223891 .align 2
23583
-.L3840:
23892
+.L3708:
2358423893 .word .LANCHOR0
2358523894 .word .LANCHOR2
23586
- .word .LC169
2358723895 .word .LANCHOR4
23588
- .word .LANCHOR4+1248
23589
- .word .LC113
2359023896 .word .LC170
2359123897 .word .LC171
2359223898 .word .LC172
23899
+ .word .LC113
23900
+ .word .LC169
2359323901 .fnend
2359423902 .size dump_map_info, .-dump_map_info
2359523903 .align 1
2359623904 .global flash_boot_enter_slc_mode
23905
+ .syntax unified
2359723906 .thumb
2359823907 .thumb_func
23908
+ .fpu softvfp
2359923909 .type flash_boot_enter_slc_mode, %function
2360023910 flash_boot_enter_slc_mode:
2360123911 .fnstart
2360223912 @ args = 0, pretend = 0, frame = 0
2360323913 @ frame_needed = 0, uses_anonymous_args = 0
2360423914 @ link register save eliminated.
23605
- ldr r3, .L3844
23606
- ldr r2, [r3, #2264]
23607
- ldr r3, .L3844+4
23915
+ ldr r3, .L3712
23916
+ ldr r2, [r3, #2268]
23917
+ ldr r3, .L3712+4
2360823918 cmp r2, r3
23609
- bne .L3842
23919
+ bne .L3710
2361023920 b flash_enter_slc_mode
23611
-.L3842:
23921
+.L3710:
2361223922 bx lr
23613
-.L3845:
23923
+.L3713:
2361423924 .align 2
23615
-.L3844:
23925
+.L3712:
2361623926 .word .LANCHOR0
2361723927 .word 1446522928
2361823928 .fnend
2361923929 .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode
2362023930 .align 1
2362123931 .global flash_boot_exit_slc_mode
23932
+ .syntax unified
2362223933 .thumb
2362323934 .thumb_func
23935
+ .fpu softvfp
2362423936 .type flash_boot_exit_slc_mode, %function
2362523937 flash_boot_exit_slc_mode:
2362623938 .fnstart
2362723939 @ args = 0, pretend = 0, frame = 0
2362823940 @ frame_needed = 0, uses_anonymous_args = 0
2362923941 @ link register save eliminated.
23630
- ldr r3, .L3848
23631
- ldr r2, [r3, #2264]
23632
- ldr r3, .L3848+4
23942
+ ldr r3, .L3716
23943
+ ldr r2, [r3, #2268]
23944
+ ldr r3, .L3716+4
2363323945 cmp r2, r3
23634
- bne .L3846
23946
+ bne .L3714
2363523947 b flash_exit_slc_mode
23636
-.L3846:
23948
+.L3714:
2363723949 bx lr
23638
-.L3849:
23950
+.L3717:
2363923951 .align 2
23640
-.L3848:
23952
+.L3716:
2364123953 .word .LANCHOR0
2364223954 .word 1446522928
2364323955 .fnend
2364423956 .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode
2364523957 .align 1
2364623958 .global write_idblock
23959
+ .syntax unified
2364723960 .thumb
2364823961 .thumb_func
23962
+ .fpu softvfp
2364923963 .type write_idblock, %function
2365023964 write_idblock:
2365123965 .fnstart
23652
- @ args = 0, pretend = 0, frame = 120
23966
+ @ args = 0, pretend = 0, frame = 112
2365323967 @ frame_needed = 0, uses_anonymous_args = 0
2365423968 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2365523969 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23656
- mov r8, r0
23657
- ldr r7, .L3899
23658
- .pad #132
23659
- sub sp, sp, #132
23970
+ mov r7, r0
23971
+ ldr r4, .L3766
23972
+ .pad #124
23973
+ sub sp, sp, #124
2366023974 mov r0, #256000
23661
- mov fp, r1
23662
- mov r6, r2
23663
- ldr r3, [r7, #44]
23664
- ldr r4, [r7, #4]
23665
- ldrb r5, [r3, #9] @ zero_extendqisi2
23975
+ mov r9, r1
23976
+ mov r5, r2
23977
+ ldr r3, [r4, #48]
23978
+ ldr r8, [r4, #40]
23979
+ ldrb r6, [r3, #9] @ zero_extendqisi2
2366623980 bl ftl_malloc
23667
- str r0, [sp, #12]
23981
+ str r0, [sp, #8]
2366823982 cmp r0, #0
23669
- beq .L3877
23670
- addw r2, r8, #511
23671
- lsr r10, r2, #9
23672
- cmp r10, #8
23673
- bls .L3875
23674
- cmp r10, #500
23675
- bhi .L3877
23676
- b .L3852
23677
-.L3875:
23678
- mov r10, #8
23679
-.L3852:
23680
- ldr r2, [fp]
23681
- ldr r3, .L3899+4
23983
+ beq .L3745
23984
+ addw r7, r7, #511
23985
+ lsr fp, r7, #9
23986
+ cmp fp, #8
23987
+ bls .L3743
23988
+ cmp fp, #500
23989
+ bhi .L3745
23990
+.L3720:
23991
+ ldr r2, [r9]
23992
+ ldr r3, .L3766+4
2368223993 cmp r2, r3
23683
- bne .L3877
23684
- smulbb r3, r5, r4
23685
- uxth r3, r3
23686
- str r3, [sp, #16]
23994
+ bne .L3745
23995
+ smulbb r6, r6, r8
23996
+ uxth r3, r6
2368723997 subs r0, r3, #1
2368823998 mov r1, r3
23689
- add r0, r0, r10
23999
+ add r0, r0, fp
24000
+ str r3, [sp, #12]
2369024001 bl __aeabi_uidiv
24002
+ str r0, [sp, #32]
24003
+ add r0, r9, #254976
24004
+ add r0, r0, #512
2369124005 movs r3, #0
2369224006 movw r2, #63871
23693
- str r0, [sp, #40]
23694
- add r0, fp, #254976
23695
- add r0, r0, #512
23696
-.L3856:
24007
+.L3724:
2369724008 ldr r1, [r0, #-4]!
23698
- cbnz r1, .L3853
23699
- ldr r1, [fp, r3, lsl #2]
24009
+ cmp r1, #0
24010
+ bne .L3721
24011
+ ldr r1, [r9, r3, lsl #2]
2370024012 adds r3, r3, #1
2370124013 cmp r3, #4096
2370224014 add r2, r2, #-1
....@@ -23704,491 +24016,478 @@
2370424016 movhi r3, #0
2370524017 cmp r2, #4096
2370624018 str r1, [r0, #512]
23707
- bne .L3856
23708
- b .L3855
23709
-.L3853:
23710
- ldr r0, .L3899+8
23711
- bl printk
23712
-.L3855:
24019
+ bne .L3724
24020
+.L3723:
2371324021 movs r3, #5
23714
- ldr r0, .L3899+12
23715
- mov r1, r6
24022
+ mov r1, r5
2371624023 movs r2, #4
24024
+ ldr r0, .L3766+8
2371724025 bl rknand_print_hex
23718
- ldr r1, [fp, #512]
23719
- ldrb r2, [r7, #1] @ zero_extendqisi2
23720
- subs r4, r6, #4
23721
- ldr r0, .L3899+16
24026
+ ldrb r2, [r4, #37] @ zero_extendqisi2
24027
+ subs r5, r5, #4
24028
+ ldr r1, [r9, #512]
24029
+ ldr r0, .L3766+12
2372224030 bl printk
23723
- ldr r2, .L3899+20
23724
- ldrh r3, [r7, #142]
23725
- mov r1, r10
23726
- ldr r0, .L3899+24
23727
- ldr r2, [r2, #1204]
23728
- ldr r5, .L3899
24031
+ ldr r2, .L3766+16
24032
+ mov r1, fp
24033
+ ldrh r3, [r4, #150]
24034
+ ldr r0, .L3766+20
24035
+ ldr r2, [r2, #1212]
2372924036 str r2, [sp]
23730
- mov r2, r10
24037
+ mov r2, fp
2373124038 bl printk
23732
- ldrb r3, [r7, #1] @ zero_extendqisi2
23733
- ldr r2, [fp, #512]
24039
+ ldrb r3, [r4, #37] @ zero_extendqisi2
24040
+ ldr r2, [r9, #512]
24041
+ ldr r4, .L3766
2373424042 cmp r2, r3
2373524043 it hi
23736
- strhi r3, [fp, #512]
23737
- lsl r3, r10, #7
23738
- str r3, [sp, #44]
24044
+ strhi r3, [r9, #512]
24045
+ lsl r3, fp, #7
24046
+ str r3, [sp, #40]
2373924047 movs r3, #0
23740
- str r3, [sp, #24]
2374124048 str r3, [sp, #20]
23742
-.L3873:
23743
- ldr r2, [r4, #4]
23744
- ldrb r3, [r5, #1] @ zero_extendqisi2
23745
- ldr r7, .L3899
24049
+ str r3, [sp, #16]
24050
+.L3741:
24051
+ ldr r2, [r5, #4]
24052
+ ldrb r3, [r4, #37] @ zero_extendqisi2
2374624053 cmp r2, r3
23747
- bcs .L3858
23748
- ldr r3, .L3899+20
23749
- ldr r3, [r3, #1204]
24054
+ bcs .L3726
24055
+ ldr r3, .L3766+16
24056
+ ldr r3, [r3, #1212]
2375024057 cmp r2, r3
23751
- bcc .L3858
23752
- ldr r3, [sp, #40]
24058
+ bcc .L3726
24059
+ ldr r3, [sp, #32]
2375324060 cmp r3, #1
23754
- bls .L3859
23755
- ldr r3, [sp, #20]
23756
- cbz r3, .L3859
23757
- ldr r3, [r4]
24061
+ bls .L3727
24062
+ ldr r3, [sp, #16]
24063
+ cbz r3, .L3727
24064
+ ldr r3, [r5]
2375824065 adds r3, r3, #1
2375924066 cmp r2, r3
23760
- beq .L3858
23761
-.L3859:
23762
- movs r1, #0
24067
+ beq .L3726
24068
+.L3727:
2376324069 mov r2, #512
23764
- ldr r0, [sp, #12]
24070
+ movs r1, #0
24071
+ ldr r0, [sp, #8]
2376524072 bl memset
23766
- ldr r6, [r4, #4]
23767
- mov r2, r10
23768
- ldr r0, .L3899+28
23769
- ldr r3, [sp, #16]
24073
+ ldr r6, [r5, #4]
24074
+ mov r2, fp
24075
+ ldr r3, [sp, #12]
24076
+ ldr r7, [r4, #40]
24077
+ ldr r0, .L3766+24
2377024078 muls r6, r3, r6
23771
- ldr r3, [r7, #44]
23772
- ldr r7, [r7, #4]
23773
- ldrb r9, [r3, #9] @ zero_extendqisi2
24079
+ ldr r3, [r4, #48]
24080
+ ldrb r10, [r3, #9] @ zero_extendqisi2
2377424081 mov r1, r6
2377524082 bl printk
2377624083 movs r0, #0
24084
+ smulbb r7, r7, r10
2377724085 bl flash_boot_enter_slc_mode
23778
- mov r1, r9
24086
+ mov r1, r10
2377924087 mov r0, r6
2378024088 bl __aeabi_uidiv
23781
- smulbb r7, r7, r9
2378224089 uxth r7, r7
24090
+ movs r2, #0
2378324091 mov r1, r0
23784
- movs r0, #0
23785
- mov r2, r0
24092
+ mov r0, r2
2378624093 bl FlashEraseBlock
23787
- cmp r10, r7
23788
- bls .L3878
23789
- movs r0, #0
23790
- adds r1, r6, r7
24094
+ cmp r7, fp
24095
+ bcs .L3746
24096
+ movs r2, #0
2379124097 mov r8, #2
23792
- mov r2, r0
24098
+ adds r1, r6, r7
24099
+ mov r0, r2
2379324100 bl FlashEraseBlock
23794
- b .L3860
23795
-.L3878:
23796
- mov r8, #1
23797
-.L3860:
24101
+.L3728:
2379824102 movs r0, #0
2379924103 bl flash_boot_exit_slc_mode
23800
- ldr r3, [r5, #44]
24104
+ ldr r3, [r4, #48]
2380124105 ldrh r0, [r3, #10]
2380224106 ldrb r1, [r3, #12] @ zero_extendqisi2
2380324107 lsls r0, r0, #2
2380424108 mul r0, r8, r0
24109
+ mov r8, #0
2380524110 bl __aeabi_idiv
2380624111 mov r1, r7
23807
- mov r8, #0
23808
- str r0, [sp, #48]
24112
+ str r0, [sp, #44]
2380924113 mov r0, r6
2381024114 bl __aeabi_uidivmod
23811
- mov ip, r1
2381224115 subs r3, r6, r1
23813
- str fp, [sp, #28]
23814
- str r3, [sp, #32]
23815
-.L3861:
23816
- ldr r3, [sp, #48]
23817
- ldr r7, .L3899
23818
- cmp r8, r3
23819
- bcs .L3897
23820
- add r3, r8, ip
23821
- ubfx r3, r3, #2, #16
23822
- cbz r3, .L3862
23823
- adds r2, r3, #1
23824
- add r1, r5, r2, lsl #1
23825
- ldrh r7, [r1, #148]
23826
- ldrb r1, [r5, #144] @ zero_extendqisi2
23827
- cbz r1, .L3863
23828
- ldr r1, [r5, #2264]
23829
- ldr r0, .L3899+32
23830
- cmp r1, r0
23831
- it eq
23832
- moveq r7, r2
23833
-.L3863:
23834
- add r7, r7, #1073741824
23835
- subs r7, r7, #1
23836
- lsls r7, r7, #2
23837
- str r7, [sp, #64]
23838
-.L3862:
23839
- movw r2, #61424
23840
- str r2, [sp, #68]
23841
- add r2, r5, r3, lsl #1
23842
- ldrh r7, [r2, #148]
23843
- ldrb r2, [r5, #144] @ zero_extendqisi2
23844
- cbz r2, .L3864
23845
- ldr r2, [r5, #2264]
23846
- ldr r1, .L3899+32
23847
- cmp r2, r1
23848
- it eq
23849
- moveq r7, r3
23850
-.L3864:
23851
- ldr r3, [sp, #32]
23852
- add r8, r8, #4
23853
- str ip, [sp, #56]
23854
- uxth r8, r8
23855
- mla r2, r9, r7, r3
23856
- ldr r3, .L3899
23857
- ldrb r3, [r3, #2312] @ zero_extendqisi2
23858
- str r2, [sp, #52]
24116
+ str r1, [sp, #28]
2385924117 str r3, [sp, #36]
23860
- ldr r3, .L3899+20
23861
- ldrb r0, [r3, #1210] @ zero_extendqisi2
23862
- bl FlashBchSel
24118
+ str r9, [sp, #24]
24119
+.L3729:
24120
+ ldr r3, [sp, #44]
24121
+ cmp r3, r8
24122
+ bhi .L3733
24123
+ mov r1, r6
24124
+ movs r3, #0
24125
+ mov r2, fp
24126
+ ldr r0, .L3766+28
24127
+ bl printk
24128
+ ldr r6, [r5, #4]
24129
+ mov r2, fp
24130
+ ldr r3, [sp, #12]
24131
+ mov r8, #0
24132
+ ldr r1, [r4, #40]
24133
+ ldr r0, .L3766+32
24134
+ muls r6, r3, r6
24135
+ ldr r3, [r4, #48]
24136
+ ldrb r3, [r3, #9] @ zero_extendqisi2
24137
+ str r3, [sp, #24]
24138
+ ldrh r3, [sp, #24]
24139
+ smulbb r1, r1, r3
24140
+ uxth r7, r1
24141
+ mov r1, r6
24142
+ bl printk
24143
+ mov r1, r7
24144
+ mov r0, r6
24145
+ bl __aeabi_uidivmod
24146
+ subs r3, r6, r1
24147
+ ldr r10, [sp, #8]
24148
+ str r3, [sp, #44]
24149
+ ldr r3, [sp, #24]
24150
+ str r1, [sp, #28]
24151
+ muls r3, r1, r3
24152
+ ubfx r3, r3, #2, #2
24153
+.L3734:
24154
+ cmp r8, fp
24155
+ bcc .L3736
24156
+ movs r3, #0
24157
+ mov r1, r6
24158
+ mov r2, fp
24159
+ ldr r0, .L3766+36
24160
+ bl printk
24161
+ ldr r0, [sp, #8]
24162
+ mov r3, r9
24163
+ movs r6, #0
24164
+.L3739:
24165
+ mov r7, r0
24166
+ mov r8, r3
24167
+ ldr r1, [r7]
24168
+ adds r0, r0, #4
24169
+ ldr r2, [r8]
24170
+ adds r3, r3, #4
24171
+ cmp r1, r2
24172
+ beq .L3737
24173
+ mov r2, #512
24174
+ movs r1, #0
24175
+ ldr r0, [sp, #8]
24176
+ bl memset
24177
+ ldr r3, [r8]
24178
+ ldr r1, [sp, #16]
24179
+ ldr r0, .L3766+40
24180
+ str r3, [sp, #4]
24181
+ ldr r3, [r7]
24182
+ str r3, [sp]
24183
+ mov r3, r6
24184
+ bic r6, r6, #255
24185
+ ldr r2, [r5, #4]
24186
+ lsls r6, r6, #2
24187
+ bl printk
24188
+ mov r3, #256
24189
+ movs r2, #4
24190
+ add r1, r9, r6
24191
+ ldr r0, .L3766+44
24192
+ bl rknand_print_hex
24193
+ ldr r1, [sp, #8]
24194
+ mov r3, #256
24195
+ movs r2, #4
24196
+ ldr r0, .L3766+48
24197
+ add r1, r1, r6
24198
+ bl rknand_print_hex
2386324199 movs r0, #0
2386424200 bl flash_boot_enter_slc_mode
23865
- ldr r3, .L3899
23866
- ldr r3, [r3, #44]
23867
- ldrb r1, [r3, #9] @ zero_extendqisi2
23868
- ldr r2, [sp, #52]
24201
+ ldr r1, [r5, #4]
24202
+ movs r2, #0
24203
+ ldr r3, [sp, #12]
2386924204 mov r0, r2
23870
- bl __aeabi_uidiv
23871
- add r3, sp, #64
23872
- mov r1, r0
23873
- ldr r2, [sp, #28]
23874
- movs r0, #0
23875
- bl FlashProgPage
24205
+ muls r1, r3, r1
24206
+ bl FlashEraseBlock
24207
+ ldr r3, [sp, #32]
24208
+ cmp r3, #1
24209
+ bls .L3738
24210
+ ldr r1, [r5, #4]
24211
+ movs r2, #0
24212
+ ldr r3, [sp, #12]
24213
+ mov r0, r2
24214
+ mla r1, r1, r3, r3
24215
+ bl FlashEraseBlock
24216
+.L3738:
2387624217 movs r0, #0
2387724218 bl flash_boot_exit_slc_mode
23878
- ldr r0, [sp, #36]
23879
- bl FlashBchSel
23880
- mov r1, r9
23881
- ldr r0, [sp, #32]
23882
- bl __aeabi_uidiv
23883
- adds r2, r7, #1
23884
- uxth r2, r2
23885
- mov r1, r0
23886
- movs r0, #0
23887
- bl FlashPageProgMsbFFData
23888
- ldr r3, [sp, #28]
23889
- ldr ip, [sp, #56]
23890
- add r3, r3, #2048
23891
- str r3, [sp, #28]
23892
- b .L3861
23893
-.L3900:
24219
+ ldr r1, [r5, #4]
24220
+ ldr r0, .L3766+52
24221
+ bl printk
24222
+.L3726:
24223
+ ldr r3, [sp, #16]
24224
+ adds r5, r5, #4
24225
+ adds r3, r3, #1
24226
+ cmp r3, #5
24227
+ str r3, [sp, #16]
24228
+ bne .L3741
24229
+ ldr r0, [sp, #8]
24230
+ bl ftl_free
24231
+ ldr r3, [sp, #20]
24232
+ clz r0, r3
24233
+ lsrs r0, r0, #5
24234
+ negs r0, r0
24235
+.L3718:
24236
+ add sp, sp, #124
24237
+ @ sp needed
24238
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
24239
+.L3743:
24240
+ mov fp, #8
24241
+ b .L3720
24242
+.L3721:
24243
+ ldr r0, .L3766+56
24244
+ bl printk
24245
+ b .L3723
24246
+.L3746:
24247
+ mov r8, #1
24248
+ b .L3728
24249
+.L3767:
2389424250 .align 2
23895
-.L3899:
24251
+.L3766:
2389624252 .word .LANCHOR0
2389724253 .word -52655045
23898
- .word .LC173
2389924254 .word .LC174
2390024255 .word .LC175
2390124256 .word .LANCHOR4
2390224257 .word .LC176
2390324258 .word .LC177
23904
- .word 1446522928
23905
-.L3897:
23906
- mov r1, r6
23907
- mov r2, r10
23908
- movs r3, #0
23909
- ldr r0, .L3901
23910
- bl printk
23911
- ldr r6, [r4, #4]
23912
- ldr r0, .L3901+4
23913
- mov r9, #0
23914
- ldr r3, [sp, #16]
23915
- muls r6, r3, r6
23916
- ldr r3, [r7, #44]
23917
- ldrb r3, [r3, #9] @ zero_extendqisi2
23918
- mov r1, r6
23919
- str r3, [sp, #28]
23920
- ldr r3, [r7, #4]
23921
- ldrh r2, [sp, #28]
23922
- smulbb r8, r3, r2
23923
- mov r2, r10
23924
- bl printk
23925
- mov r0, r6
23926
- uxth r8, r8
23927
- mov r1, r8
23928
- bl __aeabi_uidivmod
23929
- subs r3, r6, r1
23930
- str r3, [sp, #48]
23931
- ldr r3, [sp, #28]
23932
- str r1, [sp, #32]
23933
- mul ip, r3, r1
23934
- ldr r3, [sp, #12]
23935
- ubfx ip, ip, #2, #2
23936
- str r3, [sp, #36]
23937
-.L3866:
23938
- cmp r9, r10
23939
- bcs .L3898
23940
- ldr r3, [sp, #32]
23941
- rsb r8, ip, #4
23942
- ldrb r1, [r5, #144] @ zero_extendqisi2
23943
- add r3, r9, r3
23944
- uxth r8, r8
23945
- ubfx r3, r3, #2, #16
23946
- add r2, r5, r3, lsl #1
23947
- ldrh r2, [r2, #148]
23948
- cbz r1, .L3867
23949
- ldr r1, [r5, #2264]
23950
- ldr r0, .L3901+8
23951
- cmp r1, r0
23952
- it eq
23953
- moveq r2, r3
23954
-.L3867:
23955
- ldr r3, [sp, #48]
23956
- add r9, r9, r8
23957
- ldr r1, [sp, #28]
23958
- add r3, ip, r3
23959
- ldrb ip, [r7, #2312] @ zero_extendqisi2
23960
- uxth r9, r9
23961
- mla r3, r1, r2, r3
23962
- ldr r2, [r7, #44]
23963
- str ip, [sp, #52]
23964
- ldrb r1, [r2, #9] @ zero_extendqisi2
23965
- ldr r2, .L3901+12
23966
- str r3, [sp, #60]
23967
- str r1, [sp, #56]
23968
- ldrb r0, [r2, #1210] @ zero_extendqisi2
23969
- bl FlashBchSel
23970
- movs r0, #0
23971
- bl flash_boot_enter_slc_mode
23972
- ldr r3, [sp, #60]
23973
- ldr r1, [sp, #56]
23974
- mov r0, r3
23975
- bl __aeabi_uidiv
23976
- mov r1, r0
23977
- movs r0, #0
23978
- ldr r2, [sp, #36]
23979
- mov r3, r0
23980
- bl FlashReadPage
23981
- movs r0, #0
23982
- bl flash_boot_exit_slc_mode
23983
- ldr ip, [sp, #52]
23984
- mov r0, ip
23985
- bl FlashBchSel
23986
- mov ip, #0
23987
- ldr r3, [sp, #36]
23988
- add r3, r3, r8, lsl #9
23989
- str r3, [sp, #36]
23990
- b .L3866
23991
-.L3898:
23992
- mov r1, r6
23993
- movs r3, #0
23994
- ldr r0, .L3901+16
23995
- mov r2, r10
23996
- bl printk
23997
- movs r6, #0
23998
- mov r3, fp
23999
- ldr r0, [sp, #12]
24000
-.L3872:
24001
- mov r8, r0
24002
- mov r7, r3
24003
- ldr r1, [r8]
24004
- adds r0, r0, #4
24005
- ldr r2, [r7]
24006
- adds r3, r3, #4
24007
- cmp r1, r2
24008
- beq .L3869
24009
- movs r1, #0
24010
- mov r2, #512
24011
- ldr r0, [sp, #12]
24012
- bl memset
24013
- ldr r3, [r8]
24014
- ldr r0, .L3901+20
24015
- str r3, [sp]
24016
- ldr r3, [r7]
24017
- bic r7, r6, #255
24018
- ldr r1, [sp, #20]
24019
- lsls r7, r7, #2
24020
- str r3, [sp, #4]
24021
- mov r3, r6
24022
- ldr r2, [r4, #4]
24023
- bl printk
24024
- ldr r0, .L3901+24
24025
- add r1, fp, r7
24026
- movs r2, #4
24027
- mov r3, #256
24028
- bl rknand_print_hex
24029
- movs r2, #4
24030
- ldr r0, .L3901+28
24031
- ldr r3, [sp, #12]
24032
- adds r1, r3, r7
24033
- mov r3, #256
24034
- bl rknand_print_hex
24035
- movs r0, #0
24036
- bl flash_boot_enter_slc_mode
24037
- ldr r1, [r4, #4]
24038
- movs r0, #0
24039
- mov r2, r0
24040
- ldr r3, [sp, #16]
24041
- muls r1, r3, r1
24042
- bl FlashEraseBlock
24043
- ldr r3, [sp, #40]
24044
- cmp r3, #1
24045
- bls .L3870
24046
- ldr r1, [r4, #4]
24047
- movs r0, #0
24048
- ldr r3, [sp, #16]
24049
- mov r2, r0
24050
- mla r1, r1, r3, r3
24051
- bl FlashEraseBlock
24052
-.L3870:
24053
- movs r0, #0
24054
- bl flash_boot_exit_slc_mode
24055
- ldr r0, .L3901+32
24056
- ldr r1, [r4, #4]
24057
- bl printk
24058
- ldr r3, [sp, #44]
24059
- cmp r6, r3
24060
- bcc .L3858
24061
- b .L3871
24062
-.L3869:
24063
- ldr r2, [sp, #44]
24064
- adds r6, r6, #1
24065
- cmp r6, r2
24066
- bne .L3872
24067
-.L3871:
24068
- ldr r3, [sp, #24]
24069
- adds r3, r3, #1
24070
- str r3, [sp, #24]
24071
-.L3858:
24072
- ldr r3, [sp, #20]
24073
- adds r4, r4, #4
24074
- adds r3, r3, #1
24075
- str r3, [sp, #20]
24076
- cmp r3, #5
24077
- bne .L3873
24078
- ldr r0, [sp, #12]
24079
- bl ftl_free
24080
- ldr r3, [sp, #24]
24081
- clz r0, r3
24082
- lsrs r0, r0, #5
24083
- negs r0, r0
24084
- b .L3851
24085
-.L3877:
24086
- mov r0, #-1
24087
-.L3851:
24088
- add sp, sp, #132
24089
- @ sp needed
24090
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
24091
-.L3902:
24092
- .align 2
24093
-.L3901:
2409424259 .word .LC178
2409524260 .word .LC179
24096
- .word 1446522928
24097
- .word .LANCHOR4
2409824261 .word .LC180
2409924262 .word .LC181
2410024263 .word .LC182
2410124264 .word .LC183
2410224265 .word .LC184
24266
+ .word .LC173
24267
+.L3733:
24268
+ ldr r3, [sp, #28]
24269
+ add r2, r3, r8
24270
+ lsrs r2, r2, #2
24271
+ beq .L3730
24272
+ ldrb r0, [r4, #152] @ zero_extendqisi2
24273
+ adds r1, r2, #1
24274
+ add r3, r4, r1, lsl #1
24275
+ ldrh r3, [r3, #156]
24276
+ cbz r0, .L3731
24277
+ ldr r0, [r4, #2268]
24278
+ ldr r7, .L3768
24279
+ cmp r0, r7
24280
+ it eq
24281
+ moveq r3, r1
24282
+.L3731:
24283
+ add r3, r3, #1073741824
24284
+ subs r3, r3, #1
24285
+ lsls r3, r3, #2
24286
+ str r3, [sp, #56]
24287
+.L3730:
24288
+ movw r3, #61424
24289
+ str r3, [sp, #60]
24290
+ add r3, r4, r2, lsl #1
24291
+ ldrh r7, [r3, #156]
24292
+ ldrb r3, [r4, #152] @ zero_extendqisi2
24293
+ cbz r3, .L3732
24294
+ ldr r3, [r4, #2268]
24295
+ ldr r1, .L3768
24296
+ cmp r3, r1
24297
+ it eq
24298
+ moveq r7, r2
24299
+.L3732:
24300
+ ldr r3, [sp, #36]
24301
+ add r8, r8, #4
24302
+ ldr r2, .L3768+4
24303
+ uxth r8, r8
24304
+ mla r3, r7, r10, r3
24305
+ ldrb r0, [r2, #1218] @ zero_extendqisi2
24306
+ adds r7, r7, #1
24307
+ uxth r7, r7
24308
+ str r3, [sp, #52]
24309
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
24310
+ str r3, [sp, #48]
24311
+ bl FlashBchSel
24312
+ movs r0, #0
24313
+ bl flash_boot_enter_slc_mode
24314
+ ldr r2, [r4, #48]
24315
+ ldr r3, [sp, #52]
24316
+ ldrb r1, [r2, #9] @ zero_extendqisi2
24317
+ mov r0, r3
24318
+ bl __aeabi_uidiv
24319
+ add r3, sp, #56
24320
+ ldr r2, [sp, #24]
24321
+ mov r1, r0
24322
+ movs r0, #0
24323
+ bl FlashProgPage
24324
+ movs r0, #0
24325
+ bl flash_boot_exit_slc_mode
24326
+ ldr r0, [sp, #48]
24327
+ bl FlashBchSel
24328
+ mov r1, r10
24329
+ ldr r0, [sp, #36]
24330
+ bl __aeabi_uidiv
24331
+ mov r2, r7
24332
+ mov r1, r0
24333
+ movs r0, #0
24334
+ bl FlashPageProgMsbFFData
24335
+ ldr r3, [sp, #24]
24336
+ add r3, r3, #2048
24337
+ str r3, [sp, #24]
24338
+ b .L3729
24339
+.L3736:
24340
+ rsb r7, r3, #4
24341
+ ldrb r0, [r4, #152] @ zero_extendqisi2
24342
+ uxth r2, r7
24343
+ str r2, [sp, #36]
24344
+ ldr r2, [sp, #28]
24345
+ add r2, r2, r8
24346
+ lsrs r2, r2, #2
24347
+ add r1, r4, r2, lsl #1
24348
+ ldrh r1, [r1, #156]
24349
+ cbz r0, .L3735
24350
+ ldr r0, [r4, #2268]
24351
+ ldr r7, .L3768
24352
+ cmp r0, r7
24353
+ it eq
24354
+ moveq r1, r2
24355
+.L3735:
24356
+ ldr r2, [sp, #44]
24357
+ add r3, r3, r2
24358
+ ldr r2, [sp, #24]
24359
+ mla r3, r1, r2, r3
24360
+ ldr r2, [r4, #48]
24361
+ ldrb r1, [r2, #9] @ zero_extendqisi2
24362
+ ldr r2, .L3768+4
24363
+ str r3, [sp, #52]
24364
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
24365
+ ldrb r0, [r2, #1218] @ zero_extendqisi2
24366
+ str r1, [sp, #48]
24367
+ mov r7, r3
24368
+ bl FlashBchSel
24369
+ movs r0, #0
24370
+ bl flash_boot_enter_slc_mode
24371
+ ldr r3, [sp, #52]
24372
+ ldr r1, [sp, #48]
24373
+ mov r0, r3
24374
+ bl __aeabi_uidiv
24375
+ movs r3, #0
24376
+ mov r2, r10
24377
+ mov r1, r0
24378
+ mov r0, r3
24379
+ bl FlashReadPage
24380
+ movs r0, #0
24381
+ bl flash_boot_exit_slc_mode
24382
+ mov r0, r7
24383
+ bl FlashBchSel
24384
+ ldr r3, [sp, #36]
24385
+ add r8, r8, r3
24386
+ add r10, r10, r3, lsl #9
24387
+ uxth r8, r8
24388
+ movs r3, #0
24389
+ b .L3734
24390
+.L3737:
24391
+ ldr r2, [sp, #40]
24392
+ adds r6, r6, #1
24393
+ cmp r2, r6
24394
+ bne .L3739
24395
+ ldr r3, [sp, #20]
24396
+ adds r3, r3, #1
24397
+ str r3, [sp, #20]
24398
+ b .L3726
24399
+.L3745:
24400
+ mov r0, #-1
24401
+ b .L3718
24402
+.L3769:
24403
+ .align 2
24404
+.L3768:
24405
+ .word 1446522928
24406
+ .word .LANCHOR4
2410324407 .fnend
2410424408 .size write_idblock, .-write_idblock
2410524409 .align 1
2410624410 .global write_loader_lba
24411
+ .syntax unified
2410724412 .thumb
2410824413 .thumb_func
24414
+ .fpu softvfp
2410924415 .type write_loader_lba, %function
2411024416 write_loader_lba:
2411124417 .fnstart
2411224418 @ args = 0, pretend = 0, frame = 40
2411324419 @ frame_needed = 0, uses_anonymous_args = 0
2411424420 cmp r0, #64
24115
- push {r4, r5, r6, r7, r8, r9, lr}
24116
- .save {r4, r5, r6, r7, r8, r9, lr}
24421
+ push {r4, r5, r6, r7, r8, lr}
24422
+ .save {r4, r5, r6, r7, r8, lr}
2411724423 mov r5, r0
24118
- .pad #52
24119
- sub sp, sp, #52
24424
+ .pad #48
24425
+ sub sp, sp, #48
2412024426 mov r6, r1
2412124427 mov r8, r2
24122
- ldr r4, .L3925
24123
- bne .L3904
24428
+ ldr r4, .L3793
24429
+ bne .L3771
2412424430 ldr r2, [r2]
24125
- ldr r3, .L3925+4
24431
+ ldr r3, .L3793+4
2412624432 cmp r2, r3
24127
- bne .L3904
24128
- mov r0, #256000
24433
+ bne .L3771
2412924434 movs r3, #1
24130
- strb r3, [r4, #1012]
24435
+ mov r0, #256000
24436
+ strb r3, [r4, #1516]
2413124437 bl ftl_malloc
24132
- movs r1, #0
2413324438 mov r2, #256000
24134
- str r0, [r4, #1016]
24439
+ movs r1, #0
24440
+ str r0, [r4, #1520]
2413524441 bl ftl_memset
24136
- str r5, [r4, #1020]
24137
-.L3904:
24442
+ str r5, [r4, #1524]
24443
+.L3771:
2413824444 str r6, [sp]
2413924445 mov r3, r5
24140
- ldr r0, .L3925+8
24141
- ldr r1, [r4, #1016]
2414224446 ldr r2, [r8]
24447
+ ldr r1, [r4, #1520]
24448
+ ldr r0, .L3793+8
2414324449 bl printk
24144
- ldrb r3, [r4, #1012] @ zero_extendqisi2
24145
- ldr r9, .L3925
24450
+ ldrb r3, [r4, #1516] @ zero_extendqisi2
2414624451 cmp r3, #0
24147
- beq .L3903
24452
+ beq .L3770
2414824453 sub r0, r5, #64
24149
- ldr r7, [r9, #1016]
24454
+ ldr r7, [r4, #1520]
2415024455 cmp r0, #500
24151
- bcs .L3906
24456
+ bcs .L3773
2415224457 rsb r2, r5, #564
24153
- add r0, r7, r0, lsl #9
24154
- cmp r2, r6
2415524458 mov r1, r8
24459
+ cmp r2, r6
24460
+ add r0, r7, r0, lsl #9
2415624461 it cs
2415724462 movcs r2, r6
2415824463 lsls r2, r2, #9
2415924464 bl ftl_memcpy
24160
- b .L3907
24161
-.L3906:
24162
- cmp r5, #564
24163
- bcs .L3915
24164
-.L3907:
24165
- ldr r3, [r4, #1020]
24166
- cmp r3, r5
24167
- beq .L3913
24168
- ldr r2, .L3925
24465
+.L3774:
24466
+ ldr r3, [r4, #1524]
24467
+ cmp r5, r3
24468
+ beq .L3783
2416924469 movs r3, #0
24470
+ strb r3, [r4, #1516]
2417024471 mov r8, r3
24171
- strb r3, [r2, #1012]
24172
- cbz r7, .L3914
24472
+ cbz r7, .L3784
2417324473 mov r0, r7
2417424474 bl ftl_free
24175
-.L3914:
24176
- str r8, [r4, #1016]
24177
-.L3913:
24178
- add r5, r5, r6
24179
- str r5, [r4, #1020]
24180
- b .L3903
24181
-.L3915:
24182
- ldr r3, .L3925+12
24183
- ldr r0, [r9, #1020]
24184
- ldr r3, [r3, #44]
24475
+.L3784:
24476
+ str r8, [r4, #1520]
24477
+ b .L3783
24478
+.L3773:
24479
+ cmp r5, #564
24480
+ bcc .L3774
24481
+ ldr r3, .L3793+12
24482
+ ldr r0, [r4, #1524]
24483
+ ldr r3, [r3, #48]
2418524484 subs r0, r0, #64
2418624485 cmp r0, #500
24486
+ ldrb r3, [r3, #9] @ zero_extendqisi2
2418724487 it cs
2418824488 movcs r0, #500
24189
- ldrb r3, [r3, #9] @ zero_extendqisi2
2419024489 cmp r3, #4
24191
- beq .L3916
24490
+ beq .L3775
2419224491 movs r3, #2
2419324492 str r3, [sp, #8]
2419424493 movs r3, #3
....@@ -24199,50 +24498,52 @@
2419924498 str r3, [sp, #20]
2420024499 movs r3, #6
2420124500 str r3, [sp, #24]
24202
- b .L3909
24203
-.L3916:
24204
- movs r3, #0
24205
-.L3908:
24206
- add r1, sp, #8
24207
- lsls r2, r3, #1
24208
- cmp r0, #256
24209
- it ls
24210
- movls r2, r3
24211
- str r2, [r1, r3, lsl #2]
24212
- adds r3, r3, #1
24213
- cmp r3, #5
24214
- bne .L3908
24215
-.L3909:
24501
+.L3776:
2421624502 movw r3, #63872
24217
-.L3912:
24503
+.L3782:
2421824504 ldr r2, [r7, r3, lsl #2]
24219
- cbz r2, .L3910
24505
+ cbz r2, .L3780
2422024506 adds r3, r3, #128
2422124507 lsls r0, r3, #2
24222
- b .L3911
24223
-.L3910:
24224
- subs r3, r3, #1
24225
- cmp r3, #4096
24226
- bne .L3912
24227
- lsls r0, r0, #9
24228
-.L3911:
24508
+.L3781:
2422924509 mov r1, r7
2423024510 add r2, sp, #8
24231
- bl write_idblock
24232
- ldr r0, [r4, #1016]
2423324511 movs r7, #0
24234
- strb r7, [r4, #1012]
24512
+ bl write_idblock
24513
+ ldr r0, [r4, #1520]
24514
+ strb r7, [r4, #1516]
2423524515 bl ftl_free
24236
- str r7, [r4, #1016]
24237
- b .L3913
24238
-.L3903:
24239
- add sp, sp, #52
24516
+ str r7, [r4, #1520]
24517
+.L3783:
24518
+ add r5, r5, r6
24519
+ str r5, [r4, #1524]
24520
+.L3770:
24521
+ add sp, sp, #48
2424024522 @ sp needed
24241
- pop {r4, r5, r6, r7, r8, r9, pc}
24242
-.L3926:
24523
+ pop {r4, r5, r6, r7, r8, pc}
24524
+.L3775:
24525
+ movs r2, #0
24526
+ add r3, sp, #8
24527
+.L3779:
24528
+ cmp r0, #256
24529
+ itet hi
24530
+ lslhi r1, r2, #1
24531
+ strls r2, [r3, r2, lsl #2]
24532
+ strhi r1, [r3, r2, lsl #2]
24533
+ adds r2, r2, #1
24534
+ cmp r2, #5
24535
+ bne .L3779
24536
+ b .L3776
24537
+.L3780:
24538
+ subs r3, r3, #1
24539
+ cmp r3, #4096
24540
+ bne .L3782
24541
+ lsls r0, r0, #9
24542
+ b .L3781
24543
+.L3794:
2424324544 .align 2
24244
-.L3925:
24245
- .word .LANCHOR5
24545
+.L3793:
24546
+ .word .LANCHOR4
2424624547 .word -52655045
2424724548 .word .LC185
2424824549 .word .LANCHOR0
....@@ -24250,8 +24551,10 @@
2425024551 .size write_loader_lba, .-write_loader_lba
2425124552 .align 1
2425224553 .global FtlWrite
24554
+ .syntax unified
2425324555 .thumb
2425424556 .thumb_func
24557
+ .fpu softvfp
2425524558 .type FtlWrite, %function
2425624559 FtlWrite:
2425724560 .fnstart
....@@ -24259,534 +24562,526 @@
2425924562 @ frame_needed = 0, uses_anonymous_args = 0
2426024563 push {r4, r5, r6, r7, r8, lr}
2426124564 .save {r4, r5, r6, r7, r8, lr}
24262
- mov r5, r3
24565
+ mov r7, r3
2426324566 sub r3, r1, #64
24264
- mov r7, r0
24567
+ mov r5, r0
2426524568 cmp r3, #1984
2426624569 mov r4, r1
2426724570 mov r6, r2
24268
- bcs .L3928
24269
- cbnz r0, .L3928
24270
- mov r0, r1
24271
- mov r1, r2
24272
- mov r2, r5
24571
+ bcs .L3796
24572
+ cbnz r0, .L3796
24573
+ mov r2, r7
24574
+ mov r1, r6
24575
+ mov r0, r4
2427324576 bl write_loader_lba
24274
-.L3928:
24275
- mov r0, r7
24276
- mov r1, r4
24577
+.L3796:
24578
+ mov r3, r7
2427724579 mov r2, r6
24278
- mov r3, r5
24580
+ mov r1, r4
24581
+ mov r0, r5
2427924582 pop {r4, r5, r6, r7, r8, lr}
2428024583 b ftl_write
2428124584 .fnend
2428224585 .size FtlWrite, .-FtlWrite
2428324586 .align 1
2428424587 .global rknand_sys_storage_ioctl
24588
+ .syntax unified
2428524589 .thumb
2428624590 .thumb_func
24591
+ .fpu softvfp
2428724592 .type rknand_sys_storage_ioctl, %function
2428824593 rknand_sys_storage_ioctl:
2428924594 .fnstart
2429024595 @ args = 0, pretend = 0, frame = 520
2429124596 @ frame_needed = 0, uses_anonymous_args = 0
24292
- ldr r3, .L3988
24597
+ ldr r3, .L3856
2429324598 push {r4, r5, r6, r7, lr}
2429424599 .save {r4, r5, r6, r7, lr}
24295
- cmp r1, r3
24600
+ mov r4, r1
2429624601 .pad #524
2429724602 sub sp, sp, #524
24298
- mov r4, r1
2429924603 mov r5, r2
24300
- beq .L3931
24301
- bhi .L3932
24604
+ cmp r1, r3
24605
+ beq .L3799
24606
+ bhi .L3800
2430224607 subw r3, r3, #2086
2430324608 cmp r1, r3
24304
- beq .L3933
24305
- bhi .L3934
24609
+ beq .L3801
24610
+ bhi .L3802
2430624611 subs r3, r3, #238
2430724612 cmp r1, r3
24308
- beq .L3935
24613
+ beq .L3803
2430924614 adds r3, r3, #237
2431024615 cmp r1, r3
24311
- beq .L3936
24312
- b .L3966
24313
-.L3934:
24314
- ldr r3, .L3988+4
24616
+ beq .L3804
24617
+.L3834:
24618
+ mvn r4, #21
24619
+ b .L3797
24620
+.L3802:
24621
+ ldr r3, .L3856+4
2431524622 cmp r1, r3
24316
- beq .L3937
24623
+ beq .L3805
2431724624 adds r3, r3, #1
2431824625 cmp r1, r3
24319
- beq .L3938
24626
+ beq .L3806
2432024627 subs r3, r3, #124
2432124628 cmp r1, r3
24322
- bne .L3966
24323
- b .L3986
24324
-.L3932:
24325
- ldr r3, .L3988+8
24326
- cmp r1, r3
24327
- mov r6, r3
24328
- beq .L3940
24329
- bhi .L3941
24330
- subw r3, r3, #2526
24331
- cmp r1, r3
24332
- beq .L3931
24333
- adds r3, r3, #10
24334
- cmp r1, r3
24335
- beq .L3931
24336
- b .L3966
24337
-.L3941:
24338
- ldr r3, .L3988+12
24339
- cmp r1, r3
24340
- beq .L3940
24341
- bcc .L3942
24342
- adds r3, r3, #1
24343
- cmp r1, r3
24344
- beq .L3942
24345
- b .L3966
24346
-.L3936:
24347
- ldr r0, .L3988+16
24629
+ bne .L3834
24630
+ ldr r0, .L3856+8
2434824631 bl printk
24632
+ mov r2, #520
2434924633 mov r1, r5
24350
- mov r2, #520
24351
- mov r0, sp
24352
- bl rk_copy_from_user
24353
- cbz r0, .L3943
24354
-.L3949:
24355
- ldr r0, .L3988+20
24356
- bl printk
24357
- b .L3983
24358
-.L3943:
24359
- ldr r2, [sp]
24360
- ldr r3, .L3988+24
24361
- cmp r2, r3
24362
- beq .L3944
24363
-.L3946:
24364
- mov r4, #-1
24365
- b .L3945
24366
-.L3944:
24367
- ldr r3, [sp, #4]
24368
- cmp r3, #512
24369
- bhi .L3946
24370
- ldr r4, .L3988+28
24371
- mov r2, #512
24372
- mov r0, sp
24373
- ldr r1, [r4, #1024]
24374
- bl memcpy
24375
- ldr r2, [r4, #1028]
24376
- ldr r3, .L3988+32
24377
- cmp r2, r3
24378
- beq .L3947
24379
- movs r1, #0
24380
- add r0, sp, #64
24381
- movs r2, #128
24382
- str r1, [sp, #8]
24383
- str r1, [sp, #12]
24384
- bl memset
24385
-.L3947:
24386
- movs r1, #0
24387
- add r0, sp, #256
24388
- mov r2, #256
24389
- str r1, [sp, #16]
24390
- bl memset
24391
-.L3978:
24392
- mov r0, r5
24393
- mov r1, sp
24394
- mov r2, #520
24395
- bl rk_copy_to_user
24396
- cmp r0, #0
24397
- bne .L3983
24398
- b .L3982
24399
-.L3933:
24400
- ldr r0, .L3988+36
24401
- bl printk
24402
- mov r1, r5
24403
- mov r2, #520
2440424634 mov r0, sp
2440524635 bl rk_copy_from_user
2440624636 cmp r0, #0
24407
- bne .L3949
24637
+ bne .L3817
2440824638 ldr r2, [sp]
24409
- ldr r3, .L3988+24
24639
+ ldr r3, .L3856+12
2441024640 cmp r2, r3
24411
- bne .L3946
24412
- ldr r3, [sp, #4]
24413
- cmp r3, #512
24414
- bhi .L3946
24415
- ldr r2, .L3988+28
24416
- ldr r3, .L3988+32
24417
- ldr r1, [r2, #1028]
24418
- cmp r1, r3
24419
- bne .L3967
24420
- ldr r3, [sp, #12]
24421
- subs r1, r3, #1
24422
- cmp r1, #127
24423
- bhi .L3968
24424
- ldr r4, [r2, #1024]
24425
- add r1, sp, #64
24426
- add r0, r4, #64
24427
- str r3, [r4, #12]
24428
- ldr r2, [sp, #12]
24429
- bl memcpy
24430
- movs r0, #1
24431
- mov r1, r4
24432
- b .L3981
24433
-.L3938:
24434
- ldr r0, .L3988+40
24435
- bl printk
24436
- mov r1, r5
24437
- mov r2, #520
24438
- mov r0, sp
24439
- bl rk_copy_from_user
24440
- cmp r0, #0
24441
- bne .L3949
24442
- ldr r2, [sp]
24443
- ldr r3, .L3988+44
24444
- cmp r2, r3
24445
- bne .L3946
24446
- ldr r3, [sp, #4]
24447
- cmp r3, #512
24448
- bhi .L3946
24449
- ldr r5, .L3988+28
24450
- ldr r3, [r5, #1032]
24451
- cbnz r3, .L3950
24452
-.L3953:
24453
- movs r0, #0
24454
- b .L3930
24455
-.L3950:
24456
- ldr r3, [r5, #1036]
24457
- ldr r2, .L3988+48
24458
- ldr r1, [r3]
24459
- cmp r1, r2
24460
- beq .L3951
24461
- str r2, [r3]
24462
- mov r2, #504
24463
- ldr r3, .L3988+28
24464
- ldr r3, [r3, #1036]
24465
- str r2, [r3, #4]
24466
- movs r2, #0
24467
- str r2, [r3, #8]
24468
- str r2, [r3, #12]
24469
-.L3951:
24470
- ldr r1, [r5, #1036]
24471
- movs r4, #0
24472
- mov r0, r4
24473
- str r4, [r1, #16]
24474
- bl StorageSysDataStore
24475
- ldr r3, [r5, #1024]
24476
- ldr r2, .L3988+24
24477
- ldr r1, [r3]
24478
- cmp r1, r2
24479
- it ne
24480
- strne r2, [r3]
24481
- ldr r6, [r5, #1024]
24482
- itt ne
24483
- movne r2, #504
24484
- ldrne r3, .L3988+28
24485
- add r0, r6, #64
24486
- itt ne
24487
- ldrne r3, [r3, #1024]
24488
- strne r4, [r3, #8]
24489
- mov r4, #0
24490
- it ne
24491
- strne r2, [r3, #4]
24492
- movs r2, #128
24493
- mov r1, r4
24494
- str r4, [r6, #12]
24495
- bl memset
24496
- movs r0, #1
24497
- mov r1, r6
24498
- bl StorageSysDataStore
24499
- str r4, [r5, #1032]
24500
- str r4, [r5, #1028]
24501
- b .L3945
24502
-.L3937:
24503
- ldr r0, .L3988+52
24504
- bl printk
24505
- mov r1, r5
24506
- mov r2, #520
24507
- mov r0, sp
24508
- bl rk_copy_from_user
24509
- cmp r0, #0
24510
- bne .L3949
24511
- ldr r2, [sp]
24512
- ldr r3, .L3988+56
24513
- cmp r2, r3
24514
- bne .L3946
24515
- ldr r3, [sp, #4]
24516
- cmp r3, #512
24517
- bhi .L3946
24518
- ldr r5, .L3988+28
24519
- ldr r3, [r5, #1032]
24520
- cmp r3, #1
24521
- beq .L3953
24522
- ldr r2, [r5, #1036]
24523
- ldr r3, .L3988+48
24524
- ldr r1, [r2]
24525
- cmp r1, r3
24526
- beq .L3954
24527
- str r3, [r2]
24528
- mov r2, #504
24529
- ldr r3, [r5, #1036]
24530
- str r2, [r3, #4]
24531
- movs r2, #0
24532
- str r2, [r3, #8]
24533
- str r2, [r3, #12]
24534
-.L3954:
24535
- ldr r1, [r5, #1036]
24536
- movs r3, #1
24537
- movs r0, #0
24538
- str r3, [r1, #16]
24539
- bl StorageSysDataStore
24540
- ldr r3, [r5, #1024]
24541
- ldr r2, .L3988+24
24542
- ldr r1, [r3]
24543
- cmp r1, r2
24544
- beq .L3955
24545
- str r2, [r3]
24546
- mov r2, #504
24547
- ldr r3, .L3988+28
24548
- ldr r3, [r3, #1024]
24549
- str r2, [r3, #4]
24550
- movs r2, #0
24551
- str r2, [r3, #8]
24552
-.L3955:
24553
- ldr r6, [r5, #1024]
24554
- movs r4, #0
24555
- movs r2, #128
24556
- mov r1, r4
24557
- add r0, r6, #64
24558
- str r4, [r6, #12]
24559
- bl memset
24560
- movs r0, #1
24561
- mov r1, r6
24562
- bl StorageSysDataStore
24563
- movs r3, #1
24564
- str r3, [r5, #1032]
24565
- b .L3945
24566
-.L3986:
24567
- ldr r0, .L3988+60
24568
- bl printk
24569
- mov r1, r5
24570
- mov r2, #520
24571
- mov r0, sp
24572
- bl rk_copy_from_user
24573
- cmp r0, #0
24574
- bne .L3949
24575
- ldr r2, [sp]
24576
- ldr r3, .L3988+64
24577
- cmp r2, r3
24578
- bne .L3946
24641
+ bne .L3814
2457924642 ldr r2, [sp, #4]
2458024643 cmp r2, #512
24581
- bhi .L3946
24644
+ bhi .L3814
24645
+ ldr r1, .L3856+16
24646
+.L3854:
2458224647 add r0, sp, #8
24583
- ldr r1, .L3988+68
24584
- b .L3984
24585
-.L3931:
24586
- ldr r0, .L3988+72
24587
- cmp r4, r0
24588
- mov r7, r0
24589
- bne .L3957
24590
- ldr r0, .L3988+76
24591
- b .L3980
24592
-.L3989:
24593
- .align 2
24594
-.L3988:
24595
- .word 1074031656
24596
- .word 1074029694
24597
- .word 1074034192
24598
- .word 1074034194
24599
- .word .LC186
24600
- .word .LC187
24601
- .word 1263358532
24602
- .word .LANCHOR5
24603
- .word -1067903959
24604
- .word .LC188
24605
- .word .LC189
24606
- .word 1112753220
24607
- .word 1146313043
24608
- .word .LC190
24609
- .word 1112755781
24610
- .word .LC191
24611
- .word 1094995539
24612
- .word .LANCHOR5+1040
24613
- .word 1074031666
24614
- .word .LC192
24615
-.L3957:
24616
- ldr r3, .L3990
24617
- cmp r4, r3
24618
- ite eq
24619
- ldreq r0, .L3990+4
24620
- ldrne r0, .L3990+8
24621
-.L3980:
24648
+ bl memcpy
24649
+ b .L3848
24650
+.L3800:
24651
+ ldr r6, .L3856+20
24652
+ cmp r1, r6
24653
+ beq .L3808
24654
+ bhi .L3809
24655
+ ldr r3, .L3856+24
24656
+ cmp r1, r3
24657
+ beq .L3799
24658
+ adds r3, r3, #10
24659
+ cmp r1, r3
24660
+ bne .L3834
24661
+.L3799:
24662
+ ldr r7, .L3856+24
24663
+ cmp r4, r7
24664
+ bne .L3824
24665
+ ldr r0, .L3856+28
24666
+.L3850:
2462224667 bl printk
24623
- mov r1, r5
2462424668 mov r2, #520
24669
+ mov r1, r5
2462524670 mov r0, sp
2462624671 bl rk_copy_from_user
2462724672 cmp r0, #0
24628
- bne .L3949
24673
+ bne .L3817
2462924674 ldr r2, [sp]
24630
- ldr r3, .L3990+12
24675
+ ldr r3, .L3856+32
2463124676 cmp r2, r3
24632
- bne .L3983
24633
- ldr r3, .L3990
24634
- ldr r6, .L3990+16
24677
+ bne .L3853
24678
+ ldr r3, .L3856+36
24679
+ ldr r6, .L3856+40
2463524680 cmp r4, r3
24636
- bne .L3960
24637
- ldr r3, [r6, #1024]
24638
- mov r0, r5
24639
- mov r1, sp
24681
+ bne .L3827
24682
+ ldr r3, [r6, #1528]
2464024683 movs r2, #16
24684
+ mov r1, sp
24685
+ mov r0, r5
2464124686 ldr r3, [r3, #20]
2464224687 str r3, [sp, #4]
2464324688 strb r3, [sp, #8]
2464424689 bl rk_copy_to_user
2464524690 cmp r0, #0
24646
- beq .L3930
24647
- b .L3983
24648
-.L3960:
24649
- ldr r3, [r6, #1552]
24650
- cmp r3, #10
24651
- bhi .L3983
24652
- ldr r1, [r6, #1024]
24653
- ldr r3, [sp, #4]
24654
- ldr r2, [r1, #24]
24655
- cmp r2, r3
24656
- beq .L3961
24657
- cbz r2, .L3961
24658
- mov r1, r3
24659
- ldr r0, .L3990+20
24660
- bl printk
24661
- ldr r3, [r6, #1552]
24662
- adds r3, r3, #1
24663
- str r3, [r6, #1552]
24664
-.L3983:
24665
- mvn r0, #13
24666
- b .L3930
24667
-.L3961:
24668
- movs r2, #0
24669
- cmp r4, r7
24670
- str r2, [r6, #1552]
24671
- mov r0, #1
24672
- itet eq
24673
- moveq r3, r2
24674
- movne r2, #1
24675
- moveq r2, r3
24676
- str r3, [r1, #24]
24677
- str r2, [r1, #20]
24678
- bl StorageSysDataStore
24679
- adds r0, r0, #1
24680
- bne .L3982
24681
- b .L3987
24682
-.L3940:
24683
- ldr r0, .L3990+24
24684
- bl printk
24685
- mov r1, r5
24686
- mov r2, #520
24687
- mov r0, sp
24688
- bl rk_copy_from_user
24689
- cmp r0, #0
24690
- bne .L3949
24691
- ldr r2, [sp]
24692
- ldr r3, .L3990+28
24693
- cmp r2, r3
24694
- bne .L3946
24695
- ldr r2, [sp, #4]
24696
- cmp r2, #504
24697
- bhi .L3946
24698
- ldr r3, .L3990+16
24699
- cmp r4, r6
24700
- add r0, sp, #8
24701
- ite eq
24702
- ldreq r1, [r3, #1556]
24703
- ldrne r1, [r3, #1560]
24704
- adds r1, r1, #8
24705
-.L3984:
24706
- bl memcpy
24707
- b .L3978
24708
-.L3942:
24709
- ldr r0, .L3990+32
24710
- bl printk
24711
- mov r1, r5
24712
- mov r2, #520
24713
- mov r0, sp
24714
- bl rk_copy_from_user
24715
- cmp r0, #0
24716
- bne .L3949
24717
- ldr r2, [sp]
24718
- ldr r3, .L3990+28
24719
- cmp r2, r3
24720
- bne .L3946
24721
- ldr r2, [sp, #4]
24722
- cmp r2, #504
24723
- bhi .L3946
24724
- ldr r3, .L3990+36
24725
- adds r2, r2, #8
24726
- cmp r4, r3
24727
- ldr r4, .L3990+16
24728
- bne .L3965
24729
- mov r1, sp
24730
- ldr r0, [r4, #1556]
24731
- bl memcpy
24732
- movs r0, #2
24733
- ldr r1, [r4, #1556]
24734
- b .L3981
24735
-.L3965:
24736
- mov r1, sp
24737
- ldr r0, [r4, #1560]
24738
- bl memcpy
24739
- ldr r1, [r4, #1560]
24740
- movs r0, #3
24741
-.L3981:
24742
- bl StorageSysDataStore
24743
- mov r4, r0
24744
- b .L3945
24745
-.L3935:
24746
- bl rknand_dev_flush
24747
-.L3982:
24691
+ bne .L3853
24692
+.L3818:
2474824693 movs r4, #0
24749
- b .L3945
24750
-.L3987:
24751
- mvn r4, #1
24752
-.L3945:
24753
- ldr r0, .L3990+40
24754
- mov r1, r4
24755
- bl printk
24694
+.L3797:
2475624695 mov r0, r4
24757
- b .L3930
24758
-.L3966:
24759
- mvn r0, #21
24760
- b .L3930
24761
-.L3967:
24762
- mvn r0, #1
24763
- b .L3930
24764
-.L3968:
24765
- mvn r0, #2
24766
-.L3930:
2476724696 add sp, sp, #524
2476824697 @ sp needed
2476924698 pop {r4, r5, r6, r7, pc}
24770
-.L3991:
24699
+.L3809:
24700
+ ldr r3, .L3856+44
24701
+ cmp r1, r3
24702
+ beq .L3808
24703
+ bcc .L3810
24704
+ adds r3, r3, #1
24705
+ cmp r1, r3
24706
+ bne .L3834
24707
+.L3810:
24708
+ ldr r0, .L3856+48
24709
+ bl printk
24710
+ mov r2, #520
24711
+ mov r1, r5
24712
+ mov r0, sp
24713
+ bl rk_copy_from_user
24714
+ cbnz r0, .L3817
24715
+ ldr r2, [sp]
24716
+ ldr r3, .L3856+52
24717
+ cmp r2, r3
24718
+ bne .L3814
24719
+ ldr r2, [sp, #4]
24720
+ cmp r2, #504
24721
+ bhi .L3814
24722
+ ldr r3, .L3856+56
24723
+ mov r1, sp
24724
+ adds r2, r2, #8
24725
+ cmp r4, r3
24726
+ ldr r4, .L3856+40
24727
+ bne .L3833
24728
+ ldr r0, [r4, #2060]
24729
+ bl memcpy
24730
+ ldr r1, [r4, #2060]
24731
+ movs r0, #2
24732
+ b .L3851
24733
+.L3804:
24734
+ ldr r0, .L3856+60
24735
+ bl printk
24736
+ mov r2, #520
24737
+ mov r1, r5
24738
+ mov r0, sp
24739
+ bl rk_copy_from_user
24740
+ cbz r0, .L3811
24741
+.L3817:
24742
+ ldr r0, .L3856+64
24743
+ bl printk
24744
+.L3853:
24745
+ mvn r4, #13
24746
+ b .L3797
24747
+.L3811:
24748
+ ldr r2, [sp]
24749
+ ldr r3, .L3856+68
24750
+ cmp r2, r3
24751
+ beq .L3812
24752
+.L3814:
24753
+ mov r4, #-1
24754
+.L3813:
24755
+ mov r1, r4
24756
+ ldr r0, .L3856+72
24757
+ bl printk
24758
+ b .L3797
24759
+.L3812:
24760
+ ldr r3, [sp, #4]
24761
+ cmp r3, #512
24762
+ bhi .L3814
24763
+ ldr r4, .L3856+40
24764
+ mov r2, #512
24765
+ mov r0, sp
24766
+ ldr r1, [r4, #1528]
24767
+ bl memcpy
24768
+ ldr r2, [r4, #1532]
24769
+ ldr r3, .L3856+76
24770
+ cmp r2, r3
24771
+ beq .L3815
24772
+ movs r1, #0
24773
+ movs r2, #128
24774
+ add r0, sp, #64
24775
+ str r1, [sp, #8]
24776
+ str r1, [sp, #12]
24777
+ bl memset
24778
+.L3815:
24779
+ mov r2, #256
24780
+ movs r1, #0
24781
+ add r0, sp, r2
24782
+ str r1, [sp, #16]
24783
+ bl memset
24784
+.L3848:
24785
+ mov r2, #520
24786
+ mov r1, sp
24787
+ mov r0, r5
24788
+ bl rk_copy_to_user
24789
+ cmp r0, #0
24790
+ bne .L3853
24791
+.L3852:
24792
+ movs r4, #0
24793
+ b .L3813
24794
+.L3801:
24795
+ ldr r0, .L3856+80
24796
+ bl printk
24797
+ mov r2, #520
24798
+ mov r1, r5
24799
+ mov r0, sp
24800
+ bl rk_copy_from_user
24801
+ cmp r0, #0
24802
+ bne .L3817
24803
+ ldr r2, [sp]
24804
+ ldr r3, .L3856+68
24805
+ cmp r2, r3
24806
+ bne .L3814
24807
+ ldr r3, [sp, #4]
24808
+ cmp r3, #512
24809
+ bhi .L3814
24810
+ ldr r2, .L3856+40
24811
+ ldr r3, .L3856+76
24812
+ ldr r1, [r2, #1532]
24813
+ cmp r1, r3
24814
+ bne .L3835
24815
+ ldr r3, [sp, #12]
24816
+ subs r1, r3, #1
24817
+ cmp r1, #127
24818
+ bhi .L3836
24819
+ ldr r4, [r2, #1528]
24820
+ add r1, sp, #64
24821
+ str r3, [r4, #12]
24822
+ add r0, r4, #64
24823
+ ldr r2, [sp, #12]
24824
+ bl memcpy
24825
+ mov r1, r4
24826
+ movs r0, #1
24827
+.L3851:
24828
+ bl StorageSysDataStore
24829
+ mov r4, r0
24830
+ b .L3813
24831
+.L3806:
24832
+ ldr r0, .L3856+84
24833
+ bl printk
24834
+ mov r2, #520
24835
+ mov r1, r5
24836
+ mov r0, sp
24837
+ bl rk_copy_from_user
24838
+ cmp r0, #0
24839
+ bne .L3817
24840
+ ldr r2, [sp]
24841
+ ldr r3, .L3856+88
24842
+ cmp r2, r3
24843
+ bne .L3814
24844
+ ldr r3, [sp, #4]
24845
+ cmp r3, #512
24846
+ bhi .L3814
24847
+ ldr r5, .L3856+40
24848
+ ldr r3, [r5, #1536]
24849
+ cmp r3, #0
24850
+ beq .L3818
24851
+ ldr r3, [r5, #1540]
24852
+ ldr r2, .L3856+92
24853
+ ldr r1, [r3]
24854
+ cmp r1, r2
24855
+ beq .L3819
24856
+ str r2, [r3]
24857
+ mov r2, #504
24858
+ ldr r3, [r5, #1540]
24859
+ str r2, [r3, #4]
24860
+ movs r2, #0
24861
+ str r2, [r3, #8]
24862
+ str r2, [r3, #12]
24863
+.L3819:
24864
+ ldr r1, [r5, #1540]
24865
+ movs r4, #0
24866
+ mov r0, r4
24867
+ str r4, [r1, #16]
24868
+ bl StorageSysDataStore
24869
+ ldr r3, [r5, #1528]
24870
+ ldr r2, .L3856+68
24871
+ ldr r1, [r3]
24872
+ cmp r1, r2
24873
+ beq .L3820
24874
+ str r2, [r3]
24875
+ mov r2, #504
24876
+ ldr r3, [r5, #1528]
24877
+ str r2, [r3, #4]
24878
+ str r4, [r3, #8]
24879
+.L3820:
24880
+ ldr r6, [r5, #1528]
24881
+ movs r4, #0
24882
+ movs r2, #128
24883
+ mov r1, r4
24884
+ str r4, [r6, #12]
24885
+ add r0, r6, #64
24886
+ bl memset
24887
+ mov r1, r6
24888
+ movs r0, #1
24889
+ bl StorageSysDataStore
24890
+ str r4, [r5, #1536]
24891
+ str r4, [r5, #1532]
24892
+ b .L3813
24893
+.L3857:
2477124894 .align 2
24772
-.L3990:
24895
+.L3856:
24896
+ .word 1074031656
24897
+ .word 1074029694
24898
+ .word .LC191
24899
+ .word 1094995539
24900
+ .word .LANCHOR4+1544
24901
+ .word 1074034192
24902
+ .word 1074031666
24903
+ .word .LC192
24904
+ .word 1280262987
24905
+ .word 1074031676
24906
+ .word .LANCHOR4
24907
+ .word 1074034194
24908
+ .word .LC197
24909
+ .word 1145980246
24910
+ .word 1074034193
24911
+ .word .LC186
24912
+ .word .LC187
24913
+ .word 1263358532
24914
+ .word .LC198
24915
+ .word -1067903959
24916
+ .word .LC188
24917
+ .word .LC189
24918
+ .word 1112753220
24919
+ .word 1146313043
24920
+.L3805:
24921
+ ldr r0, .L3858
24922
+ bl printk
24923
+ mov r2, #520
24924
+ mov r1, r5
24925
+ mov r0, sp
24926
+ bl rk_copy_from_user
24927
+ cmp r0, #0
24928
+ bne .L3817
24929
+ ldr r2, [sp]
24930
+ ldr r3, .L3858+4
24931
+ cmp r2, r3
24932
+ bne .L3814
24933
+ ldr r3, [sp, #4]
24934
+ cmp r3, #512
24935
+ bhi .L3814
24936
+ ldr r5, .L3858+8
24937
+ ldr r3, [r5, #1536]
24938
+ cmp r3, #1
24939
+ beq .L3818
24940
+ ldr r2, [r5, #1540]
24941
+ ldr r3, .L3858+12
24942
+ ldr r1, [r2]
24943
+ cmp r1, r3
24944
+ beq .L3821
24945
+ str r3, [r2]
24946
+ mov r2, #504
24947
+ ldr r3, [r5, #1540]
24948
+ str r2, [r3, #4]
24949
+ movs r2, #0
24950
+ str r2, [r3, #8]
24951
+ str r2, [r3, #12]
24952
+.L3821:
24953
+ ldr r1, [r5, #1540]
24954
+ movs r3, #1
24955
+ movs r0, #0
24956
+ str r3, [r1, #16]
24957
+ bl StorageSysDataStore
24958
+ ldr r3, [r5, #1528]
24959
+ ldr r2, .L3858+16
24960
+ ldr r1, [r3]
24961
+ cmp r1, r2
24962
+ beq .L3822
24963
+ str r2, [r3]
24964
+ mov r2, #504
24965
+ ldr r3, [r5, #1528]
24966
+ str r2, [r3, #4]
24967
+ movs r2, #0
24968
+ str r2, [r3, #8]
24969
+.L3822:
24970
+ ldr r6, [r5, #1528]
24971
+ movs r4, #0
24972
+ movs r2, #128
24973
+ mov r1, r4
24974
+ str r4, [r6, #12]
24975
+ add r0, r6, #64
24976
+ bl memset
24977
+ mov r1, r6
24978
+ movs r0, #1
24979
+ bl StorageSysDataStore
24980
+ movs r3, #1
24981
+ str r3, [r5, #1536]
24982
+ b .L3813
24983
+.L3824:
24984
+ ldr r3, .L3858+20
24985
+ cmp r4, r3
24986
+ ite eq
24987
+ ldreq r0, .L3858+24
24988
+ ldrne r0, .L3858+28
24989
+ b .L3850
24990
+.L3827:
24991
+ ldr r3, [r6, #2056]
24992
+ cmp r3, #10
24993
+ bhi .L3853
24994
+ ldr r3, [r6, #1528]
24995
+ ldr r1, [sp, #4]
24996
+ ldr r2, [r3, #24]
24997
+ cmp r2, r1
24998
+ beq .L3828
24999
+ cbz r2, .L3828
25000
+ ldr r0, .L3858+32
25001
+ bl printk
25002
+ ldr r3, [r6, #2056]
25003
+ adds r3, r3, #1
25004
+ str r3, [r6, #2056]
25005
+ b .L3853
25006
+.L3828:
25007
+ cmp r4, r7
25008
+ mov r2, #0
25009
+ str r2, [r6, #2056]
25010
+ itt ne
25011
+ movne r2, #1
25012
+ strne r1, [r3, #24]
25013
+ mov r0, #1
25014
+ it eq
25015
+ streq r2, [r3, #20]
25016
+ mov r1, r3
25017
+ ite eq
25018
+ streq r2, [r3, #24]
25019
+ strne r2, [r3, #20]
25020
+ bl StorageSysDataStore
25021
+ adds r0, r0, #1
25022
+ bne .L3852
25023
+ mvn r4, #1
25024
+ b .L3813
25025
+.L3808:
25026
+ ldr r0, .L3858+36
25027
+ bl printk
25028
+ mov r2, #520
25029
+ mov r1, r5
25030
+ mov r0, sp
25031
+ bl rk_copy_from_user
25032
+ cmp r0, #0
25033
+ bne .L3817
25034
+ ldr r2, [sp]
25035
+ ldr r3, .L3858+40
25036
+ cmp r2, r3
25037
+ bne .L3814
25038
+ ldr r2, [sp, #4]
25039
+ cmp r2, #504
25040
+ bhi .L3814
25041
+ ldr r3, .L3858+8
25042
+ cmp r4, r6
25043
+ ite eq
25044
+ ldreq r1, [r3, #2060]
25045
+ ldrne r1, [r3, #2064]
25046
+ adds r1, r1, #8
25047
+ b .L3854
25048
+.L3833:
25049
+ ldr r0, [r4, #2064]
25050
+ bl memcpy
25051
+ ldr r1, [r4, #2064]
25052
+ movs r0, #3
25053
+ b .L3851
25054
+.L3803:
25055
+ bl rknand_dev_flush
25056
+ b .L3852
25057
+.L3835:
25058
+ mvn r4, #1
25059
+ b .L3797
25060
+.L3836:
25061
+ mvn r4, #2
25062
+ b .L3797
25063
+.L3859:
25064
+ .align 2
25065
+.L3858:
25066
+ .word .LC190
25067
+ .word 1112755781
25068
+ .word .LANCHOR4
25069
+ .word 1146313043
25070
+ .word 1263358532
2477325071 .word 1074031676
2477425072 .word .LC193
2477525073 .word .LC194
24776
- .word 1280262987
24777
- .word .LANCHOR5
2477825074 .word .LC195
2477925075 .word .LC196
2478025076 .word 1145980246
24781
- .word .LC197
24782
- .word 1074034193
24783
- .word .LC198
2478425077 .fnend
2478525078 .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl
2478625079 .align 1
2478725080 .global rk_ftl_storage_sys_init
25081
+ .syntax unified
2478825082 .thumb
2478925083 .thumb_func
25084
+ .fpu softvfp
2479025085 .type rk_ftl_storage_sys_init, %function
2479125086 rk_ftl_storage_sys_init:
2479225087 .fnstart
....@@ -24794,67 +25089,68 @@
2479425089 @ frame_needed = 0, uses_anonymous_args = 0
2479525090 push {r3, r4, r5, r6, r7, lr}
2479625091 .save {r3, r4, r5, r6, r7, lr}
24797
- mov r2, #512
24798
- ldr r4, .L4001
2479925092 mov r3, #-1
25093
+ ldr r4, .L3869
2480025094 movs r5, #0
24801
- add r0, r4, #1040
24802
- ldr r1, [r4, #996]
24803
- str r3, [r4, #1020]
25095
+ mov r2, #512
25096
+ ldr r1, [r4, #1500]
25097
+ add r0, r4, #1544
25098
+ str r3, [r4, #1524]
25099
+ strb r5, [r4, #1516]
2480425100 add r3, r1, #512
24805
- str r3, [r4, #1024]
24806
- str r1, [r4, #1036]
25101
+ str r1, [r4, #1540]
25102
+ str r3, [r4, #1528]
2480725103 add r3, r1, #1024
2480825104 add r1, r1, #1536
24809
- str r3, [r4, #1556]
24810
- strb r5, [r4, #1012]
24811
- str r5, [r4, #1016]
24812
- str r5, [r4, #1564]
24813
- str r1, [r4, #1560]
25105
+ str r3, [r4, #2060]
25106
+ str r5, [r4, #1520]
25107
+ str r5, [r4, #2068]
25108
+ str r1, [r4, #2064]
2481425109 bl ftl_memcpy
24815
- ldr r6, [r4, #1036]
24816
- str r5, [r4, #1028]
24817
- str r5, [r4, #1552]
24818
- ldr r3, [r6, #16]
25110
+ ldr r6, [r4, #1540]
25111
+ str r5, [r4, #1532]
25112
+ str r5, [r4, #2056]
2481925113 ldr r7, [r6, #508]
24820
- str r3, [r4, #1032]
24821
- cbz r7, .L3993
24822
- mov r0, r6
25114
+ ldr r3, [r6, #16]
25115
+ str r3, [r4, #1536]
25116
+ cbz r7, .L3861
2482325117 mov r1, #508
25118
+ mov r0, r6
2482425119 bl js_hash
2482525120 cmp r7, r0
24826
- beq .L3993
25121
+ beq .L3861
2482725122 str r5, [r6, #16]
24828
- ldr r0, .L4001+4
24829
- str r5, [r4, #1032]
25123
+ ldr r0, .L3869+4
25124
+ str r5, [r4, #1536]
2483025125 bl printk
24831
-.L3993:
24832
- ldr r3, [r4, #1032]
24833
- cbz r3, .L3994
24834
- ldr r2, .L4001+8
24835
- ldr r3, .L4001
24836
- str r2, [r3, #1028]
24837
-.L3994:
24838
- ldr r1, [r4, #1556]
25126
+.L3861:
25127
+ ldr r3, [r4, #1536]
25128
+ cbz r3, .L3862
25129
+ ldr r3, .L3869+8
25130
+ str r3, [r4, #1532]
25131
+.L3862:
25132
+ ldr r1, [r4, #2060]
2483925133 movs r0, #2
2484025134 bl StorageSysDataLoad
24841
- ldr r1, [r4, #1560]
25135
+ ldr r1, [r4, #2064]
2484225136 movs r0, #3
2484325137 bl StorageSysDataLoad
2484425138 pop {r3, r4, r5, r6, r7, lr}
2484525139 b rknand_sys_storage_init
24846
-.L4002:
25140
+.L3870:
2484725141 .align 2
24848
-.L4001:
24849
- .word .LANCHOR5
25142
+.L3869:
25143
+ .word .LANCHOR4
2485025144 .word .LC199
2485125145 .word -1067903959
2485225146 .fnend
2485325147 .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init
2485425148 .align 1
2485525149 .global StorageSysDataDeInit
25150
+ .syntax unified
2485625151 .thumb
2485725152 .thumb_func
25153
+ .fpu softvfp
2485825154 .type StorageSysDataDeInit, %function
2485925155 StorageSysDataDeInit:
2486025156 .fnstart
....@@ -24867,104 +25163,104 @@
2486725163 .size StorageSysDataDeInit, .-StorageSysDataDeInit
2486825164 .align 1
2486925165 .global rk_ftl_vendor_storage_init
25166
+ .syntax unified
2487025167 .thumb
2487125168 .thumb_func
25169
+ .fpu softvfp
2487225170 .type rk_ftl_vendor_storage_init, %function
2487325171 rk_ftl_vendor_storage_init:
2487425172 .fnstart
2487525173 @ args = 0, pretend = 0, frame = 0
2487625174 @ frame_needed = 0, uses_anonymous_args = 0
24877
- push {r4, r5, r6, r7, r8, r9, r10, lr}
24878
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
25175
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
25176
+ .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
2487925177 mov r0, #65536
25178
+ ldr r6, .L3880
2488025179 bl ftl_malloc
24881
- ldr r6, .L4013
24882
- str r0, [r6, #1568]
25180
+ str r0, [r6, #2072]
2488325181 cmp r0, #0
24884
- beq .L4010
25182
+ beq .L3878
25183
+ ldr r10, .L3880+4
2488525184 mov r8, #0
24886
- ldr r9, .L4013+8
24887
- mov r10, r6
25185
+ ldr r9, .L3880+8
2488825186 mov r4, r8
2488925187 mov r7, r8
24890
-.L4008:
24891
- lsls r0, r7, #7
25188
+.L3876:
25189
+ ldr r2, [r6, #2072]
2489225190 movs r1, #128
24893
- ldr r2, [r6, #1568]
25191
+ lsls r0, r7, #7
2489425192 bl FlashBootVendorRead
2489525193 cmp r0, #0
24896
- bne .L4006
24897
- ldr r3, [r10, #1568]
24898
- ldr r0, .L4013+4
24899
- add r2, r3, #65280
24900
- adds r2, r2, #252
24901
- ldr r1, [r3]
24902
- ldr r3, [r3, #4]
24903
- ldr r2, [r2]
25194
+ bne .L3874
25195
+ ldr r1, [r6, #2072]
25196
+ movw fp, #65532
25197
+ mov r0, r10
25198
+ ldr r3, [r1, #4]
25199
+ ldr r2, [r1, fp]
25200
+ ldr r1, [r1]
2490425201 bl printk
24905
- ldr r5, [r10, #1568]
25202
+ ldr r5, [r6, #2072]
2490625203 ldr r3, [r5]
2490725204 cmp r3, r9
24908
- bne .L4007
24909
- add r3, r5, #65280
25205
+ bne .L3875
25206
+ ldr r3, [r5, fp]
2491025207 ldr r2, [r5, #4]
24911
- adds r3, r3, #252
24912
- ldr r3, [r3]
2491325208 cmp r3, r2
24914
- bne .L4007
24915
- cmp r4, r3
24916
- itt cc
24917
- movcc r8, r7
24918
- movcc r4, r3
24919
-.L4007:
24920
- cbnz r7, .L4012
24921
- movs r7, #1
24922
- b .L4008
24923
-.L4012:
24924
- cbz r4, .L4009
24925
- lsl r0, r8, #7
24926
- movs r1, #128
25209
+ bne .L3875
25210
+ cmp r3, r4
25211
+ itt hi
25212
+ movhi r8, r7
25213
+ movhi r4, r3
25214
+.L3875:
25215
+ adds r7, r7, #1
25216
+ cmp r7, #2
25217
+ bne .L3876
25218
+ cbz r4, .L3877
2492725219 mov r2, r5
25220
+ movs r1, #128
25221
+ lsl r0, r8, #7
2492825222 bl FlashBootVendorRead
24929
- cbnz r0, .L4006
24930
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
24931
-.L4009:
24932
- mov r0, r5
24933
- mov r1, r4
25223
+ cbnz r0, .L3874
25224
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
25225
+.L3877:
2493425226 mov r2, #65536
25227
+ mov r1, r4
25228
+ mov r0, r5
2493525229 bl memset
24936
- ldr r3, .L4013+8
24937
- str r7, [r5, #4]
25230
+ movs r3, #1
25231
+ movw r2, #65532
25232
+ str r3, [r5, #4]
2493825233 mov r0, r4
24939
- str r3, [r5]
24940
- movw r3, #65532
24941
- str r7, [r5, r3]
25234
+ str r9, [r5]
25235
+ str r3, [r5, r2]
2494225236 movw r3, #64504
2494325237 strh r4, [r5, #12] @ movhi
2494425238 strh r3, [r5, #14] @ movhi
24945
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
24946
-.L4006:
24947
- ldr r0, [r6, #1568]
25239
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
25240
+.L3874:
25241
+ ldr r0, [r6, #2072]
2494825242 bl kfree
2494925243 movs r3, #0
2495025244 mov r0, #-1
24951
- str r3, [r6, #1568]
24952
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
24953
-.L4010:
25245
+ str r3, [r6, #2072]
25246
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
25247
+.L3878:
2495425248 mvn r0, #11
24955
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
24956
-.L4014:
25249
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
25250
+.L3881:
2495725251 .align 2
24958
-.L4013:
24959
- .word .LANCHOR5
25252
+.L3880:
25253
+ .word .LANCHOR4
2496025254 .word .LC200
2496125255 .word 1380668996
2496225256 .fnend
2496325257 .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init
2496425258 .align 1
2496525259 .global rk_ftl_vendor_read
25260
+ .syntax unified
2496625261 .thumb
2496725262 .thumb_func
25263
+ .fpu softvfp
2496825264 .type rk_ftl_vendor_read, %function
2496925265 rk_ftl_vendor_read:
2497025266 .fnstart
....@@ -24972,46 +25268,50 @@
2497225268 @ frame_needed = 0, uses_anonymous_args = 0
2497325269 push {r3, r4, r5, r6, r7, lr}
2497425270 .save {r3, r4, r5, r6, r7, lr}
24975
- ldr r3, .L4021
24976
- ldr r5, [r3, #1568]
24977
- cbz r5, .L4020
24978
- ldrh r7, [r5, #10]
24979
- movs r3, #0
24980
-.L4017:
24981
- cmp r3, r7
24982
- bcs .L4020
24983
- add r6, r5, r3, lsl #3
24984
- ldrh r4, [r6, #16]
24985
- cmp r4, r0
24986
- bne .L4018
24987
- ldrh r3, [r6, #20]
25271
+ mov r7, r0
25272
+ ldr r3, .L3888
2498825273 mov r0, r1
24989
- cmp r2, r3
25274
+ ldr r5, [r3, #2072]
25275
+ cbz r5, .L3887
25276
+ ldrh r6, [r5, #10]
25277
+ movs r3, #0
25278
+.L3884:
25279
+ cmp r3, r6
25280
+ bcc .L3886
25281
+.L3887:
25282
+ mov r0, #-1
25283
+ pop {r3, r4, r5, r6, r7, pc}
25284
+.L3886:
25285
+ add r1, r5, r3, lsl #3
25286
+ ldrh r4, [r1, #16]
25287
+ cmp r4, r7
25288
+ bne .L3885
25289
+ ldrh r4, [r1, #20]
25290
+ ldrh r1, [r1, #18]
25291
+ cmp r4, r2
2499025292 it cs
24991
- movcs r2, r3
24992
- ldrh r3, [r6, #18]
24993
- mov r4, r2
24994
- add r3, r3, #1024
24995
- adds r1, r5, r3
25293
+ movcs r4, r2
25294
+ add r1, r1, #1024
25295
+ mov r2, r4
25296
+ add r1, r1, r5
2499625297 bl memcpy
2499725298 mov r0, r4
2499825299 pop {r3, r4, r5, r6, r7, pc}
24999
-.L4018:
25300
+.L3885:
2500025301 adds r3, r3, #1
25001
- b .L4017
25002
-.L4020:
25003
- mov r0, #-1
25004
- pop {r3, r4, r5, r6, r7, pc}
25005
-.L4022:
25302
+ b .L3884
25303
+.L3889:
2500625304 .align 2
25007
-.L4021:
25008
- .word .LANCHOR5
25305
+.L3888:
25306
+ .word .LANCHOR4
2500925307 .fnend
2501025308 .size rk_ftl_vendor_read, .-rk_ftl_vendor_read
2501125309 .align 1
2501225310 .global rk_ftl_vendor_write
25311
+ .syntax unified
2501325312 .thumb
2501425313 .thumb_func
25314
+ .fpu softvfp
2501525315 .type rk_ftl_vendor_write, %function
2501625316 rk_ftl_vendor_write:
2501725317 .fnstart
....@@ -25019,119 +25319,89 @@
2501925319 @ frame_needed = 0, uses_anonymous_args = 0
2502025320 push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2502125321 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
25022
- mov r9, r2
25023
- ldr r2, .L4045
25322
+ mov r8, r2
25323
+ ldr r2, .L3910
2502425324 .pad #28
2502525325 sub sp, sp, #28
25026
- mov ip, r0
2502725326 mov r3, r1
25028
- ldr r4, [r2, #1568]
25327
+ ldr r4, [r2, #2072]
2502925328 cmp r4, #0
25030
- beq .L4038
25031
- add r7, r9, #63
25032
- ldrh r1, [r4, #8]
25329
+ beq .L3905
2503325330 ldrh r2, [r4, #10]
25034
- bic r7, r7, #63
25035
- movs r6, #0
25331
+ add r6, r8, #63
25332
+ ldrh r1, [r4, #8]
25333
+ bic r6, r6, #63
25334
+ movs r7, #0
2503625335 str r1, [sp, #4]
25037
-.L4025:
25038
- cmp r6, r2
25039
- bcs .L4043
25040
- add r5, r4, r6, lsl #3
25041
- ldrh r1, [r5, #16]
25042
- cmp r1, ip
25043
- bne .L4026
25044
- ldrh r1, [r5, #20]
25045
- add fp, r4, #1024
25046
- adds r1, r1, #63
25047
- bic r1, r1, #63
25048
- str r1, [sp, #8]
25049
- cmp r9, r1
25050
- bls .L4027
25336
+.L3892:
25337
+ cmp r7, r2
25338
+ bcc .L3900
2505125339 ldrh r1, [r4, #14]
25052
- cmp r1, r7
25053
- bcc .L4038
25054
- ldrh r8, [r5, #18]
25055
- subs r2, r2, #1
25056
- str r2, [sp, #12]
25057
-.L4028:
25058
- ldr r2, [sp, #12]
25059
- adds r5, r5, #8
25060
- cmp r6, r2
25061
- bcs .L4044
25062
- ldrh r2, [r5, #16]
25063
- add r0, fp, r8
25064
- ldrh r1, [r5, #18]
25065
- adds r6, r6, #1
25066
- strh r8, [r5, #10] @ movhi
25067
- strh r2, [r5, #8] @ movhi
25068
- add r1, r1, fp
25069
- ldrh r2, [r5, #20]
25070
- str r3, [sp, #20]
25071
- add r10, r2, #63
25072
- str ip, [sp, #16]
25073
- bic r10, r10, #63
25074
- strh r2, [r5, #12] @ movhi
25075
- add r8, r8, r10
25076
- mov r2, r10
25077
- bl memcpy
25078
- ldr r3, [sp, #20]
25079
- ldr ip, [sp, #16]
25080
- b .L4028
25081
-.L4044:
25082
- add r6, r4, r6, lsl #3
25083
- uxth r8, r8
25084
- add r0, fp, r8
25085
- mov r1, r3
25086
- strh r8, [r6, #18] @ movhi
25087
- mov r2, r9
25088
- strh ip, [r6, #16] @ movhi
25089
- uxth r7, r7
25090
- strh r9, [r6, #20] @ movhi
25091
- add r8, r8, r7
25092
- bl memcpy
25093
- ldrh r5, [r4, #14]
25094
- strh r8, [r4, #12] @ movhi
25095
- ldr r3, [sp, #8]
25096
- add r3, r3, r5
25097
- subs r7, r3, r7
25098
- strh r7, [r4, #14] @ movhi
25099
- b .L4042
25100
-.L4027:
25101
- ldrh r0, [r5, #18]
25102
- mov r1, r3
25103
- mov r2, r9
25104
- add r0, r0, fp
25105
- bl memcpy
25106
- strh r9, [r5, #20] @ movhi
25107
- b .L4042
25108
-.L4026:
25109
- adds r6, r6, #1
25110
- b .L4025
25111
-.L4043:
25112
- ldrh r1, [r4, #14]
25113
- cmp r1, r7
25114
- bcc .L4038
25340
+ cmp r6, r1
25341
+ bhi .L3905
2511525342 add r2, r4, r2, lsl #3
25116
- uxth r7, r7
25117
- subs r1, r1, r7
25118
- strh ip, [r2, #16] @ movhi
25343
+ uxth r6, r6
25344
+ strh r0, [r2, #16] @ movhi
2511925345 ldrh r0, [r4, #12]
25120
- strh r9, [r2, #20] @ movhi
25346
+ strh r8, [r2, #20] @ movhi
2512125347 strh r0, [r2, #18] @ movhi
25122
- add r0, r0, r7
25123
- strh r1, [r4, #14] @ movhi
25124
- mov r1, r3
25348
+ add r0, r0, r6
25349
+ subs r6, r1, r6
2512525350 strh r0, [r4, #12] @ movhi
25351
+ strh r6, [r4, #14] @ movhi
25352
+ mov r1, r3
2512625353 ldrh r0, [r2, #18]
25127
- mov r2, r9
25354
+ mov r2, r8
2512825355 add r0, r0, #1024
2512925356 add r0, r0, r4
2513025357 bl memcpy
2513125358 ldrh r3, [r4, #10]
2513225359 adds r3, r3, #1
2513325360 strh r3, [r4, #10] @ movhi
25134
-.L4042:
25361
+ b .L3909
25362
+.L3900:
25363
+ add r5, r4, r7, lsl #3
25364
+ ldrh r1, [r5, #16]
25365
+ cmp r1, r0
25366
+ str r1, [sp, #8]
25367
+ bne .L3893
25368
+ ldrh r1, [r5, #20]
25369
+ add fp, r4, #1024
25370
+ adds r1, r1, #63
25371
+ bic r1, r1, #63
25372
+ cmp r8, r1
25373
+ str r1, [sp, #12]
25374
+ bls .L3894
25375
+ ldrh r1, [r4, #14]
25376
+ cmp r6, r1
25377
+ bhi .L3905
25378
+ ldrh r10, [r5, #18]
25379
+ subs r2, r2, #1
25380
+ str r2, [sp, #16]
25381
+.L3895:
25382
+ ldr r2, [sp, #16]
25383
+ adds r5, r5, #8
25384
+ cmp r7, r2
25385
+ bcc .L3896
25386
+ ldrh r2, [sp, #8]
25387
+ add r7, r4, r7, lsl #3
25388
+ uxth r5, r10
25389
+ mov r1, r3
25390
+ strh r8, [r7, #20] @ movhi
25391
+ uxtah r0, fp, r10
25392
+ strh r2, [r7, #16] @ movhi
25393
+ mov r2, r8
25394
+ strh r5, [r7, #18] @ movhi
25395
+ bl memcpy
25396
+ uxth r3, r6
25397
+ ldrh r6, [r4, #14]
25398
+ add r5, r5, r3
25399
+ subs r6, r6, r3
25400
+ ldr r3, [sp, #12]
25401
+ strh r5, [r4, #12] @ movhi
25402
+ add r6, r6, r3
25403
+ strh r6, [r4, #14] @ movhi
25404
+.L3909:
2513525405 ldr r3, [r4, #4]
2513625406 movw r2, #65532
2513725407 movs r1, #128
....@@ -25150,23 +25420,54 @@
2515025420 lsls r0, r3, #7
2515125421 bl FlashBootVendorWrite
2515225422 movs r0, #0
25153
- b .L4024
25154
-.L4038:
25155
- mov r0, #-1
25156
-.L4024:
25423
+.L3890:
2515725424 add sp, sp, #28
2515825425 @ sp needed
2515925426 pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
25160
-.L4046:
25427
+.L3896:
25428
+ ldrh r9, [r5, #20]
25429
+ add r0, fp, r10
25430
+ ldrh r2, [r5, #16]
25431
+ adds r7, r7, #1
25432
+ ldrh r1, [r5, #18]
25433
+ strh r9, [r5, #12] @ movhi
25434
+ add r9, r9, #63
25435
+ bic r9, r9, #63
25436
+ strh r2, [r5, #8] @ movhi
25437
+ strh r10, [r5, #10] @ movhi
25438
+ mov r2, r9
25439
+ add r1, r1, fp
25440
+ str r3, [sp, #20]
25441
+ add r10, r10, r9
25442
+ bl memcpy
25443
+ ldr r3, [sp, #20]
25444
+ b .L3895
25445
+.L3894:
25446
+ ldrh r0, [r5, #18]
25447
+ mov r2, r8
25448
+ mov r1, r3
25449
+ add r0, r0, fp
25450
+ bl memcpy
25451
+ strh r8, [r5, #20] @ movhi
25452
+ b .L3909
25453
+.L3893:
25454
+ adds r7, r7, #1
25455
+ b .L3892
25456
+.L3905:
25457
+ mov r0, #-1
25458
+ b .L3890
25459
+.L3911:
2516125460 .align 2
25162
-.L4045:
25163
- .word .LANCHOR5
25461
+.L3910:
25462
+ .word .LANCHOR4
2516425463 .fnend
2516525464 .size rk_ftl_vendor_write, .-rk_ftl_vendor_write
2516625465 .align 1
2516725466 .global rk_ftl_vendor_storage_ioctl
25467
+ .syntax unified
2516825468 .thumb
2516925469 .thumb_func
25470
+ .fpu softvfp
2517025471 .type rk_ftl_vendor_storage_ioctl, %function
2517125472 rk_ftl_vendor_storage_ioctl:
2517225473 .fnstart
....@@ -25180,83 +25481,83 @@
2518025481 bl ftl_malloc
2518125482 mov r4, r0
2518225483 cmp r0, #0
25183
- beq .L4056
25184
- ldr r3, .L4063
25484
+ beq .L3920
25485
+ ldr r3, .L3927
2518525486 cmp r6, r3
25186
- beq .L4050
25487
+ beq .L3915
2518725488 adds r3, r3, #1
2518825489 cmp r6, r3
25189
- beq .L4051
25190
- b .L4062
25191
-.L4050:
25192
- mov r1, r5
25490
+ beq .L3916
25491
+.L3926:
25492
+ mvn r5, #13
25493
+ b .L3914
25494
+.L3915:
2519325495 movs r2, #8
25496
+ mov r1, r5
2519425497 bl rk_copy_from_user
2519525498 cmp r0, #0
25196
- bne .L4062
25499
+ bne .L3926
2519725500 ldr r2, [r4]
25198
- ldr r3, .L4063+4
25501
+ ldr r3, .L3927+4
2519925502 cmp r2, r3
25200
- beq .L4053
25201
-.L4054:
25503
+ beq .L3918
25504
+.L3919:
2520225505 mov r5, #-1
25203
- b .L4049
25204
-.L4053:
25205
- ldrh r0, [r4, #4]
25206
- add r1, r4, #8
25506
+.L3914:
25507
+ mov r0, r4
25508
+ bl kfree
25509
+.L3912:
25510
+ mov r0, r5
25511
+ pop {r4, r5, r6, pc}
25512
+.L3918:
2520725513 ldrh r2, [r4, #6]
25514
+ add r1, r4, #8
25515
+ ldrh r0, [r4, #4]
2520825516 bl rk_ftl_vendor_read
2520925517 adds r3, r0, #1
25210
- beq .L4054
25518
+ beq .L3919
2521125519 uxth r2, r0
2521225520 strh r0, [r4, #6] @ movhi
2521325521 mov r1, r4
25214
- mov r0, r5
2521525522 adds r2, r2, #8
25523
+ mov r0, r5
2521625524 bl rk_copy_to_user
2521725525 cmp r0, #0
25218
- ite eq
25219
- moveq r5, #0
25220
- mvnne r5, #13
25221
- b .L4049
25222
-.L4051:
25223
- mov r1, r5
25526
+ bne .L3926
25527
+.L3922:
25528
+ mov r5, r0
25529
+ b .L3914
25530
+.L3916:
2522425531 movs r2, #8
25532
+ mov r1, r5
2522525533 bl rk_copy_from_user
25226
- cbnz r0, .L4062
25534
+ cmp r0, #0
25535
+ bne .L3926
2522725536 ldr r2, [r4]
25228
- ldr r3, .L4063+4
25537
+ ldr r3, .L3927+4
2522925538 cmp r2, r3
25230
- bne .L4054
25539
+ bne .L3919
2523125540 ldrh r2, [r4, #6]
2523225541 movw r3, #4087
2523325542 cmp r2, r3
25234
- bhi .L4054
25235
- mov r0, r4
25236
- mov r1, r5
25543
+ bhi .L3919
2523725544 adds r2, r2, #8
25238
- bl rk_copy_from_user
25239
- cbnz r0, .L4062
25240
- ldrh r0, [r4, #4]
25241
- add r1, r4, #8
25242
- ldrh r2, [r4, #6]
25243
- bl rk_ftl_vendor_write
25244
- mov r5, r0
25245
- b .L4049
25246
-.L4062:
25247
- mvn r5, #13
25248
-.L4049:
25545
+ mov r1, r5
2524925546 mov r0, r4
25250
- bl kfree
25251
- b .L4048
25252
-.L4056:
25547
+ bl rk_copy_from_user
25548
+ cmp r0, #0
25549
+ bne .L3926
25550
+ ldrh r2, [r4, #6]
25551
+ add r1, r4, #8
25552
+ ldrh r0, [r4, #4]
25553
+ bl rk_ftl_vendor_write
25554
+ b .L3922
25555
+.L3920:
2525325556 mov r5, #-1
25254
-.L4048:
25255
- mov r0, r5
25256
- pop {r4, r5, r6, pc}
25257
-.L4064:
25557
+ b .L3912
25558
+.L3928:
2525825559 .align 2
25259
-.L4063:
25560
+.L3927:
2526025561 .word 1074034177
2526125562 .word 1448232273
2526225563 .fnend
....@@ -25270,6 +25571,8 @@
2527025571 .global gSnSectorData
2527125572 .global gpDrmKeyInfo
2527225573 .global gpBootConfig
25574
+ .global ftl_dma32_buffer_size
25575
+ .global ftl_dma32_buffer
2527325576 .global gLoaderBootInfo
2527425577 .global RK29_NANDC1_REG_BASE
2527525578 .global RK29_NANDC_REG_BASE
....@@ -25505,18 +25808,11 @@
2550525808 .global IDByte
2550625809 .global read_retry_cur_offset
2550725810 .section .rodata
25508
- .align 2
25509
-.LANCHOR3 = . + 0
25510
- .type __func__.20390, %object
25511
- .size __func__.20390, 11
25512
-__func__.20390:
25811
+ .set .LANCHOR3,. + 0
25812
+ .type __func__.23812, %object
25813
+ .size __func__.23812, 11
25814
+__func__.23812:
2551325815 .ascii "FtlMemInit\000"
25514
-.LC0:
25515
- .byte 60
25516
- .byte 40
25517
- .byte 24
25518
- .byte 16
25519
- .space 1
2552025816 .type samsung_14nm_slc_rr, %object
2552125817 .size samsung_14nm_slc_rr, 26
2552225818 samsung_14nm_slc_rr:
....@@ -25546,7 +25842,6 @@
2554625842 .byte -125
2554725843 .byte -115
2554825844 .byte 100
25549
- .space 2
2555025845 .type samsung_14nm_mlc_rr, %object
2555125846 .size samsung_14nm_mlc_rr, 104
2555225847 samsung_14nm_mlc_rr:
....@@ -25654,452 +25949,33 @@
2565425949 .byte 18
2565525950 .byte 9
2565625951 .byte 8
25657
- .type __func__.21169, %object
25658
- .size __func__.21169, 17
25659
-__func__.21169:
25952
+ .type __func__.24591, %object
25953
+ .size __func__.24591, 17
25954
+__func__.24591:
2566025955 .ascii "FtlDumpBlockInfo\000"
25661
- .space 3
25662
- .type __func__.21188, %object
25663
- .size __func__.21188, 16
25664
-__func__.21188:
25956
+ .type __func__.24610, %object
25957
+ .size __func__.24610, 16
25958
+__func__.24610:
2566525959 .ascii "FtlScanAllBlock\000"
25666
- .type __func__.21456, %object
25667
- .size __func__.21456, 17
25668
-__func__.21456:
25960
+ .type __func__.24878, %object
25961
+ .size __func__.24878, 17
25962
+__func__.24878:
2566925963 .ascii "ftl_scan_all_ppa\000"
25670
- .space 3
25671
- .type __func__.21137, %object
25672
- .size __func__.21137, 12
25673
-__func__.21137:
25964
+ .type __func__.24559, %object
25965
+ .size __func__.24559, 12
25966
+__func__.24559:
2567425967 .ascii "FtlCheckVpc\000"
25675
- .type __func__.21436, %object
25676
- .size __func__.21436, 21
25677
-__func__.21436:
25968
+ .type __func__.24858, %object
25969
+ .size __func__.24858, 21
25970
+__func__.24858:
2567825971 .ascii "FtlVpcCheckAndModify\000"
25679
- .space 3
25680
- .type __func__.20463, %object
25681
- .size __func__.20463, 8
25682
-__func__.20463:
25972
+ .type __func__.23885, %object
25973
+ .size __func__.23885, 8
25974
+__func__.23885:
2568325975 .ascii "FtlInit\000"
25684
- .section .rodata.str1.1,"aMS",%progbits,1
25685
-.LC1:
25686
- .ascii "FlashEraseBlocks pageAddr error %x\012\000"
25687
-.LC2:
25688
- .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
25689
- .ascii "\000"
25690
-.LC3:
25691
- .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000"
25692
-.LC4:
25693
- .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
25694
- .ascii "\000"
25695
-.LC5:
25696
- .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
25697
-.LC6:
25698
- .ascii "FLASH INFO:\012\000"
25699
-.LC7:
25700
- .ascii "FLASH ID: %x\012\000"
25701
-.LC8:
25702
- .ascii "Device Capacity: %d MB\012\000"
25703
-.LC9:
25704
- .ascii "FMWAIT: %x %x %x %x\012\000"
25705
-.LC10:
25706
- .ascii "FTL INFO:\012\000"
25707
-.LC11:
25708
- .ascii "g_MaxLpn = 0x%x\012\000"
25709
-.LC12:
25710
- .ascii "g_VaildLpn = 0x%x\012\000"
25711
-.LC13:
25712
- .ascii "read_page_count = 0x%x\012\000"
25713
-.LC14:
25714
- .ascii "discard_page_count = 0x%x\012\000"
25715
-.LC15:
25716
- .ascii "write_page_count = 0x%x\012\000"
25717
-.LC16:
25718
- .ascii "cache_write_count = 0x%x\012\000"
25719
-.LC17:
25720
- .ascii "l2p_write_count = 0x%x\012\000"
25721
-.LC18:
25722
- .ascii "gc_page_count = 0x%x\012\000"
25723
-.LC19:
25724
- .ascii "totle_write = %d MB\012\000"
25725
-.LC20:
25726
- .ascii "totle_read = %d MB\012\000"
25727
-.LC21:
25728
- .ascii "GSV = 0x%x\012\000"
25729
-.LC22:
25730
- .ascii "GDV = 0x%x\012\000"
25731
-.LC23:
25732
- .ascii "bad blk num = %d %d\012\000"
25733
-.LC24:
25734
- .ascii "free_superblocks = 0x%x\012\000"
25735
-.LC25:
25736
- .ascii "mlc_EC = 0x%x\012\000"
25737
-.LC26:
25738
- .ascii "slc_EC = 0x%x\012\000"
25739
-.LC27:
25740
- .ascii "avg_EC = 0x%x\012\000"
25741
-.LC28:
25742
- .ascii "sys_EC = 0x%x\012\000"
25743
-.LC29:
25744
- .ascii "max_EC = 0x%x\012\000"
25745
-.LC30:
25746
- .ascii "min_EC = 0x%x\012\000"
25747
-.LC31:
25748
- .ascii "PLT = 0x%x\012\000"
25749
-.LC32:
25750
- .ascii "POT = 0x%x\012\000"
25751
-.LC33:
25752
- .ascii "MaxSector = 0x%x\012\000"
25753
-.LC34:
25754
- .ascii "init_sys_blks_pp = 0x%x\012\000"
25755
-.LC35:
25756
- .ascii "sys_blks_pp = 0x%x\012\000"
25757
-.LC36:
25758
- .ascii "free sysblock = 0x%x\012\000"
25759
-.LC37:
25760
- .ascii "data_blks_pp = 0x%x\012\000"
25761
-.LC38:
25762
- .ascii "data_op_blks_pp = 0x%x\012\000"
25763
-.LC39:
25764
- .ascii "max_data_blks = 0x%x\012\000"
25765
-.LC40:
25766
- .ascii "Sys.id = 0x%x\012\000"
25767
-.LC41:
25768
- .ascii "Bbt.id = 0x%x\012\000"
25769
-.LC42:
25770
- .ascii "ACT.page = 0x%x\012\000"
25771
-.LC43:
25772
- .ascii "ACT.plane = 0x%x\012\000"
25773
-.LC44:
25774
- .ascii "ACT.id = 0x%x\012\000"
25775
-.LC45:
25776
- .ascii "ACT.mode = 0x%x\012\000"
25777
-.LC46:
25778
- .ascii "ACT.a_pages = 0x%x\012\000"
25779
-.LC47:
25780
- .ascii "ACT VPC = 0x%x\012\000"
25781
-.LC48:
25782
- .ascii "BUF.page = 0x%x\012\000"
25783
-.LC49:
25784
- .ascii "BUF.plane = 0x%x\012\000"
25785
-.LC50:
25786
- .ascii "BUF.id = 0x%x\012\000"
25787
-.LC51:
25788
- .ascii "BUF.mode = 0x%x\012\000"
25789
-.LC52:
25790
- .ascii "BUF.a_pages = 0x%x\012\000"
25791
-.LC53:
25792
- .ascii "BUF VPC = 0x%x\012\000"
25793
-.LC54:
25794
- .ascii "TMP.page = 0x%x\012\000"
25795
-.LC55:
25796
- .ascii "TMP.plane = 0x%x\012\000"
25797
-.LC56:
25798
- .ascii "TMP.id = 0x%x\012\000"
25799
-.LC57:
25800
- .ascii "TMP.mode = 0x%x\012\000"
25801
-.LC58:
25802
- .ascii "TMP.a_pages = 0x%x\012\000"
25803
-.LC59:
25804
- .ascii "GC.page = 0x%x\012\000"
25805
-.LC60:
25806
- .ascii "GC.plane = 0x%x\012\000"
25807
-.LC61:
25808
- .ascii "GC.id = 0x%x\012\000"
25809
-.LC62:
25810
- .ascii "GC.mode = 0x%x\012\000"
25811
-.LC63:
25812
- .ascii "GC.a_pages = 0x%x\012\000"
25813
-.LC64:
25814
- .ascii "WR_CHK = 0x%x %x %x %x\012\000"
25815
-.LC65:
25816
- .ascii "Read Err = 0x%x\012\000"
25817
-.LC66:
25818
- .ascii "Prog Err = 0x%x\012\000"
25819
-.LC67:
25820
- .ascii "gc_free_blk_th= 0x%x\012\000"
25821
-.LC68:
25822
- .ascii "gc_merge_free_blk_th= 0x%x\012\000"
25823
-.LC69:
25824
- .ascii "gc_skip_write_count= 0x%x\012\000"
25825
-.LC70:
25826
- .ascii "gc_blk_index= 0x%x\012\000"
25827
-.LC71:
25828
- .ascii "free min EC= 0x%x\012\000"
25829
-.LC72:
25830
- .ascii "free max EC= 0x%x\012\000"
25831
-.LC73:
25832
- .ascii "GC__SB VPC = 0x%x\012\000"
25833
-.LC74:
25834
- .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
25835
-.LC75:
25836
- .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
25837
-.LC76:
25838
- .ascii "%s\012\000"
25839
-.LC77:
25840
- .ascii "FTL version: 5.0.63 20200923\000"
25841
-.LC78:
25842
- .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
25843
- .ascii "\012\000"
25844
-.LC79:
25845
- .ascii "FtlGcRefreshBlock 0x%x\012\000"
25846
-.LC80:
25847
- .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000"
25848
-.LC81:
25849
- .ascii "%s error allocating memory. return -1\012\000"
25850
-.LC82:
25851
- .ascii "%s %p:0x%x:\000"
25852
-.LC83:
25853
- .ascii "%x \000"
25854
-.LC84:
25855
- .ascii "\000"
25856
-.LC85:
25857
- .ascii "otp error! %d\000"
25858
-.LC86:
25859
- .ascii "rr\000"
25860
-.LC87:
25861
- .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012"
25862
- .ascii "\000"
25863
-.LC88:
25864
- .ascii "nandc:\000"
25865
-.LC89:
25866
- .ascii "%d flReg.d32=%x %x\012\000"
25867
-.LC90:
25868
- .ascii "sdr read ok %x ecc=%d\012\000"
25869
-.LC91:
25870
- .ascii "sync para %d\012\000"
25871
-.LC92:
25872
- .ascii "TOG mode Read error %x %x\012\000"
25873
-.LC93:
25874
- .ascii "read retry status %x %x %x\012\000"
25875
-.LC94:
25876
- .ascii "micron RR %d row=%x,count %d,status=%d\012\000"
25877
-.LC95:
25878
- .ascii "samsung RR %d row=%x,count %d,status=%d\012\000"
25879
-.LC96:
25880
- .ascii "ECC:%d\012\000"
25881
-.LC97:
25882
- .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000"
25883
-.LC98:
25884
- .ascii "FlashLoadPhyInfo fail %x!!\012\000"
25885
-.LC99:
25886
- .ascii "Read pageadd=%x ecc=%x err=%x\012\000"
25887
-.LC100:
25888
- .ascii "data:\000"
25889
-.LC101:
25890
- .ascii "spare:\000"
25891
-.LC102:
25892
- .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000"
25893
-.LC103:
25894
- .ascii "FLFB:%d %d\012\000"
25895
-.LC104:
25896
- .ascii "prog error: = %x\012\000"
25897
-.LC105:
25898
- .ascii "prog read error: = %x\012\000"
25899
-.LC106:
25900
- .ascii "prog read REFRESH: = %x\012\000"
25901
-.LC107:
25902
- .ascii "prog read s error: = %x %x %x\012\000"
25903
-.LC108:
25904
- .ascii "prog read d error: = %x %x %x\012\000"
25905
-.LC109:
25906
- .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012"
25907
- .ascii "\000"
25908
-.LC110:
25909
- .ascii "...%s enter...\012\000"
25910
-.LC111:
25911
- .ascii "superBlkID = %x vpc=%x\012\000"
25912
-.LC112:
25913
- .ascii "flashmode = %x pagenum = %x %x\012\000"
25914
-.LC113:
25915
- .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012"
25916
- .ascii "\000"
25917
-.LC114:
25918
- .ascii "blk = %x vpc=%x mode = %x\012\000"
25919
-.LC115:
25920
- .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
25921
- .ascii "%x\012\000"
25922
-.LC116:
25923
- .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
25924
- .ascii "%x\012\000"
25925
-.LC117:
25926
- .ascii "ftl_scan_all_ppa blk %x page %x flag: %x\012\000"
25927
-.LC118:
25928
- .ascii "ftl_scan_all_ppa blk %x page %x flag: %x .........."
25929
- .ascii "..... is bad block\012\000"
25930
-.LC119:
25931
- .ascii "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012"
25932
- .ascii "\000"
25933
-.LC120:
25934
- .ascii "%s finished\012\000"
25935
-.LC121:
25936
- .ascii "FlashMakeFactorBbt %d\012\000"
25937
-.LC122:
25938
- .ascii "bad block:%d %d\012\000"
25939
-.LC123:
25940
- .ascii "FMFB:%d %d\012\000"
25941
-.LC124:
25942
- .ascii "E:bad block:%d\012\000"
25943
-.LC125:
25944
- .ascii "FMFB:Save %d %d\012\000"
25945
-.LC126:
25946
- .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
25947
-.LC127:
25948
- .ascii "FtlBbmTblFlush error:%x\012\000"
25949
-.LC128:
25950
- .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
25951
-.LC129:
25952
- .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
25953
-.LC130:
25954
- .ascii "decrement_vpc_count %x = %d\012\000"
25955
-.LC131:
25956
- .ascii "decrement_vpc_count %x = %d in free list\012\000"
25957
-.LC132:
25958
- .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
25959
-.LC133:
25960
- .ascii "page map lost: %x %x\012\000"
25961
-.LC134:
25962
- .ascii "FtlMapWritePage error = %x\012\000"
25963
-.LC135:
25964
- .ascii "FtlMapWritePage error = %x error count = %d\012\000"
25965
-.LC136:
25966
- .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
25967
-.LC137:
25968
- .ascii "no ect\000"
25969
-.LC138:
25970
- .ascii "slc mode\000"
25971
-.LC139:
25972
- .ascii "BBT:\000"
25973
-.LC140:
25974
- .ascii "region_id = %x phyAddr = %x\012\000"
25975
-.LC141:
25976
- .ascii "map_ppn:\000"
25977
-.LC142:
25978
- .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
25979
-.LC143:
25980
- .ascii "FtlCheckVpc2 %x = %x %x\012\000"
25981
-.LC144:
25982
- .ascii "free blk vpc error %x = %x %x\012\000"
25983
-.LC145:
25984
- .ascii "error_flag %x\012\000"
25985
-.LC146:
25986
- .ascii "Ftlscanalldata = %x\012\000"
25987
-.LC147:
25988
- .ascii "scan lpa = %x ppa= %x\012\000"
25989
-.LC148:
25990
- .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
25991
- .ascii "\000"
25992
-.LC149:
25993
- .ascii "RSB refresh addr %x\012\000"
25994
-.LC150:
25995
- .ascii "spuer block %x vpn is 0\012 \000"
25996
-.LC151:
25997
- .ascii "g_recovery_ppa %x ver %x\012 \000"
25998
-.LC152:
25999
- .ascii "FtlCheckVpc %x = %x %x\012\000"
26000
-.LC153:
26001
- .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
26002
-.LC154:
26003
- .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
26004
-.LC155:
26005
- .ascii "GC des block %x done\012\000"
26006
-.LC156:
26007
- .ascii "too many bad block = %d %d\012\000"
26008
-.LC157:
26009
- .ascii "%d GC datablk = %x vpc %x %x\012\000"
26010
-.LC158:
26011
- .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
26012
-.LC159:
26013
- .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
26014
-.LC160:
26015
- .ascii "rk_ftl_de_init %x\012\000"
26016
-.LC161:
26017
- .ascii "...%s: no bad block mapping table, format device\012"
26018
- .ascii "\000"
26019
-.LC162:
26020
- .ascii "...%s FtlSysBlkInit error ,format device!\012\000"
26021
-.LC163:
26022
- .ascii "FtlInit %x\012\000"
26023
-.LC164:
26024
- .ascii "fix power lost blk = %x vpc=%x\012\000"
26025
-.LC165:
26026
- .ascii "erase power lost blk = %x vpc=%x\012\000"
26027
-.LC166:
26028
- .ascii "FtlWrite: lpa error:%x %x\012\000"
26029
-.LC167:
26030
- .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012"
26031
- .ascii "\000"
26032
-.LC168:
26033
- .ascii ":\000"
26034
-.LC169:
26035
- .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
26036
- .ascii "\000"
26037
-.LC170:
26038
- .ascii "Mblk:\000"
26039
-.LC171:
26040
- .ascii "L2P:\000"
26041
-.LC172:
26042
- .ascii "L2PC:\000"
26043
-.LC173:
26044
- .ascii "write_idblock fix data %x %x\012\000"
26045
-.LC174:
26046
- .ascii "idblk:\000"
26047
-.LC175:
26048
- .ascii "idb reverse %x %x\012\000"
26049
-.LC176:
26050
- .ascii "write_idblock totle_sec %x %x %x %x\012\000"
26051
-.LC177:
26052
- .ascii "IDBlockWriteData %x %x\012\000"
26053
-.LC178:
26054
- .ascii "IDBlockWriteData %x %x ret= %x\012\000"
26055
-.LC179:
26056
- .ascii "IdBlockReadData %x %x\012\000"
26057
-.LC180:
26058
- .ascii "IdBlockReadData %x %x ret= %x\012\000"
26059
-.LC181:
26060
- .ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x"
26061
- .ascii "\012\000"
26062
-.LC182:
26063
- .ascii "write\000"
26064
-.LC183:
26065
- .ascii "read\000"
26066
-.LC184:
26067
- .ascii "write_idblock error %d\012\000"
26068
-.LC185:
26069
- .ascii "wl_lba %p %x %x %x\012\000"
26070
-.LC186:
26071
- .ascii "RKNAND_GET_DRM_KEY\012\000"
26072
-.LC187:
26073
- .ascii "rk_copy_from_user error\012\000"
26074
-.LC188:
26075
- .ascii "RKNAND_STORE_DRM_KEY\012\000"
26076
-.LC189:
26077
- .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000"
26078
-.LC190:
26079
- .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000"
26080
-.LC191:
26081
- .ascii "RKNAND_GET_SN_SECTOR\012\000"
26082
-.LC192:
26083
- .ascii "RKNAND_LOADER_UNLOCK\012\000"
26084
-.LC193:
26085
- .ascii "RKNAND_LOADER_STATUS\012\000"
26086
-.LC194:
26087
- .ascii "RKNAND_LOADER_LOCK\012\000"
26088
-.LC195:
26089
- .ascii "LockKey not match %d\012\000"
26090
-.LC196:
26091
- .ascii "RKNAND_GET_VENDOR_SECTOR\012\000"
26092
-.LC197:
26093
- .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000"
26094
-.LC198:
26095
- .ascii "return ret = %lx\012\000"
26096
-.LC199:
26097
- .ascii "secureBootEn check error\012\000"
26098
-.LC200:
26099
- .ascii "\0013vendor storage %x,%x,%x\012\000"
2610025976 .data
2610125977 .align 2
26102
-.LANCHOR1 = . + 0
25978
+ .set .LANCHOR1,. + 0
2610325979 .type random_seed, %object
2610425980 .size random_seed, 256
2610525981 random_seed:
....@@ -26279,7 +26155,6 @@
2627926155 .byte 126
2628026156 .byte 124
2628126157 .byte 0
26282
- .space 3
2628326158 .type Toshiba15RefValue, %object
2628426159 .size Toshiba15RefValue, 95
2628526160 Toshiba15RefValue:
....@@ -26378,7 +26253,6 @@
2637826253 .byte 116
2637926254 .byte 114
2638026255 .byte 0
26381
- .space 1
2638226256 .type ToshibaRefValue, %object
2638326257 .size ToshibaRefValue, 8
2638426258 ToshibaRefValue:
....@@ -28875,10 +28749,17 @@
2887528749 .word 1
2887628750 .bss
2887728751 .align 2
28878
-.LANCHOR0 = . + 0
28879
-.LANCHOR2 = . + 4344
28880
-.LANCHOR4 = . + 8688
28881
-.LANCHOR5 = . + 17376
28752
+ .set .LANCHOR0,. + 0
28753
+ .set .LANCHOR2,. + 4344
28754
+ .set .LANCHOR4,. + 8688
28755
+ .type gNandChipMap, %object
28756
+ .size gNandChipMap, 32
28757
+gNandChipMap:
28758
+ .space 32
28759
+ .type p_blk_mode_table, %object
28760
+ .size p_blk_mode_table, 4
28761
+p_blk_mode_table:
28762
+ .space 4
2888228763 .type g_slc2KBNand, %object
2888328764 .size g_slc2KBNand, 1
2888428765 g_slc2KBNand:
....@@ -28897,10 +28778,6 @@
2889728778 gNandRandomizer:
2889828779 .space 1
2889928780 .space 3
28900
- .type gNandChipMap, %object
28901
- .size gNandChipMap, 32
28902
-gNandChipMap:
28903
- .space 32
2890428781 .type gpNandParaInfo, %object
2890528782 .size gpNandParaInfo, 4
2890628783 gpNandParaInfo:
....@@ -28909,6 +28786,15 @@
2890928786 .size gNandOptPara, 32
2891028787 gNandOptPara:
2891128788 .space 32
28789
+ .type g_retryMode, %object
28790
+ .size g_retryMode, 1
28791
+g_retryMode:
28792
+ .space 1
28793
+ .type g_maxRegNum, %object
28794
+ .size g_maxRegNum, 1
28795
+g_maxRegNum:
28796
+ .space 1
28797
+ .space 2
2891228798 .type gpNandc, %object
2891328799 .size gpNandc, 4
2891428800 gpNandc:
....@@ -28966,19 +28852,10 @@
2896628852 .size FlashWaitBusyScheduleEn, 4
2896728853 FlashWaitBusyScheduleEn:
2896828854 .space 4
28969
- .type g_retryMode, %object
28970
- .size g_retryMode, 1
28971
-g_retryMode:
28972
- .space 1
28973
- .type g_maxRegNum, %object
28974
- .size g_maxRegNum, 1
28975
-g_maxRegNum:
28976
- .space 1
2897728855 .type gReadRetryInfo, %object
2897828856 .size gReadRetryInfo, 852
2897928857 gReadRetryInfo:
2898028858 .space 852
28981
- .space 2
2898228859 .type read_retry_cur_offset, %object
2898328860 .size read_retry_cur_offset, 4
2898428861 read_retry_cur_offset:
....@@ -29100,7 +28977,6 @@
2910028977 .size c_ftl_nand_planes_per_die, 2
2910128978 c_ftl_nand_planes_per_die:
2910228979 .space 2
29103
- .space 2
2910428980 .type p_plane_order_table, %object
2910528981 .size p_plane_order_table, 32
2910628982 p_plane_order_table:
....@@ -29152,6 +29028,7 @@
2915229028 .type c_ftl_nand_reserved_blks, %object
2915329029 .size c_ftl_nand_reserved_blks, 2
2915429030 c_ftl_nand_reserved_blks:
29031
+ .space 2
2915529032 .space 2
2915629033 .type DeviceCapacity, %object
2915729034 .size DeviceCapacity, 4
....@@ -29300,10 +29177,6 @@
2930029177 .size g_VaildLpn, 4
2930129178 g_VaildLpn:
2930229179 .space 4
29303
- .type p_blk_mode_table, %object
29304
- .size p_blk_mode_table, 4
29305
-p_blk_mode_table:
29306
- .space 4
2930729180 .type g_totle_read_page_count, %object
2930829181 .size g_totle_read_page_count, 4
2930929182 g_totle_read_page_count:
....@@ -29377,14 +29250,14 @@
2937729250 .size g_gc_superblock, 48
2937829251 g_gc_superblock:
2937929252 .space 48
29380
- .type g_all_blk_used_slc_mode, %object
29381
- .size g_all_blk_used_slc_mode, 4
29382
-g_all_blk_used_slc_mode:
29383
- .space 4
2938429253 .type g_sys_ext_data, %object
2938529254 .size g_sys_ext_data, 512
2938629255 g_sys_ext_data:
2938729256 .space 512
29257
+ .type g_all_blk_used_slc_mode, %object
29258
+ .size g_all_blk_used_slc_mode, 4
29259
+g_all_blk_used_slc_mode:
29260
+ .space 4
2938829261 .type g_gc_free_blk_threshold, %object
2938929262 .size g_gc_free_blk_threshold, 2
2939029263 g_gc_free_blk_threshold:
....@@ -29666,6 +29539,14 @@
2966629539 .size RK29_NANDC_REG_BASE, 4
2966729540 RK29_NANDC_REG_BASE:
2966829541 .space 4
29542
+ .type ftl_dma32_buffer_size, %object
29543
+ .size ftl_dma32_buffer_size, 4
29544
+ftl_dma32_buffer_size:
29545
+ .space 4
29546
+ .type ftl_dma32_buffer, %object
29547
+ .size ftl_dma32_buffer, 4
29548
+ftl_dma32_buffer:
29549
+ .space 4
2966929550 .type gFlashPageBuffer0, %object
2967029551 .size gFlashPageBuffer0, 4
2967129552 gFlashPageBuffer0:
....@@ -29727,11 +29608,11 @@
2972729608 .size gMultiPageReadEn, 1
2972829609 gMultiPageReadEn:
2972929610 .space 1
29730
- .space 2
2973129611 .type FbbtBlk, %object
2973229612 .size FbbtBlk, 16
2973329613 FbbtBlk:
2973429614 .space 16
29615
+ .space 2
2973529616 .type req_sys, %object
2973629617 .size req_sys, 36
2973729618 req_sys:
....@@ -29748,11 +29629,6 @@
2974829629 .size g_ect_tbl_power_up_flush, 2
2974929630 g_ect_tbl_power_up_flush:
2975029631 .space 2
29751
- .space 2
29752
- .type check_valid_page_count_table, %object
29753
- .size check_valid_page_count_table, 8192
29754
-check_valid_page_count_table:
29755
- .space 8192
2975629632 .type g_power_lost_ecc_error_blk, %object
2975729633 .size g_power_lost_ecc_error_blk, 2
2975829634 g_power_lost_ecc_error_blk:
....@@ -29760,6 +29636,7 @@
2976029636 .type g_power_lost_recovery_flag, %object
2976129637 .size g_power_lost_recovery_flag, 2
2976229638 g_power_lost_recovery_flag:
29639
+ .space 2
2976329640 .space 2
2976429641 .type g_recovery_page_num, %object
2976529642 .size g_recovery_page_num, 4
....@@ -29863,6 +29740,10 @@
2986329740 .size g_vendor, 4
2986429741 g_vendor:
2986529742 .space 4
29743
+ .type check_valid_page_count_table, %object
29744
+ .size check_valid_page_count_table, 8192
29745
+check_valid_page_count_table:
29746
+ .space 8192
2986629747 .type g_gc_refresh_block_temp_tbl, %object
2986729748 .size g_gc_refresh_block_temp_tbl, 34
2986829749 g_gc_refresh_block_temp_tbl:
....@@ -29892,3 +29773,419 @@
2989229773 .size gFlashSdrModeEn, 1
2989329774 gFlashSdrModeEn:
2989429775 .space 1
29776
+ .section .rodata.str1.1,"aMS",%progbits,1
29777
+.LC1:
29778
+ .ascii "FlashEraseBlocks pageAddr error %x\012\000"
29779
+.LC2:
29780
+ .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
29781
+ .ascii "\000"
29782
+.LC3:
29783
+ .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000"
29784
+.LC4:
29785
+ .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
29786
+ .ascii "\000"
29787
+.LC5:
29788
+ .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
29789
+.LC6:
29790
+ .ascii "FLASH INFO:\012\000"
29791
+.LC7:
29792
+ .ascii "FLASH ID: %x\012\000"
29793
+.LC8:
29794
+ .ascii "Device Capacity: %d MB\012\000"
29795
+.LC9:
29796
+ .ascii "FMWAIT: %x %x %x %x\012\000"
29797
+.LC10:
29798
+ .ascii "FTL INFO:\012\000"
29799
+.LC11:
29800
+ .ascii "g_MaxLpn = 0x%x\012\000"
29801
+.LC12:
29802
+ .ascii "g_VaildLpn = 0x%x\012\000"
29803
+.LC13:
29804
+ .ascii "read_page_count = 0x%x\012\000"
29805
+.LC14:
29806
+ .ascii "discard_page_count = 0x%x\012\000"
29807
+.LC15:
29808
+ .ascii "write_page_count = 0x%x\012\000"
29809
+.LC16:
29810
+ .ascii "cache_write_count = 0x%x\012\000"
29811
+.LC17:
29812
+ .ascii "l2p_write_count = 0x%x\012\000"
29813
+.LC18:
29814
+ .ascii "gc_page_count = 0x%x\012\000"
29815
+.LC19:
29816
+ .ascii "totle_write = %d MB\012\000"
29817
+.LC20:
29818
+ .ascii "totle_read = %d MB\012\000"
29819
+.LC21:
29820
+ .ascii "GSV = 0x%x\012\000"
29821
+.LC22:
29822
+ .ascii "GDV = 0x%x\012\000"
29823
+.LC23:
29824
+ .ascii "bad blk num = %d %d\012\000"
29825
+.LC24:
29826
+ .ascii "free_superblocks = 0x%x\012\000"
29827
+.LC25:
29828
+ .ascii "mlc_EC = 0x%x\012\000"
29829
+.LC26:
29830
+ .ascii "slc_EC = 0x%x\012\000"
29831
+.LC27:
29832
+ .ascii "avg_EC = 0x%x\012\000"
29833
+.LC28:
29834
+ .ascii "sys_EC = 0x%x\012\000"
29835
+.LC29:
29836
+ .ascii "max_EC = 0x%x\012\000"
29837
+.LC30:
29838
+ .ascii "min_EC = 0x%x\012\000"
29839
+.LC31:
29840
+ .ascii "PLT = 0x%x\012\000"
29841
+.LC32:
29842
+ .ascii "POT = 0x%x\012\000"
29843
+.LC33:
29844
+ .ascii "MaxSector = 0x%x\012\000"
29845
+.LC34:
29846
+ .ascii "init_sys_blks_pp = 0x%x\012\000"
29847
+.LC35:
29848
+ .ascii "sys_blks_pp = 0x%x\012\000"
29849
+.LC36:
29850
+ .ascii "free sysblock = 0x%x\012\000"
29851
+.LC37:
29852
+ .ascii "data_blks_pp = 0x%x\012\000"
29853
+.LC38:
29854
+ .ascii "data_op_blks_pp = 0x%x\012\000"
29855
+.LC39:
29856
+ .ascii "max_data_blks = 0x%x\012\000"
29857
+.LC40:
29858
+ .ascii "Sys.id = 0x%x\012\000"
29859
+.LC41:
29860
+ .ascii "Bbt.id = 0x%x\012\000"
29861
+.LC42:
29862
+ .ascii "ACT.page = 0x%x\012\000"
29863
+.LC43:
29864
+ .ascii "ACT.plane = 0x%x\012\000"
29865
+.LC44:
29866
+ .ascii "ACT.id = 0x%x\012\000"
29867
+.LC45:
29868
+ .ascii "ACT.mode = 0x%x\012\000"
29869
+.LC46:
29870
+ .ascii "ACT.a_pages = 0x%x\012\000"
29871
+.LC47:
29872
+ .ascii "ACT VPC = 0x%x\012\000"
29873
+.LC48:
29874
+ .ascii "BUF.page = 0x%x\012\000"
29875
+.LC49:
29876
+ .ascii "BUF.plane = 0x%x\012\000"
29877
+.LC50:
29878
+ .ascii "BUF.id = 0x%x\012\000"
29879
+.LC51:
29880
+ .ascii "BUF.mode = 0x%x\012\000"
29881
+.LC52:
29882
+ .ascii "BUF.a_pages = 0x%x\012\000"
29883
+.LC53:
29884
+ .ascii "BUF VPC = 0x%x\012\000"
29885
+.LC54:
29886
+ .ascii "TMP.page = 0x%x\012\000"
29887
+.LC55:
29888
+ .ascii "TMP.plane = 0x%x\012\000"
29889
+.LC56:
29890
+ .ascii "TMP.id = 0x%x\012\000"
29891
+.LC57:
29892
+ .ascii "TMP.mode = 0x%x\012\000"
29893
+.LC58:
29894
+ .ascii "TMP.a_pages = 0x%x\012\000"
29895
+.LC59:
29896
+ .ascii "GC.page = 0x%x\012\000"
29897
+.LC60:
29898
+ .ascii "GC.plane = 0x%x\012\000"
29899
+.LC61:
29900
+ .ascii "GC.id = 0x%x\012\000"
29901
+.LC62:
29902
+ .ascii "GC.mode = 0x%x\012\000"
29903
+.LC63:
29904
+ .ascii "GC.a_pages = 0x%x\012\000"
29905
+.LC64:
29906
+ .ascii "WR_CHK = 0x%x %x %x %x\012\000"
29907
+.LC65:
29908
+ .ascii "Read Err = 0x%x\012\000"
29909
+.LC66:
29910
+ .ascii "Prog Err = 0x%x\012\000"
29911
+.LC67:
29912
+ .ascii "gc_free_blk_th= 0x%x\012\000"
29913
+.LC68:
29914
+ .ascii "gc_merge_free_blk_th= 0x%x\012\000"
29915
+.LC69:
29916
+ .ascii "gc_skip_write_count= 0x%x\012\000"
29917
+.LC70:
29918
+ .ascii "gc_blk_index= 0x%x\012\000"
29919
+.LC71:
29920
+ .ascii "free min EC= 0x%x\012\000"
29921
+.LC72:
29922
+ .ascii "free max EC= 0x%x\012\000"
29923
+.LC73:
29924
+ .ascii "GC__SB VPC = 0x%x\012\000"
29925
+.LC74:
29926
+ .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
29927
+.LC75:
29928
+ .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
29929
+.LC76:
29930
+ .ascii "FTL version: 5.0.63 20210616\000"
29931
+.LC77:
29932
+ .ascii "%s\012\000"
29933
+.LC78:
29934
+ .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
29935
+ .ascii "\012\000"
29936
+.LC79:
29937
+ .ascii "FtlGcRefreshBlock 0x%x\012\000"
29938
+.LC80:
29939
+ .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000"
29940
+.LC81:
29941
+ .ascii "%s error allocating memory. return -1\012\000"
29942
+.LC82:
29943
+ .ascii "%s %p:0x%x:\000"
29944
+.LC83:
29945
+ .ascii "%x \000"
29946
+.LC84:
29947
+ .ascii "\000"
29948
+.LC85:
29949
+ .ascii "otp error! %d\000"
29950
+.LC86:
29951
+ .ascii "rr\000"
29952
+.LC87:
29953
+ .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012"
29954
+ .ascii "\000"
29955
+.LC88:
29956
+ .ascii "nandc:\000"
29957
+.LC89:
29958
+ .ascii "%d flReg.d32=%x %x\012\000"
29959
+.LC90:
29960
+ .ascii "sdr read ok %x ecc=%d\012\000"
29961
+.LC91:
29962
+ .ascii "sync para %d\012\000"
29963
+.LC92:
29964
+ .ascii "TOG mode Read error %x %x\012\000"
29965
+.LC93:
29966
+ .ascii "read retry status %x %x %x\012\000"
29967
+.LC94:
29968
+ .ascii "micron RR %d row=%x,count %d,status=%d\012\000"
29969
+.LC95:
29970
+ .ascii "samsung RR %d row=%x,count %d,status=%d\012\000"
29971
+.LC96:
29972
+ .ascii "ECC:%d\012\000"
29973
+.LC97:
29974
+ .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000"
29975
+.LC98:
29976
+ .ascii "FlashLoadPhyInfo fail %x!!\012\000"
29977
+.LC99:
29978
+ .ascii "Read pageadd=%x ecc=%x err=%x\012\000"
29979
+.LC100:
29980
+ .ascii "data:\000"
29981
+.LC101:
29982
+ .ascii "spare:\000"
29983
+.LC102:
29984
+ .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000"
29985
+.LC103:
29986
+ .ascii "FLFB:%d %d\012\000"
29987
+.LC104:
29988
+ .ascii "prog error: = %x\012\000"
29989
+.LC105:
29990
+ .ascii "prog read error: = %x\012\000"
29991
+.LC106:
29992
+ .ascii "prog read REFRESH: = %x\012\000"
29993
+.LC107:
29994
+ .ascii "prog read s error: = %x %x %x\012\000"
29995
+.LC108:
29996
+ .ascii "prog read d error: = %x %x %x\012\000"
29997
+.LC109:
29998
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012"
29999
+ .ascii "\000"
30000
+.LC110:
30001
+ .ascii "...%s enter...\012\000"
30002
+.LC111:
30003
+ .ascii "superBlkID = %x vpc=%x\012\000"
30004
+.LC112:
30005
+ .ascii "flashmode = %x pagenum = %x %x\012\000"
30006
+.LC113:
30007
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012"
30008
+ .ascii "\000"
30009
+.LC114:
30010
+ .ascii "blk = %x vpc=%x mode = %x\012\000"
30011
+.LC115:
30012
+ .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
30013
+ .ascii "%x\012\000"
30014
+.LC116:
30015
+ .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
30016
+ .ascii "%x\012\000"
30017
+.LC117:
30018
+ .ascii "ftl_scan_all_ppa blk %x page %x flag: %x\012\000"
30019
+.LC118:
30020
+ .ascii "ftl_scan_all_ppa blk %x page %x flag: %x .........."
30021
+ .ascii "..... is bad block\012\000"
30022
+.LC119:
30023
+ .ascii "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012"
30024
+ .ascii "\000"
30025
+.LC120:
30026
+ .ascii "%s finished\012\000"
30027
+.LC121:
30028
+ .ascii "FlashMakeFactorBbt %d\012\000"
30029
+.LC122:
30030
+ .ascii "bad block:%d %d\012\000"
30031
+.LC123:
30032
+ .ascii "FMFB:%d %d\012\000"
30033
+.LC124:
30034
+ .ascii "E:bad block:%d\012\000"
30035
+.LC125:
30036
+ .ascii "FMFB:Save %d %d\012\000"
30037
+.LC126:
30038
+ .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
30039
+.LC127:
30040
+ .ascii "FtlBbmTblFlush error:%x\012\000"
30041
+.LC128:
30042
+ .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
30043
+.LC129:
30044
+ .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
30045
+.LC130:
30046
+ .ascii "decrement_vpc_count %x = %d\012\000"
30047
+.LC131:
30048
+ .ascii "decrement_vpc_count %x = %d in free list\012\000"
30049
+.LC132:
30050
+ .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
30051
+.LC133:
30052
+ .ascii "page map lost: %x %x\012\000"
30053
+.LC134:
30054
+ .ascii "FtlMapWritePage error = %x\012\000"
30055
+.LC135:
30056
+ .ascii "FtlMapWritePage error = %x error count = %d\012\000"
30057
+.LC136:
30058
+ .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
30059
+.LC137:
30060
+ .ascii "no ect\000"
30061
+.LC138:
30062
+ .ascii "slc mode\000"
30063
+.LC139:
30064
+ .ascii "BBT:\000"
30065
+.LC140:
30066
+ .ascii "region_id = %x phyAddr = %x\012\000"
30067
+.LC141:
30068
+ .ascii "map_ppn:\000"
30069
+.LC142:
30070
+ .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
30071
+.LC143:
30072
+ .ascii "FtlCheckVpc2 %x = %x %x\012\000"
30073
+.LC144:
30074
+ .ascii "free blk vpc error %x = %x %x\012\000"
30075
+.LC145:
30076
+ .ascii "error_flag %x\012\000"
30077
+.LC146:
30078
+ .ascii "Ftlscanalldata = %x\012\000"
30079
+.LC147:
30080
+ .ascii "scan lpa = %x ppa= %x\012\000"
30081
+.LC148:
30082
+ .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
30083
+ .ascii "\000"
30084
+.LC149:
30085
+ .ascii "RSB refresh addr %x\012\000"
30086
+.LC150:
30087
+ .ascii "spuer block %x vpn is 0\012 \000"
30088
+.LC151:
30089
+ .ascii "g_recovery_ppa %x ver %x\012 \000"
30090
+.LC152:
30091
+ .ascii "FtlCheckVpc %x = %x %x\012\000"
30092
+.LC153:
30093
+ .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
30094
+.LC154:
30095
+ .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
30096
+.LC155:
30097
+ .ascii "GC des block %x done\012\000"
30098
+.LC156:
30099
+ .ascii "too many bad block = %d %d\012\000"
30100
+.LC157:
30101
+ .ascii "%d GC datablk = %x vpc %x %x\012\000"
30102
+.LC158:
30103
+ .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
30104
+.LC159:
30105
+ .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
30106
+.LC160:
30107
+ .ascii "rk_ftl_de_init %x\012\000"
30108
+.LC161:
30109
+ .ascii "...%s: no bad block mapping table, format device\012"
30110
+ .ascii "\000"
30111
+.LC162:
30112
+ .ascii "...%s FtlSysBlkInit error ,format device!\012\000"
30113
+.LC163:
30114
+ .ascii "FtlInit %x\012\000"
30115
+.LC164:
30116
+ .ascii "fix power lost blk = %x vpc=%x\012\000"
30117
+.LC165:
30118
+ .ascii "erase power lost blk = %x vpc=%x\012\000"
30119
+.LC166:
30120
+ .ascii "FtlWrite: lpa error:%x %x\012\000"
30121
+.LC167:
30122
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012"
30123
+ .ascii "\000"
30124
+.LC168:
30125
+ .ascii ":\000"
30126
+.LC169:
30127
+ .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
30128
+ .ascii "\000"
30129
+.LC170:
30130
+ .ascii "Mblk:\000"
30131
+.LC171:
30132
+ .ascii "L2P:\000"
30133
+.LC172:
30134
+ .ascii "L2PC:\000"
30135
+.LC173:
30136
+ .ascii "write_idblock fix data %x %x\012\000"
30137
+.LC174:
30138
+ .ascii "idblk:\000"
30139
+.LC175:
30140
+ .ascii "idb reverse %x %x\012\000"
30141
+.LC176:
30142
+ .ascii "write_idblock totle_sec %x %x %x %x\012\000"
30143
+.LC177:
30144
+ .ascii "IDBlockWriteData %x %x\012\000"
30145
+.LC178:
30146
+ .ascii "IDBlockWriteData %x %x ret= %x\012\000"
30147
+.LC179:
30148
+ .ascii "IdBlockReadData %x %x\012\000"
30149
+.LC180:
30150
+ .ascii "IdBlockReadData %x %x ret= %x\012\000"
30151
+.LC181:
30152
+ .ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x"
30153
+ .ascii "\012\000"
30154
+.LC182:
30155
+ .ascii "write\000"
30156
+.LC183:
30157
+ .ascii "read\000"
30158
+.LC184:
30159
+ .ascii "write_idblock error %d\012\000"
30160
+.LC185:
30161
+ .ascii "wl_lba %p %x %x %x\012\000"
30162
+.LC186:
30163
+ .ascii "RKNAND_GET_DRM_KEY\012\000"
30164
+.LC187:
30165
+ .ascii "rk_copy_from_user error\012\000"
30166
+.LC188:
30167
+ .ascii "RKNAND_STORE_DRM_KEY\012\000"
30168
+.LC189:
30169
+ .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000"
30170
+.LC190:
30171
+ .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000"
30172
+.LC191:
30173
+ .ascii "RKNAND_GET_SN_SECTOR\012\000"
30174
+.LC192:
30175
+ .ascii "RKNAND_LOADER_UNLOCK\012\000"
30176
+.LC193:
30177
+ .ascii "RKNAND_LOADER_STATUS\012\000"
30178
+.LC194:
30179
+ .ascii "RKNAND_LOADER_LOCK\012\000"
30180
+.LC195:
30181
+ .ascii "LockKey not match %d\012\000"
30182
+.LC196:
30183
+ .ascii "RKNAND_GET_VENDOR_SECTOR\012\000"
30184
+.LC197:
30185
+ .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000"
30186
+.LC198:
30187
+ .ascii "return ret = %lx\012\000"
30188
+.LC199:
30189
+ .ascii "secureBootEn check error\012\000"
30190
+.LC200:
30191
+ .ascii "\0013vendor storage %x,%x,%x\012\000"