hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/drivers/rk_nand/rk_ftlv5_arm32.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 * function: rk ftl v5 for rockchip soc base on arm v7 to support MLC NAND.
1010 */
1111 .arch armv7-a
12
- .fpu softvfp
1312 .eabi_attribute 20, 1
1413 .eabi_attribute 21, 1
1514 .eabi_attribute 23, 3
....@@ -18,139 +17,245 @@
1817 .eabi_attribute 26, 2
1918 .eabi_attribute 30, 4
2019 .eabi_attribute 34, 1
21
- .eabi_attribute 18, 4
2220 .file "rk_ftlv5_arm_v8.c"
23
-#APP
24
- .syntax unified
2521 .text
2622 .align 2
23
+ .fpu softvfp
24
+ .type ndelay, %function
25
+ndelay:
26
+ .fnstart
27
+ @ args = 0, pretend = 0, frame = 0
28
+ @ frame_needed = 0, uses_anonymous_args = 0
29
+ @ link register save eliminated.
30
+ ldr r3, .L2
31
+ add r0, r0, #996
32
+ add r0, r0, #3
33
+ umull r0, r1, r0, r3
34
+ ldr r3, .L2+4
35
+ ldr r3, [r3, #8]
36
+ lsr r0, r1, #6
37
+ bx r3 @ indirect register sibling call
38
+.L3:
39
+ .align 2
40
+.L2:
41
+ .word 274877907
42
+ .word arm_delay_ops
43
+ .fnend
44
+ .size ndelay, .-ndelay
45
+ .align 2
46
+ .syntax unified
47
+ .arm
48
+ .fpu softvfp
49
+ .type flash_read_ecc, %function
50
+flash_read_ecc:
51
+ .fnstart
52
+ @ args = 0, pretend = 0, frame = 0
53
+ @ frame_needed = 0, uses_anonymous_args = 0
54
+ ldr r3, .L6
55
+ push {r4, lr}
56
+ .save {r4, lr}
57
+ ldr r4, [r3, r0, lsl #3]
58
+ add r3, r3, r0, lsl #3
59
+ mov r0, #80
60
+ ldrb r3, [r3, #4] @ zero_extendqisi2
61
+ add r4, r4, r3, lsl #8
62
+ mov r3, #122
63
+ str r3, [r4, #2056]
64
+ bl ndelay
65
+ ldr r3, [r4, #2048]
66
+ ldr r0, [r4, #2048]
67
+ and r3, r3, #15
68
+ and r0, r0, #15
69
+ cmp r0, r3
70
+ movcc r0, r3
71
+ ldr r3, [r4, #2048]
72
+ and r3, r3, #15
73
+ cmp r3, r0
74
+ movcc r3, r0
75
+ ldr r0, [r4, #2048]
76
+ and r0, r0, #15
77
+ cmp r0, r3
78
+ movcc r0, r3
79
+ pop {r4, pc}
80
+.L7:
81
+ .align 2
82
+.L6:
83
+ .word .LANCHOR0
84
+ .fnend
85
+ .size flash_read_ecc, .-flash_read_ecc
86
+ .align 2
87
+ .syntax unified
88
+ .arm
89
+ .fpu softvfp
90
+ .type ftl_set_blk_mode.part.17, %function
91
+ftl_set_blk_mode.part.17:
92
+ .fnstart
93
+ @ args = 0, pretend = 0, frame = 0
94
+ @ frame_needed = 0, uses_anonymous_args = 0
95
+ @ link register save eliminated.
96
+ ldr r3, .L9
97
+ lsr r1, r0, #5
98
+ mov ip, #1
99
+ and r0, r0, #31
100
+ ldr r2, [r3, #32]
101
+ ldr r3, [r2, r1, lsl #2]
102
+ orr r0, r3, ip, lsl r0
103
+ str r0, [r2, r1, lsl #2]
104
+ bx lr
105
+.L10:
106
+ .align 2
107
+.L9:
108
+ .word .LANCHOR0
109
+ .fnend
110
+ .size ftl_set_blk_mode.part.17, .-ftl_set_blk_mode.part.17
111
+ .align 2
27112 .global FlashMemCmp8
113
+ .syntax unified
114
+ .arm
115
+ .fpu softvfp
28116 .type FlashMemCmp8, %function
29117 FlashMemCmp8:
30118 .fnstart
31119 @ args = 0, pretend = 0, frame = 0
32120 @ frame_needed = 0, uses_anonymous_args = 0
33
- ldr r3, .L11
34
- str lr, [sp, #-4]!
35
- .save {lr}
36
- ldrb r3, [r3] @ zero_extendqisi2
121
+ ldr r3, .L25
122
+ ldrb r3, [r3, #36] @ zero_extendqisi2
37123 cmp r3, #0
38
- beq .L4
124
+ beq .L20
39125 ldrb r3, [r1, #1] @ zero_extendqisi2
40126 ldrb ip, [r0, #1] @ zero_extendqisi2
41127 cmp ip, r3
42128 movne r3, #0
43
- beq .L8
44
-.L4:
129
+ bne .L20
130
+.L24:
131
+ mov r0, #0
132
+ bx lr
133
+.L14:
45134 cmp r3, r2
46
- beq .L8
135
+ bne .L16
136
+ mov r0, #0
137
+ ldr pc, [sp], #4
138
+.L20:
139
+ cmp r3, r2
140
+ beq .L24
141
+ str lr, [sp, #-4]!
142
+ .save {lr}
143
+.L16:
47144 ldrb lr, [r0, r3] @ zero_extendqisi2
48145 ldrb ip, [r1, r3] @ zero_extendqisi2
49146 add r3, r3, #1
50147 cmp lr, ip
51
- beq .L4
148
+ beq .L14
52149 mov r0, r3
53150 ldr pc, [sp], #4
54
-.L8:
55
- mov r0, #0
56
- ldr pc, [sp], #4
57
-.L12:
151
+.L26:
58152 .align 2
59
-.L11:
153
+.L25:
60154 .word .LANCHOR0
61155 .fnend
62156 .size FlashMemCmp8, .-FlashMemCmp8
63157 .align 2
64158 .global FlashRsvdBlkChk
159
+ .syntax unified
160
+ .arm
161
+ .fpu softvfp
65162 .type FlashRsvdBlkChk, %function
66163 FlashRsvdBlkChk:
67164 .fnstart
68165 @ args = 0, pretend = 0, frame = 0
69166 @ frame_needed = 0, uses_anonymous_args = 0
70167 @ link register save eliminated.
71
- ldr r3, .L14
72
- ldrb r2, [r3, #1] @ zero_extendqisi2
73
- ldr r3, [r3, #4]
74
- mul r3, r3, r2
75
- cmp r1, r3
76
- movcs r2, #0
77
- movcc r2, #1
168
+ ldr r2, .L28
169
+ ldrb ip, [r2, #37] @ zero_extendqisi2
170
+ ldr r3, [r2, #40]
171
+ mul r3, r3, ip
172
+ cmp r3, r1
173
+ movls r2, #0
174
+ movhi r2, #1
78175 cmp r0, #0
79176 movne r2, #0
80177 eor r0, r2, #1
81178 bx lr
82
-.L15:
179
+.L29:
83180 .align 2
84
-.L14:
181
+.L28:
85182 .word .LANCHOR0
86183 .fnend
87184 .size FlashRsvdBlkChk, .-FlashRsvdBlkChk
88185 .align 2
89186 .global FlashGetRandomizer
187
+ .syntax unified
188
+ .arm
189
+ .fpu softvfp
90190 .type FlashGetRandomizer, %function
91191 FlashGetRandomizer:
92192 .fnstart
93193 @ args = 0, pretend = 0, frame = 0
94194 @ frame_needed = 0, uses_anonymous_args = 0
95195 and r3, r1, #127
96
- ldr r2, .L25
97
- stmfd sp!, {r4, lr}
196
+ ldr r2, .L39
197
+ lsl r3, r3, #1
198
+ push {r4, lr}
98199 .save {r4, lr}
99
- mov r3, r3, asl #1
100200 ldrh r4, [r2, r3]
101
- ldr r3, .L25+4
102
- ldrb r3, [r3, #8] @ zero_extendqisi2
201
+ ldr r3, .L39+4
202
+ ldrb r3, [r3, #44] @ zero_extendqisi2
103203 cmp r3, #0
104
- beq .L17
204
+ beq .L30
105205 bl FlashRsvdBlkChk
106206 cmp r0, #0
107207 orrne r4, r4, #-1073741824
108
-.L17:
208
+.L30:
109209 mov r0, r4
110
- ldmfd sp!, {r4, pc}
111
-.L26:
210
+ pop {r4, pc}
211
+.L40:
112212 .align 2
113
-.L25:
213
+.L39:
114214 .word .LANCHOR1
115215 .word .LANCHOR0
116216 .fnend
117217 .size FlashGetRandomizer, .-FlashGetRandomizer
118218 .align 2
119219 .global FlashSetRandomizer
220
+ .syntax unified
221
+ .arm
222
+ .fpu softvfp
120223 .type FlashSetRandomizer, %function
121224 FlashSetRandomizer:
122225 .fnstart
123226 @ args = 0, pretend = 0, frame = 0
124227 @ frame_needed = 0, uses_anonymous_args = 0
228
+ ldr r2, .L50
125229 and r3, r1, #127
126
- ldr r2, .L36
127
- stmfd sp!, {r4, r5, r6, lr}
230
+ lsl r3, r3, #1
231
+ push {r4, r5, r6, lr}
128232 .save {r4, r5, r6, lr}
129
- mov r3, r3, asl #1
130233 mov r6, r0
131234 ldrh r5, [r2, r3]
132
- ldr r3, .L36+4
133
- ldrb r2, [r3, #8] @ zero_extendqisi2
235
+ ldr r3, .L50+4
236
+ ldrb r2, [r3, #44] @ zero_extendqisi2
134237 mov r4, r3
135238 cmp r2, #0
136
- beq .L28
239
+ beq .L42
137240 bl FlashRsvdBlkChk
138241 cmp r0, #0
139242 orrne r5, r5, #-1073741824
140
-.L28:
141
- add r4, r4, r6, asl #3
142
- ldr r3, [r4, #12]
243
+.L42:
244
+ ldr r3, [r4, r6, lsl #3]
143245 str r5, [r3, #336]
144
- ldmfd sp!, {r4, r5, r6, pc}
145
-.L37:
246
+ pop {r4, r5, r6, pc}
247
+.L51:
146248 .align 2
147
-.L36:
249
+.L50:
148250 .word .LANCHOR1
149251 .word .LANCHOR0
150252 .fnend
151253 .size FlashSetRandomizer, .-FlashSetRandomizer
152254 .align 2
153255 .global FlashBlockAlignInit
256
+ .syntax unified
257
+ .arm
258
+ .fpu softvfp
154259 .type FlashBlockAlignInit, %function
155260 FlashBlockAlignInit:
156261 .fnstart
....@@ -158,45 +263,49 @@
158263 @ frame_needed = 0, uses_anonymous_args = 0
159264 @ link register save eliminated.
160265 cmp r0, #512
161
- ldr r3, .L44
266
+ ldr r3, .L58
162267 movhi r2, #1024
163
- bhi .L43
268
+ bhi .L57
164269 cmp r0, #256
165270 movhi r2, #512
166
- bhi .L43
271
+ bhi .L57
167272 cmp r0, #128
168
- strls r0, [r3, #4]
169
- bxls lr
170
- mov r2, #256
171
-.L43:
172
- str r2, [r3, #4]
273
+ movhi r2, #256
274
+ bhi .L57
275
+ str r0, [r3, #40]
173276 bx lr
174
-.L45:
277
+.L57:
278
+ str r2, [r3, #40]
279
+ bx lr
280
+.L59:
175281 .align 2
176
-.L44:
282
+.L58:
177283 .word .LANCHOR0
178284 .fnend
179285 .size FlashBlockAlignInit, .-FlashBlockAlignInit
180286 .align 2
181287 .global FlashReadCmd
288
+ .syntax unified
289
+ .arm
290
+ .fpu softvfp
182291 .type FlashReadCmd, %function
183292 FlashReadCmd:
184293 .fnstart
185294 @ args = 0, pretend = 0, frame = 0
186295 @ frame_needed = 0, uses_anonymous_args = 0
187
- ldr ip, .L49
296
+ ldr ip, .L63
188297 str lr, [sp, #-4]!
189298 .save {lr}
190
- add r3, ip, r0, asl #3
191
- ldr ip, [ip, #44]
192
- ldr r2, [r3, #12]
193
- ldrb r3, [r3, #16] @ zero_extendqisi2
299
+ add r2, ip, r0, lsl #3
300
+ ldr r3, [ip, r0, lsl #3]
301
+ ldr ip, [ip, #48]
302
+ ldrb r2, [r2, #4] @ zero_extendqisi2
194303 ldrb ip, [ip, #7] @ zero_extendqisi2
195
- mov r3, r3, asl #8
304
+ lsl r2, r2, #8
196305 cmp ip, #1
197
- addeq ip, r2, r3
198
- add r3, r2, r3
306
+ addeq ip, r3, r2
199307 moveq lr, #38
308
+ add r3, r3, r2
200309 mov r2, #0
201310 streq lr, [ip, #2056]
202311 str r2, [r3, #2056]
....@@ -204,41 +313,44 @@
204313 str r2, [r3, #2052]
205314 uxtb r2, r1
206315 str r2, [r3, #2052]
207
- mov r2, r1, lsr #8
316
+ lsr r2, r1, #8
208317 str r2, [r3, #2052]
209
- mov r2, r1, lsr #16
318
+ lsr r2, r1, #16
210319 str r2, [r3, #2052]
211320 mov r2, #48
212321 str r2, [r3, #2056]
213322 ldr lr, [sp], #4
214323 b FlashSetRandomizer
215
-.L50:
324
+.L64:
216325 .align 2
217
-.L49:
326
+.L63:
218327 .word .LANCHOR0
219328 .fnend
220329 .size FlashReadCmd, .-FlashReadCmd
221330 .align 2
222331 .global FlashReadDpDataOutCmd
332
+ .syntax unified
333
+ .arm
334
+ .fpu softvfp
223335 .type FlashReadDpDataOutCmd, %function
224336 FlashReadDpDataOutCmd:
225337 .fnstart
226338 @ args = 0, pretend = 0, frame = 0
227339 @ frame_needed = 0, uses_anonymous_args = 0
228
- ldr ip, .L56
229
- stmfd sp!, {r4, lr}
340
+ ldr ip, .L70
341
+ push {r4, lr}
230342 .save {r4, lr}
231
- add r3, ip, r0, asl #3
232
- ldrb ip, [ip, #64] @ zero_extendqisi2
233343 uxtb r4, r1
234
- ldr r2, [r3, #12]
235
- mov lr, r1, lsr #8
236
- ldrb r3, [r3, #16] @ zero_extendqisi2
344
+ lsr lr, r1, #8
345
+ add r2, ip, r0, lsl #3
346
+ ldr r3, [ip, r0, lsl #3]
347
+ ldrb ip, [ip, #68] @ zero_extendqisi2
348
+ ldrb r2, [r2, #4] @ zero_extendqisi2
237349 cmp ip, #1
238
- mov ip, r1, lsr #16
239
- mov r3, r3, asl #8
240
- add r3, r2, r3
241
- bne .L52
350
+ lsr ip, r1, #16
351
+ lsl r2, r2, #8
352
+ add r3, r3, r2
353
+ bne .L66
242354 mov r2, #6
243355 str r2, [r3, #2056]
244356 mov r2, #0
....@@ -247,8 +359,12 @@
247359 str r4, [r3, #2052]
248360 str lr, [r3, #2052]
249361 str ip, [r3, #2052]
250
- b .L55
251
-.L52:
362
+.L69:
363
+ mov r2, #224
364
+ str r2, [r3, #2056]
365
+ pop {r4, lr}
366
+ b FlashSetRandomizer
367
+.L66:
252368 mov r2, #0
253369 str r2, [r3, #2056]
254370 str r2, [r3, #2052]
....@@ -260,31 +376,31 @@
260376 str ip, [r3, #2056]
261377 str r2, [r3, #2052]
262378 str r2, [r3, #2052]
263
-.L55:
264
- mov r2, #224
265
- str r2, [r3, #2056]
266
- ldmfd sp!, {r4, lr}
267
- b FlashSetRandomizer
268
-.L57:
379
+ b .L69
380
+.L71:
269381 .align 2
270
-.L56:
382
+.L70:
271383 .word .LANCHOR0
272384 .fnend
273385 .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd
274386 .align 2
275387 .global FlashProgFirstCmd
388
+ .syntax unified
389
+ .arm
390
+ .fpu softvfp
276391 .type FlashProgFirstCmd, %function
277392 FlashProgFirstCmd:
278393 .fnstart
279394 @ args = 0, pretend = 0, frame = 0
280395 @ frame_needed = 0, uses_anonymous_args = 0
281
- @ link register save eliminated.
282
- ldr ip, .L59
283
- mov r2, r1, lsr #16
284
- add ip, ip, r0, asl #3
285
- ldr r3, [ip, #12]
286
- ldrb ip, [ip, #16] @ zero_extendqisi2
287
- add r3, r3, ip, asl #8
396
+ ldr ip, .L74
397
+ lsr r2, r1, #16
398
+ str lr, [sp, #-4]!
399
+ .save {lr}
400
+ ldr r3, [ip, r0, lsl #3]
401
+ add ip, ip, r0, lsl #3
402
+ ldrb ip, [ip, #4] @ zero_extendqisi2
403
+ add r3, r3, ip, lsl #8
288404 mov ip, #128
289405 str ip, [r3, #2056]
290406 mov ip, #0
....@@ -292,176 +408,225 @@
292408 str ip, [r3, #2052]
293409 uxtb ip, r1
294410 str ip, [r3, #2052]
295
- mov ip, r1, lsr #8
411
+ lsr ip, r1, #8
296412 str ip, [r3, #2052]
297413 str r2, [r3, #2052]
414
+ ldr lr, [sp], #4
298415 b FlashSetRandomizer
299
-.L60:
416
+.L75:
300417 .align 2
301
-.L59:
418
+.L74:
302419 .word .LANCHOR0
303420 .fnend
304421 .size FlashProgFirstCmd, .-FlashProgFirstCmd
305422 .align 2
306423 .global FlashEraseCmd
424
+ .syntax unified
425
+ .arm
426
+ .fpu softvfp
307427 .type FlashEraseCmd, %function
308428 FlashEraseCmd:
309429 .fnstart
310430 @ args = 0, pretend = 0, frame = 0
311431 @ frame_needed = 0, uses_anonymous_args = 0
432
+ ldr ip, .L82
433
+ cmp r2, #0
312434 str lr, [sp, #-4]!
313435 .save {lr}
314
- cmp r2, #0
315
- ldr lr, .L67
316
- add r0, lr, r0, asl #3
317
- ldrb r3, [r0, #16] @ zero_extendqisi2
318
- ldr ip, [r0, #12]
319
- mov r3, r3, asl #8
320
- beq .L62
321
- add r2, ip, r3
322
- mov r0, #96
323
- str r0, [r2, #2056]
324
- uxtb r0, r1
325
- str r0, [r2, #2052]
326
- mov r0, r1, lsr #8
327
- str r0, [r2, #2052]
328
- mov r0, r1, lsr #16
329
- str r0, [r2, #2052]
330
- ldr r2, [lr, #4]
436
+ ldr r3, [ip, r0, lsl #3]
437
+ add r0, ip, r0, lsl #3
438
+ ldrb r0, [r0, #4] @ zero_extendqisi2
439
+ lsl r0, r0, #8
440
+ beq .L77
441
+ add r2, r3, r0
442
+ mov lr, #96
443
+ str lr, [r2, #2056]
444
+ uxtb lr, r1
445
+ str lr, [r2, #2052]
446
+ lsr lr, r1, #8
447
+ str lr, [r2, #2052]
448
+ lsr lr, r1, #16
449
+ str lr, [r2, #2052]
450
+ ldr r2, [ip, #40]
331451 add r1, r1, r2
332
-.L62:
333
- add r3, ip, r3
452
+.L77:
453
+ add r3, r3, r0
334454 mov r2, #96
335455 str r2, [r3, #2056]
336456 uxtb r2, r1
337457 str r2, [r3, #2052]
338
- mov r2, r1, lsr #8
339
- mov r1, r1, lsr #16
458
+ lsr r2, r1, #8
459
+ lsr r1, r1, #16
340460 str r2, [r3, #2052]
341
- str r1, [r3, #2052]
342461 mov r2, #208
462
+ str r1, [r3, #2052]
343463 str r2, [r3, #2056]
344464 ldr pc, [sp], #4
345
-.L68:
465
+.L83:
346466 .align 2
347
-.L67:
467
+.L82:
348468 .word .LANCHOR0
349469 .fnend
350470 .size FlashEraseCmd, .-FlashEraseCmd
351471 .align 2
352472 .global FlashProgDpSecondCmd
473
+ .syntax unified
474
+ .arm
475
+ .fpu softvfp
353476 .type FlashProgDpSecondCmd, %function
354477 FlashProgDpSecondCmd:
355478 .fnstart
356479 @ args = 0, pretend = 0, frame = 0
357480 @ frame_needed = 0, uses_anonymous_args = 0
358
- ldr ip, .L71
359
- mov r2, r1, lsr #16
360
- str lr, [sp, #-4]!
361
- .save {lr}
362
- add lr, ip, r0, asl #3
363
- ldrb ip, [ip, #59] @ zero_extendqisi2
364
- ldr r3, [lr, #12]
365
- ldrb lr, [lr, #16] @ zero_extendqisi2
366
- add r3, r3, lr, asl #8
481
+ push {r4, lr}
482
+ .save {r4, lr}
483
+ lsr r2, r1, #16
484
+ ldr lr, .L86
485
+ ldr r3, [lr, r0, lsl #3]
486
+ add ip, lr, r0, lsl #3
487
+ ldrb r4, [ip, #4] @ zero_extendqisi2
488
+ ldrb ip, [lr, #63] @ zero_extendqisi2
489
+ add r3, r3, r4, lsl #8
367490 str ip, [r3, #2056]
368491 mov ip, #0
369492 str ip, [r3, #2052]
370493 str ip, [r3, #2052]
371494 uxtb ip, r1
372495 str ip, [r3, #2052]
373
- mov ip, r1, lsr #8
496
+ lsr ip, r1, #8
374497 str ip, [r3, #2052]
375498 str r2, [r3, #2052]
376
- ldr lr, [sp], #4
499
+ pop {r4, lr}
377500 b FlashSetRandomizer
378
-.L72:
501
+.L87:
379502 .align 2
380
-.L71:
503
+.L86:
381504 .word .LANCHOR0
382505 .fnend
383506 .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd
384507 .align 2
385508 .global FlashProgSecondCmd
509
+ .syntax unified
510
+ .arm
511
+ .fpu softvfp
386512 .type FlashProgSecondCmd, %function
387513 FlashProgSecondCmd:
388514 .fnstart
389515 @ args = 0, pretend = 0, frame = 0
390516 @ frame_needed = 0, uses_anonymous_args = 0
391
- stmfd sp!, {r3, r4, r5, lr}
392
- .save {r3, r4, r5, lr}
393
- ldr r3, .L75
394
- add r0, r3, r0, asl #3
395
- ldr r3, .L75+4
396
- ldrb r5, [r0, #16] @ zero_extendqisi2
397
- ldr r4, [r0, #12]
517
+ ldr r3, .L90
518
+ push {r4, r5, r6, lr}
519
+ .save {r4, r5, r6, lr}
520
+ ldr r4, [r3, r0, lsl #3]
521
+ add r3, r3, r0, lsl #3
522
+ ldr r0, .L90+4
523
+ ldrb r5, [r3, #4] @ zero_extendqisi2
524
+ ldr r3, .L90+8
525
+ add r4, r4, r5, lsl #8
398526 ldr r3, [r3, #4]
399
- add r4, r4, r5, asl #8
400
- ldr r0, .L75+8
401527 blx r3
402528 mov r3, #16
403529 str r3, [r4, #2056]
404
- ldmfd sp!, {r3, r4, r5, pc}
405
-.L76:
530
+ pop {r4, r5, r6, pc}
531
+.L91:
406532 .align 2
407
-.L75:
533
+.L90:
408534 .word .LANCHOR0
535
+ .word 64424500
409536 .word arm_delay_ops
410
- .word 214748300
411537 .fnend
412538 .size FlashProgSecondCmd, .-FlashProgSecondCmd
413539 .align 2
414540 .global FlashProgDpFirstCmd
541
+ .syntax unified
542
+ .arm
543
+ .fpu softvfp
415544 .type FlashProgDpFirstCmd, %function
416545 FlashProgDpFirstCmd:
417546 .fnstart
418547 @ args = 0, pretend = 0, frame = 0
419548 @ frame_needed = 0, uses_anonymous_args = 0
420549 @ link register save eliminated.
421
- ldr r2, .L78
422
- add r0, r2, r0, asl #3
423
- ldrb r2, [r2, #58] @ zero_extendqisi2
424
- ldrb r1, [r0, #16] @ zero_extendqisi2
425
- ldr r3, [r0, #12]
426
- add r3, r3, r1, asl #8
550
+ ldr r2, .L93
551
+ ldr r3, [r2, r0, lsl #3]
552
+ add r0, r2, r0, lsl #3
553
+ ldrb r2, [r2, #62] @ zero_extendqisi2
554
+ ldrb r1, [r0, #4] @ zero_extendqisi2
555
+ add r3, r3, r1, lsl #8
427556 str r2, [r3, #2056]
428557 bx lr
429
-.L79:
558
+.L94:
430559 .align 2
431
-.L78:
560
+.L93:
432561 .word .LANCHOR0
433562 .fnend
434563 .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd
435564 .align 2
565
+ .global FlashReadStatus
566
+ .syntax unified
567
+ .arm
568
+ .fpu softvfp
569
+ .type FlashReadStatus, %function
570
+FlashReadStatus:
571
+ .fnstart
572
+ @ args = 0, pretend = 0, frame = 0
573
+ @ frame_needed = 0, uses_anonymous_args = 0
574
+ ldr r3, .L97
575
+ mov r2, #112
576
+ push {r4, r5, r6, lr}
577
+ .save {r4, r5, r6, lr}
578
+ ldr r5, [r3, r0, lsl #3]
579
+ add r3, r3, r0, lsl #3
580
+ mov r0, #80
581
+ ldrb r4, [r3, #4] @ zero_extendqisi2
582
+ add r3, r5, r4, lsl #8
583
+ add r4, r4, #8
584
+ str r2, [r3, #2056]
585
+ bl ndelay
586
+ ldr r0, [r5, r4, lsl #8]
587
+ pop {r4, r5, r6, pc}
588
+.L98:
589
+ .align 2
590
+.L97:
591
+ .word .LANCHOR0
592
+ .fnend
593
+ .size FlashReadStatus, .-FlashReadStatus
594
+ .align 2
436595 .global js_hash
596
+ .syntax unified
597
+ .arm
598
+ .fpu softvfp
437599 .type js_hash, %function
438600 js_hash:
439601 .fnstart
440602 @ args = 0, pretend = 0, frame = 0
441603 @ frame_needed = 0, uses_anonymous_args = 0
442604 @ link register save eliminated.
443
- ldr r3, .L84
605
+ ldr r3, .L102
444606 add r1, r0, r1
445
-.L81:
607
+.L100:
446608 cmp r0, r1
447
- beq .L83
448
- mov r2, r3, asl #5
449
- ldrb ip, [r0], #1 @ zero_extendqisi2
450
- add r2, r2, r3, lsr #2
451
- add r2, r2, ip
452
- eor r3, r3, r2
453
- b .L81
454
-.L83:
609
+ bne .L101
455610 mov r0, r3
456611 bx lr
457
-.L85:
612
+.L101:
613
+ lsr r2, r3, #2
614
+ ldrb ip, [r0], #1 @ zero_extendqisi2
615
+ add r2, r2, r3, lsl #5
616
+ add r2, r2, ip
617
+ eor r3, r3, r2
618
+ b .L100
619
+.L103:
458620 .align 2
459
-.L84:
621
+.L102:
460622 .word 1204201446
461623 .fnend
462624 .size js_hash, .-js_hash
463625 .align 2
464626 .global FlashLoadIdbInfo
627
+ .syntax unified
628
+ .arm
629
+ .fpu softvfp
465630 .type FlashLoadIdbInfo, %function
466631 FlashLoadIdbInfo:
467632 .fnstart
....@@ -474,270 +639,276 @@
474639 .size FlashLoadIdbInfo, .-FlashLoadIdbInfo
475640 .align 2
476641 .global BuildFlashLsbPageTable
642
+ .syntax unified
643
+ .arm
644
+ .fpu softvfp
477645 .type BuildFlashLsbPageTable, %function
478646 BuildFlashLsbPageTable:
479647 .fnstart
480648 @ args = 0, pretend = 0, frame = 0
481649 @ frame_needed = 0, uses_anonymous_args = 0
482650 cmp r0, #0
483
- stmfd sp!, {r4, lr}
651
+ push {r4, lr}
484652 .save {r4, lr}
485653 mov r4, r1
486
- bne .L88
487
- ldr r3, .L131
488
-.L89:
489
- mov r2, r0, asl #1
654
+ bne .L106
655
+ ldr r3, .L162
656
+.L107:
657
+ lsl r2, r0, #1
490658 strh r0, [r2, r3] @ movhi
491659 add r0, r0, #1
492660 cmp r0, #512
493
- bne .L89
494
-.L93:
661
+ bne .L107
662
+.L113:
495663 mov r2, #2048
496
- ldr r0, .L131+4
497664 mov r1, #255
665
+ ldr r0, .L162+4
498666 uxth r4, r4
499667 bl ftl_memset
500
- ldr r2, .L131
668
+ ldr r2, .L162
501669 mov r3, #0
502670 add r0, r2, #1024
503
- b .L90
504
-.L88:
671
+.L108:
672
+ uxth r1, r3
673
+ cmp r4, r1
674
+ bhi .L141
675
+ pop {r4, pc}
676
+.L106:
505677 cmp r0, #1
506
- bne .L91
507
- ldr ip, .L131
678
+ bne .L109
679
+ ldr r1, .L162
508680 mov r3, #0
509
-.L92:
681
+.L112:
682
+ cmp r3, #3
510683 uxth r2, r3
511
- mov lr, r3, asl #1
512
- cmp r2, #3
513
- movls r0, #0
514
- movhi r0, #1
515
- bics r1, r0, r3
684
+ bls .L110
685
+ tst r2, #1
686
+ movne r0, #3
687
+ moveq r0, #2
688
+ rsb r2, r0, r2, lsl #1
689
+ uxth r2, r2
690
+.L110:
691
+ lsl r0, r3, #1
516692 add r3, r3, #1
517
- movne r1, #2
518
- moveq r1, #3
519
- cmp r0, #0
520
- rsb r1, r1, r2, asl #1
521
- movne r2, r1
522
- cmp r3, #512
523
- strh r2, [lr, ip] @ movhi
524
- bne .L92
525
- b .L93
526
-.L91:
527
- cmp r0, #2
528
- bne .L94
529
- ldr r1, .L131
530
- mov r3, #0
531
-.L95:
532
- uxth r2, r3
533
- mov r0, r3, asl #1
534
- cmp r2, #1
535
- add r3, r3, #1
536
- mov ip, r2, asl #1
537
- subhi r2, ip, #1
538693 cmp r3, #512
539694 strh r2, [r0, r1] @ movhi
540
- bne .L95
541
- b .L93
542
-.L94:
695
+ bne .L112
696
+ b .L113
697
+.L109:
698
+ cmp r0, #2
699
+ bne .L114
700
+ ldr r1, .L162
701
+ mov r2, #0
702
+.L116:
703
+ uxth r3, r2
704
+ cmp r2, #1
705
+ lsl r0, r2, #1
706
+ add r2, r2, #1
707
+ lslhi r3, r3, #1
708
+ subhi r3, r3, #1
709
+ uxthhi r3, r3
710
+ cmp r2, #512
711
+ strh r3, [r0, r1] @ movhi
712
+ bne .L116
713
+ b .L113
714
+.L114:
543715 cmp r0, #3
544
- bne .L96
545
- ldr ip, .L131
716
+ bne .L117
717
+ ldr r1, .L162
546718 mov r3, #0
547
-.L97:
719
+.L120:
720
+ cmp r3, #5
548721 uxth r2, r3
549
- mov lr, r3, asl #1
550
- cmp r2, #5
551
- movls r0, #0
552
- movhi r0, #1
553
- bics r1, r0, r3
722
+ bls .L118
723
+ tst r2, #1
724
+ movne r0, #5
725
+ moveq r0, #4
726
+ rsb r2, r0, r2, lsl #1
727
+ uxth r2, r2
728
+.L118:
729
+ lsl r0, r3, #1
554730 add r3, r3, #1
555
- movne r1, #4
556
- moveq r1, #5
557
- cmp r0, #0
558
- rsb r1, r1, r2, asl #1
559
- movne r2, r1
560731 cmp r3, #512
561
- strh r2, [lr, ip] @ movhi
562
- bne .L97
563
- b .L93
564
-.L96:
732
+ strh r2, [r0, r1] @ movhi
733
+ bne .L120
734
+ b .L113
735
+.L117:
565736 cmp r0, #4
566737 mov r3, #0
567
- bne .L98
568
- ldr r2, .L131+8
569
- strh r3, [r2, #80] @ movhi
570
- mov r3, #1
571
- strh r0, [r2, #88] @ movhi
572
- strh r3, [r2, #82] @ movhi
573
- mov r3, #2
738
+ bne .L121
739
+ ldr r2, .L162+8
574740 strh r3, [r2, #84] @ movhi
575
- mov r3, #3
741
+ mov r3, #1
576742 strh r3, [r2, #86] @ movhi
577
- mov r3, #5
743
+ mov r3, #2
744
+ strh r3, [r2, #88] @ movhi
745
+ mov r3, #3
578746 strh r3, [r2, #90] @ movhi
747
+ mov r3, #5
748
+ strh r3, [r2, #94] @ movhi
579749 mov r3, #7
580
- strh r3, [r2, #92] @ movhi
750
+ strh r3, [r2, #96] @ movhi
581751 mov r3, #8
582
- strh r3, [r2, #94]! @ movhi
583
-.L99:
752
+ strh r0, [r2, #92] @ movhi
753
+ strh r3, [r2, #98]! @ movhi
754
+.L123:
584755 tst r3, #1
585756 movne r1, #7
586757 moveq r1, #6
587
- rsb r1, r1, r3, asl #1
758
+ rsb r1, r1, r3, lsl #1
588759 add r3, r3, #1
589
- strh r1, [r2, #2]! @ movhi
590760 uxth r3, r3
761
+ strh r1, [r2, #2]! @ movhi
591762 cmp r3, #512
592
- bne .L99
593
- b .L93
594
-.L98:
763
+ bne .L123
764
+ b .L113
765
+.L121:
595766 cmp r0, #5
596
- bne .L100
597
- ldr r2, .L131
598
-.L101:
599
- mov r1, r3, asl #1
600
- strh r3, [r1, r2] @ movhi
767
+ bne .L124
768
+ ldr r2, .L162+8
769
+ add r1, r2, #84
770
+.L125:
771
+ lsl r0, r3, #1
772
+ strh r3, [r0, r1] @ movhi
601773 add r3, r3, #1
602774 cmp r3, #16
603
- bne .L101
604
- ldr r2, .L131+12
605
-.L102:
775
+ bne .L125
776
+ add r2, r2, #114
777
+.L126:
606778 strh r3, [r2, #2]! @ movhi
607779 add r3, r3, #2
608780 uxth r3, r3
609781 cmp r3, #1008
610
- bne .L102
611
- b .L93
612
-.L100:
782
+ bne .L126
783
+ b .L113
784
+.L124:
613785 cmp r0, #6
614
- bne .L103
615
- ldr r1, .L131+16
616
-.L104:
617
- cmp r3, #5
618
- add r2, r3, r3, asl #1
619
- movls r0, #0
620
- movhi r0, #1
621
- bics ip, r0, r3
622
- movne ip, #10
623
- moveq ip, #12
624
- cmp r0, #0
625
- subne r2, r2, ip
626
- moveq r2, r3
627
- add r3, r3, #1
628
- strh r2, [r1, #2]! @ movhi
786
+ bne .L127
787
+ ldr r0, .L162
788
+ mov r1, r3
789
+.L130:
790
+ cmp r1, #5
791
+ uxth r2, r1
792
+ bls .L128
793
+ tst r2, #1
794
+ movne r2, #12
795
+ moveq r2, #10
796
+ sub r2, r3, r2
797
+ uxth r2, r2
798
+.L128:
799
+ lsl ip, r1, #1
800
+ add r1, r1, #1
801
+ cmp r1, #512
802
+ add r3, r3, #3
803
+ strh r2, [ip, r0] @ movhi
629804 uxth r3, r3
630
- cmp r3, #512
631
- bne .L104
632
- b .L93
633
-.L103:
805
+ bne .L130
806
+ b .L113
807
+.L127:
634808 cmp r0, #9
635
- bne .L105
636
- ldr r2, .L131+8
809
+ bne .L131
810
+ ldr r2, .L162+8
637811 movw r1, #1021
638
- strh r3, [r2, #80] @ movhi
812
+ strh r3, [r2, #84] @ movhi
639813 mov r3, #1
640
- strh r3, [r2, #82] @ movhi
641
- mov r3, #2
642
- strh r3, [r2, #84]! @ movhi
643
- mov r3, #3
644
-.L106:
645
- strh r3, [r2, #2]! @ movhi
646
- add r3, r3, #2
647
- uxth r3, r3
648
- cmp r3, r1
649
- bne .L106
650
- b .L93
651
-.L105:
814
+ strh r3, [r2, #86] @ movhi
815
+ mov r3, r2
816
+ mov r2, #2
817
+ strh r2, [r3, #88]! @ movhi
818
+ mov r2, #3
819
+.L132:
820
+ strh r2, [r3, #2]! @ movhi
821
+ add r2, r2, #2
822
+ uxth r2, r2
823
+ cmp r2, r1
824
+ bne .L132
825
+ b .L113
826
+.L131:
652827 cmp r0, #10
653
- bne .L107
654
- ldr r2, .L131
655
-.L108:
656
- mov r1, r3, asl #1
657
- strh r3, [r1, r2] @ movhi
828
+ bne .L133
829
+ ldr r2, .L162+8
830
+ add r1, r2, #84
831
+.L134:
832
+ lsl r0, r3, #1
833
+ strh r3, [r0, r1] @ movhi
658834 add r3, r3, #1
659835 cmp r3, #63
660
- bne .L108
661
- ldr r2, .L131+20
836
+ bne .L134
837
+ add r2, r2, #208
662838 movw r1, #961
663
-.L109:
839
+.L135:
664840 strh r3, [r2, #2]! @ movhi
665841 add r3, r3, #2
666842 uxth r3, r3
667843 cmp r3, r1
668
- bne .L109
669
- b .L93
670
-.L107:
844
+ bne .L135
845
+ b .L113
846
+.L133:
671847 cmp r0, #11
672
- bne .L110
673
- ldr r2, .L131
848
+ bne .L136
849
+ ldr r2, .L162+8
674850 mov r3, #0
675
-.L111:
676
- mov r1, r3, asl #1
677
- strh r3, [r1, r2] @ movhi
851
+ add r1, r2, #84
852
+.L137:
853
+ lsl r0, r3, #1
854
+ strh r3, [r0, r1] @ movhi
678855 add r3, r3, #1
679856 cmp r3, #8
680
- bne .L111
681
- ldr r1, .L131+24
682
-.L112:
857
+ bne .L137
858
+ add r2, r2, #98
859
+.L139:
683860 tst r3, #1
684
- movne r2, #7
685
- moveq r2, #6
686
- rsb r2, r2, r3, asl #1
861
+ movne r1, #7
862
+ moveq r1, #6
863
+ rsb r1, r1, r3, lsl #1
687864 add r3, r3, #1
688
- strh r2, [r1, #2]! @ movhi
689865 uxth r3, r3
866
+ strh r1, [r2, #2]! @ movhi
690867 cmp r3, #512
691
- bne .L112
692
- b .L93
693
-.L110:
868
+ bne .L139
869
+ b .L113
870
+.L136:
694871 cmp r0, #12
695
- bne .L93
696
- ldr r3, .L131+8
872
+ bne .L113
873
+ ldr r3, .L162+8
697874 mov r2, #0
698
- strh r2, [r3, #80] @ movhi
699
- mov r2, #1
700
- strh r2, [r3, #82] @ movhi
701
- mov r2, #2
702875 strh r2, [r3, #84] @ movhi
876
+ mov r2, #1
877
+ strh r2, [r3, #86] @ movhi
878
+ mov r2, #2
879
+ strh r2, [r3, #88] @ movhi
703880 mov r2, #3
704
- strh r2, [r3, #86]! @ movhi
881
+ strh r2, [r3, #90]! @ movhi
705882 mov r2, #4
706
-.L113:
883
+.L140:
707884 sub r1, r2, #1
708885 add r1, r1, r2, lsr #1
709886 add r2, r2, #1
710
- strh r1, [r3, #2]! @ movhi
711887 uxth r2, r2
888
+ strh r1, [r3, #2]! @ movhi
712889 cmp r2, #512
713
- bne .L113
714
- b .L93
715
-.L90:
716
- uxth r1, r3
717
- cmp r1, r4
718
- bcs .L130
719
- mov r1, r3, asl #1
890
+ bne .L140
891
+ b .L113
892
+.L141:
893
+ lsl r1, r3, #1
720894 add r3, r3, #1
721895 ldrh r1, [r1, r2]
722
- mov ip, r1, asl #1
896
+ lsl ip, r1, #1
723897 strh r1, [r0, ip] @ movhi
724
- b .L90
725
-.L130:
726
- ldmfd sp!, {r4, pc}
727
-.L132:
898
+ b .L108
899
+.L163:
728900 .align 2
729
-.L131:
730
- .word .LANCHOR0+80
731
- .word .LANCHOR0+1104
901
+.L162:
902
+ .word .LANCHOR0+84
903
+ .word .LANCHOR0+1108
732904 .word .LANCHOR0
733
- .word .LANCHOR0+110
734
- .word .LANCHOR0+78
735
- .word .LANCHOR0+204
736
- .word .LANCHOR0+94
737905 .fnend
738906 .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable
739907 .align 2
740908 .global FlashPrintInfo
909
+ .syntax unified
910
+ .arm
911
+ .fpu softvfp
741912 .type FlashPrintInfo, %function
742913 FlashPrintInfo:
743914 .fnstart
....@@ -748,405 +919,615 @@
748919 .fnend
749920 .size FlashPrintInfo, .-FlashPrintInfo
750921 .align 2
922
+ .global ToshibaSetRRPara
923
+ .syntax unified
924
+ .arm
925
+ .fpu softvfp
926
+ .type ToshibaSetRRPara, %function
927
+ToshibaSetRRPara:
928
+ .fnstart
929
+ @ args = 0, pretend = 0, frame = 0
930
+ @ frame_needed = 0, uses_anonymous_args = 0
931
+ push {r4, r5, r6, r7, r8, lr}
932
+ .save {r4, r5, r6, r7, r8, lr}
933
+ add r8, r1, r1, lsl #2
934
+ ldr r7, .L173
935
+ mov r6, r0
936
+ mov r5, #0
937
+ add r7, r1, r7
938
+.L166:
939
+ ldr r3, .L173+4
940
+ ldrb r3, [r3] @ zero_extendqisi2
941
+ cmp r5, r3
942
+ bcc .L170
943
+ pop {r4, r5, r6, r7, r8, pc}
944
+.L170:
945
+ ldr r4, .L173+8
946
+ mov r3, #85
947
+ str r3, [r6, #8]
948
+ mov r0, #200
949
+ ldrsb r3, [r5, r4]
950
+ str r3, [r6, #4]
951
+ bl ndelay
952
+ ldr r3, .L173+12
953
+ ldrb r3, [r3] @ zero_extendqisi2
954
+ cmp r3, #34
955
+ addeq r3, r5, r8
956
+ addeq r4, r4, r3
957
+ ldrsbeq r3, [r4, #5]
958
+ beq .L172
959
+ cmp r3, #35
960
+ addeq r3, r5, r8
961
+ ldrsbne r3, [r7]
962
+ addeq r4, r4, r3
963
+ ldrsbeq r3, [r4, #50]
964
+.L172:
965
+ str r3, [r6]
966
+ add r5, r5, #1
967
+ b .L166
968
+.L174:
969
+ .align 2
970
+.L173:
971
+ .word .LANCHOR1+396
972
+ .word g_maxRegNum
973
+ .word .LANCHOR1+256
974
+ .word g_retryMode
975
+ .fnend
976
+ .size ToshibaSetRRPara, .-ToshibaSetRRPara
977
+ .align 2
978
+ .global SamsungSetRRPara
979
+ .syntax unified
980
+ .arm
981
+ .fpu softvfp
982
+ .type SamsungSetRRPara, %function
983
+SamsungSetRRPara:
984
+ .fnstart
985
+ @ args = 0, pretend = 0, frame = 0
986
+ @ frame_needed = 0, uses_anonymous_args = 0
987
+ ldr r3, .L179
988
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
989
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
990
+ mov r4, #0
991
+ ldr r8, .L179+4
992
+ mov r6, r0
993
+ mov r7, r3
994
+ mov r9, #161
995
+ add r1, r3, r1, lsl #2
996
+ mov r10, r4
997
+ add r5, r1, #3
998
+.L176:
999
+ ldrb r3, [r8] @ zero_extendqisi2
1000
+ cmp r4, r3
1001
+ bcc .L177
1002
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
1003
+.L177:
1004
+ str r9, [r6, #8]
1005
+ mov r0, #300
1006
+ str r10, [r6]
1007
+ ldrsb r3, [r7, r4]
1008
+ add r4, r4, #1
1009
+ str r3, [r6]
1010
+ ldrsb r3, [r5, #1]!
1011
+ str r3, [r6]
1012
+ bl ndelay
1013
+ b .L176
1014
+.L180:
1015
+ .align 2
1016
+.L179:
1017
+ .word .LANCHOR1+404
1018
+ .word g_maxRegNum
1019
+ .fnend
1020
+ .size SamsungSetRRPara, .-SamsungSetRRPara
1021
+ .align 2
7511022 .global FlashDieInfoInit
1023
+ .syntax unified
1024
+ .arm
1025
+ .fpu softvfp
7521026 .type FlashDieInfoInit, %function
7531027 FlashDieInfoInit:
7541028 .fnstart
7551029 @ args = 0, pretend = 0, frame = 0
7561030 @ frame_needed = 0, uses_anonymous_args = 0
757
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
758
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
759
- mov r5, #0
760
- ldr r3, .L149
761
- ldr r4, .L149+4
762
- ldr r9, .L149+8
1031
+ ldr r3, .L196
1032
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
1033
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
1034
+ mov r6, #0
1035
+ ldr r4, .L196+4
7631036 ldrh r0, [r3, #10]
764
- strb r5, [r4, #3152]
765
- strb r5, [r4, #3153]
1037
+ strb r6, [r4, #3156]
1038
+ strb r6, [r4, #3157]
7661039 bl FlashBlockAlignInit
767
- mov r1, r5
7681040 mov r2, #8
769
- ldr r0, .L149+12
1041
+ mov r1, r6
1042
+ ldr r0, .L196+8
7701043 bl ftl_memset
771
- mov r1, r5
7721044 mov r2, #32
773
- ldr r0, .L149+16
1045
+ mov r1, r6
1046
+ add r0, r4, #3168
1047
+ ldr r9, .L196+12
7741048 bl ftl_memset
775
- ldr r0, .L149+20
776
- mov r1, r5
7771049 mov r2, #128
1050
+ mov r1, r6
1051
+ add r0, r4, #3200
1052
+ mov r8, r9
7781053 bl ftl_memset
779
- ldr r7, [r4, #44]
780
- add r6, r7, #1
781
-.L136:
782
- mov r0, r6
783
- add r1, r9, r5, asl #3
784
- ldrb r2, [r7] @ zero_extendqisi2
1054
+ ldr r5, [r4, #48]
1055
+ add r7, r5, #1
1056
+.L183:
1057
+ ldrb r2, [r5] @ zero_extendqisi2
1058
+ add r1, r9, r6, lsl #3
1059
+ mov r0, r7
7851060 bl FlashMemCmp8
786
- ldr r8, .L149+8
7871061 cmp r0, #0
788
- bne .L135
789
- ldrb r3, [r4, #3152] @ zero_extendqisi2
790
- add r2, r4, r3, asl #2
791
- str r0, [r2, #3164]
1062
+ bne .L182
1063
+ ldrb r3, [r4, #3156] @ zero_extendqisi2
1064
+ add r2, r4, r3, lsl #2
1065
+ str r0, [r2, #3168]
7921066 add r2, r3, #1
7931067 add r3, r4, r3
794
- strb r2, [r4, #3152]
795
- strb r5, [r3, #3156]
796
-.L135:
797
- add r5, r5, #1
798
- cmp r5, #4
799
- bne .L136
800
- ldrb r3, [r4, #3152] @ zero_extendqisi2
801
- strb r3, [r4, #3153]
802
- ldrb r3, [r7, #8] @ zero_extendqisi2
1068
+ strb r2, [r4, #3156]
1069
+ strb r6, [r3, #3160]
1070
+.L182:
1071
+ add r6, r6, #1
1072
+ cmp r6, #4
1073
+ bne .L183
1074
+ ldrb r3, [r4, #3156] @ zero_extendqisi2
1075
+ strb r3, [r4, #3157]
1076
+ ldrb r3, [r5, #8] @ zero_extendqisi2
8031077 cmp r3, #2
804
- beq .L137
805
-.L141:
806
- ldrb r3, [r7, #13] @ zero_extendqisi2
807
- ldrb r2, [r4, #3152] @ zero_extendqisi2
808
- smulbb r2, r2, r3
809
- ldrh r3, [r7, #14]
810
- smulbb r3, r2, r3
811
- movw r2, #3324
812
- strh r3, [r4, r2] @ movhi
813
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
814
-.L137:
815
- ldr r3, .L149+4
816
- mov r5, #0
817
- ldr r9, [r3, #4]
818
-.L140:
819
- mov r0, r6
820
- add r1, r8, r5, asl #3
821
- ldrb r2, [r7] @ zero_extendqisi2
1078
+ beq .L184
1079
+.L188:
1080
+ ldrh r2, [r5, #14]
1081
+ ldrb r3, [r4, #3156] @ zero_extendqisi2
1082
+ smulbb r3, r3, r2
1083
+ ldrb r2, [r5, #13] @ zero_extendqisi2
1084
+ smulbb r3, r3, r2
1085
+ ldr r2, .L196+16
1086
+ strh r3, [r2] @ movhi
1087
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
1088
+.L184:
1089
+ ldr r9, [r4, #40]
1090
+ mov r6, #0
1091
+.L187:
1092
+ ldrb r2, [r5] @ zero_extendqisi2
1093
+ add r1, r8, r6, lsl #3
1094
+ mov r0, r7
8221095 bl FlashMemCmp8
8231096 cmp r0, #0
824
- bne .L138
825
- ldrb r1, [r7, #13] @ zero_extendqisi2
826
- ldrh r3, [r7, #14]
827
- ldrb r2, [r4, #3152] @ zero_extendqisi2
828
- mul r1, r9, r1
829
- and r3, r3, #65280
830
- add r0, r4, r2, asl #2
1097
+ bne .L185
1098
+ ldrh r3, [r5, #14]
1099
+ ldrb r2, [r4, #3156] @ zero_extendqisi2
1100
+ and r1, r3, #65280
1101
+ ldrb r3, [r5, #13] @ zero_extendqisi2
1102
+ mul r3, r9, r3
8311103 mul r3, r3, r1
832
- str r3, [r0, #3164]
833
- ldrb r1, [r7, #23] @ zero_extendqisi2
834
- cmp r1, #0
835
- movne r3, r3, asl #1
836
- strne r3, [r0, #3164]
1104
+ add r1, r4, r2, lsl #2
1105
+ str r3, [r1, #3168]
1106
+ ldrb r0, [r5, #23] @ zero_extendqisi2
1107
+ cmp r0, #0
1108
+ lslne r3, r3, #1
1109
+ strne r3, [r1, #3168]
8371110 add r3, r2, #1
8381111 add r2, r4, r2
839
- strb r3, [r4, #3152]
840
- strb r5, [r2, #3156]
841
-.L138:
842
- add r5, r5, #1
843
- cmp r5, #4
844
- bne .L140
845
- b .L141
846
-.L150:
1112
+ strb r3, [r4, #3156]
1113
+ strb r6, [r2, #3160]
1114
+.L185:
1115
+ add r6, r6, #1
1116
+ cmp r6, #4
1117
+ bne .L187
1118
+ b .L188
1119
+.L197:
8471120 .align 2
848
-.L149:
849
- .word .LANCHOR1+256
1121
+.L196:
1122
+ .word .LANCHOR1+468
8501123 .word .LANCHOR0
1124
+ .word .LANCHOR0+3160
8511125 .word IDByte
852
- .word .LANCHOR0+3156
853
- .word .LANCHOR0+3164
854
- .word .LANCHOR0+3196
1126
+ .word .LANCHOR0+3328
8551127 .fnend
8561128 .size FlashDieInfoInit, .-FlashDieInfoInit
8571129 .align 2
8581130 .global FlashReadIdbData
1131
+ .syntax unified
1132
+ .arm
1133
+ .fpu softvfp
8591134 .type FlashReadIdbData, %function
8601135 FlashReadIdbData:
8611136 .fnstart
8621137 @ args = 0, pretend = 0, frame = 0
8631138 @ frame_needed = 0, uses_anonymous_args = 0
864
- stmfd sp!, {r3, lr}
865
- .save {r3, lr}
1139
+ push {r4, lr}
1140
+ .save {r4, lr}
8661141 mov r2, #2048
867
- ldr r1, .L153
1142
+ ldr r1, .L200
8681143 bl ftl_memcpy
8691144 mov r0, #0
870
- ldmfd sp!, {r3, pc}
871
-.L154:
1145
+ pop {r4, pc}
1146
+.L201:
8721147 .align 2
873
-.L153:
874
- .word .LANCHOR0+3328
1148
+.L200:
1149
+ .word .LANCHOR0+3332
8751150 .fnend
8761151 .size FlashReadIdbData, .-FlashReadIdbData
8771152 .align 2
8781153 .global FlashLoadPhyInfoInRam
1154
+ .syntax unified
1155
+ .arm
1156
+ .fpu softvfp
8791157 .type FlashLoadPhyInfoInRam, %function
8801158 FlashLoadPhyInfoInRam:
8811159 .fnstart
8821160 @ args = 0, pretend = 0, frame = 0
8831161 @ frame_needed = 0, uses_anonymous_args = 0
884
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
885
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
886
- mov r6, #0
887
- ldr r8, .L168
888
-.L159:
889
- mov r4, r6, asl #5
890
- ldr r1, .L168+4
891
- add r0, r4, #1
892
- ldrb r2, [r8, r6, asl #5] @ zero_extendqisi2
893
- add r0, r8, r0
894
- ldr r5, .L168+8
895
- bl FlashMemCmp8
896
- add r9, r5, #288
897
- subs r7, r0, #0
898
- bne .L156
899
- adds r9, r9, r4
900
- beq .L162
901
- add r4, r5, r4
902
- add r5, r5, #3040
903
- ldrb r3, [r4, #310] @ zero_extendqisi2
904
- mov r4, r7
905
- b .L161
906
-.L156:
907
- add r6, r6, #1
908
- cmp r6, #86
909
- bne .L159
910
- b .L162
911
-.L167:
912
- add r4, r4, #1
913
- cmp r4, #4
914
- beq .L160
915
-.L161:
916
- ldrb r2, [r5, r4, asl #5] @ zero_extendqisi2
917
- cmp r2, r3
918
- bne .L167
919
-.L160:
920
- ldr r6, .L168+12
921
- mov r2, #32
922
- ldr r1, .L168+16
923
- ldr r0, .L168+20
924
- add r1, r1, r4, asl #5
925
- bl ftl_memcpy
926
- mov r0, r6
1162
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
1163
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
1164
+ mov r4, #0
1165
+ ldr r5, .L211
1166
+ ldr r9, .L211+4
1167
+ add r6, r5, #500
1168
+.L205:
1169
+ lsl r8, r4, #5
1170
+ ldrb r2, [r6, r4, lsl #5] @ zero_extendqisi2
9271171 mov r1, r9
1172
+ add r0, r8, #1
1173
+ add r0, r6, r0
1174
+ bl FlashMemCmp8
1175
+ subs r7, r0, #0
1176
+ bne .L203
1177
+ add r5, r5, r8
1178
+ ldr r2, .L211+8
1179
+ ldrb r0, [r5, #522] @ zero_extendqisi2
1180
+ add r6, r6, r8
1181
+ mov r3, r7
1182
+ mov r1, r2
1183
+.L204:
1184
+ ldrb ip, [r2, r3, lsl #5] @ zero_extendqisi2
1185
+ cmp ip, r0
1186
+ beq .L207
1187
+ add r3, r3, #1
1188
+ cmp r3, #4
1189
+ bne .L204
1190
+.L207:
1191
+ ldr r4, .L211+12
1192
+ add r1, r1, r3, lsl #5
9281193 mov r2, #32
1194
+ ldr r0, .L211+16
9291195 bl ftl_memcpy
930
- ldrh r0, [r6, #10]
1196
+ mov r2, #32
1197
+ mov r1, r6
1198
+ mov r0, r4
1199
+ bl ftl_memcpy
1200
+ ldrh r0, [r4, #10]
9311201 bl FlashBlockAlignInit
932
- b .L157
933
-.L162:
1202
+ b .L202
1203
+.L203:
1204
+ add r4, r4, #1
1205
+ cmp r4, #86
1206
+ bne .L205
9341207 mvn r7, #0
935
-.L157:
1208
+.L202:
9361209 mov r0, r7
937
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
938
-.L169:
1210
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
1211
+.L212:
9391212 .align 2
940
-.L168:
941
- .word .LANCHOR1+288
942
- .word IDByte
1213
+.L211:
9431214 .word .LANCHOR1
944
- .word .LANCHOR1+256
945
- .word .LANCHOR1+3040
946
- .word .LANCHOR0+48
1215
+ .word IDByte
1216
+ .word .LANCHOR1+3252
1217
+ .word .LANCHOR1+468
1218
+ .word .LANCHOR0+52
9471219 .fnend
9481220 .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam
9491221 .align 2
9501222 .global ftl_flash_suspend
1223
+ .syntax unified
1224
+ .arm
1225
+ .fpu softvfp
9511226 .type ftl_flash_suspend, %function
9521227 ftl_flash_suspend:
9531228 .fnstart
9541229 @ args = 0, pretend = 0, frame = 0
9551230 @ frame_needed = 0, uses_anonymous_args = 0
9561231 @ link register save eliminated.
957
- ldr r3, .L171
958
- ldr r2, [r3, #-2808]
1232
+ ldr r3, .L214
1233
+ ldr r2, [r3, #-2804]
9591234 ldr r1, [r2]
960
- str r1, [r3, #-2804]
961
- ldr r1, [r2, #4]
9621235 str r1, [r3, #-2800]
963
- ldr r1, [r2, #8]
1236
+ ldr r1, [r2, #4]
9641237 str r1, [r3, #-2796]
965
- ldr r1, [r2, #12]
1238
+ ldr r1, [r2, #8]
9661239 str r1, [r3, #-2792]
967
- ldr r1, [r2, #304]
1240
+ ldr r1, [r2, #12]
9681241 str r1, [r3, #-2788]
969
- ldr r1, [r2, #308]
1242
+ ldr r1, [r2, #304]
9701243 str r1, [r3, #-2784]
1244
+ ldr r1, [r2, #308]
1245
+ str r1, [r3, #-2780]
9711246 ldr r1, [r2, #336]
9721247 ldr r2, [r2, #344]
973
- str r1, [r3, #-2780]
974
- str r2, [r3, #-2776]
1248
+ str r1, [r3, #-2776]
1249
+ str r2, [r3, #-2772]
9751250 bx lr
976
-.L172:
1251
+.L215:
9771252 .align 2
978
-.L171:
1253
+.L214:
9791254 .word .LANCHOR2
9801255 .fnend
9811256 .size ftl_flash_suspend, .-ftl_flash_suspend
9821257 .global __aeabi_uidiv
1258
+ .global __aeabi_uidivmod
9831259 .align 2
9841260 .global LogAddr2PhyAddr
1261
+ .syntax unified
1262
+ .arm
1263
+ .fpu softvfp
9851264 .type LogAddr2PhyAddr, %function
9861265 LogAddr2PhyAddr:
9871266 .fnstart
9881267 @ args = 4, pretend = 0, frame = 8
9891268 @ frame_needed = 0, uses_anonymous_args = 0
990
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1269
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
9911270 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9921271 .pad #12
993
- mov r9, r3
994
- ldr r3, .L179
995
- mov fp, r1
996
- ldr r7, .L179+4
997
- mov r5, r0
998
- mov r8, r2
999
- ldrh r4, [r3, #12]
1000
- ldrh r3, [r3, #14]
1001
- ldrh r10, [r7, #4]
1002
- smulbb r4, r4, r3
1003
- ldrb r3, [r7] @ zero_extendqisi2
1004
- cmp r3, #1
1005
- ldr r3, [r0, #4]
1006
- moveq r10, r10, asl #1
1007
- bic r3, r3, #-2147483648
1272
+ mov r9, r2
1273
+ ldr r2, .L222
1274
+ mov fp, r3
1275
+ mov r10, r1
1276
+ mov r7, r0
1277
+ ldr r5, .L222+4
1278
+ ldrh r3, [r2, #14]
1279
+ ldrh r2, [r2, #12]
1280
+ ldrh r6, [r5, #40]
1281
+ ldr r4, [r0, #4]
1282
+ smulbb r3, r3, r2
1283
+ ldrb r2, [r5, #36] @ zero_extendqisi2
1284
+ uxth r3, r3
1285
+ cmp r2, #1
1286
+ lsleq r6, r6, #1
1287
+ ubfx r2, r4, #10, #16
1288
+ mov r1, r3
10081289 str r3, [sp, #4]
1009
- ubfx r6, r3, #10, #16
1010
- uxth r4, r4
1011
- uxtheq r10, r10
1012
- mov r1, r4
1013
- mov r0, r6
1290
+ mov r0, r2
1291
+ uxtheq r6, r6
1292
+ str r2, [sp]
10141293 bl __aeabi_uidiv
1015
- cmp fp, #1
1016
- uxth r0, r0
10171294 ldr r3, [sp, #4]
1018
- smulbb r4, r0, r4
1019
- ubfx r1, r3, #0, #10
1020
- rsb r6, r4, r6
1021
- uxth r6, r6
1022
- bne .L175
1023
- ldr r3, .L179+8
1024
- ldrb r3, [r3, #-2744] @ zero_extendqisi2
1295
+ uxth r8, r0
1296
+ ldr r2, [sp]
1297
+ mov r1, r3
1298
+ mov r0, r2
1299
+ bl __aeabi_uidivmod
1300
+ cmp r10, #1
1301
+ uxth r1, r1
1302
+ ubfx r0, r4, #0, #10
1303
+ bne .L218
1304
+ ldr r3, .L222+8
1305
+ ldrb r3, [r3, #-2740] @ zero_extendqisi2
10251306 cmp r3, #0
1026
- addeq r1, r7, r1, asl #1
1027
- ldreqh r1, [r1, #80]
1028
-.L175:
1029
- add lr, r7, r0, asl #2
1307
+ addeq r0, r5, r0, lsl #1
1308
+ ldrheq r0, [r0, #84]
1309
+.L218:
1310
+ add r5, r5, r8, lsl #2
1311
+ ldr r3, [r5, #3168]
1312
+ mla r6, r6, r1, r3
10301313 ldrb r3, [sp, #48] @ zero_extendqisi2
1031
- ldr ip, [lr, #3164]
10321314 cmp r3, #1
1033
- mla ip, r10, r6, ip
1034
- add r1, ip, r1
1035
- str r1, [r8]
1315
+ add r0, r6, r0
10361316 str r0, [r9]
10371317 movls r0, #0
1038
- ldrhi r0, [r5, #4]
1039
- ldrhi r3, [r5, #40]
1318
+ str r8, [fp]
1319
+ ldrhi r0, [r7, #4]
1320
+ ldrhi r3, [r7, #40]
10401321 addhi r0, r0, #1024
1041
- rsbhi r0, r3, r0
1322
+ subhi r0, r0, r3
10421323 clzhi r0, r0
1043
- movhi r0, r0, lsr #5
1324
+ lsrhi r0, r0, #5
10441325 add sp, sp, #12
10451326 @ sp needed
1046
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
1047
-.L180:
1327
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
1328
+.L223:
10481329 .align 2
1049
-.L179:
1050
- .word .LANCHOR2-2772
1330
+.L222:
1331
+ .word .LANCHOR2-2768
10511332 .word .LANCHOR0
10521333 .word .LANCHOR2
10531334 .fnend
10541335 .size LogAddr2PhyAddr, .-LogAddr2PhyAddr
10551336 .align 2
1337
+ .global FlashReadStatusEN
1338
+ .syntax unified
1339
+ .arm
1340
+ .fpu softvfp
1341
+ .type FlashReadStatusEN, %function
1342
+FlashReadStatusEN:
1343
+ .fnstart
1344
+ @ args = 0, pretend = 0, frame = 0
1345
+ @ frame_needed = 0, uses_anonymous_args = 0
1346
+ ldr r3, .L237
1347
+ push {r4, r5, r6, lr}
1348
+ .save {r4, r5, r6, lr}
1349
+ ldr r4, [r3, r0, lsl #3]
1350
+ add r0, r3, r0, lsl #3
1351
+ ldrb r5, [r0, #4] @ zero_extendqisi2
1352
+ ldr r0, [r3, #48]
1353
+ ldrb r0, [r0, #8] @ zero_extendqisi2
1354
+ cmp r0, #2
1355
+ mov r0, r3
1356
+ lsl r3, r5, #8
1357
+ movne r2, #112
1358
+ add r5, r5, #8
1359
+ addne r3, r4, r3
1360
+ strne r2, [r3, #2056]
1361
+ bne .L230
1362
+ cmp r2, #0
1363
+ add r3, r4, r3
1364
+ ldrbne r2, [r0, #66] @ zero_extendqisi2
1365
+ ldrbeq r2, [r0, #65] @ zero_extendqisi2
1366
+ str r2, [r3, #2056]
1367
+ ldrb r0, [r0, #67] @ zero_extendqisi2
1368
+ cmp r0, #0
1369
+ movne r2, #0
1370
+ addne ip, r4, r5, lsl #8
1371
+ bne .L229
1372
+.L230:
1373
+ mov r0, #80
1374
+ bl ndelay
1375
+ ldr r0, [r4, r5, lsl #8]
1376
+ uxtb r0, r0
1377
+ pop {r4, r5, r6, pc}
1378
+.L231:
1379
+ lsl r3, r2, #3
1380
+ add r2, r2, #1
1381
+ lsr r3, r1, r3
1382
+ uxtb r3, r3
1383
+ str r3, [ip, #4]
1384
+.L229:
1385
+ cmp r2, r0
1386
+ bcc .L231
1387
+ b .L230
1388
+.L238:
1389
+ .align 2
1390
+.L237:
1391
+ .word .LANCHOR0
1392
+ .fnend
1393
+ .size FlashReadStatusEN, .-FlashReadStatusEN
1394
+ .align 2
1395
+ .global FlashWaitReadyEN
1396
+ .syntax unified
1397
+ .arm
1398
+ .fpu softvfp
1399
+ .type FlashWaitReadyEN, %function
1400
+FlashWaitReadyEN:
1401
+ .fnstart
1402
+ @ args = 0, pretend = 0, frame = 0
1403
+ @ frame_needed = 0, uses_anonymous_args = 0
1404
+ push {r4, r5, r6, lr}
1405
+ .save {r4, r5, r6, lr}
1406
+ mov r4, r0
1407
+ mov r5, r1
1408
+ mov r6, r2
1409
+.L240:
1410
+ mov r2, r6
1411
+ mov r1, r5
1412
+ mov r0, r4
1413
+ bl FlashReadStatusEN
1414
+ cmp r0, #255
1415
+ beq .L240
1416
+ tst r0, #64
1417
+ popne {r4, r5, r6, pc}
1418
+ mov r1, #3
1419
+ mov r0, #1
1420
+ bl usleep_range
1421
+ b .L240
1422
+ .fnend
1423
+ .size FlashWaitReadyEN, .-FlashWaitReadyEN
1424
+ .align 2
10561425 .global ftl_read_flash_info
1426
+ .syntax unified
1427
+ .arm
1428
+ .fpu softvfp
10571429 .type ftl_read_flash_info, %function
10581430 ftl_read_flash_info:
10591431 .fnstart
10601432 @ args = 0, pretend = 0, frame = 0
10611433 @ frame_needed = 0, uses_anonymous_args = 0
1062
- stmfd sp!, {r4, lr}
1434
+ push {r4, lr}
10631435 .save {r4, lr}
1064
- mov r1, #0
10651436 mov r2, #11
1437
+ mov r1, #0
10661438 mov r4, r0
10671439 bl ftl_memset
1068
- ldr r2, .L186
1069
- ldr r0, .L186+4
1440
+ ldr r2, .L250
10701441 mov ip, #1
1071
- ldr r3, [r2, #44]
1072
- ldrb r1, [r3, #9] @ zero_extendqisi2
1073
- ldr r3, [r2, #4]
1074
- smulbb r3, r1, r3
1442
+ ldr r0, .L250+4
1443
+ ldr r3, [r2, #48]
1444
+ ldr r1, [r2, #40]
1445
+ ldrb r3, [r3, #9] @ zero_extendqisi2
1446
+ smulbb r3, r3, r1
10751447 strh r3, [r4, #4] @ unaligned
1076
- ldr r3, .L186+8
1077
- ldrb r1, [r3, #-2743] @ zero_extendqisi2
1078
- ldr r3, [r3, #-2740]
1448
+ ldr r3, .L250+8
1449
+ ldrb r1, [r3, #-2739] @ zero_extendqisi2
1450
+ ldr r3, [r3, #-2736]
10791451 strb r1, [r4, #7]
10801452 str r3, [r4] @ unaligned
1081
- ldr r3, [r2, #44]
1453
+ ldr r3, [r2, #48]
10821454 ldrb r1, [r3, #9] @ zero_extendqisi2
10831455 strb r1, [r4, #6]
10841456 mov r1, #32
10851457 strb r1, [r4, #8]
1086
- ldrb r1, [r2, #3152] @ zero_extendqisi2
1458
+ ldrb r1, [r2, #3156] @ zero_extendqisi2
10871459 ldrb r3, [r3, #7] @ zero_extendqisi2
10881460 strb r3, [r4, #9]
10891461 mov r3, #0
10901462 strb r3, [r4, #10]
1091
-.L182:
1463
+.L247:
10921464 uxtb r2, r3
1093
- cmp r2, r1
1094
- bcs .L185
1465
+ cmp r1, r2
1466
+ bhi .L248
1467
+ pop {r4, pc}
1468
+.L248:
10951469 ldrb lr, [r3, r0] @ zero_extendqisi2
10961470 add r3, r3, #1
10971471 ldrb r2, [r4, #10] @ zero_extendqisi2
1098
- orr r2, r2, ip, asl lr
1472
+ orr r2, r2, ip, lsl lr
10991473 strb r2, [r4, #10]
1100
- b .L182
1101
-.L185:
1102
- ldmfd sp!, {r4, pc}
1103
-.L187:
1474
+ b .L247
1475
+.L251:
11041476 .align 2
1105
-.L186:
1477
+.L250:
11061478 .word .LANCHOR0
1107
- .word .LANCHOR0+3156
1479
+ .word .LANCHOR0+3160
11081480 .word .LANCHOR2
11091481 .fnend
11101482 .size ftl_read_flash_info, .-ftl_read_flash_info
11111483 .align 2
11121484 .global FlashScheduleEnSet
1485
+ .syntax unified
1486
+ .arm
1487
+ .fpu softvfp
11131488 .type FlashScheduleEnSet, %function
11141489 FlashScheduleEnSet:
11151490 .fnstart
11161491 @ args = 0, pretend = 0, frame = 0
11171492 @ frame_needed = 0, uses_anonymous_args = 0
11181493 @ link register save eliminated.
1119
- ldr r3, .L189
1120
- ldr r2, [r3, #-2736]
1121
- str r0, [r3, #-2736]
1494
+ ldr r3, .L253
1495
+ ldr r2, [r3, #-2732]
1496
+ str r0, [r3, #-2732]
11221497 mov r0, r2
11231498 bx lr
1124
-.L190:
1499
+.L254:
11251500 .align 2
1126
-.L189:
1501
+.L253:
11271502 .word .LANCHOR2
11281503 .fnend
11291504 .size FlashScheduleEnSet, .-FlashScheduleEnSet
11301505 .align 2
11311506 .global FlashGetPageSize
1507
+ .syntax unified
1508
+ .arm
1509
+ .fpu softvfp
11321510 .type FlashGetPageSize, %function
11331511 FlashGetPageSize:
11341512 .fnstart
11351513 @ args = 0, pretend = 0, frame = 0
11361514 @ frame_needed = 0, uses_anonymous_args = 0
11371515 @ link register save eliminated.
1138
- ldr r3, .L192
1139
- ldr r3, [r3, #44]
1516
+ ldr r3, .L256
1517
+ ldr r3, [r3, #48]
11401518 ldrb r0, [r3, #9] @ zero_extendqisi2
11411519 bx lr
1142
-.L193:
1520
+.L257:
11431521 .align 2
1144
-.L192:
1522
+.L256:
11451523 .word .LANCHOR0
11461524 .fnend
11471525 .size FlashGetPageSize, .-FlashGetPageSize
11481526 .align 2
11491527 .global NandcReadDontCaseBusyEn
1528
+ .syntax unified
1529
+ .arm
1530
+ .fpu softvfp
11501531 .type NandcReadDontCaseBusyEn, %function
11511532 NandcReadDontCaseBusyEn:
11521533 .fnstart
....@@ -1158,107 +1539,122 @@
11581539 .size NandcReadDontCaseBusyEn, .-NandcReadDontCaseBusyEn
11591540 .align 2
11601541 .global NandcGetChipIf
1542
+ .syntax unified
1543
+ .arm
1544
+ .fpu softvfp
11611545 .type NandcGetChipIf, %function
11621546 NandcGetChipIf:
11631547 .fnstart
11641548 @ args = 0, pretend = 0, frame = 0
11651549 @ frame_needed = 0, uses_anonymous_args = 0
11661550 @ link register save eliminated.
1167
- ldr r3, .L196
1168
- add r0, r3, r0, asl #3
1169
- ldrb r2, [r0, #16] @ zero_extendqisi2
1170
- ldr r0, [r0, #12]
1171
- add r2, r2, #8
1172
- add r0, r0, r2, asl #8
1551
+ ldr r2, .L260
1552
+ add r3, r2, r0, lsl #3
1553
+ ldr r0, [r2, r0, lsl #3]
1554
+ ldrb r3, [r3, #4] @ zero_extendqisi2
1555
+ add r3, r3, #8
1556
+ add r0, r0, r3, lsl #8
11731557 bx lr
1174
-.L197:
1558
+.L261:
11751559 .align 2
1176
-.L196:
1560
+.L260:
11771561 .word .LANCHOR0
11781562 .fnend
11791563 .size NandcGetChipIf, .-NandcGetChipIf
11801564 .align 2
11811565 .global NandcSetDdrPara
1566
+ .syntax unified
1567
+ .arm
1568
+ .fpu softvfp
11821569 .type NandcSetDdrPara, %function
11831570 NandcSetDdrPara:
11841571 .fnstart
11851572 @ args = 0, pretend = 0, frame = 0
11861573 @ frame_needed = 0, uses_anonymous_args = 0
11871574 @ link register save eliminated.
1188
- ldr r3, .L199
1189
- ldr r2, [r3, #-2808]
1190
- mov r3, r0, asl #8
1191
- orr r0, r3, r0, asl #16
1192
- orr r3, r0, #1
1193
- str r3, [r2, #304]
1575
+ ldr r3, .L263
1576
+ ldr r2, [r3, #-2804]
1577
+ lsl r3, r0, #8
1578
+ orr r0, r3, r0, lsl #16
1579
+ orr r0, r0, #1
1580
+ str r0, [r2, #304]
11941581 bx lr
1195
-.L200:
1582
+.L264:
11961583 .align 2
1197
-.L199:
1584
+.L263:
11981585 .word .LANCHOR2
11991586 .fnend
12001587 .size NandcSetDdrPara, .-NandcSetDdrPara
12011588 .align 2
12021589 .global NandcSetDdrDiv
1590
+ .syntax unified
1591
+ .arm
1592
+ .fpu softvfp
12031593 .type NandcSetDdrDiv, %function
12041594 NandcSetDdrDiv:
12051595 .fnstart
12061596 @ args = 0, pretend = 0, frame = 0
12071597 @ frame_needed = 0, uses_anonymous_args = 0
12081598 @ link register save eliminated.
1209
- ldr r3, .L202
1599
+ ldr r3, .L266
12101600 orr r0, r0, #16640
1211
- ldr r3, [r3, #-2808]
1601
+ ldr r3, [r3, #-2804]
12121602 str r0, [r3, #344]
12131603 bx lr
1214
-.L203:
1604
+.L267:
12151605 .align 2
1216
-.L202:
1606
+.L266:
12171607 .word .LANCHOR2
12181608 .fnend
12191609 .size NandcSetDdrDiv, .-NandcSetDdrDiv
12201610 .align 2
12211611 .global NandcSetDdrMode
1612
+ .syntax unified
1613
+ .arm
1614
+ .fpu softvfp
12221615 .type NandcSetDdrMode, %function
12231616 NandcSetDdrMode:
12241617 .fnstart
12251618 @ args = 0, pretend = 0, frame = 0
12261619 @ frame_needed = 0, uses_anonymous_args = 0
12271620 @ link register save eliminated.
1228
- ldr r3, .L207
1621
+ ldr r3, .L271
12291622 cmp r0, #0
1230
- ldr r2, [r3, #-2808]
1623
+ ldr r2, [r3, #-2804]
12311624 ldr r3, [r2]
12321625 bfieq r3, r0, #13, #1
12331626 orrne r3, r3, #253952
12341627 str r3, [r2]
12351628 bx lr
1236
-.L208:
1629
+.L272:
12371630 .align 2
1238
-.L207:
1631
+.L271:
12391632 .word .LANCHOR2
12401633 .fnend
12411634 .size NandcSetDdrMode, .-NandcSetDdrMode
12421635 .align 2
12431636 .global NandcSetMode
1637
+ .syntax unified
1638
+ .arm
1639
+ .fpu softvfp
12441640 .type NandcSetMode, %function
12451641 NandcSetMode:
12461642 .fnstart
12471643 @ args = 0, pretend = 0, frame = 0
12481644 @ frame_needed = 0, uses_anonymous_args = 0
12491645 @ link register save eliminated.
1250
- ldr r3, .L216
1646
+ ldr r3, .L280
12511647 ands r1, r0, #6
1252
- ldr r2, [r3, #-2808]
1648
+ ldr r2, [r3, #-2804]
12531649 ldr r3, [r2]
12541650 bfieq r3, r1, #13, #1
1255
- beq .L212
1256
- orr r3, r3, #24576
1651
+ beq .L276
12571652 movw r1, #8322
1258
- bfc r3, #15, #1
1653
+ orr r3, r3, #24576
12591654 str r1, [r2, #344]
1655
+ bfc r3, #15, #1
1656
+ ldr r1, .L280+4
12601657 orr r3, r3, #196608
1261
- ldr r1, .L216+4
12621658 tst r0, #4
12631659 orrne r3, r3, #32768
12641660 str r1, [r2, #304]
....@@ -1266,650 +1662,425 @@
12661662 str r1, [r2, #308]
12671663 mov r1, #39
12681664 str r1, [r2, #308]
1269
-.L212:
1665
+.L276:
12701666 str r3, [r2]
12711667 mov r0, #0
12721668 bx lr
1273
-.L217:
1669
+.L281:
12741670 .align 2
1275
-.L216:
1671
+.L280:
12761672 .word .LANCHOR2
12771673 .word 1052675
12781674 .fnend
12791675 .size NandcSetMode, .-NandcSetMode
12801676 .align 2
12811677 .global NandcFlashCs
1678
+ .syntax unified
1679
+ .arm
1680
+ .fpu softvfp
12821681 .type NandcFlashCs, %function
12831682 NandcFlashCs:
12841683 .fnstart
12851684 @ args = 0, pretend = 0, frame = 0
12861685 @ frame_needed = 0, uses_anonymous_args = 0
12871686 @ link register save eliminated.
1288
- ldr r2, .L219
1289
- add r0, r2, r0, asl #3
1687
+ ldr r3, .L283
12901688 mov r2, #1
1291
- ldr r1, [r0, #12]
1292
- ldrb r0, [r0, #16] @ zero_extendqisi2
1689
+ ldr r1, [r3, r0, lsl #3]
1690
+ add r0, r3, r0, lsl #3
1691
+ ldrb r0, [r0, #4] @ zero_extendqisi2
12931692 ldr r3, [r1]
1294
- mov r2, r2, asl r0
1693
+ lsl r2, r2, r0
12951694 bfi r3, r2, #0, #8
12961695 str r3, [r1]
12971696 bx lr
1298
-.L220:
1697
+.L284:
12991698 .align 2
1300
-.L219:
1699
+.L283:
13011700 .word .LANCHOR0
13021701 .fnend
13031702 .size NandcFlashCs, .-NandcFlashCs
13041703 .align 2
13051704 .global NandcFlashDeCs
1705
+ .syntax unified
1706
+ .arm
1707
+ .fpu softvfp
13061708 .type NandcFlashDeCs, %function
13071709 NandcFlashDeCs:
13081710 .fnstart
13091711 @ args = 0, pretend = 0, frame = 0
13101712 @ frame_needed = 0, uses_anonymous_args = 0
13111713 @ link register save eliminated.
1312
- ldr r3, .L222
1313
- add r0, r3, r0, asl #3
1314
- ldr r2, [r0, #12]
1714
+ ldr r3, .L286
1715
+ ldr r2, [r3, r0, lsl #3]
13151716 ldr r3, [r2]
13161717 bfc r3, #0, #8
13171718 bfc r3, #17, #1
13181719 str r3, [r2]
13191720 bx lr
1320
-.L223:
1721
+.L287:
13211722 .align 2
1322
-.L222:
1723
+.L286:
13231724 .word .LANCHOR0
13241725 .fnend
13251726 .size NandcFlashDeCs, .-NandcFlashDeCs
13261727 .align 2
1327
- .global NandcDelayns
1328
- .type NandcDelayns, %function
1329
-NandcDelayns:
1330
- .fnstart
1331
- @ args = 0, pretend = 0, frame = 0
1332
- @ frame_needed = 0, uses_anonymous_args = 0
1333
- stmfd sp!, {r3, lr}
1334
- .save {r3, lr}
1335
- add r0, r0, #996
1336
- ldr r3, .L226
1337
- add r0, r0, #3
1338
- umull r0, r1, r0, r3
1339
- ldr r3, .L226+4
1340
- ldr r3, [r3, #8]
1341
- mov r0, r1, lsr #6
1342
- blx r3
1343
- mov r0, #0
1344
- ldmfd sp!, {r3, pc}
1345
-.L227:
1346
- .align 2
1347
-.L226:
1348
- .word 274877907
1349
- .word arm_delay_ops
1350
- .fnend
1351
- .size NandcDelayns, .-NandcDelayns
1352
- .align 2
1353
- .global FlashReadStatus
1354
- .type FlashReadStatus, %function
1355
-FlashReadStatus:
1356
- .fnstart
1357
- @ args = 0, pretend = 0, frame = 0
1358
- @ frame_needed = 0, uses_anonymous_args = 0
1359
- stmfd sp!, {r3, r4, r5, lr}
1360
- .save {r3, r4, r5, lr}
1361
- mov r2, #112
1362
- ldr r3, .L230
1363
- add r0, r3, r0, asl #3
1364
- ldrb r4, [r0, #16] @ zero_extendqisi2
1365
- ldr r5, [r0, #12]
1366
- mov r0, #80
1367
- add r3, r5, r4, asl #8
1368
- add r4, r4, #8
1369
- str r2, [r3, #2056]
1370
- bl NandcDelayns
1371
- ldr r0, [r5, r4, asl #8]
1372
- ldmfd sp!, {r3, r4, r5, pc}
1373
-.L231:
1374
- .align 2
1375
-.L230:
1376
- .word .LANCHOR0
1377
- .fnend
1378
- .size FlashReadStatus, .-FlashReadStatus
1379
- .align 2
1380
- .global ToshibaSetRRPara
1381
- .type ToshibaSetRRPara, %function
1382
-ToshibaSetRRPara:
1383
- .fnstart
1384
- @ args = 0, pretend = 0, frame = 0
1385
- @ frame_needed = 0, uses_anonymous_args = 0
1386
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
1387
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
1388
- add r7, r1, r1, asl #2
1389
- ldr r8, .L242
1390
- mov r5, r0
1391
- ldr r10, .L242+4
1392
- mov r6, r1
1393
- add r9, r8, #3168
1394
- mov r4, #0
1395
-.L233:
1396
- ldrb r3, [r10] @ zero_extendqisi2
1397
- cmp r4, r3
1398
- bcs .L241
1399
- mov r3, #85
1400
- str r3, [r5, #8]
1401
- ldrsb r3, [r4, r9]
1402
- mov r0, #200
1403
- str r3, [r5, #4]
1404
- bl NandcDelayns
1405
- ldr r3, .L242+8
1406
- ldrb r3, [r3] @ zero_extendqisi2
1407
- cmp r3, #34
1408
- addeq r3, r4, r7
1409
- addeq r3, r9, r3
1410
- beq .L240
1411
- cmp r3, #35
1412
- addne r3, r8, r6
1413
- addne r3, r3, #3312
1414
- ldrnesb r3, [r3]
1415
- bne .L239
1416
- ldr r3, .L242+12
1417
- add r2, r4, r7
1418
- add r3, r3, r2
1419
-.L240:
1420
- ldrsb r3, [r3, #5]
1421
-.L239:
1422
- str r3, [r5]
1423
- add r4, r4, #1
1424
- b .L233
1425
-.L241:
1426
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
1427
-.L243:
1428
- .align 2
1429
-.L242:
1430
- .word .LANCHOR1
1431
- .word g_maxRegNum
1432
- .word g_retryMode
1433
- .word .LANCHOR1+3216
1434
- .fnend
1435
- .size ToshibaSetRRPara, .-ToshibaSetRRPara
1436
- .align 2
1437
- .global SamsungSetRRPara
1438
- .type SamsungSetRRPara, %function
1439
-SamsungSetRRPara:
1440
- .fnstart
1441
- @ args = 0, pretend = 0, frame = 0
1442
- @ frame_needed = 0, uses_anonymous_args = 0
1443
- ldr r3, .L249
1444
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
1445
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
1446
- add r1, r3, r1, asl #2
1447
- ldr r8, .L249+4
1448
- mov r4, #0
1449
- add r5, r1, #3
1450
- mov r6, r0
1451
- mov r7, r3
1452
- mov r9, #161
1453
- mov r10, r4
1454
-.L245:
1455
- ldrb r3, [r8] @ zero_extendqisi2
1456
- cmp r4, r3
1457
- bcs .L248
1458
- str r9, [r6, #8]
1459
- mov r0, #300
1460
- str r10, [r6]
1461
- ldrsb r3, [r4, r7]
1462
- add r4, r4, #1
1463
- str r3, [r6]
1464
- ldrsb r3, [r5, #1]!
1465
- str r3, [r6]
1466
- bl NandcDelayns
1467
- b .L245
1468
-.L248:
1469
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
1470
-.L250:
1471
- .align 2
1472
-.L249:
1473
- .word .LANCHOR1+3320
1474
- .word g_maxRegNum
1475
- .fnend
1476
- .size SamsungSetRRPara, .-SamsungSetRRPara
1477
- .align 2
14781728 .global HynixSetRRPara
1729
+ .syntax unified
1730
+ .arm
1731
+ .fpu softvfp
14791732 .type HynixSetRRPara, %function
14801733 HynixSetRRPara:
14811734 .fnstart
14821735 @ args = 0, pretend = 0, frame = 8
14831736 @ frame_needed = 0, uses_anonymous_args = 0
1484
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1737
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
14851738 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14861739 .pad #12
1487
- mov r6, r3
1488
- ldr r3, .L260
1489
- mov r10, r2
1490
- mov r7, r0
1491
- mov r9, r1
1492
- ldr r2, [r3, #44]
1493
- ldrb r4, [r2, #19] @ zero_extendqisi2
1494
- mov r2, r0, asl #3
1495
- cmp r4, #6
1496
- ldreq r4, .L260+4
1497
- addeq r4, r4, r0, asl #6
1498
- addeq r4, r4, #20
1499
- addeq r4, r4, r6, asl #2
1500
- beq .L253
1501
-.L252:
1502
- cmp r4, #7
1503
- bne .L254
1504
- ldr r1, .L260+4
1505
- mov r4, #160
1506
- mla r4, r4, r0, r1
1507
- add r1, r6, r6, asl #2
1508
- add r4, r4, #28
1509
- add r4, r4, r1, asl #1
1510
- b .L253
1511
-.L254:
1512
- cmp r4, #8
1513
- addne r4, r6, r2
1514
- addeq r1, r6, r6, asl #2
1515
- ldrne r1, .L260+4
1516
- ldreq r4, .L260+8
1517
- addne r4, r1, r4, asl #3
1518
- addeq r4, r4, r1
1519
- addne r4, r4, #20
1520
-.L253:
1521
- add r3, r3, r2
1522
- mov r0, r7
1523
- sub r9, r9, #1
1524
- sub r4, r4, #1
1525
- ldrb fp, [r3, #16] @ zero_extendqisi2
1526
- ldr r8, [r3, #12]
1740
+ mov r8, r3
1741
+ ldr r3, .L297
1742
+ mov r7, r2
1743
+ mov r5, r0
1744
+ mov r6, r1
1745
+ ldr r4, .L297+4
1746
+ ldr r2, [r3, #48]
1747
+ ldrb r2, [r2, #19] @ zero_extendqisi2
1748
+ cmp r2, #6
1749
+ bne .L289
1750
+ mov r2, #20
1751
+ sub r4, r4, #8
1752
+ add r2, r2, r0, lsl #6
1753
+ add r2, r2, r8, lsl #2
1754
+.L296:
1755
+ add r4, r4, r2
1756
+.L290:
1757
+ ldr r9, [r3, r5, lsl #3]
1758
+ add r3, r3, r5, lsl #3
1759
+ mov r0, r5
1760
+ ldrb fp, [r3, #4] @ zero_extendqisi2
1761
+ sub r6, r6, #1
15271762 bl NandcFlashCs
1528
- sub r2, r10, #1
1529
- add r10, r10, r9
1530
- mov fp, fp, asl #8
15311763 mov r3, #54
1532
- add r5, r8, fp
1533
- str r3, [r5, #2056]
1534
-.L256:
1535
- cmp r2, r10
1536
- beq .L259
1537
- ldrb r3, [r2, #1]! @ zero_extendqisi2
1538
- mov r0, #200
1539
- str r3, [r5, #2052]
1540
- str r2, [sp, #4]
1541
- bl NandcDelayns
1542
- ldrsb r3, [r4, #1]!
1543
- str r3, [r5, #2048]
1544
- ldr r2, [sp, #4]
1545
- b .L256
1546
-.L259:
1547
- add r8, r8, fp
1764
+ sub r4, r4, #1
1765
+ lsl fp, fp, #8
1766
+ add r10, r9, fp
1767
+ str r3, [r10, #2056]
1768
+ sub r3, r7, #1
1769
+ add r7, r7, r6
1770
+.L293:
1771
+ cmp r3, r7
1772
+ bne .L294
15481773 mov r3, #22
1549
- mov r0, r7
1550
- str r3, [r8, #2056]
1774
+ add r9, r9, fp
1775
+ str r3, [r9, #2056]
1776
+ mov r0, r5
15511777 bl NandcFlashDeCs
1552
- ldr r3, .L260+12
1553
- add r7, r3, r7
1554
- strb r6, [r7, #-1880]
1778
+ ldr r3, .L297+8
1779
+ add r5, r3, r5
1780
+ strb r8, [r5, #-1876]
15551781 add sp, sp, #12
15561782 @ sp needed
1557
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
1558
-.L261:
1783
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
1784
+.L289:
1785
+ cmp r2, #7
1786
+ bne .L291
1787
+ mov r2, #160
1788
+ mov r1, #28
1789
+ smlabb r1, r2, r0, r1
1790
+ mov r2, #10
1791
+ sub r4, r4, #8
1792
+ smlabb r2, r2, r8, r1
1793
+ b .L296
1794
+.L291:
1795
+ cmp r2, #8
1796
+ addeq r4, r4, #20
1797
+ addeq r2, r8, r8, lsl #2
1798
+ beq .L296
1799
+ add r2, r8, #2
1800
+ add r2, r2, r0, lsl #3
1801
+ add r4, r4, r2, lsl #3
1802
+ sub r4, r4, #4
1803
+ b .L290
1804
+.L294:
1805
+ ldrb r2, [r3, #1]! @ zero_extendqisi2
1806
+ mov r0, #200
1807
+ str r2, [r10, #2052]
1808
+ str r3, [sp, #4]
1809
+ bl ndelay
1810
+ ldrsb r2, [r4, #1]!
1811
+ ldr r3, [sp, #4]
1812
+ str r2, [r10, #2048]
1813
+ b .L293
1814
+.L298:
15591815 .align 2
1560
-.L260:
1816
+.L297:
15611817 .word .LANCHOR0
1562
- .word .LANCHOR2-2732
1563
- .word .LANCHOR2-2704
1818
+ .word .LANCHOR2-2720
15641819 .word .LANCHOR2
15651820 .fnend
15661821 .size HynixSetRRPara, .-HynixSetRRPara
15671822 .align 2
15681823 .global FlashSetReadRetryDefault
1824
+ .syntax unified
1825
+ .arm
1826
+ .fpu softvfp
15691827 .type FlashSetReadRetryDefault, %function
15701828 FlashSetReadRetryDefault:
15711829 .fnstart
15721830 @ args = 0, pretend = 0, frame = 0
15731831 @ frame_needed = 0, uses_anonymous_args = 0
1574
- ldr r3, .L270
1575
- ldr r3, [r3, #44]
1832
+ ldr r3, .L309
1833
+ ldr r3, [r3, #48]
15761834 ldrb r3, [r3, #19] @ zero_extendqisi2
15771835 sub r3, r3, #1
15781836 cmp r3, #7
15791837 bxhi lr
1580
- stmfd sp!, {r4, r5, r6, lr}
1838
+ push {r4, r5, r6, lr}
15811839 .save {r4, r5, r6, lr}
15821840 mov r4, #0
1583
- ldr r5, .L270+4
1584
- ldr r6, .L270+8
1585
-.L263:
1586
- ldrb r3, [r5, r4, asl #3] @ zero_extendqisi2
1841
+ ldr r6, .L309+4
1842
+ sub r5, r6, #2720
1843
+ sub r5, r5, #4
1844
+.L302:
1845
+ ldr r3, .L309+8
15871846 uxtb r0, r4
1847
+ ldrb r3, [r3, r4, lsl #3] @ zero_extendqisi2
15881848 cmp r3, #173
1589
- bne .L264
1590
- ldrb r1, [r6, #-2731] @ zero_extendqisi2
1849
+ bne .L301
15911850 mov r3, #0
1592
- ldr r2, .L270+12
1851
+ mov r2, r5
1852
+ ldrb r1, [r6, #-2727] @ zero_extendqisi2
15931853 bl HynixSetRRPara
1594
-.L264:
1854
+.L301:
15951855 add r4, r4, #1
15961856 cmp r4, #4
1597
- bne .L263
1598
- ldmfd sp!, {r4, r5, r6, pc}
1599
-.L271:
1857
+ bne .L302
1858
+ pop {r4, r5, r6, pc}
1859
+.L310:
16001860 .align 2
1601
-.L270:
1861
+.L309:
16021862 .word .LANCHOR0
1603
- .word IDByte
16041863 .word .LANCHOR2
1605
- .word .LANCHOR2-2728
1864
+ .word IDByte
16061865 .fnend
16071866 .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault
16081867 .align 2
1609
- .global FlashReadStatusEN
1610
- .type FlashReadStatusEN, %function
1611
-FlashReadStatusEN:
1612
- .fnstart
1613
- @ args = 0, pretend = 0, frame = 0
1614
- @ frame_needed = 0, uses_anonymous_args = 0
1615
- ldr ip, .L283
1616
- stmfd sp!, {r3, r4, r5, lr}
1617
- .save {r3, r4, r5, lr}
1618
- add r0, ip, r0, asl #3
1619
- ldr r3, [ip, #44]
1620
- ldrb r5, [r0, #16] @ zero_extendqisi2
1621
- ldr r4, [r0, #12]
1622
- ldrb r3, [r3, #8] @ zero_extendqisi2
1623
- cmp r3, #2
1624
- mov r3, r5, asl #8
1625
- addne r3, r4, r3
1626
- add r5, r5, #8
1627
- movne r2, #112
1628
- strne r2, [r3, #2056]
1629
- bne .L277
1630
- cmp r2, #0
1631
- add r3, r4, r3
1632
- ldrneb r2, [ip, #62] @ zero_extendqisi2
1633
- ldreqb r2, [ip, #61] @ zero_extendqisi2
1634
- str r2, [r3, #2056]
1635
- ldrb r0, [ip, #63] @ zero_extendqisi2
1636
- cmp r0, #0
1637
- addne ip, r4, r5, asl #8
1638
- movne r2, #0
1639
- beq .L277
1640
-.L276:
1641
- cmp r2, r0
1642
- bcs .L277
1643
- mov r3, r2, asl #3
1644
- add r2, r2, #1
1645
- mov r3, r1, lsr r3
1646
- uxtb r3, r3
1647
- str r3, [ip, #4]
1648
- b .L276
1649
-.L277:
1650
- mov r0, #80
1651
- bl NandcDelayns
1652
- ldr r0, [r4, r5, asl #8]
1653
- uxtb r0, r0
1654
- ldmfd sp!, {r3, r4, r5, pc}
1655
-.L284:
1656
- .align 2
1657
-.L283:
1658
- .word .LANCHOR0
1659
- .fnend
1660
- .size FlashReadStatusEN, .-FlashReadStatusEN
1661
- .align 2
1662
- .global FlashWaitReadyEN
1663
- .type FlashWaitReadyEN, %function
1664
-FlashWaitReadyEN:
1665
- .fnstart
1666
- @ args = 0, pretend = 0, frame = 0
1667
- @ frame_needed = 0, uses_anonymous_args = 0
1668
- stmfd sp!, {r4, r5, r6, lr}
1669
- .save {r4, r5, r6, lr}
1670
- mov r4, r0
1671
- mov r5, r1
1672
- mov r6, r2
1673
-.L286:
1674
- mov r0, r4
1675
- mov r1, r5
1676
- mov r2, r6
1677
- bl FlashReadStatusEN
1678
- cmp r0, #255
1679
- beq .L286
1680
- tst r0, #64
1681
- ldmnefd sp!, {r4, r5, r6, pc}
1682
- mov r0, #1
1683
- mov r1, #3
1684
- bl usleep_range
1685
- b .L286
1686
- .fnend
1687
- .size FlashWaitReadyEN, .-FlashWaitReadyEN
1688
- .align 2
16891868 .global FlashWaitCmdDone
1869
+ .syntax unified
1870
+ .arm
1871
+ .fpu softvfp
16901872 .type FlashWaitCmdDone, %function
16911873 FlashWaitCmdDone:
16921874 .fnstart
16931875 @ args = 0, pretend = 0, frame = 0
16941876 @ frame_needed = 0, uses_anonymous_args = 0
1695
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
1696
- .save {r3, r4, r5, r6, r7, lr}
1697
- ldr r5, .L300
1698
- add r4, r5, r0, asl #4
1699
- ldr r3, [r4, #3204]
1700
- ldrb r7, [r4, #3196] @ zero_extendqisi2
1877
+ push {r4, r5, r6, r7, r8, lr}
1878
+ .save {r4, r5, r6, r7, r8, lr}
1879
+ ldr r5, .L319
1880
+ add r4, r5, r0, lsl #4
1881
+ ldr r3, [r4, #3208]
17011882 cmp r3, #0
1702
- beq .L294
1883
+ beq .L313
1884
+ ldrb r7, [r4, #3200] @ zero_extendqisi2
17031885 mov r6, r0
1886
+ add r5, r5, r6, lsl #2
17041887 mov r0, r7
1705
- add r5, r5, r6, asl #2
17061888 bl NandcFlashCs
1707
- ldr r1, [r4, #3200]
1889
+ ldr r2, [r5, #3168]
17081890 mov r0, r7
1709
- ldr r2, [r5, #3164]
1891
+ ldr r1, [r4, #3204]
17101892 adds r2, r2, #0
17111893 movne r2, #1
17121894 bl FlashWaitReadyEN
1713
- mov r5, r0
1895
+ mov r1, r0
17141896 mov r0, r7
17151897 bl NandcFlashDeCs
1716
- ldr r2, [r4, #3204]
1717
- sbfx r3, r5, #0, #1
1718
- str r3, [r2]
1719
- mov r2, #0
1720
- ldr r1, [r4, #3208]
1721
- str r2, [r4, #3204]
1722
- cmp r1, r2
1723
- strne r3, [r1]
1724
- strne r2, [r4, #3208]
1725
-.L294:
1898
+ ldr r3, [r4, #3208]
1899
+ sbfx r0, r1, #0, #1
1900
+ str r0, [r3]
1901
+ mov r3, #0
1902
+ ldr r2, [r4, #3212]
1903
+ str r3, [r4, #3208]
1904
+ cmp r2, r3
1905
+ strne r0, [r2]
1906
+ strne r3, [r4, #3212]
1907
+.L313:
17261908 mov r0, #0
1727
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
1728
-.L301:
1909
+ pop {r4, r5, r6, r7, r8, pc}
1910
+.L320:
17291911 .align 2
1730
-.L300:
1912
+.L319:
17311913 .word .LANCHOR0
17321914 .fnend
17331915 .size FlashWaitCmdDone, .-FlashWaitCmdDone
17341916 .align 2
1735
- .type flash_read_ecc, %function
1736
-flash_read_ecc:
1917
+ .global NandcDelayns
1918
+ .syntax unified
1919
+ .arm
1920
+ .fpu softvfp
1921
+ .type NandcDelayns, %function
1922
+NandcDelayns:
17371923 .fnstart
17381924 @ args = 0, pretend = 0, frame = 0
17391925 @ frame_needed = 0, uses_anonymous_args = 0
1740
- ldr r2, .L304
1741
- stmfd sp!, {r4, lr}
1926
+ push {r4, lr}
17421927 .save {r4, lr}
1743
- add r0, r2, r0, asl #3
1744
- ldrb r4, [r0, #16] @ zero_extendqisi2
1745
- ldr r3, [r0, #12]
1746
- mov r0, #80
1747
- add r4, r3, r4, asl #8
1748
- mov r3, #122
1749
- str r3, [r4, #2056]
1750
- bl NandcDelayns
1751
- ldr r3, [r4, #2048]
1752
- ldr r0, [r4, #2048]
1753
- and r3, r3, #15
1754
- and r0, r0, #15
1755
- cmp r0, r3
1756
- movcc r0, r3
1757
- ldr r3, [r4, #2048]
1758
- and r3, r3, #15
1759
- cmp r0, r3
1760
- movcc r0, r3
1761
- ldr r3, [r4, #2048]
1762
- and r3, r3, #15
1763
- cmp r0, r3
1764
- movcc r0, r3
1765
- ldmfd sp!, {r4, pc}
1766
-.L305:
1767
- .align 2
1768
-.L304:
1769
- .word .LANCHOR0
1928
+ bl ndelay
1929
+ mov r0, #0
1930
+ pop {r4, pc}
17701931 .fnend
1771
- .size flash_read_ecc, .-flash_read_ecc
1932
+ .size NandcDelayns, .-NandcDelayns
17721933 .align 2
17731934 .global NandcWaitFlashReadyNoDelay
1935
+ .syntax unified
1936
+ .arm
1937
+ .fpu softvfp
17741938 .type NandcWaitFlashReadyNoDelay, %function
17751939 NandcWaitFlashReadyNoDelay:
17761940 .fnstart
17771941 @ args = 0, pretend = 0, frame = 8
17781942 @ frame_needed = 0, uses_anonymous_args = 0
1779
- ldr r3, .L312
1780
- stmfd sp!, {r0, r1, r2, r4, r5, lr}
1943
+ ldr r3, .L329
1944
+ push {r0, r1, r2, r4, r5, lr}
17811945 .save {r4, r5, lr}
17821946 .pad #12
1783
- add r0, r3, r0, asl #3
1784
- ldr r4, .L312+4
1785
- ldr r5, [r0, #12]
1786
-.L308:
1947
+ ldr r4, .L329+4
1948
+ ldr r5, [r3, r0, lsl #3]
1949
+.L325:
17871950 ldr r3, [r5]
17881951 str r3, [sp, #4]
17891952 ldr r3, [sp, #4]
17901953 tst r3, #512
1791
- bne .L309
1954
+ bne .L326
17921955 mov r0, #10
1793
- bl NandcDelayns
1956
+ bl ndelay
17941957 subs r4, r4, #1
1795
- bne .L308
1958
+ bne .L325
17961959 mvn r0, #0
1797
- b .L307
1798
-.L309:
1799
- mov r0, #0
1800
-.L307:
1960
+.L323:
18011961 add sp, sp, #12
18021962 @ sp needed
1803
- ldmfd sp!, {r4, r5, pc}
1804
-.L313:
1963
+ pop {r4, r5, pc}
1964
+.L326:
1965
+ mov r0, #0
1966
+ b .L323
1967
+.L330:
18051968 .align 2
1806
-.L312:
1969
+.L329:
18071970 .word .LANCHOR0
18081971 .word 100000
18091972 .fnend
18101973 .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay
18111974 .align 2
18121975 .global NandcWaitFlashReady
1976
+ .syntax unified
1977
+ .arm
1978
+ .fpu softvfp
18131979 .type NandcWaitFlashReady, %function
18141980 NandcWaitFlashReady:
18151981 .fnstart
18161982 @ args = 0, pretend = 0, frame = 8
18171983 @ frame_needed = 0, uses_anonymous_args = 0
1818
- ldr r3, .L320
1819
- stmfd sp!, {r0, r1, r2, r4, r5, lr}
1984
+ push {r0, r1, r2, r4, r5, lr}
18201985 .save {r4, r5, lr}
18211986 .pad #12
1822
- add r0, r3, r0, asl #3
1823
- ldr r4, .L320+4
1824
- ldr r5, [r0, #12]
1987
+ ldr r3, .L337
1988
+ ldr r4, .L337+4
1989
+ ldr r5, [r3, r0, lsl #3]
18251990 mov r0, #130
1826
- bl NandcDelayns
1827
-.L316:
1991
+ bl ndelay
1992
+.L333:
18281993 ldr r3, [r5]
18291994 str r3, [sp, #4]
18301995 ldr r3, [sp, #4]
18311996 tst r3, #512
1832
- bne .L317
1833
- mov r0, #1
1997
+ bne .L334
18341998 mov r1, #2
1999
+ mov r0, #1
18352000 bl usleep_range
18362001 subs r4, r4, #1
1837
- bne .L316
2002
+ bne .L333
18382003 mvn r0, #0
1839
- b .L315
1840
-.L317:
1841
- mov r0, #0
1842
-.L315:
2004
+.L331:
18432005 add sp, sp, #12
18442006 @ sp needed
1845
- ldmfd sp!, {r4, r5, pc}
1846
-.L321:
2007
+ pop {r4, r5, pc}
2008
+.L334:
2009
+ mov r0, #0
2010
+ b .L331
2011
+.L338:
18472012 .align 2
1848
-.L320:
2013
+.L337:
18492014 .word .LANCHOR0
18502015 .word 100000
18512016 .fnend
18522017 .size NandcWaitFlashReady, .-NandcWaitFlashReady
18532018 .align 2
18542019 .global FlashReset
2020
+ .syntax unified
2021
+ .arm
2022
+ .fpu softvfp
18552023 .type FlashReset, %function
18562024 FlashReset:
18572025 .fnstart
18582026 @ args = 0, pretend = 0, frame = 0
18592027 @ frame_needed = 0, uses_anonymous_args = 0
1860
- ldr r3, .L324
1861
- stmfd sp!, {r4, r5, r6, lr}
2028
+ ldr r3, .L341
2029
+ push {r4, r5, r6, lr}
18622030 .save {r4, r5, r6, lr}
1863
- add r3, r3, r0, asl #3
18642031 mov r4, r0
1865
- ldrb r6, [r3, #16] @ zero_extendqisi2
1866
- ldr r5, [r3, #12]
2032
+ ldr r5, [r3, r0, lsl #3]
2033
+ add r3, r3, r0, lsl #3
2034
+ ldrb r6, [r3, #4] @ zero_extendqisi2
18672035 bl NandcFlashCs
18682036 mov r3, #255
18692037 mov r0, r4
1870
- add r5, r5, r6, asl #8
2038
+ add r5, r5, r6, lsl #8
18712039 str r3, [r5, #2056]
18722040 bl NandcWaitFlashReady
18732041 mov r0, r4
1874
- ldmfd sp!, {r4, r5, r6, lr}
2042
+ pop {r4, r5, r6, lr}
18752043 b NandcFlashDeCs
1876
-.L325:
2044
+.L342:
18772045 .align 2
1878
-.L324:
2046
+.L341:
18792047 .word .LANCHOR0
18802048 .fnend
18812049 .size FlashReset, .-FlashReset
18822050 .align 2
18832051 .global flash_enter_slc_mode
2052
+ .syntax unified
2053
+ .arm
2054
+ .fpu softvfp
18842055 .type flash_enter_slc_mode, %function
18852056 flash_enter_slc_mode:
18862057 .fnstart
18872058 @ args = 0, pretend = 0, frame = 0
18882059 @ frame_needed = 0, uses_anonymous_args = 0
1889
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
2060
+ push {r4, r5, r6, r7, r8, lr}
18902061 .save {r4, r5, r6, r7, r8, lr}
1891
- ldr r6, .L333
1892
- ldrb r3, [r6, #-2744] @ zero_extendqisi2
2062
+ ldr r6, .L350
2063
+ ldrb r3, [r6, #-2740] @ zero_extendqisi2
18932064 cmp r3, #0
1894
- ldmeqfd sp!, {r4, r5, r6, r7, r8, pc}
2065
+ popeq {r4, r5, r6, r7, r8, pc}
18952066 mov r5, r0
18962067 bl NandcFlashCs
1897
- ldr r3, .L333+4
1898
- add r3, r3, r5, asl #3
1899
- ldrb r8, [r3, #16] @ zero_extendqisi2
1900
- ldr r7, [r3, #12]
1901
- ldr r3, .L333+8
1902
- mov r8, r8, asl #8
1903
- ldrb r3, [r3, r5, asl #3] @ zero_extendqisi2
2068
+ ldr r3, .L350+4
2069
+ ldr r7, [r3, r5, lsl #3]
2070
+ add r3, r3, r5, lsl #3
2071
+ ldrb r8, [r3, #4] @ zero_extendqisi2
2072
+ ldr r3, .L350+8
2073
+ ldrb r3, [r3, r5, lsl #3] @ zero_extendqisi2
2074
+ lsl r8, r8, #8
19042075 cmp r3, #44
1905
- bne .L328
2076
+ bne .L345
19062077 add r4, r7, r8
19072078 mov r3, #239
1908
- mov r0, #50
19092079 str r3, [r4, #2056]
19102080 mov r3, #145
19112081 str r3, [r4, #2052]
1912
- bl NandcDelayns
2082
+ mov r0, #50
2083
+ bl ndelay
19132084 mov r3, #0
19142085 mov r2, #1
19152086 str r3, [r4, #2048]
....@@ -1917,21 +2088,21 @@
19172088 str r2, [r4, #2048]
19182089 str r3, [r4, #2048]
19192090 str r3, [r4, #2048]
1920
- bl NandcDelayns
1921
-.L328:
1922
- add r7, r7, r8
2091
+ bl ndelay
2092
+.L345:
19232093 mov r0, r5
2094
+ add r7, r7, r8
19242095 bl NandcWaitFlashReadyNoDelay
19252096 mov r3, #218
19262097 mov r0, r5
19272098 str r3, [r7, #2056]
19282099 bl NandcWaitFlashReady
19292100 mov r3, #2
1930
- strb r3, [r6, #-1876]
1931
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
1932
-.L334:
2101
+ strb r3, [r6, #-1872]
2102
+ pop {r4, r5, r6, r7, r8, pc}
2103
+.L351:
19332104 .align 2
1934
-.L333:
2105
+.L350:
19352106 .word .LANCHOR2
19362107 .word .LANCHOR0
19372108 .word IDByte
....@@ -1939,35 +2110,38 @@
19392110 .size flash_enter_slc_mode, .-flash_enter_slc_mode
19402111 .align 2
19412112 .global flash_exit_slc_mode
2113
+ .syntax unified
2114
+ .arm
2115
+ .fpu softvfp
19422116 .type flash_exit_slc_mode, %function
19432117 flash_exit_slc_mode:
19442118 .fnstart
19452119 @ args = 0, pretend = 0, frame = 0
19462120 @ frame_needed = 0, uses_anonymous_args = 0
1947
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
2121
+ push {r4, r5, r6, r7, r8, lr}
19482122 .save {r4, r5, r6, r7, r8, lr}
1949
- ldr r6, .L342
1950
- ldrb r3, [r6, #-2744] @ zero_extendqisi2
2123
+ ldr r6, .L359
2124
+ ldrb r3, [r6, #-2740] @ zero_extendqisi2
19512125 cmp r3, #0
1952
- ldmeqfd sp!, {r4, r5, r6, r7, r8, pc}
2126
+ popeq {r4, r5, r6, r7, r8, pc}
19532127 mov r5, r0
19542128 bl NandcFlashCs
1955
- ldr r3, .L342+4
1956
- add r3, r3, r5, asl #3
1957
- ldrb r8, [r3, #16] @ zero_extendqisi2
1958
- ldr r7, [r3, #12]
1959
- ldr r3, .L342+8
1960
- mov r8, r8, asl #8
1961
- ldrb r3, [r3, r5, asl #3] @ zero_extendqisi2
2129
+ ldr r3, .L359+4
2130
+ ldr r7, [r3, r5, lsl #3]
2131
+ add r3, r3, r5, lsl #3
2132
+ ldrb r8, [r3, #4] @ zero_extendqisi2
2133
+ ldr r3, .L359+8
2134
+ ldrb r3, [r3, r5, lsl #3] @ zero_extendqisi2
2135
+ lsl r8, r8, #8
19622136 cmp r3, #44
1963
- bne .L337
2137
+ bne .L354
19642138 add r4, r7, r8
19652139 mov r3, #239
1966
- mov r0, #50
19672140 str r3, [r4, #2056]
19682141 mov r3, #145
19692142 str r3, [r4, #2052]
1970
- bl NandcDelayns
2143
+ mov r0, #50
2144
+ bl ndelay
19712145 mov r3, #2
19722146 mov r0, #100
19732147 str r3, [r4, #2048]
....@@ -1976,21 +2150,21 @@
19762150 mov r3, #0
19772151 str r3, [r4, #2048]
19782152 str r3, [r4, #2048]
1979
- bl NandcDelayns
1980
-.L337:
1981
- add r7, r7, r8
2153
+ bl ndelay
2154
+.L354:
19822155 mov r0, r5
2156
+ add r7, r7, r8
19832157 bl NandcWaitFlashReadyNoDelay
19842158 mov r3, #223
19852159 mov r0, r5
19862160 str r3, [r7, #2056]
19872161 bl NandcWaitFlashReady
19882162 mov r3, #0
1989
- strb r3, [r6, #-1876]
1990
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
1991
-.L343:
2163
+ strb r3, [r6, #-1872]
2164
+ pop {r4, r5, r6, r7, r8, pc}
2165
+.L360:
19922166 .align 2
1993
-.L342:
2167
+.L359:
19942168 .word .LANCHOR2
19952169 .word .LANCHOR0
19962170 .word IDByte
....@@ -1998,12 +2172,15 @@
19982172 .size flash_exit_slc_mode, .-flash_exit_slc_mode
19992173 .align 2
20002174 .global FlashEraseBlock
2175
+ .syntax unified
2176
+ .arm
2177
+ .fpu softvfp
20012178 .type FlashEraseBlock, %function
20022179 FlashEraseBlock:
20032180 .fnstart
20042181 @ args = 0, pretend = 0, frame = 0
20052182 @ frame_needed = 0, uses_anonymous_args = 0
2006
- stmfd sp!, {r4, r5, r6, lr}
2183
+ push {r4, r5, r6, lr}
20072184 .save {r4, r5, r6, lr}
20082185 mov r4, r0
20092186 mov r5, r1
....@@ -2020,136 +2197,143 @@
20202197 mov r1, r5
20212198 mov r0, r4
20222199 bl FlashReadStatus
2023
- mov r5, r0
2200
+ mov r1, r0
20242201 mov r0, r4
20252202 bl NandcFlashDeCs
2026
- and r0, r5, #1
2027
- ldmfd sp!, {r4, r5, r6, pc}
2203
+ and r0, r1, #1
2204
+ pop {r4, r5, r6, pc}
20282205 .fnend
20292206 .size FlashEraseBlock, .-FlashEraseBlock
20302207 .align 2
20312208 .global FlashSetInterfaceMode
2209
+ .syntax unified
2210
+ .arm
2211
+ .fpu softvfp
20322212 .type FlashSetInterfaceMode, %function
20332213 FlashSetInterfaceMode:
20342214 .fnstart
20352215 @ args = 0, pretend = 0, frame = 8
20362216 @ frame_needed = 0, uses_anonymous_args = 0
2037
- ldr r3, .L369
2038
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
2217
+ ldr r3, .L386
2218
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
20392219 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
20402220 .pad #12
20412221 mov lr, #0
2042
- ldrb r2, [r3, #-1875] @ zero_extendqisi2
2043
- mov r4, #239
2044
- ldr r7, .L369+4
2045
- mov r5, #128
2046
- and r3, r2, #1
2047
- and r2, r2, #4
2048
- str r3, [sp, #4]
2049
- mov r6, #1
2050
- uxtb r3, r2
2051
- mov r8, #35
2222
+ ldr r4, .L386+4
2223
+ mov r5, #239
2224
+ mov r6, #128
2225
+ mov r7, #1
2226
+ ldrb r3, [r3, #-1871] @ zero_extendqisi2
2227
+ mov r9, #35
2228
+ mov r8, r4
2229
+ mov r10, #32
2230
+ and r2, r3, #4
2231
+ and r3, r3, #1
2232
+ str r2, [sp, #4]
20522233 mov r2, lr
2053
- mov r9, #32
2054
- mov r10, #5
20552234 str r3, [sp]
2056
-.L356:
2057
- ldr r3, .L369+8
2058
- ldrb ip, [lr, r7] @ zero_extendqisi2
2059
- ldr r1, [r3, lr]!
2235
+.L373:
2236
+ ldr r1, .L386+8
2237
+ add r3, r4, lr
2238
+ ldrb r3, [r3, #4] @ zero_extendqisi2
2239
+ ldrb ip, [lr, r1] @ zero_extendqisi2
20602240 cmp ip, #69
20612241 cmpne ip, #152
2062
- ldrb r3, [r3, #4] @ zero_extendqisi2
2063
- beq .L347
2242
+ beq .L364
20642243 cmp ip, #44
20652244 cmpne ip, #173
2066
- bne .L348
2067
-.L347:
2245
+ bne .L365
2246
+.L364:
20682247 cmp r0, #1
2069
- bne .L349
2070
- ldr fp, [sp, #4]
2071
- cmp fp, #0
2072
- beq .L348
2073
- mov r3, r3, asl #8
2074
- cmp ip, #173
2075
- add fp, r1, r3
2076
- str r4, [fp, #2056]
2077
- streq r0, [fp, #2052]
2078
- beq .L368
2079
- cmp ip, #44
2080
- streq r0, [fp, #2052]
2081
- strne r5, [fp, #2052]
2082
- streq r10, [fp, #2048]
2083
- strne r0, [fp, #2048]
2084
- b .L354
2085
-.L349:
2248
+ ldr r1, [r8, lr]
2249
+ bne .L366
20862250 ldr fp, [sp]
20872251 cmp fp, #0
2088
- beq .L348
2089
- mov r3, r3, asl #8
2252
+ beq .L365
2253
+ lsl r3, r3, #8
20902254 cmp ip, #173
20912255 add fp, r1, r3
2092
- str r4, [fp, #2056]
2093
- streq r6, [fp, #2052]
2094
- streq r9, [fp, #2048]
2095
- beq .L354
2256
+ str r5, [fp, #2056]
2257
+ streq r0, [fp, #2052]
2258
+ beq .L385
20962259 cmp ip, #44
2097
- streq r6, [fp, #2052]
2098
- streq r8, [fp, #2048]
2099
- beq .L354
2100
- str r5, [fp, #2052]
2101
-.L368:
2102
- str r2, [fp, #2048]
2103
-.L354:
2260
+ moveq ip, #5
2261
+ streq r0, [fp, #2052]
2262
+ strne r6, [fp, #2052]
2263
+ streq ip, [fp, #2048]
2264
+ strne r0, [fp, #2048]
2265
+.L371:
21042266 add r3, r1, r3
21052267 str r2, [r3, #2048]
21062268 str r2, [r3, #2048]
21072269 str r2, [r3, #2048]
2108
-.L348:
2270
+.L365:
21092271 add lr, lr, #8
21102272 cmp lr, #32
2111
- bne .L356
2273
+ bne .L373
21122274 mov r0, #0
21132275 bl NandcWaitFlashReady
21142276 mov r0, #0
21152277 add sp, sp, #12
21162278 @ sp needed
2117
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2118
-.L370:
2279
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2280
+.L366:
2281
+ ldr fp, [sp, #4]
2282
+ cmp fp, #0
2283
+ beq .L365
2284
+ lsl r3, r3, #8
2285
+ cmp ip, #173
2286
+ add fp, r1, r3
2287
+ str r5, [fp, #2056]
2288
+ streq r7, [fp, #2052]
2289
+ streq r10, [fp, #2048]
2290
+ beq .L371
2291
+ cmp ip, #44
2292
+ streq r7, [fp, #2052]
2293
+ streq r9, [fp, #2048]
2294
+ beq .L371
2295
+ str r6, [fp, #2052]
2296
+.L385:
2297
+ str r2, [fp, #2048]
2298
+ b .L371
2299
+.L387:
21192300 .align 2
2120
-.L369:
2301
+.L386:
21212302 .word .LANCHOR2
2303
+ .word .LANCHOR0
21222304 .word IDByte
2123
- .word .LANCHOR0+12
21242305 .fnend
21252306 .size FlashSetInterfaceMode, .-FlashSetInterfaceMode
21262307 .align 2
21272308 .global FlashReadSpare
2309
+ .syntax unified
2310
+ .arm
2311
+ .fpu softvfp
21282312 .type FlashReadSpare, %function
21292313 FlashReadSpare:
21302314 .fnstart
21312315 @ args = 0, pretend = 0, frame = 0
21322316 @ frame_needed = 0, uses_anonymous_args = 0
2133
- ldr ip, .L373
2134
- stmfd sp!, {r3, r4, r5, lr}
2135
- .save {r3, r4, r5, lr}
2136
- add ip, ip, r0, asl #3
2137
- ldr r3, .L373+4
2317
+ ldr ip, .L390
2318
+ ldr r3, .L390+4
2319
+ push {r4, r5, r6, lr}
2320
+ .save {r4, r5, r6, lr}
21382321 mov r5, r2
2139
- ldrb r2, [ip, #16] @ zero_extendqisi2
2140
- ldr r4, [ip, #12]
2141
- ldrb r3, [r3, #265] @ zero_extendqisi2
2142
- add r4, r4, r2, asl #8
2322
+ ldr r4, [ip, r0, lsl #3]
2323
+ add ip, ip, r0, lsl #3
2324
+ ldrb r3, [r3, #477] @ zero_extendqisi2
2325
+ ldrb r2, [ip, #4] @ zero_extendqisi2
2326
+ lsl r3, r3, #9
2327
+ add r4, r4, r2, lsl #8
21432328 mov r2, #0
2144
- mov r3, r3, asl #9
21452329 str r2, [r4, #2056]
21462330 str r3, [r4, #2052]
2147
- mov r3, r3, lsr #8
2331
+ lsr r3, r3, #8
21482332 str r3, [r4, #2052]
21492333 uxtb r3, r1
21502334 str r3, [r4, #2052]
2151
- mov r3, r1, lsr #8
2152
- mov r1, r1, lsr #16
2335
+ lsr r3, r1, #8
2336
+ lsr r1, r1, #16
21532337 str r3, [r4, #2052]
21542338 mov r3, #48
21552339 str r1, [r4, #2052]
....@@ -2157,28 +2341,31 @@
21572341 bl NandcWaitFlashReady
21582342 ldr r3, [r4, #2048]
21592343 strb r3, [r5]
2160
- ldmfd sp!, {r3, r4, r5, pc}
2161
-.L374:
2344
+ pop {r4, r5, r6, pc}
2345
+.L391:
21622346 .align 2
2163
-.L373:
2347
+.L390:
21642348 .word .LANCHOR0
21652349 .word .LANCHOR1
21662350 .fnend
21672351 .size FlashReadSpare, .-FlashReadSpare
21682352 .align 2
21692353 .global SandiskProgTestBadBlock
2354
+ .syntax unified
2355
+ .arm
2356
+ .fpu softvfp
21702357 .type SandiskProgTestBadBlock, %function
21712358 SandiskProgTestBadBlock:
21722359 .fnstart
21732360 @ args = 0, pretend = 0, frame = 0
21742361 @ frame_needed = 0, uses_anonymous_args = 0
2175
- ldr r2, .L377
2176
- stmfd sp!, {r4, lr}
2362
+ ldr r3, .L394
2363
+ push {r4, lr}
21772364 .save {r4, lr}
2178
- add r2, r2, r0, asl #3
2179
- ldrb r4, [r2, #16] @ zero_extendqisi2
2180
- ldr r3, [r2, #12]
2181
- add r4, r3, r4, asl #8
2365
+ ldr r4, [r3, r0, lsl #3]
2366
+ add r3, r3, r0, lsl #3
2367
+ ldrb r3, [r3, #4] @ zero_extendqisi2
2368
+ add r4, r4, r3, lsl #8
21822369 mov r3, #162
21832370 str r3, [r4, #2056]
21842371 mov r3, #128
....@@ -2188,165 +2375,179 @@
21882375 str r3, [r4, #2052]
21892376 uxtb r3, r1
21902377 str r3, [r4, #2052]
2191
- mov r3, r1, lsr #8
2192
- mov r1, r1, lsr #16
2378
+ lsr r3, r1, #8
2379
+ lsr r1, r1, #16
21932380 str r3, [r4, #2052]
2194
- str r1, [r4, #2052]
21952381 mov r3, #16
2382
+ str r1, [r4, #2052]
21962383 str r3, [r4, #2056]
21972384 bl NandcWaitFlashReady
21982385 mov r3, #112
21992386 mov r0, #80
22002387 str r3, [r4, #2056]
2201
- bl NandcDelayns
2388
+ bl ndelay
22022389 ldr r0, [r4, #2048]
22032390 and r0, r0, #1
2204
- ldmfd sp!, {r4, pc}
2205
-.L378:
2391
+ pop {r4, pc}
2392
+.L395:
22062393 .align 2
2207
-.L377:
2394
+.L394:
22082395 .word .LANCHOR0
22092396 .fnend
22102397 .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock
22112398 .align 2
22122399 .global SandiskSetRRPara
2400
+ .syntax unified
2401
+ .arm
2402
+ .fpu softvfp
22132403 .type SandiskSetRRPara, %function
22142404 SandiskSetRRPara:
22152405 .fnstart
22162406 @ args = 0, pretend = 0, frame = 0
22172407 @ frame_needed = 0, uses_anonymous_args = 0
2218
- stmfd sp!, {r3, r4, r5, lr}
2219
- .save {r3, r4, r5, lr}
22202408 mov r3, #239
2221
- mov r5, r0
2409
+ push {r4, r5, r6, lr}
2410
+ .save {r4, r5, r6, lr}
22222411 str r3, [r0, #8]
22232412 mov r3, #17
2413
+ mov r5, r0
2414
+ mov r4, r1
22242415 str r3, [r0, #4]
22252416 mov r0, #200
2226
- mov r4, r1
2227
- bl NandcDelayns
2228
- ldr r1, .L387
2229
- ldr r0, .L387+4
2230
- add r4, r4, r4, asl #2
2231
- ldr ip, .L387+8
2232
- sub lr, r1, #48
2417
+ bl ndelay
2418
+ ldr r1, .L403
2419
+ add r4, r4, r4, lsl #2
2420
+ ldr r0, .L403+4
22332421 mov r2, #0
2234
-.L380:
2422
+ ldr ip, .L403+8
2423
+ sub lr, r1, #45
2424
+.L397:
22352425 ldrb r3, [r0] @ zero_extendqisi2
22362426 cmp r2, r3
2237
- bcs .L386
2427
+ bcc .L400
2428
+ mov r0, #0
2429
+ pop {r4, r5, r6, lr}
2430
+ b NandcWaitFlashReady
2431
+.L400:
22382432 ldrb r3, [ip] @ zero_extendqisi2
22392433 cmp r3, #67
22402434 add r3, r2, r4
22412435 addeq r3, lr, r3
22422436 addne r3, r1, r3
2243
- add r2, r2, #1
22442437 ldrsb r3, [r3, #5]
2438
+ add r2, r2, #1
22452439 str r3, [r5]
2246
- b .L380
2247
-.L386:
2248
- mov r0, #0
2249
- ldmfd sp!, {r3, r4, r5, lr}
2250
- b NandcWaitFlashReady
2251
-.L388:
2440
+ b .L397
2441
+.L404:
22522442 .align 2
2253
-.L387:
2254
- .word .LANCHOR1+3216
2443
+.L403:
2444
+ .word .LANCHOR1+301
22552445 .word g_maxRegNum
22562446 .word g_retryMode
22572447 .fnend
22582448 .size SandiskSetRRPara, .-SandiskSetRRPara
22592449 .align 2
22602450 .global micron_auto_read_calibration_config
2451
+ .syntax unified
2452
+ .arm
2453
+ .fpu softvfp
22612454 .type micron_auto_read_calibration_config, %function
22622455 micron_auto_read_calibration_config:
22632456 .fnstart
22642457 @ args = 0, pretend = 0, frame = 0
22652458 @ frame_needed = 0, uses_anonymous_args = 0
2266
- stmfd sp!, {r3, r4, r5, lr}
2267
- .save {r3, r4, r5, lr}
2268
- mov r4, r0
2269
- mov r5, r1
2459
+ push {r4, r5, r6, lr}
2460
+ .save {r4, r5, r6, lr}
2461
+ mov r5, r0
2462
+ mov r6, r1
22702463 bl NandcWaitFlashReady
2271
- ldr r3, .L391
2464
+ ldr r0, .L407
2465
+ ldr r4, [r0, r5, lsl #3]
2466
+ add r0, r0, r5, lsl #3
2467
+ ldrb r3, [r0, #4] @ zero_extendqisi2
22722468 mov r0, #200
2273
- add r2, r3, r4, asl #3
2274
- ldrb r4, [r2, #16] @ zero_extendqisi2
2275
- ldr r3, [r2, #12]
2276
- add r4, r3, r4, asl #8
2469
+ add r4, r4, r3, lsl #8
22772470 mov r3, #239
22782471 str r3, [r4, #2056]
22792472 mov r3, #150
22802473 str r3, [r4, #2052]
2281
- bl NandcDelayns
2282
- str r5, [r4, #2048]
2474
+ bl ndelay
22832475 mov r3, #0
2476
+ str r6, [r4, #2048]
22842477 str r3, [r4, #2048]
22852478 str r3, [r4, #2048]
22862479 str r3, [r4, #2048]
2287
- ldmfd sp!, {r3, r4, r5, pc}
2288
-.L392:
2480
+ pop {r4, r5, r6, pc}
2481
+.L408:
22892482 .align 2
2290
-.L391:
2483
+.L407:
22912484 .word .LANCHOR0
22922485 .fnend
22932486 .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config
22942487 .align 2
22952488 .global FlashEraseSLc2KBlocks
2489
+ .syntax unified
2490
+ .arm
2491
+ .fpu softvfp
22962492 .type FlashEraseSLc2KBlocks, %function
22972493 FlashEraseSLc2KBlocks:
22982494 .fnstart
22992495 @ args = 0, pretend = 0, frame = 8
23002496 @ frame_needed = 0, uses_anonymous_args = 0
2301
- stmfd sp!, {r4, r5, r6, r7, r8, r9, lr}
2302
- .save {r4, r5, r6, r7, r8, r9, lr}
2497
+ push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr}
2498
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
2499
+ .pad #16
23032500 mov r5, #0
2304
- ldr r8, .L405
2305
- .pad #20
2306
- sub sp, sp, #20
2501
+ ldr r8, .L420
23072502 mov r6, r0
23082503 mov r9, r1
23092504 mov r7, r5
2310
-.L394:
2505
+ ldr r10, .L420+4
2506
+.L410:
23112507 cmp r7, r9
2312
- beq .L404
2313
- rsb r3, r7, r9
2508
+ bne .L415
2509
+ mov r0, #0
2510
+ add sp, sp, #16
2511
+ @ sp needed
2512
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
2513
+.L415:
2514
+ sub r3, r9, r7
23142515 add r2, sp, #8
2315
- add r0, r6, r5
2316
- mov r1, #0
23172516 uxtb r3, r3
2517
+ mov r1, #0
2518
+ add r0, r6, r5
23182519 str r3, [sp]
23192520 add r3, sp, #12
23202521 bl LogAddr2PhyAddr
2321
- ldrb r2, [r8, #3152] @ zero_extendqisi2
2522
+ ldrb r2, [r8, #3156] @ zero_extendqisi2
23222523 ldr r3, [sp, #12]
2323
- cmp r3, r2
2324
- mvncs r3, #0
2325
- strcs r3, [r6, r5]
2326
- bcs .L396
2524
+ cmp r2, r3
2525
+ mvnls r3, #0
2526
+ strls r3, [r6, r5]
2527
+ bls .L412
23272528 add r2, r8, r3
2328
- add r3, r8, r3, asl #4
2329
- ldrb r4, [r2, #3156] @ zero_extendqisi2
2330
- strb r4, [r3, #3196]
2529
+ add r3, r8, r3, lsl #4
2530
+ ldrb r4, [r2, #3160] @ zero_extendqisi2
2531
+ strb r4, [r3, #3200]
23312532 mov r0, r4
23322533 bl NandcWaitFlashReady
23332534 mov r0, r4
23342535 bl NandcFlashCs
23352536 mov r2, #0
2336
- mov r0, r4
23372537 ldr r1, [sp, #8]
2538
+ mov r0, r4
23382539 bl FlashEraseCmd
23392540 mov r0, r4
23402541 bl NandcWaitFlashReady
23412542 mov r0, r4
23422543 ldr r1, [sp, #8]
23432544 bl FlashReadStatus
2344
- mov r2, #0
2345
- ldr r3, [sp, #8]
23462545 sbfx r0, r0, #0, #1
2546
+ ldr r1, [sp, #8]
23472547 str r0, [r6, r5]
2548
+ mov r2, #0
2549
+ ldr r3, [r8, #40]
23482550 mov r0, r4
2349
- ldr r1, [r8, #4]
23502551 add r1, r1, r3
23512552 bl FlashEraseCmd
23522553 mov r0, r4
....@@ -2359,387 +2560,431 @@
23592560 strne r3, [r6, r5]
23602561 ldr r3, [r6, r5]
23612562 cmn r3, #1
2362
- bne .L398
2363
- ldr r0, .L405+4
2563
+ bne .L414
23642564 ldr r1, [sp, #8]
2565
+ mov r0, r10
23652566 bl printk
2366
-.L398:
2567
+.L414:
23672568 mov r0, r4
23682569 bl NandcFlashDeCs
2369
-.L396:
2570
+.L412:
23702571 add r7, r7, #1
23712572 add r5, r5, #36
2372
- b .L394
2373
-.L404:
2374
- mov r0, #0
2375
- add sp, sp, #20
2376
- @ sp needed
2377
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc}
2378
-.L406:
2573
+ b .L410
2574
+.L421:
23792575 .align 2
2380
-.L405:
2576
+.L420:
23812577 .word .LANCHOR0
23822578 .word .LC1
23832579 .fnend
23842580 .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks
23852581 .align 2
23862582 .global FlashEraseBlocks
2583
+ .syntax unified
2584
+ .arm
2585
+ .fpu softvfp
23872586 .type FlashEraseBlocks, %function
23882587 FlashEraseBlocks:
23892588 .fnstart
2390
- @ args = 0, pretend = 0, frame = 16
2589
+ @ args = 0, pretend = 0, frame = 8
23912590 @ frame_needed = 0, uses_anonymous_args = 0
2392
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2591
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23932592 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23942593 mov r8, r2
2395
- ldr r4, .L442
2396
- .pad #28
2397
- sub sp, sp, #28
2398
- ldrb r5, [r4] @ zero_extendqisi2
2594
+ ldr r4, .L455
2595
+ .pad #20
2596
+ sub sp, sp, #20
2597
+ ldrb r5, [r4, #36] @ zero_extendqisi2
23992598 cmp r5, #0
2400
- beq .L425
2599
+ moveq r9, r0
2600
+ moveq r10, r1
2601
+ beq .L424
24012602 mov r1, r2
24022603 bl FlashEraseSLc2KBlocks
2403
- b .L409
2404
-.L425:
2405
- ldr fp, .L442+4
2406
- mov r9, r0
2407
- mov r10, r1
2408
-.L408:
2409
- cmp r5, r8
2410
- bcs .L440
2604
+.L422:
2605
+ add sp, sp, #20
2606
+ @ sp needed
2607
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2608
+.L433:
24112609 mov r3, #36
2412
- mov r1, #0
2610
+ add r2, sp, #8
24132611 mul r6, r3, r5
2414
- add r2, sp, #16
2415
- add r3, r9, r6
2416
- str r3, [sp, #12]
2417
- rsb r3, r5, r8
2418
- ldr r0, [sp, #12]
2612
+ sub r3, r8, r5
24192613 uxtb r3, r3
2614
+ mov r1, #0
24202615 str r3, [sp]
2421
- add r3, sp, #20
2616
+ add r3, sp, #12
2617
+ add fp, r9, r6
2618
+ mov r0, fp
24222619 bl LogAddr2PhyAddr
2423
- ldrb r3, [r4, #3152] @ zero_extendqisi2
2620
+ ldrb r3, [r4, #3156] @ zero_extendqisi2
24242621 mov r7, r0
2425
- ldr r0, [sp, #20]
2426
- cmp r0, r3
2427
- mvncs r3, #0
2428
- strcs r3, [r9, r6]
2429
- bcs .L411
2430
- ldrb r3, [fp, #-1874] @ zero_extendqisi2
2622
+ ldr r0, [sp, #12]
2623
+ cmp r3, r0
2624
+ mvnls r3, #0
2625
+ strls r3, [r9, r6]
2626
+ bls .L427
2627
+ ldr r3, .L455+4
2628
+ ldrb r3, [r3, #-1870] @ zero_extendqisi2
24312629 cmp r3, #0
2432
- add r3, r4, r0, asl #4
2433
- ldr r3, [r3, #3204]
2630
+ add r3, r4, r0, lsl #4
24342631 moveq r7, #0
2632
+ ldr r3, [r3, #3208]
24352633 cmp r3, #0
2436
- beq .L413
2634
+ beq .L429
24372635 uxtb r0, r0
24382636 bl FlashWaitCmdDone
2439
-.L413:
2440
- ldr r2, [sp, #20]
2637
+.L429:
2638
+ ldr r2, [sp, #12]
24412639 cmp r7, #0
2442
- ldr r0, [sp, #12]
2443
- addne ip, r6, #36
2444
- addne ip, r9, ip
2445
- mov r3, r2, asl #4
2640
+ addne r6, r6, #36
2641
+ mov r0, #0
2642
+ addne r6, r9, r6
2643
+ lsl r3, r2, #4
24462644 add r2, r4, r2
24472645 add r1, r4, r3
24482646 add r3, r4, r3
2449
- ldrb r6, [r2, #3156] @ zero_extendqisi2
2647
+ str r0, [r1, #3212]
2648
+ ldr r0, [sp, #8]
2649
+ strne r6, [r1, #3212]
2650
+ ldrb r6, [r2, #3160] @ zero_extendqisi2
24502651 str r0, [r1, #3204]
2451
- mov r0, #0
2452
- str r0, [r1, #3208]
2453
- ldr r0, [sp, #16]
2454
- strne ip, [r1, #3208]
2455
- strb r6, [r3, #3196]
2456
- str r0, [r1, #3200]
2652
+ str fp, [r1, #3208]
24572653 mov r0, r6
2654
+ strb r6, [r3, #3200]
24582655 bl NandcFlashCs
24592656 cmp r10, #1
24602657 mov r0, r6
2461
- bne .L415
2462
- ldr r3, .L442+4
2463
- ldrb r3, [r3, #-2744] @ zero_extendqisi2
2658
+ bne .L431
2659
+ ldr r3, .L455+4
2660
+ ldrb r3, [r3, #-2740] @ zero_extendqisi2
24642661 cmp r3, #0
2465
- beq .L415
2662
+ beq .L431
24662663 bl flash_enter_slc_mode
2467
- b .L416
2468
-.L415:
2469
- bl flash_exit_slc_mode
2470
-.L416:
2471
- ldr r3, [sp, #20]
2664
+.L432:
2665
+ ldr r3, [sp, #12]
24722666 mov r0, r6
2473
- ldr r1, [sp, #16]
2667
+ ldr r1, [sp, #8]
24742668 add r5, r5, r7
2475
- add r3, r4, r3, asl #2
2476
- ldr r2, [r3, #3164]
2669
+ add r3, r4, r3, lsl #2
2670
+ ldr r2, [r3, #3168]
24772671 adds r2, r2, #0
24782672 movne r2, #1
24792673 bl FlashWaitReadyEN
2480
- mov r0, r6
24812674 mov r2, r7
2482
- ldr r1, [sp, #16]
2675
+ ldr r1, [sp, #8]
2676
+ mov r0, r6
24832677 bl FlashEraseCmd
24842678 mov r0, r6
24852679 bl NandcFlashDeCs
2486
-.L411:
2680
+.L427:
24872681 add r5, r5, #1
2488
- b .L408
2489
-.L440:
2490
- ldr r6, .L442+4
2682
+.L424:
2683
+ cmp r5, r8
2684
+ bcc .L433
2685
+ ldr r6, .L455+4
24912686 mov r5, #0
2492
- ldr r7, .L442+8
2493
-.L418:
2494
- ldrb r3, [r4, #3152] @ zero_extendqisi2
2687
+ ldr r7, .L455+8
2688
+.L434:
2689
+ ldrb r3, [r4, #3156] @ zero_extendqisi2
24952690 cmp r5, r3
2496
- bcs .L441
2691
+ bcc .L436
2692
+ ldr r3, .L455+4
2693
+ ldr r3, [r3, #-1868]
2694
+ cmp r3, #0
2695
+ bne .L437
2696
+.L438:
2697
+ mov r0, #0
2698
+ b .L422
2699
+.L431:
2700
+ bl flash_exit_slc_mode
2701
+ b .L432
2702
+.L436:
24972703 uxtb r0, r5
24982704 bl FlashWaitCmdDone
24992705 cmp r10, #1
2500
- bne .L419
2501
- ldrb r3, [r6, #-2744] @ zero_extendqisi2
2706
+ bne .L435
2707
+ ldrb r3, [r6, #-2740] @ zero_extendqisi2
25022708 cmp r3, #0
2503
- beq .L419
2504
- ldrb r0, [r7, r5, asl #4] @ zero_extendqisi2
2709
+ beq .L435
2710
+ ldrb r0, [r7, r5, lsl #4] @ zero_extendqisi2
25052711 bl flash_exit_slc_mode
2506
-.L419:
2712
+.L435:
25072713 add r5, r5, #1
2508
- b .L418
2509
-.L441:
2510
- ldr r3, .L442+4
2511
- ldr r3, [r3, #-1872]
2512
- cmp r3, #0
2513
- bne .L421
2514
-.L423:
2515
- mov r0, #0
2516
- b .L409
2517
-.L421:
2518
- ldr r3, .L442+12
2714
+ b .L434
2715
+.L437:
2716
+ ldr r3, .L455+12
25192717 ldrb r3, [r3] @ zero_extendqisi2
25202718 cmp r3, #69
2521
- bne .L423
2522
- mov r3, #0
2523
- mov r2, #36
2524
- mov r1, r3
2525
-.L422:
2719
+ moveq r3, #0
2720
+ moveq r2, #36
2721
+ moveq r1, r3
2722
+ bne .L438
2723
+.L439:
25262724 cmp r3, r8
2527
- beq .L423
2725
+ beq .L438
25282726 mul r0, r2, r3
25292727 add r3, r3, #1
25302728 str r1, [r9, r0]
2531
- b .L422
2532
-.L409:
2533
- add sp, sp, #28
2534
- @ sp needed
2535
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2536
-.L443:
2729
+ b .L439
2730
+.L456:
25372731 .align 2
2538
-.L442:
2732
+.L455:
25392733 .word .LANCHOR0
25402734 .word .LANCHOR2
2541
- .word .LANCHOR0+3196
2735
+ .word .LANCHOR0+3200
25422736 .word IDByte
25432737 .fnend
25442738 .size FlashEraseBlocks, .-FlashEraseBlocks
25452739 .align 2
25462740 .global HynixGetReadRetryDefault
2741
+ .syntax unified
2742
+ .arm
2743
+ .fpu softvfp
25472744 .type HynixGetReadRetryDefault, %function
25482745 HynixGetReadRetryDefault:
25492746 .fnstart
2550
- @ args = 0, pretend = 0, frame = 40
2747
+ @ args = 0, pretend = 0, frame = 48
25512748 @ frame_needed = 0, uses_anonymous_args = 0
2552
- ldr r3, .L553
2749
+ ldr r3, .L574
25532750 mvn r2, #83
2554
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2751
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
25552752 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
25562753 mov r4, r0
25572754 cmp r4, #2
2558
- strb r0, [r3, #-2732]
2559
- strb r2, [r3, #-2728]
2560
- mvn r0, #82
25612755 mvn r1, #81
2756
+ .pad #52
2757
+ sub sp, sp, #52
2758
+ strb r0, [r3, #-2728]
2759
+ mvn r0, #82
2760
+ strb r2, [r3, #-2724]
25622761 mvn r2, #80
2563
- .pad #44
2564
- sub sp, sp, #44
2565
- strb r0, [r3, #-2727]
2566
- strb r1, [r3, #-2726]
2567
- strb r2, [r3, #-2725]
2568
- bne .L445
2569
- mvn r2, #88
2570
- strb r2, [r3, #-2728]
2571
- ldr r3, .L553+4
2572
- mvn r2, #8
2573
- mov r5, #7
2574
- strb r2, [r3, #3401]
2575
- b .L506
2576
-.L445:
2577
- cmp r4, #3
2578
- bne .L447
2579
- mvn r2, #79
2580
- strb r2, [r3, #-2728]
2581
- mvn r2, #78
2582
- strb r2, [r3, #-2727]
2583
- mvn r2, #77
2584
- strb r2, [r3, #-2726]
2585
- mvn r2, #76
2586
- strb r2, [r3, #-2725]
2587
- mvn r2, #75
2588
- strb r2, [r3, #-2724]
2589
- mvn r2, #74
2590
- strb r2, [r3, #-2723]
2591
- mvn r2, #73
2592
- strb r2, [r3, #-2722]
2593
- mvn r2, #72
2594
- b .L547
2595
-.L447:
2596
- cmp r4, #4
2597
- bne .L448
2598
- mvn ip, #51
25992762 strb r0, [r3, #-2723]
2600
- strb ip, [r3, #-2728]
2601
- mvn ip, #64
26022763 strb r1, [r3, #-2722]
2603
- strb ip, [r3, #-2727]
2604
- mvn ip, #85
2605
- strb ip, [r3, #-2726]
2606
- mvn ip, #84
2607
- strb ip, [r3, #-2725]
2608
- mvn ip, #50
2609
- strb ip, [r3, #-2724]
2610
-.L547:
2611
- mov r5, #8
26122764 strb r2, [r3, #-2721]
2613
- mov r6, r5
2614
- b .L446
2615
-.L448:
2616
- cmp r4, #5
2617
- bne .L449
2618
- mov r2, #56
2619
- mov r5, #8
2620
- strb r2, [r3, #-2728]
2621
- mov r2, #57
2622
- strb r2, [r3, #-2727]
2623
- mov r2, #58
2624
- strb r2, [r3, #-2726]
2625
- mov r2, #59
2626
- strb r2, [r3, #-2725]
2627
- b .L506
2628
-.L449:
2629
- cmp r4, #6
2630
- bne .L450
2631
- mov r2, #14
2632
- mov r5, #12
2633
- strb r2, [r3, #-2728]
2634
- mov r2, #15
2635
- strb r2, [r3, #-2727]
2636
- mov r2, #16
2637
- strb r2, [r3, #-2726]
2638
- mov r2, #17
2639
- strb r2, [r3, #-2725]
2640
- b .L506
2641
-.L450:
2642
- cmp r4, #7
2643
- bne .L451
2644
- mvn r2, #79
2645
- mov r5, #12
2646
- strb r2, [r3, #-2728]
2647
- mov r6, #10
2648
- mvn r2, #78
2649
- strb r2, [r3, #-2727]
2650
- mvn r2, #77
2651
- strb r2, [r3, #-2726]
2652
- mvn r2, #76
2653
- strb r2, [r3, #-2725]
2654
- mvn r2, #75
2655
- strb r2, [r3, #-2724]
2656
- mvn r2, #74
2657
- strb r2, [r3, #-2723]
2658
- mvn r2, #73
2659
- strb r2, [r3, #-2722]
2660
- mvn r2, #72
2661
- strb r2, [r3, #-2721]
2662
- mvn r2, #43
2663
- strb r2, [r3, #-2720]
2664
- mvn r2, #42
2665
- strb r2, [r3, #-2719]
2666
- b .L446
2667
-.L451:
2668
- cmp r4, #8
2765
+ bne .L458
2766
+ mvn r2, #88
26692767 mov r5, #7
2670
- bne .L506
2671
- mov r2, #6
2672
- strb r5, [r3, #-2727]
2673
- strb r2, [r3, #-2728]
2674
- mov r5, #50
2675
- mov r2, #9
2676
- strb r4, [r3, #-2726]
2677
- strb r2, [r3, #-2725]
2678
- mov r6, #5
2679
- mov r2, #10
26802768 strb r2, [r3, #-2724]
2681
- b .L446
2682
-.L506:
2769
+ mvn r2, #8
2770
+ ldr r3, .L574+4
2771
+ strb r2, [r3, #3397]
2772
+.L523:
26832773 mov r6, #4
2684
-.L446:
2774
+ b .L459
2775
+.L458:
2776
+ cmp r4, #3
2777
+ bne .L460
2778
+ mvn r2, #79
2779
+ strb r2, [r3, #-2724]
2780
+ mvn r2, #78
2781
+ strb r2, [r3, #-2723]
2782
+ mvn r2, #77
2783
+ strb r2, [r3, #-2722]
2784
+ mvn r2, #76
2785
+ strb r2, [r3, #-2721]
2786
+ mvn r2, #75
2787
+ strb r2, [r3, #-2720]
2788
+ mvn r2, #74
2789
+ strb r2, [r3, #-2719]
2790
+ mvn r2, #73
2791
+ strb r2, [r3, #-2718]
2792
+ mvn r2, #72
2793
+.L568:
2794
+ mov r5, #8
2795
+ strb r2, [r3, #-2717]
2796
+ mov r6, r5
2797
+.L459:
26852798 sub r3, r4, #1
26862799 cmp r3, #1
2687
- bhi .L543
2688
- ldr r10, .L553+8
2689
- mov r9, #0
2690
-.L452:
2691
- ldr r3, .L553+12
2692
- uxtb r2, r9
2693
- ldrb r1, [r3, #3152] @ zero_extendqisi2
2694
- cmp r1, r2
2695
- bls .L459
2696
- add r2, r3, r2
2697
- ldr r8, .L553+16
2698
- ldrb r2, [r2, #3156] @ zero_extendqisi2
2699
- add r3, r3, r2, asl #3
2700
- add r4, r8, r2, asl #6
2701
- add r4, r4, #20
2702
- add r8, r8, #3
2703
- ldrb r7, [r3, #16] @ zero_extendqisi2
2704
- ldr r1, [r3, #12]
2705
- mov fp, r4
2706
- mov r2, r4
2707
- add r7, r1, r7, asl #8
2708
- mov r1, #55
2709
-.L454:
2710
- str r1, [r7, #2056]
2711
- mov r0, #80
2712
- ldrb r3, [r8, #1]! @ zero_extendqisi2
2800
+ movls r9, #0
2801
+ ldrls r10, .L574+8
2802
+ bls .L466
2803
+ sub r3, r4, #3
2804
+ cmp r3, #5
2805
+ bhi .L473
2806
+ smulbb r3, r6, r5
2807
+ asr r2, r3, #1
2808
+ lsl r3, r3, #4
2809
+ str r3, [sp, #44]
2810
+ lsl r3, r2, #2
27132811 str r2, [sp, #4]
2714
- str r1, [sp]
2715
- str r3, [r7, #2052]
2716
- bl NandcDelayns
2717
- ldr r3, [r7, #2048]
2718
- ldr r2, [sp, #4]
2719
- ldr r1, [sp]
2720
- strb r3, [r2], #1
2721
- rsb r3, r4, r2
2722
- uxtb r3, r3
2723
- cmp r3, r6
2724
- bcc .L454
2812
+ str r3, [sp, #36]
2813
+ lsl r3, r2, #1
2814
+ str r3, [sp, #24]
2815
+ mov r3, #0
2816
+.L573:
2817
+ str r3, [sp, #20]
2818
+ ldrb r3, [sp, #20] @ zero_extendqisi2
2819
+ str r3, [sp, #8]
2820
+ ldr r3, .L574+12
2821
+ ldr r2, [sp, #8]
2822
+ ldrb r3, [r3, #3156] @ zero_extendqisi2
2823
+ cmp r3, r2
2824
+ bls .L473
2825
+ ldr r2, [sp, #8]
2826
+ ldr r3, .L574+12
2827
+ add r3, r3, r2
2828
+ ldrb r9, [r3, #3160] @ zero_extendqisi2
2829
+ ldr r3, .L574+12
2830
+ mov r0, r9
2831
+ ldr fp, [r3, r9, lsl #3]
2832
+ add r3, r3, r9, lsl #3
2833
+ ldrb r10, [r3, #4] @ zero_extendqisi2
2834
+ mov r3, #255
2835
+ add r7, fp, r10, lsl #8
2836
+ str r3, [r7, #2056]
2837
+ bl NandcWaitFlashReady
2838
+ cmp r4, #7
2839
+ bne .L475
2840
+ ldr r3, .L574+16
2841
+ mov r0, #160
2842
+ mla r0, r0, r9, r3
2843
+ add r3, r0, #20
2844
+.L569:
2845
+ str r3, [sp, #16]
2846
+ cmp r4, #4
2847
+ add r3, fp, r10, lsl #8
2848
+ mov r2, #54
2849
+ str r2, [r3, #2056]
2850
+ bne .L478
2851
+ mov r2, #255
2852
+ str r2, [r3, #2052]
2853
+ mov r2, #64
2854
+ str r2, [r3, #2048]
2855
+ mov r2, #204
2856
+.L570:
2857
+ str r2, [r3, #2052]
2858
+ mov r2, #77
2859
+ b .L571
2860
+.L460:
2861
+ cmp r4, #4
2862
+ bne .L461
2863
+ mvn ip, #51
2864
+ strb r0, [r3, #-2719]
2865
+ strb ip, [r3, #-2724]
2866
+ mvn ip, #64
2867
+ strb ip, [r3, #-2723]
2868
+ mvn ip, #85
2869
+ strb ip, [r3, #-2722]
2870
+ mvn ip, #84
2871
+ strb ip, [r3, #-2721]
2872
+ mvn ip, #50
2873
+ strb ip, [r3, #-2720]
2874
+ strb r1, [r3, #-2718]
2875
+ b .L568
2876
+.L461:
2877
+ cmp r4, #5
2878
+ bne .L462
2879
+ mov r2, #56
2880
+ mov r5, #8
2881
+ strb r2, [r3, #-2724]
2882
+ mov r2, #57
2883
+ strb r2, [r3, #-2723]
2884
+ mov r2, #58
2885
+ strb r2, [r3, #-2722]
2886
+ mov r2, #59
2887
+ strb r2, [r3, #-2721]
2888
+ b .L523
2889
+.L462:
2890
+ cmp r4, #6
2891
+ bne .L463
2892
+ mov r2, #14
2893
+ mov r5, #12
2894
+ strb r2, [r3, #-2724]
2895
+ mov r2, #15
2896
+ strb r2, [r3, #-2723]
2897
+ mov r2, #16
2898
+ strb r2, [r3, #-2722]
2899
+ mov r2, #17
2900
+ strb r2, [r3, #-2721]
2901
+ b .L523
2902
+.L463:
2903
+ cmp r4, #7
2904
+ bne .L464
2905
+ mvn r2, #79
2906
+ mov r5, #12
2907
+ strb r2, [r3, #-2724]
2908
+ mvn r2, #78
2909
+ strb r2, [r3, #-2723]
2910
+ mvn r2, #77
2911
+ strb r2, [r3, #-2722]
2912
+ mvn r2, #76
2913
+ strb r2, [r3, #-2721]
2914
+ mvn r2, #75
2915
+ strb r2, [r3, #-2720]
2916
+ mvn r2, #74
2917
+ strb r2, [r3, #-2719]
2918
+ mvn r2, #73
2919
+ strb r2, [r3, #-2718]
2920
+ mvn r2, #72
2921
+ strb r2, [r3, #-2717]
2922
+ mvn r2, #43
2923
+ strb r2, [r3, #-2716]
2924
+ mvn r2, #42
2925
+ strb r2, [r3, #-2715]
2926
+ mov r6, #10
2927
+ b .L459
2928
+.L464:
2929
+ cmp r4, #8
2930
+ mov r5, #7
2931
+ bne .L523
2932
+ mov r2, #6
2933
+ strb r5, [r3, #-2723]
2934
+ strb r2, [r3, #-2724]
2935
+ mov r2, #9
2936
+ strb r2, [r3, #-2721]
2937
+ mov r2, #10
2938
+ strb r4, [r3, #-2722]
2939
+ mov r5, #50
2940
+ strb r2, [r3, #-2720]
2941
+ mov r6, #5
2942
+ b .L459
2943
+.L472:
2944
+ add r2, r3, r2
2945
+ ldr r4, .L574+8
2946
+ ldrb r2, [r2, #3160] @ zero_extendqisi2
2947
+ mov r7, #0
2948
+ mov fp, #55
2949
+ ldr r8, [r3, r2, lsl #3]
2950
+ add r3, r3, r2, lsl #3
2951
+ add r4, r4, r2, lsl #6
2952
+ ldrb r3, [r3, #4] @ zero_extendqisi2
2953
+ add r4, r4, #20
2954
+ add r8, r8, r3, lsl #8
2955
+.L467:
2956
+ add r3, r10, r7
2957
+ str fp, [r8, #2056]
2958
+ ldrb r3, [r3, #4] @ zero_extendqisi2
2959
+ mov r0, #80
2960
+ str r3, [r8, #2052]
2961
+ bl ndelay
2962
+ ldr r3, [r8, #2048]
2963
+ strb r3, [r4, r7]
2964
+ add r7, r7, #1
2965
+ uxtb r3, r7
2966
+ cmp r6, r3
2967
+ bhi .L467
2968
+ ldr lr, .L574+20
2969
+ mov r1, r4
27252970 mov r2, #0
2726
-.L455:
2727
- add r0, r10, r2
2971
+.L470:
27282972 mov r3, #1
2729
-.L456:
2730
- ldrb r1, [r0, r3, asl #2] @ zero_extendqisi2
2731
- ldrb ip, [fp] @ zero_extendqisi2
2732
- add r1, r1, ip
2733
- strb r1, [fp, r3, asl #3]
2973
+ add ip, lr, r2
2974
+.L469:
2975
+ ldrb r0, [ip, r3, lsl #2] @ zero_extendqisi2
2976
+ ldrb r7, [r1] @ zero_extendqisi2
2977
+ add r0, r0, r7
2978
+ strb r0, [r1, r3, lsl #3]
27342979 add r3, r3, #1
27352980 cmp r3, #7
2736
- bne .L456
2981
+ bne .L469
27372982 add r2, r2, #1
2738
- add fp, fp, #1
2983
+ add r1, r1, #1
27392984 cmp r2, #4
2740
- bne .L455
2741
- mov r3, #0
2985
+ bne .L470
27422986 add r9, r9, #1
2987
+ mov r3, #0
27432988 strb r3, [r4, #16]
27442989 strb r3, [r4, #24]
27452990 strb r3, [r4, #32]
....@@ -2747,378 +2992,329 @@
27472992 strb r3, [r4, #48]
27482993 strb r3, [r4, #41]
27492994 strb r3, [r4, #49]
2750
- b .L452
2751
-.L543:
2752
- sub r3, r4, #3
2753
- cmp r3, #5
2754
- bhi .L459
2755
- smulbb r8, r6, r5
2756
- ldr fp, .L553
2757
- mov r3, r8, asl #4
2758
- mov r8, r8, asr #1
2759
- str r3, [sp, #36]
2760
- mov r3, r8, asl #1
2761
- str r3, [sp, #4]
2762
- mov r3, #0
2763
- str r3, [sp, #16]
2764
-.L460:
2765
- ldrb r3, [sp, #16] @ zero_extendqisi2
2766
- str r3, [sp, #12]
2767
- ldr r3, .L553+12
2768
- ldr r2, [sp, #12]
2769
- ldrb r3, [r3, #3152] @ zero_extendqisi2
2770
- cmp r3, r2
2771
- bhi .L504
2772
-.L459:
2773
- ldr r3, .L553
2774
- strb r6, [r3, #-2731]
2775
- strb r5, [r3, #-2730]
2776
- add sp, sp, #44
2995
+.L466:
2996
+ ldr r3, .L574+12
2997
+ uxtb r2, r9
2998
+ ldrb r1, [r3, #3156] @ zero_extendqisi2
2999
+ cmp r1, r2
3000
+ bhi .L472
3001
+.L473:
3002
+ ldr r3, .L574
3003
+ strb r6, [r3, #-2727]
3004
+ strb r5, [r3, #-2726]
3005
+ add sp, sp, #52
27773006 @ sp needed
2778
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2779
-.L504:
2780
- ldr r2, [sp, #12]
2781
- ldr r3, .L553+12
2782
- add r3, r3, r2
2783
- ldrb r10, [r3, #3156] @ zero_extendqisi2
2784
- ldr r3, .L553+12
2785
- add r3, r3, r10, asl #3
2786
- mov r0, r10
2787
- ldr r8, [r3, #12]
2788
- ldrb r3, [r3, #16] @ zero_extendqisi2
2789
- mov r9, r3, asl #8
2790
- str r3, [sp, #8]
2791
- add r7, r8, r9
2792
- mov r3, #255
2793
- str r3, [r7, #2056]
2794
- bl NandcWaitFlashReady
2795
- cmp r4, #7
2796
- ldreq r7, .L553+16
2797
- moveq r3, #160
2798
- mlaeq r7, r3, r10, r7
2799
- addeq r3, r7, #28
2800
- beq .L548
2801
-.L461:
3007
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
3008
+.L475:
28023009 cmp r4, #8
2803
- beq .L463
2804
- ldr r7, .L553+16
2805
- add r7, r7, r10, asl #6
2806
- add r3, r7, #20
2807
-.L548:
2808
- str r3, [sp, #20]
2809
- cmp r4, #4
2810
- add r3, r8, r9
2811
- mov r2, #54
2812
- str r2, [r3, #2056]
2813
- bne .L464
2814
- mov r2, #255
2815
- str r2, [r3, #2052]
2816
- mov r2, #64
2817
- str r2, [r3, #2048]
2818
- mov r2, #204
2819
- b .L549
2820
-.L464:
3010
+ beq .L477
3011
+ ldr r3, .L574+16
3012
+ add r0, r3, r9, lsl #6
3013
+ add r3, r0, #12
3014
+ b .L569
3015
+.L478:
28213016 sub r2, r4, #5
28223017 cmp r2, #1
2823
- ldrlsb r2, [fp, #-2728] @ zero_extendqisi2
2824
- strls r2, [r3, #2052]
2825
- movls r2, #82
2826
- bls .L550
3018
+ bhi .L480
3019
+ ldr r2, .L574
3020
+ ldrb r2, [r2, #-2724] @ zero_extendqisi2
3021
+ str r2, [r3, #2052]
3022
+ mov r2, #82
3023
+.L571:
3024
+ str r2, [r3, #2048]
3025
+.L479:
3026
+ add r3, fp, r10, lsl #8
3027
+ mov r2, #22
3028
+ cmp r4, #6
3029
+ str r2, [r3, #2056]
3030
+ mov r2, #23
3031
+ str r2, [r3, #2056]
3032
+ mov r2, #4
3033
+ str r2, [r3, #2056]
3034
+ mov r2, #25
3035
+ str r2, [r3, #2056]
3036
+ mov r2, #0
3037
+ str r2, [r3, #2056]
3038
+ str r2, [r3, #2052]
3039
+ str r2, [r3, #2052]
3040
+ moveq r2, #31
3041
+ str r2, [r3, #2052]
3042
+ mov r2, #2
3043
+ str r2, [r3, #2052]
3044
+ mov r2, #0
3045
+ str r2, [r3, #2052]
3046
+.L522:
3047
+ add r3, fp, r10, lsl #8
3048
+ mov r2, #48
3049
+ mov r0, r9
3050
+ str r2, [r3, #2056]
3051
+ bl NandcWaitFlashReady
3052
+ sub r3, r4, #5
3053
+ cmp r4, #8
3054
+ cmpne r3, #1
3055
+ str r3, [sp, #40]
3056
+ movls r2, #16
3057
+ bls .L483
28273058 cmp r4, #7
2828
- bne .L465
3059
+ moveq r2, #32
3060
+ movne r2, #2
3061
+.L483:
3062
+ ldr r3, .L574
3063
+ sub r2, r2, #1
3064
+ add ip, fp, r10, lsl #8
3065
+ ldr r3, [r3, #-1864]
3066
+ str ip, [sp]
3067
+ sub r1, r3, #1
3068
+ uxtab r2, r3, r2
3069
+ mov r0, r1
3070
+.L484:
3071
+ ldr ip, [sp]
3072
+ ldr ip, [ip, #2048]
3073
+ strb ip, [r0, #1]!
3074
+ cmp r2, r0
3075
+ bne .L484
3076
+ cmp r4, #8
3077
+ bne .L485
3078
+ mov r2, #0
3079
+.L487:
3080
+ ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2
3081
+ uxtb r1, r2
3082
+ cmp r0, #50
3083
+ beq .L486
3084
+ add r0, r3, r2, lsl #2
3085
+ ldrb r0, [r0, #1] @ zero_extendqisi2
3086
+ cmp r0, #5
3087
+ beq .L486
3088
+ add r2, r2, #1
3089
+ cmp r2, #8
3090
+ bne .L487
3091
+.L488:
3092
+ mov r1, #0
3093
+ ldr r0, .L574+24
3094
+ bl printk
3095
+.L490:
3096
+ b .L490
3097
+.L480:
3098
+ cmp r4, #7
3099
+ bne .L479
28293100 mov r2, #174
28303101 str r2, [r3, #2052]
28313102 mov r2, #0
28323103 str r2, [r3, #2048]
28333104 mov r2, #176
2834
-.L549:
2835
- str r2, [r3, #2052]
2836
- mov r2, #77
2837
-.L550:
2838
- str r2, [r3, #2048]
2839
-.L465:
2840
- add r9, r8, r9
2841
- cmp r4, #6
2842
- mov r3, #22
2843
- str r3, [r9, #2056]
2844
- mov r3, #23
2845
- str r3, [r9, #2056]
2846
- mov r3, #4
2847
- str r3, [r9, #2056]
2848
- mov r3, #25
2849
- str r3, [r9, #2056]
2850
- mov r3, #0
2851
- str r3, [r9, #2056]
2852
- str r3, [r9, #2052]
2853
- str r3, [r9, #2052]
2854
- moveq r3, #31
2855
- str r3, [r9, #2052]
2856
- mov r3, #2
2857
- str r3, [r9, #2052]
2858
- mov r3, #0
2859
- str r3, [r9, #2052]
2860
-.L505:
2861
- ldr r3, [sp, #8]
2862
- mov r2, #48
2863
- mov r0, r10
2864
- add r3, r8, r3, asl #8
2865
- str r2, [r3, #2056]
2866
- bl NandcWaitFlashReady
2867
- sub r3, r4, #5
2868
- cmp r3, #1
2869
- movhi r3, #0
2870
- movls r3, #1
2871
- str r3, [sp, #24]
2872
- sub r3, r4, #8
2873
- clz r3, r3
2874
- mov r3, r3, lsr #5
2875
- str r3, [sp]
2876
- ldr r2, [sp]
2877
- ldr r3, [sp, #24]
2878
- orrs r3, r3, r2
2879
- movne ip, #16
2880
- bne .L469
2881
- cmp r4, #7
2882
- movne ip, #2
2883
- moveq ip, #32
2884
-.L469:
2885
- ldr r2, [sp, #8]
2886
- ldr r3, [fp, #-1868]
2887
- add r1, r8, r2, asl #8
2888
- mov r0, r3
2889
-.L470:
2890
- ldr r2, [r1, #2048]
2891
- strb r2, [r0], #1
2892
- rsb r2, r3, r0
2893
- uxtb r2, r2
2894
- cmp r2, ip
2895
- bcc .L470
2896
- ldr r2, [sp]
2897
- cmp r2, #0
2898
- beq .L471
2899
- mov r2, #0
2900
-.L473:
2901
- ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2
2902
- uxtb r0, r2
2903
- cmp ip, #50
2904
- beq .L472
2905
- add ip, r3, r2, asl #2
2906
- ldrb ip, [ip, #1] @ zero_extendqisi2
2907
- cmp ip, #5
2908
- beq .L472
2909
- add r2, r2, #1
2910
- cmp r2, #8
2911
- bne .L473
2912
- b .L474
2913
-.L472:
2914
- cmp r0, #6
2915
- bls .L475
2916
-.L474:
2917
- ldr r0, .L553+20
2918
- mov r1, #0
2919
- bl printk
2920
-.L476:
2921
- b .L476
2922
-.L471:
2923
- cmp r4, #7
2924
- bne .L477
2925
- ldr r2, [sp]
2926
-.L479:
2927
- ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2
2928
- uxtb r0, r2
2929
- cmp ip, #12
2930
- beq .L478
2931
- add ip, r3, r2, asl #2
2932
- ldrb ip, [ip, #1] @ zero_extendqisi2
2933
- cmp ip, #10
2934
- beq .L478
2935
- add r2, r2, #1
2936
- cmp r2, #8
2937
- bne .L479
2938
- b .L480
2939
-.L478:
2940
- cmp r0, #7
2941
- bne .L475
2942
-.L480:
2943
- ldr r0, .L553+20
2944
- mov r1, #0
2945
- bl printk
2946
-.L481:
2947
- b .L481
2948
-.L477:
2949
- cmp r4, #6
2950
- bne .L475
2951
- sub r2, r3, #1
2952
- add r3, r3, #7
2953
-.L482:
2954
- ldrb r0, [r2, #1]! @ zero_extendqisi2
2955
- cmp r0, #12
2956
- beq .L475
2957
- ldrb r0, [r2, #8] @ zero_extendqisi2
2958
- cmp r0, #4
2959
- beq .L475
2960
- cmp r2, r3
2961
- bne .L482
2962
- ldr r0, .L553+20
2963
- mov r1, #0
2964
- bl printk
2965
-.L484:
2966
- b .L484
2967
-.L475:
2968
- ldr r2, [fp, #-1868]
2969
- ldr r0, [sp, #36]
2970
- add r0, r2, r0
2971
- mov r3, r2
2972
-.L485:
2973
- cmp r3, r0
2974
- ldrne ip, [r1, #2048]
2975
- strneb ip, [r3], #1
2976
- bne .L485
2977
-.L552:
2978
- ldr r3, .L553
2979
- mov r0, #8
2980
- ldr r1, [sp, #4]
2981
- ldr r3, [r3, #-1868]
2982
- add r1, r3, r1
2983
- str r1, [sp, #28]
2984
-.L488:
2985
- ldr ip, [sp, #4]
2986
- add lr, r1, ip
2987
-.L487:
2988
- ldrh ip, [r1]
2989
- mvn ip, ip
2990
- strh ip, [r1], #2 @ movhi
2991
- cmp r1, lr
2992
- bne .L487
2993
- ldr ip, [sp, #4]
2994
- subs r0, r0, #1
2995
- add r1, r1, ip
2996
- bne .L488
3105
+ b .L570
3106
+.L486:
3107
+ cmp r1, #6
3108
+ bhi .L488
29973109 .L489:
3110
+ ldr r1, .L574
3111
+ ldr r2, [r1, #-1864]
3112
+ mov r3, r2
3113
+.L499:
3114
+ ldr ip, [sp, #44]
3115
+ sub r0, r3, r2
3116
+ cmp r0, ip
3117
+ blt .L500
3118
+ ldr r3, [sp, #24]
3119
+ ldr r1, [r1, #-1864]
3120
+ add r0, r1, r3
3121
+ mov r3, #8
3122
+.L502:
3123
+ mov lr, r0
3124
+ mov ip, #0
3125
+.L501:
3126
+ ldrh r7, [lr]
3127
+ add ip, ip, #1
3128
+ mvn r7, r7
3129
+ strh r7, [lr], #2 @ movhi
3130
+ ldr r7, [sp, #4]
3131
+ cmp r7, ip
3132
+ bgt .L501
3133
+ ldr ip, [sp, #36]
3134
+ subs r3, r3, #1
3135
+ add r0, r0, ip
3136
+ bne .L502
3137
+ str r3, [sp, #12]
3138
+.L508:
29983139 mov ip, #0
29993140 mov r0, ip
3000
-.L492:
3001
- mov r1, #1
3002
- mov lr, #0
3003
- mov r1, r1, asl r0
3004
- mov r7, #16
3005
- str r7, [sp, #32]
3006
- mov r7, lr
3007
-.L490:
3008
- ldrh r9, [r3, lr]
3009
- and r9, r9, r1
3010
- cmp r9, r1
3141
+.L507:
3142
+ mov lr, #1
3143
+ mov r7, #0
3144
+ lsl lr, lr, r0
3145
+ mov r3, #16
3146
+ str r3, [sp, #32]
3147
+ str lr, [sp, #28]
3148
+ mov lr, r1
3149
+.L505:
3150
+ ldrh r8, [lr]
3151
+ mov r3, r8
3152
+ ldr r8, [sp, #28]
3153
+ bics r3, r8, r3
3154
+ ldr r3, [sp, #24]
30113155 addeq r7, r7, #1
3012
- ldr r9, [sp, #4]
3013
- add lr, lr, r9
3014
- ldr r9, [sp, #32]
3015
- subs r9, r9, #1
3016
- str r9, [sp, #32]
3017
- bne .L490
3156
+ add lr, lr, r3
3157
+ ldr r3, [sp, #32]
3158
+ subs r3, r3, #1
3159
+ str r3, [sp, #32]
3160
+ bne .L505
30183161 cmp r7, #8
30193162 add r0, r0, #1
3020
- orrhi ip, ip, r1
3163
+ ldrhi r3, [sp, #28]
3164
+ orrhi ip, ip, r3
30213165 uxthhi ip, ip
30223166 cmp r0, #16
3023
- bne .L492
3024
- ldr r1, [sp, #28]
3025
- strh ip, [r3], #2 @ movhi
3026
- cmp r3, r1
3027
- bne .L489
3028
- ldr r1, [fp, #-1868]
3167
+ bne .L507
3168
+ ldr r3, [sp, #12]
3169
+ strh ip, [r1], #2 @ movhi
3170
+ add r3, r3, #1
3171
+ str r3, [sp, #12]
3172
+ ldr r0, [sp, #12]
3173
+ ldr r3, [sp, #4]
3174
+ cmp r3, r0
3175
+ bgt .L508
3176
+ ldr r3, .L574
3177
+ ldr r1, [r3, #-1864]
30293178 mov r3, #0
30303179 sub r0, r1, #4
30313180 add ip, r1, #28
3032
-.L494:
3181
+.L511:
30333182 ldr lr, [r0, #4]!
30343183 cmp lr, #0
30353184 addeq r3, r3, #1
3036
- cmp r0, ip
3037
- bne .L494
3185
+ cmp ip, r0
3186
+ bne .L511
30383187 cmp r3, #7
3039
- ble .L495
3040
- ldr r0, .L553+24
3041
- mov r2, #1
3188
+ ble .L512
3189
+ ldr r0, .L574+28
30423190 mov r3, #1024
3191
+ mov r2, #1
30433192 bl rknand_print_hex
3044
- ldr r0, .L553+20
30453193 mov r1, #0
3194
+ ldr r0, .L574+24
30463195 bl printk
3047
-.L496:
3048
- b .L496
3049
-.L495:
3050
- cmp r4, #6
3051
- moveq r0, #4
3052
- beq .L497
3196
+.L513:
3197
+ b .L513
3198
+.L485:
30533199 cmp r4, #7
3054
- moveq r0, #10
3055
- beq .L497
3056
- ldr r3, [sp]
3057
- cmp r3, #0
3058
- moveq r0, #8
3059
- movne r0, #5
3060
-.L497:
3061
- sub r9, r6, #1
3062
- ldr r1, [sp, #20]
3063
- mov ip, #0
3064
- uxtb r9, r9
3065
- add r9, r9, #1
3200
+ bne .L491
3201
+ mov r2, #0
3202
+.L493:
3203
+ ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2
3204
+ uxtb r1, r2
3205
+ cmp r0, #12
3206
+ beq .L492
3207
+ add r0, r3, r2, lsl #2
3208
+ ldrb r0, [r0, #1] @ zero_extendqisi2
3209
+ cmp r0, #10
3210
+ beq .L492
3211
+ add r2, r2, #1
3212
+ cmp r2, #8
3213
+ bne .L493
3214
+.L494:
3215
+ mov r1, #0
3216
+ ldr r0, .L574+24
3217
+ bl printk
3218
+.L495:
3219
+ b .L495
3220
+.L492:
3221
+ cmp r1, #6
3222
+ bls .L489
3223
+ b .L494
3224
+.L491:
3225
+ cmp r4, #6
3226
+ bne .L489
3227
+ add r3, r3, #7
3228
+.L496:
3229
+ ldrb r2, [r1, #1]! @ zero_extendqisi2
3230
+ cmp r2, #12
3231
+ beq .L489
3232
+ ldrb r2, [r1, #8] @ zero_extendqisi2
3233
+ cmp r2, #4
3234
+ beq .L489
3235
+ cmp r3, r1
3236
+ bne .L496
3237
+ mov r1, #0
3238
+ ldr r0, .L574+24
3239
+ bl printk
30663240 .L498:
3067
- mov r7, r1
3068
- mov r3, r2
3069
-.L499:
3070
- ldrb lr, [r3], #1 @ zero_extendqisi2
3071
- strb lr, [r7], #1
3072
- rsb lr, r2, r3
3073
- uxtb lr, lr
3074
- cmp lr, r6
3075
- bcc .L499
3076
- add ip, ip, #1
3077
- add r2, r2, r9
3078
- cmp ip, r5
3079
- add r1, r1, r0
3080
- blt .L498
3081
- ldr r3, [sp, #8]
3082
- mov r0, r10
3083
- add r7, r8, r3, asl #8
3084
- mov r3, #255
3085
- str r3, [r7, #2056]
3086
- bl NandcWaitFlashReady
3087
- ldr r3, [sp, #24]
3088
- cmp r3, #0
3089
- beq .L501
3090
- mov r3, #54
3091
- str r3, [r7, #2056]
3092
- ldrb r3, [fp, #-2728] @ zero_extendqisi2
3093
- mvn r1, #0
3094
- ldr r0, [sp, #12]
3095
- str r3, [r7, #2052]
3096
- mov r3, #0
3097
- str r3, [r7, #2048]
3098
- mov r3, #22
3099
- str r3, [r7, #2056]
3100
- bl FlashReadCmd
3101
- b .L502
3102
-.L501:
3103
- ldr r3, [sp]
3104
- cmp r3, #0
3105
- movne r3, #190
3106
- moveq r3, #56
3107
- str r3, [r7, #2056]
3108
-.L502:
3109
- mov r0, r10
3110
- bl NandcWaitFlashReady
3111
- ldr r3, [sp, #16]
3241
+ b .L498
3242
+.L500:
3243
+ ldr r0, [sp]
3244
+ ldr r0, [r0, #2048]
3245
+ strb r0, [r3], #1
3246
+ b .L499
3247
+.L512:
3248
+ cmp r4, #6
3249
+ moveq ip, #4
3250
+ beq .L514
3251
+ cmp r4, #7
3252
+ moveq ip, #10
3253
+ beq .L514
3254
+ cmp r4, #8
3255
+ moveq ip, #5
3256
+ movne ip, #8
3257
+.L514:
3258
+ sub r3, r6, #1
3259
+ ldr r0, [sp, #16]
3260
+ uxtb r3, r3
3261
+ mov lr, #0
31123262 add r3, r3, #1
3113
- str r3, [sp, #16]
3114
- b .L460
3115
-.L463:
3263
+.L515:
3264
+ mov r8, r0
3265
+ mov r1, r2
3266
+.L516:
3267
+ ldrb r7, [r1], #1 @ zero_extendqisi2
3268
+ strb r7, [r8], #1
3269
+ sub r7, r1, r2
3270
+ uxtb r7, r7
3271
+ cmp r6, r7
3272
+ bhi .L516
3273
+ add lr, lr, #1
3274
+ add r2, r2, r3
3275
+ cmp r5, lr
3276
+ add r0, r0, ip
3277
+ bgt .L515
3278
+ add r10, fp, r10, lsl #8
3279
+ mov r3, #255
3280
+ mov r0, r9
3281
+ str r3, [r10, #2056]
3282
+ bl NandcWaitFlashReady
3283
+ ldr r3, [sp, #40]
3284
+ cmp r3, #1
3285
+ bhi .L518
3286
+ mov r3, #54
3287
+ ldr r2, [sp]
3288
+ str r3, [r10, #2056]
3289
+ mvn r1, #0
3290
+ ldr r3, .L574
3291
+ ldr r0, [sp, #8]
3292
+ ldrb r3, [r3, #-2724] @ zero_extendqisi2
3293
+ str r3, [r2, #2052]
3294
+ mov r3, #0
3295
+ str r3, [r2, #2048]
3296
+ mov r3, #22
3297
+ str r3, [r10, #2056]
3298
+ bl FlashReadCmd
3299
+.L519:
3300
+ mov r0, r9
3301
+ bl NandcWaitFlashReady
3302
+ ldr r3, [sp, #20]
3303
+ add r3, r3, #1
3304
+ b .L573
3305
+.L518:
3306
+ cmp r4, #8
3307
+ moveq r3, #190
3308
+ movne r3, #56
3309
+ str r3, [r10, #2056]
3310
+ b .L519
3311
+.L477:
31163312 mov r3, #120
31173313 mov r2, #23
31183314 str r3, [r7, #2056]
3119
- mov r1, #25
31203315 mov r3, #0
31213316 str r3, [r7, #2052]
3317
+ mov r1, #25
31223318 str r3, [r7, #2052]
31233319 str r3, [r7, #2052]
31243320 str r2, [r7, #2056]
....@@ -3134,24 +3330,28 @@
31343330 str r1, [r7, #2052]
31353331 str r2, [r7, #2052]
31363332 str r3, [r7, #2052]
3137
- ldr r3, .L553+28
3138
- str r3, [sp, #20]
3139
- b .L505
3140
-.L554:
3333
+ ldr r3, .L574+32
3334
+ str r3, [sp, #16]
3335
+ b .L522
3336
+.L575:
31413337 .align 2
3142
-.L553:
3338
+.L574:
31433339 .word .LANCHOR2
31443340 .word .LANCHOR1
3145
- .word .LANCHOR1+3384
3341
+ .word .LANCHOR2-2728
31463342 .word .LANCHOR0
3147
- .word .LANCHOR2-2732
3343
+ .word .LANCHOR2-2720
3344
+ .word .LANCHOR1+3380
31483345 .word .LC2
31493346 .word .LC3
3150
- .word .LANCHOR2-2704
3347
+ .word .LANCHOR2-2700
31513348 .fnend
31523349 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault
31533350 .align 2
31543351 .global FlashGetReadRetryDefault
3352
+ .syntax unified
3353
+ .arm
3354
+ .fpu softvfp
31553355 .type FlashGetReadRetryDefault, %function
31563356 FlashGetReadRetryDefault:
31573357 .fnstart
....@@ -3162,131 +3362,136 @@
31623362 bxeq lr
31633363 sub r2, r3, #1
31643364 cmp r2, #7
3165
- bhi .L557
3365
+ bhi .L578
31663366 b HynixGetReadRetryDefault
3167
-.L557:
3367
+.L578:
31683368 cmp r3, #49
3169
- bne .L558
3170
- ldr r2, .L569
3171
- ldr r0, .L569+4
3172
- ldr r1, .L569+8
3173
- strb r3, [r2, #-2732]
3174
- mov r3, #4
3175
- strb r3, [r2, #-2731]
3176
- mov r3, #15
3177
- strb r3, [r2, #-2730]
3369
+ bne .L579
3370
+ ldr r0, .L590
31783371 mov r2, #64
3179
- b .L567
3180
-.L558:
3372
+ ldr r1, .L590+4
3373
+ strb r3, [r0, #-2728]
3374
+ mov r3, #4
3375
+ strb r3, [r0, #-2727]
3376
+ mov r3, #15
3377
+ strb r3, [r0, #-2726]
3378
+.L588:
3379
+ sub r0, r0, #2720
3380
+ sub r0, r0, #4
3381
+ b ftl_memcpy
3382
+.L579:
31813383 sub r2, r3, #65
31823384 cmp r3, #33
31833385 cmpne r2, #1
3184
- ldrls r2, .L569
3185
- strlsb r3, [r2, #-2732]
3186
- movls r3, #4
3187
- bls .L568
3188
-.L559:
3189
- cmp r3, #34
3190
- cmpne r3, #67
3191
- bne .L560
3192
- ldr r2, .L569
3193
- strb r3, [r2, #-2732]
3194
- mov r3, #5
3195
-.L568:
3196
- strb r3, [r2, #-2731]
3386
+ bhi .L580
3387
+ ldr r0, .L590
3388
+ strb r3, [r0, #-2728]
3389
+ mov r3, #4
3390
+.L589:
3391
+ strb r3, [r0, #-2727]
31973392 mov r3, #7
3198
- ldr r0, .L569+4
3199
- strb r3, [r2, #-2730]
3393
+ strb r3, [r0, #-2726]
32003394 mov r2, #45
3201
- ldr r1, .L569+12
3202
- b .L567
3203
-.L560:
3204
- cmp r3, #35
3205
- cmpne r3, #68
3395
+ ldr r1, .L590+8
3396
+ b .L588
3397
+.L580:
3398
+ cmp r3, #67
3399
+ cmpne r3, #34
3400
+ ldreq r0, .L590
3401
+ strbeq r3, [r0, #-2728]
3402
+ moveq r3, #5
3403
+ beq .L589
3404
+.L581:
3405
+ cmp r3, #68
3406
+ cmpne r3, #35
32063407 bxne lr
3207
- ldr r2, .L569
3208
- ldr r0, .L569+4
3209
- ldr r1, .L569+16
3210
- strb r3, [r2, #-2732]
3211
- mov r3, #5
3212
- strb r3, [r2, #-2731]
3213
- mov r3, #17
3214
- strb r3, [r2, #-2730]
3408
+ ldr r0, .L590
32153409 mov r2, #95
3216
-.L567:
3217
- b ftl_memcpy
3218
-.L570:
3410
+ ldr r1, .L590+12
3411
+ strb r3, [r0, #-2728]
3412
+ mov r3, #5
3413
+ strb r3, [r0, #-2727]
3414
+ mov r3, #17
3415
+ strb r3, [r0, #-2726]
3416
+ b .L588
3417
+.L591:
32193418 .align 2
3220
-.L569:
3419
+.L590:
32213420 .word .LANCHOR2
3222
- .word .LANCHOR2-2728
3223
- .word .LANCHOR1+3320
3224
- .word .LANCHOR1+3168
3225
- .word .LANCHOR1+3216
3421
+ .word .LANCHOR1+404
3422
+ .word .LANCHOR1+256
3423
+ .word .LANCHOR1+301
32263424 .fnend
32273425 .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault
32283426 .align 2
32293427 .global FlashReadDpCmd
3428
+ .syntax unified
3429
+ .arm
3430
+ .fpu softvfp
32303431 .type FlashReadDpCmd, %function
32313432 FlashReadDpCmd:
32323433 .fnstart
32333434 @ args = 0, pretend = 0, frame = 0
32343435 @ frame_needed = 0, uses_anonymous_args = 0
3235
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
3436
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
32363437 .save {r4, r5, r6, r7, r8, r9, r10, lr}
3237
- mov r8, r0
3238
- ldr r0, .L577
3239
- mov r7, r1
3438
+ mov r7, r0
3439
+ ldr r0, .L598
3440
+ mov r8, r1
32403441 uxtb r10, r2
3241
- mov r9, r2, lsr #8
3242
- add r3, r0, r8, asl #3
3243
- mov r5, r2, lsr #16
3244
- ldrb r1, [r0, #64] @ zero_extendqisi2
3245
- uxtb lr, r7
3246
- ldr r4, [r3, #12]
3247
- mov ip, r7, lsr #8
3248
- ldrb r3, [r3, #16] @ zero_extendqisi2
3249
- cmp r1, #1
3250
- ldr r2, [r0, #44]
3251
- mov r1, r7, lsr #16
3252
- mov r3, r3, asl #8
3442
+ lsr r9, r2, #8
3443
+ lsr r6, r2, #16
3444
+ uxtb lr, r8
3445
+ ldr r2, [r0, #48]
3446
+ lsr ip, r8, #8
3447
+ add r1, r0, r7, lsl #3
3448
+ ldr r3, [r0, r7, lsl #3]
3449
+ ldrb r4, [r1, #4] @ zero_extendqisi2
3450
+ ldrb r1, [r0, #68] @ zero_extendqisi2
32533451 ldrb r2, [r2, #7] @ zero_extendqisi2
3254
- bne .L572
3452
+ cmp r1, #1
3453
+ lsl r4, r4, #8
3454
+ lsr r1, r8, #16
3455
+ bne .L593
32553456 cmp r2, #1
3256
- addeq r2, r4, r3
3257
- add r4, r4, r3
3258
- moveq r6, #38
3259
- streq r6, [r2, #2056]
3260
- mov r6, #0
3261
- ldrb r3, [r0, #57] @ zero_extendqisi2
3262
- ldrb r2, [r0, #56] @ zero_extendqisi2
3263
- mov r0, r8
3457
+ addeq r2, r3, r4
3458
+ moveq r5, #38
3459
+ add r4, r3, r4
3460
+ streq r5, [r2, #2056]
3461
+ ldrb r3, [r0, #61] @ zero_extendqisi2
3462
+ mov r5, #0
3463
+ ldrb r2, [r0, #60] @ zero_extendqisi2
3464
+ mov r0, r7
32643465 str r2, [r4, #2056]
3265
- str r6, [r4, #2052]
3266
- str r6, [r4, #2052]
3466
+ str r5, [r4, #2052]
3467
+ str r5, [r4, #2052]
32673468 str lr, [r4, #2052]
32683469 str ip, [r4, #2052]
32693470 str r1, [r4, #2052]
32703471 str r3, [r4, #2056]
32713472 bl NandcWaitFlashReady
3272
- str r6, [r4, #2056]
32733473 mov r3, #48
3274
- str r6, [r4, #2052]
3275
- str r6, [r4, #2052]
3474
+ str r5, [r4, #2056]
3475
+ str r5, [r4, #2052]
3476
+ str r5, [r4, #2052]
32763477 str r10, [r4, #2052]
32773478 str r9, [r4, #2052]
3278
- str r5, [r4, #2052]
3479
+ str r6, [r4, #2052]
32793480 str r3, [r4, #2056]
3280
- b .L574
3281
-.L572:
3481
+.L595:
3482
+ mov r1, r8
3483
+ mov r0, r7
3484
+ pop {r4, r5, r6, r7, r8, r9, r10, lr}
3485
+ b FlashSetRandomizer
3486
+.L593:
32823487 cmp r2, #1
3283
- addeq r2, r4, r3
3284
- add r3, r4, r3
3285
- moveq r6, #38
3286
- streq r6, [r2, #2056]
3287
- ldrb r2, [r0, #56] @ zero_extendqisi2
3488
+ addeq r2, r3, r4
3489
+ moveq r5, #38
3490
+ streq r5, [r2, #2056]
3491
+ add r3, r3, r4
3492
+ ldrb r2, [r0, #60] @ zero_extendqisi2
32883493 str r2, [r3, #2056]
3289
- ldrb r2, [r0, #57] @ zero_extendqisi2
3494
+ ldrb r2, [r0, #61] @ zero_extendqisi2
32903495 str lr, [r3, #2052]
32913496 str ip, [r3, #2052]
32923497 str r1, [r3, #2052]
....@@ -3294,135 +3499,142 @@
32943499 mov r2, #48
32953500 str r10, [r3, #2052]
32963501 str r9, [r3, #2052]
3297
- str r5, [r3, #2052]
3502
+ str r6, [r3, #2052]
32983503 str r2, [r3, #2056]
3299
-.L574:
3300
- mov r0, r8
3301
- mov r1, r7
3302
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
3303
- b FlashSetRandomizer
3304
-.L578:
3504
+ b .L595
3505
+.L599:
33053506 .align 2
3306
-.L577:
3507
+.L598:
33073508 .word .LANCHOR0
33083509 .fnend
33093510 .size FlashReadDpCmd, .-FlashReadDpCmd
33103511 .align 2
33113512 .global ftl_flash_de_init
3513
+ .syntax unified
3514
+ .arm
3515
+ .fpu softvfp
33123516 .type ftl_flash_de_init, %function
33133517 ftl_flash_de_init:
33143518 .fnstart
33153519 @ args = 0, pretend = 0, frame = 0
33163520 @ frame_needed = 0, uses_anonymous_args = 0
3317
- stmfd sp!, {r3, r4, r5, lr}
3318
- .save {r3, r4, r5, lr}
3521
+ push {r4, lr}
3522
+ .save {r4, lr}
33193523 mov r0, #0
3524
+ ldr r4, .L611
33203525 bl NandcWaitFlashReady
33213526 bl FlashSetReadRetryDefault
3322
- ldr r3, .L590
3323
- ldr r0, [r3, #-1864]
3324
- mov r4, r3
3527
+ ldr r0, [r4, #-1860]
33253528 cmp r0, #0
3326
- beq .L580
3529
+ beq .L601
33273530 mov r0, #0
33283531 bl flash_enter_slc_mode
3329
- b .L581
3330
-.L580:
3331
- bl flash_exit_slc_mode
3332
-.L581:
3333
- ldrb r3, [r4, #-1860] @ zero_extendqisi2
3334
- ldr r5, .L590
3532
+.L602:
3533
+ ldrb r3, [r4, #-1856] @ zero_extendqisi2
33353534 cmp r3, #0
3336
- beq .L582
3337
- ldrb r3, [r5, #-1875] @ zero_extendqisi2
3535
+ beq .L603
3536
+ ldrb r3, [r4, #-1871] @ zero_extendqisi2
33383537 tst r3, #1
3339
- beq .L582
3538
+ beq .L603
33403539 mov r0, #1
33413540 bl FlashSetInterfaceMode
33423541 mov r0, #1
33433542 bl NandcSetMode
33443543 mov r3, #0
3345
- strb r3, [r5, #-1860]
3346
-.L582:
3347
- ldr r3, .L590+4
3544
+ strb r3, [r4, #-1856]
3545
+.L603:
3546
+ ldr r3, .L611+4
33483547 mov r0, #0
3349
- ldr r3, [r3, #12]
3548
+ ldr r3, [r3]
33503549 str r0, [r3, #336]
3351
- ldmfd sp!, {r3, r4, r5, pc}
3352
-.L591:
3550
+ pop {r4, pc}
3551
+.L601:
3552
+ bl flash_exit_slc_mode
3553
+ b .L602
3554
+.L612:
33533555 .align 2
3354
-.L590:
3556
+.L611:
33553557 .word .LANCHOR2
33563558 .word .LANCHOR0
33573559 .fnend
33583560 .size ftl_flash_de_init, .-ftl_flash_de_init
33593561 .align 2
33603562 .global NandcRandmzSel
3563
+ .syntax unified
3564
+ .arm
3565
+ .fpu softvfp
33613566 .type NandcRandmzSel, %function
33623567 NandcRandmzSel:
33633568 .fnstart
33643569 @ args = 0, pretend = 0, frame = 0
33653570 @ frame_needed = 0, uses_anonymous_args = 0
33663571 @ link register save eliminated.
3367
- ldr r3, .L593
3368
- add r0, r3, r0, asl #3
3369
- ldr r3, [r0, #12]
3572
+ ldr r3, .L614
3573
+ ldr r3, [r3, r0, lsl #3]
33703574 str r1, [r3, #336]
33713575 bx lr
3372
-.L594:
3576
+.L615:
33733577 .align 2
3374
-.L593:
3578
+.L614:
33753579 .word .LANCHOR0
33763580 .fnend
33773581 .size NandcRandmzSel, .-NandcRandmzSel
33783582 .global __aeabi_idiv
33793583 .align 2
33803584 .global NandcTimeCfg
3585
+ .syntax unified
3586
+ .arm
3587
+ .fpu softvfp
33813588 .type NandcTimeCfg, %function
33823589 NandcTimeCfg:
33833590 .fnstart
33843591 @ args = 0, pretend = 0, frame = 0
33853592 @ frame_needed = 0, uses_anonymous_args = 0
3386
- stmfd sp!, {r4, lr}
3593
+ push {r4, lr}
33873594 .save {r4, lr}
33883595 mov r4, r0
33893596 mov r0, #0
33903597 bl rknand_get_clk_rate
3391
- ldr r1, .L606
3598
+ ldr r1, .L627
33923599 bl __aeabi_idiv
3393
- ldr r3, .L606+4
3394
- ldr r3, [r3, #-2808]
3600
+ ldr r3, .L627+4
33953601 cmp r0, #250
33963602 movwgt r2, #8354
3397
- bgt .L604
3603
+ ldr r3, [r3, #-2804]
3604
+ bgt .L625
33983605 cmp r0, #220
3399
- bgt .L605
3606
+ ble .L619
3607
+.L626:
3608
+ movw r2, #8322
3609
+ b .L625
3610
+.L619:
34003611 cmp r0, #185
34013612 movwgt r2, #4226
3402
- bgt .L604
3613
+ bgt .L625
34033614 cmp r0, #160
34043615 movwgt r2, #4194
3405
- bgt .L604
3616
+ bgt .L625
34063617 cmp r4, #35
34073618 movwls r2, #4193
3408
- bls .L604
3619
+ bls .L625
34093620 cmp r4, #99
34103621 movwls r2, #4225
3411
- bls .L604
3412
-.L605:
3413
- movw r2, #8322
3414
-.L604:
3622
+ bhi .L626
3623
+.L625:
34153624 str r2, [r3, #4]
3416
- ldmfd sp!, {r4, pc}
3417
-.L607:
3625
+ pop {r4, pc}
3626
+.L628:
34183627 .align 2
3419
-.L606:
3628
+.L627:
34203629 .word 1000000
34213630 .word .LANCHOR2
34223631 .fnend
34233632 .size NandcTimeCfg, .-NandcTimeCfg
34243633 .align 2
34253634 .global FlashTimingCfg
3635
+ .syntax unified
3636
+ .arm
3637
+ .fpu softvfp
34263638 .type FlashTimingCfg, %function
34273639 FlashTimingCfg:
34283640 .fnstart
....@@ -3433,245 +3645,259 @@
34333645 sub r3, r3, #33
34343646 bic r3, r3, #32
34353647 cmp r3, #1
3436
- bls .L609
3648
+ bls .L630
34373649 movw r3, #8322
34383650 cmp r0, r3
3439
- bne .L610
3440
-.L609:
3441
- ldr r3, .L611
3442
- ldr r3, [r3, #-2808]
3651
+ bne .L631
3652
+.L630:
3653
+ ldr r3, .L632
3654
+ ldr r3, [r3, #-2804]
34433655 str r0, [r3, #4]
3444
-.L610:
3445
- ldr r3, .L611+4
3446
- ldrb r0, [r3, #277] @ zero_extendqisi2
3656
+.L631:
3657
+ ldr r3, .L632+4
3658
+ ldrb r0, [r3, #489] @ zero_extendqisi2
34473659 b NandcTimeCfg
3448
-.L612:
3660
+.L633:
34493661 .align 2
3450
-.L611:
3662
+.L632:
34513663 .word .LANCHOR2
34523664 .word .LANCHOR1
34533665 .fnend
34543666 .size FlashTimingCfg, .-FlashTimingCfg
34553667 .align 2
34563668 .global NandcInit
3669
+ .syntax unified
3670
+ .arm
3671
+ .fpu softvfp
34573672 .type NandcInit, %function
34583673 NandcInit:
34593674 .fnstart
34603675 @ args = 0, pretend = 0, frame = 0
34613676 @ frame_needed = 0, uses_anonymous_args = 0
3462
- stmfd sp!, {r3, r4, r5, lr}
3463
- .save {r3, r4, r5, lr}
3464
- mov r2, #0
3465
- ldr r4, .L616
3677
+ ldr r3, .L637
34663678 mov r1, #1
3467
- ldr r3, .L616+4
3679
+ push {r4, r5, r6, lr}
3680
+ .save {r4, r5, r6, lr}
3681
+ mov r2, #0
3682
+ ldr r4, .L637+4
34683683 mov r5, #0
3469
- str r0, [r4, #-2808]
3470
- str r2, [r3, #16]
3471
- str r0, [r3, #12]
3472
- str r1, [r3, #24]
3684
+ str r1, [r3, #12]
34733685 mov r1, #2
3474
- str r0, [r3, #20]
3475
- str r1, [r3, #32]
3686
+ str r1, [r3, #20]
34763687 mov r1, #3
3477
- str r0, [r3, #28]
3478
- str r1, [r3, #40]
3479
- str r0, [r3, #36]
3688
+ stm r3, {r0, r2}
3689
+ str r0, [r4, #-2804]
3690
+ str r0, [r3, #8]
3691
+ str r0, [r3, #16]
3692
+ str r1, [r3, #28]
3693
+ str r0, [r3, #24]
34803694 ldr r3, [r0]
34813695 and r3, r3, #253952
34823696 ubfx r1, r3, #13, #1
34833697 bfi r3, r2, #13, #1
34843698 ldr r2, [r0, #352]
34853699 orr r3, r3, #256
3486
- str r1, [r4, #-1856]
3700
+ str r1, [r4, #-1852]
34873701 movw r1, #2049
34883702 ubfx r2, r2, #16, #4
3489
- str r2, [r4, #-1852]
3703
+ str r2, [r4, #-1848]
34903704 ldr r2, [r0, #352]
34913705 cmp r2, r1
3492
- str r2, [r4, #-1848]
3706
+ str r2, [r4, #-1844]
34933707 moveq r2, #8
3494
- streq r2, [r4, #-1852]
3708
+ streq r2, [r4, #-1848]
34953709 str r3, [r0]
34963710 mov r0, #40
3497
- ldr r3, [r4, #-2808]
3711
+ ldr r3, [r4, #-2804]
34983712 str r5, [r3, #336]
34993713 bl NandcTimeCfg
3500
- ldr r3, [r4, #-2808]
3714
+ ldr r3, [r4, #-2804]
35013715 movw r2, #8322
35023716 mov r0, #36864
35033717 str r2, [r3, #344]
3504
- ldr r2, .L616+8
3718
+ ldr r2, .L637+8
35053719 str r2, [r3, #304]
3506
- bl ftl_malloc
3507
- str r5, [r4, #-1816]
3508
- str r5, [r4, #-1808]
3509
- str r0, [r4, #-1844]
3720
+ bl ftl_dma32_malloc
35103721 str r0, [r4, #-1840]
3511
- add r0, r0, #32768
35123722 str r0, [r4, #-1836]
3513
- ldmfd sp!, {r3, r4, r5, pc}
3514
-.L617:
3723
+ add r0, r0, #32768
3724
+ str r0, [r4, #-1832]
3725
+ str r5, [r4, #-1812]
3726
+ str r5, [r4, #-1804]
3727
+ pop {r4, r5, r6, pc}
3728
+.L638:
35153729 .align 2
3516
-.L616:
3517
- .word .LANCHOR2
3730
+.L637:
35183731 .word .LANCHOR0
3732
+ .word .LANCHOR2
35193733 .word 1579009
35203734 .fnend
35213735 .size NandcInit, .-NandcInit
35223736 .align 2
35233737 .global NandcGetTimeCfg
3738
+ .syntax unified
3739
+ .arm
3740
+ .fpu softvfp
35243741 .type NandcGetTimeCfg, %function
35253742 NandcGetTimeCfg:
35263743 .fnstart
35273744 @ args = 0, pretend = 0, frame = 0
35283745 @ frame_needed = 0, uses_anonymous_args = 0
3529
- ldr ip, .L620
3746
+ ldr ip, .L641
35303747 str lr, [sp, #-4]!
35313748 .save {lr}
3532
- ldr lr, [ip, #-2808]
3749
+ ldr lr, [ip, #-2804]
35333750 ldr lr, [lr, #4]
35343751 str lr, [r0]
3535
- ldr r0, [ip, #-2808]
3752
+ ldr r0, [ip, #-2804]
35363753 ldr r0, [r0]
35373754 str r0, [r1]
3538
- ldr r1, [ip, #-2808]
3755
+ ldr r1, [ip, #-2804]
35393756 ldr r1, [r1, #304]
35403757 str r1, [r2]
3541
- ldr r1, [ip, #-2808]
3758
+ ldr r1, [ip, #-2804]
35423759 ldr r2, [r1, #308]
35433760 ldr r1, [r1, #344]
35443761 uxtb r2, r2
3545
- orr r2, r2, r1, asl #16
3762
+ orr r2, r2, r1, lsl #16
35463763 str r2, [r3]
35473764 ldr pc, [sp], #4
3548
-.L621:
3765
+.L642:
35493766 .align 2
3550
-.L620:
3767
+.L641:
35513768 .word .LANCHOR2
35523769 .fnend
35533770 .size NandcGetTimeCfg, .-NandcGetTimeCfg
35543771 .align 2
35553772 .global NandcBchSel
3773
+ .syntax unified
3774
+ .arm
3775
+ .fpu softvfp
35563776 .type NandcBchSel, %function
35573777 NandcBchSel:
35583778 .fnstart
35593779 @ args = 0, pretend = 0, frame = 0
35603780 @ frame_needed = 0, uses_anonymous_args = 0
35613781 @ link register save eliminated.
3562
- ldr r3, .L630
3563
- mov r1, #1
3564
- ldr r2, [r3, #-2808]
3565
- str r0, [r3, #-1804]
3566
- mov r3, #0
3567
- str r1, [r2, #8]
3568
- mov r1, #16
3569
- cmp r0, r1
3570
- bfi r3, r1, #8, #8
3571
- bfc r3, #18, #1
3572
- bne .L623
3573
-.L626:
3782
+ ldr r3, .L651
3783
+ mov ip, #1
3784
+ mov r1, #0
3785
+ ldr r2, [r3, #-2804]
3786
+ str r0, [r3, #-1800]
3787
+ mov r3, r1
3788
+ str ip, [r2, #8]
3789
+ mov ip, #16
3790
+ cmp r0, ip
3791
+ bfi r3, ip, #8, #8
3792
+ bfi r3, r1, #18, #1
3793
+ bne .L644
3794
+.L647:
35743795 bfc r3, #4, #1
3575
- b .L624
3576
-.L623:
3577
- cmp r0, #24
3578
- orreq r3, r3, #16
3579
- beq .L624
3580
- cmp r0, #40
3581
- orr r3, r3, #262144
3582
- orr r3, r3, #16
3583
- beq .L626
3584
-.L624:
3796
+.L645:
35853797 orr r3, r3, #1
35863798 str r3, [r2, #12]
35873799 bx lr
3588
-.L631:
3800
+.L644:
3801
+ cmp r0, #24
3802
+ orreq r3, r3, #16
3803
+ beq .L645
3804
+ cmp r0, #40
3805
+ orr r3, r3, #262144
3806
+ orr r3, r3, #16
3807
+ bne .L645
3808
+ b .L647
3809
+.L652:
35893810 .align 2
3590
-.L630:
3811
+.L651:
35913812 .word .LANCHOR2
35923813 .fnend
35933814 .size NandcBchSel, .-NandcBchSel
35943815 .align 2
35953816 .global FlashBchSel
3817
+ .syntax unified
3818
+ .arm
3819
+ .fpu softvfp
35963820 .type FlashBchSel, %function
35973821 FlashBchSel:
35983822 .fnstart
35993823 @ args = 0, pretend = 0, frame = 0
36003824 @ frame_needed = 0, uses_anonymous_args = 0
36013825 @ link register save eliminated.
3602
- ldr r3, .L633
3603
- strb r0, [r3, #-2743]
3826
+ ldr r3, .L654
3827
+ strb r0, [r3, #-2739]
36043828 b NandcBchSel
3605
-.L634:
3829
+.L655:
36063830 .align 2
3607
-.L633:
3831
+.L654:
36083832 .word .LANCHOR2
36093833 .fnend
36103834 .size FlashBchSel, .-FlashBchSel
36113835 .align 2
36123836 .global ftl_flash_resume
3837
+ .syntax unified
3838
+ .arm
3839
+ .fpu softvfp
36133840 .type ftl_flash_resume, %function
36143841 ftl_flash_resume:
36153842 .fnstart
36163843 @ args = 0, pretend = 0, frame = 0
36173844 @ frame_needed = 0, uses_anonymous_args = 0
3618
- ldr r3, .L644
3619
- stmfd sp!, {r4, r5, r6, lr}
3845
+ ldr r3, .L665
3846
+ push {r4, r5, r6, lr}
36203847 .save {r4, r5, r6, lr}
36213848 mov r5, #0
3622
- ldr r2, [r3, #-2808]
3849
+ ldr r6, .L665+4
36233850 mov r4, r3
3624
- ldr r1, [r3, #-2804]
3625
- ldr r6, .L644+4
3626
- str r1, [r2]
3851
+ ldr r2, [r3, #-2804]
36273852 ldr r1, [r3, #-2800]
3628
- ldr r2, [r3, #-2808]
3629
- str r1, [r2, #4]
3853
+ str r1, [r2]
36303854 ldr r1, [r3, #-2796]
3631
- str r1, [r2, #8]
3855
+ ldr r2, [r3, #-2804]
3856
+ str r1, [r2, #4]
36323857 ldr r1, [r3, #-2792]
3633
- str r1, [r2, #12]
3858
+ str r1, [r2, #8]
36343859 ldr r1, [r3, #-2788]
3635
- str r1, [r2, #304]
3860
+ str r1, [r2, #12]
36363861 ldr r1, [r3, #-2784]
3637
- str r1, [r2, #308]
3862
+ str r1, [r2, #304]
36383863 ldr r1, [r3, #-2780]
3639
- str r1, [r2, #336]
3864
+ str r1, [r2, #308]
36403865 ldr r1, [r3, #-2776]
3866
+ str r1, [r2, #336]
3867
+ ldr r1, [r3, #-2772]
36413868 str r1, [r2, #344]
3642
-.L637:
3643
- ldrb r3, [r6, r5, asl #3] @ zero_extendqisi2
3869
+.L658:
3870
+ ldrb r3, [r6, r5, lsl #3] @ zero_extendqisi2
36443871 sub r3, r3, #1
36453872 uxtb r3, r3
36463873 cmp r3, #253
3647
- bhi .L636
3874
+ bhi .L657
36483875 uxtb r0, r5
36493876 bl FlashReset
3650
-.L636:
3877
+.L657:
36513878 add r5, r5, #1
36523879 cmp r5, #4
3653
- bne .L637
3654
- ldrb r3, [r4, #-1860] @ zero_extendqisi2
3655
- ldr r5, .L644
3880
+ bne .L658
3881
+ ldrb r3, [r4, #-1856] @ zero_extendqisi2
36563882 cmp r3, #0
3657
- beq .L638
3883
+ beq .L659
36583884 mov r0, #1
36593885 bl NandcSetMode
3660
- ldrb r0, [r5, #-1875] @ zero_extendqisi2
3886
+ ldrb r0, [r4, #-1871] @ zero_extendqisi2
36613887 bl FlashSetInterfaceMode
3662
- ldrb r0, [r5, #-1875] @ zero_extendqisi2
3888
+ ldrb r0, [r4, #-1871] @ zero_extendqisi2
36633889 bl NandcSetMode
3664
- ldrb r0, [r5, #-2787] @ zero_extendqisi2
3890
+ ldrb r0, [r4, #-2783] @ zero_extendqisi2
36653891 bl NandcSetDdrPara
3666
-.L638:
3667
- ldr r3, .L644+8
3668
- ldmfd sp!, {r4, r5, r6, lr}
3669
- ldr r3, [r3, #44]
3892
+.L659:
3893
+ ldr r3, .L665+8
3894
+ pop {r4, r5, r6, lr}
3895
+ ldr r3, [r3, #48]
36703896 ldrb r0, [r3, #20] @ zero_extendqisi2
36713897 b FlashBchSel
3672
-.L645:
3898
+.L666:
36733899 .align 2
3674
-.L644:
3900
+.L665:
36753901 .word .LANCHOR2
36763902 .word IDByte
36773903 .word .LANCHOR0
....@@ -3679,6 +3905,9 @@
36793905 .size ftl_flash_resume, .-ftl_flash_resume
36803906 .align 2
36813907 .global ftl_nandc_get_irq_status
3908
+ .syntax unified
3909
+ .arm
3910
+ .fpu softvfp
36823911 .type ftl_nandc_get_irq_status, %function
36833912 ftl_nandc_get_irq_status:
36843913 .fnstart
....@@ -3691,6 +3920,9 @@
36913920 .size ftl_nandc_get_irq_status, .-ftl_nandc_get_irq_status
36923921 .align 2
36933922 .global NandcIqrWaitFlashReady
3923
+ .syntax unified
3924
+ .arm
3925
+ .fpu softvfp
36943926 .type NandcIqrWaitFlashReady, %function
36953927 NandcIqrWaitFlashReady:
36963928 .fnstart
....@@ -3702,6 +3934,9 @@
37023934 .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady
37033935 .align 2
37043936 .global NandcSendDumpDataStart
3937
+ .syntax unified
3938
+ .arm
3939
+ .fpu softvfp
37053940 .type NandcSendDumpDataStart, %function
37063941 NandcSendDumpDataStart:
37073942 .fnstart
....@@ -3711,10 +3946,10 @@
37113946 ldr r2, [r0, #16]
37123947 .pad #8
37133948 sub sp, sp, #8
3714
- ldr r3, .L650
3949
+ ldr r3, .L671
37153950 str r2, [sp, #4]
37163951 ldr r2, [sp, #4]
3717
- bic r2, r2, #4
3952
+ bfc r2, #2, #1
37183953 str r2, [sp, #4]
37193954 ldr r2, [sp, #4]
37203955 str r2, [r0, #16]
....@@ -3724,14 +3959,17 @@
37243959 add sp, sp, #8
37253960 @ sp needed
37263961 bx lr
3727
-.L651:
3962
+.L672:
37283963 .align 2
3729
-.L650:
3964
+.L671:
37303965 .word 538969130
37313966 .fnend
37323967 .size NandcSendDumpDataStart, .-NandcSendDumpDataStart
37333968 .align 2
37343969 .global NandcSendDumpDataDone
3970
+ .syntax unified
3971
+ .arm
3972
+ .fpu softvfp
37353973 .type NandcSendDumpDataDone, %function
37363974 NandcSendDumpDataDone:
37373975 .fnstart
....@@ -3740,12 +3978,12 @@
37403978 @ link register save eliminated.
37413979 .pad #8
37423980 sub sp, sp, #8
3743
-.L653:
3981
+.L674:
37443982 ldr r3, [r0, #8]
37453983 str r3, [sp, #4]
37463984 ldr r3, [sp, #4]
37473985 tst r3, #1048576
3748
- beq .L653
3986
+ beq .L674
37493987 add sp, sp, #8
37503988 @ sp needed
37513989 bx lr
....@@ -3753,315 +3991,312 @@
37533991 .size NandcSendDumpDataDone, .-NandcSendDumpDataDone
37543992 .align 2
37553993 .global NandcXferStart
3994
+ .syntax unified
3995
+ .arm
3996
+ .fpu softvfp
37563997 .type NandcXferStart, %function
37573998 NandcXferStart:
37583999 .fnstart
3759
- @ args = 8, pretend = 0, frame = 24
4000
+ @ args = 8, pretend = 0, frame = 16
37604001 @ frame_needed = 0, uses_anonymous_args = 0
3761
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4002
+ ldr ip, .L696
4003
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
37624004 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
37634005 mov r4, #0
3764
- ldr lr, .L675
3765
- .pad #28
3766
- sub sp, sp, #28
3767
- ldr r5, .L675+4
3768
- add r0, lr, r0, asl #3
3769
- mov lr, #16
3770
- ldr r8, [sp, #64]
3771
- ldr r6, [r0, #12]
3772
- ldrb r0, [r0, #16] @ zero_extendqisi2
3773
- ldr ip, [sp, #68]
4006
+ ldr r5, .L696+4
4007
+ .pad #20
4008
+ sub sp, sp, #20
4009
+ ldr r6, [ip, r0, lsl #3]
4010
+ add ip, ip, r0, lsl #3
4011
+ ldr r8, [sp, #56]
4012
+ ldrb r0, [ip, #4] @ zero_extendqisi2
4013
+ mov ip, #16
37744014 ldr r7, [r6, #12]
3775
- bfi r7, lr, #8, #8
4015
+ bfi r7, ip, #8, #8
37764016 bfi r7, r4, #3, #1
37774017 bfi r4, r1, #1, #1
3778
- orr r4, r4, #8
37794018 bfi r7, r0, #5, #3
4019
+ orr r4, r4, #8
37804020 mov r0, #1
37814021 bfi r4, r0, #5, #2
4022
+ lsr r3, r3, r0
37824023 orr r4, r4, #536870912
3783
- mov r3, r3, lsr r0
37844024 orr r4, r4, #1024
37854025 bfi r4, r3, #4, #1
3786
- ldr r3, [r5, #-1852]
4026
+ ldr r3, [r5, #-1848]
37874027 cmp r3, #3
3788
- bls .L658
4028
+ bls .L679
37894029 ldr r3, [r6, #16]
3790
- str r3, [sp, #20]
3791
- ldr r3, [sp, #20]
3792
- bic r3, r3, #4
3793
- str r3, [sp, #20]
3794
- adds r3, ip, #0
3795
- movne r3, #1
3796
- cmp ip, #0
3797
- cmpeq r8, #0
3798
- str r3, [sp, #8]
3799
- beq .L659
4030
+ str r3, [sp, #12]
4031
+ ldr r3, [sp, #12]
4032
+ bfc r3, #2, #1
4033
+ str r3, [sp, #12]
4034
+ ldr r3, [sp, #60]
4035
+ cmp r8, #0
4036
+ cmpeq r3, #0
4037
+ beq .L680
38004038 cmp r1, #0
3801
- bne .L660
3802
-.L668:
4039
+ bne .L681
4040
+.L689:
38034041 add r2, r2, #1
38044042 cmp r8, #0
3805
- mov r2, r2, asr #1
4043
+ asr r2, r2, #1
38064044 movne r0, r8
38074045 bfi r4, r2, #22, #6
3808
- ldreq r0, [r5, #-1840]
3809
- b .L662
3810
-.L660:
3811
- ldr r3, [r5, #-1804]
3812
- mov r9, r5
3813
- cmp r3, #25
3814
- movcc r3, #64
3815
- movcs r3, #128
3816
- str r3, [sp, #4]
3817
- mov r3, r2, lsr #1
3818
- str r3, [sp, #12]
3819
- mov r3, #0
3820
- mov r0, r3
3821
-.L664:
3822
- ldr lr, [sp, #12]
3823
- cmp r0, lr
3824
- bcs .L668
3825
- ldr lr, [sp, #8]
3826
- mov r10, r3, lsr #2
3827
- add r0, r0, #1
3828
- cmp lr, #0
3829
- ldrneh fp, [ip, #2]
3830
- mvneq fp, #0
3831
- ldrneh lr, [ip], #4
3832
- ldreq lr, [r9, #-1836]
3833
- orrne lr, lr, fp, asl #16
3834
- ldrne fp, [r9, #-1836]
3835
- streq fp, [lr, r10, asl #2]
3836
- strne lr, [fp, r10, asl #2]
3837
- ldr lr, [sp, #4]
3838
- add r3, r3, lr
3839
- b .L664
3840
-.L662:
3841
- ldr r3, [r5, #-1836]
4046
+ ldreq r0, [r5, #-1836]
4047
+.L683:
4048
+ ldr r3, [r5, #-1832]
38424049 ubfx r10, r4, #22, #5
38434050 mov r9, r1
3844
- str r0, [r5, #-1832]
3845
- mov r2, r9
3846
- mov r1, r10, asl #10
3847
- str r3, [r5, #-1828]
4051
+ mov r2, r1
4052
+ lsl r1, r10, #10
4053
+ str r0, [r5, #-1828]
4054
+ str r3, [r5, #-1824]
38484055 bl rknand_dma_map_single
38494056 mov r2, r9
3850
- mov r1, r10, asl #7
3851
- clz r9, r9
3852
- mov r9, r9, lsr #5
3853
- str r0, [r5, #-1824]
3854
- ldr r0, [r5, #-1828]
4057
+ str r0, [r5, #-1820]
4058
+ lsl r1, r10, #7
4059
+ ldr r0, [r5, #-1824]
38554060 bl rknand_dma_map_single
38564061 mov r3, #1
3857
- str r3, [r5, #-1816]
3858
- tst r8, #3
3859
- ldr r3, [r5, #-1824]
3860
- str r0, [r5, #-1820]
3861
- str r3, [r6, #20]
4062
+ str r0, [r5, #-1816]
4063
+ str r3, [r5, #-1812]
4064
+ mov r2, #16
38624065 ldr r3, [r5, #-1820]
4066
+ tst r8, #3
4067
+ clz r1, r9
4068
+ lsr r1, r1, #5
4069
+ str r3, [r6, #20]
4070
+ ldr r3, [r5, #-1816]
38634071 str r3, [r6, #24]
38644072 mov r3, #0
3865
- str r3, [sp, #20]
3866
- ldr r3, [sp, #20]
3867
- bic r3, r3, #15872
3868
- orr r3, r3, #8192
3869
- str r3, [sp, #20]
3870
- ldr r3, [sp, #20]
4073
+ str r3, [sp, #12]
4074
+ ldr r3, [sp, #12]
4075
+ bfi r3, r2, #9, #5
4076
+ moveq r2, #2
4077
+ str r3, [sp, #12]
4078
+ ldr r3, [sp, #12]
38714079 orr r3, r3, #448
3872
- str r3, [sp, #20]
3873
- ldreq r3, [sp, #20]
3874
- biceq r3, r3, #56
3875
- orreq r3, r3, #16
3876
- streq r3, [sp, #20]
3877
- ldr r3, [sp, #20]
4080
+ str r3, [sp, #12]
4081
+ ldreq r3, [sp, #12]
4082
+ bfieq r3, r2, #3, #3
4083
+ streq r3, [sp, #12]
4084
+ ldr r3, [sp, #12]
38784085 orr r3, r3, #4
3879
- str r3, [sp, #20]
3880
- ldr r3, [sp, #20]
3881
- bic r3, r3, #2
3882
- orr r9, r3, r9, asl #1
3883
- str r9, [sp, #20]
3884
- ldr r3, [sp, #20]
4086
+ str r3, [sp, #12]
4087
+ ldr r3, [sp, #12]
4088
+ bfi r3, r1, #1, #1
4089
+ str r3, [sp, #12]
4090
+ ldr r3, [sp, #12]
38854091 orr r3, r3, #1
3886
- str r3, [sp, #20]
3887
-.L659:
3888
- ldr r3, [sp, #20]
4092
+ str r3, [sp, #12]
4093
+.L680:
4094
+ ldr r3, [sp, #12]
38894095 str r3, [r6, #16]
3890
-.L658:
4096
+.L679:
38914097 str r7, [r6, #12]
38924098 str r4, [r6, #8]
38934099 orr r4, r4, #4
38944100 str r4, [r6, #8]
3895
- add sp, sp, #28
4101
+ add sp, sp, #20
38964102 @ sp needed
3897
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
3898
-.L676:
4103
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4104
+.L681:
4105
+ ldr r3, [r5, #-1800]
4106
+ lsr r10, r2, #1
4107
+ ldr ip, [sp, #60]
4108
+ cmp r3, #25
4109
+ movcc r3, #64
4110
+ movcs r3, #128
4111
+ str r3, [sp, #4]
4112
+ mov r3, #0
4113
+ mov r0, r3
4114
+.L685:
4115
+ cmp r0, r10
4116
+ bcs .L689
4117
+ ldr lr, [sp, #60]
4118
+ add r0, r0, #1
4119
+ cmp lr, #0
4120
+ bic lr, r3, #3
4121
+ ldrne fp, [ip], #4 @ unaligned
4122
+ mvneq r9, #0
4123
+ ldrne r9, [r5, #-1832]
4124
+ ldreq fp, [r5, #-1832]
4125
+ strne fp, [r9, lr]
4126
+ streq r9, [fp, lr]
4127
+ ldr lr, [sp, #4]
4128
+ add r3, r3, lr
4129
+ b .L685
4130
+.L697:
38994131 .align 2
3900
-.L675:
4132
+.L696:
39014133 .word .LANCHOR0
39024134 .word .LANCHOR2
39034135 .fnend
39044136 .size NandcXferStart, .-NandcXferStart
39054137 .align 2
39064138 .global NandcXferComp
4139
+ .syntax unified
4140
+ .arm
4141
+ .fpu softvfp
39074142 .type NandcXferComp, %function
39084143 NandcXferComp:
39094144 .fnstart
39104145 @ args = 0, pretend = 0, frame = 8
39114146 @ frame_needed = 0, uses_anonymous_args = 0
3912
- stmfd sp!, {r0, r1, r4, r5, r6, lr}
3913
- .save {r4, r5, r6, lr}
4147
+ push {r0, r1, r4, r5, r6, r7, r8, lr}
4148
+ .save {r4, r5, r6, r7, r8, lr}
39144149 .pad #8
3915
- ldr r5, .L717
3916
- ldr r3, .L717+4
3917
- add r0, r3, r0, asl #3
3918
- ldr r3, [r5, #-1852]
4150
+ ldr r3, .L738
4151
+ ldr r5, .L738+4
4152
+ ldr r4, [r3, r0, lsl #3]
4153
+ ldr r3, [r5, #-1848]
39194154 cmp r3, #3
3920
- ldr r4, [r0, #12]
3921
- bls .L708
4155
+ bls .L729
39224156 ldr r3, [r4, #16]
39234157 tst r3, #4
3924
- beq .L708
4158
+ beq .L729
39254159 ldr r6, [r4, #16]
39264160 ldr r3, [r4, #8]
39274161 ubfx r6, r6, #1, #1
39284162 cmp r6, #0
39294163 str r3, [sp]
3930
- movne r6, #0
3931
- beq .L690
3932
-.L680:
4164
+ beq .L700
4165
+ ldr r7, .L738+8
4166
+ mov r6, #0
4167
+ ldr r8, .L738+12
4168
+.L701:
39334169 ldr r2, [r4, #28]
39344170 ldr r3, [sp]
39354171 ubfx r2, r2, #16, #5
39364172 ubfx r3, r3, #22, #6
39374173 cmp r2, r3
3938
- bge .L688
3939
- ldr r3, [r5, #-1852]
4174
+ bge .L709
4175
+ ldr r3, [r5, #-1848]
39404176 cmp r3, #5
3941
- bhi .L681
3942
-.L684:
4177
+ bhi .L702
4178
+.L705:
39434179 add r6, r6, #1
3944
- bic r3, r6, #-16777216
3945
- cmp r3, #0
3946
- bne .L683
4180
+ bics r3, r6, #-16777216
4181
+ bne .L704
39474182 ldr r2, [r4, #28]
39484183 mov r1, r6
39494184 ldr r3, [sp]
4185
+ mov r0, r7
39504186 ubfx r2, r2, #16, #5
3951
- ldr r0, .L717+8
39524187 ubfx r3, r3, #22, #6
39534188 bl printk
3954
- ldr r0, .L717+12
3955
- mov r1, r4
3956
- mov r2, #4
39574189 mov r3, #512
4190
+ mov r2, #4
4191
+ mov r1, r4
4192
+ mov r0, r8
39584193 bl rknand_print_hex
3959
- b .L683
3960
-.L681:
4194
+.L704:
4195
+ mov r1, #5
4196
+ mov r0, #1
4197
+ bl usleep_range
4198
+ b .L701
4199
+.L702:
39614200 ldr r3, [r4]
39624201 str r3, [sp, #4]
39634202 ldr r3, [sp, #4]
39644203 tst r3, #8192
3965
- beq .L684
4204
+ beq .L705
39664205 ldr r3, [sp, #4]
39674206 tst r3, #131072
3968
- beq .L684
3969
-.L688:
3970
- ldr r3, [r5, #-1816]
3971
- ldr r4, .L717
4207
+ beq .L705
4208
+.L709:
4209
+ ldr r3, [r5, #-1812]
39724210 cmp r3, #0
3973
- beq .L689
4211
+ beq .L710
39744212 ldr r1, [sp]
39754213 mov r2, #0
3976
- ldr r0, [r4, #-1824]
4214
+ ldr r0, [r5, #-1820]
39774215 ubfx r1, r1, #22, #5
3978
- mov r1, r1, asl #10
4216
+ lsl r1, r1, #10
39794217 bl rknand_dma_unmap_single
3980
- ldr r0, [r4, #-1820]
3981
- mov r2, #0
39824218 ldr r1, [sp]
4219
+ mov r2, #0
4220
+ ldr r0, [r5, #-1816]
39834221 ubfx r1, r1, #22, #5
3984
- mov r1, r1, asl #7
4222
+ lsl r1, r1, #7
39854223 bl rknand_dma_unmap_single
3986
- b .L689
3987
-.L683:
3988
- mov r0, #1
3989
- mov r1, #5
3990
- bl usleep_range
3991
- b .L680
3992
-.L692:
4224
+.L710:
4225
+ mov r3, #0
4226
+ str r3, [r5, #-1812]
4227
+.L698:
4228
+ add sp, sp, #8
4229
+ @ sp needed
4230
+ pop {r4, r5, r6, r7, r8, pc}
4231
+.L700:
4232
+ ldr r7, .L738+16
4233
+ ldr r8, .L738+12
4234
+.L711:
4235
+ ldr r3, [sp]
4236
+ tst r3, #1048576
4237
+ beq .L713
4238
+ ldr r3, [r5, #-1804]
4239
+ cmp r3, #0
4240
+ beq .L714
4241
+ mov r0, r4
4242
+ bl NandcSendDumpDataStart
4243
+.L714:
4244
+ ldr r3, [r5, #-1812]
4245
+ cmp r3, #0
4246
+ beq .L715
4247
+ ldr r1, [sp]
4248
+ mov r2, #1
4249
+ ldr r0, [r5, #-1820]
4250
+ ubfx r1, r1, #22, #5
4251
+ lsl r1, r1, #10
4252
+ bl rknand_dma_unmap_single
4253
+ ldr r1, [sp]
4254
+ mov r2, #1
4255
+ ldr r0, [r5, #-1816]
4256
+ ubfx r1, r1, #22, #5
4257
+ lsl r1, r1, #7
4258
+ bl rknand_dma_unmap_single
4259
+.L715:
4260
+ ldr r3, [r5, #-1804]
4261
+ cmp r3, #0
4262
+ beq .L710
4263
+ mov r0, r4
4264
+ bl NandcSendDumpDataDone
4265
+ b .L710
4266
+.L713:
39934267 ldr r3, [r4, #8]
39944268 add r6, r6, #1
39954269 str r3, [sp]
3996
- bic r3, r6, #-16777216
3997
- cmp r3, #0
3998
- bne .L691
4270
+ bics r3, r6, #-16777216
4271
+ bne .L712
39994272 ldr r2, [sp]
40004273 mov r1, r6
40014274 ldr r3, [r4, #28]
4002
- ldr r0, .L717+16
4275
+ mov r0, r7
40034276 ubfx r3, r3, #16, #5
40044277 bl printk
4005
- ldr r0, .L717+12
4006
- mov r1, r4
4007
- mov r2, #4
40084278 mov r3, #512
4279
+ mov r2, #4
4280
+ mov r1, r4
4281
+ mov r0, r8
40094282 bl rknand_print_hex
4010
-.L691:
4011
- mov r0, #1
4283
+.L712:
40124284 mov r1, #5
4285
+ mov r0, #1
40134286 bl usleep_range
4014
-.L690:
4015
- ldr r3, [sp]
4016
- tst r3, #1048576
4017
- beq .L692
4018
- ldr r3, [r5, #-1808]
4019
- cmp r3, #0
4020
- beq .L693
4021
- mov r0, r4
4022
- bl NandcSendDumpDataStart
4023
-.L693:
4024
- ldr r3, [r5, #-1816]
4025
- ldr r6, .L717
4026
- cmp r3, #0
4027
- beq .L694
4028
- ldr r1, [sp]
4029
- mov r2, #1
4030
- ldr r0, [r6, #-1824]
4031
- ubfx r1, r1, #22, #5
4032
- mov r1, r1, asl #10
4033
- bl rknand_dma_unmap_single
4034
- ldr r0, [r6, #-1820]
4035
- mov r2, #1
4036
- ldr r1, [sp]
4037
- ubfx r1, r1, #22, #5
4038
- mov r1, r1, asl #7
4039
- bl rknand_dma_unmap_single
4040
-.L694:
4041
- ldr r3, [r5, #-1808]
4042
- cmp r3, #0
4043
- beq .L689
4044
- mov r0, r4
4045
- bl NandcSendDumpDataDone
4046
-.L689:
4047
- mov r3, #0
4048
- str r3, [r5, #-1816]
4049
- b .L677
4050
-.L708:
4287
+ b .L711
4288
+.L729:
40514289 ldr r3, [r4, #8]
40524290 str r3, [sp]
40534291 ldr r3, [sp]
40544292 tst r3, #1048576
4055
- beq .L708
4056
-.L677:
4057
- add sp, sp, #8
4058
- @ sp needed
4059
- ldmfd sp!, {r4, r5, r6, pc}
4060
-.L718:
4293
+ beq .L729
4294
+ b .L698
4295
+.L739:
40614296 .align 2
4062
-.L717:
4063
- .word .LANCHOR2
4297
+.L738:
40644298 .word .LANCHOR0
4299
+ .word .LANCHOR2
40654300 .word .LC4
40664301 .word .LC5
40674302 .word .LC6
....@@ -4069,367 +4304,362 @@
40694304 .size NandcXferComp, .-NandcXferComp
40704305 .align 2
40714306 .global NandcCopy1KB
4307
+ .syntax unified
4308
+ .arm
4309
+ .fpu softvfp
40724310 .type NandcCopy1KB, %function
40734311 NandcCopy1KB:
40744312 .fnstart
40754313 @ args = 4, pretend = 0, frame = 0
40764314 @ frame_needed = 0, uses_anonymous_args = 0
40774315 cmp r1, #1
4078
- stmfd sp!, {r4, r5, r6, lr}
4316
+ push {r4, r5, r6, lr}
40794317 .save {r4, r5, r6, lr}
40804318 mov r4, r2
40814319 add r2, r0, #4096
4082
- ldr r5, [sp, #16]
40834320 add r6, r0, #512
4084
- add r2, r2, r4, asl #9
4085
- bne .L720
4321
+ add r0, r2, r4, lsl #9
4322
+ ldr r5, [sp, #16]
4323
+ bne .L741
40864324 cmp r3, #0
4087
- beq .L721
4088
- mov r0, r2
4325
+ beq .L742
4326
+ mov r2, #1024
40894327 mov r1, r3
4090
- mov r2, #1024
40914328 bl ftl_memcpy
4092
-.L721:
4329
+.L742:
40934330 cmp r5, #0
4094
- ldmeqfd sp!, {r4, r5, r6, pc}
4095
- ldrb r3, [r5, #2] @ zero_extendqisi2
4096
- mov r4, r4, lsr #1
4097
- ldrb r2, [r5, #1] @ zero_extendqisi2
4098
- add r4, r4, r4, asl #1
4099
- mov r3, r3, asl #16
4100
- orr r2, r3, r2, asl #8
4101
- ldrb r3, [r5] @ zero_extendqisi2
4102
- orr r3, r2, r3
4103
- ldrb r2, [r5, #3] @ zero_extendqisi2
4104
- orr r3, r3, r2, asl #24
4105
- str r3, [r6, r4, asl #4]
4106
- ldmfd sp!, {r4, r5, r6, pc}
4107
-.L720:
4331
+ lsrne r4, r4, #1
4332
+ ldrne r3, [r5] @ unaligned
4333
+ addne r4, r4, r4, lsl #1
4334
+ strne r3, [r6, r4, lsl #4]
4335
+ pop {r4, r5, r6, pc}
4336
+.L741:
41084337 cmp r3, #0
4109
- beq .L724
4110
- mov r1, r2
4111
- mov r0, r3
4338
+ beq .L745
4339
+ mov r1, r0
41124340 mov r2, #1024
4341
+ mov r0, r3
41134342 bl ftl_memcpy
4114
-.L724:
4343
+.L745:
41154344 cmp r5, #0
4116
- ldmeqfd sp!, {r4, r5, r6, pc}
4117
- mov r4, r4, lsr #1
4118
- add r4, r4, r4, asl #1
4119
- ldr r3, [r6, r4, asl #4]
4120
- mov r2, r3, lsr #8
4345
+ popeq {r4, r5, r6, pc}
4346
+ lsr r4, r4, #1
4347
+ add r4, r4, r4, lsl #1
4348
+ ldr r3, [r6, r4, lsl #4]
41214349 strb r3, [r5]
4350
+ lsr r2, r3, #8
41224351 strb r2, [r5, #1]
4123
- mov r2, r3, lsr #16
4124
- mov r3, r3, lsr #24
4352
+ lsr r2, r3, #16
4353
+ lsr r3, r3, #24
41254354 strb r2, [r5, #2]
41264355 strb r3, [r5, #3]
4127
- ldmfd sp!, {r4, r5, r6, pc}
4356
+ pop {r4, r5, r6, pc}
41284357 .fnend
41294358 .size NandcCopy1KB, .-NandcCopy1KB
41304359 .align 2
41314360 .global NandcXferData
4361
+ .syntax unified
4362
+ .arm
4363
+ .fpu softvfp
41324364 .type NandcXferData, %function
41334365 NandcXferData:
41344366 .fnstart
41354367 @ args = 4, pretend = 0, frame = 80
41364368 @ frame_needed = 0, uses_anonymous_args = 0
4137
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4369
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
41384370 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4139
- mov fp, r3
4140
- ldr r3, .L784
4371
+ mov r8, r3
4372
+ ldr r3, .L797
4373
+ tst r8, #63
41414374 .pad #92
41424375 sub sp, sp, #92
4143
- tst fp, #63
4144
- mov r10, r0
4145
- add r3, r3, r0, asl #3
4146
- mov r7, r1
4147
- mov r8, r2
4148
- ldr r5, [sp, #128]
4149
- ldr r9, [r3, #12]
4150
- bne .L737
4151
- cmp r5, #0
4152
- bne .L738
4153
- add r0, sp, #24
4154
- mov r1, #255
4155
- mov r2, #64
4156
- bl ftl_memset
4157
- add r5, sp, #24
4158
-.L738:
4159
- mov r0, r10
4160
- mov r1, r7
4161
- mov r2, r8
4162
- mov r3, #0
4163
- str fp, [sp]
4164
- str r5, [sp, #4]
4165
- bl NandcXferStart
4166
- mov r0, r10
4167
- mov r1, r7
4168
- bl NandcXferComp
4169
- cmp r7, #0
4170
- movne r6, #0
4171
- bne .L739
4172
- ldr r4, .L784+4
4173
- mov r1, r8, lsr #1
4174
- mov r2, r7
4175
- ldr r3, [r4, #-1804]
4176
- cmp r3, #25
4177
- mov r3, r7
4178
- movcc ip, #64
4179
- movcs ip, #128
4180
-.L741:
4181
- cmp r2, r1
4182
- add r5, r5, #4
4183
- add r0, r3, ip
4184
- bcs .L782
4185
- ldr lr, [r4, #-1836]
4186
- mov r3, r3, lsr #2
4187
- add r2, r2, #1
4188
- ldr r3, [lr, r3, asl #2]
4189
- mov lr, r3, lsr #8
4190
- strb r3, [r5, #-4]
4191
- strb lr, [r5, #-3]
4192
- mov lr, r3, lsr #16
4193
- mov r3, r3, lsr #24
4194
- strb lr, [r5, #-2]
4195
- strb r3, [r5, #-1]
4196
- mov r3, r0
4197
- b .L741
4198
-.L782:
4199
- ldr r0, [r4, #-1804]
4200
- mov r2, #0
4201
- ldr r1, [r4, #-1852]
4202
- mov r8, r8, lsr #2
4203
- mov r6, r2
4204
-.L743:
4205
- cmp r2, r8
4206
- bcs .L739
4207
- cmp r0, #0
4208
- beq .L739
4209
- add r3, r2, #8
4210
- ldr r3, [r9, r3, asl #2]
4211
- str r3, [sp, #20]
4212
- ldr r3, [sp, #20]
4213
- tst r3, #4
4214
- bne .L767
4215
- ldr r4, [sp, #20]
4216
- ubfx r4, r4, #15, #1
4217
- cmp r4, #0
4218
- bne .L767
4219
- cmp r1, #5
4220
- bls .L745
4221
- ldr ip, [sp, #20]
4222
- ldr r4, [sp, #20]
4223
- ldr r3, [sp, #20]
4224
- ubfx ip, ip, #3, #5
4225
- ldr lr, [sp, #20]
4226
- ubfx r4, r4, #27, #1
4227
- ubfx r3, r3, #16, #5
4228
- ubfx lr, lr, #29, #1
4229
- orr ip, ip, r4, asl #5
4230
- orr r3, r3, lr, asl #5
4231
- cmp ip, r3
4232
- ldr r3, [sp, #20]
4233
- ldrhi r4, [sp, #20]
4234
- ubfxhi r3, r3, #3, #5
4235
- ldrls r4, [sp, #20]
4236
- ubfxls r3, r3, #16, #5
4237
- ubfxhi r4, r4, #27, #1
4238
- ubfxls r4, r4, #29, #1
4239
- b .L781
4240
-.L745:
4241
- cmp r1, #3
4242
- bls .L747
4243
- ldr ip, [sp, #20]
4244
- ldr r4, [sp, #20]
4245
- ldr r3, [sp, #20]
4246
- ubfx ip, ip, #3, #5
4247
- ldr lr, [sp, #20]
4248
- ubfx r4, r4, #28, #1
4249
- ubfx r3, r3, #16, #5
4250
- ubfx lr, lr, #30, #1
4251
- orr ip, ip, r4, asl #5
4252
- orr r3, r3, lr, asl #5
4253
- cmp ip, r3
4254
- bls .L748
4255
- ldr r3, [sp, #20]
4256
- ldr r4, [sp, #20]
4257
- ubfx r3, r3, #3, #5
4258
- ubfx r4, r4, #28, #1
4259
-.L781:
4260
- orr r4, r3, r4, asl #5
4261
- b .L747
4262
-.L748:
4263
- ldr r5, [sp, #20]
4264
- ldr r4, [sp, #20]
4265
- ubfx r5, r5, #16, #5
4266
- ubfx r4, r4, #30, #1
4267
- orr r4, r5, r4, asl #5
4268
-.L747:
4269
- cmp r6, r4
4270
- movcc r6, r4
4271
- b .L744
4272
-.L767:
4273
- mvn r6, #0
4274
-.L744:
4275
- add r2, r2, #1
4276
- b .L743
4277
-.L739:
4278
- mov r3, #0
4279
- str r3, [r9, #16]
4280
- b .L750
4281
-.L737:
4282
- cmp r1, #1
4283
- mov r4, #0
4284
- bne .L779
4285
- mov r6, r4
4286
-.L751:
4287
- cmp r4, r8
4288
- bcs .L783
4289
- cmp fp, #0
4290
- and ip, r4, #3
4291
- addne r3, fp, r4, asl #9
4292
- mov r0, r9
4293
- moveq r3, fp
4294
- cmp r5, #0
4295
- mov r1, #1
4296
- str ip, [sp, #8]
4297
- movne r2, #2
4298
- moveq r2, #0
4299
- mla r2, r4, r2, r5
4300
- add r4, r4, #2
4301
- str r2, [sp]
4302
- mov r2, ip
4303
- bl NandcCopy1KB
4304
- mov r0, r10
4305
- mov r1, #1
4306
- mov r2, #2
4307
- ldr ip, [sp, #8]
4308
- str r6, [sp]
4309
- str r6, [sp, #4]
4310
- mov r3, ip
4311
- bl NandcXferStart
4312
- mov r0, r10
4313
- mov r1, #1
4314
- bl NandcXferComp
4315
- b .L751
4316
-.L783:
4317
- mov r6, #0
4318
- b .L750
4319
-.L779:
4320
- str r4, [sp]
4321
- mov r1, r4
4322
- str r4, [sp, #4]
4323
- mov r2, #2
4324
- mov r3, r4
4325
- mov r6, r4
4326
- bl NandcXferStart
4327
- str fp, [sp, #8]
4328
-.L756:
4329
- cmp r4, r8
4330
- bcs .L750
4331
- mov r0, r10
4332
- mov r1, r7
4333
- bl NandcXferComp
4334
- ldr r3, [r9, #32]
4335
- add ip, r4, #2
4336
- cmp ip, r8
4337
- str r3, [sp, #20]
4338
- bcs .L757
4339
- mov r3, #0
4340
- mov r0, r10
4341
- str r3, [sp]
4342
- mov r1, r3
4343
- str r3, [sp, #4]
4344
- mov r2, #2
4345
- and r3, ip, #3
4346
- str ip, [sp, #12]
4347
- bl NandcXferStart
4348
- ldr ip, [sp, #12]
4349
-.L757:
4350
- ldr r3, [sp, #20]
4351
- tst r3, #4
4352
- mvnne r6, #0
4376
+ mov r7, r0
4377
+ mov r5, r1
4378
+ str r2, [sp, #8]
4379
+ ldr r4, [sp, #128]
4380
+ ldr r6, [r3, r0, lsl #3]
43534381 bne .L758
4354
- ldr r2, [sp, #20]
4355
- ldr r3, [sp, #20]
4356
- ubfx r2, r2, #3, #5
4357
- ubfx r3, r3, #27, #1
4358
- orr r3, r2, r3, asl #5
4359
- cmp r6, r3
4360
- movcc r6, r3
4361
-.L758:
4362
- cmp fp, #0
4363
- ldr r3, [sp, #8]
4364
- sub r2, ip, #2
4365
- mov r0, r9
4366
- moveq r3, #0
4382
+ cmp r4, #0
4383
+ bne .L759
4384
+ mov r2, #64
4385
+ mov r1, #255
4386
+ add r0, sp, #24
4387
+ bl ftl_memset
4388
+ add r4, sp, #24
4389
+.L759:
4390
+ mov r3, #0
4391
+ ldr r2, [sp, #8]
4392
+ mov r1, r5
4393
+ mov r0, r7
4394
+ str r4, [sp, #4]
4395
+ str r8, [sp]
4396
+ bl NandcXferStart
4397
+ mov r1, r5
4398
+ mov r0, r7
4399
+ bl NandcXferComp
43674400 cmp r5, #0
4368
- and r2, r2, #3
4369
- str ip, [sp, #12]
4370
- movne r1, #2
4371
- moveq r1, #0
4372
- mla r4, r4, r1, r5
4373
- mov r1, #0
4374
- str r4, [sp]
4375
- bl NandcCopy1KB
4376
- ldr ip, [sp, #12]
4377
- ldr r3, [sp, #8]
4378
- mov r4, ip
4379
- add r3, r3, #1024
4380
- str r3, [sp, #8]
4381
- b .L756
4382
-.L750:
4383
- ldr r3, .L784+4
4384
- clz r7, r7
4385
- mov r7, r7, lsr #5
4386
- ldr r3, [r3, #-1852]
4401
+ movne r9, #0
4402
+ bne .L760
4403
+ ldr r3, .L797+4
4404
+ mov r1, r5
4405
+ ldr r2, [r3, #-1800]
4406
+ cmp r2, #25
4407
+ ldr r2, [sp, #8]
4408
+ movcc lr, #64
4409
+ movcs lr, #128
4410
+ lsr r0, r2, #1
4411
+ mov r2, r5
4412
+.L762:
4413
+ cmp r1, r0
4414
+ add r4, r4, #4
4415
+ add ip, lr, r2
4416
+ bcc .L763
4417
+ ldr r2, [sp, #8]
4418
+ ldr r0, [r3, #-1800]
4419
+ ldr r1, [r3, #-1848]
4420
+ lsr ip, r2, #2
4421
+ mov r2, #0
4422
+ mov r9, r2
4423
+.L764:
4424
+ cmp r2, ip
4425
+ bcs .L760
4426
+ cmp r0, #0
4427
+ bne .L770
4428
+.L760:
4429
+ mov r3, #0
4430
+ str r3, [r6, #16]
4431
+.L771:
4432
+ ldr r3, .L797+4
4433
+ ldr r3, [r3, #-1848]
43874434 cmp r3, #5
4388
- movls r7, #0
4389
- cmp r7, #0
4390
- beq .L762
4391
- ldr r3, [r9]
4435
+ movls r3, #0
4436
+ movhi r3, #1
4437
+ cmp r5, #0
4438
+ movne r3, #0
4439
+ cmp r3, #0
4440
+ beq .L757
4441
+ ldr r3, [r6]
43924442 and r2, r3, #139264
43934443 cmp r2, #139264
4444
+ mvneq r9, #0
43944445 orreq r3, r3, #131072
4395
- streq r3, [r9]
4396
- mvneq r6, #0
4397
-.L762:
4398
- mov r0, r6
4446
+ streq r3, [r6]
4447
+.L757:
4448
+ mov r0, r9
43994449 add sp, sp, #92
44004450 @ sp needed
4401
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4402
-.L785:
4451
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4452
+.L763:
4453
+ ldr r7, [r3, #-1832]
4454
+ bic r2, r2, #3
4455
+ add r1, r1, #1
4456
+ ldr r2, [r7, r2]
4457
+ strb r2, [r4, #-4]
4458
+ lsr r7, r2, #8
4459
+ strb r7, [r4, #-3]
4460
+ lsr r7, r2, #16
4461
+ lsr r2, r2, #24
4462
+ strb r7, [r4, #-2]
4463
+ strb r2, [r4, #-1]
4464
+ mov r2, ip
4465
+ b .L762
4466
+.L770:
4467
+ add r3, r2, #8
4468
+ ldr r3, [r6, r3, lsl #2]
4469
+ str r3, [sp, #20]
4470
+ ldr r3, [sp, #20]
4471
+ tst r3, #4
4472
+ bne .L786
4473
+ ldr r3, [sp, #20]
4474
+ ubfx r3, r3, #15, #1
4475
+ cmp r3, #0
4476
+ bne .L786
4477
+ cmp r1, #5
4478
+ bls .L766
4479
+ ldr lr, [sp, #20]
4480
+ ldr r7, [sp, #20]
4481
+ ldr r3, [sp, #20]
4482
+ ldr r4, [sp, #20]
4483
+ ubfx lr, lr, #3, #5
4484
+ ubfx r7, r7, #27, #1
4485
+ ubfx r3, r3, #16, #5
4486
+ orr lr, lr, r7, lsl #5
4487
+ ubfx r4, r4, #29, #1
4488
+ orr r3, r3, r4, lsl #5
4489
+ cmp lr, r3
4490
+ ldr r3, [sp, #20]
4491
+ ldrhi lr, [sp, #20]
4492
+ ldrls lr, [sp, #20]
4493
+ ubfxhi r3, r3, #3, #5
4494
+ ubfxls r3, r3, #16, #5
4495
+ ubfxhi lr, lr, #27, #1
4496
+ ubfxls lr, lr, #29, #1
4497
+.L796:
4498
+ orr r3, r3, lr, lsl #5
4499
+.L768:
4500
+ cmp r9, r3
4501
+ movcc r9, r3
4502
+.L765:
4503
+ add r2, r2, #1
4504
+ b .L764
4505
+.L766:
4506
+ cmp r1, #3
4507
+ bls .L768
4508
+ ldr lr, [sp, #20]
4509
+ ldr r7, [sp, #20]
4510
+ ldr r3, [sp, #20]
4511
+ ldr r4, [sp, #20]
4512
+ ubfx lr, lr, #3, #5
4513
+ ubfx r7, r7, #28, #1
4514
+ ubfx r3, r3, #16, #5
4515
+ orr lr, lr, r7, lsl #5
4516
+ ubfx r4, r4, #30, #1
4517
+ orr r3, r3, r4, lsl #5
4518
+ cmp lr, r3
4519
+ ldr r3, [sp, #20]
4520
+ ldrhi lr, [sp, #20]
4521
+ ldrls lr, [sp, #20]
4522
+ ubfxhi r3, r3, #3, #5
4523
+ ubfxls r3, r3, #16, #5
4524
+ ubfxhi lr, lr, #28, #1
4525
+ ubfxls lr, lr, #30, #1
4526
+ b .L796
4527
+.L786:
4528
+ mvn r9, #0
4529
+ b .L765
4530
+.L758:
4531
+ cmp r1, #1
4532
+ bne .L772
4533
+ mov r9, #0
4534
+ cmp r4, #0
4535
+ mov r10, r9
4536
+ movne r3, #4
4537
+ moveq r3, #0
4538
+ str r3, [sp, #12]
4539
+.L773:
4540
+ ldr r3, [sp, #8]
4541
+ cmp r9, r3
4542
+ movcs r9, #0
4543
+ bcs .L771
4544
+.L775:
4545
+ cmp r8, #0
4546
+ and fp, r9, #3
4547
+ addne r3, r8, r9, lsl #9
4548
+ moveq r3, r8
4549
+ str r4, [sp]
4550
+ mov r2, fp
4551
+ mov r1, #1
4552
+ mov r0, r6
4553
+ bl NandcCopy1KB
4554
+ mov r3, fp
4555
+ mov r2, #2
4556
+ mov r1, #1
4557
+ mov r0, r7
4558
+ str r10, [sp, #4]
4559
+ add r9, r9, #2
4560
+ str r10, [sp]
4561
+ bl NandcXferStart
4562
+ mov r1, #1
4563
+ mov r0, r7
4564
+ bl NandcXferComp
4565
+ ldr r3, [sp, #12]
4566
+ add r4, r4, r3
4567
+ b .L773
4568
+.L772:
4569
+ mov r10, #0
4570
+ mov r2, #2
4571
+ mov r3, r10
4572
+ str r10, [sp, #4]
4573
+ str r10, [sp]
4574
+ mov r1, r10
4575
+ bl NandcXferStart
4576
+ mov fp, r8
4577
+ cmp r4, r10
4578
+ mov r9, r10
4579
+ movne r3, #4
4580
+ moveq r3, r10
4581
+ str r3, [sp, #12]
4582
+.L776:
4583
+ ldr r3, [sp, #8]
4584
+ cmp r10, r3
4585
+ bcs .L771
4586
+ mov r1, r5
4587
+ mov r0, r7
4588
+ bl NandcXferComp
4589
+ ldr r3, [r6, #32]
4590
+ add r10, r10, #2
4591
+ str r3, [sp, #20]
4592
+ ldr r3, [sp, #8]
4593
+ cmp r3, r10
4594
+ bls .L777
4595
+ mov r3, #0
4596
+ mov r2, #2
4597
+ str r3, [sp, #4]
4598
+ mov r1, #0
4599
+ str r3, [sp]
4600
+ mov r0, r7
4601
+ and r3, r10, #3
4602
+ bl NandcXferStart
4603
+.L777:
4604
+ ldr r3, [sp, #20]
4605
+ tst r3, #4
4606
+ mvnne r9, #0
4607
+ bne .L778
4608
+ ldr r3, [sp, #20]
4609
+ ldr r2, [sp, #20]
4610
+ ubfx r3, r3, #3, #5
4611
+ ubfx r2, r2, #27, #1
4612
+ orr r3, r3, r2, lsl #5
4613
+ cmp r9, r3
4614
+ movcc r9, r3
4615
+.L778:
4616
+ cmp r8, #0
4617
+ sub r2, r10, #2
4618
+ movne r3, fp
4619
+ str r4, [sp]
4620
+ moveq r3, #0
4621
+ and r2, r2, #3
4622
+ mov r1, #0
4623
+ mov r0, r6
4624
+ bl NandcCopy1KB
4625
+ ldr r3, [sp, #12]
4626
+ add fp, fp, #1024
4627
+ add r4, r4, r3
4628
+ b .L776
4629
+.L798:
44034630 .align 2
4404
-.L784:
4631
+.L797:
44054632 .word .LANCHOR0
44064633 .word .LANCHOR2
44074634 .fnend
44084635 .size NandcXferData, .-NandcXferData
44094636 .align 2
44104637 .global FlashReadRawPage
4638
+ .syntax unified
4639
+ .arm
4640
+ .fpu softvfp
44114641 .type FlashReadRawPage, %function
44124642 FlashReadRawPage:
44134643 .fnstart
44144644 @ args = 0, pretend = 0, frame = 0
44154645 @ frame_needed = 0, uses_anonymous_args = 0
4416
- stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
4646
+ push {r0, r1, r4, r5, r6, r7, r8, lr}
44174647 .save {r4, r5, r6, r7, r8, lr}
44184648 .pad #8
44194649 mov r8, r3
4420
- ldr r3, .L789
4650
+ ldr r3, .L802
44214651 subs r4, r0, #0
44224652 mov r6, r1
44234653 mov r7, r2
4424
- ldrb r5, [r3, #265] @ zero_extendqisi2
4425
- bne .L787
4426
- ldr r2, .L789+4
4427
- ldrb r3, [r2, #1] @ zero_extendqisi2
4428
- ldr r2, [r2, #4]
4429
- mul r2, r2, r3
4430
- cmp r1, r2
4431
- movcc r5, #4
4432
-.L787:
4654
+ ldrb r5, [r3, #477] @ zero_extendqisi2
4655
+ bne .L800
4656
+ ldr r1, .L802+4
4657
+ ldrb r3, [r1, #37] @ zero_extendqisi2
4658
+ ldr r0, [r1, #40]
4659
+ mul r0, r0, r3
4660
+ cmp r0, r6
4661
+ movhi r5, #4
4662
+.L800:
44334663 mov r0, r4
44344664 bl NandcWaitFlashReady
44354665 mov r0, r4
....@@ -4439,184 +4669,179 @@
44394669 bl FlashReadCmd
44404670 mov r0, r4
44414671 bl NandcWaitFlashReady
4442
- mov r2, r5
4443
- mov r1, #0
44444672 mov r3, r7
4445
- mov r0, r4
4673
+ mov r2, r5
44464674 str r8, [sp]
4675
+ mov r1, #0
4676
+ mov r0, r4
44474677 bl NandcXferData
4448
- mov r5, r0
4678
+ mov r1, r0
44494679 mov r0, r4
44504680 bl NandcFlashDeCs
4451
- mov r0, r5
4681
+ mov r0, r1
44524682 add sp, sp, #8
44534683 @ sp needed
4454
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
4455
-.L790:
4684
+ pop {r4, r5, r6, r7, r8, pc}
4685
+.L803:
44564686 .align 2
4457
-.L789:
4687
+.L802:
44584688 .word .LANCHOR1
44594689 .word .LANCHOR0
44604690 .fnend
44614691 .size FlashReadRawPage, .-FlashReadRawPage
44624692 .align 2
44634693 .global FlashDdrTunningRead
4694
+ .syntax unified
4695
+ .arm
4696
+ .fpu softvfp
44644697 .type FlashDdrTunningRead, %function
44654698 FlashDdrTunningRead:
44664699 .fnstart
44674700 @ args = 4, pretend = 0, frame = 16
44684701 @ frame_needed = 0, uses_anonymous_args = 0
4469
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4702
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
44704703 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
44714704 mov r7, r3
4472
- ldr r4, .L818
4705
+ ldr r4, .L830
44734706 .pad #20
44744707 sub sp, sp, #20
4475
- mov r10, r0
44764708 mov fp, r2
4477
- str r1, [sp]
4478
- ldr r3, [r4, #-2808]
4709
+ stm sp, {r0, r1}
4710
+ ldr r3, [r4, #-2804]
44794711 ldr r3, [r3, #304]
4480
- str r3, [sp, #8]
4481
- ldr r3, [r4, #-1852]
4712
+ str r3, [sp, #12]
4713
+ ldr r3, [r4, #-1848]
44824714 cmp r3, #8
44834715 ldr r3, [sp, #56]
4484
- movcc r9, #6
4485
- movcs r9, #12
4716
+ movcc r10, #6
4717
+ movcs r10, #12
44864718 cmp r3, #0
4487
- moveq r6, #1024
4488
- beq .L793
4719
+ moveq r5, #1024
4720
+ beq .L806
44894721 mov r0, #1
44904722 bl FlashSetInterfaceMode
44914723 mov r0, #1
44924724 bl NandcSetMode
4493
- mov r0, r10
4725
+ ldr r0, [sp]
44944726 bl FlashReset
4495
- mov r2, fp
44964727 mov r3, r7
4497
- mov r0, r10
4498
- ldr r1, [sp]
4728
+ mov r2, fp
4729
+ ldm sp, {r0, r1}
44994730 bl FlashReadRawPage
4500
- mov r6, r0
4501
- ldrb r0, [r4, #-1875] @ zero_extendqisi2
4731
+ mov r5, r0
4732
+ ldrb r0, [r4, #-1871] @ zero_extendqisi2
45024733 bl FlashSetInterfaceMode
4503
- ldrb r0, [r4, #-1875] @ zero_extendqisi2
4734
+ ldrb r0, [r4, #-1871] @ zero_extendqisi2
45044735 bl NandcSetMode
4505
- cmn r6, #1
4506
- bne .L794
4507
-.L803:
4508
- mvn r6, #0
4509
- b .L795
4510
-.L794:
4511
- ldr r0, .L818+4
4512
- mov r2, r6
4513
- ldr r1, [sp]
4736
+ cmn r5, #1
4737
+ bne .L807
4738
+.L816:
4739
+ mvn r5, #0
4740
+.L804:
4741
+ mov r0, r5
4742
+ add sp, sp, #20
4743
+ @ sp needed
4744
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4745
+.L807:
4746
+ mov r2, r5
4747
+ ldr r1, [sp, #4]
4748
+ ldr r0, .L830+4
45144749 bl printk
4515
- cmp r6, #9
4516
- bhi .L796
4517
- ldr r3, .L818+8
4518
- add r3, r3, r10, asl #3
4519
- ldr r3, [r3, #12]
4750
+ cmp r5, #9
4751
+ bhi .L809
4752
+ ldr r2, [sp]
4753
+ ldr r3, .L830+8
4754
+ ldr r3, [r3, r2, lsl #3]
45204755 ldr r2, [r3, #3840]
45214756 ldr r2, [r3]
45224757 orr r2, r2, #131072
45234758 str r2, [r3]
4524
-.L796:
4525
- ldr r3, [r4, #-1800]
4759
+.L809:
4760
+ ldr r3, [r4, #-1796]
45264761 add r3, r3, #1
4527
- str r3, [r4, #-1800]
45284762 cmp r3, #2048
4529
- bcc .L795
4530
- ldr r3, .L818
4531
- mov r7, #0
4532
- mov fp, r7
4533
- str r7, [r3, #-1800]
4534
-.L793:
4535
- mov r4, #0
4763
+ str r3, [r4, #-1796]
4764
+ movcs r7, #0
4765
+ strcs r7, [r4, #-1796]
4766
+ movcs fp, r7
4767
+ bcc .L804
4768
+.L806:
4769
+ mov r9, #0
45364770 mvn r8, #0
4537
- mov ip, r4
4538
- mov r5, r4
4539
- str r4, [sp, #4]
4540
-.L801:
4541
- uxtb r0, r9
4542
- str ip, [sp, #12]
4771
+ mov r6, r9
4772
+ mov r4, r9
4773
+ str r9, [sp, #8]
4774
+.L814:
4775
+ uxtb r0, r10
45434776 bl NandcSetDdrPara
45444777 mov r3, r7
4545
- mov r0, r10
45464778 mov r2, fp
4547
- ldr r1, [sp]
4779
+ ldm sp, {r0, r1}
45484780 bl FlashReadRawPage
4549
- add r3, r6, #1
4781
+ add r3, r5, #1
45504782 cmp r0, r3
4551
- ldr ip, [sp, #12]
4552
- bhi .L797
4783
+ bhi .L810
45534784 cmp r0, #2
4554
- bhi .L807
4555
- add r5, r5, #1
4556
- cmp r5, #9
4557
- bls .L807
4558
- rsb r4, r5, r9
4559
- mov r6, r0
4785
+ bhi .L820
4786
+ add r4, r4, #1
4787
+ cmp r4, #9
4788
+ bls .L820
4789
+ mov r3, r6
4790
+ mov r5, r0
4791
+ sub r6, r10, r4
45604792 mov r8, #0
4561
- b .L799
4562
-.L797:
4563
- ldr r3, [sp, #4]
4564
- cmp r3, r5
4565
- bcs .L808
4566
- cmp r5, #7
4567
- rsb ip, r5, r4
4568
- bhi .L809
4569
- str r5, [sp, #4]
4570
- b .L808
4571
-.L807:
4572
- mov r8, #0
4573
- mov r4, r9
4574
- mov r6, r0
4575
- mov r7, r8
4576
- mov fp, r8
4577
- b .L798
4578
-.L808:
4579
- mov r5, #0
4580
-.L798:
4581
- add r9, r9, #2
4582
- cmp r9, #69
4583
- bls .L801
4584
-.L799:
4585
- ldr r3, [sp, #4]
4586
- cmp r3, r5
4587
- movcs r4, ip
4588
- b .L800
4589
-.L809:
4590
- mov r4, ip
4591
-.L800:
4592
- cmp r4, #0
4593
- beq .L802
4594
- ldr r0, .L818+12
4595
- mov r1, r4
4793
+.L812:
4794
+ ldr r2, [sp, #8]
4795
+ cmp r4, r2
4796
+ movls r6, r3
4797
+.L813:
4798
+ cmp r6, #0
4799
+ beq .L815
4800
+ mov r1, r6
4801
+ ldr r0, .L830+12
45964802 bl printk
4597
- uxtb r0, r4
4803
+ uxtb r0, r6
45984804 bl NandcSetDdrPara
4599
-.L802:
4805
+.L815:
46004806 cmn r8, #1
4601
- bne .L795
4602
- ldr r0, .L818+16
4603
- mov r1, r10
4604
- ldr r2, [sp]
4807
+ bne .L804
4808
+ ldm sp, {r1, r2}
4809
+ ldr r0, .L830+16
46054810 bl printk
46064811 ldr r3, [sp, #56]
46074812 cmp r3, #0
4608
- beq .L803
4609
- ldr r3, [sp, #8]
4813
+ beq .L816
4814
+ ldr r3, [sp, #12]
46104815 ubfx r0, r3, #8, #8
46114816 bl NandcSetDdrPara
4612
-.L795:
4613
- mov r0, r6
4614
- add sp, sp, #20
4615
- @ sp needed
4616
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4617
-.L819:
4817
+ b .L804
4818
+.L810:
4819
+ ldr r3, [sp, #8]
4820
+ cmp r4, r3
4821
+ bls .L821
4822
+ cmp r4, #7
4823
+ sub r6, r9, r4
4824
+ bhi .L813
4825
+ str r4, [sp, #8]
4826
+.L821:
4827
+ mov r4, #0
4828
+ b .L811
4829
+.L820:
4830
+ mov r8, #0
4831
+ mov r9, r10
4832
+ mov r5, r0
4833
+ mov r7, r8
4834
+ mov fp, r8
4835
+.L811:
4836
+ add r10, r10, #2
4837
+ cmp r10, #69
4838
+ bls .L814
4839
+ mov r3, r6
4840
+ mov r6, r9
4841
+ b .L812
4842
+.L831:
46184843 .align 2
4619
-.L818:
4844
+.L830:
46204845 .word .LANCHOR2
46214846 .word .LC7
46224847 .word .LANCHOR0
....@@ -4626,109 +4851,108 @@
46264851 .size FlashDdrTunningRead, .-FlashDdrTunningRead
46274852 .align 2
46284853 .global FlashReadPage
4854
+ .syntax unified
4855
+ .arm
4856
+ .fpu softvfp
46294857 .type FlashReadPage, %function
46304858 FlashReadPage:
46314859 .fnstart
46324860 @ args = 0, pretend = 0, frame = 0
46334861 @ frame_needed = 0, uses_anonymous_args = 0
4634
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
4862
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
46354863 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
46364864 .pad #12
46374865 mov r5, r0
4638
- mov r6, r1
4866
+ mov r7, r1
46394867 mov r8, r2
4640
- mov r7, r3
4868
+ mov r9, r3
46414869 bl FlashReadRawPage
4642
- ldr r10, .L841
46434870 cmn r0, #1
46444871 mov r4, r0
4645
- bne .L821
4646
- ldr r9, .L841+4
4647
- ldrb fp, [r9, #8] @ zero_extendqisi2
4872
+ ldr r6, .L852
4873
+ bne .L833
4874
+ ldr r10, .L852+4
4875
+ ldrb fp, [r10, #44] @ zero_extendqisi2
46484876 cmp fp, #0
4649
- bne .L822
4650
-.L824:
4651
- ldrb r3, [r10, #-1860] @ zero_extendqisi2
4652
- ldr r9, .L841
4877
+ bne .L834
4878
+.L836:
4879
+ ldrb r3, [r6, #-1856] @ zero_extendqisi2
46534880 cmp r3, #0
4654
- beq .L821
4655
- b .L840
4656
-.L822:
4657
- mov r3, #0
4658
- mov r0, r5
4659
- strb r3, [r9, #8]
4660
- mov r1, r6
4881
+ beq .L833
4882
+ ldr r3, [r6, #-2804]
46614883 mov r2, r8
4662
- mov r3, r7
4663
- bl FlashReadRawPage
4664
- strb fp, [r9, #8]
4665
- cmn r0, #1
4666
- movne r4, r0
4667
- beq .L824
4668
- b .L821
4669
-.L840:
4670
- ldr r3, [r9, #-2808]
4884
+ mov r1, r7
46714885 mov r0, r5
4672
- mov r1, r6
4673
- mov r2, r8
4674
- ldr fp, [r3, #304]
4886
+ ldr r10, [r3, #304]
46754887 mov r3, #1
46764888 str r3, [sp]
4677
- mov r3, r7
4889
+ mov r3, r9
46784890 bl FlashDdrTunningRead
46794891 cmn r0, #1
46804892 mov r4, r0
4681
- beq .L825
4682
- ldrb r3, [r9, #-2743] @ zero_extendqisi2
4893
+ beq .L837
4894
+ ldrb r3, [r6, #-2739] @ zero_extendqisi2
46834895 cmp r0, r3, lsr #1
4684
- bls .L821
4685
-.L825:
4686
- ubfx r0, fp, #8, #8
4896
+ bls .L833
4897
+.L837:
4898
+ ubfx r0, r10, #8, #8
46874899 bl NandcSetDdrPara
4688
-.L821:
4689
- ldr ip, [r10, #-1796]
4690
- ldr r9, .L841
4691
- adds r3, ip, #0
4900
+ b .L833
4901
+.L834:
4902
+ mov r3, #0
4903
+ mov r2, r8
4904
+ strb r3, [r10, #44]
4905
+ mov r1, r7
4906
+ mov r3, r9
4907
+ mov r0, r5
4908
+ bl FlashReadRawPage
4909
+ cmn r0, #1
4910
+ strb fp, [r10, #44]
4911
+ movne r4, r0
4912
+ beq .L836
4913
+.L833:
4914
+ ldr r10, [r6, #-1792]
4915
+ adds r3, r10, #0
46924916 movne r3, #1
46934917 cmn r4, #1
46944918 movne r3, #0
46954919 cmp r3, #0
4696
- beq .L826
4697
- mov r1, r6
4920
+ beq .L832
4921
+ mov r3, r9
46984922 mov r2, r8
4699
- mov r3, r7
4923
+ mov r1, r7
47004924 mov r0, r5
4701
- blx ip
4702
- mov r2, r5
4703
- mov r3, r6
4925
+ blx r10
4926
+ mov r3, r7
47044927 mov r4, r0
4705
- ldr r0, .L841+8
4706
- mov r1, r4
4928
+ mov r1, r0
4929
+ mov r2, r5
4930
+ ldr r0, .L852+8
47074931 bl printk
47084932 cmn r4, #1
4709
- bne .L826
4710
- ldrb r3, [r9, #-2744] @ zero_extendqisi2
4933
+ bne .L832
4934
+ ldrb r3, [r6, #-2740] @ zero_extendqisi2
47114935 cmp r3, #0
4712
- beq .L826
4936
+ beq .L832
47134937 mov r0, r5
47144938 bl flash_enter_slc_mode
4715
- ldr ip, [r9, #-1796]
4716
- mov r0, r5
4717
- mov r1, r6
4939
+ ldr r4, [r6, #-1792]
4940
+ mov r3, r9
47184941 mov r2, r8
4719
- mov r3, r7
4720
- blx ip
4942
+ mov r1, r7
4943
+ mov r0, r5
4944
+ blx r4
47214945 mov r4, r0
47224946 mov r0, r5
47234947 bl flash_exit_slc_mode
4724
-.L826:
4948
+.L832:
47254949 mov r0, r4
47264950 add sp, sp, #12
47274951 @ sp needed
4728
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4729
-.L842:
4952
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4953
+.L853:
47304954 .align 2
4731
-.L841:
4955
+.L852:
47324956 .word .LANCHOR2
47334957 .word .LANCHOR0
47344958 .word .LC10
....@@ -4736,356 +4960,368 @@
47364960 .size FlashReadPage, .-FlashReadPage
47374961 .align 2
47384962 .global FlashDdrParaScan
4963
+ .syntax unified
4964
+ .arm
4965
+ .fpu softvfp
47394966 .type FlashDdrParaScan, %function
47404967 FlashDdrParaScan:
47414968 .fnstart
47424969 @ args = 0, pretend = 0, frame = 0
47434970 @ frame_needed = 0, uses_anonymous_args = 0
4744
- stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
4971
+ push {r0, r1, r4, r5, r6, r7, r8, lr}
47454972 .save {r4, r5, r6, r7, r8, lr}
47464973 .pad #8
4747
- mov r7, r0
4748
- ldr r5, .L853
4749
- mov r6, r1
4974
+ mov r6, r0
4975
+ ldr r5, .L864
47504976 mov r4, #0
4751
- ldrb r0, [r5, #-1875] @ zero_extendqisi2
4977
+ mov r7, r1
4978
+ ldrb r0, [r5, #-1871] @ zero_extendqisi2
47524979 bl FlashSetInterfaceMode
4753
- ldrb r0, [r5, #-1875] @ zero_extendqisi2
4980
+ ldrb r0, [r5, #-1871] @ zero_extendqisi2
47544981 bl NandcSetMode
4755
- mov r1, r6
4756
- mov r2, r4
47574982 mov r3, r4
4758
- mov r0, r7
4983
+ mov r2, r4
4984
+ mov r1, r7
47594985 str r4, [sp]
4986
+ mov r0, r6
47604987 bl FlashDdrTunningRead
47614988 mov r3, r4
4762
- mov r1, r6
4763
- mov r2, r4
47644989 mov r8, r0
4765
- mov r0, r7
4990
+ mov r2, r4
4991
+ mov r1, r7
4992
+ mov r0, r6
47664993 bl FlashReadRawPage
4994
+ cmn r8, #1
4995
+ cmnne r0, #1
47674996 mov r3, r5
4768
- cmn r0, #1
4769
- cmnne r8, #1
4770
- bne .L844
4771
- ldrb r2, [r5, #-1875] @ zero_extendqisi2
4997
+ bne .L855
4998
+ ldrb r2, [r5, #-1871] @ zero_extendqisi2
47724999 tst r2, #1
4773
- beq .L844
5000
+ beq .L855
47745001 mov r0, #1
47755002 bl FlashSetInterfaceMode
47765003 mov r0, #1
47775004 bl NandcSetMode
4778
- strb r4, [r5, #-1860]
4779
- b .L845
4780
-.L844:
4781
- mov r2, #1
4782
- strb r2, [r3, #-1860]
4783
-.L845:
5005
+ strb r4, [r5, #-1856]
5006
+.L856:
47845007 mov r0, #0
47855008 add sp, sp, #8
47865009 @ sp needed
4787
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
4788
-.L854:
5010
+ pop {r4, r5, r6, r7, r8, pc}
5011
+.L855:
5012
+ mov r2, #1
5013
+ strb r2, [r3, #-1856]
5014
+ b .L856
5015
+.L865:
47895016 .align 2
4790
-.L853:
5017
+.L864:
47915018 .word .LANCHOR2
47925019 .fnend
47935020 .size FlashDdrParaScan, .-FlashDdrParaScan
47945021 .align 2
47955022 .global FlashLoadPhyInfo
5023
+ .syntax unified
5024
+ .arm
5025
+ .fpu softvfp
47965026 .type FlashLoadPhyInfo, %function
47975027 FlashLoadPhyInfo:
47985028 .fnstart
47995029 @ args = 0, pretend = 0, frame = 16
48005030 @ frame_needed = 0, uses_anonymous_args = 0
4801
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5031
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
48025032 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5033
+ mov r3, #60
48035034 .pad #20
48045035 sub sp, sp, #20
4805
- ldr r3, .L871
4806
- mov r4, #0
4807
- ldr r8, .L871+4
4808
- mov r9, #4
4809
- ldr r5, .L871+8
4810
- mvn r7, #0
4811
- ldr r0, [r3] @ unaligned
4812
- ldr r3, [r8, #4]
4813
- str r4, [r5, #-1788]
4814
- mov r6, r5
4815
- str r0, [sp, #12] @ unaligned
4816
- mov r0, r4
5036
+ ldr r10, .L881
5037
+ mov r5, #0
5038
+ mov r7, #4
5039
+ strb r3, [sp, #12]
5040
+ mov r3, #40
5041
+ strb r3, [sp, #13]
5042
+ mov r3, #24
5043
+ strb r3, [sp, #14]
5044
+ mov r3, #16
5045
+ ldr r4, .L881+4
5046
+ mvn r6, #0
5047
+ strb r3, [sp, #15]
5048
+ mov r0, r5
5049
+ ldr r3, [r10, #40]
5050
+ sub r9, r4, #2720
5051
+ str r5, [r4, #-1784]
5052
+ sub r9, r9, #8
48175053 str r3, [sp, #4]
4818
- ldr r3, [r5, #-1868]
4819
- str r3, [r5, #-1792]
5054
+ ldr r3, [r4, #-1864]
5055
+ str r3, [r4, #-1788]
48205056 bl flash_enter_slc_mode
4821
-.L856:
4822
- add fp, r4, #1
4823
- mov r10, #0
4824
-.L858:
5057
+.L867:
5058
+ add fp, r5, #1
5059
+ mov r8, #0
5060
+.L869:
48255061 add r3, sp, #12
4826
- ldrb r0, [r3, r10] @ zero_extendqisi2
5062
+ ldrb r0, [r3, r8] @ zero_extendqisi2
48275063 bl FlashBchSel
4828
- mov r0, #0
4829
- mov r1, r4
4830
- ldr r2, [r5, #-1868]
4831
- mov r3, r0
5064
+ mov r3, #0
5065
+ ldr r2, [r4, #-1864]
5066
+ mov r1, r5
5067
+ mov r0, r3
48325068 bl FlashReadRawPage
48335069 cmn r0, #1
4834
- bne .L857
4835
- mov r0, #0
5070
+ bne .L868
5071
+ mov r3, #0
5072
+ ldr r2, [r4, #-1864]
48365073 mov r1, fp
4837
- ldr r2, [r6, #-1868]
4838
- mov r3, r0
5074
+ mov r0, r3
48395075 bl FlashReadRawPage
48405076 cmn r0, #1
4841
- bne .L857
4842
- add r10, r10, #1
4843
- cmp r10, #4
4844
- beq .L859
4845
- b .L858
4846
-.L860:
4847
- add r0, fp, #12
4848
- movw r1, #2036
4849
- bl js_hash
4850
- ldr r3, [fp, #8]
4851
- cmp r3, r0
4852
- mvnne r7, #0
4853
- bne .L859
4854
- ldr r7, .L871+12
4855
- add r1, fp, #160
4856
- mov r2, #32
5077
+ bne .L868
5078
+ add r8, r8, #1
5079
+ cmp r8, #4
5080
+ bne .L869
5081
+.L870:
5082
+ ldr r3, [sp, #4]
5083
+ subs r7, r7, #1
5084
+ add r5, r5, r3
5085
+ bne .L867
48575086 mov r0, r7
4858
- bl ftl_memcpy
4859
- ldr r1, [r6, #-1792]
5087
+ b .L880
5088
+.L871:
5089
+ movw r1, #2036
5090
+ add r0, r8, #12
5091
+ bl js_hash
5092
+ ldr r3, [r8, #8]
5093
+ cmp r3, r0
5094
+ mvnne r6, #0
5095
+ bne .L870
5096
+ ldr r6, .L881+8
48605097 mov r2, #32
4861
- ldr r0, .L871+16
5098
+ add r1, r8, #160
5099
+ mov r0, r6
5100
+ bl ftl_memcpy
5101
+ ldr r1, [r4, #-1788]
5102
+ mov r2, #32
5103
+ ldr r0, .L881+12
48625104 add r1, r1, #192
48635105 bl ftl_memcpy
4864
- ldr r1, [r6, #-1792]
5106
+ ldr r1, [r4, #-1788]
48655107 mov r2, #852
4866
- ldr r0, .L871+20
5108
+ mov r0, r9
48675109 add r1, r1, #224
48685110 bl ftl_memcpy
4869
- ldrh r0, [r7, #10]
5111
+ ldrh r0, [r6, #10]
48705112 bl FlashBlockAlignInit
4871
- ldr r7, [r6, #-1792]
4872
- str r4, [r6, #-1788]
4873
- mov r0, r4
4874
- ldr r1, [r8, #4]
4875
- ldr r3, [r7, #1076]
4876
- strb r3, [r6, #-1860]
5113
+ ldr r6, [r4, #-1788]
5114
+ mov r0, r5
5115
+ str r5, [r4, #-1784]
5116
+ ldr r1, [r10, #40]
5117
+ ldr r3, [r6, #1076]
5118
+ strb r3, [r4, #-1856]
48775119 bl __aeabi_uidiv
48785120 add r0, r0, #1
48795121 cmp r0, #1
4880
- strhi r0, [r6, #-1784]
48815122 movls r3, #2
4882
- strls r3, [r6, #-1784]
4883
- ldrh r3, [r7, #14]
4884
- mov r7, #0
4885
- strb r3, [r5, #-1780]
4886
-.L859:
4887
- ldr r3, [sp, #4]
4888
- subs r9, r9, #1
4889
- add r4, r4, r3
4890
- bne .L856
4891
- mov r0, r9
4892
-.L870:
5123
+ strhi r0, [r4, #-1780]
5124
+ strls r3, [r4, #-1780]
5125
+ ldrh r3, [r6, #14]
5126
+ mov r6, #0
5127
+ strb r3, [r4, #-1776]
5128
+ b .L870
5129
+.L868:
5130
+ ldr r8, [r4, #-1788]
5131
+ ldr r2, .L881+16
5132
+ ldr r3, [r8]
5133
+ cmp r3, r2
5134
+ bne .L870
5135
+ cmp r6, #0
5136
+ bne .L871
5137
+ ldr r1, [r10, #40]
5138
+ mov r0, r5
5139
+ bl __aeabi_uidiv
5140
+ add r0, r0, #1
5141
+ str r0, [r4, #-1780]
5142
+ mov r0, r6
5143
+.L880:
48935144 bl flash_exit_slc_mode
4894
- mov r0, r7
5145
+ mov r0, r6
48955146 add sp, sp, #20
48965147 @ sp needed
4897
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4898
-.L857:
4899
- ldr fp, [r5, #-1792]
4900
- ldr r2, .L871+24
4901
- ldr r3, [fp]
4902
- cmp r3, r2
4903
- bne .L859
4904
- cmp r7, #0
4905
- bne .L860
4906
- mov r0, r4
4907
- ldr r1, [r8, #4]
4908
- bl __aeabi_uidiv
4909
- ldr r3, .L871+8
4910
- add r0, r0, #1
4911
- str r0, [r3, #-1784]
4912
- mov r0, r7
4913
- b .L870
4914
-.L872:
5148
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5149
+.L882:
49155150 .align 2
4916
-.L871:
4917
- .word .LANCHOR3
5151
+.L881:
49185152 .word .LANCHOR0
49195153 .word .LANCHOR2
4920
- .word .LANCHOR1+256
4921
- .word .LANCHOR0+48
4922
- .word .LANCHOR2-2732
5154
+ .word .LANCHOR1+468
5155
+ .word .LANCHOR0+52
49235156 .word 1312902724
49245157 .fnend
49255158 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo
49265159 .align 2
49275160 .global ToshibaReadRetrial
5161
+ .syntax unified
5162
+ .arm
5163
+ .fpu softvfp
49285164 .type ToshibaReadRetrial, %function
49295165 ToshibaReadRetrial:
49305166 .fnstart
49315167 @ args = 0, pretend = 0, frame = 24
49325168 @ frame_needed = 0, uses_anonymous_args = 0
4933
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5169
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
49345170 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
49355171 .pad #28
49365172 sub sp, sp, #28
4937
- mov r8, r0
5173
+ mov r7, r0
5174
+ str r2, [sp, #8]
49385175 mov r10, r3
49395176 str r1, [sp, #20]
4940
- str r2, [sp, #8]
49415177 bl NandcWaitFlashReady
4942
- ldr r3, .L902
4943
- add r3, r3, r8, asl #3
4944
- ldr r5, [r3, #12]
4945
- ldrb r3, [r3, #16] @ zero_extendqisi2
4946
- add r6, r3, #8
4947
- add r6, r5, r6, asl #8
5178
+ ldr r3, .L911
5179
+ ldr r2, .L911+4
5180
+ ldr r5, [r3, r7, lsl #3]
5181
+ add r3, r3, r7, lsl #3
5182
+ str r2, [sp, #12]
5183
+ ldrb r3, [r3, #4] @ zero_extendqisi2
49485184 str r3, [sp, #4]
4949
- ldr r3, .L902+4
4950
- ldrb r7, [r3] @ zero_extendqisi2
4951
- str r3, [sp, #12]
4952
- sub r4, r7, #67
5185
+ add r6, r3, #8
5186
+ ldrb r3, [r2] @ zero_extendqisi2
5187
+ add r6, r5, r6, lsl #8
5188
+ sub r3, r3, #67
5189
+ cmp r3, #1
49535190 ldr r3, [sp, #4]
4954
- cmp r4, #1
4955
- mov r3, r3, asl #8
49565191 movls r4, #0
5192
+ lsl r3, r3, #8
49575193 str r3, [sp, #16]
4958
- bls .L874
4959
- ldr r3, .L902+8
4960
- ldrb r4, [r3, #-1860] @ zero_extendqisi2
5194
+ bls .L884
5195
+ ldr r3, .L911+8
5196
+ ldrb r4, [r3, #-1856] @ zero_extendqisi2
49615197 cmp r4, #0
4962
- beq .L875
4963
- mov r0, #0
5198
+ beq .L885
49645199 mov r4, #1
5200
+ mov r0, #0
49655201 bl NandcSetDdrMode
4966
-.L875:
5202
+.L885:
49675203 ldr r3, [sp, #16]
49685204 mov r2, #92
49695205 add r3, r5, r3
49705206 str r2, [r3, #2056]
49715207 mov r2, #197
49725208 str r2, [r3, #2056]
4973
-.L874:
4974
- mov r7, #1
5209
+.L884:
5210
+ mov r8, #1
49755211 mvn r9, #0
4976
-.L876:
4977
- ldr r3, .L902+12
5212
+.L886:
5213
+ ldr r3, .L911+12
49785214 ldrb r3, [r3] @ zero_extendqisi2
49795215 add r3, r3, #1
4980
- cmp r7, r3
4981
- bcs .L901
4982
- ldr r3, [sp, #12]
4983
- mov r0, r6
4984
- uxtb r1, r7
4985
- ldrb r3, [r3] @ zero_extendqisi2
4986
- sub r3, r3, #67
4987
- cmp r3, #1
4988
- bhi .L877
4989
- bl SandiskSetRRPara
4990
- b .L878
4991
-.L877:
4992
- bl ToshibaSetRRPara
4993
-.L878:
4994
- ldr r3, [sp, #12]
4995
- ldrb r3, [r3] @ zero_extendqisi2
4996
- cmp r3, #34
4997
- bne .L879
4998
- ldr r3, .L902+12
4999
- ldrb r3, [r3] @ zero_extendqisi2
5000
- sub r3, r3, #3
5001
- cmp r7, r3
5002
- ldreq r3, [sp, #4]
5003
- moveq r2, #179
5004
- addeq r3, r5, r3, asl #8
5005
- streq r2, [r3, #2056]
5006
-.L879:
5007
- ldr r3, [sp, #16]
5008
- cmp r4, #0
5009
- mov r2, #38
5010
- add r3, r5, r3
5011
- str r2, [r3, #2056]
5012
- mov r2, #93
5013
- str r2, [r3, #2056]
5014
- beq .L880
5015
- mov r0, #4
5016
- bl NandcSetDdrMode
5017
- mov r0, r8
5018
- mov r3, r10
5019
- ldr r1, [sp, #20]
5020
- ldr r2, [sp, #8]
5021
- bl FlashReadRawPage
5022
- mov fp, r0
5023
- mov r0, #0
5024
- bl NandcSetDdrMode
5025
- b .L881
5026
-.L880:
5027
- mov r0, r8
5028
- ldr r1, [sp, #20]
5029
- ldr r2, [sp, #8]
5030
- mov r3, r10
5031
- bl FlashReadRawPage
5032
- mov fp, r0
5033
-.L881:
5034
- cmn fp, #1
5035
- beq .L882
5036
- ldr r3, .L902+8
5037
- cmn r9, #1
5038
- moveq r9, fp
5039
- ldrb r2, [r3, #-2743] @ zero_extendqisi2
5040
- add r2, r2, r2, asl #1
5041
- cmp fp, r2, asr #2
5042
- bcc .L884
5043
- mov r10, #0
5044
- str r10, [sp, #8]
5045
-.L882:
5046
- add r7, r7, #1
5047
- b .L876
5048
-.L901:
5216
+ cmp r8, r3
5217
+ bcc .L895
50495218 mov fp, r9
5050
-.L884:
5219
+.L894:
50515220 ldr r3, [sp, #12]
5052
- mov r0, r6
50535221 mov r1, #0
5222
+ mov r0, r6
50545223 ldrb r2, [r3] @ zero_extendqisi2
50555224 sub r2, r2, #67
50565225 cmp r2, #1
5057
- bhi .L886
5226
+ bhi .L896
50585227 bl SandiskSetRRPara
5059
- b .L887
5060
-.L886:
5061
- bl ToshibaSetRRPara
5062
-.L887:
5228
+.L897:
50635229 ldr r3, [sp, #16]
50645230 mov r2, #255
50655231 add r5, r5, r3
50665232 str r2, [r5, #2056]
5067
- ldr r2, .L902+8
5068
- ldrb r2, [r2, #-2743] @ zero_extendqisi2
5069
- add r2, r2, r2, asl #1
5233
+ ldr r2, .L911+8
5234
+ ldrb r2, [r2, #-2739] @ zero_extendqisi2
5235
+ add r2, r2, r2, lsl #1
50705236 cmp fp, r2, asr #2
5071
- bcc .L888
5237
+ bcc .L898
50725238 cmn fp, #1
50735239 movne fp, #256
5074
-.L888:
5075
- mov r0, r8
5240
+.L898:
5241
+ mov r0, r7
50765242 bl NandcWaitFlashReady
50775243 cmp r4, #0
5078
- beq .L889
5244
+ beq .L883
50795245 mov r0, #4
50805246 bl NandcSetDdrMode
5081
-.L889:
5247
+.L883:
50825248 mov r0, fp
50835249 add sp, sp, #28
50845250 @ sp needed
5085
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5086
-.L903:
5251
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5252
+.L895:
5253
+ ldr r3, [sp, #12]
5254
+ mov r0, r6
5255
+ uxtb r1, r8
5256
+ ldrb r3, [r3] @ zero_extendqisi2
5257
+ sub r3, r3, #67
5258
+ cmp r3, #1
5259
+ bhi .L887
5260
+ bl SandiskSetRRPara
5261
+.L888:
5262
+ ldr r3, [sp, #12]
5263
+ ldrb r3, [r3] @ zero_extendqisi2
5264
+ cmp r3, #34
5265
+ bne .L889
5266
+ ldr r3, .L911+12
5267
+ ldrb r3, [r3] @ zero_extendqisi2
5268
+ sub r3, r3, #3
5269
+ cmp r8, r3
5270
+ ldreq r3, [sp, #4]
5271
+ moveq r2, #179
5272
+ addeq r3, r5, r3, lsl #8
5273
+ streq r2, [r3, #2056]
5274
+.L889:
5275
+ ldr r3, [sp, #16]
5276
+ mov r2, #38
5277
+ cmp r4, #0
5278
+ add r3, r5, r3
5279
+ str r2, [r3, #2056]
5280
+ mov r2, #93
5281
+ str r2, [r3, #2056]
5282
+ beq .L890
5283
+ mov r0, #4
5284
+ bl NandcSetDdrMode
5285
+ mov r3, r10
5286
+ ldr r2, [sp, #8]
5287
+ ldr r1, [sp, #20]
5288
+ mov r0, r7
5289
+ bl FlashReadRawPage
5290
+ mov fp, r0
5291
+ mov r0, #0
5292
+ bl NandcSetDdrMode
5293
+.L891:
5294
+ cmn fp, #1
5295
+ beq .L892
5296
+ ldr r3, .L911+8
5297
+ cmn r9, #1
5298
+ moveq r9, fp
5299
+ ldrb r2, [r3, #-2739] @ zero_extendqisi2
5300
+ add r2, r2, r2, lsl #1
5301
+ cmp fp, r2, asr #2
5302
+ bcc .L894
5303
+ mov r10, #0
5304
+ str r10, [sp, #8]
5305
+.L892:
5306
+ add r8, r8, #1
5307
+ b .L886
5308
+.L887:
5309
+ bl ToshibaSetRRPara
5310
+ b .L888
5311
+.L890:
5312
+ mov r3, r10
5313
+ ldr r2, [sp, #8]
5314
+ ldr r1, [sp, #20]
5315
+ mov r0, r7
5316
+ bl FlashReadRawPage
5317
+ mov fp, r0
5318
+ b .L891
5319
+.L896:
5320
+ bl ToshibaSetRRPara
5321
+ b .L897
5322
+.L912:
50875323 .align 2
5088
-.L902:
5324
+.L911:
50895325 .word .LANCHOR0
50905326 .word g_retryMode
50915327 .word .LANCHOR2
....@@ -5094,186 +5330,155 @@
50945330 .size ToshibaReadRetrial, .-ToshibaReadRetrial
50955331 .align 2
50965332 .global SamsungReadRetrial
5333
+ .syntax unified
5334
+ .arm
5335
+ .fpu softvfp
50975336 .type SamsungReadRetrial, %function
50985337 SamsungReadRetrial:
50995338 .fnstart
5100
- @ args = 0, pretend = 0, frame = 8
5339
+ @ args = 0, pretend = 0, frame = 0
51015340 @ frame_needed = 0, uses_anonymous_args = 0
5102
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
5103
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5104
- .pad #12
5105
- mov r8, r0
5106
- ldr r4, .L918
5107
- mov r7, r3
5108
- mov fp, r1
5341
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
5342
+ .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
5343
+ mov r7, r0
51095344 mov r9, r2
5110
- add r4, r4, r8, asl #3
5111
- bl NandcWaitFlashReady
5112
- ldr r10, .L918+4
5345
+ mov r8, r3
5346
+ mov r10, r1
51135347 mov r6, #1
5114
- ldrb r3, [r4, #16] @ zero_extendqisi2
5115
- ldr r5, [r4, #12]
5348
+ bl NandcWaitFlashReady
5349
+ ldr r2, .L927
51165350 mvn r4, #0
5117
- add r3, r3, #8
5118
- ldr ip, .L918+8
5119
- add r5, r5, r3, asl #8
5120
-.L905:
5121
- ldrb r3, [r10] @ zero_extendqisi2
5351
+ ldr fp, .L927+4
5352
+ add r3, r2, r7, lsl #3
5353
+ ldrb r5, [r3, #4] @ zero_extendqisi2
5354
+ add r3, r5, #8
5355
+ ldr r5, [r2, r7, lsl #3]
5356
+ add r5, r5, r3, lsl #8
5357
+.L914:
5358
+ ldr r3, .L927+8
5359
+ ldrb r3, [r3] @ zero_extendqisi2
51225360 add r3, r3, #1
51235361 cmp r6, r3
5124
- bcs .L908
5125
- mov r0, r5
5126
- uxtb r1, r6
5127
- str ip, [sp, #4]
5128
- bl SamsungSetRRPara
5129
- mov r0, r8
5130
- mov r1, fp
5131
- mov r2, r9
5132
- mov r3, r7
5133
- bl FlashReadRawPage
5134
- cmn r0, #1
5135
- ldr ip, [sp, #4]
5136
- beq .L906
5137
- ldrb r3, [ip, #-2743] @ zero_extendqisi2
5138
- cmn r4, #1
5139
- moveq r4, r0
5140
- add r3, r3, r3, asl #1
5141
- cmp r0, r3, asr #2
5142
- bcc .L911
5143
- mov r7, #0
5144
- mov r9, r7
5145
-.L906:
5146
- add r6, r6, #1
5147
- b .L905
5148
-.L911:
5149
- mov r4, r0
5150
-.L908:
5151
- mov r0, r5
5362
+ bcc .L918
5363
+.L917:
51525364 mov r1, #0
5365
+ mov r0, r5
51535366 bl SamsungSetRRPara
5154
- ldr r3, .L918+8
5155
- ldrb r3, [r3, #-2743] @ zero_extendqisi2
5156
- add r3, r3, r3, asl #1
5367
+ ldr r3, .L927+4
5368
+ ldrb r3, [r3, #-2739] @ zero_extendqisi2
5369
+ add r3, r3, r3, lsl #1
51575370 cmp r4, r3, asr #2
5158
- bcc .L910
5371
+ bcc .L913
51595372 cmn r4, #1
51605373 movne r4, #256
5161
-.L910:
5374
+.L913:
51625375 mov r0, r4
5163
- add sp, sp, #12
5164
- @ sp needed
5165
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5166
-.L919:
5167
- .align 2
5376
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
51685377 .L918:
5378
+ uxtb r1, r6
5379
+ mov r0, r5
5380
+ bl SamsungSetRRPara
5381
+ mov r3, r8
5382
+ mov r2, r9
5383
+ mov r1, r10
5384
+ mov r0, r7
5385
+ bl FlashReadRawPage
5386
+ cmn r0, #1
5387
+ beq .L915
5388
+ ldrb r3, [fp, #-2739] @ zero_extendqisi2
5389
+ cmn r4, #1
5390
+ moveq r4, r0
5391
+ add r3, r3, r3, lsl #1
5392
+ cmp r0, r3, asr #2
5393
+ bcc .L921
5394
+ mov r8, #0
5395
+ mov r9, r8
5396
+.L915:
5397
+ add r6, r6, #1
5398
+ b .L914
5399
+.L921:
5400
+ mov r4, r0
5401
+ b .L917
5402
+.L928:
5403
+ .align 2
5404
+.L927:
51695405 .word .LANCHOR0
5170
- .word g_maxRetryCount
51715406 .word .LANCHOR2
5407
+ .word g_maxRetryCount
51725408 .fnend
51735409 .size SamsungReadRetrial, .-SamsungReadRetrial
51745410 .align 2
51755411 .global MicronReadRetrial
5412
+ .syntax unified
5413
+ .arm
5414
+ .fpu softvfp
51765415 .type MicronReadRetrial, %function
51775416 MicronReadRetrial:
51785417 .fnstart
51795418 @ args = 0, pretend = 0, frame = 24
51805419 @ frame_needed = 0, uses_anonymous_args = 0
5181
-.L922:
5182
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5420
+.L931:
5421
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
51835422 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
51845423 mov r8, r3
5185
- ldr r3, .L946
5424
+ ldr r3, .L954
51865425 mov fp, r2
51875426 .pad #36
51885427 sub sp, sp, #36
51895428 mov r6, r0
5190
- mov r10, #0
5191
- ldrb r5, [r3, #-2743] @ zero_extendqisi2
5192
- ldrb r3, [r3, #-2744] @ zero_extendqisi2
51935429 str r1, [sp, #20]
5430
+ ldrb r2, [r3, #-2739] @ zero_extendqisi2
5431
+ ldrb r3, [r3, #-2740] @ zero_extendqisi2
51945432 cmp r3, #0
5195
- addeq r5, r5, r5, asl #1
5196
- ldrne r2, .L946+4
5197
- ubfxeq r5, r5, #2, #8
5198
- smullne r2, r3, r5, r2
5199
- uxtbne r5, r3
5200
- ldr r3, .L946+8
5201
- add r3, r3, r0, asl #3
5202
- str r3, [sp, #24]
5203
-.L932:
5433
+ ldrne r5, .L954+4
5434
+ addeq r2, r2, r2, lsl #1
5435
+ asreq r5, r2, #2
5436
+ smullne r2, r3, r2, r5
5437
+ movne r5, r3
5438
+ mov r3, #0
5439
+ str r3, [sp, #8]
5440
+ ldr r3, .L954+8
5441
+ add r3, r3, r0, lsl #3
5442
+ str r3, [sp, #28]
5443
+.L941:
52045444 mov r0, r6
5205
- mov r9, #0
5445
+ mov r10, #0
52065446 bl NandcWaitFlashReady
5447
+ ldr r3, .L954+8
52075448 mvn r4, #0
5208
- ldr r3, [sp, #24]
5209
- ldr r3, [r3, #12]
5449
+ ldr r3, [r3, r6, lsl #3]
52105450 str r3, [sp, #12]
5211
- ldr r3, [sp, #24]
5212
- ldrb r3, [r3, #16] @ zero_extendqisi2
5451
+ ldr r3, [sp, #28]
5452
+ ldrb r3, [r3, #4] @ zero_extendqisi2
52135453 str r3, [sp, #16]
52145454 ldr r2, [sp, #16]
52155455 ldr r3, [sp, #12]
5216
- add r7, r3, r2, asl #8
5217
-.L923:
5218
- ldr r3, .L946+12
5456
+ add r7, r3, r2, lsl #8
5457
+.L932:
5458
+ ldr r3, .L954+12
52195459 ldrb r3, [r3] @ zero_extendqisi2
5220
- cmp r9, r3
5221
- bcs .L926
5222
- mov r3, #239
5223
- mov r0, #200
5224
- str r3, [r7, #2056]
5225
- mov r3, #137
5226
- str r3, [r7, #2052]
5227
- bl NandcDelayns
5228
- mov ip, #0
5229
- add r3, r9, #1
5230
- mov r0, r6
5231
- str r3, [r7, #2048]
5232
- mov r2, fp
5233
- str ip, [r7, #2048]
5234
- str ip, [r7, #2048]
5235
- str ip, [r7, #2048]
5236
- str r3, [sp, #8]
5237
- mov r3, r8
5238
- ldr r1, [sp, #20]
5239
- str ip, [sp, #28]
5240
- bl FlashReadRawPage
5241
- cmn r0, #1
5242
- beq .L924
5243
- cmn r4, #1
5244
- ldr ip, [sp, #28]
5245
- moveq r4, r0
5246
- cmp r0, r5
5247
- bcc .L934
5248
- mov r8, ip
5249
- mov fp, ip
5250
-.L924:
5251
- ldr r9, [sp, #8]
5252
- b .L923
5253
-.L934:
5254
- mov r4, r0
5255
- mov r8, ip
5256
- mov fp, ip
5257
-.L926:
5258
- ldr r2, [sp, #16]
5259
- mov r0, #200
5460
+ cmp r10, r3
5461
+ bcc .L936
5462
+.L935:
52605463 ldr r3, [sp, #12]
5261
- add r7, r3, r2, asl #8
5464
+ mov r0, #200
5465
+ ldr r2, [sp, #16]
5466
+ add r7, r3, r2, lsl #8
52625467 mov r3, #239
52635468 str r3, [r7, #2056]
52645469 mov r3, #137
52655470 str r3, [r7, #2052]
5266
- bl NandcDelayns
5471
+ bl ndelay
52675472 cmp r4, r5
52685473 mov r3, #0
52695474 str r3, [r7, #2048]
52705475 str r3, [r7, #2048]
52715476 str r3, [r7, #2048]
52725477 str r3, [r7, #2048]
5273
- bcc .L928
5478
+ bcc .L937
52745479 cmn r4, #1
52755480 movne r4, #256
5276
-.L928:
5481
+.L937:
52775482 cmn r4, #1
52785483 movne r7, #0
52795484 moveq r7, #1
....@@ -5281,48 +5486,86 @@
52815486 movne r1, r7
52825487 orreq r1, r7, #1
52835488 cmp r1, #0
5284
- beq .L929
5489
+ beq .L938
5490
+ mov r3, r10
52855491 str r4, [sp]
5286
- mov r1, r9
5287
- ldr r0, .L946+16
5288
- mov r3, r9
52895492 ldr r2, [sp, #20]
5493
+ mov r1, r10
5494
+ ldr r0, .L954+16
52905495 bl printk
5291
- cmp r10, #0
5292
- bne .L930
5293
- ldr r3, .L946
5294
- ldrb r3, [r3, #-2744] @ zero_extendqisi2
5496
+ ldr r3, [sp, #8]
5497
+ cmp r3, #0
5498
+ bne .L939
5499
+ ldr r3, .L954
5500
+ ldrb r3, [r3, #-2740] @ zero_extendqisi2
52955501 cmp r3, #0
52965502 moveq r7, #0
52975503 andne r7, r7, #1
52985504 cmp r7, #0
5299
- beq .L939
5300
- mov r0, r6
5505
+ beq .L929
53015506 mov r1, #3
5302
- bl micron_auto_read_calibration_config
5303
- mov r10, #1
5304
- b .L932
5305
-.L930:
53065507 mov r0, r6
5508
+ bl micron_auto_read_calibration_config
5509
+ mov r3, #1
5510
+ str r3, [sp, #8]
5511
+ b .L941
5512
+.L936:
5513
+ mov r3, #239
5514
+ mov r0, #200
5515
+ str r3, [r7, #2056]
5516
+ mov r3, #137
5517
+ str r3, [r7, #2052]
5518
+ mov r9, #0
5519
+ bl ndelay
5520
+ add r3, r10, #1
5521
+ mov r2, fp
5522
+ str r3, [r7, #2048]
5523
+ mov r0, r6
5524
+ str r9, [r7, #2048]
5525
+ str r3, [sp, #24]
5526
+ mov r3, r8
5527
+ str r9, [r7, #2048]
5528
+ ldr r1, [sp, #20]
5529
+ str r9, [r7, #2048]
5530
+ bl FlashReadRawPage
5531
+ cmn r0, #1
5532
+ beq .L933
5533
+ cmn r4, #1
5534
+ moveq r4, r0
5535
+ cmp r0, r5
5536
+ bcc .L943
5537
+ mov r8, r9
5538
+ mov fp, r9
5539
+.L933:
5540
+ ldr r10, [sp, #24]
5541
+ b .L932
5542
+.L943:
5543
+ mov r4, r0
5544
+ mov r8, r9
5545
+ mov fp, r9
5546
+ b .L935
5547
+.L939:
53075548 mov r1, #0
5549
+ mov r0, r6
53085550 bl micron_auto_read_calibration_config
53095551 cmn r4, #1
53105552 movne r4, #256
5311
- b .L939
53125553 .L929:
5313
- cmp r10, #0
5314
- beq .L939
5315
- mov r0, r6
5316
- mov r4, #256
5317
- bl micron_auto_read_calibration_config
5318
-.L939:
53195554 mov r0, r4
53205555 add sp, sp, #36
53215556 @ sp needed
5322
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5323
-.L947:
5557
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5558
+.L938:
5559
+ ldr r3, [sp, #8]
5560
+ cmp r3, #0
5561
+ beq .L929
5562
+ mov r0, r6
5563
+ mov r4, #256
5564
+ bl micron_auto_read_calibration_config
5565
+ b .L929
5566
+.L955:
53245567 .align 2
5325
-.L946:
5568
+.L954:
53265569 .word .LANCHOR2
53275570 .word 1431655766
53285571 .word .LANCHOR0
....@@ -5332,303 +5575,305 @@
53325575 .size MicronReadRetrial, .-MicronReadRetrial
53335576 .align 2
53345577 .global HynixReadRetrial
5578
+ .syntax unified
5579
+ .arm
5580
+ .fpu softvfp
53355581 .type HynixReadRetrial, %function
53365582 HynixReadRetrial:
53375583 .fnstart
53385584 @ args = 0, pretend = 0, frame = 8
53395585 @ frame_needed = 0, uses_anonymous_args = 0
5340
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
5586
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
53415587 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
53425588 .pad #12
5343
- mov r10, r2
5344
- ldr r2, .L966
5345
- mov fp, r1
5346
- ldr ip, .L966+4
5347
- mov r8, r3
5348
- mov r5, r0
5349
- ldr r1, [r2, #44]
5350
- add r3, ip, r0
5351
- ldrb r9, [ip, #-2730] @ zero_extendqisi2
5352
- mov r7, ip
5353
- ldrb r4, [r3, #-2720] @ zero_extendqisi2
5354
- ldrb r6, [r1, #19] @ zero_extendqisi2
5355
- str r2, [sp]
5356
- sub r6, r6, #7
5357
- cmp r6, #1
5358
- mvn r6, #0
5359
- ldrlsb r4, [r3, #-2712] @ zero_extendqisi2
5360
- bl NandcWaitFlashReady
5361
- mov ip, #0
5362
-.L950:
5363
- cmp ip, r9
5364
- bcs .L954
5365
- add r4, r4, #1
5366
- mov r0, r5
5367
- ldrb r1, [r7, #-2731] @ zero_extendqisi2
5368
- uxtb r4, r4
5369
- ldr r2, .L966+8
5370
- cmp r4, r9
5371
- str ip, [sp, #4]
5372
- movcs r4, #0
5373
- mov r3, r4
5374
- bl HynixSetRRPara
5375
- mov r0, r5
5376
- mov r1, fp
5377
- mov r2, r10
5378
- mov r3, r8
5379
- bl FlashReadRawPage
5380
- cmn r0, #1
5381
- ldr ip, [sp, #4]
5382
- beq .L952
5383
- ldrb r3, [r7, #-2743] @ zero_extendqisi2
5384
- cmn r6, #1
5385
- moveq r6, r0
5386
- add r3, r3, r3, asl #1
5387
- cmp r0, r3, asr #2
5388
- bcc .L959
5589
+ mov r9, r3
5590
+ str r1, [sp]
53895591 mov r8, #0
5390
- mov r10, r8
5391
-.L952:
5392
- add ip, ip, #1
5393
- b .L950
5394
-.L959:
5395
- mov r6, r0
5396
-.L954:
5397
- ldr r3, [sp]
5592
+ mvn r6, #0
5593
+ mov fp, r2
5594
+ ldr r1, .L974
5595
+ mov r5, r0
5596
+ ldr r7, .L974+4
5597
+ ldr r3, [r1, #48]
5598
+ add r2, r7, r0
5599
+ ldrb r10, [r7, #-2726] @ zero_extendqisi2
5600
+ ldrb r4, [r2, #-2716] @ zero_extendqisi2
5601
+ ldrb r3, [r3, #19] @ zero_extendqisi2
5602
+ str r1, [sp, #4]
5603
+ sub r3, r3, #7
5604
+ cmp r3, #1
5605
+ ldrbls r4, [r2, #-2708] @ zero_extendqisi2
5606
+ bl NandcWaitFlashReady
5607
+.L958:
5608
+ cmp r8, r10
5609
+ bcc .L963
5610
+.L962:
5611
+ ldr r3, [sp, #4]
53985612 add r5, r7, r5
5399
- ldr r3, [r3, #44]
5613
+ ldr r3, [r3, #48]
54005614 ldrb r3, [r3, #19] @ zero_extendqisi2
54015615 sub r3, r3, #7
54025616 cmp r3, #1
5403
- ldrb r3, [r7, #-2743] @ zero_extendqisi2
5404
- strlsb r4, [r5, #-2712]
5405
- strhib r4, [r5, #-2720]
5406
- add r3, r3, r3, asl #1
5617
+ ldrb r3, [r7, #-2739] @ zero_extendqisi2
5618
+ strbls r4, [r5, #-2708]
5619
+ strbhi r4, [r5, #-2716]
5620
+ add r3, r3, r3, lsl #1
54075621 cmp r6, r3, asr #2
5408
- bcc .L958
5622
+ bcc .L956
54095623 cmn r6, #1
54105624 movne r6, #256
5411
-.L958:
5625
+.L956:
54125626 mov r0, r6
54135627 add sp, sp, #12
54145628 @ sp needed
5415
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5629
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5630
+.L963:
5631
+ add r4, r4, #1
5632
+ ldr r2, .L974+8
5633
+ uxtb r4, r4
5634
+ ldrb r1, [r7, #-2727] @ zero_extendqisi2
5635
+ mov r0, r5
5636
+ cmp r10, r4
5637
+ movls r4, #0
5638
+ mov r3, r4
5639
+ bl HynixSetRRPara
5640
+ mov r3, r9
5641
+ mov r2, fp
5642
+ ldr r1, [sp]
5643
+ mov r0, r5
5644
+ bl FlashReadRawPage
5645
+ cmn r0, #1
5646
+ beq .L960
5647
+ ldrb r3, [r7, #-2739] @ zero_extendqisi2
5648
+ cmn r6, #1
5649
+ moveq r6, r0
5650
+ add r3, r3, r3, lsl #1
5651
+ cmp r0, r3, asr #2
5652
+ bcc .L967
5653
+ mov r9, #0
5654
+ mov fp, r9
5655
+.L960:
5656
+ add r8, r8, #1
5657
+ b .L958
54165658 .L967:
5659
+ mov r6, r0
5660
+ b .L962
5661
+.L975:
54175662 .align 2
5418
-.L966:
5663
+.L974:
54195664 .word .LANCHOR0
54205665 .word .LANCHOR2
5421
- .word .LANCHOR2-2728
5666
+ .word .LANCHOR2-2724
54225667 .fnend
54235668 .size HynixReadRetrial, .-HynixReadRetrial
54245669 .align 2
5670
+ .syntax unified
5671
+ .arm
5672
+ .fpu softvfp
54255673 .type samsung_read_retrial, %function
54265674 samsung_read_retrial:
54275675 .fnstart
54285676 @ args = 0, pretend = 0, frame = 16
54295677 @ frame_needed = 0, uses_anonymous_args = 0
5430
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5678
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
54315679 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
54325680 .pad #28
54335681 sub sp, sp, #28
54345682 mov r10, r0
54355683 mov fp, r2
5436
- mov r8, r3
5437
- str r1, [sp, #12]
5684
+ mov r9, r3
5685
+ str r1, [sp, #16]
54385686 bl NandcWaitFlashReady
5439
- ldr r3, .L998
5440
- add r3, r3, r10, asl #3
5441
- ldr r4, [r3, #12]
5442
- ldrb r3, [r3, #16] @ zero_extendqisi2
5443
- str r3, [sp, #8]
5444
- ldr r3, .L998+4
5445
- ldrb r2, [r3, #-1876] @ zero_extendqisi2
5446
- str r3, [sp, #16]
5687
+ ldr r3, .L1006
5688
+ ldr r2, [r3, r10, lsl #3]
5689
+ add r3, r3, r10, lsl #3
5690
+ ldrb r6, [r3, #4] @ zero_extendqisi2
5691
+ ldr r3, .L1006+4
5692
+ str r2, [sp, #12]
5693
+ ldrb r2, [r3, #-1872] @ zero_extendqisi2
5694
+ str r3, [sp, #20]
54475695 cmp r2, #0
5448
- bne .L969
5449
- ldr r3, [sp, #8]
5450
- mvn r5, #0
5451
- mov r6, #1
5452
- mov r9, r3, asl #8
5453
- add r7, r4, r9
5454
-.L973:
5455
- mov r3, #239
5456
- str r3, [r7, #2056]
5457
- mov r3, #141
5458
- str r3, [r7, #2052]
5459
- ldr r3, .L998+8
5460
- mov ip, #0
5461
- mov r0, r10
5462
- ldr r1, [sp, #12]
5463
- mov r2, fp
5464
- str ip, [sp, #20]
5465
- ldrsb r3, [r6, r3]
5466
- str r3, [r7, #2048]
5467
- mov r3, r8
5468
- str ip, [r7, #2048]
5469
- str ip, [r7, #2048]
5470
- str ip, [r7, #2048]
5471
- bl FlashReadRawPage
5472
- cmn r0, #1
5473
- beq .L970
5474
- ldr r3, [sp, #16]
5475
- cmn r5, #1
5476
- moveq r5, r0
5477
- ldrb r3, [r3, #-2743] @ zero_extendqisi2
5478
- add r3, r3, r3, asl #1
5479
- cmp r0, r3, asr #2
5480
- bcc .L981
5481
- ldr ip, [sp, #20]
5482
- mov r8, ip
5483
- mov fp, ip
5484
-.L970:
5485
- add r6, r6, #1
5486
- cmp r6, #26
5487
- bne .L973
5488
- b .L972
5696
+ bne .L977
5697
+ ldr r3, [sp, #12]
5698
+ lsl r8, r6, #8
5699
+ mvn r4, #0
5700
+ mov r7, #1
5701
+ add r5, r3, r8
54895702 .L981:
5490
- mov r5, r0
5491
-.L972:
5492
- add r9, r4, r9
54935703 mov r3, #239
5494
- str r3, [r9, #2056]
5495
- ldr r3, [sp, #8]
5496
- add r4, r4, r3, asl #8
5704
+ mov r6, #0
5705
+ str r3, [r5, #2056]
54975706 mov r3, #141
5498
- b .L997
5499
-.L969:
5500
- ldr r3, [sp, #8]
5501
- mvn r5, #0
5502
- ldr r7, .L998+12
5503
- mov r6, #1
5504
- mov ip, r3, asl #8
5505
- add r9, r4, ip
5506
-.L978:
5507
- mov r3, #239
5508
- str r3, [r9, #2056]
5509
- mov r3, #137
5510
- str r3, [r9, #2052]
5511
- ldrb r3, [r7, #4] @ zero_extendqisi2
5512
- mov r0, r10
5513
- ldr r1, [sp, #12]
5707
+ str r3, [r5, #2052]
55145708 mov r2, fp
5515
- str ip, [sp, #20]
5516
- str r3, [r9, #2048]
5517
- ldrb r3, [r7, #5] @ zero_extendqisi2
5518
- str r3, [r9, #2048]
5519
- ldrb r3, [r7, #6] @ zero_extendqisi2
5520
- str r3, [r9, #2048]
5521
- ldrb r3, [r7, #7] @ zero_extendqisi2
5522
- str r3, [r9, #2048]
5523
- mov r3, r8
5709
+ ldr r3, .L1006+8
5710
+ mov r0, r10
5711
+ ldr r1, [sp, #16]
5712
+ ldrsb r3, [r7, r3]
5713
+ str r3, [r5, #2048]
5714
+ mov r3, r9
5715
+ str r6, [r5, #2048]
5716
+ str r6, [r5, #2048]
5717
+ str r6, [r5, #2048]
55245718 bl FlashReadRawPage
55255719 cmn r0, #1
5526
- ldr ip, [sp, #20]
5527
- beq .L975
5528
- ldr r3, [sp, #16]
5529
- cmn r5, #1
5530
- moveq r5, r0
5531
- ldrb r3, [r3, #-2743] @ zero_extendqisi2
5532
- add r3, r3, r3, asl #1
5720
+ beq .L978
5721
+ ldr r3, [sp, #20]
5722
+ cmn r4, #1
5723
+ moveq r4, r0
5724
+ ldrb r3, [r3, #-2739] @ zero_extendqisi2
5725
+ add r3, r3, r3, lsl #1
55335726 cmp r0, r3, asr #2
5534
- bcc .L982
5535
- mov r8, #0
5536
- mov fp, r8
5537
-.L975:
5538
- add r6, r6, #1
5539
- add r7, r7, #4
5540
- cmp r6, #26
5541
- bne .L978
5542
- b .L977
5543
-.L982:
5544
- mov r5, r0
5545
-.L977:
5546
- add ip, r4, ip
5547
- mov r3, #239
5548
- str r3, [ip, #2056]
5549
- ldr r3, [sp, #8]
5550
- add r4, r4, r3, asl #8
5551
- mov r3, #137
5552
-.L997:
5553
- str r3, [r4, #2052]
5554
- mov r3, #0
5555
- str r3, [r4, #2048]
5556
- str r3, [r4, #2048]
5557
- str r3, [r4, #2048]
5558
- str r3, [r4, #2048]
5559
- ldr r3, [sp, #16]
5560
- ldrb r3, [r3, #-2743] @ zero_extendqisi2
5561
- add r3, r3, r3, asl #1
5562
- cmp r5, r3, asr #2
5563
- bcc .L979
5564
- cmn r5, #1
5565
- movne r5, #256
5566
-.L979:
5567
- cmn r5, #1
5568
- cmpne r5, #256
5569
- bne .L980
5570
- str r5, [sp]
5571
- mov r1, r6
5572
- ldr r0, .L998+16
5573
- mov r3, r6
5574
- ldr r2, [sp, #12]
5575
- bl printk
5727
+ bcc .L989
5728
+ mov r9, r6
5729
+ mov fp, r6
5730
+.L978:
5731
+ add r7, r7, #1
5732
+ cmp r7, #26
5733
+ bne .L981
55765734 .L980:
5735
+ ldr r3, [sp, #12]
5736
+ add r8, r3, r8
5737
+ mov r3, #239
5738
+ str r3, [r8, #2056]
5739
+ mov r3, #141
5740
+.L1005:
5741
+ str r3, [r5, #2052]
5742
+ mov r3, #0
5743
+ str r3, [r5, #2048]
5744
+ str r3, [r5, #2048]
5745
+ str r3, [r5, #2048]
5746
+ str r3, [r5, #2048]
5747
+ ldr r3, .L1006+4
5748
+ ldrb r3, [r3, #-2739] @ zero_extendqisi2
5749
+ add r3, r3, r3, lsl #1
5750
+ cmp r4, r3, asr #2
5751
+ bcc .L987
5752
+ cmn r4, #1
5753
+ movne r4, #256
5754
+.L987:
5755
+ cmn r4, #1
5756
+ cmpne r4, #256
5757
+ bne .L988
5758
+ str r4, [sp]
5759
+ mov r3, r7
5760
+ ldr r2, [sp, #16]
5761
+ mov r1, r7
5762
+ ldr r0, .L1006+12
5763
+ bl printk
5764
+.L988:
55775765 mov r0, r10
55785766 bl NandcWaitFlashReady
5579
- mov r0, r5
5767
+ mov r0, r4
55805768 add sp, sp, #28
55815769 @ sp needed
5582
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5583
-.L999:
5770
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5771
+.L989:
5772
+ mov r4, r0
5773
+ b .L980
5774
+.L977:
5775
+ ldr r3, [sp, #12]
5776
+ lsl r6, r6, #8
5777
+ ldr r8, .L1006+16
5778
+ mvn r4, #0
5779
+ mov r7, #1
5780
+ add r5, r3, r6
5781
+.L986:
5782
+ mov r3, #239
5783
+ mov r2, fp
5784
+ str r3, [r5, #2056]
5785
+ mov r3, #137
5786
+ str r3, [r5, #2052]
5787
+ mov r0, r10
5788
+ ldrb r3, [r8, #4] @ zero_extendqisi2
5789
+ ldr r1, [sp, #16]
5790
+ str r3, [r5, #2048]
5791
+ ldrb r3, [r8, #5] @ zero_extendqisi2
5792
+ str r3, [r5, #2048]
5793
+ ldrb r3, [r8, #6] @ zero_extendqisi2
5794
+ str r3, [r5, #2048]
5795
+ ldrb r3, [r8, #7] @ zero_extendqisi2
5796
+ str r3, [r5, #2048]
5797
+ mov r3, r9
5798
+ bl FlashReadRawPage
5799
+ cmn r0, #1
5800
+ beq .L983
5801
+ ldr r3, .L1006+4
5802
+ cmn r4, #1
5803
+ moveq r4, r0
5804
+ ldrb r3, [r3, #-2739] @ zero_extendqisi2
5805
+ add r3, r3, r3, lsl #1
5806
+ cmp r0, r3, asr #2
5807
+ bcc .L990
5808
+ mov r9, #0
5809
+ mov fp, r9
5810
+.L983:
5811
+ add r7, r7, #1
5812
+ add r8, r8, #4
5813
+ cmp r7, #26
5814
+ bne .L986
5815
+.L985:
5816
+ ldr r3, [sp, #12]
5817
+ add r6, r3, r6
5818
+ mov r3, #239
5819
+ str r3, [r6, #2056]
5820
+ mov r3, #137
5821
+ b .L1005
5822
+.L990:
5823
+ mov r4, r0
5824
+ b .L985
5825
+.L1007:
55845826 .align 2
5585
-.L998:
5827
+.L1006:
55865828 .word .LANCHOR0
55875829 .word .LANCHOR2
5588
- .word .LANCHOR3+4
5589
- .word .LANCHOR3+32
5830
+ .word .LANCHOR3
55905831 .word .LC12
5832
+ .word .LANCHOR3+26
55915833 .fnend
55925834 .size samsung_read_retrial, .-samsung_read_retrial
55935835 .align 2
55945836 .global FlashProgPage
5837
+ .syntax unified
5838
+ .arm
5839
+ .fpu softvfp
55955840 .type FlashProgPage, %function
55965841 FlashProgPage:
55975842 .fnstart
55985843 @ args = 0, pretend = 0, frame = 0
55995844 @ frame_needed = 0, uses_anonymous_args = 0
5600
- stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
5845
+ push {r0, r1, r4, r5, r6, r7, r8, lr}
56015846 .save {r4, r5, r6, r7, r8, lr}
56025847 .pad #8
56035848 mov r8, r3
5604
- ldr r3, .L1004
5849
+ ldr r3, .L1012
56055850 subs r4, r0, #0
56065851 mov r5, r1
56075852 mov r7, r2
5608
- ldrb r6, [r3, #265] @ zero_extendqisi2
5609
- bne .L1001
5610
- ldr r2, .L1004+4
5611
- ldrb r3, [r2, #1] @ zero_extendqisi2
5612
- ldr r1, [r2, #4]
5613
- mul r1, r1, r3
5614
- cmp r5, r1
5615
- bcs .L1001
5616
- ldrb r3, [r2] @ zero_extendqisi2
5853
+ ldrb r6, [r3, #477] @ zero_extendqisi2
5854
+ bne .L1009
5855
+ ldr r1, .L1012+4
5856
+ ldrb r3, [r1, #37] @ zero_extendqisi2
5857
+ ldr r0, [r1, #40]
5858
+ mul r0, r0, r3
5859
+ cmp r0, r5
5860
+ bls .L1009
5861
+ ldrb r3, [r1, #36] @ zero_extendqisi2
56175862 cmp r3, #0
56185863 movne r6, #4
5619
-.L1001:
5864
+.L1009:
56205865 mov r0, r4
56215866 bl NandcWaitFlashReady
56225867 mov r0, r4
56235868 bl NandcFlashCs
5624
- mov r0, r4
56255869 mov r1, r5
5626
- bl FlashProgFirstCmd
5627
- mov r2, r6
5628
- mov r3, r7
56295870 mov r0, r4
5630
- mov r1, #1
5871
+ bl FlashProgFirstCmd
5872
+ mov r3, r7
5873
+ mov r2, r6
56315874 str r8, [sp]
5875
+ mov r1, #1
5876
+ mov r0, r4
56325877 bl NandcXferData
56335878 mov r1, r5
56345879 mov r0, r4
....@@ -5638,288 +5883,289 @@
56385883 mov r1, r5
56395884 mov r0, r4
56405885 bl FlashReadStatus
5641
- mov r5, r0
5886
+ mov r1, r0
56425887 mov r0, r4
56435888 bl NandcFlashDeCs
5644
- and r0, r5, #1
5889
+ and r0, r1, #1
56455890 add sp, sp, #8
56465891 @ sp needed
5647
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
5648
-.L1005:
5892
+ pop {r4, r5, r6, r7, r8, pc}
5893
+.L1013:
56495894 .align 2
5650
-.L1004:
5895
+.L1012:
56515896 .word .LANCHOR1
56525897 .word .LANCHOR0
56535898 .fnend
56545899 .size FlashProgPage, .-FlashProgPage
56555900 .align 2
56565901 .global FlashSavePhyInfo
5902
+ .syntax unified
5903
+ .arm
5904
+ .fpu softvfp
56575905 .type FlashSavePhyInfo, %function
56585906 FlashSavePhyInfo:
56595907 .fnstart
5660
- @ args = 0, pretend = 0, frame = 8
5908
+ @ args = 0, pretend = 0, frame = 0
56615909 @ frame_needed = 0, uses_anonymous_args = 0
5662
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
5663
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5664
- .pad #12
5665
- ldr r4, .L1020
5666
- ldr r7, .L1020+4
5667
- ldr r9, .L1020+8
5668
- ldr r3, [r4, #-1868]
5669
- mov r8, r4
5670
- ldrb r0, [r4, #-1779] @ zero_extendqisi2
5671
- mov fp, r7
5672
- str r3, [r4, #-1792]
5910
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
5911
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
5912
+ ldr r4, .L1028
5913
+ ldr r5, .L1028+4
5914
+ ldr r3, [r4, #-1864]
5915
+ ldrb r0, [r4, #-1775] @ zero_extendqisi2
5916
+ ldr r8, .L1028+8
5917
+ str r3, [r4, #-1788]
56735918 bl FlashBchSel
5674
- mov r1, #0
56755919 mov r2, #2048
5676
- ldr r0, [r4, #-1868]
5920
+ mov r1, #0
5921
+ ldr r0, [r4, #-1864]
56775922 bl ftl_memset
5678
- ldr r3, [r4, #-1792]
5679
- ldr r1, .L1020+12
5923
+ ldr r3, [r4, #-1788]
56805924 mov r2, #32
5681
- str r9, [r3]
5682
- ldr r0, [r4, #-1792]
5683
- ldrb r3, [r7, #3152] @ zero_extendqisi2
5925
+ ldr r1, .L1028+12
5926
+ str r8, [r3]
5927
+ ldr r0, [r4, #-1788]
5928
+ ldrb r3, [r5, #3156] @ zero_extendqisi2
56845929 add r0, r0, #16
56855930 strh r3, [r0, #-4] @ movhi
5686
- ldrb r3, [r7, #1] @ zero_extendqisi2
5931
+ ldrb r3, [r5, #37] @ zero_extendqisi2
56875932 strh r3, [r0, #-2] @ movhi
5688
- ldrb r3, [r4, #-1860] @ zero_extendqisi2
5933
+ ldrb r3, [r4, #-1856] @ zero_extendqisi2
56895934 str r3, [r0, #1060]
56905935 bl ftl_memcpy
5691
- ldr r0, [r4, #-1792]
5692
- ldr r1, .L1020+16
5936
+ ldr r0, [r4, #-1788]
56935937 mov r2, #8
5938
+ ldr r1, .L1028+16
56945939 add r0, r0, #80
56955940 bl ftl_memcpy
5696
- ldr r0, [r4, #-1792]
5697
- ldr r1, .L1020+20
5941
+ ldr r0, [r4, #-1788]
56985942 mov r2, #32
5943
+ add r1, r5, #3168
56995944 add r0, r0, #96
57005945 bl ftl_memcpy
5701
- ldr r0, [r4, #-1792]
5702
- ldr r1, .L1020+24
5946
+ ldr r0, [r4, #-1788]
57035947 mov r2, #32
5948
+ ldr r1, .L1028+20
57045949 add r0, r0, #160
57055950 bl ftl_memcpy
5706
- ldr r0, [r4, #-1792]
5707
- add r1, r7, #48
5951
+ ldr r0, [r4, #-1788]
57085952 mov r2, #32
5953
+ add r1, r5, #52
57095954 add r0, r0, #192
57105955 bl ftl_memcpy
5711
- ldr r0, [r4, #-1792]
5956
+ ldr r0, [r4, #-1788]
5957
+ sub r1, r4, #2720
57125958 mov r2, #852
5713
- ldr r1, .L1020+28
5959
+ sub r1, r1, #8
57145960 add r0, r0, #224
57155961 bl ftl_memcpy
5716
- ldr r5, [r4, #-1792]
5962
+ ldr r6, [r4, #-1788]
57175963 movw r1, #2036
5718
- add r0, r5, #12
5964
+ add r0, r6, #12
57195965 bl js_hash
57205966 movw r3, #1592
5721
- str r3, [r5, #4]
5722
- ldr r3, [r4, #-1776]
5723
- str r3, [r4, #-1792]
5724
- str r0, [r5, #8]
5967
+ str r0, [r6, #8]
5968
+ str r3, [r6, #4]
5969
+ mov r6, #0
5970
+ ldr r3, [r4, #-1772]
5971
+ mov r7, r6
57255972 mov r0, #0
5973
+ str r3, [r4, #-1788]
57265974 bl flash_enter_slc_mode
5727
- mov r5, #0
5728
- mov r6, r5
5729
-.L1012:
5730
- ldr r1, [r7, #4]
5731
- mov r0, #0
5732
- mov r2, r0
5733
- mul r1, r1, r6
5975
+.L1020:
5976
+ ldr r1, [r5, #40]
5977
+ mov r2, #0
5978
+ mov r0, r2
5979
+ mul r1, r1, r7
57345980 bl FlashEraseBlock
5735
- ldrb r10, [r4, #-2744] @ zero_extendqisi2
5736
- cmp r10, #0
5737
- beq .L1007
5738
- mov r10, #0
5739
-.L1008:
5740
- ldr r1, [r7, #4]
5741
- mov r0, #0
5742
- ldr r2, [r4, #-1868]
5743
- mov r3, r0
5744
- mla r1, r1, r6, r10
5745
- add r10, r10, #1
5981
+ ldrb r9, [r4, #-2740] @ zero_extendqisi2
5982
+ cmp r9, #0
5983
+ beq .L1015
5984
+ mov r9, #0
5985
+.L1016:
5986
+ ldr r1, [r5, #40]
5987
+ mov r3, #0
5988
+ ldr r2, [r4, #-1864]
5989
+ mov r0, r3
5990
+ mla r1, r1, r7, r9
5991
+ add r9, r9, #1
57465992 bl FlashProgPage
5747
- cmp r10, #10
5748
- bne .L1008
5749
- b .L1009
5750
-.L1007:
5751
- ldr r1, [fp, #4]
5752
- mov r3, r10
5753
- ldr r2, [r8, #-1868]
5754
- mov r0, r10
5755
- mul r1, r1, r6
5756
- bl FlashProgPage
5757
- ldr r1, [fp, #4]
5758
- mov r0, r10
5759
- ldr r2, [r8, #-1868]
5760
- mov r3, r10
5761
- mul r1, r1, r6
5762
- add r1, r1, #1
5763
- bl FlashProgPage
5764
-.L1009:
5765
- ldr r1, [r7, #4]
5766
- mov r0, #0
5767
- ldr r2, [r4, #-1776]
5768
- mov r3, r0
5769
- mul r1, r1, r6
5993
+ cmp r9, #10
5994
+ bne .L1016
5995
+.L1017:
5996
+ ldr r1, [r5, #40]
5997
+ mov r3, #0
5998
+ ldr r2, [r4, #-1772]
5999
+ mov r0, r3
6000
+ add r10, r7, #1
6001
+ mul r1, r1, r7
57706002 bl FlashReadRawPage
5771
- add r2, r6, #1
57726003 cmn r0, #1
5773
- beq .L1010
5774
- ldr r10, [r8, #-1792]
5775
- ldr r3, [r10]
5776
- cmp r3, r9
5777
- bne .L1010
5778
- add r0, r10, #12
6004
+ beq .L1018
6005
+ ldr r9, [r4, #-1788]
6006
+ ldr r3, [r9]
6007
+ cmp r3, r8
6008
+ bne .L1018
57796009 movw r1, #2036
5780
- str r2, [sp, #4]
6010
+ add r0, r9, #12
57816011 bl js_hash
5782
- ldr r3, [r10, #8]
6012
+ ldr r3, [r9, #8]
57836013 cmp r3, r0
5784
- ldr r2, [sp, #4]
5785
- bne .L1010
5786
- ldr r3, [fp, #4]
5787
- cmp r5, #1
5788
- str r2, [r8, #-1784]
5789
- mul r6, r3, r6
5790
- str r6, [r8, #-1788]
5791
- beq .L1013
5792
- mov r5, #1
5793
-.L1010:
5794
- cmp r2, #4
5795
- mov r6, r2
5796
- bne .L1012
5797
- b .L1011
5798
-.L1013:
5799
- mov r5, #2
5800
-.L1011:
6014
+ bne .L1018
6015
+ ldr r3, [r5, #40]
6016
+ cmp r6, #1
6017
+ str r10, [r4, #-1780]
6018
+ mul r7, r7, r3
6019
+ str r7, [r4, #-1784]
6020
+ beq .L1021
6021
+ mov r6, #1
6022
+.L1018:
6023
+ cmp r10, #4
6024
+ mov r7, r10
6025
+ bne .L1020
6026
+.L1019:
58016027 mov r0, #0
58026028 bl flash_exit_slc_mode
5803
- clz r0, r5
5804
- mov r0, r0, lsr #5
6029
+ clz r0, r6
6030
+ lsr r0, r0, #5
58056031 rsb r0, r0, #0
5806
- add sp, sp, #12
5807
- @ sp needed
5808
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
6032
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
6033
+.L1015:
6034
+ ldr r1, [r5, #40]
6035
+ mov r3, r9
6036
+ ldr r2, [r4, #-1864]
6037
+ mov r0, r9
6038
+ mul r1, r1, r7
6039
+ bl FlashProgPage
6040
+ ldr r1, [r5, #40]
6041
+ mov r3, r9
6042
+ ldr r2, [r4, #-1864]
6043
+ mov r0, r9
6044
+ mul r1, r1, r7
6045
+ add r1, r1, #1
6046
+ bl FlashProgPage
6047
+ b .L1017
58096048 .L1021:
6049
+ mov r6, #2
6050
+ b .L1019
6051
+.L1029:
58106052 .align 2
5811
-.L1020:
6053
+.L1028:
58126054 .word .LANCHOR2
58136055 .word .LANCHOR0
58146056 .word 1312902724
58156057 .word IDByte
5816
- .word .LANCHOR0+3156
5817
- .word .LANCHOR0+3164
5818
- .word .LANCHOR1+256
5819
- .word .LANCHOR2-2732
6058
+ .word .LANCHOR0+3160
6059
+ .word .LANCHOR1+468
58206060 .fnend
58216061 .size FlashSavePhyInfo, .-FlashSavePhyInfo
58226062 .align 2
58236063 .global FlashReadIdbDataRaw
6064
+ .syntax unified
6065
+ .arm
6066
+ .fpu softvfp
58246067 .type FlashReadIdbDataRaw, %function
58256068 FlashReadIdbDataRaw:
58266069 .fnstart
58276070 @ args = 0, pretend = 0, frame = 16
58286071 @ frame_needed = 0, uses_anonymous_args = 0
5829
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
6072
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
58306073 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5831
- mov r9, r0
5832
- ldr r3, .L1042
6074
+ mov r3, #60
58336075 .pad #20
58346076 sub sp, sp, #20
5835
- ldr r5, .L1042+4
5836
- ldr r0, [r3] @ unaligned
5837
- ldrb r3, [r5, #-2743] @ zero_extendqisi2
5838
- str r0, [sp, #12] @ unaligned
5839
- str r3, [sp]
5840
- ldr r3, [r5, #-1864]
6077
+ ldr r4, .L1049
6078
+ mov r9, r0
6079
+ strb r3, [sp, #12]
6080
+ mov r3, #40
6081
+ strb r3, [sp, #13]
6082
+ mov r3, #24
6083
+ strb r3, [sp, #14]
6084
+ mov r3, #16
6085
+ strb r3, [sp, #15]
6086
+ ldrb r3, [r4, #-2739] @ zero_extendqisi2
6087
+ str r3, [sp, #4]
6088
+ ldr r3, [r4, #-1860]
58416089 cmp r3, #0
5842
- beq .L1023
6090
+ beq .L1031
58436091 mov r0, #0
58446092 bl flash_enter_slc_mode
5845
-.L1023:
5846
- mov r0, r9
5847
- mov r1, #0
5848
- mov r2, #2048
5849
- ldr r10, .L1042+8
5850
- bl ftl_memset
5851
- mvn r8, #0
5852
- mov r4, #2
5853
- mov fp, r10
5854
-.L1024:
5855
- ldrb r3, [r10, #1] @ zero_extendqisi2
5856
- cmp r4, r3
5857
- bcs .L1028
5858
- mov r7, #0
5859
-.L1026:
5860
- add r3, sp, #12
5861
- ldr r6, .L1042+4
5862
- ldrb ip, [r7, r3] @ zero_extendqisi2
5863
- mov r0, ip
5864
- str ip, [sp, #4]
5865
- bl FlashBchSel
5866
- ldr r1, [fp, #4]
5867
- mov r0, #0
5868
- ldr r2, [r5, #-1868]
5869
- mov r3, r0
5870
- mul r1, r1, r4
5871
- bl FlashReadRawPage
5872
- cmn r0, #1
5873
- ldr ip, [sp, #4]
5874
- bne .L1025
5875
- add r7, r7, #1
5876
- cmp r7, #4
5877
- bne .L1026
5878
- b .L1027
5879
-.L1025:
5880
- ldr r3, [r6, #-1868]
5881
- ldr r2, .L1042+12
5882
- ldr r3, [r3]
5883
- cmp r3, r2
5884
- bne .L1027
5885
- mov r1, ip
5886
- ldr r0, .L1042+16
5887
- bl printk
5888
- mov r0, r9
5889
- ldr r1, [r6, #-1868]
5890
- mov r2, #2048
5891
- bl ftl_memcpy
5892
- ldr r3, [r6, #-1868]
5893
- ldr r3, [r3, #512]
5894
- strb r3, [fp, #1]
5895
- ldr r3, [r6, #-1784]
5896
- cmp r3, r4
5897
- bls .L1031
5898
- str r4, [r6, #-1784]
5899
- bl FlashSavePhyInfo
5900
- mov r8, #0
5901
-.L1027:
5902
- add r4, r4, #1
5903
- b .L1024
59046093 .L1031:
5905
- mov r8, #0
5906
-.L1028:
5907
- ldr r0, [sp]
6094
+ ldr fp, .L1049+4
6095
+ mvn r7, #0
6096
+ mov r5, #2
6097
+ mov r2, #2048
6098
+ mov r1, #0
6099
+ mov r0, r9
6100
+ mov r10, fp
6101
+ bl ftl_memset
6102
+.L1032:
6103
+ ldrb r3, [fp, #37] @ zero_extendqisi2
6104
+ cmp r5, r3
6105
+ bcc .L1037
6106
+.L1036:
6107
+ ldr r0, [sp, #4]
59086108 bl FlashBchSel
5909
- ldr r3, [r5, #-1864]
6109
+ ldr r3, [r4, #-1860]
59106110 cmp r3, #0
5911
- beq .L1035
6111
+ beq .L1030
59126112 mov r0, #0
59136113 bl flash_exit_slc_mode
5914
-.L1035:
5915
- mov r0, r8
6114
+.L1030:
6115
+ mov r0, r7
59166116 add sp, sp, #20
59176117 @ sp needed
5918
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5919
-.L1043:
6118
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
6119
+.L1037:
6120
+ mov r6, #0
6121
+.L1034:
6122
+ add r3, sp, #12
6123
+ ldrb r8, [r3, r6] @ zero_extendqisi2
6124
+ mov r0, r8
6125
+ bl FlashBchSel
6126
+ ldr r1, [r10, #40]
6127
+ mov r3, #0
6128
+ ldr r2, [r4, #-1864]
6129
+ mov r0, r3
6130
+ mul r1, r1, r5
6131
+ bl FlashReadRawPage
6132
+ cmn r0, #1
6133
+ bne .L1033
6134
+ add r6, r6, #1
6135
+ cmp r6, #4
6136
+ bne .L1034
6137
+.L1035:
6138
+ add r5, r5, #1
6139
+ b .L1032
6140
+.L1040:
6141
+ mov r7, #0
6142
+ b .L1036
6143
+.L1033:
6144
+ ldr r3, [r4, #-1864]
6145
+ ldr r2, .L1049+8
6146
+ ldr r3, [r3]
6147
+ cmp r3, r2
6148
+ bne .L1035
6149
+ mov r1, r8
6150
+ ldr r0, .L1049+12
6151
+ bl printk
6152
+ mov r2, #2048
6153
+ ldr r1, [r4, #-1864]
6154
+ mov r0, r9
6155
+ bl ftl_memcpy
6156
+ ldr r3, [r4, #-1864]
6157
+ ldr r3, [r3, #512]
6158
+ strb r3, [r10, #37]
6159
+ ldr r3, [r4, #-1780]
6160
+ cmp r5, r3
6161
+ bcs .L1040
6162
+ str r5, [r4, #-1780]
6163
+ mov r7, #0
6164
+ bl FlashSavePhyInfo
6165
+ b .L1035
6166
+.L1050:
59206167 .align 2
5921
-.L1042:
5922
- .word .LANCHOR3
6168
+.L1049:
59236169 .word .LANCHOR2
59246170 .word .LANCHOR0
59256171 .word -52655045
....@@ -5928,530 +6174,437 @@
59286174 .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw
59296175 .align 2
59306176 .global FlashInit
6177
+ .syntax unified
6178
+ .arm
6179
+ .fpu softvfp
59316180 .type FlashInit, %function
59326181 FlashInit:
59336182 .fnstart
5934
- @ args = 0, pretend = 0, frame = 0
6183
+ @ args = 0, pretend = 0, frame = 8
59356184 @ frame_needed = 0, uses_anonymous_args = 0
5936
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
6185
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
59376186 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
59386187 mov r6, r0
5939
- .pad #20
5940
- sub sp, sp, #20
6188
+ ldr r4, .L1149
6189
+ .pad #28
6190
+ sub sp, sp, #28
59416191 mov r0, #32768
5942
- bl ftl_malloc
5943
- ldr r4, .L1143
5944
- ldr r5, .L1143+4
59456192 mov r7, #0
5946
- str r0, [r4, #-1868]
6193
+ bl ftl_dma32_malloc
6194
+ str r0, [r4, #-1864]
59476195 mov r0, #32768
5948
- bl ftl_malloc
5949
- str r0, [r4, #-1776]
5950
- mov r0, #4096
5951
- bl ftl_malloc
6196
+ bl ftl_dma32_malloc
59526197 str r0, [r4, #-1772]
5953
- mov r0, #32768
5954
- bl ftl_malloc
5955
- str r0, [r4, #-1768]
59566198 mov r0, #4096
5957
- bl ftl_malloc
5958
- mov r3, #50
5959
- str r7, [r4, #-1784]
5960
- strb r3, [r5, #1]
5961
- strb r3, [r4, #-1780]
5962
- mov r3, #128
5963
- strb r7, [r4, #-1860]
5964
- str r3, [r5, #4]
5965
- mov r3, #60
5966
- str r7, [r4, #-1800]
5967
- strb r7, [r5]
5968
- strb r7, [r4, #-1760]
5969
- strb r3, [r4, #-1779]
6199
+ bl ftl_dma32_malloc
6200
+ str r0, [r4, #-1768]
6201
+ mov r0, #32768
6202
+ bl ftl_dma32_malloc
59706203 str r0, [r4, #-1764]
6204
+ mov r0, #4096
6205
+ bl ftl_dma32_malloc
6206
+ ldr r5, .L1149+4
6207
+ mov r3, #50
6208
+ str r0, [r4, #-1760]
59716209 mov r0, r6
5972
- bl NandcInit
5973
- ldr r6, .L1143+8
6210
+ ldr r6, .L1149+8
6211
+ mov r9, r7
6212
+ strb r3, [r5, #37]
6213
+ strb r3, [r4, #-1776]
6214
+ mov r3, #128
59746215 mov r8, r6
5975
-.L1050:
5976
- ldr r3, .L1143+12
5977
- uxtb r9, r7
5978
- add r2, r3, r7, asl #3
5979
- mov r0, r9
5980
- ldr r10, [r3, r7, asl #3]
5981
- ldrb fp, [r2, #4] @ zero_extendqisi2
6216
+ str r3, [r5, #40]
6217
+ mov r3, #60
6218
+ str r7, [r4, #-1780]
6219
+ strb r7, [r4, #-1856]
6220
+ str r7, [r4, #-1796]
6221
+ strb r7, [r5, #36]
6222
+ strb r7, [r4, #-1756]
6223
+ strb r3, [r4, #-1775]
6224
+ bl NandcInit
6225
+.L1057:
6226
+ add r2, r5, r7, lsl #3
6227
+ uxtb r10, r7
6228
+ ldr fp, [r5, r7, lsl #3]
6229
+ ldrb r2, [r2, #4] @ zero_extendqisi2
6230
+ mov r0, r10
6231
+ str r2, [sp, #20]
59826232 bl FlashReset
5983
- mov r0, r9
6233
+ mov r0, r10
59846234 bl NandcFlashCs
5985
- mov r2, #144
5986
- add fp, r10, fp, asl #8
6235
+ ldr r2, [sp, #20]
6236
+ mov r3, #144
59876237 mov r0, #200
5988
- mov r10, #0
5989
- str r2, [fp, #2056]
5990
- str r10, [fp, #2052]
5991
- bl NandcDelayns
6238
+ add fp, fp, r2, lsl #8
6239
+ str r3, [fp, #2056]
6240
+ str r9, [fp, #2052]
6241
+ bl ndelay
6242
+ ldr r2, [fp, #2048]
6243
+ uxtb r2, r2
6244
+ strb r2, [r6]
6245
+ cmp r2, #44
59926246 ldr r1, [fp, #2048]
5993
- uxtb r1, r1
5994
- strb r1, [r6]
5995
- ldr r0, [fp, #2048]
5996
- cmp r1, #44
5997
- strb r0, [r6, #1]
5998
- ldr r0, [fp, #2048]
5999
- strb r0, [r6, #2]
6000
- ldr r0, [fp, #2048]
6001
- strb r0, [r6, #3]
6002
- ldr r0, [fp, #2048]
6003
- strb r0, [r6, #4]
6004
- ldr r0, [fp, #2048]
6005
- strb r0, [r6, #5]
6006
- bne .L1045
6007
- mov r1, #239
6247
+ strb r1, [r6, #1]
6248
+ ldr r1, [fp, #2048]
6249
+ strb r1, [r6, #2]
6250
+ ldr r1, [fp, #2048]
6251
+ strb r1, [r6, #3]
6252
+ ldr r1, [fp, #2048]
6253
+ strb r1, [r6, #4]
6254
+ ldr r1, [fp, #2048]
6255
+ strb r1, [r6, #5]
6256
+ bne .L1052
6257
+ mov r2, #239
60086258 mov r0, #200
6009
- str r1, [fp, #2056]
6010
- mov r1, #1
6011
- str r1, [fp, #2052]
6012
- bl NandcDelayns
6013
- mov r1, #4
6014
- str r1, [fp, #2048]
6015
- str r10, [fp, #2048]
6016
- str r10, [fp, #2048]
6017
- str r10, [fp, #2048]
6018
-.L1045:
6019
- mov r0, r9
6259
+ str r2, [fp, #2056]
6260
+ mov r2, #1
6261
+ str r2, [fp, #2052]
6262
+ bl ndelay
6263
+ mov r2, #4
6264
+ str r2, [fp, #2048]
6265
+ str r9, [fp, #2048]
6266
+ str r9, [fp, #2048]
6267
+ str r9, [fp, #2048]
6268
+.L1052:
6269
+ mov r0, r10
60206270 bl NandcFlashDeCs
60216271 ldrb r2, [r6] @ zero_extendqisi2
60226272 sub r3, r2, #1
60236273 uxtb r3, r3
60246274 cmp r3, #253
6025
- bhi .L1046
6026
- ldrb r1, [r6, #2] @ zero_extendqisi2
6275
+ bhi .L1053
6276
+ ldrb r1, [r6, #5] @ zero_extendqisi2
60276277 ldrb r3, [r6, #1] @ zero_extendqisi2
6028
- ldr r0, .L1143+16
6029
- str r1, [sp]
6030
- ldrb r1, [r6, #3] @ zero_extendqisi2
6031
- str r1, [sp, #4]
6278
+ ldr r0, .L1149+12
6279
+ str r1, [sp, #12]
60326280 ldrb r1, [r6, #4] @ zero_extendqisi2
60336281 str r1, [sp, #8]
6034
- ldrb r1, [r6, #5] @ zero_extendqisi2
6035
- str r1, [sp, #12]
6282
+ ldrb r1, [r6, #3] @ zero_extendqisi2
6283
+ str r1, [sp, #4]
6284
+ ldrb r1, [r6, #2] @ zero_extendqisi2
6285
+ str r1, [sp]
60366286 add r1, r7, #1
60376287 bl printk
6038
-.L1046:
6288
+.L1053:
60396289 cmp r7, #0
6040
- bne .L1047
6290
+ bne .L1054
60416291 ldrb r3, [r8] @ zero_extendqisi2
60426292 sub r3, r3, #1
60436293 uxtb r3, r3
60446294 cmp r3, #253
6045
- bhi .L1097
6046
- ldr r3, .L1143+8
6047
- ldrb r3, [r3, #1] @ zero_extendqisi2
6295
+ bhi .L1104
6296
+ ldrb r3, [r8, #1] @ zero_extendqisi2
60486297 cmp r3, #255
6049
- beq .L1097
6298
+ beq .L1104
60506299 bl FlashCs123Init
6051
-.L1047:
6300
+.L1054:
60526301 ldrb r3, [r6] @ zero_extendqisi2
60536302 add r7, r7, #1
60546303 add r6, r6, #8
60556304 cmp r3, #181
60566305 moveq r3, #44
6057
- streqb r3, [r6, #-8]
6306
+ strbeq r3, [r6, #-8]
60586307 cmp r7, #4
6059
- bne .L1050
6308
+ bne .L1057
60606309 ldrb r3, [r8] @ zero_extendqisi2
60616310 cmp r3, #173
6062
- beq .L1051
6063
- ldr r0, [r4, #-1856]
6311
+ beq .L1058
6312
+ ldr r0, [r4, #-1852]
60646313 bl NandcSetDdrMode
6065
-.L1051:
6314
+.L1058:
60666315 mov r2, #852
6067
- ldr r0, .L1143+20
60686316 mov r1, #0
6069
- ldr r7, .L1143+24
6317
+ ldr r0, .L1149+16
60706318 bl ftl_memset
6071
- ldr r2, [r4, #-1848]
6072
- ldr r0, .L1143+28
6073
- cmp r2, r7
6074
- add r3, r0, #256
6075
- str r3, [r5, #44]
6319
+ ldr r7, .L1149+20
6320
+ ldr r2, .L1149+24
6321
+ ldr r0, [r4, #-1844]
6322
+ ldr r6, .L1149+28
6323
+ add r3, r2, #468
6324
+ cmp r0, r7
6325
+ str r3, [r5, #48]
60766326 mov r3, #0
6077
- strb r3, [r5, #8]
6078
- bne .L1052
6079
- ldrb r3, [r0, #275] @ zero_extendqisi2
6327
+ strb r3, [r5, #44]
6328
+ bne .L1059
6329
+ ldrb r3, [r2, #487] @ zero_extendqisi2
60806330 cmp r3, #50
6081
- ldrne r3, .L1143
6082
- movne r1, #1
6083
- strne r1, [r3, #-1864]
6084
-.L1052:
6085
- ldrb r6, [r8, #1] @ zero_extendqisi2
6086
- sub ip, r6, #218
6087
- cmp r6, #161
6088
- cmpne r6, #241
6089
- clz ip, ip
6090
- and r1, r6, #253
6091
- moveq r3, #1
6092
- movne r3, #0
6093
- mov ip, ip, lsr #5
6094
- orr r3, ip, r3
6095
- cmp r1, #209
6096
- orreq r3, r3, #1
6097
- cmp r3, #0
6098
- bne .L1053
6099
- cmp r6, #220
6100
- bne .L1054
6101
- ldr r3, .L1143+8
6102
- ldrb r3, [r3, #3] @ zero_extendqisi2
6103
- cmp r3, #149
6104
- bne .L1054
6105
-.L1053:
6106
- mov lr, #16
6107
- strb lr, [r5, #1]
6108
- strb lr, [r4, #-1779]
6109
- mov r1, #1
6110
- ldrb lr, [r8] @ zero_extendqisi2
6111
- strb r1, [r5]
6112
- cmp lr, #152
6113
- ldr r3, .L1143
6114
- strb lr, [r0, #3413]
6115
- strb r6, [r0, #3414]
6116
- bne .L1056
6117
- ldr lr, .L1143+8
6118
- ldrsb lr, [lr, #4]
6119
- cmp lr, #0
6120
- strltb r1, [r3, #-1760]
6121
- movge r1, #24
6122
- strgeb r1, [r3, #-1779]
6123
-.L1056:
6124
- movw r3, #2049
6125
- cmp r2, r7
6126
- cmpne r2, r3
6127
- moveq r3, #16
6128
- streqb r3, [r4, #-1779]
6129
- cmp ip, #0
6130
- ldrne r3, .L1143+32
6131
- movne r2, #2048
6132
- strneh r2, [r3, #14] @ movhi
6133
- mvnne r3, #37
6134
- bne .L1137
6331
+ movne r3, #1
6332
+ strne r3, [r4, #-1860]
6333
+.L1059:
6334
+ ldrb r3, [r8, #1] @ zero_extendqisi2
6335
+ cmp r3, #241
6336
+ cmpne r3, #161
6337
+ and ip, r3, #253
6338
+ moveq r1, #1
6339
+ movne r1, #0
6340
+ cmp r3, #218
6341
+ orreq r1, r1, #1
6342
+ cmp ip, #209
6343
+ orreq r1, r1, #1
6344
+ cmp r1, #0
6345
+ bne .L1060
6346
+ cmp r3, #220
6347
+ bne .L1061
6348
+ ldrb r1, [r8, #3] @ zero_extendqisi2
6349
+ cmp r1, #149
6350
+ bne .L1061
61356351 .L1060:
6136
- cmp r6, #220
6137
- bne .L1062
6138
- ldr r3, .L1143+32
6139
- mov r2, #4096
6140
- strh r2, [r3, #14] @ movhi
6141
- mvn r3, #35
6142
-.L1137:
6143
- strb r3, [r0, #3414]
6144
- b .L1061
6145
-.L1062:
6146
- cmp r6, #211
6147
- ldreq r3, .L1143+32
6148
- moveq r2, #4096
6149
- streqh r2, [r3, #14] @ movhi
6150
- moveq r3, #2
6151
- streqb r3, [r0, #3425]
6152
-.L1061:
6153
- ldr r1, .L1143+36
6154
- mov r2, #32
6155
- ldr r0, .L1143+40
6156
- bl ftl_memcpy
6157
- ldr r0, .L1143+44
6158
- ldr r1, .L1143+32
6159
- mov r2, #32
6160
- bl ftl_memcpy
6161
-.L1054:
6162
- ldrb r3, [r5] @ zero_extendqisi2
6163
- cmp r3, #0
6352
+ mov ip, #16
6353
+ mov r1, #1
6354
+ strb ip, [r5, #37]
6355
+ strb ip, [r4, #-1775]
6356
+ ldrb ip, [r8] @ zero_extendqisi2
6357
+ strb r1, [r5, #36]
6358
+ strb r3, [r2, #3410]
6359
+ cmp ip, #152
6360
+ strb ip, [r2, #3409]
61646361 bne .L1063
6362
+ ldrsb ip, [r8, #4]
6363
+ cmp ip, #0
6364
+ movge r1, #24
6365
+ strblt r1, [r4, #-1756]
6366
+ strbge r1, [r4, #-1775]
6367
+.L1063:
6368
+ movw r1, #2049
6369
+ cmp r0, r1
6370
+ cmpne r0, r7
6371
+ moveq r1, #16
6372
+ strbeq r1, [r4, #-1775]
6373
+ cmp r3, #218
6374
+ bne .L1067
6375
+ ldr r3, .L1149+32
6376
+ mov r1, #2048
6377
+ strh r1, [r3, #14] @ movhi
6378
+ mvn r3, #37
6379
+.L1143:
6380
+ strb r3, [r2, #3410]
6381
+.L1068:
6382
+ mov r2, #32
6383
+ ldr r1, .L1149+36
6384
+ ldr r0, .L1149+40
6385
+ bl ftl_memcpy
6386
+ mov r2, #32
6387
+ ldr r1, .L1149+32
6388
+ ldr r0, .L1149+44
6389
+ bl ftl_memcpy
6390
+.L1061:
6391
+ ldrb r3, [r5, #36] @ zero_extendqisi2
6392
+ cmp r3, #0
6393
+ bne .L1071
61656394 bl FlashLoadPhyInfoInRam
61666395 cmp r0, #0
6167
- bne .L1065
6168
- ldr r3, .L1143+4
6169
- ldr r6, .L1143
6170
- ldr r3, [r3, #44]
6396
+ bne .L1073
6397
+ ldr r3, [r5, #48]
61716398 ldrh r3, [r3, #16]
6172
- mov r3, r3, lsr #8
6399
+ lsr r3, r3, #8
61736400 tst r3, #1
61746401 and r0, r3, #7
6175
- strb r0, [r4, #-1875]
6176
- bne .L1065
6402
+ strb r0, [r4, #-1871]
6403
+ bne .L1073
61776404 mov r3, #1
6178
- strb r3, [r6, #-1860]
6405
+ strb r3, [r4, #-1856]
61796406 bl FlashSetInterfaceMode
6180
- ldrb r0, [r6, #-1875] @ zero_extendqisi2
6407
+ ldrb r0, [r4, #-1871] @ zero_extendqisi2
61816408 bl NandcSetMode
6182
-.L1065:
6183
- ldr r3, [r5, #44]
6184
- ldr r6, .L1143
6409
+.L1073:
6410
+ ldr r3, [r5, #48]
61856411 ldrb r3, [r3, #26] @ zero_extendqisi2
6186
- strb r3, [r4, #-2744]
6412
+ strb r3, [r4, #-2740]
61876413 bl FlashLoadPhyInfo
61886414 cmp r0, #0
6189
- beq .L1063
6190
- ldr r3, [r6, #-1856]
6415
+ beq .L1071
6416
+ ldr r3, [r4, #-1852]
61916417 cmp r3, #0
6192
- beq .L1068
6418
+ beq .L1076
61936419 mov r0, #1
61946420 bl FlashSetInterfaceMode
61956421 mov r0, #1
6196
- b .L1138
6197
-.L1068:
6198
- ldrb r0, [r6, #-1875] @ zero_extendqisi2
6199
- bl FlashSetInterfaceMode
6200
- ldrb r0, [r6, #-1875] @ zero_extendqisi2
6201
-.L1138:
6422
+.L1144:
62026423 bl NandcSetMode
62036424 bl FlashLoadPhyInfo
62046425 cmp r0, #0
6205
- beq .L1063
6426
+ beq .L1071
62066427 mov r0, #1
6207
- ldr r6, .L1143+4
62086428 bl FlashSetInterfaceMode
62096429 mov r0, #1
62106430 bl NandcSetMode
6211
- ldr r3, [r5, #44]
6212
- ldr r0, .L1143+48
6431
+ ldr r3, [r5, #48]
6432
+ ldr r0, .L1149+48
62136433 ldrh r1, [r3, #14]
62146434 bl printk
62156435 bl FlashLoadPhyInfoInRam
62166436 cmn r0, #1
6217
- beq .L1111
6437
+ beq .L1051
62186438 bl FlashDieInfoInit
6219
- ldr r3, [r6, #44]
6439
+ ldr r3, [r5, #48]
62206440 ldrb r0, [r3, #19] @ zero_extendqisi2
62216441 bl FlashGetReadRetryDefault
6222
- movw r3, #3324
6223
- ldr r2, [r6, #44]
6224
- ldrh r3, [r6, r3]
6225
- add r3, r3, #4080
6442
+ ldr r3, .L1149+52
6443
+ ldr r2, [r5, #48]
6444
+ ldrh r3, [r3]
62266445 ldrb r1, [r2, #9] @ zero_extendqisi2
6446
+ add r3, r3, #4080
62276447 add r3, r3, #15
62286448 cmp r1, r3, asr #12
62296449 ldrh r3, [r2, #14]
6230
- blt .L1070
6450
+ blt .L1078
62316451 add r0, r3, #255
62326452 cmp r1, r0, asr #8
6233
- bge .L1071
6234
-.L1070:
6453
+ bge .L1079
6454
+.L1078:
62356455 bic r3, r3, #255
62366456 strh r3, [r2, #14] @ movhi
6237
-.L1071:
6238
- ldrb r3, [r4, #-1875] @ zero_extendqisi2
6457
+.L1079:
6458
+ ldrb r3, [r4, #-1871] @ zero_extendqisi2
62396459 tst r3, #6
6240
- beq .L1072
6460
+ beq .L1080
62416461 bl FlashSavePhyInfo
62426462 mov r0, #0
62436463 bl flash_enter_slc_mode
6244
- ldr r3, .L1143
6464
+ ldr r1, [r4, #-1784]
62456465 mov r0, #0
6246
- ldr r1, [r3, #-1788]
62476466 bl FlashDdrParaScan
62486467 mov r0, #0
62496468 bl flash_exit_slc_mode
6250
-.L1072:
6469
+.L1080:
62516470 bl FlashSavePhyInfo
6252
-.L1063:
6253
- ldr r2, [r5, #44]
6254
- ldr r6, .L1143
6255
- ldrb r3, [r2, #26] @ zero_extendqisi2
6256
- ldrh r0, [r2, #10]
6257
- ldrb r9, [r2, #18] @ zero_extendqisi2
6258
- strb r3, [r4, #-2744]
6259
- ldrh r3, [r2, #16]
6260
- ubfx r1, r3, #7, #1
6261
- strb r1, [r5, #8]
6262
- ubfx r1, r3, #3, #1
6263
- strb r1, [r4, #-1759]
6264
- ubfx r1, r3, #4, #1
6471
+.L1071:
6472
+ ldr r9, [r5, #48]
6473
+ ldrb r3, [r9, #26] @ zero_extendqisi2
6474
+ ldrb r1, [r9, #12] @ zero_extendqisi2
6475
+ ldrh r0, [r9, #10]
6476
+ strb r3, [r4, #-2740]
6477
+ ldrh r3, [r9, #16]
6478
+ ubfx r2, r3, #7, #1
6479
+ strb r2, [r5, #44]
6480
+ ubfx r2, r3, #3, #1
6481
+ strb r2, [r4, #-1755]
6482
+ ubfx r2, r3, #4, #1
62656483 ubfx r3, r3, #8, #3
6266
- strb r1, [r4, #-1874]
6267
- strb r3, [r4, #-1875]
6484
+ strb r2, [r4, #-1870]
6485
+ strb r3, [r4, #-1871]
62686486 mov r3, #0
6269
- ldrb r1, [r2, #12] @ zero_extendqisi2
6270
- str r3, [r4, #-1796]
6487
+ str r3, [r4, #-1792]
62716488 bl __aeabi_idiv
62726489 mov r1, r0
6273
- mov r0, r9
6490
+ ldrb r0, [r9, #18] @ zero_extendqisi2
62746491 bl BuildFlashLsbPageTable
62756492 bl FlashDieInfoInit
6276
- ldr r3, [r5, #44]
6493
+ ldr r3, [r5, #48]
62776494 ldrh r2, [r3, #16]
62786495 tst r2, #64
6279
- beq .L1074
6496
+ beq .L1082
62806497 ldrb r0, [r3, #19] @ zero_extendqisi2
6281
- ldr r3, .L1143+52
6282
- ldr r2, .L1143+56
6283
- ldrb r1, [r6, #-2730] @ zero_extendqisi2
6498
+ ldr r3, .L1149+56
6499
+ ldr r2, .L1149+60
6500
+ ldrb r1, [r4, #-2726] @ zero_extendqisi2
62846501 strb r0, [r3]
6285
- ldrb r3, [r6, #-2731] @ zero_extendqisi2
6502
+ ldrb r3, [r4, #-2727] @ zero_extendqisi2
62866503 mov ip, r2
62876504 strb r3, [r2]
6288
- ldr r3, .L1143+60
6505
+ ldr r3, .L1149+64
62896506 strb r1, [r3]
62906507 sub r1, r0, #1
62916508 cmp r1, #7
6292
- bhi .L1075
6293
- ldr r3, .L1143+64
6294
- sub r2, r0, #5
6509
+ bhi .L1083
6510
+ ldr r3, .L1149+68
6511
+ str r3, [r4, #-1792]
6512
+ sub r3, r0, #5
62956513 cmp r0, #8
6296
- cmpne r2, #1
6297
- sub r1, r0, #8
6298
- clz r1, r1
6299
- str r3, [r6, #-1796]
6514
+ cmpne r3, #1
63006515 movls r3, #1
6301
- strls r3, [r6, #-1808]
6516
+ strls r3, [r4, #-1804]
63026517 cmp r0, #7
6303
- mov r1, r1, lsr #5
6304
- ldreq r3, .L1143+68
6305
- beq .L1078
6306
- ldr r2, .L1143+68
6518
+ beq .L1105
6519
+ cmp r0, #8
6520
+ addne r6, r6, #12
6521
+ bne .L1085
6522
+.L1105:
6523
+ add r6, r6, #20
6524
+.L1085:
6525
+ sub r2, r6, #1
6526
+ mov r3, #0
6527
+ add r6, r6, #31
6528
+.L1087:
6529
+ ldrsb r1, [r2, #1]!
63076530 cmp r1, #0
6308
- sub r3, r2, #8
6309
- movne r3, r2
6310
-.L1078:
6311
- sub r1, r3, #1
6312
- add r3, r3, #31
6313
- mov r2, #0
6314
-.L1079:
6315
- ldrsb ip, [r1, #1]!
6316
- cmp ip, #0
6317
- addeq r2, r2, #1
6318
- cmp r1, r3
6319
- bne .L1079
6320
- cmp r2, #27
6321
- bls .L1074
6531
+ addeq r3, r3, #1
6532
+ cmp r6, r2
6533
+ bne .L1087
6534
+ cmp r3, #27
6535
+ bls .L1082
63226536 bl FlashGetReadRetryDefault
63236537 bl FlashSavePhyInfo
6324
- b .L1074
6325
-.L1075:
6326
- sub r1, r0, #17
6327
- cmp r1, #2
6328
- bhi .L1081
6329
- ldr r2, .L1143+72
6330
- cmp r0, #19
6331
- str r2, [r6, #-1796]
6332
- moveq r2, #15
6333
- bne .L1142
6334
- b .L1140
6335
-.L1081:
6336
- sub r1, r0, #65
6337
- cmp r0, #33
6338
- cmpne r1, #1
6339
- bhi .L1083
6340
- ldr r1, .L1143+76
6341
- str r1, [r6, #-1796]
6342
- mov r1, #4
6343
- strb r1, [r2]
6344
-.L1142:
6345
- mov r2, #7
6346
-.L1140:
6347
- strb r2, [r3]
6348
- b .L1074
6349
-.L1083:
6350
- sub r1, r0, #67
6351
- sub r2, r0, #34
6352
- cmp r1, #1
6353
- movhi r1, #0
6354
- movls r1, #1
6355
- cmp r2, #1
6356
- movhi r2, r1
6357
- orrls r2, r1, #1
6358
- cmp r2, #0
6359
- beq .L1084
6360
- ldr r2, .L1143+76
6361
- cmp r0, #68
6362
- cmpne r0, #35
6363
- str r2, [r6, #-1796]
6364
- movne r2, #7
6365
- moveq r2, #17
6366
- cmp r1, #0
6367
- strb r2, [r3]
6368
- movne r3, #4
6369
- moveq r3, #5
6370
- strb r3, [ip]
6371
- b .L1074
6372
-.L1084:
6373
- cmp r0, #49
6374
- ldreq r3, .L1143+80
6375
- streq r3, [r6, #-1796]
6376
- beq .L1074
6377
- cmp r0, #50
6378
- streq r2, [r6, #-1864]
6379
- ldreq r3, .L1143+84
6380
- streq r3, [r6, #-1796]
6381
-.L1074:
6382
- ldr r3, [r4, #-1848]
6538
+.L1082:
6539
+ ldr r3, [r4, #-1844]
63836540 cmp r3, r7
6384
- bne .L1089
6385
- ldr r2, .L1143
6386
- ldrb r2, [r2, #-2744] @ zero_extendqisi2
6541
+ bne .L1097
6542
+ ldrb r2, [r4, #-2740] @ zero_extendqisi2
63876543 cmp r2, #0
6388
- ldrne r2, [r5, #44]
6544
+ ldrne r2, [r5, #48]
63896545 movne r1, #0
6390
- strneb r1, [r2, #18]
6391
-.L1089:
6546
+ strbne r1, [r2, #18]
6547
+.L1097:
63926548 ldrb r2, [r8] @ zero_extendqisi2
63936549 cmp r2, #44
6394
- bne .L1090
6395
- ldrb r2, [r4, #-1860] @ zero_extendqisi2
6550
+ bne .L1098
6551
+ ldrb r2, [r4, #-1856] @ zero_extendqisi2
63966552 cmp r2, #0
6397
- beq .L1090
6553
+ beq .L1098
63986554 cmp r3, r7
6399
- bne .L1091
6400
- ldr r3, .L1143
6401
- ldrb r3, [r3, #-2744] @ zero_extendqisi2
6555
+ bne .L1099
6556
+ ldrb r3, [r4, #-2740] @ zero_extendqisi2
64026557 cmp r3, #0
6403
- bne .L1090
6404
-.L1091:
6405
- mov r0, #1
6558
+ bne .L1098
6559
+.L1099:
64066560 mov r3, #0
6407
- strb r3, [r4, #-1860]
6561
+ mov r0, #1
6562
+ strb r3, [r4, #-1856]
64086563 bl FlashSetInterfaceMode
64096564 mov r0, #1
64106565 bl NandcSetMode
6411
-.L1090:
6412
- ldrb r3, [r4, #-1875] @ zero_extendqisi2
6566
+.L1098:
6567
+ ldrb r3, [r4, #-1871] @ zero_extendqisi2
64136568 tst r3, #6
6414
- beq .L1092
6415
- ldr r2, .L1143
6416
- ldrb r2, [r2, #-1860] @ zero_extendqisi2
6569
+ beq .L1100
6570
+ ldrb r2, [r4, #-1856] @ zero_extendqisi2
64176571 cmp r2, #0
6418
- bne .L1093
6572
+ bne .L1101
64196573 tst r3, #1
6420
- bne .L1092
6421
-.L1093:
6574
+ bne .L1100
6575
+.L1101:
64226576 mov r0, #0
64236577 bl flash_enter_slc_mode
6578
+ ldr r1, [r4, #-1784]
64246579 mov r0, #0
6425
- ldr r1, [r4, #-1788]
64266580 bl FlashDdrParaScan
64276581 mov r0, #0
64286582 bl flash_exit_slc_mode
6429
-.L1092:
6430
- ldr r3, [r5, #44]
6431
- mov r10, #16
6432
- ldr r9, .L1143+4
6433
- ldr r6, .L1143+88
6583
+.L1100:
6584
+ ldr r3, [r5, #48]
6585
+ mov r9, #16
6586
+ ldr r6, .L1149+72
64346587 ldrb r0, [r3, #20] @ zero_extendqisi2
64356588 bl FlashBchSel
6436
- add r0, r9, #3328
6589
+ ldr r0, .L1149+76
64376590 bl FlashReadIdbDataRaw
6438
- ldr r0, .L1143+92
6439
- strb r10, [r5, #1]
6591
+ ldr r0, .L1149+80
6592
+ strb r9, [r5, #37]
64406593 bl FlashTimingCfg
6441
- ldr r7, [r5, #44]
6594
+ ldr r7, [r5, #48]
64426595 ldrb r2, [r8, #1] @ zero_extendqisi2
64436596 ldrb r3, [r7, #12] @ zero_extendqisi2
64446597 strh r3, [r6, #8] @ movhi
64456598 ldrb r3, [r7, #7] @ zero_extendqisi2
6446
- str r3, [r4, #-2768]
6447
- mov r3, r2, asl r10
6448
- orr r2, r3, r2, asl #8
6449
- ldrb r3, [r8] @ zero_extendqisi2
6450
- orr r3, r2, r3
6599
+ str r3, [r4, #-2764]
6600
+ lsl r3, r2, r9
6601
+ orr r3, r3, r2, lsl #8
6602
+ ldrb r2, [r8] @ zero_extendqisi2
6603
+ orr r3, r3, r2
64516604 ldrb r2, [r8, #3] @ zero_extendqisi2
6452
- orr r3, r3, r2, asl #24
6453
- str r3, [r4, #-2772]
6454
- ldrb r3, [r5, #3152] @ zero_extendqisi2
6605
+ orr r3, r3, r2, lsl #24
6606
+ str r3, [r4, #-2768]
6607
+ ldrb r3, [r5, #3156] @ zero_extendqisi2
64556608 ldrh r4, [r7, #14]
64566609 strh r3, [r6, #10] @ movhi
64576610 ldrb r3, [r7, #13] @ zero_extendqisi2
....@@ -6465,319 +6618,395 @@
64656618 strh r0, [r6, #18] @ movhi
64666619 ldrb r2, [r7, #9] @ zero_extendqisi2
64676620 strh r2, [r6, #20] @ movhi
6468
- ldrb r1, [r7, #9] @ zero_extendqisi2
6469
- ldrh r3, [r7, #10]
6470
- smulbb r3, r1, r3
6621
+ ldrh r1, [r7, #10]
6622
+ ldrb r3, [r7, #9] @ zero_extendqisi2
6623
+ smulbb r3, r3, r1
64716624 mov r1, #512
64726625 strh r1, [r6, #24] @ movhi
6473
- ldrb r1, [r5, #1] @ zero_extendqisi2
6474
- strh r1, [r6, #26] @ movhi
6626
+ ldrb r1, [r5, #37] @ zero_extendqisi2
64756627 uxth r3, r3
6476
- ldrb r1, [r5] @ zero_extendqisi2
6628
+ strh r1, [r6, #26] @ movhi
6629
+ ldrb r1, [r5, #36] @ zero_extendqisi2
64776630 strh r3, [r6, #22] @ movhi
64786631 cmp r1, #1
6479
- bne .L1095
6480
- mov r3, r3, asl #1
6481
- mov r4, r4, lsr #1
6482
- mov r2, r2, asl #1
6632
+ bne .L1102
6633
+ lsl r3, r3, #1
6634
+ lsr r4, r4, #1
6635
+ lsl r2, r2, #1
6636
+ strb r9, [r5, #37]
64836637 strh r3, [r6, #22] @ movhi
6484
- strb r10, [r9, #1]
64856638 mov r3, #8
64866639 strh r4, [r6, #14] @ movhi
64876640 strh r2, [r6, #20] @ movhi
64886641 strh r3, [r6, #26] @ movhi
6489
-.L1095:
6642
+.L1102:
64906643 ldrb r0, [r7, #20] @ zero_extendqisi2
64916644 bl FlashBchSel
64926645 bl ftl_flash_suspend
64936646 mov r0, #0
6494
- b .L1111
6495
-.L1097:
6496
- mvn r0, #1
6497
-.L1111:
6498
- add sp, sp, #20
6647
+.L1051:
6648
+ add sp, sp, #28
64996649 @ sp needed
6500
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
6501
-.L1144:
6650
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
6651
+.L1067:
6652
+ cmp r3, #220
6653
+ ldreq r3, .L1149+32
6654
+ moveq r1, #4096
6655
+ strheq r1, [r3, #14] @ movhi
6656
+ mvneq r3, #35
6657
+ beq .L1143
6658
+.L1069:
6659
+ cmp r3, #211
6660
+ ldreq r3, .L1149+32
6661
+ moveq r1, #4096
6662
+ strheq r1, [r3, #14] @ movhi
6663
+ moveq r3, #2
6664
+ strbeq r3, [r2, #3421]
6665
+ b .L1068
6666
+.L1076:
6667
+ ldrb r0, [r4, #-1871] @ zero_extendqisi2
6668
+ bl FlashSetInterfaceMode
6669
+ ldrb r0, [r4, #-1871] @ zero_extendqisi2
6670
+ b .L1144
6671
+.L1083:
6672
+ sub r1, r0, #17
6673
+ cmp r1, #2
6674
+ bhi .L1089
6675
+ ldr r2, .L1149+84
6676
+ cmp r0, #19
6677
+ str r2, [r4, #-1792]
6678
+ moveq r2, #15
6679
+ beq .L1146
6680
+.L1148:
6681
+ mov r2, #7
6682
+.L1146:
6683
+ strb r2, [r3]
6684
+ b .L1082
6685
+.L1089:
6686
+ sub r1, r0, #65
6687
+ cmp r0, #33
6688
+ cmpne r1, #1
6689
+ ldrls r1, .L1149+88
6690
+ strls r1, [r4, #-1792]
6691
+ movls r1, #4
6692
+ strbls r1, [r2]
6693
+ bls .L1148
6694
+.L1091:
6695
+ sub r2, r0, #67
6696
+ sub r1, r0, #34
6697
+ uxtb r2, r2
6698
+ cmp r2, #1
6699
+ cmphi r1, #1
6700
+ movls r1, #1
6701
+ movhi r1, #0
6702
+ bhi .L1092
6703
+ ldr r1, .L1149+88
6704
+ cmp r0, #68
6705
+ cmpne r0, #35
6706
+ str r1, [r4, #-1792]
6707
+ movne r1, #7
6708
+ moveq r1, #17
6709
+ cmp r2, #1
6710
+ strb r1, [r3]
6711
+ movls r3, #4
6712
+ movhi r3, #5
6713
+ strb r3, [ip]
6714
+ b .L1082
6715
+.L1092:
6716
+ cmp r0, #49
6717
+ ldreq r3, .L1149+92
6718
+ streq r3, [r4, #-1792]
6719
+ beq .L1082
6720
+ cmp r0, #50
6721
+ ldreq r3, .L1149+96
6722
+ streq r1, [r4, #-1860]
6723
+ streq r3, [r4, #-1792]
6724
+ b .L1082
6725
+.L1104:
6726
+ mvn r0, #1
6727
+ b .L1051
6728
+.L1150:
65026729 .align 2
6503
-.L1143:
6730
+.L1149:
65046731 .word .LANCHOR2
65056732 .word .LANCHOR0
65066733 .word IDByte
6507
- .word .LANCHOR0+12
65086734 .word .LC14
6509
- .word .LANCHOR2-2732
6735
+ .word .LANCHOR2-2728
65106736 .word 1446522928
65116737 .word .LANCHOR1
6512
- .word .LANCHOR1+3412
6513
- .word .LANCHOR1+3072
6514
- .word .LANCHOR0+48
6515
- .word .LANCHOR1+256
6738
+ .word .LANCHOR2-2720
6739
+ .word .LANCHOR1+3408
6740
+ .word .LANCHOR1+3284
6741
+ .word .LANCHOR0+52
6742
+ .word .LANCHOR1+468
65166743 .word .LC15
6744
+ .word .LANCHOR0+3328
65176745 .word g_retryMode
65186746 .word g_maxRegNum
65196747 .word g_maxRetryCount
65206748 .word HynixReadRetrial
6521
- .word .LANCHOR2-2704
6749
+ .word .LANCHOR2-2768
6750
+ .word .LANCHOR0+3332
6751
+ .word 150000
65226752 .word MicronReadRetrial
65236753 .word ToshibaReadRetrial
65246754 .word SamsungReadRetrial
65256755 .word samsung_read_retrial
6526
- .word .LANCHOR2-2772
6527
- .word 150000
65286756 .fnend
65296757 .size FlashInit, .-FlashInit
65306758 .align 2
65316759 .global FlashPageProgMsbFFData
6760
+ .syntax unified
6761
+ .arm
6762
+ .fpu softvfp
65326763 .type FlashPageProgMsbFFData, %function
65336764 FlashPageProgMsbFFData:
65346765 .fnstart
65356766 @ args = 0, pretend = 0, frame = 0
65366767 @ frame_needed = 0, uses_anonymous_args = 0
6537
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
6768
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
65386769 .save {r4, r5, r6, r7, r8, r9, r10, lr}
6539
- mov r7, r1
6540
- ldr r5, .L1162
6541
- mov r4, r2
6542
- ldr r1, .L1162+4
65436770 mov r6, r0
6544
- ldrb r2, [r5, #-2744] @ zero_extendqisi2
6545
- ldr r3, [r1, #44]
6546
- mov r8, r1
6547
- cmp r2, #0
6548
- ldrb r3, [r3, #19] @ zero_extendqisi2
6549
- beq .L1146
6550
- ldr r2, [r5, #-1864]
6551
- cmp r2, #0
6552
- ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
6553
-.L1146:
6554
- sub r2, r3, #5
6555
- cmp r3, #50
6556
- cmpne r2, #2
6557
- bls .L1147
6558
- sub r2, r3, #19
6559
- tst r2, #239
6560
- moveq r2, #1
6561
- movne r2, #0
6562
- cmp r3, #68
6563
- movne r3, r2
6564
- orreq r3, r2, #1
6771
+ ldr r5, .L1167
6772
+ mov r7, r1
6773
+ mov r4, r2
6774
+ ldrb r3, [r5, #-2740] @ zero_extendqisi2
65656775 cmp r3, #0
6566
- ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
6567
-.L1147:
6568
- ldr r9, .L1162+8
6776
+ beq .L1152
6777
+ ldr r3, [r5, #-1860]
6778
+ cmp r3, #0
6779
+ popne {r4, r5, r6, r7, r8, r9, r10, pc}
6780
+.L1152:
6781
+ ldr r2, .L1167+4
6782
+ ldr r3, [r2, #48]
6783
+ mov r8, r2
6784
+ ldrb r3, [r3, #19] @ zero_extendqisi2
6785
+ sub r1, r3, #5
6786
+ cmp r3, #50
6787
+ cmpne r1, #2
6788
+ bls .L1153
6789
+ sub r2, r3, #19
6790
+ and r2, r2, #239
6791
+ cmp r2, #0
6792
+ cmpne r3, #68
6793
+ popne {r4, r5, r6, r7, r8, r9, r10, pc}
6794
+.L1153:
6795
+ ldr r9, .L1167+8
65696796 movw r10, #65535
6570
-.L1149:
6571
- ldr r3, [r8, #44]
6797
+.L1155:
6798
+ ldr r3, [r8, #48]
65726799 ldrh r3, [r3, #10]
65736800 cmp r3, r4
6574
- bls .L1161
6575
- mov r3, r4, asl #1
6801
+ bhi .L1156
6802
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
6803
+.L1156:
6804
+ lsl r3, r4, #1
65766805 ldrh r3, [r9, r3]
65776806 cmp r3, r10
6578
- ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
6579
- mov r1, #255
6807
+ popne {r4, r5, r6, r7, r8, r9, r10, pc}
65806808 mov r2, #32768
6581
- ldr r0, [r5, #-1776]
6809
+ mov r1, #255
6810
+ ldr r0, [r5, #-1772]
65826811 bl ftl_memset
6583
- ldr r2, [r5, #-1776]
6812
+ ldr r3, [r5, #-1772]
65846813 add r1, r4, r7
6585
- add r4, r4, #1
65866814 mov r0, r6
6587
- mov r3, r2
6815
+ add r4, r4, #1
65886816 uxth r4, r4
6817
+ mov r2, r3
65896818 bl FlashProgPage
6590
- b .L1149
6591
-.L1161:
6592
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
6593
-.L1163:
6819
+ b .L1155
6820
+.L1168:
65946821 .align 2
6595
-.L1162:
6822
+.L1167:
65966823 .word .LANCHOR2
65976824 .word .LANCHOR0
6598
- .word .LANCHOR0+1104
6825
+ .word .LANCHOR0+1108
65996826 .fnend
66006827 .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData
66016828 .align 2
66026829 .global FlashReadSlc2KPages
6830
+ .syntax unified
6831
+ .arm
6832
+ .fpu softvfp
66036833 .type FlashReadSlc2KPages, %function
66046834 FlashReadSlc2KPages:
66056835 .fnstart
66066836 @ args = 0, pretend = 0, frame = 24
66076837 @ frame_needed = 0, uses_anonymous_args = 0
6608
- ldr r3, .L1215
6609
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
6838
+ ldr r3, .L1218
6839
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
66106840 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
6841
+ mov r4, r0
6842
+ ldr r10, .L1218+4
6843
+ mov r8, #0
66116844 .pad #36
66126845 sub sp, sp, #36
6613
- ldrb r3, [r3, #265] @ zero_extendqisi2
6614
- mov r4, r0
6615
- ldr r10, .L1215+4
6616
- mov r9, #0
6846
+ ldr r9, .L1218+8
6847
+ ldrb r3, [r3, #477] @ zero_extendqisi2
66176848 str r1, [sp, #16]
66186849 str r2, [sp, #20]
66196850 str r3, [sp, #12]
6620
-.L1165:
6851
+.L1170:
66216852 ldr r3, [sp, #16]
6622
- cmp r9, r3
6623
- beq .L1214
6853
+ cmp r8, r3
6854
+ bne .L1190
6855
+ mov r0, #0
6856
+ add sp, sp, #36
6857
+ @ sp needed
6858
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
6859
+.L1190:
66246860 ldr r3, [sp, #16]
6625
- mov r0, r4
6626
- ldr r1, [sp, #20]
66276861 add r2, sp, #28
6628
- rsb r3, r9, r3
6629
- ldr r8, .L1215+8
6862
+ ldr r1, [sp, #20]
6863
+ mov r0, r4
6864
+ sub r3, r3, r8
66306865 uxtb r3, r3
66316866 str r3, [sp]
66326867 add r3, sp, #24
66336868 bl LogAddr2PhyAddr
6634
- ldrb r3, [r8, #3152] @ zero_extendqisi2
6635
- ldr r5, [sp, #24]
6636
- cmp r5, r3
6637
- mvncs r3, #0
6638
- strcs r3, [r4]
6639
- bcs .L1167
6640
- add r5, r8, r5
6869
+ ldrb r2, [r10, #3156] @ zero_extendqisi2
6870
+ ldr r3, [sp, #24]
6871
+ cmp r2, r3
6872
+ mvnls r3, #0
6873
+ strls r3, [r4]
6874
+ bls .L1172
6875
+ add r3, r10, r3
66416876 mov r7, #0
6642
- ldrb r5, [r5, #3156] @ zero_extendqisi2
6643
- mov r0, r5
6877
+ ldrb r6, [r3, #3160] @ zero_extendqisi2
6878
+ mov r0, r6
66446879 bl NandcWaitFlashReady
6645
- mov r0, r5
6880
+ mov r0, r6
66466881 bl NandcFlashCs
6647
-.L1168:
6882
+.L1173:
66486883 ldr r1, [sp, #28]
6649
- mov r0, r5
6884
+ mov r0, r6
66506885 bl FlashReadCmd
6651
- mov r0, r5
6886
+ mov r0, r6
66526887 bl NandcWaitFlashReady
66536888 ldr r3, [r4, #12]
6654
- mov r0, r5
66556889 mov r1, #0
6656
- str r3, [sp]
66576890 ldr r2, [sp, #12]
6891
+ mov r0, r6
6892
+ str r3, [sp]
66586893 ldr r3, [r4, #8]
66596894 bl NandcXferData
6660
- ldr r3, .L1215+4
6661
- ldrb r3, [r3, #-1760] @ zero_extendqisi2
6895
+ ldrb r3, [r9, #-1756] @ zero_extendqisi2
6896
+ mov r5, r0
66626897 cmp r3, #0
6663
- mov r6, r0
6664
- beq .L1169
6665
- mov r0, r5
6898
+ beq .L1174
6899
+ mov r0, r6
66666900 bl flash_read_ecc
66676901 cmp r0, #5
6668
- movhi r6, #256
6669
-.L1169:
6902
+ movhi r5, #256
6903
+.L1174:
66706904 cmp r7, #9
6671
- cmnls r6, #1
6905
+ cmnls r5, #1
66726906 moveq r3, #1
66736907 movne r3, #0
66746908 addeq r7, r7, #1
6675
- beq .L1168
6676
-.L1170:
6909
+ beq .L1173
6910
+.L1175:
66776911 cmp r7, #0
66786912 mov r7, r3
6679
- movne r6, #256
6680
-.L1172:
6681
- ldr r3, [sp, #28]
6682
- mov r0, r5
6683
- ldr r1, [r8, #4]
6913
+ movne r5, #256
6914
+.L1177:
6915
+ ldr r3, [r10, #40]
6916
+ mov r0, r6
6917
+ ldr r1, [sp, #28]
66846918 add r1, r1, r3
66856919 bl FlashReadCmd
6686
- mov r0, r5
6920
+ mov r0, r6
66876921 bl NandcWaitFlashReady
66886922 ldr r3, [r4, #8]
6689
- ldr r2, [r4, #12]
6690
- mov r0, r5
6691
- cmp r3, #0
66926923 mov r1, #0
6924
+ ldr r2, [r4, #12]
6925
+ mov r0, r6
6926
+ cmp r3, #0
66936927 addne r3, r3, #2048
66946928 cmp r2, #0
66956929 addne r2, r2, #8
66966930 str r2, [sp]
66976931 ldr r2, [sp, #12]
66986932 bl NandcXferData
6699
- ldrb r2, [r10, #-1760] @ zero_extendqisi2
6700
- cmp r2, #0
6933
+ ldrb r2, [r9, #-1756] @ zero_extendqisi2
67016934 mov fp, r0
6702
- beq .L1175
6703
- mov r0, r5
6935
+ cmp r2, #0
6936
+ beq .L1180
6937
+ mov r0, r6
67046938 bl flash_read_ecc
67056939 cmp r0, #5
67066940 movhi fp, #256
6707
-.L1175:
6941
+.L1180:
67086942 cmp r7, #9
67096943 cmnls fp, #1
67106944 addeq r7, r7, #1
6711
- beq .L1172
6712
-.L1176:
6945
+ beq .L1177
6946
+.L1181:
67136947 cmp r7, #0
6714
- mov r0, r5
6948
+ mov r0, r6
67156949 movne fp, #256
67166950 bl NandcFlashDeCs
6717
- ldrb r2, [r10, #-2743] @ zero_extendqisi2
6718
- cmp fp, r6
6719
- movcs r3, fp
6720
- movcc r3, r6
6721
- add r2, r2, r2, asl #1
6722
- cmp r3, r2, asr #2
6723
- bls .L1178
6724
- cmn r3, #1
6725
- movne r3, #256
6726
-.L1178:
6727
- cmp r3, #256
6728
- cmnne r3, #1
6951
+ ldrb r3, [r9, #-2739] @ zero_extendqisi2
6952
+ cmp r5, fp
6953
+ movcc r5, fp
6954
+ add r3, r3, r3, lsl #1
6955
+ cmp r5, r3, asr #2
6956
+ bls .L1183
6957
+ cmn r5, #1
6958
+ movne r5, #256
6959
+.L1183:
6960
+ cmp r5, #256
6961
+ cmnne r5, #1
67296962 movne r3, #0
6730
- str r3, [r4]
6963
+ streq r5, [r4]
6964
+ strne r3, [r4]
67316965 ldr r3, [r4, #12]
67326966 cmp r3, #0
6733
- beq .L1181
6967
+ beq .L1186
67346968 ldr r2, [r3, #12]
67356969 cmn r2, #1
6736
- bne .L1181
6970
+ bne .L1186
67376971 ldr r2, [r3, #8]
67386972 cmn r2, #1
6739
- bne .L1181
6973
+ bne .L1186
67406974 ldr r3, [r3]
67416975 cmn r3, #1
67426976 strne r2, [r4]
6743
-.L1181:
6977
+.L1186:
67446978 ldr r3, [r4]
67456979 cmn r3, #1
6746
- bne .L1167
6980
+ bne .L1172
67476981 ldr r1, [r4, #4]
6748
- ldr r0, .L1215+12
6749
- ldrb r2, [r10, #-2743] @ zero_extendqisi2
6982
+ ldrb r2, [r9, #-2739] @ zero_extendqisi2
6983
+ ldr r0, .L1218+12
67506984 bl printk
67516985 ldr r1, [r4, #8]
67526986 cmp r1, #0
6753
- beq .L1183
6754
- ldr r0, .L1215+16
6755
- mov r2, #4
6987
+ beq .L1188
67566988 mov r3, #8
6989
+ mov r2, #4
6990
+ ldr r0, .L1218+16
67576991 bl rknand_print_hex
6758
-.L1183:
6992
+.L1188:
67596993 ldr r1, [r4, #12]
67606994 cmp r1, #0
6761
- beq .L1167
6762
- mov r2, #4
6763
- ldr r0, .L1215+20
6764
- mov r3, r2
6995
+ beq .L1172
6996
+ mov r3, #4
6997
+ ldr r0, .L1218+20
6998
+ mov r2, r3
67656999 bl rknand_print_hex
6766
-.L1167:
6767
- add r9, r9, #1
7000
+.L1172:
7001
+ add r8, r8, #1
67687002 add r4, r4, #36
6769
- b .L1165
6770
-.L1214:
6771
- mov r0, #0
6772
- add sp, sp, #36
6773
- @ sp needed
6774
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
6775
-.L1216:
7003
+ b .L1170
7004
+.L1219:
67767005 .align 2
6777
-.L1215:
7006
+.L1218:
67787007 .word .LANCHOR1
6779
- .word .LANCHOR2
67807008 .word .LANCHOR0
7009
+ .word .LANCHOR2
67817010 .word .LC16
67827011 .word .LC17
67837012 .word .LC18
....@@ -6785,1281 +7014,1394 @@
67857014 .size FlashReadSlc2KPages, .-FlashReadSlc2KPages
67867015 .align 2
67877016 .global FlashReadPages
7017
+ .syntax unified
7018
+ .arm
7019
+ .fpu softvfp
67887020 .type FlashReadPages, %function
67897021 FlashReadPages:
67907022 .fnstart
67917023 @ args = 0, pretend = 0, frame = 40
67927024 @ frame_needed = 0, uses_anonymous_args = 0
6793
- ldr r3, .L1292
6794
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7025
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
67957026 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
67967027 .pad #52
67977028 sub sp, sp, #52
6798
- ldr r9, .L1292+4
6799
- ldrb r3, [r3, #265] @ zero_extendqisi2
6800
- str r1, [sp, #20]
6801
- ldrb r8, [r9] @ zero_extendqisi2
6802
- str r3, [sp, #16]
6803
- ldrb r3, [r9, #8] @ zero_extendqisi2
6804
- cmp r8, #0
6805
- str r2, [sp, #24]
6806
- str r3, [sp, #28]
6807
- beq .L1254
7029
+ ldr r9, .L1291
7030
+ str r1, [sp, #24]
7031
+ ldrb r10, [r9, #36] @ zero_extendqisi2
7032
+ str r2, [sp, #28]
7033
+ cmp r10, #0
7034
+ bne .L1221
7035
+ ldr r3, .L1291+4
7036
+ mov fp, r0
7037
+ ldr r6, .L1291+8
7038
+ str r10, [sp, #8]
7039
+ ldrb r3, [r3, #477] @ zero_extendqisi2
7040
+ str r3, [sp, #20]
7041
+ ldrb r3, [r9, #44] @ zero_extendqisi2
7042
+ str r3, [sp, #36]
7043
+.L1222:
7044
+ ldr r3, [sp, #8]
7045
+ ldr r2, [sp, #24]
7046
+ cmp r3, r2
7047
+ bcc .L1255
7048
+ mov r0, #0
7049
+ b .L1220
7050
+.L1221:
68087051 bl FlashReadSlc2KPages
6809
- b .L1287
6810
-.L1254:
6811
- ldr r7, .L1292+8
6812
- mov r10, r0
6813
- mov fp, r8
6814
-.L1218:
6815
- ldr r3, [sp, #20]
6816
- cmp fp, r3
6817
- bcs .L1290
7052
+.L1220:
7053
+ add sp, sp, #52
7054
+ @ sp needed
7055
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7056
+.L1255:
7057
+ ldr r2, [sp, #8]
68187058 mov r3, #36
6819
- add r2, sp, #44
6820
- mul r3, r3, fp
6821
- ldr r1, [sp, #24]
6822
- add r6, r10, r3
6823
- str r3, [sp, #8]
6824
- mov r0, r6
6825
- ldr r3, [r6, #4]
7059
+ ldr r1, [sp, #28]
7060
+ mul r3, r3, r2
7061
+ add r8, fp, r3
68267062 str r3, [sp, #12]
6827
- ldr r3, [sp, #20]
6828
- rsb r3, fp, r3
7063
+ ldr r3, [sp, #24]
7064
+ mov r0, r8
7065
+ ldr r7, [r8, #4]
7066
+ sub r3, r3, r2
7067
+ add r2, sp, #44
68297068 uxtb r3, r3
68307069 str r3, [sp]
68317070 add r3, sp, #40
68327071 bl LogAddr2PhyAddr
6833
- ldrb r2, [r9, #3152] @ zero_extendqisi2
6834
- ldr r3, [sp, #40]
7072
+ ldrb r2, [r9, #3156] @ zero_extendqisi2
68357073 mov r5, r0
6836
- cmp r3, r2
6837
- ldrcs r2, [sp, #8]
6838
- mvncs r3, #0
6839
- strcs r3, [r10, r2]
6840
- bcs .L1221
7074
+ ldr r3, [sp, #40]
7075
+ cmp r2, r3
7076
+ ldrls r2, [sp, #12]
7077
+ mvnls r3, #0
7078
+ strls r3, [fp, r2]
7079
+ bls .L1225
68417080 add r3, r9, r3
6842
- ldrb r4, [r3, #3156] @ zero_extendqisi2
6843
- ldrb r3, [r7, #-1759] @ zero_extendqisi2
6844
- cmp r3, #0
7081
+ ldrb r4, [r3, #3160] @ zero_extendqisi2
7082
+ ldrb r3, [r6, #-1755] @ zero_extendqisi2
68457083 mov r0, r4
7084
+ cmp r3, #0
68467085 moveq r5, #0
68477086 bl NandcWaitFlashReady
6848
- ldr r3, .L1292+4
6849
- ldr r3, [r3, #44]
7087
+ ldr r3, [r9, #48]
68507088 ldrb r2, [r3, #19] @ zero_extendqisi2
68517089 sub r3, r2, #1
68527090 cmp r3, #7
6853
- bhi .L1223
7091
+ bhi .L1227
68547092 sub r2, r2, #7
6855
- add r1, r7, r4
7093
+ add r1, r6, r4
68567094 cmp r2, #1
6857
- ldr r2, .L1292+8
6858
- ldrb r3, [r1, #-2720] @ zero_extendqisi2
6859
- add r2, r2, r4
6860
- ldrlsb r3, [r1, #-2712] @ zero_extendqisi2
6861
- ldrb r2, [r2, #-1880] @ zero_extendqisi2
7095
+ add r2, r6, r4
7096
+ ldrb r3, [r1, #-2716] @ zero_extendqisi2
7097
+ ldrb r2, [r2, #-1876] @ zero_extendqisi2
7098
+ ldrbls r3, [r1, #-2708] @ zero_extendqisi2
68627099 cmp r2, r3
6863
- beq .L1223
7100
+ beq .L1227
7101
+ ldr r2, .L1291+12
68647102 mov r0, r4
6865
- ldrb r1, [r7, #-2731] @ zero_extendqisi2
6866
- ldr r2, .L1292+12
7103
+ ldrb r1, [r6, #-2727] @ zero_extendqisi2
68677104 bl HynixSetRRPara
6868
-.L1223:
7105
+.L1227:
68697106 mov r0, r4
7107
+ lsr r7, r7, #31
68707108 bl NandcFlashCs
7109
+ ldr r3, [sp, #28]
68717110 mov r0, r4
6872
- ldr r3, [sp, #12]
6873
- ldr r2, [sp, #24]
6874
- mov r3, r3, lsr #31
6875
- cmp r2, #1
6876
- orreq r3, r3, #1
6877
- str r3, [sp, #12]
7111
+ cmp r3, #1
7112
+ orreq r7, r7, #1
7113
+ cmp r7, #0
7114
+ str r7, [sp, #16]
7115
+ beq .L1229
7116
+ ldrb r3, [r6, #-2740] @ zero_extendqisi2
68787117 cmp r3, #0
6879
- beq .L1225
6880
- ldrb r3, [r7, #-2744] @ zero_extendqisi2
6881
- cmp r3, #0
6882
- beq .L1225
7118
+ beq .L1229
68837119 bl flash_enter_slc_mode
6884
- b .L1226
6885
-.L1225:
6886
- bl flash_exit_slc_mode
6887
-.L1226:
7120
+.L1235:
68887121 ldr r1, [sp, #44]
68897122 cmn r1, #1
68907123 cmpeq r4, #255
68917124 moveq r3, #0
68927125 movne r3, #1
68937126 moveq r5, r3
6894
- beq .L1228
7127
+ beq .L1231
68957128 cmp r5, #0
6896
- beq .L1229
6897
- ldr r2, [r9, #4]
7129
+ beq .L1232
7130
+ ldr r2, [r9, #40]
68987131 mov r0, r4
68997132 add r2, r1, r2
69007133 bl FlashReadDpCmd
6901
- b .L1230
6902
-.L1229:
6903
- mov r0, r4
6904
- bl FlashReadCmd
6905
-.L1230:
7134
+.L1233:
69067135 mov r0, r4
69077136 bl NandcWaitFlashReady
69087137 cmp r5, #0
6909
- beq .L1228
6910
- mov r0, r4
7138
+ beq .L1231
69117139 ldr r1, [sp, #44]
6912
- bl FlashReadDpDataOutCmd
6913
-.L1228:
6914
- ldr r3, [r6, #12]
69157140 mov r0, r4
6916
- ldr r2, [sp, #16]
7141
+ bl FlashReadDpDataOutCmd
7142
+.L1231:
7143
+ ldr r3, [r8, #12]
69177144 mov r1, #0
7145
+ ldr r2, [sp, #20]
7146
+ mov r0, r4
69187147 str r3, [sp]
6919
- ldr r3, [r6, #8]
7148
+ ldr r3, [r8, #8]
69207149 bl NandcXferData
6921
- ldrb r2, [r9, #8] @ zero_extendqisi2
6922
- adds r2, r2, #0
7150
+ ldrb r3, [r9, #44] @ zero_extendqisi2
7151
+ mov r7, r0
7152
+ adds r2, r3, #0
69237153 movne r2, #1
69247154 cmn r0, #1
6925
- mov ip, r0
69267155 movne r2, #0
69277156 cmp r2, #0
6928
- movne r3, #0
6929
- strneb r3, [r9, #8]
6930
- movne r5, r3
6931
- bne .L1226
6932
-.L1231:
6933
- cmp r5, #0
6934
- beq .L1232
6935
- ldr r3, .L1292+4
6936
- str r0, [sp, #32]
6937
- mov r0, r4
6938
- str r2, [sp, #36]
6939
- ldr r1, [r3, #4]
6940
- ldr r3, [sp, #44]
6941
- add r1, r1, r3
6942
- bl FlashReadDpDataOutCmd
6943
- mov r0, r4
6944
- ldr r3, [sp, #8]
6945
- ldr r2, [sp, #36]
6946
- add r3, r3, #36
6947
- add r3, r10, r3
6948
- ldr r1, [r3, #12]
6949
- str r1, [sp]
6950
- mov r1, r2
6951
- ldr r3, [r3, #8]
6952
- ldr r2, [sp, #16]
6953
- bl NandcXferData
6954
- cmn r0, #1
6955
- ldr ip, [sp, #32]
6956
- mov r8, r0
6957
- moveq r5, #0
7157
+ str r2, [sp, #32]
7158
+ beq .L1234
7159
+ mov r3, #0
7160
+ mov r5, #0
7161
+ strb r3, [r9, #44]
7162
+ b .L1235
7163
+.L1229:
7164
+ bl flash_exit_slc_mode
7165
+ b .L1235
69587166 .L1232:
69597167 mov r0, r4
6960
- str ip, [sp, #32]
6961
- bl NandcFlashDeCs
6962
- ldr ip, [sp, #32]
6963
- ldrb r3, [sp, #28] @ zero_extendqisi2
6964
- cmn ip, #1
6965
- strb r3, [r9, #8]
6966
- bne .L1239
6967
- ldrb r3, [r7, #-1860] @ zero_extendqisi2
6968
- cmp r3, #0
6969
- bne .L1234
6970
-.L1238:
6971
- ldr r5, [r7, #-1796]
6972
- cmp r5, #0
6973
- bne .L1235
6974
- b .L1291
7168
+ bl FlashReadCmd
7169
+ b .L1233
69757170 .L1234:
6976
- ldr r3, [r7, #-2808]
7171
+ cmp r5, #0
7172
+ beq .L1236
7173
+ ldr r3, [r9, #40]
7174
+ mov r0, r4
7175
+ ldr r1, [sp, #44]
7176
+ add r1, r1, r3
7177
+ bl FlashReadDpDataOutCmd
7178
+ ldr r3, [sp, #12]
7179
+ mov r0, r4
7180
+ ldr r1, [sp, #32]
7181
+ add r3, r3, #36
7182
+ add r3, fp, r3
7183
+ ldr r2, [r3, #12]
7184
+ str r2, [sp]
7185
+ ldr r2, [sp, #20]
7186
+ ldr r3, [r3, #8]
7187
+ bl NandcXferData
7188
+ cmn r0, #1
7189
+ mov r10, r0
7190
+ moveq r5, #0
7191
+.L1236:
7192
+ mov r0, r4
7193
+ bl NandcFlashDeCs
7194
+ ldrb r3, [sp, #36] @ zero_extendqisi2
7195
+ cmn r7, #1
7196
+ strb r3, [r9, #44]
7197
+ bne .L1237
7198
+ ldrb r3, [r6, #-1856] @ zero_extendqisi2
7199
+ cmp r3, #0
7200
+ bne .L1238
7201
+.L1242:
7202
+ ldr r5, [r6, #-1792]
7203
+ cmp r5, #0
7204
+ bne .L1239
7205
+ ldr r3, [r8, #12]
7206
+ mov r0, r4
7207
+ ldr r2, [r8, #8]
7208
+ ldr r1, [sp, #44]
7209
+ bl FlashReadRawPage
7210
+ mov r7, r0
7211
+.L1243:
7212
+ cmp r7, #256
7213
+ cmnne r7, #1
7214
+ ldreq r3, [sp, #12]
7215
+ movne r3, #0
7216
+ ldrne r2, [sp, #12]
7217
+ streq r7, [fp, r3]
7218
+ strne r3, [fp, r2]
7219
+ ldr r3, [sp, #12]
7220
+ ldr r3, [fp, r3]
7221
+ cmn r3, #1
7222
+ bne .L1250
7223
+ ldr r1, [r8, #4]
7224
+ ldrb r2, [r6, #-2739] @ zero_extendqisi2
7225
+ ldr r0, .L1291+16
7226
+ bl printk
7227
+ ldr r1, [r8, #12]
7228
+ cmp r1, #0
7229
+ beq .L1250
7230
+ mov r3, #4
7231
+ ldr r0, .L1291+20
7232
+ mov r2, r3
7233
+ bl rknand_print_hex
7234
+.L1250:
7235
+ cmp r5, #0
7236
+ beq .L1252
7237
+ ldrb r3, [r6, #-2739] @ zero_extendqisi2
7238
+ add r3, r3, r3, lsl #1
7239
+ cmp r10, r3, asr #2
7240
+ bls .L1253
7241
+ ldr r3, [r6, #-1792]
7242
+ cmp r3, #0
7243
+ moveq r10, #256
7244
+.L1253:
7245
+ ldr r3, [sp, #12]
7246
+ cmp r10, #256
7247
+ cmnne r10, #1
7248
+ movne r2, #0
7249
+ add r3, r3, #36
7250
+ streq r10, [fp, r3]
7251
+ strne r2, [fp, r3]
7252
+.L1252:
7253
+ ldr r3, [sp, #8]
7254
+ add r3, r3, r5
7255
+ str r3, [sp, #8]
7256
+ ldr r3, [sp, #16]
7257
+ cmp r3, #0
7258
+ beq .L1225
7259
+ ldrb r3, [r6, #-2740] @ zero_extendqisi2
7260
+ cmp r3, #0
7261
+ beq .L1225
7262
+ mov r0, r4
7263
+ bl flash_exit_slc_mode
7264
+.L1225:
7265
+ ldr r3, [sp, #8]
7266
+ add r3, r3, #1
7267
+ str r3, [sp, #8]
7268
+ b .L1222
7269
+.L1238:
7270
+ ldr r3, [r6, #-2804]
69777271 mov r0, r4
69787272 ldr r1, [sp, #44]
69797273 ldr r5, [r3, #304]
69807274 mov r3, #1
69817275 str r3, [sp]
6982
- ldr r2, [r6, #8]
6983
- ldr r3, [r6, #12]
7276
+ ldr r3, [r8, #12]
7277
+ ldr r2, [r8, #8]
69847278 bl FlashDdrTunningRead
69857279 cmn r0, #1
6986
- mov ip, r0
6987
- beq .L1237
6988
- ldrb r3, [r7, #-2743] @ zero_extendqisi2
7280
+ mov r7, r0
7281
+ beq .L1241
7282
+ ldrb r3, [r6, #-2739] @ zero_extendqisi2
69897283 cmp r0, r3, lsr #1
6990
- bls .L1257
6991
-.L1237:
7284
+ bls .L1258
7285
+.L1241:
69927286 ubfx r0, r5, #8, #8
6993
- str ip, [sp, #32]
69947287 bl NandcSetDdrPara
6995
- ldr ip, [sp, #32]
6996
- cmn ip, #1
6997
- beq .L1238
6998
- b .L1257
6999
-.L1235:
7288
+ cmn r7, #1
7289
+ beq .L1242
7290
+.L1258:
7291
+ mov r5, #0
7292
+.L1237:
7293
+ ldrb r3, [r6, #-2739] @ zero_extendqisi2
7294
+ add r3, r3, r3, lsl #1
7295
+ cmp r7, r3, asr #2
7296
+ bls .L1243
7297
+ ldr r3, [r6, #-1792]
7298
+ cmp r3, #0
7299
+ moveq r7, #256
7300
+ b .L1243
7301
+.L1239:
7302
+ ldr r3, [r8, #12]
70007303 mov r0, r4
7304
+ ldr r2, [r8, #8]
70017305 ldr r1, [sp, #44]
7002
- ldr r2, [r6, #8]
7003
- ldr r3, [r6, #12]
70047306 blx r5
70057307 cmn r0, #1
7006
- mov ip, r0
7007
- bne .L1259
7008
- ldr r3, [r9, #44]
7308
+ mov r7, r0
7309
+ bne .L1260
7310
+ ldr r3, [r9, #48]
70097311 ldrb r3, [r3, #19] @ zero_extendqisi2
70107312 sub r3, r3, #1
70117313 cmp r3, #7
7012
- bhi .L1241
7013
- mov r0, r4
7014
- ldrb r1, [r7, #-2731] @ zero_extendqisi2
7015
- ldr r2, .L1292+12
7314
+ bhi .L1244
70167315 mov r3, #0
7316
+ ldr r2, .L1291+12
7317
+ ldrb r1, [r6, #-2727] @ zero_extendqisi2
7318
+ mov r0, r4
70177319 bl HynixSetRRPara
7018
-.L1241:
7019
- ldr r1, [sp, #44]
7320
+.L1244:
7321
+ ldr r3, [r8, #12]
70207322 mov r0, r4
7021
- ldr r2, [r6, #8]
7022
- ldr r3, [r6, #12]
7323
+ ldr r2, [r8, #8]
7324
+ ldr r1, [sp, #44]
70237325 bl FlashReadRawPage
7024
- ldr r1, [r6, #4]
7025
- ldrb r2, [r7, #-2743] @ zero_extendqisi2
7026
- mov ip, r0
7027
- ldr r0, .L1292+16
7028
- mov r3, ip
7029
- str ip, [sp, #32]
7326
+ ldrb r2, [r6, #-2739] @ zero_extendqisi2
7327
+ mov r7, r0
7328
+ mov r3, r0
7329
+ ldr r1, [r8, #4]
7330
+ ldr r0, .L1291+24
70307331 bl printk
7031
- ldr ip, [sp, #32]
7032
- cmn ip, #1
7033
- bne .L1259
7034
- ldrb r5, [r7, #-2744] @ zero_extendqisi2
7332
+ cmn r7, #1
7333
+ bne .L1260
7334
+ ldrb r5, [r6, #-2740] @ zero_extendqisi2
70357335 cmp r5, #0
7036
- beq .L1240
7037
- ldr r3, [sp, #12]
7336
+ beq .L1243
7337
+ ldr r3, [sp, #16]
70387338 mov r0, r4
70397339 cmp r3, #0
7040
- beq .L1242
7340
+ beq .L1245
70417341 bl flash_enter_slc_mode
7342
+.L1246:
7343
+ ldr r5, [r6, #-1792]
7344
+ mov r0, r4
7345
+ ldr r3, [r8, #12]
7346
+ ldr r2, [r8, #8]
7347
+ ldr r1, [sp, #44]
7348
+ blx r5
7349
+ mov r7, r0
7350
+.L1260:
7351
+ mov r5, #0
70427352 b .L1243
7043
-.L1242:
7353
+.L1245:
70447354 bl flash_exit_slc_mode
7045
-.L1243:
7046
- ldr r3, .L1292+8
7047
- mov r0, r4
7048
- ldr r1, [sp, #44]
7049
- ldr r2, [r6, #8]
7050
- ldr ip, [r3, #-1796]
7051
- ldr r3, [r6, #12]
7052
- blx ip
7053
- mov ip, r0
7054
- b .L1259
7055
-.L1291:
7056
- mov r0, r4
7057
- ldr r1, [sp, #44]
7058
- ldr r2, [r6, #8]
7059
- ldr r3, [r6, #12]
7060
- bl FlashReadRawPage
7061
- mov ip, r0
7062
- b .L1240
7063
-.L1257:
7064
- mov r5, #0
7065
-.L1239:
7066
- ldrb r3, [r7, #-2743] @ zero_extendqisi2
7067
- add r3, r3, r3, asl #1
7068
- cmp ip, r3, asr #2
7069
- bls .L1240
7070
- ldr r3, [r7, #-1796]
7071
- cmp r3, #0
7072
- moveq ip, #256
7073
- b .L1240
7074
-.L1259:
7075
- mov r5, #0
7076
-.L1240:
7077
- cmp ip, #256
7078
- cmnne ip, #1
7079
- ldreq r3, [sp, #8]
7080
- movne r3, #0
7081
- ldrne r2, [sp, #8]
7082
- streq ip, [r10, r3]
7083
- strne r3, [r10, r2]
7084
- ldr r3, [sp, #8]
7085
- ldr r3, [r10, r3]
7086
- cmn r3, #1
7087
- bne .L1247
7088
- ldr r1, [r6, #4]
7089
- ldr r0, .L1292+20
7090
- ldrb r2, [r7, #-2743] @ zero_extendqisi2
7091
- bl printk
7092
- ldr r1, [r6, #12]
7093
- cmp r1, #0
7094
- beq .L1247
7095
- mov r2, #4
7096
- ldr r0, .L1292+24
7097
- mov r3, r2
7098
- bl rknand_print_hex
7099
-.L1247:
7100
- cmp r5, #0
7101
- beq .L1249
7102
- ldrb r3, [r7, #-2743] @ zero_extendqisi2
7103
- add r3, r3, r3, asl #1
7104
- cmp r8, r3, asr #2
7105
- bls .L1250
7106
- ldr r3, [r7, #-1796]
7107
- cmp r3, #0
7108
- moveq r8, #256
7109
-.L1250:
7110
- ldr r3, [sp, #8]
7111
- cmp r8, #256
7112
- cmnne r8, #1
7113
- add r3, r3, #36
7114
- movne r2, #0
7115
- streq r8, [r10, r3]
7116
- strne r2, [r10, r3]
7117
-.L1249:
7118
- ldr r3, [sp, #12]
7119
- add fp, fp, r5
7120
- cmp r3, #0
7121
- beq .L1221
7122
- ldrb r3, [r7, #-2744] @ zero_extendqisi2
7123
- cmp r3, #0
7124
- beq .L1221
7125
- mov r0, r4
7126
- bl flash_exit_slc_mode
7127
-.L1221:
7128
- add fp, fp, #1
7129
- b .L1218
7130
-.L1290:
7131
- mov r0, #0
7132
-.L1287:
7133
- add sp, sp, #52
7134
- @ sp needed
7135
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7136
-.L1293:
7137
- .align 2
7355
+ b .L1246
71387356 .L1292:
7139
- .word .LANCHOR1
7357
+ .align 2
7358
+.L1291:
71407359 .word .LANCHOR0
7360
+ .word .LANCHOR1
71417361 .word .LANCHOR2
7142
- .word .LANCHOR2-2728
7143
- .word .LC19
7362
+ .word .LANCHOR2-2724
71447363 .word .LC16
71457364 .word .LC18
7365
+ .word .LC19
71467366 .fnend
71477367 .size FlashReadPages, .-FlashReadPages
71487368 .align 2
71497369 .global FlashLoadFactorBbt
7370
+ .syntax unified
7371
+ .arm
7372
+ .fpu softvfp
71507373 .type FlashLoadFactorBbt, %function
71517374 FlashLoadFactorBbt:
71527375 .fnstart
7153
- @ args = 0, pretend = 0, frame = 48
7376
+ @ args = 0, pretend = 0, frame = 56
71547377 @ frame_needed = 0, uses_anonymous_args = 0
7155
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7378
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
71567379 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7157
- mov r1, #0
7158
- ldr r5, .L1307
7159
- .pad #52
7160
- sub sp, sp, #52
71617380 mov r2, #16
7162
- ldr r9, .L1307+4
7163
- add r0, r5, #1016
7164
- ldr fp, .L1307+8
7165
- ldrh r7, [r5, #12]
7166
- mvn r10, #0
7167
- ldrh r4, [r5, #14]
7168
- bl ftl_memset
7169
- ldr r3, [r9, #-1772]
7381
+ ldr r8, .L1305
7382
+ .pad #60
7383
+ sub sp, sp, #60
7384
+ mov r1, #0
71707385 mov r5, #0
7171
- mov r8, r5
7172
- smulbb r7, r7, r4
7173
- uxth r6, r7
7174
- str r5, [sp, #20]
7175
- str r3, [sp, #24]
7176
-.L1295:
7177
- ldrb r3, [fp, #3152] @ zero_extendqisi2
7386
+ ldr fp, .L1305+4
7387
+ mov r9, r5
7388
+ sub r3, r8, #2768
7389
+ sub r4, r8, #1744
7390
+ ldrh r6, [r3, #14]
7391
+ sub r0, r4, #10
7392
+ ldrh r3, [r3, #12]
7393
+ mvn r10, #0
7394
+ smulbb r6, r6, r3
7395
+ bl ftl_memset
7396
+ uxth r6, r6
7397
+ ldr r3, [r8, #-1768]
7398
+ str r5, [sp, #28]
7399
+ str r4, [sp, #8]
7400
+ str r3, [sp, #32]
7401
+.L1294:
7402
+ ldrb r3, [fp, #3156] @ zero_extendqisi2
71787403 uxtb r7, r5
71797404 cmp r3, r7
7180
- bls .L1306
7181
- mul ip, r6, r7
7405
+ bhi .L1300
7406
+ mov r0, r10
7407
+ add sp, sp, #60
7408
+ @ sp needed
7409
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7410
+.L1300:
71827411 sub r4, r6, #1
7183
- sub r3, r6, #12
7412
+ mul r3, r7, r6
71847413 uxth r4, r4
7185
-.L1296:
7186
- cmp r4, r3
7187
- ble .L1298
7188
- add r2, ip, r4
7189
- mov r1, #1
7190
- add r0, sp, #12
7191
- str r3, [sp, #4]
7192
- mov r2, r2, asl #10
7193
- str r2, [sp, #16]
7194
- mov r2, r1
7195
- str ip, [sp]
7414
+ sub r2, r6, #12
7415
+ str r2, [sp, #4]
7416
+.L1295:
7417
+ ldr r2, [sp, #4]
7418
+ cmp r4, r2
7419
+ ble .L1297
7420
+ add r2, r4, r3
7421
+ add r0, sp, #20
7422
+ lsl r2, r2, #10
7423
+ str r3, [sp, #12]
7424
+ str r2, [sp, #24]
7425
+ mov r2, #1
7426
+ mov r1, r2
71967427 bl FlashReadPages
7197
- ldr r2, [sp, #12]
7198
- ldr ip, [sp]
7428
+ ldr r2, [sp, #20]
7429
+ ldr r3, [sp, #12]
71997430 cmn r2, #1
7200
- ldr r3, [sp, #4]
7201
- beq .L1297
7202
- ldr r2, [r9, #-1772]
7431
+ beq .L1296
7432
+ ldr r2, [r8, #-1768]
72037433 ldrh r1, [r2]
72047434 movw r2, #61664
72057435 cmp r1, r2
7206
- bne .L1297
7436
+ bne .L1296
72077437 mov r1, r7
7208
- ldr r0, .L1307+12
72097438 mov r2, r4
7210
- mov r7, r7, asl #1
7439
+ ldr r0, .L1305+8
7440
+ add r9, r9, #1
72117441 bl printk
7212
- ldr r3, .L1307+16
7213
- add r8, r8, #1
7214
- strh r4, [r3, r7] @ movhi
7215
- uxth r8, r8
7216
- b .L1298
7442
+ ldr r3, [sp, #8]
7443
+ uxth r9, r9
7444
+ add r7, r3, r7, lsl #1
7445
+ strh r4, [r7, #-10] @ movhi
72177446 .L1297:
7447
+ ldr r3, .L1305+4
7448
+ add r5, r5, #1
7449
+ ldrb r3, [r3, #3156] @ zero_extendqisi2
7450
+ cmp r3, r9
7451
+ moveq r10, #0
7452
+ b .L1294
7453
+.L1296:
72187454 sub r4, r4, #1
72197455 uxth r4, r4
7220
- b .L1296
7221
-.L1298:
7222
- ldr r3, .L1307+8
7223
- add r5, r5, #1
7224
- ldrb r3, [r3, #3152] @ zero_extendqisi2
7225
- cmp r3, r8
7226
- moveq r10, #0
72277456 b .L1295
72287457 .L1306:
7229
- mov r0, r10
7230
- add sp, sp, #52
7231
- @ sp needed
7232
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7233
-.L1308:
72347458 .align 2
7235
-.L1307:
7236
- .word .LANCHOR2-2772
7459
+.L1305:
72377460 .word .LANCHOR2
72387461 .word .LANCHOR0
72397462 .word .LC20
7240
- .word .LANCHOR2-1756
72417463 .fnend
72427464 .size FlashLoadFactorBbt, .-FlashLoadFactorBbt
72437465 .align 2
72447466 .global FlashReadFacBbtData
7467
+ .syntax unified
7468
+ .arm
7469
+ .fpu softvfp
72457470 .type FlashReadFacBbtData, %function
72467471 FlashReadFacBbtData:
72477472 .fnstart
72487473 @ args = 0, pretend = 0, frame = 40
72497474 @ frame_needed = 0, uses_anonymous_args = 0
7250
- ldr r3, .L1324
7251
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
7475
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
72527476 .save {r4, r5, r6, r7, r8, r9, r10, lr}
72537477 mov r8, r2
7254
- ldrh r4, [r3, #14]
7478
+ ldr r5, .L1320
72557479 .pad #40
72567480 sub sp, sp, #40
7257
- ldrh r2, [r3, #12]
7258
- mov r5, r0
7259
- ldr r9, .L1324+4
7260
- mov r7, r1
7261
- smulbb r4, r2, r4
7262
- ldr r2, [r9, #-1868]
7481
+ mov r6, r0
7482
+ mov r9, r1
7483
+ sub r2, r5, #2768
7484
+ ldrh r3, [r2, #14]
7485
+ ldrh r2, [r2, #12]
7486
+ smulbb r3, r3, r2
7487
+ ldr r2, [r5, #-1864]
7488
+ uxth r3, r3
72637489 str r2, [sp, #12]
7264
- ldr r2, [r9, #-1772]
7265
- uxth r3, r4
7266
- sub r6, r3, #1
7490
+ ldr r2, [r5, #-1768]
7491
+ sub r7, r3, #1
7492
+ mul r10, r1, r3
7493
+ uxth r7, r7
72677494 sub r4, r3, #16
7268
- mul r10, r3, r1
7269
- uxth r6, r6
72707495 str r2, [sp, #16]
7271
-.L1310:
7272
- cmp r6, r4
7273
- ble .L1323
7274
- mov r1, #1
7275
- add r3, r6, r10
7496
+.L1308:
7497
+ cmp r7, r4
7498
+ mvnle r0, #0
7499
+ ble .L1307
7500
+.L1314:
7501
+ add r3, r7, r10
7502
+ mov r2, #1
7503
+ lsl r3, r3, #10
7504
+ mov r1, r2
72767505 add r0, sp, #4
7277
- mov r2, r1
7278
- mov r3, r3, asl #10
72797506 str r3, [sp, #8]
72807507 bl FlashReadPages
72817508 ldr r3, [sp, #4]
72827509 cmn r3, #1
7283
- beq .L1311
7284
- ldr r3, [r9, #-1772]
7510
+ beq .L1309
7511
+ ldr r3, [r5, #-1768]
72857512 ldrh r2, [r3]
72867513 movw r3, #61664
72877514 cmp r2, r3
7288
- bne .L1311
7289
- cmp r5, #0
7290
- moveq r0, r5
7291
- beq .L1312
7292
- cmp r7, #0
7293
- ldreq ip, .L1324+4
7515
+ bne .L1309
7516
+ cmp r6, #0
7517
+ moveq r0, r6
7518
+ beq .L1307
7519
+ cmp r9, #0
7520
+ moveq r1, r9
72947521 moveq lr, #1
7295
- beq .L1313
7296
-.L1315:
7297
- ldr r1, [r9, #-1868]
7522
+ beq .L1312
7523
+.L1311:
72987524 mov r2, r8
7299
- mov r0, r5
7525
+ ldr r1, [r5, #-1864]
7526
+ mov r0, r6
73007527 bl ftl_memcpy
7301
- mov r2, #4
7302
- ldr r0, .L1324+8
7303
- mov r1, r5
7304
- mov r3, r2
7528
+ mov r3, #4
7529
+ ldr r0, .L1320+4
7530
+ mov r2, r3
7531
+ mov r1, r6
73057532 bl rknand_print_hex
73067533 mov r0, #0
7307
- b .L1312
7308
-.L1313:
7309
- ldr r3, [r9, #-1784]
7310
- uxth r4, r7
7311
- add r7, r7, #1
7312
- cmp r4, r3
7313
- bcs .L1315
7314
- ldr r1, [ip, #-1868]
7315
- mov r0, r4, lsr #5
7316
- and r3, r4, #31
7317
- ldr r2, [r1, r0, asl #2]
7318
- orr r3, r2, lr, asl r3
7319
- str r3, [r1, r0, asl #2]
7320
- b .L1313
7321
-.L1311:
7322
- sub r6, r6, #1
7323
- uxth r6, r6
7324
- b .L1310
7325
-.L1323:
7326
- mvn r0, #0
7327
-.L1312:
7534
+.L1307:
73287535 add sp, sp, #40
73297536 @ sp needed
7330
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
7331
-.L1325:
7537
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
7538
+.L1313:
7539
+ ldr r0, [r5, #-1864]
7540
+ lsr ip, r3, #5
7541
+ and r3, r3, #31
7542
+ ldr r2, [r0, ip, lsl #2]
7543
+ orr r3, r2, lr, lsl r3
7544
+ str r3, [r0, ip, lsl #2]
7545
+.L1312:
7546
+ ldr r0, [r5, #-1780]
7547
+ uxth r3, r1
7548
+ add r1, r1, #1
7549
+ cmp r3, r0
7550
+ bcc .L1313
7551
+ b .L1311
7552
+.L1309:
7553
+ sub r7, r7, #1
7554
+ uxth r7, r7
7555
+ b .L1308
7556
+.L1321:
73327557 .align 2
7333
-.L1324:
7334
- .word .LANCHOR2-2772
7558
+.L1320:
73357559 .word .LANCHOR2
73367560 .word .LC21
73377561 .fnend
73387562 .size FlashReadFacBbtData, .-FlashReadFacBbtData
73397563 .align 2
73407564 .global FlashGetBadBlockList
7565
+ .syntax unified
7566
+ .arm
7567
+ .fpu softvfp
73417568 .type FlashGetBadBlockList, %function
73427569 FlashGetBadBlockList:
73437570 .fnstart
73447571 @ args = 0, pretend = 0, frame = 0
73457572 @ frame_needed = 0, uses_anonymous_args = 0
7346
- ldr r3, .L1337
7347
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
7573
+ ldr r3, .L1333
7574
+ push {r4, r5, r6, r7, r8, lr}
73487575 .save {r4, r5, r6, r7, r8, lr}
73497576 mov r5, r0
7350
- ldr r3, [r3, #44]
7351
- ldr r6, .L1337+4
7577
+ ldr r6, .L1333+4
7578
+ ldr r3, [r3, #48]
7579
+ ldr r0, [r6, #-1772]
73527580 ldrb r4, [r3, #13] @ zero_extendqisi2
73537581 ldrh r3, [r3, #14]
7354
- ldr r0, [r6, #-1776]
73557582 smulbb r4, r4, r3
73567583 uxth r4, r4
73577584 add r2, r4, #7
7358
- mov r2, r2, asr #3
7585
+ asr r2, r2, #3
73597586 bl FlashReadFacBbtData
73607587 cmn r0, #1
7361
- bne .L1327
7362
-.L1331:
7363
- mov r3, #0
7364
- b .L1328
7588
+ bne .L1323
73657589 .L1327:
7366
- mov lr, r4, lsr #4
7367
- mov ip, #0
7368
- sub r4, r4, #1
7369
- mov r3, ip
7370
- mov r7, #1
7371
-.L1329:
7372
- uxth r0, ip
7373
- cmp r0, r4
7374
- bge .L1328
7375
- ldr r8, [r6, #-1776]
7376
- mov r1, r0, lsr #5
7377
- and r2, r0, #31
7378
- add ip, ip, #1
7379
- ldr r1, [r8, r1, asl #2]
7380
- ands r2, r1, r7, asl r2
7381
- addne r2, r3, #1
7382
- movne r3, r3, asl #1
7383
- strneh r0, [r5, r3] @ movhi
7384
- uxthne r3, r2
7385
- cmp r3, lr
7386
- bcc .L1329
7387
- b .L1331
7388
-.L1328:
7389
- mov r3, r3, asl #1
7590
+ mov r3, #0
7591
+.L1324:
7592
+ lsl r3, r3, #1
73907593 mvn r2, #0
73917594 mov r0, #0
73927595 strh r2, [r5, r3] @ movhi
7393
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
7394
-.L1338:
7596
+ pop {r4, r5, r6, r7, r8, pc}
7597
+.L1323:
7598
+ mov r2, #0
7599
+ lsr lr, r4, #4
7600
+ mov r3, r2
7601
+ sub r4, r4, #1
7602
+ mov r7, #1
7603
+.L1325:
7604
+ uxth r1, r2
7605
+ cmp r1, r4
7606
+ bge .L1324
7607
+ ldr r8, [r6, #-1772]
7608
+ lsr ip, r1, #5
7609
+ and r0, r1, #31
7610
+ add r2, r2, #1
7611
+ ldr ip, [r8, ip, lsl #2]
7612
+ ands r0, ip, r7, lsl r0
7613
+ addne r0, r3, #1
7614
+ lslne r3, r3, #1
7615
+ strhne r1, [r5, r3] @ movhi
7616
+ uxthne r3, r0
7617
+ cmp r3, lr
7618
+ bcc .L1325
7619
+ b .L1327
7620
+.L1334:
73957621 .align 2
7396
-.L1337:
7622
+.L1333:
73977623 .word .LANCHOR0
73987624 .word .LANCHOR2
73997625 .fnend
74007626 .size FlashGetBadBlockList, .-FlashGetBadBlockList
74017627 .align 2
74027628 .global FlashProgSlc2KPages
7629
+ .syntax unified
7630
+ .arm
7631
+ .fpu softvfp
74037632 .type FlashProgSlc2KPages, %function
74047633 FlashProgSlc2KPages:
74057634 .fnstart
7406
- @ args = 0, pretend = 0, frame = 56
7635
+ @ args = 0, pretend = 0, frame = 48
74077636 @ frame_needed = 0, uses_anonymous_args = 0
7408
- ldr r3, .L1369
7409
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7637
+ ldr r3, .L1363
7638
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
74107639 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7411
- .pad #68
7412
- sub sp, sp, #68
7413
- ldr r8, .L1369+4
7414
- mov r6, r1
7415
- ldrb r3, [r3, #265] @ zero_extendqisi2
7416
- mov r9, r2
7640
+ mov r10, r1
7641
+ ldr r9, .L1363+4
7642
+ .pad #60
7643
+ sub sp, sp, #60
7644
+ mov r8, r2
74177645 mov r4, r0
7418
- mov r10, r0
7646
+ ldrb fp, [r3, #477] @ zero_extendqisi2
7647
+ mov r6, r0
74197648 mov r7, #0
7420
- mov fp, r8
7421
- str r3, [sp, #12]
7422
-.L1340:
7649
+.L1336:
7650
+ cmp r7, r10
7651
+ bne .L1342
7652
+ ldr r5, .L1363+8
7653
+ mov r6, #0
7654
+ ldr r9, .L1363+12
7655
+.L1343:
74237656 cmp r7, r6
7424
- beq .L1367
7425
- rsb r3, r7, r6
7426
- add r2, sp, #20
7427
- mov r0, r10
7428
- mov r1, r9
7657
+ bne .L1350
7658
+ mov r0, #0
7659
+ add sp, sp, #60
7660
+ @ sp needed
7661
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7662
+.L1342:
7663
+ sub r3, r10, r7
7664
+ add r2, sp, #12
74297665 uxtb r3, r3
7666
+ mov r1, r8
7667
+ mov r0, r6
74307668 str r3, [sp]
7431
- add r3, sp, #24
7669
+ add r3, sp, #16
74327670 bl LogAddr2PhyAddr
7433
- ldrb r2, [r8, #3152] @ zero_extendqisi2
7434
- ldr r3, [sp, #24]
7435
- cmp r3, r2
7436
- mvncs r3, #0
7437
- strcs r3, [r10]
7438
- bcs .L1342
7439
- add r3, r8, r3
7440
- ldrb r5, [r3, #3156] @ zero_extendqisi2
7671
+ ldrb r2, [r9, #3156] @ zero_extendqisi2
7672
+ ldr r3, [sp, #16]
7673
+ cmp r2, r3
7674
+ mvnls r3, #0
7675
+ strls r3, [r6]
7676
+ bls .L1338
7677
+ add r3, r9, r3
7678
+ ldrb r5, [r3, #3160] @ zero_extendqisi2
74417679 mov r0, r5
74427680 bl NandcWaitFlashReady
74437681 mov r0, r5
74447682 bl NandcFlashCs
74457683 mov r0, r5
7446
- ldr r1, [sp, #20]
7684
+ ldr r1, [sp, #12]
74477685 bl FlashProgFirstCmd
7448
- ldr r3, [r10, #12]
7686
+ ldr r3, [r6, #12]
7687
+ mov r2, fp
74497688 mov r1, #1
74507689 mov r0, r5
7451
- ldr r2, [sp, #12]
74527690 str r3, [sp]
7453
- ldr r3, [r10, #8]
7691
+ ldr r3, [r6, #8]
74547692 bl NandcXferData
74557693 mov r0, r5
7456
- ldr r1, [sp, #20]
7694
+ ldr r1, [sp, #12]
74577695 bl FlashProgSecondCmd
74587696 mov r0, r5
74597697 bl NandcWaitFlashReady
74607698 mov r0, r5
7461
- ldr r1, [sp, #20]
7699
+ ldr r1, [sp, #12]
74627700 bl FlashReadStatus
7463
- ldr r3, [sp, #20]
74647701 sbfx r0, r0, #0, #1
7465
- str r0, [r10]
7702
+ ldr r1, [sp, #12]
7703
+ str r0, [r6]
74667704 mov r0, r5
7467
- ldr r1, [r8, #4]
7705
+ ldr r3, [r9, #40]
74687706 add r1, r1, r3
74697707 bl FlashProgFirstCmd
7470
- ldr r3, [r10, #8]
7471
- ldr r2, [r10, #12]
7708
+ ldr r3, [r6, #8]
74727709 mov r1, #1
7473
- cmp r3, #0
7710
+ ldr r2, [r6, #12]
74747711 mov r0, r5
7712
+ cmp r3, #0
74757713 addne r3, r3, #2048
74767714 cmp r2, #0
74777715 addne r2, r2, #8
74787716 str r2, [sp]
7479
- ldr r2, [sp, #12]
7717
+ mov r2, fp
74807718 bl NandcXferData
7481
- ldr r1, [fp, #4]
7719
+ ldr r3, [r9, #40]
74827720 mov r0, r5
7483
- ldr r3, [sp, #20]
7721
+ ldr r1, [sp, #12]
74847722 add r1, r1, r3
74857723 bl FlashProgSecondCmd
74867724 mov r0, r5
74877725 bl NandcWaitFlashReady
74887726 mov r0, r5
7489
- ldr r1, [sp, #20]
7727
+ ldr r1, [sp, #12]
74907728 bl FlashReadStatus
74917729 tst r0, #1
74927730 mov r0, r5
74937731 mvnne r3, #0
7494
- strne r3, [r10]
7732
+ strne r3, [r6]
74957733 bl NandcFlashDeCs
7496
-.L1342:
7734
+.L1338:
74977735 add r7, r7, #1
7498
- add r10, r10, #36
7499
- b .L1340
7500
-.L1367:
7501
- ldr r5, .L1369+8
7502
- mov r7, #0
7503
- mov r8, r5
7504
-.L1347:
7505
- cmp r7, r6
7506
- beq .L1368
7736
+ add r6, r6, #36
7737
+ b .L1336
7738
+.L1350:
75077739 ldr r3, [r4]
75087740 cmn r3, #1
7509
- bne .L1348
7741
+ bne .L1344
75107742 ldr r1, [r4, #4]
7511
- ldr r0, .L1369+12
7743
+ ldr r0, .L1363+16
75127744 bl printk
7513
- b .L1349
7514
-.L1348:
7515
- rsb r3, r7, r6
7516
- mov r1, r9
7517
- add r2, sp, #20
7518
- mov r0, r4
7745
+.L1345:
7746
+ add r6, r6, #1
7747
+ add r4, r4, #36
7748
+ b .L1343
7749
+.L1344:
7750
+ sub r3, r7, r6
7751
+ add r2, sp, #12
75197752 uxtb r3, r3
7753
+ mov r1, r8
7754
+ mov r0, r4
75207755 str r3, [sp]
7521
- add r3, sp, #24
7756
+ add r3, sp, #16
75227757 bl LogAddr2PhyAddr
7523
- ldr r2, [r5, #-1768]
7758
+ ldr r2, [r5, #-1764]
75247759 mov r3, #0
75257760 mov lr, r4
7761
+ add ip, sp, #20
75267762 str r3, [r2]
7527
- ldr r2, [r5, #-1764]
7763
+ ldr r2, [r5, #-1760]
75287764 str r3, [r2]
75297765 ldmia lr!, {r0, r1, r2, r3}
7530
- add ip, sp, #28
75317766 stmia ip!, {r0, r1, r2, r3}
75327767 ldmia lr!, {r0, r1, r2, r3}
75337768 stmia ip!, {r0, r1, r2, r3}
7534
- add r0, sp, #28
7769
+ mov r2, r8
75357770 ldr r3, [lr]
75367771 mov r1, #1
7537
- mov r2, r9
7772
+ add r0, sp, #20
75387773 str r3, [ip]
7539
- ldr r3, [r5, #-1768]
7540
- str r3, [sp, #36]
75417774 ldr r3, [r5, #-1764]
7542
- str r3, [sp, #40]
7775
+ str r3, [sp, #28]
7776
+ ldr r3, [r5, #-1760]
7777
+ str r3, [sp, #32]
75437778 bl FlashReadPages
7544
- ldr r10, [sp, #28]
7779
+ ldr r10, [sp, #20]
75457780 cmn r10, #1
7546
- bne .L1350
7547
- ldr r0, .L1369+16
7781
+ bne .L1346
75487782 ldr r1, [r4, #4]
7783
+ ldr r0, .L1363+20
75497784 bl printk
75507785 str r10, [r4]
7551
-.L1350:
7552
- ldr r10, [sp, #28]
7786
+.L1346:
7787
+ ldr r10, [sp, #20]
75537788 cmp r10, #256
7554
- bne .L1351
7555
- ldr r0, .L1369+20
7789
+ bne .L1347
75567790 ldr r1, [r4, #4]
7791
+ ldr r0, .L1363+24
75577792 bl printk
75587793 str r10, [r4]
7559
-.L1351:
7794
+.L1347:
75607795 ldr r3, [r4, #12]
75617796 cmp r3, #0
7562
- beq .L1352
7797
+ beq .L1348
75637798 ldr r2, [r3]
7564
- ldr r3, [r8, #-1764]
7799
+ ldr r3, [r5, #-1760]
75657800 ldr r3, [r3]
75667801 cmp r2, r3
7567
- beq .L1352
7568
- ldr r0, .L1369+24
7802
+ beq .L1348
75697803 ldr r1, [r4, #4]
7804
+ ldr r0, .L1363+28
75707805 bl printk
75717806 mvn r3, #0
75727807 str r3, [r4]
7573
-.L1352:
7808
+.L1348:
75747809 ldr r3, [r4, #8]
75757810 cmp r3, #0
7576
- beq .L1349
7811
+ beq .L1345
75777812 ldr r2, [r3]
7578
- ldr r3, [r8, #-1768]
7813
+ ldr r3, [r5, #-1764]
75797814 ldr r3, [r3]
75807815 cmp r2, r3
7581
- beq .L1349
7582
- ldr r0, .L1369+28
7816
+ beq .L1345
75837817 ldr r1, [r4, #4]
7818
+ mov r0, r9
75847819 bl printk
75857820 mvn r3, #0
75867821 str r3, [r4]
7587
-.L1349:
7588
- add r7, r7, #1
7589
- add r4, r4, #36
7590
- b .L1347
7591
-.L1368:
7592
- mov r0, #0
7593
- add sp, sp, #68
7594
- @ sp needed
7595
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7596
-.L1370:
7822
+ b .L1345
7823
+.L1364:
75977824 .align 2
7598
-.L1369:
7825
+.L1363:
75997826 .word .LANCHOR1
76007827 .word .LANCHOR0
76017828 .word .LANCHOR2
7829
+ .word .LC26
76027830 .word .LC22
76037831 .word .LC23
76047832 .word .LC24
76057833 .word .LC25
7606
- .word .LC26
76077834 .fnend
76087835 .size FlashProgSlc2KPages, .-FlashProgSlc2KPages
76097836 .align 2
76107837 .global FlashProgPages
7838
+ .syntax unified
7839
+ .arm
7840
+ .fpu softvfp
76117841 .type FlashProgPages, %function
76127842 FlashProgPages:
76137843 .fnstart
76147844 @ args = 0, pretend = 0, frame = 64
76157845 @ frame_needed = 0, uses_anonymous_args = 0
7616
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7846
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
76177847 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
76187848 .pad #76
76197849 sub sp, sp, #76
7620
- ldr r6, .L1427
7621
- mov r4, r0
7850
+ ldr r6, .L1418
76227851 str r1, [sp, #8]
7623
- mov r9, r2
7852
+ ldr ip, [r6, #48]
7853
+ ldrb r8, [r6, #36] @ zero_extendqisi2
76247854 str r3, [sp, #20]
7625
- ldr ip, [r6, #44]
7626
- ldrb r8, [r6] @ zero_extendqisi2
76277855 ldrb ip, [ip, #19] @ zero_extendqisi2
76287856 cmp r8, #0
76297857 str ip, [sp, #16]
7630
- ldr ip, .L1427+4
7631
- ldrb ip, [ip, #265] @ zero_extendqisi2
7632
- str ip, [sp, #12]
7633
- beq .L1372
7634
- bl FlashProgSlc2KPages
7635
- b .L1373
7636
-.L1385:
7637
- mov r7, #36
7858
+ bne .L1366
7859
+ ldr r3, .L1418+4
7860
+ mov r4, r0
7861
+ mov r9, r2
7862
+ ldrb r3, [r3, #477] @ zero_extendqisi2
7863
+ str r3, [sp, #12]
7864
+.L1367:
76387865 ldr r3, [sp, #8]
7866
+ cmp r8, r3
7867
+ bcc .L1380
7868
+ ldr r7, .L1418+8
7869
+ mov r5, #0
7870
+ ldr r8, .L1418+12
7871
+.L1381:
7872
+ ldrb r3, [r6, #3156] @ zero_extendqisi2
7873
+ cmp r5, r3
7874
+ bcc .L1383
7875
+ ldr r3, [sp, #20]
7876
+ cmp r3, #0
7877
+ bne .L1384
7878
+.L1392:
7879
+ mov r0, #0
7880
+ b .L1365
7881
+.L1366:
7882
+ bl FlashProgSlc2KPages
7883
+.L1365:
7884
+ add sp, sp, #76
7885
+ @ sp needed
7886
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7887
+.L1380:
7888
+ ldr r3, [sp, #8]
7889
+ mov r7, #36
76397890 mul r7, r7, r8
7640
- rsb r3, r8, r3
7641
- mov r1, r9
76427891 add r2, sp, #28
7892
+ mov r1, r9
7893
+ sub r3, r3, r8
76437894 uxtb r3, r3
7644
- str r3, [sp]
76457895 add fp, r4, r7
7646
- add r3, sp, #32
7896
+ str r3, [sp]
76477897 mov r0, fp
7898
+ add r3, sp, #32
76487899 bl LogAddr2PhyAddr
7649
- ldrb r3, [r6, #3152] @ zero_extendqisi2
7900
+ ldrb r3, [r6, #3156] @ zero_extendqisi2
76507901 mov r10, r0
76517902 ldr r0, [sp, #32]
7652
- cmp r0, r3
7653
- mvncs r3, #0
7654
- strcs r3, [r4, r7]
7655
- bcc .L1424
7656
-.L1375:
7657
- add r8, r8, #1
7658
-.L1372:
7659
- ldr r3, [sp, #8]
7660
- ldr r5, .L1427
7661
- cmp r8, r3
7662
- bcc .L1385
7663
- b .L1425
7664
-.L1424:
7665
- ldr r3, .L1427+8
7666
- ldrb r3, [r3, #-1874] @ zero_extendqisi2
7903
+ cmp r3, r0
7904
+ mvnls r3, #0
7905
+ strls r3, [r4, r7]
7906
+ bls .L1370
7907
+ ldr r3, .L1418+8
7908
+ ldrb r3, [r3, #-1870] @ zero_extendqisi2
76677909 cmp r3, #0
7668
- add r3, r6, r0, asl #4
7669
- ldr r3, [r3, #3204]
7910
+ add r3, r6, r0, lsl #4
76707911 moveq r10, #0
7912
+ ldr r3, [r3, #3208]
76717913 cmp r3, #0
7672
- beq .L1377
7914
+ beq .L1372
76737915 uxtb r0, r0
76747916 bl FlashWaitCmdDone
7675
-.L1377:
7917
+.L1372:
76767918 ldr r3, [sp, #32]
76777919 mov r1, #0
76787920 cmp r10, #0
7679
- add r2, r6, r3, asl #4
7680
- str r1, [r2, #3208]
7921
+ add r2, r6, r3, lsl #4
7922
+ str r1, [r2, #3212]
76817923 ldr r1, [sp, #28]
7682
- str fp, [r2, #3204]
7683
- str r1, [r2, #3200]
7924
+ str fp, [r2, #3208]
7925
+ str r1, [r2, #3204]
76847926 addne r1, r7, #36
76857927 addne r1, r4, r1
7686
- strne r1, [r2, #3208]
7928
+ strne r1, [r2, #3212]
76877929 add r2, r6, r3
7688
- add r3, r6, r3, asl #4
7689
- ldrb r5, [r2, #3156] @ zero_extendqisi2
7690
- strb r5, [r3, #3196]
7930
+ ldrb r5, [r2, #3160] @ zero_extendqisi2
7931
+ add r3, r6, r3, lsl #4
7932
+ strb r5, [r3, #3200]
76917933 mov r0, r5
7692
- ldrb r3, [r6, #3152] @ zero_extendqisi2
7934
+ ldrb r3, [r6, #3156] @ zero_extendqisi2
76937935 cmp r3, #1
7694
- bne .L1379
7936
+ bne .L1374
76957937 bl NandcWaitFlashReady
7696
- b .L1380
7697
-.L1379:
7698
- bl NandcFlashCs
7699
- mov r0, r5
7700
- ldr r3, [sp, #32]
7701
- ldr r1, [sp, #28]
7702
- add r3, r6, r3, asl #2
7703
- ldr r2, [r3, #3164]
7704
- adds r2, r2, #0
7705
- movne r2, #1
7706
- bl FlashWaitReadyEN
7707
- mov r0, r5
7708
- bl NandcFlashDeCs
7709
-.L1380:
7938
+.L1375:
77107939 ldr r3, [sp, #16]
77117940 sub r3, r3, #1
77127941 cmp r3, #7
7713
- bhi .L1381
7714
- ldr r3, .L1427+8
7715
- add r3, r3, r5
7716
- ldrb r3, [r3, #-1880] @ zero_extendqisi2
7942
+ bhi .L1376
7943
+ ldr r1, .L1418+8
7944
+ add r3, r1, r5
7945
+ ldrb r3, [r3, #-1876] @ zero_extendqisi2
77177946 cmp r3, #0
7718
- beq .L1381
7719
- ldr r3, .L1427+8
7720
- mov r0, r5
7721
- ldr r2, .L1427+12
7722
- ldrb r1, [r3, #-2731] @ zero_extendqisi2
7947
+ beq .L1376
77237948 mov r3, #0
7949
+ ldr r2, .L1418+16
7950
+ ldrb r1, [r1, #-2727] @ zero_extendqisi2
7951
+ mov r0, r5
77247952 bl HynixSetRRPara
7725
-.L1381:
7953
+.L1376:
77267954 mov r0, r5
77277955 bl NandcFlashCs
77287956 cmp r9, #1
77297957 mov r0, r5
7730
- bne .L1382
7731
- ldr r3, .L1427+8
7732
- ldrb r3, [r3, #-2744] @ zero_extendqisi2
7958
+ bne .L1377
7959
+ ldr r3, .L1418+8
7960
+ ldrb r3, [r3, #-2740] @ zero_extendqisi2
77337961 cmp r3, #0
7734
- beq .L1382
7962
+ beq .L1377
77357963 bl flash_enter_slc_mode
7736
- b .L1383
7737
-.L1382:
7738
- bl flash_exit_slc_mode
7739
-.L1383:
7740
- mov r0, r5
7964
+.L1378:
77417965 ldr r1, [sp, #28]
7966
+ mov r0, r5
77427967 bl FlashProgFirstCmd
77437968 ldr r3, [fp, #12]
7744
- mov r0, r5
77457969 mov r1, #1
7746
- str r3, [sp]
77477970 ldr r2, [sp, #12]
7971
+ mov r0, r5
7972
+ str r3, [sp]
77487973 ldr r3, [fp, #8]
77497974 bl NandcXferData
77507975 cmp r10, #0
7751
- beq .L1384
7976
+ beq .L1379
7977
+ ldr r1, [sp, #28]
7978
+ mov r0, r5
7979
+ bl FlashProgDpFirstCmd
7980
+ ldr r3, [sp, #32]
77527981 mov r0, r5
77537982 ldr r1, [sp, #28]
7754
- bl FlashProgDpFirstCmd
7755
- mov r0, r5
77567983 add r7, r7, #36
77577984 add r7, r4, r7
7758
- ldr r3, [sp, #32]
7759
- ldr r1, [sp, #28]
7760
- add r3, r6, r3, asl #2
7761
- ldr r2, [r3, #3164]
7985
+ add r3, r6, r3, lsl #2
7986
+ ldr r2, [r3, #3168]
77627987 adds r2, r2, #0
77637988 movne r2, #1
77647989 bl FlashWaitReadyEN
7765
- ldr r1, [r6, #4]
7990
+ ldr r3, [r6, #40]
77667991 mov r0, r5
7767
- ldr r3, [sp, #28]
7992
+ ldr r1, [sp, #28]
77687993 add r1, r1, r3
77697994 bl FlashProgDpSecondCmd
77707995 ldr r3, [r7, #12]
7771
- mov r0, r5
77727996 mov r1, #1
7773
- str r3, [sp]
77747997 ldr r2, [sp, #12]
7998
+ mov r0, r5
7999
+ str r3, [sp]
77758000 ldr r3, [r7, #8]
77768001 bl NandcXferData
7777
-.L1384:
7778
- mov r0, r5
8002
+.L1379:
77798003 ldr r1, [sp, #28]
8004
+ mov r0, r5
8005
+ add r8, r8, r10
77808006 bl FlashProgSecondCmd
77818007 mov r0, r5
77828008 bl NandcFlashDeCs
7783
- add r8, r8, r10
8009
+.L1370:
8010
+ add r8, r8, #1
8011
+ b .L1367
8012
+.L1374:
8013
+ bl NandcFlashCs
8014
+ ldr r3, [sp, #32]
8015
+ mov r0, r5
8016
+ ldr r1, [sp, #28]
8017
+ add r3, r6, r3, lsl #2
8018
+ ldr r2, [r3, #3168]
8019
+ adds r2, r2, #0
8020
+ movne r2, #1
8021
+ bl FlashWaitReadyEN
8022
+ mov r0, r5
8023
+ bl NandcFlashDeCs
77848024 b .L1375
7785
-.L1425:
7786
- ldr r7, .L1427+8
7787
- mov r6, #0
7788
- ldr r8, .L1427+16
7789
-.L1386:
7790
- ldrb r3, [r5, #3152] @ zero_extendqisi2
7791
- cmp r6, r3
7792
- bcs .L1426
7793
- uxtb r0, r6
8025
+.L1377:
8026
+ bl flash_exit_slc_mode
8027
+ b .L1378
8028
+.L1383:
8029
+ uxtb r0, r5
77948030 bl FlashWaitCmdDone
77958031 cmp r9, #1
7796
- bne .L1387
7797
- ldrb r3, [r7, #-2744] @ zero_extendqisi2
8032
+ bne .L1382
8033
+ ldrb r3, [r7, #-2740] @ zero_extendqisi2
77988034 cmp r3, #0
7799
- beq .L1387
7800
- ldrb r0, [r8, r6, asl #4] @ zero_extendqisi2
8035
+ beq .L1382
8036
+ ldrb r0, [r8, r5, lsl #4] @ zero_extendqisi2
78018037 bl flash_exit_slc_mode
7802
-.L1387:
7803
- add r6, r6, #1
7804
- b .L1386
7805
-.L1426:
7806
- ldr r3, [sp, #20]
7807
- cmp r3, #0
7808
- bne .L1389
7809
-.L1397:
7810
- mov r0, #0
7811
- b .L1373
7812
-.L1389:
7813
- ldr r5, .L1427+8
8038
+.L1382:
8039
+ add r5, r5, #1
8040
+ b .L1381
8041
+.L1384:
8042
+ ldr r5, .L1418+8
78148043 mov r6, #0
7815
- mov r7, r5
7816
-.L1390:
8044
+ ldr r7, .L1418+20
8045
+.L1385:
78178046 ldr r3, [sp, #8]
78188047 cmp r6, r3
7819
- beq .L1397
8048
+ beq .L1392
78208049 ldr r3, [r4]
78218050 cmn r3, #1
7822
- bne .L1391
8051
+ bne .L1386
78238052 ldr r1, [r4, #4]
7824
- ldr r0, .L1427+20
8053
+ ldr r0, .L1418+24
78258054 bl printk
7826
- b .L1392
7827
-.L1391:
8055
+.L1387:
8056
+ add r6, r6, #1
8057
+ add r4, r4, #36
8058
+ b .L1385
8059
+.L1386:
78288060 ldr r3, [sp, #8]
7829
- mov r1, r9
78308061 add r2, sp, #28
8062
+ mov r1, r9
78318063 mov r0, r4
7832
- rsb r3, r6, r3
8064
+ sub r3, r3, r6
78338065 uxtb r3, r3
78348066 str r3, [sp]
78358067 add r3, sp, #32
78368068 bl LogAddr2PhyAddr
7837
- ldr r2, [r5, #-1768]
8069
+ ldr r2, [r5, #-1764]
78388070 mov r3, #0
78398071 mov lr, r4
7840
- str r3, [r2]
7841
- ldr r2, [r5, #-1764]
7842
- str r3, [r2]
7843
- ldmia lr!, {r0, r1, r2, r3}
78448072 add ip, sp, #36
8073
+ str r3, [r2]
8074
+ ldr r2, [r5, #-1760]
8075
+ str r3, [r2]
8076
+ ldmia lr!, {r0, r1, r2, r3}
78458077 stmia ip!, {r0, r1, r2, r3}
78468078 ldmia lr!, {r0, r1, r2, r3}
78478079 stmia ip!, {r0, r1, r2, r3}
7848
- add r0, sp, #36
8080
+ mov r2, r9
78498081 ldr r3, [lr]
78508082 mov r1, #1
7851
- mov r2, r9
8083
+ add r0, sp, #36
78528084 str r3, [ip]
7853
- ldr r3, [r5, #-1768]
7854
- str r3, [sp, #44]
78558085 ldr r3, [r5, #-1764]
8086
+ str r3, [sp, #44]
8087
+ ldr r3, [r5, #-1760]
78568088 str r3, [sp, #48]
78578089 bl FlashReadPages
78588090 ldr r8, [sp, #36]
78598091 cmn r8, #1
7860
- bne .L1393
7861
- ldr r0, .L1427+24
8092
+ bne .L1388
78628093 ldr r1, [r4, #4]
8094
+ ldr r0, .L1418+28
78638095 bl printk
78648096 str r8, [r4]
7865
-.L1393:
8097
+.L1388:
78668098 ldr r3, [r4, #12]
78678099 cmp r3, #0
7868
- beq .L1394
8100
+ beq .L1389
78698101 ldr r2, [r3]
7870
- ldr r3, [r7, #-1764]
8102
+ ldr r3, [r5, #-1760]
78718103 ldr r3, [r3]
78728104 cmp r2, r3
7873
- beq .L1394
7874
- ldr r0, .L1427+28
8105
+ beq .L1389
78758106 ldr r1, [r4, #4]
8107
+ ldr r0, .L1418+32
78768108 bl printk
78778109 mvn r3, #0
78788110 str r3, [r4]
7879
-.L1394:
8111
+.L1389:
78808112 ldr r3, [r4, #8]
78818113 cmp r3, #0
7882
- beq .L1392
8114
+ beq .L1387
78838115 ldr r2, [r3]
7884
- ldr r3, [r7, #-1768]
8116
+ ldr r3, [r5, #-1764]
78858117 ldr r3, [r3]
78868118 cmp r2, r3
7887
- beq .L1392
7888
- ldr r0, .L1427+32
8119
+ beq .L1387
78898120 ldr r1, [r4, #4]
8121
+ mov r0, r7
78908122 bl printk
78918123 mvn r3, #0
78928124 str r3, [r4]
7893
-.L1392:
7894
- add r6, r6, #1
7895
- add r4, r4, #36
7896
- b .L1390
7897
-.L1373:
7898
- add sp, sp, #76
7899
- @ sp needed
7900
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7901
-.L1428:
8125
+ b .L1387
8126
+.L1419:
79028127 .align 2
7903
-.L1427:
8128
+.L1418:
79048129 .word .LANCHOR0
79058130 .word .LANCHOR1
79068131 .word .LANCHOR2
7907
- .word .LANCHOR2-2728
7908
- .word .LANCHOR0+3196
8132
+ .word .LANCHOR0+3200
8133
+ .word .LANCHOR2-2724
8134
+ .word .LC26
79098135 .word .LC22
79108136 .word .LC23
79118137 .word .LC25
7912
- .word .LC26
79138138 .fnend
79148139 .size FlashProgPages, .-FlashProgPages
79158140 .align 2
79168141 .global FlashTestBlk
8142
+ .syntax unified
8143
+ .arm
8144
+ .fpu softvfp
79178145 .type FlashTestBlk, %function
79188146 FlashTestBlk:
79198147 .fnstart
79208148 @ args = 0, pretend = 0, frame = 104
79218149 @ frame_needed = 0, uses_anonymous_args = 0
7922
- stmfd sp!, {r4, r5, lr}
8150
+ push {r4, r5, lr}
79238151 .save {r4, r5, lr}
79248152 .pad #108
79258153 sub sp, sp, #108
7926
- ldr r5, .L1433
7927
- ldr r3, [r5, #-1784]
8154
+ ldr r5, .L1424
8155
+ ldr r3, [r5, #-1780]
79288156 cmp r0, r3
79298157 movcc r4, #0
7930
- bcc .L1430
7931
- ldr r3, [r5, #-1776]
8158
+ bcc .L1420
8159
+ ldr r3, [r5, #-1772]
79328160 mov r4, r0
7933
- mov r1, #165
7934
- add r0, sp, #40
79358161 mov r2, #32
8162
+ add r0, sp, #40
8163
+ mov r1, #165
79368164 str r0, [sp, #16]
79378165 str r3, [sp, #12]
79388166 bl ftl_memset
7939
- mov r1, #90
79408167 mov r2, #8
7941
- ldr r0, [r5, #-1776]
7942
- mov r4, r4, asl #10
8168
+ mov r1, #90
8169
+ ldr r0, [r5, #-1772]
79438170 bl ftl_memset
7944
- mov r1, #1
7945
- mov r2, r1
7946
- add r0, sp, #4
7947
- str r4, [sp, #8]
7948
- bl FlashEraseBlocks
7949
- mov r1, #1
7950
- mov r2, r1
7951
- mov r3, r1
7952
- add r0, sp, #4
7953
- bl FlashProgPages
7954
- mov r1, #0
8171
+ lsl r0, r4, #10
79558172 mov r2, #1
8173
+ mov r1, r2
8174
+ str r0, [sp, #8]
8175
+ add r0, sp, #4
8176
+ bl FlashEraseBlocks
8177
+ mov r3, #1
8178
+ add r0, sp, #4
8179
+ mov r2, r3
8180
+ mov r1, r3
8181
+ bl FlashProgPages
79568182 ldr r4, [sp, #4]
8183
+ mov r2, #1
8184
+ mov r1, #0
79578185 add r0, sp, #4
79588186 adds r4, r4, #0
79598187 movne r4, #1
79608188 rsb r4, r4, #0
79618189 bl FlashEraseBlocks
7962
-.L1430:
8190
+.L1420:
79638191 mov r0, r4
79648192 add sp, sp, #108
79658193 @ sp needed
7966
- ldmfd sp!, {r4, r5, pc}
7967
-.L1434:
8194
+ pop {r4, r5, pc}
8195
+.L1425:
79688196 .align 2
7969
-.L1433:
8197
+.L1424:
79708198 .word .LANCHOR2
79718199 .fnend
79728200 .size FlashTestBlk, .-FlashTestBlk
79738201 .align 2
79748202 .global FlashMakeFactorBbt
8203
+ .syntax unified
8204
+ .arm
8205
+ .fpu softvfp
79758206 .type FlashMakeFactorBbt, %function
79768207 FlashMakeFactorBbt:
79778208 .fnstart
79788209 @ args = 0, pretend = 0, frame = 80
79798210 @ frame_needed = 0, uses_anonymous_args = 0
7980
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8211
+ ldr r3, .L1477
8212
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
79818213 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
79828214 .pad #84
79838215 sub sp, sp, #84
7984
- ldr r4, .L1491
8216
+ ldr r0, .L1477+4
8217
+ sub r1, r3, #2768
8218
+ mov r4, r3
8219
+ ldr r2, [r3, #-1768]
8220
+ str r2, [sp, #20]
8221
+ ldrh r2, [r1, #14]
8222
+ ldrh r1, [r1, #12]
8223
+ smulbb r2, r2, r1
8224
+ uxth r2, r2
8225
+ str r2, [sp]
8226
+ ldr r2, .L1477+8
8227
+ ldr r1, [r2, #48]
8228
+ ldrb r1, [r1, #24] @ zero_extendqisi2
8229
+ str r1, [sp, #24]
8230
+ ldrh r1, [r2, #40]
8231
+ ldrb r2, [r2, #36] @ zero_extendqisi2
8232
+ str r1, [sp, #16]
8233
+ cmp r2, #1
8234
+ moveq r3, r1
79858235 mov r1, #1
7986
- ldr r5, .L1491+4
7987
- ldr r0, .L1491+8
7988
- ldr r3, [r4, #-1772]
7989
- ldrh r8, [r5, #12]
7990
- ldr r7, .L1491+12
7991
- str r3, [sp, #20]
7992
- ldrh r3, [r5, #14]
7993
- smulbb r8, r8, r3
7994
- ldr r3, .L1491+12
7995
- ldr r2, [r3, #44]
7996
- uxth r8, r8
7997
- ldrb r2, [r2, #24] @ zero_extendqisi2
7998
- str r2, [sp, #24]
7999
- ldrh r2, [r3, #4]
8000
- ldrb r3, [r3] @ zero_extendqisi2
8001
- cmp r3, #1
8002
- str r2, [sp, #16]
8003
- moveq r3, r2
8004
- moveq r3, r3, asl #1
8236
+ lsleq r3, r3, #1
80058237 uxtheq r3, r3
80068238 streq r3, [sp, #16]
80078239 bl printk
8008
- ldr r0, [r4, #-1772]
8009
- mov r1, #0
8240
+ ldr r0, [r4, #-1768]
80108241 mov r2, #4096
8242
+ mov r1, #0
8243
+ ldr r4, .L1477
80118244 bl ftl_memset
8012
- ldr r4, .L1491
8013
- mov r3, r8, lsr #4
8245
+ ldr r3, [sp]
8246
+ lsr r3, r3, #4
80148247 str r3, [sp, #28]
80158248 mov r3, #0
80168249 str r3, [sp, #8]
8017
-.L1437:
8018
- ldrb r6, [sp, #8] @ zero_extendqisi2
8019
- ldrb r3, [r7, #3152] @ zero_extendqisi2
8020
- cmp r3, r6
8021
- bls .L1487
8022
- ldr r3, .L1491+16
8023
- mov r2, r6, asl #1
8024
- ldrh r5, [r3, r2]
8025
- cmp r5, #0
8026
- bne .L1467
8027
- sub r3, r3, #1016
8028
- ldr r0, [r4, #-1868]
8029
- mov r1, r5
8030
- mov r9, r5
8031
- ldrh r2, [r3, #20]
8032
- mov r2, r2, asl #9
8033
- bl ftl_memset
8034
- add r3, r7, r6
8035
- ldrb r10, [r3, #3156] @ zero_extendqisi2
8036
- mov r3, r6, asl #2
8037
- add fp, r7, r3
8038
- str r5, [sp, #4]
8250
+ sub r3, r4, #1744
8251
+ sub r3, r3, #10
80398252 str r3, [sp, #32]
8040
-.L1439:
8253
+.L1428:
8254
+ ldr r5, .L1477+8
8255
+ ldrb r7, [sp, #8] @ zero_extendqisi2
8256
+ ldrb r3, [r5, #3156] @ zero_extendqisi2
8257
+ cmp r3, r7
8258
+ bhi .L1455
8259
+ add sp, sp, #84
8260
+ @ sp needed
8261
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8262
+.L1455:
8263
+ ldr r2, [sp, #32]
8264
+ lsl r3, r7, #1
8265
+ ldrh r6, [r2, r3]
8266
+ cmp r6, #0
8267
+ bne .L1429
8268
+ ldr r3, .L1477+12
8269
+ mov r1, r6
8270
+ ldr r0, [r4, #-1864]
8271
+ add fp, r5, r7, lsl #2
8272
+ mov r8, r6
8273
+ ldrh r2, [r3, #20]
8274
+ mov r9, r6
8275
+ lsl r2, r2, #9
8276
+ bl ftl_memset
8277
+ add r3, r5, r7
8278
+ str r6, [sp, #4]
8279
+ ldrb r10, [r3, #3160] @ zero_extendqisi2
8280
+.L1430:
80418281 ldrh r3, [sp, #4]
8042
- cmp r3, r8
8282
+ ldr r2, [sp]
80438283 str r3, [sp, #12]
8044
- bcs .L1449
8284
+ cmp r3, r2
8285
+ bcc .L1441
8286
+.L1440:
8287
+ ldr r5, .L1477+8
8288
+ mov r2, r8
8289
+ mov r1, r7
8290
+ ldr r0, .L1477+16
8291
+ bl printk
8292
+ ldrb r3, [r5, #3156] @ zero_extendqisi2
8293
+ ldr r2, [sp, #28]
8294
+ mul r3, r2, r3
8295
+ cmp r8, r3
8296
+ mov r8, r5
8297
+ blt .L1442
8298
+ ldr r3, .L1477+12
8299
+ mov r1, #0
8300
+ ldr r0, [r4, #-1864]
8301
+ ldrh r2, [r3, #20]
8302
+ lsl r2, r2, #9
8303
+ bl ftl_memset
8304
+.L1442:
8305
+ cmp r7, #0
8306
+ bne .L1444
8307
+ sub r3, r4, #1776
8308
+ ldr r9, .L1477+20
8309
+ sub r3, r3, #4
8310
+ ldrh fp, [r3]
8311
+ mov r10, #1
8312
+.L1445:
8313
+ ldrb r3, [r8, #37] @ zero_extendqisi2
8314
+ cmp r3, fp
8315
+ bhi .L1447
8316
+ ldr r3, [sp]
8317
+ mov r10, #1
8318
+ ldr r9, .L1477+20
8319
+ sub fp, r3, #1
8320
+ sub r8, r3, #50
8321
+ uxth fp, fp
8322
+.L1448:
8323
+ cmp fp, r8
8324
+ bgt .L1450
8325
+ ldrb r3, [r5, #37] @ zero_extendqisi2
8326
+ ldr r2, [r4, #-1780]
8327
+ sub r3, r3, r2
8328
+ cmp r6, r3
8329
+ bcc .L1444
8330
+ ldr r3, .L1477+12
8331
+ mov r1, #0
8332
+ ldr r0, [r4, #-1864]
8333
+ ldrh r2, [r3, #20]
8334
+ lsl r2, r2, #9
8335
+ bl ftl_memset
8336
+.L1444:
8337
+ ldr r3, [sp]
8338
+ ldrb r6, [sp, #8] @ zero_extendqisi2
8339
+ ldr r8, .L1477+24
8340
+ sub r5, r3, #1
8341
+ ldr r10, .L1477+28
8342
+ ldr r9, .L1477+32
8343
+ uxth r5, r5
8344
+ mul r6, r3, r6
8345
+ add r8, r8, r7, lsl #1
8346
+.L1452:
8347
+ mov r1, r7
8348
+ mov r2, r5
8349
+ mov r0, r10
8350
+ bl printk
8351
+ ldr r1, [r4, #-1864]
8352
+.L1453:
8353
+ lsr r2, r5, #5
8354
+ and r3, r5, #31
8355
+ ldr r2, [r1, r2, lsl #2]
8356
+ lsr r3, r2, r3
8357
+ ands r3, r3, #1
8358
+ bne .L1454
8359
+ ldr r2, [sp, #20]
8360
+ add r0, sp, #44
8361
+ strh r5, [r8] @ movhi
8362
+ strh r9, [r2] @ movhi
8363
+ strh r5, [r2, #2] @ movhi
8364
+ strh r3, [r2, #8] @ movhi
8365
+ mov r2, #1
8366
+ ldr r3, [r4, #-1864]
8367
+ mov r1, r2
8368
+ str r3, [sp, #52]
8369
+ ldr r3, [r4, #-1768]
8370
+ str r3, [sp, #56]
8371
+ add r3, r5, r6
8372
+ lsl r3, r3, #10
8373
+ str r3, [sp, #48]
8374
+ bl FlashEraseBlocks
8375
+ mov r3, #1
8376
+ add r0, sp, #44
8377
+ mov r2, r3
8378
+ mov r1, r3
8379
+ bl FlashProgPages
8380
+ ldr r3, [sp, #44]
8381
+ cmp r3, #0
8382
+ beq .L1429
8383
+ sub r5, r5, #1
8384
+ uxth r5, r5
8385
+ b .L1452
8386
+.L1441:
80458387 mvn r3, #0
80468388 strb r3, [sp, #42]
80478389 strb r3, [sp, #43]
80488390 ldr r3, [sp, #24]
80498391 tst r3, #1
8050
- beq .L1441
8051
- ldr r3, [fp, #3164]
8392
+ beq .L1432
8393
+ ldr r3, [fp, #3168]
80528394 add r2, sp, #42
80538395 mov r0, r10
8054
- add r3, r5, r3
8055
- str r3, [sp, #36]
8396
+ add r3, r9, r3
80568397 mov r1, r3
8398
+ str r3, [sp, #36]
80578399 bl FlashReadSpare
8058
- ldrb r2, [r7] @ zero_extendqisi2
8059
- cmp r2, #1
8400
+ ldrb r2, [r5, #36] @ zero_extendqisi2
80608401 ldr r3, [sp, #36]
8061
- bne .L1441
8062
- ldr r1, [r7, #4]
8402
+ cmp r2, #1
8403
+ bne .L1432
8404
+ ldr r1, [r5, #40]
80638405 add r2, sp, #43
80648406 mov r0, r10
80658407 add r1, r3, r1
....@@ -8068,246 +8410,148 @@
80688410 ldrb r2, [sp, #43] @ zero_extendqisi2
80698411 and r3, r3, r2
80708412 strb r3, [sp, #42]
8071
-.L1441:
8413
+.L1432:
80728414 ldr r3, [sp, #24]
80738415 tst r3, #2
8074
- beq .L1443
8075
- ldr r3, [r7, #44]
8076
- mov r0, r10
8416
+ beq .L1434
8417
+ ldr r3, [r5, #48]
80778418 add r2, sp, #43
8419
+ mov r0, r10
80788420 ldrh r1, [r3, #10]
8079
- ldr r3, [fp, #3164]
8421
+ ldr r3, [fp, #3168]
80808422 sub r1, r1, #1
80818423 add r1, r1, r3
8082
- add r1, r1, r5
8424
+ add r1, r1, r9
80838425 bl FlashReadSpare
8084
-.L1443:
8085
- ldr r2, [r7, #44]
8426
+.L1434:
8427
+ ldr r2, [r5, #48]
80868428 ldrb r3, [r2, #7] @ zero_extendqisi2
8087
- cmp r3, #1
8088
- cmpne r3, #8
8429
+ cmp r3, #8
8430
+ cmpne r3, #1
80898431 ldrb r3, [sp, #42] @ zero_extendqisi2
8090
- beq .L1444
8432
+ beq .L1435
80918433 ldrb r2, [r2, #18] @ zero_extendqisi2
80928434 cmp r2, #12
8093
- bne .L1445
8094
-.L1444:
8435
+ bne .L1436
8436
+.L1435:
80958437 cmp r3, #0
8096
- ldrneb r0, [sp, #43] @ zero_extendqisi2
8438
+ ldrbne r0, [sp, #43] @ zero_extendqisi2
80978439 clzne r0, r0
8098
- movne r0, r0, lsr #5
8099
- bne .L1446
8100
- b .L1466
8101
-.L1445:
8440
+ lsrne r0, r0, #5
8441
+ bne .L1437
8442
+.L1457:
8443
+ mov r0, #1
8444
+ b .L1437
8445
+.L1436:
81028446 cmp r3, #255
8103
- bne .L1466
8447
+ bne .L1457
81048448 ldrb r0, [sp, #43] @ zero_extendqisi2
81058449 subs r0, r0, #255
81068450 movne r0, #1
8107
- b .L1446
8108
-.L1466:
8109
- mov r0, #1
8110
-.L1446:
8451
+.L1437:
81118452 ldr r3, [sp, #24]
81128453 tst r3, #4
8113
- beq .L1447
8114
- ldr r3, .L1491+12
8454
+ beq .L1438
8455
+ ldr r1, [fp, #3168]
81158456 mov r0, r10
8116
- ldr r2, [sp, #32]
8117
- add r3, r3, r2
8118
- ldr r1, [r3, #3164]
8119
- add r1, r5, r1
8457
+ add r1, r9, r1
81208458 bl SandiskProgTestBadBlock
8121
-.L1447:
8459
+.L1438:
81228460 cmp r0, #0
8123
- beq .L1448
8124
- mov r1, r6
8461
+ beq .L1439
81258462 ldr r2, [sp, #4]
8126
- ldr r0, .L1491+20
8127
- add r9, r9, #1
8463
+ mov r1, r7
8464
+ ldr r0, .L1477+36
8465
+ add r8, r8, #1
81288466 bl printk
8129
- ldr r1, [r4, #-1868]
8130
- mov ip, #1
8131
- uxth r9, r9
81328467 ldr r3, [sp, #12]
8133
- mov r0, r3, lsr #5
8134
- and r3, r3, #31
8135
- ldr r2, [r1, r0, asl #2]
8136
- orr r3, r2, ip, asl r3
8468
+ mov ip, #1
8469
+ ldr r2, [r4, #-1864]
8470
+ uxth r8, r8
8471
+ and r0, r3, #31
8472
+ lsr r1, r3, #5
8473
+ ldr r3, [r2, r1, lsl #2]
8474
+ orr r3, r3, ip, lsl r0
8475
+ str r3, [r2, r1, lsl #2]
81378476 ldr r2, [sp, #28]
8138
- str r3, [r1, r0, asl #2]
8139
- ldrb r3, [r7, #3152] @ zero_extendqisi2
8140
- mul r3, r3, r2
8141
- cmp r9, r3
8142
- bgt .L1449
8143
-.L1448:
8477
+ ldrb r3, [r5, #3156] @ zero_extendqisi2
8478
+ mul r3, r2, r3
8479
+ cmp r8, r3
8480
+ bgt .L1440
8481
+.L1439:
81448482 ldr r3, [sp, #4]
81458483 add r3, r3, #1
81468484 str r3, [sp, #4]
81478485 ldr r3, [sp, #16]
8148
- add r5, r5, r3
8149
- b .L1439
8150
-.L1449:
8151
- mov r2, r9
8152
- ldr r0, .L1491+24
8153
- mov r1, r6
8154
- bl printk
8155
- ldrb r3, [r7, #3152] @ zero_extendqisi2
8156
- ldr r2, [sp, #28]
8157
- mul r3, r3, r2
8158
- cmp r9, r3
8159
- blt .L1451
8160
- ldr r3, .L1491+4
8161
- mov r1, #0
8162
- ldr r0, [r4, #-1868]
8163
- ldrh r2, [r3, #20]
8164
- mov r2, r2, asl #9
8165
- bl ftl_memset
8166
-.L1451:
8167
- cmp r6, #0
8168
- bne .L1453
8169
- ldr r3, [r4, #-1784]
8170
- mov r5, r6
8171
- mov r9, #1
8172
- uxth r10, r3
8173
-.L1454:
8174
- ldr r3, .L1491+12
8175
- ldrb r3, [r3, #1] @ zero_extendqisi2
8176
- cmp r3, r10
8177
- bls .L1488
8178
- mov r0, r10
8179
- bl FlashTestBlk
8180
- cmp r0, #0
8181
- beq .L1455
8182
- mov r1, r10
8183
- ldr r0, .L1491+28
8184
- bl printk
8185
- ldr r1, [r4, #-1868]
8186
- mov r0, r10, lsr #5
8187
- add r5, r5, #1
8188
- and r3, r10, #31
8189
- ldr r2, [r1, r0, asl #2]
8190
- uxth r5, r5
8191
- orr r3, r2, r9, asl r3
8192
- str r3, [r1, r0, asl #2]
8193
-.L1455:
8194
- add r10, r10, #1
8195
- uxth r10, r10
8196
- b .L1454
8197
-.L1488:
8198
- sub fp, r8, #1
8199
- sub r9, r8, #50
8200
- mov r10, #1
8201
- uxth fp, fp
8202
-.L1457:
8203
- cmp fp, r9
8204
- ble .L1489
8486
+ add r9, r9, r3
8487
+ b .L1430
8488
+.L1447:
82058489 mov r0, fp
82068490 bl FlashTestBlk
82078491 cmp r0, #0
8208
- beq .L1458
8492
+ beq .L1446
82098493 mov r1, fp
8210
- ldr r0, .L1491+28
8494
+ mov r0, r9
82118495 bl printk
8212
- ldr r1, [r4, #-1868]
8213
- mov r0, fp, lsr #5
8496
+ ldr r1, [r4, #-1864]
8497
+ lsr r0, fp, #5
8498
+ add r6, r6, #1
82148499 and r3, fp, #31
8215
- ldr r2, [r1, r0, asl #2]
8216
- orr r3, r2, r10, asl r3
8217
- str r3, [r1, r0, asl #2]
8218
-.L1458:
8500
+ uxth r6, r6
8501
+ ldr r2, [r1, r0, lsl #2]
8502
+ orr r3, r2, r10, lsl r3
8503
+ str r3, [r1, r0, lsl #2]
8504
+.L1446:
8505
+ add fp, fp, #1
8506
+ uxth fp, fp
8507
+ b .L1445
8508
+.L1450:
8509
+ mov r0, fp
8510
+ bl FlashTestBlk
8511
+ cmp r0, #0
8512
+ beq .L1449
8513
+ mov r1, fp
8514
+ mov r0, r9
8515
+ bl printk
8516
+ ldr r1, [r4, #-1864]
8517
+ lsr r0, fp, #5
8518
+ and r3, fp, #31
8519
+ ldr r2, [r1, r0, lsl #2]
8520
+ orr r3, r2, r10, lsl r3
8521
+ str r3, [r1, r0, lsl #2]
8522
+.L1449:
82198523 sub fp, fp, #1
82208524 uxth fp, fp
8221
- b .L1457
8222
-.L1489:
8223
- ldr r3, .L1491+12
8224
- ldr r2, [r4, #-1784]
8225
- ldrb r3, [r3, #1] @ zero_extendqisi2
8226
- rsb r3, r2, r3
8227
- cmp r5, r3
8228
- bcc .L1453
8229
- ldr r3, .L1491+4
8230
- mov r1, #0
8231
- ldr r0, [r4, #-1868]
8232
- ldrh r2, [r3, #20]
8233
- mov r2, r2, asl #9
8234
- bl ftl_memset
8235
-.L1453:
8236
- ldrb r5, [sp, #8] @ zero_extendqisi2
8237
- sub r10, r8, #1
8238
- ldr r9, .L1491+16
8239
- uxth r10, r10
8240
- mul r5, r8, r5
8241
- add r9, r9, r6, asl #1
8242
-.L1461:
8243
- mov r1, r6
8244
- ldr r0, .L1491+32
8245
- mov r2, r10
8246
- bl printk
8247
- ldr r1, [r4, #-1868]
8248
-.L1462:
8249
- mov r2, r10, lsr #5
8250
- and r3, r10, #31
8251
- ldr r2, [r1, r2, asl #2]
8252
- mov r3, r2, lsr r3
8253
- ands r3, r3, #1
8254
- subne r10, r10, #1
8255
- uxthne r10, r10
8256
- bne .L1462
8257
-.L1490:
8258
- ldr r1, [sp, #20]
8259
- add r0, sp, #44
8260
- ldr r2, .L1491+36
8261
- strh r10, [r9] @ movhi
8262
- strh r10, [r1, #2] @ movhi
8263
- strh r2, [r1] @ movhi
8264
- strh r3, [r1, #8] @ movhi
8265
- mov r1, #1
8266
- ldr r3, [r4, #-1868]
8267
- mov r2, r1
8268
- str r3, [sp, #52]
8269
- ldr r3, [r4, #-1772]
8270
- str r3, [sp, #56]
8271
- add r3, r10, r5
8272
- mov r3, r3, asl #10
8273
- str r3, [sp, #48]
8274
- bl FlashEraseBlocks
8275
- mov r1, #1
8276
- mov r3, r1
8277
- mov r2, r1
8278
- add r0, sp, #44
8279
- bl FlashProgPages
8280
- ldr r3, [sp, #44]
8281
- cmp r3, #0
8282
- subne r10, r10, #1
8283
- uxthne r10, r10
8284
- bne .L1461
8285
-.L1467:
8525
+ b .L1448
8526
+.L1454:
8527
+ sub r5, r5, #1
8528
+ uxth r5, r5
8529
+ b .L1453
8530
+.L1429:
82868531 ldr r3, [sp, #8]
82878532 add r3, r3, #1
82888533 str r3, [sp, #8]
8289
- b .L1437
8290
-.L1487:
8291
- add sp, sp, #84
8292
- @ sp needed
8293
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8294
-.L1492:
8534
+ b .L1428
8535
+.L1478:
82958536 .align 2
8296
-.L1491:
8537
+.L1477:
82978538 .word .LANCHOR2
8298
- .word .LANCHOR2-2772
82998539 .word .LC27
83008540 .word .LANCHOR0
8301
- .word .LANCHOR2-1756
8302
- .word .LC28
8541
+ .word .LANCHOR2-2768
83038542 .word .LC29
83048543 .word .LC30
8544
+ .word .LANCHOR2-1754
83058545 .word .LC31
83068546 .word -3872
8547
+ .word .LC28
83078548 .fnend
83088549 .size FlashMakeFactorBbt, .-FlashMakeFactorBbt
83098550 .align 2
83108551 .global Ftl_log2
8552
+ .syntax unified
8553
+ .arm
8554
+ .fpu softvfp
83118555 .type Ftl_log2, %function
83128556 Ftl_log2:
83138557 .fnstart
....@@ -8316,20 +8560,24 @@
83168560 @ link register save eliminated.
83178561 mov r1, #0
83188562 mov r2, #1
8319
-.L1494:
8563
+.L1480:
83208564 cmp r2, r0
83218565 uxth r3, r1
83228566 add r1, r1, #1
8323
- movls r2, r2, asl #1
8324
- bls .L1494
8325
-.L1496:
8567
+ bls .L1481
83268568 sub r0, r3, #1
83278569 uxth r0, r0
83288570 bx lr
8571
+.L1481:
8572
+ lsl r2, r2, #1
8573
+ b .L1480
83298574 .fnend
83308575 .size Ftl_log2, .-Ftl_log2
83318576 .align 2
83328577 .global FtlPrintInfo
8578
+ .syntax unified
8579
+ .arm
8580
+ .fpu softvfp
83338581 .type FtlPrintInfo, %function
83348582 FtlPrintInfo:
83358583 .fnstart
....@@ -8341,316 +8589,324 @@
83418589 .size FtlPrintInfo, .-FtlPrintInfo
83428590 .align 2
83438591 .global FtlSysBlkNumInit
8592
+ .syntax unified
8593
+ .arm
8594
+ .fpu softvfp
83448595 .type FtlSysBlkNumInit, %function
83458596 FtlSysBlkNumInit:
83468597 .fnstart
83478598 @ args = 0, pretend = 0, frame = 0
83488599 @ frame_needed = 0, uses_anonymous_args = 0
83498600 @ link register save eliminated.
8350
- ldr r3, .L1500
8351
- cmp r0, #23
8352
- sub ip, r3, #1728
8353
- movls r0, #24
8354
- sub r1, r3, #1712
8355
- str r0, [r3, #-1740]
8356
- ldrh r2, [ip, #-8]
8357
- ldrh r1, [r1, #-14]
8358
- mul r2, r2, r0
8359
- rsb r0, r0, r1
8360
- ldr r1, [r3, #-1720]
8361
- strh r0, [ip] @ movhi
8601
+ ldr r3, .L1484
8602
+ cmp r0, #24
8603
+ movcc r0, #24
8604
+ sub r2, r3, #1728
8605
+ sub ip, r3, #1712
8606
+ ldrh r2, [r2, #-4]
8607
+ ldrh r1, [ip, #-10]
8608
+ str r0, [r3, #-1736]
8609
+ mul r2, r0, r2
8610
+ sub r0, r1, r0
8611
+ ldr r1, [r3, #-1716]
8612
+ strh r0, [ip, #-12] @ movhi
83628613 mov r0, #0
8363
- str r2, [r3, #-1732]
8364
- rsb r2, r2, r1
8365
- str r2, [r3, #-1724]
8614
+ str r2, [r3, #-1728]
8615
+ sub r2, r1, r2
8616
+ str r2, [r3, #-1720]
83668617 bx lr
8367
-.L1501:
8618
+.L1485:
83688619 .align 2
8369
-.L1500:
8620
+.L1484:
83708621 .word .LANCHOR2
83718622 .fnend
83728623 .size FtlSysBlkNumInit, .-FtlSysBlkNumInit
83738624 .align 2
83748625 .global FtlConstantsInit
8626
+ .syntax unified
8627
+ .arm
8628
+ .fpu softvfp
83758629 .type FtlConstantsInit, %function
83768630 FtlConstantsInit:
83778631 .fnstart
8378
- @ args = 0, pretend = 0, frame = 16
8632
+ @ args = 0, pretend = 0, frame = 24
83798633 @ frame_needed = 0, uses_anonymous_args = 0
8380
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8634
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
83818635 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8382
- .pad #20
8383
- sub sp, sp, #20
8384
- ldr r4, .L1529
8385
- mov ip, r0
8386
- ldrh r8, [r0, #8]
8387
- mov r10, #0
8388
- ldrh r5, [r0, #10]
8389
- add r3, r4, #4
8390
- ldrh r7, [r0, #12]
8391
- ldrh r6, [r0, #14]
8392
- strh r8, [r4, #-4] @ movhi
8393
- strh r5, [r4, #-2] @ movhi
8394
- strh r7, [r4] @ movhi
8395
- strh r6, [r4, #-14] @ movhi
8396
-.L1503:
8397
- strb r10, [r10, r3]
8398
- add r10, r10, #1
8399
- cmp r10, #32
8400
- bne .L1503
8401
- ldrh r2, [ip, #14]
8402
- ldrh r3, [ip, #20]
8403
- cmp r3, r2, lsr #8
8404
- bcs .L1504
8405
- sub r3, r5, #1
8406
- uxtb r9, r7
8407
- mul r3, r7, r3
8408
- mov fp, r9, asl #1
8409
- uxtb fp, fp
8410
- str r3, [sp, #4]
8411
- mov r3, #0
8412
-.L1505:
8413
- cmp r3, r7
8414
- bcs .L1507
8415
- ldr r1, [sp, #4]
8416
- uxtb r2, r3
8417
- ldr r0, .L1529+4
8418
- add r1, r3, r1
8419
- ldr lr, .L1529+4
8420
- add r1, r0, r1
8421
- str r1, [sp, #8]
8422
- mov r1, #0
8423
- rsb r0, r7, r3
8424
- mov r10, r1
8425
- add r0, lr, r0
8426
- str r0, [sp, #12]
8427
-.L1508:
8428
- cmp r10, r5
8429
- add r1, r1, r7
8430
- bcs .L1528
8431
- ldr r0, [sp, #12]
8432
- add r10, r10, #1
8433
- strb r2, [r0, r1]
8434
- add r0, r2, r9
8435
- add r2, r2, fp
8436
- mov lr, r0
8437
- ldr r0, [sp, #8]
8438
- uxtb r2, r2
8439
- strb lr, [r0, r1]
8440
- b .L1508
8441
-.L1528:
8442
- add r3, r3, #1
8443
- b .L1505
8444
-.L1507:
8445
- mov r5, r5, asl #1
8446
- mov r6, r6, lsr #1
8447
- strh r5, [r4, #-2] @ movhi
8448
- strh r6, [r4, #-14] @ movhi
8449
-.L1504:
8450
- ldr r6, .L1529+8
8451
- cmp r8, #1
8452
- mov r3, #5
8453
- ldrh r9, [ip, #16]
8454
- ldr r5, .L1529+12
8455
- strh r3, [r6, #-12] @ movhi
8456
- mov r3, #0
8457
- streqh r8, [r6, #-12] @ movhi
8458
- sub r10, r5, #1728
8459
- ldrh r8, [r4, #-2]
8460
- strh r3, [r6, #-10] @ movhi
8461
- mov r3, #4352
8462
- strh r3, [r6, #-8] @ movhi
8463
- ldr r3, .L1529+16
8464
- smulbb r8, r8, r7
8465
- ldrh r4, [r4, #-14]
8466
- ldrb fp, [r3] @ zero_extendqisi2
8467
- ldrh r1, [ip, #18]
8468
- cmp fp, #0
8469
- strh r9, [r6, #-4] @ movhi
8470
- smulbb r7, r4, r7
8471
- ldrne r3, .L1529+8
8472
- uxth r8, r8
8473
- movne r2, #384
8474
- strh r1, [r6, #-2] @ movhi
8475
- strneh r2, [r3, #-8] @ movhi
8476
- smulbb r3, r8, r9
8477
- ldrh r2, [ip, #20]
8478
- strh r7, [r6, #-6] @ movhi
8479
- sub r7, r5, #1648
8480
- strh r8, [r10, #-8] @ movhi
8481
- mov r0, r2
8482
- strh r2, [r7, #-14] @ movhi
8483
- str r1, [sp, #12]
8484
- strh r3, [r6] @ movhi
8485
- str ip, [sp, #8]
8486
- str r2, [sp, #4]
8487
- bl Ftl_log2
8488
- cmp r4, #1024
8489
- ldr r2, [sp, #4]
8490
- mov r3, r0
8491
- strh r0, [r7, #-12] @ movhi
8492
- ldr ip, [sp, #8]
8493
- mov r0, r2, asl #9
8494
- ldr r1, [sp, #12]
8495
- str r3, [sp, #4]
8496
- uxth r0, r0
8497
- strh r0, [r7, #-10] @ movhi
8498
- mul r1, r1, r2
8499
- mov r0, r0, lsr #8
8500
- strh r0, [r7, #-8] @ movhi
8501
- ldrh r0, [ip, #26]
8502
- subhi ip, r5, #1664
8503
- strh r0, [r7, #-6] @ movhi
8504
- mul r0, r4, r8
8505
- str r0, [r5, #-1720]
8506
- uxtbhi r0, r4
8507
- strhih r0, [ip, #-10] @ movhi
8508
- ldrh r0, [r6, #-10]
8509
- rsb r0, r0, r4
8510
- mov r4, r4, asl #6
8511
- mul r0, r0, r8
8512
- mul r0, r2, r0
8513
- mul r9, r9, r0
8514
- ldrh r0, [r6, #-8]
8515
- mov r0, r0, asl #3
8516
- mov r9, r9, asr #11
8517
- str r9, [r5, #-1652]
8518
- bl __aeabi_idiv
8519
- mov r1, r8
8520
- uxth r0, r0
8521
- ldr r3, [sp, #4]
8522
- cmp r0, #4
8523
- strhih r0, [r7] @ movhi
8524
- movls r2, #4
8525
- strlsh r2, [r7] @ movhi
8526
- cmp fp, #0
8527
- ldr fp, .L1529+12
8528
- ldrh r0, [r7]
8529
- movne r2, #640
8530
- strneh r2, [r6, #-8] @ movhi
8531
- ldrh r2, [r6, #-8]
8532
- sub r9, fp, #1632
8533
- mov r2, r2, asr r3
8534
- add r3, r3, #9
8535
- mov r4, r4, asr r3
8536
- strh r4, [r9, #-12] @ movhi
8537
- add r2, r2, #2
8538
- strh r2, [r9, #-14] @ movhi
8539
- uxth r4, r4
8540
- mul r3, r8, r4
8541
- add r4, r4, #8
8542
- str r3, [r5, #-1640]
8543
- bl __aeabi_uidiv
8544
- cmp r8, #1
8545
- uxtah r0, r4, r0
8546
- strne r0, [fp, #-1740]
8547
- addeq r4, r0, #4
8548
- streq r4, [fp, #-1740]
8549
- ldr r3, [r5, #-1740]
8550
- ldr r4, .L1529+12
8551
- uxth r0, r3
8552
- sub fp, r4, #1648
8553
- bl FtlSysBlkNumInit
8554
- ldr r3, [r5, #-1740]
8555
- ldr r2, [r5, #-1724]
8556
- mov r0, #2048
8557
- ldrh r8, [r7, #-12]
8558
- str r3, [r5, #-1636]
8559
- ldrh r3, [r6, #-4]
8560
- mov r2, r2, asl #2
8561
- add r8, r8, #9
8562
- ldrh r6, [r7, #-14]
8563
- mul r3, r3, r2
8564
- mov r1, r6
8565
- mov r8, r3, lsr r8
8566
- add r8, r8, #2
8567
- uxth r8, r8
8568
- strh r8, [r9] @ movhi
8569
- bl __aeabi_idiv
8570
- mov r3, #0
8571
- ldrb r1, [r5, #-2744] @ zero_extendqisi2
8572
- sub r9, r4, #1616
8573
- str r3, [r5, #-2740]
8574
- ldrh r3, [r7]
8575
- cmp r1, #0
8576
- add r2, r3, #3
8577
- strh r2, [r7] @ movhi
8578
- ldr r7, [r5, #-1640]
8579
- add r2, r7, #3
8580
- str r2, [r5, #-1640]
8581
- strh r0, [r9, #-14] @ movhi
8582
- addne r3, r3, #4
8583
- addne r7, r7, #5
8584
- strneh r3, [fp] @ movhi
8585
- strne r7, [r4, #-1640]
8586
- bne .L1518
8587
-.L1517:
8588
- cmp r2, #7
8589
- movls r3, #8
8590
- strls r3, [r4, #-1640]
8591
-.L1518:
8592
- ldrh r2, [r10]
8593
- mov r3, #0
8594
- strh r3, [r9, #-12] @ movhi
8636
+ .pad #28
8637
+ sub sp, sp, #28
8638
+ ldr ip, .L1514
8639
+ mov r9, r0
8640
+ ldrh r4, [r0, #14]
8641
+ ldrh r5, [r0, #8]
8642
+ mov r2, ip
8643
+ ldrh r1, [r0, #10]
8644
+ ldrh r3, [r0, #12]
85958645 mov r0, #0
8596
- mov r3, r2, lsr #3
8597
- add r3, r3, r2, asl #1
8646
+ strh r4, [ip, #-10] @ movhi
8647
+ str ip, [sp, #4]
8648
+ add ip, ip, #6
8649
+ strh r5, [r2], #16 @ movhi
8650
+ strh r1, [r2, #-14] @ movhi
8651
+ strh r3, [r2, #-12] @ movhi
8652
+ str r2, [sp, #8]
8653
+.L1487:
8654
+ strb r0, [r0, ip]
8655
+ add r0, r0, #1
8656
+ cmp r0, #32
8657
+ bne .L1487
8658
+ ldrh ip, [r9, #14]
8659
+ ldrh r0, [r9, #20]
8660
+ cmp r0, ip, lsr #8
8661
+ bcs .L1488
8662
+ uxtb r8, r3
8663
+ ldr r7, .L1514+4
8664
+ lsl r0, r8, #1
8665
+ uxtb r0, r0
8666
+ str r0, [sp, #12]
8667
+ sub r0, r1, #1
8668
+ mul r0, r3, r0
8669
+ str r0, [sp, #20]
8670
+ mov r0, #0
8671
+.L1489:
8672
+ cmp r0, r3
8673
+ bcs .L1491
8674
+ ldr r2, [sp, #20]
8675
+ sub fp, r0, r3
8676
+ uxtb ip, r0
8677
+ add fp, r7, fp
8678
+ add lr, r0, r2
8679
+ add r2, r7, lr
8680
+ mov lr, #0
8681
+ str r2, [sp, #16]
8682
+ mov r6, lr
8683
+ b .L1492
8684
+.L1490:
8685
+ ldr r2, [sp, #16]
8686
+ add r10, r8, ip
8687
+ strb ip, [fp, lr]
8688
+ add r6, r6, #1
8689
+ strb r10, [r2, lr]
8690
+ ldr r2, [sp, #12]
8691
+ add ip, r2, ip
8692
+ uxtb ip, ip
8693
+.L1492:
8694
+ cmp r6, r1
8695
+ add lr, lr, r3
8696
+ bcc .L1490
8697
+ add r0, r0, #1
8698
+ b .L1489
8699
+.L1491:
8700
+ ldr r2, [sp, #8]
8701
+ lsl r1, r1, #1
8702
+ lsr r4, r4, #1
8703
+ strh r1, [r2, #-14] @ movhi
8704
+ ldr r2, [sp, #4]
8705
+ strh r4, [r2, #-10] @ movhi
8706
+.L1488:
8707
+ ldr r2, [sp, #8]
8708
+ cmp r5, #1
8709
+ ldr r1, .L1514+8
8710
+ mov r0, #5
8711
+ ldrh r10, [r9, #16]
8712
+ ldrh r7, [r2, #-14]
8713
+ strh r0, [r1, #-10] @ movhi
8714
+ mov r0, #0
8715
+ strheq r5, [r1, #-10] @ movhi
8716
+ ldr r5, .L1514+12
8717
+ smulbb r7, r7, r3
8718
+ strh r0, [r1, #-8] @ movhi
8719
+ mov r0, #4352
8720
+ sub r2, r5, #1728
8721
+ strh r0, [r1, #-6] @ movhi
8722
+ uxth r7, r7
8723
+ ldr r0, .L1514+16
8724
+ sub r6, r5, #1664
8725
+ strh r7, [r2, #-4] @ movhi
8726
+ sub r8, r5, #1648
8727
+ ldr r2, [sp, #4]
8728
+ ldrb fp, [r0, #36] @ zero_extendqisi2
8729
+ strh r10, [r6, #-2] @ movhi
8730
+ ldrh r4, [r2, #-10]
8731
+ cmp fp, #0
8732
+ ldrh r2, [r9, #20]
8733
+ movne r0, #384
8734
+ strhne r0, [r1, #-6] @ movhi
8735
+ smulbb r3, r3, r4
8736
+ ldrh r1, [r9, #18]
8737
+ mov r0, r2
8738
+ strh r2, [r8, #-12] @ movhi
8739
+ str r2, [sp, #8]
8740
+ strh r3, [r6, #-4] @ movhi
8741
+ smulbb r3, r7, r10
8742
+ strh r1, [r6] @ movhi
8743
+ str r1, [sp, #12]
8744
+ strh r3, [r8, #-14] @ movhi
8745
+ bl Ftl_log2
8746
+ ldr r2, [sp, #8]
8747
+ mov r3, r0
8748
+ strh r0, [r8, #-10] @ movhi
8749
+ cmp r4, #1024
8750
+ ldr r1, [sp, #12]
8751
+ str r3, [sp, #8]
8752
+ lsl r0, r2, #9
8753
+ uxth r0, r0
8754
+ mul r1, r2, r1
8755
+ strh r0, [r8, #-8] @ movhi
8756
+ lsr r0, r0, #8
8757
+ strh r0, [r8, #-6] @ movhi
8758
+ ldrh r0, [r9, #26]
8759
+ ldr r9, .L1514+20
8760
+ strh r0, [r8, #-4] @ movhi
8761
+ mul r0, r4, r7
8762
+ str r0, [r5, #-1716]
8763
+ uxtbhi r0, r4
8764
+ strhhi r0, [r6, #-8] @ movhi
8765
+ ldrh r0, [r6, #-8]
8766
+ sub r0, r4, r0
8767
+ lsl r4, r4, #6
8768
+ mul r0, r7, r0
8769
+ mul r0, r2, r0
8770
+ mul r10, r10, r0
8771
+ ldrh r0, [r6, #-6]
8772
+ asr r10, r10, #11
8773
+ lsl r0, r0, #3
8774
+ str r10, [r5, #-1648]
8775
+ bl __aeabi_idiv
8776
+ uxth r0, r0
8777
+ ldr r3, [sp, #8]
8778
+ mov r1, r7
8779
+ cmp r0, #4
8780
+ movls r2, #4
8781
+ strhhi r0, [r9, #-12] @ movhi
8782
+ strhls r2, [r9, #-12] @ movhi
8783
+ cmp fp, #0
8784
+ movne r2, #640
8785
+ ldrh r0, [r9, #-12]
8786
+ strhne r2, [r6, #-6] @ movhi
8787
+ ldrh r2, [r6, #-6]
8788
+ asr r2, r2, r3
8789
+ add r3, r3, #9
8790
+ asr r4, r4, r3
8791
+ add r2, r2, #2
8792
+ strh r4, [r9, #-8] @ movhi
8793
+ uxth r4, r4
8794
+ strh r2, [r9, #-10] @ movhi
8795
+ mul r3, r4, r7
8796
+ add r4, r4, #8
8797
+ str r3, [r5, #-1636]
8798
+ bl __aeabi_uidiv
8799
+ uxtah r0, r4, r0
8800
+ cmp r7, #1
8801
+ sub r3, r5, #1728
8802
+ ldr r7, .L1514+24
8803
+ addeq r0, r0, #4
8804
+ sub r3, r3, #8
8805
+ str r0, [r5, #-1736]
8806
+ ldrh r0, [r3]
8807
+ bl FtlSysBlkNumInit
8808
+ ldr r4, [r5, #-1720]
8809
+ mov r0, #2048
8810
+ ldr r3, [r5, #-1736]
8811
+ str r3, [r5, #-1632]
8812
+ lsl r3, r4, #2
8813
+ ldrh r4, [r6, #-2]
8814
+ ldrh r6, [r8, #-12]
8815
+ mul r4, r4, r3
8816
+ ldrh r3, [r8, #-10]
8817
+ mov r1, r6
8818
+ add r3, r3, #9
8819
+ lsr r4, r4, r3
8820
+ add r4, r4, #2
8821
+ uxth r4, r4
8822
+ strh r4, [r7, #-12] @ movhi
8823
+ bl __aeabi_idiv
8824
+ ldrh r2, [r9, #-12]
8825
+ mov r3, #0
8826
+ strh r0, [r7, #-10] @ movhi
8827
+ str r3, [r5, #-2736]
8828
+ ldrb r0, [r5, #-2740] @ zero_extendqisi2
8829
+ add r3, r2, #3
8830
+ strh r3, [r9, #-12] @ movhi
8831
+ ldr r3, [r5, #-1636]
8832
+ cmp r0, #0
8833
+ addne r2, r2, #4
8834
+ add r1, r3, #3
8835
+ strhne r2, [r9, #-12] @ movhi
8836
+ str r1, [r5, #-1636]
8837
+ addne r3, r3, #5
8838
+ bne .L1513
8839
+ cmp r1, #7
8840
+ bhi .L1502
8841
+ mov r3, #8
8842
+.L1513:
8843
+ str r3, [r5, #-1636]
8844
+.L1502:
8845
+ mov r3, #0
8846
+ mov r0, #0
8847
+ strh r3, [r7, #-8] @ movhi
8848
+ ldr r3, [sp, #4]
8849
+ ldrh r2, [r3, #-12]
8850
+ lsr r3, r2, #3
8851
+ add r3, r3, r2, lsl #1
85988852 add r3, r3, #52
8599
- add r8, r3, r8, asl #2
8600
- cmp r8, r6, asl #9
8601
- ldrcc r3, .L1529+20
8602
- movcc r2, #1
8603
- strcch r2, [r3, #-12] @ movhi
8604
- add sp, sp, #20
8853
+ add r4, r3, r4, lsl #2
8854
+ cmp r4, r6, lsl #9
8855
+ movcc r3, #1
8856
+ strhcc r3, [r7, #-8] @ movhi
8857
+ add sp, sp, #28
86058858 @ sp needed
8606
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8607
-.L1530:
8859
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8860
+.L1515:
86088861 .align 2
8609
-.L1529:
8862
+.L1514:
86108863 .word .LANCHOR2-1712
8611
- .word .LANCHOR2-1708
8864
+ .word .LANCHOR2-1706
86128865 .word .LANCHOR2-1664
86138866 .word .LANCHOR2
86148867 .word .LANCHOR0
8868
+ .word .LANCHOR2-1632
86158869 .word .LANCHOR2-1616
86168870 .fnend
86178871 .size FtlConstantsInit, .-FtlConstantsInit
86188872 .align 2
86198873 .global FtlMemInit
8874
+ .syntax unified
8875
+ .arm
8876
+ .fpu softvfp
86208877 .type FtlMemInit, %function
86218878 FtlMemInit:
86228879 .fnstart
8623
- @ args = 0, pretend = 0, frame = 8
8880
+ @ args = 0, pretend = 0, frame = 0
86248881 @ frame_needed = 0, uses_anonymous_args = 0
8625
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
8626
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8627
- .pad #12
8882
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
8883
+ .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
86288884 movw r3, #65535
8629
- ldr r4, .L1636
8885
+ ldr r4, .L1619
8886
+ mvn r2, #0
86308887 mov r5, #0
86318888 mov r0, #1024
8632
- mov r10, #12
8633
- sub r6, r4, #1520
8634
- sub r2, r4, #1536
8635
- sub r8, r4, #1616
8636
- str r3, [r4, #-1556]
8637
- strh r5, [r6, #-8] @ movhi
8638
- mvn r3, #0
8639
- strh r5, [r6, #-6] @ movhi
8640
- sub r9, r4, #1728
8641
- strh r3, [r2, #-4] @ movhi
8642
- strh r3, [r2, #-2] @ movhi
8643
- strh r3, [r2] @ movhi
8644
- strh r3, [r6, #-14] @ movhi
8645
- mov r3, #32
8646
- strh r5, [r6, #-4] @ movhi
8647
- strh r3, [r6, #-12] @ movhi
8648
- mov r3, #128
8649
- strh r5, [r6, #-2] @ movhi
8650
- strh r3, [r6, #-10] @ movhi
8889
+ mov r8, #12
8890
+ mov r10, #36
8891
+ str r3, [r4, #-1552]
8892
+ sub r3, r4, #1536
8893
+ strh r2, [r3] @ movhi
8894
+ sub r3, r4, #1520
8895
+ strh r2, [r3, #-14] @ movhi
86518896 sub r6, r4, #1648
8652
- strh r5, [r8, #-10] @ movhi
8653
- str r5, [r4, #-1624]
8897
+ strh r2, [r3, #-12] @ movhi
8898
+ sub r7, r4, #1616
8899
+ strh r2, [r3, #-10] @ movhi
8900
+ mov r2, #32
8901
+ strh r2, [r3, #-8] @ movhi
8902
+ mov r2, #128
8903
+ strh r2, [r3, #-6] @ movhi
8904
+ sub r9, r4, #1728
8905
+ strh r5, [r3, #-4] @ movhi
8906
+ strh r5, [r3, #-2] @ movhi
8907
+ strh r5, [r3] @ movhi
8908
+ sub r3, r4, #1504
8909
+ strh r5, [r7, #-6] @ movhi
86548910 str r5, [r4, #-1620]
86558911 str r5, [r4, #-1616]
86568912 str r5, [r4, #-1612]
....@@ -8667,574 +8923,599 @@
86678923 str r5, [r4, #-1568]
86688924 str r5, [r4, #-1564]
86698925 str r5, [r4, #-1560]
8670
- str r5, [r4, #-1552]
8926
+ str r5, [r4, #-1556]
86718927 str r5, [r4, #-1548]
86728928 str r5, [r4, #-1544]
8673
- ldrh r1, [r6, #-14]
8929
+ str r5, [r4, #-1540]
8930
+ strh r5, [r3, #-14] @ movhi
8931
+ ldrh r1, [r6, #-12]
86748932 bl __aeabi_idiv
8675
- ldrh r7, [r9, #-8]
8676
- str r5, [r4, #-1516]
8677
- ldr r5, .L1636+4
8678
- mov r7, r7, asl #2
8679
- cmp r0, r7
8680
- str r0, [r4, #-1520]
8681
- ldrh r0, [r5]
8682
- strhi r7, [r4, #-1520]
8683
- mov r7, r5
8684
- mov r0, r0, asl #1
8933
+ ldrh r3, [r9, #-4]
8934
+ str r0, [r4, #-1516]
8935
+ str r5, [r4, #-1512]
8936
+ lsl r3, r3, #2
8937
+ cmp r0, r3
8938
+ ldrh r0, [r6, #-14]
8939
+ strhi r3, [r4, #-1516]
8940
+ lsl r0, r0, #1
86858941 bl ftl_malloc
8686
- str r0, [r4, #-1512]
8687
- ldrh r0, [r7], #-48
8688
- mul r0, r10, r0
8689
- bl ftl_malloc
8690
- ldrh fp, [r9, #-8]
8691
- mov r3, #36
8692
- mul fp, r3, fp
8693
- mov r2, fp, asl #3
86948942 str r0, [r4, #-1508]
8695
- mov r0, r2
8696
- str r3, [sp, #4]
8697
- str r2, [sp]
8943
+ ldrh r0, [r6, #-14]
8944
+ mul r0, r8, r0
86988945 bl ftl_malloc
8946
+ ldrh r5, [r9, #-4]
86998947 str r0, [r4, #-1504]
8948
+ mul r5, r10, r5
8949
+ lsl fp, r5, #3
87008950 mov r0, fp
87018951 bl ftl_malloc
8702
- ldr r2, [sp]
87038952 str r0, [r4, #-1500]
8704
- mov r0, r2
8953
+ mov r0, r5
87058954 bl ftl_malloc
87068955 str r0, [r4, #-1496]
87078956 mov r0, fp
87088957 bl ftl_malloc
87098958 str r0, [r4, #-1492]
8710
- mov r0, fp
8959
+ mov r0, r5
87118960 bl ftl_malloc
8712
- ldr r3, [sp, #4]
87138961 str r0, [r4, #-1488]
8714
- ldr r0, [r4, #-1520]
8715
- mul r0, r3, r0
8962
+ mov r0, r5
87168963 bl ftl_malloc
8717
- ldrh fp, [r6, #-10]
8718
- ldrh r3, [r9, #-8]
8719
- mov r3, r3, asl #1
8720
- add r3, r3, #1
8721
- str r3, [r4, #-1480]
87228964 str r0, [r4, #-1484]
8723
- mov r0, fp
8724
- bl ftl_malloc
8725
- str r0, [r4, #-1476]
8726
- mov r0, fp
8727
- bl ftl_malloc
8728
- str r0, [r4, #-1472]
8729
- mov r0, fp
8730
- bl ftl_malloc
8731
- str r0, [r4, #-1468]
8732
- ldr r0, [r4, #-1480]
8733
- mul r0, r0, fp
8734
- bl ftl_malloc
8735
- str r0, [r4, #-1464]
8736
- ldr r0, [r4, #-1520]
8737
- mul r0, r0, fp
8738
- bl ftl_malloc
8739
- str r0, [r4, #-1460]
8740
- mov r0, fp
8741
- bl ftl_malloc
8742
- str r0, [r4, #-1456]
8743
- mov r0, fp
8744
- bl ftl_malloc
8745
- str r0, [r4, #-1452]
8746
- ldr r0, [r4, #-1480]
8965
+ ldr r0, [r4, #-1516]
87478966 mul r0, r10, r0
87488967 bl ftl_malloc
8749
- ldrh r3, [r6, #-8]
8750
- ldrh r9, [r9, #-8]
8751
- mul r9, r9, r3
8968
+ ldrh r3, [r9, #-4]
8969
+ ldrh r5, [r6, #-8]
8970
+ str r0, [r4, #-1480]
8971
+ lsl r3, r3, #1
8972
+ mov r0, r5
8973
+ add r3, r3, #1
8974
+ str r3, [r4, #-1476]
8975
+ bl ftl_malloc
8976
+ str r0, [r4, #-1472]
8977
+ mov r0, r5
8978
+ bl ftl_malloc
8979
+ str r0, [r4, #-1468]
8980
+ mov r0, r5
8981
+ bl ftl_malloc
8982
+ str r0, [r4, #-1464]
8983
+ ldr r0, [r4, #-1476]
8984
+ mul r0, r0, r5
8985
+ bl ftl_malloc
8986
+ str r0, [r4, #-1460]
8987
+ ldr r0, [r4, #-1516]
8988
+ mul r0, r0, r5
8989
+ bl ftl_malloc
8990
+ str r0, [r4, #-1456]
8991
+ mov r0, r5
8992
+ bl ftl_malloc
8993
+ str r0, [r4, #-1452]
8994
+ mov r0, r5
8995
+ bl ftl_malloc
87528996 str r0, [r4, #-1448]
8753
- mov r0, r9
8997
+ ldr r0, [r4, #-1476]
8998
+ mul r0, r8, r0
87548999 bl ftl_malloc
9000
+ ldrh r3, [r6, #-6]
9001
+ ldrh r5, [r9, #-4]
87559002 str r0, [r4, #-1444]
8756
- mov r0, r9, asl #3
9003
+ mul r5, r5, r3
9004
+ mov r0, r5
87579005 bl ftl_malloc
8758
- ldrh r3, [r6, #-8]
87599006 str r0, [r4, #-1440]
8760
- ldr r0, [r4, #-1480]
8761
- mul r0, r0, r3
9007
+ lsl r0, r5, #3
9008
+ ldr r5, .L1619+4
87629009 bl ftl_malloc
8763
- ldrh r3, [r6, #-8]
9010
+ ldrh r3, [r6, #-6]
87649011 str r0, [r4, #-1436]
8765
- ldr r0, [r4, #-1520]
9012
+ add r9, r5, #288
9013
+ ldr r0, [r4, #-1476]
87669014 mul r0, r0, r3
87679015 bl ftl_malloc
9016
+ ldrh r3, [r6, #-6]
87689017 str r0, [r4, #-1432]
8769
- ldrh r0, [r7, #-14]
8770
- mov r0, r0, asl #1
8771
- uxth r0, r0
8772
- strh r0, [r5, #236] @ movhi
9018
+ ldr r0, [r4, #-1516]
9019
+ mul r0, r0, r3
87739020 bl ftl_malloc
8774
- str r0, [r4, #-1424]
8775
- ldrh r0, [r5, #236]
9021
+ str r0, [r4, #-1428]
9022
+ ldrh r0, [r5, #-10]
9023
+ lsl r0, r0, #1
9024
+ uxth r0, r0
9025
+ strh r0, [r9] @ movhi
9026
+ bl ftl_malloc
9027
+ str r0, [r4, #-1420]
9028
+ ldrh r0, [r9]
9029
+ ldr r3, .L1619+8
87769030 add r0, r0, #544
87779031 add r0, r0, #3
8778
- mov r0, r0, lsr #9
8779
- strh r0, [r5, #236] @ movhi
8780
- mov r0, r0, asl #9
9032
+ lsr r0, r0, #9
9033
+ strh r0, [r9] @ movhi
9034
+ and r0, r3, r0, lsl #9
87819035 bl ftl_malloc
8782
- ldrh r9, [r7, #-14]
8783
- mov r9, r9, asl #1
8784
- str r0, [r4, #-1420]
8785
- add r0, r0, #32
9036
+ ldrh r9, [r5, #-10]
87869037 str r0, [r4, #-1416]
8787
- mov r0, r9
8788
- bl ftl_malloc
9038
+ add r0, r0, #32
87899039 str r0, [r4, #-1412]
9040
+ lsl r9, r9, #1
87909041 mov r0, r9
87919042 bl ftl_malloc
8792
- ldr r9, [r4, #-1640]
8793
- mov r9, r9, asl #1
87949043 str r0, [r4, #-1408]
87959044 mov r0, r9
87969045 bl ftl_malloc
9046
+ ldr r9, [r4, #-1636]
87979047 str r0, [r4, #-1404]
9048
+ lsl r9, r9, #1
87989049 mov r0, r9
87999050 bl ftl_malloc
88009051 str r0, [r4, #-1400]
8801
- ldrh r0, [r7, #-14]
8802
- mov r0, r0, lsr #3
8803
- add r0, r0, #4
9052
+ mov r0, r9
88049053 bl ftl_malloc
88059054 str r0, [r4, #-1396]
8806
- ldrh r0, [r6]
8807
- mov r0, r0, asl #1
9055
+ ldrh r0, [r5, #-10]
9056
+ lsr r0, r0, #3
9057
+ add r0, r0, #4
9058
+ bl ftl_malloc
9059
+ ldr r3, .L1619+12
9060
+ str r0, [r3, #32]
9061
+ ldrh r0, [r5, #68]
9062
+ lsl r0, r0, #1
88089063 bl ftl_malloc
88099064 str r0, [r4, #-1392]
8810
- ldrh r0, [r6]
8811
- mov r0, r0, asl #1
9065
+ ldrh r0, [r5, #68]
9066
+ lsl r0, r0, #1
88129067 bl ftl_malloc
88139068 str r0, [r4, #-1388]
8814
- ldrh r0, [r6]
8815
- mov r0, r0, asl #2
9069
+ ldrh r0, [r5, #68]
9070
+ lsl r0, r0, #2
88169071 bl ftl_malloc
88179072 str r0, [r4, #-1384]
8818
- ldrh r0, [r5, #18]
8819
- mov r0, r0, asl #2
9073
+ ldrh r0, [r5, #70]
9074
+ lsl r0, r0, #2
88209075 bl ftl_malloc
8821
- ldrh r2, [r5, #18]
9076
+ ldrh r2, [r5, #70]
88229077 mov r1, #0
8823
- mov r2, r2, asl #2
88249078 str r0, [r4, #-1380]
9079
+ lsl r2, r2, #2
88259080 bl ftl_memset
8826
- ldrh r9, [r5, #32]
8827
- mov r9, r9, asl #2
9081
+ ldrh r9, [r7, #-12]
9082
+ lsl r9, r9, #2
88289083 mov r0, r9
88299084 bl ftl_malloc
88309085 str r0, [r4, #-1376]
88319086 mov r0, r9
88329087 bl ftl_malloc
88339088 str r0, [r4, #-1372]
8834
- ldr r0, [r4, #-1640]
8835
- mov r0, r0, asl #2
9089
+ ldr r0, [r4, #-1636]
9090
+ lsl r0, r0, #2
88369091 bl ftl_malloc
88379092 str r0, [r4, #-1368]
8838
- ldrh r0, [r8, #-14]
8839
- mul r0, r10, r0
9093
+ ldrh r0, [r7, #-10]
9094
+ mul r0, r8, r0
88409095 bl ftl_malloc
8841
- ldrh r3, [r8, #-14]
9096
+ ldrh r3, [r7, #-10]
9097
+ add r7, r5, #16
88429098 str r0, [r4, #-1364]
8843
- ldrh r0, [r6, #-10]
8844
- add r6, r5, #320
9099
+ ldrh r0, [r6, #-8]
9100
+ add r6, r5, #368
88459101 mul r0, r0, r3
88469102 bl ftl_malloc
8847
- ldrh r3, [r7, #-14]
9103
+ ldrh r3, [r5, #-10]
88489104 str r0, [r4, #-1360]
88499105 mov r0, #6
88509106 mul r0, r0, r3
88519107 bl ftl_malloc
8852
- ldrh r3, [r5, #-6]
8853
- add r5, r5, #344
8854
- add r3, r3, #31
8855
- mov r3, r3, asr #5
8856
- strh r3, [r6, #-8] @ movhi
88579108 str r0, [r4, #-1356]
8858
- ldrh r0, [r7, #-2]
9109
+ ldrh r0, [r5, #44]
9110
+ ldrh r3, [r5, #2]
9111
+ add r0, r0, #31
9112
+ asr r0, r0, #5
9113
+ strh r0, [r6, #-8] @ movhi
88599114 mul r0, r0, r3
8860
- mov r0, r0, asl #2
9115
+ lsl r0, r0, #2
88619116 bl ftl_malloc
88629117 ldrh r2, [r6, #-8]
8863
- ldrh ip, [r7, #-2]
88649118 mov r3, #1
8865
- mov r2, r2, asl #2
8866
- mov r1, r2
9119
+ ldrh ip, [r5, #2]
9120
+ add r5, r5, #392
88679121 str r0, [r4, #-1320]
8868
-.L1533:
9122
+ lsl r2, r2, #2
9123
+ mov r1, r2
9124
+.L1518:
88699125 cmp r3, ip
8870
- bcs .L1634
9126
+ bcc .L1519
9127
+ add r3, r6, r3, lsl #2
9128
+ mov r2, #0
9129
+ add r6, r6, #52
9130
+ add r3, r3, #20
9131
+.L1520:
9132
+ cmp r6, r3
9133
+ bne .L1521
9134
+ ldr r3, [r4, #-1400]
9135
+ cmp r3, #0
9136
+ bne .L1522
9137
+.L1524:
9138
+ ldr r1, .L1619+16
9139
+ ldr r0, .L1619+20
9140
+ bl printk
9141
+ mvn r0, #0
9142
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
9143
+.L1519:
88719144 ldr r0, [r4, #-1320]
88729145 add r3, r3, #1
88739146 add r0, r0, r1
88749147 add r1, r1, r2
88759148 str r0, [r5, #4]!
8876
- b .L1533
8877
-.L1634:
8878
- ldr r2, .L1636+8
8879
- mov r1, #0
8880
-.L1535:
8881
- cmp r3, #8
8882
- addne r0, r2, r3, asl #2
8883
- addne r3, r3, #1
8884
- strne r1, [r0, #28]
8885
- bne .L1535
8886
-.L1635:
8887
- ldr r2, [r4, #-1404]
8888
- ldr r3, .L1636
8889
- cmp r2, #0
8890
- bne .L1537
8891
-.L1539:
8892
- ldr r0, .L1636+12
8893
- ldr r1, .L1636+16
8894
- bl printk
8895
- mvn r0, #0
8896
- b .L1538
8897
-.L1537:
8898
- ldr r2, [r3, #-1400]
8899
- cmp r2, #0
8900
- beq .L1539
8901
- ldr r2, [r3, #-1376]
8902
- cmp r2, #0
8903
- beq .L1539
8904
- ldr r2, [r3, #-1368]
8905
- cmp r2, #0
8906
- beq .L1539
8907
- ldr r2, [r3, #-1364]
8908
- cmp r2, #0
8909
- beq .L1539
8910
- ldr r2, [r3, #-1360]
8911
- cmp r2, #0
8912
- beq .L1539
8913
- ldr r2, [r3, #-1356]
8914
- cmp r2, #0
8915
- beq .L1539
8916
- ldr r2, [r3, #-1320]
8917
- cmp r2, #0
8918
- beq .L1539
8919
- ldr r3, [r3, #-1408]
9149
+ b .L1518
9150
+.L1521:
9151
+ str r2, [r3, #4]!
9152
+ b .L1520
9153
+.L1522:
9154
+ ldr r3, [r4, #-1396]
89209155 cmp r3, #0
8921
- beq .L1539
8922
- ldr r2, [r4, #-1512]
8923
- ldr r3, .L1636
8924
- cmp r2, #0
8925
- beq .L1539
8926
- ldr r2, [r3, #-1508]
8927
- cmp r2, #0
8928
- beq .L1539
8929
- ldr r2, [r3, #-1504]
8930
- cmp r2, #0
8931
- beq .L1539
8932
- ldr r2, [r3, #-1496]
8933
- cmp r2, #0
8934
- beq .L1539
8935
- ldr r2, [r3, #-1492]
8936
- cmp r2, #0
8937
- beq .L1539
8938
- ldr r2, [r3, #-1488]
8939
- cmp r2, #0
8940
- beq .L1539
8941
- ldr r2, [r3, #-1500]
8942
- cmp r2, #0
8943
- beq .L1539
8944
- ldr r2, [r3, #-1476]
8945
- cmp r2, #0
8946
- beq .L1539
8947
- ldr r2, [r3, #-1472]
8948
- cmp r2, #0
8949
- beq .L1539
8950
- ldr r3, [r3, #-1468]
9156
+ beq .L1524
9157
+ ldr r3, [r4, #-1376]
89519158 cmp r3, #0
8952
- beq .L1539
8953
- ldr r2, [r4, #-1464]
8954
- ldr r3, .L1636
8955
- cmp r2, #0
8956
- beq .L1539
8957
- ldr r2, [r3, #-1456]
8958
- cmp r2, #0
8959
- beq .L1539
8960
- ldr r2, [r3, #-1452]
8961
- cmp r2, #0
8962
- beq .L1539
8963
- ldr r2, [r3, #-1448]
8964
- cmp r2, #0
8965
- beq .L1539
8966
- ldr r2, [r3, #-1444]
8967
- cmp r2, #0
8968
- beq .L1539
8969
- ldr r2, [r3, #-1440]
8970
- cmp r2, #0
8971
- beq .L1539
8972
- ldr r2, [r3, #-1436]
8973
- cmp r2, #0
8974
- beq .L1539
8975
- ldr r2, [r3, #-1416]
8976
- cmp r2, #0
8977
- beq .L1539
8978
- ldr r2, [r3, #-1424]
8979
- cmp r2, #0
8980
- beq .L1539
8981
- ldr r3, [r3, #-1392]
9159
+ beq .L1524
9160
+ ldr r3, [r4, #-1368]
89829161 cmp r3, #0
8983
- beq .L1539
8984
- ldr r3, .L1636
9162
+ beq .L1524
9163
+ ldr r3, [r4, #-1364]
9164
+ cmp r3, #0
9165
+ beq .L1524
9166
+ ldr r3, [r4, #-1360]
9167
+ cmp r3, #0
9168
+ beq .L1524
9169
+ ldr r3, [r4, #-1356]
9170
+ cmp r3, #0
9171
+ beq .L1524
9172
+ ldr r3, [r4, #-1320]
9173
+ cmp r3, #0
9174
+ beq .L1524
9175
+ ldr r3, [r4, #-1404]
9176
+ cmp r3, #0
9177
+ beq .L1524
9178
+ ldr r3, [r4, #-1508]
9179
+ cmp r3, #0
9180
+ beq .L1524
9181
+ ldr r3, [r4, #-1504]
9182
+ cmp r3, #0
9183
+ beq .L1524
9184
+ ldr r3, [r4, #-1500]
9185
+ cmp r3, #0
9186
+ beq .L1524
9187
+ ldr r3, [r4, #-1492]
9188
+ cmp r3, #0
9189
+ beq .L1524
9190
+ ldr r3, [r4, #-1488]
9191
+ cmp r3, #0
9192
+ beq .L1524
9193
+ ldr r3, [r4, #-1484]
9194
+ cmp r3, #0
9195
+ beq .L1524
9196
+ ldr r3, [r4, #-1496]
9197
+ cmp r3, #0
9198
+ beq .L1524
9199
+ ldr r3, [r4, #-1472]
9200
+ cmp r3, #0
9201
+ beq .L1524
9202
+ ldr r3, [r4, #-1468]
9203
+ cmp r3, #0
9204
+ beq .L1524
9205
+ ldr r3, [r4, #-1464]
9206
+ cmp r3, #0
9207
+ beq .L1524
9208
+ ldr r3, [r4, #-1460]
9209
+ cmp r3, #0
9210
+ beq .L1524
9211
+ ldr r3, [r4, #-1452]
9212
+ cmp r3, #0
9213
+ beq .L1524
9214
+ ldr r3, [r4, #-1448]
9215
+ cmp r3, #0
9216
+ beq .L1524
9217
+ ldr r3, [r4, #-1444]
9218
+ cmp r3, #0
9219
+ beq .L1524
9220
+ ldr r3, [r4, #-1440]
9221
+ cmp r3, #0
9222
+ beq .L1524
9223
+ ldr r3, [r4, #-1436]
9224
+ cmp r3, #0
9225
+ beq .L1524
9226
+ ldr r3, [r4, #-1432]
9227
+ cmp r3, #0
9228
+ beq .L1524
9229
+ ldr r3, [r4, #-1412]
9230
+ cmp r3, #0
9231
+ beq .L1524
9232
+ ldr r3, [r4, #-1420]
9233
+ cmp r3, #0
9234
+ beq .L1524
9235
+ ldr r3, [r4, #-1392]
9236
+ cmp r3, #0
9237
+ beq .L1524
9238
+ ldr r3, .L1619
89859239 ldr r2, [r3, #-1388]
89869240 cmp r2, #0
8987
- beq .L1539
9241
+ beq .L1524
89889242 ldr r2, [r3, #-1384]
89899243 cmp r2, #0
8990
- beq .L1539
9244
+ beq .L1524
89919245 ldr r3, [r3, #-1380]
89929246 cmp r3, #0
8993
- beq .L1539
9247
+ beq .L1524
89949248 mov r0, #0
8995
-.L1538:
8996
- add sp, sp, #12
8997
- @ sp needed
8998
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8999
-.L1637:
9249
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
9250
+.L1620:
90009251 .align 2
9001
-.L1636:
9252
+.L1619:
90029253 .word .LANCHOR2
9003
- .word .LANCHOR2-1664
9004
- .word .LANCHOR2-1348
9254
+ .word .LANCHOR2-1712
9255
+ .word 33553920
9256
+ .word .LANCHOR0
9257
+ .word .LANCHOR3+130
90059258 .word .LC32
9006
- .word .LANCHOR3+136
90079259 .fnend
90089260 .size FtlMemInit, .-FtlMemInit
90099261 .align 2
90109262 .global IsBlkInVendorPart
9263
+ .syntax unified
9264
+ .arm
9265
+ .fpu softvfp
90119266 .type IsBlkInVendorPart, %function
90129267 IsBlkInVendorPart:
90139268 .fnstart
90149269 @ args = 0, pretend = 0, frame = 0
90159270 @ frame_needed = 0, uses_anonymous_args = 0
90169271 @ link register save eliminated.
9017
- ldr r2, .L1645
9272
+ ldr r2, .L1628
90189273 sub r3, r2, #1280
90199274 ldrh r3, [r3, #-8]
90209275 cmp r3, #0
9021
- beq .L1644
9276
+ beq .L1627
90229277 ldr r3, [r2, #-1392]
9023
- sub r2, r2, #1648
9024
- ldrh r2, [r2]
9025
- add r2, r3, r2, asl #1
9026
-.L1640:
9278
+ sub r2, r2, #1632
9279
+ ldrh r2, [r2, #-12]
9280
+ add r2, r3, r2, lsl #1
9281
+.L1623:
90279282 cmp r3, r2
9028
- beq .L1644
9029
- ldrh r1, [r3], #2
9030
- cmp r1, r0
9031
- bne .L1640
9032
- mov r0, #1
9033
- bx lr
9034
-.L1644:
9283
+ bne .L1624
9284
+.L1627:
90359285 mov r0, #0
90369286 bx lr
9037
-.L1646:
9287
+.L1624:
9288
+ ldrh r1, [r3], #2
9289
+ cmp r0, r1
9290
+ bne .L1623
9291
+ mov r0, #1
9292
+ bx lr
9293
+.L1629:
90389294 .align 2
9039
-.L1645:
9295
+.L1628:
90409296 .word .LANCHOR2
90419297 .fnend
90429298 .size IsBlkInVendorPart, .-IsBlkInVendorPart
90439299 .align 2
90449300 .global FtlCacheMetchLpa
9301
+ .syntax unified
9302
+ .arm
9303
+ .fpu softvfp
90459304 .type FtlCacheMetchLpa, %function
90469305 FtlCacheMetchLpa:
90479306 .fnstart
90489307 @ args = 0, pretend = 0, frame = 0
90499308 @ frame_needed = 0, uses_anonymous_args = 0
9050
- ldr r2, .L1654
9051
- ldr r3, [r2, #-1516]
9309
+ ldr r2, .L1640
9310
+ ldr r3, [r2, #-1512]
90529311 cmp r3, #0
9053
- beq .L1650
9054
- stmfd sp!, {r4, r5, lr}
9312
+ beq .L1633
9313
+ push {r4, r5, lr}
90559314 .save {r4, r5, lr}
90569315 mov r5, #36
9057
- ldr r4, [r2, #-1484]
9316
+ ldr r4, [r2, #-1480]
90589317 mov r2, #0
9059
-.L1649:
9318
+.L1632:
90609319 mla ip, r5, r2, r4
90619320 ldr lr, [ip, #16]
9062
- cmp lr, r0
9063
- movcc ip, #0
9064
- movcs ip, #1
90659321 cmp lr, r1
90669322 movhi ip, #0
9323
+ movls ip, #1
9324
+ cmp lr, r0
9325
+ movcc ip, #0
90679326 cmp ip, #0
9068
- bne .L1651
9327
+ bne .L1634
90699328 add r2, r2, #1
9070
- cmp r2, r3
9071
- bne .L1649
9329
+ cmp r3, r2
9330
+ bne .L1632
90729331 mov r0, ip
9073
- ldmfd sp!, {r4, r5, pc}
9074
-.L1650:
9332
+ pop {r4, r5, pc}
9333
+.L1633:
90759334 mov r0, r3
90769335 bx lr
9077
-.L1651:
9336
+.L1634:
90789337 mov r0, #1
9079
- ldmfd sp!, {r4, r5, pc}
9080
-.L1655:
9338
+ pop {r4, r5, pc}
9339
+.L1641:
90819340 .align 2
9082
-.L1654:
9341
+.L1640:
90839342 .word .LANCHOR2
90849343 .fnend
90859344 .size FtlCacheMetchLpa, .-FtlCacheMetchLpa
90869345 .align 2
90879346 .global FtlGetCap
9347
+ .syntax unified
9348
+ .arm
9349
+ .fpu softvfp
90889350 .type FtlGetCap, %function
90899351 FtlGetCap:
90909352 .fnstart
90919353 @ args = 0, pretend = 0, frame = 0
90929354 @ frame_needed = 0, uses_anonymous_args = 0
90939355 @ link register save eliminated.
9094
- ldr r3, .L1657
9095
- ldr r0, [r3, #-2740]
9356
+ ldr r3, .L1643
9357
+ ldr r0, [r3, #-2736]
90969358 bx lr
9097
-.L1658:
9359
+.L1644:
90989360 .align 2
9099
-.L1657:
9361
+.L1643:
91009362 .word .LANCHOR2
91019363 .fnend
91029364 .size FtlGetCap, .-FtlGetCap
91039365 .align 2
91049366 .global FtlGetCapacity
9367
+ .syntax unified
9368
+ .arm
9369
+ .fpu softvfp
91059370 .type FtlGetCapacity, %function
91069371 FtlGetCapacity:
91079372 .fnstart
91089373 @ args = 0, pretend = 0, frame = 0
91099374 @ frame_needed = 0, uses_anonymous_args = 0
91109375 @ link register save eliminated.
9111
- ldr r3, .L1660
9112
- ldr r0, [r3, #-2740]
9376
+ ldr r3, .L1646
9377
+ ldr r0, [r3, #-2736]
91139378 bx lr
9114
-.L1661:
9379
+.L1647:
91159380 .align 2
9116
-.L1660:
9381
+.L1646:
91179382 .word .LANCHOR2
91189383 .fnend
91199384 .size FtlGetCapacity, .-FtlGetCapacity
91209385 .align 2
91219386 .global ftl_get_density
9387
+ .syntax unified
9388
+ .arm
9389
+ .fpu softvfp
91229390 .type ftl_get_density, %function
91239391 ftl_get_density:
91249392 .fnstart
91259393 @ args = 0, pretend = 0, frame = 0
91269394 @ frame_needed = 0, uses_anonymous_args = 0
91279395 @ link register save eliminated.
9128
- ldr r3, .L1663
9129
- ldr r0, [r3, #-2740]
9396
+ ldr r3, .L1649
9397
+ ldr r0, [r3, #-2736]
91309398 bx lr
9131
-.L1664:
9399
+.L1650:
91329400 .align 2
9133
-.L1663:
9401
+.L1649:
91349402 .word .LANCHOR2
91359403 .fnend
91369404 .size ftl_get_density, .-ftl_get_density
91379405 .align 2
91389406 .global FtlGetLpn
9407
+ .syntax unified
9408
+ .arm
9409
+ .fpu softvfp
91399410 .type FtlGetLpn, %function
91409411 FtlGetLpn:
91419412 .fnstart
91429413 @ args = 0, pretend = 0, frame = 0
91439414 @ frame_needed = 0, uses_anonymous_args = 0
91449415 @ link register save eliminated.
9145
- ldr r3, .L1666
9416
+ ldr r3, .L1652
91469417 ldr r0, [r3, #-1284]
91479418 bx lr
9148
-.L1667:
9419
+.L1653:
91499420 .align 2
9150
-.L1666:
9421
+.L1652:
91519422 .word .LANCHOR2
91529423 .fnend
91539424 .size FtlGetLpn, .-FtlGetLpn
91549425 .align 2
91559426 .global FtlBbmMapBadBlock
9427
+ .syntax unified
9428
+ .arm
9429
+ .fpu softvfp
91569430 .type FtlBbmMapBadBlock, %function
91579431 FtlBbmMapBadBlock:
91589432 .fnstart
91599433 @ args = 0, pretend = 0, frame = 0
91609434 @ frame_needed = 0, uses_anonymous_args = 0
9161
- stmfd sp!, {r0, r1, r4, r5, r6, lr}
9162
- .save {r4, r5, r6, lr}
9163
- .pad #8
9164
- mov r6, r0
9165
- ldr r5, .L1670
9166
- sub r3, r5, #1664
9167
- ldrh r4, [r3, #-6]
9168
- mov r1, r4
9435
+ push {r0, r1, r2, r4, r5, r6, r7, lr}
9436
+ .save {r4, r5, r6, r7, lr}
9437
+ .pad #12
9438
+ mov r5, r0
9439
+ ldr r4, .L1656
9440
+ sub r3, r4, #1664
9441
+ ldrh r7, [r3, #-4]
9442
+ mov r1, r7
91699443 bl __aeabi_uidiv
9170
- uxth r2, r0
9171
- smulbb r3, r2, r4
9172
- add r1, r5, r2, asl #2
9173
- mov r4, #1
9174
- ldr ip, [r1, #-1320]
9175
- rsb r3, r3, r6
9176
- uxth r3, r3
9177
- and r1, r3, #31
9178
- mov lr, r3, lsr #5
9179
- ldr r0, [ip, lr, asl #2]
9180
- orr r1, r0, r4, asl r1
9181
- ldr r0, .L1670+4
9182
- str r1, [ip, lr, asl #2]
9183
- str r1, [sp]
9184
- mov r1, r6
9444
+ uxth r6, r0
9445
+ mov r1, r7
9446
+ mov r0, r5
9447
+ bl __aeabi_uidivmod
9448
+ add r2, r4, r6, lsl #2
9449
+ uxth r3, r1
9450
+ ldr r2, [r2, #-1320]
9451
+ lsr r1, r3, #5
9452
+ and ip, r3, #31
9453
+ mov lr, #1
9454
+ ldr r0, [r2, r1, lsl #2]
9455
+ orr r0, r0, lr, lsl ip
9456
+ str r0, [r2, r1, lsl #2]
9457
+ mov r2, r6
9458
+ str r0, [sp]
9459
+ mov r1, r5
9460
+ ldr r0, .L1656+4
91859461 bl printk
9186
- sub r2, r5, #1344
9462
+ sub r3, r4, #1344
91879463 mov r0, #0
9188
- ldrh r3, [r2, #2]
9189
- add r3, r3, r4
9190
- strh r3, [r2, #2] @ movhi
9191
- add sp, sp, #8
9464
+ ldrh r2, [r3, #2]
9465
+ add r2, r2, #1
9466
+ strh r2, [r3, #2] @ movhi
9467
+ add sp, sp, #12
91929468 @ sp needed
9193
- ldmfd sp!, {r4, r5, r6, pc}
9194
-.L1671:
9469
+ pop {r4, r5, r6, r7, pc}
9470
+.L1657:
91959471 .align 2
9196
-.L1670:
9472
+.L1656:
91979473 .word .LANCHOR2
91989474 .word .LC33
91999475 .fnend
92009476 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
9201
- .global __aeabi_uidivmod
92029477 .align 2
92039478 .global FtlBbmIsBadBlock
9479
+ .syntax unified
9480
+ .arm
9481
+ .fpu softvfp
92049482 .type FtlBbmIsBadBlock, %function
92059483 FtlBbmIsBadBlock:
92069484 .fnstart
92079485 @ args = 0, pretend = 0, frame = 0
92089486 @ frame_needed = 0, uses_anonymous_args = 0
9209
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
9210
- .save {r3, r4, r5, r6, r7, lr}
9487
+ push {r4, r5, r6, r7, r8, lr}
9488
+ .save {r4, r5, r6, r7, r8, lr}
92119489 mov r7, r0
9212
- ldr r5, .L1674
9490
+ ldr r5, .L1660
92139491 sub r3, r5, #1664
9214
- ldrh r6, [r3, #-6]
9492
+ ldrh r6, [r3, #-4]
92159493 mov r1, r6
92169494 bl __aeabi_uidivmod
92179495 mov r0, r7
92189496 uxth r4, r1
92199497 mov r1, r6
92209498 bl __aeabi_uidiv
9221
- mov r2, r4, lsr #5
9222
- and r4, r4, #31
92239499 uxth r0, r0
9224
- add r5, r5, r0, asl #2
9500
+ lsr r2, r4, #5
9501
+ add r5, r5, r0, lsl #2
9502
+ and r4, r4, #31
92259503 ldr r3, [r5, #-1320]
9226
- ldr r0, [r3, r2, asl #2]
9227
- mov r0, r0, lsr r4
9504
+ ldr r0, [r3, r2, lsl #2]
9505
+ lsr r0, r0, r4
92289506 and r0, r0, #1
9229
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
9230
-.L1675:
9507
+ pop {r4, r5, r6, r7, r8, pc}
9508
+.L1661:
92319509 .align 2
9232
-.L1674:
9510
+.L1660:
92339511 .word .LANCHOR2
92349512 .fnend
92359513 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
92369514 .align 2
92379515 .global FtlBbtInfoPrint
9516
+ .syntax unified
9517
+ .arm
9518
+ .fpu softvfp
92389519 .type FtlBbtInfoPrint, %function
92399520 FtlBbtInfoPrint:
92409521 .fnstart
....@@ -9246,198 +9527,200 @@
92469527 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint
92479528 .align 2
92489529 .global FtlBbt2Bitmap
9530
+ .syntax unified
9531
+ .arm
9532
+ .fpu softvfp
92499533 .type FtlBbt2Bitmap, %function
92509534 FtlBbt2Bitmap:
92519535 .fnstart
92529536 @ args = 0, pretend = 0, frame = 0
92539537 @ frame_needed = 0, uses_anonymous_args = 0
9254
- stmfd sp!, {r4, r5, r6, lr}
9538
+ push {r4, r5, r6, lr}
92559539 .save {r4, r5, r6, lr}
9256
- mov r4, r0
9257
- ldr r5, .L1683
9258
- mov r0, r1
92599540 mov r6, r1
9541
+ ldr r5, .L1669
9542
+ mov r4, r0
92609543 mov r1, #0
9544
+ mov r0, r6
9545
+ ldrh r2, [r5, #-8]
92619546 sub r5, r5, #4
9262
- ldrh r2, [r5, #-4]
9263
- mov r2, r2, asl #2
9547
+ lsl r2, r2, #2
92649548 bl ftl_memset
9265
- add r3, r4, #1020
9266
- add r3, r3, #2
9267
- sub r1, r4, #2
9268
- mov lr, #1
9549
+ add r0, r4, #1020
9550
+ sub r2, r4, #2
9551
+ add r0, r0, #2
92699552 movw r4, #65535
9270
-.L1679:
9271
- ldrh r2, [r1, #2]!
9272
- cmp r2, r4
9273
- ldmeqfd sp!, {r4, r5, r6, pc}
9274
- mov ip, r2, lsr #5
9275
- and r2, r2, #31
9276
- cmp r1, r3
9277
- ldr r0, [r6, ip, asl #2]
9278
- orr r2, r0, lr, asl r2
9279
- str r2, [r6, ip, asl #2]
9280
- ldrh r2, [r5, #6]
9281
- add r2, r2, #1
9282
- strh r2, [r5, #6] @ movhi
9283
- bne .L1679
9284
- ldmfd sp!, {r4, r5, r6, pc}
9285
-.L1684:
9553
+ mov lr, #1
9554
+.L1665:
9555
+ ldrh r3, [r2, #2]!
9556
+ cmp r3, r4
9557
+ popeq {r4, r5, r6, pc}
9558
+ lsr ip, r3, #5
9559
+ and r3, r3, #31
9560
+ cmp r2, r0
9561
+ ldr r1, [r6, ip, lsl #2]
9562
+ orr r3, r1, lr, lsl r3
9563
+ str r3, [r6, ip, lsl #2]
9564
+ ldrh r3, [r5, #6]
9565
+ add r3, r3, #1
9566
+ strh r3, [r5, #6] @ movhi
9567
+ bne .L1665
9568
+ pop {r4, r5, r6, pc}
9569
+.L1670:
92869570 .align 2
9287
-.L1683:
9571
+.L1669:
92889572 .word .LANCHOR2-1344
92899573 .fnend
92909574 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap
92919575 .align 2
92929576 .global FtlBbmTblFlush
9577
+ .syntax unified
9578
+ .arm
9579
+ .fpu softvfp
92939580 .type FtlBbmTblFlush, %function
92949581 FtlBbmTblFlush:
92959582 .fnstart
92969583 @ args = 0, pretend = 0, frame = 0
92979584 @ frame_needed = 0, uses_anonymous_args = 0
9298
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
9299
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9300
- .pad #12
9301
- ldr r4, .L1703
9302
- ldr r5, [r4, #-1280]
9303
- cmp r5, #0
9304
- bne .L1687
9305
- ldr r3, [r4, #-1444]
9306
- mov r1, r5
9307
- ldr r0, [r4, #-1476]
9308
- sub r8, r4, #1344
9309
- ldr r6, .L1703+4
9310
- mov r10, r4
9311
- str r3, [r4, #-1264]
9312
- sub r3, r4, #1648
9585
+ push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
9586
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
9587
+ .pad #8
9588
+ ldr r4, .L1686
9589
+ ldr r6, [r4, #-1280]
9590
+ cmp r6, #0
9591
+ bne .L1673
9592
+ ldr r0, [r4, #-1472]
9593
+ sub r7, r4, #1648
9594
+ ldr r3, [r4, #-1440]
9595
+ sub r5, r4, #1344
9596
+ ldrh r2, [r7, #-8]
9597
+ add r7, r7, #324
9598
+ mov r1, r6
93139599 str r0, [r4, #-1268]
9314
- sub fp, r6, #28
9315
- ldrh r2, [r3, #-10]
9600
+ str r3, [r4, #-1264]
93169601 bl ftl_memset
9317
- ldr r9, .L1703+8
9318
-.L1688:
9319
- ldrh r3, [r9]
9320
- ldr r7, .L1703
9321
- cmp r5, r3
9322
- bge .L1702
9323
- ldrh r2, [fp]
9324
- ldr r3, [r10, #-1268]
9325
- ldr r1, [r6, #4]!
9326
- mul r0, r2, r5
9327
- mov r2, r2, asl #2
9328
- add r5, r5, #1
9329
- add r0, r3, r0, asl #2
9330
- bl ftl_memcpy
9331
- b .L1688
9332
-.L1702:
9333
- ldr r6, [r7, #-1264]
9334
- mov r1, #255
9602
+.L1674:
9603
+ ldr r3, .L1686+4
9604
+ ldrh r3, [r3]
9605
+ cmp r6, r3
9606
+ blt .L1675
9607
+ ldr r6, [r4, #-1264]
93359608 mov r2, #16
9336
- ldr r5, .L1703+12
9609
+ mov r1, #255
9610
+ ldr r9, .L1686+8
9611
+ mov r7, #0
93379612 mov r0, r6
9613
+ mov r8, r7
93389614 bl ftl_memset
9339
- ldr r3, .L1703+16
9340
- mov r10, r5
9615
+ ldr r3, .L1686+12
93419616 strh r3, [r6] @ movhi
9342
- ldr r3, [r7, #-1340]
9617
+ ldr r3, [r4, #-1340]
93439618 str r3, [r6, #4]
9344
- ldrh r3, [r8, #-4]
9345
- mov r8, #0
9346
- mov r9, r8
9619
+ ldrh r3, [r5, #-4]
93479620 strh r3, [r6, #2] @ movhi
9348
- ldrh r3, [r5, #4]
9621
+ ldrh r3, [r5], #-4
93499622 strh r3, [r6, #8] @ movhi
93509623 ldrh r3, [r5, #6]
93519624 strh r3, [r6, #10] @ movhi
9352
- ldr r3, [r7, #-1740]
9625
+ ldr r3, [r4, #-1736]
93539626 strh r3, [r6, #12] @ movhi
9354
-.L1690:
9355
- ldr r3, [r4, #-1476]
9356
- mov fp, #0
9357
- ldrh r1, [r5]
9627
+.L1676:
9628
+ ldr r3, [r4, #-1472]
9629
+ mov r10, #0
93589630 ldrh r2, [r5, #2]
9631
+ ldrh r1, [r5]
93599632 str r3, [r4, #-1268]
9360
- ldr r3, [r4, #-1444]
9361
- str fp, [r4, #-1276]
9633
+ ldr r3, [r4, #-1440]
9634
+ str r10, [r4, #-1276]
93629635 str r3, [r4, #-1264]
9363
- orr r3, r2, r1, asl #10
9636
+ orr r3, r2, r1, lsl #10
93649637 ldrh r0, [r6, #10]
93659638 str r3, [r4, #-1272]
93669639 ldrh r3, [r5, #4]
93679640 str r0, [sp]
9368
- ldr r0, .L1703+20
9641
+ mov r0, r9
93699642 bl printk
9370
- ldr r3, .L1703+24
9643
+ ldr r3, .L1686+16
93719644 ldrh r2, [r5, #2]
93729645 ldrh r3, [r3]
93739646 sub r3, r3, #1
93749647 cmp r2, r3
9375
- blt .L1691
9376
- ldr r3, [r7, #-1340]
9377
- mov r1, #1
9648
+ blt .L1677
9649
+ ldr r3, [r4, #-1340]
93789650 ldrh r2, [r5]
9651
+ ldr r0, [r4, #-1488]
93799652 add r3, r3, #1
9380
- ldr r0, [r7, #-1492]
9381
- str r3, [r7, #-1340]
9653
+ strh r10, [r5, #2] @ movhi
9654
+ str r3, [r4, #-1340]
93829655 str r3, [r6, #4]
93839656 ldrh r3, [r5, #4]
93849657 strh r2, [r6, #8] @ movhi
93859658 strh r2, [r5, #4] @ movhi
9386
- mov r2, r1
9659
+ mov r2, #1
93879660 strh r3, [r5] @ movhi
9388
- mov r3, r3, asl #10
9389
- str r3, [r7, #-1272]
9661
+ mov r1, r2
9662
+ lsl r3, r3, #10
9663
+ str r3, [r4, #-1272]
93909664 str r3, [r0, #4]
9391
- strh fp, [r5, #2] @ movhi
93929665 bl FlashEraseBlocks
9393
-.L1691:
9394
- mov r1, #1
9395
- ldr r0, .L1703+28
9396
- mov r3, r1
9397
- mov r2, r1
9666
+.L1677:
9667
+ mov r3, #1
9668
+ ldr r0, .L1686+20
9669
+ mov r2, r3
9670
+ mov r1, r3
93989671 bl FlashProgPages
9399
- ldrh r3, [r10, #2]
9400
- ldr fp, .L1703
9672
+ ldrh r3, [r5, #2]
94019673 add r3, r3, #1
9402
- strh r3, [r10, #2] @ movhi
9674
+ strh r3, [r5, #2] @ movhi
94039675 ldr r3, [r4, #-1276]
94049676 cmn r3, #1
9405
- bne .L1692
9406
- add r8, r8, #1
9407
- ldr r0, .L1703+32
9408
- ldr r1, [r7, #-1272]
9409
- uxth r8, r8
9677
+ bne .L1678
9678
+ add r7, r7, #1
9679
+ ldr r1, [r4, #-1272]
9680
+ uxth r7, r7
9681
+ ldr r0, .L1686+24
94109682 bl printk
9411
- cmp r8, #3
9412
- bls .L1690
9413
- ldr r0, .L1703+36
9414
- mov r2, r8
9415
- ldr r1, [fp, #-1272]
9683
+ cmp r7, #3
9684
+ bls .L1676
9685
+ mov r2, r7
9686
+ ldr r1, [r4, #-1272]
9687
+ ldr r0, .L1686+28
94169688 bl printk
94179689 mov r3, #1
9418
- str r3, [fp, #-1280]
9419
- b .L1687
9420
-.L1692:
9421
- add r9, r9, #1
9422
- cmp r9, #1
9423
- beq .L1690
9424
- cmp r3, #256
9425
- beq .L1690
9426
-.L1687:
9690
+ str r3, [r4, #-1280]
9691
+.L1673:
94279692 mov r0, #0
9428
- add sp, sp, #12
9693
+ add sp, sp, #8
94299694 @ sp needed
9430
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9431
-.L1704:
9695
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
9696
+.L1675:
9697
+ ldrh r2, [r5, #-8]
9698
+ ldr r3, [r4, #-1268]
9699
+ ldr r1, [r7, #4]!
9700
+ mul r0, r6, r2
9701
+ lsl r2, r2, #2
9702
+ add r6, r6, #1
9703
+ add r0, r3, r0, lsl #2
9704
+ bl ftl_memcpy
9705
+ b .L1674
9706
+.L1681:
9707
+ mov r8, #1
9708
+ b .L1676
9709
+.L1678:
9710
+ add r8, r8, #1
9711
+ cmp r8, #1
9712
+ ble .L1681
9713
+ cmp r3, #256
9714
+ bne .L1673
9715
+ b .L1676
9716
+.L1687:
94329717 .align 2
9433
-.L1703:
9718
+.L1686:
94349719 .word .LANCHOR2
9435
- .word .LANCHOR2-1324
9436
- .word .LANCHOR2-1714
9437
- .word .LANCHOR2-1348
9438
- .word -3887
9720
+ .word .LANCHOR2-1710
94399721 .word .LC34
9440
- .word .LANCHOR2-1666
9722
+ .word -3887
9723
+ .word .LANCHOR2-1664
94419724 .word .LANCHOR2-1276
94429725 .word .LC35
94439726 .word .LC36
....@@ -9445,376 +9728,393 @@
94459728 .size FtlBbmTblFlush, .-FtlBbmTblFlush
94469729 .align 2
94479730 .global FtlLoadFactoryBbt
9731
+ .syntax unified
9732
+ .arm
9733
+ .fpu softvfp
94489734 .type FtlLoadFactoryBbt, %function
94499735 FtlLoadFactoryBbt:
94509736 .fnstart
94519737 @ args = 0, pretend = 0, frame = 0
94529738 @ frame_needed = 0, uses_anonymous_args = 0
9453
- ldr r2, .L1717
9454
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
9739
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
94559740 .save {r4, r5, r6, r7, r8, r9, r10, lr}
9456
- mov r5, #0
9457
- ldr r6, .L1717+4
9458
- mov r9, r2
9459
- ldr r3, [r2, #-1476]
9460
- ldr r7, [r2, #-1444]
9461
- sub r8, r6, #376
9462
- str r3, [r2, #-1268]
9463
- str r7, [r2, #-1264]
9464
-.L1706:
9465
- ldrh r3, [r8]
9466
- cmp r5, r3
9467
- bcs .L1716
9468
- ldr r2, .L1717+8
9741
+ mov r8, #0
9742
+ ldr r5, .L1699
9743
+ ldr r3, [r5, #-1472]
9744
+ sub r7, r5, #1328
9745
+ ldr r10, [r5, #-1440]
9746
+ sub r9, r5, #1264
9747
+ sub r7, r7, #10
9748
+ sub r9, r9, #12
9749
+ str r3, [r5, #-1268]
9750
+ str r10, [r5, #-1264]
9751
+.L1689:
9752
+ ldr r6, .L1699+4
9753
+ ldrh r3, [r6]
9754
+ cmp r8, r3
9755
+ bcc .L1694
9756
+ mov r0, #0
9757
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
9758
+.L1694:
9759
+ ldrh r4, [r6, #42]
94699760 mvn r3, #0
9470
- strh r3, [r6, #2]! @ movhi
9471
- ldrh r3, [r2]
9472
- mov r10, r2
9473
- sub r3, r3, #1
9474
- uxth r4, r3
9475
-.L1707:
9476
- ldrh r3, [r10]
9761
+ add r6, r6, #46
9762
+ strh r3, [r7, #2]! @ movhi
9763
+ add r4, r4, r3
9764
+ uxth r4, r4
9765
+.L1690:
9766
+ ldrh r3, [r6, #-4]
94779767 sub r2, r3, #16
94789768 cmp r4, r2
9479
- ble .L1709
9480
- mla r3, r3, r5, r4
9481
- mov r1, #1
9482
- ldr r0, .L1717+12
9483
- mov r2, r1
9484
- mov r3, r3, asl #10
9485
- str r3, [r9, #-1272]
9769
+ ble .L1692
9770
+ mla r3, r8, r3, r4
9771
+ mov r2, #1
9772
+ mov r1, r2
9773
+ mov r0, r9
9774
+ lsl r3, r3, #10
9775
+ str r3, [r5, #-1272]
94869776 bl FlashReadPages
9487
- ldr r3, [r9, #-1276]
9777
+ ldr r3, [r5, #-1276]
94889778 cmn r3, #1
9489
- beq .L1708
9490
- ldrh r2, [r7]
9779
+ beq .L1691
9780
+ ldrh r2, [r10]
94919781 movw r3, #61664
94929782 cmp r2, r3
9493
- streqh r4, [r6] @ movhi
9494
- beq .L1709
9495
-.L1708:
9783
+ bne .L1691
9784
+ strh r4, [r7] @ movhi
9785
+.L1692:
9786
+ add r8, r8, #1
9787
+ b .L1689
9788
+.L1691:
94969789 sub r4, r4, #1
94979790 uxth r4, r4
9498
- b .L1707
9499
-.L1709:
9500
- add r5, r5, #1
9501
- b .L1706
9502
-.L1716:
9503
- mov r0, #0
9504
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
9505
-.L1718:
9791
+ b .L1690
9792
+.L1700:
95069793 .align 2
9507
-.L1717:
9794
+.L1699:
95089795 .word .LANCHOR2
9509
- .word .LANCHOR2-1338
9510
- .word .LANCHOR2-1670
9511
- .word .LANCHOR2-1276
9796
+ .word .LANCHOR2-1710
95129797 .fnend
95139798 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
95149799 .align 2
95159800 .global FtlBbtMemInit
9801
+ .syntax unified
9802
+ .arm
9803
+ .fpu softvfp
95169804 .type FtlBbtMemInit, %function
95179805 FtlBbtMemInit:
95189806 .fnstart
95199807 @ args = 0, pretend = 0, frame = 0
95209808 @ frame_needed = 0, uses_anonymous_args = 0
95219809 @ link register save eliminated.
9522
- ldr r0, .L1720
9810
+ ldr r0, .L1702
95239811 mvn r2, #0
95249812 mov r1, #255
9525
- add r0, r0, #8
9526
- strh r2, [r0, #-12] @ movhi
9813
+ strh r2, [r0, #-4] @ movhi
95279814 mov r2, #0
9528
- strh r2, [r0, #-6] @ movhi
9815
+ strh r2, [r0, #2] @ movhi
95299816 mov r2, #16
9817
+ add r0, r0, #8
95309818 b ftl_memset
9531
-.L1721:
9819
+.L1703:
95329820 .align 2
9533
-.L1720:
9821
+.L1702:
95349822 .word .LANCHOR2-1344
95359823 .fnend
95369824 .size FtlBbtMemInit, .-FtlBbtMemInit
95379825 .align 2
95389826 .global FtlBbtCalcTotleCnt
9827
+ .syntax unified
9828
+ .arm
9829
+ .fpu softvfp
95399830 .type FtlBbtCalcTotleCnt, %function
95409831 FtlBbtCalcTotleCnt:
95419832 .fnstart
95429833 @ args = 0, pretend = 0, frame = 0
95439834 @ frame_needed = 0, uses_anonymous_args = 0
9544
- stmfd sp!, {r4, r5, r6, lr}
9835
+ ldr r3, .L1712
9836
+ push {r4, r5, r6, lr}
95459837 .save {r4, r5, r6, lr}
95469838 mov r5, #0
9547
- ldr r4, .L1731
9548
- ldrh r6, [r4, #-6]
9549
- ldrh r3, [r4, #-50]
95509839 mov r4, r5
9551
- mul r6, r3, r6
9552
-.L1723:
9840
+ ldrh r2, [r3, #-4]
9841
+ ldrh r6, [r3, #-46]
9842
+ mul r6, r6, r2
9843
+.L1705:
95539844 uxth r0, r5
95549845 cmp r0, r6
9555
- bge .L1730
9846
+ blt .L1707
9847
+ mov r0, r4
9848
+ pop {r4, r5, r6, pc}
9849
+.L1707:
95569850 bl FtlBbmIsBadBlock
9557
- add r5, r5, #1
95589851 cmp r0, #0
9852
+ add r5, r5, #1
95599853 addne r4, r4, #1
95609854 uxthne r4, r4
9561
- b .L1723
9562
-.L1730:
9563
- mov r0, r4
9564
- ldmfd sp!, {r4, r5, r6, pc}
9565
-.L1732:
9855
+ b .L1705
9856
+.L1713:
95669857 .align 2
9567
-.L1731:
9858
+.L1712:
95689859 .word .LANCHOR2-1664
95699860 .fnend
95709861 .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
95719862 .align 2
95729863 .global FtlMakeBbt
9864
+ .syntax unified
9865
+ .arm
9866
+ .fpu softvfp
95739867 .type FtlMakeBbt, %function
95749868 FtlMakeBbt:
95759869 .fnstart
9576
- @ args = 0, pretend = 0, frame = 0
9870
+ @ args = 0, pretend = 0, frame = 8
95779871 @ frame_needed = 0, uses_anonymous_args = 0
9578
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
9579
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
9580
- ldr r7, .L1756
9581
- ldr r5, [r7, #-1280]
9582
- cmp r5, #0
9583
- bne .L1734
9872
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
9873
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9874
+ .pad #12
9875
+ ldr r4, .L1735
9876
+ ldr r7, [r4, #-1280]
9877
+ cmp r7, #0
9878
+ bne .L1715
9879
+ ldr r10, .L1735+4
9880
+ sub fp, r4, #1264
9881
+ sub r8, r4, #1344
9882
+ sub fp, fp, #12
95849883 bl FtlBbtMemInit
9585
- ldr r8, .L1756+4
9884
+ sub r9, r10, #18
95869885 bl FtlLoadFactoryBbt
9587
- mov r4, r7
9588
- sub r9, r8, #18
9589
-.L1735:
9590
- ldr r6, .L1756+8
9591
- ldrh r3, [r6]
9886
+.L1716:
9887
+ ldr r5, .L1735+8
9888
+ ldrh r3, [r5]
9889
+ cmp r7, r3
9890
+ bcc .L1722
9891
+ mov r5, #0
9892
+.L1723:
9893
+ ldr r3, .L1735+12
9894
+ uxth r0, r5
9895
+ add r5, r5, #1
9896
+ ldrh r3, [r3]
9897
+ cmp r3, r0
9898
+ bhi .L1724
9899
+ sub r6, r8, #4
9900
+ ldrh r5, [r6, #12]
9901
+ movw r7, #65535
9902
+ sub r5, r5, #1
9903
+ uxth r5, r5
9904
+.L1725:
9905
+ ldrh r3, [r6, #12]
9906
+ sub r3, r3, #48
95929907 cmp r5, r3
9593
- bcs .L1754
9594
- ldrh r3, [r9, #2]!
9908
+ ble .L1729
9909
+ mov r0, r5
9910
+ bl FtlBbmIsBadBlock
9911
+ cmp r0, #1
9912
+ beq .L1726
9913
+ mov r0, r5
9914
+ bl FlashTestBlk
9915
+ cmp r0, #0
9916
+ beq .L1727
9917
+ mov r0, r5
9918
+ bl FtlBbmMapBadBlock
9919
+.L1726:
9920
+ sub r5, r5, #1
9921
+ uxth r5, r5
9922
+ b .L1725
9923
+.L1722:
9924
+ ldr r3, [r4, #-1440]
95959925 movw r2, #65535
9596
- ldr r0, [r4, #-1476]
9597
- ldr r10, [r4, #-1444]
9598
- cmp r3, r2
9926
+ ldr r0, [r4, #-1472]
9927
+ str r3, [sp, #4]
9928
+ str r3, [r4, #-1264]
9929
+ ldrh r3, [r9, #2]!
95999930 str r0, [r4, #-1268]
9600
- str r10, [r4, #-1264]
9601
- beq .L1736
9602
- ldrh fp, [r6, #44]
9603
- mov r1, #1
9604
- mov r2, r1
9605
- ldr r0, .L1756+12
9606
- mla fp, fp, r5, r3
9607
- mov r3, fp, asl #10
9931
+ cmp r3, r2
9932
+ beq .L1717
9933
+ ldrh r6, [r5, #42]
9934
+ mov r2, #1
9935
+ mov r1, r2
9936
+ mov r0, fp
9937
+ mla r6, r7, r6, r3
9938
+ lsl r3, r6, #10
96089939 str r3, [r4, #-1272]
96099940 bl FlashReadPages
9610
- ldrh r2, [r6, #44]
9611
- ldr r0, [r8]
9612
- add r2, r2, #7
9941
+ ldrh r2, [r5, #42]
96139942 ldr r1, [r4, #-1268]
9614
- mov r2, r2, asr #3
9943
+ ldr r0, [r10]
9944
+ add r2, r2, #7
9945
+ asr r2, r2, #3
96159946 bl ftl_memcpy
9616
- b .L1737
9617
-.L1736:
9618
- mov r1, r5
9947
+.L1718:
9948
+ uxth r0, r6
9949
+ add r7, r7, #1
9950
+ add r10, r10, #4
9951
+ bl FtlBbmMapBadBlock
9952
+ b .L1716
9953
+.L1717:
9954
+ mov r1, r7
96199955 bl FlashGetBadBlockList
9956
+ ldr r1, [r10]
96209957 ldr r0, [r4, #-1268]
9621
- ldr r1, [r8]
96229958 bl FtlBbt2Bitmap
9623
- ldrh r6, [r6, #44]
9624
-.L1739:
9625
- sub r6, r6, #1
9626
- uxth r6, r6
9627
-.L1738:
9628
- ldr fp, .L1756+16
9629
- ldrh r0, [fp]
9630
- smlabb r0, r0, r5, r6
9959
+ ldrh r5, [r5, #42]
9960
+.L1720:
9961
+ sub r5, r5, #1
9962
+ uxth r5, r5
9963
+.L1719:
9964
+ ldr r3, .L1735+16
9965
+ ldrh r0, [r3, #-4]
9966
+ smlabb r0, r0, r7, r5
96319967 uxth r0, r0
96329968 bl FtlBbmIsBadBlock
96339969 cmp r0, #1
9634
- beq .L1739
9635
- mov r1, #0
9970
+ beq .L1720
96369971 mov r2, #16
9637
- strh r6, [r9] @ movhi
9638
- ldr r0, [r4, #-1444]
9972
+ mov r1, #0
9973
+ strh r5, [r9] @ movhi
9974
+ ldr r0, [r4, #-1440]
96399975 bl ftl_memset
9640
- ldr r3, .L1756+20
9641
- strh r3, [r10] @ movhi
9976
+ ldr r3, [sp, #4]
9977
+ movw r2, 61664 @ movhi
9978
+ strh r2, [r3] @ movhi
96429979 mov r3, #0
9643
- str r3, [r10, #4]
9980
+ ldr r2, [sp, #4]
9981
+ str r3, [r2, #4]
96449982 ldrh r3, [r9]
9645
- ldrh fp, [fp]
9646
- strh r3, [r10, #2] @ movhi
9983
+ strh r3, [r2, #2] @ movhi
9984
+ ldr r3, .L1735+16
9985
+ ldrh r2, [r8, #-8]
9986
+ ldr r1, [r10]
9987
+ ldrh r6, [r3, #-4]
96479988 ldrh r3, [r9]
9648
- ldr r1, [r8]
9989
+ lsl r2, r2, #2
96499990 ldr r0, [r4, #-1268]
9650
- mla fp, fp, r5, r3
9651
- mov r3, fp, asl #10
9991
+ mla r6, r7, r6, r3
9992
+ lsl r3, r6, #10
96529993 str r3, [r4, #-1272]
9653
- ldr r3, .L1756+24
9654
- ldrh r2, [r3]
9655
- mov r2, r2, asl #2
96569994 bl ftl_memcpy
9657
- mov r1, #1
9658
- mov r2, r1
9659
- ldr r0, .L1756+12
9995
+ mov r2, #1
9996
+ mov r0, fp
9997
+ mov r1, r2
96609998 bl FlashEraseBlocks
9661
- mov r1, #1
9662
- mov r3, r1
9663
- ldr r0, .L1756+12
9664
- mov r2, r1
9999
+ mov r3, #1
10000
+ mov r0, fp
10001
+ mov r2, r3
10002
+ mov r1, r3
966510003 bl FlashProgPages
966610004 ldr r3, [r4, #-1276]
966710005 cmn r3, #1
9668
- bne .L1737
9669
- uxth r0, fp
10006
+ bne .L1718
10007
+ uxth r0, r6
967010008 bl FtlBbmMapBadBlock
9671
- b .L1738
9672
-.L1737:
9673
- uxth r0, fp
9674
- add r5, r5, #1
10009
+ b .L1719
10010
+.L1724:
967510011 bl FtlBbmMapBadBlock
9676
- add r8, r8, #4
9677
- b .L1735
9678
-.L1754:
9679
- add r6, r6, #60
9680
- mov r4, #0
9681
-.L1742:
10012
+ b .L1723
10013
+.L1727:
968210014 ldrh r3, [r6]
9683
- uxth r0, r4
9684
- add r4, r4, #1
9685
- cmp r3, r0
9686
- bls .L1755
9687
- bl FtlBbmMapBadBlock
9688
- b .L1742
9689
-.L1755:
9690
- ldr r6, .L1756+28
9691
- movw r8, #65535
9692
- ldrh r4, [r6, #12]
9693
- sub r4, r4, #1
9694
- uxth r4, r4
9695
-.L1744:
9696
- ldrh r3, [r6, #12]
9697
- ldr r5, .L1756+28
9698
- sub r3, r3, #48
9699
- cmp r4, r3
9700
- ble .L1748
9701
- mov r0, r4
9702
- bl FtlBbmIsBadBlock
9703
- cmp r0, #1
9704
- beq .L1745
9705
- mov r0, r4
9706
- bl FlashTestBlk
9707
- cmp r0, #0
9708
- beq .L1746
9709
- mov r0, r4
9710
- bl FtlBbmMapBadBlock
9711
- b .L1745
9712
-.L1746:
9713
- ldrh r3, [r6]
9714
- cmp r3, r8
9715
- streqh r4, [r6] @ movhi
9716
-.L1747:
9717
- strneh r4, [r5, #4] @ movhi
9718
- bne .L1748
9719
-.L1745:
9720
- sub r4, r4, #1
9721
- uxth r4, r4
9722
- b .L1744
9723
-.L1748:
9724
- ldr r3, .L1756+32
9725
- mov r4, #0
9726
- ldr r0, [r7, #-1492]
9727
- mov r1, #1
9728
- str r4, [r7, #-1340]
10015
+ cmp r3, r7
10016
+ strheq r5, [r6] @ movhi
10017
+ beq .L1726
10018
+.L1728:
10019
+ strh r5, [r6, #4] @ movhi
10020
+.L1729:
10021
+ ldrh r3, [r8, #-4]
10022
+ sub r5, r8, #4
10023
+ ldr r0, [r4, #-1488]
10024
+ mov r6, #0
10025
+ str r6, [r4, #-1340]
972910026 mov r2, #2
9730
- ldrh r3, [r3, #-4]
9731
- strh r4, [r5, #2] @ movhi
9732
- mov r3, r3, asl #10
10027
+ mov r1, #1
10028
+ strh r6, [r8, #-2] @ movhi
10029
+ lsl r3, r3, #10
973310030 str r3, [r0, #4]
973410031 ldrh r3, [r5, #4]
9735
- mov r3, r3, asl #10
10032
+ lsl r3, r3, #10
973610033 str r3, [r0, #40]
973710034 bl FlashEraseBlocks
9738
- ldr r3, .L1756+32
9739
- ldrh r0, [r3, #-4]
10035
+ ldrh r0, [r8, #-4]
974010036 bl FtlBbmMapBadBlock
974110037 ldrh r0, [r5, #4]
974210038 bl FtlBbmMapBadBlock
974310039 bl FtlBbmTblFlush
9744
- ldr r3, [r7, #-1340]
10040
+ ldr r3, [r4, #-1340]
974510041 ldrh r2, [r5, #4]
10042
+ strh r6, [r8, #-2] @ movhi
974610043 add r3, r3, #1
9747
- str r3, [r7, #-1340]
9748
- ldr r3, .L1756+32
9749
- ldr r1, .L1756+32
9750
- strh r4, [r5, #2] @ movhi
9751
- ldrh r3, [r3, #-4]
9752
- strh r2, [r1, #-4] @ movhi
10044
+ str r3, [r4, #-1340]
10045
+ ldrh r3, [r8, #-4]
10046
+ strh r2, [r8, #-4] @ movhi
975310047 strh r3, [r5, #4] @ movhi
975410048 bl FtlBbmTblFlush
9755
-.L1734:
10049
+.L1715:
975610050 mov r0, #0
9757
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
9758
-.L1757:
10051
+ add sp, sp, #12
10052
+ @ sp needed
10053
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10054
+.L1736:
975910055 .align 2
9760
-.L1756:
10056
+.L1735:
976110057 .word .LANCHOR2
976210058 .word .LANCHOR2-1320
9763
- .word .LANCHOR2-1714
9764
- .word .LANCHOR2-1276
9765
- .word .LANCHOR2-1670
9766
- .word -3872
9767
- .word .LANCHOR2-1352
9768
- .word .LANCHOR2-1348
9769
- .word .LANCHOR2-1344
10059
+ .word .LANCHOR2-1710
10060
+ .word .LANCHOR2-1652
10061
+ .word .LANCHOR2-1664
977010062 .fnend
977110063 .size FtlMakeBbt, .-FtlMakeBbt
977210064 .align 2
977310065 .global V2P_block
10066
+ .syntax unified
10067
+ .arm
10068
+ .fpu softvfp
977410069 .type V2P_block, %function
977510070 V2P_block:
977610071 .fnstart
977710072 @ args = 0, pretend = 0, frame = 0
977810073 @ frame_needed = 0, uses_anonymous_args = 0
9779
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
9780
- .save {r3, r4, r5, r6, r7, lr}
10074
+ push {r4, r5, r6, r7, r8, lr}
10075
+ .save {r4, r5, r6, r7, r8, lr}
978110076 mov r5, r1
9782
- ldr r4, .L1760
10077
+ ldr r4, .L1739
978310078 mov r7, r0
9784
- sub r3, r4, #1712
10079
+ sub r3, r4, #1696
978510080 sub r4, r4, #1664
9786
- ldrh r6, [r3]
9787
- mov r1, r6
9788
- bl __aeabi_uidivmod
9789
- mov r0, r7
9790
- smlabb r5, r5, r6, r1
10081
+ ldrh r6, [r3, #-12]
979110082 mov r1, r6
979210083 bl __aeabi_uidiv
9793
- ldrh r3, [r4, #-6]
9794
- smlabb r0, r3, r0, r5
10084
+ ldrh r4, [r4, #-4]
10085
+ smulbb r5, r6, r5
10086
+ mov r1, r6
10087
+ smulbb r4, r4, r0
10088
+ mov r0, r7
10089
+ bl __aeabi_uidivmod
10090
+ add r0, r5, r1
10091
+ add r0, r4, r0
979510092 uxth r0, r0
9796
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
9797
-.L1761:
10093
+ pop {r4, r5, r6, r7, r8, pc}
10094
+.L1740:
979810095 .align 2
9799
-.L1760:
10096
+.L1739:
980010097 .word .LANCHOR2
980110098 .fnend
980210099 .size V2P_block, .-V2P_block
980310100 .align 2
980410101 .global P2V_plane
10102
+ .syntax unified
10103
+ .arm
10104
+ .fpu softvfp
980510105 .type P2V_plane, %function
980610106 P2V_plane:
980710107 .fnstart
980810108 @ args = 0, pretend = 0, frame = 0
980910109 @ frame_needed = 0, uses_anonymous_args = 0
9810
- ldr r3, .L1764
9811
- stmfd sp!, {r4, r5, r6, lr}
10110
+ ldr r3, .L1743
10111
+ push {r4, r5, r6, lr}
981210112 .save {r4, r5, r6, lr}
9813
- sub r2, r3, #1712
9814
- sub r3, r3, #1664
981510113 mov r6, r0
9816
- ldrh r5, [r2]
9817
- ldrh r1, [r3, #-6]
10114
+ sub r2, r3, #1696
10115
+ sub r3, r3, #1664
10116
+ ldrh r5, [r2, #-12]
10117
+ ldrh r1, [r3, #-4]
981810118 bl __aeabi_uidiv
981910119 mov r1, r5
982010120 smulbb r4, r0, r5
....@@ -9822,40 +10122,46 @@
982210122 bl __aeabi_uidivmod
982310123 add r1, r4, r1
982410124 uxth r0, r1
9825
- ldmfd sp!, {r4, r5, r6, pc}
9826
-.L1765:
10125
+ pop {r4, r5, r6, pc}
10126
+.L1744:
982710127 .align 2
9828
-.L1764:
10128
+.L1743:
982910129 .word .LANCHOR2
983010130 .fnend
983110131 .size P2V_plane, .-P2V_plane
983210132 .align 2
983310133 .global P2V_block_in_plane
10134
+ .syntax unified
10135
+ .arm
10136
+ .fpu softvfp
983410137 .type P2V_block_in_plane, %function
983510138 P2V_block_in_plane:
983610139 .fnstart
983710140 @ args = 0, pretend = 0, frame = 0
983810141 @ frame_needed = 0, uses_anonymous_args = 0
9839
- stmfd sp!, {r4, lr}
10142
+ push {r4, lr}
984010143 .save {r4, lr}
9841
- ldr r4, .L1768
10144
+ ldr r4, .L1747
984210145 sub r3, r4, #1664
9843
- sub r4, r4, #1712
9844
- ldrh r1, [r3, #-6]
10146
+ sub r4, r4, #1696
10147
+ ldrh r1, [r3, #-4]
984510148 bl __aeabi_uidivmod
984610149 uxth r0, r1
9847
- ldrh r1, [r4]
10150
+ ldrh r1, [r4, #-12]
984810151 bl __aeabi_uidiv
984910152 uxth r0, r0
9850
- ldmfd sp!, {r4, pc}
9851
-.L1769:
10153
+ pop {r4, pc}
10154
+.L1748:
985210155 .align 2
9853
-.L1768:
10156
+.L1747:
985410157 .word .LANCHOR2
985510158 .fnend
985610159 .size P2V_block_in_plane, .-P2V_block_in_plane
985710160 .align 2
985810161 .global ftl_cmp_data_ver
10162
+ .syntax unified
10163
+ .arm
10164
+ .fpu softvfp
985910165 .type ftl_cmp_data_ver, %function
986010166 ftl_cmp_data_ver:
986110167 .fnstart
....@@ -9863,14 +10169,14 @@
986310169 @ frame_needed = 0, uses_anonymous_args = 0
986410170 @ link register save eliminated.
986510171 cmp r0, r1
9866
- bls .L1771
9867
- rsb r0, r1, r0
10172
+ bls .L1750
10173
+ sub r0, r0, r1
986810174 cmp r0, #-2147483648
986910175 movhi r0, #0
987010176 movls r0, #1
987110177 bx lr
9872
-.L1771:
9873
- rsb r0, r0, r1
10178
+.L1750:
10179
+ sub r0, r1, r0
987410180 cmp r0, #-2147483648
987510181 movls r0, #0
987610182 movhi r0, #1
....@@ -9879,843 +10185,863 @@
987910185 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver
988010186 .align 2
988110187 .global FtlGetLastWrittenPage
10188
+ .syntax unified
10189
+ .arm
10190
+ .fpu softvfp
988210191 .type FtlGetLastWrittenPage, %function
988310192 FtlGetLastWrittenPage:
988410193 .fnstart
988510194 @ args = 0, pretend = 0, frame = 104
988610195 @ frame_needed = 0, uses_anonymous_args = 0
9887
- ldr r3, .L1785
10196
+ ldr r3, .L1764
988810197 cmp r1, #1
9889
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
10198
+ push {r4, r5, r6, r7, r8, lr}
989010199 .save {r4, r5, r6, r7, r8, lr}
10200
+ lsl r8, r0, #10
989110201 .pad #104
989210202 sub sp, sp, #104
9893
- ldreqh r4, [r3, #-2]
9894
- mov r8, r1
9895
- ldrneh r4, [r3, #-4]
9896
- mov r6, r0, asl #10
10203
+ mov r2, r1
10204
+ mov r7, r1
10205
+ ldrheq r5, [r3]
10206
+ mov r6, #0
10207
+ ldrhne r5, [r3, #-2]
989710208 add r3, sp, #40
9898
- add r0, sp, #4
9899
- sub r5, r4, #1
990010209 str r3, [sp, #16]
990110210 mov r1, #1
9902
- mov r2, r8
9903
- uxth r5, r5
9904
- mov r7, #0
9905
- str r7, [sp, #12]
9906
- sxth r3, r5
9907
- orr r3, r3, r6
9908
- str r3, [sp, #8]
9909
- bl FlashReadPages
9910
- ldr r3, [sp, #40]
9911
- cmn r3, #1
9912
- bne .L1776
9913
-.L1777:
9914
- sxth r4, r7
9915
- sxth r3, r5
9916
- cmp r4, r3
9917
- bgt .L1776
9918
- add r4, r4, r3
991910211 add r0, sp, #4
9920
- mov r1, #1
9921
- mov r2, r8
9922
- add r4, r4, r4, lsr #31
9923
- mov r4, r4, asr #1
9924
- sxth r3, r4
9925
- orr r3, r3, r6
10212
+ str r6, [sp, #12]
10213
+ sub r5, r5, #1
10214
+ sxth r5, r5
10215
+ orr r3, r5, r8
992610216 str r3, [sp, #8]
992710217 bl FlashReadPages
992810218 ldr r3, [sp, #40]
992910219 cmn r3, #1
9930
- bne .L1778
10220
+ bne .L1755
10221
+.L1756:
10222
+ cmp r6, r5
10223
+ ble .L1759
10224
+.L1755:
10225
+ mov r0, r5
10226
+ add sp, sp, #104
10227
+ @ sp needed
10228
+ pop {r4, r5, r6, r7, r8, pc}
10229
+.L1759:
10230
+ add r3, r6, r5
10231
+ mov r2, r7
10232
+ add r3, r3, r3, lsr #31
10233
+ mov r1, #1
10234
+ add r0, sp, #4
10235
+ asr r4, r3, #1
10236
+ sxth r3, r4
10237
+ orr r3, r3, r8
10238
+ str r3, [sp, #8]
10239
+ bl FlashReadPages
10240
+ ldr r3, [sp, #40]
10241
+ cmn r3, #1
10242
+ bne .L1757
993110243 ldr r3, [sp, #44]
993210244 cmn r3, #1
9933
- bne .L1778
10245
+ bne .L1757
993410246 ldr r3, [sp, #4]
993510247 cmn r3, #1
993610248 subne r4, r4, #1
9937
- uxthne r5, r4
9938
- bne .L1777
9939
-.L1778:
9940
- add r3, r4, #1
9941
- uxth r7, r3
9942
- b .L1777
9943
-.L1776:
9944
- sxth r0, r5
9945
- add sp, sp, #104
9946
- @ sp needed
9947
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
9948
-.L1786:
10249
+ sxthne r5, r4
10250
+ bne .L1756
10251
+.L1757:
10252
+ add r4, r4, #1
10253
+ sxth r6, r4
10254
+ b .L1756
10255
+.L1765:
994910256 .align 2
9950
-.L1785:
10257
+.L1764:
995110258 .word .LANCHOR2-1664
995210259 .fnend
995310260 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
995410261 .align 2
995510262 .global FtlLoadBbt
10263
+ .syntax unified
10264
+ .arm
10265
+ .fpu softvfp
995610266 .type FtlLoadBbt, %function
995710267 FtlLoadBbt:
995810268 .fnstart
995910269 @ args = 0, pretend = 0, frame = 0
996010270 @ frame_needed = 0, uses_anonymous_args = 0
9961
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
10271
+ push {r4, r5, r6, r7, r8, lr}
996210272 .save {r4, r5, r6, r7, r8, lr}
9963
- ldr r4, .L1820
9964
- ldr r3, [r4, #-1476]
9965
- mov r7, r4
9966
- ldr r6, [r4, #-1444]
10273
+ ldr r4, .L1798
10274
+ ldr r3, [r4, #-1472]
10275
+ sub r7, r4, #1664
10276
+ ldr r6, [r4, #-1440]
10277
+ sub r8, r4, #1264
10278
+ sub r8, r8, #12
996710279 str r3, [r4, #-1268]
996810280 str r6, [r4, #-1264]
996910281 bl FtlBbtMemInit
9970
- sub r3, r4, #1664
9971
- sub r8, r3, #6
9972
- ldrh r5, [r3, #-6]
10282
+ ldrh r5, [r7, #-4]
997310283 sub r5, r5, #1
997410284 uxth r5, r5
9975
-.L1788:
9976
- ldrh r3, [r8]
10285
+.L1767:
10286
+ ldrh r3, [r7, #-4]
997710287 sub r3, r3, #48
997810288 cmp r5, r3
9979
- ble .L1791
9980
- mov r1, #1
9981
- ldr r0, .L1820+4
9982
- mov r2, r1
9983
- mov r3, r5, asl #10
9984
- str r3, [r7, #-1272]
10289
+ ble .L1770
10290
+ lsl r3, r5, #10
10291
+ mov r2, #1
10292
+ mov r1, r2
10293
+ mov r0, r8
10294
+ str r3, [r4, #-1272]
998510295 bl FlashReadPages
9986
- ldr r3, [r7, #-1276]
10296
+ ldr r3, [r4, #-1276]
998710297 cmn r3, #1
9988
- bne .L1789
9989
- ldr r3, [r7, #-1272]
9990
- mov r1, #1
9991
- ldr r0, .L1820+4
9992
- mov r2, r1
10298
+ bne .L1768
10299
+ ldr r3, [r4, #-1272]
10300
+ mov r2, #1
10301
+ mov r1, r2
10302
+ mov r0, r8
999310303 add r3, r3, #1
9994
- str r3, [r7, #-1272]
10304
+ str r3, [r4, #-1272]
999510305 bl FlashReadPages
9996
-.L1789:
9997
- ldr r2, [r4, #-1276]
9998
- ldr r3, .L1820
9999
- cmn r2, #1
10000
- beq .L1790
10001
- ldrh r1, [r6]
10002
- movw r2, #61649
10003
- cmp r1, r2
10004
- bne .L1790
10005
- sub r2, r3, #1344
10006
- strh r5, [r2, #-4] @ movhi
10007
- ldr r2, [r6, #4]
10008
- str r2, [r3, #-1340]
10009
- ldr r3, .L1820+8
10010
- ldrh r2, [r6, #8]
10011
- strh r2, [r3, #4] @ movhi
10012
- b .L1791
10013
-.L1790:
10014
- sub r5, r5, #1
10015
- uxth r5, r5
10016
- b .L1788
10017
-.L1791:
10018
- ldr r8, .L1820
10019
- movw r2, #65535
10020
- sub r7, r8, #1344
10021
- sub r5, r7, #4
10022
- ldrh r3, [r7, #-4]
10023
- cmp r3, r2
10024
- beq .L1805
10025
- ldrh r3, [r5, #4]
10026
- cmp r3, r2
10027
- beq .L1795
10028
- mov r1, #1
10029
- add r0, r5, #72
10030
- mov r2, r1
10031
- mov r3, r3, asl #10
10032
- str r3, [r8, #-1272]
10033
- bl FlashReadPages
10034
- ldr r3, [r8, #-1276]
10306
+.L1768:
10307
+ ldr r3, [r4, #-1276]
1003510308 cmn r3, #1
10036
- beq .L1795
10309
+ beq .L1769
1003710310 ldrh r2, [r6]
1003810311 movw r3, #61649
1003910312 cmp r2, r3
10040
- bne .L1795
10041
- ldr r3, [r6, #4]
10042
- ldr r2, [r8, #-1340]
10313
+ bne .L1769
10314
+ ldr r2, [r6, #4]
10315
+ ldr r3, .L1798+4
10316
+ str r2, [r4, #-1340]
10317
+ ldrh r2, [r6, #8]
10318
+ strh r5, [r3, #-4] @ movhi
10319
+ strh r2, [r3] @ movhi
10320
+.L1770:
10321
+ ldr r5, .L1798+4
10322
+ movw r2, #65535
10323
+ ldrh r3, [r5, #-4]
10324
+ sub r7, r5, #4
1004310325 cmp r3, r2
10044
- strhi r3, [r8, #-1340]
10045
- ldrhih r2, [r5, #4]
10046
- ldrhih r3, [r6, #8]
10047
- strhih r2, [r7, #-4] @ movhi
10048
- strhih r3, [r5, #4] @ movhi
10049
-.L1795:
10050
- ldrh r0, [r7, #-4]
10051
- mov r1, #1
10052
- bl FtlGetLastWrittenPage
10053
- movw r8, #61649
10054
- uxth r7, r0
10055
- add r0, r0, #1
10056
- strh r0, [r5, #2] @ movhi
10057
-.L1797:
10058
- sxth r3, r7
10059
- cmp r3, #0
10060
- blt .L1802
10061
- ldrh r2, [r5]
10062
- mov r1, #1
10063
- ldr r0, .L1820+4
10064
- orr r3, r3, r2, asl #10
10326
+ beq .L1784
10327
+ ldrh r3, [r7, #4]
10328
+ cmp r3, r2
10329
+ beq .L1774
10330
+ lsl r3, r3, #10
10331
+ mov r2, #1
10332
+ mov r1, r2
10333
+ add r0, r5, #68
1006510334 str r3, [r4, #-1272]
10066
- ldr r3, [r4, #-1476]
10067
- mov r2, r1
10335
+ bl FlashReadPages
10336
+ ldr r3, [r4, #-1276]
10337
+ cmn r3, #1
10338
+ beq .L1774
10339
+ ldrh r2, [r6]
10340
+ movw r3, #61649
10341
+ cmp r2, r3
10342
+ bne .L1774
10343
+ ldr r3, [r6, #4]
10344
+ ldr r2, [r4, #-1340]
10345
+ cmp r3, r2
10346
+ ldrhhi r2, [r7, #4]
10347
+ strhi r3, [r4, #-1340]
10348
+ ldrhhi r3, [r6, #8]
10349
+ strhhi r2, [r5, #-4] @ movhi
10350
+ strhhi r3, [r7, #4] @ movhi
10351
+.L1774:
10352
+ ldr r8, .L1798+8
10353
+ mov r1, #1
10354
+ ldrh r0, [r5, #-4]
10355
+ bl FtlGetLastWrittenPage
10356
+ sxth r7, r0
10357
+ add r0, r0, #1
10358
+ strh r0, [r5, #-2] @ movhi
10359
+.L1776:
10360
+ cmp r7, #0
10361
+ blt .L1781
10362
+ ldrh r3, [r5, #-4]
10363
+ mov r2, #1
10364
+ mov r1, r2
10365
+ mov r0, r8
10366
+ orr r3, r7, r3, lsl #10
10367
+ str r3, [r4, #-1272]
10368
+ ldr r3, [r4, #-1472]
1006810369 str r3, [r4, #-1268]
1006910370 bl FlashReadPages
1007010371 ldr r3, [r4, #-1276]
1007110372 cmn r3, #1
10072
- beq .L1798
10073
- ldrh r3, [r6]
10074
- cmp r3, r8
10075
- bne .L1798
10076
-.L1802:
10077
- ldrh r2, [r6, #10]
10373
+ beq .L1777
10374
+ ldrh r2, [r6]
10375
+ movw r3, #61649
10376
+ cmp r2, r3
10377
+ bne .L1777
10378
+.L1781:
10379
+ ldrh r3, [r6, #10]
1007810380 ldrh r0, [r6, #12]
10079
- ldr r3, .L1820
10080
- strh r2, [r5, #6] @ movhi
10081
- movw r2, #65535
10082
- cmp r0, r2
10083
- bne .L1799
10084
- b .L1800
10085
-.L1798:
10086
- sub r7, r7, #1
10087
- uxth r7, r7
10088
- b .L1797
10089
-.L1799:
10090
- ldr r2, [r3, #-1740]
10091
- cmp r0, r2
10092
- beq .L1800
10093
- sub r3, r3, #1712
10094
- ldrh r3, [r3, #-14]
10095
- mov r3, r3, lsr #2
10381
+ strh r3, [r5, #2] @ movhi
10382
+ movw r3, #65535
1009610383 cmp r0, r3
10097
- cmpcc r2, r3
10098
- bcs .L1800
10099
- bl FtlSysBlkNumInit
10100
-.L1800:
10101
- ldr r5, .L1820+12
10102
- mov r4, #0
10103
- ldr r7, .L1820
10104
- ldr r6, .L1820+16
10105
- sub r8, r5, #28
10106
-.L1803:
10107
- ldrh r3, [r6]
10108
- cmp r4, r3
10109
- bcs .L1819
10110
- ldrh r2, [r8]
10111
- ldr r1, [r7, #-1268]
10112
- ldr r0, [r5, #4]!
10113
- mov r2, r2, asl #2
10114
- mla r1, r4, r2, r1
10115
- bl ftl_memcpy
10116
- add r4, r4, #1
10117
- b .L1803
10118
-.L1819:
10384
+ bne .L1778
10385
+.L1779:
10386
+ add r7, r5, #20
10387
+ mov r6, #0
10388
+.L1782:
10389
+ ldr r3, .L1798+12
10390
+ ldrh r3, [r3]
10391
+ cmp r6, r3
10392
+ bcc .L1783
1011910393 mov r0, #0
10120
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
10121
-.L1805:
10394
+ pop {r4, r5, r6, r7, r8, pc}
10395
+.L1769:
10396
+ sub r5, r5, #1
10397
+ uxth r5, r5
10398
+ b .L1767
10399
+.L1777:
10400
+ sub r7, r7, #1
10401
+ sxth r7, r7
10402
+ b .L1776
10403
+.L1778:
10404
+ ldr r2, [r4, #-1736]
10405
+ cmp r0, r2
10406
+ beq .L1779
10407
+ ldr r3, .L1798+16
10408
+ ldrh r3, [r3, #-10]
10409
+ lsr r3, r3, #2
10410
+ cmp r2, r3
10411
+ cmpcc r0, r3
10412
+ bcs .L1779
10413
+ bl FtlSysBlkNumInit
10414
+ b .L1779
10415
+.L1783:
10416
+ ldrh r2, [r5, #-8]
10417
+ ldr r1, [r4, #-1268]
10418
+ ldr r0, [r7, #4]!
10419
+ lsl r2, r2, #2
10420
+ mla r1, r6, r2, r1
10421
+ add r6, r6, #1
10422
+ bl ftl_memcpy
10423
+ b .L1782
10424
+.L1784:
1012210425 mvn r0, #0
10123
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
10124
-.L1821:
10426
+ pop {r4, r5, r6, r7, r8, pc}
10427
+.L1799:
1012510428 .align 2
10126
-.L1820:
10429
+.L1798:
1012710430 .word .LANCHOR2
10431
+ .word .LANCHOR2-1344
1012810432 .word .LANCHOR2-1276
10129
- .word .LANCHOR2-1348
10130
- .word .LANCHOR2-1324
10131
- .word .LANCHOR2-1714
10433
+ .word .LANCHOR2-1710
10434
+ .word .LANCHOR2-1712
1013210435 .fnend
1013310436 .size FtlLoadBbt, .-FtlLoadBbt
1013410437 .align 2
1013510438 .global FtlFreeSysBlkQueueInit
10439
+ .syntax unified
10440
+ .arm
10441
+ .fpu softvfp
1013610442 .type FtlFreeSysBlkQueueInit, %function
1013710443 FtlFreeSysBlkQueueInit:
1013810444 .fnstart
1013910445 @ args = 0, pretend = 0, frame = 0
1014010446 @ frame_needed = 0, uses_anonymous_args = 0
10141
- ldr r3, .L1824
10447
+ ldr r3, .L1802
1014210448 mov r2, #2048
10143
- stmfd sp!, {r4, lr}
10449
+ push {r4, lr}
1014410450 .save {r4, lr}
1014510451 mov r4, #0
10146
- strh r0, [r3, #-8] @ movhi
1014710452 mov r1, r4
10453
+ strh r0, [r3, #-8] @ movhi
1014810454 mov r0, r3
1014910455 strh r4, [r3, #-6] @ movhi
1015010456 strh r4, [r3, #-4] @ movhi
1015110457 strh r4, [r3, #-2] @ movhi
1015210458 bl ftl_memset
1015310459 mov r0, r4
10154
- ldmfd sp!, {r4, pc}
10155
-.L1825:
10460
+ pop {r4, pc}
10461
+.L1803:
1015610462 .align 2
10157
-.L1824:
10463
+.L1802:
1015810464 .word .LANCHOR2-1232
1015910465 .fnend
1016010466 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
1016110467 .align 2
1016210468 .global FtlFreeSysBlkQueueEmpty
10469
+ .syntax unified
10470
+ .arm
10471
+ .fpu softvfp
1016310472 .type FtlFreeSysBlkQueueEmpty, %function
1016410473 FtlFreeSysBlkQueueEmpty:
1016510474 .fnstart
1016610475 @ args = 0, pretend = 0, frame = 0
1016710476 @ frame_needed = 0, uses_anonymous_args = 0
1016810477 @ link register save eliminated.
10169
- ldr r3, .L1827
10478
+ ldr r3, .L1805
1017010479 ldrh r0, [r3, #6]
1017110480 clz r0, r0
10172
- mov r0, r0, lsr #5
10481
+ lsr r0, r0, #5
1017310482 bx lr
10174
-.L1828:
10483
+.L1806:
1017510484 .align 2
10176
-.L1827:
10485
+.L1805:
1017710486 .word .LANCHOR2-1240
1017810487 .fnend
1017910488 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
1018010489 .align 2
1018110490 .global FtlFreeSysBlkQueueFull
10491
+ .syntax unified
10492
+ .arm
10493
+ .fpu softvfp
1018210494 .type FtlFreeSysBlkQueueFull, %function
1018310495 FtlFreeSysBlkQueueFull:
1018410496 .fnstart
1018510497 @ args = 0, pretend = 0, frame = 0
1018610498 @ frame_needed = 0, uses_anonymous_args = 0
1018710499 @ link register save eliminated.
10188
- ldr r3, .L1830
10500
+ ldr r3, .L1808
1018910501 ldrh r0, [r3, #6]
1019010502 sub r0, r0, #1024
1019110503 clz r0, r0
10192
- mov r0, r0, lsr #5
10504
+ lsr r0, r0, #5
1019310505 bx lr
10194
-.L1831:
10506
+.L1809:
1019510507 .align 2
10196
-.L1830:
10508
+.L1808:
1019710509 .word .LANCHOR2-1240
1019810510 .fnend
1019910511 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
1020010512 .align 2
1020110513 .global FtlFreeSysBlkQueueIn
10514
+ .syntax unified
10515
+ .arm
10516
+ .fpu softvfp
1020210517 .type FtlFreeSysBlkQueueIn, %function
1020310518 FtlFreeSysBlkQueueIn:
1020410519 .fnstart
1020510520 @ args = 0, pretend = 0, frame = 0
1020610521 @ frame_needed = 0, uses_anonymous_args = 0
10207
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
10208
- .save {r3, r4, r5, r6, r7, lr}
1020910522 sub r3, r0, #1
1021010523 movw r2, #65533
10211
- mov r7, r0
1021210524 uxth r3, r3
1021310525 cmp r3, r2
10214
- ldmhifd sp!, {r3, r4, r5, r6, r7, pc}
10215
- ldr r4, .L1842
10216
- ldr r5, .L1842+4
10217
- ldrh r3, [r4, #6]
10218
- cmp r3, #1024
10219
- ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
10526
+ bxhi lr
10527
+ push {r4, r5, r6, r7, r8, lr}
10528
+ .save {r4, r5, r6, r7, r8, lr}
10529
+ ldr r5, .L1823
10530
+ sub r3, r5, #1232
10531
+ ldrh r2, [r3, #-2]
10532
+ mov r4, r3
10533
+ cmp r2, #1024
10534
+ popeq {r4, r5, r6, r7, r8, pc}
1022010535 cmp r1, #0
10221
- beq .L1834
10536
+ mov r6, r0
10537
+ beq .L1812
1022210538 ldr r3, [r5, #-1280]
1022310539 cmp r3, #0
10224
- bne .L1834
10540
+ bne .L1812
1022510541 bl P2V_block_in_plane
10226
- mov r1, #1
10227
- mov r3, r7, asl #10
10228
- mov r2, r1
10229
- mov r6, r0
10230
- ldr r0, [r5, #-1492]
10542
+ mov r7, r0
10543
+ ldr r0, [r5, #-1488]
10544
+ lsl r3, r6, #10
10545
+ mov r2, #1
10546
+ mov r1, r2
1023110547 str r3, [r0, #4]
1023210548 bl FlashEraseBlocks
10233
- ldr r1, [r5, #-1416]
10234
- mov r3, r6, asl #1
10235
- ldrh r2, [r1, r3]
10549
+ ldr r2, [r5, #-1412]
10550
+ lsl r0, r7, #1
10551
+ ldrh r3, [r2, r0]
10552
+ add r3, r3, #1
10553
+ strh r3, [r2, r0] @ movhi
10554
+ ldr r3, [r5, #-1572]
10555
+ add r3, r3, #1
10556
+ str r3, [r5, #-1572]
10557
+.L1812:
10558
+ ldrh r2, [r4, #-2]
10559
+ sub r3, r4, #8
1023610560 add r2, r2, #1
10237
- strh r2, [r1, r3] @ movhi
10238
- ldr r3, [r5, #-1576]
10239
- add r3, r3, #1
10240
- str r3, [r5, #-1576]
10241
-.L1834:
10242
- ldrh r3, [r4, #6]
10243
- add r3, r3, #1
10244
- strh r3, [r4, #6] @ movhi
10245
- ldrh r3, [r4, #4]
10246
- add r2, r4, r3, asl #1
10247
- add r3, r3, #1
10248
- ubfx r3, r3, #0, #10
10249
- strh r3, [r4, #4] @ movhi
10250
- strh r7, [r2, #8] @ movhi
10251
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
10252
-.L1843:
10561
+ strh r2, [r4, #-2] @ movhi
10562
+ ldrh r2, [r4, #-4]
10563
+ add r1, r3, r2, lsl #1
10564
+ add r2, r2, #1
10565
+ ubfx r2, r2, #0, #10
10566
+ strh r6, [r1, #8] @ movhi
10567
+ strh r2, [r4, #-4] @ movhi
10568
+ pop {r4, r5, r6, r7, r8, pc}
10569
+.L1824:
1025310570 .align 2
10254
-.L1842:
10255
- .word .LANCHOR2-1240
10571
+.L1823:
1025610572 .word .LANCHOR2
1025710573 .fnend
1025810574 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
1025910575 .align 2
1026010576 .global FtlLowFormatEraseBlock
10577
+ .syntax unified
10578
+ .arm
10579
+ .fpu softvfp
1026110580 .type FtlLowFormatEraseBlock, %function
1026210581 FtlLowFormatEraseBlock:
1026310582 .fnstart
1026410583 @ args = 0, pretend = 0, frame = 24
1026510584 @ frame_needed = 0, uses_anonymous_args = 0
10266
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10585
+ ldr r3, .L1870
10586
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1026710587 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1026810588 .pad #28
1026910589 sub sp, sp, #28
10270
- ldr r9, .L1894
10271
- ldr r5, [r9, #-1280]
10272
- ldrb r3, [r9, #-1874] @ zero_extendqisi2
10273
- cmp r5, #0
10274
- str r3, [sp, #16]
10275
- movne r0, #0
10276
- bne .L1845
10277
- ldrb r3, [r9, #-2744] @ zero_extendqisi2
10278
- mov fp, r1
10279
- mov r10, r5
10280
- mov r4, r5
10281
- mov r7, r9
10282
- mov r8, #36
10590
+ ldr r2, [r3, #-1280]
10591
+ cmp r2, #0
10592
+ movne r4, #0
10593
+ bne .L1825
10594
+ mov r10, r3
10595
+ ldrb r3, [r3, #-1870] @ zero_extendqisi2
10596
+ ldrb r8, [r10, #-2740] @ zero_extendqisi2
10597
+ mov r7, r1
10598
+ mov fp, r2
10599
+ mov r5, r2
10600
+ mov r4, r2
10601
+ mov r9, #36
1028310602 str r0, [sp, #4]
10284
- str r3, [sp, #8]
10285
- str r0, [r9, #-1544]
10286
-.L1846:
10287
- ldr r3, .L1894+4
10288
- uxth r1, r10
10289
- ldr r6, .L1894
10290
- ldrh r0, [r3]
10603
+ str r3, [sp, #16]
10604
+ str r0, [r10, #-1540]
10605
+.L1827:
10606
+ ldr r1, .L1870+4
10607
+ ldrh r0, [r1]
10608
+ uxth r1, fp
1029110609 cmp r0, r1
10292
- bls .L1889
10293
- mul r0, r8, r1
10294
- ldr ip, [r7, #-1492]
10295
- add r1, r7, r1
10610
+ bhi .L1831
10611
+ cmp r5, #0
10612
+ beq .L1825
10613
+ adds r8, r8, #0
10614
+ mov r6, #0
10615
+ movne r8, #1
10616
+ mov r2, r5
10617
+ mov r1, r8
10618
+ ldr r0, [r10, #-1488]
10619
+ strb r6, [r10, #-1870]
10620
+ mov r9, #36
10621
+ bl FlashEraseBlocks
10622
+ ldrb r3, [sp, #16] @ zero_extendqisi2
10623
+ strb r3, [r10, #-1870]
10624
+.L1833:
10625
+ uxth r2, r6
10626
+ cmp r5, r2
10627
+ bhi .L1835
10628
+ cmp r7, #0
10629
+ bne .L1836
10630
+ uxth r8, r8
10631
+ mov r3, #6
10632
+ str r3, [sp, #12]
10633
+ mov r3, #1
10634
+ str r3, [sp, #8]
10635
+.L1837:
10636
+ ldr r5, .L1870
10637
+ mov fp, #0
10638
+.L1846:
10639
+ mov r10, #0
10640
+ mov r6, r10
10641
+.L1838:
10642
+ ldr r3, .L1870+8
10643
+ ldrh r1, [r3, #-4]
10644
+ uxth r3, r10
10645
+ cmp r1, r3
10646
+ bhi .L1841
10647
+ cmp r6, #0
10648
+ beq .L1825
10649
+ mov r3, #1
10650
+ mov r2, r8
10651
+ mov r9, #0
10652
+ mov r1, r6
10653
+ ldr r0, [r5, #-1488]
10654
+ strb r9, [r5, #-1870]
10655
+ bl FlashProgPages
10656
+ ldrb r3, [sp, #16] @ zero_extendqisi2
10657
+ mov r2, #36
10658
+ strb r3, [r5, #-1870]
10659
+.L1843:
10660
+ uxth r3, r9
10661
+ cmp r6, r3
10662
+ bhi .L1845
10663
+ ldr r3, [sp, #12]
10664
+ add fp, fp, r3
10665
+ ldr r3, [sp, #8]
10666
+ uxth fp, fp
10667
+ cmp r3, fp
10668
+ bhi .L1846
10669
+ mov r9, #0
10670
+ mov fp, #36
10671
+.L1847:
10672
+ uxth r3, r9
10673
+ cmp r6, r3
10674
+ bhi .L1849
10675
+ ldr r3, [sp, #4]
10676
+ adds r7, r7, #0
10677
+ movne r7, #1
10678
+ cmp r3, #63
10679
+ movhi r10, r7
10680
+ orrls r10, r7, #1
10681
+ cmp r10, #0
10682
+ beq .L1825
10683
+ mov r2, r6
10684
+ mov r1, r8
10685
+ ldr r0, [r5, #-1488]
10686
+ bl FlashEraseBlocks
10687
+.L1825:
10688
+ mov r0, r4
10689
+ add sp, sp, #28
10690
+ @ sp needed
10691
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10692
+.L1831:
10693
+ uxth r1, fp
10694
+ ldr ip, [r10, #-1488]
1029610695 mov r3, #0
10696
+ mul r0, r9, r1
1029710697 str r3, [ip, r0]
10298
- ldrb r0, [r1, #-1708] @ zero_extendqisi2
10698
+ add r0, r10, r1
10699
+ ldrb r0, [r0, #-1706] @ zero_extendqisi2
1029910700 ldr r1, [sp, #4]
1030010701 bl V2P_block
10301
- cmp fp, #0
10702
+ cmp r7, #0
1030210703 mov r6, r0
10303
- beq .L1847
10704
+ beq .L1828
1030410705 bl IsBlkInVendorPart
1030510706 cmp r0, #0
10306
- bne .L1848
10307
-.L1847:
10707
+ bne .L1829
10708
+.L1828:
1030810709 mov r0, r6
1030910710 bl FtlBbmIsBadBlock
1031010711 cmp r0, #0
1031110712 addne r4, r4, #1
1031210713 uxthne r4, r4
10313
- bne .L1848
10314
- ldr r3, .L1894+8
10315
- mov r6, r6, asl #10
10316
- ldr ip, [r9, #-1492]
10317
- ldrh r1, [r3]
10318
- mla ip, r8, r5, ip
10319
- mul r1, r1, r5
10714
+ bne .L1829
10715
+ ldr r1, .L1870+12
10716
+ lsl r6, r6, #10
10717
+ ldr ip, [r10, #-1488]
10718
+ ldrh r1, [r1]
10719
+ mla ip, r9, r5, ip
10720
+ mul r1, r5, r1
1032010721 add r5, r5, #1
1032110722 uxth r5, r5
10322
- cmp r1, #0
1032310723 str r0, [ip, #8]
10324
- add r0, r1, #3
1032510724 str r6, [ip, #4]
10725
+ add r0, r1, #3
10726
+ cmp r1, #0
1032610727 movlt r1, r0
10327
- ldr r0, [r9, #-1440]
10728
+ ldr r0, [r10, #-1436]
1032810729 bic r1, r1, #3
1032910730 add r1, r0, r1
1033010731 str r1, [ip, #12]
10331
-.L1848:
10332
- add r10, r10, #1
10333
- b .L1846
10334
-.L1889:
10335
- cmp r5, #0
10336
- beq .L1869
10337
- ldr r3, [sp, #8]
10338
- mov r2, r5
10339
- ldr r0, [r6, #-1492]
10340
- mov r8, #0
10341
- adds r7, r3, #0
10342
- strb r8, [r6, #-1874]
10343
- movne r7, #1
10344
- mov r1, r7
10345
- bl FlashEraseBlocks
10346
- ldrb r3, [sp, #16] @ zero_extendqisi2
10347
- strb r3, [r6, #-1874]
10348
- mov r6, #36
10349
-.L1852:
10350
- uxth r2, r8
10351
- cmp r2, r5
10352
- bcs .L1890
10353
- mul r2, r6, r8
10354
- ldr r1, [r9, #-1492]
10355
- add r0, r1, r2
10732
+.L1829:
10733
+ add fp, fp, #1
10734
+ b .L1827
10735
+.L1835:
10736
+ mul r2, r9, r6
10737
+ ldr r1, [r10, #-1488]
10738
+ add ip, r1, r2
1035610739 ldr r2, [r1, r2]
1035710740 cmn r2, #1
10358
- bne .L1853
10359
- ldr r0, [r0, #4]
10741
+ bne .L1834
10742
+ ldr r0, [ip, #4]
1036010743 add r4, r4, #1
10361
- ubfx r0, r0, #10, #16
1036210744 uxth r4, r4
10745
+ ubfx r0, r0, #10, #16
1036310746 bl FtlBbmMapBadBlock
10364
-.L1853:
10365
- add r8, r8, #1
10366
- b .L1852
10367
-.L1890:
10368
- cmp fp, #0
10369
- bne .L1855
10370
- mov r3, #6
10371
- uxth r6, r7
10372
- str r3, [sp, #12]
10373
- mov r3, #1
10747
+.L1834:
10748
+ add r6, r6, #1
10749
+ b .L1833
10750
+.L1836:
10751
+ ldr r2, .L1870+16
10752
+ ldrh r3, [r2]
1037410753 str r3, [sp, #8]
10375
- b .L1856
10376
-.L1855:
10377
- ldr r2, .L1894+12
10378
- ldrh r3, [r2, #-2]
10379
- str r3, [sp, #8]
10380
- ldrb r3, [r9, #-2744] @ zero_extendqisi2
10754
+ ldrb r3, [r10, #-2740] @ zero_extendqisi2
1038110755 cmp r3, #0
1038210756 ldreq r3, [sp, #8]
10383
- moveq r6, #1
10384
- movne r6, #1
10385
- strne r6, [sp, #12]
10386
- moveq r3, r3, lsr #2
10757
+ movne r8, #1
10758
+ moveq r8, #1
10759
+ strne r8, [sp, #12]
10760
+ lsreq r3, r3, #2
1038710761 streq r3, [sp, #12]
10388
-.L1856:
10389
- ldr r10, .L1894
10390
- mov r7, #0
10391
-.L1865:
10392
- mov r8, #0
10393
- mov r5, r8
10394
-.L1857:
10395
- ldr r3, .L1894+4
10396
- ldr r9, .L1894
10397
- ldrh r2, [r3]
10398
- uxth r3, r8
10399
- cmp r2, r3
10400
- bls .L1891
10762
+ b .L1837
10763
+.L1841:
10764
+ uxth r3, r10
1040110765 mov r2, #36
10402
- ldr r1, [r10, #-1492]
10403
- mul r2, r2, r3
10404
- add r3, r10, r3
10405
- mov r0, #0
10406
- str r0, [r1, r2]
10766
+ ldr r0, [r5, #-1488]
10767
+ mul r1, r2, r3
10768
+ mov r2, #0
10769
+ add r3, r5, r3
10770
+ str r2, [r0, r1]
1040710771 ldr r1, [sp, #4]
10408
- ldrb r0, [r3, #-1708] @ zero_extendqisi2
10772
+ ldrb r0, [r3, #-1706] @ zero_extendqisi2
1040910773 bl V2P_block
10410
- cmp fp, #0
10774
+ cmp r7, #0
1041110775 mov r9, r0
10412
- beq .L1858
10776
+ beq .L1839
1041310777 bl IsBlkInVendorPart
1041410778 cmp r0, #0
10415
- bne .L1859
10416
-.L1858:
10779
+ bne .L1840
10780
+.L1839:
1041710781 mov r0, r9
1041810782 bl FtlBbmIsBadBlock
1041910783 cmp r0, #0
10420
- bne .L1859
10421
- ldr r2, [r10, #-1492]
10784
+ bne .L1840
10785
+ ldr r1, [r5, #-1488]
1042210786 mov r3, #36
10423
- add r9, r7, r9, asl #10
10424
- mla r2, r3, r5, r2
10425
- ldr r3, [r10, #-1456]
10426
- str r3, [r2, #8]
10427
- ldr r3, .L1894+8
10428
- str r9, [r2, #4]
10429
- ldrh r3, [r3]
10430
- mul r3, r3, r5
10431
- add r5, r5, #1
10432
- uxth r5, r5
10433
- add r1, r3, #3
10787
+ add r9, fp, r9, lsl #10
10788
+ mla r1, r3, r6, r1
10789
+ ldr r3, [r5, #-1452]
10790
+ str r3, [r1, #8]
10791
+ ldr r3, .L1870+20
10792
+ str r9, [r1, #4]
10793
+ ldrh r3, [r3, #-6]
10794
+ mul r3, r6, r3
10795
+ add r6, r6, #1
10796
+ uxth r6, r6
10797
+ add r0, r3, #3
1043410798 cmp r3, #0
10435
- movlt r3, r1
10436
- ldr r1, [r10, #-1452]
10799
+ movlt r3, r0
10800
+ ldr r0, [r5, #-1448]
1043710801 bic r3, r3, #3
10438
- add r3, r1, r3
10439
- str r3, [r2, #12]
10440
-.L1859:
10441
- add r8, r8, #1
10442
- b .L1857
10443
-.L1891:
10444
- cmp r5, #0
10445
- beq .L1869
10446
- ldr r2, .L1894
10447
- mov r3, #0
10448
- mov r1, r5
10449
- mov r8, #0
10450
- strb r3, [r2, #-1874]
10451
- mov r3, #1
10452
- ldr r0, [r2, #-1492]
10453
- mov r2, r6
10454
- bl FlashProgPages
10455
- ldr r3, .L1894
10456
- mov r1, #36
10457
- ldrb r2, [sp, #16] @ zero_extendqisi2
10458
- strb r2, [r3, #-1874]
10459
-.L1862:
10460
- uxth r3, r8
10461
- cmp r3, r5
10462
- bcs .L1892
10463
- mul r3, r1, r8
10464
- ldr r2, .L1894
10465
- ldr r2, [r2, #-1492]
10466
- add r0, r2, r3
10467
- ldr r3, [r2, r3]
10802
+ add r3, r0, r3
10803
+ str r3, [r1, #12]
10804
+.L1840:
10805
+ add r10, r10, #1
10806
+ b .L1838
10807
+.L1845:
10808
+ mul r3, r2, r9
10809
+ ldr r1, [r5, #-1488]
10810
+ add ip, r1, r3
10811
+ ldr r3, [r1, r3]
1046810812 cmp r3, #0
10469
- beq .L1863
10470
- ldr r0, [r0, #4]
10813
+ beq .L1844
10814
+ ldr r0, [ip, #4]
1047110815 add r4, r4, #1
10472
- str r1, [sp, #20]
10473
- ubfx r0, r0, #10, #16
10816
+ str r2, [sp, #20]
1047410817 uxth r4, r4
10818
+ ubfx r0, r0, #10, #16
1047510819 bl FtlBbmMapBadBlock
10476
- ldr r1, [sp, #20]
10477
-.L1863:
10478
- add r8, r8, #1
10479
- b .L1862
10480
-.L1892:
10481
- ldr r3, [sp, #12]
10482
- add r7, r7, r3
10483
- ldr r3, [sp, #8]
10484
- uxth r7, r7
10485
- cmp r7, r3
10486
- bcc .L1865
10487
- mov r7, #0
10488
- mov r8, #36
10489
-.L1866:
10490
- uxth r3, r7
10491
- cmp r3, r5
10492
- bcs .L1893
10493
- cmp fp, #0
10494
- beq .L1867
10495
- mul r3, r8, r7
10496
- ldr r2, [r9, #-1492]
10820
+ ldr r2, [sp, #20]
10821
+.L1844:
10822
+ add r9, r9, #1
10823
+ b .L1843
10824
+.L1849:
10825
+ cmp r7, #0
10826
+ beq .L1848
10827
+ mul r3, fp, r9
10828
+ ldr r2, [r5, #-1488]
1049710829 add r1, r2, r3
1049810830 ldr r3, [r2, r3]
1049910831 cmp r3, #0
10500
- bne .L1867
10832
+ bne .L1848
1050110833 ldr r0, [r1, #4]
1050210834 mov r1, #1
1050310835 ubfx r0, r0, #10, #16
1050410836 bl FtlFreeSysBlkQueueIn
10505
-.L1867:
10506
- add r7, r7, #1
10507
- b .L1866
10508
-.L1893:
10509
- adds r3, fp, #0
10510
- ldr r2, [sp, #4]
10511
- movne r3, #1
10512
- cmp r2, #63
10513
- orrls r3, r3, #1
10514
- cmp r3, #0
10515
- beq .L1869
10516
- ldr r0, [r9, #-1492]
10517
- mov r1, r6
10518
- mov r2, r5
10519
- bl FlashEraseBlocks
10520
-.L1869:
10521
- mov r0, r4
10522
-.L1845:
10523
- add sp, sp, #28
10524
- @ sp needed
10525
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10526
-.L1895:
10837
+.L1848:
10838
+ add r9, r9, #1
10839
+ b .L1847
10840
+.L1871:
1052710841 .align 2
10528
-.L1894:
10842
+.L1870:
1052910843 .word .LANCHOR2
10530
- .word .LANCHOR2-1736
10531
- .word .LANCHOR2-1656
10844
+ .word .LANCHOR2-1732
10845
+ .word .LANCHOR2-1728
10846
+ .word .LANCHOR2-1654
1053210847 .word .LANCHOR2-1664
10848
+ .word .LANCHOR2-1648
1053310849 .fnend
1053410850 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
1053510851 .align 2
1053610852 .global FtlFreeSysBLkSort
10853
+ .syntax unified
10854
+ .arm
10855
+ .fpu softvfp
1053710856 .type FtlFreeSysBLkSort, %function
1053810857 FtlFreeSysBLkSort:
1053910858 .fnstart
1054010859 @ args = 0, pretend = 0, frame = 0
1054110860 @ frame_needed = 0, uses_anonymous_args = 0
10542
- ldr r3, .L1909
10543
- ldrh ip, [r3, #28]
10544
- ldr r3, .L1909+4
10861
+ ldr r3, .L1885
1054510862 ldrh r2, [r3, #6]
1054610863 cmp r2, #0
1054710864 bxeq lr
10548
- stmfd sp!, {r4, lr}
10549
- .save {r4, lr}
10550
- mov r0, #0
10551
- ldrh r1, [r3, #2]
10552
- and ip, ip, #31
10865
+ push {r4, r5, lr}
10866
+ .save {r4, r5, lr}
10867
+ add lr, r3, #8
10868
+ add r2, lr, #2048
10869
+ ldrh ip, [r3, #2]
10870
+ mov r4, #0
10871
+ ldrh r5, [r2, #28]
10872
+ mov r0, r4
1055310873 ldrh r2, [r3, #4]
10554
- mov r4, r0
10555
-.L1898:
10556
- uxth lr, r0
10557
- add r0, r0, #1
10558
- cmp lr, ip
10559
- bge .L1908
10560
- add lr, r3, r1, asl #1
10561
- add r1, r1, #1
10562
- ubfx r1, r1, #0, #10
10563
- ldrh r4, [lr, #8]
10564
- add lr, r3, r2, asl #1
10565
- strh r4, [lr, #8] @ movhi
10566
- mov r4, #1
10567
- add r2, r2, r4
10874
+ and r5, r5, #31
10875
+.L1874:
10876
+ uxth r1, r4
10877
+ add r4, r4, #1
10878
+ cmp r5, r1
10879
+ bgt .L1875
10880
+ cmp r0, #0
10881
+ strhne ip, [lr, #-6] @ movhi
10882
+ strhne r2, [lr, #-4] @ movhi
10883
+ pop {r4, r5, pc}
10884
+.L1875:
10885
+ add r1, r3, ip, lsl #1
10886
+ add ip, ip, #1
10887
+ ubfx ip, ip, #0, #10
10888
+ ldrh r0, [r1, #8]
10889
+ add r1, r3, r2, lsl #1
10890
+ strh r0, [r1, #8] @ movhi
10891
+ mov r0, #1
10892
+ add r2, r2, r0
1056810893 ubfx r2, r2, #0, #10
10569
- b .L1898
10570
-.L1908:
10571
- cmp r4, #0
10572
- strneh r1, [r3, #2] @ movhi
10573
- strneh r2, [r3, #4] @ movhi
10574
- ldmfd sp!, {r4, pc}
10575
-.L1910:
10894
+ b .L1874
10895
+.L1886:
1057610896 .align 2
10577
-.L1909:
10578
- .word .LANCHOR2+816
10897
+.L1885:
1057910898 .word .LANCHOR2-1240
1058010899 .fnend
1058110900 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
1058210901 .align 2
1058310902 .global FtlFreeSysBlkQueueOut
10903
+ .syntax unified
10904
+ .arm
10905
+ .fpu softvfp
1058410906 .type FtlFreeSysBlkQueueOut, %function
1058510907 FtlFreeSysBlkQueueOut:
1058610908 .fnstart
1058710909 @ args = 0, pretend = 0, frame = 0
1058810910 @ frame_needed = 0, uses_anonymous_args = 0
10589
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
10590
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
10591
- ldr r6, .L1922
10592
- ldr r5, .L1922+4
10593
- mov r7, r6
10594
-.L1912:
10595
- ldrh r1, [r5, #6]
10911
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
10912
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
10913
+ ldr r4, .L1898
10914
+ sub r6, r4, #1232
10915
+ sub r7, r6, #8
10916
+.L1888:
10917
+ ldrh r1, [r6, #-2]
10918
+ sub r2, r6, #8
1059610919 cmp r1, #0
10597
- beq .L1913
10598
- ldrh r3, [r5, #2]
10920
+ beq .L1889
10921
+ ldrh r3, [r6, #-6]
1059910922 sub r1, r1, #1
10600
- ldr r9, [r6, #-1280]
10601
- strh r1, [r5, #6] @ movhi
10602
- add r2, r5, r3, asl #1
10923
+ ldr r9, [r4, #-1280]
10924
+ strh r1, [r6, #-2] @ movhi
10925
+ add r0, r2, r3, lsl #1
1060310926 cmp r9, #0
1060410927 add r3, r3, #1
1060510928 ubfx r3, r3, #0, #10
10606
- ldrh r4, [r2, #8]
10607
- strh r3, [r5, #2] @ movhi
10608
- bne .L1914
10609
- mov r0, r4
10929
+ ldrh r5, [r0, #8]
10930
+ strh r3, [r6, #-6] @ movhi
10931
+ bne .L1890
10932
+ mov r0, r5
1061010933 bl P2V_block_in_plane
10611
- mov r3, r4, asl #10
1061210934 mov r8, r0
10613
- ldr r0, [r6, #-1492]
10935
+ ldr r0, [r4, #-1488]
10936
+ lsl r3, r5, #10
1061410937 str r3, [r0, #4]
10615
- ldrb r3, [r6, #-2744] @ zero_extendqisi2
10938
+ ldrb r3, [r4, #-2740] @ zero_extendqisi2
1061610939 cmp r3, #0
10617
- beq .L1915
10618
- mov r1, r9
10940
+ beq .L1891
1061910941 mov r2, #1
10942
+ mov r1, r9
1062010943 bl FlashEraseBlocks
10621
-.L1915:
10622
- mov r1, #1
10623
- ldr r0, [r7, #-1492]
10624
- mov r2, r1
10944
+.L1891:
10945
+ mov r2, #1
10946
+ ldr r0, [r4, #-1488]
10947
+ mov r1, r2
1062510948 bl FlashEraseBlocks
10626
- ldr r1, [r7, #-1416]
10627
- mov r3, r8, asl #1
10628
- ldrh r2, [r1, r3]
10629
- add r2, r2, #1
10630
- strh r2, [r1, r3] @ movhi
10631
- ldr r3, [r7, #-1576]
10949
+ ldr r2, [r4, #-1412]
10950
+ lsl r0, r8, #1
10951
+ ldrh r3, [r2, r0]
1063210952 add r3, r3, #1
10633
- str r3, [r7, #-1576]
10634
- b .L1914
10635
-.L1913:
10636
- ldr r0, .L1922+8
10637
- bl printk
10638
-.L1916:
10639
- b .L1916
10640
-.L1914:
10641
- sub r3, r4, #1
10953
+ strh r3, [r2, r0] @ movhi
10954
+ ldr r3, [r4, #-1572]
10955
+ add r3, r3, #1
10956
+ str r3, [r4, #-1572]
10957
+.L1890:
10958
+ sub r3, r5, #1
1064210959 movw r2, #65533
1064310960 uxth r3, r3
1064410961 cmp r3, r2
10645
- bls .L1917
10646
- ldr r3, .L1922+4
10647
- mov r1, r4
10648
- ldr r0, .L1922+12
10649
- ldrh r2, [r3, #6]
10962
+ bls .L1893
10963
+ ldrh r2, [r7, #6]
10964
+ mov r1, r5
10965
+ ldr r0, .L1898+4
1065010966 bl printk
10651
- b .L1912
10652
-.L1917:
10653
- mov r0, r4
10654
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
10655
-.L1923:
10967
+ b .L1888
10968
+.L1889:
10969
+ ldr r0, .L1898+8
10970
+ bl printk
10971
+.L1892:
10972
+ b .L1892
10973
+.L1893:
10974
+ mov r0, r5
10975
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
10976
+.L1899:
1065610977 .align 2
10657
-.L1922:
10978
+.L1898:
1065810979 .word .LANCHOR2
10659
- .word .LANCHOR2-1240
10660
- .word .LC37
1066110980 .word .LC38
10981
+ .word .LC37
1066210982 .fnend
1066310983 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
1066410984 .align 2
1066510985 .global test_node_in_list
10986
+ .syntax unified
10987
+ .arm
10988
+ .fpu softvfp
1066610989 .type test_node_in_list, %function
1066710990 test_node_in_list:
1066810991 .fnstart
1066910992 @ args = 0, pretend = 0, frame = 0
1067010993 @ frame_needed = 0, uses_anonymous_args = 0
10671
- ldr r3, .L1930
10994
+ ldr r3, .L1906
1067210995 str lr, [sp, #-4]!
1067310996 .save {lr}
1067410997 movw lr, #65535
10675
- ldr ip, [r3, #-1356]
1067610998 ldr r2, [r0]
10677
- ldr r3, .L1930+4
10678
- rsb r0, ip, r2
10679
- mov r0, r0, asr #1
10999
+ ldr ip, [r3, #-1356]
11000
+ sub r3, r2, ip
11001
+ asr r0, r3, #1
11002
+ ldr r3, .L1906+4
1068011003 mul r3, r3, r0
1068111004 mov r0, #6
1068211005 uxth r3, r3
10683
-.L1926:
10684
- cmp r1, r3
10685
- beq .L1927
11006
+.L1902:
11007
+ cmp r3, r1
11008
+ beq .L1903
1068611009 ldrh r3, [r2]
1068711010 cmp r3, lr
10688
- beq .L1928
11011
+ beq .L1904
1068911012 mla r2, r0, r3, ip
10690
- b .L1926
10691
-.L1927:
11013
+ b .L1902
11014
+.L1903:
1069211015 mov r0, #1
1069311016 ldr pc, [sp], #4
10694
-.L1928:
11017
+.L1904:
1069511018 mov r0, #0
1069611019 ldr pc, [sp], #4
10697
-.L1931:
11020
+.L1907:
1069811021 .align 2
10699
-.L1930:
11022
+.L1906:
1070011023 .word .LANCHOR2
1070111024 .word -1431655765
1070211025 .fnend
1070311026 .size test_node_in_list, .-test_node_in_list
1070411027 .align 2
1070511028 .global insert_data_list
11029
+ .syntax unified
11030
+ .arm
11031
+ .fpu softvfp
1070611032 .type insert_data_list, %function
1070711033 insert_data_list:
1070811034 .fnstart
1070911035 @ args = 0, pretend = 0, frame = 8
1071011036 @ frame_needed = 0, uses_anonymous_args = 0
10711
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
11037
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1071211038 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1071311039 .pad #12
10714
- ldr r2, .L1949
10715
- sub r5, r2, #1728
10716
- ldrh r3, [r5]
11040
+ ldr r2, .L1924
11041
+ sub r4, r2, #1712
11042
+ ldrh r3, [r4, #-12]
1071711043 cmp r3, r0
10718
- bls .L1934
11044
+ bls .L1910
1071911045 mov lr, #6
1072011046 ldr r6, [r2, #-1356]
1072111047 mul lr, lr, r0
....@@ -10725,29 +11051,30 @@
1072511051 strh ip, [r6, lr] @ movhi
1072611052 ldr r3, [r2, #864]
1072711053 cmp r3, #0
10728
- beq .L1948
10729
- ldr r8, [r2, #-1408]
10730
- mov r4, r0, asl #1
10731
- mov r10, r2
11054
+ streq r1, [r2, #864]
11055
+ beq .L1910
11056
+ ldr r8, [r2, #-1404]
11057
+ lsl r10, r0, #1
11058
+ mov r5, r2
1073211059 ldrh r2, [r1, #4]
10733
- ldrh r5, [r5]
10734
- ldrh r7, [r8, r4]
11060
+ ldrh r4, [r4, #-12]
11061
+ ldrh r7, [r8, r10]
1073511062 cmp r2, #0
10736
- str r5, [sp]
11063
+ str r4, [sp]
1073711064 mulne ip, r2, r7
10738
- ldr r7, [r10, #-1356]
10739
- ldr r2, .L1949+4
10740
- rsb r9, r7, r3
10741
- mov r9, r9, asr #1
11065
+ ldr r7, [r5, #-1356]
11066
+ sub r2, r3, r7
11067
+ asr r9, r2, #1
11068
+ ldr r2, .L1924+4
1074211069 mul r2, r2, r9
10743
- ldr r9, [r10, #-1416]
10744
- add r4, r9, r4
11070
+ ldr r9, [r5, #-1412]
11071
+ add r4, r9, r10
11072
+ uxth r2, r2
1074511073 str r4, [sp, #4]
1074611074 mov r4, #0
10747
- uxth r2, r2
10748
-.L1943:
10749
- add r4, r4, #1
11075
+.L1919:
1075011076 ldr r5, [sp]
11077
+ add r4, r4, #1
1075111078 uxth r4, r4
1075211079 cmp r4, r5
1075311080 movls r5, #0
....@@ -10755,244 +11082,253 @@
1075511082 cmp r0, r2
1075611083 orreq r5, r5, #1
1075711084 cmp r5, #0
10758
- bne .L1934
10759
- mov r10, r2, asl #1
11085
+ bne .L1910
11086
+ lsl r10, r2, #1
1076011087 ldrh r5, [r3, #4]
1076111088 ldrh fp, [r8, r10]
1076211089 cmp r5, #0
1076311090 mvneq r5, #0
1076411091 mulne r5, r5, fp
10765
- cmp r5, ip
10766
- bne .L1939
11092
+ cmp ip, r5
11093
+ bne .L1915
1076711094 ldr r5, [sp, #4]
1076811095 ldrh r10, [r9, r10]
1076911096 ldrh r5, [r5]
1077011097 cmp r10, r5
10771
- bcc .L1941
10772
- b .L1940
10773
-.L1939:
10774
- bhi .L1940
10775
-.L1941:
11098
+ bcc .L1917
11099
+.L1916:
11100
+ strh r2, [r6, lr] @ movhi
11101
+ ldr ip, .L1924
11102
+ ldrh r2, [r3, #2]
11103
+ strh r2, [r1, #2] @ movhi
11104
+ ldr r2, [ip, #864]
11105
+ cmp r3, r2
11106
+ ldrhne lr, [r3, #2]
11107
+ movne r2, #6
11108
+ ldrne r1, [ip, #-1356]
11109
+ strheq r0, [r3, #2] @ movhi
11110
+ streq r1, [ip, #864]
11111
+ mulne r2, r2, lr
11112
+ strhne r0, [r1, r2] @ movhi
11113
+ strhne r0, [r3, #2] @ movhi
11114
+ b .L1910
11115
+.L1915:
11116
+ bcc .L1916
11117
+.L1917:
1077611118 ldrh r5, [r3]
1077711119 movw r10, #65535
1077811120 cmp r5, r10
10779
- streqh r2, [r1, #2] @ movhi
10780
- streqh r0, [r3] @ movhi
10781
- ldreq r3, .L1949
10782
- streq r1, [r3, #868]
10783
- beq .L1934
10784
-.L1942:
10785
- mov r3, #6
10786
- mov r2, r5
10787
- mla r3, r3, r5, r7
10788
- b .L1943
10789
-.L1940:
10790
- strh r2, [r6, lr] @ movhi
10791
- ldrh r2, [r3, #2]
11121
+ bne .L1918
1079211122 strh r2, [r1, #2] @ movhi
10793
- ldr r2, .L1949
10794
- ldr ip, [r2, #864]
10795
- cmp r3, ip
10796
- bne .L1944
10797
- strh r0, [r3, #2] @ movhi
10798
-.L1948:
10799
- str r1, [r2, #864]
10800
- b .L1934
10801
-.L1944:
10802
- ldrh ip, [r3, #2]
10803
- ldr r1, [r2, #-1356]
10804
- mov r2, #6
10805
- mul r2, r2, ip
10806
- strh r0, [r1, r2] @ movhi
10807
- strh r0, [r3, #2] @ movhi
10808
-.L1934:
11123
+ strh r0, [r3] @ movhi
11124
+ ldr r3, .L1924
11125
+ str r1, [r3, #868]
11126
+.L1910:
1080911127 mov r0, #0
1081011128 add sp, sp, #12
1081111129 @ sp needed
10812
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10813
-.L1950:
11130
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11131
+.L1918:
11132
+ mov r3, #6
11133
+ mov r2, r5
11134
+ mla r3, r3, r5, r7
11135
+ b .L1919
11136
+.L1925:
1081411137 .align 2
10815
-.L1949:
11138
+.L1924:
1081611139 .word .LANCHOR2
1081711140 .word -1431655765
1081811141 .fnend
1081911142 .size insert_data_list, .-insert_data_list
1082011143 .align 2
1082111144 .global INSERT_DATA_LIST
11145
+ .syntax unified
11146
+ .arm
11147
+ .fpu softvfp
1082211148 .type INSERT_DATA_LIST, %function
1082311149 INSERT_DATA_LIST:
1082411150 .fnstart
1082511151 @ args = 0, pretend = 0, frame = 0
1082611152 @ frame_needed = 0, uses_anonymous_args = 0
10827
- stmfd sp!, {r3, lr}
10828
- .save {r3, lr}
11153
+ push {r4, lr}
11154
+ .save {r4, lr}
1082911155 bl insert_data_list
10830
- ldr r2, .L1953
11156
+ ldr r2, .L1928
1083111157 ldrh r3, [r2]
1083211158 add r3, r3, #1
1083311159 strh r3, [r2] @ movhi
10834
- ldmfd sp!, {r3, pc}
10835
-.L1954:
11160
+ pop {r4, pc}
11161
+.L1929:
1083611162 .align 2
10837
-.L1953:
11163
+.L1928:
1083811164 .word .LANCHOR2+872
1083911165 .fnend
1084011166 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST
1084111167 .align 2
1084211168 .global insert_free_list
11169
+ .syntax unified
11170
+ .arm
11171
+ .fpu softvfp
1084311172 .type insert_free_list, %function
1084411173 insert_free_list:
1084511174 .fnstart
1084611175 @ args = 0, pretend = 0, frame = 0
1084711176 @ frame_needed = 0, uses_anonymous_args = 0
10848
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
11177
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
1084911178 .save {r4, r5, r6, r7, r8, r9, r10, lr}
1085011179 movw r4, #65535
1085111180 cmp r0, r4
10852
- beq .L1956
10853
- ldr r2, .L1964
10854
- mov lr, #6
10855
- mul r6, lr, r0
11181
+ beq .L1931
11182
+ ldr r2, .L1938
11183
+ mov r1, #6
11184
+ mul r5, r1, r0
1085611185 mvn r3, #0
10857
- ldr r7, [r2, #-1356]
10858
- mov r5, r2
10859
- add ip, r7, r6
10860
- strh r3, [ip, #2] @ movhi
10861
- strh r3, [r7, r6] @ movhi
11186
+ ldr r6, [r2, #-1356]
11187
+ mov ip, r2
11188
+ add lr, r6, r5
11189
+ strh r3, [lr, #2] @ movhi
11190
+ strh r3, [r6, r5] @ movhi
1086211191 ldr r3, [r2, #876]
1086311192 cmp r3, #0
10864
- beq .L1963
10865
- ldr r9, [r2, #-1416]
10866
- mov r2, r0, asl #1
10867
- ldr r8, [r5, #-1356]
10868
- rsb r1, r8, r3
10869
- ldrh r10, [r9, r2]
10870
- ldr r2, .L1964+4
10871
- mov r1, r1, asr #1
10872
- mul r1, r2, r1
10873
- uxth r2, r1
10874
-.L1960:
10875
- mov r1, r2, asl #1
10876
- ldrh r1, [r9, r1]
10877
- cmp r1, r10
10878
- bcs .L1958
11193
+ streq lr, [r2, #876]
11194
+ beq .L1931
11195
+ ldr r8, [r2, #-1412]
11196
+ lsl r2, r0, #1
11197
+ ldr r7, [ip, #-1356]
11198
+ ldrh r9, [r8, r2]
11199
+ sub r2, r3, r7
11200
+ asr r10, r2, #1
11201
+ ldr r2, .L1938+4
11202
+ mul r2, r2, r10
11203
+ mov r10, r1
11204
+ uxth r2, r2
11205
+.L1935:
11206
+ lsl r1, r2, #1
11207
+ ldrh r1, [r8, r1]
11208
+ cmp r1, r9
11209
+ bcs .L1933
1087911210 ldrh r1, [r3]
1088011211 cmp r1, r4
10881
- streqh r2, [ip, #2] @ movhi
10882
- streqh r0, [r3] @ movhi
10883
- beq .L1956
10884
-.L1959:
10885
- mla r3, lr, r1, r8
10886
- mov r2, r1
10887
- b .L1960
10888
-.L1958:
10889
- ldrh r1, [r3, #2]
10890
- strh r1, [ip, #2] @ movhi
10891
- strh r2, [r7, r6] @ movhi
10892
- ldr r1, [r5, #876]
10893
- ldr r2, .L1964
10894
- cmp r3, r1
10895
- bne .L1961
10896
- strh r0, [r3, #2] @ movhi
10897
-.L1963:
10898
- str ip, [r2, #876]
10899
- b .L1956
10900
-.L1961:
10901
- ldrh ip, [r3, #2]
10902
- ldr r1, [r2, #-1356]
10903
- mov r2, #6
10904
- mul r2, r2, ip
10905
- strh r0, [r1, r2] @ movhi
10906
- strh r0, [r3, #2] @ movhi
10907
-.L1956:
11212
+ bne .L1934
11213
+ strh r2, [lr, #2] @ movhi
11214
+ strh r0, [r3] @ movhi
11215
+.L1931:
1090811216 mov r0, #0
10909
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
10910
-.L1965:
11217
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
11218
+.L1934:
11219
+ mla r3, r10, r1, r7
11220
+ mov r2, r1
11221
+ b .L1935
11222
+.L1933:
11223
+ ldrh r1, [r3, #2]
11224
+ strh r1, [lr, #2] @ movhi
11225
+ strh r2, [r6, r5] @ movhi
11226
+ ldr r2, [ip, #876]
11227
+ cmp r3, r2
11228
+ ldrhne lr, [r3, #2]
11229
+ movne r2, #6
11230
+ ldrne r1, [ip, #-1356]
11231
+ strheq r0, [r3, #2] @ movhi
11232
+ streq lr, [ip, #876]
11233
+ mulne r2, r2, lr
11234
+ strhne r0, [r1, r2] @ movhi
11235
+ strhne r0, [r3, #2] @ movhi
11236
+ b .L1931
11237
+.L1939:
1091111238 .align 2
10912
-.L1964:
11239
+.L1938:
1091311240 .word .LANCHOR2
1091411241 .word -1431655765
1091511242 .fnend
1091611243 .size insert_free_list, .-insert_free_list
1091711244 .align 2
1091811245 .global INSERT_FREE_LIST
11246
+ .syntax unified
11247
+ .arm
11248
+ .fpu softvfp
1091911249 .type INSERT_FREE_LIST, %function
1092011250 INSERT_FREE_LIST:
1092111251 .fnstart
1092211252 @ args = 0, pretend = 0, frame = 0
1092311253 @ frame_needed = 0, uses_anonymous_args = 0
10924
- stmfd sp!, {r3, lr}
10925
- .save {r3, lr}
11254
+ push {r4, lr}
11255
+ .save {r4, lr}
1092611256 bl insert_free_list
10927
- ldr r2, .L1968
11257
+ ldr r2, .L1942
1092811258 ldrh r3, [r2]
1092911259 add r3, r3, #1
1093011260 strh r3, [r2] @ movhi
10931
- ldmfd sp!, {r3, pc}
10932
-.L1969:
11261
+ pop {r4, pc}
11262
+.L1943:
1093311263 .align 2
10934
-.L1968:
11264
+.L1942:
1093511265 .word .LANCHOR2+880
1093611266 .fnend
1093711267 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST
1093811268 .align 2
1093911269 .global List_remove_node
11270
+ .syntax unified
11271
+ .arm
11272
+ .fpu softvfp
1094011273 .type List_remove_node, %function
1094111274 List_remove_node:
1094211275 .fnstart
1094311276 @ args = 0, pretend = 0, frame = 0
1094411277 @ frame_needed = 0, uses_anonymous_args = 0
10945
- stmfd sp!, {r4, r5, lr}
11278
+ push {r4, r5, lr}
1094611279 .save {r4, r5, lr}
1094711280 mov ip, #6
10948
- ldr r4, .L1976
10949
- movw r5, #65535
11281
+ ldr r4, .L1950
1095011282 mul r1, ip, r1
11283
+ movw r5, #65535
1095111284 ldr r3, [r0]
1095211285 ldr r2, [r4, #-1356]
1095311286 add lr, r2, r1
1095411287 cmp lr, r3
1095511288 ldrh r3, [r2, r1]
10956
- bne .L1971
11289
+ bne .L1945
1095711290 cmp r3, r5
1095811291 mlane r3, ip, r3, r2
1095911292 moveq r3, #0
1096011293 streq r3, [r0]
1096111294 strne r3, [r0]
1096211295 mvnne r0, #0
10963
- strneh r0, [r3, #2] @ movhi
10964
- b .L1973
10965
-.L1971:
10966
- cmp r3, r5
10967
- ldrh r0, [lr, #2]
10968
- bne .L1974
10969
- cmp r0, r3
10970
- mulne r0, ip, r0
10971
- mvnne r3, #0
10972
- strneh r3, [r2, r0] @ movhi
10973
- b .L1973
10974
-.L1974:
10975
- mla r3, ip, r3, r2
10976
- strh r0, [r3, #2] @ movhi
10977
- ldrh r5, [lr, #2]
10978
- ldrh r0, [r2, r1]
10979
- ldr r3, [r4, #-1356]
10980
- mul ip, ip, r5
10981
- strh r0, [r3, ip] @ movhi
10982
-.L1973:
11296
+ strhne r0, [r3, #2] @ movhi
11297
+.L1947:
1098311298 mvn r3, #0
1098411299 mov r0, #0
1098511300 strh r3, [r2, r1] @ movhi
1098611301 strh r3, [lr, #2] @ movhi
10987
- ldmfd sp!, {r4, r5, pc}
10988
-.L1977:
11302
+ pop {r4, r5, pc}
11303
+.L1945:
11304
+ cmp r3, r5
11305
+ ldrh r0, [lr, #2]
11306
+ bne .L1948
11307
+ cmp r0, r3
11308
+ mulne r3, ip, r0
11309
+ mvnne r0, #0
11310
+ strhne r0, [r2, r3] @ movhi
11311
+ b .L1947
11312
+.L1948:
11313
+ mla r3, ip, r3, r2
11314
+ strh r0, [r3, #2] @ movhi
11315
+ ldrh r3, [lr, #2]
11316
+ ldrh r5, [r2, r1]
11317
+ ldr r0, [r4, #-1356]
11318
+ mul r3, ip, r3
11319
+ strh r5, [r0, r3] @ movhi
11320
+ b .L1947
11321
+.L1951:
1098911322 .align 2
10990
-.L1976:
11323
+.L1950:
1099111324 .word .LANCHOR2
1099211325 .fnend
1099311326 .size List_remove_node, .-List_remove_node
1099411327 .align 2
1099511328 .global List_pop_index_node
11329
+ .syntax unified
11330
+ .arm
11331
+ .fpu softvfp
1099611332 .type List_pop_index_node, %function
1099711333 List_pop_index_node:
1099811334 .fnstart
....@@ -11000,106 +11336,113 @@
1100011336 @ frame_needed = 0, uses_anonymous_args = 0
1100111337 ldr r3, [r0]
1100211338 cmp r3, #0
11003
- beq .L1984
11004
- ldr r2, .L1987
11005
- movw ip, #65535
11006
- stmfd sp!, {r4, lr}
11339
+ beq .L1958
11340
+ ldr r2, .L1963
11341
+ push {r4, lr}
1100711342 .save {r4, lr}
11008
- mov lr, #6
11009
- ldr r4, [r2, #-1356]
11010
-.L1980:
11343
+ movw lr, #65535
11344
+ mov r4, #6
11345
+ ldr r2, [r2, #-1356]
11346
+.L1954:
1101111347 cmp r1, #0
11012
- bne .L1981
11013
-.L1983:
11014
- rsb r4, r4, r3
11015
- ldr r3, .L1987+4
11016
- mov r4, r4, asr #1
11017
- mul r4, r3, r4
11018
- uxth r4, r4
11019
- mov r1, r4
11348
+ bne .L1955
11349
+.L1957:
11350
+ ldr r4, .L1963+4
11351
+ sub r3, r3, r2
11352
+ asr r3, r3, #1
11353
+ mul r4, r4, r3
11354
+ uxth r1, r4
1102011355 bl List_remove_node
11021
- mov r0, r4
11022
- ldmfd sp!, {r4, pc}
11023
-.L1981:
11024
- ldrh r2, [r3]
11025
- cmp r2, ip
11026
- beq .L1983
11356
+ uxth r0, r4
11357
+ pop {r4, pc}
11358
+.L1955:
11359
+ ldrh ip, [r3]
11360
+ cmp ip, lr
11361
+ beq .L1957
1102711362 sub r1, r1, #1
11028
- mla r3, lr, r2, r4
11363
+ mla r3, r4, ip, r2
1102911364 uxth r1, r1
11030
- b .L1980
11031
-.L1984:
11365
+ b .L1954
11366
+.L1958:
1103211367 movw r0, #65535
1103311368 bx lr
11034
-.L1988:
11369
+.L1964:
1103511370 .align 2
11036
-.L1987:
11371
+.L1963:
1103711372 .word .LANCHOR2
1103811373 .word -1431655765
1103911374 .fnend
1104011375 .size List_pop_index_node, .-List_pop_index_node
1104111376 .align 2
1104211377 .global List_get_gc_head_node
11378
+ .syntax unified
11379
+ .arm
11380
+ .fpu softvfp
1104311381 .type List_get_gc_head_node, %function
1104411382 List_get_gc_head_node:
1104511383 .fnstart
1104611384 @ args = 0, pretend = 0, frame = 0
1104711385 @ frame_needed = 0, uses_anonymous_args = 0
1104811386 @ link register save eliminated.
11049
- ldr r2, .L1996
11387
+ ldr r2, .L1971
1105011388 ldr r3, [r2, #864]
1105111389 cmp r3, #0
1105211390 ldrne r1, [r2, #-1356]
1105311391 movne ip, #6
1105411392 movwne r2, #65535
11055
- beq .L1994
11056
-.L1991:
11057
- cmp r0, #0
11058
- beq .L1992
11059
- ldrh r3, [r3]
11060
- cmp r3, r2
11061
- subne r0, r0, #1
11062
- mlane r3, ip, r3, r1
11063
- uxthne r0, r0
11064
- bne .L1991
11065
-.L1994:
11393
+ bne .L1967
11394
+.L1970:
1106611395 movw r0, #65535
1106711396 bx lr
11068
-.L1992:
11069
- rsb r3, r1, r3
11070
- ldr r0, .L1996+4
11071
- mov r3, r3, asr #1
11072
- mul r0, r0, r3
11397
+.L1969:
11398
+ sub r0, r0, #1
11399
+ mla r3, ip, r3, r1
1107311400 uxth r0, r0
11401
+.L1967:
11402
+ cmp r0, #0
11403
+ beq .L1968
11404
+ ldrh r3, [r3]
11405
+ cmp r3, r2
11406
+ bne .L1969
11407
+ b .L1970
11408
+.L1968:
11409
+ ldr r0, .L1971+4
11410
+ sub r3, r3, r1
11411
+ asr r3, r3, #1
11412
+ mul r3, r0, r3
11413
+ uxth r0, r3
1107411414 bx lr
11075
-.L1997:
11415
+.L1972:
1107611416 .align 2
11077
-.L1996:
11417
+.L1971:
1107811418 .word .LANCHOR2
1107911419 .word -1431655765
1108011420 .fnend
1108111421 .size List_get_gc_head_node, .-List_get_gc_head_node
1108211422 .align 2
1108311423 .global List_update_data_list
11424
+ .syntax unified
11425
+ .arm
11426
+ .fpu softvfp
1108411427 .type List_update_data_list, %function
1108511428 List_update_data_list:
1108611429 .fnstart
1108711430 @ args = 0, pretend = 0, frame = 0
1108811431 @ frame_needed = 0, uses_anonymous_args = 0
11089
- ldr r3, .L2007
11432
+ ldr r3, .L1984
1109011433 add r2, r3, #884
1109111434 ldrh r2, [r2]
1109211435 cmp r2, r0
11093
- beq .L2006
11436
+ beq .L1981
1109411437 add r2, r3, #932
1109511438 ldrh r2, [r2]
1109611439 cmp r2, r0
11097
- beq .L2006
11440
+ beq .L1981
1109811441 add r2, r3, #980
1109911442 ldrh r2, [r2]
1110011443 cmp r2, r0
11101
- beq .L2006
11102
- stmfd sp!, {r4, lr}
11444
+ beq .L1981
11445
+ push {r4, lr}
1110311446 .save {r4, lr}
1110411447 mov lr, #6
1110511448 mul lr, lr, r0
....@@ -11107,55 +11450,55 @@
1110711450 ldr r2, [r3, #864]
1110811451 add ip, r1, lr
1110911452 cmp ip, r2
11110
- beq .L1999
11111
- ldr r4, [r3, #-1408]
11112
- mov r3, r0, asl #1
11113
- ldrh r2, [r4, r3]
11114
- ldrh r3, [ip, #4]
11115
- ldrh ip, [ip, #2]
11116
- cmp r3, #0
11117
- mulne r2, r3, r2
11453
+ beq .L1974
11454
+ ldr r4, [r3, #-1404]
11455
+ lsl r3, r0, #1
11456
+ ldrh r2, [ip, #4]
11457
+ ldrh r3, [r4, r3]
11458
+ cmp r2, #0
1111811459 mvneq r2, #0
11119
- movw r3, #65535
11120
- cmp ip, r3
11121
- bne .L2001
11122
- ldrh r3, [r1, lr]
11460
+ mulne r2, r2, r3
11461
+ ldrh r3, [ip, #2]
11462
+ movw ip, #65535
1112311463 cmp r3, ip
11124
- beq .L1999
11125
-.L2001:
11126
- mov r3, #6
11127
- mul ip, r3, ip
11128
- ldr r3, .L2007+4
11464
+ bne .L1976
11465
+ ldrh ip, [r1, lr]
11466
+ cmp ip, r3
11467
+ beq .L1974
11468
+.L1976:
11469
+ mov ip, #6
11470
+ mul ip, ip, r3
11471
+ ldr r3, .L1984+4
11472
+ asr lr, ip, #1
1112911473 add r1, r1, ip
11130
- mov lr, ip, asr #1
1113111474 mul r3, r3, lr
11132
- mov r3, r3, asl #1
11475
+ lsl r3, r3, #1
1113311476 ldrh lr, [r4, r3]
1113411477 ldrh r3, [r1, #4]
1113511478 cmp r3, #0
1113611479 mulne r3, r3, lr
1113711480 mvneq r3, #0
1113811481 cmp r2, r3
11139
- bcs .L1999
11482
+ bcs .L1974
1114011483 mov r4, r0
11141
- ldr r0, .L2007+8
11142
- mov r1, r4
11484
+ mov r1, r0
11485
+ ldr r0, .L1984+8
1114311486 bl List_remove_node
11144
- ldr r2, .L2007+12
11487
+ ldr r2, .L1984+12
1114511488 mov r0, r4
1114611489 ldrh r3, [r2]
1114711490 sub r3, r3, #1
1114811491 strh r3, [r2] @ movhi
1114911492 bl INSERT_DATA_LIST
11150
-.L1999:
11493
+.L1974:
1115111494 mov r0, #0
11152
- ldmfd sp!, {r4, pc}
11153
-.L2006:
11495
+ pop {r4, pc}
11496
+.L1981:
1115411497 mov r0, #0
1115511498 bx lr
11156
-.L2008:
11499
+.L1985:
1115711500 .align 2
11158
-.L2007:
11501
+.L1984:
1115911502 .word .LANCHOR2
1116011503 .word -1431655765
1116111504 .word .LANCHOR2+864
....@@ -11164,12 +11507,15 @@
1116411507 .size List_update_data_list, .-List_update_data_list
1116511508 .align 2
1116611509 .global ftl_free_no_use_map_blk
11510
+ .syntax unified
11511
+ .arm
11512
+ .fpu softvfp
1116711513 .type ftl_free_no_use_map_blk, %function
1116811514 ftl_free_no_use_map_blk:
1116911515 .fnstart
1117011516 @ args = 0, pretend = 0, frame = 0
1117111517 @ frame_needed = 0, uses_anonymous_args = 0
11172
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
11518
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1117311519 .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1117411520 mov r1, #0
1117511521 ldrh r2, [r0, #10]
....@@ -11177,284 +11523,284 @@
1117711523 ldr r5, [r0, #20]
1117811524 ldr r7, [r0, #12]
1117911525 ldr r6, [r0, #24]
11180
- mov r2, r2, asl #1
11526
+ lsl r2, r2, #1
1118111527 mov r0, r5
1118211528 bl ftl_memset
1118311529 mov r2, #0
11184
-.L2010:
11530
+.L1987:
1118511531 ldrh r1, [r4, #6]
1118611532 uxth r3, r2
1118711533 cmp r1, r3
11188
- bls .L2030
11189
- ldr r0, [r6, r3, asl #2]
11534
+ bhi .L1991
11535
+ ldr r3, .L2007
11536
+ mov r6, #0
11537
+ mov r8, r6
11538
+ mov r10, r6
11539
+ ldrh r2, [r3]
11540
+ ldrh r3, [r4]
11541
+ lsl r3, r3, #1
11542
+ strh r2, [r5, r3] @ movhi
11543
+ ldrh r9, [r5]
11544
+.L1992:
11545
+ ldrh r3, [r4, #10]
11546
+ uxth r1, r6
11547
+ cmp r3, r1
11548
+ bhi .L1996
11549
+ mov r0, r8
11550
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
11551
+.L1991:
11552
+ uxth r3, r2
1119011553 mov r1, #0
11554
+ ldr r0, [r6, r3, lsl #2]
1119111555 ubfx r0, r0, #10, #16
11192
-.L2011:
11556
+.L1988:
1119311557 ldrh ip, [r4, #10]
1119411558 uxth r3, r1
1119511559 cmp ip, r3
11196
- bls .L2031
11197
- mov r3, r3, asl #1
11560
+ addls r2, r2, #1
11561
+ bls .L1987
11562
+.L1990:
11563
+ uxth r3, r1
1119811564 add r1, r1, #1
11565
+ lsl r3, r3, #1
1119911566 ldrh ip, [r7, r3]
11200
- rsb lr, ip, r0
11201
- cmp ip, #0
11202
- clz lr, lr
11203
- mov lr, lr, lsr #5
11204
- moveq lr, #0
11567
+ adds lr, ip, #0
11568
+ movne lr, #1
11569
+ cmp r0, ip
11570
+ movne lr, #0
1120511571 cmp lr, #0
11206
- ldrneh ip, [r5, r3]
11572
+ ldrhne ip, [r5, r3]
1120711573 addne ip, ip, #1
11208
- strneh ip, [r5, r3] @ movhi
11209
- b .L2011
11210
-.L2031:
11211
- add r2, r2, #1
11212
- b .L2010
11213
-.L2030:
11214
- ldr r3, .L2033
11215
- mov r8, #0
11216
- mov r1, r8
11217
- mov fp, r8
11218
- ldrh r2, [r3, #-2]
11219
- ldrh r3, [r4]
11220
- mov r3, r3, asl #1
11221
- strh r2, [r5, r3] @ movhi
11222
- ldrh r9, [r5]
11223
-.L2015:
11224
- ldrh r3, [r4, #10]
11225
- uxth r6, r8
11226
- cmp r3, r6
11227
- bls .L2032
11228
- mov r2, r6, asl #1
11229
- ldrh r3, [r5, r2]
11230
- cmp r9, r3
11231
- bls .L2016
11232
- ldrh r0, [r7, r2]
11233
- add r10, r7, r2
11574
+ strhne ip, [r5, r3] @ movhi
11575
+ b .L1988
11576
+.L1996:
11577
+ uxth r3, r6
11578
+ lsl r3, r3, #1
11579
+ ldrh r2, [r5, r3]
11580
+ cmp r9, r2
11581
+ bls .L1993
11582
+ ldrh r0, [r7, r3]
11583
+ add fp, r7, r3
1123411584 cmp r0, #0
11235
- bne .L2017
11236
- b .L2018
11237
-.L2016:
11238
- cmp r3, #0
11239
- bne .L2018
11240
- ldrh r0, [r7, r2]
11241
- add r10, r7, r2
11585
+ bne .L1994
11586
+.L1995:
11587
+ add r6, r6, #1
11588
+ b .L1992
11589
+.L1993:
11590
+ cmp r2, #0
11591
+ bne .L1995
11592
+ ldrh r0, [r7, r3]
11593
+ add fp, r7, r3
1124211594 cmp r0, #0
11243
- movne r6, r1
11244
- beq .L2018
11245
- b .L2020
11246
-.L2017:
11247
- cmp r3, #0
11248
- movne r1, r6
11249
- movne r9, r3
11250
- bne .L2018
11251
- mov r9, r3
11252
-.L2020:
11595
+ beq .L1995
11596
+.L1997:
1125311597 mov r1, #1
1125411598 bl FtlFreeSysBlkQueueIn
11255
- strh fp, [r10] @ movhi
11599
+ strh r10, [fp] @ movhi
1125611600 ldrh r3, [r4, #8]
11257
- mov r1, r6
1125811601 sub r3, r3, #1
1125911602 strh r3, [r4, #8] @ movhi
11260
-.L2018:
11261
- add r8, r8, #1
11262
- b .L2015
11263
-.L2032:
11264
- mov r0, r1
11265
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
11266
-.L2034:
11603
+ b .L1995
11604
+.L1994:
11605
+ subs r9, r2, #0
11606
+ mov r8, r1
11607
+ beq .L1997
11608
+ b .L1995
11609
+.L2008:
1126711610 .align 2
11268
-.L2033:
11611
+.L2007:
1126911612 .word .LANCHOR2-1664
1127011613 .fnend
1127111614 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
1127211615 .align 2
1127311616 .global ftl_map_blk_alloc_new_blk
11617
+ .syntax unified
11618
+ .arm
11619
+ .fpu softvfp
1127411620 .type ftl_map_blk_alloc_new_blk, %function
1127511621 ftl_map_blk_alloc_new_blk:
1127611622 .fnstart
1127711623 @ args = 0, pretend = 0, frame = 0
1127811624 @ frame_needed = 0, uses_anonymous_args = 0
11279
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
11280
- .save {r3, r4, r5, r6, r7, lr}
11625
+ push {r4, r5, r6, r7, r8, lr}
11626
+ .save {r4, r5, r6, r7, r8, lr}
1128111627 mov r3, #0
1128211628 ldrh r1, [r0, #10]
1128311629 ldr r2, [r0, #12]
11284
-.L2036:
11630
+.L2010:
1128511631 uxth r5, r3
1128611632 cmp r5, r1
11287
- bcs .L2039
11633
+ bcs .L2013
1128811634 mov r7, r2
1128911635 add r3, r3, #1
1129011636 ldrh r6, [r7]
1129111637 add r2, r2, #2
1129211638 cmp r6, #0
11293
- bne .L2036
11639
+ bne .L2010
1129411640 mov r4, r0
1129511641 bl FtlFreeSysBlkQueueOut
11296
- movw r2, #65533
1129711642 sub r3, r0, #1
11643
+ movw r2, #65533
11644
+ uxth r3, r3
1129811645 mov r1, r0
1129911646 strh r0, [r7] @ movhi
11300
- uxth r3, r3
1130111647 cmp r3, r2
11302
- bls .L2037
11303
- ldr r3, .L2043
11304
- ldr r0, .L2043+4
11648
+ bls .L2011
11649
+ ldr r3, .L2017
11650
+ ldr r0, .L2017+4
1130511651 ldrh r2, [r3, #6]
1130611652 bl printk
11307
-.L2038:
11308
- b .L2038
11309
-.L2037:
11653
+.L2012:
11654
+ b .L2012
11655
+.L2011:
1131011656 ldr r3, [r4, #28]
1131111657 strh r6, [r4, #2] @ movhi
11658
+ strh r5, [r4] @ movhi
1131211659 add r3, r3, #1
1131311660 str r3, [r4, #28]
1131411661 ldrh r3, [r4, #8]
11315
- strh r5, [r4] @ movhi
1131611662 add r3, r3, #1
1131711663 strh r3, [r4, #8] @ movhi
11318
-.L2039:
11664
+.L2013:
1131911665 mov r0, #0
11320
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
11321
-.L2044:
11666
+ pop {r4, r5, r6, r7, r8, pc}
11667
+.L2018:
1132211668 .align 2
11323
-.L2043:
11669
+.L2017:
1132411670 .word .LANCHOR2-1240
1132511671 .word .LC39
1132611672 .fnend
1132711673 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
1132811674 .align 2
1132911675 .global FtlMapWritePage
11676
+ .syntax unified
11677
+ .arm
11678
+ .fpu softvfp
1133011679 .type FtlMapWritePage, %function
1133111680 FtlMapWritePage:
1133211681 .fnstart
1133311682 @ args = 0, pretend = 0, frame = 8
1133411683 @ frame_needed = 0, uses_anonymous_args = 0
11335
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
11684
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1133611685 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1133711686 .pad #12
1133811687 mov r4, r0
11339
- ldr fp, .L2064
11688
+ ldr r5, .L2038
1134011689 mov r8, r1
11341
- ldr r9, .L2064+4
11342
- mov r5, #0
11343
- str r2, [sp]
11344
- mov r10, fp
11345
-.L2046:
11346
- ldr r3, [fp, #-1592]
11347
- ldr r6, .L2064
11690
+ mov r10, r2
11691
+ mov r6, #0
11692
+ sub r9, r5, #1664
11693
+ mov fp, r9
11694
+.L2020:
11695
+ ldr r3, [r5, #-1588]
1134811696 add r3, r3, #1
11349
- str r3, [fp, #-1592]
11697
+ str r3, [r5, #-1588]
1135011698 ldrh r3, [r9]
1135111699 ldrh r2, [r4, #2]
1135211700 sub r3, r3, #1
1135311701 cmp r2, r3
11354
- bge .L2047
11702
+ bge .L2021
1135511703 ldrh r2, [r4]
1135611704 movw r3, #65535
1135711705 cmp r2, r3
11358
- bne .L2048
11359
-.L2047:
11706
+ bne .L2022
11707
+.L2021:
1136011708 mov r0, r4
1136111709 bl Ftl_write_map_blk_to_last_page
11362
-.L2048:
11363
- ldr r1, [r10, #-1280]
11710
+.L2022:
11711
+ ldr r1, [r5, #-1280]
1136411712 cmp r1, #0
11365
- bne .L2049
11713
+ bne .L2023
1136611714 ldrh r3, [r4]
1136711715 ldr r2, [r4, #12]
11368
- ldr r0, [fp, #-1444]
11369
- mov r3, r3, asl #1
11716
+ ldr r0, [r5, #-1440]
11717
+ lsl r3, r3, #1
1137011718 ldrh r7, [r2, r3]
1137111719 mov r2, #16
1137211720 ldrh r3, [r4, #2]
11373
- str r0, [fp, #-1264]
11374
- orr r3, r3, r7, asl #10
11375
- str r3, [fp, #-1272]
11376
- ldr r3, [sp]
11377
- str r3, [fp, #-1268]
11721
+ str r10, [r5, #-1268]
11722
+ str r0, [r5, #-1264]
11723
+ orr r3, r3, r7, lsl #10
11724
+ str r3, [r5, #-1272]
1137811725 bl ftl_memset
11726
+ ldr r3, [r5, #-1264]
1137911727 ldr r2, [r4, #28]
11380
- ldr r3, [fp, #-1264]
11381
- str r2, [r3, #4]
1138211728 strh r8, [r3, #8] @ movhi
11729
+ str r2, [r3, #4]
1138311730 ldrh r2, [r4, #4]
11731
+ str r3, [sp, #4]
1138411732 strh r7, [r3, #2] @ movhi
1138511733 strh r2, [r3] @ movhi
11386
- ldr r2, .L2064+8
11387
- ldrb r2, [r2] @ zero_extendqisi2
11734
+ ldr r2, .L2038+4
11735
+ ldrb r2, [r2, #36] @ zero_extendqisi2
1138811736 cmp r2, #0
11389
- beq .L2050
11390
- ldr r2, .L2064+12
11391
- ldr r0, [fp, #-1268]
11392
- str r3, [sp, #4]
11737
+ beq .L2024
11738
+ ldr r2, .L2038+8
11739
+ ldr r0, [r5, #-1268]
1139311740 ldrh r1, [r2]
1139411741 bl js_hash
1139511742 ldr r3, [sp, #4]
1139611743 str r0, [r3, #12]
11397
-.L2050:
11398
- mov r1, #1
11399
- ldr r0, .L2064+16
11400
- mov r2, r1
11401
- mov r3, r1
11744
+.L2024:
11745
+ mov r3, #1
11746
+ ldr r0, .L2038+12
11747
+ mov r2, r3
11748
+ mov r1, r3
1140211749 bl FlashProgPages
1140311750 ldrh r3, [r4, #2]
1140411751 add r3, r3, #1
1140511752 uxth r3, r3
1140611753 strh r3, [r4, #2] @ movhi
11407
- ldr r2, [r10, #-1276]
11754
+ ldr r2, [r5, #-1276]
1140811755 cmn r2, #1
11409
- bne .L2051
11410
- ldr r0, .L2064+20
11411
- add r5, r5, #1
11412
- ldr r1, [fp, #-1272]
11756
+ bne .L2025
11757
+ ldr r1, [r5, #-1272]
11758
+ add r6, r6, #1
11759
+ ldr r0, .L2038+16
11760
+ uxth r6, r6
1141311761 bl printk
1141411762 ldrh r3, [r4, #2]
11415
- uxth r5, r5
1141611763 cmp r3, #2
11417
- ldrlsh r3, [r9]
11764
+ ldrhls r3, [fp]
1141811765 subls r3, r3, #1
11419
- strlsh r3, [r4, #2] @ movhi
11420
- cmp r5, #3
11421
- bls .L2046
11422
- ldr r0, .L2064+24
11423
- mov r2, r5
11424
- ldr r1, [r6, #-1272]
11766
+ strhls r3, [r4, #2] @ movhi
11767
+ cmp r6, #3
11768
+ bls .L2020
11769
+ mov r2, r6
11770
+ ldr r1, [r5, #-1272]
11771
+ ldr r0, .L2038+20
1142511772 bl printk
1142611773 mov r3, #1
11427
- str r3, [r6, #-1280]
11428
- b .L2049
11429
-.L2051:
11430
- cmp r2, #0
11431
- strneh r7, [r4, #40] @ movhi
11432
- cmp r2, #256
11433
- cmpne r3, #1
11434
- beq .L2055
11435
- ldr r3, [r4, #36]
11436
- cmp r3, #0
11437
- beq .L2056
11438
-.L2055:
11439
- mov r3, #0
11440
- str r3, [r4, #36]
11441
- b .L2046
11442
-.L2056:
11443
- ldr r2, [r6, #-1272]
11444
- ldr r3, [r4, #24]
11445
- str r2, [r3, r8, asl #2]
11446
-.L2049:
11774
+ str r3, [r5, #-1280]
11775
+.L2023:
1144711776 mov r0, #0
1144811777 add sp, sp, #12
1144911778 @ sp needed
11450
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11451
-.L2065:
11779
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11780
+.L2025:
11781
+ cmp r2, #0
11782
+ strhne r7, [r4, #40] @ movhi
11783
+ cmp r3, #1
11784
+ cmpne r2, #256
11785
+ beq .L2029
11786
+ ldr r3, [r4, #36]
11787
+ cmp r3, #0
11788
+ beq .L2030
11789
+.L2029:
11790
+ mov r3, #0
11791
+ str r3, [r4, #36]
11792
+ b .L2020
11793
+.L2030:
11794
+ ldr r2, [r5, #-1272]
11795
+ ldr r3, [r4, #24]
11796
+ str r2, [r3, r8, lsl #2]
11797
+ b .L2023
11798
+.L2039:
1145211799 .align 2
11453
-.L2064:
11800
+.L2038:
1145411801 .word .LANCHOR2
11455
- .word .LANCHOR2-1666
1145611802 .word .LANCHOR0
11457
- .word .LANCHOR2-1658
11803
+ .word .LANCHOR2-1656
1145811804 .word .LANCHOR2-1276
1145911805 .word .LC40
1146011806 .word .LC41
....@@ -11462,32 +11808,34 @@
1146211808 .size FtlMapWritePage, .-FtlMapWritePage
1146311809 .align 2
1146411810 .global ftl_map_blk_gc
11811
+ .syntax unified
11812
+ .arm
11813
+ .fpu softvfp
1146511814 .type ftl_map_blk_gc, %function
1146611815 ftl_map_blk_gc:
1146711816 .fnstart
1146811817 @ args = 0, pretend = 0, frame = 8
1146911818 @ frame_needed = 0, uses_anonymous_args = 0
11470
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
11819
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1147111820 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1147211821 .pad #12
1147311822 mov r4, r0
1147411823 ldr r5, [r0, #12]
11475
- ldr r7, [r0, #24]
11824
+ ldr r10, [r0, #24]
1147611825 bl ftl_free_no_use_map_blk
1147711826 ldrh r3, [r4, #10]
1147811827 ldrh r2, [r4, #8]
1147911828 sub r3, r3, #4
11480
- ldr r8, .L2080
1148111829 cmp r2, r3
11482
- blt .L2067
11830
+ blt .L2041
1148311831 uxth r0, r0
11484
- mov r0, r0, asl #1
11485
- ldrh r10, [r5, r0]
11486
- cmp r10, #0
11487
- beq .L2067
11832
+ lsl r0, r0, #1
11833
+ ldrh r9, [r5, r0]
11834
+ cmp r9, #0
11835
+ beq .L2041
1148811836 ldr r3, [r4, #32]
1148911837 cmp r3, #0
11490
- bne .L2067
11838
+ bne .L2041
1149111839 mov r2, #1
1149211840 str r2, [r4, #32]
1149311841 strh r3, [r5, r0] @ movhi
....@@ -11495,112 +11843,118 @@
1149511843 ldrh r2, [r4, #2]
1149611844 sub r3, r3, #1
1149711845 strh r3, [r4, #8] @ movhi
11498
- ldrh r3, [r8, #-2]
11846
+ ldr r3, .L2053
11847
+ ldrh r3, [r3]
1149911848 cmp r2, r3
11500
- bcc .L2068
11849
+ bcc .L2042
1150111850 mov r0, r4
1150211851 bl ftl_map_blk_alloc_new_blk
11503
-.L2068:
11504
- ldr r5, .L2080+4
11505
- mov fp, #0
11506
-.L2069:
11507
- ldrh r3, [r4, #6]
11508
- uxth r6, fp
11509
- cmp r3, r6
11510
- bls .L2079
11511
- ldr r3, [r7, r6, asl #2]
11512
- add ip, r7, r6, asl #2
11513
- cmp r10, r3, lsr #10
11514
- bne .L2070
11515
- ldr r3, [r5, #-1472]
11852
+.L2042:
11853
+ ldr r5, .L2053+4
11854
+ mov r6, #0
11855
+ sub fp, r5, #1264
11856
+ sub fp, fp, #12
11857
+.L2043:
11858
+ ldrh r2, [r4, #6]
11859
+ uxth r3, r6
11860
+ cmp r2, r3
11861
+ bhi .L2048
1151611862 mov r1, #1
11517
- ldr r9, [r5, #-1444]
11518
- mov r2, r1
11519
- ldr r0, .L2080+8
11520
- str r3, [r5, #-1268]
11521
- str r9, [r5, #-1264]
11522
- ldr r3, [r7, r6, asl #2]
11523
- str ip, [sp, #4]
11524
- str r3, [r5, #-1272]
11525
- bl FlashReadPages
11526
- ldr r3, [r5, #-1276]
11527
- cmn r3, #1
11528
- ldr r3, .L2080+4
11529
- ldr ip, [sp, #4]
11530
- bne .L2071
11531
-.L2073:
11532
- mov r2, #0
11533
- ldr r0, .L2080+12
11534
- str r2, [ip]
11535
- ldr r1, [r3, #-1272]
11536
- ldrh r2, [r9, #8]
11537
- str r3, [sp, #4]
11538
- bl printk
11539
- mov r2, #1
11540
- ldr r3, [sp, #4]
11541
- str r2, [r3, #-1280]
11542
- b .L2072
11543
-.L2071:
11544
- ldrh r1, [r9, #8]
11545
- cmp r1, r6
11546
- bne .L2073
11547
- ldrh r0, [r9]
11548
- ldrh r2, [r4, #4]
11549
- cmp r0, r2
11550
- bne .L2073
11551
- mov r0, r4
11552
- ldr r2, [r5, #-1268]
11553
- bl FtlMapWritePage
11554
-.L2070:
11555
- add fp, fp, #1
11556
- b .L2069
11557
-.L2079:
11558
- mov r0, r10
11559
- mov r1, #1
11863
+ mov r0, r9
1156011864 bl FtlFreeSysBlkQueueIn
1156111865 mov r3, #0
1156211866 str r3, [r4, #32]
11563
-.L2067:
11867
+.L2041:
11868
+ ldr r3, .L2053
1156411869 ldrh r2, [r4, #2]
11565
- ldrh r3, [r8, #-2]
11870
+ ldrh r3, [r3]
1156611871 cmp r2, r3
11567
- bcc .L2072
11872
+ bcc .L2046
1156811873 mov r0, r4
1156911874 bl ftl_map_blk_alloc_new_blk
11570
-.L2072:
11875
+ b .L2046
11876
+.L2048:
11877
+ uxth r7, r6
11878
+ add r2, r10, r7, lsl #2
11879
+ str r2, [sp]
11880
+ ldr r2, [r10, r7, lsl #2]
11881
+ cmp r9, r2, lsr #10
11882
+ bne .L2044
11883
+ ldr r2, [r5, #-1468]
11884
+ mov r0, fp
11885
+ ldr r8, [r5, #-1440]
11886
+ str r3, [sp, #4]
11887
+ str r2, [r5, #-1268]
11888
+ str r8, [r5, #-1264]
11889
+ ldr r2, [r10, r7, lsl #2]
11890
+ str r2, [r5, #-1272]
11891
+ mov r2, #1
11892
+ mov r1, r2
11893
+ bl FlashReadPages
11894
+ ldr r2, [r5, #-1276]
11895
+ ldr r3, [sp, #4]
11896
+ cmn r2, #1
11897
+ bne .L2045
11898
+.L2047:
11899
+ ldr r2, [sp]
11900
+ mov r3, #0
11901
+ ldr r0, .L2053+8
11902
+ str r3, [r2]
11903
+ ldrh r2, [r8, #8]
11904
+ ldr r1, [r5, #-1272]
11905
+ bl printk
11906
+ mov r3, #1
11907
+ str r3, [r5, #-1280]
11908
+.L2046:
1157111909 mov r0, #0
1157211910 add sp, sp, #12
1157311911 @ sp needed
11574
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11575
-.L2081:
11912
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11913
+.L2045:
11914
+ ldrh r2, [r8, #8]
11915
+ cmp r2, r3
11916
+ bne .L2047
11917
+ ldrh r2, [r8]
11918
+ ldrh r3, [r4, #4]
11919
+ cmp r2, r3
11920
+ bne .L2047
11921
+ ldr r2, [r5, #-1268]
11922
+ mov r1, r7
11923
+ mov r0, r4
11924
+ bl FtlMapWritePage
11925
+.L2044:
11926
+ add r6, r6, #1
11927
+ b .L2043
11928
+.L2054:
1157611929 .align 2
11577
-.L2080:
11930
+.L2053:
1157811931 .word .LANCHOR2-1664
1157911932 .word .LANCHOR2
11580
- .word .LANCHOR2-1276
1158111933 .word .LC42
1158211934 .fnend
1158311935 .size ftl_map_blk_gc, .-ftl_map_blk_gc
1158411936 .align 2
1158511937 .global Ftl_write_map_blk_to_last_page
11938
+ .syntax unified
11939
+ .arm
11940
+ .fpu softvfp
1158611941 .type Ftl_write_map_blk_to_last_page, %function
1158711942 Ftl_write_map_blk_to_last_page:
1158811943 .fnstart
1158911944 @ args = 0, pretend = 0, frame = 0
1159011945 @ frame_needed = 0, uses_anonymous_args = 0
11591
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
11592
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
11593
- ldr r5, .L2094
11594
- ldr r7, [r0, #12]
11595
- ldr r8, [r0, #24]
11946
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
11947
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
11948
+ ldr r5, .L2066
1159611949 ldr r6, [r5, #-1280]
1159711950 cmp r6, #0
11598
- bne .L2083
11951
+ bne .L2056
1159911952 ldrh r3, [r0]
1160011953 movw r2, #65535
1160111954 mov r4, r0
11955
+ ldr r7, [r0, #12]
1160211956 cmp r3, r2
11603
- bne .L2084
11957
+ bne .L2057
1160411958 ldrh r3, [r0, #8]
1160511959 add r3, r3, #1
1160611960 strh r3, [r0, #8] @ movhi
....@@ -11608,80 +11962,83 @@
1160811962 strh r0, [r7] @ movhi
1160911963 ldr r3, [r4, #28]
1161011964 strh r6, [r4, #2] @ movhi
11611
- add r3, r3, #1
1161211965 strh r6, [r4] @ movhi
11966
+ add r3, r3, #1
1161311967 str r3, [r4, #28]
11614
- b .L2083
11615
-.L2084:
11616
- mov r3, r3, asl #1
11968
+.L2056:
11969
+ mov r0, #0
11970
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
11971
+.L2057:
11972
+ lsl r3, r3, #1
11973
+ ldr r8, [r0, #24]
1161711974 mov r1, #255
1161811975 ldrh r9, [r7, r3]
1161911976 ldrh r3, [r0, #2]
11620
- ldr r7, [r5, #-1444]
11621
- orr r3, r3, r9, asl #10
11622
- str r3, [r5, #-1272]
11623
- ldr r3, [r5, #-1476]
11977
+ ldr r7, [r5, #-1440]
11978
+ orr r3, r3, r9, lsl #10
1162411979 str r7, [r5, #-1264]
11980
+ str r3, [r5, #-1272]
11981
+ ldr r3, [r5, #-1472]
1162511982 str r3, [r5, #-1268]
1162611983 ldr r3, [r0, #28]
1162711984 str r3, [r7, #4]
11628
- ldr r3, .L2094+4
11985
+ ldr r3, .L2066+4
1162911986 strh r3, [r7, #8] @ movhi
1163011987 ldrh r3, [r0, #4]
1163111988 strh r9, [r7, #2] @ movhi
1163211989 strh r3, [r7] @ movhi
1163311990 sub r3, r5, #1664
11634
- ldr r0, [r5, #-1476]
11635
- ldrh r2, [r3, #-2]
11636
- mov r2, r2, asl #3
11991
+ ldrh r2, [r3]
11992
+ ldr r0, [r5, #-1472]
11993
+ lsl r2, r2, #3
1163711994 bl ftl_memset
11995
+ mov r2, r6
1163811996 mov r3, r6
11639
-.L2085:
11640
- ldrh r1, [r4, #6]
11641
- uxth r2, r6
11642
- cmp r1, r2
11643
- bls .L2093
11644
- ldr r1, [r8, r2, asl #2]
11645
- cmp r9, r1, lsr #10
11646
- bne .L2086
11647
- add r3, r3, #1
11648
- ldr r1, [r5, #-1476]
11649
- uxth r3, r3
11650
- str r2, [r1, r3, asl #3]
11651
- ldr r1, [r8, r2, asl #2]
11652
- ldr r2, [r5, #-1476]
11653
- add r2, r2, r3, asl #3
11654
- str r1, [r2, #4]
11655
-.L2086:
11656
- add r6, r6, #1
11657
- b .L2085
11658
-.L2093:
11659
- ldr r3, .L2094+8
11660
- ldrb r3, [r3] @ zero_extendqisi2
11997
+.L2058:
11998
+ ldrh r0, [r4, #6]
11999
+ uxth r1, r2
12000
+ cmp r0, r1
12001
+ bhi .L2060
12002
+ ldr r3, .L2066+8
12003
+ ldrb r3, [r3, #36] @ zero_extendqisi2
1166112004 cmp r3, #0
11662
- beq .L2088
11663
- ldr r3, .L2094+12
12005
+ beq .L2061
12006
+ ldr r3, .L2066+12
1166412007 ldr r0, [r5, #-1268]
11665
- ldrh r1, [r3, #-10]
12008
+ ldrh r1, [r3, #-8]
1166612009 bl js_hash
1166712010 str r0, [r7, #12]
11668
-.L2088:
11669
- mov r1, #1
12011
+.L2061:
12012
+ mov r2, #1
1167012013 mov r3, #0
11671
- ldr r0, .L2094+16
11672
- mov r2, r1
12014
+ mov r1, r2
12015
+ ldr r0, .L2066+16
1167312016 bl FlashProgPages
1167412017 ldrh r3, [r4, #2]
1167512018 mov r0, r4
1167612019 add r3, r3, #1
1167712020 strh r3, [r4, #2] @ movhi
1167812021 bl ftl_map_blk_gc
11679
-.L2083:
11680
- mov r0, #0
11681
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
11682
-.L2095:
12022
+ b .L2056
12023
+.L2060:
12024
+ uxth r1, r2
12025
+ ldr r0, [r8, r1, lsl #2]
12026
+ cmp r9, r0, lsr #10
12027
+ bne .L2059
12028
+ ldr r0, [r5, #-1472]
12029
+ add r3, r3, #1
12030
+ uxth r3, r3
12031
+ str r1, [r0, r3, lsl #3]
12032
+ ldr r0, [r8, r1, lsl #2]
12033
+ ldr r1, [r5, #-1472]
12034
+ add r1, r1, r3, lsl #3
12035
+ str r0, [r1, #4]
12036
+.L2059:
12037
+ add r2, r2, #1
12038
+ b .L2058
12039
+.L2067:
1168312040 .align 2
11684
-.L2094:
12041
+.L2066:
1168512042 .word .LANCHOR2
1168612043 .word -1291
1168712044 .word .LANCHOR0
....@@ -11691,18 +12048,21 @@
1169112048 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
1169212049 .align 2
1169312050 .global flush_l2p_region
12051
+ .syntax unified
12052
+ .arm
12053
+ .fpu softvfp
1169412054 .type flush_l2p_region, %function
1169512055 flush_l2p_region:
1169612056 .fnstart
1169712057 @ args = 0, pretend = 0, frame = 0
1169812058 @ frame_needed = 0, uses_anonymous_args = 0
11699
- stmfd sp!, {r3, r4, r5, lr}
11700
- .save {r3, r4, r5, lr}
12059
+ push {r4, r5, r6, lr}
12060
+ .save {r4, r5, r6, lr}
1170112061 mov r4, #12
11702
- ldr r5, .L2098
12062
+ ldr r5, .L2070
1170312063 mul r4, r4, r0
11704
- add r0, r5, #1024
1170512064 ldr r3, [r5, #-1364]
12065
+ add r0, r5, #1024
1170612066 add r0, r0, #4
1170712067 add r2, r3, r4
1170812068 ldrh r1, [r3, r4]
....@@ -11714,195 +12074,195 @@
1171412074 ldr r3, [r4, #4]
1171512075 bic r3, r3, #-2147483648
1171612076 str r3, [r4, #4]
11717
- ldmfd sp!, {r3, r4, r5, pc}
11718
-.L2099:
12077
+ pop {r4, r5, r6, pc}
12078
+.L2071:
1171912079 .align 2
11720
-.L2098:
12080
+.L2070:
1172112081 .word .LANCHOR2
1172212082 .fnend
1172312083 .size flush_l2p_region, .-flush_l2p_region
1172412084 .align 2
1172512085 .global select_l2p_ram_region
12086
+ .syntax unified
12087
+ .arm
12088
+ .fpu softvfp
1172612089 .type select_l2p_ram_region, %function
1172712090 select_l2p_ram_region:
1172812091 .fnstart
1172912092 @ args = 0, pretend = 0, frame = 0
1173012093 @ frame_needed = 0, uses_anonymous_args = 0
11731
- ldr r3, .L2116
12094
+ ldr r3, .L2083
1173212095 mov r1, #0
11733
- stmfd sp!, {r4, r5, r6, lr}
12096
+ push {r4, r5, r6, lr}
1173412097 .save {r4, r5, r6, lr}
11735
- sub r2, r3, #1616
11736
- ldr r3, [r3, #-1364]
1173712098 mov ip, #12
11738
- ldrh r2, [r2, #-14]
1173912099 movw lr, #65535
11740
-.L2101:
12100
+ sub r2, r3, #1616
12101
+ ldrh r2, [r2, #-10]
12102
+ ldr r3, [r3, #-1364]
12103
+.L2073:
1174112104 uxth r0, r1
1174212105 cmp r0, r2
11743
- bcs .L2113
11744
- add r1, r1, #1
11745
- mla r4, ip, r1, r3
11746
- ldrh r4, [r4, #-12]
11747
- cmp r4, lr
11748
- bne .L2101
11749
- ldmfd sp!, {r4, r5, r6, pc}
11750
-.L2113:
12106
+ bcc .L2075
1175112107 mov r0, r2
1175212108 mov r1, #0
1175312109 mov ip, #-2147483648
1175412110 mov r5, #12
11755
-.L2104:
12111
+.L2076:
1175612112 uxth r4, r1
1175712113 cmp r4, r2
11758
- bcs .L2114
11759
- mla lr, r5, r1, r3
11760
- add r1, r1, #1
11761
- ldr lr, [lr, #4]
11762
- cmp lr, ip
11763
- mvn r6, lr
11764
- mov r6, r6, lsr #31
11765
- movcs r6, #0
11766
- cmp r6, #0
11767
- movne ip, lr
11768
- movne r0, r4
11769
- b .L2104
11770
-.L2114:
12114
+ bcc .L2078
1177112115 cmp r0, r2
11772
- ldmccfd sp!, {r4, r5, r6, pc}
11773
- ldr r1, .L2116+4
12116
+ popcc {r4, r5, r6, pc}
12117
+ ldr r1, .L2083+4
1177412118 mov r0, r2
1177512119 mvn ip, #0
1177612120 ldrh r5, [r1]
1177712121 mov r1, #0
11778
-.L2107:
12122
+.L2079:
1177912123 uxth lr, r1
1178012124 cmp lr, r2
11781
- bcs .L2115
12125
+ bcc .L2081
12126
+ pop {r4, r5, r6, pc}
12127
+.L2075:
12128
+ add r1, r1, #1
12129
+ mla r4, ip, r1, r3
12130
+ ldrh r4, [r4, #-12]
12131
+ cmp r4, lr
12132
+ bne .L2073
12133
+ pop {r4, r5, r6, pc}
12134
+.L2078:
12135
+ mla lr, r5, r1, r3
12136
+ add r1, r1, #1
12137
+ ldr lr, [lr, #4]
12138
+ cmp ip, lr
12139
+ movls r6, #0
12140
+ movhi r6, #1
12141
+ cmp lr, #0
12142
+ movlt r6, #0
12143
+ cmp r6, #0
12144
+ movne ip, lr
12145
+ movne r0, r4
12146
+ b .L2076
12147
+.L2081:
1178212148 ldr r4, [r3, #4]
11783
- cmp r4, ip
11784
- bcs .L2108
12149
+ cmp ip, r4
12150
+ bls .L2080
1178512151 ldrh r6, [r3]
1178612152 cmp r6, r5
1178712153 movne ip, r4
1178812154 movne r0, lr
11789
-.L2108:
12155
+.L2080:
1179012156 add r1, r1, #1
1179112157 add r3, r3, #12
11792
- b .L2107
11793
-.L2115:
11794
- ldmfd sp!, {r4, r5, r6, pc}
11795
-.L2117:
12158
+ b .L2079
12159
+.L2084:
1179612160 .align 2
11797
-.L2116:
12161
+.L2083:
1179812162 .word .LANCHOR2
1179912163 .word .LANCHOR2+1072
1180012164 .fnend
1180112165 .size select_l2p_ram_region, .-select_l2p_ram_region
1180212166 .align 2
1180312167 .global log2phys
12168
+ .syntax unified
12169
+ .arm
12170
+ .fpu softvfp
1180412171 .type log2phys, %function
1180512172 log2phys:
1180612173 .fnstart
1180712174 @ args = 0, pretend = 0, frame = 16
1180812175 @ frame_needed = 0, uses_anonymous_args = 0
11809
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12176
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1181012177 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1181112178 .pad #20
1181212179 sub sp, sp, #20
11813
- ldr r6, .L2135
11814
- sub r3, r6, #1648
11815
- str r3, [sp, #8]
11816
- ldr ip, [r6, #-1284]
11817
- ldrh r10, [r3, #-12]
11818
- cmp r0, ip
11819
- bcs .L2119
11820
- add r10, r10, #7
11821
- mov fp, r6
11822
- mov r6, r0, lsr r10
11823
- sub r3, fp, #1616
11824
- str r2, [sp, #12]
11825
- mov r9, r1
11826
- ldrh r2, [r3, #-14]
11827
- uxth r6, r6
11828
- str r0, [sp, #4]
12180
+ ldr r4, .L2101
12181
+ ldr r3, [r4, #-1284]
12182
+ cmp r0, r3
12183
+ bcs .L2086
12184
+ sub fp, r4, #1648
12185
+ mov r9, r0
12186
+ ldrh r0, [fp, #-10]
12187
+ mov r10, r1
12188
+ str r2, [sp, #8]
12189
+ mov r5, #12
12190
+ ldr r2, [r4, #-1364]
12191
+ add r3, r0, #7
12192
+ str fp, [sp, #4]
12193
+ lsr r6, r9, r3
12194
+ str r3, [sp]
12195
+ sub r3, r4, #1616
12196
+ uxth r8, r6
12197
+ ldrh r1, [r3, #-10]
1182912198 mov r3, #0
11830
- ldr r4, [fp, #-1364]
11831
- mov r1, #12
11832
- b .L2120
11833
-.L2119:
12199
+.L2087:
12200
+ uxth r7, r3
12201
+ cmp r7, r1
12202
+ bcc .L2092
12203
+ str r2, [sp, #12]
12204
+ bl select_l2p_ram_region
12205
+ mul r5, r5, r0
12206
+ ldr r2, [sp, #12]
12207
+ mov r7, r0
12208
+ ldrh r1, [r2, r5]
12209
+ add r3, r2, r5
12210
+ movw r2, #65535
12211
+ cmp r1, r2
12212
+ beq .L2093
12213
+ ldr r3, [r3, #4]
12214
+ cmp r3, #0
12215
+ bge .L2093
12216
+ bl flush_l2p_region
12217
+.L2093:
12218
+ ldr r3, [r4, #-1376]
12219
+ uxth r6, r6
12220
+ ldr fp, [r3, r6, lsl #2]
12221
+ cmp fp, #0
12222
+ bne .L2094
12223
+ ldr r0, [r4, #-1364]
12224
+ mov r1, #255
12225
+ ldr r3, [sp, #4]
12226
+ add r0, r0, r5
12227
+ ldrh r2, [r3, #-8]
12228
+ ldr r0, [r0, #8]
12229
+ bl ftl_memset
12230
+ ldr r2, [r4, #-1364]
12231
+ strh r8, [r2, r5] @ movhi
12232
+ ldr r2, [r4, #-1364]
12233
+ add r5, r2, r5
12234
+ str fp, [r5, #4]
12235
+ b .L2089
12236
+.L2086:
1183412237 cmp r2, #0
1183512238 mvn r0, #0
1183612239 streq r0, [r1]
11837
- b .L2121
11838
-.L2125:
12240
+.L2085:
12241
+ add sp, sp, #20
12242
+ @ sp needed
12243
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12244
+.L2092:
1183912245 add r3, r3, #1
11840
- mla r0, r1, r3, r4
12246
+ mla r0, r5, r3, r2
1184112247 ldrh r0, [r0, #-12]
11842
- cmp r0, r6
11843
- beq .L2122
11844
-.L2120:
11845
- uxth r7, r3
11846
- cmp r7, r2
11847
- bcc .L2125
11848
- bl select_l2p_ram_region
11849
- mov r5, #12
11850
- movw r2, #65535
11851
- mul r5, r5, r0
11852
- mov r7, r0
11853
- add r3, r4, r5
11854
- ldrh r1, [r4, r5]
11855
- cmp r1, r2
11856
- bne .L2134
11857
-.L2126:
11858
- ldr r3, [fp, #-1376]
11859
- ldr r4, .L2135
11860
- ldr r8, [r3, r6, asl #2]
11861
- cmp r8, #0
11862
- bne .L2127
11863
- ldr r2, [r4, #-1364]
11864
- mov r1, #255
12248
+ cmp r0, r8
12249
+ bne .L2087
12250
+.L2089:
12251
+ ldr r3, [sp]
12252
+ mvn r0, #0
12253
+ bic r9, r9, r0, lsl r3
1186512254 ldr r3, [sp, #8]
11866
- add r2, r2, r5
11867
- ldr r0, [r2, #8]
11868
- ldrh r2, [r3, #-10]
11869
- bl ftl_memset
11870
- ldr r2, [r4, #-1364]
11871
- strh r6, [r2, r5] @ movhi
11872
- ldr r2, [r4, #-1364]
11873
- add r5, r2, r5
11874
- str r8, [r5, #4]
11875
-.L2122:
11876
- ldr r3, [sp, #4]
11877
- mvn r2, #0
11878
- bic r10, r3, r2, asl r10
11879
- ldr r3, [sp, #12]
12255
+ uxth r9, r9
1188012256 cmp r3, #0
11881
- uxth r10, r10
1188212257 mov r3, #12
11883
- bne .L2123
11884
- ldr r2, [fp, #-1364]
12258
+ bne .L2090
12259
+ ldr r2, [r4, #-1364]
1188512260 mla r3, r3, r7, r2
1188612261 ldr r3, [r3, #8]
11887
- ldr r3, [r3, r10, asl #2]
11888
- str r3, [r9]
11889
- b .L2124
11890
-.L2123:
11891
- mul r3, r3, r7
11892
- ldr r2, [fp, #-1364]
11893
- ldr r1, [r9]
11894
- add r2, r2, r3
11895
- ldr r2, [r2, #8]
11896
- str r1, [r2, r10, asl #2]
11897
- ldr r2, [fp, #-1364]
11898
- add r3, r2, r3
11899
- ldr r2, [r3, #4]
11900
- orr r2, r2, #-2147483648
11901
- str r2, [r3, #4]
11902
- ldr r3, .L2135+4
11903
- strh r6, [r3] @ movhi
11904
-.L2124:
11905
- ldr r2, [fp, #-1364]
12262
+ ldr r3, [r3, r9, lsl #2]
12263
+ str r3, [r10]
12264
+.L2091:
12265
+ ldr r2, [r4, #-1364]
1190612266 mov r3, #12
1190712267 mov r0, #0
1190812268 mla r7, r3, r7, r2
....@@ -11910,80 +12270,86 @@
1191012270 cmn r3, #1
1191112271 addne r3, r3, #1
1191212272 strne r3, [r7, #4]
11913
- b .L2121
11914
-.L2134:
11915
- ldr r3, [r3, #4]
11916
- cmp r3, #0
11917
- bge .L2126
11918
- bl flush_l2p_region
11919
- b .L2126
11920
-.L2127:
12273
+ b .L2085
12274
+.L2090:
12275
+ mul r3, r3, r7
1192112276 ldr r2, [r4, #-1364]
11922
- mov r1, #1
11923
- ldr r0, .L2135+8
12277
+ ldr r1, [r10]
12278
+ add r2, r2, r3
12279
+ ldr r2, [r2, #8]
12280
+ str r1, [r2, r9, lsl #2]
12281
+ ldr r2, [r4, #-1364]
12282
+ add r3, r2, r3
12283
+ ldr r2, [r3, #4]
12284
+ orr r2, r2, #-2147483648
12285
+ str r2, [r3, #4]
12286
+ ldr r3, .L2101+4
12287
+ strh r8, [r3] @ movhi
12288
+ b .L2091
12289
+.L2094:
12290
+ ldr r2, [r4, #-1364]
12291
+ ldr r0, .L2101+8
12292
+ str fp, [r4, #-1272]
1192412293 add r2, r2, r5
11925
- str r8, [r4, #-1272]
1192612294 ldr r2, [r2, #8]
1192712295 str r2, [r4, #-1268]
11928
- ldr r2, [r4, #-1444]
12296
+ ldr r2, [r4, #-1440]
1192912297 str r2, [r4, #-1264]
11930
- mov r2, r1
12298
+ mov r2, #1
12299
+ mov r1, r2
1193112300 bl FlashReadPages
1193212301 ldr r2, [r4, #-1264]
1193312302 ldrh r2, [r2, #8]
11934
- cmp r2, r6
11935
- beq .L2128
12303
+ cmp r2, r8
12304
+ beq .L2095
12305
+ mov r2, fp
1193612306 mov r1, r6
11937
- mov r2, r8
11938
- ldr r0, .L2135+12
12307
+ ldr r0, .L2101+12
1193912308 bl printk
11940
- mov r2, #4
11941
- mov r3, r2
11942
- ldr r0, .L2135+16
12309
+ mov r3, #4
1194312310 ldr r1, [r4, #-1264]
12311
+ mov r2, r3
12312
+ ldr r0, .L2101+16
1194412313 bl rknand_print_hex
11945
- sub r3, r4, #1632
11946
- ldr r0, .L2135+20
12314
+ ldr r3, .L2101+20
1194712315 mov r2, #4
11948
- ldrh r3, [r3]
1194912316 ldr r1, [r4, #-1376]
12317
+ ldr r0, .L2101+24
12318
+ ldrh r3, [r3, #-12]
1195012319 bl rknand_print_hex
1195112320 mov r3, #1
1195212321 str r3, [r4, #-1280]
11953
- b .L2129
11954
-.L2128:
11955
- ldr r2, [r4, #-1276]
11956
- cmp r2, #256
11957
- bne .L2129
11958
- mov r1, r6
11959
- mov r2, r8
11960
- ldr r0, .L2135+24
11961
- bl printk
12322
+.L2096:
1196212323 ldr r3, [r4, #-1364]
11963
- ldr r0, .L2135+28
11964
- mov r1, r6
11965
- add r3, r3, r5
11966
- ldr r2, [r3, #8]
11967
- bl FtlMapWritePage
11968
-.L2129:
11969
- ldr r3, [fp, #-1364]
1197012324 mov r1, #0
1197112325 add r2, r3, r5
1197212326 str r1, [r2, #4]
11973
- strh r6, [r3, r5] @ movhi
11974
- b .L2122
11975
-.L2121:
11976
- add sp, sp, #20
11977
- @ sp needed
11978
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11979
-.L2136:
12327
+ strh r8, [r3, r5] @ movhi
12328
+ b .L2089
12329
+.L2095:
12330
+ ldr r2, [r4, #-1276]
12331
+ cmp r2, #256
12332
+ bne .L2096
12333
+ mov r2, fp
12334
+ mov r1, r6
12335
+ ldr r0, .L2101+28
12336
+ bl printk
12337
+ ldr r3, [r4, #-1364]
12338
+ mov r1, r6
12339
+ ldr r0, .L2101+32
12340
+ add r3, r3, r5
12341
+ ldr r2, [r3, #8]
12342
+ bl FtlMapWritePage
12343
+ b .L2096
12344
+.L2102:
1198012345 .align 2
11981
-.L2135:
12346
+.L2101:
1198212347 .word .LANCHOR2
1198312348 .word .LANCHOR2+1072
1198412349 .word .LANCHOR2-1276
1198512350 .word .LC43
1198612351 .word .LC18
12352
+ .word .LANCHOR2-1616
1198712353 .word .LC44
1198812354 .word .LC45
1198912355 .word .LANCHOR2+1028
....@@ -11991,1376 +12357,1387 @@
1199112357 .size log2phys, .-log2phys
1199212358 .align 2
1199312359 .global FtlVendorPartWrite
12360
+ .syntax unified
12361
+ .arm
12362
+ .fpu softvfp
1199412363 .type FtlVendorPartWrite, %function
1199512364 FtlVendorPartWrite:
1199612365 .fnstart
1199712366 @ args = 0, pretend = 0, frame = 56
1199812367 @ frame_needed = 0, uses_anonymous_args = 0
11999
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12368
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1200012369 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12001
- mov fp, r2
12002
- ldr r6, .L2148
12370
+ mov r10, r2
12371
+ ldr r4, .L2113
1200312372 add r2, r0, r1
12004
- mov r7, r0
1200512373 .pad #60
1200612374 sub sp, sp, #60
12007
- mov r4, r1
12008
- ldrh r3, [r6, #-24]
12009
- ldrh r5, [r6, #-12]
12375
+ ldrh r3, [r4, #-6]
1201012376 cmp r2, r3
12011
- mvnhi r0, #0
12012
- bhi .L2138
12013
- mov r5, r7, lsr r5
12014
- mov r3, #0
12015
- str r3, [sp]
12016
- add r3, r6, #1648
12017
- mov r10, r5, asl #2
12377
+ mvnhi r8, #0
12378
+ bhi .L2103
12379
+ add r4, r4, #1664
12380
+ mov r9, r0
12381
+ sub r3, r4, #1648
12382
+ mov r6, r1
12383
+ ldrh r7, [r3, #-10]
12384
+ mov r8, #0
1201812385 str r3, [sp, #4]
12019
- mov r8, r3
12020
-.L2139:
12021
- cmp r4, #0
12022
- beq .L2147
12023
- ldr r3, [sp, #4]
12024
- mov r0, r7
12025
- ldr r3, [r3, #-1380]
12026
- ldr ip, [r3, r10]
12027
- ldr r3, .L2148+4
12028
- str ip, [sp, #12]
12029
- ldrh r2, [r3]
12030
- mov r1, r2
12031
- str r2, [sp, #8]
12032
- bl __aeabi_uidivmod
12033
- ldr r2, [sp, #8]
12034
- mov r9, r1
12035
- ldr ip, [sp, #12]
12036
- rsb r3, r1, r2
12037
- uxth r6, r3
12038
- cmp r6, r4
12039
- uxthhi r6, r4
12040
- cmp r6, r2
12041
- cmpne ip, #0
12042
- movne r1, #1
12043
- moveq r1, #0
12044
- beq .L2141
12045
- ldr r2, [r8, #-1468]
12046
- mov r1, #1
12047
- add r0, sp, #20
12048
- str ip, [sp, #24]
12049
- str r2, [sp, #28]
12050
- mov r2, #0
12051
- str r2, [sp, #32]
12052
- mov r2, r1
12053
- bl FlashReadPages
12054
- b .L2142
12055
-.L2141:
12056
- ldr r2, .L2148+8
12057
- ldr r0, [r8, #-1468]
12058
- ldrh r2, [r2]
12059
- bl ftl_memset
12060
-.L2142:
12061
- mov ip, r6, asl #9
12062
- ldr r0, [r8, #-1468]
12063
- uxth r9, r9
12064
- mov r1, fp
12065
- mov r2, ip
12066
- str ip, [sp, #8]
12067
- add r0, r0, r9, asl #9
12068
- rsb r4, r6, r4
12069
- bl ftl_memcpy
12070
- mov r1, r5
12071
- ldr r0, .L2148+12
12072
- add r5, r5, #1
12073
- ldr r2, [r8, #-1468]
12074
- add r7, r7, r6
12075
- bl FtlMapWritePage
12076
- add r10, r10, #4
12077
- ldr r3, [sp]
12078
- cmn r0, #1
12079
- ldr ip, [sp, #8]
12080
- mvneq r3, #0
12081
- add fp, fp, ip
12082
- str r3, [sp]
12083
- b .L2139
12084
-.L2147:
12085
- ldr r0, [sp]
12086
-.L2138:
12386
+ lsr r7, r0, r7
12387
+ lsl fp, r7, #2
12388
+.L2105:
12389
+ cmp r6, #0
12390
+ bne .L2110
12391
+.L2103:
12392
+ mov r0, r8
1208712393 add sp, sp, #60
1208812394 @ sp needed
12089
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12090
-.L2149:
12395
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12396
+.L2110:
12397
+ ldr r3, [r4, #-1380]
12398
+ mov r0, r9
12399
+ ldr r2, [r3, fp]
12400
+ ldr r3, [sp, #4]
12401
+ str r2, [sp, #12]
12402
+ ldrh r3, [r3, #-12]
12403
+ mov r1, r3
12404
+ str r3, [sp, #8]
12405
+ bl __aeabi_uidivmod
12406
+ ldr r3, [sp, #8]
12407
+ ldr r2, [sp, #12]
12408
+ str r1, [sp]
12409
+ sub r5, r3, r1
12410
+ uxth r5, r5
12411
+ cmp r6, r5
12412
+ uxthcc r5, r6
12413
+ cmp r2, #0
12414
+ cmpne r5, r3
12415
+ movne r1, #1
12416
+ moveq r1, #0
12417
+ beq .L2107
12418
+ ldr r3, [r4, #-1464]
12419
+ add r0, sp, #20
12420
+ str r2, [sp, #24]
12421
+ mov r2, #1
12422
+ mov r1, r2
12423
+ str r3, [sp, #28]
12424
+ mov r3, #0
12425
+ str r3, [sp, #32]
12426
+ bl FlashReadPages
12427
+.L2108:
12428
+ lsl r3, r5, #9
12429
+ ldr r0, [r4, #-1464]
12430
+ mov r1, r10
12431
+ mov r2, r3
12432
+ str r3, [sp, #8]
12433
+ ldr r3, [sp]
12434
+ sub r6, r6, r5
12435
+ add r9, r9, r5
12436
+ add fp, fp, #4
12437
+ add r0, r0, r3, lsl #9
12438
+ bl ftl_memcpy
12439
+ mov r1, r7
12440
+ ldr r2, [r4, #-1464]
12441
+ ldr r0, .L2113+4
12442
+ add r7, r7, #1
12443
+ bl FtlMapWritePage
12444
+ ldr r3, [sp, #8]
12445
+ cmn r0, #1
12446
+ mvneq r8, #0
12447
+ add r10, r10, r3
12448
+ b .L2105
12449
+.L2107:
12450
+ ldr r3, [sp, #4]
12451
+ ldr r0, [r4, #-1464]
12452
+ ldrh r2, [r3, #-8]
12453
+ bl ftl_memset
12454
+ b .L2108
12455
+.L2114:
1209112456 .align 2
12092
-.L2148:
12093
- .word .LANCHOR2-1648
12094
- .word .LANCHOR2-1662
12095
- .word .LANCHOR2-1658
12457
+.L2113:
12458
+ .word .LANCHOR2-1664
1209612459 .word .LANCHOR2+1076
1209712460 .fnend
1209812461 .size FtlVendorPartWrite, .-FtlVendorPartWrite
1209912462 .align 2
1210012463 .global FtlVendorPartRead
12464
+ .syntax unified
12465
+ .arm
12466
+ .fpu softvfp
1210112467 .type FtlVendorPartRead, %function
1210212468 FtlVendorPartRead:
1210312469 .fnstart
1210412470 @ args = 0, pretend = 0, frame = 56
1210512471 @ frame_needed = 0, uses_anonymous_args = 0
12106
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12472
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1210712473 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12108
- mov r9, r2
12109
- ldr r6, .L2162
12474
+ mov r10, r2
12475
+ ldr r5, .L2126
1211012476 add r2, r0, r1
12111
- mov r8, r0
1211212477 .pad #60
1211312478 sub sp, sp, #60
12114
- mov r7, r1
12115
- ldrh r3, [r6, #-24]
12116
- ldrh r5, [r6, #-12]
12479
+ ldrh r3, [r5, #-6]
1211712480 cmp r2, r3
12118
- mvnhi r0, #0
12119
- bhi .L2151
12120
- add r6, r6, #1648
12121
- mov r5, r8, lsr r5
12122
- mov r10, r6
12123
- mov r3, r5, asl #2
12124
- str r3, [sp, #4]
12125
- mov r3, #0
12126
- str r3, [sp]
12127
-.L2152:
12481
+ mvnhi r8, #0
12482
+ bhi .L2115
12483
+ add r5, r5, #1664
12484
+ mov r9, r0
12485
+ sub r3, r5, #1648
12486
+ mov r7, r1
12487
+ ldrh r6, [r3, #-10]
12488
+ mov r8, #0
12489
+ str r3, [sp, #8]
12490
+ lsr r6, r0, r6
12491
+ lsl fp, r6, #2
12492
+.L2117:
1212812493 cmp r7, #0
12129
- beq .L2161
12130
- ldr r2, [sp, #4]
12494
+ bne .L2123
12495
+.L2115:
1213112496 mov r0, r8
12132
- ldr r3, [r6, #-1380]
12133
- ldr r3, [r3, r2]
12497
+ add sp, sp, #60
12498
+ @ sp needed
12499
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12500
+.L2123:
12501
+ ldr r3, [r5, #-1380]
12502
+ mov r0, r9
12503
+ ldr r3, [r3, fp]
1213412504 str r3, [sp, #12]
12135
- ldr r3, .L2162+4
12136
- ldrh r4, [r3]
12505
+ ldr r3, [sp, #8]
12506
+ ldrh r4, [r3, #-12]
1213712507 mov r1, r4
1213812508 bl __aeabi_uidivmod
12139
- rsb r4, r1, r4
12509
+ sub r4, r4, r1
1214012510 ldr r3, [sp, #12]
12141
- str r1, [sp, #8]
1214212511 uxth r4, r4
12143
- cmp r4, r7
12144
- uxthhi r4, r7
12512
+ str r1, [sp, #4]
12513
+ cmp r7, r4
12514
+ uxthcc r4, r7
1214512515 cmp r3, #0
12146
- mov fp, r4, asl #9
12147
- beq .L2154
12148
- ldr r2, [r10, #-1468]
12149
- mov r1, #1
12516
+ lsl r2, r4, #9
12517
+ str r2, [sp, #12]
12518
+ beq .L2119
12519
+ ldr r2, [r5, #-1464]
1215012520 add r0, sp, #20
1215112521 str r3, [sp, #24]
1215212522 str r3, [sp, #12]
12523
+ mov r3, #0
1215312524 str r2, [sp, #28]
12154
- mov r2, #0
12155
- str r2, [sp, #32]
12156
- mov r2, r1
12525
+ mov r2, #1
12526
+ mov r1, r2
12527
+ str r3, [sp, #32]
1215712528 bl FlashReadPages
1215812529 ldr r2, [sp, #20]
12159
- ldr r3, [sp]
12160
- cmn r2, #1
12161
- ldr r2, [r10, #-1276]
12162
- mvneq r3, #0
12163
- cmp r2, #256
12164
- str r3, [sp]
1216512530 ldr r3, [sp, #12]
12166
- bne .L2156
12167
- mov r1, r5
12531
+ cmn r2, #1
12532
+ ldr r2, [r5, #-1276]
12533
+ mvneq r8, #0
12534
+ cmp r2, #256
12535
+ bne .L2121
1216812536 mov r2, r3
12169
- ldr r0, .L2162+8
12537
+ mov r1, r6
12538
+ ldr r0, .L2126+4
1217012539 bl printk
12171
- ldr r0, .L2162+12
12172
- mov r1, r5
12173
- ldr r2, [r6, #-1468]
12540
+ ldr r2, [r5, #-1464]
12541
+ mov r1, r6
12542
+ ldr r0, .L2126+8
1217412543 bl FtlMapWritePage
12175
-.L2156:
12176
- ldrh r3, [sp, #8]
12177
- mov r0, r9
12178
- ldr r1, [r10, #-1468]
12179
- mov r2, fp
12180
- add r1, r1, r3, asl #9
12181
- bl ftl_memcpy
12182
- b .L2157
12183
-.L2154:
12184
- mov r0, r9
12185
- mov r1, r3
12186
- mov r2, fp
12187
- bl ftl_memset
12188
-.L2157:
12544
+.L2121:
12545
+ ldr r1, [r5, #-1464]
12546
+ lsl r2, r4, #9
1218912547 ldr r3, [sp, #4]
12190
- add r5, r5, #1
12191
- rsb r7, r4, r7
12192
- add r8, r8, r4
12193
- add r3, r3, #4
12194
- add r9, r9, fp
12195
- str r3, [sp, #4]
12196
- b .L2152
12197
-.L2161:
12198
- ldr r0, [sp]
12199
-.L2151:
12200
- add sp, sp, #60
12201
- @ sp needed
12202
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12203
-.L2163:
12548
+ mov r0, r10
12549
+ add r1, r1, r3, lsl #9
12550
+ bl ftl_memcpy
12551
+.L2122:
12552
+ add r6, r6, #1
12553
+ sub r7, r7, r4
12554
+ add r9, r9, r4
12555
+ add r10, r10, r4, lsl #9
12556
+ add fp, fp, #4
12557
+ b .L2117
12558
+.L2119:
12559
+ lsl r2, r4, #9
12560
+ mov r1, r3
12561
+ mov r0, r10
12562
+ bl ftl_memset
12563
+ b .L2122
12564
+.L2127:
1220412565 .align 2
12205
-.L2162:
12206
- .word .LANCHOR2-1648
12207
- .word .LANCHOR2-1662
12566
+.L2126:
12567
+ .word .LANCHOR2-1664
1220812568 .word .LC46
1220912569 .word .LANCHOR2+1076
1221012570 .fnend
1221112571 .size FtlVendorPartRead, .-FtlVendorPartRead
1221212572 .align 2
1221312573 .global FtlUpdateVaildLpn
12574
+ .syntax unified
12575
+ .arm
12576
+ .fpu softvfp
1221412577 .type FtlUpdateVaildLpn, %function
1221512578 FtlUpdateVaildLpn:
1221612579 .fnstart
1221712580 @ args = 0, pretend = 0, frame = 0
1221812581 @ frame_needed = 0, uses_anonymous_args = 0
12219
- ldr r3, .L2172
12582
+ ldr r3, .L2137
1222012583 add r1, r3, #1120
1222112584 ldrh r2, [r1]
1222212585 cmp r2, #4
1222312586 cmpls r0, #0
12224
- addeq r2, r2, #1
12225
- streqh r2, [r1] @ movhi
12226
- bxeq lr
12587
+ bne .L2129
12588
+ add r2, r2, #1
12589
+ strh r2, [r1] @ movhi
12590
+ bx lr
12591
+.L2129:
12592
+ mov r2, #0
1222712593 str lr, [sp, #-4]!
1222812594 .save {lr}
12229
- mov r2, #0
1223012595 strh r2, [r1] @ movhi
12231
- sub r1, r3, #1728
12596
+ sub r1, r3, #1712
12597
+ movw lr, #65535
1223212598 str r2, [r3, #1124]
12233
- movw ip, #65535
12234
- ldrh r0, [r1]
12235
- ldr r2, [r3, #-1408]
12236
- add r0, r2, r0, asl #1
12237
-.L2166:
12238
- cmp r2, r0
12239
- beq .L2171
12240
- ldrh r1, [r2], #2
12241
- cmp r1, ip
12242
- ldrne lr, [r3, #1124]
12243
- addne r1, r1, lr
12244
- strne r1, [r3, #1124]
12245
- b .L2166
12246
-.L2171:
12599
+ ldrh r1, [r1, #-12]
12600
+ ldr r2, [r3, #-1404]
12601
+ add r1, r2, r1, lsl #1
12602
+.L2130:
12603
+ cmp r2, r1
12604
+ bne .L2132
1224712605 ldr pc, [sp], #4
12248
-.L2173:
12606
+.L2132:
12607
+ ldrh ip, [r2], #2
12608
+ cmp ip, lr
12609
+ ldrne r0, [r3, #1124]
12610
+ addne r0, r0, ip
12611
+ strne r0, [r3, #1124]
12612
+ b .L2130
12613
+.L2138:
1224912614 .align 2
12250
-.L2172:
12615
+.L2137:
1225112616 .word .LANCHOR2
1225212617 .fnend
1225312618 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
1225412619 .align 2
1225512620 .global FtlMapBlkWriteDumpData
12621
+ .syntax unified
12622
+ .arm
12623
+ .fpu softvfp
1225612624 .type FtlMapBlkWriteDumpData, %function
1225712625 FtlMapBlkWriteDumpData:
1225812626 .fnstart
1225912627 @ args = 0, pretend = 0, frame = 0
1226012628 @ frame_needed = 0, uses_anonymous_args = 0
12261
- stmfd sp!, {r4, r5, r6, lr}
12629
+ ldr r3, [r0, #36]
12630
+ cmp r3, #0
12631
+ bxeq lr
12632
+ push {r4, r5, r6, lr}
1226212633 .save {r4, r5, r6, lr}
12263
- ldr r2, [r0, #36]
12264
- ldrh r5, [r0, #6]
12265
- cmp r2, #0
12266
- ldr r3, [r0, #24]
12267
- ldmeqfd sp!, {r4, r5, r6, pc}
12268
- ldr r4, .L2181
1226912634 mov r2, #0
12635
+ ldr r4, .L2149
1227012636 str r2, [r0, #36]
1227112637 ldr r2, [r4, #-1280]
12638
+ ldrh r5, [r0, #6]
12639
+ ldr r3, [r0, #24]
1227212640 cmp r2, #0
12273
- ldmnefd sp!, {r4, r5, r6, pc}
12274
- sub r5, r5, #1
12641
+ popne {r4, r5, r6, pc}
1227512642 mov r6, r0
12276
- ldr r2, [r4, #-1444]
12277
- ldr r0, [r4, #-1472]
12643
+ ldr r2, [r4, #-1440]
12644
+ ldr r0, [r4, #-1468]
12645
+ sub r5, r5, #1
1227812646 uxth r5, r5
1227912647 str r2, [r4, #-1264]
1228012648 str r0, [r4, #-1268]
12281
- ldr r3, [r3, r5, asl #2]
12649
+ ldr r3, [r3, r5, lsl #2]
1228212650 cmp r3, #0
1228312651 str r3, [r4, #-1272]
12284
- beq .L2178
12285
- mov r1, #1
12286
- ldr r0, .L2181+4
12287
- mov r2, r1
12652
+ beq .L2143
12653
+ mov r2, #1
12654
+ ldr r0, .L2149+4
12655
+ mov r1, r2
1228812656 bl FlashReadPages
12289
- b .L2179
12290
-.L2178:
12657
+.L2144:
12658
+ ldr r2, [r4, #-1268]
12659
+ mov r1, r5
12660
+ mov r0, r6
12661
+ pop {r4, r5, r6, lr}
12662
+ b FtlMapWritePage
12663
+.L2143:
1229112664 sub r3, r4, #1648
1229212665 mov r1, #255
12293
- ldrh r2, [r3, #-10]
12666
+ ldrh r2, [r3, #-8]
1229412667 bl ftl_memset
12295
-.L2179:
12296
- mov r0, r6
12297
- mov r1, r5
12298
- ldr r2, [r4, #-1268]
12299
- ldmfd sp!, {r4, r5, r6, lr}
12300
- b FtlMapWritePage
12301
-.L2182:
12668
+ b .L2144
12669
+.L2150:
1230212670 .align 2
12303
-.L2181:
12671
+.L2149:
1230412672 .word .LANCHOR2
1230512673 .word .LANCHOR2-1276
1230612674 .fnend
1230712675 .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData
1230812676 .align 2
1230912677 .global FtlVpcTblFlush
12678
+ .syntax unified
12679
+ .arm
12680
+ .fpu softvfp
1231012681 .type FtlVpcTblFlush, %function
1231112682 FtlVpcTblFlush:
1231212683 .fnstart
12313
- @ args = 0, pretend = 0, frame = 0
12684
+ @ args = 0, pretend = 0, frame = 8
1231412685 @ frame_needed = 0, uses_anonymous_args = 0
12315
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
12316
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
12317
- ldr r4, .L2201
12686
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
12687
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12688
+ .pad #12
12689
+ ldr r4, .L2169
1231812690 ldr r3, [r4, #-1280]
1231912691 cmp r3, #0
12320
- bne .L2185
12321
- ldr r2, [r4, #-1476]
12322
- add r5, r4, #816
12323
- ldr r6, [r4, #-1444]
12692
+ bne .L2153
12693
+ ldr r2, [r4, #-1472]
12694
+ add r7, r4, #816
12695
+ ldr r6, [r4, #-1440]
12696
+ sub r9, r4, #1648
12697
+ ldr r5, .L2169+4
1232412698 mov r1, #255
12325
- ldr r7, .L2201+4
1232612699 str r2, [r4, #-1268]
1232712700 movw r2, #1128
1232812701 ldrh r2, [r4, r2]
1232912702 str r6, [r4, #-1264]
1233012703 str r3, [r6, #12]
1233112704 strh r2, [r6, #2] @ movhi
12332
- ldr r2, .L2201+8
12705
+ ldr r2, .L2169+8
12706
+ ldr r8, .L2169+12
1233312707 strh r2, [r6] @ movhi
1233412708 ldr r2, [r4, #1136]
1233512709 stmib r6, {r2, r3}
12336
- ldr r3, .L2201+12
12710
+ ldr r3, .L2169+16
1233712711 str r3, [r4, #816]
12338
- ldr r3, .L2201+16
12712
+ ldr r3, .L2169+20
1233912713 str r3, [r4, #820]
12340
- ldrh r3, [r7, #6]
12341
- strh r3, [r5, #8] @ movhi
12342
- sub r3, r4, #1712
12343
- ldrh r3, [r3, #-2]
12714
+ ldrh r3, [r5, #6]
12715
+ strh r3, [r7, #8] @ movhi
12716
+ sub r3, r4, #1696
12717
+ ldrh r3, [r3, #-14]
1234412718 strb r3, [r4, #826]
1234512719 add r3, r4, #884
1234612720 ldrh r2, [r3]
12347
- strh r2, [r5, #14] @ movhi
12721
+ strh r2, [r7, #14] @ movhi
1234812722 ldrh r2, [r3, #2]
1234912723 ldrb r3, [r4, #890] @ zero_extendqisi2
12350
- orr r3, r3, r2, asl #6
12351
- strh r3, [r5, #16] @ movhi
12724
+ orr r3, r3, r2, lsl #6
12725
+ strh r3, [r7, #16] @ movhi
1235212726 ldrb r3, [r4, #892] @ zero_extendqisi2
1235312727 strb r3, [r4, #827]
1235412728 add r3, r4, #932
1235512729 ldrh r2, [r3]
12356
- strh r2, [r5, #18] @ movhi
12730
+ strh r2, [r7, #18] @ movhi
1235712731 ldrh r2, [r3, #2]
1235812732 ldrb r3, [r4, #938] @ zero_extendqisi2
12359
- orr r3, r3, r2, asl #6
12360
- strh r3, [r5, #20] @ movhi
12733
+ orr r3, r3, r2, lsl #6
12734
+ strh r3, [r7, #20] @ movhi
1236112735 ldrb r3, [r4, #940] @ zero_extendqisi2
1236212736 strb r3, [r4, #828]
1236312737 add r3, r4, #980
1236412738 ldrh r2, [r3]
12365
- strh r2, [r5, #22] @ movhi
12739
+ strh r2, [r7, #22] @ movhi
1236612740 ldrh r2, [r3, #2]
1236712741 ldrb r3, [r4, #986] @ zero_extendqisi2
1236812742 ldr r0, [r4, #-1268]
12369
- orr r3, r3, r2, asl #6
12370
- strh r3, [r5, #24] @ movhi
12743
+ orr r3, r3, r2, lsl #6
12744
+ ldrh r2, [r9, #-8]
12745
+ strh r3, [r7, #24] @ movhi
1237112746 ldrb r3, [r4, #988] @ zero_extendqisi2
1237212747 strb r3, [r4, #829]
12373
- ldr r3, [r4, #-1584]
12748
+ ldr r3, [r4, #-1580]
1237412749 str r3, [r4, #848]
12375
- ldr r3, [r4, #-1616]
12376
- str r3, [r4, #856]
1237712750 ldr r3, [r4, #-1612]
12751
+ str r3, [r4, #856]
12752
+ ldr r3, [r4, #-1608]
1237812753 str r3, [r4, #852]
1237912754 sub r3, r4, #1536
12380
- ldrh r2, [r3, #-4]
12381
- ldrh r3, [r3, #-2]
12382
- strh r2, [r5, #44] @ movhi
12383
- strh r3, [r5, #46] @ movhi
12384
- sub r3, r4, #1648
12385
- ldrh r2, [r3, #-10]
12755
+ ldrh r3, [r3]
12756
+ strh r3, [r7, #44] @ movhi
12757
+ sub r3, r4, #1520
12758
+ ldrh r3, [r3, #-14]
12759
+ strh r3, [r7, #46] @ movhi
1238612760 bl ftl_memset
12387
- mov r1, r5
12388
- sub r5, r4, #1728
12761
+ mov r1, r7
1238912762 mov r2, #48
12763
+ sub r7, r4, #1712
1239012764 ldr r0, [r4, #-1268]
1239112765 bl ftl_memcpy
12392
- ldrh r2, [r5]
12766
+ ldrh r2, [r7, #-12]
1239312767 ldr r0, [r4, #-1268]
12394
- ldr r1, [r4, #-1408]
12395
- mov r2, r2, asl #1
12768
+ ldr r1, [r4, #-1404]
12769
+ lsl r2, r2, #1
1239612770 add r0, r0, #48
1239712771 bl ftl_memcpy
12398
- ldrh r2, [r5]
12399
- ldr r0, [r4, #-1268]
12400
- ldr r1, [r4, #-1396]
12401
- mov r3, r2, asl #1
12402
- mov r2, r2, lsr #3
12403
- add r3, r3, #51
12772
+ ldrh r0, [r7, #-12]
12773
+ ldr r3, [r4, #-1268]
12774
+ ldr r1, [r8, #32]
12775
+ lsr r2, r0, #3
12776
+ lsl r0, r0, #1
12777
+ add r0, r0, #51
1240412778 add r2, r2, #4
12405
- bic r3, r3, #3
12406
- add r0, r0, r3
12779
+ bic r0, r0, #3
12780
+ add r0, r3, r0
1240712781 bl ftl_memcpy
1240812782 sub r3, r4, #1616
12409
- ldrh r3, [r3, #-12]
12410
- cmp r3, #0
12411
- beq .L2186
12412
- ldrh r2, [r5]
12413
- ldr r0, [r4, #-1268]
12783
+ str r9, [sp, #4]
12784
+ ldrh r2, [r3, #-8]
12785
+ cmp r2, #0
12786
+ beq .L2154
12787
+ ldrh r0, [r7, #-12]
12788
+ ldrh r2, [r3, #-12]
1241412789 ldr r1, [r4, #-1376]
12415
- mov r3, r2, lsr #3
12416
- add r3, r3, r2, asl #1
12417
- sub r2, r4, #1632
12790
+ lsr r3, r0, #3
12791
+ lsl r2, r2, #2
12792
+ add r3, r3, r0, lsl #1
12793
+ ldr r0, [r4, #-1268]
1241812794 add r3, r3, #52
12419
- ldrh r2, [r2]
1242012795 ubfx r3, r3, #2, #14
12421
- add r0, r0, r3, asl #2
12422
- mov r2, r2, asl #2
12796
+ add r0, r0, r3, lsl #2
1242312797 bl ftl_memcpy
12424
-.L2186:
12798
+.L2154:
12799
+ ldr r10, .L2169+24
12800
+ mov r7, #0
12801
+ movw r9, #65535
1242512802 mov r0, #0
12426
- ldr r9, .L2201
1242712803 bl FtlUpdateVaildLpn
12428
- ldr fp, .L2201+4
12429
- mov r8, #0
12430
- movw r10, #65535
12431
-.L2187:
12432
- ldr r3, [r4, #-1476]
12433
- ldrh r2, [r7]
12434
- ldrh r1, [r7, #2]
12804
+ mov fp, r10
12805
+.L2155:
12806
+ ldr r3, [r4, #-1472]
12807
+ ldrh r1, [r5, #2]
12808
+ ldrh r2, [r5]
1243512809 str r3, [r4, #-1268]
12436
- ldr r3, [r4, #-1444]
12810
+ ldr r3, [r4, #-1440]
1243712811 str r3, [r4, #-1264]
12438
- orr r3, r1, r2, asl #10
12812
+ orr r3, r1, r2, lsl #10
1243912813 str r3, [r4, #-1272]
12440
- ldr r3, .L2201+20
12441
- ldrh r3, [r3]
12814
+ ldrh r3, [r10]
1244212815 sub r3, r3, #1
1244312816 cmp r1, r3
12444
- blt .L2188
12817
+ blt .L2156
1244512818 mov r3, #0
12446
- ldrh r10, [fp, #4]
12447
- strh r3, [fp, #2] @ movhi
12448
- strh r2, [fp, #4] @ movhi
12819
+ ldrh r9, [r5, #4]
12820
+ strh r3, [r5, #2] @ movhi
12821
+ strh r2, [r5, #4] @ movhi
1244912822 bl FtlFreeSysBlkQueueOut
12450
- ldr r3, [r9, #-1616]
12823
+ ldr r3, [r4, #-1612]
12824
+ strh r0, [r5] @ movhi
1245112825 add r2, r3, #1
12452
- str r2, [r9, #-1616]
12453
- str r3, [r9, #1136]
12454
- mov r2, r0, asl #10
12455
- strh r0, [fp] @ movhi
12456
- str r2, [r9, #-1272]
12826
+ str r3, [r4, #1136]
12827
+ str r2, [r4, #-1612]
12828
+ lsl r2, r0, #10
12829
+ str r2, [r4, #-1272]
1245712830 str r3, [r6, #4]
1245812831 strh r0, [r6, #2] @ movhi
12459
-.L2188:
12460
- ldr r3, .L2201+24
12461
- ldrb r3, [r3] @ zero_extendqisi2
12832
+.L2156:
12833
+ ldrb r3, [r8, #36] @ zero_extendqisi2
1246212834 cmp r3, #0
12463
- beq .L2189
12464
- ldr r3, .L2201+28
12465
- ldr r0, [r4, #-1476]
12466
- ldrh r1, [r3]
12835
+ beq .L2157
12836
+ ldr r3, [sp, #4]
12837
+ ldr r0, [r4, #-1472]
12838
+ ldrh r1, [r3, #-8]
1246712839 bl js_hash
1246812840 str r0, [r6, #12]
12469
-.L2189:
12470
- mov r1, #1
12471
- ldr r0, .L2201+32
12472
- mov r3, r1
12473
- mov r2, r1
12841
+.L2157:
12842
+ mov r3, #1
12843
+ ldr r0, .L2169+28
12844
+ mov r2, r3
12845
+ mov r1, r3
1247412846 bl FlashProgPages
12475
- ldrh r5, [r7, #2]
12476
- ldr r3, [r4, #-1276]
12477
- add r5, r5, #1
12478
- cmn r3, #1
12479
- uxth r5, r5
12480
- strh r5, [r7, #2] @ movhi
12481
- bne .L2190
12482
- cmp r5, #1
12483
- add r8, r8, #1
12484
- ldreq r3, .L2201+20
12485
- uxth r8, r8
12486
- ldreqh r3, [r3]
12847
+ ldrh r3, [r5, #2]
12848
+ ldr r2, [r4, #-1276]
12849
+ add r3, r3, #1
12850
+ uxth r3, r3
12851
+ cmn r2, #1
12852
+ strh r3, [r5, #2] @ movhi
12853
+ bne .L2158
12854
+ cmp r3, #1
12855
+ add r7, r7, #1
12856
+ ldrheq r3, [fp]
12857
+ uxth r7, r7
1248712858 subeq r3, r3, #1
12488
- streqh r3, [fp, #2] @ movhi
12489
- cmp r8, #3
12490
- bls .L2187
12491
- ldr r0, .L2201+36
12492
- mov r2, r8
12859
+ strheq r3, [r5, #2] @ movhi
12860
+ cmp r7, #3
12861
+ bls .L2155
12862
+ mov r2, r7
1249312863 ldr r1, [r4, #-1272]
12864
+ ldr r0, .L2169+32
1249412865 bl printk
1249512866 mov r3, #1
1249612867 str r3, [r4, #-1280]
12497
- b .L2185
12498
-.L2190:
12499
- cmp r3, #256
12500
- cmpne r5, #1
12501
- beq .L2187
12502
- movw r3, #65535
12503
- cmp r10, r3
12504
- beq .L2185
12505
- mov r0, r10
12506
- mov r1, #1
12507
- bl FtlFreeSysBlkQueueIn
12508
-.L2185:
12868
+.L2153:
1250912869 mov r0, #0
12510
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
12511
-.L2202:
12870
+ add sp, sp, #12
12871
+ @ sp needed
12872
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12873
+.L2158:
12874
+ cmp r3, #1
12875
+ cmpne r2, #256
12876
+ beq .L2155
12877
+ movw r3, #65535
12878
+ cmp r9, r3
12879
+ beq .L2153
12880
+ mov r1, #1
12881
+ mov r0, r9
12882
+ bl FtlFreeSysBlkQueueIn
12883
+ b .L2153
12884
+.L2170:
1251212885 .align 2
12513
-.L2201:
12886
+.L2169:
1251412887 .word .LANCHOR2
1251512888 .word .LANCHOR2+1128
1251612889 .word -3932
12890
+ .word .LANCHOR0
1251712891 .word 1179929683
1251812892 .word 1342177379
12519
- .word .LANCHOR2-1666
12520
- .word .LANCHOR0
12521
- .word .LANCHOR2-1658
12893
+ .word .LANCHOR2-1664
1252212894 .word .LANCHOR2-1276
1252312895 .word .LC47
1252412896 .fnend
1252512897 .size FtlVpcTblFlush, .-FtlVpcTblFlush
1252612898 .align 2
1252712899 .global FtlScanSysBlk
12900
+ .syntax unified
12901
+ .arm
12902
+ .fpu softvfp
1252812903 .type FtlScanSysBlk, %function
1252912904 FtlScanSysBlk:
1253012905 .fnstart
12531
- @ args = 0, pretend = 0, frame = 32
12906
+ @ args = 0, pretend = 0, frame = 24
1253212907 @ frame_needed = 0, uses_anonymous_args = 0
12533
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12908
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1253412909 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12910
+ mov r5, #0
12911
+ ldr r4, .L2250
1253512912 movw r3, #1144
12536
- ldr r9, .L2289
12537
- mov r10, #0
12538
- mov r1, r10
12539
- .pad #36
12540
- sub sp, sp, #36
12541
- sub r5, r9, #1648
12542
- ldr r2, [r9, #-1640]
12543
- mov r4, r9
12544
- strh r10, [r9, r3] @ movhi
12545
- sub r3, r9, #1280
12546
- ldr r0, [r9, #-1368]
12547
- mov r6, r9
12548
- mov r2, r2, asl #2
12549
- strh r10, [r3, #-8] @ movhi
12913
+ mov r1, r5
12914
+ .pad #28
12915
+ sub sp, sp, #28
12916
+ ldr r2, [r4, #-1636]
12917
+ sub r7, r4, #1280
12918
+ ldr r0, [r4, #-1368]
12919
+ sub r6, r4, #1632
12920
+ strh r5, [r4, r3] @ movhi
12921
+ strh r5, [r7, #-8] @ movhi
12922
+ lsl r2, r2, #2
1255012923 bl ftl_memset
12551
- ldr r2, [r9, #-1640]
12552
- mov r1, r10
12553
- ldr r0, [r9, #-1404]
12554
- mov r2, r2, asl #1
12924
+ ldr r2, [r4, #-1636]
12925
+ mov r1, r5
12926
+ ldr r0, [r4, #-1400]
12927
+ lsl r2, r2, #1
1255512928 bl ftl_memset
12556
- ldrh r2, [r5]
12557
- mov r1, r10
12558
- ldr r0, [r9, #-1384]
12559
- mov r2, r2, asl #2
12929
+ ldrh r2, [r6, #-12]
12930
+ mov r1, r5
12931
+ ldr r0, [r4, #-1384]
12932
+ lsl r2, r2, #2
1256012933 bl ftl_memset
12561
- ldrh r2, [r5]
12562
- mov r1, r10
12563
- ldr r0, [r9, #-1392]
12564
- mov r2, r2, asl #1
12934
+ ldrh r2, [r6, #-12]
12935
+ mov r1, r5
12936
+ ldr r0, [r4, #-1392]
12937
+ lsl r2, r2, #1
1256512938 bl ftl_memset
12566
- ldr r0, .L2289+4
12567
- mov r1, #255
1256812939 mov r2, #16
12940
+ mov r1, #255
12941
+ ldr r0, .L2250+4
1256912942 bl ftl_memset
12570
- sub r3, r9, #1728
12571
- ldrh r3, [r3]
12572
- str r5, [sp, #16]
12573
- mov r5, r9
12574
- str r3, [sp, #8]
12575
-.L2204:
12576
- ldr r3, .L2289+8
12577
- ldr r2, [sp, #8]
12578
- ldr r1, .L2289
12579
- ldrh r3, [r3]
12580
- cmp r3, r2
12581
- bls .L2245
12582
- ldr r3, .L2289+12
12943
+ sub r3, r4, #1712
12944
+ str r7, [sp, #8]
12945
+ ldrh r3, [r3, #-12]
12946
+ str r6, [sp, #12]
12947
+ str r3, [sp]
12948
+ sub r3, r4, #1696
12949
+ sub r3, r3, #10
12950
+ str r3, [sp, #16]
12951
+.L2172:
12952
+ ldr r2, .L2250+8
12953
+ ldr r1, [sp]
12954
+ ldrh r3, [r2]
12955
+ cmp r3, r1
12956
+ bls .L2212
12957
+ mov r5, #0
12958
+ ldrh r3, [r2, #-10]
12959
+ ldr r6, [r4, #-1500]
12960
+ mov r7, r5
12961
+ ldr fp, [r4, #-1460]
1258312962 mov r8, #36
12584
- ldr r1, .L2289+16
12585
- mov r7, #0
12586
- ldr r2, [r5, #-1504]
12587
- ldrh ip, [r3]
12588
- sub r9, r1, #52
12589
- ldr r3, [r5, #-1464]
12590
- ldr fp, [r5, #-1436]
12591
- ldrh r10, [r1]
12592
- str r7, [sp, #4]
12593
-.L2246:
12594
- uxth r1, r7
12595
- cmp r1, ip
12596
- bcs .L2284
12597
- ldr r1, [sp, #8]
12598
- ldrb r0, [r9, r7] @ zero_extendqisi2
12599
- str r3, [sp, #28]
12600
- str r2, [sp, #24]
12601
- str ip, [sp, #20]
12963
+ ldr r10, [r4, #-1432]
12964
+ ldrh r9, [r2, #68]
12965
+ b .L2213
12966
+.L2174:
12967
+ str r3, [sp, #20]
12968
+ ldr r3, [sp, #16]
12969
+ ldr r1, [sp]
12970
+ ldrb r0, [r3, r5] @ zero_extendqisi2
1260212971 bl V2P_block
12603
- str r0, [sp, #12]
12972
+ str r0, [sp, #4]
1260412973 bl FtlBbmIsBadBlock
1260512974 cmp r0, #0
12606
- ldr r1, [sp, #12]
12607
- ldr ip, [sp, #20]
12608
- ldr r2, [sp, #24]
12609
- ldr r3, [sp, #28]
12610
- bne .L2205
12611
- ldr r0, [sp, #4]
12612
- mov r1, r1, asl #10
12613
- mla r0, r8, r0, r2
12614
- stmib r0, {r1, r3}
12615
- ldr r1, [sp, #4]
12616
- mul r1, r10, r1
12617
- add lr, r1, #3
12618
- cmp r1, #0
12619
- movlt r1, lr
12620
- bic r1, r1, #3
12621
- add r1, fp, r1
12622
- str r1, [r0, #12]
12623
- ldr r1, [sp, #4]
12624
- add r1, r1, #1
12625
- uxth r1, r1
12626
- str r1, [sp, #4]
12627
-.L2205:
12628
- add r7, r7, #1
12629
- b .L2246
12630
-.L2284:
12631
- ldr r3, [sp, #4]
12632
- cmp r3, #0
12633
- beq .L2208
12634
- mov r1, r3
12635
- ldr r0, [r4, #-1504]
12636
- mov r2, #1
12637
- bl FlashReadPages
12638
- mov r3, #0
12639
-.L2282:
12640
- str r3, [sp, #12]
12975
+ ldr r3, [sp, #20]
12976
+ bne .L2173
1264112977 ldr r2, [sp, #4]
12642
- ldrh r3, [sp, #12]
12978
+ mla r1, r8, r7, r6
12979
+ lsl r2, r2, #10
12980
+ stmib r1, {r2, fp}
12981
+ mul r2, r9, r7
12982
+ add r7, r7, #1
12983
+ uxth r7, r7
12984
+ add r0, r2, #3
12985
+ cmp r2, #0
12986
+ movlt r2, r0
12987
+ bic r2, r2, #3
12988
+ add r2, r10, r2
12989
+ str r2, [r1, #12]
12990
+.L2173:
12991
+ add r5, r5, #1
12992
+.L2213:
12993
+ uxth r2, r5
1264312994 cmp r3, r2
12644
- bcs .L2208
12645
- ldr r3, [sp, #12]
12646
- mov r9, #36
12647
- mul r9, r9, r3
12648
- ldr r3, [r4, #-1504]
12649
- add r2, r3, r9
12650
- ldr r3, [r3, r9]
12651
- ldr r7, [r2, #4]
12652
- cmn r3, #1
12653
- ldr r8, [r2, #12]
12654
- ubfx r7, r7, #10, #16
12655
- bne .L2211
12656
- mov r10, #16
12657
- movw fp, #65535
12658
-.L2210:
12659
- ldr r0, [r4, #-1504]
12660
- mov r1, #1
12661
- mov r2, r1
12662
- add r0, r0, r9
12663
- ldr r3, [r0, #4]
12664
- add r3, r3, #1
12665
- str r3, [r0, #4]
12666
- bl FlashReadPages
12667
- ldrh r3, [r8]
12668
- cmp r3, fp
12669
- ldreq r3, [r6, #-1504]
12670
- mvneq r2, #0
12671
- streq r2, [r3, r9]
12672
- beq .L2211
12673
-.L2212:
12674
- ldr r3, [r5, #-1504]
12675
- ldr r3, [r3, r9]
12676
- cmn r3, #1
12677
- bne .L2211
12678
- sub r10, r10, #1
12679
- uxth r10, r10
12680
- cmp r10, #0
12681
- bne .L2210
12995
+ bhi .L2174
12996
+ cmp r7, #0
12997
+ bne .L2175
1268212998 .L2211:
12683
- ldr r3, [r5, #-1504]
12684
- ldr r3, [r3, r9]
12999
+ ldr r3, [sp]
13000
+ add r3, r3, #1
13001
+ uxth r3, r3
13002
+ str r3, [sp]
13003
+ b .L2172
13004
+.L2175:
13005
+ ldr r8, .L2250+4
13006
+ mov r2, #1
13007
+ mov r1, r7
13008
+ mov r0, r6
13009
+ bl FlashReadPages
13010
+ add r9, r8, #16
13011
+ mov r3, #0
13012
+ str r3, [sp, #4]
13013
+.L2176:
13014
+ ldrh r3, [sp, #4]
13015
+ cmp r7, r3
13016
+ bls .L2211
13017
+ ldr r3, [sp, #4]
13018
+ mov r10, #36
13019
+ mul r10, r10, r3
13020
+ ldr r3, [r4, #-1500]
13021
+ add r2, r3, r10
13022
+ ldr r3, [r3, r10]
13023
+ ldr r5, [r2, #4]
13024
+ ldr r6, [r2, #12]
1268513025 cmn r3, #1
12686
- beq .L2214
12687
- ldr r2, [r5, #-1616]
12688
- ldr r3, [r8, #4]
12689
- cmn r2, #1
12690
- beq .L2215
13026
+ ubfx r5, r5, #10, #16
13027
+ bne .L2179
13028
+ mov fp, #16
13029
+ movw r3, #65535
13030
+.L2181:
13031
+ ldr r0, [r4, #-1500]
13032
+ str r3, [sp, #20]
13033
+ add r0, r0, r10
13034
+ ldr r2, [r0, #4]
13035
+ add r2, r2, #1
13036
+ str r2, [r0, #4]
13037
+ mov r2, #1
13038
+ mov r1, r2
13039
+ bl FlashReadPages
13040
+ ldrh r2, [r6]
13041
+ ldr r3, [sp, #20]
1269113042 cmp r2, r3
12692
- bhi .L2216
12693
-.L2215:
13043
+ bne .L2178
13044
+ ldr r3, [r4, #-1500]
13045
+ mvn r2, #0
13046
+ str r2, [r3, r10]
13047
+ ldr r3, [r4, #-1500]
13048
+ ldr r3, [r3, r10]
13049
+ cmp r3, r2
13050
+ beq .L2180
13051
+.L2179:
13052
+ ldr r2, [r4, #-1612]
13053
+ ldr r3, [r6, #4]
13054
+ cmn r2, #1
13055
+ beq .L2182
13056
+ cmp r2, r3
13057
+ bhi .L2183
13058
+.L2182:
1269413059 cmn r3, #1
1269513060 addne r2, r3, #1
12696
- strne r2, [r6, #-1616]
12697
-.L2216:
12698
- ldrh r2, [r8]
13061
+ strne r2, [r4, #-1612]
13062
+.L2183:
13063
+ ldrh r2, [r6]
1269913064 movw r1, #61604
1270013065 cmp r2, r1
12701
- beq .L2218
12702
- bhi .L2219
13066
+ beq .L2185
13067
+ bhi .L2186
1270313068 movw r3, #61574
1270413069 cmp r2, r3
12705
- bne .L2217
12706
- ldr r3, [sp, #16]
12707
- ldr r2, .L2289+20
12708
- ldr lr, [r4, #-1384]
12709
- ldrh ip, [r3]
12710
- ldrh r1, [r2]
12711
- sub r0, ip, #1
12712
- uxth r3, r0
12713
- rsb r0, r1, r0
12714
- b .L2232
12715
-.L2219:
13070
+ beq .L2187
13071
+.L2184:
13072
+ ldr r3, [sp, #4]
13073
+ add r3, r3, #1
13074
+ str r3, [sp, #4]
13075
+ b .L2176
13076
+.L2178:
13077
+ ldr r2, [r4, #-1500]
13078
+ ldr r2, [r2, r10]
13079
+ cmn r2, #1
13080
+ bne .L2179
13081
+ sub fp, fp, #1
13082
+ uxth fp, fp
13083
+ cmp fp, #0
13084
+ bne .L2181
13085
+.L2180:
13086
+ ldrb r1, [r4, #-2740] @ zero_extendqisi2
13087
+ cmp r1, #0
13088
+ bne .L2249
13089
+.L2209:
13090
+ mov r0, r5
13091
+ bl FtlFreeSysBlkQueueIn
13092
+ b .L2184
13093
+.L2186:
1271613094 movw r3, #61634
1271713095 cmp r2, r3
12718
- beq .L2221
13096
+ beq .L2188
1271913097 movw r3, #65535
1272013098 cmp r2, r3
12721
- moveq r0, r7
12722
- beq .L2283
12723
- b .L2217
12724
-.L2221:
12725
- ldr ip, [r4, #-1640]
12726
- ldr fp, .L2289+24
12727
- ldr lr, [r4, #-1368]
12728
- uxth r1, ip
12729
- ldrh r2, [fp]
12730
- sub r3, r1, #1
12731
- rsb r1, r2, r1
12732
- uxth r3, r3
12733
- sub r1, r1, #1
12734
- sxth r1, r1
12735
- str r1, [sp, #20]
12736
-.L2223:
12737
- ldr r1, [sp, #20]
12738
- sxth r0, r3
12739
- cmp r0, r1
12740
- ble .L2285
12741
- ldr r9, [lr, r0, asl #2]
12742
- mov r10, r0, asl #2
12743
- ldr r1, [r8, #4]
12744
- cmp r1, r9
12745
- bls .L2224
12746
- ldr r1, [lr]
12747
- cmp r1, #0
12748
- bne .L2225
12749
- cmp r2, ip
12750
- addne r2, r2, #1
12751
- ldrne r1, .L2289+24
12752
- strneh r2, [r1] @ movhi
12753
-.L2225:
12754
- uxth lr, r3
13099
+ bne .L2184
13100
+.L2249:
1275513101 mov r1, #0
12756
-.L2226:
12757
- uxth r2, r1
12758
- cmp r2, lr
12759
- bcs .L2286
12760
- ldr ip, [r5, #-1368]
12761
- sxth r2, r2
12762
- add r1, r1, #1
12763
- add r9, ip, r2, asl #2
12764
- ldr r9, [r9, #4]
12765
- str r9, [ip, r2, asl #2]
12766
- mov r2, r2, asl #1
12767
- ldr ip, [r5, #-1404]
12768
- add r9, ip, r2
12769
- ldrh r9, [r9, #2]
12770
- strh r9, [ip, r2] @ movhi
12771
- b .L2226
12772
-.L2286:
12773
- ldr r2, [r6, #-1368]
12774
- mov r0, r0, asl #1
12775
- ldr r1, [r8, #4]
12776
- str r1, [r2, r10]
12777
- ldr r2, [r6, #-1404]
12778
- strh r7, [r2, r0] @ movhi
12779
- sxth r0, r3
12780
- cmp r0, #0
12781
- bge .L2228
12782
- b .L2217
12783
-.L2224:
12784
- sub r3, r3, #1
12785
- uxth r3, r3
12786
- b .L2223
12787
-.L2285:
12788
- cmp r0, #0
12789
- bge .L2259
12790
- b .L2217
12791
-.L2228:
12792
- ldr r2, .L2289+24
12793
- ldr r1, [r5, #-1640]
12794
- ldrh r2, [r2]
12795
- rsb r1, r2, r1
13102
+ b .L2209
13103
+.L2188:
13104
+ ldr r0, [r4, #-1636]
13105
+ ldrh r2, [r9]
13106
+ ldr ip, [r4, #-1368]
13107
+ uxth r1, r0
13108
+ sub r3, r1, #1
13109
+ sub r1, r1, r2
13110
+ sub r1, r1, #1
13111
+ sxth r3, r3
13112
+ sxth r1, r1
13113
+.L2190:
13114
+ cmp r3, r1
13115
+ bgt .L2196
13116
+ cmp r3, #0
13117
+ bge .L2226
13118
+ b .L2184
13119
+.L2196:
13120
+ ldr fp, [r6, #4]
13121
+ lsl lr, r3, #2
13122
+ ldr r10, [ip, r3, lsl #2]
13123
+ cmp fp, r10
13124
+ bls .L2191
13125
+ ldr r1, [ip]
13126
+ cmp r1, #0
13127
+ bne .L2192
13128
+ cmp r0, r2
13129
+ addne r2, r2, #1
13130
+ strhne r2, [r9] @ movhi
13131
+.L2192:
13132
+ uxth ip, r3
13133
+ mov r1, #0
13134
+.L2193:
13135
+ uxth r0, r1
13136
+ sxth r2, r1
13137
+ cmp r0, ip
13138
+ bcc .L2194
13139
+ ldr r1, [r6, #4]
13140
+ cmp r3, #0
13141
+ ldr r2, [r4, #-1368]
13142
+ str r1, [r2, lr]
13143
+ lsl r2, r3, #1
13144
+ ldr r1, [r4, #-1400]
13145
+ strh r5, [r1, r2] @ movhi
13146
+ blt .L2184
13147
+ ldrh r2, [r9]
13148
+ ldr r1, [r4, #-1636]
13149
+ sub r1, r1, r2
1279613150 sub r1, r1, #1
1279713151 sxth r1, r1
12798
- cmp r0, r1
12799
- bgt .L2217
12800
-.L2259:
13152
+ cmp r3, r1
13153
+ bgt .L2184
13154
+.L2226:
1280113155 add r2, r2, #1
12802
- ldr r1, [r8, #4]
12803
- strh r2, [fp] @ movhi
12804
- sxth r3, r3
13156
+ ldr r1, [r6, #4]
13157
+ strh r2, [r9] @ movhi
1280513158 ldr r2, [r4, #-1368]
12806
- str r1, [r2, r3, asl #2]
12807
- mov r3, r3, asl #1
12808
- ldr r2, [r4, #-1404]
12809
- b .L2280
12810
-.L2238:
12811
- ldr r10, [r8, #4]
12812
- mov fp, r2, asl #2
12813
- ldr r9, [lr, r2, asl #2]
12814
- cmp r10, r9
12815
- bhi .L2287
13159
+ str r1, [r2, r3, lsl #2]
13160
+ lsl r3, r3, #1
13161
+ ldr r2, [r4, #-1400]
13162
+.L2247:
13163
+ strh r5, [r2, r3] @ movhi
13164
+ b .L2184
13165
+.L2194:
13166
+ ldr r0, [r4, #-1368]
13167
+ add r1, r1, #1
13168
+ add r10, r0, r2, lsl #2
13169
+ ldr r10, [r10, #4]
13170
+ str r10, [r0, r2, lsl #2]
13171
+ lsl r2, r2, #1
13172
+ ldr r0, [r4, #-1400]
13173
+ add r10, r0, r2
13174
+ ldrh r10, [r10, #2]
13175
+ strh r10, [r0, r2] @ movhi
13176
+ b .L2193
13177
+.L2191:
1281613178 sub r3, r3, #1
12817
- uxth r3, r3
12818
-.L2232:
12819
- sxth r2, r3
12820
- cmp r2, r0
12821
- bgt .L2238
12822
- b .L2237
12823
-.L2287:
12824
- ldr r0, [lr]
12825
- cmp r0, #0
12826
- bne .L2234
12827
- cmp r1, ip
12828
- addne r1, r1, #1
12829
- ldrne r0, .L2289+20
12830
- strneh r1, [r0] @ movhi
12831
-.L2234:
12832
- uxth lr, r3
12833
- mov r0, #0
12834
-.L2235:
12835
- uxth r1, r0
12836
- cmp r1, lr
12837
- bcs .L2288
12838
- ldr ip, [r5, #-1384]
12839
- sxth r1, r1
12840
- add r0, r0, #1
12841
- add r9, ip, r1, asl #2
12842
- ldr r9, [r9, #4]
12843
- str r9, [ip, r1, asl #2]
12844
- mov r1, r1, asl #1
12845
- ldr ip, [r5, #-1392]
12846
- add r9, ip, r1
12847
- ldrh r9, [r9, #2]
12848
- strh r9, [ip, r1] @ movhi
12849
- b .L2235
12850
-.L2288:
12851
- ldr r1, [r6, #-1384]
12852
- mov r2, r2, asl #1
12853
- ldr r0, [r8, #4]
12854
- str r0, [r1, fp]
12855
- ldr r1, [r6, #-1392]
12856
- strh r7, [r1, r2] @ movhi
12857
-.L2237:
1285813179 sxth r3, r3
13180
+ b .L2190
13181
+.L2187:
13182
+ ldr r3, [sp, #12]
13183
+ ldr r1, [sp, #8]
13184
+ ldr ip, [r4, #-1384]
13185
+ ldrh r2, [r3, #-12]
13186
+ ldrh r1, [r1, #-8]
13187
+ sub r0, r2, #1
13188
+ sxth r3, r0
13189
+ sub r0, r0, r1
13190
+.L2199:
13191
+ cmp r3, r0
13192
+ ble .L2204
13193
+ ldr fp, [r6, #4]
13194
+ lsl lr, r3, #2
13195
+ ldr r10, [ip, r3, lsl #2]
13196
+ cmp fp, r10
13197
+ bls .L2200
13198
+ sub r2, r2, r1
13199
+ ldr r0, [ip]
13200
+ clz r2, r2
13201
+ uxth ip, r3
13202
+ lsr r2, r2, #5
13203
+ cmp r0, #0
13204
+ orrne r2, r2, #1
13205
+ cmp r2, #0
13206
+ ldreq r2, .L2250+12
13207
+ addeq r1, r1, #1
13208
+ strheq r1, [r2] @ movhi
13209
+ mov r1, #0
13210
+.L2202:
13211
+ uxth r0, r1
13212
+ sxth r2, r1
13213
+ cmp r0, ip
13214
+ bcc .L2203
13215
+ ldr r1, [r6, #4]
13216
+ ldr r2, [r4, #-1384]
13217
+ str r1, [r2, lr]
13218
+ lsl r2, r3, #1
13219
+ ldr r1, [r4, #-1392]
13220
+ strh r5, [r1, r2] @ movhi
13221
+.L2204:
1285913222 cmp r3, #0
12860
- blt .L2217
12861
- ldr r0, .L2289+20
12862
- sub r2, r0, #360
12863
- ldrh r1, [r0]
13223
+ blt .L2184
13224
+ ldr r2, [sp, #8]
13225
+ ldrh r1, [r2, #-8]
13226
+ ldr r2, .L2250+16
1286413227 ldrh r2, [r2]
1286513228 sub r2, r2, #1
12866
- rsb r2, r1, r2
13229
+ sub r2, r2, r1
1286713230 sxth r2, r2
1286813231 cmp r3, r2
12869
- bgt .L2217
13232
+ bgt .L2184
13233
+ ldr r2, [sp, #8]
1287013234 add r1, r1, #1
12871
- ldr r2, [r5, #-1384]
12872
- strh r1, [r0] @ movhi
12873
- ldr r1, [r8, #4]
12874
- str r1, [r2, r3, asl #2]
12875
- mov r3, r3, asl #1
12876
- ldr r2, [r5, #-1392]
12877
-.L2280:
12878
- strh r7, [r2, r3] @ movhi
12879
- b .L2217
12880
-.L2218:
12881
- ldr r2, .L2289+4
12882
- ldr r9, .L2289+4
12883
- ldrh r1, [r2]
13235
+ strh r1, [r2, #-8] @ movhi
13236
+ ldr r2, [r4, #-1384]
13237
+ ldr r1, [r6, #4]
13238
+ str r1, [r2, r3, lsl #2]
13239
+ lsl r3, r3, #1
13240
+ ldr r2, [r4, #-1392]
13241
+ b .L2247
13242
+.L2203:
13243
+ ldr r0, [r4, #-1384]
13244
+ add r1, r1, #1
13245
+ add r10, r0, r2, lsl #2
13246
+ ldr r10, [r10, #4]
13247
+ str r10, [r0, r2, lsl #2]
13248
+ lsl r2, r2, #1
13249
+ ldr r0, [r4, #-1392]
13250
+ add r10, r0, r2
13251
+ ldrh r10, [r10, #2]
13252
+ strh r10, [r0, r2] @ movhi
13253
+ b .L2202
13254
+.L2200:
13255
+ sub r3, r3, #1
13256
+ sxth r3, r3
13257
+ b .L2199
13258
+.L2185:
13259
+ ldrh r1, [r8]
1288413260 movw r2, #65535
1288513261 cmp r1, r2
12886
- moveq r2, r9
12887
- streqh r7, [r2] @ movhi
12888
- beq .L2281
12889
- ldr r3, .L2289+4
12890
- ldrh r0, [r3, #4]
13262
+ strheq r5, [r8] @ movhi
13263
+ beq .L2248
13264
+ ldrh r0, [r8, #4]
1289113265 cmp r0, r2
12892
- beq .L2240
13266
+ beq .L2207
1289313267 mov r1, #1
1289413268 bl FtlFreeSysBlkQueueIn
12895
-.L2240:
12896
- ldr r3, [r8, #4]
12897
- ldr r2, [r6, #1136]
13269
+.L2207:
13270
+ ldr r3, [r6, #4]
13271
+ ldr r2, [r4, #1136]
1289813272 cmp r2, r3
12899
- strcsh r7, [r9, #4] @ movhi
12900
- bcs .L2217
12901
- ldrh r3, [r9]
12902
- strh r7, [r9] @ movhi
12903
- strh r3, [r9, #4] @ movhi
12904
- ldr r3, [r8, #4]
12905
-.L2281:
12906
- str r3, [r5, #1136]
12907
- b .L2217
12908
-.L2214:
12909
- ldrb r1, [r5, #-2744] @ zero_extendqisi2
12910
- mov r0, r7
12911
- cmp r1, #0
12912
- beq .L2242
12913
-.L2283:
12914
- mov r1, #0
12915
-.L2242:
12916
- bl FtlFreeSysBlkQueueIn
12917
-.L2217:
12918
- ldr r3, [sp, #12]
12919
- add r3, r3, #1
12920
- b .L2282
12921
-.L2208:
12922
- ldr r3, [sp, #8]
12923
- add r7, r3, #1
12924
- uxth r3, r7
12925
- str r3, [sp, #8]
12926
- b .L2204
12927
-.L2245:
12928
- ldr ip, [r1, #-1404]
12929
- ldrh r2, [ip]
12930
- cmp r2, #0
12931
- beq .L2247
12932
-.L2250:
12933
- ldr ip, [r1, #-1392]
12934
- ldrh r2, [ip]
12935
- cmp r2, #0
12936
- beq .L2248
12937
- b .L2271
12938
-.L2247:
12939
- movw r3, #1144
12940
- ldrh r3, [r1, r3]
12941
- cmp r3, #0
12942
- ldrne lr, [r1, #-1640]
12943
- beq .L2250
12944
-.L2251:
12945
- uxth r3, r2
12946
- sxth r0, r3
12947
- cmp r0, lr
12948
- bcs .L2250
12949
- mov r4, r0, asl #1
12950
- add r2, r2, #1
12951
- ldrh r4, [ip, r4]
12952
- cmp r4, #0
12953
- beq .L2251
12954
- ldr ip, .L2289
12955
- mov r6, #0
12956
-.L2252:
12957
- ldr lr, [r1, #-1640]
12958
- sxth r2, r3
12959
- cmp r2, lr
12960
- bcs .L2250
12961
- ldr r4, [ip, #-1404]
12962
- mov lr, r2, asl #1
12963
- rsb r5, r0, r2
12964
- add r3, r3, #1
12965
- ldrh r8, [r4, lr]
12966
- mov r7, r5, asl #1
12967
- uxth r3, r3
12968
- strh r8, [r4, r7] @ movhi
12969
- ldr r4, [ip, #-1368]
12970
- ldr r2, [r4, r2, asl #2]
12971
- str r2, [r4, r5, asl #2]
12972
- ldr r2, [ip, #-1404]
12973
- strh r6, [r2, lr] @ movhi
12974
- b .L2252
13273
+ strhcs r5, [r8, #4] @ movhi
13274
+ bcs .L2184
13275
+ ldrh r3, [r8]
13276
+ strh r5, [r8] @ movhi
13277
+ strh r3, [r8, #4] @ movhi
13278
+ ldr r3, [r6, #4]
1297513279 .L2248:
12976
- ldr r1, .L2289+28
12977
- ldrh r3, [r1, #-8]
13280
+ str r3, [r4, #1136]
13281
+ b .L2184
13282
+.L2212:
13283
+ ldr r1, [r4, #-1400]
13284
+ ldrh r3, [r1]
1297813285 cmp r3, #0
12979
- subne r1, r1, #368
12980
- ldrneh lr, [r1]
12981
- beq .L2271
12982
-.L2255:
12983
- uxth r3, r2
12984
- sxth r0, r3
12985
- cmp r0, lr
12986
- bge .L2271
12987
- mov r4, r0, asl #1
12988
- add r2, r2, #1
12989
- ldrh r4, [ip, r4]
12990
- cmp r4, #0
12991
- beq .L2255
12992
- ldr ip, .L2289
12993
- mov r6, #0
12994
-.L2256:
12995
- ldrh lr, [r1]
12996
- sxth r2, r3
12997
- cmp r2, lr
12998
- bge .L2271
12999
- ldr r4, [ip, #-1392]
13000
- mov lr, r2, asl #1
13001
- rsb r5, r0, r2
13002
- add r3, r3, #1
13003
- ldrh r8, [r4, lr]
13004
- mov r7, r5, asl #1
13005
- uxth r3, r3
13006
- strh r8, [r4, r7] @ movhi
13007
- ldr r4, [ip, #-1384]
13008
- ldr r2, [r4, r2, asl #2]
13009
- str r2, [r4, r5, asl #2]
13010
- ldr r2, [ip, #-1392]
13011
- strh r6, [r2, lr] @ movhi
13012
- b .L2256
13013
-.L2271:
13286
+ beq .L2214
13287
+.L2217:
13288
+ ldr r1, [r4, #-1392]
13289
+ ldrh r2, [r1]
13290
+ cmp r2, #0
13291
+ beq .L2215
13292
+.L2237:
1301413293 mov r0, #0
13015
- add sp, sp, #36
13294
+ add sp, sp, #28
1301613295 @ sp needed
13017
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13018
-.L2290:
13296
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13297
+.L2214:
13298
+ movw r2, #1144
13299
+ ldrh r2, [r4, r2]
13300
+ cmp r2, #0
13301
+ ldrne r0, [r4, #-1636]
13302
+ beq .L2217
13303
+.L2218:
13304
+ sxth r2, r3
13305
+ cmp r2, r0
13306
+ bcs .L2217
13307
+ lsl ip, r2, #1
13308
+ add r3, r3, #1
13309
+ ldrh ip, [r1, ip]
13310
+ cmp ip, #0
13311
+ beq .L2218
13312
+ mov r3, r2
13313
+ mov lr, #0
13314
+.L2219:
13315
+ ldr r1, [r4, #-1636]
13316
+ cmp r3, r1
13317
+ bcs .L2217
13318
+ ldr r0, [r4, #-1400]
13319
+ lsl r1, r3, #1
13320
+ sub ip, r3, r2
13321
+ lsl r5, ip, #1
13322
+ ldrh r6, [r0, r1]
13323
+ strh r6, [r0, r5] @ movhi
13324
+ ldr r0, [r4, #-1368]
13325
+ ldr r5, [r0, r3, lsl #2]
13326
+ add r3, r3, #1
13327
+ sxth r3, r3
13328
+ str r5, [r0, ip, lsl #2]
13329
+ ldr r0, [r4, #-1400]
13330
+ strh lr, [r0, r1] @ movhi
13331
+ b .L2219
13332
+.L2215:
13333
+ ldr r3, .L2250+20
13334
+ ldrh r0, [r3, #-8]
13335
+ cmp r0, #0
13336
+ subne r3, r3, #352
13337
+ ldrhne r0, [r3, #-12]
13338
+ beq .L2237
13339
+.L2222:
13340
+ sxth r3, r2
13341
+ cmp r3, r0
13342
+ mov lr, r3
13343
+ bge .L2237
13344
+ lsl ip, r3, #1
13345
+ add r2, r2, #1
13346
+ ldrh ip, [r1, ip]
13347
+ cmp ip, #0
13348
+ beq .L2222
13349
+ mov ip, #0
13350
+.L2223:
13351
+ ldr r2, [sp, #12]
13352
+ ldrh r2, [r2, #-12]
13353
+ cmp r3, r2
13354
+ bge .L2237
13355
+ ldr r1, [r4, #-1392]
13356
+ lsl r2, r3, #1
13357
+ sub r0, r3, lr
13358
+ lsl r5, r0, #1
13359
+ ldrh r6, [r1, r2]
13360
+ strh r6, [r1, r5] @ movhi
13361
+ ldr r1, [r4, #-1384]
13362
+ ldr r5, [r1, r3, lsl #2]
13363
+ add r3, r3, #1
13364
+ sxth r3, r3
13365
+ str r5, [r1, r0, lsl #2]
13366
+ ldr r1, [r4, #-1392]
13367
+ strh ip, [r1, r2] @ movhi
13368
+ b .L2223
13369
+.L2251:
1301913370 .align 2
13020
-.L2289:
13371
+.L2250:
1302113372 .word .LANCHOR2
1302213373 .word .LANCHOR2+1128
13023
- .word .LANCHOR2-1726
13024
- .word .LANCHOR2-1736
13025
- .word .LANCHOR2-1656
13374
+ .word .LANCHOR2-1722
1302613375 .word .LANCHOR2-1288
13027
- .word .LANCHOR2+1144
13376
+ .word .LANCHOR2-1644
1302813377 .word .LANCHOR2-1280
1302913378 .fnend
1303013379 .size FtlScanSysBlk, .-FtlScanSysBlk
1303113380 .align 2
1303213381 .global FtlLoadEctTbl
13382
+ .syntax unified
13383
+ .arm
13384
+ .fpu softvfp
1303313385 .type FtlLoadEctTbl, %function
1303413386 FtlLoadEctTbl:
1303513387 .fnstart
1303613388 @ args = 0, pretend = 0, frame = 0
1303713389 @ frame_needed = 0, uses_anonymous_args = 0
13038
- stmfd sp!, {r3, r4, r5, lr}
13039
- .save {r3, r4, r5, lr}
13390
+ push {r4, r5, r6, lr}
13391
+ .save {r4, r5, r6, lr}
1304013392 mov r0, #64
13041
- ldr r4, .L2294
13393
+ ldr r4, .L2255
1304213394 sub r5, r4, #1424
13043
- ldr r2, [r4, #-1420]
13044
- ldrh r1, [r5, #-4]
13395
+ ldr r2, [r4, #-1416]
13396
+ ldrh r1, [r5]
1304513397 bl FtlVendorPartRead
13046
- ldr r3, [r4, #-1420]
13398
+ ldr r3, [r4, #-1416]
1304713399 ldr r2, [r3]
13048
- ldr r3, .L2294+4
13400
+ ldr r3, .L2255+4
1304913401 cmp r2, r3
13050
- beq .L2292
13051
- ldr r1, .L2294+8
13052
- ldr r0, .L2294+12
13402
+ beq .L2253
13403
+ ldr r1, .L2255+8
13404
+ ldr r0, .L2255+12
1305313405 bl printk
13054
- ldrh r2, [r5, #-4]
13055
- ldr r0, [r4, #-1420]
13406
+ ldrh r2, [r5]
1305613407 mov r1, #0
13057
- mov r2, r2, asl #9
13408
+ ldr r0, [r4, #-1416]
13409
+ lsl r2, r2, #9
1305813410 bl ftl_memset
13059
-.L2292:
13411
+.L2253:
1306013412 mov r0, #0
13061
- ldmfd sp!, {r3, r4, r5, pc}
13062
-.L2295:
13413
+ pop {r4, r5, r6, pc}
13414
+.L2256:
1306313415 .align 2
13064
-.L2294:
13416
+.L2255:
1306513417 .word .LANCHOR2
1306613418 .word 1112818501
13067
- .word .LC49
1306813419 .word .LC48
13420
+ .word .LC49
1306913421 .fnend
1307013422 .size FtlLoadEctTbl, .-FtlLoadEctTbl
1307113423 .align 2
1307213424 .global ftl_set_blk_mode
13425
+ .syntax unified
13426
+ .arm
13427
+ .fpu softvfp
1307313428 .type ftl_set_blk_mode, %function
1307413429 ftl_set_blk_mode:
1307513430 .fnstart
1307613431 @ args = 0, pretend = 0, frame = 0
1307713432 @ frame_needed = 0, uses_anonymous_args = 0
1307813433 @ link register save eliminated.
13079
- ldr r2, .L2300
13080
- mov r3, r0, lsr #5
1308113434 cmp r1, #0
13082
- and r0, r0, #31
13083
- uxth r3, r3
13435
+ mov r3, r0
13436
+ beq .L2258
13437
+ b ftl_set_blk_mode.part.17
13438
+.L2258:
13439
+ ldr r2, .L2259
13440
+ lsr r0, r0, #5
13441
+ and r3, r3, #31
1308413442 mov ip, #1
13085
- ldr r1, [r2, #-1396]
13086
- ldr r2, [r1, r3, asl #2]
13087
- orrne r0, r2, ip, asl r0
13088
- biceq r0, r2, ip, asl r0
13089
- str r0, [r1, r3, asl #2]
13443
+ ldr r1, [r2, #32]
13444
+ ldr r2, [r1, r0, lsl #2]
13445
+ bic r3, r2, ip, lsl r3
13446
+ str r3, [r1, r0, lsl #2]
1309013447 bx lr
13091
-.L2301:
13448
+.L2260:
1309213449 .align 2
13093
-.L2300:
13094
- .word .LANCHOR2
13450
+.L2259:
13451
+ .word .LANCHOR0
1309513452 .fnend
1309613453 .size ftl_set_blk_mode, .-ftl_set_blk_mode
1309713454 .align 2
1309813455 .global ftl_get_blk_mode
13456
+ .syntax unified
13457
+ .arm
13458
+ .fpu softvfp
1309913459 .type ftl_get_blk_mode, %function
1310013460 ftl_get_blk_mode:
1310113461 .fnstart
1310213462 @ args = 0, pretend = 0, frame = 0
1310313463 @ frame_needed = 0, uses_anonymous_args = 0
1310413464 @ link register save eliminated.
13105
- ldr r3, .L2303
13106
- mov r2, r0, lsr #5
13465
+ ldr r3, .L2262
13466
+ lsr r2, r0, #5
1310713467 and r0, r0, #31
13108
- ldr r3, [r3, #-1396]
13109
- ldr r3, [r3, r2, asl #2]
13110
- mov r0, r3, lsr r0
13468
+ ldr r3, [r3, #32]
13469
+ ldr r3, [r3, r2, lsl #2]
13470
+ lsr r0, r3, r0
1311113471 and r0, r0, #1
1311213472 bx lr
13113
-.L2304:
13473
+.L2263:
1311413474 .align 2
13115
-.L2303:
13116
- .word .LANCHOR2
13475
+.L2262:
13476
+ .word .LANCHOR0
1311713477 .fnend
1311813478 .size ftl_get_blk_mode, .-ftl_get_blk_mode
1311913479 .align 2
1312013480 .global FtlCheckVpc
13481
+ .syntax unified
13482
+ .arm
13483
+ .fpu softvfp
1312113484 .type FtlCheckVpc, %function
1312213485 FtlCheckVpc:
1312313486 .fnstart
1312413487 @ args = 0, pretend = 0, frame = 8
1312513488 @ frame_needed = 0, uses_anonymous_args = 0
13126
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
13127
- .save {r4, r5, r6, r7, r8, r9, lr}
13489
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
13490
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1312813491 .pad #12
1312913492 mov r4, #0
13130
- ldr r1, .L2328
13131
- ldr r0, .L2328+4
13493
+ ldr r6, .L2285
13494
+ ldr r7, .L2285+4
13495
+ ldr r1, .L2285+8
13496
+ mov r5, r6
13497
+ ldr r0, .L2285+12
1313213498 bl printk
13133
- ldr r0, .L2328+8
13134
- mov r1, #0
1313513499 mov r2, #8192
13500
+ mov r1, #0
13501
+ ldr r0, .L2285+4
1313613502 bl memset
13137
- ldr r7, .L2328+12
13138
- ldr r5, .L2328+8
13139
-.L2306:
13140
- ldr r3, [r7, #-1284]
13141
- ldr r6, .L2328+12
13503
+.L2265:
13504
+ ldr r3, [r6, #-1284]
1314213505 cmp r4, r3
13143
- bcs .L2326
13144
- mov r0, r4
13145
- add r1, sp, #4
13146
- mov r2, #0
13147
- bl log2phys
13148
- ldr r0, [sp, #4]
13149
- cmn r0, #1
13150
- beq .L2307
13151
- ubfx r0, r0, #10, #16
13152
- bl P2V_block_in_plane
13153
- mov r0, r0, asl #1
13154
- ldrh r3, [r5, r0]
13155
- add r3, r3, #1
13156
- strh r3, [r5, r0] @ movhi
13157
-.L2307:
13158
- add r4, r4, #1
13159
- b .L2306
13160
-.L2326:
13161
- ldr r9, .L2328+8
13506
+ bcc .L2267
13507
+ ldr r8, .L2285+4
1316213508 mov r4, #0
13163
- mov r5, r4
13164
- mov r8, r6
13165
-.L2309:
13166
- ldr r2, .L2328+12
13167
- uxth r1, r4
13168
- sub r3, r2, #1728
13169
- ldrh r3, [r3]
13170
- cmp r3, r1
13171
- bls .L2327
13172
- ldr r3, [r8, #-1408]
13173
- mov r7, r1, asl #1
13174
- ldrh r2, [r3, r7]
13175
- ldrh r3, [r9, r7]
13509
+ ldr r9, .L2285+16
13510
+ mov r6, r4
13511
+.L2268:
13512
+ ldr r3, .L2285+20
13513
+ ldrh r2, [r3]
13514
+ uxth r3, r4
1317613515 cmp r2, r3
13177
- beq .L2310
13178
- ldr r0, .L2328+16
13179
- bl printk
13180
- ldr r3, [r8, #-1408]
13181
- movw r2, #65535
13182
- ldrh r3, [r3, r7]
13183
- cmp r3, r2
13184
- beq .L2310
13185
- ldrh r2, [r9, r7]
13186
- cmp r2, r3
13187
- movhi r5, #1
13188
-.L2310:
13189
- add r4, r4, #1
13190
- b .L2309
13191
-.L2327:
13192
- ldr r3, [r2, #876]
13193
- cmp r3, #0
13194
- beq .L2312
13195
- add r1, r2, #880
13196
- ldr r2, [r2, #-1356]
13197
- add r9, r1, #268
13198
- mov r8, #0
13199
- rsb r3, r2, r3
13200
- ldr r2, .L2328+20
13201
- ldrh r7, [r1]
13202
- mov r3, r3, asr #1
13203
- mul r3, r2, r3
13204
- uxth r4, r3
13205
-.L2313:
13206
- uxth r3, r8
13207
- cmp r3, r7
13208
- bcs .L2312
13209
- ldr r2, [r6, #-1408]
13210
- mov r3, r4, asl #1
13516
+ bhi .L2270
13517
+ ldr r4, [r5, #876]
13518
+ cmp r4, #0
13519
+ beq .L2271
13520
+ ldr r3, .L2285+24
13521
+ mov r7, #0
13522
+ ldr r9, .L2285+4
13523
+ mov fp, #6
13524
+ ldr r10, .L2285+28
13525
+ ldrh r8, [r3]
13526
+ ldr r3, [r5, #-1356]
13527
+ sub r4, r4, r3
13528
+ ldr r3, .L2285+32
13529
+ asr r4, r4, #1
13530
+ mul r4, r3, r4
13531
+ uxth r4, r4
13532
+.L2272:
13533
+ uxth r3, r7
13534
+ cmp r8, r3
13535
+ bls .L2271
13536
+ ldr r2, [r5, #-1404]
13537
+ lsl r3, r4, #1
1321113538 ldrh r2, [r2, r3]
1321213539 cmp r2, #0
13213
- beq .L2314
13214
- ldr r0, .L2328+24
13215
- mov r1, r4
13540
+ beq .L2273
13541
+ mov r6, #1
1321613542 ldrh r3, [r9, r3]
13217
- mov r5, #1
13543
+ mov r1, r4
13544
+ mov r0, r10
1321813545 bl printk
13219
-.L2314:
13220
- mov r3, #6
13221
- ldr r2, [r6, #-1356]
13222
- mul r4, r3, r4
13546
+.L2273:
13547
+ mul r4, fp, r4
13548
+ ldr r3, [r5, #-1356]
13549
+ add r7, r7, #1
13550
+ ldrh r4, [r3, r4]
1322313551 movw r3, #65535
13224
- add r8, r8, #1
13225
- ldrh r4, [r2, r4]
1322613552 cmp r4, r3
13227
- bne .L2313
13228
-.L2312:
13229
- mov r1, r5
13230
- ldr r0, .L2328+28
13553
+ bne .L2272
13554
+.L2271:
13555
+ mov r1, r6
13556
+ ldr r0, .L2285+36
1323113557 bl printk
1323213558 add sp, sp, #12
1323313559 @ sp needed
13234
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc}
13235
-.L2329:
13560
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13561
+.L2267:
13562
+ mov r2, #0
13563
+ add r1, sp, #4
13564
+ mov r0, r4
13565
+ bl log2phys
13566
+ ldr r0, [sp, #4]
13567
+ cmn r0, #1
13568
+ beq .L2266
13569
+ ubfx r0, r0, #10, #16
13570
+ bl P2V_block_in_plane
13571
+ lsl r0, r0, #1
13572
+ ldrh r3, [r7, r0]
13573
+ add r3, r3, #1
13574
+ strh r3, [r7, r0] @ movhi
13575
+.L2266:
13576
+ add r4, r4, #1
13577
+ b .L2265
13578
+.L2270:
13579
+ uxth r1, r4
13580
+ ldr r3, [r5, #-1404]
13581
+ lsl r7, r1, #1
13582
+ ldrh r2, [r3, r7]
13583
+ ldrh r3, [r8, r7]
13584
+ cmp r2, r3
13585
+ beq .L2269
13586
+ mov r0, r9
13587
+ bl printk
13588
+ ldr r3, [r5, #-1404]
13589
+ movw r2, #65535
13590
+ ldrh r3, [r3, r7]
13591
+ cmp r3, r2
13592
+ beq .L2269
13593
+ ldrh r2, [r8, r7]
13594
+ cmp r2, r3
13595
+ movhi r6, #1
13596
+.L2269:
13597
+ add r4, r4, #1
13598
+ b .L2268
13599
+.L2286:
1323613600 .align 2
13237
-.L2328:
13238
- .word .LANCHOR3+148
13239
- .word .LC50
13240
- .word .LANCHOR2+1148
13601
+.L2285:
1324113602 .word .LANCHOR2
13603
+ .word check_valid_page_count_table
13604
+ .word .LANCHOR3+141
13605
+ .word .LC50
1324213606 .word .LC51
13243
- .word -1431655765
13607
+ .word .LANCHOR2-1724
13608
+ .word .LANCHOR2+880
1324413609 .word .LC52
13610
+ .word -1431655765
1324513611 .word .LC53
1324613612 .fnend
1324713613 .size FtlCheckVpc, .-FtlCheckVpc
1324813614 .align 2
1324913615 .global FtlDumpSysBlock
13616
+ .syntax unified
13617
+ .arm
13618
+ .fpu softvfp
1325013619 .type FtlDumpSysBlock, %function
1325113620 FtlDumpSysBlock:
1325213621 .fnstart
1325313622 @ args = 0, pretend = 0, frame = 0
1325413623 @ frame_needed = 0, uses_anonymous_args = 0
13255
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
13256
- .save {r4, r5, r6, r7, r8, lr}
13257
- mov r7, r0, asl #10
13258
- ldr r4, .L2339
13259
- .pad #24
13260
- sub sp, sp, #24
13261
- ldr r8, .L2339+4
13262
- mov r6, r0
13624
+ push {r4, r5, r6, r7, r8, r9, lr}
13625
+ .save {r4, r5, r6, r7, r8, r9, lr}
13626
+ lsl r8, r0, #10
13627
+ ldr r4, .L2295
13628
+ .pad #28
13629
+ sub sp, sp, #28
13630
+ mov r7, r0
1326313631 mov r5, #0
13264
- ldr r3, [r4, #-1476]
13632
+ ldr r3, [r4, #-1472]
13633
+ sub r6, r4, #1264
13634
+ sub r9, r4, #1664
13635
+ sub r6, r6, #12
1326513636 str r3, [r4, #-1268]
13266
- ldr r3, [r4, #-1444]
13637
+ ldr r3, [r4, #-1440]
1326713638 str r3, [r4, #-1264]
13268
-.L2331:
13269
- ldrh r2, [r8]
13639
+.L2288:
13640
+ ldrh r2, [r9]
1327013641 sxth r3, r5
1327113642 cmp r3, r2
13272
- bge .L2338
13273
- mov r1, #1
13274
- ldr r0, .L2339+8
13275
- mov r2, r1
13276
- orr r3, r3, r7
13643
+ blt .L2290
13644
+ add sp, sp, #28
13645
+ @ sp needed
13646
+ pop {r4, r5, r6, r7, r8, r9, pc}
13647
+.L2290:
13648
+ mov r2, #1
13649
+ orr r3, r3, r8
13650
+ mov r1, r2
13651
+ mov r0, r6
1327713652 str r3, [r4, #-1272]
1327813653 bl FlashReadPages
13654
+ ldr r2, [r4, #-1268]
13655
+ mov r1, r7
1327913656 ldr r3, [r4, #-1264]
13280
- mov r1, r6
13281
- ldr r0, .L2339+12
13282
- ldr r2, [r3]
13283
- str r2, [sp]
13284
- ldr r2, [r3, #4]
13285
- str r2, [sp, #4]
13657
+ ldr r0, .L2295+4
13658
+ ldr r2, [r2]
13659
+ str r2, [sp, #16]
13660
+ ldr r2, [r3, #12]
13661
+ str r2, [sp, #12]
1328613662 ldr r2, [r3, #8]
1328713663 str r2, [sp, #8]
13288
- ldr r3, [r3, #12]
13289
- ldr r2, [r4, #-1276]
13290
- str r3, [sp, #12]
13291
- ldr r3, [r4, #-1268]
13664
+ ldr r2, [r3, #4]
13665
+ str r2, [sp, #4]
1329213666 ldr r3, [r3]
13293
- str r3, [sp, #16]
13667
+ ldr r2, [r4, #-1276]
13668
+ str r3, [sp]
1329413669 ldr r3, [r4, #-1272]
1329513670 bl printk
1329613671 ldr r3, [r4, #-1264]
1329713672 ldr r3, [r3]
1329813673 cmn r3, #1
13299
- beq .L2332
13300
- ldr r0, .L2339+16
13301
- mov r2, #4
13302
- ldr r1, [r4, #-1476]
13674
+ beq .L2289
1330313675 mov r3, #768
13676
+ mov r2, #4
13677
+ ldr r1, [r4, #-1472]
13678
+ ldr r0, .L2295+8
1330413679 bl rknand_print_hex
13305
-.L2332:
13680
+.L2289:
1330613681 add r5, r5, #1
13307
- b .L2331
13308
-.L2338:
13309
- add sp, sp, #24
13310
- @ sp needed
13311
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
13312
-.L2340:
13682
+ b .L2288
13683
+.L2296:
1331313684 .align 2
13314
-.L2339:
13685
+.L2295:
1331513686 .word .LANCHOR2
13316
- .word .LANCHOR2-1666
13317
- .word .LANCHOR2-1276
1331813687 .word .LC54
1331913688 .word .LC55
1332013689 .fnend
1332113690 .size FtlDumpSysBlock, .-FtlDumpSysBlock
1332213691 .align 2
1332313692 .global Ftlscanalldata
13693
+ .syntax unified
13694
+ .arm
13695
+ .fpu softvfp
1332413696 .type Ftlscanalldata, %function
1332513697 Ftlscanalldata:
1332613698 .fnstart
1332713699 @ args = 0, pretend = 0, frame = 8
1332813700 @ frame_needed = 0, uses_anonymous_args = 0
13329
- stmfd sp!, {r4, r5, r6, r7, lr}
13330
- .save {r4, r5, r6, r7, lr}
13331
- mov r1, #0
13332
- .pad #36
13333
- sub sp, sp, #36
13334
- ldr r0, .L2351
13335
- bl printk
13336
- ldr r6, .L2351+4
13701
+ push {r4, r5, r6, r7, r8, lr}
13702
+ .save {r4, r5, r6, r7, r8, lr}
1333713703 mov r5, #0
13704
+ ldr r6, .L2306
13705
+ .pad #32
13706
+ sub sp, sp, #32
13707
+ mov r1, #0
13708
+ ldr r8, .L2306+4
1333813709 mov r4, r6
13339
-.L2342:
13710
+ ldr r0, .L2306+8
13711
+ bl printk
13712
+.L2298:
1334013713 ldr r3, [r6, #-1284]
1334113714 cmp r5, r3
13342
- bcs .L2350
13343
- mov r0, r5
13344
- add r1, sp, #28
13715
+ bcc .L2304
13716
+ add sp, sp, #32
13717
+ @ sp needed
13718
+ pop {r4, r5, r6, r7, r8, pc}
13719
+.L2304:
1334513720 mov r2, #0
13721
+ add r1, sp, #28
13722
+ mov r0, r5
1334613723 bl log2phys
1334713724 ubfx r3, r5, #0, #11
1334813725 cmp r3, #0
13349
- bne .L2343
13350
- ldr r0, .L2351+8
13351
- mov r1, r5
13726
+ bne .L2299
1335213727 ldr r2, [sp, #28]
13728
+ mov r1, r5
13729
+ mov r0, r8
1335313730 bl printk
13354
-.L2343:
13731
+.L2299:
1335513732 ldr r3, [sp, #28]
1335613733 cmn r3, #1
13357
- beq .L2345
13734
+ beq .L2301
1335813735 str r3, [r4, #-1272]
1335913736 mov r2, #0
13360
- ldr r3, [r4, #-1476]
13737
+ ldr r3, [r4, #-1472]
1336113738 mov r1, #1
13362
- ldr r7, [r4, #-1444]
13363
- ldr r0, .L2351+12
13739
+ ldr r7, [r4, #-1440]
13740
+ ldr r0, .L2306+12
1336413741 str r3, [r4, #-1268]
1336513742 str r5, [r4, #-1260]
1336613743 str r7, [r4, #-1264]
....@@ -13369,229 +13746,227 @@
1336913746 ldr r3, [r4, #-1276]
1337013747 cmn r3, #1
1337113748 cmpne r3, #256
13372
- beq .L2346
13749
+ beq .L2302
1337313750 ldr r3, [r7, #8]
13374
- cmp r3, r5
13375
- beq .L2345
13376
-.L2346:
13377
- ldr r3, [r4, #-1264]
13751
+ cmp r5, r3
13752
+ beq .L2301
13753
+.L2302:
1337813754 ldr r2, [r4, #-1268]
13379
- ldr r0, .L2351+16
13380
- ldr r1, [r3, #4]
13381
- str r1, [sp]
13382
- ldr r1, [r3, #8]
13383
- str r1, [sp, #4]
13384
- ldr r1, [r3, #12]
13385
- str r1, [sp, #8]
13386
- ldr r1, [r2]
13387
- str r1, [sp, #12]
13755
+ ldr r3, [r4, #-1264]
13756
+ ldr r0, .L2306+16
13757
+ ldr r1, [r2, #4]
13758
+ str r1, [sp, #16]
1338813759 mov r1, r5
13389
- ldr r2, [r2, #4]
13390
- str r2, [sp, #16]
13391
- ldr r2, [r4, #-1272]
13760
+ ldr r2, [r2]
13761
+ str r2, [sp, #12]
13762
+ ldr r2, [r3, #12]
13763
+ str r2, [sp, #8]
13764
+ ldr r2, [r3, #8]
13765
+ str r2, [sp, #4]
13766
+ ldr r2, [r3, #4]
13767
+ str r2, [sp]
1339213768 ldr r3, [r3]
13769
+ ldr r2, [r4, #-1272]
1339313770 bl printk
13394
-.L2345:
13771
+.L2301:
1339513772 add r5, r5, #1
13396
- b .L2342
13397
-.L2350:
13398
- add sp, sp, #36
13399
- @ sp needed
13400
- ldmfd sp!, {r4, r5, r6, r7, pc}
13401
-.L2352:
13773
+ b .L2298
13774
+.L2307:
1340213775 .align 2
13403
-.L2351:
13404
- .word .LC56
13776
+.L2306:
1340513777 .word .LANCHOR2
1340613778 .word .LC57
13779
+ .word .LC56
1340713780 .word .LANCHOR2-1276
1340813781 .word .LC58
1340913782 .fnend
1341013783 .size Ftlscanalldata, .-Ftlscanalldata
1341113784 .align 2
1341213785 .global dump_map_info
13786
+ .syntax unified
13787
+ .arm
13788
+ .fpu softvfp
1341313789 .type dump_map_info, %function
1341413790 dump_map_info:
1341513791 .fnstart
13416
- @ args = 0, pretend = 0, frame = 24
13792
+ @ args = 0, pretend = 0, frame = 16
1341713793 @ frame_needed = 0, uses_anonymous_args = 0
13418
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13794
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1341913795 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13420
- .pad #52
13421
- sub sp, sp, #52
13422
- ldr r5, .L2371
13423
- ldr fp, .L2371+4
13424
- ldrh r6, [r5]
13425
- add r5, r5, #1728
13426
- mov r8, r5
13427
-.L2354:
13428
- ldrh r3, [fp]
13796
+ .pad #44
13797
+ sub sp, sp, #44
13798
+ ldr r8, .L2323
13799
+ ldrh r6, [r8, #-12]
13800
+ add fp, r8, #6
13801
+.L2309:
13802
+ ldrh r3, [r8, #-10]
13803
+ ldr r1, .L2323+4
1342913804 cmp r3, r6
13430
- bls .L2367
13431
- ldr r1, .L2371+8
13805
+ mov r4, r1
13806
+ bhi .L2316
13807
+ sub r8, r1, #1264
1343213808 mov r7, #0
13433
- ldr r2, [r5, #-1504]
13434
- mov r4, r7
13435
- ldr r3, [r5, #-1464]
13436
- add r1, r1, #28
13437
- ldr r10, [r5, #-1436]
13438
- ldrh ip, [r1, #-28]
13439
- ldrh r9, [r1, #52]
13440
- str r1, [sp, #28]
13441
-.L2363:
13442
- uxth r1, r7
13443
- cmp r1, ip
13444
- bcs .L2369
13445
- str r3, [sp, #44]
13809
+ sub r8, r8, #12
13810
+.L2317:
13811
+ ldr r3, .L2323+8
13812
+ sxth r5, r7
13813
+ ldrh r3, [r3]
13814
+ cmp r5, r3
13815
+ bge .L2320
13816
+ lsl r5, r5, #1
13817
+ mov r6, #0
13818
+ ldr r9, .L2323+12
13819
+ b .L2321
13820
+.L2311:
1344613821 mov r1, r6
13447
- ldr r3, [sp, #28]
13448
- str r2, [sp, #40]
13449
- str ip, [sp, #36]
13450
- ldrb r0, [r3, r7] @ zero_extendqisi2
13822
+ ldrb r0, [fp, r7] @ zero_extendqisi2
13823
+ str r3, [sp, #36]
13824
+ str r2, [sp, #32]
1345113825 bl V2P_block
13452
- str r0, [sp, #32]
13826
+ str r0, [sp, #28]
1345313827 bl FtlBbmIsBadBlock
1345413828 cmp r0, #0
13455
- ldr r1, [sp, #32]
13456
- ldr ip, [sp, #36]
13457
- ldr r2, [sp, #40]
13458
- ldr r3, [sp, #44]
13459
- bne .L2355
13460
- mov r0, #36
13461
- mov r1, r1, asl #10
13462
- mla r0, r0, r4, r2
13829
+ ldr r2, [sp, #32]
13830
+ ldr r3, [sp, #36]
13831
+ bne .L2310
13832
+ mov r1, #36
13833
+ mla r0, r1, r5, r9
13834
+ ldr r1, [sp, #28]
13835
+ lsl r1, r1, #10
1346313836 stmib r0, {r1, r3}
13464
- mul r1, r9, r4
13465
- add r4, r4, #1
13466
- uxth r4, r4
13467
- add lr, r1, #3
13837
+ ldr r1, [sp, #24]
13838
+ mul r1, r1, r5
13839
+ add r5, r5, #1
13840
+ uxth r5, r5
13841
+ add ip, r1, #3
1346813842 cmp r1, #0
13469
- movlt r1, lr
13843
+ movlt r1, ip
1347013844 bic r1, r1, #3
1347113845 add r1, r10, r1
1347213846 str r1, [r0, #12]
13473
-.L2355:
13847
+.L2310:
1347413848 add r7, r7, #1
13475
- b .L2363
13476
-.L2369:
13477
- cmp r4, #0
13478
- beq .L2358
13479
- ldr r0, [r8, #-1504]
13480
- mov r1, r4
13481
- mov r2, #1
13482
- mov r7, #0
13483
- bl FlashReadPages
13484
- mov r9, #36
13485
-.L2359:
13486
- uxth r3, r7
13487
- cmp r3, r4
13488
- bcs .L2358
13489
- ldr r3, [r8, #-1504]
13490
- ldr r0, .L2371+12
13491
- mla r3, r9, r7, r3
13492
- add r7, r7, #1
13493
- ldmib r3, {r2, r3, ip}
13494
- ldr r1, [ip, #4]
13495
- str r1, [sp]
13496
- ldr r1, [ip, #8]
13497
- str r1, [sp, #4]
13498
- ldr r1, [ip, #12]
13499
- str r1, [sp, #8]
13500
- ldr r1, [r3]
13501
- str r1, [sp, #12]
13502
- ubfx r1, r2, #10, #16
13503
- ldr r3, [r3, #4]
13504
- str r3, [sp, #16]
13505
- ldr r3, [ip]
13506
- bl printk
13507
- b .L2359
13508
-.L2358:
13849
+.L2318:
13850
+ uxth r1, r7
13851
+ cmp r2, r1
13852
+ bhi .L2311
13853
+ cmp r5, #0
13854
+ bne .L2312
13855
+.L2315:
1350913856 add r6, r6, #1
1351013857 uxth r6, r6
13511
- b .L2354
13512
-.L2367:
13513
- ldr r4, .L2371+16
13858
+ b .L2309
13859
+.L2312:
13860
+ ldr r10, .L2323+16
13861
+ mov r0, r9
1351413862 mov r7, #0
13515
- ldr r8, .L2371+20
13516
-.L2362:
13517
- ldrh r3, [r8]
13518
- sxth r6, r7
13519
- ldr r5, .L2371+16
13520
- cmp r6, r3
13521
- bge .L2365
13522
- ldr r9, .L2371+24
13523
- mov r6, r6, asl #1
13524
- mov r5, #0
13525
-.L2366:
13526
- ldrh r2, [r9]
13527
- sxth r3, r5
13528
- add r5, r5, #1
13529
- cmp r3, r2
13530
- bge .L2370
13531
- ldr r2, [r4, #-1404]
13532
- mov r1, #1
13533
- ldr r0, .L2371+28
13534
- ldrh r2, [r2, r6]
13535
- orr r3, r3, r2, asl #10
13536
- mov r2, r1
13863
+ mov r9, #36
13864
+ mov r2, #1
13865
+ mov r1, r5
13866
+ bl FlashReadPages
13867
+.L2313:
13868
+ uxth r3, r7
13869
+ cmp r5, r3
13870
+ bls .L2315
13871
+ ldr r3, [r4, #-1500]
13872
+ mla r3, r9, r7, r3
13873
+ add r7, r7, #1
13874
+ ldr r1, [r3, #12]
13875
+ ldr r2, [r3, #4]
13876
+ ldr r3, [r3, #8]
13877
+ ldr r0, [r3, #4]
13878
+ str r0, [sp, #16]
13879
+ mov r0, r10
13880
+ ldr r3, [r3]
13881
+ str r3, [sp, #12]
13882
+ ldr r3, [r1, #12]
13883
+ str r3, [sp, #8]
13884
+ ldr r3, [r1, #8]
13885
+ str r3, [sp, #4]
13886
+ ldr r3, [r1, #4]
13887
+ str r3, [sp]
13888
+ ldr r3, [r1]
13889
+ ubfx r1, r2, #10, #16
13890
+ bl printk
13891
+ b .L2313
13892
+.L2316:
13893
+ sub r0, r1, #1728
13894
+ ldr r9, [r1, #-1500]
13895
+ ldr r3, [r1, #-1460]
13896
+ mov r7, #0
13897
+ ldr r10, [r1, #-1432]
13898
+ mov r5, r7
13899
+ ldrh r1, [r0, #74]
13900
+ ldrh r2, [r0, #-4]
13901
+ str r1, [sp, #24]
13902
+ b .L2318
13903
+.L2319:
13904
+ ldr r2, [r4, #-1400]
13905
+ mov r0, r8
13906
+ ldrh r2, [r2, r5]
13907
+ orr r3, r3, r2, lsl #10
13908
+ mov r2, #1
13909
+ mov r1, r2
1353713910 str r3, [r4, #-1272]
1353813911 bl FlashReadPages
13539
- ldr r3, [r4, #-1264]
13540
- ldr r1, [r4, #-1404]
1354113912 ldr r2, [r4, #-1268]
13542
- ldr r0, [r3]
13543
- ldrh r1, [r1, r6]
13544
- str r0, [sp]
13545
- ldr r0, [r3, #4]
13546
- str r0, [sp, #4]
13547
- ldr r0, [r3, #8]
13548
- str r0, [sp, #8]
13549
- ldr r3, [r3, #12]
13550
- ldr r0, .L2371+32
13551
- str r3, [sp, #12]
13552
- ldr r3, [r2]
13553
- str r3, [sp, #16]
13554
- ldr r3, [r2, #4]
13555
- str r3, [sp, #20]
13556
- ldr r2, [r4, #-1276]
13913
+ ldr r1, [r4, #-1400]
13914
+ ldr r3, [r4, #-1264]
13915
+ ldr r0, [r2, #4]
13916
+ ldrh r1, [r1, r5]
13917
+ str r0, [sp, #20]
13918
+ ldr r2, [r2]
13919
+ ldr r0, .L2323+20
13920
+ str r2, [sp, #16]
13921
+ ldr r2, [r3, #12]
13922
+ str r2, [sp, #12]
13923
+ ldr r2, [r3, #8]
13924
+ str r2, [sp, #8]
13925
+ ldr r2, [r3, #4]
13926
+ str r2, [sp, #4]
13927
+ ldr r3, [r3]
13928
+ str r3, [sp]
1355713929 ldr r3, [r4, #-1272]
13930
+ ldr r2, [r4, #-1276]
1355813931 bl printk
13559
- b .L2366
13560
-.L2370:
13932
+.L2321:
13933
+ ldrh r2, [r9]
13934
+ sxth r3, r6
13935
+ add r6, r6, #1
13936
+ cmp r3, r2
13937
+ blt .L2319
1356113938 add r7, r7, #1
13562
- b .L2362
13563
-.L2365:
13564
- sub r4, r5, #1632
13565
- ldr r1, [r5, #-1404]
13566
- ldr r3, [r5, #-1640]
13939
+ b .L2317
13940
+.L2320:
13941
+ ldr r5, .L2323+24
1356713942 mov r2, #2
13568
- ldr r0, .L2371+36
13943
+ ldr r3, [r4, #-1636]
13944
+ ldr r1, [r4, #-1400]
13945
+ ldr r0, .L2323+28
1356913946 bl rknand_print_hex
13570
- ldr r1, [r5, #-1376]
13571
- ldrh r3, [r4]
13947
+ ldrh r3, [r5, #-12]
1357213948 mov r2, #4
13573
- ldr r0, .L2371+40
13949
+ ldr r1, [r4, #-1376]
13950
+ ldr r0, .L2323+32
1357413951 bl rknand_print_hex
13575
- ldr r0, .L2371+44
13576
- ldr r1, [r5, #-1372]
13952
+ ldrh r3, [r5, #-12]
1357713953 mov r2, #4
13578
- ldrh r3, [r4]
13579
- add sp, sp, #52
13954
+ ldr r1, [r4, #-1372]
13955
+ ldr r0, .L2323+36
13956
+ add sp, sp, #44
1358013957 @ sp needed
13581
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13958
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1358213959 b rknand_print_hex
13583
-.L2372:
13960
+.L2324:
1358413961 .align 2
13585
-.L2371:
13586
- .word .LANCHOR2-1728
13587
- .word .LANCHOR2-1726
13588
- .word .LANCHOR2-1736
13589
- .word .LC59
13962
+.L2323:
13963
+ .word .LANCHOR2-1712
1359013964 .word .LANCHOR2
1359113965 .word .LANCHOR2+1144
13592
- .word .LANCHOR2-1666
13593
- .word .LANCHOR2-1276
13966
+ .word .LANCHOR2-1664
13967
+ .word .LC59
1359413968 .word .LC60
13969
+ .word .LANCHOR2-1616
1359513970 .word .LC61
1359613971 .word .LC62
1359713972 .word .LC63
....@@ -13599,517 +13974,538 @@
1359913974 .size dump_map_info, .-dump_map_info
1360013975 .align 2
1360113976 .global FtlMapTblRecovery
13977
+ .syntax unified
13978
+ .arm
13979
+ .fpu softvfp
1360213980 .type FtlMapTblRecovery, %function
1360313981 FtlMapTblRecovery:
1360413982 .fnstart
13605
- @ args = 0, pretend = 0, frame = 24
13983
+ @ args = 0, pretend = 0, frame = 32
1360613984 @ frame_needed = 0, uses_anonymous_args = 0
13607
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13985
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1360813986 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13609
- .pad #28
13610
- sub sp, sp, #28
13611
- ldr r3, [r0, #16]
13987
+ .pad #36
13988
+ sub sp, sp, #36
13989
+ ldr r3, [r0, #24]
1361213990 mov r4, r0
13613
- ldrh r9, [r0, #6]
1361413991 mov r1, #0
13615
- ldr r7, [r0, #24]
13992
+ mov r6, #0
13993
+ ldrh fp, [r0, #6]
13994
+ str r3, [sp, #4]
13995
+ ldr r3, [r0, #16]
13996
+ ldr r5, .L2367
13997
+ ldr r10, [r0, #12]
13998
+ lsl r2, fp, #2
1361613999 str r3, [sp, #12]
1361714000 ldrh r3, [r0, #8]
13618
- mov r2, r9, asl #2
13619
- ldr r8, [r0, #12]
13620
- mov r0, r7
13621
- ldr r5, .L2416
14001
+ mov r8, r5
14002
+ ldr r0, [sp, #4]
1362214003 str r3, [sp, #8]
1362314004 bl ftl_memset
13624
- mov r1, #0
13625
- str r1, [r4, #32]
13626
- ldr r3, [r5, #-1476]
13627
- mov r10, r5
13628
- ldr r6, [r5, #-1444]
13629
- str r1, [r4, #28]
14005
+ ldr r3, [r5, #-1472]
14006
+ ldr r7, [r5, #-1440]
14007
+ str r6, [r4, #32]
1363014008 str r3, [r5, #-1268]
1363114009 mvn r3, #0
13632
- str r6, [r5, #-1264]
14010
+ str r7, [r5, #-1264]
1363314011 strh r3, [r4] @ movhi
1363414012 strh r3, [r4, #2] @ movhi
1363514013 mov r3, #1
1363614014 str r3, [r4, #36]
13637
- str r1, [sp, #4]
13638
-.L2374:
13639
- ldrh r2, [sp, #4]
13640
- ldr r3, [sp, #8]
13641
- sxth fp, r2
13642
- cmp fp, r3
13643
- bge .L2392
13644
- ldr r3, [sp, #8]
13645
- sub r1, r3, #1
13646
- cmp fp, r1
13647
- mov r1, fp, asl #1
13648
- bne .L2375
13649
- ldrh r0, [r8, r1]
13650
- add r10, r8, r1
13651
- mov r1, #1
13652
- str r2, [sp, #4]
13653
- bl FtlGetLastWrittenPage
13654
- mov r8, #0
13655
- ldr r2, [sp, #4]
13656
- add r3, r0, #1
13657
- strh r3, [r4, #2] @ movhi
13658
- sxth r0, r0
13659
- ldr r3, [sp, #12]
13660
- strh r2, [r4] @ movhi
13661
- ldr r3, [r3, fp, asl #2]
13662
- ldr fp, .L2416
13663
- str r3, [r4, #28]
13664
- add r3, r0, #1
13665
- str r3, [sp, #4]
13666
-.L2376:
13667
- ldr r2, [sp, #4]
13668
- sxth r3, r8
14015
+ sub r3, r5, #1664
14016
+ add r3, r3, #388
14017
+ str r6, [r4, #28]
14018
+ str r3, [sp, #20]
14019
+.L2326:
14020
+ ldr r2, [sp, #8]
14021
+ sxth r3, r6
1366914022 cmp r3, r2
13670
- bge .L2392
13671
- ldrh r2, [r10]
14023
+ bge .L2345
14024
+ ldr r2, [sp, #8]
14025
+ sub r2, r2, #1
14026
+ cmp r3, r2
14027
+ lsl r2, r3, #1
14028
+ bne .L2327
14029
+ ldrh r0, [r10, r2]
1367214030 mov r1, #1
13673
- ldr r0, .L2416+4
13674
- orr r3, r3, r2, asl #10
13675
- mov r2, r1
13676
- str r3, [r5, #-1272]
13677
- bl FlashReadPages
13678
- ldr r3, .L2416+8
13679
- ldrb r3, [r3] @ zero_extendqisi2
13680
- cmp r3, #0
13681
- beq .L2377
13682
- ldr r3, [fp, #-1264]
13683
- ldr r3, [r3, #12]
13684
- cmp r3, #0
13685
- beq .L2377
13686
- ldr r2, .L2416+12
13687
- ldr r0, [fp, #-1268]
14031
+ str r3, [sp, #16]
14032
+ add r3, r10, r2
1368814033 str r3, [sp, #8]
13689
- ldrh r1, [r2]
13690
- bl js_hash
13691
- ldr r3, [sp, #8]
13692
- cmp r3, r0
13693
- mvnne r3, #0
13694
- strne r3, [fp, #-1276]
13695
-.L2377:
13696
- ldr r3, [fp, #-1276]
13697
- cmn r3, #1
13698
- beq .L2378
13699
- ldrh r3, [r6, #8]
13700
- cmp r3, r9
13701
- bcs .L2378
13702
- ldrh r2, [r4, #4]
13703
- ldrh r1, [r6]
13704
- cmp r1, r2
13705
- ldreq r2, [fp, #-1272]
13706
- streq r2, [r7, r3, asl #2]
13707
-.L2378:
13708
- add r8, r8, #1
13709
- b .L2376
13710
-.L2392:
14034
+ mov r8, #0
14035
+ bl FtlGetLastWrittenPage
14036
+ ldr r2, [sp, #12]
14037
+ sxth r9, r0
14038
+ ldr r3, [sp, #16]
14039
+ add r0, r0, #1
14040
+ strh r6, [r4] @ movhi
14041
+ ldr r10, .L2367+4
14042
+ ldr r6, .L2367+8
14043
+ strh r0, [r4, #2] @ movhi
14044
+ ldr r3, [r2, r3, lsl #2]
14045
+ str r3, [r4, #28]
14046
+.L2328:
14047
+ sxth r2, r8
14048
+ add r1, r9, #1
14049
+ cmp r2, r1
14050
+ blt .L2331
14051
+.L2345:
1371114052 mov r0, r4
1371214053 bl ftl_free_no_use_map_blk
13713
- ldr r3, .L2416+16
14054
+ ldr r3, .L2367+12
1371414055 ldrh r2, [r4, #2]
13715
- ldrh r3, [r3, #-2]
14056
+ ldrh r3, [r3]
1371614057 cmp r2, r3
13717
- bne .L2381
14058
+ bne .L2333
1371814059 mov r0, r4
1371914060 bl ftl_map_blk_alloc_new_blk
13720
- b .L2381
13721
-.L2375:
13722
- ldr r2, [r5, #-1476]
13723
- add r3, r8, r1
13724
- str r3, [sp, #16]
13725
- ldr r3, .L2416+20
13726
- str r2, [r5, #-1268]
13727
- ldrh r1, [r8, r1]
13728
- ldrh r2, [r3]
13729
- ldr r0, .L2416+4
13730
- sub r2, r2, #1
13731
- orr r2, r2, r1, asl #10
13732
- mov r1, #1
13733
- str r2, [r5, #-1272]
13734
- mov r2, r1
13735
- bl FlashReadPages
13736
- ldr r2, [r5, #-1276]
13737
- cmn r2, #1
13738
- beq .L2394
13739
- ldrh r1, [r6]
13740
- ldrh r2, [r4, #4]
13741
- cmp r1, r2
13742
- bne .L2394
13743
- ldrh r1, [r6, #8]
13744
- movw r2, #64245
13745
- cmp r1, r2
13746
- bne .L2394
14061
+.L2333:
14062
+ mov r0, r4
14063
+ bl ftl_map_blk_gc
14064
+ mov r0, r4
14065
+ bl ftl_map_blk_gc
1374714066 mov r0, #0
13748
- mov fp, #8
13749
- mov lr, #4
13750
-.L2383:
13751
- ldr r3, .L2416+20
13752
- uxth r2, r0
13753
- sxth r1, r2
13754
- ldrh ip, [r3]
13755
- sub ip, ip, #1
13756
- cmp r1, ip
13757
- bge .L2386
13758
- ldr ip, [r10, #-1476]
13759
- add r0, r0, #1
13760
- ldr r1, [ip, r1, asl #3]
13761
- uxth r1, r1
13762
- cmp r1, r9
13763
- smlabbcc r2, r2, fp, lr
13764
- ldrcc r2, [ip, r2]
13765
- strcc r2, [r7, r1, asl #2]
13766
- b .L2383
13767
-.L2394:
13768
- mov fp, #0
13769
-.L2414:
13770
- ldr r3, .L2416+20
13771
- sxth r2, fp
14067
+ add sp, sp, #36
14068
+ @ sp needed
14069
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14070
+.L2331:
14071
+ ldr r3, [sp, #8]
14072
+ mov r0, r6
1377214073 ldrh r1, [r3]
13773
- cmp r2, r1
13774
- bge .L2386
13775
- ldr r3, [sp, #16]
13776
- ldr r0, .L2416+4
13777
- ldrh r1, [r3]
13778
- orr r2, r2, r1, asl #10
13779
- mov r1, #1
13780
- str r2, [r10, #-1272]
13781
- mov r2, r1
14074
+ orr r2, r2, r1, lsl #10
14075
+ str r2, [r5, #-1272]
14076
+ mov r2, #1
14077
+ mov r1, r2
1378214078 bl FlashReadPages
13783
- ldr r2, .L2416+8
13784
- ldrb r2, [r2] @ zero_extendqisi2
14079
+ ldrb r2, [r10, #36] @ zero_extendqisi2
1378514080 cmp r2, #0
13786
- beq .L2387
13787
- ldr r2, [r10, #-1264]
14081
+ beq .L2329
14082
+ ldr r2, [r5, #-1264]
1378814083 ldr r2, [r2, #12]
1378914084 cmp r2, #0
13790
- beq .L2387
13791
- ldr r1, .L2416+12
13792
- ldr r0, [r10, #-1268]
13793
- str r2, [sp, #20]
14085
+ str r2, [sp, #12]
14086
+ beq .L2329
14087
+ sub r1, r6, #380
14088
+ ldr r0, [r5, #-1268]
1379414089 ldrh r1, [r1]
1379514090 bl js_hash
13796
- ldr r2, [sp, #20]
14091
+ ldr r2, [sp, #12]
1379714092 cmp r2, r0
1379814093 mvnne r2, #0
13799
- strne r2, [r10, #-1276]
13800
-.L2387:
13801
- ldr r2, [r10, #-1276]
14094
+ strne r2, [r5, #-1276]
14095
+.L2329:
14096
+ ldr r1, .L2367
14097
+ ldr r2, [r1, #-1276]
1380214098 cmn r2, #1
13803
- beq .L2388
13804
- ldrh r2, [r6, #8]
13805
- cmp r2, r9
13806
- bcs .L2388
13807
- ldrh r1, [r4, #4]
13808
- ldrh r0, [r6]
13809
- cmp r0, r1
13810
- ldreq r1, [r10, #-1272]
13811
- streq r1, [r7, r2, asl #2]
13812
-.L2388:
13813
- add fp, fp, #1
13814
- b .L2414
13815
-.L2386:
13816
- ldr r3, [sp, #4]
13817
- add r3, r3, #1
13818
- str r3, [sp, #4]
13819
- b .L2374
13820
-.L2381:
13821
- mov r0, r4
13822
- bl ftl_map_blk_gc
13823
- mov r0, r4
13824
- bl ftl_map_blk_gc
13825
- mov r0, #0
13826
- add sp, sp, #28
13827
- @ sp needed
13828
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13829
-.L2417:
14099
+ beq .L2330
14100
+ ldrh r2, [r7, #8]
14101
+ cmp fp, r2
14102
+ bls .L2330
14103
+ ldrh ip, [r7]
14104
+ ldrh r0, [r4, #4]
14105
+ cmp ip, r0
14106
+ ldreq r1, [r1, #-1272]
14107
+ ldreq r3, [sp, #4]
14108
+ streq r1, [r3, r2, lsl #2]
14109
+.L2330:
14110
+ add r8, r8, #1
14111
+ b .L2328
14112
+.L2327:
14113
+ ldr r3, [r5, #-1472]
14114
+ ldr r0, [sp, #20]
14115
+ str r3, [r5, #-1268]
14116
+ add r3, r10, r2
14117
+ str r3, [sp, #16]
14118
+ ldr r3, .L2367+12
14119
+ ldrh r2, [r10, r2]
14120
+ ldrh r3, [r3]
14121
+ sub r3, r3, #1
14122
+ orr r3, r3, r2, lsl #10
14123
+ mov r2, #1
14124
+ mov r1, r2
14125
+ str r3, [r5, #-1272]
14126
+ bl FlashReadPages
14127
+ ldr r3, [r5, #-1276]
14128
+ cmn r3, #1
14129
+ beq .L2347
14130
+ ldrh r2, [r7]
14131
+ ldrh r3, [r4, #4]
14132
+ cmp r2, r3
14133
+ bne .L2347
14134
+ ldrh r2, [r7, #8]
14135
+ movw r3, #64245
14136
+ cmp r2, r3
14137
+ beq .L2335
14138
+.L2347:
14139
+ mov r9, #0
14140
+.L2336:
14141
+ ldr r2, .L2367+12
14142
+ sxth r3, r9
14143
+ ldrh r2, [r2]
14144
+ cmp r3, r2
14145
+ bge .L2343
14146
+ ldr r2, [sp, #16]
14147
+ ldrh r2, [r2]
14148
+ orr r3, r3, r2, lsl #10
14149
+ mov r2, #1
14150
+ mov r1, r2
14151
+ str r3, [r8, #-1272]
14152
+ ldr r3, .L2367+8
14153
+ mov r0, r3
14154
+ str r3, [sp, #28]
14155
+ bl FlashReadPages
14156
+ ldr r2, .L2367+4
14157
+ ldrb r2, [r2, #36] @ zero_extendqisi2
14158
+ cmp r2, #0
14159
+ beq .L2340
14160
+ ldr r2, [r8, #-1264]
14161
+ ldr r2, [r2, #12]
14162
+ cmp r2, #0
14163
+ str r2, [sp, #24]
14164
+ beq .L2340
14165
+ ldr r3, [sp, #28]
14166
+ ldr r0, [r8, #-1268]
14167
+ sub r3, r3, #380
14168
+ ldrh r1, [r3]
14169
+ bl js_hash
14170
+ ldr r2, [sp, #24]
14171
+ cmp r2, r0
14172
+ mvnne r3, #0
14173
+ strne r3, [r8, #-1276]
14174
+.L2340:
14175
+ ldr r3, [r8, #-1276]
14176
+ cmn r3, #1
14177
+ beq .L2341
14178
+ ldrh r3, [r7, #8]
14179
+ cmp fp, r3
14180
+ bls .L2341
14181
+ ldrh r1, [r7]
14182
+ ldrh r2, [r4, #4]
14183
+ cmp r1, r2
14184
+ ldreq r2, [r8, #-1272]
14185
+ ldreq r1, [sp, #4]
14186
+ streq r2, [r1, r3, lsl #2]
14187
+.L2341:
14188
+ add r9, r9, #1
14189
+ b .L2336
14190
+.L2335:
14191
+ mov r1, #0
14192
+ mov ip, #4
14193
+.L2337:
14194
+ ldr r2, .L2367+12
14195
+ sxth r3, r1
14196
+ ldrh r2, [r2]
14197
+ sub r2, r2, #1
14198
+ cmp r3, r2
14199
+ blt .L2339
14200
+.L2343:
14201
+ add r6, r6, #1
14202
+ b .L2326
14203
+.L2339:
14204
+ ldr r0, [r8, #-1472]
14205
+ add r1, r1, #1
14206
+ ldr r2, [r0, r3, lsl #3]
14207
+ uxth lr, r2
14208
+ cmp fp, lr
14209
+ addhi r3, ip, r3, lsl #3
14210
+ movhi r2, lr
14211
+ ldrhi r3, [r0, r3]
14212
+ ldrhi r0, [sp, #4]
14213
+ strhi r3, [r0, r2, lsl #2]
14214
+ b .L2337
14215
+.L2368:
1383014216 .align 2
13831
-.L2416:
14217
+.L2367:
1383214218 .word .LANCHOR2
13833
- .word .LANCHOR2-1276
1383414219 .word .LANCHOR0
13835
- .word .LANCHOR2-1658
14220
+ .word .LANCHOR2-1276
1383614221 .word .LANCHOR2-1664
13837
- .word .LANCHOR2-1666
1383814222 .fnend
1383914223 .size FtlMapTblRecovery, .-FtlMapTblRecovery
1384014224 .align 2
1384114225 .global FtlLoadVonderInfo
14226
+ .syntax unified
14227
+ .arm
14228
+ .fpu softvfp
1384214229 .type FtlLoadVonderInfo, %function
1384314230 FtlLoadVonderInfo:
1384414231 .fnstart
1384514232 @ args = 0, pretend = 0, frame = 0
1384614233 @ frame_needed = 0, uses_anonymous_args = 0
13847
- stmfd sp!, {r3, lr}
13848
- .save {r3, lr}
13849
- ldr r3, .L2420
13850
- sub r2, r3, #1648
13851
- add r0, r3, #1072
13852
- add r0, r0, #4
13853
- ldrh r2, [r2]
13854
- strh r2, [r0, #10] @ movhi
13855
- ldr r2, .L2420+4
13856
- strh r2, [r0, #4] @ movhi
13857
- sub r2, r3, #1280
13858
- ldrh r2, [r2, #-8]
13859
- strh r2, [r0, #8] @ movhi
14234
+ ldr r3, .L2371
14235
+ push {r4, lr}
14236
+ .save {r4, lr}
1386014237 sub r2, r3, #1632
13861
- ldrh r2, [r2, #-14]
14238
+ add r0, r3, #1072
14239
+ ldrh r1, [r2, #-12]
14240
+ add r0, r0, #4
14241
+ ldrh r2, [r2, #-10]
14242
+ strh r1, [r0, #10] @ movhi
1386214243 strh r2, [r0, #6] @ movhi
1386314244 ldr r2, [r3, #-1392]
14245
+ ldr r1, .L2371+4
1386414246 str r2, [r3, #1088]
1386514247 ldr r2, [r3, #-1384]
14248
+ strh r1, [r0, #4] @ movhi
14249
+ sub r1, r3, #1280
14250
+ ldrh r1, [r1, #-8]
1386614251 str r2, [r3, #1092]
1386714252 ldr r2, [r3, #-1388]
14253
+ strh r1, [r0, #8] @ movhi
1386814254 str r2, [r3, #1096]
1386914255 ldr r2, [r3, #-1380]
1387014256 str r2, [r3, #1100]
1387114257 bl FtlMapTblRecovery
1387214258 mov r0, #0
13873
- ldmfd sp!, {r3, pc}
13874
-.L2421:
14259
+ pop {r4, pc}
14260
+.L2372:
1387514261 .align 2
13876
-.L2420:
14262
+.L2371:
1387714263 .word .LANCHOR2
1387814264 .word -3962
1387914265 .fnend
1388014266 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo
1388114267 .align 2
1388214268 .global FtlL2PDataInit
14269
+ .syntax unified
14270
+ .arm
14271
+ .fpu softvfp
1388314272 .type FtlL2PDataInit, %function
1388414273 FtlL2PDataInit:
1388514274 .fnstart
1388614275 @ args = 0, pretend = 0, frame = 0
1388714276 @ frame_needed = 0, uses_anonymous_args = 0
13888
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
14277
+ push {r4, r5, r6, r7, r8, lr}
1388914278 .save {r4, r5, r6, r7, r8, lr}
1389014279 mov r1, #0
13891
- ldr r4, .L2427
13892
- mvn r6, #0
13893
- ldr r2, [r4, #-1640]
13894
- ldr r0, [r4, #-1400]
13895
- mov r2, r2, asl #1
14280
+ ldr r4, .L2377
14281
+ ldr r2, [r4, #-1636]
14282
+ sub r6, r4, #1648
14283
+ sub r5, r4, #1616
14284
+ ldr r0, [r4, #-1396]
14285
+ lsl r2, r2, #1
1389614286 bl ftl_memset
13897
- sub r3, r4, #1648
13898
- sub r2, r4, #1616
14287
+ ldrh r3, [r6, #-8]
1389914288 mov r1, #255
13900
- ldrh r3, [r3, #-10]
13901
- ldrh r2, [r2, #-14]
14289
+ ldrh r2, [r5, #-10]
1390214290 ldr r0, [r4, #-1360]
1390314291 mul r2, r2, r3
1390414292 bl ftl_memset
13905
- ldr r0, .L2427+4
13906
- mov r1, #0
13907
- mov lr, #12
13908
- sub r7, r0, #28
13909
- mov r5, r1
13910
-.L2423:
13911
- ldrh r2, [r0]
13912
- add ip, r1, #1
13913
- uxth r1, r1
13914
- ldr r3, .L2427
13915
- cmp r2, r1
13916
- bls .L2426
13917
- mul r8, lr, r1
13918
- ldr r3, [r4, #-1364]
13919
- add r2, r3, r8
13920
- str r5, [r2, #4]
13921
- strh r6, [r3, r8] @ movhi
13922
- ldrh r2, [r7]
13923
- ldr r3, [r4, #-1364]
13924
- mul r2, r1, r2
13925
- add r3, r3, r8
13926
- ldr r1, [r4, #-1360]
13927
- bic r2, r2, #3
13928
- add r2, r1, r2
13929
- mov r1, ip
13930
- str r2, [r3, #8]
13931
- b .L2423
13932
-.L2426:
13933
- ldr r2, .L2427+8
13934
- movw r0, #1028
13935
- mvn r1, #0
13936
- strh r1, [r3, r0] @ movhi
13937
- strh r1, [r2, #2] @ movhi
13938
- ldr r1, [r3, #-1640]
13939
- strh r1, [r2, #10] @ movhi
13940
- ldr r1, .L2427+12
13941
- strh r1, [r2, #4] @ movhi
13942
- movw r1, #1144
13943
- ldrh r1, [r3, r1]
13944
- strh r1, [r2, #8] @ movhi
13945
- sub r1, r3, #1632
13946
- ldrh r1, [r1]
14293
+ mov r2, #0
14294
+ mov r3, r4
14295
+ mov r0, r6
14296
+ mov r1, r5
14297
+ mov r4, #12
14298
+ mov r5, r2
14299
+ mvn r6, #0
14300
+.L2374:
14301
+ ldrh r7, [r1, #-10]
14302
+ uxth ip, r2
14303
+ add lr, r2, #1
14304
+ cmp r7, ip
14305
+ bhi .L2375
14306
+ ldr r2, .L2377+4
14307
+ mvn r0, #0
14308
+ movw ip, #1028
14309
+ ldrh r1, [r1, #-12]
14310
+ strh r0, [r3, ip] @ movhi
14311
+ strh r0, [r2, #2] @ movhi
14312
+ ldr r0, [r3, #-1636]
1394714313 strh r1, [r2, #6] @ movhi
13948
- ldr r2, [r3, #-1404]
14314
+ strh r0, [r2, #10] @ movhi
14315
+ ldr r0, .L2377+8
14316
+ strh r0, [r2, #4] @ movhi
14317
+ movw r0, #1144
14318
+ ldrh r0, [r3, r0]
14319
+ strh r0, [r2, #8] @ movhi
14320
+ ldr r2, [r3, #-1400]
1394914321 str r2, [r3, #1040]
1395014322 ldr r2, [r3, #-1368]
1395114323 str r2, [r3, #1044]
13952
- ldr r2, [r3, #-1400]
14324
+ ldr r2, [r3, #-1396]
1395314325 str r2, [r3, #1048]
1395414326 ldr r2, [r3, #-1376]
1395514327 str r2, [r3, #1052]
13956
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
13957
-.L2428:
14328
+ pop {r4, r5, r6, r7, r8, pc}
14329
+.L2375:
14330
+ uxth r2, r2
14331
+ ldr ip, [r3, #-1364]
14332
+ mul r7, r4, r2
14333
+ add r8, ip, r7
14334
+ str r5, [r8, #4]
14335
+ strh r6, [ip, r7] @ movhi
14336
+ ldr ip, [r3, #-1364]
14337
+ add ip, ip, r7
14338
+ ldrh r7, [r0, #-8]
14339
+ mul r2, r2, r7
14340
+ ldr r7, [r3, #-1360]
14341
+ bic r2, r2, #3
14342
+ add r2, r7, r2
14343
+ str r2, [ip, #8]
14344
+ mov r2, lr
14345
+ b .L2374
14346
+.L2378:
1395814347 .align 2
13959
-.L2427:
14348
+.L2377:
1396014349 .word .LANCHOR2
13961
- .word .LANCHOR2-1630
1396214350 .word .LANCHOR2+1028
1396314351 .word -3902
1396414352 .fnend
1396514353 .size FtlL2PDataInit, .-FtlL2PDataInit
1396614354 .align 2
1396714355 .global FtlLoadMapInfo
14356
+ .syntax unified
14357
+ .arm
14358
+ .fpu softvfp
1396814359 .type FtlLoadMapInfo, %function
1396914360 FtlLoadMapInfo:
1397014361 .fnstart
1397114362 @ args = 0, pretend = 0, frame = 0
1397214363 @ frame_needed = 0, uses_anonymous_args = 0
13973
- stmfd sp!, {r3, lr}
13974
- .save {r3, lr}
14364
+ push {r4, lr}
14365
+ .save {r4, lr}
1397514366 bl FtlL2PDataInit
13976
- ldr r0, .L2431
14367
+ ldr r0, .L2381
1397714368 bl FtlMapTblRecovery
1397814369 mov r0, #0
13979
- ldmfd sp!, {r3, pc}
13980
-.L2432:
14370
+ pop {r4, pc}
14371
+.L2382:
1398114372 .align 2
13982
-.L2431:
14373
+.L2381:
1398314374 .word .LANCHOR2+1028
1398414375 .fnend
1398514376 .size FtlLoadMapInfo, .-FtlLoadMapInfo
1398614377 .align 2
1398714378 .global ftl_sb_update_avl_pages
14379
+ .syntax unified
14380
+ .arm
14381
+ .fpu softvfp
1398814382 .type ftl_sb_update_avl_pages, %function
1398914383 ftl_sb_update_avl_pages:
1399014384 .fnstart
1399114385 @ args = 0, pretend = 0, frame = 0
1399214386 @ frame_needed = 0, uses_anonymous_args = 0
1399314387 mov r3, #0
14388
+ push {r4, lr}
14389
+ .save {r4, lr}
1399414390 strh r3, [r0, #4] @ movhi
13995
- ldr r3, .L2443
13996
- stmfd sp!, {r4, r5, lr}
13997
- .save {r4, r5, lr}
1399814391 movw r4, #65535
13999
- ldrh lr, [r3, #-8]
14000
- add r3, r2, #7
14001
- add r3, r0, r3, asl #1
14002
-.L2434:
14392
+ ldr r3, .L2391
14393
+ ldrh lr, [r3, #-4]
14394
+ add r3, r0, r2, lsl #1
14395
+ add r3, r3, #14
14396
+.L2384:
1400314397 cmp r2, lr
14004
- bcs .L2441
14398
+ bcc .L2386
14399
+ ldr r3, .L2391+4
14400
+ add ip, r0, #16
14401
+ movw r4, #65535
14402
+ ldrh r3, [r3, #-2]
14403
+ sub r3, r3, #1
14404
+ sub r1, r3, r1
14405
+ mov r3, #0
14406
+ uxth r1, r1
14407
+.L2387:
14408
+ uxth r2, r3
14409
+ cmp lr, r2
14410
+ bhi .L2389
14411
+ pop {r4, pc}
14412
+.L2386:
1400514413 ldrh ip, [r3, #2]!
1400614414 add r2, r2, #1
14007
- cmp ip, r4
1400814415 uxth r2, r2
14009
- ldrneh ip, [r0, #4]
14416
+ cmp ip, r4
14417
+ ldrhne ip, [r0, #4]
1401014418 addne ip, ip, #1
14011
- strneh ip, [r0, #4] @ movhi
14012
- b .L2434
14013
-.L2441:
14014
- ldr r3, .L2443+4
14015
- add ip, r0, #14
14016
- mov r2, #0
14017
- movw r5, #65535
14018
- ldrh r4, [r3, #-4]
14019
-.L2437:
14020
- uxth r3, r2
14021
- cmp r3, lr
14022
- bcs .L2442
14023
- ldrh r3, [ip, #2]!
14024
- add r2, r2, #1
14025
- cmp r3, r5
14026
- ldrneh r3, [r0, #4]
14027
- addne r3, r4, r3
14028
- subne r3, r3, #1
14029
- rsbne r3, r1, r3
14030
- strneh r3, [r0, #4] @ movhi
14031
- b .L2437
14032
-.L2442:
14033
- ldmfd sp!, {r4, r5, pc}
14034
-.L2444:
14419
+ strhne ip, [r0, #4] @ movhi
14420
+ b .L2384
14421
+.L2389:
14422
+ ldrh r2, [ip], #2
14423
+ add r3, r3, #1
14424
+ cmp r2, r4
14425
+ ldrhne r2, [r0, #4]
14426
+ addne r2, r1, r2
14427
+ strhne r2, [r0, #4] @ movhi
14428
+ b .L2387
14429
+.L2392:
1403514430 .align 2
14036
-.L2443:
14431
+.L2391:
1403714432 .word .LANCHOR2-1728
1403814433 .word .LANCHOR2-1664
1403914434 .fnend
1404014435 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
1404114436 .align 2
1404214437 .global FtlReUsePrevPpa
14438
+ .syntax unified
14439
+ .arm
14440
+ .fpu softvfp
1404314441 .type FtlReUsePrevPpa, %function
1404414442 FtlReUsePrevPpa:
1404514443 .fnstart
1404614444 @ args = 0, pretend = 0, frame = 8
1404714445 @ frame_needed = 0, uses_anonymous_args = 0
14048
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
14446
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
1404914447 .save {r4, r5, r6, r7, r8, r9, lr}
1405014448 .pad #12
1405114449 mov r5, r0
14450
+ ldr r6, .L2403
1405214451 ubfx r0, r1, #10, #16
1405314452 str r1, [sp, #4]
1405414453 bl P2V_block_in_plane
14055
- ldr r6, .L2455
14056
- ldr r4, [r6, #-1408]
14057
- mov r7, r0, asl #1
14058
- ldrh r3, [r4, r7]
14454
+ ldr r2, [r6, #-1404]
14455
+ lsl r7, r0, #1
14456
+ ldrh r3, [r2, r7]
1405914457 cmp r3, #0
14060
- addne r3, r3, #1
14061
- strneh r3, [r4, r7] @ movhi
14062
- bne .L2447
14458
+ bne .L2394
1406314459 ldr r4, [r6, #876]
1406414460 cmp r4, #0
14065
- beq .L2447
14066
- ldr r1, [r6, #-1356]
14067
- add r2, r6, #880
14068
- ldr lr, .L2455+4
14069
- movw r9, #65535
14070
- rsb r4, r1, r4
14071
- ldrh ip, [r2]
14072
- mov r8, r2
14073
- mov r4, r4, asr #1
14074
- mul r4, lr, r4
14461
+ beq .L2395
14462
+ ldr r2, [r6, #-1356]
14463
+ add r8, r6, #880
14464
+ ldr ip, .L2403+4
1407514465 mov lr, #6
14466
+ ldrh r1, [r8]
14467
+ movw r9, #65535
14468
+ sub r4, r4, r2
14469
+ asr r4, r4, #1
14470
+ mul r4, ip, r4
1407614471 uxth r4, r4
14077
-.L2448:
14078
- uxth r2, r3
14079
- cmp r2, ip
14080
- bcs .L2447
14472
+.L2396:
14473
+ uxth ip, r3
14474
+ cmp r1, ip
14475
+ bls .L2395
1408114476 cmp r4, r0
14082
- bne .L2449
14477
+ bne .L2397
1408314478 mov r1, r4
14084
- ldr r0, .L2455+8
14479
+ ldr r0, .L2403+8
1408514480 bl List_remove_node
1408614481 ldrh r3, [r8]
1408714482 mov r0, r4
1408814483 sub r3, r3, #1
1408914484 strh r3, [r8] @ movhi
1409014485 bl INSERT_DATA_LIST
14091
- ldr r2, [r6, #-1408]
14486
+ ldr r2, [r6, #-1404]
1409214487 ldrh r3, [r2, r7]
14488
+.L2394:
1409314489 add r3, r3, #1
1409414490 strh r3, [r2, r7] @ movhi
14095
- b .L2447
14096
-.L2449:
14491
+ b .L2395
14492
+.L2397:
1409714493 mul r4, lr, r4
1409814494 add r3, r3, #1
14099
- ldrh r4, [r1, r4]
14495
+ ldrh r4, [r2, r4]
1410014496 cmp r4, r9
14101
- bne .L2448
14102
-.L2447:
14103
- mov r0, r5
14104
- add r1, sp, #4
14497
+ bne .L2396
14498
+.L2395:
1410514499 mov r2, #1
14500
+ add r1, sp, #4
14501
+ mov r0, r5
1410614502 bl log2phys
1410714503 add sp, sp, #12
1410814504 @ sp needed
14109
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc}
14110
-.L2456:
14505
+ pop {r4, r5, r6, r7, r8, r9, pc}
14506
+.L2404:
1411114507 .align 2
14112
-.L2455:
14508
+.L2403:
1411314509 .word .LANCHOR2
1411414510 .word -1431655765
1411514511 .word .LANCHOR2+876
....@@ -14117,70 +14513,73 @@
1411714513 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa
1411814514 .align 2
1411914515 .global make_superblock
14516
+ .syntax unified
14517
+ .arm
14518
+ .fpu softvfp
1412014519 .type make_superblock, %function
1412114520 make_superblock:
1412214521 .fnstart
1412314522 @ args = 0, pretend = 0, frame = 0
1412414523 @ frame_needed = 0, uses_anonymous_args = 0
14125
- ldr r3, .L2471
14126
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
14524
+ ldr r3, .L2418
14525
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
1412714526 .save {r4, r5, r6, r7, r8, r9, r10, lr}
14128
- add r6, r0, #16
14129
- ldrh r8, [r3, #-8]
14130
- add r7, r3, #20
1413114527 mov r4, r0
14528
+ add r7, r0, #16
1413214529 mvn r9, #0
14530
+ add r6, r3, #22
1413314531 mov r5, #0
14532
+ ldrh r8, [r3, #-4]
1413414533 strh r5, [r0, #4] @ movhi
1413514534 strb r5, [r0, #7]
14136
-.L2458:
14535
+.L2406:
1413714536 uxth r3, r5
14138
- cmp r3, r8
14139
- bcs .L2470
14140
- ldrb r0, [r7, r5] @ zero_extendqisi2
14141
- add r6, r6, #2
14142
- ldrh r1, [r4]
14143
- add r5, r5, #1
14144
- bl V2P_block
14145
- strh r9, [r6, #-2] @ movhi
14146
- mov r10, r0
14147
- bl FtlBbmIsBadBlock
14148
- cmp r0, #0
14149
- streqh r10, [r6, #-2] @ movhi
14150
- ldreqb r3, [r4, #7] @ zero_extendqisi2
14151
- addeq r3, r3, #1
14152
- streqb r3, [r4, #7]
14153
- b .L2458
14154
-.L2470:
14155
- ldr r2, .L2471+4
14156
- ldrb r1, [r4, #7] @ zero_extendqisi2
14157
- sub r3, r2, #1664
14158
- ldrh r3, [r3, #-4]
14159
- smulbb r3, r1, r3
14537
+ cmp r8, r3
14538
+ bhi .L2408
14539
+ ldr r2, .L2418+4
14540
+ ldrb r3, [r4, #7] @ zero_extendqisi2
14541
+ sub r1, r2, #1664
14542
+ ldrh r1, [r1, #-2]
14543
+ smulbb r3, r3, r1
1416014544 strh r3, [r4, #4] @ movhi
1416114545 mov r3, #0
1416214546 strb r3, [r4, #9]
14163
- ldr r3, [r2, #-1872]
14547
+ ldr r3, [r2, #-1868]
1416414548 cmp r3, #0
14165
- beq .L2461
14549
+ beq .L2409
1416614550 ldrh r3, [r4]
14167
- ldr r2, [r2, #-1416]
14168
- mov r3, r3, asl #1
14551
+ ldr r2, [r2, #-1412]
14552
+ lsl r3, r3, #1
1416914553 ldrh r3, [r2, r3]
1417014554 cmp r3, #79
1417114555 movls r3, #1
14172
- strlsb r3, [r4, #9]
14173
-.L2461:
14174
- ldr r3, .L2471+8
14556
+ strbls r3, [r4, #9]
14557
+.L2409:
14558
+ ldr r3, .L2418+8
1417514559 mov r0, #0
14176
- ldrb r3, [r3] @ zero_extendqisi2
14560
+ ldrb r3, [r3, #36] @ zero_extendqisi2
1417714561 cmp r3, #0
1417814562 movne r3, #1
14179
- strneb r3, [r4, #9]
14180
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
14181
-.L2472:
14563
+ strbne r3, [r4, #9]
14564
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
14565
+.L2408:
14566
+ ldrb r0, [r6, r5] @ zero_extendqisi2
14567
+ add r7, r7, #2
14568
+ ldrh r1, [r4]
14569
+ add r5, r5, #1
14570
+ bl V2P_block
14571
+ strh r9, [r7, #-2] @ movhi
14572
+ mov r10, r0
14573
+ bl FtlBbmIsBadBlock
14574
+ cmp r0, #0
14575
+ strheq r10, [r7, #-2] @ movhi
14576
+ ldrbeq r3, [r4, #7] @ zero_extendqisi2
14577
+ addeq r3, r3, #1
14578
+ strbeq r3, [r4, #7]
14579
+ b .L2406
14580
+.L2419:
1418214581 .align 2
14183
-.L2471:
14582
+.L2418:
1418414583 .word .LANCHOR2-1728
1418514584 .word .LANCHOR2
1418614585 .word .LANCHOR0
....@@ -14188,538 +14587,553 @@
1418814587 .size make_superblock, .-make_superblock
1418914588 .align 2
1419014589 .global FtlLoadSysInfo
14590
+ .syntax unified
14591
+ .arm
14592
+ .fpu softvfp
1419114593 .type FtlLoadSysInfo, %function
1419214594 FtlLoadSysInfo:
1419314595 .fnstart
14194
- @ args = 0, pretend = 0, frame = 16
14596
+ @ args = 0, pretend = 0, frame = 8
1419514597 @ frame_needed = 0, uses_anonymous_args = 0
14196
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14598
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1419714599 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1419814600 mov r1, #0
14199
- ldr r4, .L2502
14200
- .pad #44
14201
- sub sp, sp, #44
14202
- movw r7, #1128
14203
- ldr r9, .L2502+4
14204
- sub r6, r4, #1728
14205
- ldr r3, [r4, #-1476]
14206
- ldrh r2, [r6]
14207
- ldr r0, [r4, #-1408]
14601
+ ldr r4, .L2449
14602
+ .pad #36
14603
+ sub sp, sp, #36
14604
+ movw r8, #1128
14605
+ ldr r3, [r4, #-1472]
14606
+ sub r6, r4, #1712
14607
+ ldrh r2, [r6, #-12]
14608
+ ldr r0, [r4, #-1404]
1420814609 str r3, [r4, #-1268]
14209
- ldr r3, [r4, #-1444]
14210
- mov r2, r2, asl #1
14610
+ ldr r3, [r4, #-1440]
14611
+ lsl r2, r2, #1
1421114612 str r3, [r4, #-1264]
1421214613 bl ftl_memset
14213
- ldrh r0, [r4, r7]
14614
+ ldrh r0, [r4, r8]
1421414615 movw r3, #65535
1421514616 cmp r0, r3
14216
- bne .L2474
14217
-.L2485:
14617
+ bne .L2421
14618
+.L2432:
1421814619 mvn r0, #0
14219
- b .L2475
14220
-.L2474:
14620
+.L2420:
14621
+ add sp, sp, #36
14622
+ @ sp needed
14623
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14624
+.L2421:
1422114625 mov r1, #1
14626
+ ldr r7, .L2449+4
1422214627 bl FtlGetLastWrittenPage
14223
- ldrh r3, [r4, r7]
14224
- mov r7, r4
14225
- uxth r5, r0
14226
- str r3, [sp, #28]
14628
+ ldrsh r10, [r4, r8]
14629
+ sub r8, r4, #1264
14630
+ sub r8, r8, #12
14631
+ sxth r5, r0
1422714632 add r0, r0, #1
14228
- strh r0, [r9, #2] @ movhi
14229
-.L2476:
14230
- sxth r3, r5
14231
- cmp r3, #0
14232
- blt .L2484
14233
- ldrsh fp, [sp, #28]
14234
- mov r1, #1
14235
- ldr r0, .L2502+8
14236
- mov r2, r1
14237
- orr r3, r3, fp, asl #10
14633
+ strh r0, [r7, #2] @ movhi
14634
+.L2423:
14635
+ cmp r5, #0
14636
+ ldr fp, .L2449+8
14637
+ blt .L2431
14638
+ orr r3, r5, r10, lsl #10
14639
+ mov r2, #1
14640
+ mov r1, r2
1423814641 str r3, [r4, #-1272]
14239
- ldr r3, [r4, #-1476]
14642
+ mov r0, r8
14643
+ ldr r3, [r4, #-1472]
1424014644 str r3, [r4, #-1268]
1424114645 bl FlashReadPages
14242
- ldr r3, .L2502+12
14243
- ldrb r3, [r3] @ zero_extendqisi2
14646
+ ldrb r3, [fp, #36] @ zero_extendqisi2
1424414647 cmp r3, #0
14245
- beq .L2477
14246
- ldr r8, [r7, #-1264]
14247
- ldr r3, [r8, #12]
14648
+ beq .L2424
14649
+ ldr r9, [r4, #-1264]
14650
+ ldr r3, [r9, #12]
1424814651 cmp r3, #0
14249
- beq .L2477
14250
- ldr r2, [r7, #-1268]
14251
- ldr r10, .L2502+16
14252
- str r3, [sp, #36]
14253
- mov r0, r2
14254
- str r2, [sp, #32]
14255
- ldrh r1, [r10]
14256
- bl js_hash
14257
- ldr r3, [sp, #36]
14258
- cmp r3, r0
14259
- beq .L2477
14260
- cmp r5, #0
14261
- ldr r2, [sp, #32]
14262
- bne .L2478
14263
- ldrh r1, [r9, #4]
14264
- ldr ip, .L2502+4
14265
- cmp fp, r1
14266
- beq .L2478
14267
- ldr r0, [r8]
14268
- ldrh r1, [ip]
14269
- str ip, [sp, #28]
14270
- str r0, [sp]
14271
- ldr r0, [r8, #4]
14272
- str r0, [sp, #4]
14273
- ldr r0, [r8, #8]
14274
- str r3, [sp, #12]
14275
- str r0, [sp, #8]
14276
- ldr r3, [r2]
14277
- ldr r0, .L2502+20
14278
- str r3, [sp, #16]
14279
- ldr r3, [r7, #-1272]
14280
- ldr r2, [r7, #-1276]
14281
- bl printk
14282
- ldrh r5, [r10, #-8]
14283
- ldr ip, [sp, #28]
14284
- ldrh r3, [ip, #4]
1428514652 str r3, [sp, #28]
14286
- b .L2480
14287
-.L2478:
14653
+ beq .L2424
14654
+ ldr r2, [r4, #-1268]
14655
+ sub r1, r8, #380
14656
+ ldrh r1, [r1]
14657
+ mov r0, r2
14658
+ str r2, [sp, #24]
14659
+ bl js_hash
14660
+ ldr r3, [sp, #28]
14661
+ cmp r3, r0
14662
+ beq .L2424
14663
+ cmp r5, #0
14664
+ bne .L2425
14665
+ ldrh r1, [r7, #4]
14666
+ ldr r2, [sp, #24]
14667
+ cmp r10, r1
14668
+ beq .L2425
14669
+ ldr r2, [r2]
14670
+ str r3, [sp, #12]
14671
+ ldrh r1, [r7]
14672
+ str r2, [sp, #16]
14673
+ ldr r3, [r9, #8]
14674
+ ldr r2, [r4, #-1276]
14675
+ ldr r0, .L2449+12
14676
+ str r3, [sp, #8]
14677
+ ldr r3, [r9, #4]
14678
+ str r3, [sp, #4]
14679
+ ldr r3, [r9]
14680
+ str r3, [sp]
14681
+ ldr r3, [r4, #-1272]
14682
+ bl printk
14683
+ sub r3, r8, #388
14684
+ ldrsh r10, [r7, #4]
14685
+ ldrh r5, [r3]
14686
+.L2427:
14687
+ sub r5, r5, #1
14688
+ sxth r5, r5
14689
+ b .L2423
14690
+.L2425:
1428814691 mvn r3, #0
1428914692 str r3, [r4, #-1276]
14290
-.L2477:
14693
+.L2424:
1429114694 ldr r3, [r4, #-1276]
1429214695 cmn r3, #1
14293
- beq .L2480
14294
- ldr r3, [r7, #-1476]
14295
- ldr r2, .L2502+24
14696
+ beq .L2427
14697
+ ldr r3, [r4, #-1472]
14698
+ ldr r2, .L2449+16
1429614699 ldr r3, [r3]
1429714700 cmp r3, r2
14298
- bne .L2480
14299
- ldr r3, [r7, #-1444]
14701
+ bne .L2427
14702
+ ldr r3, [r4, #-1440]
1430014703 ldrh r2, [r3]
1430114704 movw r3, #61604
1430214705 cmp r2, r3
14303
- bne .L2480
14304
-.L2484:
14305
- ldr r5, .L2502
14706
+ bne .L2427
14707
+.L2431:
1430614708 mov r2, #48
1430714709 ldr r1, [r4, #-1268]
14308
- add r0, r5, #816
14309
- sub r7, r5, #1728
14710
+ ldr r0, .L2449+20
1431014711 bl ftl_memcpy
14311
- ldrh r2, [r6]
14712
+ ldrh r2, [r6, #-12]
1431214713 ldr r1, [r4, #-1268]
14313
- ldr r0, [r4, #-1408]
14714
+ ldr r0, [r4, #-1404]
14715
+ lsl r2, r2, #1
1431414716 add r1, r1, #48
14315
- mov r2, r2, asl #1
1431614717 bl ftl_memcpy
14317
- ldrh r2, [r6]
14318
- ldr r1, [r4, #-1268]
14319
- ldr r0, [r4, #-1396]
14320
- mov r3, r2, asl #1
14321
- mov r2, r2, lsr #3
14322
- add r3, r3, #51
14718
+ ldrh r1, [r6, #-12]
14719
+ ldr r3, [r4, #-1268]
14720
+ ldr r0, [fp, #32]
14721
+ lsr r2, r1, #3
14722
+ lsl r1, r1, #1
14723
+ add r1, r1, #51
1432314724 add r2, r2, #4
14324
- bic r3, r3, #3
14325
- add r1, r1, r3
14725
+ bic r1, r1, #3
14726
+ add r1, r3, r1
1432614727 bl ftl_memcpy
14327
- sub r3, r5, #1616
14328
- ldrh r3, [r3, #-12]
14329
- cmp r3, #0
14330
- beq .L2482
14331
- ldrh r2, [r7]
14332
- ldr r1, [r5, #-1268]
14333
- ldr r0, [r5, #-1372]
14334
- mov r3, r2, lsr #3
14335
- add r3, r3, r2, asl #1
14336
- sub r2, r5, #1632
14728
+ ldr r3, .L2449+24
14729
+ ldrh r2, [r3, #-8]
14730
+ cmp r2, #0
14731
+ beq .L2429
14732
+ ldrh r1, [r6, #-12]
14733
+ ldrh r2, [r3, #-12]
14734
+ ldr r0, [r4, #-1372]
14735
+ lsr r3, r1, #3
14736
+ lsl r2, r2, #2
14737
+ add r3, r3, r1, lsl #1
14738
+ ldr r1, [r4, #-1268]
1433714739 add r3, r3, #52
14338
- ldrh r2, [r2]
1433914740 ubfx r3, r3, #2, #14
14340
- add r1, r1, r3, asl #2
14341
- mov r2, r2, asl #2
14741
+ add r1, r1, r3, lsl #2
1434214742 bl ftl_memcpy
14343
- b .L2482
14344
-.L2480:
14345
- sub r5, r5, #1
14346
- uxth r5, r5
14347
- b .L2476
14348
-.L2482:
14743
+.L2429:
1434914744 ldr r2, [r4, #816]
14350
- ldr r3, .L2502+24
14351
- ldr r5, .L2502
14745
+ ldr r3, .L2449+16
1435214746 cmp r2, r3
14353
- bne .L2485
14354
- sub r2, r5, #1712
14355
- add r8, r5, #816
14356
- ldrb r1, [r5, #826] @ zero_extendqisi2
14357
- ldrh r2, [r2, #-2]
14358
- ldrh r3, [r8, #8]
14359
- cmp r1, r2
14360
- strh r3, [r9, #6] @ movhi
14361
- bne .L2485
14362
- sub r2, r5, #1664
14363
- sub r1, r5, #1648
14364
- ldr r7, .L2502+28
14365
- ldrh r2, [r2, #-4]
14366
- ldrh r1, [r1, #-14]
14367
- str r3, [r7, #1156]
14368
- mul r2, r3, r2
14369
- str r2, [r5, #-1284]
14370
- mul r2, r1, r2
14371
- ldrh r1, [r6, #-8]
14372
- mov r6, #0
14373
- str r2, [r5, #-2740]
14374
- ldr r2, .L2502+32
14375
- ldrh r0, [r2, #6]
14376
- ldr r2, [r5, #-1724]
14377
- rsb r0, r0, r2
14378
- rsb r0, r3, r0
14379
- bl __aeabi_uidiv
14380
- movw r3, #1160
14381
- ldrh r1, [r8, #14]
14382
- add r2, r5, #884
14383
- strb r6, [r7, #1170]
14384
- strb r6, [r7, #1172]
14385
- strh r1, [r2] @ movhi
14386
- str r6, [r5, #-1608]
14387
- strh r0, [r7, r3] @ movhi
14388
- ldrh r3, [r8, #16]
14389
- mov r0, r3, lsr #6
14390
- and r3, r3, #63
14391
- strb r3, [r5, #890]
14392
- ldrb r3, [r5, #827] @ zero_extendqisi2
14393
- strh r0, [r2, #2] @ movhi
14394
- mvn r2, #0
14395
- strb r3, [r5, #892]
14396
- movw r3, #1164
14397
- strh r2, [r7, r3] @ movhi
14398
- ldr r3, .L2502+36
14399
- ldrh r2, [r8, #18]
14400
- strh r6, [r3, #2] @ movhi
14401
- add r3, r5, #932
14402
- strh r2, [r3] @ movhi
14403
- ldrh r2, [r8, #20]
14404
- mov r0, r2, lsr #6
14405
- and r2, r2, #63
14406
- strb r2, [r5, #938]
14407
- ldrb r2, [r5, #828] @ zero_extendqisi2
14408
- strh r0, [r3, #2] @ movhi
14409
- ldrh r0, [r8, #22]
14410
- ldrh r8, [r8, #24]
14411
- strb r2, [r5, #940]
14412
- add r2, r5, #980
14413
- strh r0, [r2] @ movhi
14414
- mov r0, r8, lsr #6
14415
- strh r0, [r2, #2] @ movhi
14416
- and r8, r8, #63
14417
- ldrb r0, [r5, #829] @ zero_extendqisi2
14418
- mov r9, r2
14419
- strb r8, [r5, #986]
14420
- strb r0, [r5, #988]
14421
- str r6, [r5, #-1604]
14422
- ldr r0, [r5, #848]
14423
- ldr r2, [r4, #-1612]
14424
- ldr ip, [r5, #-1616]
14425
- str r0, [r5, #-1584]
14426
- ldr r0, [r5, #856]
14427
- str r6, [r5, #-1588]
14428
- str r6, [r5, #-1592]
14429
- cmp r0, ip
14430
- str r6, [r5, #-1580]
14431
- str r6, [r5, #-1572]
14432
- str r6, [r5, #-1596]
14433
- mov r6, r3
14434
- ldr r3, [r4, #852]
14435
- strhi r0, [r5, #-1616]
14436
- cmp r3, r2
14437
- ldrhi r2, .L2502
14438
- strhi r3, [r2, #-1612]
14439
- movw r3, #65535
14747
+ bne .L2432
14748
+ ldr r5, .L2449+20
14749
+ ldrb r1, [r4, #826] @ zero_extendqisi2
14750
+ sub r3, r5, #2512
14751
+ ldrh r2, [r5, #8]
14752
+ ldrh r3, [r3, #-14]
14753
+ strh r2, [r7, #6] @ movhi
1444014754 cmp r1, r3
14441
- beq .L2488
14442
- ldr r0, .L2502+40
14755
+ bne .L2432
14756
+ sub r1, r5, #2480
14757
+ sub r0, r5, #2464
14758
+ ldrh r3, [r1, #-2]
14759
+ add r1, r1, #316
14760
+ ldrh r0, [r0, #-12]
14761
+ add r6, r5, #336
14762
+ str r2, [r4, #1148]
14763
+ mul r3, r2, r3
14764
+ str r3, [r4, #-1284]
14765
+ mul r3, r3, r0
14766
+ ldr r0, [r4, #-1720]
14767
+ str r3, [r4, #-2736]
14768
+ ldrh r3, [r1, #6]
14769
+ sub r0, r0, r3
14770
+ sub r3, r5, #2544
14771
+ ldrh r1, [r3, #-4]
14772
+ sub r0, r0, r2
14773
+ bl __aeabi_uidiv
14774
+ ldrh r3, [r5, #16]
14775
+ mov r2, r5
14776
+ ldrh ip, [r5, #14]
14777
+ strh r0, [r6] @ movhi
14778
+ lsr r1, r3, #6
14779
+ and r3, r3, #63
14780
+ strb r3, [r4, #890]
14781
+ ldrb r3, [r4, #827] @ zero_extendqisi2
14782
+ strh ip, [r2, #68]! @ movhi
14783
+ strh r1, [r2, #2] @ movhi
14784
+ mvn r1, #0
14785
+ strb r3, [r4, #892]
14786
+ movw r3, #1156
14787
+ strh r1, [r4, r3] @ movhi
14788
+ add r2, r5, #340
14789
+ ldrh r1, [r5, #18]
14790
+ mov r3, #0
14791
+ strh r3, [r2, #2] @ movhi
14792
+ mov r2, r5
14793
+ strb r3, [r4, #1162]
14794
+ strh r1, [r2, #116]! @ movhi
14795
+ ldrh r1, [r5, #20]
14796
+ strb r3, [r4, #1164]
14797
+ lsr r0, r1, #6
14798
+ and r1, r1, #63
14799
+ strb r1, [r4, #938]
14800
+ ldrb r1, [r4, #828] @ zero_extendqisi2
14801
+ strh r0, [r2, #2] @ movhi
14802
+ ldrh r0, [r5, #22]
14803
+ strb r1, [r4, #940]
14804
+ mov r1, r5
14805
+ strh r0, [r1, #164]! @ movhi
14806
+ mov r6, r1
14807
+ ldrh r0, [r5, #24]
14808
+ mov r5, r2
14809
+ lsr lr, r0, #6
14810
+ and r0, r0, #63
14811
+ strb r0, [r4, #986]
14812
+ ldrb r0, [r4, #829] @ zero_extendqisi2
14813
+ strh lr, [r1, #2] @ movhi
14814
+ strb r0, [r4, #988]
14815
+ str r3, [r4, #-1604]
14816
+ ldr r0, [r4, #848]
14817
+ str r3, [r4, #-1600]
14818
+ str r3, [r4, #-1584]
14819
+ str r3, [r4, #-1588]
14820
+ str r0, [r4, #-1580]
14821
+ str r3, [r4, #-1576]
14822
+ ldr r0, [r4, #-1612]
14823
+ str r3, [r4, #-1568]
14824
+ str r3, [r4, #-1592]
14825
+ ldr r3, [r4, #856]
14826
+ ldr r2, [r4, #-1608]
14827
+ cmp r3, r0
14828
+ strhi r3, [r4, #-1612]
14829
+ ldr r3, [r4, #852]
14830
+ cmp r3, r2
14831
+ strhi r3, [r4, #-1608]
14832
+ movw r3, #65535
14833
+ cmp ip, r3
14834
+ beq .L2435
14835
+ ldr r0, .L2449+28
1444314836 bl make_superblock
14444
-.L2488:
14837
+.L2435:
14838
+ ldrh r2, [r5]
14839
+ movw r3, #65535
14840
+ cmp r2, r3
14841
+ beq .L2436
14842
+ ldr r0, .L2449+32
14843
+ bl make_superblock
14844
+.L2436:
1444514845 ldrh r2, [r6]
1444614846 movw r3, #65535
1444714847 cmp r2, r3
14448
- beq .L2489
14449
- ldr r0, .L2502+44
14848
+ beq .L2437
14849
+ ldr r0, .L2449+36
1445014850 bl make_superblock
14451
-.L2489:
14452
- ldrh r2, [r9]
14851
+.L2437:
14852
+ movw r3, #1156
14853
+ ldrh r2, [r4, r3]
1445314854 movw r3, #65535
1445414855 cmp r2, r3
14455
- beq .L2490
14456
- ldr r0, .L2502+48
14856
+ beq .L2438
14857
+ ldr r0, .L2449+40
1445714858 bl make_superblock
14458
-.L2490:
14459
- movw r3, #1164
14460
- ldrh r2, [r7, r3]
14461
- movw r3, #65535
14462
- cmp r2, r3
14463
- beq .L2491
14464
- ldr r0, .L2502+36
14465
- bl make_superblock
14466
-.L2491:
14859
+.L2438:
1446714860 mov r0, #0
14468
-.L2475:
14469
- add sp, sp, #44
14470
- @ sp needed
14471
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14472
-.L2503:
14861
+ b .L2420
14862
+.L2450:
1447314863 .align 2
14474
-.L2502:
14864
+.L2449:
1447514865 .word .LANCHOR2
1447614866 .word .LANCHOR2+1128
14477
- .word .LANCHOR2-1276
1447814867 .word .LANCHOR0
14479
- .word .LANCHOR2-1658
1448014868 .word .LC64
1448114869 .word 1179929683
14482
- .word .LANCHOR4
14483
- .word .LANCHOR2-1348
14484
- .word .LANCHOR4+1164
14870
+ .word .LANCHOR2+816
14871
+ .word .LANCHOR2-1616
1448514872 .word .LANCHOR2+884
1448614873 .word .LANCHOR2+932
1448714874 .word .LANCHOR2+980
14875
+ .word .LANCHOR2+1156
1448814876 .fnend
1448914877 .size FtlLoadSysInfo, .-FtlLoadSysInfo
1449014878 .align 2
1449114879 .global FtlDumpBlockInfo
14880
+ .syntax unified
14881
+ .arm
14882
+ .fpu softvfp
1449214883 .type FtlDumpBlockInfo, %function
1449314884 FtlDumpBlockInfo:
1449414885 .fnstart
1449514886 @ args = 0, pretend = 0, frame = 72
1449614887 @ frame_needed = 0, uses_anonymous_args = 0
14497
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14888
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1449814889 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1449914890 ubfx r0, r0, #10, #16
14891
+ ldr r7, .L2463
1450014892 .pad #100
1450114893 sub sp, sp, #100
14502
- mov r4, r1
14894
+ mov r8, r1
1450314895 bl P2V_block_in_plane
14504
- ldr r7, .L2518
14505
- ldr r1, .L2518+4
1450614896 sub r5, r7, #1664
14507
- ldrh r9, [r5, #-4]
1450814897 mov r6, r0
14509
- ldr r0, .L2518+8
14898
+ ldr r1, .L2463+4
14899
+ ldr r0, .L2463+8
14900
+ ldrh r9, [r5, #-2]
1451014901 bl printk
14511
- ldr r2, [r7, #-1408]
14512
- mov r3, r6, asl #1
14902
+ ldr r2, [r7, #-1404]
14903
+ lsl r3, r6, #1
1451314904 mov r1, r6
14514
- ldr r0, .L2518+12
14905
+ ldr r0, .L2463+12
1451514906 ldrh r2, [r2, r3]
1451614907 bl printk
1451714908 add r0, sp, #96
1451814909 strh r6, [r0, #-48]! @ movhi
1451914910 bl make_superblock
14520
- ldrb r2, [r7, #-2744] @ zero_extendqisi2
14521
- clz r3, r4
14522
- cmp r2, #0
14523
- mov r3, r3, lsr #5
14524
- moveq r3, #0
14911
+ ldrb r4, [r7, #-2740] @ zero_extendqisi2
14912
+ str r7, [sp, #44]
14913
+ adds r3, r4, #0
14914
+ movne r3, #1
14915
+ cmp r8, #0
14916
+ movne r3, #0
1452514917 cmp r3, #0
1452614918 moveq r4, r3
14527
- str r7, [sp, #44]
14528
- beq .L2505
14919
+ beq .L2452
1452914920 mov r0, r6
1453014921 bl ftl_get_blk_mode
1453114922 cmp r0, #1
1453214923 mov r4, r0
14533
- ldreqh r9, [r5, #-2]
14534
-.L2505:
14535
- ldr r0, .L2518+16
14536
- mov r1, r4
14537
- mov r2, r9
14538
- ldrh r3, [r5, #-4]
14539
- bl printk
14540
- ldr r8, .L2518
14924
+ ldrheq r9, [r5]
14925
+.L2452:
14926
+ ldr r7, .L2463
1454114927 mov r6, #0
14542
-.L2506:
14543
- ldr r3, .L2518+20
14544
- mov r2, #0
14545
- add r0, sp, #62
14546
- mov r5, r2
14547
- movw lr, #65535
1454814928 mov r10, #36
14549
- ldrh r3, [r3]
14550
- mov r7, r3
14551
- ldr r3, [r8, #-1504]
14552
- str r3, [sp, #28]
14553
- ldr r3, [r8, #-1464]
14554
- str r3, [sp, #32]
14555
- ldr r3, .L2518+24
14556
- ldrh r3, [r3]
14557
- str r3, [sp, #36]
14558
- ldr r3, [r8, #-1436]
14559
- str r3, [sp, #40]
14560
- ldr r3, .L2518+28
14561
- ldrh ip, [r3]
14562
-.L2507:
14563
- uxth r3, r2
14564
- cmp r3, r7
14565
- bcs .L2516
14566
- ldrh r3, [r0, #2]!
14567
- cmp r3, lr
14568
- beq .L2508
14569
- ldr r1, [sp, #28]
14570
- orr r3, r6, r3, asl #10
14571
- mla r1, r10, r5, r1
14572
- str r3, [r1, #4]
14573
- ldr r3, [sp, #36]
14574
- mul r3, r3, r5
14575
- add fp, r3, #3
14576
- cmp r3, #0
14577
- movlt r3, fp
14578
- ldr fp, [sp, #32]
14579
- bic r3, r3, #3
14580
- add r3, fp, r3
14581
- str r3, [r1, #8]
14582
- mul r3, ip, r5
14583
- add r5, r5, #1
14584
- uxth r5, r5
14585
- add fp, r3, #3
14586
- cmp r3, #0
14587
- movlt r3, fp
14588
- ldr fp, [sp, #40]
14589
- bic r3, r3, #3
14590
- add r3, fp, r3
14591
- str r3, [r1, #12]
14592
-.L2508:
14593
- add r2, r2, #1
14594
- b .L2507
14595
-.L2516:
14596
- ldr r0, [r8, #-1504]
14597
- mov r1, r5
14598
- mov r2, r4
14599
- mov r10, #0
14600
- bl FlashReadPages
14601
- mov fp, #36
14602
-.L2510:
14603
- uxth r3, r10
14604
- cmp r3, r5
14605
- bcs .L2517
14606
- ldr r3, [sp, #44]
14607
- mul r2, fp, r10
14608
- ldrh r1, [sp, #48]
14609
- ldr lr, [r3, #-1504]
14610
- add r10, r10, #1
14611
- add ip, lr, r2
14612
- ldr r3, [ip, #12]
14613
- ldr r0, [ip, #8]
14614
- ldr r7, [r3]
14615
- str r7, [sp]
14616
- ldr r7, [r3, #4]
14617
- str r7, [sp, #4]
14618
- ldr r7, [r3, #8]
14619
- str r7, [sp, #8]
14620
- ldr r3, [r3, #12]
14621
- str r3, [sp, #12]
14622
- ldr r3, [r0]
14623
- str r3, [sp, #16]
14624
- ldr r3, [r0, #4]
14625
- ldr r0, .L2518+32
14626
- str r3, [sp, #20]
14627
- ldr r2, [lr, r2]
14628
- ldr r3, [ip, #4]
14929
+ ldrh r3, [r5, #-2]
14930
+ mov r2, r9
14931
+ mov r1, r4
14932
+ ldr r0, .L2463+16
1462914933 bl printk
14630
- b .L2510
14631
-.L2517:
14934
+.L2453:
14935
+ ldr r3, .L2463+20
14936
+ add ip, sp, #62
14937
+ ldr r0, [r7, #-1500]
14938
+ movw lr, #65535
14939
+ ldrh r3, [r3, #-4]
14940
+ str r3, [sp, #28]
14941
+ ldr r3, [r7, #-1460]
14942
+ str r3, [sp, #32]
14943
+ ldr r3, .L2463+24
14944
+ ldrh r2, [r3, #-8]
14945
+ ldrh fp, [r3, #-6]
14946
+ str r2, [sp, #36]
14947
+ ldr r2, [r7, #-1432]
14948
+ str r2, [sp, #40]
14949
+ mov r2, #0
14950
+ mov r5, r2
14951
+.L2454:
14952
+ ldr r1, [sp, #28]
14953
+ uxth r3, r2
14954
+ cmp r1, r3
14955
+ bhi .L2456
14956
+ mov r8, #0
14957
+ mov r2, r4
14958
+ mov r1, r5
14959
+ bl FlashReadPages
14960
+.L2457:
14961
+ uxth r3, r8
14962
+ cmp r5, r3
14963
+ bhi .L2458
1463214964 add r6, r6, #1
1463314965 uxth r6, r6
14634
- cmp r6, r9
14635
- bne .L2506
14636
-.L2512:
14966
+ cmp r9, r6
14967
+ bne .L2453
14968
+.L2459:
1463714969 mov r0, #0
1463814970 add sp, sp, #100
1463914971 @ sp needed
14640
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14641
-.L2519:
14972
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14973
+.L2456:
14974
+ ldrh r3, [ip, #2]!
14975
+ cmp r3, lr
14976
+ beq .L2455
14977
+ mla r1, r10, r5, r0
14978
+ orr r3, r6, r3, lsl #10
14979
+ str r3, [r1, #4]
14980
+ ldr r3, [sp, #36]
14981
+ mul r3, r3, r5
14982
+ add r8, r3, #3
14983
+ cmp r3, #0
14984
+ movlt r3, r8
14985
+ ldr r8, [sp, #32]
14986
+ bic r3, r3, #3
14987
+ add r3, r8, r3
14988
+ str r3, [r1, #8]
14989
+ mul r3, fp, r5
14990
+ add r5, r5, #1
14991
+ uxth r5, r5
14992
+ add r8, r3, #3
14993
+ cmp r3, #0
14994
+ movlt r3, r8
14995
+ ldr r8, [sp, #40]
14996
+ bic r3, r3, #3
14997
+ add r3, r8, r3
14998
+ str r3, [r1, #12]
14999
+.L2455:
15000
+ add r2, r2, #1
15001
+ b .L2454
15002
+.L2458:
15003
+ ldr r3, [sp, #44]
15004
+ mul r0, r10, r8
15005
+ ldrh r1, [sp, #48]
15006
+ add r8, r8, #1
15007
+ ldr ip, [r3, #-1500]
15008
+ add r2, ip, r0
15009
+ ldr lr, [r2, #8]
15010
+ ldr r3, [r2, #12]
15011
+ ldr fp, [lr, #4]
15012
+ str fp, [sp, #20]
15013
+ ldr lr, [lr]
15014
+ str lr, [sp, #16]
15015
+ ldr lr, [r3, #12]
15016
+ str lr, [sp, #12]
15017
+ ldr lr, [r3, #8]
15018
+ str lr, [sp, #8]
15019
+ ldr lr, [r3, #4]
15020
+ str lr, [sp, #4]
15021
+ ldr r3, [r3]
15022
+ str r3, [sp]
15023
+ ldr r3, [r2, #4]
15024
+ ldr r2, [ip, r0]
15025
+ ldr r0, .L2463+28
15026
+ bl printk
15027
+ b .L2457
15028
+.L2464:
1464215029 .align 2
14643
-.L2518:
15030
+.L2463:
1464415031 .word .LANCHOR2
14645
- .word .LANCHOR3+160
15032
+ .word .LANCHOR3+153
1464615033 .word .LC50
1464715034 .word .LC65
1464815035 .word .LC66
14649
- .word .LANCHOR2-1736
14650
- .word .LANCHOR2-1658
14651
- .word .LANCHOR2-1656
15036
+ .word .LANCHOR2-1728
15037
+ .word .LANCHOR2-1648
1465215038 .word .LC60
1465315039 .fnend
1465415040 .size FtlDumpBlockInfo, .-FtlDumpBlockInfo
1465515041 .align 2
1465615042 .global FtlScanAllBlock
15043
+ .syntax unified
15044
+ .arm
15045
+ .fpu softvfp
1465715046 .type FtlScanAllBlock, %function
1465815047 FtlScanAllBlock:
1465915048 .fnstart
14660
- @ args = 0, pretend = 0, frame = 64
15049
+ @ args = 0, pretend = 0, frame = 56
1466115050 @ frame_needed = 0, uses_anonymous_args = 0
14662
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15051
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1466315052 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14664
- .pad #92
14665
- sub sp, sp, #92
14666
- ldr r0, .L2535
14667
- mov r7, #0
14668
- ldr r1, .L2535+4
15053
+ mov r6, #0
15054
+ ldr r5, .L2476
15055
+ .pad #84
15056
+ sub sp, sp, #84
15057
+ ldr r1, .L2476+4
15058
+ ldr r0, .L2476+8
1466915059 bl printk
14670
- ldr r5, .L2535+8
14671
- mov r6, r5
14672
-.L2521:
14673
- ldr r3, .L2535+12
14674
- uxth r4, r7
14675
- ldrh r3, [r3]
14676
- cmp r3, r4
14677
- bls .L2531
14678
- add r8, sp, #88
14679
- mov r0, r4
15060
+.L2466:
15061
+ ldr r3, .L2476+12
15062
+ uxth r0, r6
15063
+ ldrh r3, [r3, #-10]
15064
+ cmp r3, r0
15065
+ bhi .L2474
15066
+ mov r0, #0
15067
+ add sp, sp, #84
15068
+ @ sp needed
15069
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
15070
+.L2474:
15071
+ add r4, sp, #80
1468015072 movw r9, #65535
15073
+ strh r0, [r4, #-48]! @ movhi
1468115074 mov r10, #36
14682
- strh r4, [r8, #-48]! @ movhi
1468315075 bl ftl_get_blk_mode
14684
- ldr ip, [r5, #-1408]
14685
- mov r2, r4, asl #1
14686
- mov r1, r4
14687
- ldrh r2, [ip, r2]
15076
+ uxth r1, r6
15077
+ ldr ip, [r5, #-1404]
1468815078 mov r3, r0
14689
- ldr r0, .L2535+16
15079
+ ldr r0, .L2476+16
15080
+ lsl r2, r1, #1
15081
+ ldrh r2, [ip, r2]
1469015082 bl printk
14691
- mov r0, r8
15083
+ mov r0, r4
1469215084 bl make_superblock
14693
- ldr r3, .L2535+20
14694
- ldr lr, [r5, #-1436]
14695
- ldrh r2, [r3]
14696
- ldrh ip, [r3, #78]
14697
- ldrh r8, [r3, #80]
15085
+ ldr r3, .L2476+20
15086
+ add ip, sp, #46
15087
+ ldr r0, [r5, #-1500]
15088
+ ldr r7, [r5, #-1432]
15089
+ ldrh r2, [r3, #-4]
15090
+ ldrh lr, [r3, #72]
15091
+ ldrh r8, [r3, #74]
15092
+ str r2, [sp, #24]
15093
+ ldr r2, [r5, #-1460]
1469815094 str r2, [sp, #28]
14699
- add r0, sp, #54
14700
- ldr r2, [r5, #-1504]
14701
- str r2, [sp, #32]
14702
- ldr r2, [r5, #-1464]
14703
- str r2, [sp, #36]
1470415095 mov r2, #0
1470515096 mov r4, r2
14706
-.L2522:
14707
- ldr r1, [sp, #28]
15097
+.L2467:
15098
+ ldr r1, [sp, #24]
1470815099 uxth r3, r2
14709
- cmp r3, r1
14710
- bcs .L2532
14711
- ldrh r3, [r0, #2]!
15100
+ cmp r1, r3
15101
+ bhi .L2469
15102
+ ldr r9, .L2476+24
15103
+ mov r7, #0
15104
+ mov r8, #36
15105
+ mov r2, #0
15106
+ mov r1, r4
15107
+ bl FlashReadPages
15108
+.L2470:
15109
+ uxth r3, r7
15110
+ cmp r4, r3
15111
+ bhi .L2471
15112
+ ldr r9, .L2476+28
15113
+ mov r7, #0
15114
+ mov r8, #36
15115
+ mov r2, #1
15116
+ mov r1, r4
15117
+ ldr r0, [r5, #-1500]
15118
+ bl FlashReadPages
15119
+.L2472:
15120
+ uxth r3, r7
15121
+ cmp r4, r3
15122
+ bhi .L2473
15123
+ add r6, r6, #1
15124
+ b .L2466
15125
+.L2469:
15126
+ ldrh r3, [ip, #2]!
1471215127 cmp r3, r9
14713
- beq .L2523
14714
- ldr r1, [sp, #32]
14715
- mov r3, r3, asl #10
14716
- mla r1, r10, r4, r1
15128
+ beq .L2468
15129
+ mla r1, r10, r4, r0
15130
+ lsl r3, r3, #10
1471715131 str r3, [r1, #4]
14718
- mul r3, ip, r4
15132
+ mul r3, lr, r4
1471915133 add fp, r3, #3
1472015134 cmp r3, #0
1472115135 movlt r3, fp
14722
- ldr fp, [sp, #36]
15136
+ ldr fp, [sp, #28]
1472315137 bic r3, r3, #3
1472415138 add r3, fp, r3
1472515139 str r3, [r1, #8]
....@@ -14730,340 +15144,311 @@
1473015144 cmp r3, #0
1473115145 movlt r3, fp
1473215146 bic r3, r3, #3
14733
- add r3, lr, r3
15147
+ add r3, r7, r3
1473415148 str r3, [r1, #12]
14735
-.L2523:
15149
+.L2468:
1473615150 add r2, r2, #1
14737
- b .L2522
14738
-.L2532:
14739
- ldr r0, [r6, #-1504]
14740
- mov r1, r4
14741
- mov r2, #0
14742
- mov r8, #0
14743
- bl FlashReadPages
14744
- mov r9, #36
14745
-.L2525:
14746
- uxth r3, r8
14747
- cmp r3, r4
14748
- bcs .L2533
14749
- mul r2, r9, r8
14750
- ldr lr, [r6, #-1504]
14751
- ldrh r1, [sp, #40]
14752
- add r8, r8, #1
14753
- add ip, lr, r2
14754
- ldr r3, [ip, #12]
14755
- ldr r0, [ip, #8]
14756
- ldr r10, [r3]
14757
- str r10, [sp]
14758
- ldr r10, [r3, #4]
14759
- str r10, [sp, #4]
14760
- ldr r10, [r3, #8]
14761
- str r10, [sp, #8]
14762
- ldr r3, [r3, #12]
14763
- str r3, [sp, #12]
14764
- ldr r3, [r0]
14765
- str r3, [sp, #16]
14766
- ldr r3, [r0, #4]
14767
- ldr r0, .L2535+24
14768
- str r3, [sp, #20]
14769
- ldr r2, [lr, r2]
14770
- ldr r3, [ip, #4]
14771
- bl printk
14772
- b .L2525
14773
-.L2533:
14774
- ldr r0, [r6, #-1504]
14775
- mov r1, r4
14776
- mov r2, #1
14777
- mov r8, #0
14778
- bl FlashReadPages
14779
- mov r9, #36
14780
-.L2527:
14781
- uxth r3, r8
14782
- cmp r3, r4
14783
- bcs .L2534
14784
- mul r2, r9, r8
14785
- ldr lr, [r6, #-1504]
14786
- ldrh r1, [sp, #40]
14787
- add r8, r8, #1
14788
- add ip, lr, r2
14789
- ldr r3, [ip, #12]
14790
- ldr r0, [ip, #8]
14791
- ldr r10, [r3]
14792
- str r10, [sp]
14793
- ldr r10, [r3, #4]
14794
- str r10, [sp, #4]
14795
- ldr r10, [r3, #8]
14796
- str r10, [sp, #8]
14797
- ldr r3, [r3, #12]
14798
- str r3, [sp, #12]
14799
- ldr r3, [r0]
14800
- str r3, [sp, #16]
14801
- ldr r3, [r0, #4]
14802
- ldr r0, .L2535+28
14803
- str r3, [sp, #20]
14804
- ldr r2, [lr, r2]
14805
- ldr r3, [ip, #4]
14806
- bl printk
14807
- b .L2527
14808
-.L2534:
15151
+ b .L2467
15152
+.L2471:
15153
+ mul r0, r8, r7
15154
+ ldr ip, [r5, #-1500]
15155
+ ldrh r1, [sp, #32]
1480915156 add r7, r7, #1
14810
- b .L2521
14811
-.L2531:
14812
- mov r0, #0
14813
- add sp, sp, #92
14814
- @ sp needed
14815
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14816
-.L2536:
15157
+ add r2, ip, r0
15158
+ ldr lr, [r2, #8]
15159
+ ldr r3, [r2, #12]
15160
+ ldr r10, [lr, #4]
15161
+ str r10, [sp, #20]
15162
+ ldr lr, [lr]
15163
+ str lr, [sp, #16]
15164
+ ldr lr, [r3, #12]
15165
+ str lr, [sp, #12]
15166
+ ldr lr, [r3, #8]
15167
+ str lr, [sp, #8]
15168
+ ldr lr, [r3, #4]
15169
+ str lr, [sp, #4]
15170
+ ldr r3, [r3]
15171
+ str r3, [sp]
15172
+ ldr r3, [r2, #4]
15173
+ ldr r2, [ip, r0]
15174
+ mov r0, r9
15175
+ bl printk
15176
+ b .L2470
15177
+.L2473:
15178
+ mul r0, r8, r7
15179
+ ldr ip, [r5, #-1500]
15180
+ ldrh r1, [sp, #32]
15181
+ add r7, r7, #1
15182
+ add r2, ip, r0
15183
+ ldr lr, [r2, #8]
15184
+ ldr r3, [r2, #12]
15185
+ ldr r10, [lr, #4]
15186
+ str r10, [sp, #20]
15187
+ ldr lr, [lr]
15188
+ str lr, [sp, #16]
15189
+ ldr lr, [r3, #12]
15190
+ str lr, [sp, #12]
15191
+ ldr lr, [r3, #8]
15192
+ str lr, [sp, #8]
15193
+ ldr lr, [r3, #4]
15194
+ str lr, [sp, #4]
15195
+ ldr r3, [r3]
15196
+ str r3, [sp]
15197
+ ldr r3, [r2, #4]
15198
+ ldr r2, [ip, r0]
15199
+ mov r0, r9
15200
+ bl printk
15201
+ b .L2472
15202
+.L2477:
1481715203 .align 2
14818
-.L2535:
14819
- .word .LC50
14820
- .word .LANCHOR3+180
15204
+.L2476:
1482115205 .word .LANCHOR2
14822
- .word .LANCHOR2-1726
15206
+ .word .LANCHOR3+170
15207
+ .word .LC50
15208
+ .word .LANCHOR2-1712
1482315209 .word .LC67
14824
- .word .LANCHOR2-1736
15210
+ .word .LANCHOR2-1728
1482515211 .word .LC68
1482615212 .word .LC69
1482715213 .fnend
1482815214 .size FtlScanAllBlock, .-FtlScanAllBlock
1482915215 .align 2
1483015216 .global SupperBlkListInit
15217
+ .syntax unified
15218
+ .arm
15219
+ .fpu softvfp
1483115220 .type SupperBlkListInit, %function
1483215221 SupperBlkListInit:
1483315222 .fnstart
14834
- @ args = 0, pretend = 0, frame = 24
15223
+ @ args = 0, pretend = 0, frame = 16
1483515224 @ frame_needed = 0, uses_anonymous_args = 0
14836
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15225
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1483715226 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1483815227 mov r2, #6
14839
- ldr r4, .L2549
15228
+ ldr r4, .L2489
15229
+ mov r5, #0
15230
+ .pad #20
15231
+ sub sp, sp, #20
1484015232 mov r1, #0
14841
- .pad #28
14842
- sub sp, sp, #28
14843
- sub r3, r4, #1712
15233
+ mov r8, r5
15234
+ mov r9, r5
15235
+ sub r6, r4, #1712
1484415236 ldr r0, [r4, #-1356]
14845
- mov fp, r4
14846
- ldrh r3, [r3, #-14]
15237
+ ldrh r3, [r6, #-10]
1484715238 mul r2, r2, r3
1484815239 bl ftl_memset
14849
- mov r3, #0
14850
- add r1, r4, #872
1485115240 add r2, r4, #880
14852
- sub r0, r4, #1616
14853
- mov r5, r3
14854
- mov r8, r3
14855
- mov r9, r3
14856
- str r3, [r4, #876]
14857
- str r3, [r4, #864]
14858
- str r3, [r4, #868]
14859
- strh r3, [r1] @ movhi
14860
- strh r3, [r2] @ movhi
14861
- strh r3, [r0, #-10] @ movhi
14862
- str r1, [sp, #8]
14863
- str r2, [sp, #12]
14864
-.L2538:
14865
- ldr r3, .L2549+4
14866
- uxth r7, r5
14867
- sxth r10, r7
14868
- ldrh r2, [r3]
14869
- cmp r10, r2
14870
- bge .L2545
14871
- sub r3, r3, #8
14872
- ldr r2, .L2549+8
14873
- mov ip, r7
14874
- ldrh r3, [r3]
14875
- str r3, [sp]
14876
- ldrh r3, [r2]
14877
- mov r2, #0
14878
- mov r6, r2
15241
+ add r3, r4, #872
15242
+ strh r5, [r2] @ movhi
15243
+ sub r2, r4, #1616
15244
+ str r5, [r4, #876]
15245
+ str r5, [r4, #864]
15246
+ str r5, [r4, #868]
15247
+ strh r5, [r3] @ movhi
15248
+ strh r5, [r2, #-6] @ movhi
15249
+ str r6, [sp]
1487915250 str r3, [sp, #4]
14880
-.L2546:
15251
+.L2479:
1488115252 ldr r3, [sp]
14882
- sxth r1, r2
14883
- cmp r1, r3
14884
- bge .L2548
14885
- add r1, r4, r1
14886
- str r2, [sp, #20]
14887
- str ip, [sp, #16]
14888
- ldrb r0, [r1, #-1708] @ zero_extendqisi2
14889
- mov r1, ip
15253
+ sxth r7, r5
15254
+ ldrh r3, [r3, #-12]
15255
+ cmp r7, r3
15256
+ bge .L2486
15257
+ ldr r3, .L2489+4
15258
+ mov r10, #0
15259
+ mov r6, r10
15260
+ uxth fp, r5
15261
+ ldrh r2, [r3]
15262
+ add r3, r3, #4
15263
+ ldrh r3, [r3, #62]
15264
+ b .L2487
15265
+.L2481:
15266
+ add r0, r4, r1
15267
+ mov r1, fp
15268
+ ldrb r0, [r0, #-1706] @ zero_extendqisi2
15269
+ add r10, r10, #1
15270
+ str r3, [sp, #12]
15271
+ str r2, [sp, #8]
1489015272 bl V2P_block
1489115273 bl FtlBbmIsBadBlock
15274
+ ldr r3, [sp, #12]
1489215275 cmp r0, #0
14893
- ldr r2, [sp, #20]
14894
- ldr ip, [sp, #16]
14895
- ldreq r3, [sp, #4]
14896
- add r2, r2, #1
15276
+ ldr r2, [sp, #8]
1489715277 addeq r6, r3, r6
14898
- uxtheq r6, r6
14899
- b .L2546
14900
-.L2548:
15278
+ sxtheq r6, r6
15279
+.L2487:
15280
+ sxth r1, r10
15281
+ cmp r1, r2
15282
+ blt .L2481
1490115283 cmp r6, #0
14902
- beq .L2541
14903
- sxth r1, r6
15284
+ lsl r10, r7, #1
15285
+ ldreq r3, [r4, #-1404]
15286
+ mvneq r2, #0
15287
+ strheq r2, [r3, r10] @ movhi
15288
+ beq .L2483
15289
+ mov r1, r6
1490415290 mov r0, #32768
1490515291 bl __aeabi_idiv
14906
- uxth r6, r0
14907
- b .L2542
14908
-.L2541:
14909
- sxth r7, r7
14910
- ldr r2, [r4, #-1408]
14911
- mvn r1, #0
14912
- mov r7, r7, asl #1
14913
- strh r1, [r2, r7] @ movhi
14914
-.L2542:
14915
- mov r1, r10, asl #1
15292
+ sxth r6, r0
15293
+.L2483:
1491615294 ldr r2, [r4, #-1356]
14917
- add r0, r1, r10
14918
- add r2, r2, r0, asl #1
14919
- strh r6, [r2, #4] @ movhi
14920
- ldr r2, .L2549+12
14921
- ldrh r0, [r2]
14922
- cmp r10, r0
14923
- beq .L2543
14924
- ldrh r0, [r2, #48]
14925
- cmp r10, r0
14926
- beq .L2543
14927
- ldrh r2, [r2, #96]
14928
- cmp r10, r2
14929
- beq .L2543
14930
- ldr r3, [fp, #-1408]
15295
+ add r3, r10, r7
15296
+ add r3, r2, r3, lsl #1
15297
+ strh r6, [r3, #4] @ movhi
15298
+ ldr r3, .L2489+8
15299
+ ldrh r3, [r3]
15300
+ cmp r7, r3
15301
+ beq .L2484
15302
+ ldr r3, .L2489+12
15303
+ ldrh r3, [r3]
15304
+ cmp r7, r3
15305
+ beq .L2484
15306
+ ldr r3, .L2489+16
15307
+ ldrh r3, [r3]
15308
+ cmp r7, r3
15309
+ beq .L2484
15310
+ ldr r3, [r4, #-1404]
1493115311 uxth r0, r5
14932
- ldrh r3, [r3, r1]
15312
+ ldrh r3, [r3, r10]
1493315313 cmp r3, #0
14934
- bne .L2544
15314
+ bne .L2485
1493515315 add r8, r8, #1
1493615316 uxth r8, r8
1493715317 bl INSERT_FREE_LIST
14938
- b .L2543
14939
-.L2544:
15318
+.L2484:
15319
+ add r5, r5, #1
15320
+ b .L2479
15321
+.L2485:
1494015322 add r9, r9, #1
1494115323 uxth r9, r9
1494215324 bl INSERT_DATA_LIST
14943
-.L2543:
14944
- add r5, r5, #1
14945
- b .L2538
14946
-.L2545:
14947
- ldr r3, [sp, #8]
15325
+ b .L2484
15326
+.L2486:
15327
+ ldr r3, [sp, #4]
1494815328 mov r0, #0
1494915329 strh r9, [r3] @ movhi
14950
- ldr r3, [sp, #12]
15330
+ ldr r3, .L2489+20
1495115331 strh r8, [r3] @ movhi
14952
- add sp, sp, #28
15332
+ add sp, sp, #20
1495315333 @ sp needed
14954
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14955
-.L2550:
15334
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
15335
+.L2490:
1495615336 .align 2
14957
-.L2549:
15337
+.L2489:
1495815338 .word .LANCHOR2
14959
- .word .LANCHOR2-1728
14960
- .word .LANCHOR2-1668
15339
+ .word .LANCHOR2-1732
1496115340 .word .LANCHOR2+884
15341
+ .word .LANCHOR2+932
15342
+ .word .LANCHOR2+980
15343
+ .word .LANCHOR2+880
1496215344 .fnend
1496315345 .size SupperBlkListInit, .-SupperBlkListInit
1496415346 .align 2
1496515347 .global Ftl_save_ext_data
15348
+ .syntax unified
15349
+ .arm
15350
+ .fpu softvfp
1496615351 .type Ftl_save_ext_data, %function
1496715352 Ftl_save_ext_data:
1496815353 .fnstart
1496915354 @ args = 0, pretend = 0, frame = 0
1497015355 @ frame_needed = 0, uses_anonymous_args = 0
1497115356 @ link register save eliminated.
14972
- ldr r3, .L2553
14973
- ldr r2, .L2553+4
14974
- ldr r1, [r3, #1212]
15357
+ ldr r3, .L2493
15358
+ ldr r2, .L2493+4
15359
+ ldr r1, [r3, #1204]
1497515360 cmp r1, r2
1497615361 bxne lr
14977
- ldr r2, .L2553+8
14978
- mov r0, #0
14979
- str r2, [r3, #1216]
14980
- ldr r2, [r3, #1724]
14981
- str r2, [r3, #1300]
14982
- ldr r2, [r3, #1728]
14983
- str r2, [r3, #1304]
14984
- ldr r2, .L2553+12
14985
- ldr r1, [r2, #-1608]
14986
- str r1, [r3, #1220]
14987
- ldr r1, [r2, #-1604]
14988
- str r1, [r3, #1224]
14989
- ldr r1, [r2, #-1588]
14990
- str r1, [r3, #1228]
14991
- ldr r1, [r2, #-1592]
14992
- str r1, [r3, #1232]
14993
- ldr r1, [r2, #-1580]
14994
- str r1, [r3, #1240]
14995
- ldr r1, [r2, #-1576]
14996
- str r1, [r3, #1244]
14997
- ldr r1, [r2, #-1600]
14998
- str r1, [r3, #1248]
14999
- ldr r1, [r2, #-1596]
15000
- str r1, [r3, #1252]
15001
- ldr r1, [r2, #-1572]
15002
- str r1, [r3, #1256]
15003
- ldr r1, [r2, #-1568]
15004
- str r1, [r3, #1260]
15005
- ldr r1, [r2, #-1620]
15006
- ldr r2, [r2, #-1624]
15007
- str r1, [r3, #1272]
15362
+ ldr r2, .L2493+8
1500815363 mov r1, #1
15009
- str r2, [r3, #1276]
15010
- ldr r2, .L2553+16
15364
+ mov r0, #0
15365
+ str r2, [r3, #1208]
15366
+ ldr r2, [r3, #1716]
15367
+ str r2, [r3, #1292]
15368
+ ldr r2, [r3, #1720]
15369
+ str r2, [r3, #1296]
15370
+ ldr r2, [r3, #-1604]
15371
+ str r2, [r3, #1212]
15372
+ ldr r2, [r3, #-1600]
15373
+ str r2, [r3, #1216]
15374
+ ldr r2, [r3, #-1584]
15375
+ str r2, [r3, #1220]
15376
+ ldr r2, [r3, #-1588]
15377
+ str r2, [r3, #1224]
15378
+ ldr r2, [r3, #-1576]
15379
+ str r2, [r3, #1232]
15380
+ ldr r2, [r3, #-1572]
15381
+ str r2, [r3, #1236]
15382
+ ldr r2, [r3, #-1596]
15383
+ str r2, [r3, #1240]
15384
+ ldr r2, [r3, #-1592]
15385
+ str r2, [r3, #1244]
15386
+ ldr r2, [r3, #-1568]
15387
+ str r2, [r3, #1248]
15388
+ ldr r2, [r3, #-1564]
15389
+ str r2, [r3, #1252]
15390
+ ldr r2, [r3, #-1616]
15391
+ str r2, [r3, #1264]
15392
+ ldr r2, [r3, #-1620]
15393
+ str r2, [r3, #1268]
15394
+ ldr r2, .L2493+12
1501115395 b FtlVendorPartWrite
15012
-.L2554:
15396
+.L2494:
1501315397 .align 2
15014
-.L2553:
15015
- .word .LANCHOR4
15398
+.L2493:
15399
+ .word .LANCHOR2
1501615400 .word 1179929683
1501715401 .word 1342177379
15018
- .word .LANCHOR2
15019
- .word .LANCHOR4+1212
15402
+ .word .LANCHOR2+1204
1502015403 .fnend
1502115404 .size Ftl_save_ext_data, .-Ftl_save_ext_data
1502215405 .align 2
1502315406 .global FtlEctTblFlush
15407
+ .syntax unified
15408
+ .arm
15409
+ .fpu softvfp
1502415410 .type FtlEctTblFlush, %function
1502515411 FtlEctTblFlush:
1502615412 .fnstart
1502715413 @ args = 0, pretend = 0, frame = 0
1502815414 @ frame_needed = 0, uses_anonymous_args = 0
15029
- stmfd sp!, {r3, lr}
15030
- .save {r3, lr}
15031
- ldr r3, .L2563
15032
- ldr r2, [r3, #-1872]
15415
+ ldr r3, .L2505
15416
+ ldr r2, [r3, #-1868]
1503315417 cmp r2, #0
1503415418 moveq r2, #32
15035
- beq .L2556
15036
- ldr r2, [r3, #-1568]
15419
+ beq .L2496
15420
+ ldr r2, [r3, #-1564]
1503715421 cmp r2, #39
1503815422 movhi r2, #32
1503915423 movls r2, #4
15040
-.L2556:
15041
- ldr lr, .L2563+4
15042
- movw ip, #1732
15043
- ldrh r1, [lr, ip]
15424
+.L2496:
15425
+ movw ip, #1724
15426
+ ldrh r1, [r3, ip]
1504415427 cmp r1, #31
1504515428 addls r1, r1, #1
15046
- strlsh r1, [lr, ip] @ movhi
1504715429 movls r2, #1
15430
+ strhls r1, [r3, ip] @ movhi
1504815431 cmp r0, #0
15049
- bne .L2558
15050
- ldr r1, [r3, #-1420]
15432
+ bne .L2498
15433
+ ldr r1, [r3, #-1416]
1505115434 ldr r0, [r1, #20]
1505215435 ldr r1, [r1, #16]
1505315436 add r2, r2, r0
1505415437 cmp r1, r2
15055
- bcc .L2559
15056
-.L2558:
15057
- ldr r2, [r3, #-1420]
15438
+ bcc .L2503
15439
+.L2498:
15440
+ push {r4, lr}
15441
+ .save {r4, lr}
1505815442 mov r0, #64
15443
+ ldr r2, [r3, #-1416]
1505915444 ldr r1, [r2, #16]
1506015445 str r1, [r2, #20]
15061
- ldr r1, .L2563+8
15446
+ ldr r1, .L2505+4
1506215447 str r1, [r2]
15063
- ldr r2, [r3, #-1420]
15064
- ldr r3, .L2563+12
15065
- ldrh r1, [r3, #-4]
15066
- mov r3, r1, asl #9
15448
+ ldr r2, [r3, #-1416]
15449
+ ldr r3, .L2505+8
15450
+ ldrh r1, [r3]
15451
+ lsl r3, r1, #9
1506715452 str r3, [r2, #12]
1506815453 ldr r3, [r2, #8]
1506915454 add r3, r3, #1
....@@ -15072,858 +15457,871 @@
1507215457 str r3, [r2, #4]
1507315458 bl FtlVendorPartWrite
1507415459 bl Ftl_save_ext_data
15075
-.L2559:
1507615460 mov r0, #0
15077
- ldmfd sp!, {r3, pc}
15078
-.L2564:
15461
+ pop {r4, pc}
15462
+.L2503:
15463
+ mov r0, #0
15464
+ bx lr
15465
+.L2506:
1507915466 .align 2
15080
-.L2563:
15467
+.L2505:
1508115468 .word .LANCHOR2
15082
- .word .LANCHOR4
1508315469 .word 1112818501
1508415470 .word .LANCHOR2-1424
1508515471 .fnend
1508615472 .size FtlEctTblFlush, .-FtlEctTblFlush
1508715473 .align 2
1508815474 .global Ftl_load_ext_data
15475
+ .syntax unified
15476
+ .arm
15477
+ .fpu softvfp
1508915478 .type Ftl_load_ext_data, %function
1509015479 Ftl_load_ext_data:
1509115480 .fnstart
1509215481 @ args = 0, pretend = 0, frame = 0
1509315482 @ frame_needed = 0, uses_anonymous_args = 0
15094
- stmfd sp!, {r3, r4, r5, lr}
15095
- .save {r3, r4, r5, lr}
15096
- mov r0, #0
15097
- ldr r5, .L2571
15483
+ push {r4, r5, r6, lr}
15484
+ .save {r4, r5, r6, lr}
1509815485 mov r1, #1
15099
- ldr r2, .L2571+4
15486
+ ldr r4, .L2513
15487
+ mov r0, #0
15488
+ ldr r2, .L2513+4
1510015489 bl FtlVendorPartRead
15101
- ldr r4, .L2571+8
15102
- ldr r3, [r5, #1212]
15103
- cmp r3, r4
15104
- beq .L2566
15105
- ldr r0, .L2571+4
15106
- mov r1, #0
15490
+ ldr r5, .L2513+8
15491
+ ldr r3, [r4, #1204]
15492
+ cmp r3, r5
15493
+ beq .L2508
1510715494 mov r2, #512
15495
+ mov r1, #0
15496
+ ldr r0, .L2513+4
1510815497 bl ftl_memset
15109
- str r4, [r5, #1212]
15110
-.L2566:
15111
- ldr r2, [r5, #1212]
15112
- ldr r3, .L2571
15113
- cmp r2, r4
15114
- ldr r4, .L2571+12
15115
- bne .L2567
15116
- ldr r2, [r3, #1300]
15117
- str r2, [r3, #1724]
15118
- ldr r2, [r3, #1304]
15119
- str r2, [r3, #1728]
15120
- ldr r2, [r3, #1220]
15121
- str r2, [r4, #-1608]
15122
- ldr r2, [r3, #1224]
15123
- str r2, [r4, #-1604]
15124
- ldr r2, [r3, #1228]
15125
- str r2, [r4, #-1588]
15126
- ldr r2, [r3, #1232]
15127
- str r2, [r4, #-1592]
15128
- ldr r2, [r3, #1240]
15129
- str r2, [r4, #-1580]
15130
- ldr r2, [r3, #1244]
15131
- str r2, [r4, #-1576]
15132
- ldr r2, [r3, #1248]
15133
- str r2, [r4, #-1600]
15134
- ldr r2, [r3, #1252]
15135
- str r2, [r4, #-1596]
15136
- ldr r2, [r3, #1256]
15137
- str r2, [r4, #-1572]
15138
- ldr r2, [r3, #1260]
15139
- ldr r3, [r3, #1272]
15140
- str r2, [r4, #-1568]
15498
+ str r5, [r4, #1204]
15499
+.L2508:
15500
+ ldr r3, [r4, #1204]
15501
+ cmp r3, r5
15502
+ bne .L2509
15503
+ ldr r3, [r4, #1292]
15504
+ str r3, [r4, #1716]
15505
+ ldr r3, [r4, #1296]
15506
+ str r3, [r4, #1720]
15507
+ ldr r3, [r4, #1212]
15508
+ str r3, [r4, #-1604]
15509
+ ldr r3, [r4, #1216]
15510
+ str r3, [r4, #-1600]
15511
+ ldr r3, [r4, #1220]
15512
+ str r3, [r4, #-1584]
15513
+ ldr r3, [r4, #1224]
15514
+ str r3, [r4, #-1588]
15515
+ ldr r3, [r4, #1232]
15516
+ str r3, [r4, #-1576]
15517
+ ldr r3, [r4, #1236]
15518
+ str r3, [r4, #-1572]
15519
+ ldr r3, [r4, #1240]
15520
+ str r3, [r4, #-1596]
15521
+ ldr r3, [r4, #1244]
15522
+ str r3, [r4, #-1592]
15523
+ ldr r3, [r4, #1248]
15524
+ str r3, [r4, #-1568]
15525
+ ldr r3, [r4, #1252]
15526
+ str r3, [r4, #-1564]
15527
+ ldr r3, [r4, #1264]
15528
+ str r3, [r4, #-1616]
15529
+.L2509:
15530
+ ldr r1, [r4, #1272]
15531
+ mov r3, #0
15532
+ ldr r2, .L2513+12
1514115533 str r3, [r4, #-1620]
15142
-.L2567:
15143
- ldr r0, [r5, #1280]
15144
- mov r2, #0
15145
- ldr r1, .L2571+16
15146
- ldr r3, .L2571+12
15147
- cmp r0, r1
15148
- str r2, [r4, #-1624]
15149
- bne .L2568
15150
- ldrb r1, [r3, #-2744] @ zero_extendqisi2
1515115534 cmp r1, r2
15152
- beq .L2569
15153
- ldr r3, .L2571
15154
- str r2, [r3, #1280]
15535
+ bne .L2510
15536
+ ldrb r2, [r4, #-2740] @ zero_extendqisi2
15537
+ cmp r2, r3
15538
+ beq .L2511
15539
+ str r3, [r4, #1272]
1515515540 bl Ftl_save_ext_data
15156
- b .L2568
15157
-.L2569:
15158
- ldr r0, .L2571+20
15159
- mov r2, #1
15160
- ldr r1, .L2571+24
15161
- str r2, [r3, #-1872]
15162
- bl printk
15163
-.L2568:
15164
- ldr r3, .L2571+28
15165
- ldr r2, [r4, #-1580]
15166
- ldr r0, [r4, #-1584]
15167
- ldrh r1, [r3, #-12]
15168
- mla r0, r0, r1, r2
15169
- ldrh r1, [r3, #-64]
15541
+.L2510:
15542
+ ldr r3, .L2513+16
15543
+ ldr ip, [r4, #-1580]
15544
+ ldr r2, [r4, #-1576]
15545
+ ldrh r0, [r3, #-10]
15546
+ ldrh r1, [r3, #-60]
15547
+ mla r0, ip, r0, r2
1517015548 bl __aeabi_uidiv
15171
- str r0, [r5, #1736]
15172
- ldmfd sp!, {r3, r4, r5, pc}
15173
-.L2572:
15549
+ str r0, [r4, #1728]
15550
+ pop {r4, r5, r6, pc}
15551
+.L2511:
15552
+ mov r3, #1
15553
+ ldr r1, .L2513+20
15554
+ ldr r0, .L2513+24
15555
+ str r3, [r4, #-1868]
15556
+ bl printk
15557
+ b .L2510
15558
+.L2514:
1517415559 .align 2
15175
-.L2571:
15176
- .word .LANCHOR4
15177
- .word .LANCHOR4+1212
15178
- .word 1179929683
15560
+.L2513:
1517915561 .word .LANCHOR2
15562
+ .word .LANCHOR2+1204
15563
+ .word 1179929683
1518015564 .word 305432421
15181
- .word .LC48
15182
- .word .LC70
1518315565 .word .LANCHOR2-1664
15566
+ .word .LC70
15567
+ .word .LC49
1518415568 .fnend
1518515569 .size Ftl_load_ext_data, .-Ftl_load_ext_data
1518615570 .align 2
1518715571 .global ftl_scan_all_ppa
15572
+ .syntax unified
15573
+ .arm
15574
+ .fpu softvfp
1518815575 .type ftl_scan_all_ppa, %function
1518915576 ftl_scan_all_ppa:
1519015577 .fnstart
15191
- @ args = 0, pretend = 0, frame = 0
15578
+ @ args = 0, pretend = 0, frame = 8
1519215579 @ frame_needed = 0, uses_anonymous_args = 0
15193
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
15194
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
15195
- .pad #24
15196
- sub sp, sp, #24
15197
- ldr r7, .L2592
15198
- ldr r9, .L2592+4
15199
- ldrh r4, [r7, #-6]
15200
- add r7, r7, #1664
15580
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15581
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15582
+ .pad #36
15583
+ sub sp, sp, #36
15584
+ ldr r6, .L2532
15585
+ ldrh r4, [r6, #-4]
15586
+ add r3, r6, #388
15587
+ str r3, [sp, #28]
1520115588 sub r4, r4, #16
15202
- mov r5, r7
15203
-.L2574:
15204
- ldrh r3, [r9]
15589
+ lsl r10, r4, #10
15590
+.L2516:
15591
+ ldrh r3, [r6, #-4]
15592
+ ldr r1, .L2532+4
1520515593 cmp r4, r3
15206
- bge .L2590
15207
- uxth r10, r4
15208
- mov r0, r10
15594
+ mov r5, r1
15595
+ blt .L2524
15596
+ ldr r1, .L2532+8
15597
+ ldr r0, .L2532+12
15598
+ add sp, sp, #36
15599
+ @ sp needed
15600
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15601
+ b printk
15602
+.L2524:
15603
+ uxth r8, r4
15604
+ mov r0, r8
1520915605 bl ftl_get_blk_mode
15210
- ldrb r3, [r7, #-2744] @ zero_extendqisi2
15606
+ ldrb r3, [r1, #-2740] @ zero_extendqisi2
1521115607 cmp r3, #0
15212
- beq .L2575
15213
- ldr r3, .L2592+8
15214
- ldrh r2, [r3]
15215
- cmp r4, r2
15216
- bge .L2576
15217
- ldrh r3, [r3, #74]
15608
+ beq .L2517
15609
+ ldr r3, .L2532+16
15610
+ ldrh r3, [r3]
1521815611 cmp r4, r3
15219
- blt .L2576
15220
-.L2575:
15612
+ bge .L2518
15613
+ ldr r3, .L2532+20
15614
+ ldrh r3, [r3]
15615
+ cmp r4, r3
15616
+ blt .L2518
15617
+.L2517:
1522115618 cmp r0, #1
15222
- bne .L2577
15223
-.L2576:
15224
- ldr r3, .L2592+12
15225
- mov r6, #-2147483648
15226
- ldrh r8, [r3]
15227
- b .L2578
15228
-.L2577:
15229
- ldr r3, .L2592+16
15230
- mov r6, #0
15231
- ldrh r8, [r3]
15232
-.L2578:
15619
+ ldrhne r7, [r6, #-2]
15620
+ movne r9, #0
15621
+ bne .L2520
15622
+.L2518:
15623
+ ldrh r7, [r6]
15624
+ mov r9, #-2147483648
15625
+.L2520:
15626
+ mov r3, r9
15627
+ mov r2, r7
1523315628 mov r1, r4
15234
- mov r2, r8
15235
- mov r3, r6
15236
- ldr r0, .L2592+20
15629
+ ldr r0, .L2532+24
1523715630 bl printk
15238
- mov r0, r10
15631
+ mov r0, r8
1523915632 bl FtlBbmIsBadBlock
1524015633 cmp r0, #0
15241
- beq .L2579
15242
- ldr r0, .L2592+24
15634
+ beq .L2521
15635
+ mov r3, r9
15636
+ mov r2, r7
1524315637 mov r1, r4
15244
- mov r2, r8
15245
- mov r3, r6
15638
+ ldr r0, .L2532+28
1524615639 bl printk
15247
-.L2579:
15248
- add r6, r6, r4, asl #10
15249
- mov r10, #0
15250
-.L2580:
15251
- cmp r10, r8
15252
- beq .L2591
15253
- add r3, r6, r10
15254
- str r3, [r5, #-1272]
15255
- ldr r3, [r5, #-1476]
15640
+.L2521:
15641
+ ldr fp, .L2532+32
15642
+ mov r8, #0
15643
+.L2522:
15644
+ cmp r8, r7
15645
+ addeq r4, r4, #1
15646
+ addeq r10, r10, #1024
15647
+ beq .L2516
15648
+.L2523:
15649
+ add r3, r9, r10
1525615650 mov r2, #0
15651
+ add r3, r3, r8
1525715652 mov r1, #1
15258
- ldr r0, .L2592+28
15653
+ str r3, [r5, #-1272]
15654
+ add r8, r8, #1
15655
+ ldr r3, [r5, #-1472]
15656
+ ldr r0, [sp, #28]
1525915657 str r2, [r5, #-1276]
15260
- add r10, r10, #1
1526115658 str r3, [r5, #-1268]
15262
- ldr r3, [r5, #-1444]
15659
+ ldr r3, [r5, #-1440]
1526315660 str r3, [r5, #-1264]
1526415661 bl FlashReadPages
15265
- ldr r3, [r5, #-1264]
1526615662 ldr r2, [r5, #-1268]
15267
- ldr r0, .L2592+32
15268
- ldr r1, [r3, #4]
15269
- str r1, [sp]
15270
- ldr r1, [r3, #8]
15271
- str r1, [sp, #4]
15272
- ldr r1, [r3, #12]
15273
- str r1, [sp, #8]
15274
- ldr r1, [r2]
15275
- str r1, [sp, #12]
15276
- ldr r2, [r2, #4]
15277
- str r2, [sp, #16]
15278
- ldr r1, [r5, #-1272]
15279
- ldr r2, [r5, #-1276]
15663
+ mov r0, fp
15664
+ ldr r3, [r5, #-1264]
15665
+ ldr r1, [r2, #4]
15666
+ str r1, [sp, #16]
15667
+ ldr r2, [r2]
15668
+ str r2, [sp, #12]
15669
+ ldr r2, [r3, #12]
15670
+ str r2, [sp, #8]
15671
+ ldr r2, [r3, #8]
15672
+ str r2, [sp, #4]
15673
+ ldr r2, [r3, #4]
15674
+ str r2, [sp]
1528015675 ldr r3, [r3]
15676
+ ldr r2, [r5, #-1276]
15677
+ ldr r1, [r5, #-1272]
1528115678 bl printk
15282
- b .L2580
15283
-.L2591:
15284
- add r4, r4, #1
15285
- b .L2574
15286
-.L2590:
15287
- ldr r0, .L2592+36
15288
- ldr r1, .L2592+40
15289
- add sp, sp, #24
15290
- @ sp needed
15291
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
15292
- b printk
15293
-.L2593:
15679
+ b .L2522
15680
+.L2533:
1529415681 .align 2
15295
-.L2592:
15682
+.L2532:
1529615683 .word .LANCHOR2-1664
15297
- .word .LANCHOR2-1670
15298
- .word .LANCHOR2-1728
15299
- .word .LANCHOR2-1666
15300
- .word .LANCHOR2-1668
15684
+ .word .LANCHOR2
15685
+ .word .LANCHOR3+186
15686
+ .word .LC74
15687
+ .word .LANCHOR2-1724
15688
+ .word .LANCHOR2-1652
1530115689 .word .LC71
1530215690 .word .LC72
15303
- .word .LANCHOR2-1276
1530415691 .word .LC73
15305
- .word .LC74
15306
- .word .LANCHOR3+196
1530715692 .fnend
1530815693 .size ftl_scan_all_ppa, .-ftl_scan_all_ppa
1530915694 .align 2
1531015695 .global update_multiplier_value
15696
+ .syntax unified
15697
+ .arm
15698
+ .fpu softvfp
1531115699 .type update_multiplier_value, %function
1531215700 update_multiplier_value:
1531315701 .fnstart
1531415702 @ args = 0, pretend = 0, frame = 0
1531515703 @ frame_needed = 0, uses_anonymous_args = 0
15316
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
15317
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
15704
+ ldr r3, .L2541
15705
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
15706
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
1531815707 mov r5, #0
15319
- ldr r3, .L2604
1532015708 mov r7, r0
1532115709 mov r4, r5
15322
- add r6, r3, #20
15323
- ldrh r8, [r3, #-8]
15324
- ldrh r9, [r3, #60]
15325
-.L2595:
15710
+ add r6, r3, #22
15711
+ ldrh r8, [r3, #-4]
15712
+ ldrh r9, [r3, #62]
15713
+.L2535:
1532615714 uxth r3, r5
15327
- cmp r3, r8
15328
- bcs .L2603
15329
- ldrb r0, [r6, r5] @ zero_extendqisi2
15330
- mov r1, r7
15331
- bl V2P_block
15332
- add r5, r5, #1
15333
- bl FtlBbmIsBadBlock
15334
- cmp r0, #0
15335
- addeq r4, r4, r9
15336
- uxtheq r4, r4
15337
- b .L2595
15338
-.L2603:
15715
+ cmp r8, r3
15716
+ bhi .L2537
1533915717 cmp r4, #0
15340
- beq .L2598
15718
+ moveq r0, r4
15719
+ beq .L2538
1534115720 mov r1, r4
1534215721 mov r0, #32768
1534315722 bl __aeabi_idiv
15344
- uxth r4, r0
15345
-.L2598:
15346
- ldr r3, .L2604+4
15723
+.L2538:
15724
+ ldr r3, .L2541+4
1534715725 mov r2, #6
15348
- mov r0, #0
1534915726 ldr r3, [r3, #-1356]
1535015727 mla r7, r2, r7, r3
15351
- strh r4, [r7, #4] @ movhi
15352
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
15353
-.L2605:
15728
+ strh r0, [r7, #4] @ movhi
15729
+ mov r0, #0
15730
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
15731
+.L2537:
15732
+ mov r1, r7
15733
+ ldrb r0, [r6, r5] @ zero_extendqisi2
15734
+ bl V2P_block
15735
+ bl FtlBbmIsBadBlock
15736
+ cmp r0, #0
15737
+ add r5, r5, #1
15738
+ addeq r4, r4, r9
15739
+ uxtheq r4, r4
15740
+ b .L2535
15741
+.L2542:
1535415742 .align 2
15355
-.L2604:
15743
+.L2541:
1535615744 .word .LANCHOR2-1728
1535715745 .word .LANCHOR2
1535815746 .fnend
1535915747 .size update_multiplier_value, .-update_multiplier_value
1536015748 .align 2
1536115749 .global GetFreeBlockMinEraseCount
15750
+ .syntax unified
15751
+ .arm
15752
+ .fpu softvfp
1536215753 .type GetFreeBlockMinEraseCount, %function
1536315754 GetFreeBlockMinEraseCount:
1536415755 .fnstart
1536515756 @ args = 0, pretend = 0, frame = 0
1536615757 @ frame_needed = 0, uses_anonymous_args = 0
1536715758 @ link register save eliminated.
15368
- ldr r2, .L2609
15759
+ ldr r2, .L2546
1536915760 ldr r0, [r2, #876]
1537015761 cmp r0, #0
1537115762 bxeq lr
1537215763 ldr r3, [r2, #-1356]
15373
- rsb r0, r3, r0
15374
- ldr r3, .L2609+4
15375
- mov r0, r0, asr #1
15764
+ sub r0, r0, r3
15765
+ ldr r3, .L2546+4
15766
+ asr r0, r0, #1
1537615767 mul r0, r3, r0
15377
- ldr r3, [r2, #-1416]
15768
+ ldr r3, [r2, #-1412]
1537815769 uxth r0, r0
15379
- mov r0, r0, asl #1
15770
+ lsl r0, r0, #1
1538015771 ldrh r0, [r3, r0]
1538115772 bx lr
15382
-.L2610:
15773
+.L2547:
1538315774 .align 2
15384
-.L2609:
15775
+.L2546:
1538515776 .word .LANCHOR2
1538615777 .word -1431655765
1538715778 .fnend
1538815779 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
1538915780 .align 2
1539015781 .global GetFreeBlockMaxEraseCount
15782
+ .syntax unified
15783
+ .arm
15784
+ .fpu softvfp
1539115785 .type GetFreeBlockMaxEraseCount, %function
1539215786 GetFreeBlockMaxEraseCount:
1539315787 .fnstart
1539415788 @ args = 0, pretend = 0, frame = 0
1539515789 @ frame_needed = 0, uses_anonymous_args = 0
15396
- ldr r1, .L2621
15790
+ ldr r1, .L2560
1539715791 ldr r3, [r1, #876]
1539815792 cmp r3, #0
15399
- beq .L2617
15793
+ beq .L2554
1540015794 add r2, r1, #880
15401
- stmfd sp!, {r4, r5, lr}
15795
+ push {r4, r5, lr}
1540215796 .save {r4, r5, lr}
15403
- mov r4, #6
1540415797 ldrh r2, [r2]
15798
+ mov r4, #6
1540515799 movw r5, #65535
1540615800 ldr ip, [r1, #-1356]
15407
- rsb r2, r2, r2, asl #3
15408
- rsb r3, ip, r3
15409
- mov r2, r2, asr #3
15410
- mov r3, r3, asr #1
15801
+ rsb r2, r2, r2, lsl #3
15802
+ sub r3, r3, ip
15803
+ asr r2, r2, #3
15804
+ asr r3, r3, #1
1541115805 cmp r0, r2
1541215806 uxthgt r0, r2
15413
- ldr r2, .L2621+4
15807
+ ldr r2, .L2560+4
1541415808 mul r3, r2, r3
1541515809 mov r2, #0
1541615810 uxth r3, r3
15417
-.L2614:
15811
+.L2551:
1541815812 uxth lr, r2
15419
- cmp lr, r0
15420
- bcs .L2616
15813
+ cmp r0, lr
15814
+ bls .L2553
1542115815 mul lr, r4, r3
1542215816 add r2, r2, #1
1542315817 ldrh lr, [ip, lr]
1542415818 cmp lr, r5
15425
- bne .L2618
15426
-.L2616:
15427
- ldr r2, [r1, #-1416]
15428
- mov r3, r3, asl #1
15819
+ bne .L2555
15820
+.L2553:
15821
+ ldr r2, [r1, #-1412]
15822
+ lsl r3, r3, #1
1542915823 ldrh r0, [r2, r3]
15430
- ldmfd sp!, {r4, r5, pc}
15431
-.L2618:
15824
+ pop {r4, r5, pc}
15825
+.L2555:
1543215826 mov r3, lr
15433
- b .L2614
15434
-.L2617:
15827
+ b .L2551
15828
+.L2554:
1543515829 mov r0, r3
1543615830 bx lr
15437
-.L2622:
15831
+.L2561:
1543815832 .align 2
15439
-.L2621:
15833
+.L2560:
1544015834 .word .LANCHOR2
1544115835 .word -1431655765
1544215836 .fnend
1544315837 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
1544415838 .align 2
1544515839 .global FtlPrintInfo2buf
15840
+ .syntax unified
15841
+ .arm
15842
+ .fpu softvfp
1544615843 .type FtlPrintInfo2buf, %function
1544715844 FtlPrintInfo2buf:
1544815845 .fnstart
1544915846 @ args = 0, pretend = 0, frame = 16
1545015847 @ frame_needed = 0, uses_anonymous_args = 0
15451
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
15452
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
15453
- mov r7, r0
15454
- ldr r6, .L2634
15455
- add r5, r7, #12
15456
- ldr r1, .L2634+4
15457
- .pad #32
15458
- sub sp, sp, #32
15848
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15849
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15850
+ mov r8, r0
15851
+ ldr r7, .L2575
15852
+ add r5, r8, #12
15853
+ .pad #36
15854
+ sub sp, sp, #36
15855
+ ldr r1, .L2575+4
1545915856 bl strcpy
15857
+ ldr r2, [r7, #-2768]
1546015858 mov r0, r5
15461
- ldr r1, .L2634+8
15462
- ldr r2, [r6, #-2772]
15859
+ ldr r1, .L2575+8
1546315860 bl sprintf
15464
- ldr r1, .L2634+12
15465
- ldr r2, [r6, #-1652]
1546615861 add r5, r5, r0
15862
+ ldr r2, [r7, #-1648]
1546715863 mov r0, r5
15864
+ ldr r1, .L2575+12
1546815865 bl sprintf
15469
- ldr r3, .L2634+16
15470
- ldr r3, [r3, #3444]
15866
+ ldr r3, .L2575+16
15867
+ add r5, r5, r0
15868
+ ldr r3, [r3, #3440]
1547115869 cmp r3, #1
15472
- add r4, r5, r0
15473
- bne .L2629
15474
- add r0, sp, #16
15475
- add r1, sp, #20
15476
- add r2, sp, #24
15870
+ subne r0, r5, r8
15871
+ bne .L2562
1547715872 add r3, sp, #28
15873
+ add r2, sp, #24
15874
+ add r1, sp, #20
15875
+ add r0, sp, #16
1547815876 bl NandcGetTimeCfg
15479
- mov r0, r4
15480
- ldr r1, .L2634+20
15481
- add r10, r6, #880
15482
- ldr r8, .L2634+24
15483
- add r9, r6, #816
15484
- ldr r3, [sp, #24]
15485
- ldr r2, [sp, #16]
15486
- str r3, [sp]
1548715877 ldr r3, [sp, #28]
15878
+ mov r0, r5
15879
+ ldr r2, [sp, #16]
15880
+ sub r4, r7, #1344
15881
+ ldr r1, .L2575+20
15882
+ add r9, r7, #880
1548815883 str r3, [sp, #4]
15884
+ ldr r3, [sp, #24]
15885
+ str r3, [sp]
1548915886 ldr r3, [sp, #20]
1549015887 bl sprintf
15491
- ldr r1, .L2634+28
15492
- add r4, r4, r0
15493
- add r5, r4, #10
15494
- mov r0, r4
15495
- sub r4, r6, #1344
15888
+ add r6, r5, r0
15889
+ ldr r1, .L2575+24
15890
+ mov r0, r6
15891
+ add r6, r6, #10
1549615892 bl strcpy
15497
- mov r0, r5
15498
- ldr r1, .L2634+32
15499
- ldr r2, [r6, #-1284]
15893
+ ldr r2, [r7, #-1284]
15894
+ mov r0, r6
15895
+ ldr r1, .L2575+28
15896
+ add r5, r7, #816
1550015897 bl sprintf
15501
- ldr r1, .L2634+36
15502
- ldr r2, [r6, #1124]
15503
- add r5, r5, r0
15504
- mov r0, r5
15898
+ add r6, r6, r0
15899
+ ldr r2, [r7, #1124]
15900
+ ldr r1, .L2575+32
15901
+ mov r0, r6
1550515902 bl sprintf
15506
- ldr r1, .L2634+40
15507
- ldr r2, [r6, #-1588]
15508
- add r5, r5, r0
15509
- mov r0, r5
15903
+ add r6, r6, r0
15904
+ ldr r2, [r7, #-1584]
15905
+ ldr r1, .L2575+36
15906
+ mov r0, r6
1551015907 bl sprintf
15511
- ldr r1, .L2634+44
15512
- ldr r2, [r6, #-1600]
15513
- add r5, r5, r0
15514
- mov r0, r5
15908
+ add r6, r6, r0
15909
+ ldr r2, [r7, #-1596]
15910
+ ldr r1, .L2575+40
15911
+ mov r0, r6
1551515912 bl sprintf
15516
- ldr r1, .L2634+48
15517
- ldr r2, [r6, #-1604]
15518
- add r5, r5, r0
15519
- mov r0, r5
15913
+ add r6, r6, r0
15914
+ ldr r2, [r7, #-1600]
15915
+ ldr r1, .L2575+44
15916
+ mov r0, r6
1552015917 bl sprintf
15521
- ldr r1, .L2634+52
15522
- ldr r2, [r6, #-1596]
15523
- add r5, r5, r0
15524
- mov r0, r5
15918
+ add r6, r6, r0
15919
+ ldr r2, [r7, #-1592]
15920
+ ldr r1, .L2575+48
15921
+ mov r0, r6
1552515922 bl sprintf
15526
- ldr r1, .L2634+56
15527
- ldr r2, [r6, #-1592]
15528
- add r5, r5, r0
15529
- mov r0, r5
15923
+ add r6, r6, r0
15924
+ ldr r2, [r7, #-1588]
15925
+ ldr r1, .L2575+52
15926
+ mov r0, r6
1553015927 bl sprintf
15531
- ldr r1, .L2634+60
15532
- ldr r2, [r6, #-1608]
15533
- add r5, r5, r0
15534
- mov r0, r5
15928
+ add r6, r6, r0
15929
+ ldr r2, [r7, #-1604]
15930
+ ldr r1, .L2575+56
15931
+ mov r0, r6
1553515932 bl sprintf
15536
- ldr r2, [r8, #1724]
15537
- ldr r1, .L2634+64
15538
- mov r2, r2, lsr #11
15539
- add r5, r5, r0
15540
- mov r0, r5
15933
+ ldr r2, [r7, #1716]
15934
+ add r6, r6, r0
15935
+ ldr r1, .L2575+60
15936
+ mov r0, r6
15937
+ lsr r2, r2, #11
1554115938 bl sprintf
15542
- ldr r2, [r8, #1728]
15543
- ldr r1, .L2634+68
15544
- mov r2, r2, lsr #11
15545
- add r5, r5, r0
15546
- mov r0, r5
15939
+ ldr r2, [r7, #1720]
15940
+ add r6, r6, r0
15941
+ ldr r1, .L2575+64
15942
+ mov r0, r6
15943
+ lsr r2, r2, #11
1554715944 bl sprintf
15548
- ldr r1, .L2634+72
15549
- ldr r2, [r6, #-1616]
15550
- add r5, r5, r0
15551
- mov r0, r5
15945
+ add r6, r6, r0
15946
+ ldr r2, [r7, #-1612]
15947
+ ldr r1, .L2575+68
15948
+ mov r0, r6
1555215949 bl sprintf
15553
- ldr r1, .L2634+76
15554
- ldr r2, [r6, #-1612]
15555
- add r5, r5, r0
15556
- mov r0, r5
15950
+ add r6, r6, r0
15951
+ ldr r2, [r7, #-1608]
15952
+ ldr r1, .L2575+72
15953
+ mov r0, r6
1555715954 bl sprintf
15558
- add r5, r5, r0
15955
+ add r6, r6, r0
1555915956 bl FtlBbtCalcTotleCnt
1556015957 ldrh r2, [r4, #2]
15561
- ldr r1, .L2634+80
1556215958 mov r3, r0
15563
- mov r0, r5
15959
+ ldr r1, .L2575+76
15960
+ mov r0, r6
1556415961 bl sprintf
15565
- ldr r1, .L2634+84
15566
- ldrh r2, [r10]
15567
- add r5, r5, r0
15568
- mov r0, r5
15962
+ add r6, r6, r0
15963
+ ldrh r2, [r9]
15964
+ ldr r1, .L2575+80
15965
+ mov r0, r6
1556915966 bl sprintf
15570
- ldr r1, .L2634+88
15571
- ldr r2, [r6, #-1584]
15572
- add r5, r5, r0
15573
- mov r0, r5
15967
+ add r6, r6, r0
15968
+ ldr r2, [r7, #-1580]
15969
+ ldr r1, .L2575+84
15970
+ mov r0, r6
1557415971 bl sprintf
15575
- ldr r1, .L2634+92
15576
- ldr r2, [r6, #-1580]
15577
- add r5, r5, r0
15578
- mov r0, r5
15972
+ add r6, r6, r0
15973
+ ldr r2, [r7, #-1576]
15974
+ ldr r1, .L2575+88
15975
+ mov r0, r6
1557915976 bl sprintf
15580
- ldr r1, .L2634+96
15581
- ldr r2, [r8, #1736]
15582
- add r5, r5, r0
15583
- mov r0, r5
15977
+ add r6, r6, r0
15978
+ ldr r2, [r7, #1728]
15979
+ ldr r1, .L2575+92
15980
+ mov r0, r6
1558415981 bl sprintf
15585
- ldr r1, .L2634+100
15586
- ldr r2, [r6, #-1576]
15587
- add r5, r5, r0
15588
- mov r0, r5
15982
+ add r6, r6, r0
15983
+ ldr r2, [r7, #-1572]
15984
+ ldr r1, .L2575+96
15985
+ mov r0, r6
1558915986 bl sprintf
15590
- ldr r1, .L2634+104
15591
- ldr r2, [r6, #-1572]
15592
- add r5, r5, r0
15593
- mov r0, r5
15987
+ add r6, r6, r0
15988
+ ldr r2, [r7, #-1568]
15989
+ ldr r1, .L2575+100
15990
+ mov r0, r6
1559415991 bl sprintf
15595
- ldr r1, .L2634+108
15596
- ldr r2, [r6, #-1568]
15597
- add r5, r5, r0
15598
- mov r0, r5
15992
+ add r6, r6, r0
15993
+ ldr r2, [r7, #-1564]
15994
+ ldr r1, .L2575+104
15995
+ mov r0, r6
1559915996 bl sprintf
15600
- ldrh r2, [r9, #30]
15601
- ldr r1, .L2634+112
15602
- add r5, r5, r0
15603
- mov r0, r5
15997
+ add r6, r6, r0
15998
+ ldrh r2, [r5, #30]
15999
+ ldr r1, .L2575+108
16000
+ mov r0, r6
1560416001 bl sprintf
15605
- ldrh r2, [r9, #28]
15606
- ldr r1, .L2634+116
15607
- movw r9, #1164
15608
- add r5, r5, r0
15609
- mov r0, r5
16002
+ add r6, r6, r0
16003
+ ldrh r2, [r5, #28]
16004
+ ldr r1, .L2575+112
16005
+ mov r0, r6
1561016006 bl sprintf
15611
- ldr r1, .L2634+120
15612
- ldr r2, [r6, #-2740]
15613
- add r5, r5, r0
15614
- mov r0, r5
16007
+ add r6, r6, r0
16008
+ ldr r2, [r7, #-2736]
16009
+ ldr r1, .L2575+116
16010
+ mov r0, r6
1561516011 bl sprintf
15616
- ldr r1, .L2634+124
15617
- ldr r2, [r6, #-1636]
15618
- add r5, r5, r0
15619
- mov r0, r5
16012
+ add r6, r6, r0
16013
+ ldr r2, [r7, #-1632]
16014
+ ldr r1, .L2575+120
16015
+ mov r0, r6
1562016016 bl sprintf
15621
- ldr r1, .L2634+128
15622
- ldr r2, [r6, #-1740]
15623
- add r5, r5, r0
15624
- mov r0, r5
16017
+ add r6, r6, r0
16018
+ ldr r2, [r7, #-1736]
16019
+ ldr r1, .L2575+124
16020
+ mov r0, r6
1562516021 bl sprintf
16022
+ add r6, r6, r0
1562616023 ldrh r2, [r4, #110]
15627
- ldr r1, .L2634+132
15628
- add r5, r5, r0
15629
- mov r0, r5
16024
+ ldr r1, .L2575+128
16025
+ mov r0, r6
1563016026 bl sprintf
15631
- sub r3, r6, #1728
15632
- ldr r1, .L2634+136
16027
+ sub r3, r7, #1712
16028
+ add r6, r6, r0
16029
+ ldrh r2, [r3, #-12]
16030
+ mov r0, r6
16031
+ ldr r1, .L2575+132
16032
+ movw r5, #1156
16033
+ bl sprintf
16034
+ add r3, r7, #1152
16035
+ add r6, r6, r0
1563316036 ldrh r2, [r3]
15634
- add r5, r5, r0
15635
- mov r0, r5
16037
+ mov r0, r6
16038
+ ldr r1, .L2575+136
1563616039 bl sprintf
15637
- movw r3, #1160
15638
- ldrh r2, [r8, r3]
15639
- ldr r1, .L2634+140
15640
- add r5, r5, r0
15641
- mov r0, r5
15642
- bl sprintf
15643
- ldr r1, .L2634+144
15644
- ldr r2, [r6, #-1724]
15645
- add r5, r5, r0
15646
- mov r0, r5
16040
+ add r6, r6, r0
16041
+ ldr r2, [r7, #-1720]
16042
+ ldr r1, .L2575+140
16043
+ mov r0, r6
1564716044 bl sprintf
1564816045 movw r3, #1128
15649
- ldrh r2, [r6, r3]
15650
- ldr r1, .L2634+148
15651
- add r5, r5, r0
15652
- mov r0, r5
16046
+ add r6, r6, r0
16047
+ ldrh r2, [r7, r3]
16048
+ mov r0, r6
16049
+ ldr r1, .L2575+144
1565316050 bl sprintf
16051
+ add r6, r6, r0
1565416052 ldrh r2, [r4, #-4]
15655
- ldr r1, .L2634+152
15656
- add r4, r6, #884
15657
- add r5, r5, r0
15658
- mov r0, r5
16053
+ ldr r1, .L2575+148
16054
+ mov r0, r6
1565916055 bl sprintf
16056
+ add r4, r7, #884
16057
+ add r6, r6, r0
1566016058 ldrh r2, [r4, #2]
15661
- ldr r1, .L2634+156
15662
- add r5, r5, r0
15663
- mov r0, r5
16059
+ mov r0, r6
16060
+ ldr r1, .L2575+152
1566416061 bl sprintf
15665
- ldr r1, .L2634+160
15666
- ldrb r2, [r6, #890] @ zero_extendqisi2
15667
- add r5, r5, r0
15668
- mov r0, r5
16062
+ add r6, r6, r0
16063
+ ldrb r2, [r7, #890] @ zero_extendqisi2
16064
+ ldr r1, .L2575+156
16065
+ mov r0, r6
1566916066 bl sprintf
16067
+ add r6, r6, r0
1567016068 ldrh r2, [r4]
15671
- ldr r1, .L2634+164
15672
- add r5, r5, r0
15673
- mov r0, r5
16069
+ ldr r1, .L2575+160
16070
+ mov r0, r6
1567416071 bl sprintf
15675
- ldr r1, .L2634+168
15676
- ldrb r2, [r6, #892] @ zero_extendqisi2
15677
- add r5, r5, r0
15678
- mov r0, r5
16072
+ add r6, r6, r0
16073
+ ldrb r2, [r7, #892] @ zero_extendqisi2
16074
+ ldr r1, .L2575+164
16075
+ mov r0, r6
1567916076 bl sprintf
16077
+ add r6, r6, r0
1568016078 ldrh r2, [r4, #4]
15681
- ldr r1, .L2634+172
15682
- add r5, r5, r0
15683
- mov r0, r5
16079
+ ldr r1, .L2575+168
16080
+ mov r0, r6
1568416081 bl sprintf
1568516082 ldrh r3, [r4]
15686
- ldr r2, [r6, #-1408]
15687
- add r4, r6, #932
15688
- ldr r1, .L2634+176
15689
- mov r3, r3, asl #1
16083
+ add r6, r6, r0
16084
+ ldr r2, [r7, #-1404]
16085
+ mov r0, r6
16086
+ ldr r1, .L2575+172
16087
+ add r4, r7, #932
16088
+ lsl r3, r3, #1
1569016089 ldrh r2, [r2, r3]
15691
- add r5, r5, r0
15692
- mov r0, r5
1569316090 bl sprintf
16091
+ add r6, r6, r0
1569416092 ldrh r2, [r4, #2]
15695
- ldr r1, .L2634+180
15696
- add r5, r5, r0
15697
- mov r0, r5
16093
+ ldr r1, .L2575+176
16094
+ mov r0, r6
1569816095 bl sprintf
15699
- ldr r1, .L2634+184
15700
- ldrb r2, [r6, #938] @ zero_extendqisi2
15701
- add r5, r5, r0
15702
- mov r0, r5
16096
+ add r6, r6, r0
16097
+ ldrb r2, [r7, #938] @ zero_extendqisi2
16098
+ ldr r1, .L2575+180
16099
+ mov r0, r6
1570316100 bl sprintf
16101
+ add r6, r6, r0
1570416102 ldrh r2, [r4]
15705
- ldr r1, .L2634+188
15706
- add r5, r5, r0
15707
- mov r0, r5
16103
+ ldr r1, .L2575+184
16104
+ mov r0, r6
1570816105 bl sprintf
15709
- ldr r1, .L2634+192
15710
- ldrb r2, [r6, #940] @ zero_extendqisi2
15711
- add r5, r5, r0
15712
- mov r0, r5
16106
+ add r6, r6, r0
16107
+ ldrb r2, [r7, #940] @ zero_extendqisi2
16108
+ ldr r1, .L2575+188
16109
+ mov r0, r6
1571316110 bl sprintf
16111
+ add r6, r6, r0
1571416112 ldrh r2, [r4, #4]
15715
- ldr r1, .L2634+196
15716
- add r5, r5, r0
15717
- mov r0, r5
16113
+ ldr r1, .L2575+192
16114
+ mov r0, r6
1571816115 bl sprintf
1571916116 ldrh r3, [r4]
15720
- ldr r2, [r6, #-1408]
15721
- add r4, r6, #980
15722
- ldr r1, .L2634+200
15723
- mov r3, r3, asl #1
16117
+ add r6, r6, r0
16118
+ ldr r2, [r7, #-1404]
16119
+ mov r0, r6
16120
+ ldr r1, .L2575+196
16121
+ add r4, r7, #980
16122
+ lsl r3, r3, #1
1572416123 ldrh r2, [r2, r3]
15725
- add r5, r5, r0
15726
- mov r0, r5
1572716124 bl sprintf
16125
+ add r6, r6, r0
1572816126 ldrh r2, [r4, #2]
15729
- ldr r1, .L2634+204
15730
- add r5, r5, r0
15731
- mov r0, r5
16127
+ ldr r1, .L2575+200
16128
+ mov r0, r6
1573216129 bl sprintf
15733
- ldr r1, .L2634+208
15734
- ldrb r2, [r6, #986] @ zero_extendqisi2
15735
- add r5, r5, r0
15736
- mov r0, r5
16130
+ add r6, r6, r0
16131
+ ldrb r2, [r7, #986] @ zero_extendqisi2
16132
+ ldr r1, .L2575+204
16133
+ mov r0, r6
1573716134 bl sprintf
16135
+ add r6, r6, r0
1573816136 ldrh r2, [r4]
15739
- ldr r1, .L2634+212
15740
- add r5, r5, r0
15741
- mov r0, r5
16137
+ ldr r1, .L2575+208
16138
+ mov r0, r6
1574216139 bl sprintf
15743
- ldr r1, .L2634+216
15744
- ldrb r2, [r6, #988] @ zero_extendqisi2
15745
- add r5, r5, r0
15746
- mov r0, r5
16140
+ add r6, r6, r0
16141
+ ldrb r2, [r7, #988] @ zero_extendqisi2
16142
+ ldr r1, .L2575+212
16143
+ mov r0, r6
1574716144 bl sprintf
16145
+ add r6, r6, r0
1574816146 ldrh r2, [r4, #4]
15749
- ldr r1, .L2634+220
15750
- ldr r4, .L2634+224
15751
- add r5, r5, r0
15752
- mov r0, r5
16147
+ ldr r1, .L2575+216
16148
+ mov r0, r6
1575316149 bl sprintf
15754
- ldrh r2, [r4, #2]
15755
- ldr r1, .L2634+228
15756
- add r5, r5, r0
15757
- mov r0, r5
16150
+ add r6, r6, r0
16151
+ ldrh r2, [r4, #178]
16152
+ ldr r1, .L2575+220
16153
+ mov r0, r6
1575816154 bl sprintf
15759
- ldr r1, .L2634+232
15760
- ldrb r2, [r8, #1170] @ zero_extendqisi2
15761
- add r5, r5, r0
15762
- mov r0, r5
16155
+ add r6, r6, r0
16156
+ ldrb r2, [r7, #1162] @ zero_extendqisi2
16157
+ ldr r1, .L2575+224
16158
+ mov r0, r6
1576316159 bl sprintf
15764
- ldr r1, .L2634+236
15765
- ldrh r2, [r8, r9]
15766
- add r5, r5, r0
15767
- mov r0, r5
16160
+ add r6, r6, r0
16161
+ ldrh r2, [r7, r5]
16162
+ ldr r1, .L2575+228
16163
+ mov r0, r6
1576816164 bl sprintf
15769
- ldr r1, .L2634+240
15770
- ldrb r2, [r8, #1172] @ zero_extendqisi2
15771
- add r5, r5, r0
15772
- mov r0, r5
16165
+ add r6, r6, r0
16166
+ ldrb r2, [r7, #1164] @ zero_extendqisi2
16167
+ ldr r1, .L2575+232
16168
+ mov r0, r6
1577316169 bl sprintf
15774
- ldrh r2, [r4, #4]
15775
- ldr r1, .L2634+244
15776
- add r5, r5, r0
15777
- mov r0, r5
16170
+ add r6, r6, r0
16171
+ ldrh r2, [r4, #180]
16172
+ ldr r1, .L2575+236
16173
+ mov r0, r6
1577816174 bl sprintf
15779
- ldr r1, [r8, #1296]
15780
- ldr r2, [r6, #-1620]
15781
- ldr r3, [r6, #-1872]
15782
- orr r2, r3, r2, asl #8
15783
- str r1, [sp]
15784
- add r5, r5, r0
15785
- ldr r1, [r8, #1288]
15786
- mov r0, r5
15787
- str r1, [sp, #4]
15788
- ldr r1, .L2634+248
15789
- ldr r3, [r8, #1292]
16175
+ ldr r3, [r7, #1280]
16176
+ add r6, r6, r0
16177
+ ldr r1, [r7, #-1616]
16178
+ mov r0, r6
16179
+ ldr r2, [r7, #-1868]
16180
+ str r3, [sp, #4]
16181
+ ldr r3, [r7, #1288]
16182
+ orr r2, r2, r1, lsl #8
16183
+ ldr r1, .L2575+240
16184
+ str r3, [sp]
16185
+ ldr r3, [r7, #1284]
1579016186 bl sprintf
15791
- ldr r1, .L2634+252
15792
- ldr r2, [r8, #1284]
15793
- add r4, r5, r0
15794
- sub r5, r6, #1520
16187
+ add r4, r6, r0
16188
+ ldr r2, [r7, #1276]
16189
+ ldr r1, .L2575+244
1579516190 mov r0, r4
1579616191 bl sprintf
15797
- ldr r1, .L2634+256
15798
- ldr r2, [r8, #1308]
1579916192 add r4, r4, r0
16193
+ ldr r2, [r7, #1300]
16194
+ ldr r1, .L2575+248
1580016195 mov r0, r4
1580116196 bl sprintf
15802
- ldr r1, .L2634+260
15803
- ldrh r2, [r5, #-12]
16197
+ sub r6, r7, #1520
1580416198 add r4, r4, r0
16199
+ ldrh r2, [r6, #-8]
16200
+ mov r0, r4
16201
+ ldr r1, .L2575+252
16202
+ bl sprintf
16203
+ add r4, r4, r0
16204
+ ldrh r2, [r6, #-6]
16205
+ ldr r1, .L2575+256
1580516206 mov r0, r4
1580616207 bl sprintf
15807
- ldr r1, .L2634+264
15808
- ldrh r2, [r5, #-10]
1580916208 add r4, r4, r0
16209
+ ldr r2, [r7, #-1544]
16210
+ ldr r1, .L2575+260
1581016211 mov r0, r4
1581116212 bl sprintf
15812
- ldr r1, .L2634+268
15813
- ldr r2, [r6, #-1548]
1581416213 add r4, r4, r0
15815
- mov r0, r4
15816
- bl sprintf
15817
- ldr r1, .L2634+272
15818
- ldrh r2, [r5, #-8]
15819
- add r4, r4, r0
16214
+ ldrh r2, [r6, #-4]
16215
+ ldr r1, .L2575+264
1582016216 mov r0, r4
1582116217 bl sprintf
1582216218 add r4, r4, r0
1582316219 bl GetFreeBlockMinEraseCount
15824
- ldr r1, .L2634+276
16220
+ ldr r1, .L2575+268
1582516221 mov r2, r0
1582616222 mov r0, r4
1582716223 bl sprintf
1582816224 add r4, r4, r0
15829
- ldrh r0, [r10]
16225
+ ldrh r0, [r9]
1583016226 bl GetFreeBlockMaxEraseCount
15831
- ldr r1, .L2634+280
16227
+ ldr r1, .L2575+272
1583216228 mov r2, r0
1583316229 mov r0, r4
1583416230 bl sprintf
15835
- ldrh r3, [r8, r9]
16231
+ ldrh r3, [r7, r5]
1583616232 movw r2, #65535
15837
- cmp r3, r2
1583816233 add r4, r4, r0
15839
- beq .L2626
15840
- ldr r2, [r6, #-1408]
15841
- mov r3, r3, asl #1
16234
+ cmp r3, r2
16235
+ beq .L2565
16236
+ ldr r2, [r7, #-1404]
16237
+ lsl r3, r3, #1
1584216238 mov r0, r4
15843
- ldr r1, .L2634+284
16239
+ ldr r1, .L2575+276
1584416240 ldrh r2, [r2, r3]
1584516241 bl sprintf
1584616242 add r4, r4, r0
15847
-.L2626:
16243
+.L2565:
1584816244 mov r0, #0
15849
- mov r5, #0
16245
+ ldr r9, .L2575+280
1585016246 bl List_get_gc_head_node
15851
- movw r10, #65535
15852
- mov r9, #6
1585316247 uxth r3, r0
15854
-.L2628:
15855
- cmp r3, r10
15856
- beq .L2627
15857
- ldr r2, [r6, #-1408]
15858
- mov r1, r3, asl #1
15859
- mul r8, r9, r3
16248
+ mov r5, #0
16249
+ movw fp, #65535
16250
+ mov r10, #6
16251
+.L2567:
16252
+ cmp r3, fp
16253
+ beq .L2566
16254
+ ldr r2, [r7, #-1412]
16255
+ lsl r1, r3, #1
16256
+ mul r6, r10, r3
1586016257 mov r0, r4
1586116258 ldrh r2, [r2, r1]
15862
- str r2, [sp]
15863
- ldr r2, [r6, #-1356]
15864
- add r2, r2, r8
16259
+ str r2, [sp, #8]
16260
+ ldr r2, [r7, #-1356]
16261
+ add r2, r2, r6
1586516262 ldrh r2, [r2, #4]
1586616263 str r2, [sp, #4]
15867
- ldr r2, [r6, #-1416]
16264
+ ldr r2, [r7, #-1404]
1586816265 ldrh r2, [r2, r1]
15869
- ldr r1, .L2634+288
15870
- str r2, [sp, #8]
16266
+ mov r1, r9
16267
+ str r2, [sp]
1587116268 mov r2, r5
1587216269 bl sprintf
1587316270 add r5, r5, #1
15874
- ldr r3, [r6, #-1356]
16271
+ ldr r3, [r7, #-1356]
1587516272 cmp r5, #16
15876
- ldrh r3, [r3, r8]
1587716273 add r4, r4, r0
15878
- bne .L2628
15879
-.L2627:
15880
- ldr r2, [r6, #-1356]
16274
+ ldrh r3, [r3, r6]
16275
+ bne .L2567
16276
+.L2566:
16277
+ ldr r2, [r7, #-1356]
1588116278 mov r5, #0
15882
- ldr r3, [r6, #876]
15883
- movw r10, #65535
15884
- mov r9, #6
15885
- rsb r3, r2, r3
15886
- ldr r2, .L2634+292
15887
- mov r3, r3, asr #1
16279
+ ldr r3, [r7, #876]
16280
+ movw r9, #65535
16281
+ ldr fp, .L2575+284
16282
+ mov r10, #6
16283
+ sub r3, r3, r2
16284
+ ldr r2, .L2575+288
16285
+ asr r3, r3, #1
1588816286 mul r3, r2, r3
1588916287 uxth r3, r3
15890
-.L2630:
15891
- cmp r3, r10
15892
- beq .L2629
15893
- mul r8, r9, r3
15894
- ldr r2, [r6, #-1356]
15895
- ldr r1, [r6, #-1416]
16288
+.L2569:
16289
+ cmp r3, r9
16290
+ beq .L2568
16291
+ ldr r1, [r7, #-1412]
16292
+ lsl r2, r3, #1
16293
+ mul r6, r10, r3
1589616294 mov r0, r4
15897
- add r2, r2, r8
16295
+ ldrh r2, [r1, r2]
16296
+ mov r1, fp
16297
+ str r2, [sp, #4]
16298
+ ldr r2, [r7, #-1356]
16299
+ add r2, r2, r6
1589816300 ldrh r2, [r2, #4]
1589916301 str r2, [sp]
15900
- mov r2, r3, asl #1
15901
- ldrh r2, [r1, r2]
15902
- ldr r1, .L2634+296
15903
- str r2, [sp, #4]
1590416302 mov r2, r5
15905
- bl sprintf
1590616303 add r5, r5, #1
15907
- ldr r3, [r6, #-1356]
16304
+ bl sprintf
1590816305 cmp r5, #4
15909
- ldrh r3, [r3, r8]
1591016306 add r4, r4, r0
15911
- bne .L2630
15912
-.L2629:
15913
- rsb r0, r7, r4
15914
- add sp, sp, #32
16307
+ ldrne r3, [r7, #-1356]
16308
+ ldrhne r3, [r3, r6]
16309
+ bne .L2569
16310
+.L2568:
16311
+ sub r0, r4, r8
16312
+.L2562:
16313
+ add sp, sp, #36
1591516314 @ sp needed
15916
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
15917
-.L2635:
16315
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16316
+.L2576:
1591816317 .align 2
15919
-.L2634:
16318
+.L2575:
1592016319 .word .LANCHOR2
1592116320 .word .LC75
1592216321 .word .LC76
1592316322 .word .LC77
1592416323 .word .LANCHOR1
1592516324 .word .LC78
15926
- .word .LANCHOR4
1592716325 .word .LC79
1592816326 .word .LC80
1592916327 .word .LC81
....@@ -15973,7 +16371,6 @@
1597316371 .word .LC125
1597416372 .word .LC126
1597516373 .word .LC127
15976
- .word .LANCHOR4+1164
1597716374 .word .LC128
1597816375 .word .LC129
1597916376 .word .LC130
....@@ -15990,236 +16387,239 @@
1599016387 .word .LC141
1599116388 .word .LC142
1599216389 .word .LC143
15993
- .word -1431655765
1599416390 .word .LC144
16391
+ .word -1431655765
1599516392 .fnend
1599616393 .size FtlPrintInfo2buf, .-FtlPrintInfo2buf
1599716394 .align 2
1599816395 .global ftl_proc_ftl_read
16396
+ .syntax unified
16397
+ .arm
16398
+ .fpu softvfp
1599916399 .type ftl_proc_ftl_read, %function
1600016400 ftl_proc_ftl_read:
1600116401 .fnstart
1600216402 @ args = 0, pretend = 0, frame = 0
1600316403 @ frame_needed = 0, uses_anonymous_args = 0
16004
- stmfd sp!, {r3, r4, r5, lr}
16005
- .save {r3, r4, r5, lr}
16404
+ push {r4, r5, r6, lr}
16405
+ .save {r4, r5, r6, lr}
1600616406 mov r5, r0
16007
- ldr r1, .L2638
16008
- ldr r2, .L2638+4
16407
+ ldr r2, .L2579
16408
+ ldr r1, .L2579+4
1600916409 bl sprintf
1601016410 add r4, r5, r0
1601116411 mov r0, r4
1601216412 bl FtlPrintInfo2buf
1601316413 add r0, r4, r0
16014
- rsb r0, r5, r0
16015
- ldmfd sp!, {r3, r4, r5, pc}
16016
-.L2639:
16414
+ sub r0, r0, r5
16415
+ pop {r4, r5, r6, pc}
16416
+.L2580:
1601716417 .align 2
16018
-.L2638:
16019
- .word .LC48
16418
+.L2579:
1602016419 .word .LC145
16420
+ .word .LC49
1602116421 .fnend
1602216422 .size ftl_proc_ftl_read, .-ftl_proc_ftl_read
1602316423 .align 2
1602416424 .global GetSwlReplaceBlock
16425
+ .syntax unified
16426
+ .arm
16427
+ .fpu softvfp
1602516428 .type GetSwlReplaceBlock, %function
1602616429 GetSwlReplaceBlock:
1602716430 .fnstart
1602816431 @ args = 0, pretend = 0, frame = 8
1602916432 @ frame_needed = 0, uses_anonymous_args = 0
16030
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
16433
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1603116434 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1603216435 .pad #28
1603316436 sub sp, sp, #28
16034
- ldr r5, .L2670
16035
- ldr r4, .L2670+4
16036
- ldr r6, [r5, #1736]
16037
- ldr r3, [r4, #-1568]
16038
- cmp r6, r3
16039
- bcs .L2641
16040
- sub r3, r4, #1728
16041
- mov r6, #0
16042
- str r6, [r4, #-1584]
16043
- ldrh r1, [r3]
16044
- ldr r3, [r4, #-1416]
16045
- sub r3, r3, #2
16046
-.L2642:
16047
- cmp r6, r1
16048
- bcs .L2669
16049
- ldrh r2, [r3, #2]!
16050
- add r6, r6, #1
16051
- ldr r0, [r4, #-1584]
16052
- add r2, r2, r0
16053
- str r2, [r4, #-1584]
16054
- b .L2642
16055
-.L2669:
16056
- ldr r6, [r4, #-1584]
16057
- mov r0, r6
16058
- bl __aeabi_uidiv
16059
- ldr r3, .L2670+8
16060
- ldrh r1, [r3, #-12]
16061
- str r0, [r5, #1736]
16062
- ldr r0, [r4, #-1580]
16063
- rsb r0, r0, r6
16064
- bl __aeabi_uidiv
16065
- str r0, [r4, #-1584]
16066
- b .L2644
16067
-.L2641:
16068
- ldr r3, [r4, #-1572]
16069
- cmp r6, r3
16070
- bls .L2644
16071
- add r3, r3, #1
16072
- mov ip, r4
16073
- str r3, [r4, #-1572]
16437
+ ldr r4, .L2609
16438
+ ldr r2, [r4, #1728]
16439
+ ldr r3, [r4, #-1564]
16440
+ cmp r2, r3
16441
+ bcs .L2582
16442
+ sub r2, r4, #1712
1607416443 mov r3, #0
16075
-.L2646:
16076
- ldr r2, .L2670+12
16077
- ldrh r2, [r2]
16078
- cmp r3, r2
16079
- bcs .L2644
16080
- ldr r0, [ip, #-1416]
16081
- mov r1, r3, asl #1
16082
- add r3, r3, #1
16083
- ldrh r2, [r0, r1]
16084
- add r2, r2, #1
16085
- strh r2, [r0, r1] @ movhi
16086
- b .L2646
16087
-.L2644:
16088
- ldr r6, [r4, #-1568]
16089
- ldr r8, [r5, #1736]
16090
- add r3, r6, #256
16091
- ldr r2, .L2670+4
16092
- cmp r3, r8
16093
- bls .L2649
16094
- ldr r1, [r2, #-1572]
16095
- add r3, r6, #768
16444
+ ldrh r1, [r2, #-12]
16445
+ ldr r2, [r4, #-1412]
16446
+ str r3, [r4, #-1580]
16447
+ sub r2, r2, #2
16448
+.L2583:
1609616449 cmp r3, r1
16097
- bls .L2649
16098
- cmp r6, #40
16099
- ldr r2, [r2, #-1872]
16450
+ bcc .L2584
16451
+ ldr r5, [r4, #-1580]
16452
+ mov r0, r5
16453
+ bl __aeabi_uidiv
16454
+ ldr r3, .L2609+4
16455
+ str r0, [r4, #1728]
16456
+ ldr r0, [r4, #-1576]
16457
+ ldrh r1, [r3, #-10]
16458
+ sub r0, r5, r0
16459
+ bl __aeabi_uidiv
16460
+ str r0, [r4, #-1580]
16461
+.L2585:
16462
+ ldr r5, [r4, #-1564]
16463
+ ldr r8, [r4, #1728]
16464
+ add r3, r5, #256
16465
+ cmp r3, r8
16466
+ bls .L2590
16467
+ ldr r2, [r4, #-1568]
16468
+ add r3, r5, #768
16469
+ cmp r3, r2
16470
+ bls .L2590
16471
+ ldr r2, [r4, #-1868]
16472
+ cmp r5, #40
1610016473 movls r3, #0
1610116474 movhi r3, #1
1610216475 cmp r2, #0
1610316476 orreq r3, r3, #1
1610416477 cmp r3, #0
16105
- beq .L2649
16106
-.L2651:
16107
- movw r0, #65535
16108
- b .L2650
16109
-.L2649:
16110
- ldr r10, .L2670+4
16111
- add r3, r10, #880
16112
- ldrh r0, [r3]
16113
- add r0, r0, r0, asl #1
16114
- ubfx r0, r0, #2, #16
16115
- bl GetFreeBlockMaxEraseCount
16116
- add r1, r6, #64
16117
- cmp r0, r1
16118
- mov r9, r0
16119
- movcs r1, #0
16120
- movcc r1, #1
16121
- cmp r6, #40
16122
- movls r1, #0
16123
- cmp r1, #0
16124
- bne .L2651
16125
- ldr r3, [r10, #864]
16126
- cmp r3, #0
16127
- beq .L2651
16128
- sub r2, r10, #1728
16129
- ldr r0, [r10, #-1356]
16130
- ldr ip, .L2670+16
16131
- movw r7, #65535
16132
- ldrh r2, [r2]
16133
- mov r5, r7
16134
- ldr r10, [r10, #-1416]
16135
- mov lr, #6
16136
- str r2, [sp, #20]
16137
-.L2652:
16138
- ldrh r2, [r3]
16139
- movw fp, #65535
16140
- cmp r2, fp
16141
- beq .L2654
16142
- add r1, r1, #1
16143
- ldr fp, [sp, #20]
16144
- uxth r1, r1
16145
- cmp r1, fp
16146
- bhi .L2651
16147
- ldrh fp, [r3, #4]
16148
- cmp fp, #0
16149
- beq .L2653
16150
- rsb r3, r0, r3
16151
- mov r3, r3, asr #1
16152
- mul r3, ip, r3
16153
- uxth r3, r3
16154
- mov fp, r3, asl #1
16155
- ldrh fp, [r10, fp]
16156
- cmp fp, r6
16157
- bls .L2658
16158
- cmp fp, r7
16159
- movcc r7, fp
16160
- movcc r5, r3
16161
-.L2653:
16162
- mla r3, lr, r2, r0
16163
- b .L2652
16164
-.L2658:
16165
- mov r5, r3
16166
-.L2654:
16167
- movw r3, #65535
16168
- cmp r5, r3
16169
- beq .L2651
16170
- mov r3, r5, asl #1
16171
- ldrh fp, [r10, r3]
16172
- cmp fp, r6
16173
- bls .L2656
16174
- str r3, [sp, #20]
16175
- bl GetFreeBlockMinEraseCount
16176
- ldr r3, [sp, #20]
16177
- cmp r0, r6
16178
- strhi r7, [r4, #-1568]
16179
-.L2656:
16180
- cmp fp, r8
16181
- bcs .L2651
16182
- add r2, fp, #128
16183
- cmp r9, r2
16184
- ble .L2651
16185
- add r2, fp, #256
16186
- cmp r2, r8
16187
- bcc .L2657
16188
- ldr r2, [r4, #-1572]
16189
- add fp, fp, #768
16190
- cmp fp, r2
16191
- bcs .L2651
16192
-.L2657:
16193
- ldr r2, [r4, #-1408]
16194
- mov r1, r5
16195
- ldr r0, .L2670+20
16196
- ldrh r2, [r2, r3]
16197
- str r2, [sp]
16198
- mov r2, r8
16199
- ldrh r3, [r10, r3]
16200
- stmib sp, {r3, r9}
16201
- ldr r3, [r4, #-1572]
16202
- bl printk
16203
- mov r0, r5
16204
- mov r3, #1
16205
- str r3, [r4, #-1560]
16206
-.L2650:
16478
+ beq .L2590
16479
+.L2592:
16480
+ movw r6, #65535
16481
+.L2591:
16482
+ mov r0, r6
1620716483 add sp, sp, #28
1620816484 @ sp needed
16209
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16210
-.L2671:
16485
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16486
+.L2584:
16487
+ ldrh r0, [r2, #2]!
16488
+ add r3, r3, #1
16489
+ ldr ip, [r4, #-1580]
16490
+ add r0, r0, ip
16491
+ str r0, [r4, #-1580]
16492
+ b .L2583
16493
+.L2582:
16494
+ ldr r3, [r4, #-1568]
16495
+ cmp r2, r3
16496
+ addhi r3, r3, #1
16497
+ strhi r3, [r4, #-1568]
16498
+ movhi r3, #0
16499
+ bls .L2585
16500
+.L2587:
16501
+ ldr r2, .L2609+8
16502
+ ldrh r2, [r2]
16503
+ cmp r3, r2
16504
+ bcs .L2585
16505
+ ldr r0, [r4, #-1412]
16506
+ lsl r1, r3, #1
16507
+ add r3, r3, #1
16508
+ ldrh r2, [r0, r1]
16509
+ add r2, r2, #1
16510
+ strh r2, [r0, r1] @ movhi
16511
+ b .L2587
16512
+.L2590:
16513
+ ldr r6, .L2609+12
16514
+ ldrh r0, [r6]
16515
+ add r0, r0, r0, lsl #1
16516
+ ubfx r0, r0, #2, #16
16517
+ bl GetFreeBlockMaxEraseCount
16518
+ add r1, r5, #64
16519
+ mov r10, r0
16520
+ cmp r0, r1
16521
+ movcs r1, #0
16522
+ movcc r1, #1
16523
+ cmp r5, #40
16524
+ movls r1, #0
16525
+ cmp r1, #0
16526
+ bne .L2592
16527
+ ldr r3, [r4, #864]
16528
+ cmp r3, #0
16529
+ beq .L2592
16530
+ sub r6, r6, #2592
16531
+ ldr ip, [r4, #-1356]
16532
+ ldrh r2, [r6, #-12]
16533
+ movw r7, #65535
16534
+ ldr r9, [r4, #-1412]
16535
+ mov fp, #6
16536
+ ldr lr, .L2609+16
16537
+ str r2, [sp, #20]
16538
+ mov r2, r7
16539
+.L2593:
16540
+ ldrh r0, [r3]
16541
+ movw r6, #65535
16542
+ cmp r0, r6
16543
+ bne .L2596
16544
+ mov r6, r2
16545
+.L2595:
16546
+ movw r3, #65535
16547
+ cmp r6, r3
16548
+ beq .L2592
16549
+ lsl fp, r6, #1
16550
+ ldrh r1, [r9, fp]
16551
+ cmp r5, r1
16552
+ bcs .L2597
16553
+ bl GetFreeBlockMinEraseCount
16554
+ cmp r5, r0
16555
+ strcc r7, [r4, #-1564]
16556
+.L2597:
16557
+ cmp r8, r1
16558
+ bls .L2592
16559
+ add r3, r1, #128
16560
+ cmp r10, r3
16561
+ ble .L2592
16562
+ add r3, r1, #256
16563
+ cmp r8, r3
16564
+ bhi .L2598
16565
+ ldr r3, [r4, #-1568]
16566
+ add r1, r1, #768
16567
+ cmp r1, r3
16568
+ bcs .L2592
16569
+.L2598:
16570
+ str r10, [sp, #8]
16571
+ mov r2, r8
16572
+ ldrh r3, [r9, fp]
16573
+ mov r1, r6
16574
+ ldr r0, .L2609+20
16575
+ str r3, [sp, #4]
16576
+ ldr r3, [r4, #-1404]
16577
+ ldrh r3, [r3, fp]
16578
+ str r3, [sp]
16579
+ ldr r3, [r4, #-1568]
16580
+ bl printk
16581
+ mov r3, #1
16582
+ str r3, [r4, #-1556]
16583
+ b .L2591
16584
+.L2596:
16585
+ add r1, r1, #1
16586
+ ldr r6, [sp, #20]
16587
+ uxth r1, r1
16588
+ cmp r1, r6
16589
+ bhi .L2592
16590
+ ldrh r6, [r3, #4]
16591
+ cmp r6, #0
16592
+ beq .L2594
16593
+ sub r3, r3, ip
16594
+ asr r3, r3, #1
16595
+ mul r3, lr, r3
16596
+ uxth r6, r3
16597
+ lsl r3, r6, #1
16598
+ ldrh r3, [r9, r3]
16599
+ cmp r5, r3
16600
+ bcs .L2595
16601
+ cmp r7, r3
16602
+ movhi r7, r3
16603
+ movhi r2, r6
16604
+.L2594:
16605
+ mla r3, fp, r0, ip
16606
+ b .L2593
16607
+.L2610:
1621116608 .align 2
16212
-.L2670:
16213
- .word .LANCHOR4
16609
+.L2609:
1621416610 .word .LANCHOR2
1621516611 .word .LANCHOR2-1664
16216
- .word .LANCHOR2-1728
16612
+ .word .LANCHOR2-1724
16613
+ .word .LANCHOR2+880
1621716614 .word -1431655765
1621816615 .word .LC146
1621916616 .fnend
1622016617 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock
1622116618 .align 2
1622216619 .global free_data_superblock
16620
+ .syntax unified
16621
+ .arm
16622
+ .fpu softvfp
1622316623 .type free_data_superblock, %function
1622416624 free_data_superblock:
1622516625 .fnstart
....@@ -16227,1366 +16627,1361 @@
1622716627 @ frame_needed = 0, uses_anonymous_args = 0
1622816628 movw r2, #65535
1622916629 cmp r0, r2
16230
- stmfd sp!, {r3, lr}
16231
- .save {r3, lr}
16232
- beq .L2673
16233
- ldr r2, .L2675
16234
- mov r3, r0, asl #1
16630
+ beq .L2614
16631
+ ldr r2, .L2617
16632
+ lsl r3, r0, #1
16633
+ push {r4, lr}
16634
+ .save {r4, lr}
1623516635 mov r1, #0
16236
- ldr r2, [r2, #-1408]
16636
+ ldr r2, [r2, #-1404]
1623716637 strh r1, [r2, r3] @ movhi
1623816638 bl INSERT_FREE_LIST
16239
-.L2673:
1624016639 mov r0, #0
16241
- ldmfd sp!, {r3, pc}
16242
-.L2676:
16640
+ pop {r4, pc}
16641
+.L2614:
16642
+ mov r0, #0
16643
+ bx lr
16644
+.L2618:
1624316645 .align 2
16244
-.L2675:
16646
+.L2617:
1624516647 .word .LANCHOR2
1624616648 .fnend
1624716649 .size free_data_superblock, .-free_data_superblock
1624816650 .align 2
1624916651 .global allocate_data_superblock
16652
+ .syntax unified
16653
+ .arm
16654
+ .fpu softvfp
1625016655 .type allocate_data_superblock, %function
1625116656 allocate_data_superblock:
1625216657 .fnstart
1625316658 @ args = 0, pretend = 0, frame = 16
1625416659 @ frame_needed = 0, uses_anonymous_args = 0
16255
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
16660
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1625616661 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1625716662 .pad #20
1625816663 sub sp, sp, #20
16259
- ldr r4, .L2732
16664
+ ldr r4, .L2669
1626016665 ldr r3, [r4, #-1280]
1626116666 cmp r3, #0
16262
- bne .L2678
16263
- sub r10, r4, #1728
16667
+ bne .L2620
1626416668 mov r5, r0
16265
- mov r6, r4
16266
-.L2679:
16267
- ldr r7, .L2732+4
16669
+.L2621:
16670
+ ldr r3, .L2669+4
1626816671 ldrb r2, [r5, #8] @ zero_extendqisi2
16269
- cmp r5, r7
16270
- bne .L2680
16271
- ldrh r3, [r7, #-100]
16272
- ldr ip, [r6, #-1560]
16273
- mov r0, r3, lsr #1
16672
+ cmp r5, r3
16673
+ sub r7, r3, #100
16674
+ sub r10, r7, #2592
16675
+ bne .L2622
16676
+ ldrh r3, [r7]
16677
+ ldr ip, [r4, #-1556]
16678
+ lsr r0, r3, #1
1627416679 mul lr, ip, r3
1627516680 add r1, r0, #1
1627616681 add r1, r1, lr, lsr #2
16277
- ldr lr, [r6, #-1872]
16278
- cmp lr, #0
16682
+ ldr lr, [r4, #-1868]
1627916683 uxth r1, r1
16280
- beq .L2681
16281
- ldr lr, [r6, #-1568]
16684
+ cmp lr, #0
16685
+ beq .L2623
16686
+ ldr lr, [r4, #-1564]
1628216687 cmp lr, #39
16283
- bhi .L2681
16688
+ bhi .L2623
1628416689 cmp lr, #2
16285
- bls .L2706
16690
+ bls .L2649
1628616691 cmp ip, #0
1628716692 movne r3, #0
1628816693 andeq r3, r3, #1
1628916694 cmp r3, #0
1629016695 moveq r1, r0
16291
- beq .L2681
16292
- b .L2706
16293
-.L2680:
16696
+ beq .L2623
16697
+.L2649:
16698
+ mov r1, #0
16699
+ b .L2624
16700
+.L2622:
1629416701 cmp r2, #1
16295
- bne .L2706
16296
- ldr r3, .L2732+8
16297
- ldrh r3, [r3]
16702
+ bne .L2649
16703
+ ldrh r3, [r10]
1629816704 cmp r3, #1
16299
- beq .L2706
16300
- ldrb r3, [r6, #-2744] @ zero_extendqisi2
16705
+ beq .L2649
16706
+ ldrb r3, [r4, #-2740] @ zero_extendqisi2
1630116707 cmp r3, #0
16302
- bne .L2706
16303
- ldr r0, [r6, #-1872]
16304
- ldrh r3, [r7, #-100]
16708
+ bne .L2649
16709
+ ldr r0, [r4, #-1868]
16710
+ ldrh r3, [r7]
1630516711 cmp r0, #0
16306
- mov r1, r3, lsr #3
16307
- beq .L2681
16308
- ldr r0, [r6, #-1568]
16712
+ lsr r1, r3, #3
16713
+ beq .L2623
16714
+ ldr r0, [r4, #-1564]
1630916715 cmp r0, #1
16310
- rsbls r3, r3, r3, asl #3
16716
+ rsbls r3, r3, r3, lsl #3
1631116717 ubfxls r1, r3, #3, #16
16312
-.L2681:
16718
+.L2623:
1631316719 cmp r1, #0
1631416720 subne r1, r1, #1
1631516721 uxthne r1, r1
16316
- b .L2682
16317
-.L2706:
16318
- mov r1, #0
16319
-.L2682:
16320
- ldr r0, .L2732+12
16722
+.L2624:
16723
+ ldr r0, .L2669+8
1632116724 bl List_pop_index_node
16322
- ldrh r3, [r7, #-100]
16725
+ ldrh r3, [r7]
16726
+ uxth r8, r0
1632316727 sub r3, r3, #1
16324
- strh r3, [r7, #-100] @ movhi
16325
- ldrh r3, [r10]
16326
- uxth r9, r0
16327
- cmp r3, r9
16328
- bls .L2679
16329
- ldr r3, [r6, #-1408]
16330
- mov r8, r9, asl #1
16331
- ldrh r7, [r3, r8]
16728
+ strh r3, [r7] @ movhi
16729
+ ldrh r3, [r10, #-12]
16730
+ cmp r3, r8
16731
+ bls .L2621
16732
+ ldr r3, [r4, #-1404]
16733
+ lsl r6, r8, #1
16734
+ ldrh r7, [r3, r6]
1633216735 cmp r7, #0
16333
- bne .L2679
16334
- strh r9, [r5] @ movhi
16736
+ bne .L2621
16737
+ strh r8, [r5] @ movhi
1633516738 mov r0, r5
1633616739 bl make_superblock
1633716740 ldrb r3, [r5, #7] @ zero_extendqisi2
1633816741 cmp r3, #0
16339
- beq .L2684
16340
- ldr r2, .L2732+16
16341
- add ip, r5, #14
16342
- ldr r0, [r6, #-1492]
16343
- ldrh lr, [r2]
16742
+ beq .L2666
16743
+ ldr r2, .L2669+12
16744
+ add r9, r5, #16
16745
+ ldr r0, [r4, #-1488]
16746
+ mov ip, r9
16747
+ mov lr, r7
16748
+ ldrh r1, [r2]
1634416749 mov r2, #36
1634516750 mov r3, r0
16346
- mla r1, r2, lr, r0
16347
- mov lr, r7
16348
- str r1, [sp]
16349
- b .L2685
16350
-.L2684:
16351
- ldr r3, [r6, #-1408]
16352
- b .L2727
16353
-.L2685:
16354
- ldr r1, [sp]
16355
- cmp r3, r1
16356
- beq .L2729
16357
- str lr, [r3, #8]
16358
- movw fp, #65535
16359
- str lr, [r3, #12]
16360
- add r3, r3, #36
16361
- ldrh r1, [ip, #2]!
16362
- cmp r1, fp
16363
- movne r1, r1, asl #10
16364
- mlane fp, r2, r7, r0
16365
- addne r7, r7, #1
16366
- uxthne r7, r7
16367
- strne r1, [fp, #4]
16368
- b .L2685
16369
-.L2729:
16370
- ldr r3, .L2732+20
16371
- ldr r2, [r4, #-1872]
16372
- rsb r3, r3, r5
16373
- clz r3, r3
16374
- cmp r2, #0
16375
- mov r3, r3, lsr #5
16376
- moveq r3, #0
16751
+ mla r1, r2, r1, r0
16752
+ str r1, [sp, #4]
16753
+.L2627:
16754
+ ldr r1, [sp, #4]
16755
+ cmp r1, r3
16756
+ bne .L2629
16757
+ ldr r3, [r4, #-1868]
16758
+ ldr r2, .L2669+16
16759
+ adds r3, r3, #0
16760
+ movne r3, #1
16761
+ cmp r5, r2
16762
+ movne r3, #0
1637716763 cmp r3, #0
16378
- beq .L2688
16379
- ldr r3, [r6, #-1416]
16380
- ldrh r3, [r3, r8]
16764
+ beq .L2630
16765
+ ldr r3, [r4, #-1412]
16766
+ ldrh r3, [r3, r6]
1638116767 cmp r3, #40
1638216768 movhi r3, #0
16383
- strhib r3, [r6, #892]
16384
-.L2688:
16769
+ strbhi r3, [r4, #892]
16770
+.L2630:
1638516771 ldrb r3, [r5, #8] @ zero_extendqisi2
16386
- ldr r2, [r4, #-1416]
16772
+ ldr r2, [r4, #-1412]
16773
+ ldr fp, .L2669+20
1638716774 cmp r3, #0
16388
- ldrh r3, [r2, r8]
16389
- bne .L2689
16775
+ ldrh r3, [r2, r6]
16776
+ bne .L2631
1639016777 cmp r3, #0
16391
- mov r0, r9
16392
- ldrne r1, .L2732+24
16778
+ mov r0, r8
16779
+ ldrhne r1, [fp, #-10]
1639316780 moveq r3, #2
16394
- ldrneh r1, [r1]
1639516781 addne r3, r3, r1
1639616782 mov r1, #0
16397
- uxthne r3, r3
16398
- strh r3, [r2, r8] @ movhi
16399
- ldr r3, [r4, #-1584]
16400
- add r3, r3, #1
16401
- str r3, [r4, #-1584]
16402
- bl ftl_set_blk_mode
16403
- b .L2691
16404
-.L2689:
16405
- add r3, r3, #1
16406
- strh r3, [r2, r8] @ movhi
16407
- ldr r1, [r4, #-1396]
16408
- mov r0, r9, lsr #5
16783
+ strh r3, [r2, r6] @ movhi
1640916784 ldr r3, [r4, #-1580]
16410
- mov ip, #1
1641116785 add r3, r3, #1
1641216786 str r3, [r4, #-1580]
16413
- ldr r2, [r1, r0, asl #2]
16414
- and r3, r9, #31
16415
- orr r3, r2, ip, asl r3
16416
- str r3, [r1, r0, asl #2]
16417
-.L2691:
16418
- ldr r3, [r4, #-1416]
16419
- ldr r2, [r4, #-1572]
16420
- ldr r0, [r4, #-1584]
16421
- ldrh r3, [r3, r8]
16787
+ bl ftl_set_blk_mode
16788
+.L2634:
16789
+ ldr r3, [r4, #-1412]
16790
+ ldr r2, [r4, #-1568]
16791
+ ldr r0, [r4, #-1580]
16792
+ ldrh r3, [r3, r6]
16793
+ ldrh r1, [r10, #-12]
1642216794 cmp r3, r2
16423
- strhi r3, [r6, #-1572]
16424
- ldr r3, .L2732+24
16425
- ldrh r2, [r3]
16426
- ldr r3, [r4, #-1580]
16795
+ ldrh r2, [fp, #-10]
16796
+ strhi r3, [r4, #-1568]
16797
+ ldr r3, [r4, #-1576]
1642716798 mla r0, r0, r2, r3
16428
- ldr r3, .L2732+28
16429
- ldrh r1, [r3]
1643016799 bl __aeabi_uidiv
16431
- ldr r2, [r4, #-1420]
16432
- ldr r3, .L2732+32
16433
- str r0, [r3, #1736]
16800
+ ldr r2, [r4, #-1416]
16801
+ ldr r1, [r4, #-1488]
16802
+ str r0, [r4, #1728]
1643416803 ldr r3, [r2, #16]
1643516804 add r3, r3, #1
1643616805 str r3, [r2, #16]
16437
- ldr r2, [r4, #-1492]
16438
- mov r3, #36
16439
- add r1, r2, #4
16440
- mla r3, r3, r7, r2
16441
- add r3, r3, #40
16442
-.L2693:
16443
- add r1, r1, #36
16444
- cmp r1, r3
16445
- ldrne r2, [r1, #-36]
16446
- bicne r2, r2, #1020
16447
- bicne r2, r2, #3
16448
- strne r2, [r1, #-36]
16449
- bne .L2693
16450
-.L2730:
16451
- ldrb r3, [r4, #-2744] @ zero_extendqisi2
16806
+ mov r2, #36
16807
+ mla r2, r2, r7, r1
16808
+ add r3, r1, #4
16809
+ add r2, r2, #40
16810
+.L2636:
16811
+ add r3, r3, #36
16812
+ cmp r2, r3
16813
+ bne .L2637
16814
+ ldrb r3, [r4, #-2740] @ zero_extendqisi2
1645216815 cmp r3, #0
16453
- beq .L2695
16816
+ beq .L2638
1645416817 ldrb r3, [r5, #8] @ zero_extendqisi2
1645516818 mov r2, r7
16456
- ldr r0, [r6, #-1492]
16819
+ ldr r0, [r4, #-1488]
1645716820 cmp r3, #1
1645816821 moveq r1, #0
1645916822 movne r1, #1
1646016823 bl FlashEraseBlocks
16461
-.L2695:
16824
+.L2638:
1646216825 ldrb r1, [r5, #8] @ zero_extendqisi2
1646316826 mov r2, r7
16464
- ldr r0, [r4, #-1492]
16465
- mov fp, #0
16827
+ ldr r0, [r4, #-1488]
16828
+ mov r10, #0
1646616829 bl FlashEraseBlocks
16467
- add r1, r5, #16
16468
- mov r2, fp
16469
- mov ip, #36
16470
-.L2697:
16471
- uxth r3, fp
16472
- cmp r3, r7
16473
- bcs .L2731
16474
- mul r3, ip, fp
16475
- ldr lr, [r4, #-1492]
16476
- add r0, lr, r3
16477
- ldr r3, [lr, r3]
16478
- cmn r3, #1
16479
- bne .L2698
16480
- ldr r0, [r0, #4]
16481
- add r2, r2, #1
16482
- stmib sp, {r1, r3, ip}
16483
- ubfx r0, r0, #10, #16
16484
- str r2, [sp]
16485
- bl FtlBbmMapBadBlock
16486
- ldmib sp, {r1, r3}
16487
- ldr ip, [sp, #12]
16488
- ldr r2, [sp]
16489
- strh r3, [r1] @ movhi
16490
- ldrb r3, [r5, #7] @ zero_extendqisi2
16491
- sub r3, r3, #1
16492
- strb r3, [r5, #7]
16493
-.L2698:
16494
- add fp, fp, #1
16495
- add r1, r1, #2
16496
- b .L2697
16497
-.L2731:
16498
- cmp r2, #0
16499
- beq .L2700
16500
- mov r0, r9
16830
+ mov r3, r10
16831
+ mov r1, #36
16832
+.L2640:
16833
+ uxth r2, r10
16834
+ cmp r7, r2
16835
+ bhi .L2642
16836
+ cmp r3, #0
16837
+ ble .L2643
16838
+ mov r0, r8
1650116839 bl update_multiplier_value
1650216840 bl FtlBbmTblFlush
16503
-.L2700:
16504
- ldrb r3, [r5, #7] @ zero_extendqisi2
16505
- cmp r3, #0
16506
- bne .L2701
16507
- ldr r3, [r4, #-1408]
16508
-.L2727:
16841
+.L2643:
16842
+ ldrb r2, [r5, #7] @ zero_extendqisi2
16843
+ cmp r2, #0
16844
+ bne .L2644
16845
+.L2666:
16846
+ ldr r3, [r4, #-1404]
1650916847 mvn r2, #0
16510
- strh r2, [r3, r8] @ movhi
16511
- b .L2679
16512
-.L2701:
16513
- ldr r2, .L2732+36
16514
- ldrh r2, [r2, #-4]
16515
- strh r9, [r5] @ movhi
16516
- smulbb r3, r2, r3
16848
+ strh r2, [r3, r6] @ movhi
16849
+ b .L2621
16850
+.L2629:
16851
+ str lr, [r3, #8]
16852
+ movw fp, #65535
16853
+ str lr, [r3, #12]
16854
+ add r3, r3, #36
16855
+ ldrh r1, [ip], #2
16856
+ cmp r1, fp
16857
+ mlane fp, r2, r7, r0
16858
+ lslne r1, r1, #10
16859
+ addne r7, r7, #1
16860
+ uxthne r7, r7
16861
+ strne r1, [fp, #4]
16862
+ b .L2627
16863
+.L2631:
16864
+ add r3, r3, #1
16865
+ mov r0, r8
16866
+ strh r3, [r2, r6] @ movhi
16867
+ ldr r3, [r4, #-1576]
16868
+ add r3, r3, #1
16869
+ str r3, [r4, #-1576]
16870
+ bl ftl_set_blk_mode.part.17
16871
+ b .L2634
16872
+.L2637:
16873
+ ldr r1, [r3, #-36]
16874
+ bic r1, r1, #1020
16875
+ bic r1, r1, #3
16876
+ str r1, [r3, #-36]
16877
+ b .L2636
16878
+.L2642:
16879
+ mul r2, r1, r10
16880
+ ldr r0, [r4, #-1488]
16881
+ add ip, r0, r2
16882
+ ldr r2, [r0, r2]
16883
+ cmn r2, #1
16884
+ bne .L2641
16885
+ ldr r0, [ip, #4]
16886
+ add r3, r3, #1
16887
+ str r1, [sp, #12]
16888
+ str r2, [sp, #8]
16889
+ ubfx r0, r0, #10, #16
16890
+ str r3, [sp, #4]
16891
+ bl FtlBbmMapBadBlock
16892
+ ldr r2, [sp, #8]
16893
+ ldr r1, [sp, #12]
16894
+ ldr r3, [sp, #4]
16895
+ strh r2, [r9] @ movhi
16896
+ ldrb r2, [r5, #7] @ zero_extendqisi2
16897
+ sub r2, r2, #1
16898
+ strb r2, [r5, #7]
16899
+.L2641:
16900
+ add r10, r10, #1
16901
+ add r9, r9, #2
16902
+ b .L2640
16903
+.L2644:
16904
+ ldrh r3, [fp, #-2]
16905
+ strh r8, [r5] @ movhi
16906
+ smulbb r3, r3, r2
1651716907 mov r2, #0
1651816908 strh r2, [r5, #2] @ movhi
1651916909 strb r2, [r5, #6]
16520
- ldr r2, [r4, #-1616]
16521
- ldr r1, [r4, #-1408]
16910
+ ldr r2, [r4, #-1612]
1652216911 uxth r3, r3
16912
+ ldr r1, [r4, #-1404]
1652316913 strh r3, [r5, #4] @ movhi
1652416914 str r2, [r5, #12]
1652516915 add r2, r2, #1
16526
- str r2, [r4, #-1616]
16916
+ str r2, [r4, #-1612]
1652716917 ldrh r2, [r5]
16528
- mov r2, r2, asl #1
16918
+ lsl r2, r2, #1
1652916919 strh r3, [r1, r2] @ movhi
16530
-.L2678:
16920
+.L2620:
1653116921 mov r0, #0
1653216922 add sp, sp, #20
1653316923 @ sp needed
16534
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16535
-.L2733:
16924
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16925
+.L2670:
1653616926 .align 2
16537
-.L2732:
16927
+.L2669:
1653816928 .word .LANCHOR2
1653916929 .word .LANCHOR2+980
16540
- .word .LANCHOR2-1716
1654116930 .word .LANCHOR2+876
16542
- .word .LANCHOR2-1736
16931
+ .word .LANCHOR2-1732
1654316932 .word .LANCHOR2+884
16544
- .word .LANCHOR2-1676
16545
- .word .LANCHOR2-1728
16546
- .word .LANCHOR4
1654716933 .word .LANCHOR2-1664
1654816934 .fnend
1654916935 .size allocate_data_superblock, .-allocate_data_superblock
1655016936 .align 2
1655116937 .global FtlGcBufInit
16938
+ .syntax unified
16939
+ .arm
16940
+ .fpu softvfp
1655216941 .type FtlGcBufInit, %function
1655316942 FtlGcBufInit:
1655416943 .fnstart
1655516944 @ args = 0, pretend = 0, frame = 0
1655616945 @ frame_needed = 0, uses_anonymous_args = 0
16557
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
16558
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
16559
- mov r4, #12
16560
- ldr lr, .L2742
16561
- mov r5, #1
16562
- ldr r2, .L2742+4
16563
- mov r7, #36
16564
- ldr r1, .L2742+8
16565
- add r6, lr, #78
16946
+ ldr r2, .L2677
16947
+ mov ip, #12
16948
+ push {r4, r5, r6, r7, r8, lr}
16949
+ .save {r4, r5, r6, r7, r8, lr}
16950
+ mov lr, #1
16951
+ mov r4, #36
1656616952 mov r3, #0
16567
- str r3, [r2, #1740]
16568
-.L2735:
16569
- ldrh r2, [lr]
16570
- add ip, r3, #1
16571
- uxth r3, r3
16572
- ldr r0, .L2742+8
16573
- cmp r3, r2
16574
- bcs .L2740
16575
- mul r0, r4, r3
16576
- ldr r8, [r1, #-1448]
16577
- add r2, r8, r0
16578
- str r5, [r2, #8]
16579
- ldrh r2, [r6]
16580
- mul r2, r2, r3
16581
- add r9, r2, #3
16582
- cmp r2, #0
16583
- movlt r2, r9
16584
- ldr r9, [r1, #-1464]
16585
- bic r2, r2, #3
16586
- add r2, r9, r2
16587
- str r2, [r8, r0]
16588
- ldr r2, .L2742+12
16589
- ldr r9, [r1, #-1448]
16590
- ldrh r2, [r2]
16591
- add r8, r9, r0
16592
- mul r2, r2, r3
16593
- add r10, r2, #3
16594
- cmp r2, #0
16595
- movlt r2, r10
16596
- ldr r10, [r1, #-1436]
16597
- bic r2, r2, #3
16598
- add r2, r10, r2
16599
- str r2, [r8, #4]
16600
- ldr r2, [r1, #-1488]
16601
- mla r3, r7, r3, r2
16602
- ldr r2, [r9, r0]
16603
- str r2, [r3, #8]
16604
- ldr r2, [r8, #4]
16605
- str r2, [r3, #12]
16606
- mov r3, ip
16607
- b .L2735
16608
-.L2740:
16609
- ldr r4, .L2742+16
16610
- mov r1, r0
16953
+ str r3, [r2, #1732]
16954
+.L2672:
16955
+ ldr r8, .L2677+4
16956
+ uxth r5, r3
16957
+ add r0, r3, #1
16958
+ ldrh r1, [r8]
16959
+ cmp r5, r1
16960
+ bcc .L2673
1661116961 mov ip, #12
1661216962 mov lr, #0
16613
-.L2737:
16614
- ldr r3, [r0, #-1480]
16615
- cmp r2, r3
16616
- bcs .L2741
16617
- mul r5, ip, r2
16618
- ldr r7, [r1, #-1448]
16619
- add r3, r7, r5
16963
+.L2674:
16964
+ ldr r3, [r2, #-1476]
16965
+ cmp r1, r3
16966
+ bcc .L2675
16967
+ pop {r4, r5, r6, r7, r8, pc}
16968
+.L2673:
16969
+ uxth r3, r3
16970
+ ldr r6, [r2, #-1444]
16971
+ mul r5, ip, r3
16972
+ add r1, r6, r5
16973
+ str lr, [r1, #8]
16974
+ ldrh r1, [r8, #76]
16975
+ mul r1, r3, r1
16976
+ add r7, r1, #3
16977
+ cmp r1, #0
16978
+ movlt r1, r7
16979
+ ldr r7, [r2, #-1460]
16980
+ bic r1, r1, #3
16981
+ add r1, r7, r1
16982
+ str r1, [r6, r5]
16983
+ ldrh r1, [r8, #78]
16984
+ ldr r7, [r2, #-1444]
16985
+ mul r1, r3, r1
16986
+ add r6, r7, r5
16987
+ add r8, r1, #3
16988
+ cmp r1, #0
16989
+ movlt r1, r8
16990
+ ldr r8, [r2, #-1432]
16991
+ bic r1, r1, #3
16992
+ add r1, r8, r1
16993
+ str r1, [r6, #4]
16994
+ ldr r1, [r2, #-1484]
16995
+ mla r3, r4, r3, r1
16996
+ ldr r1, [r7, r5]
16997
+ str r1, [r3, #8]
16998
+ ldr r1, [r6, #4]
16999
+ str r1, [r3, #12]
17000
+ mov r3, r0
17001
+ b .L2672
17002
+.L2675:
17003
+ mul r4, ip, r1
17004
+ ldr r6, [r2, #-1444]
17005
+ ldr r5, .L2677+8
17006
+ add r3, r6, r4
1662017007 str lr, [r3, #8]
16621
- ldrh r3, [r4]
16622
- mul r3, r3, r2
16623
- add r6, r3, #3
17008
+ ldrh r3, [r5]
17009
+ mul r3, r1, r3
17010
+ add r0, r3, #3
1662417011 cmp r3, #0
16625
- movlt r3, r6
16626
- ldr r6, [r1, #-1464]
17012
+ movlt r3, r0
17013
+ ldr r0, [r2, #-1460]
1662717014 bic r3, r3, #3
16628
- add r3, r6, r3
16629
- str r3, [r7, r5]
16630
- ldr r3, .L2742+12
16631
- ldr r6, [r1, #-1448]
16632
- ldrh r3, [r3]
16633
- add r5, r6, r5
16634
- mul r3, r3, r2
16635
- add r2, r2, #1
16636
- uxth r2, r2
16637
- add r6, r3, #3
17015
+ add r3, r0, r3
17016
+ str r3, [r6, r4]
17017
+ ldrh r3, [r5, #2]
17018
+ ldr r0, [r2, #-1444]
17019
+ mul r3, r1, r3
17020
+ add r0, r0, r4
17021
+ add r1, r1, #1
17022
+ uxth r1, r1
17023
+ add r4, r3, #3
1663817024 cmp r3, #0
16639
- movlt r3, r6
16640
- ldr r6, [r1, #-1436]
17025
+ movlt r3, r4
17026
+ ldr r4, [r2, #-1432]
1664117027 bic r3, r3, #3
16642
- add r3, r6, r3
16643
- str r3, [r5, #4]
16644
- b .L2737
16645
-.L2741:
16646
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
16647
-.L2743:
17028
+ add r3, r4, r3
17029
+ str r3, [r0, #4]
17030
+ b .L2674
17031
+.L2678:
1664817032 .align 2
16649
-.L2742:
16650
- .word .LANCHOR2-1736
16651
- .word .LANCHOR4
17033
+.L2677:
1665217034 .word .LANCHOR2
17035
+ .word .LANCHOR2-1732
1665317036 .word .LANCHOR2-1656
16654
- .word .LANCHOR2-1658
1665517037 .fnend
1665617038 .size FtlGcBufInit, .-FtlGcBufInit
1665717039 .align 2
1665817040 .global FtlVariablesInit
17041
+ .syntax unified
17042
+ .arm
17043
+ .fpu softvfp
1665917044 .type FtlVariablesInit, %function
1666017045 FtlVariablesInit:
1666117046 .fnstart
1666217047 @ args = 0, pretend = 0, frame = 0
1666317048 @ frame_needed = 0, uses_anonymous_args = 0
16664
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
16665
- .save {r3, r4, r5, r6, r7, lr}
16666
- movw r2, #1748
16667
- ldr r6, .L2746
17049
+ push {r4, r5, r6, lr}
17050
+ .save {r4, r5, r6, lr}
1666817051 mvn r3, #0
16669
- ldr r5, .L2746+4
16670
- mov r4, #0
16671
- mov r1, r4
16672
- strh r3, [r6, r2] @ movhi
16673
- sub r7, r5, #1712
16674
- str r3, [r6, #1760]
16675
- sub r3, r5, #1280
16676
- ldr r0, [r5, #-1392]
16677
- strh r4, [r3, #-8] @ movhi
16678
- sub r3, r5, #1648
16679
- str r4, [r6, #1744]
16680
- ldrh r2, [r3]
16681
- str r4, [r6, #1752]
16682
- str r4, [r6, #1756]
16683
- mov r2, r2, asl #1
16684
- str r4, [r5, #-1872]
17052
+ ldr r4, .L2681
17053
+ movw r2, #1740
17054
+ mov r5, #0
17055
+ mov r1, r5
17056
+ strh r3, [r4, r2] @ movhi
17057
+ sub r6, r4, #1712
17058
+ str r3, [r4, #1752]
17059
+ sub r3, r4, #1280
17060
+ strh r5, [r3, #-8] @ movhi
17061
+ sub r3, r4, #1632
17062
+ ldrh r2, [r3, #-12]
17063
+ ldr r0, [r4, #-1392]
17064
+ str r5, [r4, #1736]
17065
+ str r5, [r4, #1744]
17066
+ lsl r2, r2, #1
17067
+ str r5, [r4, #1748]
17068
+ str r5, [r4, #-1868]
1668517069 bl ftl_memset
16686
- ldrh r2, [r7, #-14]
16687
- mov r1, r4
16688
- ldr r0, [r5, #-1416]
16689
- mov r2, r2, asl #1
17070
+ ldrh r2, [r6, #-10]
17071
+ mov r1, r5
17072
+ ldr r0, [r4, #-1412]
17073
+ lsl r2, r2, #1
1669017074 bl ftl_memset
16691
- ldrh r2, [r7, #-14]
16692
- mov r1, r4
16693
- ldr r0, [r5, #-1424]
16694
- mov r2, r2, asl #1
17075
+ ldrh r2, [r6, #-10]
17076
+ mov r1, r5
17077
+ ldr r0, [r4, #-1420]
17078
+ lsl r2, r2, #1
1669517079 bl ftl_memset
16696
- mov r1, r4
16697
- add r0, r5, #816
17080
+ mov r1, r5
1669817081 mov r2, #48
17082
+ add r0, r4, #816
1669917083 bl ftl_memset
16700
- add r0, r6, #1200
16701
- mov r1, r4
17084
+ add r0, r4, #1200
1670217085 mov r2, #512
16703
- add r0, r0, #12
17086
+ mov r1, r5
17087
+ add r0, r0, #4
1670417088 bl ftl_memset
1670517089 bl FtlGcBufInit
1670617090 bl FtlL2PDataInit
16707
- mov r0, r4
16708
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
16709
-.L2747:
17091
+ mov r0, r5
17092
+ pop {r4, r5, r6, pc}
17093
+.L2682:
1671017094 .align 2
16711
-.L2746:
16712
- .word .LANCHOR4
17095
+.L2681:
1671317096 .word .LANCHOR2
1671417097 .fnend
1671517098 .size FtlVariablesInit, .-FtlVariablesInit
1671617099 .align 2
1671717100 .global FtlGcBufFree
17101
+ .syntax unified
17102
+ .arm
17103
+ .fpu softvfp
1671817104 .type FtlGcBufFree, %function
1671917105 FtlGcBufFree:
1672017106 .fnstart
1672117107 @ args = 0, pretend = 0, frame = 0
1672217108 @ frame_needed = 0, uses_anonymous_args = 0
16723
- ldr r3, .L2756
16724
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
17109
+ ldr r3, .L2691
17110
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
1672517111 .save {r4, r5, r6, r7, r8, r9, r10, lr}
1672617112 mov lr, #0
16727
- ldr r6, [r3, #-1480]
1672817113 mov r5, #36
16729
- ldr r4, [r3, #-1448]
16730
- mov r7, lr
16731
- mov r8, #12
16732
-.L2749:
16733
- uxth ip, lr
16734
- cmp ip, r1
16735
- ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
16736
- mla ip, r5, ip, r0
17114
+ mov r7, #12
17115
+ mov r8, lr
17116
+ ldr r6, [r3, #-1476]
17117
+ ldr r4, [r3, #-1444]
17118
+.L2684:
17119
+ uxth r3, lr
17120
+ cmp r1, r3
17121
+ popls {r4, r5, r6, r7, r8, r9, r10, pc}
17122
+ mla ip, r5, r3, r0
1673717123 mov r2, #0
16738
-.L2750:
17124
+.L2685:
1673917125 uxth r3, r2
16740
- cmp r3, r6
16741
- bcs .L2751
16742
- mul r3, r8, r3
17126
+ cmp r6, r3
17127
+ bls .L2686
17128
+ mul r3, r7, r3
1674317129 add r2, r2, #1
16744
- add r9, r4, r3
1674517130 ldr r10, [r4, r3]
17131
+ add r9, r4, r3
1674617132 ldr r3, [ip, #8]
1674717133 cmp r10, r3
16748
- bne .L2750
16749
- str r7, [r9, #8]
16750
-.L2751:
17134
+ bne .L2685
17135
+ str r8, [r9, #8]
17136
+.L2686:
1675117137 add lr, lr, #1
16752
- b .L2749
16753
-.L2757:
17138
+ b .L2684
17139
+.L2692:
1675417140 .align 2
16755
-.L2756:
17141
+.L2691:
1675617142 .word .LANCHOR2
1675717143 .fnend
1675817144 .size FtlGcBufFree, .-FtlGcBufFree
1675917145 .align 2
1676017146 .global FtlGcBufAlloc
17147
+ .syntax unified
17148
+ .arm
17149
+ .fpu softvfp
1676117150 .type FtlGcBufAlloc, %function
1676217151 FtlGcBufAlloc:
1676317152 .fnstart
1676417153 @ args = 0, pretend = 0, frame = 0
1676517154 @ frame_needed = 0, uses_anonymous_args = 0
16766
- ldr r3, .L2767
17155
+ ldr r3, .L2701
1676717156 mov ip, #0
16768
- stmfd sp!, {r4, r5, r6, r7, r8, r9, lr}
17157
+ push {r4, r5, r6, r7, r8, r9, lr}
1676917158 .save {r4, r5, r6, r7, r8, r9, lr}
1677017159 mov r6, #12
16771
- ldr r4, [r3, #-1480]
1677217160 mov r7, #1
16773
- ldr r5, [r3, #-1448]
1677417161 mov r8, #36
16775
-.L2759:
17162
+ ldr r4, [r3, #-1476]
17163
+ ldr r5, [r3, #-1444]
17164
+.L2694:
1677617165 uxth r2, ip
16777
- cmp r2, r1
16778
- bcs .L2766
17166
+ cmp r1, r2
17167
+ bhi .L2698
17168
+ pop {r4, r5, r6, r7, r8, r9, pc}
17169
+.L2698:
1677917170 mov lr, #0
16780
-.L2760:
17171
+.L2695:
1678117172 uxth r3, lr
16782
- cmp r3, r4
16783
- bcs .L2761
17173
+ cmp r4, r3
17174
+ bls .L2696
1678417175 mla r3, r6, r3, r5
1678517176 add lr, lr, #1
1678617177 ldr r9, [r3, #8]
1678717178 cmp r9, #0
16788
- bne .L2760
17179
+ bne .L2695
1678917180 mla r2, r8, r2, r0
1679017181 ldr lr, [r3]
1679117182 str r7, [r3, #8]
1679217183 str lr, [r2, #8]
1679317184 ldr r3, [r3, #4]
1679417185 str r3, [r2, #12]
16795
-.L2761:
17186
+.L2696:
1679617187 add ip, ip, #1
16797
- b .L2759
16798
-.L2766:
16799
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc}
16800
-.L2768:
17188
+ b .L2694
17189
+.L2702:
1680117190 .align 2
16802
-.L2767:
17191
+.L2701:
1680317192 .word .LANCHOR2
1680417193 .fnend
1680517194 .size FtlGcBufAlloc, .-FtlGcBufAlloc
1680617195 .align 2
1680717196 .global IsBlkInGcList
17197
+ .syntax unified
17198
+ .arm
17199
+ .fpu softvfp
1680817200 .type IsBlkInGcList, %function
1680917201 IsBlkInGcList:
1681017202 .fnstart
1681117203 @ args = 0, pretend = 0, frame = 0
1681217204 @ frame_needed = 0, uses_anonymous_args = 0
1681317205 @ link register save eliminated.
16814
- ldr r1, .L2775
16815
- movw r2, #1764
16816
- ldr r3, .L2775+4
16817
- ldrh r2, [r1, r2]
16818
- ldr r3, [r3, #-1512]
16819
- add r2, r3, r2, asl #1
16820
-.L2770:
17206
+ ldr r2, .L2708
17207
+ movw r1, #1756
17208
+ ldr r3, [r2, #-1508]
17209
+ ldrh r2, [r2, r1]
17210
+ add r2, r3, r2, lsl #1
17211
+.L2704:
1682117212 cmp r3, r2
16822
- beq .L2774
16823
- ldrh r1, [r3], #2
16824
- cmp r1, r0
16825
- bne .L2770
16826
- mov r0, #1
16827
- bx lr
16828
-.L2774:
17213
+ bne .L2706
1682917214 mov r0, #0
1683017215 bx lr
16831
-.L2776:
17216
+.L2706:
17217
+ ldrh r1, [r3], #2
17218
+ cmp r1, r0
17219
+ bne .L2704
17220
+ mov r0, #1
17221
+ bx lr
17222
+.L2709:
1683217223 .align 2
16833
-.L2775:
16834
- .word .LANCHOR4
17224
+.L2708:
1683517225 .word .LANCHOR2
1683617226 .fnend
1683717227 .size IsBlkInGcList, .-IsBlkInGcList
1683817228 .align 2
1683917229 .global FtlGcUpdatePage
17230
+ .syntax unified
17231
+ .arm
17232
+ .fpu softvfp
1684017233 .type FtlGcUpdatePage, %function
1684117234 FtlGcUpdatePage:
1684217235 .fnstart
1684317236 @ args = 0, pretend = 0, frame = 0
1684417237 @ frame_needed = 0, uses_anonymous_args = 0
16845
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
16846
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
17238
+ push {r4, r5, r6, r7, r8, lr}
17239
+ .save {r4, r5, r6, r7, r8, lr}
1684717240 mov r4, r0
1684817241 ubfx r0, r0, #10, #16
1684917242 mov r5, r1
1685017243 mov r6, r2
1685117244 bl P2V_block_in_plane
16852
- ldr lr, .L2785
16853
- movw r2, #1764
16854
- ldr r3, .L2785+4
16855
- ldr r1, [lr, #-1512]
16856
- ldrh r7, [r3, r2]
16857
- mov r2, #0
16858
- sub r8, r1, #2
16859
-.L2778:
16860
- uxth ip, r2
16861
- cmp ip, r7
16862
- bcs .L2782
16863
- ldrh r9, [r8, #2]!
16864
- add r2, r2, #1
16865
- cmp r9, r0
16866
- bne .L2778
16867
-.L2782:
16868
- cmp ip, r7
16869
- bne .L2780
16870
- mov ip, ip, asl #1
16871
- movw r2, #1764
16872
- strh r0, [r1, ip] @ movhi
17245
+ ldr r3, .L2715
17246
+ movw r2, #1756
17247
+ mov ip, #0
17248
+ ldrh lr, [r3, r2]
17249
+ ldr r2, [r3, #-1508]
17250
+ sub r1, r2, #2
17251
+.L2711:
17252
+ uxth r7, ip
17253
+ cmp r7, lr
17254
+ bcc .L2713
17255
+ bne .L2712
17256
+ lsl ip, r7, #1
17257
+ strh r0, [r2, ip] @ movhi
17258
+ movw r2, #1756
1687317259 ldrh r0, [r3, r2]
1687417260 add r0, r0, #1
1687517261 strh r0, [r3, r2] @ movhi
16876
-.L2780:
16877
- movw r0, #1766
16878
- mov ip, #12
16879
- ldrh r2, [r3, r0]
16880
- mul ip, ip, r2
16881
- ldr r2, [lr, #-1508]
16882
- add r1, r2, ip
17262
+ b .L2712
17263
+.L2713:
17264
+ ldrh r7, [r1, #2]!
17265
+ add ip, ip, #1
17266
+ cmp r7, r0
17267
+ bne .L2711
17268
+.L2712:
17269
+ movw ip, #1758
17270
+ mov r0, #12
17271
+ ldrh r2, [r3, ip]
17272
+ mul r0, r0, r2
17273
+ ldr r2, [r3, #-1504]
17274
+ add r1, r2, r0
1688317275 stmib r1, {r5, r6}
16884
- str r4, [r2, ip]
16885
- ldrh r2, [r3, r0]
17276
+ str r4, [r2, r0]
17277
+ ldrh r2, [r3, ip]
1688617278 add r2, r2, #1
16887
- strh r2, [r3, r0] @ movhi
16888
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
16889
-.L2786:
17279
+ strh r2, [r3, ip] @ movhi
17280
+ pop {r4, r5, r6, r7, r8, pc}
17281
+.L2716:
1689017282 .align 2
16891
-.L2785:
17283
+.L2715:
1689217284 .word .LANCHOR2
16893
- .word .LANCHOR4
1689417285 .fnend
1689517286 .size FtlGcUpdatePage, .-FtlGcUpdatePage
1689617287 .align 2
1689717288 .global FtlGcPageVarInit
17289
+ .syntax unified
17290
+ .arm
17291
+ .fpu softvfp
1689817292 .type FtlGcPageVarInit, %function
1689917293 FtlGcPageVarInit:
1690017294 .fnstart
1690117295 @ args = 0, pretend = 0, frame = 0
1690217296 @ frame_needed = 0, uses_anonymous_args = 0
16903
- stmfd sp!, {r3, r4, r5, lr}
16904
- .save {r3, r4, r5, lr}
16905
- movw r1, #1764
16906
- ldr r3, .L2789
16907
- mov r2, #0
16908
- ldr r4, .L2789+4
16909
- sub r5, r4, #1664
16910
- strh r2, [r3, r1] @ movhi
16911
- movw r1, #1766
16912
- ldr r0, [r4, #-1512]
16913
- strh r2, [r3, r1] @ movhi
17297
+ push {r4, r5, r6, lr}
17298
+ .save {r4, r5, r6, lr}
17299
+ mov r3, #0
17300
+ ldr r4, .L2719
17301
+ movw r2, #1756
1691417302 mov r1, #255
16915
- ldrh r2, [r5]
16916
- mov r2, r2, asl #1
16917
- bl ftl_memset
16918
- ldrh r3, [r5]
16919
- mov r2, #12
17303
+ strh r3, [r4, r2] @ movhi
17304
+ sub r5, r4, #1648
17305
+ movw r2, #1758
1692017306 ldr r0, [r4, #-1508]
17307
+ strh r3, [r4, r2] @ movhi
17308
+ ldrh r2, [r5, #-14]
17309
+ lsl r2, r2, #1
17310
+ bl ftl_memset
17311
+ ldrh r3, [r5, #-14]
17312
+ mov r2, #12
17313
+ ldr r0, [r4, #-1504]
1692117314 mov r1, #255
1692217315 mul r2, r2, r3
1692317316 bl ftl_memset
16924
- ldmfd sp!, {r3, r4, r5, lr}
17317
+ pop {r4, r5, r6, lr}
1692517318 b FtlGcBufInit
16926
-.L2790:
17319
+.L2720:
1692717320 .align 2
16928
-.L2789:
16929
- .word .LANCHOR4
17321
+.L2719:
1693017322 .word .LANCHOR2
1693117323 .fnend
1693217324 .size FtlGcPageVarInit, .-FtlGcPageVarInit
1693317325 .align 2
1693417326 .global FtlGcScanTempBlk
17327
+ .syntax unified
17328
+ .arm
17329
+ .fpu softvfp
1693517330 .type FtlGcScanTempBlk, %function
1693617331 FtlGcScanTempBlk:
1693717332 .fnstart
1693817333 @ args = 0, pretend = 0, frame = 64
1693917334 @ frame_needed = 0, uses_anonymous_args = 0
16940
- ldr r2, .L2844
16941
- movw r3, #3448
16942
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
17335
+ ldr r2, .L2770
17336
+ movw r3, #3444
17337
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1694317338 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1694417339 .pad #68
1694517340 sub sp, sp, #68
16946
- ldrh r5, [r2, r3]
16947
- movw r3, #65535
16948
- mov r4, r0
17341
+ mov r5, r0
1694917342 str r1, [sp, #8]
16950
- cmp r5, r3
16951
- beq .L2825
16952
- cmp r5, #0
16953
- bne .L2792
16954
- b .L2793
16955
-.L2825:
16956
- mov r5, #0
16957
-.L2792:
16958
- ldr r3, .L2844+4
16959
- ldr r2, [sp, #8]
16960
- ldrh r3, [r3, #-4]
16961
- cmp r2, r3
16962
- bne .L2794
16963
-.L2793:
17343
+ ldrh r6, [r2, r3]
17344
+ movw r3, #65535
17345
+ cmp r6, r3
17346
+ beq .L2753
17347
+ cmp r6, #0
17348
+ bne .L2722
17349
+.L2723:
1696417350 bl FtlGcPageVarInit
16965
-.L2794:
16966
- ldr r6, .L2844+8
17351
+ b .L2724
17352
+.L2753:
17353
+ mov r6, #0
17354
+.L2722:
17355
+ ldr r3, .L2770+4
17356
+ ldr r2, [sp, #8]
17357
+ ldrh r3, [r3, #-2]
17358
+ cmp r3, r2
17359
+ beq .L2723
17360
+.L2724:
17361
+ ldr r4, .L2770+8
1696717362 mov r2, #0
1696817363 mvn r3, #0
16969
- stmia sp, {r2, r3}
16970
-.L2795:
16971
- ldrh r1, [r4]
17364
+ stm sp, {r2, r3}
17365
+.L2725:
17366
+ ldrh r1, [r5]
1697217367 movw r3, #65535
1697317368 mov r2, #0
16974
- strb r2, [r4, #8]
17369
+ strb r2, [r5, #8]
1697517370 cmp r1, r3
16976
- beq .L2796
16977
-.L2797:
16978
-.L2822:
16979
- ldr r3, .L2844+12
16980
- mov r7, #0
16981
- ldr r0, [r6, #-1436]
16982
- add r1, r4, #14
16983
- mov r8, r7
16984
- movw lr, #65535
16985
- ldrh r3, [r3]
17371
+ beq .L2726
17372
+.L2750:
17373
+ ldr r3, .L2770+12
17374
+ add ip, r5, #16
17375
+ ldr r0, [r4, #-1500]
17376
+ movw r8, #65535
17377
+ ldr fp, [r4, #-1432]
1698617378 mov r9, #36
16987
- str r3, [sp, #12]
16988
- ldr r3, [r6, #-1504]
16989
- str r3, [sp, #16]
16990
- ldr r3, [r6, #-1464]
16991
- str r3, [sp, #20]
16992
- ldr r3, .L2844+16
16993
- ldrh fp, [r3]
16994
- ldrh ip, [r3, #2]
16995
-.L2798:
16996
- ldr r2, [sp, #12]
16997
- uxth r3, r7
17379
+ ldrh r2, [r3, #-4]
17380
+ ldrh lr, [r3, #74]
17381
+ str r2, [sp, #12]
17382
+ ldr r2, [r4, #-1460]
17383
+ str r2, [sp, #16]
17384
+ ldrh r2, [r3, #72]
17385
+ str r2, [sp, #20]
17386
+ mov r2, #0
17387
+ mov r7, r2
17388
+.L2727:
17389
+ ldr r1, [sp, #12]
17390
+ uxth r3, r2
17391
+ cmp r1, r3
17392
+ bhi .L2729
17393
+ mov r10, #0
17394
+ mov r2, #0
17395
+ mov r1, r7
17396
+ bl FlashReadPages
17397
+.L2730:
17398
+ uxth r3, r10
17399
+ cmp r7, r3
17400
+ bhi .L2748
17401
+ ldr r3, [sp]
17402
+ add r6, r6, #1
17403
+ uxth r6, r6
17404
+ add r3, r3, #1
17405
+ str r3, [sp]
17406
+ ldr r2, [sp]
17407
+ ldr r3, [sp, #8]
1699817408 cmp r3, r2
16999
- bcs .L2842
17000
- ldrh r3, [r1, #2]!
17001
- cmp r3, lr
17002
- beq .L2799
17003
- ldr r2, [sp, #16]
17004
- orr r3, r5, r3, asl #10
17005
- mla r2, r9, r8, r2
17006
- str r3, [r2, #4]
17007
- mul r3, fp, r8
17409
+ ldr r2, .L2770+4
17410
+ bls .L2749
17411
+.L2751:
17412
+ ldrh r3, [r2, #-2]
17413
+ cmp r3, r6
17414
+ bhi .L2750
17415
+ mov r2, #0
17416
+ b .L2726
17417
+.L2729:
17418
+ ldrh r3, [ip], #2
17419
+ cmp r3, r8
17420
+ beq .L2728
17421
+ mla r1, r9, r7, r0
17422
+ orr r3, r6, r3, lsl #10
17423
+ str r3, [r1, #4]
17424
+ ldr r3, [sp, #20]
17425
+ mul r3, r3, r7
1700817426 add r10, r3, #3
1700917427 cmp r3, #0
1701017428 movlt r3, r10
17011
- ldr r10, [sp, #20]
17429
+ ldr r10, [sp, #16]
1701217430 bic r3, r3, #3
1701317431 add r3, r10, r3
17014
- str r3, [r2, #8]
17015
- mul r3, ip, r8
17016
- add r8, r8, #1
17017
- uxth r8, r8
17432
+ str r3, [r1, #8]
17433
+ mul r3, lr, r7
17434
+ add r7, r7, #1
17435
+ uxth r7, r7
1701817436 add r10, r3, #3
1701917437 cmp r3, #0
1702017438 movlt r3, r10
1702117439 bic r3, r3, #3
17022
- add r3, r0, r3
17023
- str r3, [r2, #12]
17024
-.L2799:
17025
- add r7, r7, #1
17026
- b .L2798
17027
-.L2842:
17028
- ldr r0, [r6, #-1504]
17029
- mov r1, r8
17030
- mov r2, #0
17031
- mov r10, #0
17032
- bl FlashReadPages
17033
-.L2801:
17034
- uxth r3, r10
17035
- cmp r3, r8
17036
- bcs .L2843
17037
- ldr r3, .L2844+8
17440
+ add r3, fp, r3
17441
+ str r3, [r1, #12]
17442
+.L2728:
17443
+ add r2, r2, #1
17444
+ b .L2727
17445
+.L2748:
1703817446 mov r9, #36
17447
+ ldr r8, [r4, #-1500]
1703917448 mul r9, r9, r10
17040
- ldr r7, [r3, #-1504]
17041
- add r3, r7, r9
17042
- str r3, [sp, #12]
17449
+ add r3, r8, r9
1704317450 ldr fp, [r3, #4]
17451
+ str r3, [sp, #12]
1704417452 ubfx r0, fp, #10, #16
1704517453 bl P2V_plane
17046
- ldr r7, [r7, r9]
17047
- ldr ip, .L2844+8
17048
- cmp r7, #0
17049
- ldr r3, [sp, #12]
17454
+ ldr r8, [r8, r9]
1705017455 mov r2, r0
17456
+ ldr r3, [sp, #12]
17457
+ cmp r8, #0
1705117458 ldr r3, [r3, #12]
17052
- bne .L2802
17459
+ bne .L2731
1705317460 ldrh r0, [r3]
1705417461 movw r1, #65535
1705517462 cmp r0, r1
17056
- bne .L2803
17057
-.L2806:
17058
- ldrb r1, [ip, #-2744] @ zero_extendqisi2
17463
+ bne .L2732
17464
+.L2735:
17465
+ ldrb r1, [r4, #-2740] @ zero_extendqisi2
1705917466 cmp r1, #0
17060
- beq .L2837
17061
- ldr r3, .L2844+20
17062
- mov r1, #1
17063
- str r1, [r3, #1756]
17064
- b .L2796
17065
-.L2803:
17467
+ beq .L2765
17468
+ mov r3, #1
17469
+ str r3, [r4, #1748]
17470
+.L2726:
17471
+ ldr r1, .L2770
17472
+ mvn r0, #0
17473
+ movw r3, #3444
17474
+ strh r6, [r5, #2] @ movhi
17475
+ strb r2, [r5, #6]
17476
+ strh r0, [r1, r3] @ movhi
17477
+ mov r1, r6
17478
+ mov r0, r5
17479
+ bl ftl_sb_update_avl_pages
17480
+ b .L2721
17481
+.L2732:
1706617482 ldr r0, [r3, #8]
17067
- ldr r1, [r6, #-1284]
17483
+ ldr r1, [r4, #-1284]
1706817484 cmp r0, r1
17069
- bls .L2838
17070
- b .L2806
17071
-.L2837:
17072
- ldrh r3, [r4]
17073
- ldr r2, [r6, #-1408]
17074
- mov r3, r3, asl #1
17075
- b .L2841
17076
-.L2838:
17077
- ldr r2, .L2844+24
17078
- ldrb r2, [r2] @ zero_extendqisi2
17485
+ bhi .L2735
17486
+ ldr r2, .L2770+16
17487
+ ldrb r2, [r2, #36] @ zero_extendqisi2
1707917488 cmp r2, #0
17080
- beq .L2810
17489
+ bne .L2738
17490
+.L2739:
17491
+ ldr r2, [r3, #8]
17492
+ mov r1, fp
17493
+ ldr r0, [r3, #12]
17494
+ add r10, r10, #1
17495
+ bl FtlGcUpdatePage
17496
+ b .L2730
17497
+.L2765:
17498
+ ldrh r3, [r5]
17499
+ ldr r2, [r4, #-1404]
17500
+ lsl r3, r3, #1
17501
+.L2769:
17502
+ strh r1, [r2, r3] @ movhi
17503
+ ldrh r0, [r5]
17504
+ bl INSERT_FREE_LIST
17505
+ ldr r2, .L2770+20
17506
+ mvn r3, #0
17507
+ strh r3, [r5] @ movhi
17508
+ strh r3, [r2] @ movhi
17509
+.L2768:
17510
+ bl FtlGcPageVarInit
17511
+ mov r6, #0
17512
+ b .L2725
17513
+.L2738:
17514
+ mov r2, r8
1708117515 add r1, sp, #24
17082
- mov r2, r7
1708317516 str r3, [sp, #12]
1708417517 bl log2phys
1708517518 ldr r3, [sp, #12]
1708617519 ldr r1, [sp, #24]
1708717520 ldr r2, [r3, #12]
1708817521 cmn r1, #1
17089
- rsb r0, r2, r1
17522
+ sub r0, r2, r1
1709017523 clz r0, r0
17091
- mov r0, r0, lsr #5
17524
+ lsr r0, r0, #5
1709217525 moveq r0, #0
1709317526 cmp r0, #0
17094
- beq .L2810
17527
+ beq .L2739
1709517528 str r2, [sp, #32]
1709617529 mov r1, #1
17097
- ldr r2, [r6, #-1452]
17530
+ ldr r2, [r4, #-1448]
1709817531 add r0, sp, #28
1709917532 str r2, [sp, #36]
17100
- ldr r2, [r6, #-1440]
17533
+ ldr r2, [r4, #-1436]
1710117534 str r2, [sp, #40]
17102
- mov r2, r7
17535
+ mov r2, r8
1710317536 bl FlashReadPages
17104
- ldr r2, .L2844+28
17105
- ldr r1, [r6, #-1504]
17537
+ ldr r2, .L2770+24
17538
+ ldr r1, [r4, #-1500]
17539
+ ldr r3, [sp, #12]
1710617540 ldrh r2, [r2]
1710717541 add r9, r1, r9
17108
- mov r2, r2, asl #7
1710917542 ldr r1, [sp, #36]
17110
- ldr r3, [sp, #12]
17111
- b .L2812
17112
-.L2813:
17113
- add r7, r7, #1
17114
-.L2812:
17115
- cmp r7, r2
17116
- beq .L2810
17543
+ lsl r2, r2, #7
17544
+.L2740:
17545
+ cmp r8, r2
17546
+ beq .L2739
1711717547 ldr r0, [r9, #8]
17118
- ldr ip, [r0, r7, asl #2]
17119
- ldr r0, [r1, r7, asl #2]
17548
+ ldr ip, [r0, r8, lsl #2]
17549
+ ldr r0, [r1, r8, lsl #2]
1712017550 cmp ip, r0
17121
- beq .L2813
17122
- ldrh r1, [r4]
17551
+ beq .L2741
1712317552 ldr r2, [sp, #32]
17124
- ldr r0, .L2844+32
17553
+ ldrh r1, [r5]
17554
+ ldr r0, .L2770+28
1712517555 bl printk
17126
- ldrh r3, [r4]
17127
- ldr r2, [r6, #-1408]
17556
+ ldrh r3, [r5]
1712817557 mov r1, #0
17129
- mov r3, r3, asl #1
17130
-.L2841:
17131
- strh r1, [r2, r3] @ movhi
17132
- ldrh r0, [r4]
17133
- bl INSERT_FREE_LIST
17134
- ldr r2, .L2844+36
17135
- mvn r3, #0
17136
- strh r3, [r4] @ movhi
17137
- strh r3, [r2] @ movhi
17138
- b .L2840
17139
-.L2810:
17140
- ldr r0, [r3, #12]
17141
- mov r1, fp
17142
- ldr r2, [r3, #8]
17143
- add r10, r10, #1
17144
- bl FtlGcUpdatePage
17145
- b .L2801
17146
-.L2802:
17147
- ldr r0, .L2844+40
17558
+ ldr r2, [r4, #-1404]
17559
+ lsl r3, r3, #1
17560
+ b .L2769
17561
+.L2741:
17562
+ add r8, r8, #1
17563
+ b .L2740
17564
+.L2731:
1714817565 mov r2, fp
17149
- ldrh r1, [r4]
17150
- str ip, [sp, #12]
17566
+ ldrh r1, [r5]
17567
+ ldr r0, .L2770+32
1715117568 bl printk
17152
- ldr r3, .L2844+8
17153
- ldrh r5, [r4]
17154
- ldr r3, [r3, #-1872]
17569
+ ldr r3, [r4, #-1868]
1715517570 cmp r3, #0
17156
- ldr ip, [sp, #12]
17157
- bne .L2816
17158
- ldr r3, .L2844+8
17159
- ldrb r3, [r3, #-2744] @ zero_extendqisi2
17160
- cmp r3, #0
17161
- beq .L2817
17162
-.L2816:
17163
- ldr r2, [ip, #-1416]
17164
- mov r3, r5, asl #1
17165
- ldrh r3, [r2, r3]
17166
- cmp r3, #159
17167
- bls .L2818
17168
-.L2817:
17169
- ldr r3, [ip, #-1504]
17170
- ldr r3, [r3, r9]
17171
- cmn r3, #1
17172
- bne .L2819
17173
-.L2818:
17174
- ldr r3, [ip, #-1504]
17175
- add r9, r3, r9
17176
- ldr r3, [r9, #4]
17177
- str r3, [sp, #4]
17178
-.L2819:
17179
- ldr r3, .L2844+8
17180
- mov r5, r5, asl #1
17181
- mov r2, #0
17182
- ldr r3, [r3, #-1408]
17183
- strh r2, [r3, r5] @ movhi
17184
- ldrh r0, [r4]
17571
+ ldrh r3, [r5]
17572
+ bne .L2744
17573
+ ldrb r2, [r4, #-2740] @ zero_extendqisi2
17574
+ cmp r2, #0
17575
+ beq .L2745
17576
+.L2744:
17577
+ ldr r1, [r4, #-1412]
17578
+ lsl r2, r3, #1
17579
+ ldrh r2, [r1, r2]
17580
+ cmp r2, #159
17581
+ bls .L2746
17582
+.L2745:
17583
+ ldr r2, [r4, #-1500]
17584
+ ldr r2, [r2, r9]
17585
+ cmn r2, #1
17586
+ bne .L2747
17587
+.L2746:
17588
+ ldr r2, [r4, #-1500]
17589
+ add r9, r2, r9
17590
+ ldr r2, [r9, #4]
17591
+ str r2, [sp, #4]
17592
+.L2747:
17593
+ ldr r2, [r4, #-1404]
17594
+ lsl r3, r3, #1
17595
+ mov r1, #0
17596
+ strh r1, [r2, r3] @ movhi
17597
+ ldrh r0, [r5]
1718517598 bl INSERT_FREE_LIST
1718617599 mvn r3, #0
17187
- strh r3, [r4] @ movhi
17188
-.L2840:
17189
- bl FtlGcPageVarInit
17190
- mov r5, #0
17191
- b .L2795
17192
-.L2843:
17193
- ldr r3, [sp]
17194
- add r5, r5, #1
17195
- ldr r2, [sp, #8]
17196
- add r3, r3, #1
17197
- uxth r5, r5
17198
- cmp r3, r2
17199
- str r3, [sp]
17200
- ldr r2, .L2844+44
17201
- bcs .L2821
17202
-.L2823:
17203
- ldrh r3, [r2]
17204
- cmp r3, r5
17205
- bhi .L2822
17206
- mov r2, #0
17207
- b .L2796
17208
-.L2821:
17209
- ldr r1, .L2844+48
17600
+ strh r3, [r5] @ movhi
17601
+ b .L2768
17602
+.L2749:
17603
+ ldr r1, .L2770+36
1721017604 movw r0, #65535
1721117605 ldrh r3, [r1]
1721217606 cmp r3, r0
17213
- beq .L2823
17607
+ beq .L2751
1721417608 ldr r0, [sp]
1721517609 add r3, r3, r0
1721617610 strh r3, [r1] @ movhi
17217
- ldrh r3, [r2]
17218
- cmp r3, r5
17219
- bls .L2823
17220
- b .L2824
17221
-.L2796:
17222
- ldr r1, .L2844
17223
- movw r3, #3448
17224
- mvn r0, #0
17225
- strh r5, [r4, #2] @ movhi
17226
- strb r2, [r4, #6]
17227
- strh r0, [r1, r3] @ movhi
17228
- mov r0, r4
17229
- mov r1, r5
17230
- bl ftl_sb_update_avl_pages
17231
-.L2824:
17611
+ ldrh r3, [r2, #-2]
17612
+ cmp r3, r6
17613
+ bls .L2751
17614
+.L2721:
1723217615 ldr r0, [sp, #4]
1723317616 add sp, sp, #68
1723417617 @ sp needed
17235
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17236
-.L2845:
17618
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17619
+.L2771:
1723717620 .align 2
17238
-.L2844:
17621
+.L2770:
1723917622 .word .LANCHOR1
1724017623 .word .LANCHOR2-1664
1724117624 .word .LANCHOR2
17242
- .word .LANCHOR2-1736
17243
- .word .LANCHOR2-1658
17244
- .word .LANCHOR4
17625
+ .word .LANCHOR2-1728
1724517626 .word .LANCHOR0
17246
- .word .LANCHOR2-1662
17627
+ .word .LANCHOR2+1156
17628
+ .word .LANCHOR2-1660
1724717629 .word .LC147
17248
- .word .LANCHOR4+1164
1724917630 .word .LC148
17250
- .word .LANCHOR2-1668
17251
- .word .LANCHOR1+3448
17631
+ .word .LANCHOR1+3444
1725217632 .fnend
1725317633 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk
1725417634 .align 2
1725517635 .global FtlGcRefreshOpenBlock
17636
+ .syntax unified
17637
+ .arm
17638
+ .fpu softvfp
1725617639 .type FtlGcRefreshOpenBlock, %function
1725717640 FtlGcRefreshOpenBlock:
1725817641 .fnstart
1725917642 @ args = 0, pretend = 0, frame = 0
1726017643 @ frame_needed = 0, uses_anonymous_args = 0
17261
- stmfd sp!, {r4, r5, r6, lr}
17644
+ push {r4, r5, r6, lr}
1726217645 .save {r4, r5, r6, lr}
17263
- mov r5, r0
17264
- ldr r4, .L2854
17265
- ldrh r3, [r4, #-4]
17646
+ ldr r6, .L2780
17647
+ ldrh r3, [r6]
1726617648 cmp r3, r0
17267
- beq .L2848
17268
- ldrh r3, [r4, #-2]
17649
+ beq .L2774
17650
+ add r5, r6, #16
17651
+ ldrh r3, [r5, #-14]
1726917652 cmp r3, r0
17270
- beq .L2848
17271
- ldrh r3, [r4]
17653
+ beq .L2774
17654
+ ldrh r3, [r5, #-12]
1727217655 cmp r3, r0
17273
- beq .L2848
17274
- add r6, r4, #16
17275
- ldrh r3, [r6, #-14]
17656
+ beq .L2774
17657
+ ldrh r3, [r5, #-10]
1727617658 cmp r3, r0
17277
- beq .L2848
17278
- ldr r0, .L2854+4
17279
- mov r1, r5
17659
+ beq .L2774
17660
+ mov r4, r0
17661
+ mov r1, r0
17662
+ ldr r0, .L2780+4
1728017663 bl printk
17281
- ldrh r2, [r4, #-4]
17664
+ ldrh r2, [r6]
1728217665 movw r3, #65535
1728317666 cmp r2, r3
17284
- streqh r5, [r4, #-4] @ movhi
17285
- beq .L2848
17286
- ldrh r2, [r4, #-2]
17667
+ strheq r4, [r6] @ movhi
17668
+ beq .L2774
17669
+ ldrh r2, [r5, #-14]
1728717670 cmp r2, r3
17288
- streqh r5, [r4, #-2] @ movhi
17289
- beq .L2848
17290
- ldrh r2, [r4]
17671
+ strheq r4, [r5, #-14] @ movhi
17672
+ beq .L2774
17673
+ ldrh r2, [r5, #-12]
1729117674 cmp r2, r3
17292
- streqh r5, [r4] @ movhi
17293
- beq .L2848
17294
- ldrh r2, [r6, #-14]
17675
+ strheq r4, [r5, #-12] @ movhi
17676
+ beq .L2774
17677
+ ldrh r2, [r5, #-10]
1729517678 cmp r2, r3
17296
- streqh r5, [r6, #-14] @ movhi
17297
-.L2848:
17679
+ strheq r4, [r5, #-10] @ movhi
17680
+.L2774:
1729817681 mov r0, #0
17299
- ldmfd sp!, {r4, r5, r6, pc}
17300
-.L2855:
17682
+ pop {r4, r5, r6, pc}
17683
+.L2781:
1730117684 .align 2
17302
-.L2854:
17685
+.L2780:
1730317686 .word .LANCHOR2-1536
1730417687 .word .LC149
1730517688 .fnend
1730617689 .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock
1730717690 .align 2
1730817691 .global FtlGcRefreshBlock
17692
+ .syntax unified
17693
+ .arm
17694
+ .fpu softvfp
1730917695 .type FtlGcRefreshBlock, %function
1731017696 FtlGcRefreshBlock:
1731117697 .fnstart
1731217698 @ args = 0, pretend = 0, frame = 0
1731317699 @ frame_needed = 0, uses_anonymous_args = 0
17314
- stmfd sp!, {r4, r5, r6, lr}
17700
+ push {r4, r5, r6, lr}
1731517701 .save {r4, r5, r6, lr}
17316
- mov r5, r0
17317
- ldr r4, .L2867
17318
- ldrh r3, [r4, #-4]
17702
+ ldr r6, .L2793
17703
+ ldrh r3, [r6]
1731917704 cmp r3, r0
17320
- beq .L2864
17321
- ldrh r3, [r4, #-2]
17705
+ beq .L2790
17706
+ add r5, r6, #16
17707
+ ldrh r3, [r5, #-14]
1732217708 cmp r3, r0
17323
- beq .L2864
17324
- ldrh r3, [r4]
17709
+ beq .L2790
17710
+ ldrh r3, [r5, #-12]
1732517711 cmp r3, r0
17326
- beq .L2864
17327
- add r6, r4, #16
17328
- ldrh r3, [r6, #-14]
17712
+ beq .L2790
17713
+ ldrh r3, [r5, #-10]
1732917714 cmp r3, r0
17330
- beq .L2864
17331
- ldr r0, .L2867+4
17332
- mov r1, r5
17715
+ beq .L2790
17716
+ mov r4, r0
17717
+ mov r1, r0
17718
+ ldr r0, .L2793+4
1733317719 bl printk
17334
- ldrh r2, [r4, #-4]
17720
+ ldrh r2, [r6]
1733517721 movw r3, #65535
1733617722 cmp r2, r3
17337
- streqh r5, [r4, #-4] @ movhi
17338
- beq .L2864
17339
- ldrh r2, [r4, #-2]
17723
+ strheq r4, [r6] @ movhi
17724
+ beq .L2790
17725
+ ldrh r2, [r5, #-14]
1734017726 cmp r2, r3
17341
- streqh r5, [r4, #-2] @ movhi
17342
- beq .L2864
17343
- ldrh r2, [r4]
17727
+ strheq r4, [r5, #-14] @ movhi
17728
+ beq .L2790
17729
+ ldrh r2, [r5, #-12]
1734417730 cmp r2, r3
17345
- streqh r5, [r4] @ movhi
17346
- beq .L2864
17347
- ldrh r2, [r6, #-14]
17731
+ strheq r4, [r5, #-12] @ movhi
17732
+ beq .L2790
17733
+ ldrh r2, [r5, #-10]
1734817734 cmp r2, r3
17349
- bne .L2865
17350
- strh r5, [r6, #-14] @ movhi
17351
-.L2864:
17735
+ bne .L2791
17736
+ strh r4, [r5, #-10] @ movhi
17737
+.L2790:
1735217738 mov r0, #0
17353
- ldmfd sp!, {r4, r5, r6, pc}
17354
-.L2865:
17739
+ pop {r4, r5, r6, pc}
17740
+.L2791:
1735517741 mvn r0, #0
17356
- ldmfd sp!, {r4, r5, r6, pc}
17357
-.L2868:
17742
+ pop {r4, r5, r6, pc}
17743
+.L2794:
1735817744 .align 2
17359
-.L2867:
17745
+.L2793:
1736017746 .word .LANCHOR2-1536
1736117747 .word .LC149
1736217748 .fnend
1736317749 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock
1736417750 .align 2
1736517751 .global FtlGcMarkBadPhyBlk
17752
+ .syntax unified
17753
+ .arm
17754
+ .fpu softvfp
1736617755 .type FtlGcMarkBadPhyBlk, %function
1736717756 FtlGcMarkBadPhyBlk:
1736817757 .fnstart
1736917758 @ args = 0, pretend = 0, frame = 0
1737017759 @ frame_needed = 0, uses_anonymous_args = 0
17371
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
17372
- .save {r3, r4, r5, r6, r7, lr}
17760
+ push {r4, r5, r6, r7, r8, lr}
17761
+ .save {r4, r5, r6, r7, r8, lr}
1737317762 mov r5, r0
17763
+ ldr r6, .L2804
1737417764 bl P2V_block_in_plane
17375
- ldr r6, .L2879
17376
- mov r2, r5
1737717765 sub r7, r6, #1520
17378
- ldrh r1, [r7, #-6]
1737917766 mov r4, r0
17380
- ldr r0, .L2879+4
17767
+ mov r2, r5
17768
+ ldrh r1, [r7, #-2]
17769
+ ldr r0, .L2804+4
1738117770 bl printk
1738217771 mov r0, r4
1738317772 bl FtlGcRefreshBlock
17384
- ldr r3, [r6, #-1872]
17773
+ ldr r3, [r6, #-1868]
1738517774 cmp r3, #0
17386
- beq .L2870
17387
- ldr r2, [r6, #-1416]
17388
- mov r4, r4, asl #1
17775
+ beq .L2796
17776
+ ldr r2, [r6, #-1412]
17777
+ lsl r4, r4, #1
1738917778 ldrh r3, [r2, r4]
1739017779 cmp r3, #39
1739117780 subhi r3, r3, #40
17392
- strhih r3, [r2, r4] @ movhi
17393
-.L2870:
17394
- ldrh r3, [r7, #-6]
17781
+ strhhi r3, [r2, r4] @ movhi
17782
+.L2796:
17783
+ ldrh r3, [r7, #-2]
1739517784 mov r2, #0
17396
- ldr r0, .L2879+8
17397
-.L2871:
17785
+ ldr r0, .L2804+8
17786
+.L2797:
1739817787 uxth r1, r2
17399
- cmp r1, r3
17400
- bcs .L2878
17401
- add r2, r2, #1
17402
- add r1, r0, r2, asl #1
17403
- ldrh r1, [r1, #-2]
17404
- cmp r1, r5
17405
- bne .L2871
17406
- b .L2872
17407
-.L2878:
17788
+ cmp r3, r1
17789
+ bhi .L2799
1740817790 cmp r3, #15
1740917791 addls r2, r3, #1
17410
- strlsh r2, [r7, #-6] @ movhi
17411
- ldrls r2, .L2879+8
17412
- movls r3, r3, asl #1
17413
- strlsh r5, [r2, r3] @ movhi
17414
-.L2872:
17792
+ lslls r3, r3, #1
17793
+ strhls r2, [r7, #-2] @ movhi
17794
+ ldrls r2, .L2804+8
17795
+ strhls r5, [r2, r3] @ movhi
17796
+ b .L2798
17797
+.L2799:
17798
+ add r2, r2, #1
17799
+ add r1, r0, r2, lsl #1
17800
+ ldrh r1, [r1, #-2]
17801
+ cmp r1, r5
17802
+ bne .L2797
17803
+.L2798:
1741517804 mov r0, #0
17416
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
17417
-.L2880:
17805
+ pop {r4, r5, r6, r7, r8, pc}
17806
+.L2805:
1741817807 .align 2
17419
-.L2879:
17808
+.L2804:
1742017809 .word .LANCHOR2
1742117810 .word .LC150
17422
- .word .LANCHOR4+1768
17811
+ .word .LANCHOR2+1760
1742317812 .fnend
1742417813 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
1742517814 .align 2
1742617815 .global FtlGcReFreshBadBlk
17816
+ .syntax unified
17817
+ .arm
17818
+ .fpu softvfp
1742717819 .type FtlGcReFreshBadBlk, %function
1742817820 FtlGcReFreshBadBlk:
1742917821 .fnstart
1743017822 @ args = 0, pretend = 0, frame = 0
1743117823 @ frame_needed = 0, uses_anonymous_args = 0
17432
- stmfd sp!, {r4, lr}
17824
+ push {r4, lr}
1743317825 .save {r4, lr}
17434
- ldr r4, .L2888
17435
- ldrh r3, [r4, #-6]
17826
+ ldr r4, .L2813
17827
+ ldrh r3, [r4, #-2]
1743617828 cmp r3, #0
17437
- beq .L2882
17438
- ldrh r1, [r4, #-20]
17829
+ beq .L2807
17830
+ ldrh r1, [r4, #-16]
1743917831 movw r2, #65535
1744017832 cmp r1, r2
17441
- bne .L2882
17442
- ldrh r2, [r4, #-2]
17833
+ bne .L2807
17834
+ add r4, r4, #16
17835
+ ldrh r2, [r4, #-14]
1744317836 cmp r2, r3
17444
- ldr r2, .L2888+4
17837
+ ldr r2, .L2813+4
1744517838 movcs r3, #0
17446
- strcsh r3, [r4, #-2] @ movhi
17447
- ldrh r3, [r4, #-2]
17448
- mov r3, r3, asl #1
17839
+ strhcs r3, [r4, #-14] @ movhi
17840
+ ldrh r3, [r4, #-14]
17841
+ lsl r3, r3, #1
1744917842 ldrh r0, [r2, r3]
1745017843 bl P2V_block_in_plane
1745117844 bl FtlGcRefreshBlock
17452
- ldrh r3, [r4, #-2]
17845
+ ldrh r3, [r4, #-14]
1745317846 add r3, r3, #1
17454
- strh r3, [r4, #-2] @ movhi
17455
-.L2882:
17847
+ strh r3, [r4, #-14] @ movhi
17848
+.L2807:
1745617849 mov r0, #0
17457
- ldmfd sp!, {r4, pc}
17458
-.L2889:
17850
+ pop {r4, pc}
17851
+.L2814:
1745917852 .align 2
17460
-.L2888:
17853
+.L2813:
1746117854 .word .LANCHOR2-1520
17462
- .word .LANCHOR4+1768
17855
+ .word .LANCHOR2+1760
1746317856 .fnend
1746417857 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
1746517858 .align 2
1746617859 .global FtlGcFreeBadSuperBlk
17860
+ .syntax unified
17861
+ .arm
17862
+ .fpu softvfp
1746717863 .type FtlGcFreeBadSuperBlk, %function
1746817864 FtlGcFreeBadSuperBlk:
1746917865 .fnstart
1747017866 @ args = 0, pretend = 0, frame = 8
1747117867 @ frame_needed = 0, uses_anonymous_args = 0
17472
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
17868
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1747317869 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1747417870 .pad #12
17475
- ldr r5, .L2904
17476
- ldrh r3, [r5, #-6]
17871
+ ldr r4, .L2828
17872
+ ldrh r3, [r4, #-2]
1747717873 cmp r3, #0
17478
- beq .L2892
17479
- sub r5, r5, #6
17480
- mov r8, r0
17874
+ beq .L2816
17875
+ add r9, r4, #1520
1748117876 mov r7, #0
17482
- mov r9, r5
17483
-.L2891:
17484
- ldr r3, .L2904+4
17485
- uxth r2, r7
17486
- ldrh r3, [r3]
17487
- cmp r3, r2
17488
- bls .L2901
17489
- ldr r3, .L2904+8
17490
- mov r1, r8
17491
- mov r10, #0
17492
- add r3, r3, r2
17493
- ldrb r0, [r3, #-1708] @ zero_extendqisi2
17494
- bl V2P_block
17495
- ldr ip, .L2904+12
17496
- mov fp, r0
17497
-.L2893:
17498
- ldrh r3, [r5]
17499
- uxth r4, r10
17500
- cmp r3, r4
17501
- bls .L2902
17502
- mov r3, r4, asl #1
17503
- add r6, ip, r3
17504
- ldrh r3, [ip, r3]
17505
- cmp r3, fp
17506
- bne .L2894
17507
- mov r1, fp
17508
- ldr r0, .L2904+16
17509
- str ip, [sp, #4]
17510
- bl printk
17511
- mov r0, fp
17512
- bl FtlBbmMapBadBlock
17513
- bl FtlBbmTblFlush
17514
- ldrh r2, [r5]
17515
- mov r3, r6
17516
- ldr ip, [sp, #4]
17517
-.L2895:
17518
- cmp r4, r2
17519
- ldrcch r1, [r3, #2]
17520
- addcc r4, r4, #1
17521
- uxthcc r4, r4
17522
- strcch r1, [r3], #2 @ movhi
17523
- bcc .L2895
17524
-.L2903:
17525
- sub r2, r2, #1
17526
- strh r2, [r9] @ movhi
17527
-.L2894:
17528
- add r10, r10, #1
17529
- b .L2893
17530
-.L2902:
17531
- add r7, r7, #1
17532
- b .L2891
17533
-.L2901:
17877
+ add fp, r9, #1760
17878
+ str r0, [sp]
17879
+.L2817:
17880
+ ldr r3, .L2828+4
17881
+ ldrh r2, [r3, #-4]
17882
+ uxth r3, r7
17883
+ cmp r2, r3
17884
+ bhi .L2823
1753417885 bl FtlGcReFreshBadBlk
17535
-.L2892:
17886
+.L2816:
1753617887 mov r0, #0
1753717888 add sp, sp, #12
1753817889 @ sp needed
17539
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17540
-.L2905:
17890
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17891
+.L2823:
17892
+ uxtah r3, r9, r7
17893
+ ldr r1, [sp]
17894
+ mov r8, #0
17895
+ ldrb r0, [r3, #-1706] @ zero_extendqisi2
17896
+ bl V2P_block
17897
+ ldr r2, .L2828+8
17898
+ mov r10, r0
17899
+.L2818:
17900
+ ldrh r1, [r4, #-2]
17901
+ uxth r5, r8
17902
+ cmp r1, r5
17903
+ addls r7, r7, #1
17904
+ bls .L2817
17905
+.L2822:
17906
+ uxth r6, r8
17907
+ lsl r1, r6, #1
17908
+ ldrh r1, [fp, r1]
17909
+ cmp r1, r10
17910
+ bne .L2819
17911
+ mov r1, r10
17912
+ mov r0, r2
17913
+ str r2, [sp, #4]
17914
+ add r6, fp, r6, lsl #1
17915
+ bl printk
17916
+ mov r0, r10
17917
+ bl FtlBbmMapBadBlock
17918
+ bl FtlBbmTblFlush
17919
+ ldrh r1, [r4, #-2]
17920
+ ldr r2, [sp, #4]
17921
+.L2820:
17922
+ cmp r5, r1
17923
+ bcc .L2821
17924
+ sub r1, r1, #1
17925
+ strh r1, [r4, #-2] @ movhi
17926
+.L2819:
17927
+ add r8, r8, #1
17928
+ b .L2818
17929
+.L2821:
17930
+ ldrh r0, [r6, #2]!
17931
+ add r5, r5, #1
17932
+ uxth r5, r5
17933
+ strh r0, [r6, #-2] @ movhi
17934
+ b .L2820
17935
+.L2829:
1754117936 .align 2
17542
-.L2904:
17937
+.L2828:
1754317938 .word .LANCHOR2-1520
17544
- .word .LANCHOR2-1736
17545
- .word .LANCHOR2
17546
- .word .LANCHOR4+1768
17939
+ .word .LANCHOR2-1728
1754717940 .word .LC151
1754817941 .fnend
1754917942 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
1755017943 .align 2
1755117944 .global update_vpc_list
17945
+ .syntax unified
17946
+ .arm
17947
+ .fpu softvfp
1755217948 .type update_vpc_list, %function
1755317949 update_vpc_list:
1755417950 .fnstart
1755517951 @ args = 0, pretend = 0, frame = 0
1755617952 @ frame_needed = 0, uses_anonymous_args = 0
17557
- ldr r2, .L2916
17558
- mov r3, r0, asl #1
17559
- stmfd sp!, {r4, lr}
17953
+ ldr r2, .L2839
17954
+ lsl r3, r0, #1
17955
+ push {r4, lr}
1756017956 .save {r4, lr}
17561
- mov r4, r0
17562
- ldr r1, [r2, #-1408]
17957
+ ldr r1, [r2, #-1404]
1756317958 ldrh r3, [r1, r3]
1756417959 cmp r3, #0
17565
- bne .L2907
17566
- ldr r0, .L2916+4
17567
- movw r1, #1164
17568
- ldrh ip, [r0, r1]
17569
- cmp ip, r4
17960
+ bne .L2831
17961
+ movw r1, #1156
17962
+ mov r4, r0
17963
+ ldrh r0, [r2, r1]
17964
+ cmp r0, r4
1757017965 mvneq r3, #0
17571
- streqh r3, [r0, r1] @ movhi
17572
- beq .L2909
17966
+ strheq r3, [r2, r1] @ movhi
17967
+ beq .L2833
1757317968 add r1, r2, #884
1757417969 ldrh r1, [r1]
1757517970 cmp r1, r4
17576
- beq .L2915
17971
+ beq .L2830
1757717972 add r1, r2, #932
1757817973 ldrh r1, [r1]
1757917974 cmp r1, r4
17580
- beq .L2915
17975
+ beq .L2830
1758117976 add r2, r2, #980
1758217977 ldrh r2, [r2]
1758317978 cmp r2, r4
17584
- beq .L2915
17585
-.L2909:
17979
+ beq .L2830
17980
+.L2833:
1758617981 mov r1, r4
17587
- ldr r0, .L2916+8
17982
+ ldr r0, .L2839+4
1758817983 bl List_remove_node
17589
- ldr r2, .L2916+12
17984
+ ldr r2, .L2839+8
1759017985 mov r0, r4
1759117986 ldrh r3, [r2]
1759217987 sub r3, r3, #1
....@@ -17594,54 +17989,57 @@
1759417989 bl free_data_superblock
1759517990 mov r0, r4
1759617991 bl FtlGcFreeBadSuperBlk
17597
- mov r0, #1
17598
- ldmfd sp!, {r4, pc}
17599
-.L2907:
17992
+ mov r3, #1
17993
+.L2830:
17994
+ mov r0, r3
17995
+ pop {r4, pc}
17996
+.L2831:
1760017997 bl List_update_data_list
17601
-.L2915:
17602
- mov r0, #0
17603
- ldmfd sp!, {r4, pc}
17604
-.L2917:
17998
+ mov r3, #0
17999
+ b .L2830
18000
+.L2840:
1760518001 .align 2
17606
-.L2916:
18002
+.L2839:
1760718003 .word .LANCHOR2
17608
- .word .LANCHOR4
1760918004 .word .LANCHOR2+864
1761018005 .word .LANCHOR2+872
1761118006 .fnend
1761218007 .size update_vpc_list, .-update_vpc_list
1761318008 .align 2
1761418009 .global decrement_vpc_count
18010
+ .syntax unified
18011
+ .arm
18012
+ .fpu softvfp
1761518013 .type decrement_vpc_count, %function
1761618014 decrement_vpc_count:
1761718015 .fnstart
1761818016 @ args = 0, pretend = 0, frame = 0
1761918017 @ frame_needed = 0, uses_anonymous_args = 0
1762018018 movw r3, #65535
17621
- cmp r0, r3
17622
- stmfd sp!, {r4, r5, r6, lr}
18019
+ push {r4, r5, r6, lr}
1762318020 .save {r4, r5, r6, lr}
18021
+ cmp r0, r3
1762418022 mov r4, r0
17625
- beq .L2919
17626
- ldr r5, .L2929
17627
- mov r6, r0, asl #1
17628
- ldr r3, [r5, #-1408]
18023
+ ldr r5, .L2852
18024
+ beq .L2842
18025
+ ldr r3, [r5, #-1404]
18026
+ lsl r6, r0, #1
1762918027 ldrh r2, [r3, r6]
1763018028 cmp r2, #0
1763118029 subne r2, r2, #1
17632
- strneh r2, [r3, r6] @ movhi
17633
- bne .L2919
17634
- mov r1, r4
17635
- ldr r0, .L2929+4
18030
+ strhne r2, [r3, r6] @ movhi
18031
+ bne .L2842
18032
+ mov r1, r0
18033
+ ldr r0, .L2852+4
1763618034 bl printk
17637
- ldr r3, [r5, #-1408]
18035
+ ldr r3, [r5, #-1404]
1763818036 mov r2, #32
17639
- add r0, r5, #876
1764018037 mov r1, r4
18038
+ add r0, r5, #876
1764118039 strh r2, [r3, r6] @ movhi
1764218040 bl test_node_in_list
1764318041 cmp r0, #0
17644
- beq .L2921
18042
+ beq .L2844
1764518043 mov r1, r4
1764618044 add r0, r5, #876
1764718045 bl List_remove_node
....@@ -17651,842 +18049,794 @@
1765118049 sub r3, r3, #1
1765218050 strh r3, [r2] @ movhi
1765318051 bl INSERT_DATA_LIST
17654
- ldr r3, [r5, #-1408]
17655
- ldr r0, .L2929+8
18052
+ ldr r3, [r5, #-1404]
1765618053 mov r1, r4
18054
+ ldr r0, .L2852+8
1765718055 ldrh r2, [r3, r6]
1765818056 bl printk
17659
-.L2921:
18057
+.L2844:
1766018058 mov r0, r4
1766118059 bl FtlGcRefreshBlock
17662
- b .L2924
17663
-.L2919:
17664
- ldr r6, .L2929+12
17665
- movw r5, #1748
17666
- movw r3, #65535
17667
- ldrh r0, [r6, r5]
17668
- cmp r0, r3
17669
- streqh r4, [r6, r5] @ movhi
17670
- beq .L2924
17671
- cmp r0, r4
17672
- beq .L2924
17673
- bl update_vpc_list
17674
- strh r4, [r6, r5] @ movhi
17675
- adds r0, r0, #0
17676
- movne r0, #1
17677
- ldmfd sp!, {r4, r5, r6, pc}
17678
-.L2924:
18060
+.L2847:
1767918061 mov r0, #0
17680
- ldmfd sp!, {r4, r5, r6, pc}
17681
-.L2930:
18062
+ pop {r4, r5, r6, pc}
18063
+.L2842:
18064
+ movw r6, #1740
18065
+ movw r3, #65535
18066
+ ldrh r0, [r5, r6]
18067
+ cmp r0, r3
18068
+ strheq r4, [r5, r6] @ movhi
18069
+ beq .L2847
18070
+ cmp r4, r0
18071
+ beq .L2847
18072
+ bl update_vpc_list
18073
+ adds r0, r0, #0
18074
+ strh r4, [r5, r6] @ movhi
18075
+ movne r0, #1
18076
+ pop {r4, r5, r6, pc}
18077
+.L2853:
1768218078 .align 2
17683
-.L2929:
18079
+.L2852:
1768418080 .word .LANCHOR2
1768518081 .word .LC152
1768618082 .word .LC153
17687
- .word .LANCHOR4
1768818083 .fnend
1768918084 .size decrement_vpc_count, .-decrement_vpc_count
1769018085 .align 2
1769118086 .global FtlRecoverySuperblock
18087
+ .syntax unified
18088
+ .arm
18089
+ .fpu softvfp
1769218090 .type FtlRecoverySuperblock, %function
1769318091 FtlRecoverySuperblock:
1769418092 .fnstart
17695
- @ args = 0, pretend = 0, frame = 64
18093
+ @ args = 0, pretend = 0, frame = 48
1769618094 @ frame_needed = 0, uses_anonymous_args = 0
17697
- ldrh r3, [r0]
17698
- movw r2, #65535
17699
- mov r1, r0
17700
- cmp r3, r2
17701
- beq .L3075
17702
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
18095
+ ldrh r2, [r0]
18096
+ movw r1, #65535
18097
+ cmp r2, r1
18098
+ beq .L2999
18099
+ ldr r2, .L3011
18100
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1770318101 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
17704
- .pad #68
17705
- sub sp, sp, #68
18102
+ .pad #52
18103
+ sub sp, sp, #52
1770618104 ldrh r3, [r0, #2]
18105
+ mov fp, r0
18106
+ ldrh r2, [r2, #-2]
1770718107 str r3, [sp, #8]
17708
- ldrb r3, [r0, #6] @ zero_extendqisi2
17709
- ldr r0, [sp, #8]
17710
- str r3, [sp]
17711
- ldr r3, .L3090
17712
- ldrh r3, [r3, #-4]
17713
- cmp r3, r0
17714
- mov r3, #0
17715
- streqh r3, [r1, #4] @ movhi
17716
- streqb r3, [r1, #6]
17717
- ldrneh r0, [r1, #16]
17718
- beq .L3072
17719
-.L2935:
17720
- cmp r0, r2
17721
- add r3, r3, #1
17722
- uxtheq r0, r3
17723
- addeq r0, r1, r0, asl #1
17724
- ldreqh r0, [r0, #16]
17725
- beq .L2935
17726
-.L3085:
17727
- mov r9, r1
17728
- ldrb r1, [r1, #8] @ zero_extendqisi2
17729
- cmp r1, #1
17730
- bne .L2937
17731
- bl FtlGetLastWrittenPage
17732
- cmn r0, #1
17733
- mov r4, r0
17734
- beq .L2938
17735
- ldr r3, .L3090+4
17736
- ldrb r3, [r3, #-2744] @ zero_extendqisi2
17737
- cmp r3, #0
17738
- bne .L3076
17739
- ldr r3, .L3090+8
17740
- add r3, r3, r0, asl #1
17741
- ldrh r6, [r3, #80]
17742
- b .L3009
17743
-.L2937:
17744
- mov r1, #0
17745
- bl FtlGetLastWrittenPage
17746
- cmn r0, #1
17747
- mov r4, r0
17748
- beq .L2938
17749
-.L3076:
17750
- mov r6, r4
17751
-.L3009:
17752
- ldr r3, .L3090+4
17753
- movw r8, #65535
17754
- sub r2, r3, #1728
17755
- sub r3, r3, #1648
17756
- ldr ip, [r3, #144]
17757
- ldr lr, [r3, #212]
17758
- ldrh r2, [r2, #-8]
17759
- ldrh r7, [r3, #-8]
17760
- add r3, r9, #14
17761
- str r3, [sp, #20]
17762
- str r2, [sp, #4]
18108
+ cmp r2, r3
1776318109 mov r2, #0
17764
- mov r0, r3
17765
- mov r5, r2
17766
- mov r10, r2
17767
- b .L2940
17768
-.L2938:
17769
- mov r3, #0
17770
- strh r3, [r9, #2] @ movhi
17771
- strb r3, [r9, #6]
17772
- b .L3072
17773
-.L2942:
17774
- ldrh r3, [r0, #2]!
17775
- cmp r3, r8
17776
- beq .L2941
17777
- mov r1, #36
17778
- orr r3, r6, r3, asl #10
17779
- mla r1, r1, r5, ip
17780
- stmib r1, {r3, r10}
17781
- mul r3, r7, r5
17782
- add r5, r5, #1
17783
- uxth r5, r5
17784
- add fp, r3, #3
17785
- cmp r3, #0
17786
- movlt r3, fp
17787
- bic r3, r3, #3
17788
- add r3, lr, r3
17789
- str r3, [r1, #12]
17790
-.L2941:
18110
+ strheq r2, [r0, #4] @ movhi
18111
+ strbeq r2, [r0, #6]
18112
+ ldrhne r0, [r0, #16]
18113
+ bne .L2858
18114
+.L2997:
18115
+ mov r0, #0
18116
+ add sp, sp, #52
18117
+ @ sp needed
18118
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
18119
+.L2859:
18120
+ uxth r0, r2
18121
+ add r0, fp, r0, lsl #1
18122
+ ldrh r0, [r0, #16]
18123
+.L2858:
18124
+ cmp r0, r1
1779118125 add r2, r2, #1
17792
-.L2940:
17793
- ldr r1, [sp, #4]
18126
+ beq .L2859
18127
+ ldrb r1, [fp, #8] @ zero_extendqisi2
18128
+ ldrb r3, [fp, #6] @ zero_extendqisi2
18129
+ cmp r1, #1
18130
+ str r3, [sp, #12]
18131
+ bne .L2860
18132
+ bl FtlGetLastWrittenPage
18133
+ cmn r0, #1
18134
+ mov r4, r0
18135
+ beq .L2861
18136
+ ldr r3, .L3011+4
18137
+ ldrb r3, [r3, #-2740] @ zero_extendqisi2
18138
+ cmp r3, #0
18139
+ bne .L2932
18140
+ ldr r3, .L3011+8
18141
+ add r3, r3, r0, lsl #1
18142
+ ldrh r5, [r3, #84]
18143
+.L2862:
18144
+ ldr r3, .L3011+4
18145
+ mov r9, #36
18146
+ sub r2, r3, #1728
18147
+ ldr r0, [r3, #-1500]
18148
+ ldrh r2, [r2, #-4]
18149
+ sub r3, r3, #1648
18150
+ ldr lr, [r3, #216]
18151
+ ldrh r7, [r3, #-6]
18152
+ add r3, fp, #16
18153
+ str r2, [sp]
18154
+ mov r2, #0
18155
+ mov ip, r3
18156
+ mov r6, r2
18157
+ mov r10, r2
18158
+ str r3, [sp, #20]
18159
+.L2863:
18160
+ ldr r1, [sp]
1779418161 uxth r3, r2
17795
- cmp r3, r1
17796
- bcc .L2942
17797
- ldrb r3, [r9, #8] @ zero_extendqisi2
17798
- ldr fp, .L3090+4
18162
+ cmp r1, r3
18163
+ bhi .L2865
18164
+ ldrb r3, [fp, #8] @ zero_extendqisi2
18165
+ ldr r8, .L3011+4
1779918166 cmp r3, #1
1780018167 movne r3, #0
17801
- bne .L3077
17802
- ldrb lr, [fp, #-2744] @ zero_extendqisi2
17803
- adds r3, lr, #0
18168
+ bne .L3002
18169
+ ldrb r3, [r8, #-2740] @ zero_extendqisi2
18170
+ adds r3, r3, #0
1780418171 movne r3, #1
17805
-.L3077:
18172
+.L3002:
1780618173 str r3, [sp, #24]
17807
- mov r1, r5
18174
+ mov r1, r6
1780818175 ldr r2, [sp, #24]
17809
- mov r10, #0
17810
- ldr r0, [fp, #-1504]
18176
+ mov r7, #0
18177
+ ldr r10, .L3011+4
18178
+ movw r9, #65535
1781118179 bl FlashReadPages
17812
- ldr r3, [fp, #-1612]
17813
- ldr r2, .L3090+4
17814
- str r3, [sp, #28]
17815
- movw r3, #65535
18180
+ ldr r3, [r8, #-1608]
1781618181 str r3, [sp, #16]
17817
-.L2944:
17818
- uxth r7, r10
17819
- cmp r7, r5
17820
- bcs .L2951
17821
- mov r1, #36
17822
- ldr r0, [r2, #-1504]
17823
- mul r1, r1, r10
17824
- add ip, r0, r1
17825
- ldr r1, [r0, r1]
17826
- cmp r1, #0
17827
- bne .L2945
17828
- ldr ip, [ip, #12]
17829
- ldr r8, [ip, #4]
17830
- cmn r8, #1
17831
- beq .L2946
17832
- ldr r1, [r2, #-1612]
17833
- mov r0, r8
17834
- str ip, [sp, #12]
17835
- str r2, [sp, #4]
17836
- bl ftl_cmp_data_ver
17837
- ldr r2, [sp, #4]
17838
- cmp r0, #0
17839
- ldr ip, [sp, #12]
17840
- addne r8, r8, #1
17841
- strne r8, [r2, #-1612]
17842
-.L2946:
17843
- ldr r1, [ip]
17844
- cmn r1, #1
17845
- bne .L2947
17846
-.L2951:
17847
- cmp r7, r5
17848
- ldr r5, .L3090+4
17849
- bne .L3073
17850
- add fp, r4, #1
17851
- uxth r3, fp
17852
- str r3, [sp, #4]
17853
- ldr r3, [r5, #-1504]
17854
- ldr r0, [r3, #4]
17855
- b .L3078
17856
-.L2945:
17857
- ldr r1, [ip, #4]
17858
- ldr r0, .L3090+12
17859
- str r2, [sp, #4]
17860
- bl printk
17861
- uxth r3, r6
17862
- ldrh r1, [r9]
17863
- str r3, [sp, #16]
17864
- ldr r2, [sp, #4]
17865
- ldr r3, .L3090+16
17866
- strh r1, [r3] @ movhi
17867
-.L2947:
17868
- add r10, r10, #1
17869
- b .L2944
17870
-.L3073:
18182
+.L2867:
18183
+ uxth r3, r7
18184
+ cmp r6, r3
18185
+ bhi .L2872
18186
+ bne .L2870
18187
+ add r4, r4, #1
1787118188 uxth r3, r4
17872
- str r3, [sp, #4]
17873
- ldr r3, [fp, #-1504]
17874
- mov r2, #36
17875
- mla r7, r2, r7, r3
17876
- ldr r0, [r7, #4]
17877
-.L3078:
18189
+ str r3, [sp]
18190
+ ldr r3, [r8, #-1500]
18191
+ ldr r0, [r3, #4]
18192
+.L3003:
1787818193 ubfx r0, r0, #10, #16
1787918194 bl P2V_plane
17880
- ldrb r3, [r9, #8] @ zero_extendqisi2
18195
+ ldrb r3, [fp, #8] @ zero_extendqisi2
18196
+ str r0, [sp, #4]
1788118197 cmp r3, #1
17882
- str r0, [sp, #12]
17883
- bne .L2953
17884
- ldrb r2, [r5, #-2744] @ zero_extendqisi2
18198
+ bne .L2874
18199
+ ldrb r2, [r8, #-2740] @ zero_extendqisi2
1788518200 cmp r2, #0
17886
- ldreq r1, [sp, #4]
17887
- ldreq r2, .L3090+8
17888
- addeq r2, r2, r1, asl #1
17889
- ldreqh r2, [r2, #80]
17890
- streq r2, [sp, #4]
17891
-.L2953:
17892
- ldr r2, .L3090
17893
- ldr r1, [sp, #4]
17894
- ldr r0, [sp, #12]
17895
- ldrh r2, [r2, #-4]
18201
+ ldreq r2, [sp]
18202
+ ldreq r4, .L3011+8
18203
+ addeq r4, r4, r2, lsl #1
18204
+ ldrheq r2, [r4, #84]
18205
+ streq r2, [sp]
18206
+.L2874:
18207
+ ldr r2, .L3011
18208
+ ldr r1, [sp]
18209
+ ldrh r2, [r2, #-2]
1789618210 cmp r2, r1
17897
- ldr r1, [sp, #8]
17898
- ldreqh r2, [sp, #4]
17899
- streqh r2, [r9, #2] @ movhi
18211
+ ldmib sp, {r0, r1}
18212
+ ldrheq r2, [sp]
18213
+ strheq r2, [fp, #2] @ movhi
1790018214 moveq r2, #0
17901
- streqb r2, [r9, #6]
17902
- streqh r2, [r9, #4] @ movhi
17903
- ldrh r2, [sp]
17904
- str r2, [sp, #32]
17905
- ldr ip, [sp, #32]
17906
- ldr r2, [sp, #4]
18215
+ strbeq r2, [fp, #6]
18216
+ strheq r2, [fp, #4] @ movhi
18217
+ ldrh r2, [sp, #12]
18218
+ str r2, [sp, #28]
18219
+ ldr ip, [sp, #28]
18220
+ ldr r2, [sp]
1790718221 cmp r2, r1
1790818222 cmpeq r0, ip
17909
- moveq r0, r9
17910
- moveq r1, r2
17911
- beq .L3083
17912
- clz r3, r3
17913
- ldr r2, [sp, #28]
17914
- ldr r1, [sp, #16]
17915
- mov r3, r3, lsr #5
17916
- sub r2, r2, #1
17917
- str r2, [sp]
18223
+ moveq r2, r0
18224
+ beq .L3010
18225
+ ldr r2, [sp, #16]
18226
+ sub r10, r2, #1
1791818227 movw r2, #65535
17919
- cmp r1, r2
17920
- orrne r3, r3, #1
18228
+ subs r9, r9, r2
18229
+ movne r9, #1
1792118230 cmp r3, #0
17922
- beq .L2957
17923
- ldr r3, .L3090+20
17924
- uxth fp, r6
17925
- ldr r8, .L3090+4
17926
- mvn r7, #0
17927
- mov r6, r7
17928
- ldr r2, [r3, #1760]
17929
- cmn r2, #1
17930
- ldreq r2, [sp]
17931
- streq r2, [r3, #1760]
17932
- ldr r10, [r3, #1760]
18231
+ orreq r9, r9, #1
18232
+ cmp r9, #0
18233
+ beq .L2878
18234
+ ldr r3, [r8, #1752]
18235
+ uxth r9, r5
18236
+ uxth r5, r5
18237
+ ldr r6, .L3011+4
18238
+ cmn r3, #1
18239
+ streq r10, [r8, #1752]
18240
+ ldr r3, [r8, #1752]
18241
+ mvn r8, #0
18242
+ mov r7, r8
18243
+ str r3, [sp, #12]
1793318244 ldr r3, [sp, #8]
1793418245 add r3, r3, #7
17935
- cmp fp, r3
17936
- subgt r4, fp, #7
18246
+ cmp r5, r3
18247
+ subgt r4, r9, #7
1793718248 ldrle r4, [sp, #8]
1793818249 uxthgt r4, r4
17939
-.L2960:
17940
- cmp r4, fp
17941
- bhi .L2973
17942
- ldr r3, .L3090+24
17943
- mov r0, #36
17944
- ldr lr, [r8, #-1504]
18250
+.L2881:
18251
+ cmp r4, r9
18252
+ bhi .L2894
18253
+ ldr r3, .L3011+12
18254
+ mov ip, #36
18255
+ ldr r0, [r6, #-1500]
1794518256 ldr r1, [sp, #20]
1794618257 ldrh r3, [r3]
1794718258 str r3, [sp, #16]
1794818259 mov r3, #0
1794918260 mov r5, r3
17950
-.L2974:
17951
- ldr ip, [sp, #16]
17952
- uxth r2, r3
17953
- cmp r2, ip
17954
- bcs .L3086
17955
- ldrh r2, [r1, #2]!
17956
- movw ip, #65535
18261
+ b .L2895
18262
+.L2860:
18263
+ mov r1, #0
18264
+ bl FtlGetLastWrittenPage
18265
+ cmn r0, #1
18266
+ mov r4, r0
18267
+ beq .L2861
18268
+.L2932:
18269
+ mov r5, r4
18270
+ b .L2862
18271
+.L2861:
18272
+ mov r3, #0
18273
+ strh r3, [fp, #2] @ movhi
18274
+.L3009:
18275
+ strb r3, [fp, #6]
18276
+ b .L2997
18277
+.L2865:
18278
+ ldrh r3, [ip], #2
18279
+ movw r1, #65535
18280
+ cmp r3, r1
18281
+ beq .L2864
18282
+ mla r1, r9, r6, r0
18283
+ orr r3, r5, r3, lsl #10
18284
+ stmib r1, {r3, r10}
18285
+ mul r3, r7, r6
18286
+ add r6, r6, #1
18287
+ uxth r6, r6
18288
+ add r8, r3, #3
18289
+ cmp r3, #0
18290
+ movlt r3, r8
18291
+ bic r3, r3, #3
18292
+ add r3, lr, r3
18293
+ str r3, [r1, #12]
18294
+.L2864:
18295
+ add r2, r2, #1
18296
+ b .L2863
18297
+.L2872:
18298
+ mov r3, #36
18299
+ ldr r1, [r10, #-1500]
18300
+ mul r3, r3, r7
18301
+ add r2, r1, r3
18302
+ ldr r3, [r1, r3]
18303
+ cmp r3, #0
18304
+ bne .L2868
18305
+ ldr r2, [r2, #12]
18306
+ ldr r3, [r2, #4]
18307
+ cmn r3, #1
18308
+ beq .L2869
18309
+ ldr r1, [r10, #-1608]
18310
+ mov r0, r3
18311
+ bl ftl_cmp_data_ver
18312
+ cmp r0, #0
18313
+ addne r3, r3, #1
18314
+ strne r3, [r10, #-1608]
18315
+.L2869:
18316
+ ldr r3, [r2]
18317
+ cmn r3, #1
18318
+ bne .L2871
18319
+.L2870:
18320
+ uxth r3, r4
18321
+ uxth r7, r7
18322
+ str r3, [sp]
18323
+ mov r2, #36
18324
+ ldr r3, [r8, #-1500]
18325
+ mla r7, r2, r7, r3
18326
+ ldr r0, [r7, #4]
18327
+ b .L3003
18328
+.L2868:
18329
+ ldr r1, [r2, #4]
18330
+ uxth r9, r5
18331
+ ldr r0, .L3011+16
18332
+ bl printk
18333
+ ldrh r3, [fp]
18334
+ ldr r2, .L3011+20
18335
+ strh r3, [r2] @ movhi
18336
+.L2871:
18337
+ add r7, r7, #1
18338
+ b .L2867
18339
+.L2883:
18340
+ ldrh r2, [r1], #2
18341
+ movw lr, #65535
1795718342 add r3, r3, #1
17958
- cmp r2, ip
17959
- orrne r2, r4, r2, asl #10
17960
- mlane ip, r0, r5, lr
18343
+ cmp r2, lr
18344
+ mlane lr, ip, r5, r0
1796118345 addne r5, r5, #1
18346
+ orrne r2, r4, r2, lsl #10
1796218347 uxthne r5, r5
17963
- strne r2, [ip, #4]
17964
- b .L2974
17965
-.L3086:
18348
+ strne r2, [lr, #4]
18349
+.L2895:
18350
+ ldr lr, [sp, #16]
18351
+ uxth r2, r3
18352
+ cmp r2, lr
18353
+ bcc .L2883
1796618354 mov r1, r5
1796718355 ldr r2, [sp, #24]
17968
- ldr r0, [r8, #-1504]
1796918356 bl FlashReadPages
17970
- ldr r3, [r8, #-1504]
18357
+ ldr r3, [r6, #-1500]
1797118358 mov r2, #36
17972
- ldrb ip, [r8, #-2744] @ zero_extendqisi2
18359
+ ldrb ip, [r6, #-2740] @ zero_extendqisi2
1797318360 movw r1, #65535
1797418361 mla r5, r2, r5, r3
17975
- ldr r2, .L3090+28
17976
- add r2, r2, r4, asl #1
17977
-.L2963:
17978
- cmp r3, r5
17979
- beq .L3087
18362
+ ldr r2, .L3011+24
18363
+ add r2, r2, r4, lsl #1
18364
+.L2884:
18365
+ cmp r5, r3
18366
+ addeq r4, r4, #1
18367
+ uxtheq r4, r4
18368
+ beq .L2881
18369
+.L2893:
1798018370 ldr r0, [r3]
1798118371 cmp r0, #0
17982
- bne .L2964
18372
+ bne .L2885
1798318373 ldr r0, [r3, #12]
1798418374 ldrh lr, [r0]
1798518375 cmp lr, r1
17986
- beq .L2965
18376
+ beq .L2886
1798718377 ldr r0, [r0, #4]
1798818378 cmn r0, #1
17989
- beq .L2965
17990
- ldr lr, .L3090+20
17991
- cmn r7, #1
17992
- ldr r6, [lr, #1760]
17993
- str r0, [lr, #1760]
17994
- bne .L2965
18379
+ beq .L2886
18380
+ cmn r8, #1
18381
+ ldr r7, [r6, #1752]
18382
+ str r0, [r6, #1752]
18383
+ bne .L2886
1799518384 ldrh r0, [r2]
1799618385 cmp r0, r1
17997
- bne .L2966
18386
+ bne .L2887
1799818387 cmp ip, #0
17999
- beq .L2965
18000
-.L2966:
18001
- ldr r0, [sp]
18002
- cmp r6, r0
18003
- mvneq r7, #0
18004
- movne r7, r6
18005
- b .L2965
18006
-.L2964:
18007
- ldrh r1, [r9]
18008
- movw r2, #1802
18009
- ldr r3, .L3090+20
18388
+ beq .L2886
18389
+.L2887:
18390
+ cmp r10, r7
18391
+ movne r8, r7
18392
+.L2886:
18393
+ add r3, r3, #36
18394
+ b .L2884
18395
+.L2885:
18396
+ ldrh r1, [fp]
18397
+ movw r2, #1794
18398
+ ldr r3, .L3011+4
1801018399 strh r1, [r3, r2] @ movhi
18011
- ldrb r2, [r9, #8] @ zero_extendqisi2
18400
+ ldrb r2, [fp, #8] @ zero_extendqisi2
1801218401 cmp r2, #0
18013
- bne .L2957
18014
- ldr r2, .L3090+28
18015
- mov r4, r4, asl #1
18402
+ bne .L2878
18403
+ ldr r2, .L3011+24
18404
+ lsl r4, r4, #1
1801618405 ldrh r1, [r2, r4]
1801718406 movw r2, #65535
1801818407 cmp r1, r2
18019
- bne .L2968
18020
- cmn r7, #1
18021
- strne r7, [r3, #1760]
18022
- bne .L2957
18023
- ldr r2, [sp]
18408
+ bne .L2889
18409
+ cmn r8, #1
18410
+ strne r8, [r3, #1752]
18411
+ bne .L2878
18412
+ ldr r2, [sp, #12]
1802418413 cmp r10, r2
18025
- strne r10, [r3, #1760]
18026
- ldreq r2, [r3, #1760]
18027
- bne .L2957
18028
- b .L3084
18029
-.L2968:
18030
- ldr r2, [sp]
18031
- cmp r6, r2
18032
- beq .L2971
18033
- cmn r6, #1
18034
- strne r6, [r3, #1760]
18035
- b .L2957
18036
-.L2971:
18037
- ldr r2, [r3, #1760]
18038
- ldr r1, [sp]
18039
- cmp r2, r1
18040
- beq .L2957
18041
-.L3084:
18414
+ beq .L2891
18415
+.L3005:
18416
+ str r2, [r3, #1752]
18417
+ b .L2878
18418
+.L2891:
18419
+ ldr r2, [r3, #1752]
18420
+.L3004:
1804218421 sub r2, r2, #1
18043
- b .L3079
18044
-.L2965:
18045
- add r3, r3, #36
18046
- b .L2963
18047
-.L3087:
18048
- add r4, r4, #1
18049
- uxth r4, r4
18050
- b .L2960
18051
-.L2973:
18052
- ldr r3, .L3090+20
18053
- mvn r2, #0
18054
-.L3079:
18055
- str r2, [r3, #1760]
18056
-.L2957:
18057
- ldr fp, .L3090+20
18058
- movw r3, #1804
18059
- ldr r10, [sp, #8]
18422
+ b .L3005
18423
+.L2889:
18424
+ cmp r7, r10
18425
+ beq .L2892
18426
+ cmn r7, #1
18427
+ strne r7, [r3, #1752]
18428
+.L2878:
18429
+ ldr r9, [sp, #8]
1806018430 mov r2, #1
18061
- strh r2, [fp, r3] @ movhi
18062
-.L2975:
18063
- ldr r3, .L3090+4
18064
- movw lr, #65535
18065
- ldr r2, .L3090+24
18066
- mov r1, #36
18067
- ldr r5, [sp, #20]
18068
- mov r4, #0
18069
- ldr r7, [r3, #-1504]
18070
- ldrh r6, [r2]
18071
- ldrb r8, [r3, #-2744] @ zero_extendqisi2
18072
- str r4, [sp, #16]
18073
-.L2976:
18074
- uxth r3, r4
18075
- cmp r3, r6
18076
- bcs .L3088
18077
- ldrh r3, [r5, #2]!
18078
- cmp r3, lr
18079
- beq .L2977
18080
- ldr r2, [sp, #16]
18081
- orr r3, r10, r3, asl #10
18082
- mla r2, r1, r2, r7
18083
- str r3, [r2, #4]
18084
- ldrb r0, [r9, #8] @ zero_extendqisi2
18085
- cmp r0, #1
18086
- bne .L2978
18087
- cmp r8, #0
18088
- orrne r3, r3, #-2147483648
18089
- strne r3, [r2, #4]
18090
-.L2978:
18091
- ldr r3, [sp, #16]
18092
- add ip, r3, #1
18093
- uxth r3, ip
18094
- str r3, [sp, #16]
18095
-.L2977:
18096
- add r4, r4, #1
18097
- b .L2976
18098
-.L3088:
18099
- ldr r4, .L3090+4
18100
- ldr r1, [sp, #16]
18431
+ ldr r4, .L3011+4
18432
+ movw r3, #1796
18433
+ strh r2, [r4, r3] @ movhi
18434
+.L2896:
18435
+ ldr r3, .L3011+28
18436
+ movw r6, #65535
18437
+ ldr r0, [r4, #-1500]
18438
+ mov r7, #36
18439
+ ldrb r5, [r4, #-2740] @ zero_extendqisi2
18440
+ mov r2, #0
18441
+ ldrh lr, [r3, #-4]
18442
+ ldr r1, [sp, #20]
18443
+ str r2, [sp, #12]
18444
+.L2897:
18445
+ uxth r3, r2
18446
+ cmp lr, r3
18447
+ bhi .L2900
1810118448 ldr r2, [sp, #24]
18102
- ldr r0, [r4, #-1504]
18449
+ ldr r1, [sp, #12]
1810318450 bl FlashReadPages
1810418451 mov r3, #0
18105
-.L3082:
18106
- str r3, [sp, #28]
18107
- ldr r2, [sp, #16]
18108
- ldrh r3, [sp, #28]
18109
- cmp r3, r2
18110
- bcs .L3089
18111
- ldr r3, [sp, #28]
18112
- mov r5, #36
18113
- ldr r8, [r4, #-1504]
18114
- mul r5, r5, r3
18115
- add r7, r8, r5
18116
- ldr r6, [r7, #4]
18117
- ubfx r0, r6, #10, #16
18118
- str r6, [sp, #60]
18452
+.L3008:
18453
+ str r3, [sp, #16]
18454
+ ldr r2, [sp, #12]
18455
+ ldrh r3, [sp, #16]
18456
+ cmp r2, r3
18457
+ bhi .L2926
18458
+ ldrb r3, [fp, #8] @ zero_extendqisi2
18459
+ add r9, r9, #1
18460
+ uxth r9, r9
18461
+ cmp r3, #1
18462
+ ldr r3, .L3011
18463
+ bne .L2927
18464
+ ldrb r2, [r4, #-2740] @ zero_extendqisi2
18465
+ cmp r2, #0
18466
+ beq .L2927
18467
+ ldrh r2, [r3]
18468
+ ldr r1, [sp]
18469
+ cmp r2, r9
18470
+ cmpeq r1, r9
18471
+ beq .L2903
18472
+.L2927:
18473
+ ldrh r3, [r3, #-2]
18474
+ cmp r3, r9
18475
+ bne .L2896
18476
+ ldr r2, .L3011+28
18477
+ movw r0, #65535
18478
+ mov r3, #0
18479
+ strh r9, [fp, #2] @ movhi
18480
+ strh r3, [fp, #4] @ movhi
18481
+ ldrh r2, [r2, #-4]
18482
+.L2928:
18483
+ uxth r1, r3
18484
+ cmp r1, r2
18485
+ bcs .L2997
18486
+ ldr r1, [sp, #20]
18487
+ ldrh ip, [r1], #2
18488
+ cmp ip, r0
18489
+ str r1, [sp, #20]
18490
+ add r1, r3, #1
18491
+ bne .L3009
18492
+ mov r3, r1
18493
+ b .L2928
18494
+.L2892:
18495
+ ldr r2, [r3, #1752]
18496
+ cmp r10, r2
18497
+ bne .L3004
18498
+ b .L2878
18499
+.L2894:
18500
+ mvn r3, #0
18501
+ str r3, [r6, #1752]
18502
+ b .L2878
18503
+.L2900:
18504
+ ldrh r3, [r1], #2
18505
+ cmp r3, r6
18506
+ beq .L2898
18507
+ ldr ip, [sp, #12]
18508
+ orr r3, r9, r3, lsl #10
18509
+ mla ip, r7, ip, r0
18510
+ str r3, [ip, #4]
18511
+ ldrb r8, [fp, #8] @ zero_extendqisi2
18512
+ cmp r8, #1
18513
+ bne .L2899
18514
+ cmp r5, #0
18515
+ orrne r3, r3, #-2147483648
18516
+ strne r3, [ip, #4]
18517
+.L2899:
18518
+ ldr r3, [sp, #12]
18519
+ add r3, r3, #1
18520
+ uxth r3, r3
18521
+ str r3, [sp, #12]
18522
+.L2898:
18523
+ add r2, r2, #1
18524
+ b .L2897
18525
+.L2926:
18526
+ ldr r3, [sp, #16]
18527
+ mov r6, #36
18528
+ ldr r8, [r4, #-1500]
18529
+ mul r6, r6, r3
18530
+ add r7, r8, r6
18531
+ ldr r5, [r7, #4]
18532
+ ubfx r0, r5, #10, #16
18533
+ str r5, [sp, #44]
1811918534 bl P2V_plane
1812018535 ldr r3, [sp, #8]
18121
- cmp r10, r3
18122
- bcc .L2981
18123
- ldr r3, [sp, #32]
18124
- ldr r2, [sp, #8]
18125
- cmp r0, r3
18126
- movcs r3, #0
18127
- movcc r3, #1
18128
- cmp r10, r2
18536
+ cmp r9, r3
18537
+ bcc .L2902
18538
+ ldr r2, [sp, #28]
18539
+ moveq r3, #1
1812918540 movne r3, #0
18130
- cmp r3, #0
18131
- bne .L2981
18132
- ldr r3, [sp, #12]
18133
- ldr r2, [sp, #4]
18134
- cmp r0, r3
18135
- cmpeq r10, r2
18136
- beq .L2982
18137
- ldr r3, [r8, r5]
18138
- cmn r3, #1
18139
- beq .L2983
18140
- ldr r7, [r7, #12]
18141
- movw r3, #61589
18142
- ldrh r2, [r7]
18143
- cmp r2, r3
18144
- ldrneh r0, [r9]
18145
- bne .L3080
18146
- ldr r3, [r7, #4]
18147
- cmn r3, #1
18148
- str r3, [sp]
18149
- beq .L2985
18150
- mov r0, r3
18151
- ldr r1, [r4, #-1612]
18152
- bl ftl_cmp_data_ver
18153
- cmp r0, #0
18154
- ldrne r3, [sp]
18155
- addne r3, r3, #1
18156
- strne r3, [r4, #-1612]
18157
-.L2985:
18158
- ldr r6, [r7, #8]
18159
- add r1, sp, #56
18160
- ldr r3, [r7, #12]
18161
- mov r2, #0
18162
- mov r0, r6
18163
- str r3, [sp, #52]
18164
- bl log2phys
18165
- ldr r1, [fp, #1760]
18166
- cmn r1, #1
18167
- beq .L2986
18168
- ldr r0, [sp]
18169
- bl ftl_cmp_data_ver
18170
- cmp r0, #0
18171
- beq .L2986
18172
- ldr r3, [sp, #52]
18173
- cmn r3, #1
18174
- beq .L2987
18175
- ldr r0, [r4, #-1504]
18176
- mov r2, #0
18177
- mov r1, #1
18178
- add r0, r0, r5
18179
- str r3, [r0, #4]
18180
- ldr r8, [r0, #12]
18181
- bl FlashReadPages
18182
- ldr r2, [r4, #-1504]
18183
- ldr r3, [r8, #4]
18184
- add ip, r2, r5
18185
- str r3, [sp, #36]
18186
- ldr r3, [r2, r5]
18187
- cmn r3, #1
18188
- bne .L2988
18189
- b .L2989
18190
-.L2987:
18191
- ldr r3, [sp, #60]
18192
- ldr r2, [sp, #56]
18193
- cmp r2, r3
18194
- bne .L2981
18195
- mov r0, r6
18196
- add r1, sp, #52
18197
- mov r2, #1
18198
- bl log2phys
18199
- b .L2981
18200
-.L2988:
18201
- ldr r7, [r8, #8]
18202
- cmp r7, r6
18203
- bne .L2989
18204
- ldr r0, [fp, #1760]
18205
- ldr r1, [sp, #36]
18206
- str r2, [sp, #44]
18207
- str ip, [sp, #40]
18208
- bl ftl_cmp_data_ver
18209
- cmp r0, #0
18210
- ldr ip, [sp, #40]
18211
- ldr r2, [sp, #44]
18212
- beq .L2989
18213
- ldr r3, [sp, #56]
18214
- ldr r1, [sp, #60]
18215
- cmp r3, r1
18216
- beq .L2994
18217
- ldr r1, [sp, #52]
18218
- cmp r3, r1
18219
- beq .L2989
18220
- cmn r3, #1
18221
- streq r3, [r2, r5]
18222
- beq .L2993
18223
- str r3, [ip, #4]
18224
- mov r0, ip
18225
- mov r1, #1
18226
- mov r2, #0
18227
- ldr r8, [ip, #12]
18228
- bl FlashReadPages
18229
-.L2993:
18230
- ldr r3, [r4, #-1504]
18231
- ldr r3, [r3, r5]
18232
- cmn r3, #1
18233
- beq .L2994
18234
- ldr r5, [r8, #4]
18235
- ldr r0, [fp, #1760]
18236
- mov r1, r5
18237
- bl ftl_cmp_data_ver
18238
- cmp r0, #0
18239
- beq .L2994
18240
- ldr r0, [sp, #36]
18241
- mov r1, r5
18242
- bl ftl_cmp_data_ver
18243
- cmp r0, #0
18244
- beq .L2989
18245
-.L2994:
18246
- mov r0, r7
18247
- ldr r1, [sp, #52]
18248
- bl FtlReUsePrevPpa
18249
-.L2989:
18250
- mvn r3, #0
18251
- str r3, [sp, #52]
18252
- b .L2996
18253
-.L2986:
18254
- ldr r3, [sp, #60]
18255
- ldr r2, [sp, #56]
18256
- cmp r2, r3
18257
- beq .L2996
18258
- ldr r3, [sp, #52]
18259
- cmn r3, #1
18260
- beq .L2998
18261
- ldr r2, [r4, #-1720]
18262
- ubfx r3, r3, #10, #21
18263
- cmp r3, r2
18264
- bcs .L2981
18265
-.L2998:
18266
- mov r0, r6
18267
- add r1, sp, #60
18268
- mov r2, #1
18269
- bl log2phys
18270
- ldr r8, [sp, #56]
18271
- cmn r8, #1
18272
- beq .L2996
18273
- ldr r3, [sp, #52]
18274
- cmp r8, r3
18275
- beq .L2996
18276
- ubfx r0, r8, #10, #16
18277
- ldr r5, .L3090+32
18278
- bl P2V_block_in_plane
18279
- ldrh r3, [r5]
18280
- cmp r3, r0
18281
- beq .L3000
18282
- add r2, r5, #48
18283
- ldrh r2, [r2]
1828418541 cmp r2, r0
18285
- beq .L3000
18286
- add r3, r5, #96
18287
- ldrh r3, [r3]
18288
- cmp r3, r0
18289
- bne .L2996
18290
-.L3000:
18291
- ldr r0, [r5, #-2388]
18292
- mov r1, #1
18542
+ movls r3, #0
18543
+ andhi r3, r3, #1
18544
+ cmp r3, #0
18545
+ bne .L2902
18546
+ ldr r3, [sp]
18547
+ ldr r2, [sp, #4]
18548
+ cmp r9, r3
18549
+ cmpeq r2, r0
18550
+ beq .L2903
18551
+ ldr r3, [r8, r6]
18552
+ cmn r3, #1
18553
+ beq .L2904
18554
+ ldr r3, [r7, #12]
18555
+ movw r2, #61589
18556
+ ldrh r1, [r3]
18557
+ cmp r1, r2
18558
+ ldrhne r0, [fp]
18559
+ bne .L3006
18560
+ ldr r10, [r3, #4]
18561
+ cmn r10, #1
18562
+ beq .L2906
18563
+ ldr r1, [r4, #-1608]
18564
+ mov r0, r10
18565
+ bl ftl_cmp_data_ver
18566
+ cmp r0, #0
18567
+ addne r2, r10, #1
18568
+ strne r2, [r4, #-1608]
18569
+.L2906:
18570
+ ldr r5, [r3, #8]
18571
+ add r1, sp, #40
18572
+ ldr r3, [r3, #12]
1829318573 mov r2, #0
18294
- str r8, [r0, #4]
18574
+ mov r0, r5
18575
+ str r3, [sp, #36]
18576
+ bl log2phys
18577
+ ldr r1, [r4, #1752]
18578
+ cmn r1, #1
18579
+ beq .L2907
18580
+ mov r0, r10
18581
+ bl ftl_cmp_data_ver
18582
+ cmp r0, #0
18583
+ beq .L2907
18584
+ ldr r3, [sp, #36]
18585
+ cmn r3, #1
18586
+ beq .L2908
18587
+ ldr r0, [r4, #-1500]
18588
+ mov r2, #0
18589
+ mov r1, #1
18590
+ add r0, r0, r6
18591
+ str r3, [r0, #4]
1829518592 ldr r7, [r0, #12]
1829618593 bl FlashReadPages
18297
- ldr r3, [r5, #-2388]
18298
- ldr r1, [r7, #4]
18299
- ldr r3, [r3]
18300
- cmn r3, #1
18301
- beq .L2996
18302
- ldr r0, [sp]
18303
- bl ftl_cmp_data_ver
18304
- cmp r0, #0
18305
- bne .L2996
18306
- mov r0, r6
18307
- add r1, sp, #56
18308
- mov r2, #1
18309
- bl log2phys
18310
-.L2996:
18311
- ldr r0, [sp, #52]
18312
- cmn r0, #1
18313
- beq .L2981
18314
- ubfx r0, r0, #10, #16
18594
+ ldr r2, [r4, #-1500]
18595
+ ldr r1, [r2, r6]
18596
+ add r3, r2, r6
18597
+ cmn r1, #1
18598
+ bne .L2909
18599
+.L2910:
18600
+ mvn r3, #0
18601
+ str r3, [sp, #36]
18602
+.L2917:
18603
+ ldr r8, [sp, #36]
18604
+ cmn r8, #1
18605
+ beq .L2902
18606
+.L2931:
18607
+ ubfx r0, r8, #10, #16
1831518608 bl P2V_block_in_plane
18316
- ldr r2, [r4, #-1408]
18317
- mov r3, r0, asl #1
18609
+ ldr r2, [r4, #-1404]
18610
+ lsl r3, r0, #1
1831818611 mov r1, r0
1831918612 ldrh r3, [r2, r3]
1832018613 cmp r3, #0
18321
- beq .L3001
18322
-.L3080:
18323
- bl decrement_vpc_count
18324
- b .L2981
18325
-.L3001:
18326
- ldr r0, .L3090+36
18327
- bl printk
18328
- b .L2981
18329
-.L2983:
18330
- ldrh r2, [r9]
18331
- mov r1, r6
18332
- ldr r3, .L3090+16
18333
- ldr r0, .L3090+40
18334
- strh r2, [r3] @ movhi
18335
- ldr r2, [sp]
18336
- bl printk
18337
- ldr r3, [fp, #1808]
18338
- cmp r3, #31
18339
- addls r2, fp, r3, asl #2
18340
- addls r3, r3, #1
18341
- strls r3, [fp, #1808]
18342
- ldrls r1, [sp, #60]
18343
- strls r1, [r2, #1812]
18344
- ldrh r0, [r9]
18345
- bl decrement_vpc_count
18346
- ldr r3, .L3090+20
18347
- ldr r3, [r3, #1760]
18348
- cmn r3, #1
18349
- ldreq r3, [sp]
18350
- beq .L3081
18351
- ldr r2, [sp]
18352
- cmp r3, r2
18353
- bls .L2981
18354
- mov r3, r2
18355
-.L3081:
18356
- str r3, [fp, #1760]
18357
-.L2981:
18358
- ldr r3, [sp, #28]
18359
- add r3, r3, #1
18360
- b .L3082
18361
-.L3089:
18362
- ldrb r3, [r9, #8] @ zero_extendqisi2
18363
- add r10, r10, #1
18364
- cmp r3, #1
18365
- uxth r10, r10
18366
- bne .L3005
18367
- ldr r3, .L3090+4
18368
- ldrb r3, [r3, #-2744] @ zero_extendqisi2
18369
- cmp r3, #0
18370
- beq .L3005
18371
- ldr r3, .L3090+44
18372
- ldr r2, [sp, #4]
18373
- ldrh r3, [r3]
18374
- cmp r2, r10
18375
- cmpeq r3, r10
18376
- beq .L2982
18377
-.L3005:
18378
- ldr r2, .L3090+48
18379
- ldrh r3, [r2]
18380
- cmp r10, r3
18381
- bne .L2975
18382
- ldrh r1, [r2, #-68]
18383
- movw r0, #65535
18384
- mov r3, #0
18385
- strh r10, [r9, #2] @ movhi
18386
- strh r3, [r9, #4] @ movhi
18614
+ beq .L2923
1838718615 .L3006:
18388
- uxth r2, r3
18389
- cmp r2, r1
18390
- bcs .L3072
18391
- ldr lr, [sp, #20]
18616
+ bl decrement_vpc_count
18617
+ b .L2902
18618
+.L2908:
18619
+ ldr r3, [sp, #44]
18620
+ ldr r2, [sp, #40]
18621
+ cmp r2, r3
18622
+ bne .L2902
18623
+ mov r2, #1
18624
+ add r1, sp, #36
18625
+ mov r0, r5
18626
+ bl log2phys
18627
+.L2902:
18628
+ ldr r3, [sp, #16]
1839218629 add r3, r3, #1
18393
- ldrh ip, [lr, #2]!
18394
- cmp ip, r0
18395
- str lr, [sp, #20]
18396
- beq .L3006
18397
- strb r2, [r9, #6]
18398
- b .L3072
18399
-.L2982:
18400
- ldrb r3, [sp, #12] @ zero_extendqisi2
18401
- mov r0, r9
18402
- ldr r1, [sp, #4]
18403
- strb r3, [r9, #6]
18404
- ldrh r3, [sp, #4]
18405
- strh r3, [r9, #2] @ movhi
18406
-.L3083:
18407
- ldr r2, [sp, #12]
18630
+ b .L3008
18631
+.L2909:
18632
+ ldr r1, [r7, #8]
18633
+ cmp r5, r1
18634
+ bne .L2910
18635
+ ldr r8, [r7, #4]
18636
+ ldr r0, [r4, #1752]
18637
+ mov r1, r8
18638
+ bl ftl_cmp_data_ver
18639
+ cmp r0, #0
18640
+ beq .L2910
18641
+ ldr r1, [sp, #40]
18642
+ ldr r0, [sp, #44]
18643
+ cmp r1, r0
18644
+ bne .L2912
18645
+.L2915:
18646
+ ldr r1, [sp, #36]
18647
+ mov r0, r5
18648
+ bl FtlReUsePrevPpa
18649
+ b .L2910
18650
+.L2912:
18651
+ ldr r0, [sp, #36]
18652
+ cmp r1, r0
18653
+ beq .L2910
18654
+ cmn r1, #1
18655
+ streq r1, [r2, r6]
18656
+ beq .L2914
18657
+ str r1, [r3, #4]
18658
+ mov r2, #0
18659
+ mov r1, #1
18660
+ mov r0, r3
18661
+ ldr r7, [r3, #12]
18662
+ bl FlashReadPages
18663
+.L2914:
18664
+ ldr r3, [r4, #-1500]
18665
+ ldr r3, [r3, r6]
18666
+ cmn r3, #1
18667
+ beq .L2915
18668
+ ldr r3, [r7, #4]
18669
+ ldr r0, [r4, #1752]
18670
+ mov r1, r3
18671
+ bl ftl_cmp_data_ver
18672
+ cmp r0, #0
18673
+ beq .L2915
18674
+ mov r1, r3
18675
+ mov r0, r8
18676
+ bl ftl_cmp_data_ver
18677
+ cmp r0, #0
18678
+ beq .L2910
18679
+ b .L2915
18680
+.L2907:
18681
+ ldr r3, [sp, #44]
18682
+ ldr r2, [sp, #40]
18683
+ cmp r2, r3
18684
+ beq .L2917
18685
+ ldr r3, [sp, #36]
18686
+ cmn r3, #1
18687
+ beq .L2919
18688
+ ldr r2, [r4, #-1716]
18689
+ ubfx r3, r3, #10, #21
18690
+ cmp r3, r2
18691
+ bcs .L2902
18692
+.L2919:
18693
+ mov r2, #1
18694
+ add r1, sp, #44
18695
+ mov r0, r5
18696
+ bl log2phys
18697
+ ldr r8, [sp, #40]
18698
+ cmn r8, #1
18699
+ beq .L2917
18700
+ ldr r3, [sp, #36]
18701
+ cmp r8, r3
18702
+ beq .L2931
18703
+ ldr r6, .L3011+32
18704
+ ubfx r0, r8, #10, #16
18705
+ bl P2V_block_in_plane
18706
+ ldrh r3, [r6]
18707
+ sub r6, r6, #884
18708
+ cmp r3, r0
18709
+ beq .L2922
18710
+ add r3, r6, #932
18711
+ ldrh r3, [r3]
18712
+ cmp r3, r0
18713
+ beq .L2922
18714
+ add r3, r6, #980
18715
+ ldrh r3, [r3]
18716
+ cmp r3, r0
18717
+ bne .L2917
18718
+.L2922:
18719
+ ldr r0, [r6, #-1500]
18720
+ mov r2, #0
18721
+ mov r1, #1
18722
+ str r8, [r0, #4]
18723
+ ldr r7, [r0, #12]
18724
+ bl FlashReadPages
18725
+ ldr r3, [r6, #-1500]
18726
+ ldr r3, [r3]
18727
+ cmn r3, #1
18728
+ beq .L2917
18729
+ ldr r1, [r7, #4]
18730
+ mov r0, r10
18731
+ bl ftl_cmp_data_ver
18732
+ cmp r0, #0
18733
+ bne .L2917
18734
+ mov r2, #1
18735
+ add r1, sp, #40
18736
+ mov r0, r5
18737
+ bl log2phys
18738
+ b .L2917
18739
+.L2923:
18740
+ ldr r0, .L3011+36
18741
+ bl printk
18742
+ b .L2902
18743
+.L2904:
18744
+ ldrh r3, [fp]
18745
+ mov r1, r5
18746
+ ldr r2, .L3011+20
18747
+ ldr r0, .L3011+40
18748
+ strh r3, [r2] @ movhi
18749
+ mov r2, r10
18750
+ bl printk
18751
+ ldr r3, [r4, #1800]
18752
+ cmp r3, #31
18753
+ ldrls r1, [sp, #44]
18754
+ addls r2, r4, r3, lsl #2
18755
+ addls r3, r3, #1
18756
+ strls r3, [r4, #1800]
18757
+ strls r1, [r2, #1804]
18758
+ ldrh r0, [fp]
18759
+ bl decrement_vpc_count
18760
+ ldr r3, [r4, #1752]
18761
+ cmn r3, #1
18762
+ bne .L2925
18763
+.L3007:
18764
+ str r10, [r4, #1752]
18765
+ b .L2902
18766
+.L2925:
18767
+ cmp r10, r3
18768
+ bcs .L2902
18769
+ b .L3007
18770
+.L2903:
18771
+ ldrb r3, [sp, #4] @ zero_extendqisi2
18772
+ ldr r2, [sp, #4]
18773
+ strb r3, [fp, #6]
18774
+ ldrh r3, [sp]
18775
+ strh r3, [fp, #2] @ movhi
18776
+.L3010:
18777
+ ldr r1, [sp]
18778
+ mov r0, fp
1840818779 bl ftl_sb_update_avl_pages
18409
-.L3072:
18410
- mov r0, #0
18411
- add sp, sp, #68
18412
- @ sp needed
18413
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
18414
-.L3075:
18780
+ b .L2997
18781
+.L2999:
1841518782 mov r0, #0
1841618783 bx lr
18417
-.L3091:
18784
+.L3012:
1841818785 .align 2
18419
-.L3090:
18786
+.L3011:
1842018787 .word .LANCHOR2-1664
1842118788 .word .LANCHOR2
1842218789 .word .LANCHOR0
18790
+ .word .LANCHOR2-1732
1842318791 .word .LC154
18424
- .word .LANCHOR4+1802
18425
- .word .LANCHOR4
18426
- .word .LANCHOR2-1736
18427
- .word .LANCHOR0+1104
18792
+ .word .LANCHOR2+1794
18793
+ .word .LANCHOR0+1108
18794
+ .word .LANCHOR2-1728
1842818795 .word .LANCHOR2+884
1842918796 .word .LC155
1843018797 .word .LC156
18431
- .word .LANCHOR2-1666
18432
- .word .LANCHOR2-1668
1843318798 .fnend
1843418799 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock
1843518800 .align 2
1843618801 .global FtlSlcSuperblockCheck
18802
+ .syntax unified
18803
+ .arm
18804
+ .fpu softvfp
1843718805 .type FtlSlcSuperblockCheck, %function
1843818806 FtlSlcSuperblockCheck:
1843918807 .fnstart
1844018808 @ args = 0, pretend = 0, frame = 0
1844118809 @ frame_needed = 0, uses_anonymous_args = 0
18442
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
18443
- .save {r3, r4, r5, r6, r7, lr}
1844418810 ldrh r3, [r0, #4]
1844518811 cmp r3, #0
18446
- ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
18812
+ bxeq lr
1844718813 ldrh r2, [r0]
1844818814 movw r3, #65535
1844918815 cmp r2, r3
18450
- ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
18451
- ldrb r3, [r0, #6] @ zero_extendqisi2
18816
+ bxeq lr
18817
+ push {r4, r5, r6, lr}
18818
+ .save {r4, r5, r6, lr}
1845218819 mov r4, r0
18453
- ldr r5, .L3105
18454
- ldr r6, .L3105+4
18455
- add r3, r0, r3, asl #1
18456
- ldr r7, .L3105+8
18820
+ ldrb r3, [r0, #6] @ zero_extendqisi2
18821
+ ldr r5, .L3028
18822
+ ldr r6, .L3028+4
18823
+ add r3, r0, r3, lsl #1
1845718824 ldrh r3, [r3, #16]
18458
-.L3096:
18459
- movw r2, #65535
18460
- cmp r3, r2
18461
- bne .L3104
18462
-.L3098:
18463
- ldrb r3, [r4, #6] @ zero_extendqisi2
18464
- ldrh r2, [r7]
18465
- add r3, r3, #1
18466
- uxtb r3, r3
18467
- strb r3, [r4, #6]
18468
- cmp r2, r3
18469
- ldreqh r3, [r4, #2]
18470
- addeq r3, r3, #1
18471
- streqh r3, [r4, #2] @ movhi
18472
- moveq r3, #0
18473
- streqb r3, [r4, #6]
18474
- ldrb r3, [r4, #6] @ zero_extendqisi2
18475
- add r3, r4, r3, asl #1
18476
- ldrh r3, [r3, #16]
18477
- b .L3096
18478
-.L3104:
18479
- ldrb r1, [r4, #8] @ zero_extendqisi2
18480
- cmp r1, #1
18481
- bne .L3099
18482
- ldrb r3, [r5, #-2744] @ zero_extendqisi2
18825
+.L3017:
18826
+ movw r1, #65535
18827
+ cmp r3, r1
18828
+ beq .L3019
18829
+ ldrb r2, [r4, #8] @ zero_extendqisi2
18830
+ cmp r2, #1
18831
+ bne .L3020
18832
+ ldrb r3, [r5, #-2740] @ zero_extendqisi2
1848318833 cmp r3, #0
18484
- bne .L3099
18834
+ bne .L3020
1848518835 ldrh r3, [r4, #2]
18486
- mov r3, r3, asl #1
18836
+ lsl r3, r3, #1
1848718837 ldrh r3, [r6, r3]
18488
- cmp r3, r2
18489
- bne .L3099
18838
+ cmp r3, r1
18839
+ bne .L3020
1849018840 ldrh r3, [r4, #4]
1849118841 ldrh r0, [r4]
1849218842 sub r3, r3, #1
....@@ -18494,426 +18844,448 @@
1849418844 bl decrement_vpc_count
1849518845 ldrh r2, [r4, #4]
1849618846 cmp r2, #0
18497
- bne .L3098
18847
+ bne .L3019
1849818848 ldrh r3, [r4, #2]
1849918849 strb r2, [r4, #6]
1850018850 add r3, r3, #1
1850118851 strh r3, [r4, #2] @ movhi
18502
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
18503
-.L3099:
18504
- ldr r2, .L3105
18505
- ldrb r3, [r2, #-2744] @ zero_extendqisi2
18852
+ pop {r4, r5, r6, pc}
18853
+.L3019:
18854
+ ldrb r3, [r4, #6] @ zero_extendqisi2
18855
+ ldr r2, .L3028+8
18856
+ add r3, r3, #1
18857
+ ldrh r2, [r2]
18858
+ uxtb r3, r3
18859
+ strb r3, [r4, #6]
18860
+ cmp r2, r3
18861
+ ldrheq r3, [r4, #2]
18862
+ addeq r3, r3, #1
18863
+ strheq r3, [r4, #2] @ movhi
18864
+ moveq r3, #0
18865
+ strbeq r3, [r4, #6]
18866
+ ldrb r3, [r4, #6] @ zero_extendqisi2
18867
+ add r3, r4, r3, lsl #1
18868
+ ldrh r3, [r3, #16]
18869
+ b .L3017
18870
+.L3020:
18871
+ ldrb r3, [r5, #-2740] @ zero_extendqisi2
18872
+ adds r3, r3, #0
18873
+ movne r3, #1
18874
+ cmp r2, #1
18875
+ movne r3, #0
1850618876 cmp r3, #0
18507
- ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
18508
- cmp r1, #1
18509
- ldmnefd sp!, {r3, r4, r5, r6, r7, pc}
18510
- sub r1, r2, #1664
18511
- ldrh r0, [r4, #2]
18512
- ldrh r3, [r1, #-2]
18513
- cmp r0, r3
18514
- ldmccfd sp!, {r3, r4, r5, r6, r7, pc}
18877
+ popeq {r4, r5, r6, pc}
18878
+ ldr r1, .L3028+12
18879
+ ldrh r2, [r4, #2]
18880
+ ldrh r3, [r1]
18881
+ cmp r2, r3
18882
+ popcc {r4, r5, r6, pc}
1851518883 ldrh r3, [r4]
18516
- ldr r0, [r2, #-1408]
18884
+ ldr r0, [r5, #-1404]
1851718885 ldrh ip, [r4, #4]
18518
- mov r3, r3, asl #1
18886
+ lsl r3, r3, #1
1851918887 ldrh r2, [r0, r3]
18520
- rsb r2, ip, r2
18888
+ sub r2, r2, ip
1852118889 strh r2, [r0, r3] @ movhi
18522
- ldrh r2, [r1, #-4]
1852318890 mov r3, #0
18891
+ ldrh r2, [r1, #-2]
1852418892 strh r3, [r4, #4] @ movhi
1852518893 strb r3, [r4, #6]
1852618894 strh r2, [r4, #2] @ movhi
18527
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
18528
-.L3106:
18895
+ pop {r4, r5, r6, pc}
18896
+.L3029:
1852918897 .align 2
18530
-.L3105:
18898
+.L3028:
1853118899 .word .LANCHOR2
18532
- .word .LANCHOR0+1104
18533
- .word .LANCHOR2-1736
18900
+ .word .LANCHOR0+1108
18901
+ .word .LANCHOR2-1732
18902
+ .word .LANCHOR2-1664
1853418903 .fnend
1853518904 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
1853618905 .align 2
1853718906 .global get_new_active_ppa
18907
+ .syntax unified
18908
+ .arm
18909
+ .fpu softvfp
1853818910 .type get_new_active_ppa, %function
1853918911 get_new_active_ppa:
1854018912 .fnstart
1854118913 @ args = 0, pretend = 0, frame = 0
1854218914 @ frame_needed = 0, uses_anonymous_args = 0
18543
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
18544
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
1854518915 mov r3, #0
18916
+ push {r4, r5, r6, r7, r8, lr}
18917
+ .save {r4, r5, r6, r7, r8, lr}
1854618918 strb r3, [r0, #10]
1854718919 mov r4, r0
1854818920 ldrb r3, [r0, #6] @ zero_extendqisi2
18549
- ldr r7, .L3125
18550
- ldr r8, .L3125+4
18551
- add r3, r0, r3, asl #1
18552
- ldr r9, .L3125+8
18921
+ ldr r6, .L3046
18922
+ ldr r8, .L3046+4
18923
+ add r3, r0, r3, lsl #1
18924
+ add r7, r6, #1728
1855318925 ldrh r2, [r3, #16]
18554
-.L3108:
18926
+.L3031:
1855518927 movw r1, #65535
1855618928 cmp r2, r1
18557
- ldr r6, .L3125
18558
- bne .L3124
18559
-.L3109:
18560
- ldrb r3, [r4, #6] @ zero_extendqisi2
18561
- ldrh r2, [r7]
18562
- add r3, r3, #1
18563
- uxtb r3, r3
18564
- strb r3, [r4, #6]
18565
- cmp r2, r3
18566
- ldreqh r3, [r4, #2]
18567
- addeq r3, r3, #1
18568
- streqh r3, [r4, #2] @ movhi
18569
- moveq r3, #0
18570
- streqb r3, [r4, #6]
18571
- ldrb r3, [r4, #6] @ zero_extendqisi2
18572
- add r3, r4, r3, asl #1
18573
- ldrh r2, [r3, #16]
18574
- b .L3108
18575
-.L3124:
18929
+ beq .L3032
1857618930 ldrb r3, [r4, #8] @ zero_extendqisi2
1857718931 ldrh r5, [r4, #2]
1857818932 cmp r3, #1
1857918933 ldrh r3, [r4, #4]
18580
- bne .L3111
18581
- ldrb r0, [r8, #-2744] @ zero_extendqisi2
18934
+ bne .L3034
18935
+ ldrb r0, [r7, #-2740] @ zero_extendqisi2
1858218936 cmp r0, #0
18583
- bne .L3111
18584
- mov r0, r5, asl #1
18585
- ldrh r0, [r9, r0]
18937
+ bne .L3034
18938
+ lsl r0, r5, #1
18939
+ ldrh r0, [r8, r0]
1858618940 cmp r0, r1
18587
- bne .L3111
18941
+ bne .L3034
1858818942 sub r3, r3, #1
1858918943 ldrh r0, [r4]
1859018944 strh r3, [r4, #4] @ movhi
1859118945 bl decrement_vpc_count
18592
- b .L3109
18593
-.L3111:
18594
- ldr r7, .L3125+4
18595
- orr r5, r5, r2, asl #10
18946
+.L3032:
18947
+ ldrb r3, [r4, #6] @ zero_extendqisi2
18948
+ ldrh r2, [r6, #-4]
18949
+ add r3, r3, #1
18950
+ uxtb r3, r3
18951
+ cmp r2, r3
18952
+ strb r3, [r4, #6]
18953
+ ldrheq r3, [r4, #2]
18954
+ addeq r3, r3, #1
18955
+ strheq r3, [r4, #2] @ movhi
18956
+ moveq r3, #0
18957
+ strbeq r3, [r4, #6]
18958
+ ldrb r3, [r4, #6] @ zero_extendqisi2
18959
+ add r3, r4, r3, lsl #1
18960
+ ldrh r2, [r3, #16]
18961
+ b .L3031
18962
+.L3034:
18963
+ ldr r7, .L3046+8
18964
+ orr r5, r5, r2, lsl #10
18965
+ ldr r8, .L3046+4
1859618966 sub r3, r3, #1
1859718967 strh r3, [r4, #4] @ movhi
18598
-.L3112:
18968
+.L3035:
1859918969 ldrb r3, [r4, #6] @ zero_extendqisi2
1860018970 movw r2, #65535
18601
- ldrh r0, [r6]
18602
-.L3114:
18971
+ ldrh r0, [r6, #-4]
18972
+.L3037:
1860318973 add r3, r3, #1
1860418974 uxtb r3, r3
1860518975 cmp r3, r0
18606
- ldreqh r3, [r4, #2]
18976
+ ldrheq r3, [r4, #2]
1860718977 addeq r3, r3, #1
18608
- streqh r3, [r4, #2] @ movhi
18978
+ strheq r3, [r4, #2] @ movhi
1860918979 moveq r3, #0
18610
- add r1, r4, r3, asl #1
18980
+ add r1, r4, r3, lsl #1
1861118981 ldrh r1, [r1, #16]
1861218982 cmp r1, r2
18613
- beq .L3114
18983
+ beq .L3037
1861418984 strb r3, [r4, #6]
1861518985 ldrb r3, [r4, #8] @ zero_extendqisi2
1861618986 cmp r3, #1
18617
- bne .L3119
18618
- ldrb r3, [r7, #-2744] @ zero_extendqisi2
18987
+ bne .L3030
18988
+ ldrb r3, [r7, #-2740] @ zero_extendqisi2
1861918989 cmp r3, #0
18620
- bne .L3116
1862118990 ldrh r3, [r4, #2]
18622
- ldr r2, .L3125+8
18623
- mov r3, r3, asl #1
18624
- ldrh r2, [r2, r3]
18625
- movw r3, #65535
18626
- cmp r2, r3
18627
- bne .L3116
18991
+ bne .L3039
18992
+ lsl r3, r3, #1
18993
+ ldrh r3, [r8, r3]
18994
+ cmp r3, r2
18995
+ bne .L3030
1862818996 ldrh r3, [r4, #4]
1862918997 cmp r3, #0
18630
- beq .L3116
18998
+ beq .L3030
1863118999 sub r3, r3, #1
1863219000 ldrh r0, [r4]
1863319001 strh r3, [r4, #4] @ movhi
1863419002 bl decrement_vpc_count
18635
- b .L3112
18636
-.L3116:
18637
- ldr r2, .L3125+4
18638
- ldrb r3, [r2, #-2744] @ zero_extendqisi2
18639
- cmp r3, #0
18640
- beq .L3119
18641
- sub r1, r2, #1664
18642
- ldrh r0, [r4, #2]
18643
- ldrh r3, [r1, #-2]
18644
- cmp r0, r3
18645
- bcc .L3119
19003
+ b .L3035
19004
+.L3039:
19005
+ ldr r1, .L3046+12
19006
+ ldrh r2, [r1]
19007
+ cmp r3, r2
19008
+ bcc .L3030
1864619009 ldrh r3, [r4]
18647
- ldr r0, [r2, #-1408]
19010
+ ldr r0, [r7, #-1404]
1864819011 ldrh ip, [r4, #4]
18649
- mov r3, r3, asl #1
19012
+ lsl r3, r3, #1
1865019013 ldrh r2, [r0, r3]
18651
- rsb r2, ip, r2
19014
+ sub r2, r2, ip
1865219015 strh r2, [r0, r3] @ movhi
18653
- ldrh r2, [r1, #-4]
1865419016 mov r3, #0
19017
+ ldrh r2, [r1, #-2]
1865519018 strh r3, [r4, #4] @ movhi
1865619019 strb r3, [r4, #6]
1865719020 strh r2, [r4, #2] @ movhi
18658
-.L3119:
19021
+.L3030:
1865919022 mov r0, r5
18660
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
18661
-.L3126:
19023
+ pop {r4, r5, r6, r7, r8, pc}
19024
+.L3047:
1866219025 .align 2
18663
-.L3125:
18664
- .word .LANCHOR2-1736
19026
+.L3046:
19027
+ .word .LANCHOR2-1728
19028
+ .word .LANCHOR0+1108
1866519029 .word .LANCHOR2
18666
- .word .LANCHOR0+1104
19030
+ .word .LANCHOR2-1664
1866719031 .fnend
1866819032 .size get_new_active_ppa, .-get_new_active_ppa
1866919033 .align 2
1867019034 .global FtlWriteDumpData
19035
+ .syntax unified
19036
+ .arm
19037
+ .fpu softvfp
1867119038 .type FtlWriteDumpData, %function
1867219039 FtlWriteDumpData:
1867319040 .fnstart
1867419041 @ args = 0, pretend = 0, frame = 40
1867519042 @ frame_needed = 0, uses_anonymous_args = 0
18676
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
19043
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1867719044 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1867819045 .pad #44
1867919046 sub sp, sp, #44
18680
- ldr r4, .L3146
19047
+ ldr r4, .L3067
1868119048 ldr r3, [r4, #-1280]
1868219049 cmp r3, #0
18683
- bne .L3127
18684
- add r7, r4, #884
18685
- ldrh r5, [r7, #4]
18686
- cmp r5, #0
18687
- beq .L3129
19050
+ bne .L3048
19051
+ add r6, r4, #884
19052
+ ldrh r2, [r6, #4]
19053
+ cmp r2, #0
19054
+ beq .L3050
1868819055 ldrb r3, [r4, #892] @ zero_extendqisi2
1868919056 cmp r3, #0
18690
- bne .L3129
19057
+ bne .L3050
1869119058 sub r3, r4, #1664
18692
- ldrb r2, [r4, #891] @ zero_extendqisi2
18693
- ldrh r3, [r3, #-4]
18694
- mul r3, r3, r2
18695
- cmp r5, r3
18696
- beq .L3129
19059
+ ldrb r1, [r4, #891] @ zero_extendqisi2
19060
+ ldrh r3, [r3, #-2]
19061
+ mul r3, r3, r1
19062
+ cmp r2, r3
19063
+ beq .L3050
1869719064 ldrb r8, [r4, #894] @ zero_extendqisi2
18698
- sub r3, r4, #1728
18699
- ldr r6, [r4, #-1284]
1870019065 cmp r8, #0
18701
- ldrh r9, [r3, #-8]
18702
- bne .L3127
18703
- sub r6, r6, #1
18704
- mov r1, sp
19066
+ bne .L3048
19067
+ ldr r7, [r4, #-1284]
19068
+ sub r3, r4, #1728
1870519069 mov r2, r8
18706
- mov r0, r6
19070
+ mov r1, sp
19071
+ ldrh r9, [r3, #-4]
19072
+ sub r7, r7, #1
19073
+ mov r0, r7
1870719074 bl log2phys
18708
- ldr r5, [r4, #-1444]
18709
- ldr r0, [r4, #-1476]
1871019075 ldr r3, [sp]
18711
- str r6, [sp, #20]
19076
+ ldr r5, [r4, #-1440]
19077
+ ldr r0, [r4, #-1472]
1871219078 cmn r3, #1
18713
- str r0, [sp, #12]
1871419079 str r3, [sp, #8]
19080
+ str r7, [sp, #20]
19081
+ str r0, [sp, #12]
1871519082 str r5, [sp, #16]
1871619083 str r8, [r5, #4]
18717
- beq .L3131
18718
- mov r1, #1
19084
+ beq .L3052
1871919085 mov r2, r8
19086
+ mov r1, #1
1872019087 add r0, sp, #4
1872119088 bl FlashReadPages
18722
- b .L3132
18723
-.L3131:
19089
+.L3053:
19090
+ ldr r10, .L3067+4
19091
+ mov r8, #0
19092
+ ldr r3, .L3067+8
19093
+ lsl r9, r9, #2
19094
+ mov fp, r8
19095
+ strh r3, [r5] @ movhi
19096
+.L3054:
19097
+ cmp r9, r8
19098
+ bne .L3058
19099
+.L3055:
19100
+ mov r3, #1
19101
+.L3066:
19102
+ strb r3, [r4, #894]
19103
+.L3048:
19104
+ add sp, sp, #44
19105
+ @ sp needed
19106
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
19107
+.L3052:
1872419108 sub r3, r4, #1648
1872519109 mov r1, #255
18726
- ldrh r2, [r3, #-10]
19110
+ ldrh r2, [r3, #-8]
1872719111 bl ftl_memset
18728
-.L3132:
18729
- ldr r3, .L3146+4
18730
- mov r8, #0
18731
- ldr fp, .L3146
18732
- mov r9, r9, asl #2
18733
- mov r10, r8
18734
- strh r3, [r5] @ movhi
18735
-.L3133:
18736
- cmp r8, r9
18737
- beq .L3134
18738
- ldrh r3, [r7, #4]
18739
- ldr r0, .L3146+8
19112
+ b .L3053
19113
+.L3058:
19114
+ ldrh r3, [r6, #4]
1874019115 cmp r3, #0
18741
- beq .L3134
19116
+ beq .L3055
1874219117 ldr r3, [sp, #8]
19118
+ mov r0, r10
19119
+ str r7, [r5, #8]
1874319120 add r8, r8, #1
18744
- str r6, [r5, #8]
1874519121 str r3, [r5, #12]
18746
- ldrh r3, [r0]
19122
+ ldrh r3, [r6]
1874719123 strh r3, [r5, #2] @ movhi
1874819124 bl get_new_active_ppa
18749
- ldr r3, [fp, #-1612]
18750
- mov r2, #0
19125
+ ldr r3, [r4, #-1608]
1875119126 mov r1, #1
1875219127 str r0, [sp, #8]
1875319128 add r0, sp, #4
1875419129 str r3, [r5, #4]
1875519130 add r3, r3, #1
1875619131 cmn r3, #1
18757
- moveq r3, r10
18758
- str r3, [fp, #-1612]
18759
- mov r3, r2
18760
- bl FlashProgPages
18761
- ldrh r0, [r7]
18762
- bl decrement_vpc_count
18763
- b .L3133
18764
-.L3134:
18765
- mov r3, #1
18766
- b .L3145
18767
-.L3129:
19132
+ moveq r3, fp
19133
+ str r3, [r4, #-1608]
1876819134 mov r3, #0
18769
-.L3145:
18770
- strb r3, [r4, #894]
18771
-.L3127:
18772
- add sp, sp, #44
18773
- @ sp needed
18774
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
18775
-.L3147:
19135
+ mov r2, r3
19136
+ bl FlashProgPages
19137
+ ldrh r0, [r6]
19138
+ bl decrement_vpc_count
19139
+ b .L3054
19140
+.L3050:
19141
+ mov r3, #0
19142
+ b .L3066
19143
+.L3068:
1877619144 .align 2
18777
-.L3146:
19145
+.L3067:
1877819146 .word .LANCHOR2
18779
- .word -3947
1878019147 .word .LANCHOR2+884
19148
+ .word -3947
1878119149 .fnend
1878219150 .size FtlWriteDumpData, .-FtlWriteDumpData
1878319151 .align 2
1878419152 .global l2p_flush
19153
+ .syntax unified
19154
+ .arm
19155
+ .fpu softvfp
1878519156 .type l2p_flush, %function
1878619157 l2p_flush:
1878719158 .fnstart
1878819159 @ args = 0, pretend = 0, frame = 0
1878919160 @ frame_needed = 0, uses_anonymous_args = 0
18790
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
18791
- .save {r3, r4, r5, r6, r7, lr}
18792
- bl FtlWriteDumpData
19161
+ push {r4, r5, r6, r7, r8, lr}
19162
+ .save {r4, r5, r6, r7, r8, lr}
1879319163 mov r4, #0
18794
- ldr r6, .L3154
19164
+ ldr r5, .L3074
1879519165 mov r7, #12
18796
- ldr r5, .L3154+4
18797
-.L3149:
18798
- ldrh r3, [r5]
19166
+ bl FtlWriteDumpData
19167
+ sub r6, r5, #1616
19168
+.L3070:
19169
+ ldrh r3, [r6, #-10]
1879919170 uxth r0, r4
1880019171 cmp r3, r0
18801
- bls .L3153
18802
- ldr r3, [r6, #-1364]
18803
- mla r3, r7, r0, r3
19172
+ bhi .L3072
19173
+ mov r0, #0
19174
+ pop {r4, r5, r6, r7, r8, pc}
19175
+.L3072:
19176
+ ldr r2, [r5, #-1364]
19177
+ uxth r3, r4
19178
+ mla r3, r7, r3, r2
1880419179 ldr r3, [r3, #4]
1880519180 cmp r3, #0
18806
- bge .L3150
19181
+ bge .L3071
1880719182 bl flush_l2p_region
18808
-.L3150:
19183
+.L3071:
1880919184 add r4, r4, #1
18810
- b .L3149
18811
-.L3153:
18812
- mov r0, #0
18813
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
18814
-.L3155:
19185
+ b .L3070
19186
+.L3075:
1881519187 .align 2
18816
-.L3154:
19188
+.L3074:
1881719189 .word .LANCHOR2
18818
- .word .LANCHOR2-1630
1881919190 .fnend
1882019191 .size l2p_flush, .-l2p_flush
1882119192 .align 2
1882219193 .global FtlSuperblockPowerLostFix
19194
+ .syntax unified
19195
+ .arm
19196
+ .fpu softvfp
1882319197 .type FtlSuperblockPowerLostFix, %function
1882419198 FtlSuperblockPowerLostFix:
1882519199 .fnstart
1882619200 @ args = 0, pretend = 0, frame = 40
1882719201 @ frame_needed = 0, uses_anonymous_args = 0
18828
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
18829
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
18830
- .pad #40
18831
- sub sp, sp, #40
18832
- ldr r5, .L3173
18833
- ldr r3, [r5, #-1280]
19202
+ push {r4, r5, r6, r7, r8, r9, lr}
19203
+ .save {r4, r5, r6, r7, r8, r9, lr}
19204
+ .pad #44
19205
+ sub sp, sp, #44
19206
+ ldr r5, .L3092
19207
+ ldr r9, [r5, #-1280]
19208
+ cmp r9, #0
19209
+ bne .L3076
19210
+ ldrb r3, [r5, #-2740] @ zero_extendqisi2
1883419211 cmp r3, #0
18835
- bne .L3156
18836
- ldrb r6, [r5, #-2744] @ zero_extendqisi2
18837
- cmp r6, #0
18838
- beq .L3172
18839
- ldrb r6, [r0, #8] @ zero_extendqisi2
18840
- cmp r6, #1
18841
- ldreqh r10, [r0, #4]
18842
- beq .L3158
18843
- mov r6, r3
18844
-.L3172:
18845
- mov r10, #12
18846
-.L3158:
18847
- ldr r7, [r5, #-1444]
19212
+ beq .L3087
19213
+ ldrb r3, [r0, #8] @ zero_extendqisi2
19214
+ cmp r3, #1
19215
+ ldrheq r7, [r0, #4]
19216
+ moveq r9, r3
19217
+ beq .L3078
19218
+.L3087:
19219
+ mov r7, #12
19220
+.L3078:
1884819221 mvn r3, #0
19222
+ ldr r6, [r5, #-1440]
1884919223 str r3, [sp, #20]
1885019224 mov r8, #0
18851
- ldr r3, [r5, #-1476]
19225
+ ldr r3, [r5, #-1472]
1885219226 movw r2, #61589
18853
- str r7, [sp, #16]
19227
+ str r6, [sp, #16]
1885419228 mov r4, r0
18855
- ldr r9, .L3173
1885619229 str r3, [sp, #12]
1885719230 mvn r3, #2
18858
- str r3, [r7, #8]
19231
+ str r3, [r6, #8]
1885919232 mvn r3, #1
18860
- str r3, [r7, #12]
19233
+ str r3, [r6, #12]
1886119234 ldrh r3, [r0]
18862
- strh r8, [r7] @ movhi
18863
- strh r3, [r7, #2] @ movhi
18864
- ldr r3, [r5, #-1476]
19235
+ strh r8, [r6] @ movhi
19236
+ strh r3, [r6, #2] @ movhi
19237
+ ldr r3, [r5, #-1472]
1886519238 str r2, [r3]
18866
- ldr r2, .L3173+4
18867
- ldr r3, [r5, #-1476]
19239
+ ldr r2, .L3092+4
19240
+ ldr r3, [r5, #-1472]
1886819241 str r2, [r3, #4]
18869
-.L3159:
18870
- subs r10, r10, #1
18871
- bcc .L3162
19242
+.L3079:
19243
+ subs r7, r7, #1
19244
+ bcc .L3082
1887219245 ldrh r3, [r4, #4]
1887319246 cmp r3, #0
18874
- bne .L3160
18875
-.L3162:
19247
+ bne .L3080
19248
+.L3082:
1887619249 ldrh r3, [r4]
18877
- ldr r1, [r5, #-1408]
19250
+ ldr r1, [r5, #-1404]
1887819251 ldrh r0, [r4, #4]
18879
- mov r3, r3, asl #1
19252
+ lsl r3, r3, #1
1888019253 ldrh r2, [r1, r3]
18881
- rsb r2, r0, r2
19254
+ sub r2, r2, r0
1888219255 strh r2, [r1, r3] @ movhi
18883
- ldr r3, .L3173+8
18884
- ldrh r3, [r3, #-4]
19256
+ ldr r3, .L3092+8
19257
+ ldrh r3, [r3, #-2]
1888519258 strh r3, [r4, #2] @ movhi
1888619259 mov r3, #0
1888719260 strb r3, [r4, #6]
1888819261 strh r3, [r4, #4] @ movhi
18889
- b .L3156
18890
-.L3160:
19262
+.L3076:
19263
+ add sp, sp, #44
19264
+ @ sp needed
19265
+ pop {r4, r5, r6, r7, r8, r9, pc}
19266
+.L3080:
1889119267 mov r0, r4
1889219268 bl get_new_active_ppa
1889319269 cmn r0, #1
1889419270 str r0, [sp, #8]
18895
- beq .L3162
18896
- ldr r3, [r5, #-1612]
19271
+ beq .L3082
19272
+ ldr r3, [r5, #-1608]
19273
+ mov r2, r9
1889719274 mov r1, #1
18898
- mov r2, r6
1889919275 add r0, sp, #4
18900
- str r3, [r7, #4]
19276
+ str r3, [r6, #4]
1890119277 add r3, r3, #1
1890219278 cmn r3, #1
1890319279 moveq r3, r8
18904
- str r3, [r9, #-1612]
19280
+ str r3, [r5, #-1608]
1890519281 mov r3, #0
1890619282 bl FlashProgPages
1890719283 ldrh r0, [r4]
1890819284 bl decrement_vpc_count
18909
- b .L3159
18910
-.L3156:
18911
- add sp, sp, #40
18912
- @ sp needed
18913
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
18914
-.L3174:
19285
+ b .L3079
19286
+.L3093:
1891519287 .align 2
18916
-.L3173:
19288
+.L3092:
1891719289 .word .LANCHOR2
1891819290 .word 305419896
1891919291 .word .LANCHOR2-1664
....@@ -18921,254 +19293,264 @@
1892119293 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
1892219294 .align 2
1892319295 .global FtlVpcCheckAndModify
19296
+ .syntax unified
19297
+ .arm
19298
+ .fpu softvfp
1892419299 .type FtlVpcCheckAndModify, %function
1892519300 FtlVpcCheckAndModify:
1892619301 .fnstart
1892719302 @ args = 0, pretend = 0, frame = 8
1892819303 @ frame_needed = 0, uses_anonymous_args = 0
18929
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
18930
- .save {r4, r5, r6, r7, r8, r9, lr}
19304
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
19305
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1893119306 .pad #12
1893219307 mov r5, #0
18933
- ldr r4, .L3192
18934
- ldr r1, .L3192+4
18935
- ldr r0, .L3192+8
19308
+ ldr r4, .L3109
19309
+ ldr r1, .L3109+4
19310
+ ldr r0, .L3109+8
19311
+ sub r7, r4, #1712
1893619312 bl printk
18937
- sub r3, r4, #1712
18938
- ldr r0, [r4, #-1412]
19313
+ ldrh r2, [r7, #-10]
1893919314 mov r1, #0
18940
- ldrh r2, [r3, #-14]
18941
- mov r6, r4
18942
- mov r2, r2, asl #1
19315
+ ldr r0, [r4, #-1408]
19316
+ lsl r2, r2, #1
1894319317 bl ftl_memset
18944
-.L3176:
19318
+.L3095:
1894519319 ldr r3, [r4, #-1284]
1894619320 cmp r5, r3
18947
- bcs .L3190
18948
- mov r0, r5
18949
- add r1, sp, #4
18950
- mov r2, #0
18951
- bl log2phys
18952
- ldr r0, [sp, #4]
18953
- cmn r0, #1
18954
- beq .L3177
18955
- ubfx r0, r0, #10, #16
18956
- bl P2V_block_in_plane
18957
- ldr r2, [r6, #-1412]
18958
- mov r0, r0, asl #1
18959
- ldrh r3, [r2, r0]
18960
- add r3, r3, #1
18961
- strh r3, [r2, r0] @ movhi
18962
-.L3177:
18963
- add r5, r5, #1
18964
- b .L3176
18965
-.L3190:
18966
- ldr r5, .L3192
18967
- mov r7, #0
18968
- add r8, r5, #884
18969
- add r9, r5, #980
18970
-.L3179:
18971
- ldr r3, .L3192+12
18972
- uxth r4, r7
18973
- ldrh r3, [r3]
18974
- cmp r3, r4
18975
- bls .L3191
18976
- ldr r3, [r5, #-1408]
18977
- mov r6, r4, asl #1
18978
- movw r1, #65535
18979
- ldrh r2, [r3, r6]
18980
- ldr r3, [r5, #-1412]
18981
- ldrh r3, [r3, r6]
18982
- cmp r2, r1
18983
- cmpne r2, r3
18984
- beq .L3180
18985
- ldrh r1, [r8]
18986
- cmp r1, r4
18987
- beq .L3180
18988
- ldrh r1, [r9]
18989
- cmp r1, r4
18990
- beq .L3180
18991
- ldr r1, .L3192+16
18992
- ldrh r1, [r1]
18993
- cmp r1, r4
18994
- beq .L3180
18995
- ldr r0, .L3192+20
18996
- mov r1, r4
18997
- bl printk
18998
- ldr r3, [r5, #-1408]
18999
- ldrh r2, [r3, r6]
19000
- cmp r2, #0
19001
- ldr r2, [r5, #-1412]
19002
- ldrh r2, [r2, r6]
19003
- strh r2, [r3, r6] @ movhi
19004
- beq .L3180
19005
- mov r0, r4
19006
- bl update_vpc_list
19007
-.L3180:
19008
- add r7, r7, #1
19009
- b .L3179
19010
-.L3191:
19321
+ bcc .L3097
19322
+ ldr r9, .L3109+12
19323
+ mov r8, #0
19324
+ add r10, r9, #96
19325
+ add fp, r9, #48
19326
+.L3098:
19327
+ ldrh r3, [r7, #-12]
19328
+ uxth r6, r8
19329
+ cmp r3, r6
19330
+ bhi .L3101
1901119331 bl l2p_flush
1901219332 bl FtlVpcTblFlush
1901319333 add sp, sp, #12
1901419334 @ sp needed
19015
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc}
19016
-.L3193:
19335
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
19336
+.L3097:
19337
+ mov r2, #0
19338
+ add r1, sp, #4
19339
+ mov r0, r5
19340
+ bl log2phys
19341
+ ldr r0, [sp, #4]
19342
+ cmn r0, #1
19343
+ beq .L3096
19344
+ ubfx r0, r0, #10, #16
19345
+ bl P2V_block_in_plane
19346
+ ldr r2, [r4, #-1408]
19347
+ lsl r0, r0, #1
19348
+ ldrh r3, [r2, r0]
19349
+ add r3, r3, #1
19350
+ strh r3, [r2, r0] @ movhi
19351
+.L3096:
19352
+ add r5, r5, #1
19353
+ b .L3095
19354
+.L3101:
19355
+ uxth r1, r8
19356
+ ldr r3, [r4, #-1404]
19357
+ movw r0, #65535
19358
+ lsl r5, r1, #1
19359
+ ldrh r2, [r3, r5]
19360
+ ldr r3, [r4, #-1408]
19361
+ ldrh r3, [r3, r5]
19362
+ cmp r2, r0
19363
+ cmpne r2, r3
19364
+ beq .L3099
19365
+ ldrh r0, [r9]
19366
+ cmp r0, r6
19367
+ beq .L3099
19368
+ ldrh r0, [r10]
19369
+ cmp r0, r6
19370
+ beq .L3099
19371
+ ldrh r0, [fp]
19372
+ cmp r0, r6
19373
+ beq .L3099
19374
+ ldr r0, .L3109+16
19375
+ bl printk
19376
+ ldr r3, [r4, #-1404]
19377
+ ldrh r2, [r3, r5]
19378
+ cmp r2, #0
19379
+ ldr r2, [r4, #-1408]
19380
+ ldrh r2, [r2, r5]
19381
+ strh r2, [r3, r5] @ movhi
19382
+ bne .L3100
19383
+.L3099:
19384
+ add r8, r8, #1
19385
+ b .L3098
19386
+.L3100:
19387
+ mov r0, r6
19388
+ bl update_vpc_list
19389
+ b .L3099
19390
+.L3110:
1901719391 .align 2
19018
-.L3192:
19392
+.L3109:
1901919393 .word .LANCHOR2
19020
- .word .LANCHOR3+216
19394
+ .word .LANCHOR3+203
1902119395 .word .LC50
19022
- .word .LANCHOR2-1728
19023
- .word .LANCHOR2+932
19396
+ .word .LANCHOR2+884
1902419397 .word .LC157
1902519398 .fnend
1902619399 .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
1902719400 .align 2
1902819401 .global allocate_new_data_superblock
19402
+ .syntax unified
19403
+ .arm
19404
+ .fpu softvfp
1902919405 .type allocate_new_data_superblock, %function
1903019406 allocate_new_data_superblock:
1903119407 .fnstart
1903219408 @ args = 0, pretend = 0, frame = 0
1903319409 @ frame_needed = 0, uses_anonymous_args = 0
19034
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
19035
- .save {r3, r4, r5, r6, r7, lr}
19036
- ldr r5, .L3221
19037
- ldrh r7, [r0]
19038
- ldr r3, [r5, #-1280]
19410
+ push {r4, r5, r6, lr}
19411
+ .save {r4, r5, r6, lr}
19412
+ ldr r4, .L3138
19413
+ ldr r3, [r4, #-1280]
1903919414 cmp r3, #0
19040
- bne .L3195
19415
+ bne .L3112
19416
+ ldrh r6, [r0]
1904119417 movw r3, #65535
19042
- cmp r7, r3
19043
- mov r4, r0
19044
- beq .L3196
19045
- ldr r2, [r5, #-1408]
19046
- mov r3, r7, asl #1
19047
- mov r0, r7
19418
+ mov r5, r0
19419
+ cmp r6, r3
19420
+ beq .L3113
19421
+ ldr r2, [r4, #-1404]
19422
+ lsl r3, r6, #1
19423
+ mov r0, r6
1904819424 ldrh r3, [r2, r3]
1904919425 cmp r3, #0
19050
- beq .L3197
19426
+ beq .L3114
1905119427 bl INSERT_DATA_LIST
19052
- b .L3196
19053
-.L3197:
19054
- bl INSERT_FREE_LIST
19055
-.L3196:
19428
+.L3113:
1905619429 mov r3, #0
19057
- strb r3, [r4, #8]
19058
- ldr r3, .L3221
19059
- add r2, r3, #932
19060
- cmp r4, r2
19061
- beq .L3198
19062
- sub r2, r3, #1712
19063
- ldrh r2, [r2, #-4]
19430
+ strb r3, [r5, #8]
19431
+ ldr r3, .L3138+4
19432
+ cmp r5, r3
19433
+ beq .L3115
19434
+ ldr r2, .L3138+8
19435
+ ldrh r2, [r2]
1906419436 cmp r2, #1
19065
- beq .L3198
19066
- ldrb r1, [r3, #-2744] @ zero_extendqisi2
19437
+ beq .L3115
19438
+ ldrb r1, [r4, #-2740] @ zero_extendqisi2
1906719439 cmp r1, #0
19068
- beq .L3199
19069
-.L3198:
19440
+ beq .L3116
19441
+.L3115:
1907019442 mov r3, #1
19071
- strb r3, [r4, #8]
19072
- b .L3200
19073
-.L3199:
19074
- add r1, r3, #884
19075
- cmp r4, r1
19076
- bne .L3200
19077
- cmp r2, #3
19078
- beq .L3202
19079
- ldr r3, [r3, #-1620]
19080
- cmp r3, #1
19081
- bne .L3203
19082
-.L3202:
19083
- mov r3, #1
19084
- strb r3, [r5, #892]
19085
-.L3203:
19086
- ldr r2, [r5, #-1872]
19087
- ldr r3, .L3221
19088
- cmp r2, #0
19089
- beq .L3200
19090
- ldr r2, [r3, #-1568]
19091
- cmp r2, #39
19092
- movls r2, #1
19093
- strlsb r2, [r3, #892]
19094
-.L3200:
19095
- ldr r3, .L3221+4
19096
- movw r2, #1748
19097
- ldrh r0, [r3, r2]
19098
- movw r2, #65535
19099
- mov r6, r3
19100
- cmp r0, r2
19101
- beq .L3205
19102
- cmp r7, r0
19103
- bne .L3206
19104
- ldr r2, [r5, #-1408]
19105
- mov r3, r0, asl #1
19443
+ strb r3, [r5, #8]
19444
+.L3117:
19445
+ movw r3, #1740
19446
+ ldrh r0, [r4, r3]
19447
+ movw r3, #65535
19448
+ cmp r0, r3
19449
+ beq .L3122
19450
+ cmp r6, r0
19451
+ bne .L3123
19452
+ ldr r2, [r4, #-1404]
19453
+ lsl r3, r0, #1
1910619454 ldrh r3, [r2, r3]
1910719455 cmp r3, #0
19108
- beq .L3207
19109
-.L3206:
19456
+ beq .L3124
19457
+.L3123:
1911019458 bl update_vpc_list
19111
-.L3207:
19112
- movw r3, #1748
19459
+.L3124:
1911319460 mvn r2, #0
19114
- strh r2, [r6, r3] @ movhi
19115
-.L3205:
19116
- mov r0, r4
19461
+ movw r3, #1740
19462
+ strh r2, [r4, r3] @ movhi
19463
+.L3122:
19464
+ mov r0, r5
1911719465 bl allocate_data_superblock
1911819466 bl l2p_flush
1911919467 mov r0, #0
1912019468 bl FtlEctTblFlush
1912119469 bl FtlVpcTblFlush
19122
-.L3195:
19470
+.L3112:
1912319471 mov r0, #0
19124
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
19125
-.L3222:
19472
+ pop {r4, r5, r6, pc}
19473
+.L3114:
19474
+ bl INSERT_FREE_LIST
19475
+ b .L3113
19476
+.L3116:
19477
+ sub r3, r3, #48
19478
+ cmp r5, r3
19479
+ bne .L3117
19480
+ cmp r2, #3
19481
+ beq .L3119
19482
+ ldr r3, [r4, #-1616]
19483
+ cmp r3, #1
19484
+ bne .L3120
19485
+.L3119:
19486
+ mov r3, #1
19487
+ strb r3, [r4, #892]
19488
+.L3120:
19489
+ ldr r3, [r4, #-1868]
19490
+ cmp r3, #0
19491
+ beq .L3117
19492
+ ldr r3, [r4, #-1564]
19493
+ cmp r3, #39
19494
+ movls r3, #1
19495
+ strbls r3, [r4, #892]
19496
+ b .L3117
19497
+.L3139:
1912619498 .align 2
19127
-.L3221:
19499
+.L3138:
1912819500 .word .LANCHOR2
19129
- .word .LANCHOR4
19501
+ .word .LANCHOR2+932
19502
+ .word .LANCHOR2-1712
1913019503 .fnend
1913119504 .size allocate_new_data_superblock, .-allocate_new_data_superblock
1913219505 .align 2
1913319506 .global FtlReadRefresh
19507
+ .syntax unified
19508
+ .arm
19509
+ .fpu softvfp
1913419510 .type FtlReadRefresh, %function
1913519511 FtlReadRefresh:
1913619512 .fnstart
1913719513 @ args = 0, pretend = 0, frame = 40
1913819514 @ frame_needed = 0, uses_anonymous_args = 0
19139
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
19515
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
1914019516 .save {r4, r5, r6, r7, r8, r9, r10, lr}
1914119517 .pad #40
1914219518 sub sp, sp, #40
19143
- ldr r7, .L3240
19144
- ldr r5, .L3240+4
19145
- ldr r10, [r7, #1292]
19146
- mov r6, r7
19147
- cmp r10, #0
19148
- beq .L3224
19149
- ldr r2, [r7, #1296]
19519
+ ldr r5, .L3157
19520
+ ldr r9, [r5, #1284]
19521
+ mov r6, r5
19522
+ cmp r9, #0
19523
+ beq .L3141
19524
+ ldr r2, [r5, #1288]
1915019525 ldr r3, [r5, #-1284]
1915119526 cmp r2, r3
19152
- bcs .L3225
19527
+ bcs .L3142
1915319528 mov r4, #2048
19154
-.L3230:
19155
- ldr r0, [r6, #1296]
19156
- ldr r3, [r5, #-1284]
19529
+.L3147:
19530
+ ldr r0, [r6, #1288]
19531
+ ldr r3, [r6, #-1284]
1915719532 cmp r0, r3
19158
- bcs .L3229
19533
+ bcc .L3143
19534
+.L3146:
19535
+ mvn r0, #0
19536
+.L3140:
19537
+ add sp, sp, #40
19538
+ @ sp needed
19539
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
19540
+.L3143:
1915919541 mov r2, #0
1916019542 mov r1, sp
1916119543 bl log2phys
19162
- ldr r3, [r7, #1296]
19163
- add r3, r3, #1
19164
- str r3, [r7, #1296]
1916519544 ldr r2, [sp]
19545
+ ldr r3, [r6, #1288]
1916619546 cmn r2, #1
19167
- beq .L3228
19168
- add r0, sp, #40
19547
+ add r3, r3, #1
19548
+ str r3, [r6, #1288]
19549
+ beq .L3145
1916919550 str r2, [sp, #8]
19170
- mov r1, #1
19551
+ add r0, sp, #40
1917119552 mov r2, #0
19553
+ mov r1, #1
1917219554 str r2, [r0, #-36]!
1917319555 str r3, [sp, #20]
1917419556 str r2, [sp, #12]
....@@ -19176,1342 +19558,1318 @@
1917619558 bl FlashReadPages
1917719559 ldr r3, [sp, #4]
1917819560 cmp r3, #256
19179
- bne .L3229
19561
+ bne .L3146
1918019562 ldr r0, [sp]
1918119563 ubfx r0, r0, #10, #16
1918219564 bl P2V_block_in_plane
1918319565 bl FtlGcRefreshBlock
19184
-.L3229:
19185
- mvn r0, #0
19186
- b .L3232
19187
-.L3228:
19566
+ b .L3146
19567
+.L3145:
1918819568 subs r4, r4, #1
19189
- bne .L3230
19190
- b .L3229
19191
-.L3225:
19192
- ldr r3, [r5, #-1588]
19569
+ bne .L3147
19570
+ b .L3146
19571
+.L3142:
19572
+ ldr r3, [r5, #-1584]
1919319573 mov r0, #0
19194
- str r0, [r7, #1292]
19195
- str r0, [r7, #1296]
19196
- str r3, [r7, #1288]
19197
- b .L3232
19198
-.L3224:
19199
- ldr r1, [r5, #-1572]
19574
+ str r0, [r5, #1284]
19575
+ str r0, [r5, #1288]
19576
+ str r3, [r5, #1280]
19577
+ b .L3140
19578
+.L3141:
19579
+ ldr r1, [r5, #-1568]
1920019580 movw r4, #10000
19201
- ldr r9, [r5, #-1588]
19202
- add r5, r5, #816
19581
+ ldr r8, [r5, #-1584]
19582
+ add r10, r5, #816
19583
+ ldr r7, [r5, #1280]
1920319584 cmp r1, r4
19204
- ldr r8, [r7, #1288]
19205
- add r2, r9, #1048576
19206
- ldr r3, [r5, #-2100]
19585
+ add r3, r8, #1048576
1920719586 movhi r4, #31
1920819587 movls r4, #63
19209
- cmp r8, r2
19210
- bhi .L3234
19211
- mov r1, r1, lsr #10
19588
+ cmp r7, r3
19589
+ bhi .L3151
19590
+ ldr r3, [r5, #-1284]
19591
+ lsr r1, r1, #10
1921219592 mov r0, #1000
19213
- mul r0, r0, r3
1921419593 add r1, r1, #1
19594
+ mul r0, r0, r3
1921519595 bl __aeabi_uidiv
19216
- add r0, r0, r8
19217
- cmp r0, r9
19218
- bcc .L3234
19219
- ldrh r3, [r5, #28]
19596
+ add r0, r0, r7
19597
+ cmp r8, r0
19598
+ bhi .L3151
19599
+ ldrh r3, [r10, #28]
1922019600 ands r0, r4, r3
19221
- movne r0, r10
19222
- bne .L3232
19223
- ldr r2, [r7, #1312]
19224
- cmp r2, r3
19225
- beq .L3232
19226
-.L3234:
19227
- ldrh r3, [r5, #28]
19601
+ movne r0, r9
19602
+ bne .L3140
19603
+ ldr r2, [r5, #1304]
19604
+ cmp r3, r2
19605
+ beq .L3140
19606
+.L3151:
19607
+ ldrh r3, [r10, #28]
1922819608 mov r0, #0
19229
- str r9, [r6, #1288]
19230
- str r0, [r6, #1296]
19231
- str r3, [r6, #1312]
19609
+ str r0, [r6, #1288]
19610
+ str r8, [r6, #1280]
19611
+ str r3, [r6, #1304]
1923219612 mov r3, #1
19233
- str r3, [r6, #1292]
19234
-.L3232:
19235
- add sp, sp, #40
19236
- @ sp needed
19237
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
19238
-.L3241:
19613
+ str r3, [r6, #1284]
19614
+ b .L3140
19615
+.L3158:
1923919616 .align 2
19240
-.L3240:
19241
- .word .LANCHOR4
19617
+.L3157:
1924219618 .word .LANCHOR2
1924319619 .fnend
1924419620 .size FtlReadRefresh, .-FtlReadRefresh
1924519621 .align 2
1924619622 .global ftl_do_gc
19623
+ .syntax unified
19624
+ .arm
19625
+ .fpu softvfp
1924719626 .type ftl_do_gc, %function
1924819627 ftl_do_gc:
1924919628 .fnstart
1925019629 @ args = 0, pretend = 0, frame = 32
1925119630 @ frame_needed = 0, uses_anonymous_args = 0
19252
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
19631
+ ldr r3, .L3323
19632
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1925319633 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
19634
+ mov lr, r0
1925419635 .pad #44
1925519636 sub sp, sp, #44
19256
- ldr r5, .L3406
19257
- ldr r8, [r5, #-1280]
19258
- cmp r8, #0
19259
- movne r0, #0
19260
- bne .L3395
19261
- ldr r2, .L3406+4
19262
- ldr r6, [r2, #3444]
19263
- cmp r6, #1
19264
- bne .L3338
19265
- ldr r3, [r5, #-1564]
19266
- cmp r3, #0
19267
- bne .L3338
19268
- mov r4, r0
19269
- add r0, r5, #872
19637
+ ldr r0, [r3, #-1280]
19638
+ cmp r0, #0
19639
+ bne .L3255
19640
+ ldr ip, .L3323+4
19641
+ ldr r4, [ip, #3440]
19642
+ cmp r4, #1
19643
+ bne .L3159
19644
+ ldr r2, [r3, #-1560]
19645
+ cmp r2, #0
19646
+ bne .L3159
19647
+ add r0, r3, #872
1927019648 ldrh r0, [r0]
1927119649 cmp r0, #47
19272
- movls r0, r3
19273
- bls .L3395
19274
- movw r3, #3448
19275
- mov r7, r5
19276
- ldrh r2, [r2, r3]
19277
- movw r3, #65535
19278
- mov r9, r1
19279
- str r4, [sp, #20]
19280
- cmp r2, r3
19281
- bne .L3244
19282
-.L3247:
19283
- ldr r8, .L3406+8
19284
- movw r5, #65535
19285
- ldrh r4, [r8, #-2]
19286
- cmp r4, r5
19287
- bne .L3245
19288
- b .L3246
19289
-.L3244:
19290
- add r5, r5, #980
19291
- ldrh r2, [r5]
19292
- cmp r2, r3
19293
- beq .L3247
19294
- mov r0, r6
19295
- bl FtlGcFreeTempBlock
19296
- cmp r0, #0
19297
- beq .L3247
19298
- mov r0, r6
19299
- b .L3395
19300
-.L3245:
19301
- ldrh r3, [r8, #-4]
19302
- cmp r3, r5
19303
- bne .L3246
19304
- ldrh r0, [r8]
19305
- cmp r0, r3
19306
- beq .L3246
19307
- ldrh r1, [r8, #2]
19308
- cmp r1, r3
19309
- strneh r4, [r8, #-4] @ movhi
19310
- strneh r0, [r8, #-2] @ movhi
19311
- mvnne r3, #0
19312
- strneh r1, [r8] @ movhi
19313
- strneh r3, [r8, #2] @ movhi
19314
-.L3246:
19315
- ldr r1, [sp, #20]
19316
- ldr r3, [r7, #-1548]
19317
- cmp r1, #1
19318
- ldr r2, .L3406
19319
- add r3, r3, #1
19320
- ldr r6, .L3406+12
19321
- add r3, r3, r1, asl #7
19322
- str r3, [r7, #-1548]
19323
- bne .L3258
19324
- ldr r1, [r2, #-1872]
19325
- cmp r1, #0
19326
- bne .L3249
19327
- ldrb r2, [r2, #-2744] @ zero_extendqisi2
19328
- cmp r2, #0
19329
- beq .L3258
19330
-.L3249:
19331
- ldr r2, [r7, #-1568]
19332
- ldr r4, .L3406
19333
- cmp r2, #39
19334
- bhi .L3258
19335
- movw r2, #1940
19336
- ldrh r2, [r6, r2]
19337
- add r3, r3, r2
19338
- str r3, [r4, #-1548]
19339
- bl FtlGcReFreshBadBlk
19340
- movw r3, #1164
19341
- ldrh r3, [r6, r3]
19650
+ bls .L3255
19651
+ movw r2, #3444
19652
+ mov r8, r1
19653
+ ldrh r1, [ip, r2]
1934219654 movw r2, #65535
19343
- cmp r3, r2
19344
- bne .L3258
19345
- ldrh r2, [r8, #-4]
19346
- cmp r2, r3
19347
- bne .L3258
19348
- ldr r3, [r4, #-1548]
19349
- add r4, r4, #880
19350
- cmp r3, #1024
19351
- bhi .L3250
19352
- ldrh r3, [r4]
19353
- cmp r3, #63
19354
- bhi .L3258
19355
-.L3250:
19356
- ldr ip, .L3406
19357
- movw r3, #1940
19358
- ldrh r0, [r4]
19655
+ mov r5, r3
19656
+ str lr, [sp, #24]
19657
+ cmp r1, r2
19658
+ bne .L3161
19659
+.L3164:
19660
+ ldr r6, .L3323+8
19661
+ movw r1, #65535
19662
+ ldrh ip, [r6, #-14]
19663
+ cmp ip, r1
19664
+ bne .L3162
19665
+.L3163:
19666
+ ldr r3, [r5, #-1544]
19667
+ ldr r2, [sp, #24]
19668
+ add r3, r3, #1
19669
+ cmp r2, #1
19670
+ add r3, r3, r2, lsl #7
19671
+ str r3, [r5, #-1544]
19672
+ bne .L3165
19673
+ ldr r2, [r5, #-1868]
19674
+ cmp r2, #0
19675
+ bne .L3166
19676
+ ldrb r2, [r5, #-2740] @ zero_extendqisi2
19677
+ cmp r2, #0
19678
+ beq .L3165
19679
+.L3166:
19680
+ ldr r2, [r5, #-1564]
19681
+ cmp r2, #39
19682
+ bhi .L3165
19683
+ movw r2, #1932
19684
+ movw r4, #65535
19685
+ ldrh r2, [r5, r2]
19686
+ add r3, r2, r3
19687
+ str r3, [r5, #-1544]
19688
+ bl FtlGcReFreshBadBlk
19689
+ movw r3, #1156
19690
+ ldrh r2, [r5, r3]
19691
+ cmp r2, r4
19692
+ bne .L3167
19693
+ ldr r3, .L3323+12
19694
+ ldrh r1, [r3]
19695
+ cmp r1, r2
19696
+ bne .L3254
19697
+ ldr r2, [r5, #-1544]
19698
+ add r3, r3, #2416
19699
+ cmp r2, #1024
19700
+ bhi .L3169
19701
+ ldrh r2, [r3]
19702
+ cmp r2, #63
19703
+ bhi .L3254
19704
+.L3169:
19705
+ ldrh r0, [r3]
19706
+ movw r2, #1932
19707
+ ldrh r3, [r6, #-6]
1935919708 mov r1, #0
19360
- sub r4, ip, #1520
19361
- ldr r2, .L3406+12
19362
- strh r1, [r6, r3] @ movhi
19363
- ldrh r10, [r4, #-10]
19364
- add r5, r10, #64
19365
- cmp r0, r5
19366
- bgt .L3258
19367
- str r1, [ip, #-1548]
19368
- ldr r1, [ip, #-1568]
19369
- cmp r1, #0
19370
- moveq r1, #6
19371
- beq .L3397
19372
- cmp r1, #5
19373
- bhi .L3252
19374
- mov r1, #18
19375
-.L3397:
19376
- strh r1, [r2, r3] @ movhi
19377
-.L3252:
19709
+ strh r1, [r5, r2] @ movhi
19710
+ add r3, r3, #64
19711
+ cmp r0, r3
19712
+ bgt .L3254
19713
+ ldr r3, [r5, #-1564]
19714
+ str r1, [r5, #-1544]
19715
+ cmp r3, r1
19716
+ moveq r3, #6
19717
+ beq .L3315
19718
+ cmp r3, #5
19719
+ bhi .L3171
19720
+ mov r3, #18
19721
+.L3315:
19722
+ strh r3, [r5, r2] @ movhi
19723
+.L3171:
1937819724 mov r0, #32
19725
+ movw r10, #65535
1937919726 bl List_get_gc_head_node
19380
- movw ip, #65535
19381
- uxth r2, r0
19382
- cmp r2, ip
19383
- beq .L3257
19384
- ldrh r0, [r4, #-8]
19385
- ldr r5, .L3406
19727
+ uxth r3, r0
19728
+ cmp r3, r10
19729
+ beq .L3175
19730
+ ldrh r0, [r6, #-4]
1938619731 cmp r0, #0
19387
- sub r10, r5, #1520
19388
- beq .L3254
19389
- sub r1, r5, #1664
19390
- ldr r3, [r5, #-1408]
19391
- mov r2, r2, asl #1
19392
- ldrh r4, [r1, #-2]
19393
- sub r1, r5, #1728
19394
- ldrh lr, [r3, r2]
19395
- ldrh r1, [r1, #-8]
19396
- mul r1, r1, r4
19397
- add r1, r1, #1
19398
- cmp lr, r1
19399
- bgt .L3257
19400
- add r1, r0, #1
19401
- str r2, [sp, #28]
19402
- str ip, [sp, #24]
19403
- mov fp, #0
19404
- uxth r1, r1
19405
- str r3, [sp, #16]
19406
- strh r1, [r10, #-8] @ movhi
19732
+ beq .L3173
19733
+ ldr r2, .L3323+16
19734
+ lsl r7, r3, #1
19735
+ ldr r1, [r5, #-1404]
19736
+ ldrh lr, [r2], #-64
19737
+ ldrh ip, [r1, r7]
1940719738 str r1, [sp, #12]
19408
- str fp, [r5, #-1560]
19739
+ ldrh r3, [r2, #-4]
19740
+ mul r3, r3, lr
19741
+ add r3, r3, #1
19742
+ cmp ip, r3
19743
+ bgt .L3175
19744
+ add fp, r0, #1
19745
+ mov r9, #0
19746
+ uxth fp, fp
19747
+ str r9, [r5, #-1556]
19748
+ strh fp, [r6, #-4] @ movhi
1940919749 bl List_get_gc_head_node
19410
- ldr ip, [sp, #24]
1941119750 uxth r4, r0
1941219751 ldr r1, [sp, #12]
19413
- cmp r4, ip
19414
- ldr r3, [sp, #16]
19415
- ldr r2, [sp, #28]
19416
- beq .L3257
19417
- mov ip, r4, asl #1
19418
- ldr r0, .L3406+16
19419
- str ip, [sp, #12]
19420
- ldrh lr, [r3, ip]
19421
- ldrh r3, [r3, r2]
19752
+ cmp r4, r10
19753
+ beq .L3175
19754
+ lsl r10, r4, #1
1942219755 mov r2, r4
19423
- str r3, [sp]
19424
- mov r3, lr
19756
+ ldr r0, .L3323+20
19757
+ ldrh r3, [r1, r10]
19758
+ ldrh r1, [r1, r7]
19759
+ str r1, [sp]
19760
+ mov r1, fp
1942519761 bl printk
19426
- ldrh r3, [r10, #-8]
19762
+ ldrh r3, [r6, #-4]
1942719763 cmp r3, #40
19428
- ldr ip, [sp, #12]
19429
- bls .L3255
19430
- ldr r3, [r5, #-1408]
19431
- ldrh r3, [r3, ip]
19764
+ bls .L3174
19765
+ ldr r3, [r5, #-1404]
19766
+ ldrh r3, [r3, r10]
1943219767 cmp r3, #32
19433
- strhih fp, [r10, #-8] @ movhi
19434
-.L3255:
19435
- movw r3, #1940
19768
+ strhhi r9, [r6, #-4] @ movhi
19769
+.L3174:
1943619770 mov r2, #6
19437
- strh r2, [r6, r3] @ movhi
19438
- b .L3259
19439
-.L3254:
19440
- mov r3, #1
19441
- strh r3, [r10, #-8] @ movhi
19442
-.L3257:
19443
- bl GetSwlReplaceBlock
19444
- movw r3, #65535
19445
- cmp r0, r3
19446
- mov r4, r0
19447
- bne .L3259
19448
- movw r3, #1940
19449
- mov r2, #0
19450
- strh r2, [r6, r3] @ movhi
19451
-.L3258:
19452
- movw r3, #1164
19453
- movw r4, #65535
19454
- ldrh r3, [r6, r3]
19455
- cmp r3, r4
19456
- bne .L3259
19457
- ldr r5, .L3406
19458
- add r2, r5, #980
19459
- ldrh r4, [r2]
19460
- cmp r4, r3
19461
- movne r4, r3
19462
- beq .L3402
19463
-.L3259:
19771
+ movw r3, #1932
19772
+ strh r2, [r5, r3] @ movhi
19773
+.L3167:
1946419774 movw r0, #65535
19465
- rsb r3, r0, r4
19466
- clz r3, r3
19467
- ldr r2, [sp, #20]
19468
- mov r3, r3, lsr #5
19469
- cmp r2, #0
19775
+ ldr r3, [sp, #24]
19776
+ sub r2, r4, r0
19777
+ clz r2, r2
19778
+ lsr r2, r2, #5
19779
+ cmp r3, #0
1947019780 movne r1, #0
19471
- andeq r1, r3, #1
19781
+ andeq r1, r2, #1
1947219782 cmp r1, #0
19473
- beq .L3272
19474
- ldr r3, .L3406+20
19475
- ldrh r0, [r3]
19476
- cmp r0, #24
19477
- movhi r5, #1
19478
- bhi .L3273
19783
+ beq .L3189
19784
+ ldr r3, .L3323+24
19785
+ ldrh r2, [r3]
19786
+ cmp r2, #24
19787
+ movhi r9, #1
19788
+ bhi .L3190
19789
+ cmp r2, #16
1947919790 sub r3, r3, #2544
19480
- cmp r0, #16
19481
- ldrh r5, [r3, #-4]
19482
- movhi r5, r5, lsr #5
19483
- bhi .L3273
19484
- cmp r0, #12
19485
- movhi r5, r5, lsr #4
19486
- bhi .L3273
19487
- cmp r0, #8
19488
- movhi r5, r5, lsr #2
19489
-.L3273:
19490
- ldr r1, .L3406
19491
- sub r2, r1, #1520
19492
- ldrh r3, [r2, #-12]
19493
- cmp r3, r0
19494
- bcs .L3277
19495
- add r3, r1, #980
19496
- movw r0, #65535
19497
- ldrh r3, [r3]
19498
- cmp r3, r0
19499
- bne .L3278
19500
- ldrh r0, [r8, #-4]
19501
- cmp r0, r3
19502
- bne .L3278
19503
- movw r3, #1940
19504
- ldrh r0, [r6, r3]
19505
- cmp r0, #0
19506
- bne .L3279
19507
- ldr r3, [r1, #-1284]
19508
- ldr r1, [r1, #1124]
19509
- add r3, r3, r3, asl #1
19510
- cmp r1, r3, lsr #2
19511
- movcs r3, #18
19512
- bcs .L3280
19513
-.L3279:
19514
- movw r3, #1160
19515
- ldrh r3, [r6, r3]
19516
- add r3, r3, r3, asl #1
19517
- ubfx r3, r3, #2, #16
19518
-.L3280:
19519
- strh r3, [r2, #-12] @ movhi
19520
- mov r3, #0
19521
- str r3, [r7, #-1560]
19522
- b .L3395
19523
-.L3278:
19524
- movw r3, #1160
19525
- ldrh r3, [r6, r3]
19526
- add r3, r3, r3, asl #1
19527
- mov r3, r3, asr #2
19528
- strh r3, [r2, #-12] @ movhi
19529
-.L3277:
19530
- cmp r9, #2
19531
- ldr r3, [r7, #-1872]
19532
- movw r4, #65535
19533
- movhi r9, #0
19534
- movls r9, #1
19535
- cmp r3, #0
19536
- moveq r9, #0
19537
- cmp r9, #0
19538
- addne r5, r5, #1
19539
- uxthne r5, r5
19540
- b .L3282
19541
-.L3272:
19542
- ldr r5, .L3406
19543
- add r2, r5, #980
19544
- ldrh r2, [r2]
19545
- cmp r2, r0
19546
- bne .L3283
19547
- ldrh r0, [r8, #-4]
19548
- cmp r0, r2
19549
- movne r3, #0
19550
- andeq r3, r3, #1
19551
- cmp r3, #0
19552
- beq .L3283
19553
- movw r3, #1164
19554
- ldrh r3, [r6, r3]
19791
+ ldrhhi r3, [r3, #-2]
19792
+ lsrhi r9, r3, #5
19793
+ bhi .L3190
19794
+ cmp r2, #12
19795
+ ldrhhi r3, [r3, #-2]
19796
+ lsrhi r9, r3, #4
19797
+ bhi .L3190
19798
+ cmp r2, #8
19799
+ ldrhhi r3, [r3, #-2]
19800
+ ldrhls r9, [r3, #-2]
19801
+ lsrhi r9, r3, #2
19802
+.L3190:
19803
+ ldrh r3, [r6, #-8]
1955519804 cmp r3, r2
19556
- beq .L3284
19557
-.L3288:
19558
- movw r4, #65535
19559
- b .L3283
19560
-.L3284:
19561
- add r4, r5, #880
19562
- sub r10, r5, #1520
19563
- str r1, [r5, #-1560]
19564
- ldrh r2, [r4]
19565
- ldrh r3, [r10, #-12]
19805
+ bcs .L3194
19806
+ ldr r3, .L3323+28
19807
+ movw r2, #65535
19808
+ ldrh r3, [r3]
19809
+ cmp r3, r2
19810
+ bne .L3195
19811
+ ldr r2, .L3323+12
19812
+ ldrh r2, [r2]
1956619813 cmp r2, r3
19567
- bls .L3285
19568
- ldr r2, .L3406+12
19569
- movw r3, #1940
19570
- ldrh r3, [r2, r3]
19571
- cmp r3, #0
19572
- bne .L3286
19814
+ bne .L3195
19815
+ movw r3, #1932
19816
+ ldrh r0, [r5, r3]
19817
+ cmp r0, #0
19818
+ bne .L3196
1957319819 ldr r3, [r5, #-1284]
1957419820 ldr r2, [r5, #1124]
19575
- add r3, r3, r3, asl #1
19821
+ add r3, r3, r3, lsl #1
1957619822 cmp r2, r3, lsr #2
1957719823 movcs r3, #18
19578
- bcs .L3287
19579
-.L3286:
19580
- movw r3, #1160
19581
- ldrh r3, [r6, r3]
19582
- add r3, r3, r3, asl #1
19583
- ubfx r3, r3, #2, #16
19584
-.L3287:
19585
- strh r3, [r10, #-12] @ movhi
19824
+ bcs .L3319
19825
+.L3196:
19826
+ ldr r3, .L3323+32
19827
+ ldrh r3, [r3]
19828
+ add r3, r3, r3, lsl #1
19829
+ asr r3, r3, #2
19830
+.L3319:
19831
+ strh r3, [r6, #-8] @ movhi
19832
+ mov r3, #0
19833
+ str r3, [r5, #-1556]
19834
+.L3159:
19835
+ add sp, sp, #44
19836
+ @ sp needed
19837
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
19838
+.L3161:
19839
+ add r3, r3, #980
19840
+ ldrh r3, [r3]
19841
+ cmp r3, r2
19842
+ beq .L3164
19843
+ mov r0, r4
19844
+ bl FtlGcFreeTempBlock
19845
+ cmp r0, #0
19846
+ beq .L3164
19847
+ mov r0, r4
19848
+ b .L3159
19849
+.L3162:
19850
+ mov r3, r6
19851
+ ldrh r2, [r3, #-16]!
19852
+ cmp r2, r1
19853
+ bne .L3163
19854
+ ldrh r0, [r6, #-12]
19855
+ cmp r0, r2
19856
+ beq .L3163
19857
+ ldrh r1, [r6, #-10]
19858
+ cmp r1, r2
19859
+ strhne ip, [r3] @ movhi
19860
+ mvnne r3, #0
19861
+ strhne r0, [r6, #-14] @ movhi
19862
+ strhne r1, [r6, #-12] @ movhi
19863
+ strhne r3, [r6, #-10] @ movhi
19864
+ b .L3163
19865
+.L3173:
19866
+ mov r3, #1
19867
+ strh r3, [r6, #-4] @ movhi
19868
+.L3175:
19869
+ bl GetSwlReplaceBlock
19870
+ movw r3, #65535
19871
+ mov r4, r0
19872
+ cmp r0, r3
19873
+ bne .L3167
19874
+ mov r2, #0
19875
+ movw r3, #1932
19876
+ strh r2, [r5, r3] @ movhi
19877
+.L3165:
19878
+ movw r3, #1156
19879
+ movw r4, #65535
19880
+ ldrh r3, [r5, r3]
19881
+ cmp r3, r4
19882
+ bne .L3167
19883
+.L3254:
19884
+ ldr r7, .L3323+28
19885
+ movw r3, #65535
19886
+ ldrh r4, [r7]
19887
+ cmp r4, r3
19888
+ movne r4, r3
19889
+ bne .L3167
19890
+ ldr r3, .L3323+12
19891
+ ldrh r9, [r3]
19892
+ cmp r9, r4
19893
+ bne .L3167
19894
+ ldrh r3, [r7, #-100]!
19895
+ ldr r2, [r5, #-1544]
19896
+ cmp r3, #24
19897
+ movcc r3, #5120
19898
+ movcs r3, #1024
19899
+ cmp r2, r3
19900
+ bls .L3167
19901
+ mov r3, #0
19902
+ movw r2, #1932
19903
+ str r3, [r5, #-1544]
19904
+ strh r3, [r5, r2] @ movhi
19905
+ bl GetSwlReplaceBlock
19906
+ cmp r0, r9
19907
+ mov r4, r0
19908
+ movne r9, r0
19909
+ bne .L3177
19910
+ ldrh r2, [r7]
19911
+ ldrh r3, [r6, #-6]
19912
+ cmp r2, r3
19913
+ bcs .L3178
19914
+ mov r0, #64
19915
+ bl List_get_gc_head_node
19916
+ uxth r3, r0
19917
+ cmp r3, r4
19918
+ beq .L3180
19919
+ ldr r3, [r5, #-1620]
19920
+ ldr r1, .L3323+36
19921
+ cmp r3, #0
19922
+ uxth r3, r0
19923
+ bne .L3181
19924
+ ldrh r2, [r1]
19925
+ cmp r2, #3
19926
+ beq .L3181
19927
+ ldr r2, [r5, #-1616]
19928
+ cmp r2, #0
19929
+ bne .L3181
19930
+ ldr r2, [r5, #-1868]
19931
+ cmp r2, #0
19932
+ bne .L3181
19933
+ ldrb r0, [r5, #-2740] @ zero_extendqisi2
19934
+ cmp r0, #0
19935
+ beq .L3182
19936
+.L3181:
19937
+ ldr r2, [r5, #-1404]
19938
+ lsl r3, r3, #1
19939
+ ldrh r1, [r1]
19940
+ ldrh r0, [r2, r3]
19941
+ ldr r2, .L3323+16
19942
+ cmp r1, #3
19943
+ ldrh r3, [r2], #-64
19944
+ ldrh r2, [r2, #-4]
19945
+ mul r2, r3, r2
19946
+ lsreq r3, r3, #1
19947
+ movne r3, #0
19948
+ add r3, r3, r2
19949
+ cmp r0, r3
19950
+ bgt .L3184
19951
+ mov r0, #0
19952
+ bl List_get_gc_head_node
19953
+ ldr r3, [r5, #-1284]
19954
+ uxth r9, r0
19955
+ ldr r2, [r5, #1124]
19956
+ add r3, r3, r3, lsl #1
19957
+ cmp r2, r3, lsr #2
19958
+ movls r3, #160
19959
+ bls .L3316
19960
+.L3317:
19961
+ mov r3, #128
19962
+.L3316:
19963
+ strh r3, [r6, #-6] @ movhi
19964
+ movw r3, #65535
19965
+ cmp r9, r3
19966
+ beq .L3180
19967
+.L3177:
19968
+ ldr r3, [r5, #-1404]
19969
+ lsl r1, r9, #1
19970
+ ldrh r0, [r6, #-8]
19971
+ mov r4, r9
19972
+ ldrh r2, [r7]
19973
+ ldrh r3, [r3, r1]
19974
+ str r0, [sp, #4]
19975
+ ldr r0, [r5, #-1412]
19976
+ ldrh r1, [r0, r1]
19977
+ ldr r0, .L3323+40
19978
+ str r1, [sp]
19979
+ mov r1, r9
19980
+ bl printk
19981
+ b .L3180
19982
+.L3184:
19983
+ mov r3, #128
19984
+.L3318:
19985
+ strh r3, [r6, #-6] @ movhi
19986
+.L3180:
19987
+ bl FtlGcReFreshBadBlk
19988
+ b .L3167
19989
+.L3182:
19990
+ ldr r2, [r5, #-1404]
19991
+ lsl r3, r3, #1
19992
+ ldrh r3, [r2, r3]
19993
+ cmp r3, #7
19994
+ bhi .L3187
19995
+ bl List_get_gc_head_node
19996
+ uxth r9, r0
19997
+ b .L3317
19998
+.L3187:
19999
+ mov r3, #64
20000
+ b .L3318
20001
+.L3178:
20002
+ mov r3, #80
20003
+ b .L3318
20004
+.L3195:
20005
+ ldr r3, .L3323+32
20006
+ ldrh r3, [r3]
20007
+ add r3, r3, r3, lsl #1
20008
+ asr r3, r3, #2
20009
+ strh r3, [r6, #-8] @ movhi
20010
+.L3194:
20011
+ ldr r3, [r5, #-1868]
20012
+ movw r4, #65535
20013
+ adds r3, r3, #0
20014
+ movne r3, #1
20015
+ cmp r8, #2
20016
+ movhi r3, #0
20017
+ cmp r3, #0
20018
+ addne r3, r9, #1
20019
+ uxthne r9, r3
20020
+.L3200:
20021
+ movw r3, #1156
20022
+ ldrh r2, [r5, r3]
20023
+ movw r1, #65535
20024
+ cmp r2, r1
20025
+ bne .L3210
20026
+ cmp r4, r2
20027
+ strhne r4, [r5, r3] @ movhi
20028
+ bne .L3212
20029
+ ldr r3, .L3323+12
20030
+ ldrh r2, [r3]
20031
+ cmp r2, r4
20032
+ beq .L3212
20033
+ ldr r1, [r5, #-1404]
20034
+ lsl r2, r2, #1
20035
+ ldrh r2, [r1, r2]
20036
+ cmp r2, #0
20037
+ mvneq r2, #0
20038
+ strheq r2, [r3] @ movhi
20039
+ movw r2, #1156
20040
+ ldrh r1, [r3]
20041
+ strh r1, [r5, r2] @ movhi
20042
+ mvn r2, #0
20043
+ strh r2, [r3] @ movhi
20044
+.L3212:
20045
+ movw r6, #1156
20046
+ mov r3, #0
20047
+ ldrh r0, [r5, r6]
20048
+ strb r3, [r5, #1164]
20049
+ movw r3, #65535
20050
+ cmp r0, r3
20051
+ beq .L3210
20052
+ bl IsBlkInGcList
20053
+ cmp r0, #0
20054
+ mvnne r3, #0
20055
+ strhne r3, [r5, r6] @ movhi
20056
+ ldrb r3, [r5, #-2740] @ zero_extendqisi2
20057
+ cmp r3, #0
20058
+ beq .L3216
20059
+ movw r3, #1156
20060
+ ldrh r0, [r5, r3]
20061
+ bl ftl_get_blk_mode
20062
+ strb r0, [r5, #1164]
20063
+.L3216:
20064
+ movw r7, #1156
20065
+ movw r3, #65535
20066
+ ldrh r2, [r5, r7]
20067
+ ldr r6, .L3323+44
20068
+ cmp r2, r3
20069
+ beq .L3210
20070
+ mov r0, r6
20071
+ bl make_superblock
20072
+ mov r3, #0
20073
+ movw r2, #1934
20074
+ strh r3, [r6, #2] @ movhi
20075
+ add r6, r6, #780
20076
+ strh r3, [r5, r2] @ movhi
20077
+ strb r3, [r5, #1162]
20078
+ ldrh r3, [r5, r7]
20079
+ ldr r2, [r5, #-1404]
20080
+ lsl r3, r3, #1
20081
+ ldrh r3, [r2, r3]
20082
+ strh r3, [r6] @ movhi
20083
+.L3210:
20084
+ ldr r2, .L3323+48
20085
+ movw r3, #1156
20086
+ ldrh r3, [r5, r3]
20087
+ ldrh r1, [r2]
20088
+ cmp r1, r3
20089
+ beq .L3217
20090
+ ldrh r1, [r2, #48]
20091
+ cmp r1, r3
20092
+ beq .L3217
20093
+ ldrh r2, [r2, #96]
20094
+ cmp r2, r3
20095
+ bne .L3218
20096
+.L3217:
20097
+ mvn r2, #0
20098
+ movw r3, #1156
20099
+ strh r2, [r5, r3] @ movhi
20100
+.L3218:
20101
+ ldr r5, .L3323
20102
+ mov r10, r5
20103
+.L3251:
20104
+ ldr r8, .L3323+44
20105
+ movw r3, #65535
20106
+ ldrh r2, [r8]
20107
+ cmp r2, r3
20108
+ bne .L3219
20109
+ ldr fp, .L3323+8
20110
+ mov r3, #0
20111
+ str r3, [r5, #-1556]
20112
+.L3220:
20113
+ ldr r6, .L3323+52
20114
+ ldrh r7, [r6]
20115
+ mov r0, r7
20116
+ bl List_get_gc_head_node
20117
+ ldr r1, .L3323+44
20118
+ uxth r2, r0
20119
+ strh r2, [r1] @ movhi
20120
+ movw r1, #65535
20121
+ cmp r2, r1
20122
+ bne .L3221
20123
+ mov r3, #0
20124
+ mov r0, #8
20125
+ strh r3, [r6] @ movhi
20126
+ b .L3159
20127
+.L3189:
20128
+ ldr r3, .L3323+28
20129
+ ldrh r8, [r3]
20130
+ cmp r8, r0
20131
+ bne .L3201
20132
+ ldr r0, .L3323+12
20133
+ ldrh r0, [r0]
20134
+ cmp r0, r8
20135
+ movne r2, #0
20136
+ andeq r2, r2, #1
20137
+ cmp r2, #0
20138
+ beq .L3201
20139
+ movw r2, #1156
20140
+ ldrh r2, [r5, r2]
20141
+ cmp r2, r8
20142
+ beq .L3202
20143
+.L3207:
20144
+ mov r4, r8
20145
+.L3201:
20146
+ ldr r3, [r5, #-1868]
20147
+ cmp r3, #0
20148
+ moveq r9, #1
20149
+ movne r9, #2
20150
+ b .L3200
20151
+.L3202:
20152
+ mov r4, r3
20153
+ ldrh r3, [r6, #-8]
20154
+ ldrh r2, [r4, #-100]!
20155
+ str r1, [r5, #-1556]
20156
+ cmp r2, r3
20157
+ bls .L3203
20158
+ movw r3, #1932
20159
+ ldrh r3, [r5, r3]
20160
+ cmp r3, #0
20161
+ bne .L3204
20162
+ ldr r3, [r5, #-1284]
20163
+ ldr r2, [r5, #1124]
20164
+ add r3, r3, r3, lsl #1
20165
+ cmp r2, r3, lsr #2
20166
+ movcs r3, #18
20167
+ bcs .L3320
20168
+.L3204:
20169
+ ldr r3, .L3323+32
20170
+ ldrh r3, [r3]
20171
+ add r3, r3, r3, lsl #1
20172
+ asr r3, r3, #2
20173
+.L3320:
20174
+ strh r3, [r6, #-8] @ movhi
1958620175 bl FtlReadRefresh
1958720176 mov r0, #0
1958820177 bl List_get_gc_head_node
19589
- ldr r3, [r7, #-1408]
1959020178 uxth r0, r0
19591
- mov r0, r0, asl #1
20179
+ ldr r3, [r5, #-1404]
20180
+ lsl r0, r0, #1
1959220181 ldrh r3, [r3, r0]
1959320182 cmp r3, #4
19594
- movwhi r3, #1940
19595
- ldrhih r0, [r6, r3]
19596
- bhi .L3395
19597
-.L3285:
19598
- movw r5, #1940
19599
- ldr r9, .L3406+12
19600
- ldrh r0, [r6, r5]
20183
+ bls .L3203
20184
+.L3322:
20185
+ movw r3, #1932
20186
+ ldrh r0, [r5, r3]
20187
+ b .L3159
20188
+.L3203:
20189
+ movw r7, #1932
20190
+ ldrh r0, [r5, r7]
1960120191 cmp r0, #0
19602
- bne .L3288
19603
- movw r3, #1160
19604
- ldrh fp, [r9, r3]
19605
- add r3, fp, fp, asl #1
19606
- mov r3, r3, asr #2
19607
- strh r3, [r10, #-12] @ movhi
20192
+ bne .L3207
20193
+ ldr r10, .L3323+32
20194
+ ldrh r9, [r10]
20195
+ add r3, r9, r9, lsl #1
20196
+ asr r3, r3, #2
20197
+ strh r3, [r6, #-8] @ movhi
1960820198 bl List_get_gc_head_node
19609
- ldr r3, [r7, #-1408]
1961020199 uxth r0, r0
19611
- mov r0, r0, asl #1
19612
- ldrh r1, [r3, r0]
19613
- ldr r3, .L3406+24
19614
- ldrh r2, [r3, #-2]
19615
- ldrh r3, [r3, #-72]
19616
- mul r3, r3, r2
20200
+ ldr r3, [r5, #-1404]
20201
+ lsl r0, r0, #1
20202
+ ldrh r2, [r3, r0]
20203
+ sub r3, r10, #2816
20204
+ sub r10, r10, #2880
20205
+ ldrh r1, [r3]
20206
+ ldrh r3, [r10, #-4]
20207
+ mul r3, r3, r1
1961720208 add r3, r3, r3, lsr #31
19618
- cmp r1, r3, asr #1
19619
- ble .L3289
20209
+ cmp r2, r3, asr #1
20210
+ ble .L3208
1962020211 ldrh r3, [r4]
19621
- sub r2, fp, #1
19622
- cmp r3, r2
19623
- blt .L3289
20212
+ sub r9, r9, #1
20213
+ cmp r3, r9
20214
+ blt .L3208
1962420215 bl FtlReadRefresh
19625
- ldrh r0, [r9, r5]
19626
- b .L3395
19627
-.L3289:
19628
- cmp r1, #0
19629
- bne .L3288
20216
+ ldrh r0, [r5, r7]
20217
+ b .L3159
20218
+.L3208:
20219
+ cmp r2, #0
20220
+ bne .L3207
1963020221 movw r0, #65535
1963120222 bl decrement_vpc_count
1963220223 ldrh r0, [r4]
1963320224 add r0, r0, #1
19634
- b .L3395
19635
-.L3283:
19636
- ldr r3, [r7, #-1872]
19637
- cmp r3, #0
19638
- moveq r5, #1
19639
- movne r5, #2
19640
-.L3282:
19641
- movw r3, #1164
19642
- movw r1, #65535
19643
- ldrh r2, [r6, r3]
19644
- cmp r2, r1
19645
- bne .L3291
19646
- cmp r4, r2
19647
- ldrne r2, .L3406+12
19648
- strneh r4, [r2, r3] @ movhi
19649
- bne .L3293
19650
- ldrh r3, [r8, #-4]
19651
- ldr r2, .L3406
19652
- cmp r3, r4
19653
- sub r1, r2, #1536
19654
- beq .L3293
19655
- ldr r2, [r2, #-1408]
19656
- mov r3, r3, asl #1
19657
- ldrh r3, [r2, r3]
19658
- cmp r3, #0
19659
- mvneq r3, #0
19660
- streqh r3, [r1, #-4] @ movhi
19661
- ldrh r2, [r8, #-4]
19662
- movw r3, #1164
19663
- strh r2, [r6, r3] @ movhi
19664
- mvn r3, #0
19665
- strh r3, [r8, #-4] @ movhi
19666
-.L3293:
19667
- movw r8, #1164
19668
- mov r3, #0
19669
- ldrh r0, [r6, r8]
19670
- strb r3, [r6, #1172]
19671
- movw r3, #65535
19672
- cmp r0, r3
19673
- beq .L3291
20225
+ b .L3159
20226
+.L3221:
20227
+ str r0, [sp, #16]
20228
+ mov r0, r2
20229
+ str r2, [sp, #12]
20230
+ add r7, r7, #1
1967420231 bl IsBlkInGcList
1967520232 cmp r0, #0
19676
- ldrne r3, .L3406+12
19677
- mvnne r2, #0
19678
- strneh r2, [r3, r8] @ movhi
19679
- ldrb r3, [r7, #-2744] @ zero_extendqisi2
19680
- cmp r3, #0
19681
- beq .L3297
19682
- movw r3, #1164
19683
- ldrh r0, [r6, r3]
19684
- bl ftl_get_blk_mode
19685
- strb r0, [r6, #1172]
19686
-.L3297:
19687
- movw r9, #1164
19688
- movw r3, #65535
19689
- ldrh r2, [r6, r9]
19690
- ldr r8, .L3406+12
19691
- cmp r2, r3
19692
- ldr r10, .L3406+28
19693
- beq .L3291
19694
- mov r0, r10
19695
- bl make_superblock
19696
- movw r2, #1942
19697
- mov r3, #0
19698
- strh r3, [r8, r2] @ movhi
19699
- strh r3, [r10, #2] @ movhi
19700
- strb r3, [r8, #1170]
19701
- ldrh r3, [r8, r9]
19702
- ldr r2, [r7, #-1408]
19703
- mov r3, r3, asl #1
19704
- ldrh r2, [r2, r3]
19705
- movw r3, #1944
19706
- strh r2, [r8, r3] @ movhi
19707
-.L3291:
19708
- ldr r2, .L3406+32
19709
- movw r3, #1164
19710
- ldrh r3, [r6, r3]
19711
- ldrh r1, [r2]
19712
- cmp r1, r3
19713
- beq .L3298
19714
- ldrh r1, [r2, #48]
19715
- cmp r1, r3
19716
- beq .L3298
19717
- ldrh r2, [r2, #96]
19718
- cmp r2, r3
19719
- bne .L3332
19720
-.L3298:
19721
- movw r3, #1164
19722
- mvn r2, #0
19723
- strh r2, [r6, r3] @ movhi
19724
-.L3332:
19725
- ldr r8, .L3406+28
19726
- movw r3, #65535
19727
- ldr r7, .L3406
19728
- ldrh r2, [r8]
19729
- cmp r2, r3
19730
- bne .L3300
19731
- mov fp, r7
19732
- mov r3, #0
19733
- str r3, [r7, #-1560]
19734
-.L3301:
19735
- ldr r10, .L3406+36
19736
- ldr r9, .L3406+12
19737
- ldrh r6, [r10]
19738
- mov r0, r6
19739
- bl List_get_gc_head_node
19740
- ldr r2, .L3406+28
19741
- uxth r3, r0
19742
- strh r3, [r2] @ movhi
19743
- movw r2, #65535
19744
- cmp r3, r2
19745
- moveq r3, #0
19746
- moveq r0, #8
19747
- streqh r3, [r10] @ movhi
19748
- beq .L3395
19749
-.L3302:
19750
- mov r0, r3
19751
- str r3, [sp, #12]
19752
- bl IsBlkInGcList
19753
- add r6, r6, #1
19754
- cmp r0, #0
19755
- ldr r3, [sp, #12]
19756
- ldrne r3, .L3406+36
19757
- strneh r6, [r3] @ movhi
19758
- bne .L3301
19759
- ldr r2, .L3406+36
19760
- uxth r6, r6
19761
- ldrh r1, [r10, #-208]
19762
- mov r0, r3, asl #1
19763
- ldr ip, [fp, #-1408]
19764
- strh r6, [r2] @ movhi
19765
- ldrh r2, [r10, #-140]
19766
- ldrh lr, [ip, r0]
19767
- mul r2, r1, r2
19768
- add r1, r2, r2, lsr #31
19769
- cmp lr, r1, asr #1
19770
- bgt .L3305
19771
- cmp lr, #8
19772
- cmphi r6, #48
19773
- bls .L3306
19774
- ldr r1, .L3406+40
19775
- ldrh r1, [r1]
19776
- cmp r1, #35
19777
- bhi .L3306
19778
-.L3305:
19779
- ldr lr, .L3406+36
19780
- mov r1, #0
19781
- strh r1, [lr] @ movhi
19782
-.L3306:
19783
- ldrh r1, [ip, r0]
20233
+ ldr r2, [sp, #12]
20234
+ ldr r3, [sp, #16]
20235
+ strhne r7, [r6] @ movhi
20236
+ bne .L3220
20237
+ ldr lr, .L3323+16
20238
+ uxth r3, r3
20239
+ ldr r0, [r10, #-1404]
20240
+ uxth r7, r7
20241
+ lsl r1, r3, #1
20242
+ ldrh r3, [r6, #-142]
20243
+ ldrh lr, [lr, #-68]
20244
+ strh r7, [r6] @ movhi
20245
+ ldrh ip, [r0, r1]
20246
+ mul r3, lr, r3
20247
+ add lr, r3, r3, lsr #31
20248
+ cmp ip, lr, asr #1
20249
+ bgt .L3224
20250
+ cmp r7, #48
20251
+ cmphi ip, #8
20252
+ bls .L3225
20253
+ add r6, r6, #3280
20254
+ ldrh ip, [r6]
20255
+ cmp ip, #35
20256
+ bhi .L3225
20257
+.L3224:
20258
+ mov ip, #0
20259
+ strh ip, [fp, #-4] @ movhi
20260
+.L3225:
20261
+ ldrh r1, [r0, r1]
1978420262 movw r0, #65535
19785
- cmp r1, r2
19786
- cmpge r4, r0
19787
- bne .L3307
19788
- ldr r2, .L3406+36
19789
- ldrh r2, [r2]
19790
- cmp r2, #3
19791
- bhi .L3307
19792
- movw r3, #1164
19793
- mvn r2, #0
19794
- strh r2, [r9, r3] @ movhi
20263
+ cmp r3, r1
20264
+ cmple r4, r0
20265
+ bne .L3226
20266
+ ldrh r0, [fp, #-4]
20267
+ cmp r0, #3
20268
+ bhi .L3226
20269
+ movw r2, #1156
20270
+ mvn r1, #0
20271
+ strh r1, [r10, r2] @ movhi
20272
+ movw r3, #1932
1979520273 mov r2, #0
19796
- ldr r3, .L3406+36
19797
- strh r2, [r3] @ movhi
19798
- b .L3400
19799
-.L3307:
20274
+ ldrh r0, [r10, r3]
20275
+ strh r2, [fp, #-4] @ movhi
20276
+ b .L3159
20277
+.L3226:
1980020278 cmp r1, #0
19801
- bne .L3308
20279
+ bne .L3227
1980220280 movw r0, #65535
1980320281 bl decrement_vpc_count
19804
- ldr r3, .L3406+36
19805
- ldr r2, .L3406+36
19806
- ldrh r3, [r3]
20282
+ ldrh r3, [fp, #-4]
1980720283 add r3, r3, #1
19808
- strh r3, [r2] @ movhi
19809
- b .L3301
19810
-.L3308:
19811
- mov r2, #0
19812
- strb r2, [r9, #1172]
19813
- ldrb r2, [r7, #-2744] @ zero_extendqisi2
19814
- cmp r2, #0
19815
- beq .L3309
19816
- mov r0, r3
20284
+ strh r3, [fp, #-4] @ movhi
20285
+ b .L3220
20286
+.L3227:
20287
+ mov r3, #0
20288
+ strb r3, [r10, #1164]
20289
+ ldrb r3, [r10, #-2740] @ zero_extendqisi2
20290
+ cmp r3, #0
20291
+ beq .L3228
20292
+ mov r0, r2
1981720293 bl ftl_get_blk_mode
19818
- ldr r3, .L3406+12
19819
- strb r0, [r3, #1172]
19820
-.L3309:
19821
- ldr r0, .L3406+28
20294
+ strb r0, [r10, #1164]
20295
+.L3228:
20296
+ ldr r0, .L3323+44
1982220297 bl make_superblock
1982320298 ldrh r2, [r8]
19824
- ldr r1, .L3406+44
1982520299 mov r3, #0
19826
- ldr r0, [r7, #-1408]
19827
- mov r2, r2, asl #1
20300
+ ldr r1, .L3323+56
20301
+ ldr r0, [r10, #-1404]
20302
+ lsl r2, r2, #1
1982820303 strh r3, [r1] @ movhi
1982920304 ldrh r2, [r0, r2]
1983020305 strh r3, [r8, #2] @ movhi
19831
- strb r3, [r9, #1170]
20306
+ strb r3, [r10, #1162]
1983220307 strh r2, [r1, #2] @ movhi
19833
-.L3300:
19834
- ldr r3, [sp, #20]
20308
+.L3219:
20309
+ ldr r3, [sp, #24]
1983520310 cmp r3, #1
19836
- bne .L3310
20311
+ bne .L3229
1983720312 bl FtlReadRefresh
19838
-.L3310:
20313
+.L3229:
1983920314 mov r3, #1
19840
- str r3, [r7, #-1564]
19841
- ldr r3, .L3406+48
19842
- ldrh r2, [r3]
20315
+ str r3, [r10, #-1560]
20316
+ ldr r3, .L3323+16
20317
+ ldrh r2, [r3, #-2]
1984320318 str r2, [sp, #12]
19844
- ldrb r2, [r7, #-2744] @ zero_extendqisi2
20319
+ ldrb r2, [r10, #-2740] @ zero_extendqisi2
1984520320 cmp r2, #0
19846
- beq .L3311
19847
- ldr r2, .L3406+12
19848
- ldrb r2, [r2, #1172] @ zero_extendqisi2
20321
+ beq .L3230
20322
+ ldrb r2, [r10, #1164] @ zero_extendqisi2
1984920323 cmp r2, #1
19850
- ldreqh r3, [r3, #2]
20324
+ ldrheq r3, [r3]
1985120325 streq r3, [sp, #12]
19852
-.L3311:
20326
+.L3230:
1985320327 ldrh r3, [r8, #2]
1985420328 ldr r1, [sp, #12]
19855
- add r2, r3, r5
19856
- ldr r8, .L3406+12
20329
+ ldr r6, .L3323+44
20330
+ add r2, r3, r9
1985720331 cmp r2, r1
1985820332 movgt r2, r1
19859
- rsbgt r3, r3, r2
19860
- uxthgt r5, r3
20333
+ subgt r3, r2, r3
20334
+ uxthgt r9, r3
1986120335 mov r3, #0
19862
- str r3, [sp, #16]
19863
- b .L3313
19864
-.L3405:
19865
- ldr r0, [r7, #-1488]
19866
- mov r1, r6
19867
- ldrb r2, [r8, #1172] @ zero_extendqisi2
19868
- mov r10, #0
19869
- bl FlashReadPages
19870
- ldr r7, .L3406
19871
-.L3316:
19872
- uxth r3, r10
19873
- cmp r3, r6
19874
- bcs .L3403
19875
- mov r3, #36
19876
- ldr r2, [r7, #-1488]
19877
- mul r9, r3, r10
19878
- add r1, r2, r9
19879
- ldr r2, [r2, r9]
19880
- ldr fp, [r1, #12]
19881
- cmn r2, #1
19882
- beq .L3352
19883
- ldrh r1, [fp]
19884
- movw r2, #61589
19885
- cmp r1, r2
19886
- bne .L3352
19887
- add r1, sp, #32
19888
- mov r2, #0
19889
- ldr r0, [fp, #8]
19890
- str r3, [sp, #24]
19891
- bl log2phys
19892
- ldr r1, [r7, #-1488]
19893
- add r1, r1, r9
19894
- ldr r0, [r1, #4]
19895
- ldr r2, [sp, #32]
19896
- ldr r3, [sp, #24]
19897
- bic r2, r2, #-2147483648
19898
- cmp r2, r0
19899
- bne .L3352
19900
- ldr r0, .L3406+44
19901
- ldr r1, [r1, #16]
19902
- str r3, [sp, #28]
19903
- ldrh r2, [r0]
19904
- add r2, r2, #1
19905
- strh r2, [r0] @ movhi
19906
- ldr r0, [r8, #1740]
19907
- ldr r2, [r7, #-1500]
19908
- mla r2, r3, r0, r2
19909
- str r1, [r2, #16]
19910
- str r2, [sp, #24]
19911
- bl Ftl_get_new_temp_ppa
19912
- ldr r1, [r8, #1740]
19913
- ldr r2, [sp, #24]
19914
- ldr r3, [sp, #28]
19915
- str r0, [r2, #4]
19916
- ldr r2, [r7, #-1500]
19917
- mla r3, r3, r1, r2
19918
- ldr r2, [r7, #-1488]
19919
- add r2, r2, r9
19920
- ldr r1, [r2, #8]
19921
- str r1, [r3, #8]
19922
- mov r1, #1
19923
- ldr r2, [r2, #12]
19924
- str r2, [r3, #12]
19925
- ldr r3, [sp, #32]
19926
- str r3, [fp, #12]
19927
- ldr r3, .L3406+52
19928
- ldrh r2, [r3]
19929
- str r3, [sp, #24]
19930
- strh r2, [fp, #2] @ movhi
19931
- ldr r2, [r7, #-1612]
19932
- ldr r0, [r7, #-1488]
19933
- str r2, [fp, #4]
19934
- add r0, r0, r9
19935
- ldr r2, [r8, #1740]
19936
- ldr r9, .L3406+12
19937
- add r2, r2, #1
19938
- str r2, [r8, #1740]
19939
- bl FtlGcBufAlloc
19940
- ldrb r2, [r7, #-2744] @ zero_extendqisi2
19941
- cmp r2, #0
19942
- beq .L3404
19943
-.L3318:
19944
- bl Ftl_gc_temp_data_write_back
19945
- cmp r0, #0
19946
- beq .L3352
19947
- ldr r2, .L3406
20336
+ str r3, [sp, #20]
20337
+.L3232:
20338
+ ldrh r3, [sp, #20]
20339
+ cmp r9, r3
20340
+ bls .L3239
20341
+ ldr r3, .L3323+60
20342
+ add ip, r6, #14
20343
+ ldrh r1, [r6, #2]
20344
+ mov lr, #36
20345
+ ldr r0, [r5, #-1484]
20346
+ ldrh r8, [r3]
20347
+ ldr r3, [sp, #20]
20348
+ add r1, r1, r3
1994820349 mov r3, #0
19949
- mvn r1, #0
19950
- str r3, [r2, #-1564]
19951
- movw r2, #1164
19952
- strh r1, [r9, r2] @ movhi
19953
- ldr r2, .L3406+28
19954
- strh r3, [r2, #2] @ movhi
19955
-.L3400:
19956
- movw r3, #1940
19957
- ldrh r0, [r9, r3]
19958
- b .L3395
19959
-.L3403:
19960
- ldr r3, [sp, #16]
20350
+ mov fp, r3
20351
+ b .L3240
20352
+.L3234:
20353
+ ldrh r2, [ip, #2]!
20354
+ movw r7, #65535
1996120355 add r3, r3, #1
19962
- str r3, [sp, #16]
19963
-.L3313:
19964
- ldrh r3, [sp, #16]
19965
- ldr r7, .L3406
19966
- cmp r3, r5
19967
- ldr r6, .L3406+28
19968
- bcs .L3320
19969
- ldr r3, .L3406+56
19970
- mov r2, #0
19971
- ldrh r0, [r6, #2]
19972
- movw lr, #65535
19973
- ldr r9, [r7, #-1488]
19974
- mov ip, #36
19975
- ldrh r10, [r3]
19976
- ldr r3, [sp, #16]
19977
- add r0, r0, r3
19978
- add r3, r6, #14
19979
- mov r6, r2
20356
+ cmp r2, r7
20357
+ mlane r7, lr, fp, r0
20358
+ addne fp, fp, #1
20359
+ orrne r2, r1, r2, lsl #10
20360
+ uxthne fp, fp
20361
+ strne r2, [r7, #4]
20362
+.L3240:
20363
+ uxth r2, r3
20364
+ cmp r8, r2
20365
+ bhi .L3234
20366
+ ldrb r2, [r5, #1164] @ zero_extendqisi2
20367
+ mov r1, fp
20368
+ bl FlashReadPages
20369
+ mov r3, #0
1998020370 .L3321:
19981
- uxth r1, r2
19982
- cmp r1, r10
19983
- bcs .L3405
19984
- ldrh r1, [r3, #2]!
19985
- add r2, r2, #1
19986
- cmp r1, lr
19987
- orrne r1, r0, r1, asl #10
19988
- mlane fp, ip, r6, r9
19989
- addne r6, r6, #1
19990
- uxthne r6, r6
19991
- strne r1, [fp, #4]
19992
- b .L3321
19993
-.L3404:
19994
- ldrb r2, [r7, #987] @ zero_extendqisi2
19995
- ldr r1, [r8, #1740]
19996
- cmp r1, r2
19997
- beq .L3318
19998
- ldr r3, [sp, #24]
20371
+ str r3, [sp, #16]
20372
+ ldrh r3, [sp, #16]
20373
+ cmp fp, r3
20374
+ ldrls r3, [sp, #20]
20375
+ addls r3, r3, #1
20376
+ strls r3, [sp, #20]
20377
+ bls .L3232
20378
+.L3238:
20379
+ ldr r2, [sp, #16]
20380
+ mov r3, #36
20381
+ mul r7, r3, r2
20382
+ ldr r3, [r5, #-1484]
20383
+ add r2, r3, r7
20384
+ ldr r3, [r3, r7]
20385
+ cmn r3, #1
20386
+ beq .L3236
20387
+ ldr r8, [r2, #12]
20388
+ movw r3, #61589
20389
+ ldrh r2, [r8]
20390
+ cmp r2, r3
20391
+ bne .L3236
20392
+ mov r2, #0
20393
+ add r1, sp, #32
20394
+ ldr r0, [r8, #8]
20395
+ bl log2phys
20396
+ ldr r2, [r5, #-1484]
20397
+ ldr r3, [sp, #32]
20398
+ add r2, r2, r7
20399
+ ldr r1, [r2, #4]
20400
+ bic r3, r3, #-2147483648
20401
+ cmp r3, r1
20402
+ bne .L3236
20403
+ ldr r3, .L3323+56
20404
+ mov r0, #36
20405
+ ldr r1, .L3323+56
20406
+ ldr r2, [r2, #16]
20407
+ ldrh r3, [r3]
20408
+ add r3, r3, #1
20409
+ strh r3, [r1] @ movhi
20410
+ ldr r1, [r5, #1732]
20411
+ ldr r3, [r5, #-1496]
20412
+ mla r3, r0, r1, r3
20413
+ str r2, [r3, #16]
20414
+ str r3, [sp, #28]
20415
+ bl Ftl_get_new_temp_ppa
20416
+ ldr r3, [sp, #28]
20417
+ mov r1, #36
20418
+ ldr r2, [r5, #-1496]
20419
+ str r0, [r3, #4]
20420
+ ldr r3, [r5, #1732]
20421
+ mla r2, r1, r3, r2
20422
+ ldr r3, [r5, #-1484]
20423
+ add r3, r3, r7
20424
+ ldr r1, [r3, #8]
20425
+ str r1, [r2, #8]
20426
+ mov r1, #1
20427
+ ldr r3, [r3, #12]
20428
+ str r3, [r2, #12]
20429
+ ldr r3, [sp, #32]
20430
+ str r3, [r8, #12]
20431
+ ldr r3, .L3323+28
20432
+ ldrh r3, [r3]
20433
+ strh r3, [r8, #2] @ movhi
20434
+ ldr r3, [r5, #-1608]
20435
+ ldr r0, [r5, #-1484]
20436
+ str r3, [r8, #4]
20437
+ ldr r3, [r5, #1732]
20438
+ add r0, r0, r7
20439
+ add r3, r3, #1
20440
+ str r3, [r5, #1732]
20441
+ bl FtlGcBufAlloc
20442
+ ldrb r3, [r5, #-2740] @ zero_extendqisi2
20443
+ cmp r3, #0
20444
+ bne .L3237
20445
+ ldrb r2, [r5, #987] @ zero_extendqisi2
20446
+ ldr r3, [r5, #1732]
20447
+ cmp r2, r3
20448
+ beq .L3237
20449
+ ldr r3, .L3323+28
1999920450 ldrh r3, [r3, #4]
2000020451 cmp r3, #0
20001
- beq .L3318
20002
-.L3352:
20003
- add r10, r10, #1
20004
- b .L3316
20005
-.L3320:
20452
+ bne .L3236
20453
+.L3237:
20454
+ bl Ftl_gc_temp_data_write_back
20455
+ cmp r0, #0
20456
+ beq .L3236
20457
+ ldr r3, .L3323
20458
+ mvn r0, #0
20459
+ movw r1, #1156
20460
+ mov r2, #0
20461
+ strh r0, [r3, r1] @ movhi
20462
+ ldr r1, .L3323+44
20463
+ str r2, [r3, #-1560]
20464
+ strh r2, [r1, #2] @ movhi
20465
+ movw r2, #1932
20466
+ ldrh r0, [r3, r2]
20467
+ b .L3159
20468
+.L3236:
20469
+ ldr r3, [sp, #16]
20470
+ add r3, r3, #1
20471
+ b .L3321
20472
+.L3239:
2000620473 ldrh r3, [r6, #2]
20007
- ldr r8, .L3406+12
20008
- add r5, r5, r3
20009
- ldr r3, [sp, #12]
20010
- uxth r5, r5
20011
- mov r9, r8
20012
- cmp r5, r3
20013
- strh r5, [r6, #2] @ movhi
20014
- bcc .L3322
20015
- ldr r3, [r8, #1740]
20474
+ ldr r2, [sp, #12]
20475
+ add r3, r9, r3
20476
+ uxth r3, r3
20477
+ cmp r2, r3
20478
+ strh r3, [r6, #2] @ movhi
20479
+ bhi .L3241
20480
+ ldr r3, [r5, #1732]
2001620481 cmp r3, #0
20017
- beq .L3323
20482
+ beq .L3242
2001820483 bl Ftl_gc_temp_data_write_back
2001920484 cmp r0, #0
2002020485 movne r3, #0
20021
- strne r3, [r7, #-1564]
20022
- movwne r3, #1940
20023
- ldrneh r0, [r8, r3]
20024
- bne .L3395
20025
-.L3323:
20026
- ldr r3, .L3406+44
20027
- ldrh r5, [r3]
20028
- cmp r5, #0
20029
- bne .L3324
20486
+ strne r3, [r5, #-1560]
20487
+ bne .L3322
20488
+.L3242:
20489
+ ldr r3, .L3323+56
20490
+ ldrh r7, [r3]
20491
+ cmp r7, #0
20492
+ bne .L3243
2003020493 ldrh r3, [r6]
20031
- ldr r2, [r7, #-1408]
20032
- mov r3, r3, asl #1
20494
+ ldr r2, [r5, #-1404]
20495
+ lsl r3, r3, #1
2003320496 ldrh r3, [r2, r3]
2003420497 cmp r3, #0
20035
- beq .L3324
20036
-.L3325:
20037
- ldr r3, [r7, #-1284]
20038
- cmp r5, r3
20039
- bcs .L3330
20040
- mov r0, r5
20041
- add r1, sp, #36
20498
+ beq .L3243
20499
+.L3244:
20500
+ ldr r3, [r5, #-1284]
20501
+ cmp r7, r3
20502
+ bcs .L3249
2004220503 mov r2, #0
20504
+ add r1, sp, #36
20505
+ mov r0, r7
2004320506 bl log2phys
2004420507 ldr r0, [sp, #36]
2004520508 cmn r0, #1
20046
- beq .L3326
20509
+ beq .L3245
2004720510 ubfx r0, r0, #10, #16
2004820511 bl P2V_block_in_plane
2004920512 ldrh r3, [r6]
2005020513 cmp r3, r0
20051
- bne .L3326
20052
-.L3330:
20053
- ldr r3, [r7, #-1284]
20054
- cmp r5, r3
20055
- bcc .L3324
20056
- ldr r2, .L3406
20057
- mov r1, #0
20514
+ bne .L3245
20515
+.L3249:
20516
+ ldr r3, [r5, #-1284]
20517
+ cmp r7, r3
20518
+ bcc .L3243
2005820519 ldrh r3, [r6]
20059
- ldr r2, [r2, #-1408]
20060
- mov r3, r3, asl #1
20520
+ mov r1, #0
20521
+ ldr r2, [r5, #-1404]
20522
+ lsl r3, r3, #1
2006120523 strh r1, [r2, r3] @ movhi
2006220524 ldrh r0, [r6]
2006320525 bl update_vpc_list
2006420526 bl FtlCacheWriteBack
2006520527 bl l2p_flush
2006620528 bl FtlVpcTblFlush
20067
- b .L3324
20068
-.L3326:
20069
- add r5, r5, #1
20070
- b .L3325
20071
-.L3324:
20529
+.L3243:
2007220530 mvn r3, #0
2007320531 strh r3, [r6] @ movhi
20074
-.L3322:
20075
- ldr r2, .L3406
20076
- add r3, r2, #880
20532
+.L3241:
20533
+ ldr r3, .L3323+24
2007720534 ldrh r3, [r3]
2007820535 cmp r3, #2
20079
- ldrls r3, .L3406+48
20080
- ldrlsh r5, [r3]
20081
- bls .L3332
20082
-.L3331:
20083
- mov r1, #0
20084
- str r1, [r2, #-1564]
20085
- movw r2, #1940
20086
- ldrh r0, [r9, r2]
20087
- cmp r0, r1
20088
- addeq r0, r3, #1
20089
- b .L3395
20090
-.L3338:
20091
- mov r0, r8
20092
- b .L3395
20093
-.L3402:
20094
- ldrh fp, [r8, #-4]
20095
- cmp fp, r4
20096
- bne .L3259
20097
- add r10, r5, #880
20098
- ldr r2, [r5, #-1548]
20099
- ldrh r3, [r10]
20100
- cmp r3, #24
20101
- movcc r3, #5120
20102
- movcs r3, #1024
20103
- cmp r2, r3
20104
- movls r4, fp
20105
- bls .L3259
20106
- movw r2, #1940
20107
- mov r3, #0
20108
- str r3, [r7, #-1548]
20109
- strh r3, [r6, r2] @ movhi
20110
- bl GetSwlReplaceBlock
20111
- cmp r0, fp
20112
- mov r4, r0
20113
- sub fp, r5, #1520
20114
- bne .L3261
20115
- ldrh r2, [r10]
20116
- ldrh r3, [fp, #-10]
20117
- cmp r2, r3
20118
- bcs .L3262
20119
- mov r0, #64
20120
- bl List_get_gc_head_node
20121
- uxth r3, r0
20122
- cmp r3, r4
20123
- beq .L3271
20124
- ldr r2, [r5, #-1624]
20125
- sub r1, r5, #1712
20126
- cmp r2, #0
20127
- bne .L3264
20128
- ldrh r2, [r1, #-4]
20129
- cmp r2, #3
20130
- beq .L3264
20131
- ldr r2, [r5, #-1620]
20132
- cmp r2, #0
20133
- bne .L3264
20134
- ldr r2, [r5, #-1872]
20135
- cmp r2, #0
20136
- bne .L3264
20137
- ldrb r0, [r5, #-2744] @ zero_extendqisi2
20536
+ bhi .L3250
20537
+ ldr r3, .L3323+64
20538
+ ldrh r9, [r3]
20539
+ b .L3251
20540
+.L3245:
20541
+ add r7, r7, #1
20542
+ b .L3244
20543
+.L3250:
20544
+ mov r2, #0
20545
+ str r2, [r5, #-1560]
20546
+ movw r2, #1932
20547
+ ldrh r0, [r5, r2]
2013820548 cmp r0, #0
20139
- beq .L3265
20140
-.L3264:
20141
- ldr r2, [r7, #-1408]
20142
- mov r3, r3, asl #1
20143
- ldrh r1, [r1, #-4]
20144
- ldrh r0, [r2, r3]
20145
- cmp r1, #3
20146
- ldr r2, .L3406+24
20147
- ldrh r3, [r2, #-2]
20148
- ldrh r2, [r2, #-72]
20149
- mul r2, r2, r3
20150
- moveq r3, r3, lsr #1
20151
- movne r3, #0
20152
- add r3, r2, r3
20153
- cmp r0, r3
20154
- bgt .L3267
20549
+ addeq r0, r3, #1
20550
+ b .L3159
20551
+.L3255:
2015520552 mov r0, #0
20156
- bl List_get_gc_head_node
20157
- ldr r3, [r7, #-1284]
20158
- ldr r2, [r7, #1124]
20159
- add r3, r3, r3, asl #1
20160
- cmp r2, r3, lsr #2
20161
- movls r3, #160
20162
- uxth r4, r0
20163
- bls .L3398
20164
- b .L3401
20165
-.L3265:
20166
- ldr r2, [r5, #-1408]
20167
- mov r3, r3, asl #1
20168
- ldrh r3, [r2, r3]
20169
- cmp r3, #7
20170
- bhi .L3270
20171
- bl List_get_gc_head_node
20172
- uxth r4, r0
20173
-.L3401:
20174
- mov r3, #128
20175
-.L3398:
20176
- strh r3, [fp, #-10] @ movhi
20177
- movw r3, #65535
20178
- cmp r4, r3
20179
- beq .L3271
20180
- b .L3261
20181
-.L3267:
20182
- mov r3, #128
20183
- b .L3399
20184
-.L3270:
20185
- mov r3, #64
20186
- b .L3399
20187
-.L3262:
20188
- mov r3, #80
20189
-.L3399:
20190
- strh r3, [fp, #-10] @ movhi
20191
- b .L3271
20192
-.L3261:
20193
- ldr r0, [r7, #-1416]
20194
- mov r1, r4, asl #1
20195
- ldr r3, [r7, #-1408]
20196
- ldrh r2, [r10]
20197
- ldrh r3, [r3, r1]
20198
- ldrh r1, [r0, r1]
20199
- ldr r0, .L3406+60
20200
- str r1, [sp]
20201
- ldrh r1, [fp, #-12]
20202
- str r1, [sp, #4]
20203
- mov r1, r4
20204
- bl printk
20205
-.L3271:
20206
- bl FtlGcReFreshBadBlk
20207
- b .L3259
20208
-.L3395:
20209
- add sp, sp, #44
20210
- @ sp needed
20211
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
20212
-.L3407:
20553
+ b .L3159
20554
+.L3324:
2021320555 .align 2
20214
-.L3406:
20556
+.L3323:
2021520557 .word .LANCHOR2
2021620558 .word .LANCHOR1
20559
+ .word .LANCHOR2-1520
2021720560 .word .LANCHOR2-1536
20218
- .word .LANCHOR4
20561
+ .word .LANCHOR2-1664
2021920562 .word .LC158
2022020563 .word .LANCHOR2+880
20221
- .word .LANCHOR2-1664
20222
- .word .LANCHOR4+1164
20223
- .word .LANCHOR2+884
20224
- .word .LANCHOR2-1528
20225
- .word .LANCHOR4+1764
20226
- .word .LANCHOR4+1942
20227
- .word .LANCHOR2-1668
2022820564 .word .LANCHOR2+980
20229
- .word .LANCHOR2-1736
20565
+ .word .LANCHOR2+1152
20566
+ .word .LANCHOR2-1712
2023020567 .word .LC159
20568
+ .word .LANCHOR2+1156
20569
+ .word .LANCHOR2+884
20570
+ .word .LANCHOR2-1524
20571
+ .word .LANCHOR2+1934
20572
+ .word .LANCHOR2-1732
20573
+ .word .LANCHOR2-1666
2023120574 .fnend
2023220575 .size ftl_do_gc, .-ftl_do_gc
2023320576 .align 2
2023420577 .global FtlCacheWriteBack
20578
+ .syntax unified
20579
+ .arm
20580
+ .fpu softvfp
2023520581 .type FtlCacheWriteBack, %function
2023620582 FtlCacheWriteBack:
2023720583 .fnstart
2023820584 @ args = 0, pretend = 0, frame = 8
2023920585 @ frame_needed = 0, uses_anonymous_args = 0
20240
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
20586
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
2024120587 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2024220588 .pad #12
20243
- ldr r4, .L3452
20244
- ldr r8, .L3452+4
20245
- ldr r3, [r4, #-1280]
20246
- ldr r5, [r8, #1948]
20247
- cmp r3, #0
20248
- bne .L3410
20249
- ldr r1, [r4, #-1516]
20589
+ ldr r4, .L3368
20590
+ ldr r8, [r4, #-1280]
20591
+ cmp r8, #0
20592
+ bne .L3327
20593
+ ldr r1, [r4, #-1512]
2025020594 cmp r1, #0
20251
- beq .L3410
20252
- ldrb r6, [r4, #-2744] @ zero_extendqisi2
20253
- mov r7, #0
20254
- ldr r0, [r4, #-1484]
20255
- mov r10, #36
20256
- cmp r6, #0
20595
+ beq .L3327
20596
+ ldrb r3, [r4, #-2740] @ zero_extendqisi2
20597
+ mov r6, #0
20598
+ ldr r5, [r4, #1940]
20599
+ mov r9, #36
20600
+ ldr r10, .L3368+4
20601
+ cmp r3, #0
20602
+ ldr r0, [r4, #-1480]
20603
+ ldrbne r7, [r5, #8] @ zero_extendqisi2
20604
+ moveq r7, r8
2025720605 ldrb r3, [r5, #9] @ zero_extendqisi2
20258
- ldr r9, .L3452
20259
- ldrneb r6, [r5, #8] @ zero_extendqisi2
20260
- subne r6, r6, #1
20261
- clzne r6, r6
20262
- movne r6, r6, lsr #5
20263
- mov r2, r6
20606
+ subne r7, r7, #1
20607
+ clzne r7, r7
20608
+ lsrne r7, r7, #5
20609
+ mov r2, r7
2026420610 bl FlashProgPages
20265
-.L3413:
20266
- ldr r3, [r4, #-1516]
20267
- cmp r7, r3
20268
- bcs .L3431
20269
- mul fp, r10, r7
20270
- ldr r3, [r9, #-1484]
20271
- add r2, r3, fp
20611
+.L3330:
20612
+ ldr r3, [r4, #-1512]
20613
+ cmp r6, r3
20614
+ bcc .L3337
20615
+.L3349:
20616
+ mov r3, #0
20617
+ str r3, [r4, #-1512]
20618
+.L3327:
20619
+ mov r0, #0
20620
+ add sp, sp, #12
20621
+ @ sp needed
20622
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
20623
+.L3337:
20624
+ mul fp, r9, r6
20625
+ ldr r3, [r4, #-1480]
20626
+ add r0, r3, fp
2027220627 ldr r3, [r3, fp]
2027320628 cmn r3, #1
20274
- beq .L3434
20275
- ldr r3, [r2, #4]
20276
- cmp r6, #0
20277
- ldr r0, [r2, #16]
20278
- add r1, sp, #4
20629
+ bne .L3331
20630
+ ldr r10, .L3368+4
20631
+.L3332:
20632
+ ldr r3, [r4, #-1512]
20633
+ cmp r8, r3
20634
+ bcc .L3347
20635
+ movw r5, #16386
20636
+.L3350:
20637
+ ldr r3, .L3368+8
20638
+ ldrh r3, [r3]
20639
+ cmp r3, #0
20640
+ beq .L3349
20641
+ mov r1, #1
20642
+ mov r0, r1
20643
+ bl ftl_do_gc
20644
+ subs r5, r5, #1
20645
+ bne .L3350
20646
+ b .L3349
20647
+.L3331:
20648
+ ldr r3, [r0, #4]
20649
+ cmp r7, #0
2027920650 mov r2, #1
20651
+ add r1, sp, #4
20652
+ ldr r0, [r0, #16]
2028020653 orrne r3, r3, #-2147483648
2028120654 str r3, [sp, #4]
2028220655 bl log2phys
20283
- ldr r3, [r4, #-1484]
20284
- add r3, r3, fp
20285
- ldr r3, [r3, #12]
20656
+ ldr r3, [r4, #-1480]
20657
+ add fp, r3, fp
20658
+ ldr r3, [fp, #12]
2028620659 ldr r0, [r3, #12]
2028720660 cmn r0, #1
20288
- beq .L3417
20661
+ beq .L3335
2028920662 ubfx r0, r0, #10, #16
2029020663 bl P2V_block_in_plane
20291
- ldr r2, [r9, #-1408]
20292
- mov r3, r0, asl #1
20664
+ ldr r2, [r4, #-1404]
20665
+ lsl r3, r0, #1
2029320666 mov fp, r0
2029420667 ldrh r2, [r2, r3]
2029520668 cmp r2, #0
20296
- bne .L3418
20297
- ldr r0, .L3452+8
20298
- mov r1, fp
20669
+ bne .L3336
20670
+ mov r1, r0
20671
+ mov r0, r10
2029920672 bl printk
20300
-.L3418:
20673
+.L3336:
2030120674 mov r0, fp
2030220675 bl decrement_vpc_count
20303
-.L3417:
20304
- add r7, r7, #1
20305
- b .L3413
20306
-.L3450:
20307
- ldr r6, .L3452+12
20308
- movw r5, #16386
20309
-.L3430:
20310
- ldrh r3, [r6]
20311
- cmp r3, #0
20312
- beq .L3431
20313
- mov r0, #1
20314
- mov r1, r0
20315
- bl ftl_do_gc
20316
- subs r5, r5, #1
20317
- bne .L3430
20318
-.L3431:
20319
- mov r3, #0
20320
- str r3, [r4, #-1516]
20321
- b .L3410
20322
-.L3434:
20323
- ldr r10, .L3452
20676
+.L3335:
20677
+ add r6, r6, #1
20678
+ b .L3330
20679
+.L3347:
20680
+ mov r6, #36
20681
+ ldr r3, [r4, #-1480]
20682
+ mul r6, r6, r8
2032420683 mov r9, #0
20325
-.L3414:
20326
- ldr r3, [r4, #-1516]
20327
- cmp r9, r3
20328
- bcs .L3450
20329
- mov r7, #36
20330
- ldr r3, [r10, #-1484]
20331
- mul r7, r7, r9
20332
- mov fp, #0
20684
+ mov fp, #1
2033320685 mvn r2, #0
20334
- str r2, [r3, r7]
20335
-.L3420:
20336
- ldr r3, [r4, #-1484]
20337
- add r2, r3, r7
20338
- ldr r3, [r3, r7]
20339
- cmn r3, #1
20340
- bne .L3451
20341
- ldr r0, [r2, #4]
20686
+ str r2, [r3, r6]
20687
+.L3338:
20688
+ ldr r2, [r4, #-1480]
20689
+ add r3, r2, r6
20690
+ ldr r2, [r2, r6]
20691
+ ldr r0, [r3, #4]
20692
+ cmn r2, #1
20693
+ beq .L3342
20694
+ cmp r7, #0
20695
+ mov r2, #1
20696
+ orrne r0, r0, #-2147483648
20697
+ add r1, sp, #4
20698
+ str r0, [sp, #4]
20699
+ ldr r0, [r3, #16]
20700
+ bl log2phys
20701
+ ldr r3, [r4, #-1480]
20702
+ add r6, r3, r6
20703
+ ldr r3, [r6, #12]
20704
+ ldr r0, [r3, #12]
20705
+ cmn r0, #1
20706
+ beq .L3345
20707
+ ubfx r0, r0, #10, #16
20708
+ bl P2V_block_in_plane
20709
+ ldr r2, [r4, #-1404]
20710
+ lsl r3, r0, #1
20711
+ mov r6, r0
20712
+ ldrh r2, [r2, r3]
20713
+ cmp r2, #0
20714
+ bne .L3346
20715
+ mov r1, r0
20716
+ mov r0, r10
20717
+ bl printk
20718
+.L3346:
20719
+ mov r0, r6
20720
+ bl decrement_vpc_count
20721
+.L3345:
20722
+ add r8, r8, #1
20723
+ b .L3332
20724
+.L3342:
2034220725 ubfx r0, r0, #10, #16
2034320726 bl P2V_block_in_plane
2034420727 ldrh r3, [r5]
2034520728 cmp r3, r0
20346
- bne .L3421
20347
- ldr r1, [r10, #-1408]
20348
- mov r3, r3, asl #1
20729
+ bne .L3339
20730
+ ldr r1, [r4, #-1404]
20731
+ lsl r3, r3, #1
2034920732 ldrh r0, [r5, #4]
2035020733 ldrh r2, [r1, r3]
20351
- rsb r2, r0, r2
20734
+ sub r2, r2, r0
2035220735 strh r2, [r1, r3] @ movhi
20353
- ldr r3, .L3452+16
20354
- strb fp, [r5, #6]
20355
- strh fp, [r5, #4] @ movhi
20736
+ ldr r3, .L3368+12
20737
+ strb r9, [r5, #6]
20738
+ strh r9, [r5, #4] @ movhi
2035620739 ldrh r3, [r3]
2035720740 strh r3, [r5, #2] @ movhi
20358
-.L3421:
20741
+.L3339:
2035920742 ldrh r3, [r5, #4]
2036020743 cmp r3, #0
20361
- bne .L3422
20744
+ bne .L3340
2036220745 mov r0, r5
2036320746 bl allocate_new_data_superblock
20364
-.L3422:
20365
- ldr r3, [r8, #1308]
20747
+.L3340:
20748
+ ldr r3, [r4, #1300]
2036620749 add r3, r3, #1
20367
- str r3, [r8, #1308]
20368
- ldr r3, [r4, #-1484]
20369
- add r3, r3, r7
20750
+ str r3, [r4, #1300]
20751
+ ldr r3, [r4, #-1480]
20752
+ add r3, r3, r6
2037020753 ldr r0, [r3, #4]
2037120754 ubfx r0, r0, #10, #16
2037220755 bl FtlGcMarkBadPhyBlk
2037320756 mov r0, r5
2037420757 bl get_new_active_ppa
20375
- ldr r3, [r4, #-1484]
20376
- mov r1, #1
20377
- mov r2, r6
20378
- add r3, r3, r7
20758
+ ldr r3, [r4, #-1480]
20759
+ mov r2, r0
2037920760 str r0, [sp, #4]
20380
- str r0, [r3, #4]
20381
- mov r0, r3
20761
+ mov r1, #1
20762
+ add r0, r3, r6
20763
+ str r2, [r0, #4]
20764
+ mov r2, r7
2038220765 ldrb r3, [r5, #9] @ zero_extendqisi2
2038320766 bl FlashProgPages
20384
- ldr r3, [r4, #-1484]
20385
- ldr r3, [r3, r7]
20767
+ ldr r3, [r4, #-1480]
20768
+ ldr r3, [r3, r6]
2038620769 cmn r3, #1
20387
- moveq r3, #1
20388
- streq r3, [r10, #-1280]
20770
+ streq fp, [r4, #-1280]
2038920771 ldr r3, [r4, #-1280]
2039020772 cmp r3, #0
20391
- beq .L3420
20392
- b .L3410
20393
-.L3451:
20394
- ldr r3, [r2, #4]
20395
- cmp r6, #0
20396
- ldr r0, [r2, #16]
20397
- add r1, sp, #4
20398
- mov r2, #1
20399
- orrne r3, r3, #-2147483648
20400
- str r3, [sp, #4]
20401
- bl log2phys
20402
- ldr r3, [r4, #-1484]
20403
- add r7, r3, r7
20404
- ldr r3, [r7, #12]
20405
- ldr r0, [r3, #12]
20406
- cmn r0, #1
20407
- beq .L3427
20408
- ubfx r0, r0, #10, #16
20409
- bl P2V_block_in_plane
20410
- ldr r2, [r10, #-1408]
20411
- mov r3, r0, asl #1
20412
- mov r7, r0
20413
- ldrh r2, [r2, r3]
20414
- cmp r2, #0
20415
- bne .L3428
20416
- ldr r0, .L3452+8
20417
- mov r1, r7
20418
- bl printk
20419
-.L3428:
20420
- mov r0, r7
20421
- bl decrement_vpc_count
20422
-.L3427:
20423
- add r9, r9, #1
20424
- b .L3414
20425
-.L3410:
20426
- mov r0, #0
20427
- add sp, sp, #12
20428
- @ sp needed
20429
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
20430
-.L3453:
20773
+ beq .L3338
20774
+ b .L3327
20775
+.L3369:
2043120776 .align 2
20432
-.L3452:
20777
+.L3368:
2043320778 .word .LANCHOR2
20434
- .word .LANCHOR4
2043520779 .word .LC160
20436
- .word .LANCHOR2-1526
20437
- .word .LANCHOR2-1668
20780
+ .word .LANCHOR2-1522
20781
+ .word .LANCHOR2-1666
2043820782 .fnend
2043920783 .size FtlCacheWriteBack, .-FtlCacheWriteBack
2044020784 .align 2
2044120785 .global FtlSysFlush
20786
+ .syntax unified
20787
+ .arm
20788
+ .fpu softvfp
2044220789 .type FtlSysFlush, %function
2044320790 FtlSysFlush:
2044420791 .fnstart
2044520792 @ args = 0, pretend = 0, frame = 0
2044620793 @ frame_needed = 0, uses_anonymous_args = 0
20447
- ldr r3, .L3458
20794
+ ldr r3, .L3376
2044820795 ldr r3, [r3, #-1280]
2044920796 cmp r3, #0
20450
- bne .L3457
20451
- ldr r3, .L3458+4
20452
- stmfd sp!, {r4, lr}
20797
+ bne .L3373
20798
+ ldr r3, .L3376+4
20799
+ push {r4, lr}
2045320800 .save {r4, lr}
20454
- ldr r4, [r3, #3444]
20801
+ ldr r4, [r3, #3440]
2045520802 cmp r4, #1
20456
- bne .L3455
20803
+ bne .L3371
2045720804 bl FtlCacheWriteBack
2045820805 bl l2p_flush
2045920806 mov r0, r4
2046020807 bl FtlEctTblFlush
2046120808 bl FtlVpcTblFlush
20462
-.L3455:
20809
+.L3371:
2046320810 mov r0, #0
20464
- ldmfd sp!, {r4, pc}
20465
-.L3457:
20811
+ pop {r4, pc}
20812
+.L3373:
2046620813 mov r0, #0
2046720814 bx lr
20468
-.L3459:
20815
+.L3377:
2046920816 .align 2
20470
-.L3458:
20817
+.L3376:
2047120818 .word .LANCHOR2
2047220819 .word .LANCHOR1
2047320820 .fnend
2047420821 .size FtlSysFlush, .-FtlSysFlush
2047520822 .align 2
2047620823 .global FtlDeInit
20824
+ .syntax unified
20825
+ .arm
20826
+ .fpu softvfp
2047720827 .type FtlDeInit, %function
2047820828 FtlDeInit:
2047920829 .fnstart
2048020830 @ args = 0, pretend = 0, frame = 0
2048120831 @ frame_needed = 0, uses_anonymous_args = 0
20482
- stmfd sp!, {r3, lr}
20483
- .save {r3, lr}
20484
- ldr r3, .L3463
20485
- ldr r3, [r3, #3444]
20832
+ ldr r3, .L3384
20833
+ ldr r3, [r3, #3440]
2048620834 cmp r3, #1
20487
- bne .L3461
20835
+ bne .L3381
20836
+ push {r4, lr}
20837
+ .save {r4, lr}
2048820838 bl FtlSysFlush
20489
-.L3461:
2049020839 mov r0, #0
20491
- ldmfd sp!, {r3, pc}
20492
-.L3464:
20840
+ pop {r4, pc}
20841
+.L3381:
20842
+ mov r0, #0
20843
+ bx lr
20844
+.L3385:
2049320845 .align 2
20494
-.L3463:
20846
+.L3384:
2049520847 .word .LANCHOR1
2049620848 .fnend
2049720849 .size FtlDeInit, .-FtlDeInit
2049820850 .align 2
2049920851 .global ftl_deinit
20852
+ .syntax unified
20853
+ .arm
20854
+ .fpu softvfp
2050020855 .type ftl_deinit, %function
2050120856 ftl_deinit:
2050220857 .fnstart
2050320858 @ args = 0, pretend = 0, frame = 0
2050420859 @ frame_needed = 0, uses_anonymous_args = 0
20505
- stmfd sp!, {r3, lr}
20506
- .save {r3, lr}
20860
+ push {r4, lr}
20861
+ .save {r4, lr}
2050720862 bl ftl_flash_de_init
2050820863 bl FtlDeInit
20509
- ldmfd sp!, {r3, lr}
20864
+ pop {r4, lr}
2051020865 b ftl_flash_de_init
2051120866 .fnend
2051220867 .size ftl_deinit, .-ftl_deinit
2051320868 .align 2
2051420869 .global ftl_cache_flush
20870
+ .syntax unified
20871
+ .arm
20872
+ .fpu softvfp
2051520873 .type ftl_cache_flush, %function
2051620874 ftl_cache_flush:
2051720875 .fnstart
....@@ -20523,393 +20881,387 @@
2052320881 .size ftl_cache_flush, .-ftl_cache_flush
2052420882 .align 2
2052520883 .global ftl_discard
20884
+ .syntax unified
20885
+ .arm
20886
+ .fpu softvfp
2052620887 .type ftl_discard, %function
2052720888 ftl_discard:
2052820889 .fnstart
2052920890 @ args = 0, pretend = 0, frame = 8
2053020891 @ frame_needed = 0, uses_anonymous_args = 0
20531
- stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
20532
- .save {r4, r5, r6, r7, r8, lr}
20533
- .pad #8
20534
- mov r6, r0
20535
- ldr r5, .L3486
20536
- mov r4, r1
20537
- ldr r3, [r5, #-2740]
20538
- cmp r1, r3
20539
- cmpls r0, r3
20540
- bcs .L3477
20892
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
20893
+ .save {r4, r5, r6, r7, r8, r9, lr}
20894
+ .pad #12
20895
+ ldr r4, .L3406
20896
+ ldr r3, [r4, #-2736]
20897
+ cmp r3, r1
20898
+ cmpcs r3, r0
20899
+ bls .L3398
2054120900 add r2, r0, r1
20542
- cmp r2, r3
20543
- bhi .L3477
20544
- cmp r1, #31
20545
- bhi .L3470
20546
-.L3471:
20547
- mov r0, #0
20548
- b .L3469
20549
-.L3470:
20550
- ldr r3, [r5, #-1280]
20551
- cmp r3, #0
20552
- bne .L3471
20553
- sub r5, r5, #1648
20554
- bl FtlCacheWriteBack
20555
- mov r0, r6
20556
- ldrh r5, [r5, #-14]
20557
- mov r1, r5
20558
- bl __aeabi_uidiv
20559
- smulbb r3, r0, r5
2056020901 mov r7, r0
20561
- rsb r6, r3, r6
20562
- uxth r6, r6
20563
- cmp r6, #0
20564
- beq .L3472
20565
- rsb r5, r6, r5
20566
- add r7, r0, #1
20567
- cmp r5, r4
20568
- movcs r5, r4
20569
- uxth r5, r5
20570
- rsb r4, r5, r4
20571
-.L3472:
20572
- ldr r5, .L3486+4
20573
- mvn r3, #0
20574
- ldr r8, .L3486
20575
- str r3, [sp, #4]
20576
- mov r6, r5
20577
-.L3473:
20578
- ldrh r3, [r5]
20579
- cmp r4, r3
20580
- bcc .L3485
20902
+ cmp r3, r2
20903
+ mov r5, r1
20904
+ bcc .L3398
20905
+ cmp r1, #31
20906
+ bhi .L3391
20907
+.L3392:
20908
+ mov r0, #0
20909
+.L3389:
20910
+ add sp, sp, #12
20911
+ @ sp needed
20912
+ pop {r4, r5, r6, r7, r8, r9, pc}
20913
+.L3391:
20914
+ ldr r3, [r4, #-1280]
20915
+ cmp r3, #0
20916
+ bne .L3392
20917
+ sub r9, r4, #1648
20918
+ bl FtlCacheWriteBack
20919
+ ldrh r6, [r9, #-12]
2058120920 mov r0, r7
20582
- mov r1, sp
20921
+ mov r1, r6
20922
+ bl __aeabi_uidiv
20923
+ smulbb r3, r0, r6
20924
+ mov r8, r0
20925
+ sub r7, r7, r3
20926
+ uxth r7, r7
20927
+ cmp r7, #0
20928
+ beq .L3393
20929
+ sub r6, r6, r7
20930
+ add r8, r0, #1
20931
+ cmp r6, r5
20932
+ movcs r6, r5
20933
+ uxth r6, r6
20934
+ sub r5, r5, r6
20935
+.L3393:
20936
+ mvn r3, #0
20937
+ str r3, [sp, #4]
20938
+.L3394:
20939
+ ldrh r3, [r9, #-12]
20940
+ cmp r5, r3
20941
+ bcs .L3396
20942
+ ldr r3, [r4, #1944]
20943
+ cmp r3, #32
20944
+ bls .L3392
20945
+ mov r5, #0
20946
+ str r5, [r4, #1944]
20947
+ bl l2p_flush
20948
+ bl FtlVpcTblFlush
20949
+ b .L3392
20950
+.L3396:
2058320951 mov r2, #0
20952
+ mov r1, sp
20953
+ mov r0, r8
2058420954 bl log2phys
2058520955 ldr r3, [sp]
2058620956 cmn r3, #1
20587
- beq .L3474
20588
- ldr r2, .L3486+8
20589
- add r1, sp, #4
20590
- mov r0, r7
20591
- ldr r3, [r2, #1952]
20592
- add r3, r3, #1
20593
- str r3, [r2, #1952]
20594
- ldr r3, [r8, #-1600]
20957
+ beq .L3395
20958
+ ldr r3, [r4, #1944]
2059520959 mov r2, #1
20960
+ add r1, sp, #4
20961
+ mov r0, r8
2059620962 add r3, r3, #1
20597
- str r3, [r8, #-1600]
20963
+ str r3, [r4, #1944]
20964
+ ldr r3, [r4, #-1596]
20965
+ add r3, r3, #1
20966
+ str r3, [r4, #-1596]
2059820967 bl log2phys
2059920968 ldr r0, [sp]
2060020969 ubfx r0, r0, #10, #16
2060120970 bl P2V_block_in_plane
2060220971 bl decrement_vpc_count
20603
-.L3474:
20604
- ldrh r3, [r6]
20605
- add r7, r7, #1
20606
- rsb r4, r3, r4
20607
- b .L3473
20608
-.L3485:
20609
- ldr r3, .L3486+8
20610
- ldr r2, [r3, #1952]
20611
- cmp r2, #32
20612
- bls .L3471
20613
- mov r4, #0
20614
- str r4, [r3, #1952]
20615
- bl l2p_flush
20616
- bl FtlVpcTblFlush
20617
- b .L3471
20618
-.L3477:
20972
+.L3395:
20973
+ ldrh r3, [r9, #-12]
20974
+ add r8, r8, #1
20975
+ sub r5, r5, r3
20976
+ b .L3394
20977
+.L3398:
2061920978 mvn r0, #0
20620
-.L3469:
20621
- add sp, sp, #8
20622
- @ sp needed
20623
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
20624
-.L3487:
20979
+ b .L3389
20980
+.L3407:
2062520981 .align 2
20626
-.L3486:
20982
+.L3406:
2062720983 .word .LANCHOR2
20628
- .word .LANCHOR2-1662
20629
- .word .LANCHOR4
2063020984 .fnend
2063120985 .size ftl_discard, .-ftl_discard
2063220986 .align 2
2063320987 .global FtlGcFreeTempBlock
20988
+ .syntax unified
20989
+ .arm
20990
+ .fpu softvfp
2063420991 .type FtlGcFreeTempBlock, %function
2063520992 FtlGcFreeTempBlock:
2063620993 .fnstart
20637
- @ args = 0, pretend = 0, frame = 16
20994
+ @ args = 0, pretend = 0, frame = 8
2063820995 @ frame_needed = 0, uses_anonymous_args = 0
20639
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
20996
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
2064020997 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
20641
- .pad #20
20642
- sub sp, sp, #20
20643
- ldr r6, .L3527
20644
- sub r9, r6, #1664
20645
- ldr r8, [r6, #-1280]
20646
- ldrh r1, [r9, #-4]
20647
- cmp r8, #0
20648
- bne .L3525
20649
- add r4, r6, #980
20650
- mov r5, r6
20651
- movw ip, #65535
20652
- ldrh r6, [r4]
20653
- cmp r6, ip
20654
- bne .L3491
20655
-.L3500:
20656
- ldrh r2, [r4]
20998
+ .pad #12
20999
+ ldr r4, .L3447
21000
+ ldr ip, [r4, #-1280]
21001
+ sub r7, r4, #1664
21002
+ ldrh r1, [r7, #-2]
21003
+ cmp ip, #0
21004
+ beq .L3409
21005
+.L3445:
21006
+ mov r0, #0
21007
+.L3408:
21008
+ add sp, sp, #12
21009
+ @ sp needed
21010
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
21011
+.L3409:
21012
+ add r5, r4, #980
21013
+ movw lr, #65535
21014
+ ldrh r6, [r5]
21015
+ cmp r6, lr
21016
+ bne .L3411
21017
+.L3420:
21018
+ ldrh r2, [r5]
2065721019 movw r3, #65535
20658
- ldr r6, .L3527+4
20659
- mov r7, #0
20660
- ldr r8, .L3527
21020
+ mov r6, #0
21021
+ str r6, [r4, #1748]
2066121022 cmp r2, r3
20662
- str r7, [r6, #1756]
20663
- add r10, r8, #980
20664
- beq .L3525
21023
+ beq .L3445
2066521024 bl FtlCacheWriteBack
20666
- ldrh r2, [r9, #-4]
20667
- ldrb r0, [r8, #987] @ zero_extendqisi2
20668
- ldrh r3, [r10]
21025
+ ldrb r2, [r4, #987] @ zero_extendqisi2
2066921026 mov r10, #12
20670
- ldr r1, [r8, #-1408]
20671
- smulbb r2, r0, r2
20672
- mov r3, r3, asl #1
20673
- ldr r9, .L3527+8
21027
+ ldrh r0, [r7, #-2]
21028
+ ldrh r3, [r5]
21029
+ ldr r1, [r4, #-1404]
21030
+ ldr r9, .L3447+4
21031
+ smulbb r2, r2, r0
21032
+ lsl r3, r3, #1
2067421033 strh r2, [r1, r3] @ movhi
20675
- movw r3, #1766
20676
- ldr r2, [r8, #-1608]
20677
- ldrh r3, [r6, r3]
21034
+ movw r3, #1758
21035
+ ldr r2, [r4, #-1604]
21036
+ ldrh r3, [r4, r3]
2067821037 add r3, r3, r2
20679
- str r3, [r8, #-1608]
20680
- b .L3501
20681
-.L3491:
21038
+ str r3, [r4, #-1604]
21039
+.L3421:
21040
+ ldrh r2, [r9]
21041
+ uxth r3, r6
21042
+ cmp r2, r3
21043
+ bhi .L3425
21044
+ movw r0, #65535
21045
+ bl decrement_vpc_count
21046
+ ldrb r3, [r4, #-2740] @ zero_extendqisi2
21047
+ cmp r3, #0
21048
+ beq .L3426
21049
+ ldrh r1, [r5]
21050
+ ldr r0, .L3447+8
21051
+ bl printk
21052
+.L3426:
21053
+ ldrh r0, [r5]
21054
+ ldr r2, [r4, #-1404]
21055
+ lsl r3, r0, #1
21056
+ ldrh r3, [r2, r3]
21057
+ cmp r3, #0
21058
+ beq .L3427
21059
+ bl INSERT_DATA_LIST
21060
+.L3428:
21061
+ mvn r6, #0
21062
+ movw r3, #1758
21063
+ strh r6, [r5] @ movhi
21064
+ mov r5, #0
21065
+ strh r5, [r4, r3] @ movhi
21066
+ movw r3, #1756
21067
+ strh r5, [r4, r3] @ movhi
21068
+ bl l2p_flush
21069
+ bl FtlVpcTblFlush
21070
+ movw r3, #1156
21071
+ strh r6, [r4, r3] @ movhi
21072
+ ldr r3, [r4, #-1868]
21073
+ cmp r3, r5
21074
+ ldr r3, .L3447+12
21075
+ add r2, r3, #272
21076
+ ldrh r2, [r2]
21077
+ beq .L3429
21078
+ ldr r1, [r4, #-1564]
21079
+ cmp r1, #39
21080
+ bhi .L3429
21081
+ ldrh r1, [r3]
21082
+ cmp r1, r2
21083
+ subcc r3, r3, #2400
21084
+ lslcc r2, r2, #1
21085
+ bcs .L3445
21086
+.L3446:
21087
+ strh r2, [r3, #-8] @ movhi
21088
+ b .L3445
21089
+.L3411:
2068221090 cmp r0, #0
20683
- beq .L3494
20684
- ldr r2, .L3527+12
20685
- movw r3, #3448
21091
+ beq .L3414
21092
+ ldr r2, .L3447+16
21093
+ movw r3, #3444
2068621094 ldrh r0, [r2, r3]
20687
- cmp r0, ip
20688
- beq .L3495
20689
-.L3496:
21095
+ cmp r0, lr
21096
+ beq .L3415
21097
+.L3416:
2069021098 mov r1, #2
20691
- b .L3494
20692
-.L3495:
20693
- strh r8, [r2, r3] @ movhi
20694
- add r3, r5, #880
20695
- ldrh r3, [r3]
20696
- cmp r3, #17
20697
- bhi .L3496
20698
-.L3494:
20699
- ldr r7, .L3527
20700
- add r0, r7, #980
21099
+.L3414:
21100
+ ldr r0, .L3447+20
2070121101 bl FtlGcScanTempBlk
2070221102 cmn r0, #1
20703
- str r0, [sp, #12]
20704
- beq .L3497
20705
- ldr r2, [r7, #-1416]
20706
- mov r6, r6, asl #1
21103
+ str r0, [sp, #4]
21104
+ beq .L3417
21105
+ ldr r2, [r4, #-1412]
21106
+ lsl r6, r6, #1
2070721107 ldrh r3, [r2, r6]
2070821108 cmp r3, #4
20709
- bls .L3498
21109
+ bls .L3418
2071021110 sub r3, r3, #5
2071121111 mov r0, #1
2071221112 strh r3, [r2, r6] @ movhi
2071321113 bl FtlEctTblFlush
20714
-.L3498:
20715
- ldr r4, .L3527+4
20716
- ldr r3, [r4, #1756]
21114
+.L3418:
21115
+ ldr r3, [r4, #1748]
2071721116 cmp r3, #0
20718
- bne .L3499
20719
- ldr r0, [sp, #12]
20720
- ldr r3, [r4, #1308]
20721
- ubfx r0, r0, #10, #16
21117
+ bne .L3419
21118
+ ldr r3, [r4, #1300]
21119
+ ldr r0, [sp, #4]
2072221120 add r3, r3, #1
20723
- str r3, [r4, #1308]
21121
+ ubfx r0, r0, #10, #16
21122
+ str r3, [r4, #1300]
2072421123 bl FtlBbmMapBadBlock
2072521124 bl FtlBbmTblFlush
20726
-.L3499:
21125
+.L3419:
2072721126 mov r3, #0
20728
- str r3, [r4, #1756]
20729
- b .L3511
20730
-.L3497:
20731
- ldr r2, .L3527+12
20732
- movw r3, #3448
21127
+ str r3, [r4, #1748]
21128
+.L3431:
21129
+ mov r0, #1
21130
+ b .L3408
21131
+.L3415:
21132
+ strh ip, [r2, r3] @ movhi
21133
+ add r3, r4, #880
21134
+ ldrh r3, [r3]
21135
+ cmp r3, #17
21136
+ bhi .L3416
21137
+ b .L3414
21138
+.L3417:
21139
+ ldr r2, .L3447+16
21140
+ movw r3, #3444
2073321141 ldrh r2, [r2, r3]
2073421142 movw r3, #65535
2073521143 cmp r2, r3
20736
- bne .L3511
20737
- b .L3500
20738
-.L3504:
20739
- ldr r3, [fp, #4]
20740
- cmp r0, r3
20741
- bne .L3523
20742
-.L3503:
20743
- add r7, r7, #1
20744
-.L3501:
20745
- ldrh r3, [r9]
20746
- uxth r8, r7
20747
- cmp r3, r8
20748
- bls .L3526
21144
+ bne .L3431
21145
+ b .L3420
21146
+.L3425:
21147
+ uxth r8, r6
21148
+ ldr fp, [r4, #-1504]
21149
+ ldr r3, [r4, #-1284]
2074921150 mul r8, r10, r8
20750
- ldr r3, [r5, #-1508]
20751
- ldr r2, [r5, #-1284]
20752
- add fp, r3, r8
20753
- ldr r0, [fp, #8]
20754
- cmp r0, r2
20755
- bcs .L3523
20756
- add r1, sp, #12
20757
- mov r2, #0
20758
- str r3, [sp, #4]
20759
- bl log2phys
20760
- ldr r3, [sp, #4]
20761
- ldr r0, [sp, #12]
20762
- ldr r3, [r3, r8]
21151
+ add r7, fp, r8
21152
+ ldr r0, [r7, #8]
2076321153 cmp r0, r3
20764
- bne .L3504
21154
+ bcc .L3422
21155
+.L3443:
21156
+ ldrh r0, [r5]
21157
+ b .L3444
21158
+.L3422:
21159
+ mov r2, #0
21160
+ add r1, sp, #4
21161
+ bl log2phys
21162
+ ldr r0, [fp, r8]
21163
+ ldr r3, [sp, #4]
21164
+ cmp r0, r3
21165
+ bne .L3424
2076521166 ubfx r0, r0, #10, #16
2076621167 bl P2V_block_in_plane
20767
- add r1, fp, #4
2076821168 mov r2, #1
2076921169 mov r8, r0
20770
- ldr r0, [fp, #8]
21170
+ add r1, r7, #4
21171
+ ldr r0, [r7, #8]
2077121172 bl log2phys
2077221173 mov r0, r8
20773
- b .L3524
20774
-.L3523:
20775
- ldrh r0, [r4]
20776
-.L3524:
21174
+.L3444:
2077721175 bl decrement_vpc_count
20778
- b .L3503
20779
-.L3526:
20780
- movw r0, #65535
20781
- bl decrement_vpc_count
20782
- ldrb r3, [r5, #-2744] @ zero_extendqisi2
20783
- cmp r3, #0
20784
- beq .L3506
20785
- ldr r0, .L3527+16
20786
- ldrh r1, [r4]
20787
- bl printk
20788
-.L3506:
20789
- ldrh r0, [r4]
20790
- ldr r2, [r5, #-1408]
20791
- mov r3, r0, asl #1
20792
- ldrh r3, [r2, r3]
20793
- cmp r3, #0
20794
- beq .L3507
20795
- bl INSERT_DATA_LIST
20796
- b .L3508
20797
-.L3507:
21176
+ b .L3423
21177
+.L3424:
21178
+ ldr r2, [r7, #4]
21179
+ cmp r3, r2
21180
+ bne .L3443
21181
+.L3423:
21182
+ add r6, r6, #1
21183
+ b .L3421
21184
+.L3427:
2079821185 bl INSERT_FREE_LIST
20799
-.L3508:
20800
- movw r3, #1766
20801
- mvn r8, #0
20802
- strh r8, [r4] @ movhi
20803
- mov r4, #0
20804
- strh r4, [r6, r3] @ movhi
20805
- movw r3, #1764
20806
- strh r4, [r6, r3] @ movhi
20807
- bl l2p_flush
20808
- bl FtlVpcTblFlush
20809
- movw r3, #1164
20810
- strh r8, [r6, r3] @ movhi
20811
- ldr r3, [r5, #-1872]
20812
- ldr r7, .L3527
20813
- cmp r3, r4
20814
- add r1, r7, #880
20815
- beq .L3509
20816
- ldr r3, [r7, #-1568]
20817
- cmp r3, #39
20818
- bhi .L3509
20819
- ldr r2, .L3527+4
20820
- movw r3, #1160
20821
- ldrh r3, [r2, r3]
20822
- ldrh r2, [r1]
20823
- cmp r2, r3
20824
- subcc r7, r7, #1520
20825
- movcc r3, r3, asl #1
20826
- strcch r3, [r7, #-12] @ movhi
20827
- b .L3525
20828
-.L3509:
20829
- movw r3, #1160
20830
- ldrh r1, [r1]
20831
- ldrh r2, [r6, r3]
20832
- ldr r3, .L3527
20833
- add r0, r2, r2, asl #1
20834
- cmp r1, r0, asr #2
20835
- ble .L3525
20836
- ldrb r0, [r3, #-2744] @ zero_extendqisi2
20837
- sub r3, r3, #1520
21186
+ b .L3428
21187
+.L3429:
21188
+ ldrh r3, [r3]
21189
+ add r1, r2, r2, lsl #1
21190
+ cmp r3, r1, asr #2
21191
+ ble .L3445
21192
+ ldrb r0, [r4, #-2740] @ zero_extendqisi2
21193
+ ldr r3, .L3447+24
2083821194 cmp r0, #0
2083921195 moveq r2, #20
20840
- streqh r2, [r3, #-12] @ movhi
20841
- beq .L3490
21196
+ strheq r2, [r3, #-8] @ movhi
21197
+ beq .L3408
2084221198 sub r2, r2, #2
20843
- strh r2, [r3, #-12] @ movhi
20844
-.L3525:
20845
- mov r0, #0
20846
- b .L3490
20847
-.L3511:
20848
- mov r0, #1
20849
-.L3490:
20850
- add sp, sp, #20
20851
- @ sp needed
20852
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
20853
-.L3528:
21199
+ b .L3446
21200
+.L3448:
2085421201 .align 2
20855
-.L3527:
21202
+.L3447:
2085621203 .word .LANCHOR2
20857
- .word .LANCHOR4
20858
- .word .LANCHOR4+1766
20859
- .word .LANCHOR1
21204
+ .word .LANCHOR2+1758
2086021205 .word .LC161
21206
+ .word .LANCHOR2+880
21207
+ .word .LANCHOR1
21208
+ .word .LANCHOR2+980
21209
+ .word .LANCHOR2-1520
2086121210 .fnend
2086221211 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
2086321212 .align 2
2086421213 .global FtlGcPageRecovery
21214
+ .syntax unified
21215
+ .arm
21216
+ .fpu softvfp
2086521217 .type FtlGcPageRecovery, %function
2086621218 FtlGcPageRecovery:
2086721219 .fnstart
2086821220 @ args = 0, pretend = 0, frame = 0
2086921221 @ frame_needed = 0, uses_anonymous_args = 0
20870
- stmfd sp!, {r3, r4, r5, lr}
20871
- .save {r3, r4, r5, lr}
20872
- ldr r4, .L3532
20873
- ldr r5, .L3532+4
20874
- mov r0, r4
20875
- ldrh r1, [r5, #-4]
21222
+ push {r4, r5, r6, lr}
21223
+ .save {r4, r5, r6, lr}
21224
+ ldr r4, .L3452
21225
+ sub r5, r4, #1664
21226
+ add r6, r4, #980
21227
+ ldrh r1, [r5, #-2]
21228
+ mov r0, r6
2087621229 bl FtlGcScanTempBlk
20877
- ldrh r2, [r4, #2]
20878
- ldrh r3, [r5, #-4]
21230
+ ldrh r2, [r6, #2]
21231
+ ldrh r3, [r5, #-2]
2087921232 cmp r2, r3
20880
- ldmccfd sp!, {r3, r4, r5, pc}
20881
- add r0, r4, #48
21233
+ popcc {r4, r5, r6, pc}
21234
+ add r0, r6, #48
2088221235 bl FtlMapBlkWriteDumpData
2088321236 mov r0, #0
2088421237 bl FtlGcFreeTempBlock
20885
- ldr r3, .L3532+8
20886
- mov r2, #0
20887
- str r2, [r3, #1756]
20888
- ldmfd sp!, {r3, r4, r5, pc}
20889
-.L3533:
21238
+ mov r3, #0
21239
+ str r3, [r4, #1748]
21240
+ pop {r4, r5, r6, pc}
21241
+.L3453:
2089021242 .align 2
20891
-.L3532:
20892
- .word .LANCHOR2+980
20893
- .word .LANCHOR2-1664
20894
- .word .LANCHOR4
21243
+.L3452:
21244
+ .word .LANCHOR2
2089521245 .fnend
2089621246 .size FtlGcPageRecovery, .-FtlGcPageRecovery
2089721247 .align 2
2089821248 .global FtlPowerLostRecovery
21249
+ .syntax unified
21250
+ .arm
21251
+ .fpu softvfp
2089921252 .type FtlPowerLostRecovery, %function
2090021253 FtlPowerLostRecovery:
2090121254 .fnstart
2090221255 @ args = 0, pretend = 0, frame = 0
2090321256 @ frame_needed = 0, uses_anonymous_args = 0
20904
- stmfd sp!, {r4, r5, r6, lr}
21257
+ push {r4, r5, r6, lr}
2090521258 .save {r4, r5, r6, lr}
2090621259 mov r5, #0
20907
- ldr r4, .L3536
20908
- ldr r3, .L3536+4
21260
+ ldr r4, .L3456
2090921261 add r6, r4, #884
20910
- add r4, r4, #932
21262
+ str r5, [r4, #1800]
2091121263 mov r0, r6
20912
- str r5, [r3, #1808]
21264
+ add r4, r4, #932
2091321265 bl FtlRecoverySuperblock
2091421266 mov r0, r6
2091521267 bl FtlSlcSuperblockCheck
....@@ -20921,47 +21273,50 @@
2092121273 movw r0, #65535
2092221274 bl decrement_vpc_count
2092321275 mov r0, r5
20924
- ldmfd sp!, {r4, r5, r6, pc}
20925
-.L3537:
21276
+ pop {r4, r5, r6, pc}
21277
+.L3457:
2092621278 .align 2
20927
-.L3536:
21279
+.L3456:
2092821280 .word .LANCHOR2
20929
- .word .LANCHOR4
2093021281 .fnend
2093121282 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery
2093221283 .align 2
2093321284 .global FtlSysBlkInit
21285
+ .syntax unified
21286
+ .arm
21287
+ .fpu softvfp
2093421288 .type FtlSysBlkInit, %function
2093521289 FtlSysBlkInit:
2093621290 .fnstart
2093721291 @ args = 0, pretend = 0, frame = 0
2093821292 @ frame_needed = 0, uses_anonymous_args = 0
20939
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
21293
+ push {r4, r5, r6, r7, r8, lr}
2094021294 .save {r4, r5, r6, r7, r8, lr}
20941
- movw r3, #1804
20942
- ldr r7, .L3556
2094321295 mov r2, #0
20944
- ldr r4, .L3556+4
20945
- strh r2, [r7, r3] @ movhi
20946
- movw r3, #1802
21296
+ ldr r4, .L3476
21297
+ movw r3, #1796
21298
+ strh r2, [r4, r3] @ movhi
2094721299 mvn r2, #0
20948
- strh r2, [r7, r3] @ movhi
20949
- ldr r3, [r4, #-1732]
20950
- uxth r0, r3
21300
+ movw r3, #1794
21301
+ strh r2, [r4, r3] @ movhi
21302
+ sub r3, r4, #1728
21303
+ ldrh r0, [r3]
2095121304 bl FtlFreeSysBlkQueueInit
2095221305 bl FtlScanSysBlk
2095321306 movw r3, #1128
2095421307 ldrh r2, [r4, r3]
2095521308 movw r3, #65535
2095621309 cmp r2, r3
20957
- bne .L3539
20958
-.L3541:
20959
- mvn r8, #0
20960
- b .L3540
20961
-.L3539:
21310
+ bne .L3459
21311
+.L3461:
21312
+ mvn r7, #0
21313
+.L3458:
21314
+ mov r0, r7
21315
+ pop {r4, r5, r6, r7, r8, pc}
21316
+.L3459:
2096221317 bl FtlLoadSysInfo
20963
- subs r8, r0, #0
20964
- bne .L3541
21318
+ subs r7, r0, #0
21319
+ bne .L3461
2096521320 bl FtlLoadMapInfo
2096621321 bl FtlLoadVonderInfo
2096721322 bl Ftl_load_ext_data
....@@ -20971,58 +21326,49 @@
2097121326 bl FtlPowerLostRecovery
2097221327 mov r0, #1
2097321328 bl FtlUpdateVaildLpn
20974
- sub r3, r4, #1616
2097521329 ldr r2, [r4, #-1364]
21330
+ sub r3, r4, #1616
21331
+ ldrh r1, [r3, #-10]
2097621332 mov r0, #12
20977
- ldrh r1, [r3, #-14]
20978
- mov r3, r8
20979
-.L3542:
21333
+ mov r3, r7
21334
+.L3462:
2098021335 cmp r3, r1
20981
- bge .L3547
21336
+ bge .L3467
2098221337 mla ip, r0, r3, r2
2098321338 ldr ip, [ip, #4]
2098421339 cmp ip, #0
20985
- bge .L3543
20986
-.L3547:
20987
- ldr r5, .L3556+8
21340
+ bge .L3463
21341
+.L3467:
21342
+ ldr r5, .L3476+4
2098821343 cmp r3, r1
20989
- add r6, r5, #68
2099021344 ldrh r2, [r5, #28]
21345
+ add r6, r5, #68
2099121346 add r2, r2, #1
2099221347 strh r2, [r5, #28] @ movhi
20993
- bge .L3554
20994
- b .L3544
20995
-.L3543:
20996
- add r3, r3, #1
20997
- b .L3542
20998
-.L3554:
20999
- movw r3, #1804
21000
- ldrh r3, [r7, r3]
21001
- cmp r3, #0
21002
- beq .L3548
21003
-.L3544:
21348
+ bge .L3474
21349
+.L3464:
2100421350 ldrh r3, [r6]
21005
- ldr r1, [r4, #-1408]
21006
- ldr ip, .L3556+12
21007
- mov r3, r3, asl #1
21351
+ ldr r1, [r4, #-1404]
2100821352 ldrh r0, [r6, #4]
21353
+ ldr ip, .L3476+8
21354
+ lsl r3, r3, #1
2100921355 ldrh r2, [r1, r3]
21010
- rsb r2, r0, r2
21356
+ sub r2, r2, r0
2101121357 strh r2, [r1, r3] @ movhi
21012
- ldrh r3, [ip, #-4]
2101321358 mov r2, #0
21014
- ldr lr, [r4, #-1408]
21359
+ ldrh r3, [ip, #-2]
21360
+ ldr lr, [r4, #-1404]
2101521361 strb r2, [r4, #890]
2101621362 strh r3, [r6, #2] @ movhi
21017
- ldr r3, .L3556+16
21363
+ ldr r3, .L3476+12
2101821364 strh r2, [r6, #4] @ movhi
2101921365 ldrh r1, [r3]
21020
- ldrh r7, [r3, #4]
21021
- mov r1, r1, asl #1
21366
+ ldrh r8, [r3, #4]
21367
+ lsl r1, r1, #1
2102221368 ldrh r0, [lr, r1]
21023
- rsb r0, r7, r0
21369
+ sub r0, r0, r8
2102421370 strh r0, [lr, r1] @ movhi
21025
- ldrh r1, [ip, #-4]
21371
+ ldrh r1, [ip, #-2]
2102621372 strh r2, [r3, #4] @ movhi
2102721373 strb r2, [r4, #938]
2102821374 strh r1, [r3, #2] @ movhi
....@@ -21032,1811 +21378,1784 @@
2103221378 bl l2p_flush
2103321379 bl FtlVpcTblFlush
2103421380 bl FtlVpcTblFlush
21035
-.L3548:
21381
+ b .L3468
21382
+.L3463:
21383
+ add r3, r3, #1
21384
+ b .L3462
21385
+.L3474:
21386
+ movw r3, #1796
21387
+ ldrh r3, [r4, r3]
21388
+ cmp r3, #0
21389
+ bne .L3464
21390
+.L3468:
2103621391 ldrh r0, [r6]
2103721392 movw r3, #65535
21038
- ldr r7, .L3556+20
2103921393 cmp r0, r3
21040
- beq .L3549
21041
- ldrh r3, [r7, #4]
21394
+ beq .L3469
21395
+ ldrh r3, [r6, #4]
2104221396 cmp r3, #0
21043
- bne .L3549
21044
- ldrh r3, [r7, #52]
21045
- add r4, r7, #48
21397
+ bne .L3469
21398
+ ldr r4, .L3476+12
21399
+ ldrh r3, [r4, #4]
2104621400 cmp r3, #0
21047
- bne .L3549
21401
+ bne .L3469
2104821402 bl FtlGcRefreshOpenBlock
21049
- ldrh r0, [r7, #48]
21403
+ ldrh r0, [r4]
2105021404 bl FtlGcRefreshOpenBlock
2105121405 bl FtlVpcTblFlush
21052
- mov r0, r7
21406
+ sub r0, r4, #48
2105321407 bl allocate_new_data_superblock
2105421408 mov r0, r4
2105521409 bl allocate_new_data_superblock
21056
-.L3549:
21057
- ldr r3, .L3556+24
21058
- ldrb r3, [r3] @ zero_extendqisi2
21410
+.L3469:
21411
+ ldr r3, .L3476+16
21412
+ ldrb r3, [r3, #36] @ zero_extendqisi2
2105921413 cmp r3, #0
21060
- bne .L3550
21414
+ bne .L3470
2106121415 ldrh r3, [r5, #28]
2106221416 tst r3, #31
21063
- bne .L3540
21064
-.L3550:
21417
+ bne .L3458
21418
+.L3470:
2106521419 bl FtlVpcCheckAndModify
21066
-.L3540:
21067
- mov r0, r8
21068
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
21069
-.L3557:
21420
+ b .L3458
21421
+.L3477:
2107021422 .align 2
21071
-.L3556:
21072
- .word .LANCHOR4
21423
+.L3476:
2107321424 .word .LANCHOR2
2107421425 .word .LANCHOR2+816
2107521426 .word .LANCHOR2-1664
2107621427 .word .LANCHOR2+932
21077
- .word .LANCHOR2+884
2107821428 .word .LANCHOR0
2107921429 .fnend
2108021430 .size FtlSysBlkInit, .-FtlSysBlkInit
2108121431 .align 2
2108221432 .global FtlLowFormat
21433
+ .syntax unified
21434
+ .arm
21435
+ .fpu softvfp
2108321436 .type FtlLowFormat, %function
2108421437 FtlLowFormat:
2108521438 .fnstart
21086
- @ args = 0, pretend = 0, frame = 16
21439
+ @ args = 0, pretend = 0, frame = 8
2108721440 @ frame_needed = 0, uses_anonymous_args = 0
21088
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
21441
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
2108921442 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
21090
- .pad #20
21091
- sub sp, sp, #20
21092
- ldr r4, .L3593
21443
+ .pad #12
21444
+ ldr r4, .L3510
2109321445 ldr r5, [r4, #-1280]
2109421446 cmp r5, #0
21095
- bne .L3560
21096
- sub r6, r4, #1632
21447
+ bne .L3480
21448
+ sub r6, r4, #1616
2109721449 mov r1, r5
21450
+ ldrh r2, [r6, #-12]
2109821451 ldr r0, [r4, #-1372]
21099
- ldrh r2, [r6]
21100
- mov r2, r2, asl #2
21452
+ lsl r2, r2, #2
2110121453 bl ftl_memset
21102
- ldrh r2, [r6]
21454
+ ldrh r2, [r6, #-12]
2110321455 mov r1, r5
2110421456 ldr r0, [r4, #-1376]
21105
- mov r2, r2, asl #2
21457
+ lsl r2, r2, #2
2110621458 bl ftl_memset
21107
- ldr r3, [r4, #-1732]
21108
- str r5, [r4, #-1616]
21459
+ sub r3, r4, #1728
2110921460 str r5, [r4, #-1612]
21110
- uxth r0, r3
21461
+ ldrh r0, [r3]
21462
+ str r5, [r4, #-1608]
2111121463 bl FtlFreeSysBlkQueueInit
2111221464 bl FtlLoadBbt
2111321465 cmp r0, #0
21114
- beq .L3561
21466
+ beq .L3481
2111521467 bl FtlMakeBbt
21116
-.L3561:
21117
- ldr r0, .L3593
21468
+.L3481:
21469
+ ldr r0, .L3510+4
2111821470 mov r2, #0
21119
- ldr ip, .L3593+4
21120
- ldr lr, .L3593+8
21121
-.L3562:
21122
- ldrh r1, [ip]
21471
+.L3482:
21472
+ ldr r7, .L3510+8
2112321473 uxth r3, r2
2112421474 add r2, r2, #1
21125
- cmp r3, r1, asl #7
21126
- bge .L3590
21127
- ldr r5, [r0, #-1456]
21128
- mvn r1, r3
21129
- orr r1, r3, r1, asl #16
21130
- str r1, [r5, r3, asl #2]
21131
- ldr r1, [r0, #-1452]
21132
- str lr, [r1, r3, asl #2]
21133
- b .L3562
21134
-.L3590:
21135
- ldr r9, .L3593+12
21136
- mov r7, #0
21137
- add r10, r9, #2
21138
- ldrh r5, [r9]
21139
-.L3564:
21140
- ldrh r3, [r10]
21141
- ldr r6, .L3593
21142
- cmp r3, r5
21143
- ldr r8, .L3593+16
21144
- bls .L3591
21475
+ ldrh r1, [r7]
21476
+ cmp r3, r1, lsl #7
21477
+ blt .L3483
21478
+ sub r7, r7, #52
21479
+ ldrh r6, [r7, #-12]
21480
+ mov r5, #0
21481
+.L3484:
21482
+ ldrh r3, [r7, #-10]
21483
+ cmp r3, r6
21484
+ bhi .L3485
21485
+ ldr r10, .L3510+12
21486
+ sub r3, r5, #3
21487
+ ldrh r1, [r10, #-4]
21488
+ cmp r3, r1, lsl #1
21489
+ blt .L3486
2114521490 mov r0, r5
21146
- mov r1, #1
21147
- bl FtlLowFormatEraseBlock
21148
- add r5, r5, #1
21149
- uxth r5, r5
21150
- add r0, r7, r0
21151
- uxth r7, r0
21152
- b .L3564
21153
-.L3591:
21154
- ldrh r1, [r9, #-8]
21155
- sub r3, r7, #3
21156
- sub r5, r6, #1728
21157
- cmp r3, r1, asl #1
21158
- blt .L3566
21159
- mov r0, r7
21160
- mov r7, #0
21491
+ mov r5, #0
2116121492 bl __aeabi_uidiv
21162
- ldr r3, [r6, #-1636]
21493
+ ldr r3, [r4, #-1632]
2116321494 add r0, r0, r3
2116421495 uxth r0, r0
2116521496 bl FtlSysBlkNumInit
21166
- ldr r0, [r6, #-1732]
21167
- uxth r0, r0
21497
+ sub r3, r4, #1728
21498
+ ldrh r0, [r3]
2116821499 bl FtlFreeSysBlkQueueInit
21169
- ldrh r5, [r5]
21170
-.L3567:
21171
- ldrh r3, [r8]
21172
- cmp r3, r5
21173
- bls .L3566
21174
- mov r0, r5
21175
- mov r1, #1
21176
- bl FtlLowFormatEraseBlock
21177
- add r5, r5, #1
21178
- uxth r5, r5
21179
- add r0, r7, r0
21180
- uxth r7, r0
21181
- b .L3567
21182
-.L3566:
21183
- mov r5, #0
21184
- mov r6, r5
21185
-.L3569:
21186
- ldrh r1, [r9]
21187
- uxth r0, r5
21188
- ldr r10, .L3593
21189
- add r5, r5, #1
21190
- cmp r1, r0
21191
- sub r2, r10, #1728
21192
- bls .L3592
21193
- mov r1, #0
21194
- bl FtlLowFormatEraseBlock
21195
- add r0, r6, r0
21196
- uxth r6, r0
21197
- b .L3569
21198
-.L3592:
21199
- sub r5, r10, #1712
21200
- ldr ip, [r10, #-1724]
21201
- ldrh r8, [r2, #-8]
21202
- ldrh r1, [r5, #-14]
21203
- mov r0, ip
21204
- str ip, [sp, #8]
21205
- str r1, [r10, #-1544]
21206
- mov r1, r8
21207
- bl __aeabi_uidiv
21208
- movw r2, #1160
21209
- ubfx r3, r0, #5, #16
21210
- mov fp, r0
21211
- str r0, [r10, #-1284]
21212
- add r1, r3, #36
21213
- ldr r0, .L3593+20
21214
- str r5, [sp, #4]
21215
- str r3, [sp]
21216
- strh r1, [r0, r2] @ movhi
21217
- mov r1, #24
21218
- mul r1, r1, r8
21219
- mov r5, r0
21220
- ldr ip, [sp, #8]
21221
- cmp r6, r1
21222
- ble .L3571
21223
- rsb r0, r6, ip
21224
- mov r1, r8
21225
- str r2, [sp, #8]
21226
- bl __aeabi_uidiv
21227
- ldr r2, [sp, #8]
21228
- str r0, [r10, #-1284]
21229
- mov r0, r0, lsr #5
21230
- add r0, r0, #24
21231
- strh r0, [r5, r2] @ movhi
21232
-.L3571:
21233
- ldr r3, [r4, #-1872]
21234
- cmp r3, #1
21235
- bne .L3572
21236
- movw r2, #1160
21237
- mov r0, r6
21238
- ldrh r3, [r5, r2]
21239
- mov r1, r8
21240
- str r2, [sp, #12]
21241
- str r3, [sp, #8]
21242
- bl __aeabi_uidiv
21243
- ldr r3, [sp, #8]
21244
- ldr r2, [sp, #12]
21245
- uxtah r0, r3, r0
21246
- add r3, r3, r0, asr #2
21247
- strh r3, [r5, r2] @ movhi
21248
-.L3572:
21249
- ldrb r3, [r4, #-2744] @ zero_extendqisi2
21250
- cmp r3, #0
21251
- beq .L3573
21252
- movw r2, #1160
21253
- mov r0, r6
21254
- ldrh r3, [r5, r2]
21255
- mov r1, r8
21256
- str r2, [sp, #12]
21257
- str r3, [sp, #8]
21258
- bl __aeabi_uidiv
21259
- ldr r3, [sp, #8]
21260
- ldr r2, [sp, #12]
21261
- uxtah r0, r3, r0
21262
- add r3, r3, r0, asr #2
21263
- strh r3, [r5, r2] @ movhi
21264
-.L3573:
21265
- ldr ip, .L3593
21266
- sub r2, ip, #1664
21267
- ldrh r3, [r2, #-10]
21268
- cmp r3, #0
21269
- beq .L3575
21270
- movw r1, #1160
21271
- ldrh r0, [r5, r1]
21272
- add r0, r0, r3, lsr #1
21273
- strh r0, [r5, r1] @ movhi
21274
- mul r0, r8, r3
21275
- cmp r0, r6
21276
- strgt fp, [ip, #-1284]
21277
- addgt r3, r3, #32
21278
- ldrgt r0, [sp]
21279
- addgt r3, r0, r3
21280
- ldrgt r0, .L3593+20
21281
- strgth r3, [r0, r1] @ movhi
21282
-.L3575:
21283
- movw r3, #1160
21284
- ldr r10, .L3593+24
21285
- ldrh r1, [r5, r3]
21286
- ldr r3, [r4, #-1284]
21287
- rsb r3, r1, r3
21288
- mul r8, r8, r3
21289
- ldrh r3, [r2, #-4]
21290
- str r8, [r5, #1156]
21291
- mul r8, r3, r8
21292
- ldrh r3, [r10, #-14]
21293
- str r8, [r4, #-1284]
21294
- mul r8, r3, r8
21295
- str r8, [r4, #-2740]
21296
- bl FtlBbmTblFlush
21500
+ ldrh r6, [r7, #-12]
21501
+.L3487:
21502
+ ldrh r3, [r7, #-10]
21503
+ cmp r3, r6
21504
+ bhi .L3488
21505
+.L3486:
21506
+ mov r6, #0
21507
+ mov r8, r6
21508
+.L3489:
21509
+ ldrh r3, [r7, #-12]
21510
+ uxth r0, r6
21511
+ add r6, r6, #1
21512
+ cmp r3, r0
21513
+ bhi .L3490
21514
+ ldrh r3, [r7, #-10]
2129721515 ldr r2, [r4, #-1720]
21298
- add r1, r6, r7
21299
- ldrh r3, [r10, #-6]
21516
+ ldrh r6, [r10, #-4]
21517
+ str r3, [r4, #-1540]
21518
+ mov r0, r2
21519
+ str r2, [sp, #4]
21520
+ mov r1, r6
21521
+ bl __aeabi_uidiv
21522
+ ldr r3, .L3510+16
21523
+ ubfx r10, r0, #5, #16
21524
+ add r1, r10, #36
21525
+ mov fp, r0
21526
+ str r0, [r4, #-1284]
21527
+ strh r1, [r3] @ movhi
21528
+ mov r1, #24
21529
+ mul r1, r1, r6
21530
+ mov r9, r3
21531
+ cmp r8, r1
21532
+ ble .L3491
21533
+ ldr r2, [sp, #4]
21534
+ mov r1, r6
21535
+ sub r0, r2, r8
21536
+ bl __aeabi_uidiv
21537
+ str r0, [r4, #-1284]
21538
+ lsr r0, r0, #5
21539
+ add r0, r0, #24
21540
+ strh r0, [r9] @ movhi
21541
+.L3491:
21542
+ ldr r2, [r4, #-1868]
21543
+ cmp r2, #1
21544
+ bne .L3492
21545
+ ldrh r2, [r9]
21546
+ mov r1, r6
21547
+ mov r0, r8
21548
+ str r2, [sp, #4]
21549
+ bl __aeabi_uidiv
21550
+ ldr r2, [sp, #4]
21551
+ uxtah r0, r2, r0
21552
+ add r2, r2, r0, asr #2
21553
+ strh r2, [r9] @ movhi
21554
+.L3492:
21555
+ ldrb r2, [r4, #-2740] @ zero_extendqisi2
21556
+ cmp r2, #0
21557
+ beq .L3493
21558
+ ldrh r2, [r9]
21559
+ mov r1, r6
21560
+ mov r0, r8
21561
+ str r2, [sp, #4]
21562
+ bl __aeabi_uidiv
21563
+ ldr r2, [sp, #4]
21564
+ uxtah r0, r2, r0
21565
+ add r2, r2, r0, asr #2
21566
+ strh r2, [r9] @ movhi
21567
+.L3493:
21568
+ ldr r1, .L3510+20
21569
+ ldrh r2, [r1, #-8]
21570
+ cmp r2, #0
21571
+ beq .L3495
21572
+ ldrh r0, [r9]
21573
+ add r0, r0, r2, lsr #1
21574
+ strh r0, [r9] @ movhi
21575
+ mul r0, r6, r2
21576
+ cmp r8, r0
21577
+ addlt r2, r2, #32
21578
+ strlt fp, [r4, #-1284]
21579
+ addlt r2, r10, r2
21580
+ strhlt r2, [r9] @ movhi
21581
+.L3495:
21582
+ ldrh r2, [r9]
21583
+ ldr r3, [r4, #-1284]
21584
+ sub r3, r3, r2
21585
+ mul r6, r6, r3
21586
+ ldrh r3, [r1, #-2]
21587
+ str r6, [r4, #1148]
21588
+ mul r6, r6, r3
21589
+ ldr r3, .L3510+24
21590
+ ldrh r3, [r3, #-12]
21591
+ str r6, [r4, #-1284]
21592
+ mul r6, r6, r3
21593
+ str r6, [r4, #-2736]
21594
+ bl FtlBbmTblFlush
21595
+ ldr r3, .L3510+24
21596
+ add r1, r5, r8
21597
+ ldr r2, [r4, #-1716]
21598
+ ldrh r3, [r3, #-4]
2130021599 add r3, r3, r2, lsr #3
2130121600 cmp r1, r3
21302
- bls .L3577
21303
- ldr r0, .L3593+28
21304
- mov r2, r2, lsr #5
21601
+ bls .L3497
21602
+ lsr r2, r2, #5
21603
+ ldr r0, .L3510+28
2130521604 bl printk
21306
-.L3577:
21307
- ldr r3, [sp, #4]
21605
+.L3497:
21606
+ ldrh r2, [r7, #-10]
2130821607 mov r1, #0
21309
- ldr r0, [r4, #-1408]
21310
- mvn r7, #0
21311
- ldr r6, .L3593+32
21312
- ldrh r2, [r3, #-14]
21313
- sub fp, r6, #884
21314
- mov r10, r6
21315
- mov r2, r2, asl #1
21608
+ ldr r5, .L3510+32
21609
+ mvn r6, #0
21610
+ ldr r0, [r4, #-1404]
21611
+ lsl r2, r2, #1
2131621612 bl ftl_memset
21317
- movw r2, #1164
21318
- strh r7, [r5, r2] @ movhi
2131921613 mov r3, #0
21320
- ldr r2, .L3593+36
21321
- mov r1, #255
21322
- ldr r0, [r4, #-1396]
21614
+ movw r2, #1156
21615
+ strh r3, [r5, #2] @ movhi
21616
+ sub r5, r5, #272
2132321617 str r3, [r4, #1124]
21324
- strh r3, [r2, #2] @ movhi
21325
- ldrh r2, [r9]
21326
- strb r3, [r5, #1170]
21327
- strb r3, [r5, #1172]
21328
- mov r2, r2, lsr #3
21329
- strh r3, [r6, #2] @ movhi
21618
+ mov r1, #255
21619
+ strh r6, [r4, r2] @ movhi
21620
+ strb r3, [r4, #1162]
21621
+ ldrh r2, [r7, #-12]
21622
+ mov r7, r5
21623
+ strb r3, [r4, #1164]
21624
+ strh r3, [r5, #2] @ movhi
2133021625 strb r3, [r4, #890]
21331
- strh r3, [r6] @ movhi
21626
+ strh r3, [r5] @ movhi
2133221627 mov r3, #1
2133321628 strb r3, [r4, #892]
21629
+ lsr r2, r2, #3
21630
+ ldr r3, .L3510+36
21631
+ ldr r0, [r3, #32]
2133421632 bl ftl_memset
21335
-.L3578:
21336
- ldr r9, .L3593
21337
- add r8, r9, #884
21338
- mov r0, r8
21633
+.L3498:
21634
+ mov r0, r7
2133921635 bl make_superblock
2134021636 ldrb r3, [r4, #891] @ zero_extendqisi2
2134121637 cmp r3, #0
21342
- ldrh r3, [r6]
21343
- bne .L3579
21344
- ldr r2, [fp, #-1408]
21345
- mov r3, r3, asl #1
21346
- strh r7, [r2, r3] @ movhi
21347
- ldrh r3, [r10]
21638
+ ldrh r3, [r5]
21639
+ bne .L3499
21640
+ ldr r2, [r4, #-1404]
21641
+ lsl r3, r3, #1
21642
+ strh r6, [r2, r3] @ movhi
21643
+ ldrh r3, [r5]
2134821644 add r3, r3, #1
21349
- strh r3, [r10] @ movhi
21350
- b .L3578
21351
-.L3579:
21352
- ldr r2, [r9, #-1616]
21353
- mov r3, r3, asl #1
21354
- ldrh r1, [r8, #4]
21355
- mvn fp, #0
21356
- str r2, [r9, #896]
21645
+ strh r3, [r5] @ movhi
21646
+ b .L3498
21647
+.L3483:
21648
+ ldr ip, [r4, #-1452]
21649
+ mvn r1, r3
21650
+ orr r1, r3, r1, lsl #16
21651
+ str r1, [ip, r3, lsl #2]
21652
+ ldr r1, [r4, #-1448]
21653
+ str r0, [r1, r3, lsl #2]
21654
+ b .L3482
21655
+.L3485:
21656
+ mov r0, r6
21657
+ mov r1, #1
21658
+ bl FtlLowFormatEraseBlock
21659
+ add r6, r6, #1
21660
+ add r5, r5, r0
21661
+ uxth r5, r5
21662
+ uxth r6, r6
21663
+ b .L3484
21664
+.L3488:
21665
+ mov r0, r6
21666
+ mov r1, #1
21667
+ bl FtlLowFormatEraseBlock
21668
+ add r6, r6, #1
21669
+ add r5, r5, r0
21670
+ uxth r5, r5
21671
+ uxth r6, r6
21672
+ b .L3487
21673
+.L3490:
21674
+ mov r1, #0
21675
+ bl FtlLowFormatEraseBlock
21676
+ add r8, r8, r0
21677
+ uxth r8, r8
21678
+ b .L3489
21679
+.L3499:
21680
+ ldr r2, [r4, #-1612]
21681
+ lsl r3, r3, #1
21682
+ ldrh r1, [r5, #4]
21683
+ mvn r6, #0
21684
+ str r2, [r4, #896]
2135721685 add r2, r2, #1
21358
- str r2, [r9, #-1616]
21359
- ldr r2, [r9, #-1408]
21686
+ str r2, [r4, #-1612]
21687
+ ldr r2, [r4, #-1404]
2136021688 strh r1, [r2, r3] @ movhi
21361
- add r2, r9, #932
21362
- mov r3, #0
21363
- strb r3, [r9, #938]
21364
- strh r3, [r2, #2] @ movhi
21365
- mov r7, r2
21366
- ldrh r3, [r8]
21367
- mov r10, r2
21368
- add r3, r3, #1
21369
- strh r3, [r2] @ movhi
21370
- mov r3, #1
21371
- strb r3, [r9, #940]
21372
-.L3580:
21373
- ldr r6, .L3593
21374
- add r8, r6, #932
21375
- mov r0, r8
21689
+ mov r2, #0
21690
+ ldr r3, .L3510+40
21691
+ strb r2, [r4, #938]
21692
+ strh r2, [r3, #2] @ movhi
21693
+ mov r7, r3
21694
+ ldrh r2, [r5]
21695
+ mov r5, r3
21696
+ add r2, r2, #1
21697
+ strh r2, [r3] @ movhi
21698
+ mov r2, #1
21699
+ strb r2, [r4, #940]
21700
+.L3500:
21701
+ mov r0, r7
2137621702 bl make_superblock
2137721703 ldrb r3, [r4, #939] @ zero_extendqisi2
2137821704 cmp r3, #0
21379
- ldrh r3, [r7]
21380
- bne .L3581
21381
- ldr r2, [r9, #-1408]
21382
- mov r3, r3, asl #1
21383
- strh fp, [r2, r3] @ movhi
21384
- ldrh r3, [r10]
21705
+ ldrh r3, [r5]
21706
+ bne .L3501
21707
+ ldr r2, [r4, #-1404]
21708
+ lsl r3, r3, #1
21709
+ strh r6, [r2, r3] @ movhi
21710
+ ldrh r3, [r5]
2138521711 add r3, r3, #1
21386
- strh r3, [r10] @ movhi
21387
- b .L3580
21388
-.L3581:
21389
- ldr r2, [r6, #-1616]
21390
- mov r3, r3, asl #1
21391
- ldrh r1, [r8, #4]
21392
- mvn r4, #0
21393
- str r2, [r6, #944]
21712
+ strh r3, [r5] @ movhi
21713
+ b .L3500
21714
+.L3501:
21715
+ ldr r2, [r4, #-1612]
21716
+ lsl r3, r3, #1
21717
+ ldrh r1, [r5, #4]
21718
+ mvn r6, #0
21719
+ ldr r5, .L3510+44
21720
+ str r2, [r4, #944]
2139421721 add r2, r2, #1
21395
- str r2, [r6, #-1616]
21396
- ldr r2, [r6, #-1408]
21722
+ str r2, [r4, #-1612]
21723
+ ldr r2, [r4, #-1404]
2139721724 strh r1, [r2, r3] @ movhi
21398
- add r3, r6, #980
21399
- strh r4, [r3] @ movhi
21725
+ strh r6, [r5], #148 @ movhi
2140021726 bl FtlFreeSysBlkQueueOut
21401
- ldr r3, .L3593+40
21402
- movw r2, #1128
21403
- strh r4, [r3, #4] @ movhi
21404
- strh r0, [r6, r2] @ movhi
21405
- mov r2, #0
21406
- strh r2, [r3, #2] @ movhi
21407
- ldr r2, [r5, #1156]
21408
- strh r2, [r3, #6] @ movhi
21409
- ldr r3, [r6, #-1616]
21410
- str r3, [r6, #1136]
21727
+ movw r3, #1128
21728
+ strh r6, [r5, #4] @ movhi
21729
+ strh r0, [r4, r3] @ movhi
21730
+ mov r3, #0
21731
+ strh r3, [r5, #2] @ movhi
21732
+ ldr r3, [r4, #1148]
21733
+ strh r3, [r5, #6] @ movhi
21734
+ ldr r3, [r4, #-1612]
21735
+ str r3, [r4, #1136]
2141121736 add r3, r3, #1
21412
- str r3, [r6, #-1616]
21737
+ str r3, [r4, #-1612]
2141321738 bl FtlVpcTblFlush
2141421739 bl FtlSysBlkInit
2141521740 cmp r0, #0
21416
- ldreq r3, .L3593+44
21741
+ ldreq r3, .L3510+48
2141721742 moveq r2, #1
21418
- streq r2, [r3, #3444]
21419
-.L3560:
21743
+ streq r2, [r3, #3440]
21744
+.L3480:
2142021745 mov r0, #0
21421
- add sp, sp, #20
21746
+ add sp, sp, #12
2142221747 @ sp needed
21423
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
21424
-.L3594:
21748
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
21749
+.L3511:
2142521750 .align 2
21426
-.L3593:
21751
+.L3510:
2142721752 .word .LANCHOR2
21428
- .word .LANCHOR2-1662
2142921753 .word 168778952
21754
+ .word .LANCHOR2-1660
2143021755 .word .LANCHOR2-1728
21431
- .word .LANCHOR2-1726
21432
- .word .LANCHOR4
21756
+ .word .LANCHOR2+1152
21757
+ .word .LANCHOR2-1664
2143321758 .word .LANCHOR2-1648
2143421759 .word .LC162
21435
- .word .LANCHOR2+884
21436
- .word .LANCHOR4+1164
21437
- .word .LANCHOR2+1128
21760
+ .word .LANCHOR2+1156
21761
+ .word .LANCHOR0
21762
+ .word .LANCHOR2+932
21763
+ .word .LANCHOR2+980
2143821764 .word .LANCHOR1
2143921765 .fnend
2144021766 .size FtlLowFormat, .-FtlLowFormat
2144121767 .align 2
2144221768 .global FtlReInitForSDUpdata
21769
+ .syntax unified
21770
+ .arm
21771
+ .fpu softvfp
2144321772 .type FtlReInitForSDUpdata, %function
2144421773 FtlReInitForSDUpdata:
2144521774 .fnstart
2144621775 @ args = 0, pretend = 0, frame = 16
2144721776 @ frame_needed = 0, uses_anonymous_args = 0
21448
- stmfd sp!, {r0, r1, r2, r3, r4, lr}
21449
- .save {r4, lr}
21450
- .pad #16
21451
- ldr r4, .L3624
21452
- ldrb r3, [r4, #-2744] @ zero_extendqisi2
21777
+ push {r4, r5, lr}
21778
+ .save {r4, r5, lr}
21779
+ .pad #20
21780
+ sub sp, sp, #20
21781
+ ldr r4, .L3548
21782
+ ldrb r3, [r4, #-2740] @ zero_extendqisi2
2145321783 cmp r3, #0
21454
- beq .L3596
21455
-.L3598:
21456
- mov r0, #0
21457
- b .L3597
21458
-.L3596:
21459
- ldr r3, .L3624+4
21784
+ beq .L3513
21785
+.L3515:
21786
+ mov r5, #0
21787
+.L3512:
21788
+ mov r0, r5
21789
+ add sp, sp, #20
21790
+ @ sp needed
21791
+ pop {r4, r5, pc}
21792
+.L3513:
21793
+ ldr r3, .L3548+4
2146021794 ldr r0, [r3]
2146121795 bl FlashInit
21462
- cmp r0, #0
21463
- bne .L3598
21796
+ subs r5, r0, #0
21797
+ bne .L3515
2146421798 bl FlashLoadFactorBbt
2146521799 cmp r0, #0
21466
- beq .L3599
21800
+ beq .L3516
2146721801 bl FlashMakeFactorBbt
21468
-.L3599:
21469
- ldr r0, [r4, #-1776]
21802
+.L3516:
21803
+ ldr r0, [r4, #-1772]
2147021804 bl FlashReadIdbDataRaw
2147121805 cmp r0, #0
21472
- beq .L3600
21473
- mov r1, #0
21806
+ beq .L3517
2147421807 mov r2, #16
21808
+ mov r1, #0
2147521809 mov r0, sp
2147621810 bl FlashReadFacBbtData
21811
+ ldr r1, [sp]
2147721812 mov r3, #0
2147821813 mov r2, r3
21479
- mov ip, #1
21480
- ldr r1, [sp]
21481
-.L3601:
21482
- ands lr, r1, ip, asl r2
21483
- add r0, r3, #1
21814
+ mov r0, #1
21815
+.L3519:
21816
+ ands ip, r1, r0, lsl r2
2148421817 add r2, r2, #1
21485
- movne r3, r0
21818
+ addne r3, r3, #1
2148621819 cmp r2, #16
21487
- bne .L3601
21820
+ bne .L3519
2148821821 cmp r3, #6
21489
- ldrls r3, .L3624+8
21490
- bls .L3620
21822
+ ldrls r3, .L3548+8
21823
+ bls .L3545
2149121824 mov r2, #0
21492
- mov ip, #1
21493
-.L3604:
21494
- ands lr, r1, ip, asl r2
21495
- add r0, r3, #1
21825
+ mov r0, #1
21826
+.L3523:
21827
+ ands ip, r1, r0, lsl r2
2149621828 add r2, r2, #1
21497
- movne r3, r0
21829
+ addne r3, r3, #1
2149821830 cmp r2, #24
21499
- bne .L3604
21831
+ bne .L3523
2150021832 cmp r3, #17
21501
- ldr r3, .L3624+8
21833
+ ldr r3, .L3548+8
2150221834 movhi r2, #36
21503
-.L3620:
21504
- strb r2, [r3, #1]
21505
- ldr r3, .L3624+8
21506
- ldrb r2, [r3, #1] @ zero_extendqisi2
21507
- ldr r3, .L3624+12
21835
+.L3545:
21836
+ strb r2, [r3, #37]
21837
+ ldr r3, .L3548+8
21838
+ ldrb r2, [r3, #37] @ zero_extendqisi2
21839
+ ldr r3, .L3548+12
2150821840 strh r2, [r3, #26] @ movhi
21509
-.L3600:
21510
- ldr r1, .L3624+16
21511
- ldr r0, .L3624+20
21841
+.L3517:
21842
+ ldr r1, .L3548+16
21843
+ ldr r0, .L3548+20
2151221844 bl printk
21513
- ldr r0, .L3624+12
21845
+ ldr r0, .L3548+12
2151421846 bl FtlConstantsInit
2151521847 bl FtlVariablesInit
21516
- ldr r0, [r4, #-1732]
21848
+ ldr r0, [r4, #-1728]
2151721849 mov r4, #1
2151821850 uxth r0, r0
2151921851 bl FtlFreeSysBlkQueueInit
21520
-.L3606:
21852
+.L3525:
2152121853 bl FtlLoadBbt
2152221854 cmp r0, #0
21523
- beq .L3607
21524
-.L3622:
21855
+ beq .L3526
21856
+.L3547:
2152521857 bl FtlLowFormat
2152621858 cmp r4, #3
21527
- addls r4, r4, #1
21528
- bls .L3606
21529
-.L3623:
21530
- mvn r0, #0
21531
- b .L3597
21532
-.L3607:
21859
+ mvnhi r5, #0
21860
+ bhi .L3512
21861
+.L3527:
21862
+ add r4, r4, #1
21863
+ b .L3525
21864
+.L3526:
2153321865 bl FtlSysBlkInit
2153421866 cmp r0, #0
21535
- bne .L3622
21536
- ldr r3, .L3624+24
21867
+ bne .L3547
21868
+ ldr r3, .L3548+24
2153721869 mov r2, #1
21538
- str r2, [r3, #3444]
21539
-.L3597:
21540
- add sp, sp, #16
21541
- @ sp needed
21542
- ldmfd sp!, {r4, pc}
21543
-.L3625:
21870
+ str r2, [r3, #3440]
21871
+ b .L3512
21872
+.L3549:
2154421873 .align 2
21545
-.L3624:
21874
+.L3548:
2154621875 .word .LANCHOR2
2154721876 .word RK29_NANDC_REG_BASE
2154821877 .word .LANCHOR0
21549
- .word .LANCHOR2-2772
21878
+ .word .LANCHOR2-2768
2155021879 .word .LC145
21551
- .word .LC48
21880
+ .word .LC49
2155221881 .word .LANCHOR1
2155321882 .fnend
2155421883 .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata
2155521884 .align 2
2155621885 .global Ftl_gc_temp_data_write_back
21886
+ .syntax unified
21887
+ .arm
21888
+ .fpu softvfp
2155721889 .type Ftl_gc_temp_data_write_back, %function
2155821890 Ftl_gc_temp_data_write_back:
2155921891 .fnstart
2156021892 @ args = 0, pretend = 0, frame = 0
2156121893 @ frame_needed = 0, uses_anonymous_args = 0
21562
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
21563
- .save {r4, r5, r6, r7, r8, lr}
21564
- ldr r4, .L3643
21894
+ push {r4, r5, r6, lr}
21895
+ .save {r4, r5, r6, lr}
21896
+ ldr r4, .L3566
2156521897 ldr r3, [r4, #-1280]
2156621898 cmp r3, #0
21567
- beq .L3627
21568
-.L3630:
21899
+ beq .L3551
21900
+.L3554:
2156921901 mov r0, #0
21570
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
21571
-.L3627:
21572
- ldrb r3, [r4, #-2744] @ zero_extendqisi2
21573
- ldr r6, .L3643+4
21902
+ pop {r4, r5, r6, pc}
21903
+.L3551:
21904
+ ldrb r3, [r4, #-2740] @ zero_extendqisi2
2157421905 cmp r3, #0
21575
- beq .L3629
21576
- ldr r3, [r6, #1740]
21906
+ beq .L3553
21907
+ ldr r3, [r4, #1732]
2157721908 tst r3, #1
21578
- beq .L3629
21909
+ beq .L3553
2157921910 add r3, r4, #980
2158021911 ldrh r3, [r3, #4]
2158121912 cmp r3, #0
21582
- bne .L3630
21583
-.L3629:
21584
- mov r2, #0
21585
- ldr r0, [r4, #-1500]
21586
- ldr r1, [r6, #1740]
21587
- mov r3, r2
21913
+ bne .L3554
21914
+.L3553:
21915
+ mov r3, #0
21916
+ mov r5, #0
21917
+ mov r6, #36
21918
+ mov r2, r3
21919
+ ldr r1, [r4, #1732]
21920
+ ldr r0, [r4, #-1496]
2158821921 bl FlashProgPages
21589
- mov r7, #0
21590
- mov r8, #36
21591
-.L3631:
21592
- ldr r1, [r6, #1740]
21593
- uxth r3, r7
21594
- ldr r5, .L3643+4
21922
+.L3555:
21923
+ ldr r1, [r4, #1732]
21924
+ uxth r3, r5
2159521925 cmp r3, r1
21596
- bcs .L3642
21597
- mul r3, r8, r3
21598
- ldr r0, [r4, #-1500]
21599
- ldr r2, .L3643
21600
- add r7, r7, #1
21601
- add r1, r0, r3
21602
- ldr lr, [r0, r3]
21603
- ldr ip, [r1, #12]
21604
- cmn lr, #1
21605
- bne .L3632
21606
- add r0, r2, #980
21607
- ldr ip, [r2, #-1408]
21608
- mov r4, #0
21609
- ldrh r1, [r0]
21610
- mov r1, r1, asl #1
21611
- strh r4, [ip, r1] @ movhi
21612
- ldr r2, [r2, #-1500]
21613
- ldr r1, [r5, #1308]
21926
+ bcc .L3557
21927
+ ldr r0, [r4, #-1496]
21928
+ bl FtlGcBufFree
21929
+ mov r3, #0
21930
+ str r3, [r4, #1732]
21931
+ ldr r3, .L3566+4
21932
+ ldrh r3, [r3, #4]
21933
+ cmp r3, #0
21934
+ bne .L3554
21935
+ mov r0, #1
21936
+ bl FtlGcFreeTempBlock
21937
+ b .L3565
21938
+.L3557:
21939
+ mul r3, r6, r3
21940
+ ldr r2, [r4, #-1496]
21941
+ add r5, r5, #1
21942
+ ldr ip, [r2, r3]
21943
+ add r1, r2, r3
21944
+ ldr r0, [r1, #12]
21945
+ cmn ip, #1
21946
+ bne .L3556
21947
+ ldr r1, .L3566+4
21948
+ mov lr, #0
21949
+ ldr r0, [r4, #-1404]
21950
+ ldrh r2, [r1]
21951
+ lsl r2, r2, #1
21952
+ strh lr, [r0, r2] @ movhi
21953
+ ldr r2, [r4, #1300]
21954
+ strh ip, [r1] @ movhi
21955
+ add r2, r2, #1
21956
+ str r2, [r4, #1300]
21957
+ ldr r2, [r4, #-1496]
2161421958 add r3, r2, r3
21615
- strh lr, [r0] @ movhi
21616
- add r1, r1, #1
21617
- str r1, [r5, #1308]
2161821959 ldr r0, [r3, #4]
2161921960 ubfx r0, r0, #10, #16
2162021961 bl FtlBbmMapBadBlock
2162121962 bl FtlBbmTblFlush
2162221963 bl FtlGcPageVarInit
21623
- b .L3641
21624
-.L3632:
21625
- ldr r0, [ip, #12]
21964
+.L3565:
21965
+ mov r0, #1
21966
+ pop {r4, r5, r6, pc}
21967
+.L3556:
21968
+ ldr r2, [r0, #8]
2162621969 ldr r1, [r1, #4]
21627
- ldr r2, [ip, #8]
21970
+ ldr r0, [r0, #12]
2162821971 bl FtlGcUpdatePage
21629
- b .L3631
21630
-.L3642:
21631
- ldr r0, [r4, #-1500]
21632
- bl FtlGcBufFree
21633
- mov r3, #0
21634
- str r3, [r5, #1740]
21635
- ldr r3, .L3643+8
21636
- ldrh r3, [r3, #4]
21637
- cmp r3, #0
21638
- bne .L3630
21639
- mov r0, #1
21640
- bl FtlGcFreeTempBlock
21641
-.L3641:
21642
- mov r0, #1
21643
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
21644
-.L3644:
21972
+ b .L3555
21973
+.L3567:
2164521974 .align 2
21646
-.L3643:
21975
+.L3566:
2164721976 .word .LANCHOR2
21648
- .word .LANCHOR4
2164921977 .word .LANCHOR2+980
2165021978 .fnend
2165121979 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
2165221980 .align 2
2165321981 .global Ftl_get_new_temp_ppa
21982
+ .syntax unified
21983
+ .arm
21984
+ .fpu softvfp
2165421985 .type Ftl_get_new_temp_ppa, %function
2165521986 Ftl_get_new_temp_ppa:
2165621987 .fnstart
2165721988 @ args = 0, pretend = 0, frame = 0
2165821989 @ frame_needed = 0, uses_anonymous_args = 0
21659
- ldr r3, .L3649
21990
+ ldr r3, .L3575
2166021991 movw r2, #65535
21661
- stmfd sp!, {r4, lr}
21662
- .save {r4, lr}
2166321992 ldrh r1, [r3]
2166421993 cmp r1, r2
21665
- beq .L3646
21994
+ beq .L3569
2166621995 ldrh r3, [r3, #4]
2166721996 cmp r3, #0
21668
- bne .L3647
21669
-.L3646:
21997
+ ldrne r0, .L3575
21998
+ bne .L3574
21999
+.L3569:
22000
+ push {r4, r5, r6, lr}
22001
+ .save {r4, r5, r6, lr}
22002
+ mov r4, #0
22003
+ ldr r5, .L3575+4
2167022004 bl FtlCacheWriteBack
2167122005 mov r0, #0
2167222006 bl FtlGcFreeTempBlock
21673
- ldr r0, .L3649+4
21674
- mov r4, #0
21675
- add r0, r0, #980
21676
- strb r4, [r0, #8]
22007
+ add r0, r5, #980
22008
+ strb r4, [r5, #988]
2167722009 bl allocate_data_superblock
21678
- ldr r3, .L3649+8
21679
- movw r2, #1764
21680
- strh r4, [r3, r2] @ movhi
21681
- movw r2, #1766
21682
- strh r4, [r3, r2] @ movhi
22010
+ movw r3, #1756
22011
+ strh r4, [r5, r3] @ movhi
22012
+ movw r3, #1758
22013
+ strh r4, [r5, r3] @ movhi
2168322014 bl l2p_flush
2168422015 mov r0, r4
2168522016 bl FtlEctTblFlush
2168622017 bl FtlVpcTblFlush
21687
-.L3647:
21688
- ldr r0, .L3649
21689
- ldmfd sp!, {r4, lr}
22018
+ pop {r4, r5, r6, lr}
22019
+ ldr r0, .L3575
22020
+.L3574:
2169022021 b get_new_active_ppa
21691
-.L3650:
22022
+.L3576:
2169222023 .align 2
21693
-.L3649:
22024
+.L3575:
2169422025 .word .LANCHOR2+980
2169522026 .word .LANCHOR2
21696
- .word .LANCHOR4
2169722027 .fnend
2169822028 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
2169922029 .align 2
2170022030 .global ftl_read
22031
+ .syntax unified
22032
+ .arm
22033
+ .fpu softvfp
2170122034 .type ftl_read, %function
2170222035 ftl_read:
2170322036 .fnstart
2170422037 @ args = 0, pretend = 0, frame = 56
2170522038 @ frame_needed = 0, uses_anonymous_args = 0
21706
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22039
+ ldr ip, .L3621
22040
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2170722041 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
21708
- mov r4, r1
21709
- ldr r1, .L3699
2171022042 .pad #84
2171122043 sub sp, sp, #84
21712
- ldr r1, [r1, #3444]
21713
- cmp r1, #1
21714
- bne .L3676
22044
+ ldr ip, [ip, #3440]
22045
+ cmp ip, #1
22046
+ bne .L3601
2171522047 cmp r0, #16
2171622048 mov r8, r3
21717
- mov r9, r2
21718
- bne .L3653
21719
- mov r1, r2
21720
- add r0, r4, #256
22049
+ str r2, [sp, #28]
22050
+ mov r5, r1
22051
+ bne .L3579
2172122052 mov r2, r3
22053
+ ldr r1, [sp, #28]
22054
+ add r0, r5, #256
2172222055 bl FtlVendorPartRead
21723
- b .L3652
21724
-.L3653:
21725
- ldr r5, .L3699+4
21726
- ldr r3, [r5, #-2740]
22056
+ mov r10, r0
22057
+.L3577:
22058
+ mov r0, r10
22059
+ add sp, sp, #84
22060
+ @ sp needed
22061
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
22062
+.L3579:
22063
+ ldr r4, .L3621+4
22064
+ ldr r2, [sp, #28]
22065
+ ldr r3, [r4, #-2736]
2172722066 cmp r2, r3
21728
- cmpls r4, r3
21729
- bcs .L3676
21730
- add r2, r4, r2
21731
- str r2, [sp, #40]
21732
- cmp r2, r3
21733
- bhi .L3676
21734
- sub r3, r5, #1648
21735
- mov r0, r4
21736
- ldrh r6, [r3, #-14]
22067
+ cmpls r1, r3
22068
+ bcs .L3601
22069
+ add r2, r1, r2
22070
+ cmp r3, r2
22071
+ str r2, [sp, #44]
22072
+ bcc .L3601
22073
+ sub r3, r4, #1648
22074
+ mov r0, r5
22075
+ ldrh r6, [r3, #-12]
2173722076 mov r1, r6
2173822077 bl __aeabi_uidiv
22078
+ ldr r3, [sp, #44]
2173922079 mov r1, r6
21740
- ldr r3, [sp, #40]
21741
- str r0, [sp, #32]
22080
+ str r0, [sp, #36]
2174222081 sub r0, r3, #1
2174322082 bl __aeabi_uidiv
21744
- ldr r2, .L3699+8
21745
- ldr r3, [sp, #32]
21746
- str r0, [sp, #36]
21747
- rsb r3, r3, #1
21748
- ldr r1, [sp, #36]
21749
- add r3, r3, r0
21750
- str r3, [sp, #28]
21751
- ldr r3, [r2, #1728]
21752
- ldr r0, [sp, #32]
21753
- add r3, r9, r3
21754
- str r3, [r2, #1728]
21755
- ldr r3, [r5, #-1588]
22083
+ ldr r3, [sp, #36]
22084
+ mov r1, r0
2175622085 ldr r2, [sp, #28]
21757
- add r3, r2, r3
21758
- str r3, [r5, #-1588]
22086
+ str r0, [sp, #40]
22087
+ rsb r3, r3, #1
22088
+ add r3, r3, r0
22089
+ ldr r0, [sp, #36]
22090
+ str r3, [sp, #32]
22091
+ ldr r3, [r4, #1720]
22092
+ add r3, r3, r2
22093
+ ldr r2, [sp, #32]
22094
+ str r3, [r4, #1720]
22095
+ ldr r3, [r4, #-1584]
22096
+ add r3, r3, r2
22097
+ str r3, [r4, #-1584]
2175922098 bl FtlCacheMetchLpa
2176022099 cmp r0, #0
21761
- beq .L3654
22100
+ beq .L3580
2176222101 bl FtlCacheWriteBack
21763
-.L3654:
21764
- ldr r6, [sp, #32]
22102
+.L3580:
22103
+ ldr r6, [sp, #36]
2176522104 mov r3, #0
21766
- ldr r5, .L3699+4
22105
+ ldr r4, .L3621+4
2176722106 mov r7, r3
21768
- str r3, [sp, #24]
21769
- str r3, [sp, #48]
22107
+ mov r10, r3
2177022108 str r3, [sp, #52]
21771
-.L3655:
21772
- ldr r3, [sp, #28]
22109
+ str r3, [sp, #48]
22110
+.L3581:
22111
+ ldr r3, [sp, #32]
2177322112 cmp r3, #0
21774
- beq .L3698
21775
- mov r0, r6
21776
- add r1, sp, #76
22113
+ bne .L3598
22114
+ ldr r3, .L3621+8
22115
+ ldrh r3, [r3, #-2]
22116
+ cmp r3, #0
22117
+ beq .L3577
22118
+ mov r1, #1
22119
+ ldr r0, [sp, #32]
22120
+ bl ftl_do_gc
22121
+ b .L3577
22122
+.L3598:
2177722123 mov r2, #0
22124
+ add r1, sp, #76
22125
+ mov r0, r6
2177822126 bl log2phys
2177922127 ldr r3, [sp, #76]
2178022128 cmn r3, #1
21781
- bne .L3694
21782
- mov r10, #0
21783
-.L3656:
21784
- ldr r3, .L3699+12
21785
- ldrh r0, [r3]
21786
- cmp r10, r0
21787
- bcs .L3660
21788
- mla r0, r0, r6, r10
21789
- ldr r2, [sp, #40]
21790
- cmp r0, r4
21791
- movcs r3, #1
21792
- movcc r3, #0
21793
- cmp r0, r2
21794
- movcs r3, #0
21795
- cmp r3, #0
21796
- beq .L3658
21797
- rsb r0, r4, r0
21798
- mov r1, #0
21799
- mov r2, #512
21800
- add r0, r8, r0, asl #9
21801
- bl ftl_memset
21802
-.L3658:
21803
- add r10, r10, #1
21804
- b .L3656
21805
-.L3694:
21806
- ldr r2, [r5, #-1504]
21807
- mov r10, #36
21808
- mla r10, r10, r7, r2
21809
- str r3, [r10, #4]
21810
- ldr r3, [sp, #32]
21811
- cmp r6, r3
21812
- bne .L3661
21813
- ldr r3, [r5, #-1456]
21814
- mov r0, r4
21815
- str r3, [r10, #8]
21816
- ldr r3, .L3699+12
21817
- ldrh fp, [r3]
21818
- mov r1, fp
21819
- bl __aeabi_uidivmod
21820
- rsb r3, r1, fp
21821
- str r1, [sp, #56]
21822
- cmp r3, r9
21823
- movcs r3, r9
21824
- cmp r3, fp
21825
- str r3, [sp, #48]
21826
- streq r8, [r10, #8]
21827
- b .L3662
21828
-.L3661:
22129
+ moveq r9, #0
22130
+ beq .L3583
22131
+ ldr r2, [r4, #-1500]
22132
+ mov r9, #36
22133
+ mla r9, r9, r7, r2
22134
+ str r3, [r9, #4]
2182922135 ldr r3, [sp, #36]
2183022136 cmp r6, r3
21831
- bne .L3663
21832
- ldr r3, [r5, #-1452]
21833
- ldr r1, [sp, #40]
21834
- str r3, [r10, #8]
21835
- ldr r3, .L3699+12
21836
- ldrh r2, [r3]
21837
- mul r3, r2, r6
21838
- rsb r1, r3, r1
21839
- str r1, [sp, #24]
21840
- cmp r1, r2
21841
- bne .L3662
21842
- b .L3696
21843
-.L3663:
21844
- ldr r3, .L3699+12
21845
- ldrh r3, [r3]
21846
- mul r3, r3, r6
21847
-.L3696:
21848
- rsb r3, r4, r3
21849
- add r3, r8, r3, asl #9
21850
- str r3, [r10, #8]
21851
-.L3662:
21852
- ldr r3, .L3699+16
21853
- ldr r2, [r5, #-1440]
21854
- str r6, [r10, #16]
21855
- ldrh r3, [r3]
21856
- mul r3, r3, r7
22137
+ bne .L3587
22138
+ ldr r3, [r4, #-1452]
22139
+ mov r0, r5
22140
+ str r3, [r9, #8]
22141
+ ldr r3, .L3621+12
22142
+ ldrh fp, [r3, #-12]
22143
+ mov r1, fp
22144
+ bl __aeabi_uidivmod
22145
+ ldr r2, [sp, #28]
22146
+ sub r3, fp, r1
22147
+ str r1, [sp, #56]
22148
+ cmp r2, r3
22149
+ movcc r3, r2
22150
+ cmp r3, fp
22151
+ str r3, [sp, #48]
22152
+ streq r8, [r9, #8]
22153
+.L3588:
22154
+ ldr r3, .L3621+12
22155
+ ldr r2, [r4, #-1436]
22156
+ str r6, [r9, #16]
22157
+ ldrh r3, [r3, #-6]
22158
+ mul r3, r7, r3
2185722159 add r7, r7, #1
2185822160 bic r3, r3, #3
2185922161 add r3, r2, r3
21860
- str r3, [r10, #12]
21861
-.L3660:
21862
- ldr r3, [sp, #28]
22162
+ str r3, [r9, #12]
22163
+ b .L3586
22164
+.L3585:
22165
+ mla r0, r0, r6, r9
22166
+ ldr r2, [sp, #44]
22167
+ cmp r5, r0
22168
+ movls r3, #1
22169
+ movhi r3, #0
22170
+ cmp r2, r0
22171
+ movls r3, #0
22172
+ cmp r3, #0
22173
+ beq .L3584
22174
+ sub r0, r0, r5
22175
+ mov r2, #512
22176
+ mov r1, #0
22177
+ add r0, r8, r0, lsl #9
22178
+ bl ftl_memset
22179
+.L3584:
22180
+ add r9, r9, #1
22181
+.L3583:
22182
+ ldr r3, .L3621+16
22183
+ ldrh r0, [r3]
22184
+ cmp r9, r0
22185
+ bcc .L3585
22186
+.L3586:
22187
+ ldr r3, [sp, #32]
2186322188 add r6, r6, #1
2186422189 subs r3, r3, #1
21865
- str r3, [sp, #28]
21866
- beq .L3664
21867
- ldr r3, .L3699+20
22190
+ str r3, [sp, #32]
22191
+ beq .L3590
22192
+ ldr r3, .L3621+20
2186822193 ldrh r3, [r3]
21869
- cmp r7, r3, asl #3
21870
- bne .L3655
21871
-.L3664:
22194
+ cmp r7, r3, lsl #3
22195
+ bne .L3581
22196
+.L3590:
2187222197 cmp r7, #0
21873
- beq .L3655
21874
- ldr r0, [r5, #-1504]
21875
- mov r1, r7
22198
+ beq .L3581
2187622199 mov r2, #0
21877
- ldr fp, .L3699+8
22200
+ mov r1, r7
22201
+ ldr r0, [r4, #-1500]
22202
+ mov fp, #0
2187822203 bl FlashReadPages
22204
+ ldr r3, [sp, #52]
22205
+ lsl r3, r3, #9
22206
+ str r3, [sp, #68]
2187922207 ldr r3, [sp, #56]
21880
- mov r3, r3, asl #9
22208
+ lsl r3, r3, #9
2188122209 str r3, [sp, #60]
2188222210 ldr r3, [sp, #48]
21883
- mov r3, r3, asl #9
22211
+ lsl r3, r3, #9
2188422212 str r3, [sp, #64]
21885
- ldr r3, [sp, #24]
21886
- mov r3, r3, asl #9
21887
- str r3, [sp, #68]
21888
- mov r3, #0
21889
- str r3, [sp, #44]
21890
-.L3671:
21891
- ldr r3, [sp, #44]
21892
- mov ip, #36
21893
- ldr r1, [sp, #32]
21894
- mul r10, ip, r3
21895
- ldr r3, [r5, #-1504]
21896
- add r3, r3, r10
22213
+.L3597:
22214
+ mov r9, #36
22215
+ ldr r3, [r4, #-1500]
22216
+ mul r9, r9, fp
22217
+ ldr r1, [sp, #36]
22218
+ add r3, r3, r9
2189722219 ldr r2, [r3, #16]
21898
- cmp r2, r1
21899
- bne .L3666
22220
+ cmp r1, r2
22221
+ bne .L3592
2190022222 ldr r1, [r3, #8]
21901
- ldr r3, [r5, #-1456]
22223
+ ldr r3, [r4, #-1452]
2190222224 cmp r1, r3
21903
- bne .L3667
22225
+ bne .L3593
2190422226 ldr r3, [sp, #60]
2190522227 mov r0, r8
2190622228 ldr r2, [sp, #64]
2190722229 add r1, r1, r3
21908
- b .L3697
21909
-.L3666:
21910
- ldr r1, [sp, #36]
21911
- cmp r2, r1
21912
- bne .L3667
21913
- ldr r1, [r3, #8]
21914
- ldr r3, [r5, #-1452]
21915
- cmp r1, r3
21916
- bne .L3667
21917
- ldr r3, .L3699+12
21918
- ldr r2, [sp, #68]
21919
- ldrh r0, [r3]
21920
- ldr r3, [sp, #36]
21921
- mul r0, r0, r3
21922
- rsb r0, r4, r0
21923
- add r0, r8, r0, asl #9
21924
-.L3697:
22230
+.L3620:
2192522231 bl ftl_memcpy
21926
-.L3667:
21927
- ldr r2, [r5, #-1504]
21928
- add r3, r2, r10
21929
- ldr r1, [r2, r10]
21930
- cmn r1, #1
21931
- streq r1, [sp, #52]
21932
- ldreq r2, [fp, #1284]
21933
- addeq r2, r2, #1
21934
- streq r2, [fp, #1284]
22232
+.L3593:
22233
+ ldr r3, [r4, #-1500]
22234
+ ldr r2, [r3, r9]
22235
+ add r1, r3, r9
22236
+ cmn r2, #1
22237
+ ldreq r3, [r4, #1276]
22238
+ moveq r10, r2
22239
+ addeq r3, r3, #1
22240
+ streq r3, [r4, #1276]
22241
+ ldr r3, [r1, #12]
22242
+ ldr r2, [r1, #16]
22243
+ ldr r3, [r3, #8]
22244
+ cmp r2, r3
22245
+ beq .L3595
22246
+ ldr r3, [r4, #1276]
22247
+ add r3, r3, #1
22248
+ str r3, [r4, #1276]
22249
+ ldr r2, [r1, #8]
22250
+ ldr r3, [r1, #12]
22251
+ ldr r0, [r2, #4]
22252
+ str r0, [sp, #16]
22253
+ ldr r2, [r2]
22254
+ ldr r0, .L3621+24
22255
+ str r2, [sp, #12]
2193522256 ldr r2, [r3, #12]
21936
- ldr r1, [r3, #16]
21937
- ldr r2, [r2, #8]
21938
- cmp r1, r2
21939
- beq .L3669
21940
- ldr r2, [fp, #1284]
21941
- ldr r0, .L3699+24
21942
- add r2, r2, #1
21943
- str r2, [fp, #1284]
21944
- ldr lr, [r3, #12]
22257
+ str r2, [sp, #8]
2194522258 ldr r2, [r3, #8]
21946
- ldr r1, [lr, #4]
21947
- str r1, [sp]
21948
- ldr r1, [lr, #8]
21949
- str r1, [sp, #4]
21950
- ldr r1, [lr, #12]
21951
- str r1, [sp, #8]
21952
- ldr r1, [r2]
21953
- str r1, [sp, #12]
21954
- ldr r2, [r2, #4]
21955
- str r2, [sp, #16]
21956
- ldr r1, [r3, #16]
22259
+ str r2, [sp, #4]
2195722260 ldr r2, [r3, #4]
21958
- ldr r3, [lr]
22261
+ str r2, [sp]
22262
+ ldr r2, [r1, #4]
22263
+ ldr r3, [r3]
22264
+ ldr r1, [r1, #16]
2195922265 bl printk
21960
-.L3669:
21961
- ldr r3, [r5, #-1504]
21962
- add r2, r3, r10
21963
- ldr r3, [r3, r10]
22266
+.L3595:
22267
+ ldr r3, [r4, #-1500]
22268
+ add r2, r3, r9
22269
+ ldr r3, [r3, r9]
2196422270 cmp r3, #256
21965
- bne .L3670
22271
+ bne .L3596
2196622272 ldr r0, [r2, #4]
2196722273 ubfx r0, r0, #10, #16
2196822274 bl P2V_block_in_plane
2196922275 bl FtlGcRefreshBlock
21970
-.L3670:
21971
- ldr r3, [sp, #44]
21972
- add r3, r3, #1
21973
- str r3, [sp, #44]
21974
- cmp r3, r7
21975
- bne .L3671
22276
+.L3596:
22277
+ add fp, fp, #1
22278
+ cmp r7, fp
22279
+ bne .L3597
2197622280 mov r7, #0
21977
- b .L3655
21978
-.L3698:
21979
- ldr r3, .L3699+28
21980
- ldrh r3, [r3, #-6]
21981
- cmp r3, #0
21982
- beq .L3673
21983
- ldr r0, [sp, #28]
21984
- mov r1, #1
21985
- bl ftl_do_gc
21986
-.L3673:
21987
- ldr r0, [sp, #52]
21988
- b .L3652
21989
-.L3676:
21990
- mvn r0, #0
21991
-.L3652:
21992
- add sp, sp, #84
21993
- @ sp needed
21994
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
21995
-.L3700:
22281
+ b .L3581
22282
+.L3587:
22283
+ ldr r3, [sp, #40]
22284
+ cmp r6, r3
22285
+ bne .L3589
22286
+ ldr r3, [r4, #-1448]
22287
+ ldr r1, [sp, #44]
22288
+ str r3, [r9, #8]
22289
+ ldr r3, .L3621+12
22290
+ ldrh r2, [r3, #-12]
22291
+ mul r3, r2, r6
22292
+ sub r1, r1, r3
22293
+ cmp r2, r1
22294
+ str r1, [sp, #52]
22295
+ bne .L3588
22296
+.L3619:
22297
+ sub r3, r3, r5
22298
+ add r3, r8, r3, lsl #9
22299
+ str r3, [r9, #8]
22300
+ b .L3588
22301
+.L3589:
22302
+ ldr r3, .L3621+12
22303
+ ldrh r3, [r3, #-12]
22304
+ mul r3, r6, r3
22305
+ b .L3619
22306
+.L3592:
22307
+ ldr r1, [sp, #40]
22308
+ cmp r1, r2
22309
+ bne .L3593
22310
+ ldr r1, [r3, #8]
22311
+ ldr r3, [r4, #-1448]
22312
+ cmp r1, r3
22313
+ bne .L3593
22314
+ ldr r3, .L3621+16
22315
+ ldr r2, [sp, #68]
22316
+ ldrh r0, [r3]
22317
+ ldr r3, [sp, #40]
22318
+ mul r0, r3, r0
22319
+ sub r0, r0, r5
22320
+ add r0, r8, r0, lsl #9
22321
+ b .L3620
22322
+.L3601:
22323
+ mvn r10, #0
22324
+ b .L3577
22325
+.L3622:
2199622326 .align 2
21997
-.L3699:
22327
+.L3621:
2199822328 .word .LANCHOR1
2199922329 .word .LANCHOR2
22000
- .word .LANCHOR4
22001
- .word .LANCHOR2-1662
22002
- .word .LANCHOR2-1656
22003
- .word .LANCHOR2-1736
22004
- .word .LC58
2200522330 .word .LANCHOR2-1520
22331
+ .word .LANCHOR2-1648
22332
+ .word .LANCHOR2-1660
22333
+ .word .LANCHOR2-1732
22334
+ .word .LC58
2200622335 .fnend
2200722336 .size ftl_read, .-ftl_read
2200822337 .align 2
2200922338 .global ftl_vendor_read
22339
+ .syntax unified
22340
+ .arm
22341
+ .fpu softvfp
2201022342 .type ftl_vendor_read, %function
2201122343 ftl_vendor_read:
2201222344 .fnstart
2201322345 @ args = 0, pretend = 0, frame = 0
2201422346 @ frame_needed = 0, uses_anonymous_args = 0
22015
- str lr, [sp, #-4]!
22016
- .save {lr}
22017
- mov ip, r1
22018
- mov lr, r0
22347
+ @ link register save eliminated.
2201922348 mov r3, r2
22020
- mov r1, lr
22349
+ mov r2, r1
22350
+ mov r1, r0
2202122351 mov r0, #16
22022
- mov r2, ip
22023
- ldr lr, [sp], #4
2202422352 b ftl_read
2202522353 .fnend
2202622354 .size ftl_vendor_read, .-ftl_vendor_read
2202722355 .align 2
2202822356 .global ftl_sys_read
22357
+ .syntax unified
22358
+ .arm
22359
+ .fpu softvfp
2202922360 .type ftl_sys_read, %function
2203022361 ftl_sys_read:
2203122362 .fnstart
2203222363 @ args = 0, pretend = 0, frame = 0
2203322364 @ frame_needed = 0, uses_anonymous_args = 0
2203422365 @ link register save eliminated.
22035
- mov ip, r1
2203622366 mov r3, r2
22367
+ mov r2, r1
2203722368 add r1, r0, #256
22038
- mov r2, ip
2203922369 mov r0, #16
2204022370 b ftl_read
2204122371 .fnend
2204222372 .size ftl_sys_read, .-ftl_sys_read
2204322373 .align 2
2204422374 .global FtlInit
22375
+ .syntax unified
22376
+ .arm
22377
+ .fpu softvfp
2204522378 .type FtlInit, %function
2204622379 FtlInit:
2204722380 .fnstart
2204822381 @ args = 0, pretend = 0, frame = 0
2204922382 @ frame_needed = 0, uses_anonymous_args = 0
22050
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
22051
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
22383
+ push {r4, r5, r6, r7, r8, lr}
22384
+ .save {r4, r5, r6, r7, r8, lr}
2205222385 mvn r3, #0
22053
- ldr r2, .L3721
22054
- ldr r5, .L3721+4
22055
- ldr r6, .L3721+8
22056
- ldr r1, .L3721+12
22057
- ldr r0, .L3721+16
22058
- str r3, [r6, #3444]
22386
+ ldr r6, .L3642
22387
+ ldr r4, .L3642+4
22388
+ ldr r1, .L3642+8
22389
+ str r3, [r6, #3440]
2205922390 mov r3, #0
22060
- str r3, [r2, #1956]
22061
- str r3, [r5, #-1280]
22391
+ ldr r0, .L3642+12
22392
+ str r3, [r4, #1948]
22393
+ str r3, [r4, #-1280]
2206222394 bl printk
22063
- ldr r0, .L3721+20
22395
+ sub r0, r4, #2768
2206422396 bl FtlConstantsInit
2206522397 bl FtlMemInit
2206622398 bl FtlVariablesInit
22067
- ldr r3, [r5, #-1732]
22068
- uxth r0, r3
22399
+ sub r3, r4, #1728
22400
+ ldrh r0, [r3]
2206922401 bl FtlFreeSysBlkQueueInit
2207022402 bl FtlLoadBbt
2207122403 cmp r0, #0
22072
- ldrne r0, .L3721+24
22073
- bne .L3720
22074
- bl FtlSysBlkInit
22075
- subs r4, r0, #0
22076
- beq .L3707
22077
- ldr r0, .L3721+28
22078
-.L3720:
22079
- ldr r1, .L3721+32
22404
+ beq .L3626
22405
+ ldr r1, .L3642+16
22406
+ ldr r0, .L3642+20
22407
+.L3641:
2208022408 bl printk
22081
- b .L3706
22082
-.L3707:
22409
+.L3627:
22410
+ mov r0, #0
22411
+ pop {r4, r5, r6, r7, r8, pc}
22412
+.L3626:
22413
+ bl FtlSysBlkInit
22414
+ subs r5, r0, #0
22415
+ ldrne r1, .L3642+16
22416
+ ldrne r0, .L3642+24
22417
+ bne .L3641
22418
+.L3628:
2208322419 mov r1, #1
22084
- str r1, [r6, #3444]
22420
+ str r1, [r6, #3440]
2208522421 bl ftl_do_gc
22086
- add r3, r5, #880
22422
+ add r3, r4, #880
2208722423 ldrh r7, [r3]
2208822424 mov r6, r3
2208922425 cmp r7, #15
22090
- bhi .L3708
22091
- ldr r8, .L3721+36
22092
- movw r5, #65535
22093
- ldr r9, .L3721+40
22094
-.L3711:
22426
+ bhi .L3629
22427
+ add r8, r3, #276
22428
+ sub r4, r4, #1536
22429
+.L3632:
2209522430 ldrh r3, [r8]
22096
- cmp r3, r5
22097
- bne .L3709
22098
- ldrh r3, [r9]
22099
- cmp r3, r5
22100
- bne .L3709
22101
- and r0, r4, #63
22431
+ movw r2, #65535
22432
+ cmp r3, r2
22433
+ bne .L3630
22434
+ ldrh r2, [r4]
22435
+ cmp r2, r3
22436
+ bne .L3630
22437
+ and r0, r5, #63
2210222438 bl List_get_gc_head_node
2210322439 uxth r0, r0
2210422440 bl FtlGcRefreshBlock
22105
-.L3709:
22106
- mov r0, #1
22107
- mov r1, r0
22108
- bl ftl_do_gc
22109
- mov r0, #0
22441
+.L3630:
2211022442 mov r1, #1
22443
+ mov r0, r1
22444
+ bl ftl_do_gc
22445
+ mov r1, #1
22446
+ mov r0, #0
2211122447 bl ftl_do_gc
2211222448 ldrh r2, [r6]
2211322449 add r3, r7, #2
2211422450 cmp r2, r3
22115
- bhi .L3706
22116
- add r4, r4, #1
22117
- cmp r4, #4096
22118
- bne .L3711
22119
- b .L3706
22120
-.L3708:
22121
- ldrb r3, [r5, #-2744] @ zero_extendqisi2
22451
+ bhi .L3627
22452
+ add r5, r5, #1
22453
+ cmp r5, #4096
22454
+ bne .L3632
22455
+ b .L3627
22456
+.L3629:
22457
+ ldrb r3, [r4, #-2740] @ zero_extendqisi2
2212222458 cmp r3, #0
22123
- beq .L3706
22459
+ beq .L3627
2212422460 mov r4, #128
22125
-.L3713:
22126
- mov r0, #1
22127
- mov r1, r0
22461
+.L3634:
22462
+ mov r1, #1
22463
+ mov r0, r1
2212822464 bl ftl_do_gc
2212922465 subs r4, r4, #1
22130
- bne .L3713
22131
-.L3706:
22132
- mov r0, #0
22133
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
22134
-.L3722:
22466
+ bne .L3634
22467
+ b .L3627
22468
+.L3643:
2213522469 .align 2
22136
-.L3721:
22137
- .word .LANCHOR4
22138
- .word .LANCHOR2
22470
+.L3642:
2213922471 .word .LANCHOR1
22472
+ .word .LANCHOR2
2214022473 .word .LC145
22141
- .word .LC48
22142
- .word .LANCHOR2-2772
22474
+ .word .LC49
22475
+ .word .LANCHOR3+224
2214322476 .word .LC163
2214422477 .word .LC164
22145
- .word .LANCHOR3+240
22146
- .word .LANCHOR4+1164
22147
- .word .LANCHOR2-1540
2214822478 .fnend
2214922479 .size FtlInit, .-FtlInit
2215022480 .align 2
2215122481 .global ftl_write
22482
+ .syntax unified
22483
+ .arm
22484
+ .fpu softvfp
2215222485 .type ftl_write, %function
2215322486 ftl_write:
2215422487 .fnstart
22155
- @ args = 0, pretend = 0, frame = 96
22488
+ @ args = 0, pretend = 0, frame = 80
2215622489 @ frame_needed = 0, uses_anonymous_args = 0
22157
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22490
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2215822491 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22159
- .pad #100
22160
- sub sp, sp, #100
22161
- ldr r10, .L3797
22162
- str r3, [sp, #8]
22163
- ldr r3, [r10, #-1280]
22492
+ mov fp, r3
22493
+ ldr r4, .L3712
22494
+ .pad #84
22495
+ sub sp, sp, #84
22496
+ ldr r3, [r4, #-1280]
2216422497 cmp r3, #0
22165
- bne .L3764
22166
- mov r8, r2
22167
- ldr r2, .L3797+4
22168
- ldr r2, [r2, #3444]
22498
+ bne .L3685
22499
+ mov r9, r2
22500
+ ldr r2, .L3712+4
22501
+ ldr r2, [r2, #3440]
2216922502 cmp r2, #1
2217022503 movne r0, r3
22171
- bne .L3724
22504
+ bne .L3644
2217222505 cmp r0, #16
2217322506 mov r7, r1
22174
- bne .L3725
22175
- add r0, r1, #256
22176
- ldr r2, [sp, #8]
22177
- mov r1, r8
22507
+ bne .L3646
22508
+ mov r2, fp
22509
+ mov r1, r9
22510
+ add r0, r7, #256
2217822511 bl FtlVendorPartWrite
22179
- b .L3724
22180
-.L3725:
22181
- ldr r3, [r10, #-2740]
22182
- cmp r8, r3
22512
+.L3644:
22513
+ add sp, sp, #84
22514
+ @ sp needed
22515
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
22516
+.L3646:
22517
+ ldr r3, [r4, #-2736]
22518
+ cmp r9, r3
2218322519 cmpls r1, r3
22184
- bcs .L3767
22185
- add r5, r1, r8
22186
- cmp r5, r3
22187
- bhi .L3767
22188
- ldr r6, .L3797+8
22520
+ bcs .L3688
22521
+ add r6, r1, r9
22522
+ cmp r3, r6
22523
+ bcc .L3688
2218922524 mov r3, #2048
22190
- mov r0, r1
22191
- str r3, [r6, #1960]
22192
- sub r3, r10, #1648
22193
- ldrh r4, [r3, #-14]
22194
- mov r1, r4
22525
+ mov r0, r7
22526
+ str r3, [r4, #1952]
22527
+ sub r3, r4, #1648
22528
+ ldrh r5, [r3, #-12]
22529
+ mov r1, r5
2219522530 bl __aeabi_uidiv
22196
- mov r1, r4
22197
- str r0, [sp, #12]
22198
- sub r0, r5, #1
22531
+ mov r1, r5
22532
+ str r0, [sp]
22533
+ sub r0, r6, #1
2219922534 bl __aeabi_uidiv
22200
- cmp r8, r4, asl #1
22201
- ldr r2, [sp, #12]
22202
- str r0, [sp, #28]
22203
- rsb r5, r2, r0
22204
- add r3, r5, #1
22205
- str r3, [sp, #4]
22206
- ldr r2, [sp, #4]
22207
- ldr r3, [r10, #-1604]
22208
- add r3, r2, r3
22209
- ldr r2, [r10, #-1516]
22210
- str r3, [r10, #-1604]
22211
- ldr r3, [r6, #1724]
22212
- add r3, r8, r3
22213
- str r3, [r6, #1724]
22535
+ ldr r2, [sp]
22536
+ cmp r9, r5, lsl #1
22537
+ ldr r3, [r4, #-1600]
22538
+ str r0, [sp, #24]
22539
+ sub r6, r0, r2
22540
+ ldr r2, [r4, #-1512]
22541
+ add r8, r6, #1
22542
+ add r3, r3, r8
22543
+ str r3, [r4, #-1600]
22544
+ ldr r3, [r4, #1716]
22545
+ add r3, r3, r9
22546
+ str r3, [r4, #1716]
2221422547 movcs r3, #1
2221522548 movcc r3, #0
2221622549 cmp r2, #0
22217
- str r3, [sp, #24]
22218
- beq .L3727
22550
+ str r3, [sp, #16]
22551
+ beq .L3689
2221922552 mov r3, #36
22220
- ldr r9, [r10, #-1484]
2222122553 mul r3, r3, r2
22222
- ldr r2, [sp, #12]
22554
+ ldr r2, [r4, #-1480]
2222322555 sub r3, r3, #36
22224
- add r9, r9, r3
22225
- ldr r3, [r9, #16]
22226
- cmp r2, r3
22227
- bne .L3728
22228
- ldr r3, [r10, #-1596]
22229
- mov r1, r4
22556
+ add r10, r2, r3
22557
+ ldr r3, [sp]
22558
+ ldr r2, [r10, #16]
22559
+ cmp r3, r2
22560
+ strne fp, [sp, #12]
22561
+ bne .L3649
22562
+ ldr r2, [r4, #-1592]
22563
+ mov r1, r5
2223022564 mov r0, r7
22231
- add r3, r3, #1
22232
- str r3, [r10, #-1596]
22233
- ldr r3, [r6, #1964]
22234
- add r3, r3, #1
22235
- str r3, [r6, #1964]
22565
+ add r2, r2, #1
22566
+ str r2, [r4, #-1592]
22567
+ ldr r2, [r4, #1956]
22568
+ add r2, r2, #1
22569
+ str r2, [r4, #1956]
2223622570 bl __aeabi_uidivmod
22237
- ldr r0, [r9, #8]
22238
- rsb r4, r1, r4
22239
- add r0, r0, r1, asl #9
22240
- cmp r4, r8
22241
- ldr r1, [sp, #8]
22242
- movcs r4, r8
22243
- mov r10, r4, asl #9
22244
- mov r2, r10
22571
+ sub r5, r5, r1
22572
+ ldr r3, [r10, #8]
22573
+ cmp r9, r5
22574
+ mov r0, r1
22575
+ movcc r5, r9
22576
+ mov r1, fp
22577
+ lsl r8, r5, #9
22578
+ add r0, r3, r0, lsl #9
22579
+ mov r2, r8
2224522580 bl ftl_memcpy
22246
- cmp r5, #0
22247
- bne .L3729
22248
- ldr r3, [r6, #1964]
22581
+ cmp r6, #0
22582
+ bne .L3650
22583
+ ldr r3, [r4, #1956]
2224922584 cmp r3, #2
22250
- ble .L3764
22251
-.L3729:
22252
- ldr r3, [sp, #8]
22253
- rsb r8, r4, r8
22254
- add r7, r7, r4
22255
- str r5, [sp, #4]
22256
- add r3, r3, r10
22257
- str r3, [sp, #8]
22258
- ldr r3, [sp, #12]
22259
- add r3, r3, #1
22585
+ bgt .L3650
22586
+.L3685:
22587
+ mov r0, #0
22588
+ b .L3644
22589
+.L3650:
22590
+ add r3, fp, r8
22591
+ sub r9, r9, r5
2226022592 str r3, [sp, #12]
22261
-.L3728:
22593
+ add r7, r7, r5
22594
+ ldr r3, [sp]
22595
+ mov r8, r6
22596
+ add r3, r3, #1
22597
+ str r3, [sp]
22598
+.L3649:
2226222599 mov r3, #0
22263
- str r3, [r6, #1964]
22264
-.L3727:
22265
- ldr r0, [sp, #12]
22266
- ldr r1, [sp, #28]
22600
+ str r3, [r4, #1956]
22601
+.L3648:
22602
+ ldr r1, [sp, #24]
22603
+ ldr r0, [sp]
2226722604 bl FtlCacheMetchLpa
2226822605 cmp r0, #0
22269
- beq .L3730
22606
+ beq .L3651
2227022607 bl FtlCacheWriteBack
22271
-.L3730:
22272
- ldr r5, .L3797+12
22273
- mov r3, #0
22274
- str r3, [sp, #16]
22275
- sub r4, r5, #884
22276
- str r3, [sp, #32]
22277
- str r5, [r6, #1948]
22278
- ldr r6, [sp, #12]
22279
-.L3731:
22280
- ldr r3, [sp, #4]
22281
- cmp r3, #0
22282
- beq .L3796
22283
- ldrh r2, [r5, #4]
22284
- cmp r2, #0
22285
- bne .L3732
22286
- ldr r3, .L3797+12
22287
- ldr r9, .L3797+4
22288
- cmp r5, r3
22289
- bne .L3733
22290
- add r0, r5, #48
22291
- ldrh r10, [r0, #4]
22292
- cmp r10, #0
22293
- bne .L3734
22294
- bl allocate_new_data_superblock
22295
- str r10, [r9, #3452]
22296
-.L3734:
22297
- ldr r0, .L3797+12
22298
- bl allocate_new_data_superblock
22299
- ldr r3, [r9, #3452]
22300
- cmp r3, #0
22301
- ldrne r5, .L3797+16
22302
- bne .L3735
22303
-.L3736:
22304
- ldr r5, .L3797+12
22305
- b .L3735
22306
-.L3733:
22307
- ldrh r3, [r3, #4]
22308
- str r2, [r9, #3452]
22309
- cmp r3, #0
22310
- bne .L3736
22311
- mov r0, r5
22312
- bl allocate_new_data_superblock
22313
-.L3735:
22314
- ldrh r3, [r5, #4]
22315
- cmp r3, #0
22316
- bne .L3737
22317
- mov r0, r5
22318
- bl allocate_new_data_superblock
22319
-.L3737:
22320
- ldr r3, .L3797+8
22321
- str r5, [r3, #1948]
22322
-.L3732:
22323
- ldr r3, [r4, #-1520]
22324
- ldr r1, [r4, #-1516]
22325
- ldrh r2, [r5, #4]
22326
- rsb r3, r1, r3
22327
- cmp r2, r3
22328
- movcs r2, r3
22329
- ldr r3, [sp, #4]
22330
- cmp r2, r3
22331
- movcc r3, r2
22332
- str r3, [sp, #44]
22333
- mov r3, #0
22334
-.L3794:
22335
- str r3, [sp, #20]
22336
- ldr r3, [sp, #20]
22337
- ldr r2, [sp, #44]
22338
- cmp r3, r2
22339
- beq .L3739
22340
- ldrh r3, [r5, #4]
22341
- cmp r3, #0
22342
- beq .L3739
22343
- ldr r3, [sp, #28]
22344
- ldr r2, [sp, #20]
22345
- rsb ip, r3, r6
22346
- ldr r3, [sp, #24]
22347
- clz ip, ip
22348
- mov ip, ip, lsr #5
22349
- and r3, ip, r3
22350
- cmp r2, #0
22351
- moveq r3, #0
22352
- andne r3, r3, #1
22353
- cmp r3, #0
22354
- beq .L3740
22355
- ldr r3, .L3797+20
22356
- ldrh r2, [r3]
22357
- add r3, r8, r7
22358
- mls r3, r2, r6, r3
22359
- cmp r3, r2
22360
- bne .L3739
22361
-.L3740:
22362
- add r1, sp, #56
22363
- mov r2, #0
22364
- mov r0, r6
22365
- str ip, [sp, #52]
22366
- bl log2phys
22367
- mov r0, r5
22368
- bl get_new_active_ppa
22369
- ldr r10, [r4, #-1516]
22370
- ldr r1, [r4, #-1484]
22371
- mov r3, #36
22372
- ldr fp, .L3797+24
22373
- mla r1, r3, r10, r1
22374
- ldrh r2, [fp]
22375
- str r6, [r1, #16]
22376
- str r0, [r1, #4]
22377
- mul r0, r10, r2
22378
- str r3, [sp, #48]
22379
- bic r3, r0, #3
22380
- str r3, [sp, #36]
22381
- ldr r0, [sp, #36]
22382
- ldr r3, [r4, #-1432]
22383
- add r9, r3, r0
22384
- ldrh r0, [fp, #-2]
22385
- str r9, [r1, #12]
22386
- str r3, [sp, #40]
22387
- mul r10, r10, r0
22388
- ldr r0, [r4, #-1460]
22389
- bic r10, r10, #3
22390
- add r10, r0, r10
22391
- mov r0, r9
22392
- str r10, [r1, #8]
22393
- mov r1, #0
22394
- bl ftl_memset
22395
- ldr r3, [sp, #12]
22396
- ldr ip, [sp, #52]
22397
- rsb r10, r3, r6
22398
- clz r10, r10
22399
- mov r10, r10, lsr #5
22400
- orrs r3, r10, ip
22401
- ldr r3, [sp, #48]
22402
- beq .L3741
22403
- cmp r10, #0
22404
- beq .L3742
22405
- ldrh fp, [fp, #-6]
22406
- mov r0, r7
22407
- mov r1, fp
22408
- bl __aeabi_uidivmod
22409
- rsb r2, r1, fp
22410
- mov r3, r1
22411
- cmp r2, r8
22412
- str r1, [sp, #32]
22413
- movcc r3, r2
22414
- movcs r3, r8
22415
- str r3, [sp, #16]
22416
- b .L3743
22417
-.L3742:
22418
- cmp ip, #0
22419
- beq .L3743
22420
- ldr r3, .L3797+20
22421
- add r2, r8, r7
22422
- str r10, [sp, #32]
22423
- ldrh r1, [r3]
22424
- smulbb r1, r1, r6
22425
- rsb r2, r1, r2
22426
- uxth r3, r2
22427
- str r3, [sp, #16]
22428
-.L3743:
22429
- ldr r3, .L3797+20
22430
- ldr r2, [sp, #16]
22431
- ldrh r3, [r3]
22432
- cmp r2, r3
22433
- bne .L3744
22434
- cmp r10, #0
22435
- ldr r0, .L3797
22436
- moveq r3, r2
22437
- ldr r2, .L3797
22438
- muleq r1, r6, r3
22439
- ldreq r3, [sp, #8]
22440
- ldr r2, [r2, #-1516]
22441
- ldr r0, [r0, #-1484]
22442
- rsbeq r1, r7, r1
22443
- ldrne r1, [sp, #8]
22444
- addeq r1, r3, r1, asl #9
22445
- ldr r3, [sp, #24]
22446
- cmp r3, #0
22447
- mov r3, #36
22448
- mla r3, r3, r2, r0
22449
- strne r1, [r3, #8]
22450
- bne .L3747
22451
- ldr r0, [r3, #8]
22452
- ldr r3, .L3797+28
22453
- ldrh r2, [r3]
22454
- b .L3792
22455
-.L3744:
22456
- ldr r2, [sp, #56]
22457
- mov r3, #36
22458
- cmn r2, #1
22459
- beq .L3748
22460
- ldr r1, [r4, #-1484]
22461
- add r0, sp, #60
22462
- str r2, [sp, #64]
22463
- ldr r2, [r4, #-1516]
22464
- str r6, [sp, #76]
22465
- mla r3, r3, r2, r1
22466
- mov r1, #1
22467
- ldr r2, [r3, #8]
22468
- ldr r3, [r3, #12]
22469
- str r2, [sp, #68]
22470
- mov r2, #0
22471
- str r3, [sp, #72]
22472
- bl FlashReadPages
22473
- ldr r3, [sp, #60]
22474
- cmn r3, #1
22475
- ldreq r2, .L3797+8
22476
- ldreq r3, [r2, #1284]
22477
- addeq r3, r3, #1
22478
- streq r3, [r2, #1284]
22479
- beq .L3751
22480
-.L3749:
22481
- ldr r3, [r9, #8]
22482
- cmp r3, r6
22483
- beq .L3751
22484
- ldr r2, .L3797+8
22485
- ldr r0, .L3797+32
22486
- ldr r3, [r2, #1284]
22487
- add r3, r3, #1
22488
- str r3, [r2, #1284]
22489
- mov r2, r6
22490
- ldr r1, [r9, #8]
22491
- bl printk
22492
- b .L3751
22493
-.L3748:
22494
- ldr r2, [r4, #-1516]
22495
- ldr r1, [r4, #-1484]
22496
- mla r3, r3, r2, r1
22497
- mov r1, #0
22498
- ldr r0, [r3, #8]
22499
- ldr r3, .L3797+28
22500
- ldrh r2, [r3]
22501
- bl ftl_memset
22502
-.L3751:
22503
- cmp r10, #0
22504
- mov r3, #36
22505
- beq .L3752
22506
- ldr r1, [r4, #-1484]
22507
- ldr r2, [r4, #-1516]
22508
- mla r3, r3, r2, r1
22509
- ldr r1, [sp, #8]
22510
- ldr r0, [r3, #8]
22511
- ldr r3, [sp, #32]
22512
- add r0, r0, r3, asl #9
22513
- b .L3795
22514
-.L3752:
22515
- ldr r1, [r4, #-1516]
22516
- ldr r2, [r4, #-1484]
22517
- mla r3, r3, r1, r2
22518
- ldr r2, .L3797+20
22519
- ldrh r1, [r2]
22520
- ldr r0, [r3, #8]
22521
- mul r1, r1, r6
22522
- ldr r3, [sp, #8]
22523
- rsb r1, r7, r1
22524
- add r1, r3, r1, asl #9
22525
-.L3795:
22526
- ldr r3, [sp, #16]
22527
- mov r2, r3, asl #9
22528
- b .L3792
22529
-.L3741:
22530
- ldr r2, [sp, #24]
22531
- cmp r2, #0
22532
- ldr r2, [r4, #-1516]
22533
- beq .L3753
22534
- ldr r1, [r4, #-1484]
22535
- mla r3, r3, r2, r1
22536
- ldr r2, .L3797+20
22537
- ldrh fp, [r2]
22538
- ldr r2, [sp, #8]
22539
- mul fp, fp, r6
22540
- rsb fp, r7, fp
22541
- add fp, r2, fp, asl #9
22542
- str fp, [r3, #8]
22543
- b .L3747
22544
-.L3753:
22545
- ldr r0, [r4, #-1484]
22546
- mla r3, r3, r2, r0
22547
- ldr r2, .L3797+20
22548
- ldrh r1, [r2]
22549
- ldrh r2, [fp, #-2]
22550
- ldr r0, [r3, #8]
22551
- mul r1, r1, r6
22552
- ldr r3, [sp, #8]
22553
- rsb r1, r7, r1
22554
- add r1, r3, r1, asl #9
22555
-.L3792:
22556
- bl ftl_memcpy
22557
-.L3747:
22558
- ldr r3, .L3797+36
22559
- ldr r2, [sp, #40]
22560
- ldr r1, [sp, #36]
22561
- strh r3, [r2, r1] @ movhi
22562
- ldr r3, [r4, #-1612]
22563
- str r6, [r9, #8]
22564
- add r6, r6, #1
22565
- str r3, [r9, #4]
22566
- add r3, r3, #1
22567
- cmn r3, #1
22568
- moveq r3, #0
22569
- str r3, [r4, #-1612]
22570
- ldr r3, [sp, #56]
22571
- str r3, [r9, #12]
22572
- ldrh r3, [r5]
22573
- strh r3, [r9, #2] @ movhi
22574
- ldr r3, [r4, #-1516]
22575
- add r3, r3, #1
22576
- str r3, [r4, #-1516]
22577
- ldr r3, [sp, #20]
22578
- add r3, r3, #1
22579
- b .L3794
22580
-.L3739:
22581
- ldr r3, [sp, #4]
22582
- ldr r2, [sp, #20]
22583
- ldr r1, [sp, #24]
22584
- rsb r3, r2, r3
22585
- ldr r2, [r4, #-1520]
22608
+.L3651:
22609
+ ldr r5, .L3712+8
22610
+ ldr r6, [sp]
22611
+ sub r10, r5, #884
22612
+ str r5, [r4, #1940]
22613
+ sub r3, r10, #1648
2258622614 str r3, [sp, #4]
22587
- ldr r3, [r4, #-1516]
22588
- cmp r3, r2
22589
- orrcs r1, r1, #1
22590
- cmp r1, #0
22591
- bne .L3757
22592
- ldrh r3, [r5, #4]
22593
- cmp r3, #0
22594
- beq .L3757
22595
-.L3759:
22596
- mov r3, #0
22597
- str r3, [sp, #24]
22598
- b .L3731
22599
-.L3757:
22600
- bl FtlCacheWriteBack
22601
- ldr r2, .L3797
22602
- mov r3, #0
22603
- str r3, [r2, #-1516]
22604
- ldr r3, [sp, #4]
22605
- cmp r3, #1
22606
- bhi .L3731
22607
- b .L3759
22608
-.L3796:
22609
- mov r0, r3
22610
- ldr r2, [sp, #12]
22611
- ldr r3, [sp, #28]
22612
- rsb r1, r2, r3
22615
+.L3652:
22616
+ cmp r8, #0
22617
+ bne .L3680
22618
+ ldr r3, [sp, #24]
22619
+ mov r0, r8
22620
+ ldr r2, [sp]
22621
+ sub r1, r3, r2
2261322622 bl ftl_do_gc
22614
- ldr r1, .L3797+40
22615
- ldrh r3, [r1]
22616
- mov r6, r1
22623
+ ldr r2, .L3712+12
22624
+ ldrh r3, [r2]
22625
+ mov r6, r2
2261722626 cmp r3, #5
22618
- bls .L3770
22627
+ bls .L3681
2261922628 cmp r3, #31
22620
- bhi .L3764
22621
- ldr r3, .L3797+44
22622
- ldrb r3, [r3] @ zero_extendqisi2
22629
+ bhi .L3685
22630
+ ldr r3, .L3712+16
22631
+ ldrb r3, [r3, #36] @ zero_extendqisi2
2262322632 cmp r3, #0
22624
- bne .L3764
22625
-.L3770:
22626
- ldr r5, .L3797+48
22627
- ldr r4, [sp, #4]
22628
- ldr r7, .L3797+52
22629
- add r8, r5, #2
22630
-.L3783:
22633
+ bne .L3685
22634
+.L3681:
22635
+ ldr r5, .L3712
22636
+ ldr r7, .L3712+20
22637
+ sub r4, r5, #1520
22638
+.L3684:
2263122639 ldrh r2, [r7]
2263222640 movw r3, #65535
2263322641 cmp r2, r3
22634
- bne .L3763
22635
- ldrh r3, [r5]
22642
+ bne .L3683
22643
+ ldr r3, .L3712+24
22644
+ ldrh r3, [r3]
2263622645 cmp r3, r2
22637
- bne .L3763
22638
- ldrh r2, [r8]
22646
+ bne .L3683
22647
+ ldrh r2, [r4, #-14]
2263922648 cmp r2, r3
22640
- bne .L3763
22641
- and r0, r4, #7
22649
+ bne .L3683
22650
+ and r0, r8, #7
2264222651 bl List_get_gc_head_node
2264322652 uxth r0, r0
2264422653 bl FtlGcRefreshBlock
22645
-.L3763:
22646
- ldr r2, .L3797+56
22647
- mov r0, #1
22648
- mov r1, r0
22649
- mov r3, #128
22650
- strh r3, [r2] @ movhi
22651
- strh r3, [r2, #-2] @ movhi
22652
- bl ftl_do_gc
22653
- mov r0, #0
22654
+.L3683:
2265422655 mov r1, #1
22656
+ mov r3, #128
22657
+ mov r0, r1
22658
+ strh r3, [r4, #-6] @ movhi
22659
+ strh r3, [r4, #-8] @ movhi
2265522660 bl ftl_do_gc
22656
- ldr r3, .L3797
22657
- ldr r3, [r3, #-1280]
22661
+ mov r1, #1
22662
+ mov r0, #0
22663
+ bl ftl_do_gc
22664
+ ldr r3, [r5, #-1280]
2265822665 cmp r3, #0
22659
- bne .L3764
22666
+ bne .L3685
2266022667 ldrh r3, [r6]
2266122668 cmp r3, #2
22662
- bhi .L3764
22663
- add r4, r4, #1
22664
- cmp r4, #256
22665
- bne .L3783
22666
- b .L3764
22667
-.L3767:
22669
+ bhi .L3685
22670
+ add r8, r8, #1
22671
+ cmp r8, #256
22672
+ bne .L3684
22673
+ b .L3685
22674
+.L3689:
22675
+ str fp, [sp, #12]
22676
+ b .L3648
22677
+.L3680:
22678
+ ldrh r1, [r5, #4]
22679
+ cmp r1, #0
22680
+ bne .L3653
22681
+ ldr r2, .L3712+8
22682
+ ldr r4, .L3712+4
22683
+ cmp r5, r2
22684
+ bne .L3654
22685
+ add r0, r5, #48
22686
+ ldrh fp, [r0, #4]
22687
+ cmp fp, #0
22688
+ bne .L3655
22689
+ bl allocate_new_data_superblock
22690
+ str fp, [r4, #3448]
22691
+.L3655:
22692
+ ldr r0, .L3712+8
22693
+ bl allocate_new_data_superblock
22694
+ ldr r5, .L3712+8
22695
+ ldr r2, [r4, #3448]
22696
+ add r0, r5, #48
22697
+ cmp r2, #0
22698
+ movne r5, r0
22699
+.L3656:
22700
+ ldrh r2, [r5, #4]
22701
+ cmp r2, #0
22702
+ bne .L3657
22703
+ mov r0, r5
22704
+ bl allocate_new_data_superblock
22705
+.L3657:
22706
+ str r5, [r10, #1940]
22707
+.L3653:
22708
+ ldr r1, [r10, #-1512]
22709
+ ldr r2, [r10, #-1516]
22710
+ sub r2, r2, r1
22711
+ ldrh r1, [r5, #4]
22712
+ cmp r2, r8
22713
+ movcs r2, r8
22714
+ cmp r1, r2
22715
+ movcc r3, r1
22716
+ movcs r3, r2
22717
+ str r3, [sp, #36]
22718
+ mov r3, #0
22719
+.L3710:
22720
+ str r3, [sp, #20]
22721
+ ldr r3, [sp, #20]
22722
+ ldr r2, [sp, #36]
22723
+ cmp r3, r2
22724
+ bne .L3676
22725
+.L3659:
22726
+ ldr r3, [sp, #20]
22727
+ ldr r2, [r10, #-1512]
22728
+ ldr r1, [r10, #-1516]
22729
+ sub r8, r8, r3
22730
+ ldr r3, [sp, #16]
22731
+ cmp r2, r1
22732
+ orrcs r3, r3, #1
22733
+ cmp r3, #0
22734
+ bne .L3677
22735
+ ldrh r2, [r5, #4]
22736
+ cmp r2, #0
22737
+ beq .L3677
22738
+.L3679:
22739
+ mov r3, #0
22740
+ str r3, [sp, #16]
22741
+ b .L3652
22742
+.L3654:
22743
+ str r1, [r4, #3448]
22744
+ ldrh r1, [r2, #4]
22745
+ cmp r1, #0
22746
+ movne r5, r2
22747
+ bne .L3657
22748
+ mov r0, r5
22749
+ bl allocate_new_data_superblock
22750
+ b .L3656
22751
+.L3676:
22752
+ ldrh r2, [r5, #4]
22753
+ cmp r2, #0
22754
+ beq .L3659
22755
+ ldr r3, [sp, #24]
22756
+ sub r4, r3, r6
22757
+ ldr r3, [sp, #16]
22758
+ clz r4, r4
22759
+ lsr r4, r4, #5
22760
+ and r2, r4, r3
22761
+ ldr r3, [sp, #20]
22762
+ cmp r3, #0
22763
+ moveq r2, #0
22764
+ andne r2, r2, #1
22765
+ cmp r2, #0
22766
+ beq .L3660
22767
+ ldr r2, .L3712+28
22768
+ ldrh r1, [r2]
22769
+ add r2, r7, r9
22770
+ mls r2, r1, r6, r2
22771
+ cmp r1, r2
22772
+ bne .L3659
22773
+.L3660:
22774
+ mov r2, #0
22775
+ add r1, sp, #40
22776
+ mov r0, r6
22777
+ mov fp, #36
22778
+ bl log2phys
22779
+ mov r0, r5
22780
+ bl get_new_active_ppa
22781
+ ldr r1, [r10, #-1512]
22782
+ ldr ip, [r10, #-1480]
22783
+ ldr r3, [sp, #4]
22784
+ mla ip, fp, r1, ip
22785
+ ldrh r2, [r3, #-6]
22786
+ str r0, [ip, #4]
22787
+ mul r0, r2, r1
22788
+ str r6, [ip, #16]
22789
+ bic r3, r0, #3
22790
+ str r3, [sp, #28]
22791
+ ldr r0, [sp, #28]
22792
+ ldr r3, [r10, #-1428]
22793
+ str r3, [sp, #32]
22794
+ add r3, r3, r0
22795
+ str r3, [sp, #8]
22796
+ str r3, [ip, #12]
22797
+ ldr r3, [sp, #4]
22798
+ ldrh r0, [r3, #-8]
22799
+ mul r1, r1, r0
22800
+ ldr r0, [r10, #-1456]
22801
+ bic r1, r1, #3
22802
+ add r1, r0, r1
22803
+ ldr r0, [sp, #8]
22804
+ str r1, [ip, #8]
22805
+ mov r1, #0
22806
+ bl ftl_memset
22807
+ ldr r3, [sp]
22808
+ cmp r3, r6
22809
+ orreq r4, r4, #1
22810
+ cmp r4, #0
22811
+ beq .L3661
22812
+ cmp r3, r6
22813
+ bne .L3662
22814
+ ldr r3, [sp, #4]
22815
+ mov r0, r7
22816
+ ldrh r4, [r3, #-12]
22817
+ mov r1, r4
22818
+ bl __aeabi_uidivmod
22819
+ sub r4, r4, r1
22820
+ mov fp, r1
22821
+ cmp r4, r9
22822
+ movcs r4, r9
22823
+.L3663:
22824
+ ldr r3, [sp, #4]
22825
+ ldrh r2, [r3, #-12]
22826
+ cmp r2, r4
22827
+ bne .L3664
22828
+ ldr r3, [sp]
22829
+ cmp r3, r6
22830
+ mulne r1, r4, r6
22831
+ ldrne r3, [sp, #12]
22832
+ ldreq r1, [sp, #12]
22833
+ subne r1, r1, r7
22834
+ addne r1, r3, r1, lsl #9
22835
+ ldr r3, [sp, #16]
22836
+ cmp r3, #0
22837
+ beq .L3666
22838
+ ldr r2, [r10, #-1512]
22839
+ mov ip, #36
22840
+ ldr r0, [r10, #-1480]
22841
+ mla r2, ip, r2, r0
22842
+ str r1, [r2, #8]
22843
+.L3667:
22844
+ ldr r2, .L3712+32
22845
+ ldr r3, [sp, #32]
22846
+ ldr r1, [sp, #28]
22847
+ strh r2, [r3, r1] @ movhi
22848
+ ldr r3, [sp, #8]
22849
+ ldr r2, [r10, #-1608]
22850
+ str r2, [r3, #4]
22851
+ add r2, r2, #1
22852
+ cmn r2, #1
22853
+ ldr r3, [sp, #8]
22854
+ moveq r2, #0
22855
+ str r2, [r10, #-1608]
22856
+ ldr r2, [sp, #40]
22857
+ str r6, [r3, #8]
22858
+ add r6, r6, #1
22859
+ str r2, [r3, #12]
22860
+ ldrh r2, [r5]
22861
+ strh r2, [r3, #2] @ movhi
22862
+ ldr r2, [r10, #-1512]
22863
+ ldr r3, [sp, #20]
22864
+ add r2, r2, #1
22865
+ str r2, [r10, #-1512]
22866
+ add r3, r3, #1
22867
+ b .L3710
22868
+.L3662:
22869
+ ldr r3, [sp, #4]
22870
+ add r4, r7, r9
22871
+ mov fp, #0
22872
+ ldrh r2, [r3, #-12]
22873
+ smulbb r2, r2, r6
22874
+ sub r4, r4, r2
22875
+ uxth r4, r4
22876
+ b .L3663
22877
+.L3666:
22878
+ ldr r2, [r10, #-1480]
22879
+ mov ip, #36
22880
+ ldr r0, [r10, #-1512]
22881
+ ldr r3, [sp, #4]
22882
+ mla r0, ip, r0, r2
22883
+ ldrh r2, [r3, #-8]
22884
+.L3711:
22885
+ ldr r0, [r0, #8]
22886
+ b .L3708
22887
+.L3664:
22888
+ ldr r2, [sp, #40]
22889
+ cmn r2, #1
22890
+ beq .L3668
22891
+ ldr r1, [r10, #-1480]
22892
+ mov r0, #36
22893
+ str r2, [sp, #48]
22894
+ ldr r2, [r10, #-1512]
22895
+ str r6, [sp, #60]
22896
+ mla r2, r0, r2, r1
22897
+ add r0, sp, #44
22898
+ ldr r1, [r2, #8]
22899
+ ldr r2, [r2, #12]
22900
+ str r1, [sp, #52]
22901
+ mov r1, #1
22902
+ str r2, [sp, #56]
22903
+ mov r2, #0
22904
+ bl FlashReadPages
22905
+ ldr r2, [sp, #44]
22906
+ cmn r2, #1
22907
+ ldreq r2, [r10, #1276]
22908
+ addeq r2, r2, #1
22909
+ streq r2, [r10, #1276]
22910
+ beq .L3671
22911
+ ldr r3, [sp, #8]
22912
+ ldr r2, [r3, #8]
22913
+ cmp r6, r2
22914
+ beq .L3671
22915
+ ldr r2, [r10, #1276]
22916
+ ldr r0, .L3712+36
22917
+ add r2, r2, #1
22918
+ str r2, [r10, #1276]
22919
+ mov r2, r6
22920
+ ldr r1, [r3, #8]
22921
+ bl printk
22922
+.L3671:
22923
+ ldr r3, [sp]
22924
+ lsl r2, r4, #9
22925
+ cmp r3, r6
22926
+ bne .L3672
22927
+ ldr r0, [r10, #-1480]
22928
+ mov ip, #36
22929
+ ldr r1, [r10, #-1512]
22930
+ mla r1, ip, r1, r0
22931
+ ldr r0, [r1, #8]
22932
+ ldr r1, [sp, #12]
22933
+ add r0, r0, fp, lsl #9
22934
+.L3708:
22935
+ bl ftl_memcpy
22936
+ b .L3667
22937
+.L3668:
22938
+ ldr r2, [r10, #-1480]
22939
+ mov r1, #36
22940
+ ldr r0, [r10, #-1512]
22941
+ ldr r3, [sp, #4]
22942
+ mla r0, r1, r0, r2
22943
+ ldrh r2, [r3, #-8]
22944
+ mov r1, #0
22945
+ ldr r0, [r0, #8]
22946
+ bl ftl_memset
22947
+ b .L3671
22948
+.L3672:
22949
+ ldr r1, .L3712+28
22950
+ mov lr, #36
22951
+ ldr r0, [r10, #-1512]
22952
+ ldr ip, [r10, #-1480]
22953
+ ldrh r1, [r1]
22954
+ ldr r3, [sp, #12]
22955
+ mla r0, lr, r0, ip
22956
+ mul r1, r6, r1
22957
+ sub r1, r1, r7
22958
+ add r1, r3, r1, lsl #9
22959
+ b .L3711
22960
+.L3661:
22961
+ ldr r3, [sp, #16]
22962
+ cmp r3, #0
22963
+ beq .L3673
22964
+ ldr r2, [r10, #-1512]
22965
+ ldr r1, [r10, #-1480]
22966
+ ldr r3, [sp, #4]
22967
+ mla fp, fp, r2, r1
22968
+ ldrh r2, [r3, #-12]
22969
+ ldr r3, [sp, #12]
22970
+ mul r2, r6, r2
22971
+ sub r2, r2, r7
22972
+ add r2, r3, r2, lsl #9
22973
+ str r2, [fp, #8]
22974
+ b .L3667
22975
+.L3673:
22976
+ ldr r3, [sp, #4]
22977
+ ldr r2, [r10, #-1512]
22978
+ ldr r0, [r10, #-1480]
22979
+ ldrh r1, [r3, #-12]
22980
+ mla fp, fp, r2, r0
22981
+ ldrh r2, [r3, #-8]
22982
+ ldr r3, [sp, #12]
22983
+ mul r1, r6, r1
22984
+ ldr r0, [fp, #8]
22985
+ sub r1, r1, r7
22986
+ add r1, r3, r1, lsl #9
22987
+ b .L3708
22988
+.L3677:
22989
+ bl FtlCacheWriteBack
22990
+ cmp r8, #1
22991
+ mov r2, #0
22992
+ str r2, [r10, #-1512]
22993
+ bhi .L3652
22994
+ b .L3679
22995
+.L3688:
2266822996 mvn r0, #0
22669
- b .L3724
22670
-.L3764:
22671
- mov r0, #0
22672
-.L3724:
22673
- add sp, sp, #100
22674
- @ sp needed
22675
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
22676
-.L3798:
22997
+ b .L3644
22998
+.L3713:
2267722999 .align 2
22678
-.L3797:
23000
+.L3712:
2267923001 .word .LANCHOR2
2268023002 .word .LANCHOR1
22681
- .word .LANCHOR4
2268223003 .word .LANCHOR2+884
22683
- .word .LANCHOR2+932
22684
- .word .LANCHOR2-1662
22685
- .word .LANCHOR2-1656
22686
- .word .LANCHOR2-1658
22687
- .word .LC165
22688
- .word -3947
2268923004 .word .LANCHOR2+880
2269023005 .word .LANCHOR0
22691
- .word .LANCHOR2-1540
22692
- .word .LANCHOR4+1164
22693
- .word .LANCHOR2-1530
23006
+ .word .LANCHOR2+1156
23007
+ .word .LANCHOR2-1536
23008
+ .word .LANCHOR2-1660
23009
+ .word -3947
23010
+ .word .LC165
2269423011 .fnend
2269523012 .size ftl_write, .-ftl_write
2269623013 .align 2
2269723014 .global ftl_vendor_write
23015
+ .syntax unified
23016
+ .arm
23017
+ .fpu softvfp
2269823018 .type ftl_vendor_write, %function
2269923019 ftl_vendor_write:
2270023020 .fnstart
2270123021 @ args = 0, pretend = 0, frame = 0
2270223022 @ frame_needed = 0, uses_anonymous_args = 0
22703
- str lr, [sp, #-4]!
22704
- .save {lr}
22705
- mov ip, r1
22706
- mov lr, r0
23023
+ @ link register save eliminated.
2270723024 mov r3, r2
22708
- mov r1, lr
23025
+ mov r2, r1
23026
+ mov r1, r0
2270923027 mov r0, #16
22710
- mov r2, ip
22711
- ldr lr, [sp], #4
2271223028 b ftl_write
2271323029 .fnend
2271423030 .size ftl_vendor_write, .-ftl_vendor_write
2271523031 .align 2
2271623032 .global ftl_sys_write
23033
+ .syntax unified
23034
+ .arm
23035
+ .fpu softvfp
2271723036 .type ftl_sys_write, %function
2271823037 ftl_sys_write:
2271923038 .fnstart
2272023039 @ args = 0, pretend = 0, frame = 0
2272123040 @ frame_needed = 0, uses_anonymous_args = 0
2272223041 @ link register save eliminated.
22723
- mov ip, r1
2272423042 mov r3, r2
23043
+ mov r2, r1
2272523044 add r1, r0, #256
22726
- mov r2, ip
2272723045 mov r0, #16
2272823046 b ftl_write
2272923047 .fnend
2273023048 .size ftl_sys_write, .-ftl_sys_write
2273123049 .align 2
2273223050 .global ftl_fix_nand_power_lost_error
23051
+ .syntax unified
23052
+ .arm
23053
+ .fpu softvfp
2273323054 .type ftl_fix_nand_power_lost_error, %function
2273423055 ftl_fix_nand_power_lost_error:
2273523056 .fnstart
2273623057 @ args = 0, pretend = 0, frame = 48
2273723058 @ frame_needed = 0, uses_anonymous_args = 0
22738
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22739
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22740
- .pad #52
22741
- sub sp, sp, #52
22742
- ldr r4, .L3818
22743
- ldrb r3, [r4, #-2744] @ zero_extendqisi2
23059
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
23060
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
23061
+ .pad #48
23062
+ sub sp, sp, #48
23063
+ ldr r4, .L3731
23064
+ ldrb r3, [r4, #-2740] @ zero_extendqisi2
2274423065 cmp r3, #0
22745
- beq .L3802
22746
- ldr r8, .L3818+4
22747
- movw r3, #1802
22748
- add r9, r4, #884
23066
+ beq .L3716
23067
+ movw r3, #1794
23068
+ add r8, r4, #884
23069
+ ldrh r6, [r4, r3]
2274923070 add r5, r4, #932
22750
- ldr r0, .L3818+8
22751
- ldrh r7, [r8, r3]
22752
- ldr r3, [r4, #-1408]
22753
- mov r6, r7, asl #1
22754
- mov r1, r7
22755
- ldrh r2, [r3, r6]
23071
+ ldr r3, [r4, #-1404]
23072
+ ldr r0, .L3731+4
23073
+ mov r1, r6
23074
+ lsl r7, r6, #1
23075
+ ldrh r2, [r3, r7]
2275623076 bl printk
22757
- ldrh r0, [r9]
23077
+ ldrh r0, [r8]
2275823078 bl FtlGcRefreshOpenBlock
2275923079 ldrh r0, [r5]
2276023080 bl FtlGcRefreshOpenBlock
22761
- mov r0, r9
23081
+ mov r0, r8
2276223082 bl allocate_new_data_superblock
2276323083 mov r0, r5
22764
- bl allocate_new_data_superblock
2276523084 movw r5, #4097
22766
-.L3804:
23085
+ bl allocate_new_data_superblock
23086
+.L3718:
2276723087 subs r5, r5, #1
22768
- beq .L3808
22769
- mov r0, #1
22770
- mov r1, r0
23088
+ beq .L3722
23089
+ mov r1, #1
23090
+ mov r0, r1
2277123091 bl ftl_do_gc
22772
- ldr r3, [r4, #-1408]
22773
- ldrh r3, [r3, r6]
23092
+ ldr r3, [r4, #-1404]
23093
+ ldrh r3, [r3, r7]
2277423094 cmp r3, #0
22775
- bne .L3804
22776
-.L3808:
22777
- ldr r3, [r4, #-1408]
22778
- mov r1, r7
22779
- ldr r0, .L3818+8
22780
- ldr r9, .L3818
22781
- ldrh r2, [r3, r6]
23095
+ bne .L3718
23096
+.L3722:
23097
+ ldr r3, [r4, #-1404]
23098
+ mov r1, r6
23099
+ ldr r0, .L3731+4
23100
+ ldrh r2, [r3, r7]
2278223101 bl printk
22783
- ldr r3, [r4, #-1408]
22784
- ldrh r5, [r3, r6]
23102
+ ldr r3, [r4, #-1404]
23103
+ ldrh r5, [r3, r7]
2278523104 cmp r5, #0
22786
- bne .L3806
23105
+ bne .L3720
2278723106 add r0, sp, #48
22788
- movw r10, #65535
22789
- mov fp, #36
22790
- strh r7, [r0, #-48]! @ movhi
23107
+ movw r9, #65535
23108
+ strh r6, [r0, #-48]! @ movhi
23109
+ mov r10, #36
2279123110 bl make_superblock
22792
- sub r3, r9, #1728
22793
- ldr r9, [r9, #-1492]
22794
- ldrh lr, [r3, #-8]
22795
- mov r3, r5
22796
- mov ip, r3
23111
+ ldr r3, .L3731+8
2279723112 add r0, sp, #14
22798
-.L3809:
22799
- uxth r2, r3
22800
- cmp r2, lr
22801
- bcs .L3817
22802
- ldrh r2, [r0, #2]!
22803
- add r3, r3, #1
22804
- cmp r2, r10
22805
- movne r2, r2, asl #10
22806
- mlane r1, fp, r5, r9
23113
+ ldr r8, [r4, #-1488]
23114
+ mov r2, r5
23115
+ mov ip, r5
23116
+ ldrh lr, [r3, #-4]
23117
+.L3723:
23118
+ uxth r3, r2
23119
+ cmp lr, r3
23120
+ bhi .L3725
23121
+ ldr r3, [r4, #-1404]
23122
+ mov r1, r6
23123
+ ldr r0, .L3731+12
23124
+ ldrh r2, [r3, r7]
23125
+ bl printk
23126
+ mov r2, r5
23127
+ mov r1, #0
23128
+ ldr r0, [r4, #-1488]
23129
+ bl FlashEraseBlocks
23130
+ mov r2, r5
23131
+ mov r1, #1
23132
+ ldr r0, [r4, #-1488]
23133
+ bl FlashEraseBlocks
23134
+.L3720:
23135
+ mvn r2, #0
23136
+ movw r3, #1794
23137
+ strh r2, [r4, r3] @ movhi
23138
+.L3716:
23139
+ add sp, sp, #48
23140
+ @ sp needed
23141
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
23142
+.L3725:
23143
+ ldrh r3, [r0, #2]!
23144
+ add r2, r2, #1
23145
+ cmp r3, r9
23146
+ mlane r1, r10, r5, r8
23147
+ lslne r3, r3, #10
2280723148 addne r5, r5, #1
2280823149 uxthne r5, r5
22809
- stmneib r1, {r2, ip}
23150
+ stmibne r1, {r3, ip}
2281023151 strne ip, [r1, #12]
22811
- b .L3809
22812
-.L3817:
22813
- ldr r3, [r4, #-1408]
22814
- mov r1, r7
22815
- ldr r0, .L3818+12
22816
- ldrh r2, [r3, r6]
22817
- bl printk
22818
- mov r1, #0
22819
- mov r2, r5
22820
- ldr r0, [r4, #-1492]
22821
- bl FlashEraseBlocks
22822
- ldr r0, [r4, #-1492]
22823
- mov r1, #1
22824
- mov r2, r5
22825
- bl FlashEraseBlocks
22826
-.L3806:
22827
- movw r3, #1802
22828
- mvn r2, #0
22829
- strh r2, [r8, r3] @ movhi
22830
-.L3802:
22831
- add sp, sp, #52
22832
- @ sp needed
22833
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
22834
-.L3819:
23152
+ b .L3723
23153
+.L3732:
2283523154 .align 2
22836
-.L3818:
23155
+.L3731:
2283723156 .word .LANCHOR2
22838
- .word .LANCHOR4
2283923157 .word .LC166
23158
+ .word .LANCHOR2-1728
2284023159 .word .LC167
2284123160 .fnend
2284223161 .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error
....@@ -23068,13 +23387,7 @@
2306823387 .global DieCsIndex
2306923388 .global read_retry_cur_offset
2307023389 .section .rodata
23071
- .align 2
23072
-.LANCHOR3 = . + 0
23073
-.LC0:
23074
- .byte 60
23075
- .byte 40
23076
- .byte 24
23077
- .byte 16
23390
+ .set .LANCHOR3,. + 0
2307823391 .type samsung_14nm_slc_rr, %object
2307923392 .size samsung_14nm_slc_rr, 26
2308023393 samsung_14nm_slc_rr:
....@@ -23104,7 +23417,6 @@
2310423417 .byte -125
2310523418 .byte -115
2310623419 .byte 100
23107
- .space 2
2310823420 .type samsung_14nm_mlc_rr, %object
2310923421 .size samsung_14nm_mlc_rr, 104
2311023422 samsung_14nm_mlc_rr:
....@@ -23212,390 +23524,37 @@
2321223524 .byte 18
2321323525 .byte 9
2321423526 .byte 8
23215
- .type __func__.20378, %object
23216
- .size __func__.20378, 11
23217
-__func__.20378:
23527
+ .type __func__.23800, %object
23528
+ .size __func__.23800, 11
23529
+__func__.23800:
2321823530 .ascii "FtlMemInit\000"
23219
- .space 1
23220
- .type __func__.21125, %object
23221
- .size __func__.21125, 12
23222
-__func__.21125:
23531
+ .type __func__.24547, %object
23532
+ .size __func__.24547, 12
23533
+__func__.24547:
2322323534 .ascii "FtlCheckVpc\000"
23224
- .type __func__.21157, %object
23225
- .size __func__.21157, 17
23226
-__func__.21157:
23535
+ .type __func__.24579, %object
23536
+ .size __func__.24579, 17
23537
+__func__.24579:
2322723538 .ascii "FtlDumpBlockInfo\000"
23228
- .space 3
23229
- .type __func__.21176, %object
23230
- .size __func__.21176, 16
23231
-__func__.21176:
23539
+ .type __func__.24598, %object
23540
+ .size __func__.24598, 16
23541
+__func__.24598:
2323223542 .ascii "FtlScanAllBlock\000"
23233
- .type __func__.21444, %object
23234
- .size __func__.21444, 17
23235
-__func__.21444:
23543
+ .type __func__.24866, %object
23544
+ .size __func__.24866, 17
23545
+__func__.24866:
2323623546 .ascii "ftl_scan_all_ppa\000"
23237
- .space 3
23238
- .type __func__.21424, %object
23239
- .size __func__.21424, 21
23240
-__func__.21424:
23547
+ .type __func__.24846, %object
23548
+ .size __func__.24846, 21
23549
+__func__.24846:
2324123550 .ascii "FtlVpcCheckAndModify\000"
23242
- .space 3
23243
- .type __func__.20451, %object
23244
- .size __func__.20451, 8
23245
-__func__.20451:
23551
+ .type __func__.23873, %object
23552
+ .size __func__.23873, 8
23553
+__func__.23873:
2324623554 .ascii "FtlInit\000"
23247
- .section .rodata.str1.1,"aMS",%progbits,1
23248
-.LC1:
23249
- .ascii "FlashEraseBlocks pageAddr error %x\012\000"
23250
-.LC2:
23251
- .ascii "otp error! %d\000"
23252
-.LC3:
23253
- .ascii "rr\000"
23254
-.LC4:
23255
- .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012"
23256
- .ascii "\000"
23257
-.LC5:
23258
- .ascii "nandc:\000"
23259
-.LC6:
23260
- .ascii "%d flReg.d32=%x %x\012\000"
23261
-.LC7:
23262
- .ascii "sdr read ok %x ecc=%d\012\000"
23263
-.LC8:
23264
- .ascii "sync para %d\012\000"
23265
-.LC9:
23266
- .ascii "TOG mode Read error %x %x\012\000"
23267
-.LC10:
23268
- .ascii "read retry status %x %x %x\012\000"
23269
-.LC11:
23270
- .ascii "micron RR %d row=%x,count %d,status=%d\012\000"
23271
-.LC12:
23272
- .ascii "samsung RR %d row=%x,count %d,status=%d\012\000"
23273
-.LC13:
23274
- .ascii "ECC:%d\012\000"
23275
-.LC14:
23276
- .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000"
23277
-.LC15:
23278
- .ascii "FlashLoadPhyInfo fail %x!!\012\000"
23279
-.LC16:
23280
- .ascii "Read pageadd=%x ecc=%x err=%x\012\000"
23281
-.LC17:
23282
- .ascii "data:\000"
23283
-.LC18:
23284
- .ascii "spare:\000"
23285
-.LC19:
23286
- .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000"
23287
-.LC20:
23288
- .ascii "FLFB:%d %d\012\000"
23289
-.LC21:
23290
- .ascii "BBT:\000"
23291
-.LC22:
23292
- .ascii "prog error: = %x\012\000"
23293
-.LC23:
23294
- .ascii "prog read error: = %x\012\000"
23295
-.LC24:
23296
- .ascii "prog read REFRESH: = %x\012\000"
23297
-.LC25:
23298
- .ascii "prog read s error: = %x %x %x\012\000"
23299
-.LC26:
23300
- .ascii "prog read d error: = %x %x %x\012\000"
23301
-.LC27:
23302
- .ascii "FlashMakeFactorBbt %d\012\000"
23303
-.LC28:
23304
- .ascii "bad block:%d %d\012\000"
23305
-.LC29:
23306
- .ascii "FMFB:%d %d\012\000"
23307
-.LC30:
23308
- .ascii "E:bad block:%d\012\000"
23309
-.LC31:
23310
- .ascii "FMFB:Save %d %d\012\000"
23311
-.LC32:
23312
- .ascii "%s error allocating memory. return -1\012\000"
23313
-.LC33:
23314
- .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
23315
- .ascii "\000"
23316
-.LC34:
23317
- .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
23318
-.LC35:
23319
- .ascii "FtlBbmTblFlush error:%x\012\000"
23320
-.LC36:
23321
- .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
23322
-.LC37:
23323
- .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000"
23324
-.LC38:
23325
- .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
23326
- .ascii "\000"
23327
-.LC39:
23328
- .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
23329
-.LC40:
23330
- .ascii "FtlMapWritePage error = %x\012\000"
23331
-.LC41:
23332
- .ascii "FtlMapWritePage error = %x error count = %d\012\000"
23333
-.LC42:
23334
- .ascii "page map lost: %x %x\012\000"
23335
-.LC43:
23336
- .ascii "region_id = %x phyAddr = %x\012\000"
23337
-.LC44:
23338
- .ascii "map_ppn:\000"
23339
-.LC45:
23340
- .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
23341
-.LC46:
23342
- .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
23343
-.LC47:
23344
- .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
23345
-.LC48:
23346
- .ascii "%s\012\000"
23347
-.LC49:
23348
- .ascii "no ect\000"
23349
-.LC50:
23350
- .ascii "...%s enter...\012\000"
23351
-.LC51:
23352
- .ascii "FtlCheckVpc2 %x = %x %x\012\000"
23353
-.LC52:
23354
- .ascii "free blk vpc error %x = %x %x\012\000"
23355
-.LC53:
23356
- .ascii "error_flag %x\012\000"
23357
-.LC54:
23358
- .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012"
23359
- .ascii "\000"
23360
-.LC55:
23361
- .ascii ":\000"
23362
-.LC56:
23363
- .ascii "Ftlscanalldata = %x\012\000"
23364
-.LC57:
23365
- .ascii "scan lpa = %x ppa= %x\012\000"
23366
-.LC58:
23367
- .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
23368
- .ascii "\000"
23369
-.LC59:
23370
- .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
23371
- .ascii "\000"
23372
-.LC60:
23373
- .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012"
23374
- .ascii "\000"
23375
-.LC61:
23376
- .ascii "Mblk:\000"
23377
-.LC62:
23378
- .ascii "L2P:\000"
23379
-.LC63:
23380
- .ascii "L2PC:\000"
23381
-.LC64:
23382
- .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012"
23383
- .ascii "\000"
23384
-.LC65:
23385
- .ascii "superBlkID = %x vpc=%x\012\000"
23386
-.LC66:
23387
- .ascii "flashmode = %x pagenum = %x %x\012\000"
23388
-.LC67:
23389
- .ascii "blk = %x vpc=%x mode = %x\012\000"
23390
-.LC68:
23391
- .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
23392
- .ascii "%x\012\000"
23393
-.LC69:
23394
- .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
23395
- .ascii "%x\012\000"
23396
-.LC70:
23397
- .ascii "slc mode\000"
23398
-.LC71:
23399
- .ascii "ftl_scan_all_ppa blk %x page %x flag: %x\012\000"
23400
-.LC72:
23401
- .ascii "ftl_scan_all_ppa blk %x page %x flag: %x .........."
23402
- .ascii "..... is bad block\012\000"
23403
-.LC73:
23404
- .ascii "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012"
23405
- .ascii "\000"
23406
-.LC74:
23407
- .ascii "%s finished\012\000"
23408
-.LC75:
23409
- .ascii "FLASH INFO:\012\000"
23410
-.LC76:
23411
- .ascii "FLASH ID: %x\012\000"
23412
-.LC77:
23413
- .ascii "Device Capacity: %d MB\012\000"
23414
-.LC78:
23415
- .ascii "FMWAIT: %x %x %x %x\012\000"
23416
-.LC79:
23417
- .ascii "FTL INFO:\012\000"
23418
-.LC80:
23419
- .ascii "g_MaxLpn = 0x%x\012\000"
23420
-.LC81:
23421
- .ascii "g_VaildLpn = 0x%x\012\000"
23422
-.LC82:
23423
- .ascii "read_page_count = 0x%x\012\000"
23424
-.LC83:
23425
- .ascii "discard_page_count = 0x%x\012\000"
23426
-.LC84:
23427
- .ascii "write_page_count = 0x%x\012\000"
23428
-.LC85:
23429
- .ascii "cache_write_count = 0x%x\012\000"
23430
-.LC86:
23431
- .ascii "l2p_write_count = 0x%x\012\000"
23432
-.LC87:
23433
- .ascii "gc_page_count = 0x%x\012\000"
23434
-.LC88:
23435
- .ascii "totle_write = %d MB\012\000"
23436
-.LC89:
23437
- .ascii "totle_read = %d MB\012\000"
23438
-.LC90:
23439
- .ascii "GSV = 0x%x\012\000"
23440
-.LC91:
23441
- .ascii "GDV = 0x%x\012\000"
23442
-.LC92:
23443
- .ascii "bad blk num = %d %d\012\000"
23444
-.LC93:
23445
- .ascii "free_superblocks = 0x%x\012\000"
23446
-.LC94:
23447
- .ascii "mlc_EC = 0x%x\012\000"
23448
-.LC95:
23449
- .ascii "slc_EC = 0x%x\012\000"
23450
-.LC96:
23451
- .ascii "avg_EC = 0x%x\012\000"
23452
-.LC97:
23453
- .ascii "sys_EC = 0x%x\012\000"
23454
-.LC98:
23455
- .ascii "max_EC = 0x%x\012\000"
23456
-.LC99:
23457
- .ascii "min_EC = 0x%x\012\000"
23458
-.LC100:
23459
- .ascii "PLT = 0x%x\012\000"
23460
-.LC101:
23461
- .ascii "POT = 0x%x\012\000"
23462
-.LC102:
23463
- .ascii "MaxSector = 0x%x\012\000"
23464
-.LC103:
23465
- .ascii "init_sys_blks_pp = 0x%x\012\000"
23466
-.LC104:
23467
- .ascii "sys_blks_pp = 0x%x\012\000"
23468
-.LC105:
23469
- .ascii "free sysblock = 0x%x\012\000"
23470
-.LC106:
23471
- .ascii "data_blks_pp = 0x%x\012\000"
23472
-.LC107:
23473
- .ascii "data_op_blks_pp = 0x%x\012\000"
23474
-.LC108:
23475
- .ascii "max_data_blks = 0x%x\012\000"
23476
-.LC109:
23477
- .ascii "Sys.id = 0x%x\012\000"
23478
-.LC110:
23479
- .ascii "Bbt.id = 0x%x\012\000"
23480
-.LC111:
23481
- .ascii "ACT.page = 0x%x\012\000"
23482
-.LC112:
23483
- .ascii "ACT.plane = 0x%x\012\000"
23484
-.LC113:
23485
- .ascii "ACT.id = 0x%x\012\000"
23486
-.LC114:
23487
- .ascii "ACT.mode = 0x%x\012\000"
23488
-.LC115:
23489
- .ascii "ACT.a_pages = 0x%x\012\000"
23490
-.LC116:
23491
- .ascii "ACT VPC = 0x%x\012\000"
23492
-.LC117:
23493
- .ascii "BUF.page = 0x%x\012\000"
23494
-.LC118:
23495
- .ascii "BUF.plane = 0x%x\012\000"
23496
-.LC119:
23497
- .ascii "BUF.id = 0x%x\012\000"
23498
-.LC120:
23499
- .ascii "BUF.mode = 0x%x\012\000"
23500
-.LC121:
23501
- .ascii "BUF.a_pages = 0x%x\012\000"
23502
-.LC122:
23503
- .ascii "BUF VPC = 0x%x\012\000"
23504
-.LC123:
23505
- .ascii "TMP.page = 0x%x\012\000"
23506
-.LC124:
23507
- .ascii "TMP.plane = 0x%x\012\000"
23508
-.LC125:
23509
- .ascii "TMP.id = 0x%x\012\000"
23510
-.LC126:
23511
- .ascii "TMP.mode = 0x%x\012\000"
23512
-.LC127:
23513
- .ascii "TMP.a_pages = 0x%x\012\000"
23514
-.LC128:
23515
- .ascii "GC.page = 0x%x\012\000"
23516
-.LC129:
23517
- .ascii "GC.plane = 0x%x\012\000"
23518
-.LC130:
23519
- .ascii "GC.id = 0x%x\012\000"
23520
-.LC131:
23521
- .ascii "GC.mode = 0x%x\012\000"
23522
-.LC132:
23523
- .ascii "GC.a_pages = 0x%x\012\000"
23524
-.LC133:
23525
- .ascii "WR_CHK = 0x%x %x %x %x\012\000"
23526
-.LC134:
23527
- .ascii "Read Err = 0x%x\012\000"
23528
-.LC135:
23529
- .ascii "Prog Err = 0x%x\012\000"
23530
-.LC136:
23531
- .ascii "gc_free_blk_th= 0x%x\012\000"
23532
-.LC137:
23533
- .ascii "gc_merge_free_blk_th= 0x%x\012\000"
23534
-.LC138:
23535
- .ascii "gc_skip_write_count= 0x%x\012\000"
23536
-.LC139:
23537
- .ascii "gc_blk_index= 0x%x\012\000"
23538
-.LC140:
23539
- .ascii "free min EC= 0x%x\012\000"
23540
-.LC141:
23541
- .ascii "free max EC= 0x%x\012\000"
23542
-.LC142:
23543
- .ascii "GC__SB VPC = 0x%x\012\000"
23544
-.LC143:
23545
- .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
23546
-.LC144:
23547
- .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
23548
-.LC145:
23549
- .ascii "FTL version: 5.0.63 20200923\000"
23550
-.LC146:
23551
- .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
23552
- .ascii "\012\000"
23553
-.LC147:
23554
- .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
23555
-.LC148:
23556
- .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
23557
-.LC149:
23558
- .ascii "FtlGcRefreshBlock 0x%x\012\000"
23559
-.LC150:
23560
- .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000"
23561
-.LC151:
23562
- .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
23563
-.LC152:
23564
- .ascii "decrement_vpc_count %x = %d\012\000"
23565
-.LC153:
23566
- .ascii "decrement_vpc_count %x = %d in free list\012\000"
23567
-.LC154:
23568
- .ascii "RSB refresh addr %x\012\000"
23569
-.LC155:
23570
- .ascii "spuer block %x vpn is 0\012 \000"
23571
-.LC156:
23572
- .ascii "g_recovery_ppa %x ver %x\012 \000"
23573
-.LC157:
23574
- .ascii "FtlCheckVpc %x = %x %x\012\000"
23575
-.LC158:
23576
- .ascii "%d GC datablk = %x vpc %x %x\012\000"
23577
-.LC159:
23578
- .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
23579
-.LC160:
23580
- .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
23581
-.LC161:
23582
- .ascii "GC des block %x done\012\000"
23583
-.LC162:
23584
- .ascii "too many bad block = %d %d\012\000"
23585
-.LC163:
23586
- .ascii "...%s: no bad block mapping table, format device\012"
23587
- .ascii "\000"
23588
-.LC164:
23589
- .ascii "...%s FtlSysBlkInit error ,format device!\012\000"
23590
-.LC165:
23591
- .ascii "FtlWrite: lpa error:%x %x\012\000"
23592
-.LC166:
23593
- .ascii "fix power lost blk = %x vpc=%x\012\000"
23594
-.LC167:
23595
- .ascii "erase power lost blk = %x vpc=%x\012\000"
2359623555 .data
2359723556 .align 2
23598
-.LANCHOR1 = . + 0
23557
+ .set .LANCHOR1,. + 0
2359923558 .type random_seed, %object
2360023559 .size random_seed, 256
2360123560 random_seed:
....@@ -23727,6 +23686,230 @@
2372723686 .short 28406
2372823687 .short 17598
2372923688 .short 28087
23689
+ .type ToshibaA19RefValue, %object
23690
+ .size ToshibaA19RefValue, 45
23691
+ToshibaA19RefValue:
23692
+ .byte 4
23693
+ .byte 5
23694
+ .byte 6
23695
+ .byte 7
23696
+ .byte 13
23697
+ .byte 0
23698
+ .byte 0
23699
+ .byte 0
23700
+ .byte 0
23701
+ .byte 0
23702
+ .byte 4
23703
+ .byte 4
23704
+ .byte 124
23705
+ .byte 126
23706
+ .byte 0
23707
+ .byte 0
23708
+ .byte 124
23709
+ .byte 120
23710
+ .byte 120
23711
+ .byte 0
23712
+ .byte 124
23713
+ .byte 118
23714
+ .byte 116
23715
+ .byte 114
23716
+ .byte 0
23717
+ .byte 8
23718
+ .byte 8
23719
+ .byte 0
23720
+ .byte 0
23721
+ .byte 0
23722
+ .byte 11
23723
+ .byte 126
23724
+ .byte 118
23725
+ .byte 116
23726
+ .byte 0
23727
+ .byte 16
23728
+ .byte 118
23729
+ .byte 114
23730
+ .byte 112
23731
+ .byte 0
23732
+ .byte 2
23733
+ .byte 0
23734
+ .byte 126
23735
+ .byte 124
23736
+ .byte 0
23737
+ .type Toshiba15RefValue, %object
23738
+ .size Toshiba15RefValue, 95
23739
+Toshiba15RefValue:
23740
+ .byte 4
23741
+ .byte 5
23742
+ .byte 6
23743
+ .byte 7
23744
+ .byte 13
23745
+ .byte 0
23746
+ .byte 0
23747
+ .byte 0
23748
+ .byte 0
23749
+ .byte 0
23750
+ .byte 0
23751
+ .byte 0
23752
+ .byte 0
23753
+ .byte 0
23754
+ .byte 0
23755
+ .byte 2
23756
+ .byte 4
23757
+ .byte 2
23758
+ .byte 0
23759
+ .byte 0
23760
+ .byte 8
23761
+ .byte 8
23762
+ .byte 0
23763
+ .byte 0
23764
+ .byte 0
23765
+ .byte 124
23766
+ .byte 0
23767
+ .byte 124
23768
+ .byte 124
23769
+ .byte 0
23770
+ .byte 122
23771
+ .byte 0
23772
+ .byte 122
23773
+ .byte 122
23774
+ .byte 0
23775
+ .byte 11
23776
+ .byte 126
23777
+ .byte 118
23778
+ .byte 116
23779
+ .byte 0
23780
+ .byte 120
23781
+ .byte 2
23782
+ .byte 120
23783
+ .byte 122
23784
+ .byte 0
23785
+ .byte 126
23786
+ .byte 4
23787
+ .byte 126
23788
+ .byte 122
23789
+ .byte 0
23790
+ .byte 16
23791
+ .byte 118
23792
+ .byte 114
23793
+ .byte 112
23794
+ .byte 0
23795
+ .byte 118
23796
+ .byte 4
23797
+ .byte 118
23798
+ .byte 120
23799
+ .byte 0
23800
+ .byte 4
23801
+ .byte 4
23802
+ .byte 4
23803
+ .byte 118
23804
+ .byte 0
23805
+ .byte 2
23806
+ .byte 0
23807
+ .byte 126
23808
+ .byte 124
23809
+ .byte 0
23810
+ .byte 6
23811
+ .byte 10
23812
+ .byte 6
23813
+ .byte 2
23814
+ .byte 0
23815
+ .byte 116
23816
+ .byte 124
23817
+ .byte 116
23818
+ .byte 118
23819
+ .byte 0
23820
+ .byte 4
23821
+ .byte 4
23822
+ .byte 124
23823
+ .byte 126
23824
+ .byte 0
23825
+ .byte 0
23826
+ .byte 124
23827
+ .byte 120
23828
+ .byte 120
23829
+ .byte 0
23830
+ .byte 124
23831
+ .byte 118
23832
+ .byte 116
23833
+ .byte 114
23834
+ .byte 0
23835
+ .type ToshibaRefValue, %object
23836
+ .size ToshibaRefValue, 8
23837
+ToshibaRefValue:
23838
+ .byte 0
23839
+ .byte 4
23840
+ .byte 124
23841
+ .byte 120
23842
+ .byte 116
23843
+ .byte 8
23844
+ .byte 12
23845
+ .byte 112
23846
+ .type SamsungRefValue, %object
23847
+ .size SamsungRefValue, 64
23848
+SamsungRefValue:
23849
+ .byte -89
23850
+ .byte -92
23851
+ .byte -91
23852
+ .byte -90
23853
+ .byte 0
23854
+ .byte 0
23855
+ .byte 0
23856
+ .byte 0
23857
+ .byte 5
23858
+ .byte 10
23859
+ .byte 0
23860
+ .byte 0
23861
+ .byte 40
23862
+ .byte 0
23863
+ .byte -20
23864
+ .byte -40
23865
+ .byte -19
23866
+ .byte -11
23867
+ .byte -19
23868
+ .byte -26
23869
+ .byte 10
23870
+ .byte 15
23871
+ .byte 5
23872
+ .byte 0
23873
+ .byte 15
23874
+ .byte 10
23875
+ .byte -5
23876
+ .byte -20
23877
+ .byte -24
23878
+ .byte -17
23879
+ .byte -24
23880
+ .byte -36
23881
+ .byte -15
23882
+ .byte -5
23883
+ .byte -2
23884
+ .byte -16
23885
+ .byte 10
23886
+ .byte 0
23887
+ .byte -5
23888
+ .byte -20
23889
+ .byte -48
23890
+ .byte -30
23891
+ .byte -48
23892
+ .byte -62
23893
+ .byte 20
23894
+ .byte 15
23895
+ .byte -5
23896
+ .byte -20
23897
+ .byte -24
23898
+ .byte -5
23899
+ .byte -24
23900
+ .byte -36
23901
+ .byte 30
23902
+ .byte 20
23903
+ .byte -5
23904
+ .byte -20
23905
+ .byte -5
23906
+ .byte -1
23907
+ .byte -5
23908
+ .byte -8
23909
+ .byte 7
23910
+ .byte 12
23911
+ .byte 2
23912
+ .byte 0
2373023913 .type gNandParaInfo, %object
2373123914 .size gNandParaInfo, 32
2373223915 gNandParaInfo:
....@@ -26070,232 +26253,6 @@
2607026253 .byte 0
2607126254 .byte 0
2607226255 .space 14
26073
- .type ToshibaA19RefValue, %object
26074
- .size ToshibaA19RefValue, 45
26075
-ToshibaA19RefValue:
26076
- .byte 4
26077
- .byte 5
26078
- .byte 6
26079
- .byte 7
26080
- .byte 13
26081
- .byte 0
26082
- .byte 0
26083
- .byte 0
26084
- .byte 0
26085
- .byte 0
26086
- .byte 4
26087
- .byte 4
26088
- .byte 124
26089
- .byte 126
26090
- .byte 0
26091
- .byte 0
26092
- .byte 124
26093
- .byte 120
26094
- .byte 120
26095
- .byte 0
26096
- .byte 124
26097
- .byte 118
26098
- .byte 116
26099
- .byte 114
26100
- .byte 0
26101
- .byte 8
26102
- .byte 8
26103
- .byte 0
26104
- .byte 0
26105
- .byte 0
26106
- .byte 11
26107
- .byte 126
26108
- .byte 118
26109
- .byte 116
26110
- .byte 0
26111
- .byte 16
26112
- .byte 118
26113
- .byte 114
26114
- .byte 112
26115
- .byte 0
26116
- .byte 2
26117
- .byte 0
26118
- .byte 126
26119
- .byte 124
26120
- .byte 0
26121
- .space 3
26122
- .type Toshiba15RefValue, %object
26123
- .size Toshiba15RefValue, 95
26124
-Toshiba15RefValue:
26125
- .byte 4
26126
- .byte 5
26127
- .byte 6
26128
- .byte 7
26129
- .byte 13
26130
- .byte 0
26131
- .byte 0
26132
- .byte 0
26133
- .byte 0
26134
- .byte 0
26135
- .byte 0
26136
- .byte 0
26137
- .byte 0
26138
- .byte 0
26139
- .byte 0
26140
- .byte 2
26141
- .byte 4
26142
- .byte 2
26143
- .byte 0
26144
- .byte 0
26145
- .byte 8
26146
- .byte 8
26147
- .byte 0
26148
- .byte 0
26149
- .byte 0
26150
- .byte 124
26151
- .byte 0
26152
- .byte 124
26153
- .byte 124
26154
- .byte 0
26155
- .byte 122
26156
- .byte 0
26157
- .byte 122
26158
- .byte 122
26159
- .byte 0
26160
- .byte 11
26161
- .byte 126
26162
- .byte 118
26163
- .byte 116
26164
- .byte 0
26165
- .byte 120
26166
- .byte 2
26167
- .byte 120
26168
- .byte 122
26169
- .byte 0
26170
- .byte 126
26171
- .byte 4
26172
- .byte 126
26173
- .byte 122
26174
- .byte 0
26175
- .byte 16
26176
- .byte 118
26177
- .byte 114
26178
- .byte 112
26179
- .byte 0
26180
- .byte 118
26181
- .byte 4
26182
- .byte 118
26183
- .byte 120
26184
- .byte 0
26185
- .byte 4
26186
- .byte 4
26187
- .byte 4
26188
- .byte 118
26189
- .byte 0
26190
- .byte 2
26191
- .byte 0
26192
- .byte 126
26193
- .byte 124
26194
- .byte 0
26195
- .byte 6
26196
- .byte 10
26197
- .byte 6
26198
- .byte 2
26199
- .byte 0
26200
- .byte 116
26201
- .byte 124
26202
- .byte 116
26203
- .byte 118
26204
- .byte 0
26205
- .byte 4
26206
- .byte 4
26207
- .byte 124
26208
- .byte 126
26209
- .byte 0
26210
- .byte 0
26211
- .byte 124
26212
- .byte 120
26213
- .byte 120
26214
- .byte 0
26215
- .byte 124
26216
- .byte 118
26217
- .byte 116
26218
- .byte 114
26219
- .byte 0
26220
- .space 1
26221
- .type ToshibaRefValue, %object
26222
- .size ToshibaRefValue, 8
26223
-ToshibaRefValue:
26224
- .byte 0
26225
- .byte 4
26226
- .byte 124
26227
- .byte 120
26228
- .byte 116
26229
- .byte 8
26230
- .byte 12
26231
- .byte 112
26232
- .type SamsungRefValue, %object
26233
- .size SamsungRefValue, 64
26234
-SamsungRefValue:
26235
- .byte -89
26236
- .byte -92
26237
- .byte -91
26238
- .byte -90
26239
- .byte 0
26240
- .byte 0
26241
- .byte 0
26242
- .byte 0
26243
- .byte 5
26244
- .byte 10
26245
- .byte 0
26246
- .byte 0
26247
- .byte 40
26248
- .byte 0
26249
- .byte -20
26250
- .byte -40
26251
- .byte -19
26252
- .byte -11
26253
- .byte -19
26254
- .byte -26
26255
- .byte 10
26256
- .byte 15
26257
- .byte 5
26258
- .byte 0
26259
- .byte 15
26260
- .byte 10
26261
- .byte -5
26262
- .byte -20
26263
- .byte -24
26264
- .byte -17
26265
- .byte -24
26266
- .byte -36
26267
- .byte -15
26268
- .byte -5
26269
- .byte -2
26270
- .byte -16
26271
- .byte 10
26272
- .byte 0
26273
- .byte -5
26274
- .byte -20
26275
- .byte -48
26276
- .byte -30
26277
- .byte -48
26278
- .byte -62
26279
- .byte 20
26280
- .byte 15
26281
- .byte -5
26282
- .byte -20
26283
- .byte -24
26284
- .byte -5
26285
- .byte -24
26286
- .byte -36
26287
- .byte 30
26288
- .byte 20
26289
- .byte -5
26290
- .byte -20
26291
- .byte -5
26292
- .byte -1
26293
- .byte -5
26294
- .byte -8
26295
- .byte 7
26296
- .byte 12
26297
- .byte 2
26298
- .byte 0
2629926256 .type refValueDefault, %object
2630026257 .size refValueDefault, 28
2630126258 refValueDefault:
....@@ -26371,9 +26328,16 @@
2637126328 .word 1
2637226329 .bss
2637326330 .align 2
26374
-.LANCHOR0 = . + 0
26375
-.LANCHOR2 = . + 8184
26376
-.LANCHOR4 = . + 16368
26331
+ .set .LANCHOR0,. + 0
26332
+ .set .LANCHOR2,. + 8184
26333
+ .type gNandChipMap, %object
26334
+ .size gNandChipMap, 32
26335
+gNandChipMap:
26336
+ .space 32
26337
+ .type p_blk_mode_table, %object
26338
+ .size p_blk_mode_table, 4
26339
+p_blk_mode_table:
26340
+ .space 4
2637726341 .type g_slc2KBNand, %object
2637826342 .size g_slc2KBNand, 1
2637926343 g_slc2KBNand:
....@@ -26392,10 +26356,6 @@
2639226356 gNandRandomizer:
2639326357 .space 1
2639426358 .space 3
26395
- .type gNandChipMap, %object
26396
- .size gNandChipMap, 32
26397
-gNandChipMap:
26398
- .space 32
2639926359 .type gpNandParaInfo, %object
2640026360 .size gpNandParaInfo, 4
2640126361 gpNandParaInfo:
....@@ -26618,11 +26578,11 @@
2661826578 .size gMultiPageReadEn, 1
2661926579 gMultiPageReadEn:
2662026580 .space 1
26621
- .space 2
2662226581 .type FbbtBlk, %object
2662326582 .size FbbtBlk, 16
2662426583 FbbtBlk:
2662526584 .space 16
26585
+ .space 2
2662626586 .type c_ftl_nand_sys_blks_per_plane, %object
2662726587 .size c_ftl_nand_sys_blks_per_plane, 4
2662826588 c_ftl_nand_sys_blks_per_plane:
....@@ -26663,7 +26623,6 @@
2666326623 .type c_ftl_nand_planes_per_die, %object
2666426624 .size c_ftl_nand_planes_per_die, 2
2666526625 c_ftl_nand_planes_per_die:
26666
- .space 2
2666726626 .space 2
2666826627 .type p_plane_order_table, %object
2666926628 .size p_plane_order_table, 32
....@@ -26716,6 +26675,7 @@
2671626675 .type c_ftl_nand_reserved_blks, %object
2671726676 .size c_ftl_nand_reserved_blks, 2
2671826677 c_ftl_nand_reserved_blks:
26678
+ .space 2
2671926679 .space 2
2672026680 .type DeviceCapacity, %object
2672126681 .size DeviceCapacity, 4
....@@ -27007,10 +26967,6 @@
2700726967 .size p_map_block_valid_page_count, 4
2700826968 p_map_block_valid_page_count:
2700926969 .space 4
27010
- .type p_blk_mode_table, %object
27011
- .size p_blk_mode_table, 4
27012
-p_blk_mode_table:
27013
- .space 4
2701426970 .type p_vendor_block_table, %object
2701526971 .size p_vendor_block_table, 4
2701626972 p_vendor_block_table:
....@@ -27150,10 +27106,6 @@
2715027106 g_totle_map_block:
2715127107 .space 2
2715227108 .space 2
27153
- .type check_valid_page_count_table, %object
27154
- .size check_valid_page_count_table, 8192
27155
-check_valid_page_count_table:
27156
- .space 8192
2715727109 .type g_MaxLbn, %object
2715827110 .size g_MaxLbn, 4
2715927111 g_MaxLbn:
....@@ -27275,6 +27227,10 @@
2727527227 .size last_cache_match_count, 4
2727627228 last_cache_match_count:
2727727229 .space 4
27230
+ .type check_valid_page_count_table, %object
27231
+ .size check_valid_page_count_table, 8192
27232
+check_valid_page_count_table:
27233
+ .space 8192
2727827234 .type g_gc_refresh_block_temp_tbl, %object
2727927235 .size g_gc_refresh_block_temp_tbl, 34
2728027236 g_gc_refresh_block_temp_tbl:
....@@ -27304,3 +27260,352 @@
2730427260 .size gFlashSdrModeEn, 1
2730527261 gFlashSdrModeEn:
2730627262 .space 1
27263
+ .section .rodata.str1.1,"aMS",%progbits,1
27264
+.LC1:
27265
+ .ascii "FlashEraseBlocks pageAddr error %x\012\000"
27266
+.LC2:
27267
+ .ascii "otp error! %d\000"
27268
+.LC3:
27269
+ .ascii "rr\000"
27270
+.LC4:
27271
+ .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012"
27272
+ .ascii "\000"
27273
+.LC5:
27274
+ .ascii "nandc:\000"
27275
+.LC6:
27276
+ .ascii "%d flReg.d32=%x %x\012\000"
27277
+.LC7:
27278
+ .ascii "sdr read ok %x ecc=%d\012\000"
27279
+.LC8:
27280
+ .ascii "sync para %d\012\000"
27281
+.LC9:
27282
+ .ascii "TOG mode Read error %x %x\012\000"
27283
+.LC10:
27284
+ .ascii "read retry status %x %x %x\012\000"
27285
+.LC11:
27286
+ .ascii "micron RR %d row=%x,count %d,status=%d\012\000"
27287
+.LC12:
27288
+ .ascii "samsung RR %d row=%x,count %d,status=%d\012\000"
27289
+.LC13:
27290
+ .ascii "ECC:%d\012\000"
27291
+.LC14:
27292
+ .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000"
27293
+.LC15:
27294
+ .ascii "FlashLoadPhyInfo fail %x!!\012\000"
27295
+.LC16:
27296
+ .ascii "Read pageadd=%x ecc=%x err=%x\012\000"
27297
+.LC17:
27298
+ .ascii "data:\000"
27299
+.LC18:
27300
+ .ascii "spare:\000"
27301
+.LC19:
27302
+ .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000"
27303
+.LC20:
27304
+ .ascii "FLFB:%d %d\012\000"
27305
+.LC21:
27306
+ .ascii "BBT:\000"
27307
+.LC22:
27308
+ .ascii "prog error: = %x\012\000"
27309
+.LC23:
27310
+ .ascii "prog read error: = %x\012\000"
27311
+.LC24:
27312
+ .ascii "prog read REFRESH: = %x\012\000"
27313
+.LC25:
27314
+ .ascii "prog read s error: = %x %x %x\012\000"
27315
+.LC26:
27316
+ .ascii "prog read d error: = %x %x %x\012\000"
27317
+.LC27:
27318
+ .ascii "FlashMakeFactorBbt %d\012\000"
27319
+.LC28:
27320
+ .ascii "bad block:%d %d\012\000"
27321
+.LC29:
27322
+ .ascii "FMFB:%d %d\012\000"
27323
+.LC30:
27324
+ .ascii "E:bad block:%d\012\000"
27325
+.LC31:
27326
+ .ascii "FMFB:Save %d %d\012\000"
27327
+.LC32:
27328
+ .ascii "%s error allocating memory. return -1\012\000"
27329
+.LC33:
27330
+ .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
27331
+ .ascii "\000"
27332
+.LC34:
27333
+ .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
27334
+.LC35:
27335
+ .ascii "FtlBbmTblFlush error:%x\012\000"
27336
+.LC36:
27337
+ .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
27338
+.LC37:
27339
+ .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000"
27340
+.LC38:
27341
+ .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
27342
+ .ascii "\000"
27343
+.LC39:
27344
+ .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
27345
+.LC40:
27346
+ .ascii "FtlMapWritePage error = %x\012\000"
27347
+.LC41:
27348
+ .ascii "FtlMapWritePage error = %x error count = %d\012\000"
27349
+.LC42:
27350
+ .ascii "page map lost: %x %x\012\000"
27351
+.LC43:
27352
+ .ascii "region_id = %x phyAddr = %x\012\000"
27353
+.LC44:
27354
+ .ascii "map_ppn:\000"
27355
+.LC45:
27356
+ .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
27357
+.LC46:
27358
+ .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
27359
+.LC47:
27360
+ .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
27361
+.LC48:
27362
+ .ascii "no ect\000"
27363
+.LC49:
27364
+ .ascii "%s\012\000"
27365
+.LC50:
27366
+ .ascii "...%s enter...\012\000"
27367
+.LC51:
27368
+ .ascii "FtlCheckVpc2 %x = %x %x\012\000"
27369
+.LC52:
27370
+ .ascii "free blk vpc error %x = %x %x\012\000"
27371
+.LC53:
27372
+ .ascii "error_flag %x\012\000"
27373
+.LC54:
27374
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012"
27375
+ .ascii "\000"
27376
+.LC55:
27377
+ .ascii ":\000"
27378
+.LC56:
27379
+ .ascii "Ftlscanalldata = %x\012\000"
27380
+.LC57:
27381
+ .ascii "scan lpa = %x ppa= %x\012\000"
27382
+.LC58:
27383
+ .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
27384
+ .ascii "\000"
27385
+.LC59:
27386
+ .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
27387
+ .ascii "\000"
27388
+.LC60:
27389
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012"
27390
+ .ascii "\000"
27391
+.LC61:
27392
+ .ascii "Mblk:\000"
27393
+.LC62:
27394
+ .ascii "L2P:\000"
27395
+.LC63:
27396
+ .ascii "L2PC:\000"
27397
+.LC64:
27398
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012"
27399
+ .ascii "\000"
27400
+.LC65:
27401
+ .ascii "superBlkID = %x vpc=%x\012\000"
27402
+.LC66:
27403
+ .ascii "flashmode = %x pagenum = %x %x\012\000"
27404
+.LC67:
27405
+ .ascii "blk = %x vpc=%x mode = %x\012\000"
27406
+.LC68:
27407
+ .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
27408
+ .ascii "%x\012\000"
27409
+.LC69:
27410
+ .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
27411
+ .ascii "%x\012\000"
27412
+.LC70:
27413
+ .ascii "slc mode\000"
27414
+.LC71:
27415
+ .ascii "ftl_scan_all_ppa blk %x page %x flag: %x\012\000"
27416
+.LC72:
27417
+ .ascii "ftl_scan_all_ppa blk %x page %x flag: %x .........."
27418
+ .ascii "..... is bad block\012\000"
27419
+.LC73:
27420
+ .ascii "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012"
27421
+ .ascii "\000"
27422
+.LC74:
27423
+ .ascii "%s finished\012\000"
27424
+.LC75:
27425
+ .ascii "FLASH INFO:\012\000"
27426
+.LC76:
27427
+ .ascii "FLASH ID: %x\012\000"
27428
+.LC77:
27429
+ .ascii "Device Capacity: %d MB\012\000"
27430
+.LC78:
27431
+ .ascii "FMWAIT: %x %x %x %x\012\000"
27432
+.LC79:
27433
+ .ascii "FTL INFO:\012\000"
27434
+.LC80:
27435
+ .ascii "g_MaxLpn = 0x%x\012\000"
27436
+.LC81:
27437
+ .ascii "g_VaildLpn = 0x%x\012\000"
27438
+.LC82:
27439
+ .ascii "read_page_count = 0x%x\012\000"
27440
+.LC83:
27441
+ .ascii "discard_page_count = 0x%x\012\000"
27442
+.LC84:
27443
+ .ascii "write_page_count = 0x%x\012\000"
27444
+.LC85:
27445
+ .ascii "cache_write_count = 0x%x\012\000"
27446
+.LC86:
27447
+ .ascii "l2p_write_count = 0x%x\012\000"
27448
+.LC87:
27449
+ .ascii "gc_page_count = 0x%x\012\000"
27450
+.LC88:
27451
+ .ascii "totle_write = %d MB\012\000"
27452
+.LC89:
27453
+ .ascii "totle_read = %d MB\012\000"
27454
+.LC90:
27455
+ .ascii "GSV = 0x%x\012\000"
27456
+.LC91:
27457
+ .ascii "GDV = 0x%x\012\000"
27458
+.LC92:
27459
+ .ascii "bad blk num = %d %d\012\000"
27460
+.LC93:
27461
+ .ascii "free_superblocks = 0x%x\012\000"
27462
+.LC94:
27463
+ .ascii "mlc_EC = 0x%x\012\000"
27464
+.LC95:
27465
+ .ascii "slc_EC = 0x%x\012\000"
27466
+.LC96:
27467
+ .ascii "avg_EC = 0x%x\012\000"
27468
+.LC97:
27469
+ .ascii "sys_EC = 0x%x\012\000"
27470
+.LC98:
27471
+ .ascii "max_EC = 0x%x\012\000"
27472
+.LC99:
27473
+ .ascii "min_EC = 0x%x\012\000"
27474
+.LC100:
27475
+ .ascii "PLT = 0x%x\012\000"
27476
+.LC101:
27477
+ .ascii "POT = 0x%x\012\000"
27478
+.LC102:
27479
+ .ascii "MaxSector = 0x%x\012\000"
27480
+.LC103:
27481
+ .ascii "init_sys_blks_pp = 0x%x\012\000"
27482
+.LC104:
27483
+ .ascii "sys_blks_pp = 0x%x\012\000"
27484
+.LC105:
27485
+ .ascii "free sysblock = 0x%x\012\000"
27486
+.LC106:
27487
+ .ascii "data_blks_pp = 0x%x\012\000"
27488
+.LC107:
27489
+ .ascii "data_op_blks_pp = 0x%x\012\000"
27490
+.LC108:
27491
+ .ascii "max_data_blks = 0x%x\012\000"
27492
+.LC109:
27493
+ .ascii "Sys.id = 0x%x\012\000"
27494
+.LC110:
27495
+ .ascii "Bbt.id = 0x%x\012\000"
27496
+.LC111:
27497
+ .ascii "ACT.page = 0x%x\012\000"
27498
+.LC112:
27499
+ .ascii "ACT.plane = 0x%x\012\000"
27500
+.LC113:
27501
+ .ascii "ACT.id = 0x%x\012\000"
27502
+.LC114:
27503
+ .ascii "ACT.mode = 0x%x\012\000"
27504
+.LC115:
27505
+ .ascii "ACT.a_pages = 0x%x\012\000"
27506
+.LC116:
27507
+ .ascii "ACT VPC = 0x%x\012\000"
27508
+.LC117:
27509
+ .ascii "BUF.page = 0x%x\012\000"
27510
+.LC118:
27511
+ .ascii "BUF.plane = 0x%x\012\000"
27512
+.LC119:
27513
+ .ascii "BUF.id = 0x%x\012\000"
27514
+.LC120:
27515
+ .ascii "BUF.mode = 0x%x\012\000"
27516
+.LC121:
27517
+ .ascii "BUF.a_pages = 0x%x\012\000"
27518
+.LC122:
27519
+ .ascii "BUF VPC = 0x%x\012\000"
27520
+.LC123:
27521
+ .ascii "TMP.page = 0x%x\012\000"
27522
+.LC124:
27523
+ .ascii "TMP.plane = 0x%x\012\000"
27524
+.LC125:
27525
+ .ascii "TMP.id = 0x%x\012\000"
27526
+.LC126:
27527
+ .ascii "TMP.mode = 0x%x\012\000"
27528
+.LC127:
27529
+ .ascii "TMP.a_pages = 0x%x\012\000"
27530
+.LC128:
27531
+ .ascii "GC.page = 0x%x\012\000"
27532
+.LC129:
27533
+ .ascii "GC.plane = 0x%x\012\000"
27534
+.LC130:
27535
+ .ascii "GC.id = 0x%x\012\000"
27536
+.LC131:
27537
+ .ascii "GC.mode = 0x%x\012\000"
27538
+.LC132:
27539
+ .ascii "GC.a_pages = 0x%x\012\000"
27540
+.LC133:
27541
+ .ascii "WR_CHK = 0x%x %x %x %x\012\000"
27542
+.LC134:
27543
+ .ascii "Read Err = 0x%x\012\000"
27544
+.LC135:
27545
+ .ascii "Prog Err = 0x%x\012\000"
27546
+.LC136:
27547
+ .ascii "gc_free_blk_th= 0x%x\012\000"
27548
+.LC137:
27549
+ .ascii "gc_merge_free_blk_th= 0x%x\012\000"
27550
+.LC138:
27551
+ .ascii "gc_skip_write_count= 0x%x\012\000"
27552
+.LC139:
27553
+ .ascii "gc_blk_index= 0x%x\012\000"
27554
+.LC140:
27555
+ .ascii "free min EC= 0x%x\012\000"
27556
+.LC141:
27557
+ .ascii "free max EC= 0x%x\012\000"
27558
+.LC142:
27559
+ .ascii "GC__SB VPC = 0x%x\012\000"
27560
+.LC143:
27561
+ .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
27562
+.LC144:
27563
+ .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
27564
+.LC145:
27565
+ .ascii "FTL version: 5.0.63 20210616\000"
27566
+.LC146:
27567
+ .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
27568
+ .ascii "\012\000"
27569
+.LC147:
27570
+ .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
27571
+.LC148:
27572
+ .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
27573
+.LC149:
27574
+ .ascii "FtlGcRefreshBlock 0x%x\012\000"
27575
+.LC150:
27576
+ .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000"
27577
+.LC151:
27578
+ .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
27579
+.LC152:
27580
+ .ascii "decrement_vpc_count %x = %d\012\000"
27581
+.LC153:
27582
+ .ascii "decrement_vpc_count %x = %d in free list\012\000"
27583
+.LC154:
27584
+ .ascii "RSB refresh addr %x\012\000"
27585
+.LC155:
27586
+ .ascii "spuer block %x vpn is 0\012 \000"
27587
+.LC156:
27588
+ .ascii "g_recovery_ppa %x ver %x\012 \000"
27589
+.LC157:
27590
+ .ascii "FtlCheckVpc %x = %x %x\012\000"
27591
+.LC158:
27592
+ .ascii "%d GC datablk = %x vpc %x %x\012\000"
27593
+.LC159:
27594
+ .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
27595
+.LC160:
27596
+ .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
27597
+.LC161:
27598
+ .ascii "GC des block %x done\012\000"
27599
+.LC162:
27600
+ .ascii "too many bad block = %d %d\012\000"
27601
+.LC163:
27602
+ .ascii "...%s: no bad block mapping table, format device\012"
27603
+ .ascii "\000"
27604
+.LC164:
27605
+ .ascii "...%s FtlSysBlkInit error ,format device!\012\000"
27606
+.LC165:
27607
+ .ascii "FtlWrite: lpa error:%x %x\012\000"
27608
+.LC166:
27609
+ .ascii "fix power lost blk = %x vpc=%x\012\000"
27610
+.LC167:
27611
+ .ascii "erase power lost blk = %x vpc=%x\012\000"