hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/rk_nand/rk_ftl_arm_v7.S
....@@ -5,10 +5,9 @@
55 * it under the terms of the GNU General Public License as published by
66 * the Free Software Foundation; either version 2 of the License, or
77 * (at your option) any later version.
8
- * date: 2020-09-23
8
+ * date: 2021-07-26
99 */
1010 .arch armv7-a
11
- .fpu softvfp
1211 .eabi_attribute 20, 1
1312 .eabi_attribute 21, 1
1413 .eabi_attribute 23, 3
....@@ -17,139 +16,246 @@
1716 .eabi_attribute 26, 2
1817 .eabi_attribute 30, 4
1918 .eabi_attribute 34, 1
20
- .eabi_attribute 18, 4
21
- .file "rk_ftl_arm_v7.S"
22
-#APP
19
+ .file "rk_ftl_arm_v7.c"
2320 .syntax unified
2421 .text
2522 .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.9, %function
91
+ftl_set_blk_mode.part.9:
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.9, .-ftl_set_blk_mode.part.9
111
+ .align 2
26112 .global FlashMemCmp8
113
+ .syntax unified
114
+ .arm
115
+ .fpu softvfp
27116 .type FlashMemCmp8, %function
28117 FlashMemCmp8:
29118 .fnstart
30119 @ args = 0, pretend = 0, frame = 0
31120 @ frame_needed = 0, uses_anonymous_args = 0
32
- ldr r3, .L11
33
- str lr, [sp, #-4]!
34
- .save {lr}
35
- ldrb r3, [r3] @ zero_extendqisi2
121
+ ldr r3, .L25
122
+ ldrb r3, [r3, #36] @ zero_extendqisi2
36123 cmp r3, #0
37
- beq .L4
124
+ beq .L20
38125 ldrb r3, [r1, #1] @ zero_extendqisi2
39126 ldrb ip, [r0, #1] @ zero_extendqisi2
40127 cmp ip, r3
41128 movne r3, #0
42
- beq .L8
43
-.L4:
129
+ bne .L20
130
+.L24:
131
+ mov r0, #0
132
+ bx lr
133
+.L14:
44134 cmp r3, r2
45
- 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:
46144 ldrb lr, [r0, r3] @ zero_extendqisi2
47145 ldrb ip, [r1, r3] @ zero_extendqisi2
48146 add r3, r3, #1
49147 cmp lr, ip
50
- beq .L4
148
+ beq .L14
51149 mov r0, r3
52150 ldr pc, [sp], #4
53
-.L8:
54
- mov r0, #0
55
- ldr pc, [sp], #4
56
-.L12:
151
+.L26:
57152 .align 2
58
-.L11:
153
+.L25:
59154 .word .LANCHOR0
60155 .fnend
61156 .size FlashMemCmp8, .-FlashMemCmp8
62157 .align 2
63158 .global FlashRsvdBlkChk
159
+ .syntax unified
160
+ .arm
161
+ .fpu softvfp
64162 .type FlashRsvdBlkChk, %function
65163 FlashRsvdBlkChk:
66164 .fnstart
67165 @ args = 0, pretend = 0, frame = 0
68166 @ frame_needed = 0, uses_anonymous_args = 0
69167 @ link register save eliminated.
70
- ldr r3, .L14
71
- ldrb r2, [r3, #1] @ zero_extendqisi2
72
- ldr r3, [r3, #4]
73
- mul r3, r3, r2
74
- cmp r1, r3
75
- movcs r2, #0
76
- 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
77175 cmp r0, #0
78176 movne r2, #0
79177 eor r0, r2, #1
80178 bx lr
81
-.L15:
179
+.L29:
82180 .align 2
83
-.L14:
181
+.L28:
84182 .word .LANCHOR0
85183 .fnend
86184 .size FlashRsvdBlkChk, .-FlashRsvdBlkChk
87185 .align 2
88186 .global FlashGetRandomizer
187
+ .syntax unified
188
+ .arm
189
+ .fpu softvfp
89190 .type FlashGetRandomizer, %function
90191 FlashGetRandomizer:
91192 .fnstart
92193 @ args = 0, pretend = 0, frame = 0
93194 @ frame_needed = 0, uses_anonymous_args = 0
94195 and r3, r1, #127
95
- ldr r2, .L25
96
- stmfd sp!, {r4, lr}
196
+ ldr r2, .L39
197
+ lsl r3, r3, #1
198
+ push {r4, lr}
97199 .save {r4, lr}
98
- mov r3, r3, asl #1
99200 ldrh r4, [r2, r3]
100
- ldr r3, .L25+4
101
- ldrb r3, [r3, #8] @ zero_extendqisi2
201
+ ldr r3, .L39+4
202
+ ldrb r3, [r3, #44] @ zero_extendqisi2
102203 cmp r3, #0
103
- beq .L17
204
+ beq .L30
104205 bl FlashRsvdBlkChk
105206 cmp r0, #0
106207 orrne r4, r4, #-1073741824
107
-.L17:
208
+.L30:
108209 mov r0, r4
109
- ldmfd sp!, {r4, pc}
110
-.L26:
210
+ pop {r4, pc}
211
+.L40:
111212 .align 2
112
-.L25:
213
+.L39:
113214 .word .LANCHOR1
114215 .word .LANCHOR0
115216 .fnend
116217 .size FlashGetRandomizer, .-FlashGetRandomizer
117218 .align 2
118219 .global FlashSetRandomizer
220
+ .syntax unified
221
+ .arm
222
+ .fpu softvfp
119223 .type FlashSetRandomizer, %function
120224 FlashSetRandomizer:
121225 .fnstart
122226 @ args = 0, pretend = 0, frame = 0
123227 @ frame_needed = 0, uses_anonymous_args = 0
228
+ ldr r2, .L50
124229 and r3, r1, #127
125
- ldr r2, .L36
126
- stmfd sp!, {r4, r5, r6, lr}
230
+ lsl r3, r3, #1
231
+ push {r4, r5, r6, lr}
127232 .save {r4, r5, r6, lr}
128
- mov r3, r3, asl #1
129233 mov r6, r0
130234 ldrh r5, [r2, r3]
131
- ldr r3, .L36+4
132
- ldrb r2, [r3, #8] @ zero_extendqisi2
235
+ ldr r3, .L50+4
236
+ ldrb r2, [r3, #44] @ zero_extendqisi2
133237 mov r4, r3
134238 cmp r2, #0
135
- beq .L28
239
+ beq .L42
136240 bl FlashRsvdBlkChk
137241 cmp r0, #0
138242 orrne r5, r5, #-1073741824
139
-.L28:
140
- add r4, r4, r6, asl #3
141
- ldr r3, [r4, #12]
243
+.L42:
244
+ ldr r3, [r4, r6, lsl #3]
142245 str r5, [r3, #336]
143
- ldmfd sp!, {r4, r5, r6, pc}
144
-.L37:
246
+ pop {r4, r5, r6, pc}
247
+.L51:
145248 .align 2
146
-.L36:
249
+.L50:
147250 .word .LANCHOR1
148251 .word .LANCHOR0
149252 .fnend
150253 .size FlashSetRandomizer, .-FlashSetRandomizer
151254 .align 2
152255 .global FlashBlockAlignInit
256
+ .syntax unified
257
+ .arm
258
+ .fpu softvfp
153259 .type FlashBlockAlignInit, %function
154260 FlashBlockAlignInit:
155261 .fnstart
....@@ -157,45 +263,49 @@
157263 @ frame_needed = 0, uses_anonymous_args = 0
158264 @ link register save eliminated.
159265 cmp r0, #512
160
- ldr r3, .L44
266
+ ldr r3, .L58
161267 movhi r2, #1024
162
- bhi .L43
268
+ bhi .L57
163269 cmp r0, #256
164270 movhi r2, #512
165
- bhi .L43
271
+ bhi .L57
166272 cmp r0, #128
167
- strls r0, [r3, #4]
168
- bxls lr
169
- mov r2, #256
170
-.L43:
171
- str r2, [r3, #4]
273
+ movhi r2, #256
274
+ bhi .L57
275
+ str r0, [r3, #40]
172276 bx lr
173
-.L45:
277
+.L57:
278
+ str r2, [r3, #40]
279
+ bx lr
280
+.L59:
174281 .align 2
175
-.L44:
282
+.L58:
176283 .word .LANCHOR0
177284 .fnend
178285 .size FlashBlockAlignInit, .-FlashBlockAlignInit
179286 .align 2
180287 .global FlashReadCmd
288
+ .syntax unified
289
+ .arm
290
+ .fpu softvfp
181291 .type FlashReadCmd, %function
182292 FlashReadCmd:
183293 .fnstart
184294 @ args = 0, pretend = 0, frame = 0
185295 @ frame_needed = 0, uses_anonymous_args = 0
186
- ldr ip, .L49
296
+ ldr ip, .L63
187297 str lr, [sp, #-4]!
188298 .save {lr}
189
- add r3, ip, r0, asl #3
190
- ldr ip, [ip, #44]
191
- ldr r2, [r3, #12]
192
- 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
193303 ldrb ip, [ip, #7] @ zero_extendqisi2
194
- mov r3, r3, asl #8
304
+ lsl r2, r2, #8
195305 cmp ip, #1
196
- addeq ip, r2, r3
197
- add r3, r2, r3
306
+ addeq ip, r3, r2
198307 moveq lr, #38
308
+ add r3, r3, r2
199309 mov r2, #0
200310 streq lr, [ip, #2056]
201311 str r2, [r3, #2056]
....@@ -203,41 +313,44 @@
203313 str r2, [r3, #2052]
204314 uxtb r2, r1
205315 str r2, [r3, #2052]
206
- mov r2, r1, lsr #8
316
+ lsr r2, r1, #8
207317 str r2, [r3, #2052]
208
- mov r2, r1, lsr #16
318
+ lsr r2, r1, #16
209319 str r2, [r3, #2052]
210320 mov r2, #48
211321 str r2, [r3, #2056]
212322 ldr lr, [sp], #4
213323 b FlashSetRandomizer
214
-.L50:
324
+.L64:
215325 .align 2
216
-.L49:
326
+.L63:
217327 .word .LANCHOR0
218328 .fnend
219329 .size FlashReadCmd, .-FlashReadCmd
220330 .align 2
221331 .global FlashReadDpDataOutCmd
332
+ .syntax unified
333
+ .arm
334
+ .fpu softvfp
222335 .type FlashReadDpDataOutCmd, %function
223336 FlashReadDpDataOutCmd:
224337 .fnstart
225338 @ args = 0, pretend = 0, frame = 0
226339 @ frame_needed = 0, uses_anonymous_args = 0
227
- ldr ip, .L56
228
- stmfd sp!, {r4, lr}
340
+ ldr ip, .L70
341
+ push {r4, lr}
229342 .save {r4, lr}
230
- add r3, ip, r0, asl #3
231
- ldrb ip, [ip, #64] @ zero_extendqisi2
232343 uxtb r4, r1
233
- ldr r2, [r3, #12]
234
- mov lr, r1, lsr #8
235
- 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
236349 cmp ip, #1
237
- mov ip, r1, lsr #16
238
- mov r3, r3, asl #8
239
- add r3, r2, r3
240
- bne .L52
350
+ lsr ip, r1, #16
351
+ lsl r2, r2, #8
352
+ add r3, r3, r2
353
+ bne .L66
241354 mov r2, #6
242355 str r2, [r3, #2056]
243356 mov r2, #0
....@@ -246,8 +359,12 @@
246359 str r4, [r3, #2052]
247360 str lr, [r3, #2052]
248361 str ip, [r3, #2052]
249
- b .L55
250
-.L52:
362
+.L69:
363
+ mov r2, #224
364
+ str r2, [r3, #2056]
365
+ pop {r4, lr}
366
+ b FlashSetRandomizer
367
+.L66:
251368 mov r2, #0
252369 str r2, [r3, #2056]
253370 str r2, [r3, #2052]
....@@ -259,31 +376,31 @@
259376 str ip, [r3, #2056]
260377 str r2, [r3, #2052]
261378 str r2, [r3, #2052]
262
-.L55:
263
- mov r2, #224
264
- str r2, [r3, #2056]
265
- ldmfd sp!, {r4, lr}
266
- b FlashSetRandomizer
267
-.L57:
379
+ b .L69
380
+.L71:
268381 .align 2
269
-.L56:
382
+.L70:
270383 .word .LANCHOR0
271384 .fnend
272385 .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd
273386 .align 2
274387 .global FlashProgFirstCmd
388
+ .syntax unified
389
+ .arm
390
+ .fpu softvfp
275391 .type FlashProgFirstCmd, %function
276392 FlashProgFirstCmd:
277393 .fnstart
278394 @ args = 0, pretend = 0, frame = 0
279395 @ frame_needed = 0, uses_anonymous_args = 0
280
- @ link register save eliminated.
281
- ldr ip, .L59
282
- mov r2, r1, lsr #16
283
- add ip, ip, r0, asl #3
284
- ldr r3, [ip, #12]
285
- ldrb ip, [ip, #16] @ zero_extendqisi2
286
- 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
287404 mov ip, #128
288405 str ip, [r3, #2056]
289406 mov ip, #0
....@@ -291,176 +408,225 @@
291408 str ip, [r3, #2052]
292409 uxtb ip, r1
293410 str ip, [r3, #2052]
294
- mov ip, r1, lsr #8
411
+ lsr ip, r1, #8
295412 str ip, [r3, #2052]
296413 str r2, [r3, #2052]
414
+ ldr lr, [sp], #4
297415 b FlashSetRandomizer
298
-.L60:
416
+.L75:
299417 .align 2
300
-.L59:
418
+.L74:
301419 .word .LANCHOR0
302420 .fnend
303421 .size FlashProgFirstCmd, .-FlashProgFirstCmd
304422 .align 2
305423 .global FlashEraseCmd
424
+ .syntax unified
425
+ .arm
426
+ .fpu softvfp
306427 .type FlashEraseCmd, %function
307428 FlashEraseCmd:
308429 .fnstart
309430 @ args = 0, pretend = 0, frame = 0
310431 @ frame_needed = 0, uses_anonymous_args = 0
432
+ ldr ip, .L82
433
+ cmp r2, #0
311434 str lr, [sp, #-4]!
312435 .save {lr}
313
- cmp r2, #0
314
- ldr lr, .L67
315
- add r0, lr, r0, asl #3
316
- ldrb r3, [r0, #16] @ zero_extendqisi2
317
- ldr ip, [r0, #12]
318
- mov r3, r3, asl #8
319
- beq .L62
320
- add r2, ip, r3
321
- mov r0, #96
322
- str r0, [r2, #2056]
323
- uxtb r0, r1
324
- str r0, [r2, #2052]
325
- mov r0, r1, lsr #8
326
- str r0, [r2, #2052]
327
- mov r0, r1, lsr #16
328
- str r0, [r2, #2052]
329
- 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]
330451 add r1, r1, r2
331
-.L62:
332
- add r3, ip, r3
452
+.L77:
453
+ add r3, r3, r0
333454 mov r2, #96
334455 str r2, [r3, #2056]
335456 uxtb r2, r1
336457 str r2, [r3, #2052]
337
- mov r2, r1, lsr #8
338
- mov r1, r1, lsr #16
458
+ lsr r2, r1, #8
459
+ lsr r1, r1, #16
339460 str r2, [r3, #2052]
340
- str r1, [r3, #2052]
341461 mov r2, #208
462
+ str r1, [r3, #2052]
342463 str r2, [r3, #2056]
343464 ldr pc, [sp], #4
344
-.L68:
465
+.L83:
345466 .align 2
346
-.L67:
467
+.L82:
347468 .word .LANCHOR0
348469 .fnend
349470 .size FlashEraseCmd, .-FlashEraseCmd
350471 .align 2
351472 .global FlashProgDpSecondCmd
473
+ .syntax unified
474
+ .arm
475
+ .fpu softvfp
352476 .type FlashProgDpSecondCmd, %function
353477 FlashProgDpSecondCmd:
354478 .fnstart
355479 @ args = 0, pretend = 0, frame = 0
356480 @ frame_needed = 0, uses_anonymous_args = 0
357
- ldr ip, .L71
358
- mov r2, r1, lsr #16
359
- str lr, [sp, #-4]!
360
- .save {lr}
361
- add lr, ip, r0, asl #3
362
- ldrb ip, [ip, #59] @ zero_extendqisi2
363
- ldr r3, [lr, #12]
364
- ldrb lr, [lr, #16] @ zero_extendqisi2
365
- 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
366490 str ip, [r3, #2056]
367491 mov ip, #0
368492 str ip, [r3, #2052]
369493 str ip, [r3, #2052]
370494 uxtb ip, r1
371495 str ip, [r3, #2052]
372
- mov ip, r1, lsr #8
496
+ lsr ip, r1, #8
373497 str ip, [r3, #2052]
374498 str r2, [r3, #2052]
375
- ldr lr, [sp], #4
499
+ pop {r4, lr}
376500 b FlashSetRandomizer
377
-.L72:
501
+.L87:
378502 .align 2
379
-.L71:
503
+.L86:
380504 .word .LANCHOR0
381505 .fnend
382506 .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd
383507 .align 2
384508 .global FlashProgSecondCmd
509
+ .syntax unified
510
+ .arm
511
+ .fpu softvfp
385512 .type FlashProgSecondCmd, %function
386513 FlashProgSecondCmd:
387514 .fnstart
388515 @ args = 0, pretend = 0, frame = 0
389516 @ frame_needed = 0, uses_anonymous_args = 0
390
- stmfd sp!, {r3, r4, r5, lr}
391
- .save {r3, r4, r5, lr}
392
- ldr r3, .L75
393
- add r0, r3, r0, asl #3
394
- ldr r3, .L75+4
395
- ldrb r5, [r0, #16] @ zero_extendqisi2
396
- 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
397526 ldr r3, [r3, #4]
398
- add r4, r4, r5, asl #8
399
- ldr r0, .L75+8
400527 blx r3
401528 mov r3, #16
402529 str r3, [r4, #2056]
403
- ldmfd sp!, {r3, r4, r5, pc}
404
-.L76:
530
+ pop {r4, r5, r6, pc}
531
+.L91:
405532 .align 2
406
-.L75:
533
+.L90:
407534 .word .LANCHOR0
535
+ .word 64424500
408536 .word arm_delay_ops
409
- .word 214748300
410537 .fnend
411538 .size FlashProgSecondCmd, .-FlashProgSecondCmd
412539 .align 2
413540 .global FlashProgDpFirstCmd
541
+ .syntax unified
542
+ .arm
543
+ .fpu softvfp
414544 .type FlashProgDpFirstCmd, %function
415545 FlashProgDpFirstCmd:
416546 .fnstart
417547 @ args = 0, pretend = 0, frame = 0
418548 @ frame_needed = 0, uses_anonymous_args = 0
419549 @ link register save eliminated.
420
- ldr r2, .L78
421
- add r0, r2, r0, asl #3
422
- ldrb r2, [r2, #58] @ zero_extendqisi2
423
- ldrb r1, [r0, #16] @ zero_extendqisi2
424
- ldr r3, [r0, #12]
425
- 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
426556 str r2, [r3, #2056]
427557 bx lr
428
-.L79:
558
+.L94:
429559 .align 2
430
-.L78:
560
+.L93:
431561 .word .LANCHOR0
432562 .fnend
433563 .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd
434564 .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
435595 .global js_hash
596
+ .syntax unified
597
+ .arm
598
+ .fpu softvfp
436599 .type js_hash, %function
437600 js_hash:
438601 .fnstart
439602 @ args = 0, pretend = 0, frame = 0
440603 @ frame_needed = 0, uses_anonymous_args = 0
441604 @ link register save eliminated.
442
- ldr r3, .L84
605
+ ldr r3, .L102
443606 add r1, r0, r1
444
-.L81:
607
+.L100:
445608 cmp r0, r1
446
- beq .L83
447
- mov r2, r3, asl #5
448
- ldrb ip, [r0], #1 @ zero_extendqisi2
449
- add r2, r2, r3, lsr #2
450
- add r2, r2, ip
451
- eor r3, r3, r2
452
- b .L81
453
-.L83:
609
+ bne .L101
454610 mov r0, r3
455611 bx lr
456
-.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:
457620 .align 2
458
-.L84:
621
+.L102:
459622 .word 1204201446
460623 .fnend
461624 .size js_hash, .-js_hash
462625 .align 2
463626 .global FlashLoadIdbInfo
627
+ .syntax unified
628
+ .arm
629
+ .fpu softvfp
464630 .type FlashLoadIdbInfo, %function
465631 FlashLoadIdbInfo:
466632 .fnstart
....@@ -473,6 +639,9 @@
473639 .size FlashLoadIdbInfo, .-FlashLoadIdbInfo
474640 .align 2
475641 .global FlashPrintInfo
642
+ .syntax unified
643
+ .arm
644
+ .fpu softvfp
476645 .type FlashPrintInfo, %function
477646 FlashPrintInfo:
478647 .fnstart
....@@ -483,148 +652,350 @@
483652 .fnend
484653 .size FlashPrintInfo, .-FlashPrintInfo
485654 .align 2
655
+ .global ToshibaSetRRPara
656
+ .syntax unified
657
+ .arm
658
+ .fpu softvfp
659
+ .type ToshibaSetRRPara, %function
660
+ToshibaSetRRPara:
661
+ .fnstart
662
+ @ args = 0, pretend = 0, frame = 0
663
+ @ frame_needed = 0, uses_anonymous_args = 0
664
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
665
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
666
+ add r9, r1, r1, lsl #2
667
+ ldr r7, .L114
668
+ mov r6, r0
669
+ mov r5, #0
670
+ add r7, r1, r7
671
+.L107:
672
+ ldr r8, .L114+4
673
+ ldrb r3, [r8, #85] @ zero_extendqisi2
674
+ cmp r5, r3
675
+ bcc .L111
676
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
677
+.L111:
678
+ ldr r4, .L114+8
679
+ mov r3, #85
680
+ str r3, [r6, #8]
681
+ mov r0, #200
682
+ ldrsb r3, [r5, r4]
683
+ str r3, [r6, #4]
684
+ bl ndelay
685
+ ldrb r3, [r8, #84] @ zero_extendqisi2
686
+ cmp r3, #34
687
+ addeq r3, r5, r9
688
+ addeq r4, r4, r3
689
+ ldrsbeq r3, [r4, #5]
690
+ beq .L113
691
+ cmp r3, #35
692
+ addeq r3, r5, r9
693
+ ldrsbne r3, [r7]
694
+ addeq r4, r4, r3
695
+ ldrsbeq r3, [r4, #50]
696
+.L113:
697
+ str r3, [r6]
698
+ add r5, r5, #1
699
+ b .L107
700
+.L115:
701
+ .align 2
702
+.L114:
703
+ .word .LANCHOR1+396
704
+ .word .LANCHOR0
705
+ .word .LANCHOR1+256
706
+ .fnend
707
+ .size ToshibaSetRRPara, .-ToshibaSetRRPara
708
+ .align 2
709
+ .global SamsungSetRRPara
710
+ .syntax unified
711
+ .arm
712
+ .fpu softvfp
713
+ .type SamsungSetRRPara, %function
714
+SamsungSetRRPara:
715
+ .fnstart
716
+ @ args = 0, pretend = 0, frame = 0
717
+ @ frame_needed = 0, uses_anonymous_args = 0
718
+ ldr r3, .L120
719
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
720
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
721
+ mov r4, #0
722
+ ldr r8, .L120+4
723
+ mov r6, r0
724
+ mov r7, r3
725
+ mov r9, #161
726
+ add r1, r3, r1, lsl #2
727
+ mov r10, r4
728
+ add r5, r1, #3
729
+.L117:
730
+ ldrb r3, [r8, #85] @ zero_extendqisi2
731
+ cmp r4, r3
732
+ bcc .L118
733
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
734
+.L118:
735
+ str r9, [r6, #8]
736
+ mov r0, #300
737
+ str r10, [r6]
738
+ ldrsb r3, [r7, r4]
739
+ add r4, r4, #1
740
+ str r3, [r6]
741
+ ldrsb r3, [r5, #1]!
742
+ str r3, [r6]
743
+ bl ndelay
744
+ b .L117
745
+.L121:
746
+ .align 2
747
+.L120:
748
+ .word .LANCHOR1+404
749
+ .word .LANCHOR0
750
+ .fnend
751
+ .size SamsungSetRRPara, .-SamsungSetRRPara
752
+ .align 2
486753 .global ftl_flash_suspend
754
+ .syntax unified
755
+ .arm
756
+ .fpu softvfp
487757 .type ftl_flash_suspend, %function
488758 ftl_flash_suspend:
489759 .fnstart
490760 @ args = 0, pretend = 0, frame = 0
491761 @ frame_needed = 0, uses_anonymous_args = 0
492762 @ link register save eliminated.
493
- ldr r3, .L89
494
- ldr r2, [r3, #80]
763
+ ldr r3, .L123
764
+ ldr r2, [r3, #88]
495765 ldr r1, [r2]
496
- str r1, [r3, #84]
497
- ldr r1, [r2, #4]
498
- str r1, [r3, #88]
499
- ldr r1, [r2, #8]
500766 str r1, [r3, #92]
501
- ldr r1, [r2, #12]
767
+ ldr r1, [r2, #4]
502768 str r1, [r3, #96]
503
- ldr r1, [r2, #304]
769
+ ldr r1, [r2, #8]
504770 str r1, [r3, #100]
505
- ldr r1, [r2, #308]
771
+ ldr r1, [r2, #12]
506772 str r1, [r3, #104]
773
+ ldr r1, [r2, #304]
774
+ str r1, [r3, #108]
775
+ ldr r1, [r2, #308]
776
+ str r1, [r3, #112]
507777 ldr r1, [r2, #336]
508778 ldr r2, [r2, #344]
509
- str r1, [r3, #108]
510
- str r2, [r3, #112]
779
+ str r1, [r3, #116]
780
+ str r2, [r3, #120]
511781 bx lr
512
-.L90:
782
+.L124:
513783 .align 2
514
-.L89:
784
+.L123:
515785 .word .LANCHOR0
516786 .fnend
517787 .size ftl_flash_suspend, .-ftl_flash_suspend
518788 .global __aeabi_uidiv
789
+ .global __aeabi_uidivmod
519790 .align 2
520791 .global LogAddr2PhyAddr
792
+ .syntax unified
793
+ .arm
794
+ .fpu softvfp
521795 .type LogAddr2PhyAddr, %function
522796 LogAddr2PhyAddr:
523797 .fnstart
524798 @ args = 4, pretend = 0, frame = 8
525799 @ frame_needed = 0, uses_anonymous_args = 0
526
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
800
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
527801 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
528802 .pad #12
529
- mov r5, r0
530
- ldr r0, .L97
531
- mov r8, r3
532
- ldr ip, [r5, #4]
533
- mov r9, r1
534
- mov r7, r2
535
- ldrh r3, [r0, #130]
536
- bic ip, ip, #-2147483648
537
- ldrh r4, [r0, #128]
538
- ubfx r6, ip, #10, #16
539
- ldrh r10, [r0, #4]
540
- mov fp, r0
541
- str ip, [sp, #4]
542
- smulbb r4, r4, r3
543
- ldrb r3, [r0] @ zero_extendqisi2
544
- mov r0, r6
545
- cmp r3, #1
546
- moveq r10, r10, asl #1
547
- uxth r4, r4
548
- uxtheq r10, r10
549
- mov r1, r4
803
+ mov r9, r2
804
+ ldr r4, .L131
805
+ mov fp, r3
806
+ mov r10, r1
807
+ mov r7, r0
808
+ ldr r5, [r0, #4]
809
+ ldrh r2, [r4, #136]
810
+ ldrh r3, [r4, #138]
811
+ ldrh r6, [r4, #40]
812
+ smulbb r3, r3, r2
813
+ ldrb r2, [r4, #36] @ zero_extendqisi2
814
+ uxth r3, r3
815
+ cmp r2, #1
816
+ lsleq r6, r6, #1
817
+ ubfx r2, r5, #10, #16
818
+ mov r1, r3
819
+ str r3, [sp, #4]
820
+ mov r0, r2
821
+ uxtheq r6, r6
822
+ str r2, [sp]
550823 bl __aeabi_uidiv
551
- cmp r9, #1
552
- uxth r0, r0
553
- ldr ip, [sp, #4]
554
- smulbb r4, r0, r4
555
- rsb r6, r4, r6
556
- ubfx r4, ip, #0, #10
557
- uxth r6, r6
558
- bne .L93
559
- ldrb r3, [fp, #144] @ zero_extendqisi2
824
+ ldr r3, [sp, #4]
825
+ uxth r8, r0
826
+ ldr r2, [sp]
827
+ mov r1, r3
828
+ mov r0, r2
829
+ bl __aeabi_uidivmod
830
+ cmp r10, #1
831
+ uxth r1, r1
832
+ ubfx r0, r5, #0, #10
833
+ bne .L127
834
+ ldrb r3, [r4, #152] @ zero_extendqisi2
560835 cmp r3, #0
561
- ldreq r3, .L97
562
- addeq r4, r3, r4, asl #1
563
- ldreqh r4, [r4, #148]
564
-.L93:
565
- add ip, fp, r0, asl #2
836
+ addeq r0, r4, r0, lsl #1
837
+ ldrheq r0, [r0, #156]
838
+.L127:
839
+ add r4, r4, r8, lsl #2
840
+ ldr r3, [r4, #1180]
841
+ mla r6, r6, r1, r3
566842 ldrb r3, [sp, #48] @ zero_extendqisi2
567
- ldr r1, [ip, #1172]
568843 cmp r3, #1
569
- mla r1, r10, r6, r1
570
- add r4, r1, r4
571
- str r4, [r7]
572
- str r0, [r8]
844
+ add r0, r6, r0
845
+ str r0, [r9]
573846 movls r0, #0
574
- ldrhi r0, [r5, #4]
575
- ldrhi r3, [r5, #40]
847
+ str r8, [fp]
848
+ ldrhi r0, [r7, #4]
849
+ ldrhi r3, [r7, #40]
576850 addhi r0, r0, #1024
577
- rsbhi r0, r3, r0
851
+ subhi r0, r0, r3
578852 clzhi r0, r0
579
- movhi r0, r0, lsr #5
853
+ lsrhi r0, r0, #5
580854 add sp, sp, #12
581855 @ sp needed
582
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
583
-.L98:
856
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
857
+.L132:
584858 .align 2
585
-.L97:
859
+.L131:
586860 .word .LANCHOR0
587861 .fnend
588862 .size LogAddr2PhyAddr, .-LogAddr2PhyAddr
589863 .align 2
864
+ .global FlashReadStatusEN
865
+ .syntax unified
866
+ .arm
867
+ .fpu softvfp
868
+ .type FlashReadStatusEN, %function
869
+FlashReadStatusEN:
870
+ .fnstart
871
+ @ args = 0, pretend = 0, frame = 0
872
+ @ frame_needed = 0, uses_anonymous_args = 0
873
+ ldr r3, .L146
874
+ push {r4, r5, r6, lr}
875
+ .save {r4, r5, r6, lr}
876
+ ldr r4, [r3, r0, lsl #3]
877
+ add r0, r3, r0, lsl #3
878
+ ldrb r5, [r0, #4] @ zero_extendqisi2
879
+ ldr r0, [r3, #48]
880
+ ldrb r0, [r0, #8] @ zero_extendqisi2
881
+ cmp r0, #2
882
+ mov r0, r3
883
+ lsl r3, r5, #8
884
+ movne r2, #112
885
+ add r5, r5, #8
886
+ addne r3, r4, r3
887
+ strne r2, [r3, #2056]
888
+ bne .L139
889
+ cmp r2, #0
890
+ add r3, r4, r3
891
+ ldrbne r2, [r0, #66] @ zero_extendqisi2
892
+ ldrbeq r2, [r0, #65] @ zero_extendqisi2
893
+ str r2, [r3, #2056]
894
+ ldrb r0, [r0, #67] @ zero_extendqisi2
895
+ cmp r0, #0
896
+ movne r2, #0
897
+ addne ip, r4, r5, lsl #8
898
+ bne .L138
899
+.L139:
900
+ mov r0, #80
901
+ bl ndelay
902
+ ldr r0, [r4, r5, lsl #8]
903
+ uxtb r0, r0
904
+ pop {r4, r5, r6, pc}
905
+.L140:
906
+ lsl r3, r2, #3
907
+ add r2, r2, #1
908
+ lsr r3, r1, r3
909
+ uxtb r3, r3
910
+ str r3, [ip, #4]
911
+.L138:
912
+ cmp r2, r0
913
+ bcc .L140
914
+ b .L139
915
+.L147:
916
+ .align 2
917
+.L146:
918
+ .word .LANCHOR0
919
+ .fnend
920
+ .size FlashReadStatusEN, .-FlashReadStatusEN
921
+ .align 2
922
+ .global FlashWaitReadyEN
923
+ .syntax unified
924
+ .arm
925
+ .fpu softvfp
926
+ .type FlashWaitReadyEN, %function
927
+FlashWaitReadyEN:
928
+ .fnstart
929
+ @ args = 0, pretend = 0, frame = 0
930
+ @ frame_needed = 0, uses_anonymous_args = 0
931
+ push {r4, r5, r6, lr}
932
+ .save {r4, r5, r6, lr}
933
+ mov r4, r0
934
+ mov r5, r1
935
+ mov r6, r2
936
+.L149:
937
+ mov r2, r6
938
+ mov r1, r5
939
+ mov r0, r4
940
+ bl FlashReadStatusEN
941
+ cmp r0, #255
942
+ beq .L149
943
+ tst r0, #64
944
+ popne {r4, r5, r6, pc}
945
+ mov r1, #3
946
+ mov r0, #1
947
+ bl usleep_range
948
+ b .L149
949
+ .fnend
950
+ .size FlashWaitReadyEN, .-FlashWaitReadyEN
951
+ .align 2
590952 .global FlashScheduleEnSet
953
+ .syntax unified
954
+ .arm
955
+ .fpu softvfp
591956 .type FlashScheduleEnSet, %function
592957 FlashScheduleEnSet:
593958 .fnstart
594959 @ args = 0, pretend = 0, frame = 0
595960 @ frame_needed = 0, uses_anonymous_args = 0
596961 @ link register save eliminated.
597
- ldr r3, .L100
598
- ldr r2, [r3, #1204]
599
- str r0, [r3, #1204]
962
+ ldr r3, .L156
963
+ ldr r2, [r3, #1212]
964
+ str r0, [r3, #1212]
600965 mov r0, r2
601966 bx lr
602
-.L101:
967
+.L157:
603968 .align 2
604
-.L100:
969
+.L156:
605970 .word .LANCHOR0
606971 .fnend
607972 .size FlashScheduleEnSet, .-FlashScheduleEnSet
608973 .align 2
609974 .global FlashGetPageSize
975
+ .syntax unified
976
+ .arm
977
+ .fpu softvfp
610978 .type FlashGetPageSize, %function
611979 FlashGetPageSize:
612980 .fnstart
613981 @ args = 0, pretend = 0, frame = 0
614982 @ frame_needed = 0, uses_anonymous_args = 0
615983 @ link register save eliminated.
616
- ldr r3, .L103
617
- ldr r3, [r3, #44]
984
+ ldr r3, .L159
985
+ ldr r3, [r3, #48]
618986 ldrb r0, [r3, #9] @ zero_extendqisi2
619987 bx lr
620
-.L104:
988
+.L160:
621989 .align 2
622
-.L103:
990
+.L159:
623991 .word .LANCHOR0
624992 .fnend
625993 .size FlashGetPageSize, .-FlashGetPageSize
626994 .align 2
627995 .global NandcReadDontCaseBusyEn
996
+ .syntax unified
997
+ .arm
998
+ .fpu softvfp
628999 .type NandcReadDontCaseBusyEn, %function
6291000 NandcReadDontCaseBusyEn:
6301001 .fnstart
....@@ -636,107 +1007,122 @@
6361007 .size NandcReadDontCaseBusyEn, .-NandcReadDontCaseBusyEn
6371008 .align 2
6381009 .global NandcGetChipIf
1010
+ .syntax unified
1011
+ .arm
1012
+ .fpu softvfp
6391013 .type NandcGetChipIf, %function
6401014 NandcGetChipIf:
6411015 .fnstart
6421016 @ args = 0, pretend = 0, frame = 0
6431017 @ frame_needed = 0, uses_anonymous_args = 0
6441018 @ link register save eliminated.
645
- ldr r3, .L107
646
- add r0, r3, r0, asl #3
647
- ldrb r2, [r0, #16] @ zero_extendqisi2
648
- ldr r0, [r0, #12]
649
- add r2, r2, #8
650
- add r0, r0, r2, asl #8
1019
+ ldr r2, .L163
1020
+ add r3, r2, r0, lsl #3
1021
+ ldr r0, [r2, r0, lsl #3]
1022
+ ldrb r3, [r3, #4] @ zero_extendqisi2
1023
+ add r3, r3, #8
1024
+ add r0, r0, r3, lsl #8
6511025 bx lr
652
-.L108:
1026
+.L164:
6531027 .align 2
654
-.L107:
1028
+.L163:
6551029 .word .LANCHOR0
6561030 .fnend
6571031 .size NandcGetChipIf, .-NandcGetChipIf
6581032 .align 2
6591033 .global NandcSetDdrPara
1034
+ .syntax unified
1035
+ .arm
1036
+ .fpu softvfp
6601037 .type NandcSetDdrPara, %function
6611038 NandcSetDdrPara:
6621039 .fnstart
6631040 @ args = 0, pretend = 0, frame = 0
6641041 @ frame_needed = 0, uses_anonymous_args = 0
6651042 @ link register save eliminated.
666
- ldr r3, .L110
667
- ldr r2, [r3, #80]
668
- mov r3, r0, asl #8
669
- orr r0, r3, r0, asl #16
670
- orr r3, r0, #1
671
- str r3, [r2, #304]
1043
+ ldr r3, .L166
1044
+ ldr r2, [r3, #88]
1045
+ lsl r3, r0, #8
1046
+ orr r0, r3, r0, lsl #16
1047
+ orr r0, r0, #1
1048
+ str r0, [r2, #304]
6721049 bx lr
673
-.L111:
1050
+.L167:
6741051 .align 2
675
-.L110:
1052
+.L166:
6761053 .word .LANCHOR0
6771054 .fnend
6781055 .size NandcSetDdrPara, .-NandcSetDdrPara
6791056 .align 2
6801057 .global NandcSetDdrDiv
1058
+ .syntax unified
1059
+ .arm
1060
+ .fpu softvfp
6811061 .type NandcSetDdrDiv, %function
6821062 NandcSetDdrDiv:
6831063 .fnstart
6841064 @ args = 0, pretend = 0, frame = 0
6851065 @ frame_needed = 0, uses_anonymous_args = 0
6861066 @ link register save eliminated.
687
- ldr r3, .L113
1067
+ ldr r3, .L169
6881068 orr r0, r0, #16640
689
- ldr r3, [r3, #80]
1069
+ ldr r3, [r3, #88]
6901070 str r0, [r3, #344]
6911071 bx lr
692
-.L114:
1072
+.L170:
6931073 .align 2
694
-.L113:
1074
+.L169:
6951075 .word .LANCHOR0
6961076 .fnend
6971077 .size NandcSetDdrDiv, .-NandcSetDdrDiv
6981078 .align 2
6991079 .global NandcSetDdrMode
1080
+ .syntax unified
1081
+ .arm
1082
+ .fpu softvfp
7001083 .type NandcSetDdrMode, %function
7011084 NandcSetDdrMode:
7021085 .fnstart
7031086 @ args = 0, pretend = 0, frame = 0
7041087 @ frame_needed = 0, uses_anonymous_args = 0
7051088 @ link register save eliminated.
706
- ldr r3, .L118
1089
+ ldr r3, .L174
7071090 cmp r0, #0
708
- ldr r2, [r3, #80]
1091
+ ldr r2, [r3, #88]
7091092 ldr r3, [r2]
7101093 bfieq r3, r0, #13, #1
7111094 orrne r3, r3, #253952
7121095 str r3, [r2]
7131096 bx lr
714
-.L119:
1097
+.L175:
7151098 .align 2
716
-.L118:
1099
+.L174:
7171100 .word .LANCHOR0
7181101 .fnend
7191102 .size NandcSetDdrMode, .-NandcSetDdrMode
7201103 .align 2
7211104 .global NandcSetMode
1105
+ .syntax unified
1106
+ .arm
1107
+ .fpu softvfp
7221108 .type NandcSetMode, %function
7231109 NandcSetMode:
7241110 .fnstart
7251111 @ args = 0, pretend = 0, frame = 0
7261112 @ frame_needed = 0, uses_anonymous_args = 0
7271113 @ link register save eliminated.
728
- ldr r3, .L127
1114
+ ldr r3, .L183
7291115 ands r1, r0, #6
730
- ldr r2, [r3, #80]
1116
+ ldr r2, [r3, #88]
7311117 ldr r3, [r2]
7321118 bfieq r3, r1, #13, #1
733
- beq .L123
734
- orr r3, r3, #24576
1119
+ beq .L179
7351120 movw r1, #8322
736
- bfc r3, #15, #1
1121
+ orr r3, r3, #24576
7371122 str r1, [r2, #344]
1123
+ bfc r3, #15, #1
1124
+ ldr r1, .L183+4
7381125 orr r3, r3, #196608
739
- ldr r1, .L127+4
7401126 tst r0, #4
7411127 orrne r3, r3, #32768
7421128 str r1, [r2, #304]
....@@ -744,642 +1130,416 @@
7441130 str r1, [r2, #308]
7451131 mov r1, #39
7461132 str r1, [r2, #308]
747
-.L123:
1133
+.L179:
7481134 str r3, [r2]
7491135 mov r0, #0
7501136 bx lr
751
-.L128:
1137
+.L184:
7521138 .align 2
753
-.L127:
1139
+.L183:
7541140 .word .LANCHOR0
7551141 .word 1052675
7561142 .fnend
7571143 .size NandcSetMode, .-NandcSetMode
7581144 .align 2
7591145 .global NandcFlashCs
1146
+ .syntax unified
1147
+ .arm
1148
+ .fpu softvfp
7601149 .type NandcFlashCs, %function
7611150 NandcFlashCs:
7621151 .fnstart
7631152 @ args = 0, pretend = 0, frame = 0
7641153 @ frame_needed = 0, uses_anonymous_args = 0
7651154 @ link register save eliminated.
766
- ldr r2, .L130
767
- add r0, r2, r0, asl #3
1155
+ ldr r3, .L186
7681156 mov r2, #1
769
- ldr r1, [r0, #12]
770
- ldrb r0, [r0, #16] @ zero_extendqisi2
1157
+ ldr r1, [r3, r0, lsl #3]
1158
+ add r0, r3, r0, lsl #3
1159
+ ldrb r0, [r0, #4] @ zero_extendqisi2
7711160 ldr r3, [r1]
772
- mov r2, r2, asl r0
1161
+ lsl r2, r2, r0
7731162 bfi r3, r2, #0, #8
7741163 str r3, [r1]
7751164 bx lr
776
-.L131:
1165
+.L187:
7771166 .align 2
778
-.L130:
1167
+.L186:
7791168 .word .LANCHOR0
7801169 .fnend
7811170 .size NandcFlashCs, .-NandcFlashCs
7821171 .align 2
7831172 .global NandcFlashDeCs
1173
+ .syntax unified
1174
+ .arm
1175
+ .fpu softvfp
7841176 .type NandcFlashDeCs, %function
7851177 NandcFlashDeCs:
7861178 .fnstart
7871179 @ args = 0, pretend = 0, frame = 0
7881180 @ frame_needed = 0, uses_anonymous_args = 0
7891181 @ link register save eliminated.
790
- ldr r3, .L133
791
- add r0, r3, r0, asl #3
792
- ldr r2, [r0, #12]
1182
+ ldr r3, .L189
1183
+ ldr r2, [r3, r0, lsl #3]
7931184 ldr r3, [r2]
7941185 bfc r3, #0, #8
7951186 bfc r3, #17, #1
7961187 str r3, [r2]
7971188 bx lr
798
-.L134:
1189
+.L190:
7991190 .align 2
800
-.L133:
1191
+.L189:
8011192 .word .LANCHOR0
8021193 .fnend
8031194 .size NandcFlashDeCs, .-NandcFlashDeCs
8041195 .align 2
805
- .global NandcDelayns
806
- .type NandcDelayns, %function
807
-NandcDelayns:
808
- .fnstart
809
- @ args = 0, pretend = 0, frame = 0
810
- @ frame_needed = 0, uses_anonymous_args = 0
811
- stmfd sp!, {r3, lr}
812
- .save {r3, lr}
813
- add r0, r0, #996
814
- ldr r3, .L137
815
- add r0, r0, #3
816
- umull r0, r1, r0, r3
817
- ldr r3, .L137+4
818
- ldr r3, [r3, #8]
819
- mov r0, r1, lsr #6
820
- blx r3
821
- mov r0, #0
822
- ldmfd sp!, {r3, pc}
823
-.L138:
824
- .align 2
825
-.L137:
826
- .word 274877907
827
- .word arm_delay_ops
828
- .fnend
829
- .size NandcDelayns, .-NandcDelayns
830
- .align 2
831
- .global FlashReadStatus
832
- .type FlashReadStatus, %function
833
-FlashReadStatus:
834
- .fnstart
835
- @ args = 0, pretend = 0, frame = 0
836
- @ frame_needed = 0, uses_anonymous_args = 0
837
- stmfd sp!, {r3, r4, r5, lr}
838
- .save {r3, r4, r5, lr}
839
- mov r2, #112
840
- ldr r3, .L141
841
- add r0, r3, r0, asl #3
842
- ldrb r4, [r0, #16] @ zero_extendqisi2
843
- ldr r5, [r0, #12]
844
- mov r0, #80
845
- add r3, r5, r4, asl #8
846
- add r4, r4, #8
847
- str r2, [r3, #2056]
848
- bl NandcDelayns
849
- ldr r0, [r5, r4, asl #8]
850
- ldmfd sp!, {r3, r4, r5, pc}
851
-.L142:
852
- .align 2
853
-.L141:
854
- .word .LANCHOR0
855
- .fnend
856
- .size FlashReadStatus, .-FlashReadStatus
857
- .align 2
858
- .global ToshibaSetRRPara
859
- .type ToshibaSetRRPara, %function
860
-ToshibaSetRRPara:
861
- .fnstart
862
- @ args = 0, pretend = 0, frame = 0
863
- @ frame_needed = 0, uses_anonymous_args = 0
864
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
865
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
866
- add r8, r1, r1, asl #2
867
- ldr r9, .L153
868
- mov r5, r0
869
- ldr r7, .L153+4
870
- mov r6, r1
871
- add r10, r9, #256
872
- mov r4, #0
873
-.L144:
874
- ldrb r3, [r7, #1209] @ zero_extendqisi2
875
- cmp r4, r3
876
- bcs .L152
877
- mov r3, #85
878
- str r3, [r5, #8]
879
- ldrsb r3, [r4, r10]
880
- mov r0, #200
881
- str r3, [r5, #4]
882
- bl NandcDelayns
883
- ldrb r3, [r7, #1208] @ zero_extendqisi2
884
- cmp r3, #34
885
- addeq r3, r4, r8
886
- addeq r3, r10, r3
887
- beq .L151
888
- cmp r3, #35
889
- addne r3, r9, r6
890
- addne r3, r3, #400
891
- ldrnesb r3, [r3]
892
- bne .L150
893
- ldr r3, .L153+8
894
- add r2, r4, r8
895
- add r3, r3, r2
896
-.L151:
897
- ldrsb r3, [r3, #5]
898
-.L150:
899
- str r3, [r5]
900
- add r4, r4, #1
901
- b .L144
902
-.L152:
903
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
904
-.L154:
905
- .align 2
906
-.L153:
907
- .word .LANCHOR1
908
- .word .LANCHOR0
909
- .word .LANCHOR1+304
910
- .fnend
911
- .size ToshibaSetRRPara, .-ToshibaSetRRPara
912
- .align 2
913
- .global SamsungSetRRPara
914
- .type SamsungSetRRPara, %function
915
-SamsungSetRRPara:
916
- .fnstart
917
- @ args = 0, pretend = 0, frame = 0
918
- @ frame_needed = 0, uses_anonymous_args = 0
919
- ldr r3, .L160
920
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
921
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
922
- add r1, r3, r1, asl #2
923
- ldr r8, .L160+4
924
- mov r4, #0
925
- add r5, r1, #3
926
- mov r6, r0
927
- mov r7, r3
928
- mov r9, #161
929
- mov r10, r4
930
-.L156:
931
- ldrb r3, [r8, #1209] @ zero_extendqisi2
932
- cmp r4, r3
933
- bcs .L159
934
- str r9, [r6, #8]
935
- mov r0, #300
936
- str r10, [r6]
937
- ldrsb r3, [r7, r4]
938
- add r4, r4, #1
939
- str r3, [r6]
940
- ldrsb r3, [r5, #1]!
941
- str r3, [r6]
942
- bl NandcDelayns
943
- b .L156
944
-.L159:
945
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
946
-.L161:
947
- .align 2
948
-.L160:
949
- .word .LANCHOR1+408
950
- .word .LANCHOR0
951
- .fnend
952
- .size SamsungSetRRPara, .-SamsungSetRRPara
953
- .align 2
9541196 .global HynixSetRRPara
1197
+ .syntax unified
1198
+ .arm
1199
+ .fpu softvfp
9551200 .type HynixSetRRPara, %function
9561201 HynixSetRRPara:
9571202 .fnstart
9581203 @ args = 0, pretend = 0, frame = 8
9591204 @ frame_needed = 0, uses_anonymous_args = 0
960
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1205
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
9611206 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9621207 .pad #12
963
- mov r6, r3
964
- ldr r5, .L171
965
- mov r9, r2
966
- ldr r4, .L171+4
967
- mov r7, r0
1208
+ mov r6, r0
1209
+ ldr r0, .L200
1210
+ mov r7, r3
9681211 mov r8, r1
969
- ldr r3, [r5, #44]
970
- ldrb r2, [r3, #19] @ zero_extendqisi2
971
- mov r3, r0, asl #3
972
- cmp r2, #6
973
- addeq r4, r4, r0, asl #6
974
- addeq r4, r4, #20
975
- addeq r4, r4, r6, asl #2
976
- beq .L164
977
- cmp r2, #7
978
- bne .L165
979
- mov r2, #160
980
- mla r4, r2, r0, r4
981
- add r2, r6, r6, asl #2
982
- add r4, r4, #28
983
- add r4, r4, r2, asl #1
984
- b .L164
985
-.L165:
986
- cmp r2, #8
987
- addne r2, r6, r3
988
- addeq r2, r6, r6, asl #2
989
- ldreq r4, .L171+8
990
- addne r4, r4, r2, asl #3
991
- addeq r4, r4, r2
992
- addne r4, r4, #20
993
-.L164:
994
- add r3, r5, r3
995
- mov r0, r7
1212
+ mov r10, r2
1213
+ ldr r3, [r0, #48]
1214
+ mov r5, r0
1215
+ add r4, r0, #1216
1216
+ ldrb r3, [r3, #19] @ zero_extendqisi2
1217
+ cmp r3, #6
1218
+ moveq r3, #20
1219
+ addeq r3, r3, r6, lsl #6
1220
+ addeq r3, r3, r7, lsl #2
1221
+ beq .L199
1222
+ cmp r3, #7
1223
+ bne .L194
1224
+ mov r3, #160
1225
+ mov r2, #28
1226
+ smlabb r2, r3, r6, r2
1227
+ mov r3, #10
1228
+ smlabb r3, r3, r7, r2
1229
+.L199:
1230
+ add r4, r4, r3
1231
+.L193:
1232
+ add r3, r5, r6, lsl #3
1233
+ ldr r9, [r5, r6, lsl #3]
1234
+ mov r0, r6
1235
+ ldrb fp, [r3, #4] @ zero_extendqisi2
9961236 sub r8, r8, #1
997
- sub r4, r4, #1
998
- ldrb fp, [r3, #16] @ zero_extendqisi2
999
- ldr r10, [r3, #12]
10001237 bl NandcFlashCs
1001
- sub ip, r9, #1
1002
- add r9, r9, r8
1003
- mov r3, fp, asl #8
1004
- mov r2, #54
1005
- add fp, r10, r3
1006
- str r2, [fp, #2056]
1007
-.L167:
1008
- cmp ip, r9
1009
- beq .L170
1010
- ldrb r2, [ip, #1]! @ zero_extendqisi2
1011
- mov r0, #200
1012
- str r3, [sp, #4]
1013
- str r2, [fp, #2052]
1014
- str ip, [sp]
1015
- bl NandcDelayns
1016
- ldrsb r2, [r4, #1]!
1017
- str r2, [fp, #2048]
1018
- ldr r3, [sp, #4]
1019
- ldr ip, [sp]
1020
- b .L167
1021
-.L170:
1022
- add r10, r10, r3
1023
- mov r0, r7
1238
+ mov r3, #54
1239
+ add r8, r10, r8
1240
+ sub r4, r4, #1
1241
+ lsl fp, fp, #8
1242
+ add r0, r9, fp
1243
+ str r3, [r0, #2056]
1244
+ sub r3, r10, #1
1245
+ mov r10, r0
1246
+.L196:
1247
+ cmp r3, r8
1248
+ bne .L197
10241249 mov r3, #22
1025
- add r5, r5, r7
1026
- str r3, [r10, #2056]
1250
+ add r9, r9, fp
1251
+ mov r0, r6
1252
+ str r3, [r9, #2056]
10271253 bl NandcFlashDeCs
1028
- strb r6, [r5, #2064]
1254
+ add r0, r5, r6
1255
+ strb r7, [r0, #2068]
10291256 add sp, sp, #12
10301257 @ sp needed
1031
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
1032
-.L172:
1258
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
1259
+.L194:
1260
+ cmp r3, #8
1261
+ addeq r4, r4, #28
1262
+ addeq r3, r7, r7, lsl #2
1263
+ beq .L199
1264
+ add r3, r7, #2
1265
+ add r3, r3, r6, lsl #3
1266
+ add r4, r4, r3, lsl #3
1267
+ add r4, r4, #4
1268
+ b .L193
1269
+.L197:
1270
+ ldrb r2, [r3, #1]! @ zero_extendqisi2
1271
+ mov r0, #200
1272
+ str r2, [r10, #2052]
1273
+ str r3, [sp, #4]
1274
+ bl ndelay
1275
+ ldrsb r2, [r4, #1]!
1276
+ ldr r3, [sp, #4]
1277
+ str r2, [r10, #2048]
1278
+ b .L196
1279
+.L201:
10331280 .align 2
1034
-.L171:
1281
+.L200:
10351282 .word .LANCHOR0
1036
- .word .LANCHOR0+1210
1037
- .word .LANCHOR0+1238
10381283 .fnend
10391284 .size HynixSetRRPara, .-HynixSetRRPara
10401285 .align 2
10411286 .global FlashSetReadRetryDefault
1287
+ .syntax unified
1288
+ .arm
1289
+ .fpu softvfp
10421290 .type FlashSetReadRetryDefault, %function
10431291 FlashSetReadRetryDefault:
10441292 .fnstart
10451293 @ args = 0, pretend = 0, frame = 0
10461294 @ frame_needed = 0, uses_anonymous_args = 0
1047
- ldr r3, .L181
1048
- ldr r2, [r3, #44]
1049
- ldrb r2, [r2, #19] @ zero_extendqisi2
1050
- sub r2, r2, #1
1051
- cmp r2, #7
1052
- bxhi lr
1053
- stmfd sp!, {r4, r5, r6, lr}
1054
- .save {r4, r5, r6, lr}
1295
+ push {r4, r5, r6, r7, r8, lr}
1296
+ .save {r4, r5, r6, r7, r8, lr}
1297
+ ldr r5, .L209
1298
+ ldr r3, [r5, #48]
1299
+ ldrb r3, [r3, #19] @ zero_extendqisi2
1300
+ sub r3, r3, #1
1301
+ cmp r3, #7
1302
+ pophi {r4, r5, r6, r7, r8, pc}
1303
+ ldr r7, .L209+4
1304
+ add r6, r5, #1216
10551305 mov r4, #0
1056
- ldr r6, .L181+4
1057
- mov r5, r3
1058
-.L174:
1059
- ldrb r3, [r6, r4, asl #3] @ zero_extendqisi2
1306
+ add r6, r6, #4
1307
+.L205:
1308
+ ldrb r3, [r7, r4, lsl #3] @ zero_extendqisi2
10601309 uxtb r0, r4
10611310 cmp r3, #173
1062
- bne .L175
1063
- ldrb r1, [r5, #1211] @ zero_extendqisi2
1311
+ bne .L204
10641312 mov r3, #0
1065
- ldr r2, .L181+8
1313
+ mov r2, r6
1314
+ ldrb r1, [r5, #1217] @ zero_extendqisi2
10661315 bl HynixSetRRPara
1067
-.L175:
1316
+.L204:
10681317 add r4, r4, #1
10691318 cmp r4, #4
1070
- bne .L174
1071
- ldmfd sp!, {r4, r5, r6, pc}
1072
-.L182:
1319
+ bne .L205
1320
+ pop {r4, r5, r6, r7, r8, pc}
1321
+.L210:
10731322 .align 2
1074
-.L181:
1323
+.L209:
10751324 .word .LANCHOR0
1076
- .word .LANCHOR0+2068
1077
- .word .LANCHOR0+1214
1325
+ .word .LANCHOR0+2072
10781326 .fnend
10791327 .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault
10801328 .align 2
1081
- .global FlashReadStatusEN
1082
- .type FlashReadStatusEN, %function
1083
-FlashReadStatusEN:
1084
- .fnstart
1085
- @ args = 0, pretend = 0, frame = 0
1086
- @ frame_needed = 0, uses_anonymous_args = 0
1087
- ldr ip, .L194
1088
- stmfd sp!, {r3, r4, r5, lr}
1089
- .save {r3, r4, r5, lr}
1090
- add r0, ip, r0, asl #3
1091
- ldr r3, [ip, #44]
1092
- ldrb r5, [r0, #16] @ zero_extendqisi2
1093
- ldr r4, [r0, #12]
1094
- ldrb r3, [r3, #8] @ zero_extendqisi2
1095
- cmp r3, #2
1096
- mov r3, r5, asl #8
1097
- addne r3, r4, r3
1098
- add r5, r5, #8
1099
- movne r2, #112
1100
- strne r2, [r3, #2056]
1101
- bne .L188
1102
- cmp r2, #0
1103
- add r3, r4, r3
1104
- ldrneb r2, [ip, #62] @ zero_extendqisi2
1105
- ldreqb r2, [ip, #61] @ zero_extendqisi2
1106
- str r2, [r3, #2056]
1107
- ldrb r0, [ip, #63] @ zero_extendqisi2
1108
- cmp r0, #0
1109
- addne ip, r4, r5, asl #8
1110
- movne r2, #0
1111
- beq .L188
1112
-.L187:
1113
- cmp r2, r0
1114
- bcs .L188
1115
- mov r3, r2, asl #3
1116
- add r2, r2, #1
1117
- mov r3, r1, lsr r3
1118
- uxtb r3, r3
1119
- str r3, [ip, #4]
1120
- b .L187
1121
-.L188:
1122
- mov r0, #80
1123
- bl NandcDelayns
1124
- ldr r0, [r4, r5, asl #8]
1125
- uxtb r0, r0
1126
- ldmfd sp!, {r3, r4, r5, pc}
1127
-.L195:
1128
- .align 2
1129
-.L194:
1130
- .word .LANCHOR0
1131
- .fnend
1132
- .size FlashReadStatusEN, .-FlashReadStatusEN
1133
- .align 2
1134
- .global FlashWaitReadyEN
1135
- .type FlashWaitReadyEN, %function
1136
-FlashWaitReadyEN:
1137
- .fnstart
1138
- @ args = 0, pretend = 0, frame = 0
1139
- @ frame_needed = 0, uses_anonymous_args = 0
1140
- stmfd sp!, {r4, r5, r6, lr}
1141
- .save {r4, r5, r6, lr}
1142
- mov r4, r0
1143
- mov r5, r1
1144
- mov r6, r2
1145
-.L197:
1146
- mov r0, r4
1147
- mov r1, r5
1148
- mov r2, r6
1149
- bl FlashReadStatusEN
1150
- cmp r0, #255
1151
- beq .L197
1152
- tst r0, #64
1153
- ldmnefd sp!, {r4, r5, r6, pc}
1154
- mov r0, #1
1155
- mov r1, #3
1156
- bl usleep_range
1157
- b .L197
1158
- .fnend
1159
- .size FlashWaitReadyEN, .-FlashWaitReadyEN
1160
- .align 2
11611329 .global FlashWaitCmdDone
1330
+ .syntax unified
1331
+ .arm
1332
+ .fpu softvfp
11621333 .type FlashWaitCmdDone, %function
11631334 FlashWaitCmdDone:
11641335 .fnstart
11651336 @ args = 0, pretend = 0, frame = 0
11661337 @ frame_needed = 0, uses_anonymous_args = 0
1167
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
1168
- .save {r3, r4, r5, r6, r7, lr}
1169
- ldr r5, .L211
1170
- add r4, r5, r0, asl #4
1171
- ldr r3, [r4, #2108]
1172
- ldrb r7, [r4, #2100] @ zero_extendqisi2
1338
+ push {r4, r5, r6, r7, r8, lr}
1339
+ .save {r4, r5, r6, r7, r8, lr}
1340
+ ldr r5, .L219
1341
+ add r4, r5, r0, lsl #4
1342
+ ldr r3, [r4, #2112]
11731343 cmp r3, #0
1174
- beq .L205
1344
+ beq .L213
1345
+ ldrb r7, [r4, #2104] @ zero_extendqisi2
11751346 mov r6, r0
1347
+ add r5, r5, r6, lsl #2
11761348 mov r0, r7
1177
- add r5, r5, r6, asl #2
11781349 bl NandcFlashCs
1179
- ldr r1, [r4, #2104]
1350
+ ldr r2, [r5, #1180]
11801351 mov r0, r7
1181
- ldr r2, [r5, #1172]
1352
+ ldr r1, [r4, #2108]
11821353 adds r2, r2, #0
11831354 movne r2, #1
11841355 bl FlashWaitReadyEN
1185
- mov r5, r0
1356
+ mov r1, r0
11861357 mov r0, r7
11871358 bl NandcFlashDeCs
1188
- ldr r2, [r4, #2108]
1189
- sbfx r3, r5, #0, #1
1190
- str r3, [r2]
1191
- mov r2, #0
1192
- ldr r1, [r4, #2112]
1193
- str r2, [r4, #2108]
1194
- cmp r1, r2
1195
- strne r3, [r1]
1196
- strne r2, [r4, #2112]
1197
-.L205:
1359
+ ldr r3, [r4, #2112]
1360
+ sbfx r0, r1, #0, #1
1361
+ str r0, [r3]
1362
+ mov r3, #0
1363
+ ldr r2, [r4, #2116]
1364
+ str r3, [r4, #2112]
1365
+ cmp r2, r3
1366
+ strne r0, [r2]
1367
+ strne r3, [r4, #2116]
1368
+.L213:
11981369 mov r0, #0
1199
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
1200
-.L212:
1370
+ pop {r4, r5, r6, r7, r8, pc}
1371
+.L220:
12011372 .align 2
1202
-.L211:
1373
+.L219:
12031374 .word .LANCHOR0
12041375 .fnend
12051376 .size FlashWaitCmdDone, .-FlashWaitCmdDone
12061377 .align 2
1207
- .type flash_read_ecc, %function
1208
-flash_read_ecc:
1378
+ .global NandcDelayns
1379
+ .syntax unified
1380
+ .arm
1381
+ .fpu softvfp
1382
+ .type NandcDelayns, %function
1383
+NandcDelayns:
12091384 .fnstart
12101385 @ args = 0, pretend = 0, frame = 0
12111386 @ frame_needed = 0, uses_anonymous_args = 0
1212
- ldr r2, .L215
1213
- stmfd sp!, {r4, lr}
1387
+ push {r4, lr}
12141388 .save {r4, lr}
1215
- add r0, r2, r0, asl #3
1216
- ldrb r4, [r0, #16] @ zero_extendqisi2
1217
- ldr r3, [r0, #12]
1218
- mov r0, #80
1219
- add r4, r3, r4, asl #8
1220
- mov r3, #122
1221
- str r3, [r4, #2056]
1222
- bl NandcDelayns
1223
- ldr r3, [r4, #2048]
1224
- ldr r0, [r4, #2048]
1225
- and r3, r3, #15
1226
- and r0, r0, #15
1227
- cmp r0, r3
1228
- movcc r0, r3
1229
- ldr r3, [r4, #2048]
1230
- and r3, r3, #15
1231
- cmp r0, r3
1232
- movcc r0, r3
1233
- ldr r3, [r4, #2048]
1234
- and r3, r3, #15
1235
- cmp r0, r3
1236
- movcc r0, r3
1237
- ldmfd sp!, {r4, pc}
1238
-.L216:
1239
- .align 2
1240
-.L215:
1241
- .word .LANCHOR0
1389
+ bl ndelay
1390
+ mov r0, #0
1391
+ pop {r4, pc}
12421392 .fnend
1243
- .size flash_read_ecc, .-flash_read_ecc
1393
+ .size NandcDelayns, .-NandcDelayns
12441394 .align 2
12451395 .global NandcWaitFlashReadyNoDelay
1396
+ .syntax unified
1397
+ .arm
1398
+ .fpu softvfp
12461399 .type NandcWaitFlashReadyNoDelay, %function
12471400 NandcWaitFlashReadyNoDelay:
12481401 .fnstart
12491402 @ args = 0, pretend = 0, frame = 8
12501403 @ frame_needed = 0, uses_anonymous_args = 0
1251
- ldr r3, .L223
1252
- stmfd sp!, {r0, r1, r2, r4, r5, lr}
1404
+ ldr r3, .L229
1405
+ push {r0, r1, r2, r4, r5, lr}
12531406 .save {r4, r5, lr}
12541407 .pad #12
1255
- add r0, r3, r0, asl #3
1256
- ldr r4, .L223+4
1257
- ldr r5, [r0, #12]
1258
-.L219:
1408
+ ldr r4, .L229+4
1409
+ ldr r5, [r3, r0, lsl #3]
1410
+.L225:
12591411 ldr r3, [r5]
12601412 str r3, [sp, #4]
12611413 ldr r3, [sp, #4]
12621414 tst r3, #512
1263
- bne .L220
1415
+ bne .L226
12641416 mov r0, #10
1265
- bl NandcDelayns
1417
+ bl ndelay
12661418 subs r4, r4, #1
1267
- bne .L219
1419
+ bne .L225
12681420 mvn r0, #0
1269
- b .L218
1270
-.L220:
1271
- mov r0, #0
1272
-.L218:
1421
+.L223:
12731422 add sp, sp, #12
12741423 @ sp needed
1275
- ldmfd sp!, {r4, r5, pc}
1276
-.L224:
1424
+ pop {r4, r5, pc}
1425
+.L226:
1426
+ mov r0, #0
1427
+ b .L223
1428
+.L230:
12771429 .align 2
1278
-.L223:
1430
+.L229:
12791431 .word .LANCHOR0
12801432 .word 100000
12811433 .fnend
12821434 .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay
12831435 .align 2
12841436 .global NandcWaitFlashReady
1437
+ .syntax unified
1438
+ .arm
1439
+ .fpu softvfp
12851440 .type NandcWaitFlashReady, %function
12861441 NandcWaitFlashReady:
12871442 .fnstart
12881443 @ args = 0, pretend = 0, frame = 8
12891444 @ frame_needed = 0, uses_anonymous_args = 0
1290
- ldr r3, .L231
1291
- stmfd sp!, {r0, r1, r2, r4, r5, lr}
1445
+ push {r0, r1, r2, r4, r5, lr}
12921446 .save {r4, r5, lr}
12931447 .pad #12
1294
- add r0, r3, r0, asl #3
1295
- ldr r4, .L231+4
1296
- ldr r5, [r0, #12]
1448
+ ldr r3, .L237
1449
+ ldr r4, .L237+4
1450
+ ldr r5, [r3, r0, lsl #3]
12971451 mov r0, #130
1298
- bl NandcDelayns
1299
-.L227:
1452
+ bl ndelay
1453
+.L233:
13001454 ldr r3, [r5]
13011455 str r3, [sp, #4]
13021456 ldr r3, [sp, #4]
13031457 tst r3, #512
1304
- bne .L228
1305
- mov r0, #1
1458
+ bne .L234
13061459 mov r1, #2
1460
+ mov r0, #1
13071461 bl usleep_range
13081462 subs r4, r4, #1
1309
- bne .L227
1463
+ bne .L233
13101464 mvn r0, #0
1311
- b .L226
1312
-.L228:
1313
- mov r0, #0
1314
-.L226:
1465
+.L231:
13151466 add sp, sp, #12
13161467 @ sp needed
1317
- ldmfd sp!, {r4, r5, pc}
1318
-.L232:
1468
+ pop {r4, r5, pc}
1469
+.L234:
1470
+ mov r0, #0
1471
+ b .L231
1472
+.L238:
13191473 .align 2
1320
-.L231:
1474
+.L237:
13211475 .word .LANCHOR0
13221476 .word 100000
13231477 .fnend
13241478 .size NandcWaitFlashReady, .-NandcWaitFlashReady
13251479 .align 2
13261480 .global FlashReset
1481
+ .syntax unified
1482
+ .arm
1483
+ .fpu softvfp
13271484 .type FlashReset, %function
13281485 FlashReset:
13291486 .fnstart
13301487 @ args = 0, pretend = 0, frame = 0
13311488 @ frame_needed = 0, uses_anonymous_args = 0
1332
- ldr r3, .L235
1333
- stmfd sp!, {r4, r5, r6, lr}
1489
+ ldr r3, .L241
1490
+ push {r4, r5, r6, lr}
13341491 .save {r4, r5, r6, lr}
1335
- add r3, r3, r0, asl #3
13361492 mov r4, r0
1337
- ldrb r6, [r3, #16] @ zero_extendqisi2
1338
- ldr r5, [r3, #12]
1493
+ ldr r5, [r3, r0, lsl #3]
1494
+ add r3, r3, r0, lsl #3
1495
+ ldrb r6, [r3, #4] @ zero_extendqisi2
13391496 bl NandcFlashCs
13401497 mov r3, #255
13411498 mov r0, r4
1342
- add r5, r5, r6, asl #8
1499
+ add r5, r5, r6, lsl #8
13431500 str r3, [r5, #2056]
13441501 bl NandcWaitFlashReady
13451502 mov r0, r4
1346
- ldmfd sp!, {r4, r5, r6, lr}
1503
+ pop {r4, r5, r6, lr}
13471504 b NandcFlashDeCs
1348
-.L236:
1505
+.L242:
13491506 .align 2
1350
-.L235:
1507
+.L241:
13511508 .word .LANCHOR0
13521509 .fnend
13531510 .size FlashReset, .-FlashReset
13541511 .align 2
13551512 .global flash_enter_slc_mode
1513
+ .syntax unified
1514
+ .arm
1515
+ .fpu softvfp
13561516 .type flash_enter_slc_mode, %function
13571517 flash_enter_slc_mode:
13581518 .fnstart
13591519 @ args = 0, pretend = 0, frame = 0
13601520 @ frame_needed = 0, uses_anonymous_args = 0
1361
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
1521
+ push {r4, r5, r6, r7, r8, lr}
13621522 .save {r4, r5, r6, r7, r8, lr}
1363
- ldr r5, .L244
1364
- ldrb r3, [r5, #144] @ zero_extendqisi2
1523
+ ldr r5, .L250
1524
+ ldrb r3, [r5, #152] @ zero_extendqisi2
13651525 cmp r3, #0
1366
- ldmeqfd sp!, {r4, r5, r6, r7, r8, pc}
1526
+ popeq {r4, r5, r6, r7, r8, pc}
13671527 mov r6, r0
13681528 bl NandcFlashCs
1369
- add r4, r5, r6, asl #3
1370
- ldrb r3, [r4, #2068] @ zero_extendqisi2
1371
- ldrb r8, [r4, #16] @ zero_extendqisi2
1529
+ add r3, r5, r6, lsl #3
1530
+ ldr r7, [r5, r6, lsl #3]
1531
+ ldrb r8, [r3, #4] @ zero_extendqisi2
1532
+ ldrb r3, [r3, #2072] @ zero_extendqisi2
13721533 cmp r3, #44
1373
- ldr r7, [r4, #12]
1374
- mov r8, r8, asl #8
1375
- bne .L239
1534
+ lsl r8, r8, #8
1535
+ bne .L245
13761536 add r4, r7, r8
13771537 mov r3, #239
1378
- mov r0, #50
13791538 str r3, [r4, #2056]
13801539 mov r3, #145
13811540 str r3, [r4, #2052]
1382
- bl NandcDelayns
1541
+ mov r0, #50
1542
+ bl ndelay
13831543 mov r3, #0
13841544 mov r2, #1
13851545 str r3, [r4, #2048]
....@@ -1387,53 +1547,56 @@
13871547 str r2, [r4, #2048]
13881548 str r3, [r4, #2048]
13891549 str r3, [r4, #2048]
1390
- bl NandcDelayns
1391
-.L239:
1392
- add r7, r7, r8
1550
+ bl ndelay
1551
+.L245:
13931552 mov r0, r6
1553
+ add r7, r7, r8
13941554 bl NandcWaitFlashReadyNoDelay
13951555 mov r3, #218
13961556 mov r0, r6
13971557 str r3, [r7, #2056]
13981558 bl NandcWaitFlashReady
13991559 mov r3, #2
1400
- strb r3, [r5, #2228]
1401
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
1402
-.L245:
1560
+ strb r3, [r5, #2232]
1561
+ pop {r4, r5, r6, r7, r8, pc}
1562
+.L251:
14031563 .align 2
1404
-.L244:
1564
+.L250:
14051565 .word .LANCHOR0
14061566 .fnend
14071567 .size flash_enter_slc_mode, .-flash_enter_slc_mode
14081568 .align 2
14091569 .global flash_exit_slc_mode
1570
+ .syntax unified
1571
+ .arm
1572
+ .fpu softvfp
14101573 .type flash_exit_slc_mode, %function
14111574 flash_exit_slc_mode:
14121575 .fnstart
14131576 @ args = 0, pretend = 0, frame = 0
14141577 @ frame_needed = 0, uses_anonymous_args = 0
1415
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
1578
+ push {r4, r5, r6, r7, r8, lr}
14161579 .save {r4, r5, r6, r7, r8, lr}
1417
- ldr r5, .L253
1418
- ldrb r3, [r5, #144] @ zero_extendqisi2
1580
+ ldr r5, .L259
1581
+ ldrb r3, [r5, #152] @ zero_extendqisi2
14191582 cmp r3, #0
1420
- ldmeqfd sp!, {r4, r5, r6, r7, r8, pc}
1583
+ popeq {r4, r5, r6, r7, r8, pc}
14211584 mov r6, r0
14221585 bl NandcFlashCs
1423
- add r4, r5, r6, asl #3
1424
- ldrb r3, [r4, #2068] @ zero_extendqisi2
1425
- ldrb r8, [r4, #16] @ zero_extendqisi2
1586
+ add r3, r5, r6, lsl #3
1587
+ ldr r7, [r5, r6, lsl #3]
1588
+ ldrb r8, [r3, #4] @ zero_extendqisi2
1589
+ ldrb r3, [r3, #2072] @ zero_extendqisi2
14261590 cmp r3, #44
1427
- ldr r7, [r4, #12]
1428
- mov r8, r8, asl #8
1429
- bne .L248
1591
+ lsl r8, r8, #8
1592
+ bne .L254
14301593 add r4, r7, r8
14311594 mov r3, #239
1432
- mov r0, #50
14331595 str r3, [r4, #2056]
14341596 mov r3, #145
14351597 str r3, [r4, #2052]
1436
- bl NandcDelayns
1598
+ mov r0, #50
1599
+ bl ndelay
14371600 mov r3, #2
14381601 mov r0, #100
14391602 str r3, [r4, #2048]
....@@ -1442,32 +1605,35 @@
14421605 mov r3, #0
14431606 str r3, [r4, #2048]
14441607 str r3, [r4, #2048]
1445
- bl NandcDelayns
1446
-.L248:
1447
- add r7, r7, r8
1608
+ bl ndelay
1609
+.L254:
14481610 mov r0, r6
1611
+ add r7, r7, r8
14491612 bl NandcWaitFlashReadyNoDelay
14501613 mov r3, #223
14511614 mov r0, r6
14521615 str r3, [r7, #2056]
14531616 bl NandcWaitFlashReady
14541617 mov r3, #0
1455
- strb r3, [r5, #2228]
1456
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
1457
-.L254:
1618
+ strb r3, [r5, #2232]
1619
+ pop {r4, r5, r6, r7, r8, pc}
1620
+.L260:
14581621 .align 2
1459
-.L253:
1622
+.L259:
14601623 .word .LANCHOR0
14611624 .fnend
14621625 .size flash_exit_slc_mode, .-flash_exit_slc_mode
14631626 .align 2
14641627 .global FlashEraseBlock
1628
+ .syntax unified
1629
+ .arm
1630
+ .fpu softvfp
14651631 .type FlashEraseBlock, %function
14661632 FlashEraseBlock:
14671633 .fnstart
14681634 @ args = 0, pretend = 0, frame = 0
14691635 @ frame_needed = 0, uses_anonymous_args = 0
1470
- stmfd sp!, {r4, r5, r6, lr}
1636
+ push {r4, r5, r6, lr}
14711637 .save {r4, r5, r6, lr}
14721638 mov r4, r0
14731639 mov r5, r1
....@@ -1484,138 +1650,140 @@
14841650 mov r1, r5
14851651 mov r0, r4
14861652 bl FlashReadStatus
1487
- mov r5, r0
1653
+ mov r1, r0
14881654 mov r0, r4
14891655 bl NandcFlashDeCs
1490
- and r0, r5, #1
1491
- ldmfd sp!, {r4, r5, r6, pc}
1656
+ and r0, r1, #1
1657
+ pop {r4, r5, r6, pc}
14921658 .fnend
14931659 .size FlashEraseBlock, .-FlashEraseBlock
14941660 .align 2
14951661 .global FlashSetInterfaceMode
1662
+ .syntax unified
1663
+ .arm
1664
+ .fpu softvfp
14961665 .type FlashSetInterfaceMode, %function
14971666 FlashSetInterfaceMode:
14981667 .fnstart
1499
- @ args = 0, pretend = 0, frame = 16
1668
+ @ args = 0, pretend = 0, frame = 8
15001669 @ frame_needed = 0, uses_anonymous_args = 0
1501
- ldr r1, .L280
1502
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1670
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
15031671 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1504
- .pad #20
1505
- sub sp, sp, #20
1506
- ldrb fp, [r1, #2229] @ zero_extendqisi2
1672
+ .pad #12
15071673 mov lr, #0
1508
- ldr r7, .L280+4
1509
- mov r4, #239
1510
- and r2, fp, #4
1511
- and r3, fp, #1
1512
- mov r5, #128
1513
- str r3, [sp, #8]
1514
- mov r6, #1
1515
- uxtb r3, r2
1674
+ ldr r4, .L286
1675
+ mov r5, #239
1676
+ mov r6, #128
1677
+ mov r7, #1
15161678 mov r8, #35
1517
- mov r2, lr
15181679 mov r9, #32
1680
+ ldrb r3, [r4, #2233] @ zero_extendqisi2
15191681 mov r10, #5
1520
- str r3, [sp, #4]
1521
- add r3, r1, #12
1522
- str r3, [sp, #12]
1523
-.L267:
1524
- ldr r3, [sp, #12]
1525
- ldrb ip, [lr, r7] @ zero_extendqisi2
1526
- ldr r1, [r3, lr]!
1682
+ and r2, r3, #4
1683
+ and r3, r3, #1
1684
+ str r2, [sp, #4]
1685
+ mov r2, lr
1686
+ str r3, [sp]
1687
+.L273:
1688
+ ldr r1, .L286+4
1689
+ add r3, r4, lr
1690
+ ldrb r3, [r3, #4] @ zero_extendqisi2
1691
+ ldrb ip, [lr, r1] @ zero_extendqisi2
15271692 cmp ip, #69
15281693 cmpne ip, #152
1529
- ldrb r3, [r3, #4] @ zero_extendqisi2
1530
- beq .L258
1694
+ beq .L264
15311695 cmp ip, #44
15321696 cmpne ip, #173
1533
- bne .L259
1534
-.L258:
1697
+ bne .L265
1698
+.L264:
15351699 cmp r0, #1
1536
- bne .L260
1537
- ldr fp, [sp, #8]
1700
+ ldr r1, [r4, lr]
1701
+ bne .L266
1702
+ ldr fp, [sp]
15381703 cmp fp, #0
1539
- beq .L259
1540
- mov r3, r3, asl #8
1704
+ beq .L265
1705
+ lsl r3, r3, #8
15411706 cmp ip, #173
15421707 add fp, r1, r3
1543
- str r4, [fp, #2056]
1708
+ str r5, [fp, #2056]
15441709 streq r0, [fp, #2052]
1545
- beq .L279
1710
+ beq .L285
15461711 cmp ip, #44
15471712 streq r0, [fp, #2052]
1548
- strne r5, [fp, #2052]
1713
+ strne r6, [fp, #2052]
15491714 streq r10, [fp, #2048]
15501715 strne r0, [fp, #2048]
1551
- b .L265
1552
-.L260:
1553
- ldr fp, [sp, #4]
1554
- cmp fp, #0
1555
- beq .L259
1556
- mov r3, r3, asl #8
1557
- cmp ip, #173
1558
- add fp, r1, r3
1559
- str r4, [fp, #2056]
1560
- streq r6, [fp, #2052]
1561
- streq r9, [fp, #2048]
1562
- beq .L265
1563
- cmp ip, #44
1564
- streq r6, [fp, #2052]
1565
- streq r8, [fp, #2048]
1566
- beq .L265
1567
- str r5, [fp, #2052]
1568
-.L279:
1569
- str r2, [fp, #2048]
1570
-.L265:
1716
+.L271:
15711717 add r3, r1, r3
15721718 str r2, [r3, #2048]
15731719 str r2, [r3, #2048]
15741720 str r2, [r3, #2048]
1575
-.L259:
1721
+.L265:
15761722 add lr, lr, #8
15771723 cmp lr, #32
1578
- bne .L267
1724
+ bne .L273
15791725 mov r0, #0
15801726 bl NandcWaitFlashReady
15811727 mov r0, #0
1582
- add sp, sp, #20
1728
+ add sp, sp, #12
15831729 @ sp needed
1584
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
1585
-.L281:
1730
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
1731
+.L266:
1732
+ ldr fp, [sp, #4]
1733
+ cmp fp, #0
1734
+ beq .L265
1735
+ lsl r3, r3, #8
1736
+ cmp ip, #173
1737
+ add fp, r1, r3
1738
+ str r5, [fp, #2056]
1739
+ streq r7, [fp, #2052]
1740
+ streq r9, [fp, #2048]
1741
+ beq .L271
1742
+ cmp ip, #44
1743
+ streq r7, [fp, #2052]
1744
+ streq r8, [fp, #2048]
1745
+ beq .L271
1746
+ str r6, [fp, #2052]
1747
+.L285:
1748
+ str r2, [fp, #2048]
1749
+ b .L271
1750
+.L287:
15861751 .align 2
1587
-.L280:
1752
+.L286:
15881753 .word .LANCHOR0
1589
- .word .LANCHOR0+2068
1754
+ .word .LANCHOR0+2072
15901755 .fnend
15911756 .size FlashSetInterfaceMode, .-FlashSetInterfaceMode
15921757 .align 2
15931758 .global FlashReadSpare
1759
+ .syntax unified
1760
+ .arm
1761
+ .fpu softvfp
15941762 .type FlashReadSpare, %function
15951763 FlashReadSpare:
15961764 .fnstart
15971765 @ args = 0, pretend = 0, frame = 0
15981766 @ frame_needed = 0, uses_anonymous_args = 0
1599
- ldr ip, .L284
1600
- stmfd sp!, {r3, r4, r5, lr}
1601
- .save {r3, r4, r5, lr}
1602
- add ip, ip, r0, asl #3
1603
- ldr r3, .L284+4
1767
+ ldr ip, .L290
1768
+ ldr r3, .L290+4
1769
+ push {r4, r5, r6, lr}
1770
+ .save {r4, r5, r6, lr}
16041771 mov r5, r2
1605
- ldrb r2, [ip, #16] @ zero_extendqisi2
1606
- ldr r4, [ip, #12]
1607
- ldrb r3, [r3, #481] @ zero_extendqisi2
1608
- add r4, r4, r2, asl #8
1772
+ ldr r4, [ip, r0, lsl #3]
1773
+ add ip, ip, r0, lsl #3
1774
+ ldrb r3, [r3, #477] @ zero_extendqisi2
1775
+ ldrb r2, [ip, #4] @ zero_extendqisi2
1776
+ lsl r3, r3, #9
1777
+ add r4, r4, r2, lsl #8
16091778 mov r2, #0
1610
- mov r3, r3, asl #9
16111779 str r2, [r4, #2056]
16121780 str r3, [r4, #2052]
1613
- mov r3, r3, lsr #8
1781
+ lsr r3, r3, #8
16141782 str r3, [r4, #2052]
16151783 uxtb r3, r1
16161784 str r3, [r4, #2052]
1617
- mov r3, r1, lsr #8
1618
- mov r1, r1, lsr #16
1785
+ lsr r3, r1, #8
1786
+ lsr r1, r1, #16
16191787 str r3, [r4, #2052]
16201788 mov r3, #48
16211789 str r1, [r4, #2052]
....@@ -1623,28 +1791,31 @@
16231791 bl NandcWaitFlashReady
16241792 ldr r3, [r4, #2048]
16251793 strb r3, [r5]
1626
- ldmfd sp!, {r3, r4, r5, pc}
1627
-.L285:
1794
+ pop {r4, r5, r6, pc}
1795
+.L291:
16281796 .align 2
1629
-.L284:
1797
+.L290:
16301798 .word .LANCHOR0
16311799 .word .LANCHOR1
16321800 .fnend
16331801 .size FlashReadSpare, .-FlashReadSpare
16341802 .align 2
16351803 .global SandiskProgTestBadBlock
1804
+ .syntax unified
1805
+ .arm
1806
+ .fpu softvfp
16361807 .type SandiskProgTestBadBlock, %function
16371808 SandiskProgTestBadBlock:
16381809 .fnstart
16391810 @ args = 0, pretend = 0, frame = 0
16401811 @ frame_needed = 0, uses_anonymous_args = 0
1641
- ldr r2, .L288
1642
- stmfd sp!, {r4, lr}
1812
+ ldr r3, .L294
1813
+ push {r4, lr}
16431814 .save {r4, lr}
1644
- add r2, r2, r0, asl #3
1645
- ldrb r4, [r2, #16] @ zero_extendqisi2
1646
- ldr r3, [r2, #12]
1647
- add r4, r3, r4, asl #8
1815
+ ldr r4, [r3, r0, lsl #3]
1816
+ add r3, r3, r0, lsl #3
1817
+ ldrb r3, [r3, #4] @ zero_extendqisi2
1818
+ add r4, r4, r3, lsl #8
16481819 mov r3, #162
16491820 str r3, [r4, #2056]
16501821 mov r3, #128
....@@ -1654,163 +1825,177 @@
16541825 str r3, [r4, #2052]
16551826 uxtb r3, r1
16561827 str r3, [r4, #2052]
1657
- mov r3, r1, lsr #8
1658
- mov r1, r1, lsr #16
1828
+ lsr r3, r1, #8
1829
+ lsr r1, r1, #16
16591830 str r3, [r4, #2052]
1660
- str r1, [r4, #2052]
16611831 mov r3, #16
1832
+ str r1, [r4, #2052]
16621833 str r3, [r4, #2056]
16631834 bl NandcWaitFlashReady
16641835 mov r3, #112
16651836 mov r0, #80
16661837 str r3, [r4, #2056]
1667
- bl NandcDelayns
1838
+ bl ndelay
16681839 ldr r0, [r4, #2048]
16691840 and r0, r0, #1
1670
- ldmfd sp!, {r4, pc}
1671
-.L289:
1841
+ pop {r4, pc}
1842
+.L295:
16721843 .align 2
1673
-.L288:
1844
+.L294:
16741845 .word .LANCHOR0
16751846 .fnend
16761847 .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock
16771848 .align 2
16781849 .global SandiskSetRRPara
1850
+ .syntax unified
1851
+ .arm
1852
+ .fpu softvfp
16791853 .type SandiskSetRRPara, %function
16801854 SandiskSetRRPara:
16811855 .fnstart
16821856 @ args = 0, pretend = 0, frame = 0
16831857 @ frame_needed = 0, uses_anonymous_args = 0
1684
- stmfd sp!, {r3, r4, r5, lr}
1685
- .save {r3, r4, r5, lr}
16861858 mov r3, #239
1687
- mov r5, r0
1859
+ push {r4, r5, r6, lr}
1860
+ .save {r4, r5, r6, lr}
16881861 str r3, [r0, #8]
16891862 mov r3, #17
1863
+ mov r5, r0
1864
+ mov r4, r1
16901865 str r3, [r0, #4]
16911866 mov r0, #200
1692
- mov r4, r1
1693
- bl NandcDelayns
1694
- ldr r0, .L298
1695
- ldr r1, .L298+4
1696
- add r4, r4, r4, asl #2
1697
- sub ip, r0, #48
1867
+ bl ndelay
1868
+ ldr r0, .L303
1869
+ add r4, r4, r4, lsl #2
1870
+ ldr r1, .L303+4
16981871 mov r2, #0
1699
-.L291:
1700
- ldrb r3, [r1, #1209] @ zero_extendqisi2
1872
+ sub ip, r0, #45
1873
+.L297:
1874
+ ldrb r3, [r1, #85] @ zero_extendqisi2
17011875 cmp r2, r3
1702
- bcs .L297
1703
- ldrb r3, [r1, #1208] @ zero_extendqisi2
1876
+ bcc .L300
1877
+ mov r0, #0
1878
+ pop {r4, r5, r6, lr}
1879
+ b NandcWaitFlashReady
1880
+.L300:
1881
+ ldrb r3, [r1, #84] @ zero_extendqisi2
17041882 cmp r3, #67
17051883 add r3, r2, r4
17061884 addeq r3, ip, r3
17071885 addne r3, r0, r3
1708
- add r2, r2, #1
17091886 ldrsb r3, [r3, #5]
1887
+ add r2, r2, #1
17101888 str r3, [r5]
1711
- b .L291
1712
-.L297:
1713
- mov r0, #0
1714
- ldmfd sp!, {r3, r4, r5, lr}
1715
- b NandcWaitFlashReady
1716
-.L299:
1889
+ b .L297
1890
+.L304:
17171891 .align 2
1718
-.L298:
1719
- .word .LANCHOR1+304
1892
+.L303:
1893
+ .word .LANCHOR1+301
17201894 .word .LANCHOR0
17211895 .fnend
17221896 .size SandiskSetRRPara, .-SandiskSetRRPara
17231897 .align 2
17241898 .global micron_auto_read_calibration_config
1899
+ .syntax unified
1900
+ .arm
1901
+ .fpu softvfp
17251902 .type micron_auto_read_calibration_config, %function
17261903 micron_auto_read_calibration_config:
17271904 .fnstart
17281905 @ args = 0, pretend = 0, frame = 0
17291906 @ frame_needed = 0, uses_anonymous_args = 0
1730
- stmfd sp!, {r3, r4, r5, lr}
1731
- .save {r3, r4, r5, lr}
1732
- mov r4, r0
1733
- mov r5, r1
1907
+ push {r4, r5, r6, lr}
1908
+ .save {r4, r5, r6, lr}
1909
+ mov r5, r0
1910
+ mov r6, r1
17341911 bl NandcWaitFlashReady
1735
- ldr r3, .L302
1912
+ ldr r0, .L307
1913
+ ldr r4, [r0, r5, lsl #3]
1914
+ add r0, r0, r5, lsl #3
1915
+ ldrb r3, [r0, #4] @ zero_extendqisi2
17361916 mov r0, #200
1737
- add r2, r3, r4, asl #3
1738
- ldrb r4, [r2, #16] @ zero_extendqisi2
1739
- ldr r3, [r2, #12]
1740
- add r4, r3, r4, asl #8
1917
+ add r4, r4, r3, lsl #8
17411918 mov r3, #239
17421919 str r3, [r4, #2056]
17431920 mov r3, #150
17441921 str r3, [r4, #2052]
1745
- bl NandcDelayns
1746
- str r5, [r4, #2048]
1922
+ bl ndelay
17471923 mov r3, #0
1924
+ str r6, [r4, #2048]
17481925 str r3, [r4, #2048]
17491926 str r3, [r4, #2048]
17501927 str r3, [r4, #2048]
1751
- ldmfd sp!, {r3, r4, r5, pc}
1752
-.L303:
1928
+ pop {r4, r5, r6, pc}
1929
+.L308:
17531930 .align 2
1754
-.L302:
1931
+.L307:
17551932 .word .LANCHOR0
17561933 .fnend
17571934 .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config
17581935 .align 2
17591936 .global FlashEraseSLc2KBlocks
1937
+ .syntax unified
1938
+ .arm
1939
+ .fpu softvfp
17601940 .type FlashEraseSLc2KBlocks, %function
17611941 FlashEraseSLc2KBlocks:
17621942 .fnstart
17631943 @ args = 0, pretend = 0, frame = 8
17641944 @ frame_needed = 0, uses_anonymous_args = 0
1765
- stmfd sp!, {r4, r5, r6, r7, r8, r9, lr}
1766
- .save {r4, r5, r6, r7, r8, r9, lr}
1945
+ push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr}
1946
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
1947
+ .pad #16
17671948 mov r5, #0
1768
- ldr r8, .L316
1769
- .pad #20
1770
- sub sp, sp, #20
1949
+ ldr r8, .L320
17711950 mov r6, r0
17721951 mov r9, r1
17731952 mov r7, r5
1774
-.L305:
1953
+ ldr r10, .L320+4
1954
+.L310:
17751955 cmp r7, r9
1776
- beq .L315
1777
- rsb r3, r7, r9
1956
+ bne .L315
1957
+ mov r0, #0
1958
+ add sp, sp, #16
1959
+ @ sp needed
1960
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
1961
+.L315:
1962
+ sub r3, r9, r7
17781963 add r2, sp, #8
1779
- add r0, r6, r5
1780
- mov r1, #0
17811964 uxtb r3, r3
1965
+ mov r1, #0
1966
+ add r0, r6, r5
17821967 str r3, [sp]
17831968 add r3, sp, #12
17841969 bl LogAddr2PhyAddr
1785
- ldrb r2, [r8, #2230] @ zero_extendqisi2
1970
+ ldrb r2, [r8, #2234] @ zero_extendqisi2
17861971 ldr r3, [sp, #12]
1787
- cmp r3, r2
1788
- mvncs r3, #0
1789
- strcs r3, [r6, r5]
1790
- bcs .L307
1972
+ cmp r2, r3
1973
+ mvnls r3, #0
1974
+ strls r3, [r6, r5]
1975
+ bls .L312
17911976 add r2, r8, r3
1792
- add r3, r8, r3, asl #4
1793
- ldrb r4, [r2, #2232] @ zero_extendqisi2
1794
- strb r4, [r3, #2100]
1977
+ add r3, r8, r3, lsl #4
1978
+ ldrb r4, [r2, #2236] @ zero_extendqisi2
1979
+ strb r4, [r3, #2104]
17951980 mov r0, r4
17961981 bl NandcWaitFlashReady
17971982 mov r0, r4
17981983 bl NandcFlashCs
17991984 mov r2, #0
1800
- mov r0, r4
18011985 ldr r1, [sp, #8]
1986
+ mov r0, r4
18021987 bl FlashEraseCmd
18031988 mov r0, r4
18041989 bl NandcWaitFlashReady
18051990 mov r0, r4
18061991 ldr r1, [sp, #8]
18071992 bl FlashReadStatus
1808
- mov r2, #0
1809
- ldr r3, [sp, #8]
18101993 sbfx r0, r0, #0, #1
1994
+ ldr r1, [sp, #8]
18111995 str r0, [r6, r5]
1996
+ mov r2, #0
1997
+ ldr r3, [r8, #40]
18121998 mov r0, r4
1813
- ldr r1, [r8, #4]
18141999 add r1, r1, r3
18152000 bl FlashEraseCmd
18162001 mov r0, r4
....@@ -1823,249 +2008,244 @@
18232008 strne r3, [r6, r5]
18242009 ldr r3, [r6, r5]
18252010 cmn r3, #1
1826
- bne .L309
1827
- ldr r0, .L316+4
2011
+ bne .L314
18282012 ldr r1, [sp, #8]
2013
+ mov r0, r10
18292014 bl printk
1830
-.L309:
2015
+.L314:
18312016 mov r0, r4
18322017 bl NandcFlashDeCs
1833
-.L307:
2018
+.L312:
18342019 add r7, r7, #1
18352020 add r5, r5, #36
1836
- b .L305
1837
-.L315:
1838
- mov r0, #0
1839
- add sp, sp, #20
1840
- @ sp needed
1841
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc}
1842
-.L317:
2021
+ b .L310
2022
+.L321:
18432023 .align 2
1844
-.L316:
2024
+.L320:
18452025 .word .LANCHOR0
18462026 .word .LC1
18472027 .fnend
18482028 .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks
18492029 .align 2
18502030 .global FlashEraseBlocks
2031
+ .syntax unified
2032
+ .arm
2033
+ .fpu softvfp
18512034 .type FlashEraseBlocks, %function
18522035 FlashEraseBlocks:
18532036 .fnstart
1854
- @ args = 0, pretend = 0, frame = 16
2037
+ @ args = 0, pretend = 0, frame = 8
18552038 @ frame_needed = 0, uses_anonymous_args = 0
1856
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2039
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
18572040 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
18582041 mov r8, r2
1859
- ldr r4, .L354
1860
- .pad #28
1861
- sub sp, sp, #28
1862
- ldrb r5, [r4] @ zero_extendqisi2
2042
+ ldr r4, .L355
2043
+ .pad #20
2044
+ sub sp, sp, #20
2045
+ ldrb r5, [r4, #36] @ zero_extendqisi2
18632046 cmp r5, #0
18642047 moveq r9, r0
18652048 moveq r10, r1
1866
- moveq fp, r4
1867
- beq .L319
2049
+ beq .L324
18682050 mov r1, r2
18692051 bl FlashEraseSLc2KBlocks
1870
- b .L320
1871
-.L328:
1872
- mov r3, #36
1873
- mov r1, #0
1874
- mul r6, r3, r5
1875
- add r2, sp, #16
1876
- add r3, r9, r6
1877
- str r3, [sp, #12]
1878
- rsb r3, r5, r8
1879
- ldr r0, [sp, #12]
1880
- uxtb r3, r3
1881
- str r3, [sp]
1882
- add r3, sp, #20
1883
- bl LogAddr2PhyAddr
1884
- ldrb r3, [r4, #2230] @ zero_extendqisi2
1885
- mov r7, r0
1886
- ldr r0, [sp, #20]
1887
- cmp r0, r3
1888
- mvncs r3, #0
1889
- strcs r3, [r9, r6]
1890
- bcc .L351
18912052 .L322:
1892
- add r5, r5, #1
1893
-.L319:
1894
- cmp r5, r8
1895
- bcc .L328
1896
- b .L352
1897
-.L351:
1898
- ldrb r3, [fp, #2240] @ zero_extendqisi2
2053
+ add sp, sp, #20
2054
+ @ sp needed
2055
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2056
+.L333:
2057
+ mov r3, #36
2058
+ add r2, sp, #8
2059
+ mul r6, r3, r5
2060
+ sub r3, r8, r5
2061
+ uxtb r3, r3
2062
+ mov r1, #0
2063
+ str r3, [sp]
2064
+ add r3, sp, #12
2065
+ add fp, r9, r6
2066
+ mov r0, fp
2067
+ bl LogAddr2PhyAddr
2068
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
2069
+ mov r7, r0
2070
+ ldr r0, [sp, #12]
2071
+ cmp r3, r0
2072
+ mvnls r3, #0
2073
+ strls r3, [r9, r6]
2074
+ bls .L327
2075
+ ldrb r3, [r4, #2244] @ zero_extendqisi2
18992076 cmp r3, #0
1900
- add r3, r4, r0, asl #4
1901
- ldr r3, [r3, #2108]
2077
+ add r3, r4, r0, lsl #4
19022078 moveq r7, #0
2079
+ ldr r3, [r3, #2112]
19032080 cmp r3, #0
1904
- beq .L324
2081
+ beq .L329
19052082 uxtb r0, r0
19062083 bl FlashWaitCmdDone
1907
-.L324:
1908
- ldr r2, [sp, #20]
2084
+.L329:
2085
+ ldr r2, [sp, #12]
19092086 cmp r7, #0
1910
- ldr r0, [sp, #12]
1911
- addne ip, r6, #36
1912
- addne ip, r9, ip
1913
- mov r3, r2, asl #4
2087
+ addne r6, r6, #36
2088
+ mov r0, #0
2089
+ addne r6, r9, r6
2090
+ lsl r3, r2, #4
19142091 add r2, r4, r2
19152092 add r1, r4, r3
19162093 add r3, r4, r3
1917
- ldrb r6, [r2, #2232] @ zero_extendqisi2
2094
+ str r0, [r1, #2116]
2095
+ ldr r0, [sp, #8]
2096
+ strne r6, [r1, #2116]
2097
+ ldrb r6, [r2, #2236] @ zero_extendqisi2
19182098 str r0, [r1, #2108]
1919
- mov r0, #0
1920
- str r0, [r1, #2112]
1921
- ldr r0, [sp, #16]
1922
- strne ip, [r1, #2112]
1923
- strb r6, [r3, #2100]
1924
- str r0, [r1, #2104]
2099
+ str fp, [r1, #2112]
19252100 mov r0, r6
2101
+ strb r6, [r3, #2104]
19262102 bl NandcFlashCs
19272103 cmp r10, #1
19282104 mov r0, r6
1929
- bne .L326
1930
- ldrb r3, [fp, #144] @ zero_extendqisi2
2105
+ bne .L331
2106
+ ldrb r3, [r4, #152] @ zero_extendqisi2
19312107 cmp r3, #0
1932
- beq .L326
2108
+ beq .L331
19332109 bl flash_enter_slc_mode
1934
- b .L327
1935
-.L326:
1936
- bl flash_exit_slc_mode
1937
-.L327:
1938
- ldr r3, [sp, #20]
2110
+.L332:
2111
+ ldr r3, [sp, #12]
19392112 mov r0, r6
1940
- ldr r1, [sp, #16]
2113
+ ldr r1, [sp, #8]
19412114 add r5, r5, r7
1942
- add r3, r4, r3, asl #2
1943
- ldr r2, [r3, #1172]
2115
+ add r3, r4, r3, lsl #2
2116
+ ldr r2, [r3, #1180]
19442117 adds r2, r2, #0
19452118 movne r2, #1
19462119 bl FlashWaitReadyEN
1947
- mov r0, r6
19482120 mov r2, r7
1949
- ldr r1, [sp, #16]
2121
+ ldr r1, [sp, #8]
2122
+ mov r0, r6
19502123 bl FlashEraseCmd
19512124 mov r0, r6
19522125 bl NandcFlashDeCs
1953
- b .L322
1954
-.L352:
1955
- ldr r6, .L354
2126
+.L327:
2127
+ add r5, r5, #1
2128
+.L324:
2129
+ cmp r5, r8
2130
+ bcc .L333
2131
+ ldr r6, .L355+4
19562132 mov r5, #0
1957
- ldr r7, .L354+4
1958
-.L329:
1959
- ldrb r2, [r4, #2230] @ zero_extendqisi2
1960
- ldr r3, .L354
1961
- cmp r5, r2
1962
- bcs .L353
2133
+.L334:
2134
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
2135
+ cmp r5, r3
2136
+ bcc .L336
2137
+ ldr r3, [r4, #2248]
2138
+ cmp r3, #0
2139
+ bne .L337
2140
+.L338:
2141
+ mov r0, #0
2142
+ b .L322
2143
+.L331:
2144
+ bl flash_exit_slc_mode
2145
+ b .L332
2146
+.L336:
19632147 uxtb r0, r5
19642148 bl FlashWaitCmdDone
19652149 cmp r10, #1
1966
- bne .L330
1967
- ldrb r3, [r6, #144] @ zero_extendqisi2
2150
+ bne .L335
2151
+ ldrb r3, [r4, #152] @ zero_extendqisi2
19682152 cmp r3, #0
1969
- beq .L330
1970
- ldrb r0, [r7, r5, asl #4] @ zero_extendqisi2
2153
+ beq .L335
2154
+ ldrb r0, [r6, r5, lsl #4] @ zero_extendqisi2
19712155 bl flash_exit_slc_mode
1972
-.L330:
2156
+.L335:
19732157 add r5, r5, #1
1974
- b .L329
1975
-.L353:
1976
- ldr r2, [r3, #2244]
1977
- cmp r2, #0
1978
- bne .L332
1979
-.L334:
1980
- mov r0, #0
1981
- b .L320
1982
-.L332:
1983
- ldrb r3, [r3, #2068] @ zero_extendqisi2
2158
+ b .L334
2159
+.L337:
2160
+ ldrb r3, [r4, #2072] @ zero_extendqisi2
19842161 cmp r3, #69
1985
- bne .L334
1986
- mov r3, #0
1987
- mov r2, #36
1988
- mov r1, r3
1989
-.L333:
2162
+ moveq r3, #0
2163
+ moveq r2, #36
2164
+ moveq r1, r3
2165
+ bne .L338
2166
+.L339:
19902167 cmp r3, r8
1991
- beq .L334
2168
+ beq .L338
19922169 mul r0, r2, r3
19932170 add r3, r3, #1
19942171 str r1, [r9, r0]
1995
- b .L333
1996
-.L320:
1997
- add sp, sp, #28
1998
- @ sp needed
1999
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2000
-.L355:
2172
+ b .L339
2173
+.L356:
20012174 .align 2
2002
-.L354:
2175
+.L355:
20032176 .word .LANCHOR0
2004
- .word .LANCHOR0+2100
2177
+ .word .LANCHOR0+2104
20052178 .fnend
20062179 .size FlashEraseBlocks, .-FlashEraseBlocks
20072180 .align 2
20082181 .global FlashReadDpCmd
2182
+ .syntax unified
2183
+ .arm
2184
+ .fpu softvfp
20092185 .type FlashReadDpCmd, %function
20102186 FlashReadDpCmd:
20112187 .fnstart
20122188 @ args = 0, pretend = 0, frame = 0
20132189 @ frame_needed = 0, uses_anonymous_args = 0
2014
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
2190
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
20152191 .save {r4, r5, r6, r7, r8, r9, r10, lr}
2016
- mov r8, r0
2017
- ldr r0, .L362
2018
- mov r7, r1
2192
+ mov r7, r0
2193
+ ldr r0, .L363
2194
+ mov r8, r1
20192195 uxtb r10, r2
2020
- mov r9, r2, lsr #8
2021
- add r3, r0, r8, asl #3
2022
- mov r5, r2, lsr #16
2023
- ldrb r1, [r0, #64] @ zero_extendqisi2
2024
- uxtb lr, r7
2025
- ldr r4, [r3, #12]
2026
- mov ip, r7, lsr #8
2027
- ldrb r3, [r3, #16] @ zero_extendqisi2
2028
- cmp r1, #1
2029
- ldr r2, [r0, #44]
2030
- mov r1, r7, lsr #16
2031
- mov r3, r3, asl #8
2196
+ lsr r9, r2, #8
2197
+ lsr r6, r2, #16
2198
+ uxtb lr, r8
2199
+ ldr r2, [r0, #48]
2200
+ lsr ip, r8, #8
2201
+ add r1, r0, r7, lsl #3
2202
+ ldr r3, [r0, r7, lsl #3]
2203
+ ldrb r4, [r1, #4] @ zero_extendqisi2
2204
+ ldrb r1, [r0, #68] @ zero_extendqisi2
20322205 ldrb r2, [r2, #7] @ zero_extendqisi2
2033
- bne .L357
2206
+ cmp r1, #1
2207
+ lsl r4, r4, #8
2208
+ lsr r1, r8, #16
2209
+ bne .L358
20342210 cmp r2, #1
2035
- addeq r2, r4, r3
2036
- add r4, r4, r3
2037
- moveq r6, #38
2038
- streq r6, [r2, #2056]
2039
- mov r6, #0
2040
- ldrb r3, [r0, #57] @ zero_extendqisi2
2041
- ldrb r2, [r0, #56] @ zero_extendqisi2
2042
- mov r0, r8
2211
+ addeq r2, r3, r4
2212
+ moveq r5, #38
2213
+ add r4, r3, r4
2214
+ streq r5, [r2, #2056]
2215
+ ldrb r3, [r0, #61] @ zero_extendqisi2
2216
+ mov r5, #0
2217
+ ldrb r2, [r0, #60] @ zero_extendqisi2
2218
+ mov r0, r7
20432219 str r2, [r4, #2056]
2044
- str r6, [r4, #2052]
2045
- str r6, [r4, #2052]
2220
+ str r5, [r4, #2052]
2221
+ str r5, [r4, #2052]
20462222 str lr, [r4, #2052]
20472223 str ip, [r4, #2052]
20482224 str r1, [r4, #2052]
20492225 str r3, [r4, #2056]
20502226 bl NandcWaitFlashReady
2051
- str r6, [r4, #2056]
20522227 mov r3, #48
2053
- str r6, [r4, #2052]
2054
- str r6, [r4, #2052]
2228
+ str r5, [r4, #2056]
2229
+ str r5, [r4, #2052]
2230
+ str r5, [r4, #2052]
20552231 str r10, [r4, #2052]
20562232 str r9, [r4, #2052]
2057
- str r5, [r4, #2052]
2233
+ str r6, [r4, #2052]
20582234 str r3, [r4, #2056]
2059
- b .L359
2060
-.L357:
2235
+.L360:
2236
+ mov r1, r8
2237
+ mov r0, r7
2238
+ pop {r4, r5, r6, r7, r8, r9, r10, lr}
2239
+ b FlashSetRandomizer
2240
+.L358:
20612241 cmp r2, #1
2062
- addeq r2, r4, r3
2063
- add r3, r4, r3
2064
- moveq r6, #38
2065
- streq r6, [r2, #2056]
2066
- ldrb r2, [r0, #56] @ zero_extendqisi2
2242
+ addeq r2, r3, r4
2243
+ moveq r5, #38
2244
+ streq r5, [r2, #2056]
2245
+ add r3, r3, r4
2246
+ ldrb r2, [r0, #60] @ zero_extendqisi2
20672247 str r2, [r3, #2056]
2068
- ldrb r2, [r0, #57] @ zero_extendqisi2
2248
+ ldrb r2, [r0, #61] @ zero_extendqisi2
20692249 str lr, [r3, #2052]
20702250 str ip, [r3, #2052]
20712251 str r1, [r3, #2052]
....@@ -2073,132 +2253,140 @@
20732253 mov r2, #48
20742254 str r10, [r3, #2052]
20752255 str r9, [r3, #2052]
2076
- str r5, [r3, #2052]
2256
+ str r6, [r3, #2052]
20772257 str r2, [r3, #2056]
2078
-.L359:
2079
- mov r0, r8
2080
- mov r1, r7
2081
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
2082
- b FlashSetRandomizer
2083
-.L363:
2258
+ b .L360
2259
+.L364:
20842260 .align 2
2085
-.L362:
2261
+.L363:
20862262 .word .LANCHOR0
20872263 .fnend
20882264 .size FlashReadDpCmd, .-FlashReadDpCmd
20892265 .align 2
20902266 .global ftl_flash_de_init
2267
+ .syntax unified
2268
+ .arm
2269
+ .fpu softvfp
20912270 .type ftl_flash_de_init, %function
20922271 ftl_flash_de_init:
20932272 .fnstart
20942273 @ args = 0, pretend = 0, frame = 0
20952274 @ frame_needed = 0, uses_anonymous_args = 0
2096
- stmfd sp!, {r3, r4, r5, lr}
2097
- .save {r3, r4, r5, lr}
2275
+ push {r4, lr}
2276
+ .save {r4, lr}
20982277 mov r0, #0
2099
- ldr r4, .L375
2278
+ ldr r4, .L376
21002279 bl NandcWaitFlashReady
21012280 bl FlashSetReadRetryDefault
2102
- ldr r0, [r4, #2248]
2281
+ ldr r0, [r4, #2252]
21032282 cmp r0, #0
2104
- beq .L365
2283
+ beq .L366
21052284 mov r0, #0
21062285 bl flash_enter_slc_mode
2107
- b .L366
2108
-.L365:
2109
- bl flash_exit_slc_mode
2110
-.L366:
2111
- ldrb r3, [r4, #2252] @ zero_extendqisi2
2112
- ldr r5, .L375
2286
+.L367:
2287
+ ldrb r3, [r4, #2256] @ zero_extendqisi2
21132288 cmp r3, #0
2114
- beq .L367
2115
- ldrb r3, [r5, #2229] @ zero_extendqisi2
2289
+ beq .L368
2290
+ ldrb r3, [r4, #2233] @ zero_extendqisi2
21162291 tst r3, #1
2117
- beq .L367
2292
+ beq .L368
21182293 mov r0, #1
21192294 bl FlashSetInterfaceMode
21202295 mov r0, #1
21212296 bl NandcSetMode
21222297 mov r3, #0
2123
- strb r3, [r5, #2252]
2124
-.L367:
2125
- ldr r3, [r4, #12]
2298
+ strb r3, [r4, #2256]
2299
+.L368:
2300
+ ldr r3, [r4]
21262301 mov r0, #0
21272302 str r0, [r3, #336]
2128
- ldmfd sp!, {r3, r4, r5, pc}
2129
-.L376:
2303
+ pop {r4, pc}
2304
+.L366:
2305
+ bl flash_exit_slc_mode
2306
+ b .L367
2307
+.L377:
21302308 .align 2
2131
-.L375:
2309
+.L376:
21322310 .word .LANCHOR0
21332311 .fnend
21342312 .size ftl_flash_de_init, .-ftl_flash_de_init
21352313 .align 2
21362314 .global NandcRandmzSel
2315
+ .syntax unified
2316
+ .arm
2317
+ .fpu softvfp
21372318 .type NandcRandmzSel, %function
21382319 NandcRandmzSel:
21392320 .fnstart
21402321 @ args = 0, pretend = 0, frame = 0
21412322 @ frame_needed = 0, uses_anonymous_args = 0
21422323 @ link register save eliminated.
2143
- ldr r3, .L378
2144
- add r0, r3, r0, asl #3
2145
- ldr r3, [r0, #12]
2324
+ ldr r3, .L379
2325
+ ldr r3, [r3, r0, lsl #3]
21462326 str r1, [r3, #336]
21472327 bx lr
2148
-.L379:
2328
+.L380:
21492329 .align 2
2150
-.L378:
2330
+.L379:
21512331 .word .LANCHOR0
21522332 .fnend
21532333 .size NandcRandmzSel, .-NandcRandmzSel
21542334 .global __aeabi_idiv
21552335 .align 2
21562336 .global NandcTimeCfg
2337
+ .syntax unified
2338
+ .arm
2339
+ .fpu softvfp
21572340 .type NandcTimeCfg, %function
21582341 NandcTimeCfg:
21592342 .fnstart
21602343 @ args = 0, pretend = 0, frame = 0
21612344 @ frame_needed = 0, uses_anonymous_args = 0
2162
- stmfd sp!, {r4, lr}
2345
+ push {r4, lr}
21632346 .save {r4, lr}
21642347 mov r4, r0
21652348 mov r0, #0
21662349 bl rknand_get_clk_rate
2167
- ldr r1, .L391
2350
+ ldr r1, .L392
21682351 bl __aeabi_idiv
2169
- ldr r3, .L391+4
2170
- ldr r3, [r3, #80]
2352
+ ldr r3, .L392+4
21712353 cmp r0, #250
21722354 movwgt r2, #8354
2173
- bgt .L389
2174
- cmp r0, #220
2355
+ ldr r3, [r3, #88]
21752356 bgt .L390
2357
+ cmp r0, #220
2358
+ ble .L384
2359
+.L391:
2360
+ movw r2, #8322
2361
+ b .L390
2362
+.L384:
21762363 cmp r0, #185
21772364 movwgt r2, #4226
2178
- bgt .L389
2365
+ bgt .L390
21792366 cmp r0, #160
21802367 movwgt r2, #4194
2181
- bgt .L389
2368
+ bgt .L390
21822369 cmp r4, #35
21832370 movwls r2, #4193
2184
- bls .L389
2371
+ bls .L390
21852372 cmp r4, #99
21862373 movwls r2, #4225
2187
- bls .L389
2374
+ bhi .L391
21882375 .L390:
2189
- movw r2, #8322
2190
-.L389:
21912376 str r2, [r3, #4]
2192
- ldmfd sp!, {r4, pc}
2193
-.L392:
2377
+ pop {r4, pc}
2378
+.L393:
21942379 .align 2
2195
-.L391:
2380
+.L392:
21962381 .word 1000000
21972382 .word .LANCHOR0
21982383 .fnend
21992384 .size NandcTimeCfg, .-NandcTimeCfg
22002385 .align 2
22012386 .global FlashTimingCfg
2387
+ .syntax unified
2388
+ .arm
2389
+ .fpu softvfp
22022390 .type FlashTimingCfg, %function
22032391 FlashTimingCfg:
22042392 .fnstart
....@@ -2209,249 +2397,266 @@
22092397 sub r3, r3, #33
22102398 bic r3, r3, #32
22112399 cmp r3, #1
2212
- bls .L394
2400
+ bls .L395
22132401 movw r3, #8322
22142402 cmp r0, r3
2215
- bne .L395
2216
-.L394:
2217
- ldr r3, .L396
2218
- ldr r3, [r3, #80]
2219
- str r0, [r3, #4]
2403
+ bne .L396
22202404 .L395:
2221
- ldr r3, .L396+4
2222
- ldrb r0, [r3, #493] @ zero_extendqisi2
2223
- b NandcTimeCfg
2224
-.L397:
2225
- .align 2
2405
+ ldr r3, .L397
2406
+ ldr r3, [r3, #88]
2407
+ str r0, [r3, #4]
22262408 .L396:
2409
+ ldr r3, .L397+4
2410
+ ldrb r0, [r3, #489] @ zero_extendqisi2
2411
+ b NandcTimeCfg
2412
+.L398:
2413
+ .align 2
2414
+.L397:
22272415 .word .LANCHOR0
22282416 .word .LANCHOR1
22292417 .fnend
22302418 .size FlashTimingCfg, .-FlashTimingCfg
22312419 .align 2
22322420 .global NandcInit
2421
+ .syntax unified
2422
+ .arm
2423
+ .fpu softvfp
22332424 .type NandcInit, %function
22342425 NandcInit:
22352426 .fnstart
22362427 @ args = 0, pretend = 0, frame = 0
22372428 @ frame_needed = 0, uses_anonymous_args = 0
2238
- stmfd sp!, {r3, r4, r5, lr}
2239
- .save {r3, r4, r5, lr}
2240
- mov r1, #0
2241
- ldr r3, .L401
2429
+ ldr r3, .L402
22422430 mov r2, #1
2431
+ push {r4, r5, r6, lr}
2432
+ .save {r4, r5, r6, lr}
2433
+ mov r1, #0
22432434 mov r5, #0
2244
- str r1, [r3, #16]
22452435 mov r4, r3
2246
- str r0, [r3, #12]
2247
- str r2, [r3, #24]
2436
+ str r2, [r3, #12]
22482437 mov r2, #2
2249
- str r0, [r3, #20]
2250
- str r2, [r3, #32]
2438
+ str r2, [r3, #20]
22512439 mov r2, #3
2252
- str r0, [r3, #28]
2253
- str r0, [r3, #36]
2254
- str r0, [r3, #80]
2255
- str r2, [r3, #40]
2440
+ stm r3, {r0, r1}
2441
+ str r0, [r3, #8]
2442
+ str r0, [r3, #16]
2443
+ str r0, [r3, #24]
2444
+ str r0, [r3, #88]
2445
+ str r2, [r3, #28]
22562446 ldr r2, [r0]
22572447 and r2, r2, #253952
22582448 ubfx ip, r2, #13, #1
22592449 bfi r2, r1, #13, #1
22602450 ldr r1, [r0, #352]
22612451 orr r2, r2, #256
2262
- str ip, [r3, #2256]
2452
+ str ip, [r3, #2260]
22632453 movw ip, #2049
22642454 ubfx r1, r1, #16, #4
2265
- str r1, [r3, #2260]
2455
+ str r1, [r3, #2264]
22662456 ldr r1, [r0, #352]
22672457 cmp r1, ip
2268
- str r1, [r3, #2264]
2458
+ str r1, [r3, #2268]
22692459 moveq r3, #8
2270
- streq r3, [r4, #2260]
2460
+ streq r3, [r4, #2264]
22712461 str r2, [r0]
22722462 mov r0, #40
2273
- ldr r3, [r4, #80]
2463
+ ldr r3, [r4, #88]
22742464 str r5, [r3, #336]
22752465 bl NandcTimeCfg
2276
- ldr r3, [r4, #80]
2466
+ ldr r3, [r4, #88]
22772467 movw r2, #8322
22782468 mov r0, #36864
22792469 str r2, [r3, #344]
2280
- ldr r2, .L401+4
2470
+ ldr r2, .L402+4
22812471 str r2, [r3, #304]
22822472 bl ftl_malloc
2283
- str r5, [r4, #2296]
2284
- str r5, [r4, #2304]
2285
- str r0, [r4, #2268]
22862473 str r0, [r4, #2272]
2287
- add r0, r0, #32768
22882474 str r0, [r4, #2276]
2289
- ldmfd sp!, {r3, r4, r5, pc}
2290
-.L402:
2475
+ add r0, r0, #32768
2476
+ str r0, [r4, #2280]
2477
+ str r5, [r4, #2300]
2478
+ str r5, [r4, #2308]
2479
+ pop {r4, r5, r6, pc}
2480
+.L403:
22912481 .align 2
2292
-.L401:
2482
+.L402:
22932483 .word .LANCHOR0
22942484 .word 1579009
22952485 .fnend
22962486 .size NandcInit, .-NandcInit
22972487 .align 2
22982488 .global NandcGetTimeCfg
2489
+ .syntax unified
2490
+ .arm
2491
+ .fpu softvfp
22992492 .type NandcGetTimeCfg, %function
23002493 NandcGetTimeCfg:
23012494 .fnstart
23022495 @ args = 0, pretend = 0, frame = 0
23032496 @ frame_needed = 0, uses_anonymous_args = 0
2304
- ldr ip, .L405
2497
+ ldr ip, .L406
23052498 str lr, [sp, #-4]!
23062499 .save {lr}
2307
- ldr lr, [ip, #80]
2500
+ ldr lr, [ip, #88]
23082501 ldr lr, [lr, #4]
23092502 str lr, [r0]
2310
- ldr r0, [ip, #80]
2503
+ ldr r0, [ip, #88]
23112504 ldr r0, [r0]
23122505 str r0, [r1]
2313
- ldr r1, [ip, #80]
2506
+ ldr r1, [ip, #88]
23142507 ldr r1, [r1, #304]
23152508 str r1, [r2]
2316
- ldr r1, [ip, #80]
2509
+ ldr r1, [ip, #88]
23172510 ldr r2, [r1, #308]
23182511 ldr r1, [r1, #344]
23192512 uxtb r2, r2
2320
- orr r2, r2, r1, asl #16
2513
+ orr r2, r2, r1, lsl #16
23212514 str r2, [r3]
23222515 ldr pc, [sp], #4
2323
-.L406:
2516
+.L407:
23242517 .align 2
2325
-.L405:
2518
+.L406:
23262519 .word .LANCHOR0
23272520 .fnend
23282521 .size NandcGetTimeCfg, .-NandcGetTimeCfg
23292522 .align 2
23302523 .global NandcBchSel
2524
+ .syntax unified
2525
+ .arm
2526
+ .fpu softvfp
23312527 .type NandcBchSel, %function
23322528 NandcBchSel:
23332529 .fnstart
23342530 @ args = 0, pretend = 0, frame = 0
23352531 @ frame_needed = 0, uses_anonymous_args = 0
23362532 @ link register save eliminated.
2337
- ldr r3, .L415
2338
- mov r1, #1
2339
- ldr r2, [r3, #80]
2340
- str r0, [r3, #2308]
2341
- mov r3, #0
2342
- str r1, [r2, #8]
2343
- mov r1, #16
2344
- cmp r0, r1
2345
- bfi r3, r1, #8, #8
2346
- bfc r3, #18, #1
2347
- bne .L408
2348
-.L411:
2533
+ ldr r3, .L416
2534
+ mov ip, #1
2535
+ mov r1, #0
2536
+ ldr r2, [r3, #88]
2537
+ str r0, [r3, #2312]
2538
+ mov r3, r1
2539
+ str ip, [r2, #8]
2540
+ mov ip, #16
2541
+ cmp r0, ip
2542
+ bfi r3, ip, #8, #8
2543
+ bfi r3, r1, #18, #1
2544
+ bne .L409
2545
+.L412:
23492546 bfc r3, #4, #1
2350
- b .L409
2351
-.L408:
2352
- cmp r0, #24
2353
- orreq r3, r3, #16
2354
- beq .L409
2355
- cmp r0, #40
2356
- orr r3, r3, #262144
2357
- orr r3, r3, #16
2358
- beq .L411
2359
-.L409:
2547
+.L410:
23602548 orr r3, r3, #1
23612549 str r3, [r2, #12]
23622550 bx lr
2363
-.L416:
2551
+.L409:
2552
+ cmp r0, #24
2553
+ orreq r3, r3, #16
2554
+ beq .L410
2555
+ cmp r0, #40
2556
+ orr r3, r3, #262144
2557
+ orr r3, r3, #16
2558
+ bne .L410
2559
+ b .L412
2560
+.L417:
23642561 .align 2
2365
-.L415:
2562
+.L416:
23662563 .word .LANCHOR0
23672564 .fnend
23682565 .size NandcBchSel, .-NandcBchSel
23692566 .align 2
23702567 .global FlashBchSel
2568
+ .syntax unified
2569
+ .arm
2570
+ .fpu softvfp
23712571 .type FlashBchSel, %function
23722572 FlashBchSel:
23732573 .fnstart
23742574 @ args = 0, pretend = 0, frame = 0
23752575 @ frame_needed = 0, uses_anonymous_args = 0
23762576 @ link register save eliminated.
2377
- ldr r3, .L418
2378
- strb r0, [r3, #2312]
2577
+ ldr r3, .L419
2578
+ strb r0, [r3, #2316]
23792579 b NandcBchSel
2380
-.L419:
2580
+.L420:
23812581 .align 2
2382
-.L418:
2582
+.L419:
23832583 .word .LANCHOR0
23842584 .fnend
23852585 .size FlashBchSel, .-FlashBchSel
23862586 .align 2
23872587 .global ftl_flash_resume
2588
+ .syntax unified
2589
+ .arm
2590
+ .fpu softvfp
23882591 .type ftl_flash_resume, %function
23892592 ftl_flash_resume:
23902593 .fnstart
23912594 @ args = 0, pretend = 0, frame = 0
23922595 @ frame_needed = 0, uses_anonymous_args = 0
2393
- ldr r3, .L429
2394
- stmfd sp!, {r4, r5, r6, lr}
2596
+ ldr r3, .L430
2597
+ push {r4, r5, r6, lr}
23952598 .save {r4, r5, r6, lr}
23962599 mov r5, #0
2397
- ldr r2, [r3, #80]
2600
+ ldr r6, .L430+4
23982601 mov r4, r3
2399
- ldr r1, [r3, #84]
2400
- ldr r6, .L429+4
2401
- str r1, [r2]
2402
- ldr r1, [r3, #88]
2403
- ldr r2, [r3, #80]
2404
- str r1, [r2, #4]
2602
+ ldr r2, [r3, #88]
24052603 ldr r1, [r3, #92]
2406
- str r1, [r2, #8]
2604
+ str r1, [r2]
24072605 ldr r1, [r3, #96]
2408
- str r1, [r2, #12]
2606
+ ldr r2, [r3, #88]
2607
+ str r1, [r2, #4]
24092608 ldr r1, [r3, #100]
2410
- str r1, [r2, #304]
2609
+ str r1, [r2, #8]
24112610 ldr r1, [r3, #104]
2412
- str r1, [r2, #308]
2611
+ str r1, [r2, #12]
24132612 ldr r1, [r3, #108]
2414
- str r1, [r2, #336]
2613
+ str r1, [r2, #304]
24152614 ldr r1, [r3, #112]
2615
+ str r1, [r2, #308]
2616
+ ldr r1, [r3, #116]
2617
+ str r1, [r2, #336]
2618
+ ldr r1, [r3, #120]
24162619 str r1, [r2, #344]
2417
-.L422:
2418
- ldrb r3, [r6, r5, asl #3] @ zero_extendqisi2
2620
+.L423:
2621
+ ldrb r3, [r6, r5, lsl #3] @ zero_extendqisi2
24192622 sub r3, r3, #1
24202623 uxtb r3, r3
24212624 cmp r3, #253
2422
- bhi .L421
2625
+ bhi .L422
24232626 uxtb r0, r5
24242627 bl FlashReset
2425
-.L421:
2628
+.L422:
24262629 add r5, r5, #1
24272630 cmp r5, #4
2428
- bne .L422
2429
- ldrb r3, [r4, #2252] @ zero_extendqisi2
2430
- ldr r5, .L429
2631
+ bne .L423
2632
+ ldrb r3, [r4, #2256] @ zero_extendqisi2
24312633 cmp r3, #0
2432
- beq .L423
2634
+ beq .L424
24332635 mov r0, #1
24342636 bl NandcSetMode
2435
- ldrb r0, [r5, #2229] @ zero_extendqisi2
2637
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
24362638 bl FlashSetInterfaceMode
2437
- ldrb r0, [r5, #2229] @ zero_extendqisi2
2639
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
24382640 bl NandcSetMode
2439
- ldrb r0, [r5, #101] @ zero_extendqisi2
2641
+ ldrb r0, [r4, #109] @ zero_extendqisi2
24402642 bl NandcSetDdrPara
2441
-.L423:
2442
- ldr r3, [r4, #44]
2443
- ldmfd sp!, {r4, r5, r6, lr}
2643
+.L424:
2644
+ ldr r3, [r4, #48]
2645
+ pop {r4, r5, r6, lr}
24442646 ldrb r0, [r3, #20] @ zero_extendqisi2
24452647 b FlashBchSel
2446
-.L430:
2648
+.L431:
24472649 .align 2
2448
-.L429:
2650
+.L430:
24492651 .word .LANCHOR0
2450
- .word .LANCHOR0+2068
2652
+ .word .LANCHOR0+2072
24512653 .fnend
24522654 .size ftl_flash_resume, .-ftl_flash_resume
24532655 .align 2
24542656 .global ftl_nandc_get_irq_status
2657
+ .syntax unified
2658
+ .arm
2659
+ .fpu softvfp
24552660 .type ftl_nandc_get_irq_status, %function
24562661 ftl_nandc_get_irq_status:
24572662 .fnstart
....@@ -2464,6 +2669,9 @@
24642669 .size ftl_nandc_get_irq_status, .-ftl_nandc_get_irq_status
24652670 .align 2
24662671 .global rk_nandc_flash_ready
2672
+ .syntax unified
2673
+ .arm
2674
+ .fpu softvfp
24672675 .type rk_nandc_flash_ready, %function
24682676 rk_nandc_flash_ready:
24692677 .fnstart
....@@ -2481,6 +2689,9 @@
24812689 .size rk_nandc_flash_ready, .-rk_nandc_flash_ready
24822690 .align 2
24832691 .global NandcIqrWaitFlashReady
2692
+ .syntax unified
2693
+ .arm
2694
+ .fpu softvfp
24842695 .type NandcIqrWaitFlashReady, %function
24852696 NandcIqrWaitFlashReady:
24862697 .fnstart
....@@ -2492,6 +2703,9 @@
24922703 .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady
24932704 .align 2
24942705 .global rk_nandc_flash_xfer_completed
2706
+ .syntax unified
2707
+ .arm
2708
+ .fpu softvfp
24952709 .type rk_nandc_flash_xfer_completed, %function
24962710 rk_nandc_flash_xfer_completed:
24972711 .fnstart
....@@ -2509,6 +2723,9 @@
25092723 .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed
25102724 .align 2
25112725 .global NandcSendDumpDataStart
2726
+ .syntax unified
2727
+ .arm
2728
+ .fpu softvfp
25122729 .type NandcSendDumpDataStart, %function
25132730 NandcSendDumpDataStart:
25142731 .fnstart
....@@ -2518,10 +2735,10 @@
25182735 ldr r2, [r0, #16]
25192736 .pad #8
25202737 sub sp, sp, #8
2521
- ldr r3, .L437
2738
+ ldr r3, .L438
25222739 str r2, [sp, #4]
25232740 ldr r2, [sp, #4]
2524
- bic r2, r2, #4
2741
+ bfc r2, #2, #1
25252742 str r2, [sp, #4]
25262743 ldr r2, [sp, #4]
25272744 str r2, [r0, #16]
....@@ -2531,14 +2748,17 @@
25312748 add sp, sp, #8
25322749 @ sp needed
25332750 bx lr
2534
-.L438:
2751
+.L439:
25352752 .align 2
2536
-.L437:
2753
+.L438:
25372754 .word 538969130
25382755 .fnend
25392756 .size NandcSendDumpDataStart, .-NandcSendDumpDataStart
25402757 .align 2
25412758 .global NandcSendDumpDataDone
2759
+ .syntax unified
2760
+ .arm
2761
+ .fpu softvfp
25422762 .type NandcSendDumpDataDone, %function
25432763 NandcSendDumpDataDone:
25442764 .fnstart
....@@ -2547,12 +2767,12 @@
25472767 @ link register save eliminated.
25482768 .pad #8
25492769 sub sp, sp, #8
2550
-.L440:
2770
+.L441:
25512771 ldr r3, [r0, #8]
25522772 str r3, [sp, #4]
25532773 ldr r3, [sp, #4]
25542774 tst r3, #1048576
2555
- beq .L440
2775
+ beq .L441
25562776 add sp, sp, #8
25572777 @ sp needed
25582778 bx lr
....@@ -2560,155 +2780,152 @@
25602780 .size NandcSendDumpDataDone, .-NandcSendDumpDataDone
25612781 .align 2
25622782 .global NandcXferStart
2783
+ .syntax unified
2784
+ .arm
2785
+ .fpu softvfp
25632786 .type NandcXferStart, %function
25642787 NandcXferStart:
25652788 .fnstart
2566
- @ args = 8, pretend = 0, frame = 24
2789
+ @ args = 8, pretend = 0, frame = 16
25672790 @ frame_needed = 0, uses_anonymous_args = 0
2568
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2791
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
25692792 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2570
- mov lr, #16
2571
- ldr r5, .L462
2572
- mov r4, #0
2573
- .pad #28
2574
- sub sp, sp, #28
2575
- add r0, r5, r0, asl #3
2576
- ldr r8, [sp, #64]
2577
- ldr r6, [r0, #12]
2578
- ldrb r0, [r0, #16] @ zero_extendqisi2
2579
- ldr ip, [sp, #68]
2793
+ mov ip, #16
2794
+ ldr r4, .L463
2795
+ mov r5, #0
2796
+ .pad #20
2797
+ sub sp, sp, #20
2798
+ ldr r8, [sp, #56]
2799
+ ldr r6, [r4, r0, lsl #3]
2800
+ add r0, r4, r0, lsl #3
25802801 ldr r7, [r6, #12]
2581
- bfi r7, lr, #8, #8
2582
- bfi r7, r4, #3, #1
2583
- bfi r4, r1, #1, #1
2584
- orr r4, r4, #8
2802
+ ldrb r0, [r0, #4] @ zero_extendqisi2
2803
+ bfi r7, ip, #8, #8
2804
+ bfi r7, r5, #3, #1
2805
+ bfi r5, r1, #1, #1
25852806 bfi r7, r0, #5, #3
2807
+ orr r5, r5, #8
25862808 mov r0, #1
2587
- bfi r4, r0, #5, #2
2588
- orr r4, r4, #536870912
2589
- mov r3, r3, lsr r0
2590
- orr r4, r4, #1024
2591
- bfi r4, r3, #4, #1
2592
- ldr r3, [r5, #2260]
2809
+ bfi r5, r0, #5, #2
2810
+ lsr r3, r3, r0
2811
+ orr r5, r5, #536870912
2812
+ orr r5, r5, #1024
2813
+ bfi r5, r3, #4, #1
2814
+ ldr r3, [r4, #2264]
25932815 cmp r3, #3
2594
- bls .L445
2816
+ bls .L446
25952817 ldr r3, [r6, #16]
2596
- str r3, [sp, #20]
2597
- ldr r3, [sp, #20]
2598
- bic r3, r3, #4
2599
- str r3, [sp, #20]
2600
- adds r3, ip, #0
2601
- movne r3, #1
2602
- cmp ip, #0
2603
- cmpeq r8, #0
2604
- str r3, [sp, #8]
2605
- beq .L446
2818
+ str r3, [sp, #12]
2819
+ ldr r3, [sp, #12]
2820
+ bfc r3, #2, #1
2821
+ str r3, [sp, #12]
2822
+ ldr r3, [sp, #60]
2823
+ cmp r8, #0
2824
+ cmpeq r3, #0
2825
+ beq .L447
26062826 cmp r1, #0
2607
- bne .L447
2608
-.L455:
2827
+ bne .L448
2828
+.L456:
26092829 add r2, r2, #1
26102830 cmp r8, #0
2611
- mov r2, r2, asr #1
2831
+ asr r2, r2, #1
26122832 movne r0, r8
2613
- bfi r4, r2, #22, #6
2614
- ldreq r0, [r5, #2272]
2615
- b .L449
2833
+ bfi r5, r2, #22, #6
2834
+ ldreq r0, [r4, #2276]
2835
+.L450:
2836
+ ldr r3, [r4, #2280]
2837
+ ubfx r10, r5, #22, #5
2838
+ mov r9, r1
2839
+ mov r2, r1
2840
+ lsl r1, r10, #10
2841
+ str r0, [r4, #2284]
2842
+ str r3, [r4, #2288]
2843
+ bl rknand_dma_map_single
2844
+ mov r2, r9
2845
+ str r0, [r4, #2292]
2846
+ lsl r1, r10, #7
2847
+ ldr r0, [r4, #2288]
2848
+ bl rknand_dma_map_single
2849
+ mov r3, #1
2850
+ str r0, [r4, #2296]
2851
+ str r3, [r4, #2300]
2852
+ mov r2, #16
2853
+ ldr r3, [r4, #2292]
2854
+ tst r8, #3
2855
+ clz r1, r9
2856
+ lsr r1, r1, #5
2857
+ str r3, [r6, #20]
2858
+ ldr r3, [r4, #2296]
2859
+ str r3, [r6, #24]
2860
+ mov r3, #0
2861
+ str r3, [sp, #12]
2862
+ ldr r3, [sp, #12]
2863
+ bfi r3, r2, #9, #5
2864
+ moveq r2, #2
2865
+ str r3, [sp, #12]
2866
+ ldr r3, [sp, #12]
2867
+ orr r3, r3, #448
2868
+ str r3, [sp, #12]
2869
+ ldreq r3, [sp, #12]
2870
+ bfieq r3, r2, #3, #3
2871
+ streq r3, [sp, #12]
2872
+ ldr r3, [sp, #12]
2873
+ orr r3, r3, #4
2874
+ str r3, [sp, #12]
2875
+ ldr r3, [sp, #12]
2876
+ bfi r3, r1, #1, #1
2877
+ str r3, [sp, #12]
2878
+ ldr r3, [sp, #12]
2879
+ orr r3, r3, #1
2880
+ str r3, [sp, #12]
26162881 .L447:
2617
- ldr r3, [r5, #2308]
2618
- mov r9, r5
2882
+ ldr r3, [sp, #12]
2883
+ str r3, [r6, #16]
2884
+.L446:
2885
+ str r7, [r6, #12]
2886
+ str r5, [r6, #8]
2887
+ orr r5, r5, #4
2888
+ str r5, [r6, #8]
2889
+ add sp, sp, #20
2890
+ @ sp needed
2891
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2892
+.L448:
2893
+ ldr r3, [r4, #2312]
2894
+ lsr r10, r2, #1
2895
+ ldr ip, [sp, #60]
26192896 cmp r3, #25
26202897 movcc r3, #64
26212898 movcs r3, #128
26222899 str r3, [sp, #4]
2623
- mov r3, r2, lsr #1
2624
- str r3, [sp, #12]
26252900 mov r3, #0
26262901 mov r0, r3
2627
-.L451:
2628
- ldr lr, [sp, #12]
2629
- cmp r0, lr
2630
- bcs .L455
2631
- ldr lr, [sp, #8]
2632
- mov r10, r3, lsr #2
2902
+.L452:
2903
+ cmp r0, r10
2904
+ bcs .L456
2905
+ ldr lr, [sp, #60]
26332906 add r0, r0, #1
26342907 cmp lr, #0
2635
- ldrneh fp, [ip, #2]
2636
- mvneq fp, #0
2637
- ldrneh lr, [ip], #4
2638
- ldreq lr, [r9, #2276]
2639
- orrne lr, lr, fp, asl #16
2640
- ldrne fp, [r9, #2276]
2641
- streq fp, [lr, r10, asl #2]
2642
- strne lr, [fp, r10, asl #2]
2908
+ bic lr, r3, #3
2909
+ ldrne fp, [ip], #4 @ unaligned
2910
+ mvneq r9, #0
2911
+ ldrne r9, [r4, #2280]
2912
+ ldreq fp, [r4, #2280]
2913
+ strne fp, [r9, lr]
2914
+ streq r9, [fp, lr]
26432915 ldr lr, [sp, #4]
26442916 add r3, r3, lr
2645
- b .L451
2646
-.L449:
2647
- ldr r3, [r5, #2276]
2648
- ubfx r10, r4, #22, #5
2649
- mov r9, r1
2650
- str r0, [r5, #2280]
2651
- mov r2, r9
2652
- mov r1, r10, asl #10
2653
- str r3, [r5, #2284]
2654
- bl rknand_dma_map_single
2655
- mov r2, r9
2656
- mov r1, r10, asl #7
2657
- clz r9, r9
2658
- mov r9, r9, lsr #5
2659
- str r0, [r5, #2288]
2660
- ldr r0, [r5, #2284]
2661
- bl rknand_dma_map_single
2662
- mov r3, #1
2663
- str r3, [r5, #2296]
2664
- tst r8, #3
2665
- ldr r3, [r5, #2288]
2666
- str r0, [r5, #2292]
2667
- str r3, [r6, #20]
2668
- ldr r3, [r5, #2292]
2669
- str r3, [r6, #24]
2670
- mov r3, #0
2671
- str r3, [sp, #20]
2672
- ldr r3, [sp, #20]
2673
- bic r3, r3, #15872
2674
- orr r3, r3, #8192
2675
- str r3, [sp, #20]
2676
- ldr r3, [sp, #20]
2677
- orr r3, r3, #448
2678
- str r3, [sp, #20]
2679
- ldreq r3, [sp, #20]
2680
- biceq r3, r3, #56
2681
- orreq r3, r3, #16
2682
- streq r3, [sp, #20]
2683
- ldr r3, [sp, #20]
2684
- orr r3, r3, #4
2685
- str r3, [sp, #20]
2686
- ldr r3, [sp, #20]
2687
- bic r3, r3, #2
2688
- orr r9, r3, r9, asl #1
2689
- str r9, [sp, #20]
2690
- ldr r3, [sp, #20]
2691
- orr r3, r3, #1
2692
- str r3, [sp, #20]
2693
-.L446:
2694
- ldr r3, [sp, #20]
2695
- str r3, [r6, #16]
2696
-.L445:
2697
- str r7, [r6, #12]
2698
- str r4, [r6, #8]
2699
- orr r4, r4, #4
2700
- str r4, [r6, #8]
2701
- add sp, sp, #28
2702
- @ sp needed
2703
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2704
-.L463:
2917
+ b .L452
2918
+.L464:
27052919 .align 2
2706
-.L462:
2920
+.L463:
27072921 .word .LANCHOR0
27082922 .fnend
27092923 .size NandcXferStart, .-NandcXferStart
27102924 .align 2
27112925 .global Ftl_log2
2926
+ .syntax unified
2927
+ .arm
2928
+ .fpu softvfp
27122929 .type Ftl_log2, %function
27132930 Ftl_log2:
27142931 .fnstart
....@@ -2717,20 +2934,24 @@
27172934 @ link register save eliminated.
27182935 mov r1, #0
27192936 mov r2, #1
2720
-.L465:
2937
+.L466:
27212938 cmp r2, r0
27222939 uxth r3, r1
27232940 add r1, r1, #1
2724
- movls r2, r2, asl #1
2725
- bls .L465
2726
-.L467:
2941
+ bls .L467
27272942 sub r0, r3, #1
27282943 uxth r0, r0
27292944 bx lr
2945
+.L467:
2946
+ lsl r2, r2, #1
2947
+ b .L466
27302948 .fnend
27312949 .size Ftl_log2, .-Ftl_log2
27322950 .align 2
27332951 .global FtlPrintInfo
2952
+ .syntax unified
2953
+ .arm
2954
+ .fpu softvfp
27342955 .type FtlPrintInfo, %function
27352956 FtlPrintInfo:
27362957 .fnstart
....@@ -2742,507 +2963,534 @@
27422963 .size FtlPrintInfo, .-FtlPrintInfo
27432964 .align 2
27442965 .global FtlSysBlkNumInit
2966
+ .syntax unified
2967
+ .arm
2968
+ .fpu softvfp
27452969 .type FtlSysBlkNumInit, %function
27462970 FtlSysBlkNumInit:
27472971 .fnstart
27482972 @ args = 0, pretend = 0, frame = 0
27492973 @ frame_needed = 0, uses_anonymous_args = 0
27502974 @ link register save eliminated.
2751
- ldr r3, .L471
2752
- cmp r0, #23
2753
- movw r1, #2330
2754
- add r2, r3, #2320
2755
- movls r0, #24
2975
+ ldr r3, .L470
2976
+ movw r2, #2324
2977
+ movw r1, #2334
2978
+ cmp r0, #24
2979
+ movcc r0, #24
2980
+ ldrh r2, [r3, r2]
27562981 ldrh r1, [r3, r1]
2757
- ldrh r2, [r2]
2758
- str r0, [r3, #2316]
2759
- mul r2, r2, r0
2760
- rsb r0, r0, r1
2761
- movw r1, #2328
2982
+ str r0, [r3, #2320]
2983
+ mul r2, r0, r2
2984
+ sub r0, r1, r0
2985
+ movw r1, #2332
27622986 strh r0, [r3, r1] @ movhi
27632987 mov r0, #0
2764
- ldr r1, [r3, #2336]
2765
- str r2, [r3, #2324]
2766
- rsb r2, r2, r1
2767
- str r2, [r3, #2332]
2988
+ ldr r1, [r3, #2340]
2989
+ str r2, [r3, #2328]
2990
+ sub r2, r1, r2
2991
+ str r2, [r3, #2336]
27682992 bx lr
2769
-.L472:
2770
- .align 2
27712993 .L471:
2994
+ .align 2
2995
+.L470:
27722996 .word .LANCHOR0
27732997 .fnend
27742998 .size FtlSysBlkNumInit, .-FtlSysBlkNumInit
27752999 .align 2
27763000 .global FtlConstantsInit
3001
+ .syntax unified
3002
+ .arm
3003
+ .fpu softvfp
27773004 .type FtlConstantsInit, %function
27783005 FtlConstantsInit:
27793006 .fnstart
27803007 @ args = 0, pretend = 0, frame = 16
27813008 @ frame_needed = 0, uses_anonymous_args = 0
2782
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
3009
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
27833010 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2784
- movw r3, #2340
2785
- ldr r4, .L502
2786
- movw r1, #2344
2787
- ldrh r6, [r0, #8]
3011
+ movw r3, #2344
3012
+ ldr r4, .L500
3013
+ movw r1, #2348
27883014 mov r5, r0
2789
- ldrh r2, [r0, #10]
27903015 .pad #20
27913016 sub sp, sp, #20
3017
+ ldrh r6, [r0, #8]
3018
+ ldrh r2, [r0, #10]
27923019 ldrh lr, [r0, #14]
27933020 strh r6, [r4, r3] @ movhi
2794
- movw r3, #2342
3021
+ movw r3, #2346
27953022 strh r2, [r4, r3] @ movhi
27963023 ldrh r3, [r0, #12]
2797
- ldr r0, .L502+4
3024
+ ldr r0, .L500+4
27983025 strh r3, [r4, r1] @ movhi
2799
- movw r1, #2330
3026
+ movw r1, #2334
28003027 strh lr, [r4, r1] @ movhi
28013028 mov r1, #0
2802
-.L474:
3029
+.L473:
28033030 strb r1, [r1, r0]
28043031 add r1, r1, #1
28053032 cmp r1, #32
2806
- bne .L474
3033
+ bne .L473
28073034 ldrh r0, [r5, #14]
28083035 ldrh r1, [r5, #20]
28093036 cmp r1, r0, lsr #8
2810
- bcs .L475
3037
+ bcs .L474
28113038 uxtb r10, r3
2812
- ldr r9, .L502+4
2813
- mov r1, r10, asl #1
3039
+ ldr r9, .L500+4
3040
+ lsl r1, r10, #1
28143041 uxtb r1, r1
2815
- str r1, [sp, #4]
3042
+ str r1, [sp]
28163043 sub r1, r2, #1
28173044 mul r1, r3, r1
2818
- str r1, [sp]
3045
+ str r1, [sp, #8]
28193046 mov r1, #0
2820
-.L476:
3047
+.L475:
28213048 cmp r1, r3
2822
- bcs .L478
2823
- ldr ip, [sp]
2824
- uxtb r0, r1
2825
- rsb r7, r3, r1
2826
- add ip, r1, ip
3049
+ bcs .L477
3050
+ ldr ip, [sp, #8]
3051
+ sub r7, r1, r3
28273052 add r7, r9, r7
2828
- add ip, r9, ip
2829
- str ip, [sp, #8]
2830
- mov ip, #0
3053
+ uxtb r0, r1
28313054 str r7, [sp, #12]
3055
+ add ip, r1, ip
3056
+ add ip, r9, ip
3057
+ str ip, [sp, #4]
3058
+ mov ip, #0
28323059 mov r8, ip
2833
-.L479:
2834
- cmp r8, r2
2835
- add ip, ip, r3
2836
- bcs .L501
3060
+ b .L478
3061
+.L476:
28373062 ldr r7, [sp, #12]
2838
- add fp, r0, r10
3063
+ add fp, r10, r0
28393064 add r8, r8, #1
28403065 strb r0, [r7, ip]
2841
- ldr r7, [sp, #8]
2842
- strb fp, [r7, ip]
28433066 ldr r7, [sp, #4]
2844
- add r0, r0, r7
3067
+ strb fp, [r7, ip]
3068
+ ldr r7, [sp]
3069
+ add r0, r7, r0
28453070 uxtb r0, r0
2846
- b .L479
2847
-.L501:
2848
- add r1, r1, #1
2849
- b .L476
28503071 .L478:
2851
- movw r1, #2342
2852
- mov r2, r2, asl #1
3072
+ cmp r8, r2
3073
+ add ip, ip, r3
3074
+ bcc .L476
3075
+ add r1, r1, #1
3076
+ b .L475
3077
+.L477:
3078
+ lsl r2, r2, #1
3079
+ movw r1, #2346
3080
+ lsr lr, lr, #1
28533081 strh r2, [r4, r1] @ movhi
2854
- movw r2, #2330
2855
- mov lr, lr, lsr #1
3082
+ movw r2, #2334
28563083 strh lr, [r4, r2] @ movhi
2857
-.L475:
2858
- cmp r6, #1
2859
- movw r2, #2380
3084
+.L474:
3085
+ ldr fp, .L500+8
3086
+ movw r2, #2382
3087
+ ldrb r9, [r4, #36] @ zero_extendqisi2
28603088 mov r1, #5
28613089 strh r1, [r4, r2] @ movhi
2862
- movw r1, #2382
2863
- mov r0, #0
2864
- strh r0, [r4, r1] @ movhi
2865
- ldreq r1, .L502
2866
- ldrb r9, [r4] @ zero_extendqisi2
2867
- ldr r8, .L502+8
2868
- streqh r6, [r1, r2] @ movhi
2869
- movw r1, #2342
2870
- ldrh r7, [r4, r1]
3090
+ cmp r6, #1
3091
+ mov r1, #0
3092
+ strheq r6, [r4, r2] @ movhi
3093
+ strh r1, [fp] @ movhi
28713094 cmp r9, #0
2872
- mov r2, #4352
2873
- strh r2, [r8] @ movhi
2874
- movne r2, #384
2875
- strneh r2, [r8] @ movhi
2876
- smulbb r7, r7, r3
2877
- ldr r2, .L502
2878
- ldrh r10, [r5, #16]
2879
- add r1, r2, #2320
2880
- str r2, [sp, #8]
2881
- uxth r7, r7
2882
- strh r7, [r1] @ movhi
2883
- movw r1, #2330
2884
- ldrh r6, [r4, r1]
2885
- movw r1, #2386
2886
- smulbb r0, r7, r10
2887
- smulbb r3, r6, r3
2888
- strh r3, [r4, r1] @ movhi
2889
- movw r3, #2388
3095
+ mov r1, #4352
3096
+ movw r2, #2386
3097
+ strh r1, [r4, r2] @ movhi
3098
+ movne r1, #384
3099
+ strhne r1, [r4, r2] @ movhi
3100
+ movw r2, #2346
3101
+ ldrh r7, [r4, r2]
3102
+ movw r2, #2324
3103
+ ldrh r8, [r5, #16]
28903104 ldrh r1, [r5, #18]
2891
- strh r10, [r4, r3] @ movhi
2892
- movw r3, #2390
2893
- strh r1, [r4, r3] @ movhi
2894
- movw r3, #2392
2895
- strh r0, [r4, r3] @ movhi
2896
- movw r0, #2394
2897
- ldrh r3, [r5, #20]
3105
+ smulbb r7, r7, r3
28983106 str r1, [sp, #4]
2899
- strh r3, [r4, r0] @ movhi
3107
+ uxth r7, r7
3108
+ strh r7, [r4, r2] @ movhi
3109
+ movw r2, #2334
3110
+ ldrh r6, [r4, r2]
3111
+ movw r2, #2388
3112
+ smulbb r3, r3, r6
3113
+ strh r3, [r4, r2] @ movhi
3114
+ smulbb r2, r7, r8
3115
+ movw r3, #2390
3116
+ strh r8, [r4, r3] @ movhi
3117
+ movw r3, #2392
3118
+ strh r1, [r4, r3] @ movhi
3119
+ movw r3, #2394
3120
+ strh r2, [r4, r3] @ movhi
3121
+ movw r2, #2396
3122
+ ldrh r3, [r5, #20]
29003123 mov r0, r3
3124
+ strh r3, [r4, r2] @ movhi
29013125 str r3, [sp]
29023126 bl Ftl_log2
2903
- movw ip, #2398
2904
- cmp r6, #1024
29053127 ldr r3, [sp]
2906
- mov fp, r0
2907
- movw r0, #2396
2908
- ldr r2, [sp, #8]
2909
- strh fp, [r4, r0] @ movhi
2910
- mov r0, r3, asl #9
3128
+ movw r2, #2398
3129
+ strh r0, [r4, r2] @ movhi
3130
+ mov r10, r0
3131
+ ldr r0, .L500+12
3132
+ cmp r6, #1024
29113133 ldr r1, [sp, #4]
2912
- uxth r0, r0
2913
- strh r0, [r4, ip] @ movhi
2914
- add ip, r2, #2400
2915
- mov r0, r0, lsr #8
2916
- strh r0, [ip] @ movhi
3134
+ lsl r2, r3, #9
3135
+ uxth r2, r2
3136
+ mul r1, r3, r1
3137
+ strh r2, [r0] @ movhi
3138
+ lsr r2, r2, #8
29173139 movw r0, #2402
2918
- ldrh ip, [r5, #26]
2919
- mul r1, r1, r3
2920
- ldr r5, .L502
2921
- strh ip, [r4, r0] @ movhi
2922
- movwhi ip, #2382
2923
- mul r0, r6, r7
2924
- str r0, [r4, #2336]
2925
- uxtbhi r0, r6
2926
- strhih r0, [r2, ip] @ movhi
2927
- movw r2, #2382
2928
- ldrh r2, [r4, r2]
2929
- ldrh r0, [r8]
2930
- rsb r2, r2, r6
2931
- mov r6, r6, asl #6
2932
- mul r2, r2, r7
2933
- mov r0, r0, asl #3
3140
+ strh r2, [r4, r0] @ movhi
3141
+ movw r2, #2404
3142
+ ldrh r0, [r5, #26]
3143
+ strh r0, [r4, r2] @ movhi
3144
+ mul r2, r6, r7
3145
+ str r2, [r4, #2340]
3146
+ uxtbhi r2, r6
3147
+ strhhi r2, [fp] @ movhi
3148
+ ldrh r2, [fp]
3149
+ sub r2, r6, r2
3150
+ lsl r6, r6, #6
3151
+ mul r2, r7, r2
29343152 mul r2, r3, r2
2935
- mul r10, r10, r2
2936
- mov r10, r10, asr #11
2937
- str r10, [r4, #2404]
3153
+ mul r8, r8, r2
3154
+ movw r2, #2386
3155
+ ldrh r0, [r4, r2]
3156
+ asr r8, r8, #11
3157
+ lsl r0, r0, #3
3158
+ str r8, [r4, #2408]
29383159 bl __aeabi_idiv
2939
- movw r3, #2408
2940
- mov r1, r7
2941
- ldr r10, .L502
29423160 uxth r0, r0
3161
+ movw r3, #2412
3162
+ mov r1, r7
29433163 cmp r0, #4
2944
- strhih r0, [r5, r3] @ movhi
29453164 movls r2, #4
2946
- strlsh r2, [r5, r3] @ movhi
3165
+ strhhi r0, [r4, r3] @ movhi
3166
+ strhls r2, [r4, r3] @ movhi
29473167 cmp r9, #0
2948
- movw r2, #2410
2949
- movne r3, #640
2950
- strneh r3, [r8] @ movhi
2951
- ldrh r3, [r8]
2952
- mov r3, r3, asr fp
2953
- add fp, fp, #9
2954
- mov r0, r6, asr fp
3168
+ movne r2, #640
3169
+ movwne r3, #2386
3170
+ strhne r2, [r4, r3] @ movhi
3171
+ movw r3, #2386
3172
+ ldrh r3, [r4, r3]
3173
+ movw r2, #2414
3174
+ asr r3, r3, r10
3175
+ add r10, r10, #9
3176
+ asr r6, r6, r10
29553177 add r3, r3, #2
29563178 strh r3, [r4, r2] @ movhi
3179
+ ldr r3, .L500+16
3180
+ strh r6, [r3] @ movhi
3181
+ uxth r6, r6
3182
+ mul r3, r6, r7
3183
+ add r6, r6, #8
3184
+ str r3, [r4, #2420]
29573185 movw r3, #2412
2958
- strh r0, [r4, r3] @ movhi
2959
- uxth r0, r0
2960
- add r6, r0, #8
2961
- mul r3, r7, r0
2962
- str r3, [r4, #2416]
2963
- movw r3, #2408
29643186 ldrh r0, [r4, r3]
29653187 bl __aeabi_uidiv
2966
- cmp r7, #1
29673188 uxtah r0, r6, r0
2968
- ldr r6, .L502
3189
+ cmp r7, #1
3190
+ add r3, r4, #2320
29693191 addeq r0, r0, #4
2970
- str r0, [r10, #2316]
2971
- ldr r3, [r4, #2316]
2972
- uxth r0, r3
3192
+ str r0, [r4, #2320]
3193
+ ldrh r0, [r3]
29733194 bl FtlSysBlkNumInit
2974
- ldr r3, [r4, #2316]
2975
- ldr r2, [r4, #2332]
3195
+ ldr r5, [r4, #2336]
3196
+ movw r2, #2390
3197
+ ldr r3, [r4, #2320]
29763198 mov r0, #2048
2977
- str r3, [r4, #2420]
2978
- movw r3, #2388
2979
- ldrh r3, [r4, r3]
2980
- mov r2, r2, asl #2
2981
- mul r3, r3, r2
2982
- movw r2, #2396
3199
+ str r3, [r4, #2424]
3200
+ lsl r3, r5, #2
29833201 ldrh r5, [r4, r2]
2984
- add r5, r5, #9
2985
- mov r5, r3, lsr r5
2986
- movw r3, #2424
3202
+ mul r5, r5, r3
3203
+ movw r3, #2398
3204
+ ldrh r3, [r4, r3]
3205
+ add r3, r3, #9
3206
+ lsr r5, r5, r3
3207
+ movw r3, #2428
29873208 add r5, r5, #2
29883209 uxth r5, r5
29893210 strh r5, [r4, r3] @ movhi
2990
- movw r3, #2394
2991
- ldrh r7, [r4, r3]
2992
- mov r1, r7
3211
+ movw r3, #2396
3212
+ ldrh r6, [r4, r3]
3213
+ mov r1, r6
29933214 bl __aeabi_idiv
2994
- movw r1, #2408
3215
+ movw r1, #2412
3216
+ movw r3, #2430
29953217 ldrh r2, [r4, r1]
2996
- movw r3, #2426
2997
- ldrb ip, [r4, #144] @ zero_extendqisi2
2998
- cmp ip, #0
29993218 strh r0, [r4, r3] @ movhi
30003219 mov r3, #0
3001
- str r3, [r4, #2428]
3220
+ str r3, [r4, #2432]
3221
+ ldrb ip, [r4, #152] @ zero_extendqisi2
30023222 add r3, r2, #3
30033223 strh r3, [r4, r1] @ movhi
3224
+ ldr r3, [r4, #2420]
3225
+ cmp ip, #0
30043226 addne r2, r2, #4
3005
- ldr r3, [r4, #2416]
3006
- strneh r2, [r6, r1] @ movhi
30073227 add r0, r3, #3
3228
+ strhne r2, [r4, r1] @ movhi
3229
+ str r0, [r4, #2420]
30083230 addne r3, r3, #5
3009
- str r0, [r4, #2416]
3010
- bne .L500
3231
+ bne .L499
30113232 cmp r0, #7
3012
- bhi .L489
3233
+ bhi .L488
30133234 mov r3, #8
3014
-.L500:
3015
- str r3, [r6, #2416]
3016
-.L489:
3017
- ldr r2, .L502+12
3235
+.L499:
3236
+ str r3, [r4, #2420]
3237
+.L488:
3238
+ movw r2, #2436
30183239 mov r3, #0
3019
- mov r0, #0
3020
- strh r3, [r2] @ movhi
3021
- movw r3, #2328
3240
+ strh r3, [r4, r2] @ movhi
3241
+ movw r3, #2332
30223242 ldrh r1, [r4, r3]
3023
- mov r3, r1, lsr #3
3024
- add r3, r3, r1, asl #1
3243
+ mov r0, #0
3244
+ lsr r3, r1, #3
3245
+ add r3, r3, r1, lsl #1
30253246 add r3, r3, #52
3026
- add r5, r3, r5, asl #2
3027
- cmp r5, r7, asl #9
3247
+ add r5, r3, r5, lsl #2
3248
+ cmp r5, r6, lsl #9
30283249 movcc r3, #1
3029
- strcch r3, [r2] @ movhi
3250
+ strhcc r3, [r4, r2] @ movhi
30303251 add sp, sp, #20
30313252 @ sp needed
3032
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
3033
-.L503:
3253
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
3254
+.L501:
30343255 .align 2
3035
-.L502:
3256
+.L500:
30363257 .word .LANCHOR0
3037
- .word .LANCHOR0+2348
3258
+ .word .LANCHOR0+2350
30383259 .word .LANCHOR0+2384
3039
- .word .LANCHOR0+2432
3260
+ .word .LANCHOR0+2400
3261
+ .word .LANCHOR0+2416
30403262 .fnend
30413263 .size FtlConstantsInit, .-FtlConstantsInit
30423264 .align 2
30433265 .global IsBlkInVendorPart
3266
+ .syntax unified
3267
+ .arm
3268
+ .fpu softvfp
30443269 .type IsBlkInVendorPart, %function
30453270 IsBlkInVendorPart:
30463271 .fnstart
30473272 @ args = 0, pretend = 0, frame = 0
30483273 @ frame_needed = 0, uses_anonymous_args = 0
30493274 @ link register save eliminated.
3050
- ldr r2, .L511
3051
- movw r3, #2434
3275
+ ldr r2, .L509
3276
+ movw r3, #2438
30523277 ldrh r3, [r2, r3]
30533278 cmp r3, #0
3054
- beq .L510
3055
- movw r1, #2408
3056
- ldr r3, [r2, #2436]
3279
+ beq .L508
3280
+ movw r1, #2412
3281
+ ldr r3, [r2, #2440]
30573282 ldrh r2, [r2, r1]
3058
- add r2, r3, r2, asl #1
3059
-.L506:
3283
+ add r2, r3, r2, lsl #1
3284
+.L504:
30603285 cmp r3, r2
3061
- beq .L510
3286
+ bne .L505
3287
+.L508:
3288
+ mov r0, #0
3289
+ bx lr
3290
+.L505:
30623291 ldrh r1, [r3], #2
3063
- cmp r1, r0
3064
- bne .L506
3292
+ cmp r0, r1
3293
+ bne .L504
30653294 mov r0, #1
30663295 bx lr
30673296 .L510:
3068
- mov r0, #0
3069
- bx lr
3070
-.L512:
30713297 .align 2
3072
-.L511:
3298
+.L509:
30733299 .word .LANCHOR0
30743300 .fnend
30753301 .size IsBlkInVendorPart, .-IsBlkInVendorPart
30763302 .align 2
30773303 .global FtlCacheMetchLpa
3304
+ .syntax unified
3305
+ .arm
3306
+ .fpu softvfp
30783307 .type FtlCacheMetchLpa, %function
30793308 FtlCacheMetchLpa:
30803309 .fnstart
30813310 @ args = 0, pretend = 0, frame = 0
30823311 @ frame_needed = 0, uses_anonymous_args = 0
3083
- ldr r2, .L520
3084
- ldr r3, [r2, #2440]
3312
+ ldr r2, .L521
3313
+ ldr r3, [r2, #2444]
30853314 cmp r3, #0
3086
- beq .L516
3087
- stmfd sp!, {r4, r5, lr}
3315
+ beq .L514
3316
+ push {r4, r5, lr}
30883317 .save {r4, r5, lr}
30893318 mov r5, #36
3090
- ldr r4, [r2, #2444]
3319
+ ldr r4, [r2, #2448]
30913320 mov r2, #0
3092
-.L515:
3321
+.L513:
30933322 mla ip, r5, r2, r4
30943323 ldr lr, [ip, #16]
3095
- cmp lr, r0
3096
- movcc ip, #0
3097
- movcs ip, #1
30983324 cmp lr, r1
30993325 movhi ip, #0
3326
+ movls ip, #1
3327
+ cmp lr, r0
3328
+ movcc ip, #0
31003329 cmp ip, #0
3101
- bne .L517
3102
- add r2, r2, #1
3103
- cmp r2, r3
31043330 bne .L515
3331
+ add r2, r2, #1
3332
+ cmp r3, r2
3333
+ bne .L513
31053334 mov r0, ip
3106
- ldmfd sp!, {r4, r5, pc}
3107
-.L516:
3335
+ pop {r4, r5, pc}
3336
+.L514:
31083337 mov r0, r3
31093338 bx lr
3110
-.L517:
3339
+.L515:
31113340 mov r0, #1
3112
- ldmfd sp!, {r4, r5, pc}
3113
-.L521:
3341
+ pop {r4, r5, pc}
3342
+.L522:
31143343 .align 2
3115
-.L520:
3344
+.L521:
31163345 .word .LANCHOR0
31173346 .fnend
31183347 .size FtlCacheMetchLpa, .-FtlCacheMetchLpa
31193348 .align 2
31203349 .global FtlGetCap
3350
+ .syntax unified
3351
+ .arm
3352
+ .fpu softvfp
31213353 .type FtlGetCap, %function
31223354 FtlGetCap:
31233355 .fnstart
31243356 @ args = 0, pretend = 0, frame = 0
31253357 @ frame_needed = 0, uses_anonymous_args = 0
31263358 @ link register save eliminated.
3127
- ldr r3, .L523
3128
- ldr r0, [r3, #2428]
3359
+ ldr r3, .L524
3360
+ ldr r0, [r3, #2432]
31293361 bx lr
3130
-.L524:
3362
+.L525:
31313363 .align 2
3132
-.L523:
3364
+.L524:
31333365 .word .LANCHOR0
31343366 .fnend
31353367 .size FtlGetCap, .-FtlGetCap
31363368 .align 2
31373369 .global FtlGetCapacity
3370
+ .syntax unified
3371
+ .arm
3372
+ .fpu softvfp
31383373 .type FtlGetCapacity, %function
31393374 FtlGetCapacity:
31403375 .fnstart
31413376 @ args = 0, pretend = 0, frame = 0
31423377 @ frame_needed = 0, uses_anonymous_args = 0
31433378 @ link register save eliminated.
3144
- ldr r3, .L526
3145
- ldr r0, [r3, #2428]
3379
+ ldr r3, .L527
3380
+ ldr r0, [r3, #2432]
31463381 bx lr
3147
-.L527:
3382
+.L528:
31483383 .align 2
3149
-.L526:
3384
+.L527:
31503385 .word .LANCHOR0
31513386 .fnend
31523387 .size FtlGetCapacity, .-FtlGetCapacity
31533388 .align 2
31543389 .global ftl_get_density
3390
+ .syntax unified
3391
+ .arm
3392
+ .fpu softvfp
31553393 .type ftl_get_density, %function
31563394 ftl_get_density:
31573395 .fnstart
31583396 @ args = 0, pretend = 0, frame = 0
31593397 @ frame_needed = 0, uses_anonymous_args = 0
31603398 @ link register save eliminated.
3161
- ldr r3, .L529
3162
- ldr r0, [r3, #2428]
3399
+ ldr r3, .L530
3400
+ ldr r0, [r3, #2432]
31633401 bx lr
3164
-.L530:
3402
+.L531:
31653403 .align 2
3166
-.L529:
3404
+.L530:
31673405 .word .LANCHOR0
31683406 .fnend
31693407 .size ftl_get_density, .-ftl_get_density
31703408 .align 2
31713409 .global FtlGetLpn
3410
+ .syntax unified
3411
+ .arm
3412
+ .fpu softvfp
31723413 .type FtlGetLpn, %function
31733414 FtlGetLpn:
31743415 .fnstart
31753416 @ args = 0, pretend = 0, frame = 0
31763417 @ frame_needed = 0, uses_anonymous_args = 0
31773418 @ link register save eliminated.
3178
- ldr r3, .L532
3179
- ldr r0, [r3, #2448]
3419
+ ldr r3, .L533
3420
+ ldr r0, [r3, #2452]
31803421 bx lr
3181
-.L533:
3422
+.L534:
31823423 .align 2
3183
-.L532:
3424
+.L533:
31843425 .word .LANCHOR0
31853426 .fnend
31863427 .size FtlGetLpn, .-FtlGetLpn
31873428 .align 2
31883429 .global FtlBbmMapBadBlock
3430
+ .syntax unified
3431
+ .arm
3432
+ .fpu softvfp
31893433 .type FtlBbmMapBadBlock, %function
31903434 FtlBbmMapBadBlock:
31913435 .fnstart
31923436 @ args = 0, pretend = 0, frame = 0
31933437 @ frame_needed = 0, uses_anonymous_args = 0
3194
- stmfd sp!, {r0, r1, r4, r5, r6, lr}
3195
- .save {r4, r5, r6, lr}
3196
- .pad #8
3197
- movw r3, #2386
3198
- ldr r5, .L536
3199
- mov r6, r0
3200
- ldrh r4, [r5, r3]
3201
- mov r1, r4
3438
+ push {r0, r1, r2, r4, r5, r6, r7, lr}
3439
+ .save {r4, r5, r6, r7, lr}
3440
+ .pad #12
3441
+ movw r3, #2388
3442
+ ldr r4, .L537
3443
+ mov r5, r0
3444
+ ldrh r7, [r4, r3]
3445
+ mov r1, r7
32023446 bl __aeabi_uidiv
3203
- uxth r2, r0
3204
- smulbb r3, r2, r4
3205
- add r1, r5, r2, asl #2
3206
- mov r4, #1
3207
- ldr ip, [r1, #2480]
3208
- rsb r3, r3, r6
3209
- uxth r3, r3
3210
- and r1, r3, #31
3211
- mov lr, r3, lsr #5
3212
- ldr r0, [ip, lr, asl #2]
3213
- orr r1, r0, r4, asl r1
3214
- ldr r0, .L536+4
3215
- str r1, [ip, lr, asl #2]
3216
- str r1, [sp]
3217
- mov r1, r6
3447
+ uxth r6, r0
3448
+ mov r1, r7
3449
+ mov r0, r5
3450
+ bl __aeabi_uidivmod
3451
+ add r2, r4, r6, lsl #2
3452
+ uxth r3, r1
3453
+ ldr r2, [r2, #2484]
3454
+ lsr r1, r3, #5
3455
+ and ip, r3, #31
3456
+ mov lr, #1
3457
+ ldr r0, [r2, r1, lsl #2]
3458
+ orr r0, r0, lr, lsl ip
3459
+ str r0, [r2, r1, lsl #2]
3460
+ mov r2, r6
3461
+ str r0, [sp]
3462
+ mov r1, r5
3463
+ ldr r0, .L537+4
32183464 bl printk
3219
- add r2, r5, #2448
3465
+ add r3, r4, #2448
32203466 mov r0, #0
3221
- ldrh r3, [r2, #10]
3222
- add r3, r3, r4
3223
- strh r3, [r2, #10] @ movhi
3224
- add sp, sp, #8
3467
+ ldrh r2, [r3, #14]
3468
+ add r2, r2, #1
3469
+ strh r2, [r3, #14] @ movhi
3470
+ add sp, sp, #12
32253471 @ sp needed
3226
- ldmfd sp!, {r4, r5, r6, pc}
3227
-.L537:
3472
+ pop {r4, r5, r6, r7, pc}
3473
+.L538:
32283474 .align 2
3229
-.L536:
3475
+.L537:
32303476 .word .LANCHOR0
32313477 .word .LC2
32323478 .fnend
32333479 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
3234
- .global __aeabi_uidivmod
32353480 .align 2
32363481 .global FtlBbmIsBadBlock
3482
+ .syntax unified
3483
+ .arm
3484
+ .fpu softvfp
32373485 .type FtlBbmIsBadBlock, %function
32383486 FtlBbmIsBadBlock:
32393487 .fnstart
32403488 @ args = 0, pretend = 0, frame = 0
32413489 @ frame_needed = 0, uses_anonymous_args = 0
3242
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
3243
- .save {r3, r4, r5, r6, r7, lr}
3244
- movw r3, #2386
3245
- ldr r5, .L540
3490
+ push {r4, r5, r6, r7, r8, lr}
3491
+ .save {r4, r5, r6, r7, r8, lr}
3492
+ movw r3, #2388
3493
+ ldr r5, .L541
32463494 mov r7, r0
32473495 ldrh r6, [r5, r3]
32483496 mov r1, r6
....@@ -3251,23 +3499,26 @@
32513499 uxth r4, r1
32523500 mov r1, r6
32533501 bl __aeabi_uidiv
3254
- mov r2, r4, lsr #5
3255
- and r4, r4, #31
32563502 uxth r0, r0
3257
- add r5, r5, r0, asl #2
3258
- ldr r3, [r5, #2480]
3259
- ldr r0, [r3, r2, asl #2]
3260
- mov r0, r0, lsr r4
3503
+ lsr r2, r4, #5
3504
+ add r5, r5, r0, lsl #2
3505
+ and r4, r4, #31
3506
+ ldr r3, [r5, #2484]
3507
+ ldr r0, [r3, r2, lsl #2]
3508
+ lsr r0, r0, r4
32613509 and r0, r0, #1
3262
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
3263
-.L541:
3510
+ pop {r4, r5, r6, r7, r8, pc}
3511
+.L542:
32643512 .align 2
3265
-.L540:
3513
+.L541:
32663514 .word .LANCHOR0
32673515 .fnend
32683516 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
32693517 .align 2
32703518 .global FtlBbtInfoPrint
3519
+ .syntax unified
3520
+ .arm
3521
+ .fpu softvfp
32713522 .type FtlBbtInfoPrint, %function
32723523 FtlBbtInfoPrint:
32733524 .fnstart
....@@ -3279,34 +3530,37 @@
32793530 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint
32803531 .align 2
32813532 .global FtlBbtCalcTotleCnt
3533
+ .syntax unified
3534
+ .arm
3535
+ .fpu softvfp
32823536 .type FtlBbtCalcTotleCnt, %function
32833537 FtlBbtCalcTotleCnt:
32843538 .fnstart
32853539 @ args = 0, pretend = 0, frame = 0
32863540 @ frame_needed = 0, uses_anonymous_args = 0
3287
- stmfd sp!, {r4, r5, r6, lr}
3541
+ ldr r3, .L552
3542
+ movw r2, #2388
3543
+ movw r1, #2346
3544
+ push {r4, r5, r6, lr}
32883545 .save {r4, r5, r6, lr}
3289
- movw r3, #2386
3290
- ldr r4, .L552
32913546 mov r5, #0
3292
- ldrh r6, [r4, r3]
3293
- movw r3, #2342
3294
- ldrh r3, [r4, r3]
32953547 mov r4, r5
3296
- mul r6, r3, r6
3297
-.L544:
3548
+ ldrh r2, [r3, r2]
3549
+ ldrh r6, [r3, r1]
3550
+ mul r6, r6, r2
3551
+.L545:
32983552 uxth r0, r5
32993553 cmp r0, r6
3300
- bge .L551
3554
+ blt .L547
3555
+ mov r0, r4
3556
+ pop {r4, r5, r6, pc}
3557
+.L547:
33013558 bl FtlBbmIsBadBlock
3302
- add r5, r5, #1
33033559 cmp r0, #0
3560
+ add r5, r5, #1
33043561 addne r4, r4, #1
33053562 uxthne r4, r4
3306
- b .L544
3307
-.L551:
3308
- mov r0, r4
3309
- ldmfd sp!, {r4, r5, r6, pc}
3563
+ b .L545
33103564 .L553:
33113565 .align 2
33123566 .L552:
....@@ -3315,29 +3569,34 @@
33153569 .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
33163570 .align 2
33173571 .global V2P_block
3572
+ .syntax unified
3573
+ .arm
3574
+ .fpu softvfp
33183575 .type V2P_block, %function
33193576 V2P_block:
33203577 .fnstart
33213578 @ args = 0, pretend = 0, frame = 0
33223579 @ frame_needed = 0, uses_anonymous_args = 0
3323
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
3324
- .save {r3, r4, r5, r6, r7, lr}
3325
- movw r3, #2344
3326
- ldr r6, .L556
3327
- mov r4, r1
3580
+ push {r4, r5, r6, r7, r8, lr}
3581
+ .save {r4, r5, r6, r7, r8, lr}
3582
+ movw r3, #2348
3583
+ ldr r4, .L556
3584
+ mov r5, r1
33283585 mov r7, r0
3329
- ldrh r5, [r6, r3]
3330
- mov r1, r5
3331
- bl __aeabi_uidivmod
3332
- mov r0, r7
3333
- smlabb r4, r4, r5, r1
3334
- mov r1, r5
3586
+ ldrh r6, [r4, r3]
3587
+ mov r1, r6
33353588 bl __aeabi_uidiv
3336
- movw r3, #2386
3337
- ldrh r3, [r6, r3]
3338
- smlabb r0, r3, r0, r4
3589
+ movw r3, #2388
3590
+ smulbb r5, r6, r5
3591
+ ldrh r4, [r4, r3]
3592
+ mov r1, r6
3593
+ smulbb r4, r4, r0
3594
+ mov r0, r7
3595
+ bl __aeabi_uidivmod
3596
+ add r0, r5, r1
3597
+ add r0, r4, r0
33393598 uxth r0, r0
3340
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
3599
+ pop {r4, r5, r6, r7, r8, pc}
33413600 .L557:
33423601 .align 2
33433602 .L556:
....@@ -3346,18 +3605,21 @@
33463605 .size V2P_block, .-V2P_block
33473606 .align 2
33483607 .global P2V_plane
3608
+ .syntax unified
3609
+ .arm
3610
+ .fpu softvfp
33493611 .type P2V_plane, %function
33503612 P2V_plane:
33513613 .fnstart
33523614 @ args = 0, pretend = 0, frame = 0
33533615 @ frame_needed = 0, uses_anonymous_args = 0
33543616 ldr r3, .L560
3355
- movw r2, #2344
3356
- stmfd sp!, {r4, r5, r6, lr}
3617
+ movw r2, #2348
3618
+ push {r4, r5, r6, lr}
33573619 .save {r4, r5, r6, lr}
33583620 mov r6, r0
33593621 ldrh r5, [r3, r2]
3360
- movw r2, #2386
3622
+ movw r2, #2388
33613623 ldrh r1, [r3, r2]
33623624 bl __aeabi_uidiv
33633625 mov r1, r5
....@@ -3366,7 +3628,7 @@
33663628 bl __aeabi_uidivmod
33673629 add r1, r4, r1
33683630 uxth r0, r1
3369
- ldmfd sp!, {r4, r5, r6, pc}
3631
+ pop {r4, r5, r6, pc}
33703632 .L561:
33713633 .align 2
33723634 .L560:
....@@ -3375,23 +3637,26 @@
33753637 .size P2V_plane, .-P2V_plane
33763638 .align 2
33773639 .global P2V_block_in_plane
3640
+ .syntax unified
3641
+ .arm
3642
+ .fpu softvfp
33783643 .type P2V_block_in_plane, %function
33793644 P2V_block_in_plane:
33803645 .fnstart
33813646 @ args = 0, pretend = 0, frame = 0
33823647 @ frame_needed = 0, uses_anonymous_args = 0
3383
- stmfd sp!, {r4, lr}
3648
+ push {r4, lr}
33843649 .save {r4, lr}
3385
- movw r3, #2386
3650
+ movw r3, #2388
33863651 ldr r4, .L564
33873652 ldrh r1, [r4, r3]
33883653 bl __aeabi_uidivmod
3389
- movw r3, #2344
3654
+ movw r3, #2348
33903655 uxth r0, r1
33913656 ldrh r1, [r4, r3]
33923657 bl __aeabi_uidiv
33933658 uxth r0, r0
3394
- ldmfd sp!, {r4, pc}
3659
+ pop {r4, pc}
33953660 .L565:
33963661 .align 2
33973662 .L564:
....@@ -3400,6 +3665,9 @@
34003665 .size P2V_block_in_plane, .-P2V_block_in_plane
34013666 .align 2
34023667 .global ftl_cmp_data_ver
3668
+ .syntax unified
3669
+ .arm
3670
+ .fpu softvfp
34033671 .type ftl_cmp_data_ver, %function
34043672 ftl_cmp_data_ver:
34053673 .fnstart
....@@ -3408,13 +3676,13 @@
34083676 @ link register save eliminated.
34093677 cmp r0, r1
34103678 bls .L567
3411
- rsb r0, r1, r0
3679
+ sub r0, r0, r1
34123680 cmp r0, #-2147483648
34133681 movhi r0, #0
34143682 movls r0, #1
34153683 bx lr
34163684 .L567:
3417
- rsb r0, r0, r1
3685
+ sub r0, r1, r0
34183686 cmp r0, #-2147483648
34193687 movls r0, #0
34203688 movhi r0, #1
....@@ -3423,6 +3691,9 @@
34233691 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver
34243692 .align 2
34253693 .global FtlFreeSysBlkQueueEmpty
3694
+ .syntax unified
3695
+ .arm
3696
+ .fpu softvfp
34263697 .type FtlFreeSysBlkQueueEmpty, %function
34273698 FtlFreeSysBlkQueueEmpty:
34283699 .fnstart
....@@ -3432,16 +3703,19 @@
34323703 ldr r3, .L570
34333704 ldrh r0, [r3, #6]
34343705 clz r0, r0
3435
- mov r0, r0, lsr #5
3706
+ lsr r0, r0, #5
34363707 bx lr
34373708 .L571:
34383709 .align 2
34393710 .L570:
3440
- .word .LANCHOR0+2512
3711
+ .word .LANCHOR0+2516
34413712 .fnend
34423713 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
34433714 .align 2
34443715 .global FtlFreeSysBlkQueueFull
3716
+ .syntax unified
3717
+ .arm
3718
+ .fpu softvfp
34453719 .type FtlFreeSysBlkQueueFull, %function
34463720 FtlFreeSysBlkQueueFull:
34473721 .fnstart
....@@ -3452,291 +3726,307 @@
34523726 ldrh r0, [r3, #6]
34533727 sub r0, r0, #1024
34543728 clz r0, r0
3455
- mov r0, r0, lsr #5
3729
+ lsr r0, r0, #5
34563730 bx lr
34573731 .L574:
34583732 .align 2
34593733 .L573:
3460
- .word .LANCHOR0+2512
3734
+ .word .LANCHOR0+2516
34613735 .fnend
34623736 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
34633737 .align 2
34643738 .global FtlFreeSysBlkQueueIn
3739
+ .syntax unified
3740
+ .arm
3741
+ .fpu softvfp
34653742 .type FtlFreeSysBlkQueueIn, %function
34663743 FtlFreeSysBlkQueueIn:
34673744 .fnstart
34683745 @ args = 0, pretend = 0, frame = 0
34693746 @ frame_needed = 0, uses_anonymous_args = 0
3470
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
3471
- .save {r3, r4, r5, r6, r7, lr}
34723747 sub r3, r0, #1
34733748 movw r2, #65533
3474
- mov r7, r0
34753749 uxth r3, r3
34763750 cmp r3, r2
3477
- ldmhifd sp!, {r3, r4, r5, r6, r7, pc}
3478
- ldr r4, .L585
3751
+ bxhi lr
3752
+ push {r4, r5, r6, r7, r8, lr}
3753
+ .save {r4, r5, r6, r7, r8, lr}
3754
+ ldr r4, .L588
34793755 ldrh r3, [r4, #6]
34803756 cmp r3, #1024
3481
- ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
3757
+ popeq {r4, r5, r6, r7, r8, pc}
34823758 cmp r1, #0
3759
+ mov r5, r0
34833760 beq .L577
3484
- ldr r5, .L585+4
3485
- ldr r3, [r5, #-3616]
3761
+ ldr r6, .L588+4
3762
+ ldr r3, [r6, #-3612]
34863763 cmp r3, #0
34873764 bne .L577
34883765 bl P2V_block_in_plane
3489
- mov r1, #1
3490
- mov r3, r7, asl #10
3491
- mov r2, r1
3492
- mov r6, r0
3493
- ldr r0, [r5, #-3612]
3766
+ mov r7, r0
3767
+ ldr r0, [r6, #-3608]
3768
+ lsl r3, r5, #10
3769
+ mov r2, #1
3770
+ mov r1, r2
34943771 str r3, [r0, #4]
34953772 bl FlashEraseBlocks
3496
- ldr r1, [r5, #-3608]
3497
- mov r3, r6, asl #1
3498
- ldrh r2, [r1, r3]
3499
- add r2, r2, #1
3500
- strh r2, [r1, r3] @ movhi
3501
- ldr r3, [r5, #-3604]
3773
+ ldr r2, [r6, #-3604]
3774
+ lsl r0, r7, #1
3775
+ ldrh r3, [r2, r0]
35023776 add r3, r3, #1
3503
- str r3, [r5, #-3604]
3777
+ strh r3, [r2, r0] @ movhi
3778
+ ldr r3, [r6, #-3600]
3779
+ add r3, r3, #1
3780
+ str r3, [r6, #-3600]
35043781 .L577:
35053782 ldrh r3, [r4, #6]
35063783 add r3, r3, #1
35073784 strh r3, [r4, #6] @ movhi
35083785 ldrh r3, [r4, #4]
3509
- add r2, r4, r3, asl #1
3786
+ add r2, r4, r3, lsl #1
35103787 add r3, r3, #1
35113788 ubfx r3, r3, #0, #10
3789
+ strh r5, [r2, #8] @ movhi
35123790 strh r3, [r4, #4] @ movhi
3513
- strh r7, [r2, #8] @ movhi
3514
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
3515
-.L586:
3791
+ pop {r4, r5, r6, r7, r8, pc}
3792
+.L589:
35163793 .align 2
3517
-.L585:
3518
- .word .LANCHOR0+2512
3794
+.L588:
3795
+ .word .LANCHOR0+2516
35193796 .word .LANCHOR2
35203797 .fnend
35213798 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
35223799 .align 2
35233800 .global FtlFreeSysBLkSort
3801
+ .syntax unified
3802
+ .arm
3803
+ .fpu softvfp
35243804 .type FtlFreeSysBLkSort, %function
35253805 FtlFreeSysBLkSort:
35263806 .fnstart
35273807 @ args = 0, pretend = 0, frame = 0
35283808 @ frame_needed = 0, uses_anonymous_args = 0
3529
- ldr r3, .L600
3530
- ldrh ip, [r3, #28]
3531
- ldr r3, .L600+4
3809
+ ldr r3, .L603
35323810 ldrh r2, [r3, #6]
35333811 cmp r2, #0
35343812 bxeq lr
3535
- stmfd sp!, {r4, lr}
3536
- .save {r4, lr}
3813
+ ldr r2, .L603+4
35373814 mov r0, #0
3538
- ldrh r1, [r3, #2]
3539
- and ip, ip, #31
3540
- ldrh r2, [r3, #4]
3815
+ push {r4, lr}
3816
+ .save {r4, lr}
35413817 mov r4, r0
3542
-.L589:
3543
- uxth lr, r0
3818
+ ldrh r1, [r3, #2]
3819
+ ldrh lr, [r2, #28]
3820
+ ldrh r2, [r3, #4]
3821
+ and lr, lr, #31
3822
+.L592:
3823
+ uxth ip, r0
35443824 add r0, r0, #1
35453825 cmp lr, ip
3546
- bge .L599
3547
- add lr, r3, r1, asl #1
3826
+ bgt .L593
3827
+ cmp r4, #0
3828
+ strhne r1, [r3, #2] @ movhi
3829
+ strhne r2, [r3, #4] @ movhi
3830
+ pop {r4, pc}
3831
+.L593:
3832
+ add ip, r3, r1, lsl #1
35483833 add r1, r1, #1
35493834 ubfx r1, r1, #0, #10
3550
- ldrh r4, [lr, #8]
3551
- add lr, r3, r2, asl #1
3552
- strh r4, [lr, #8] @ movhi
3835
+ ldrh r4, [ip, #8]
3836
+ add ip, r3, r2, lsl #1
3837
+ strh r4, [ip, #8] @ movhi
35533838 mov r4, #1
35543839 add r2, r2, r4
35553840 ubfx r2, r2, #0, #10
3556
- b .L589
3557
-.L599:
3558
- cmp r4, #0
3559
- strneh r1, [r3, #2] @ movhi
3560
- strneh r2, [r3, #4] @ movhi
3561
- ldmfd sp!, {r4, pc}
3562
-.L601:
3841
+ b .L592
3842
+.L604:
35633843 .align 2
3564
-.L600:
3565
- .word .LANCHOR2-3600
3566
- .word .LANCHOR0+2512
3844
+.L603:
3845
+ .word .LANCHOR0+2516
3846
+ .word .LANCHOR2-3596
35673847 .fnend
35683848 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
35693849 .align 2
35703850 .global FtlFreeSysBlkQueueOut
3851
+ .syntax unified
3852
+ .arm
3853
+ .fpu softvfp
35713854 .type FtlFreeSysBlkQueueOut, %function
35723855 FtlFreeSysBlkQueueOut:
35733856 .fnstart
35743857 @ args = 0, pretend = 0, frame = 0
35753858 @ frame_needed = 0, uses_anonymous_args = 0
3576
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
3859
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
35773860 .save {r4, r5, r6, r7, r8, r9, r10, lr}
3578
- ldr r7, .L613
3579
- add r4, r7, #2512
3580
- mov r8, r4
3581
-.L603:
3861
+ ldr r4, .L616
3862
+ ldr r8, .L616+4
3863
+ mov r7, r4
3864
+.L606:
35823865 ldrh r1, [r4, #6]
35833866 cmp r1, #0
3584
- beq .L604
3585
- ldr r5, .L613+4
3867
+ beq .L607
3868
+ ldr r5, .L616+8
35863869 sub r1, r1, #1
35873870 ldrh r3, [r4, #2]
35883871 strh r1, [r4, #6] @ movhi
3589
- ldr r10, [r5, #-3616]
3590
- add r2, r4, r3, asl #1
3872
+ ldr r10, [r5, #-3612]
3873
+ add r2, r4, r3, lsl #1
35913874 add r3, r3, #1
35923875 cmp r10, #0
35933876 ubfx r3, r3, #0, #10
35943877 ldrh r6, [r2, #8]
35953878 strh r3, [r4, #2] @ movhi
3596
- bne .L605
3879
+ bne .L608
35973880 mov r0, r6
35983881 bl P2V_block_in_plane
3599
- mov r3, r6, asl #10
36003882 mov r9, r0
3601
- ldr r0, [r5, #-3612]
3883
+ ldr r0, [r5, #-3608]
3884
+ lsl r3, r6, #10
36023885 str r3, [r0, #4]
3603
- ldrb r3, [r7, #144] @ zero_extendqisi2
3886
+ ldrb r3, [r8, #152] @ zero_extendqisi2
36043887 cmp r3, #0
3605
- beq .L606
3606
- mov r1, r10
3888
+ beq .L609
36073889 mov r2, #1
3890
+ mov r1, r10
36083891 bl FlashEraseBlocks
3609
-.L606:
3610
- mov r1, #1
3611
- ldr r0, [r5, #-3612]
3612
- mov r2, r1
3892
+.L609:
3893
+ mov r2, #1
3894
+ ldr r0, [r5, #-3608]
3895
+ mov r1, r2
36133896 bl FlashEraseBlocks
3614
- ldr r1, [r5, #-3608]
3615
- mov r3, r9, asl #1
3616
- ldrh r2, [r1, r3]
3617
- add r2, r2, #1
3618
- strh r2, [r1, r3] @ movhi
3619
- ldr r3, [r5, #-3604]
3897
+ ldr r2, [r5, #-3604]
3898
+ lsl r0, r9, #1
3899
+ ldrh r3, [r2, r0]
36203900 add r3, r3, #1
3621
- str r3, [r5, #-3604]
3622
- b .L605
3623
-.L604:
3624
- ldr r0, .L613+8
3625
- bl printk
3626
-.L607:
3627
- b .L607
3628
-.L605:
3901
+ strh r3, [r2, r0] @ movhi
3902
+ ldr r3, [r5, #-3600]
3903
+ add r3, r3, #1
3904
+ str r3, [r5, #-3600]
3905
+.L608:
36293906 sub r3, r6, #1
36303907 movw r2, #65533
36313908 uxth r3, r3
36323909 cmp r3, r2
3633
- bls .L608
3910
+ bls .L611
3911
+ ldrh r2, [r7, #6]
36343912 mov r1, r6
3635
- ldrh r2, [r8, #6]
3636
- ldr r0, .L613+12
3913
+ ldr r0, .L616+12
36373914 bl printk
3638
- b .L603
3639
-.L608:
3915
+ b .L606
3916
+.L607:
3917
+ ldr r0, .L616+16
3918
+ bl printk
3919
+.L610:
3920
+ b .L610
3921
+.L611:
36403922 mov r0, r6
3641
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
3642
-.L614:
3923
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
3924
+.L617:
36433925 .align 2
3644
-.L613:
3926
+.L616:
3927
+ .word .LANCHOR0+2516
36453928 .word .LANCHOR0
36463929 .word .LANCHOR2
3647
- .word .LC3
36483930 .word .LC4
3931
+ .word .LC3
36493932 .fnend
36503933 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
36513934 .align 2
36523935 .global test_node_in_list
3936
+ .syntax unified
3937
+ .arm
3938
+ .fpu softvfp
36533939 .type test_node_in_list, %function
36543940 test_node_in_list:
36553941 .fnstart
36563942 @ args = 0, pretend = 0, frame = 0
36573943 @ frame_needed = 0, uses_anonymous_args = 0
3658
- ldr r3, .L621
3944
+ ldr r3, .L624
36593945 str lr, [sp, #-4]!
36603946 .save {lr}
36613947 movw lr, #65535
3662
- ldr ip, [r3, #-3552]
36633948 ldr r2, [r0]
3664
- ldr r3, .L621+4
3665
- rsb r0, ip, r2
3666
- mov r0, r0, asr #1
3949
+ ldr ip, [r3, #-3548]
3950
+ sub r3, r2, ip
3951
+ asr r0, r3, #1
3952
+ ldr r3, .L624+4
36673953 mul r3, r3, r0
36683954 mov r0, #6
36693955 uxth r3, r3
3670
-.L617:
3671
- cmp r1, r3
3672
- beq .L618
3956
+.L620:
3957
+ cmp r3, r1
3958
+ beq .L621
36733959 ldrh r3, [r2]
36743960 cmp r3, lr
3675
- beq .L619
3961
+ beq .L622
36763962 mla r2, r0, r3, ip
3677
- b .L617
3678
-.L618:
3963
+ b .L620
3964
+.L621:
36793965 mov r0, #1
36803966 ldr pc, [sp], #4
3681
-.L619:
3967
+.L622:
36823968 mov r0, #0
36833969 ldr pc, [sp], #4
3684
-.L622:
3970
+.L625:
36853971 .align 2
3686
-.L621:
3972
+.L624:
36873973 .word .LANCHOR2
36883974 .word -1431655765
36893975 .fnend
36903976 .size test_node_in_list, .-test_node_in_list
36913977 .align 2
36923978 .global insert_data_list
3979
+ .syntax unified
3980
+ .arm
3981
+ .fpu softvfp
36933982 .type insert_data_list, %function
36943983 insert_data_list:
36953984 .fnstart
36963985 @ args = 0, pretend = 0, frame = 8
36973986 @ frame_needed = 0, uses_anonymous_args = 0
3698
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
3987
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
36993988 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
37003989 .pad #12
3701
- movw r3, #2328
3702
- ldr r5, .L640
3703
- ldrh r3, [r5, r3]
3990
+ movw r3, #2332
3991
+ ldr r4, .L642
3992
+ ldrh r3, [r4, r3]
37043993 cmp r3, r0
3705
- bls .L625
3706
- ldr r2, .L640+4
3994
+ bls .L628
3995
+ ldr r2, .L642+4
37073996 mov lr, #6
37083997 mul lr, lr, r0
37093998 mvn ip, #0
3710
- ldr r6, [r2, #-3552]
3711
- mov r10, r2
3999
+ ldr r6, [r2, #-3548]
4000
+ mov r5, r2
37124001 add r1, r6, lr
37134002 strh ip, [r1, #2] @ movhi
37144003 strh ip, [r6, lr] @ movhi
3715
- ldr r3, [r2, #-3548]
4004
+ ldr r3, [r2, #-3544]
37164005 cmp r3, #0
3717
- beq .L639
3718
- ldr r8, [r2, #-3544]
3719
- mov r4, r0, asl #1
4006
+ streq r1, [r2, #-3544]
4007
+ beq .L628
4008
+ ldr r8, [r2, #-3540]
4009
+ lsl r10, r0, #1
37204010 ldrh r2, [r1, #4]
3721
- ldrh r7, [r8, r4]
4011
+ ldrh r7, [r8, r10]
37224012 cmp r2, #0
37234013 mulne ip, r2, r7
3724
- ldr r7, [r10, #-3552]
3725
- ldr r2, .L640+8
3726
- rsb r9, r7, r3
3727
- mov r9, r9, asr #1
4014
+ ldr r7, [r5, #-3548]
4015
+ sub r2, r3, r7
4016
+ asr r9, r2, #1
4017
+ ldr r2, .L642+8
37284018 mul r2, r2, r9
3729
- movw r9, #2328
3730
- ldrh r5, [r5, r9]
3731
- ldr r9, [r10, #-3608]
3732
- add r4, r9, r4
3733
- str r4, [sp, #4]
4019
+ movw r9, #2332
4020
+ ldrh r4, [r4, r9]
4021
+ ldr r9, [r5, #-3604]
4022
+ str r4, [sp]
37344023 uxth r2, r2
4024
+ add r4, r9, r10
4025
+ str r4, [sp, #4]
37354026 mov r4, #0
3736
- str r5, [sp]
3737
-.L634:
3738
- add r4, r4, #1
4027
+.L637:
37394028 ldr r5, [sp]
4029
+ add r4, r4, #1
37404030 uxth r4, r4
37414031 cmp r4, r5
37424032 movls r5, #0
....@@ -3744,64 +4034,60 @@
37444034 cmp r0, r2
37454035 orreq r5, r5, #1
37464036 cmp r5, #0
3747
- bne .L625
3748
- mov r10, r2, asl #1
4037
+ bne .L628
4038
+ lsl r10, r2, #1
37494039 ldrh r5, [r3, #4]
37504040 ldrh fp, [r8, r10]
37514041 cmp r5, #0
37524042 mvneq r5, #0
37534043 mulne r5, r5, fp
3754
- cmp r5, ip
3755
- bne .L630
4044
+ cmp ip, r5
4045
+ bne .L633
37564046 ldr r5, [sp, #4]
37574047 ldrh r10, [r9, r10]
37584048 ldrh r5, [r5]
37594049 cmp r10, r5
3760
- bcc .L632
3761
- b .L631
3762
-.L630:
3763
- bhi .L631
3764
-.L632:
4050
+ bcc .L635
4051
+.L634:
4052
+ strh r2, [r6, lr] @ movhi
4053
+ ldr ip, .L642+4
4054
+ ldrh r2, [r3, #2]
4055
+ strh r2, [r1, #2] @ movhi
4056
+ ldr r2, [ip, #-3544]
4057
+ cmp r3, r2
4058
+ ldrhne lr, [r3, #2]
4059
+ movne r2, #6
4060
+ ldrne r1, [ip, #-3548]
4061
+ strheq r0, [r3, #2] @ movhi
4062
+ streq r1, [ip, #-3544]
4063
+ mulne r2, r2, lr
4064
+ strhne r0, [r1, r2] @ movhi
4065
+ strhne r0, [r3, #2] @ movhi
4066
+ b .L628
4067
+.L633:
4068
+ bcc .L634
4069
+.L635:
37654070 ldrh r5, [r3]
37664071 movw r10, #65535
37674072 cmp r5, r10
3768
- streqh r2, [r1, #2] @ movhi
3769
- streqh r0, [r3] @ movhi
3770
- ldreq r3, .L640+4
3771
- streq r1, [r3, #-3540]
3772
- beq .L625
3773
-.L633:
3774
- mov r3, #6
3775
- mov r2, r5
3776
- mla r3, r3, r5, r7
3777
- b .L634
3778
-.L631:
3779
- strh r2, [r6, lr] @ movhi
3780
- ldrh r2, [r3, #2]
4073
+ bne .L636
37814074 strh r2, [r1, #2] @ movhi
3782
- ldr r2, .L640+4
3783
- ldr ip, [r2, #-3548]
3784
- cmp r3, ip
3785
- bne .L635
3786
- strh r0, [r3, #2] @ movhi
3787
-.L639:
3788
- str r1, [r2, #-3548]
3789
- b .L625
3790
-.L635:
3791
- ldrh ip, [r3, #2]
3792
- ldr r1, [r2, #-3552]
3793
- mov r2, #6
3794
- mul r2, r2, ip
3795
- strh r0, [r1, r2] @ movhi
3796
- strh r0, [r3, #2] @ movhi
3797
-.L625:
4075
+ strh r0, [r3] @ movhi
4076
+ ldr r3, .L642+4
4077
+ str r1, [r3, #-3536]
4078
+.L628:
37984079 mov r0, #0
37994080 add sp, sp, #12
38004081 @ sp needed
3801
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
3802
-.L641:
4082
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4083
+.L636:
4084
+ mov r3, #6
4085
+ mov r2, r5
4086
+ mla r3, r3, r5, r7
4087
+ b .L637
4088
+.L643:
38034089 .align 2
3804
-.L640:
4090
+.L642:
38054091 .word .LANCHOR0
38064092 .word .LANCHOR2
38074093 .word -1431655765
....@@ -3809,180 +4095,193 @@
38094095 .size insert_data_list, .-insert_data_list
38104096 .align 2
38114097 .global INSERT_DATA_LIST
4098
+ .syntax unified
4099
+ .arm
4100
+ .fpu softvfp
38124101 .type INSERT_DATA_LIST, %function
38134102 INSERT_DATA_LIST:
38144103 .fnstart
38154104 @ args = 0, pretend = 0, frame = 0
38164105 @ frame_needed = 0, uses_anonymous_args = 0
3817
- stmfd sp!, {r3, lr}
3818
- .save {r3, lr}
4106
+ push {r4, lr}
4107
+ .save {r4, lr}
38194108 bl insert_data_list
3820
- ldr r2, .L644
3821
- ldrh r3, [r2]
4109
+ ldr r2, .L646
4110
+ ldrh r3, [r2, #-12]
38224111 add r3, r3, #1
3823
- strh r3, [r2] @ movhi
3824
- ldmfd sp!, {r3, pc}
3825
-.L645:
4112
+ strh r3, [r2, #-12] @ movhi
4113
+ pop {r4, pc}
4114
+.L647:
38264115 .align 2
3827
-.L644:
3828
- .word .LANCHOR2-3536
4116
+.L646:
4117
+ .word .LANCHOR2-3520
38294118 .fnend
38304119 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST
38314120 .align 2
38324121 .global insert_free_list
4122
+ .syntax unified
4123
+ .arm
4124
+ .fpu softvfp
38334125 .type insert_free_list, %function
38344126 insert_free_list:
38354127 .fnstart
38364128 @ args = 0, pretend = 0, frame = 0
38374129 @ frame_needed = 0, uses_anonymous_args = 0
3838
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
4130
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
38394131 .save {r4, r5, r6, r7, r8, r9, r10, lr}
38404132 movw r4, #65535
38414133 cmp r0, r4
3842
- beq .L647
3843
- ldr r2, .L655
3844
- mov lr, #6
3845
- mul r6, lr, r0
4134
+ beq .L649
4135
+ ldr r2, .L656
4136
+ mov r1, #6
4137
+ mul r5, r1, r0
38464138 mvn r3, #0
3847
- ldr r7, [r2, #-3552]
3848
- mov r5, r2
3849
- add ip, r7, r6
3850
- strh r3, [ip, #2] @ movhi
3851
- strh r3, [r7, r6] @ movhi
3852
- ldr r3, [r2, #-3532]
4139
+ ldr r6, [r2, #-3548]
4140
+ mov ip, r2
4141
+ add lr, r6, r5
4142
+ strh r3, [lr, #2] @ movhi
4143
+ strh r3, [r6, r5] @ movhi
4144
+ ldr r3, [r2, #-3528]
38534145 cmp r3, #0
3854
- beq .L654
3855
- ldr r9, [r2, #-3608]
3856
- mov r2, r0, asl #1
3857
- ldr r8, [r5, #-3552]
3858
- rsb r1, r8, r3
3859
- ldrh r10, [r9, r2]
3860
- ldr r2, .L655+4
3861
- mov r1, r1, asr #1
3862
- mul r1, r2, r1
3863
- uxth r2, r1
3864
-.L651:
3865
- mov r1, r2, asl #1
3866
- ldrh r1, [r9, r1]
3867
- cmp r1, r10
3868
- bcs .L649
4146
+ streq lr, [r2, #-3528]
4147
+ beq .L649
4148
+ ldr r8, [r2, #-3604]
4149
+ lsl r2, r0, #1
4150
+ ldr r7, [ip, #-3548]
4151
+ ldrh r9, [r8, r2]
4152
+ sub r2, r3, r7
4153
+ asr r10, r2, #1
4154
+ ldr r2, .L656+4
4155
+ mul r2, r2, r10
4156
+ mov r10, r1
4157
+ uxth r2, r2
4158
+.L653:
4159
+ lsl r1, r2, #1
4160
+ ldrh r1, [r8, r1]
4161
+ cmp r1, r9
4162
+ bcs .L651
38694163 ldrh r1, [r3]
38704164 cmp r1, r4
3871
- streqh r2, [ip, #2] @ movhi
3872
- streqh r0, [r3] @ movhi
3873
- beq .L647
3874
-.L650:
3875
- mla r3, lr, r1, r8
3876
- mov r2, r1
3877
- b .L651
3878
-.L649:
3879
- ldrh r1, [r3, #2]
3880
- strh r1, [ip, #2] @ movhi
3881
- strh r2, [r7, r6] @ movhi
3882
- ldr r1, [r5, #-3532]
3883
- ldr r2, .L655
3884
- cmp r3, r1
38854165 bne .L652
3886
- strh r0, [r3, #2] @ movhi
3887
-.L654:
3888
- str ip, [r2, #-3532]
3889
- b .L647
3890
-.L652:
3891
- ldrh ip, [r3, #2]
3892
- ldr r1, [r2, #-3552]
3893
- mov r2, #6
3894
- mul r2, r2, ip
3895
- strh r0, [r1, r2] @ movhi
3896
- strh r0, [r3, #2] @ movhi
3897
-.L647:
4166
+ strh r2, [lr, #2] @ movhi
4167
+ strh r0, [r3] @ movhi
4168
+.L649:
38984169 mov r0, #0
3899
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
3900
-.L656:
4170
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
4171
+.L652:
4172
+ mla r3, r10, r1, r7
4173
+ mov r2, r1
4174
+ b .L653
4175
+.L651:
4176
+ ldrh r1, [r3, #2]
4177
+ strh r1, [lr, #2] @ movhi
4178
+ strh r2, [r6, r5] @ movhi
4179
+ ldr r2, [ip, #-3528]
4180
+ cmp r3, r2
4181
+ ldrhne lr, [r3, #2]
4182
+ movne r2, #6
4183
+ ldrne r1, [ip, #-3548]
4184
+ strheq r0, [r3, #2] @ movhi
4185
+ streq lr, [ip, #-3528]
4186
+ mulne r2, r2, lr
4187
+ strhne r0, [r1, r2] @ movhi
4188
+ strhne r0, [r3, #2] @ movhi
4189
+ b .L649
4190
+.L657:
39014191 .align 2
3902
-.L655:
4192
+.L656:
39034193 .word .LANCHOR2
39044194 .word -1431655765
39054195 .fnend
39064196 .size insert_free_list, .-insert_free_list
39074197 .align 2
39084198 .global INSERT_FREE_LIST
4199
+ .syntax unified
4200
+ .arm
4201
+ .fpu softvfp
39094202 .type INSERT_FREE_LIST, %function
39104203 INSERT_FREE_LIST:
39114204 .fnstart
39124205 @ args = 0, pretend = 0, frame = 0
39134206 @ frame_needed = 0, uses_anonymous_args = 0
3914
- stmfd sp!, {r3, lr}
3915
- .save {r3, lr}
4207
+ push {r4, lr}
4208
+ .save {r4, lr}
39164209 bl insert_free_list
3917
- ldr r2, .L659
3918
- ldrh r3, [r2, #-8]
4210
+ ldr r2, .L660
4211
+ ldrh r3, [r2, #-4]
39194212 add r3, r3, #1
3920
- strh r3, [r2, #-8] @ movhi
3921
- ldmfd sp!, {r3, pc}
3922
-.L660:
4213
+ strh r3, [r2, #-4] @ movhi
4214
+ pop {r4, pc}
4215
+.L661:
39234216 .align 2
3924
-.L659:
4217
+.L660:
39254218 .word .LANCHOR2-3520
39264219 .fnend
39274220 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST
39284221 .align 2
39294222 .global List_remove_node
4223
+ .syntax unified
4224
+ .arm
4225
+ .fpu softvfp
39304226 .type List_remove_node, %function
39314227 List_remove_node:
39324228 .fnstart
39334229 @ args = 0, pretend = 0, frame = 0
39344230 @ frame_needed = 0, uses_anonymous_args = 0
3935
- stmfd sp!, {r4, r5, lr}
4231
+ push {r4, r5, lr}
39364232 .save {r4, r5, lr}
39374233 mov ip, #6
3938
- ldr r4, .L667
3939
- movw r5, #65535
4234
+ ldr r4, .L668
39404235 mul r1, ip, r1
4236
+ movw r5, #65535
39414237 ldr r3, [r0]
3942
- ldr r2, [r4, #-3552]
4238
+ ldr r2, [r4, #-3548]
39434239 add lr, r2, r1
39444240 cmp lr, r3
39454241 ldrh r3, [r2, r1]
3946
- bne .L662
4242
+ bne .L663
39474243 cmp r3, r5
39484244 mlane r3, ip, r3, r2
39494245 moveq r3, #0
39504246 streq r3, [r0]
39514247 strne r3, [r0]
39524248 mvnne r0, #0
3953
- strneh r0, [r3, #2] @ movhi
3954
- b .L664
3955
-.L662:
3956
- cmp r3, r5
3957
- ldrh r0, [lr, #2]
3958
- bne .L665
3959
- cmp r0, r3
3960
- mulne r0, ip, r0
3961
- mvnne r3, #0
3962
- strneh r3, [r2, r0] @ movhi
3963
- b .L664
4249
+ strhne r0, [r3, #2] @ movhi
39644250 .L665:
3965
- mla r3, ip, r3, r2
3966
- strh r0, [r3, #2] @ movhi
3967
- ldrh r5, [lr, #2]
3968
- ldrh r0, [r2, r1]
3969
- ldr r3, [r4, #-3552]
3970
- mul ip, ip, r5
3971
- strh r0, [r3, ip] @ movhi
3972
-.L664:
39734251 mvn r3, #0
39744252 mov r0, #0
39754253 strh r3, [r2, r1] @ movhi
39764254 strh r3, [lr, #2] @ movhi
3977
- ldmfd sp!, {r4, r5, pc}
3978
-.L668:
4255
+ pop {r4, r5, pc}
4256
+.L663:
4257
+ cmp r3, r5
4258
+ ldrh r0, [lr, #2]
4259
+ bne .L666
4260
+ cmp r0, r3
4261
+ mulne r3, ip, r0
4262
+ mvnne r0, #0
4263
+ strhne r0, [r2, r3] @ movhi
4264
+ b .L665
4265
+.L666:
4266
+ mla r3, ip, r3, r2
4267
+ strh r0, [r3, #2] @ movhi
4268
+ ldrh r3, [lr, #2]
4269
+ ldrh r5, [r2, r1]
4270
+ ldr r0, [r4, #-3548]
4271
+ mul r3, ip, r3
4272
+ strh r5, [r0, r3] @ movhi
4273
+ b .L665
4274
+.L669:
39794275 .align 2
3980
-.L667:
4276
+.L668:
39814277 .word .LANCHOR2
39824278 .fnend
39834279 .size List_remove_node, .-List_remove_node
39844280 .align 2
39854281 .global List_pop_index_node
4282
+ .syntax unified
4283
+ .arm
4284
+ .fpu softvfp
39864285 .type List_pop_index_node, %function
39874286 List_pop_index_node:
39884287 .fnstart
....@@ -3990,1133 +4289,1182 @@
39904289 @ frame_needed = 0, uses_anonymous_args = 0
39914290 ldr r3, [r0]
39924291 cmp r3, #0
3993
- beq .L675
3994
- ldr r2, .L678
3995
- movw ip, #65535
3996
- stmfd sp!, {r4, lr}
4292
+ beq .L676
4293
+ ldr r2, .L681
4294
+ push {r4, lr}
39974295 .save {r4, lr}
3998
- mov lr, #6
3999
- ldr r4, [r2, #-3552]
4000
-.L671:
4001
- cmp r1, #0
4002
- bne .L672
4003
-.L674:
4004
- rsb r4, r4, r3
4005
- ldr r3, .L678+4
4006
- mov r4, r4, asr #1
4007
- mul r4, r3, r4
4008
- uxth r4, r4
4009
- mov r1, r4
4010
- bl List_remove_node
4011
- mov r0, r4
4012
- ldmfd sp!, {r4, pc}
4296
+ movw lr, #65535
4297
+ mov r4, #6
4298
+ ldr r2, [r2, #-3548]
40134299 .L672:
4014
- ldrh r2, [r3]
4015
- cmp r2, ip
4016
- beq .L674
4017
- sub r1, r1, #1
4018
- mla r3, lr, r2, r4
4019
- uxth r1, r1
4020
- b .L671
4300
+ cmp r1, #0
4301
+ bne .L673
40214302 .L675:
4303
+ ldr r4, .L681+4
4304
+ sub r3, r3, r2
4305
+ asr r3, r3, #1
4306
+ mul r4, r4, r3
4307
+ uxth r1, r4
4308
+ bl List_remove_node
4309
+ uxth r0, r4
4310
+ pop {r4, pc}
4311
+.L673:
4312
+ ldrh ip, [r3]
4313
+ cmp ip, lr
4314
+ beq .L675
4315
+ sub r1, r1, #1
4316
+ mla r3, r4, ip, r2
4317
+ uxth r1, r1
4318
+ b .L672
4319
+.L676:
40224320 movw r0, #65535
40234321 bx lr
4024
-.L679:
4322
+.L682:
40254323 .align 2
4026
-.L678:
4324
+.L681:
40274325 .word .LANCHOR2
40284326 .word -1431655765
40294327 .fnend
40304328 .size List_pop_index_node, .-List_pop_index_node
40314329 .align 2
40324330 .global List_get_gc_head_node
4331
+ .syntax unified
4332
+ .arm
4333
+ .fpu softvfp
40334334 .type List_get_gc_head_node, %function
40344335 List_get_gc_head_node:
40354336 .fnstart
40364337 @ args = 0, pretend = 0, frame = 0
40374338 @ frame_needed = 0, uses_anonymous_args = 0
40384339 @ link register save eliminated.
4039
- ldr r2, .L687
4040
- ldr r3, [r2, #-3548]
4340
+ ldr r2, .L689
4341
+ ldr r3, [r2, #-3544]
40414342 cmp r3, #0
4042
- ldrne r1, [r2, #-3552]
4343
+ ldrne r1, [r2, #-3548]
40434344 movne ip, #6
40444345 movwne r2, #65535
4045
- beq .L685
4046
-.L682:
4047
- cmp r0, #0
4048
- beq .L683
4049
- ldrh r3, [r3]
4050
- cmp r3, r2
4051
- subne r0, r0, #1
4052
- mlane r3, ip, r3, r1
4053
- uxthne r0, r0
4054
- bne .L682
4055
-.L685:
4346
+ bne .L685
4347
+.L688:
40564348 movw r0, #65535
40574349 bx lr
4058
-.L683:
4059
- rsb r3, r1, r3
4060
- ldr r0, .L687+4
4061
- mov r3, r3, asr #1
4062
- mul r0, r0, r3
4063
- uxth r0, r0
4064
- bx lr
4065
-.L688:
4066
- .align 2
40674350 .L687:
4351
+ sub r0, r0, #1
4352
+ mla r3, ip, r3, r1
4353
+ uxth r0, r0
4354
+.L685:
4355
+ cmp r0, #0
4356
+ beq .L686
4357
+ ldrh r3, [r3]
4358
+ cmp r3, r2
4359
+ bne .L687
4360
+ b .L688
4361
+.L686:
4362
+ ldr r0, .L689+4
4363
+ sub r3, r3, r1
4364
+ asr r3, r3, #1
4365
+ mul r3, r0, r3
4366
+ uxth r0, r3
4367
+ bx lr
4368
+.L690:
4369
+ .align 2
4370
+.L689:
40684371 .word .LANCHOR2
40694372 .word -1431655765
40704373 .fnend
40714374 .size List_get_gc_head_node, .-List_get_gc_head_node
40724375 .align 2
40734376 .global List_update_data_list
4377
+ .syntax unified
4378
+ .arm
4379
+ .fpu softvfp
40744380 .type List_update_data_list, %function
40754381 List_update_data_list:
40764382 .fnstart
40774383 @ args = 0, pretend = 0, frame = 0
40784384 @ frame_needed = 0, uses_anonymous_args = 0
4079
- stmfd sp!, {r3, r4, r5, lr}
4080
- .save {r3, r4, r5, lr}
4081
- ldr r3, .L697
4082
- sub r2, r3, #3520
4083
- ldrh r2, [r2, #-4]
4385
+ ldr r3, .L699
4386
+ push {r4, r5, r6, lr}
4387
+ .save {r4, r5, r6, lr}
4388
+ sub r5, r3, #3520
4389
+ ldrh r2, [r5]
40844390 cmp r2, r0
4085
- beq .L690
4391
+ beq .L692
40864392 sub r2, r3, #3472
4087
- ldrh r2, [r2, #-4]
4393
+ ldrh r2, [r2]
40884394 cmp r2, r0
4089
- beq .L690
4395
+ beq .L692
40904396 sub r2, r3, #3424
4091
- ldrh r2, [r2, #-4]
4397
+ ldrh r2, [r2]
40924398 cmp r2, r0
4093
- beq .L690
4399
+ beq .L692
40944400 mov lr, #6
4095
- ldr r1, [r3, #-3552]
4401
+ ldr r1, [r3, #-3548]
40964402 mul lr, lr, r0
4097
- ldr r2, [r3, #-3548]
4403
+ ldr r2, [r3, #-3544]
40984404 add ip, r1, lr
40994405 cmp ip, r2
4100
- beq .L690
4101
- ldr r4, [r3, #-3544]
4102
- mov r3, r0, asl #1
4103
- ldrh r2, [r4, r3]
4104
- ldrh r3, [ip, #4]
4105
- ldrh ip, [ip, #2]
4106
- cmp r3, #0
4107
- mulne r2, r3, r2
4406
+ beq .L692
4407
+ ldr r4, [r3, #-3540]
4408
+ lsl r3, r0, #1
4409
+ ldrh r2, [ip, #4]
4410
+ ldrh r3, [r4, r3]
4411
+ cmp r2, #0
41084412 mvneq r2, #0
4109
- movw r3, #65535
4110
- cmp ip, r3
4111
- bne .L692
4112
- ldrh r3, [r1, lr]
4413
+ mulne r2, r2, r3
4414
+ ldrh r3, [ip, #2]
4415
+ movw ip, #65535
41134416 cmp r3, ip
4114
- beq .L690
4115
-.L692:
4116
- mov r3, #6
4117
- mul ip, r3, ip
4118
- ldr r3, .L697+4
4417
+ bne .L694
4418
+ ldrh ip, [r1, lr]
4419
+ cmp ip, r3
4420
+ beq .L692
4421
+.L694:
4422
+ mov ip, #6
4423
+ mul ip, ip, r3
4424
+ ldr r3, .L699+4
4425
+ asr lr, ip, #1
41194426 add r1, r1, ip
4120
- mov lr, ip, asr #1
41214427 mul r3, r3, lr
4122
- mov r3, r3, asl #1
4428
+ lsl r3, r3, #1
41234429 ldrh lr, [r4, r3]
41244430 ldrh r3, [r1, #4]
41254431 cmp r3, #0
41264432 mulne r3, r3, lr
41274433 mvneq r3, #0
41284434 cmp r2, r3
4129
- bcs .L690
4130
- ldr r5, .L697+8
4435
+ bcs .L692
41314436 mov r4, r0
4132
- mov r1, r4
4133
- sub r0, r5, #12
4437
+ mov r1, r0
4438
+ ldr r0, .L699+8
41344439 bl List_remove_node
4135
- ldrh r3, [r5]
4440
+ ldrh r3, [r5, #-12]
41364441 mov r0, r4
41374442 sub r3, r3, #1
4138
- strh r3, [r5] @ movhi
4443
+ strh r3, [r5, #-12] @ movhi
41394444 bl INSERT_DATA_LIST
4140
-.L690:
4445
+.L692:
41414446 mov r0, #0
4142
- ldmfd sp!, {r3, r4, r5, pc}
4143
-.L698:
4447
+ pop {r4, r5, r6, pc}
4448
+.L700:
41444449 .align 2
4145
-.L697:
4450
+.L699:
41464451 .word .LANCHOR2
41474452 .word -1431655765
4148
- .word .LANCHOR2-3536
4453
+ .word .LANCHOR2-3544
41494454 .fnend
41504455 .size List_update_data_list, .-List_update_data_list
41514456 .align 2
41524457 .global ftl_map_blk_alloc_new_blk
4458
+ .syntax unified
4459
+ .arm
4460
+ .fpu softvfp
41534461 .type ftl_map_blk_alloc_new_blk, %function
41544462 ftl_map_blk_alloc_new_blk:
41554463 .fnstart
41564464 @ args = 0, pretend = 0, frame = 0
41574465 @ frame_needed = 0, uses_anonymous_args = 0
4158
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
4159
- .save {r3, r4, r5, r6, r7, lr}
4466
+ push {r4, r5, r6, r7, r8, lr}
4467
+ .save {r4, r5, r6, r7, r8, lr}
41604468 mov r3, #0
41614469 ldrh r1, [r0, #10]
41624470 ldr r2, [r0, #12]
4163
-.L700:
4471
+.L702:
41644472 uxth r5, r3
41654473 cmp r5, r1
4166
- bcs .L703
4474
+ bcs .L705
41674475 mov r7, r2
41684476 add r3, r3, #1
41694477 ldrh r6, [r7]
41704478 add r2, r2, #2
41714479 cmp r6, #0
4172
- bne .L700
4480
+ bne .L702
41734481 mov r4, r0
41744482 bl FtlFreeSysBlkQueueOut
4175
- movw r2, #65533
41764483 sub r3, r0, #1
4484
+ movw r2, #65533
4485
+ uxth r3, r3
41774486 mov r1, r0
41784487 strh r0, [r7] @ movhi
4179
- uxth r3, r3
41804488 cmp r3, r2
4181
- bls .L701
4182
- ldr r3, .L707
4183
- ldr r0, .L707+4
4489
+ bls .L703
4490
+ ldr r3, .L709
4491
+ ldr r0, .L709+4
41844492 ldrh r2, [r3, #6]
41854493 bl printk
4186
-.L702:
4187
- b .L702
4188
-.L701:
4494
+.L704:
4495
+ b .L704
4496
+.L703:
41894497 ldr r3, [r4, #28]
41904498 strh r6, [r4, #2] @ movhi
4499
+ strh r5, [r4] @ movhi
41914500 add r3, r3, #1
41924501 str r3, [r4, #28]
41934502 ldrh r3, [r4, #8]
4194
- strh r5, [r4] @ movhi
41954503 add r3, r3, #1
41964504 strh r3, [r4, #8] @ movhi
4197
-.L703:
4505
+.L705:
41984506 mov r0, #0
4199
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
4200
-.L708:
4507
+ pop {r4, r5, r6, r7, r8, pc}
4508
+.L710:
42014509 .align 2
4202
-.L707:
4203
- .word .LANCHOR0+2512
4510
+.L709:
4511
+ .word .LANCHOR0+2516
42044512 .word .LC5
42054513 .fnend
42064514 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
42074515 .align 2
42084516 .global select_l2p_ram_region
4517
+ .syntax unified
4518
+ .arm
4519
+ .fpu softvfp
42094520 .type select_l2p_ram_region, %function
42104521 select_l2p_ram_region:
42114522 .fnstart
42124523 @ args = 0, pretend = 0, frame = 0
42134524 @ frame_needed = 0, uses_anonymous_args = 0
4214
- ldr r2, .L725
4215
- movw r3, #2426
4216
- stmfd sp!, {r4, r5, r6, lr}
4525
+ ldr r2, .L722
4526
+ movw r3, #2430
4527
+ push {r4, r5, r6, lr}
42174528 .save {r4, r5, r6, lr}
42184529 mov r1, #0
4219
- ldrh r2, [r2, r3]
42204530 mov ip, #12
4221
- ldr r3, .L725+4
42224531 movw lr, #65535
4223
- ldr r3, [r3, #-3380]
4224
-.L710:
4532
+ ldrh r2, [r2, r3]
4533
+ ldr r3, .L722+4
4534
+ ldr r3, [r3, #-3376]
4535
+.L712:
42254536 uxth r0, r1
42264537 cmp r0, r2
4227
- bcs .L722
4228
- add r1, r1, #1
4229
- mla r4, ip, r1, r3
4230
- ldrh r4, [r4, #-12]
4231
- cmp r4, lr
4232
- bne .L710
4233
- ldmfd sp!, {r4, r5, r6, pc}
4234
-.L722:
4538
+ bcc .L714
42354539 mov r0, r2
42364540 mov r1, #0
42374541 mov ip, #-2147483648
42384542 mov r5, #12
4239
-.L713:
4543
+.L715:
42404544 uxth r4, r1
42414545 cmp r4, r2
4242
- bcs .L723
4546
+ bcc .L717
4547
+ cmp r0, r2
4548
+ popcc {r4, r5, r6, pc}
4549
+ ldr r1, .L722+8
4550
+ mov r0, r2
4551
+ mvn ip, #0
4552
+ ldrh r5, [r1, #-12]
4553
+ mov r1, #0
4554
+.L718:
4555
+ uxth lr, r1
4556
+ cmp lr, r2
4557
+ bcc .L720
4558
+ pop {r4, r5, r6, pc}
4559
+.L714:
4560
+ add r1, r1, #1
4561
+ mla r4, ip, r1, r3
4562
+ ldrh r4, [r4, #-12]
4563
+ cmp r4, lr
4564
+ bne .L712
4565
+ pop {r4, r5, r6, pc}
4566
+.L717:
42434567 mla lr, r5, r1, r3
42444568 add r1, r1, #1
42454569 ldr lr, [lr, #4]
4246
- cmp lr, ip
4247
- mvn r6, lr
4248
- mov r6, r6, lsr #31
4249
- movcs r6, #0
4570
+ cmp ip, lr
4571
+ movls r6, #0
4572
+ movhi r6, #1
4573
+ cmp lr, #0
4574
+ movlt r6, #0
42504575 cmp r6, #0
42514576 movne ip, lr
42524577 movne r0, r4
4253
- b .L713
4254
-.L723:
4255
- cmp r0, r2
4256
- ldmccfd sp!, {r4, r5, r6, pc}
4257
- ldr r1, .L725+8
4258
- mov r0, r2
4259
- mvn ip, #0
4260
- ldrh r5, [r1]
4261
- mov r1, #0
4262
-.L716:
4263
- uxth lr, r1
4264
- cmp lr, r2
4265
- bcs .L724
4578
+ b .L715
4579
+.L720:
42664580 ldr r4, [r3, #4]
4267
- cmp r4, ip
4268
- bcs .L717
4581
+ cmp ip, r4
4582
+ bls .L719
42694583 ldrh r6, [r3]
42704584 cmp r6, r5
42714585 movne ip, r4
42724586 movne r0, lr
4273
-.L717:
4587
+.L719:
42744588 add r1, r1, #1
42754589 add r3, r3, #12
4276
- b .L716
4277
-.L724:
4278
- ldmfd sp!, {r4, r5, r6, pc}
4279
-.L726:
4590
+ b .L718
4591
+.L723:
42804592 .align 2
4281
-.L725:
4593
+.L722:
42824594 .word .LANCHOR0
42834595 .word .LANCHOR2
4284
- .word .LANCHOR2-3376
4596
+ .word .LANCHOR2-3360
42854597 .fnend
42864598 .size select_l2p_ram_region, .-select_l2p_ram_region
42874599 .align 2
42884600 .global FtlUpdateVaildLpn
4601
+ .syntax unified
4602
+ .arm
4603
+ .fpu softvfp
42894604 .type FtlUpdateVaildLpn, %function
42904605 FtlUpdateVaildLpn:
42914606 .fnstart
42924607 @ args = 0, pretend = 0, frame = 0
42934608 @ frame_needed = 0, uses_anonymous_args = 0
4294
- ldr r3, .L735
4609
+ ldr r3, .L733
42954610 sub r1, r3, #3360
4296
- ldrh r2, [r1, #-14]
4611
+ ldrh r2, [r1, #-10]
42974612 cmp r2, #4
42984613 cmpls r0, #0
4299
- addeq r2, r2, #1
4300
- streqh r2, [r1, #-14] @ movhi
4301
- bxeq lr
4302
- ldr r0, .L735+4
4614
+ bne .L725
4615
+ add r2, r2, #1
4616
+ strh r2, [r1, #-10] @ movhi
4617
+ bx lr
4618
+.L725:
4619
+ ldr r0, .L733+4
43034620 mov r2, #0
43044621 str lr, [sp, #-4]!
43054622 .save {lr}
4306
- movw ip, #65535
4307
- strh r2, [r1, #-14] @ movhi
4308
- movw r1, #2328
4309
- ldrh r0, [r0, r1]
4310
- str r2, [r3, #-3372]
4311
- ldr r2, [r3, #-3544]
4312
- add r0, r2, r0, asl #1
4313
-.L729:
4314
- cmp r2, r0
4315
- beq .L734
4316
- ldrh r1, [r2], #2
4317
- cmp r1, ip
4318
- ldrne lr, [r3, #-3372]
4319
- addne r1, r1, lr
4320
- strne r1, [r3, #-3372]
4321
- b .L729
4322
-.L734:
4623
+ movw lr, #65535
4624
+ strh r2, [r1, #-10] @ movhi
4625
+ movw r1, #2332
4626
+ str r2, [r3, #-3368]
4627
+ ldrh r1, [r0, r1]
4628
+ ldr r2, [r3, #-3540]
4629
+ add r1, r2, r1, lsl #1
4630
+.L726:
4631
+ cmp r2, r1
4632
+ bne .L728
43234633 ldr pc, [sp], #4
4324
-.L736:
4634
+.L728:
4635
+ ldrh ip, [r2], #2
4636
+ cmp ip, lr
4637
+ ldrne r0, [r3, #-3368]
4638
+ addne r0, r0, ip
4639
+ strne r0, [r3, #-3368]
4640
+ b .L726
4641
+.L734:
43254642 .align 2
4326
-.L735:
4643
+.L733:
43274644 .word .LANCHOR2
43284645 .word .LANCHOR0
43294646 .fnend
43304647 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
43314648 .align 2
43324649 .global ftl_set_blk_mode
4650
+ .syntax unified
4651
+ .arm
4652
+ .fpu softvfp
43334653 .type ftl_set_blk_mode, %function
43344654 ftl_set_blk_mode:
43354655 .fnstart
43364656 @ args = 0, pretend = 0, frame = 0
43374657 @ frame_needed = 0, uses_anonymous_args = 0
43384658 @ link register save eliminated.
4339
- ldr r2, .L741
4340
- mov r3, r0, lsr #5
43414659 cmp r1, #0
4342
- and r0, r0, #31
4343
- uxth r3, r3
4660
+ mov r3, r0
4661
+ beq .L736
4662
+ b ftl_set_blk_mode.part.9
4663
+.L736:
4664
+ ldr r2, .L737
4665
+ lsr r0, r0, #5
4666
+ and r3, r3, #31
43444667 mov ip, #1
4345
- ldr r1, [r2, #-3368]
4346
- ldr r2, [r1, r3, asl #2]
4347
- orrne r0, r2, ip, asl r0
4348
- biceq r0, r2, ip, asl r0
4349
- str r0, [r1, r3, asl #2]
4668
+ ldr r1, [r2, #32]
4669
+ ldr r2, [r1, r0, lsl #2]
4670
+ bic r3, r2, ip, lsl r3
4671
+ str r3, [r1, r0, lsl #2]
43504672 bx lr
4351
-.L742:
4673
+.L738:
43524674 .align 2
4353
-.L741:
4354
- .word .LANCHOR2
4675
+.L737:
4676
+ .word .LANCHOR0
43554677 .fnend
43564678 .size ftl_set_blk_mode, .-ftl_set_blk_mode
43574679 .align 2
43584680 .global ftl_get_blk_mode
4681
+ .syntax unified
4682
+ .arm
4683
+ .fpu softvfp
43594684 .type ftl_get_blk_mode, %function
43604685 ftl_get_blk_mode:
43614686 .fnstart
43624687 @ args = 0, pretend = 0, frame = 0
43634688 @ frame_needed = 0, uses_anonymous_args = 0
43644689 @ link register save eliminated.
4365
- ldr r3, .L744
4366
- mov r2, r0, lsr #5
4690
+ ldr r3, .L740
4691
+ lsr r2, r0, #5
43674692 and r0, r0, #31
4368
- ldr r3, [r3, #-3368]
4369
- ldr r3, [r3, r2, asl #2]
4370
- mov r0, r3, lsr r0
4693
+ ldr r3, [r3, #32]
4694
+ ldr r3, [r3, r2, lsl #2]
4695
+ lsr r0, r3, r0
43714696 and r0, r0, #1
43724697 bx lr
4373
-.L745:
4698
+.L741:
43744699 .align 2
4375
-.L744:
4376
- .word .LANCHOR2
4700
+.L740:
4701
+ .word .LANCHOR0
43774702 .fnend
43784703 .size ftl_get_blk_mode, .-ftl_get_blk_mode
43794704 .align 2
43804705 .global ftl_sb_update_avl_pages
4706
+ .syntax unified
4707
+ .arm
4708
+ .fpu softvfp
43814709 .type ftl_sb_update_avl_pages, %function
43824710 ftl_sb_update_avl_pages:
43834711 .fnstart
43844712 @ args = 0, pretend = 0, frame = 0
43854713 @ frame_needed = 0, uses_anonymous_args = 0
43864714 mov r3, #0
4715
+ movw ip, #2324
43874716 strh r3, [r0, #4] @ movhi
4388
- ldr r3, .L756
4389
- stmfd sp!, {r4, r5, lr}
4717
+ ldr r3, .L750
4718
+ push {r4, r5, lr}
43904719 .save {r4, r5, lr}
4391
- movw r4, #65535
4392
- ldrh lr, [r3]
4393
- add r3, r2, #7
4394
- add r3, r0, r3, asl #1
4395
-.L747:
4396
- cmp r2, lr
4397
- bcs .L754
4398
- ldrh ip, [r3, #2]!
4399
- add r2, r2, #1
4400
- cmp ip, r4
4401
- uxth r2, r2
4402
- ldrneh ip, [r0, #4]
4403
- addne ip, ip, #1
4404
- strneh ip, [r0, #4] @ movhi
4405
- b .L747
4406
-.L754:
4407
- ldr r2, .L756+4
4408
- movw r3, #2388
4409
- add ip, r0, #14
44104720 movw r5, #65535
4411
- ldrh r4, [r2, r3]
4412
- mov r2, #0
4413
-.L750:
4414
- uxth r3, r2
4415
- cmp r3, lr
4416
- bcs .L755
4417
- ldrh r3, [ip, #2]!
4721
+ ldrh lr, [r3, ip]
4722
+ add ip, r0, r2, lsl #1
4723
+ add ip, ip, #14
4724
+.L743:
4725
+ cmp r2, lr
4726
+ bcc .L745
4727
+ movw r2, #2390
4728
+ add ip, r0, #16
4729
+ ldrh r3, [r3, r2]
4730
+ movw r4, #65535
4731
+ sub r3, r3, #1
4732
+ sub r1, r3, r1
4733
+ mov r3, #0
4734
+ uxth r1, r1
4735
+.L746:
4736
+ uxth r2, r3
4737
+ cmp lr, r2
4738
+ bhi .L748
4739
+ pop {r4, r5, pc}
4740
+.L745:
4741
+ ldrh r4, [ip, #2]!
44184742 add r2, r2, #1
4419
- cmp r3, r5
4420
- ldrneh r3, [r0, #4]
4421
- addne r3, r4, r3
4422
- subne r3, r3, #1
4423
- rsbne r3, r1, r3
4424
- strneh r3, [r0, #4] @ movhi
4425
- b .L750
4426
-.L755:
4427
- ldmfd sp!, {r4, r5, pc}
4428
-.L757:
4743
+ uxth r2, r2
4744
+ cmp r4, r5
4745
+ ldrhne r4, [r0, #4]
4746
+ addne r4, r4, #1
4747
+ strhne r4, [r0, #4] @ movhi
4748
+ b .L743
4749
+.L748:
4750
+ ldrh r2, [ip], #2
4751
+ add r3, r3, #1
4752
+ cmp r2, r4
4753
+ ldrhne r2, [r0, #4]
4754
+ addne r2, r1, r2
4755
+ strhne r2, [r0, #4] @ movhi
4756
+ b .L746
4757
+.L751:
44294758 .align 2
4430
-.L756:
4431
- .word .LANCHOR0+2320
4759
+.L750:
44324760 .word .LANCHOR0
44334761 .fnend
44344762 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
44354763 .align 2
44364764 .global make_superblock
4765
+ .syntax unified
4766
+ .arm
4767
+ .fpu softvfp
44374768 .type make_superblock, %function
44384769 make_superblock:
44394770 .fnstart
44404771 @ args = 0, pretend = 0, frame = 0
44414772 @ frame_needed = 0, uses_anonymous_args = 0
4442
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
4443
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
4444
- add r6, r0, #16
4445
- ldr r7, .L772
4773
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
4774
+ .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
4775
+ movw r3, #2324
4776
+ ldr r6, .L765
44464777 mov r4, r0
4778
+ add r7, r0, #16
44474779 mvn r9, #0
4780
+ ldr r10, .L765+4
44484781 mov r5, #0
4782
+ ldrh r8, [r6, r3]
44494783 strh r5, [r0, #4] @ movhi
4450
- ldrh r8, [r7], #28
44514784 strb r5, [r0, #7]
4452
-.L759:
4785
+.L753:
44534786 uxth r3, r5
4454
- cmp r3, r8
4455
- bcs .L771
4456
- ldrb r0, [r7, r5] @ zero_extendqisi2
4457
- add r6, r6, #2
4458
- ldrh r1, [r4]
4459
- add r5, r5, #1
4460
- bl V2P_block
4461
- strh r9, [r6, #-2] @ movhi
4462
- mov r10, r0
4463
- bl FtlBbmIsBadBlock
4464
- cmp r0, #0
4465
- streqh r10, [r6, #-2] @ movhi
4466
- ldreqb r3, [r4, #7] @ zero_extendqisi2
4467
- addeq r3, r3, #1
4468
- streqb r3, [r4, #7]
4469
- b .L759
4470
-.L771:
4471
- ldr r3, .L772+4
4472
- movw r2, #2388
4473
- ldrb r1, [r4, #7] @ zero_extendqisi2
4474
- ldrh r2, [r3, r2]
4475
- smulbb r2, r1, r2
4476
- strh r2, [r4, #4] @ movhi
4477
- mov r2, #0
4478
- strb r2, [r4, #9]
4479
- ldr r2, [r3, #2244]
4480
- cmp r2, #0
4481
- beq .L762
4482
- ldr r1, .L772+8
4483
- ldrh r2, [r4]
4484
- ldr r1, [r1, #-3608]
4485
- mov r2, r2, asl #1
4486
- ldrh r2, [r1, r2]
4487
- cmp r2, #79
4488
- movls r2, #1
4489
- strlsb r2, [r4, #9]
4490
-.L762:
4491
- ldrb r3, [r3] @ zero_extendqisi2
4787
+ cmp r8, r3
4788
+ bhi .L755
4789
+ movw r2, #2390
4790
+ ldrb r3, [r4, #7] @ zero_extendqisi2
4791
+ ldrh r2, [r6, r2]
4792
+ smulbb r3, r3, r2
4793
+ strh r3, [r4, #4] @ movhi
4794
+ mov r3, #0
4795
+ strb r3, [r4, #9]
4796
+ ldr r3, [r6, #2248]
4797
+ cmp r3, #0
4798
+ beq .L756
4799
+ ldrh r3, [r4]
4800
+ ldr r2, .L765+8
4801
+ ldr r2, [r2, #-3604]
4802
+ lsl r3, r3, #1
4803
+ ldrh r3, [r2, r3]
4804
+ cmp r3, #79
4805
+ movls r3, #1
4806
+ strbls r3, [r4, #9]
4807
+.L756:
4808
+ ldrb r3, [r6, #36] @ zero_extendqisi2
44924809 mov r0, #0
44934810 cmp r3, #0
44944811 movne r3, #1
4495
- strneb r3, [r4, #9]
4496
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
4497
-.L773:
4812
+ strbne r3, [r4, #9]
4813
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
4814
+.L755:
4815
+ ldrb r0, [r10, r5] @ zero_extendqisi2
4816
+ add r7, r7, #2
4817
+ ldrh r1, [r4]
4818
+ add r5, r5, #1
4819
+ bl V2P_block
4820
+ strh r9, [r7, #-2] @ movhi
4821
+ mov fp, r0
4822
+ bl FtlBbmIsBadBlock
4823
+ cmp r0, #0
4824
+ strheq fp, [r7, #-2] @ movhi
4825
+ ldrbeq r3, [r4, #7] @ zero_extendqisi2
4826
+ addeq r3, r3, #1
4827
+ strbeq r3, [r4, #7]
4828
+ b .L753
4829
+.L766:
44984830 .align 2
4499
-.L772:
4500
- .word .LANCHOR0+2320
4831
+.L765:
45014832 .word .LANCHOR0
4833
+ .word .LANCHOR0+2350
45024834 .word .LANCHOR2
45034835 .fnend
45044836 .size make_superblock, .-make_superblock
45054837 .align 2
45064838 .global update_multiplier_value
4839
+ .syntax unified
4840
+ .arm
4841
+ .fpu softvfp
45074842 .type update_multiplier_value, %function
45084843 update_multiplier_value:
45094844 .fnstart
45104845 @ args = 0, pretend = 0, frame = 0
45114846 @ frame_needed = 0, uses_anonymous_args = 0
4512
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
4513
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
4847
+ ldr r3, .L774
4848
+ movw r2, #2324
4849
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
4850
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
45144851 mov r5, #0
4515
- ldr r3, .L784
4852
+ ldr r9, .L774+4
45164853 mov r6, r0
4517
- ldr r9, .L784+4
45184854 mov r4, r5
4519
- add r2, r3, #2320
4520
- ldrh r7, [r2]
4521
- movw r2, #2388
4855
+ ldrh r7, [r3, r2]
4856
+ movw r2, #2390
45224857 ldrh r8, [r3, r2]
4523
-.L775:
4858
+.L768:
45244859 uxth r3, r5
4525
- cmp r3, r7
4526
- bcs .L783
4527
- ldrb r0, [r9, r5] @ zero_extendqisi2
4528
- mov r1, r6
4529
- bl V2P_block
4530
- add r5, r5, #1
4531
- bl FtlBbmIsBadBlock
4532
- cmp r0, #0
4533
- addeq r4, r4, r8
4534
- uxtheq r4, r4
4535
- b .L775
4536
-.L783:
4860
+ cmp r7, r3
4861
+ bhi .L770
45374862 cmp r4, #0
4538
- beq .L778
4863
+ moveq r0, r4
4864
+ beq .L771
45394865 mov r1, r4
45404866 mov r0, #32768
45414867 bl __aeabi_idiv
4542
- uxth r4, r0
4543
-.L778:
4544
- ldr r3, .L784+8
4868
+.L771:
4869
+ ldr r3, .L774+8
45454870 mov r2, #6
4546
- mov r0, #0
4547
- ldr r3, [r3, #-3552]
4871
+ ldr r3, [r3, #-3548]
45484872 mla r6, r2, r6, r3
4549
- strh r4, [r6, #4] @ movhi
4550
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
4551
-.L785:
4873
+ strh r0, [r6, #4] @ movhi
4874
+ mov r0, #0
4875
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
4876
+.L770:
4877
+ mov r1, r6
4878
+ ldrb r0, [r9, r5] @ zero_extendqisi2
4879
+ bl V2P_block
4880
+ bl FtlBbmIsBadBlock
4881
+ cmp r0, #0
4882
+ add r5, r5, #1
4883
+ addeq r4, r4, r8
4884
+ uxtheq r4, r4
4885
+ b .L768
4886
+.L775:
45524887 .align 2
4553
-.L784:
4888
+.L774:
45544889 .word .LANCHOR0
4555
- .word .LANCHOR0+2348
4890
+ .word .LANCHOR0+2350
45564891 .word .LANCHOR2
45574892 .fnend
45584893 .size update_multiplier_value, .-update_multiplier_value
45594894 .align 2
45604895 .global GetFreeBlockMinEraseCount
4896
+ .syntax unified
4897
+ .arm
4898
+ .fpu softvfp
45614899 .type GetFreeBlockMinEraseCount, %function
45624900 GetFreeBlockMinEraseCount:
45634901 .fnstart
45644902 @ args = 0, pretend = 0, frame = 0
45654903 @ frame_needed = 0, uses_anonymous_args = 0
45664904 @ link register save eliminated.
4567
- ldr r2, .L789
4568
- ldr r0, [r2, #-3532]
4905
+ ldr r2, .L779
4906
+ ldr r0, [r2, #-3528]
45694907 cmp r0, #0
45704908 bxeq lr
4571
- ldr r3, [r2, #-3552]
4572
- rsb r0, r3, r0
4573
- ldr r3, .L789+4
4574
- mov r0, r0, asr #1
4909
+ ldr r3, [r2, #-3548]
4910
+ sub r0, r0, r3
4911
+ ldr r3, .L779+4
4912
+ asr r0, r0, #1
45754913 mul r0, r3, r0
4576
- ldr r3, [r2, #-3608]
4914
+ ldr r3, [r2, #-3604]
45774915 uxth r0, r0
4578
- mov r0, r0, asl #1
4916
+ lsl r0, r0, #1
45794917 ldrh r0, [r3, r0]
45804918 bx lr
4581
-.L790:
4919
+.L780:
45824920 .align 2
4583
-.L789:
4921
+.L779:
45844922 .word .LANCHOR2
45854923 .word -1431655765
45864924 .fnend
45874925 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
45884926 .align 2
45894927 .global GetFreeBlockMaxEraseCount
4928
+ .syntax unified
4929
+ .arm
4930
+ .fpu softvfp
45904931 .type GetFreeBlockMaxEraseCount, %function
45914932 GetFreeBlockMaxEraseCount:
45924933 .fnstart
45934934 @ args = 0, pretend = 0, frame = 0
45944935 @ frame_needed = 0, uses_anonymous_args = 0
4595
- ldr r1, .L801
4596
- ldr r3, [r1, #-3532]
4936
+ ldr r1, .L793
4937
+ ldr r3, [r1, #-3528]
45974938 cmp r3, #0
4598
- beq .L797
4939
+ beq .L787
45994940 sub r2, r1, #3520
4600
- stmfd sp!, {r4, r5, lr}
4941
+ push {r4, r5, lr}
46014942 .save {r4, r5, lr}
4943
+ ldrh r2, [r2, #-4]
46024944 mov r4, #6
4603
- ldrh r2, [r2, #-8]
46044945 movw r5, #65535
4605
- ldr ip, [r1, #-3552]
4606
- rsb r2, r2, r2, asl #3
4607
- rsb r3, ip, r3
4608
- mov r2, r2, asr #3
4609
- mov r3, r3, asr #1
4946
+ ldr ip, [r1, #-3548]
4947
+ rsb r2, r2, r2, lsl #3
4948
+ sub r3, r3, ip
4949
+ asr r2, r2, #3
4950
+ asr r3, r3, #1
46104951 cmp r0, r2
46114952 uxthgt r0, r2
4612
- ldr r2, .L801+4
4953
+ ldr r2, .L793+4
46134954 mul r3, r2, r3
46144955 mov r2, #0
46154956 uxth r3, r3
4616
-.L794:
4957
+.L784:
46174958 uxth lr, r2
4618
- cmp lr, r0
4619
- bcs .L796
4959
+ cmp r0, lr
4960
+ bls .L786
46204961 mul lr, r4, r3
46214962 add r2, r2, #1
46224963 ldrh lr, [ip, lr]
46234964 cmp lr, r5
4624
- bne .L798
4625
-.L796:
4626
- ldr r2, [r1, #-3608]
4627
- mov r3, r3, asl #1
4965
+ bne .L788
4966
+.L786:
4967
+ ldr r2, [r1, #-3604]
4968
+ lsl r3, r3, #1
46284969 ldrh r0, [r2, r3]
4629
- ldmfd sp!, {r4, r5, pc}
4630
-.L798:
4970
+ pop {r4, r5, pc}
4971
+.L788:
46314972 mov r3, lr
4632
- b .L794
4633
-.L797:
4973
+ b .L784
4974
+.L787:
46344975 mov r0, r3
46354976 bx lr
4636
-.L802:
4977
+.L794:
46374978 .align 2
4638
-.L801:
4979
+.L793:
46394980 .word .LANCHOR2
46404981 .word -1431655765
46414982 .fnend
46424983 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
46434984 .align 2
46444985 .global FtlPrintInfo2buf
4986
+ .syntax unified
4987
+ .arm
4988
+ .fpu softvfp
46454989 .type FtlPrintInfo2buf, %function
46464990 FtlPrintInfo2buf:
46474991 .fnstart
46484992 @ args = 0, pretend = 0, frame = 16
46494993 @ frame_needed = 0, uses_anonymous_args = 0
4650
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
4651
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
4652
- mov r7, r0
4653
- ldr r8, .L814
4654
- add r4, r7, #12
4655
- ldr r1, .L814+4
4656
- .pad #32
4657
- sub sp, sp, #32
4994
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4995
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4996
+ mov r8, r0
4997
+ ldr r9, .L808
4998
+ add r5, r8, #12
4999
+ .pad #36
5000
+ sub sp, sp, #36
5001
+ ldr r1, .L808+4
46585002 bl strcpy
4659
- mov r0, r4
4660
- ldr r1, .L814+8
4661
- ldr r2, [r8, #116]
5003
+ ldr r2, [r9, #124]
5004
+ mov r0, r5
5005
+ ldr r1, .L808+8
46625006 bl sprintf
4663
- ldr r1, .L814+12
4664
- ldr r2, [r8, #2404]
4665
- add r4, r4, r0
4666
- mov r0, r4
5007
+ add r5, r5, r0
5008
+ ldr r2, [r9, #2408]
5009
+ mov r0, r5
5010
+ ldr r1, .L808+12
46675011 bl sprintf
4668
- ldr r3, .L814+16
4669
- ldr r3, [r3, #504]
5012
+ ldr r3, .L808+16
5013
+ add r5, r5, r0
5014
+ ldr r3, [r3, #500]
46705015 cmp r3, #1
4671
- add r4, r4, r0
4672
- bne .L809
4673
- add r0, sp, #16
4674
- add r1, sp, #20
4675
- add r2, sp, #24
5016
+ subne r0, r5, r8
5017
+ bne .L795
46765018 add r3, sp, #28
5019
+ add r2, sp, #24
5020
+ add r1, sp, #20
5021
+ add r0, sp, #16
46775022 bl NandcGetTimeCfg
4678
- mov r0, r4
4679
- ldr r1, .L814+20
4680
- ldr r6, .L814+24
4681
- sub r10, r6, #3520
4682
- ldr r3, [sp, #24]
4683
- ldr r2, [sp, #16]
4684
- str r3, [sp]
46855023 ldr r3, [sp, #28]
5024
+ mov r0, r5
5025
+ ldr r2, [sp, #16]
5026
+ ldr r1, .L808+20
46865027 str r3, [sp, #4]
5028
+ ldr r3, [sp, #24]
5029
+ ldr r7, .L808+24
5030
+ str r3, [sp]
46875031 ldr r3, [sp, #20]
5032
+ sub r10, r7, #3520
46885033 bl sprintf
4689
- ldr r1, .L814+28
4690
- add r4, r4, r0
4691
- add r5, r4, #10
4692
- mov r0, r4
4693
- sub r4, r6, #3600
5034
+ add r6, r5, r0
5035
+ ldr r1, .L808+28
5036
+ mov r0, r6
5037
+ add r6, r6, #10
46945038 bl strcpy
4695
- mov r0, r5
4696
- ldr r1, .L814+32
4697
- ldr r2, [r8, #2448]
5039
+ ldr r2, [r9, #2452]
5040
+ mov r0, r6
5041
+ ldr r1, .L808+32
5042
+ sub r4, r7, #3584
46985043 bl sprintf
4699
- ldr r1, .L814+36
4700
- ldr r2, [r6, #-3372]
4701
- add r5, r5, r0
4702
- mov r0, r5
5044
+ add r6, r6, r0
5045
+ ldr r2, [r7, #-3368]
5046
+ ldr r1, .L808+36
5047
+ mov r0, r6
47035048 bl sprintf
4704
- ldr r1, .L814+40
4705
- ldr r2, [r6, #-3364]
4706
- add r5, r5, r0
4707
- mov r0, r5
5049
+ add r6, r6, r0
5050
+ ldr r2, [r7, #-3364]
5051
+ ldr r1, .L808+40
5052
+ mov r0, r6
47085053 bl sprintf
4709
- ldr r1, .L814+44
4710
- ldr r2, [r6, #-3360]
4711
- add r5, r5, r0
4712
- mov r0, r5
5054
+ add r6, r6, r0
5055
+ ldr r2, [r7, #-3360]
5056
+ ldr r1, .L808+44
5057
+ mov r0, r6
47135058 bl sprintf
4714
- ldr r1, .L814+48
4715
- ldr r2, [r6, #-3356]
4716
- add r5, r5, r0
4717
- mov r0, r5
5059
+ add r6, r6, r0
5060
+ ldr r2, [r7, #-3356]
5061
+ ldr r1, .L808+48
5062
+ mov r0, r6
47185063 bl sprintf
4719
- ldr r1, .L814+52
4720
- ldr r2, [r6, #-3352]
4721
- add r5, r5, r0
4722
- mov r0, r5
5064
+ add r6, r6, r0
5065
+ ldr r2, [r7, #-3352]
5066
+ ldr r1, .L808+52
5067
+ mov r0, r6
47235068 bl sprintf
4724
- ldr r1, .L814+56
4725
- ldr r2, [r6, #-3348]
4726
- add r5, r5, r0
4727
- mov r0, r5
5069
+ add r6, r6, r0
5070
+ ldr r2, [r7, #-3348]
5071
+ ldr r1, .L808+56
5072
+ mov r0, r6
47285073 bl sprintf
4729
- ldr r1, .L814+60
4730
- ldr r2, [r6, #-3344]
4731
- add r5, r5, r0
4732
- mov r0, r5
5074
+ add r6, r6, r0
5075
+ ldr r2, [r7, #-3344]
5076
+ ldr r1, .L808+60
5077
+ mov r0, r6
47335078 bl sprintf
4734
- ldr r2, [r6, #-3340]
4735
- ldr r1, .L814+64
4736
- mov r2, r2, lsr #11
4737
- add r5, r5, r0
4738
- mov r0, r5
5079
+ ldr r2, [r7, #-3340]
5080
+ add r6, r6, r0
5081
+ ldr r1, .L808+64
5082
+ mov r0, r6
5083
+ sub r5, r7, #3280
5084
+ lsr r2, r2, #11
47395085 bl sprintf
4740
- ldr r2, [r6, #-3336]
4741
- ldr r1, .L814+68
4742
- mov r2, r2, lsr #11
4743
- add r5, r5, r0
4744
- mov r0, r5
5086
+ ldr r2, [r7, #-3336]
5087
+ add r6, r6, r0
5088
+ ldr r1, .L808+68
5089
+ mov r0, r6
5090
+ lsr r2, r2, #11
47455091 bl sprintf
4746
- ldr r1, .L814+72
4747
- ldr r2, [r6, #-3332]
4748
- add r5, r5, r0
4749
- mov r0, r5
5092
+ add r6, r6, r0
5093
+ ldr r2, [r7, #-3332]
5094
+ ldr r1, .L808+72
5095
+ mov r0, r6
47505096 bl sprintf
4751
- ldr r1, .L814+76
4752
- ldr r2, [r6, #-3328]
4753
- add r5, r5, r0
4754
- mov r0, r5
5097
+ add r6, r6, r0
5098
+ ldr r2, [r7, #-3328]
5099
+ ldr r1, .L808+76
5100
+ mov r0, r6
47555101 bl sprintf
4756
- add r5, r5, r0
5102
+ add r6, r6, r0
47575103 bl FtlBbtCalcTotleCnt
4758
- ldr r2, .L814+80
4759
- ldr r1, .L814+84
4760
- ldrh r2, [r2, #6]
5104
+ ldr r2, .L808+80
47615105 mov r3, r0
4762
- mov r0, r5
5106
+ ldr r1, .L808+84
5107
+ mov r0, r6
5108
+ ldrh r2, [r2, #6]
47635109 bl sprintf
4764
- ldr r1, .L814+88
4765
- ldrh r2, [r10, #-8]
4766
- add r5, r5, r0
4767
- mov r0, r5
4768
- bl sprintf
4769
- ldr r1, .L814+92
4770
- ldr r2, [r6, #-3324]
4771
- add r5, r5, r0
4772
- mov r0, r5
4773
- bl sprintf
4774
- ldr r1, .L814+96
4775
- ldr r2, [r6, #-3320]
4776
- add r5, r5, r0
4777
- mov r0, r5
4778
- bl sprintf
4779
- ldr r1, .L814+100
4780
- ldr r2, [r6, #-3316]
4781
- add r5, r5, r0
4782
- mov r0, r5
4783
- bl sprintf
4784
- ldr r1, .L814+104
4785
- ldr r2, [r6, #-3604]
4786
- add r5, r5, r0
4787
- mov r0, r5
4788
- bl sprintf
4789
- ldr r1, .L814+108
4790
- ldr r2, [r6, #-3312]
4791
- add r5, r5, r0
4792
- mov r0, r5
4793
- bl sprintf
4794
- ldr r1, .L814+112
4795
- ldr r2, [r6, #-3308]
4796
- add r5, r5, r0
4797
- mov r0, r5
4798
- bl sprintf
4799
- ldrh r2, [r4, #30]
4800
- ldr r1, .L814+116
4801
- add r5, r5, r0
4802
- mov r0, r5
4803
- bl sprintf
4804
- ldrh r2, [r4, #28]
4805
- ldr r1, .L814+120
4806
- sub r4, r6, #3296
4807
- add r5, r5, r0
4808
- mov r0, r5
4809
- bl sprintf
4810
- ldr r1, .L814+124
4811
- ldr r2, [r8, #2428]
4812
- add r5, r5, r0
4813
- mov r0, r5
4814
- bl sprintf
4815
- ldr r1, .L814+128
4816
- ldr r2, [r8, #2420]
4817
- add r5, r5, r0
4818
- mov r0, r5
4819
- bl sprintf
4820
- ldr r1, .L814+132
4821
- ldr r2, [r8, #2316]
4822
- add r5, r5, r0
4823
- mov r0, r5
4824
- bl sprintf
4825
- add r3, r8, #2512
4826
- ldr r1, .L814+136
4827
- ldrh r2, [r3, #6]
4828
- add r5, r5, r0
4829
- mov r0, r5
4830
- bl sprintf
4831
- movw r3, #2328
4832
- ldrh r2, [r8, r3]
4833
- ldr r1, .L814+140
4834
- add r5, r5, r0
4835
- mov r0, r5
4836
- bl sprintf
4837
- ldrh r2, [r4, #-8]
4838
- ldr r1, .L814+144
4839
- add r5, r5, r0
4840
- mov r0, r5
4841
- bl sprintf
4842
- ldr r1, .L814+148
4843
- ldr r2, [r8, #2332]
4844
- add r5, r5, r0
4845
- mov r0, r5
4846
- bl sprintf
4847
- ldrh r2, [r4, #-4]
4848
- ldr r1, .L814+152
4849
- add r5, r5, r0
4850
- mov r0, r5
4851
- bl sprintf
4852
- movw r3, #2452
4853
- ldrh r2, [r8, r3]
4854
- ldr r1, .L814+156
4855
- add r5, r5, r0
4856
- mov r0, r5
4857
- bl sprintf
4858
- ldrh r2, [r4, #-226]
4859
- ldr r1, .L814+160
4860
- add r5, r5, r0
4861
- mov r0, r5
4862
- bl sprintf
4863
- ldr r1, .L814+164
4864
- ldrb r2, [r6, #-3518] @ zero_extendqisi2
4865
- add r5, r5, r0
4866
- mov r0, r5
4867
- bl sprintf
4868
- ldr r1, .L814+168
5110
+ add r6, r6, r0
48695111 ldrh r2, [r10, #-4]
4870
- add r5, r5, r0
4871
- mov r0, r5
5112
+ ldr r1, .L808+88
5113
+ mov r0, r6
48725114 bl sprintf
4873
- ldr r1, .L814+172
4874
- ldrb r2, [r6, #-3516] @ zero_extendqisi2
4875
- add r5, r5, r0
4876
- mov r0, r5
5115
+ add r6, r6, r0
5116
+ ldr r2, [r7, #-3324]
5117
+ ldr r1, .L808+92
5118
+ mov r0, r6
48775119 bl sprintf
4878
- ldrh r2, [r4, #-224]
4879
- ldr r1, .L814+176
4880
- sub r4, r6, #3472
4881
- sub r9, r4, #4
4882
- add r5, r5, r0
4883
- mov r0, r5
5120
+ add r6, r6, r0
5121
+ ldr r2, [r7, #-3320]
5122
+ ldr r1, .L808+96
5123
+ mov r0, r6
48845124 bl sprintf
4885
- ldrh r3, [r10, #-4]
4886
- ldr r2, [r6, #-3544]
4887
- ldr r1, .L814+180
4888
- mov r3, r3, asl #1
4889
- ldrh r2, [r2, r3]
4890
- add r5, r5, r0
4891
- mov r0, r5
5125
+ add r6, r6, r0
5126
+ ldr r2, [r7, #-3316]
5127
+ ldr r1, .L808+100
5128
+ mov r0, r6
48925129 bl sprintf
4893
- ldrh r2, [r4, #-2]
4894
- ldr r1, .L814+184
4895
- add r5, r5, r0
4896
- mov r0, r5
5130
+ add r6, r6, r0
5131
+ ldr r2, [r7, #-3600]
5132
+ ldr r1, .L808+104
5133
+ mov r0, r6
48975134 bl sprintf
4898
- ldr r1, .L814+188
4899
- ldrb r2, [r6, #-3470] @ zero_extendqisi2
4900
- add r5, r5, r0
4901
- mov r0, r5
5135
+ add r6, r6, r0
5136
+ ldr r2, [r7, #-3312]
5137
+ ldr r1, .L808+108
5138
+ mov r0, r6
49025139 bl sprintf
5140
+ add r6, r6, r0
5141
+ ldr r2, [r7, #-3308]
5142
+ ldr r1, .L808+112
5143
+ mov r0, r6
5144
+ bl sprintf
5145
+ add r6, r6, r0
5146
+ ldrh r2, [r4, #18]
5147
+ ldr r1, .L808+116
5148
+ mov r0, r6
5149
+ bl sprintf
5150
+ add r6, r6, r0
5151
+ ldrh r2, [r4, #16]
5152
+ ldr r1, .L808+120
5153
+ mov r0, r6
5154
+ bl sprintf
5155
+ add r6, r6, r0
5156
+ ldr r2, [r9, #2432]
5157
+ ldr r1, .L808+124
5158
+ mov r0, r6
5159
+ bl sprintf
5160
+ add r6, r6, r0
5161
+ ldr r2, [r9, #2424]
5162
+ ldr r1, .L808+128
5163
+ mov r0, r6
5164
+ bl sprintf
5165
+ add r6, r6, r0
5166
+ ldr r2, [r9, #2320]
5167
+ ldr r1, .L808+132
5168
+ mov r0, r6
5169
+ bl sprintf
5170
+ ldr r3, .L808+136
5171
+ add r6, r6, r0
5172
+ ldr r1, .L808+140
5173
+ mov r0, r6
5174
+ sub r4, r7, #3296
5175
+ ldrh r2, [r3, #6]
5176
+ bl sprintf
5177
+ movw r3, #2332
5178
+ add r6, r6, r0
5179
+ ldrh r2, [r9, r3]
5180
+ mov r0, r6
5181
+ ldr r1, .L808+144
5182
+ bl sprintf
5183
+ add r6, r6, r0
5184
+ ldrh r2, [r4, #-8]
5185
+ ldr r1, .L808+148
5186
+ mov r0, r6
5187
+ bl sprintf
5188
+ add r6, r6, r0
5189
+ ldr r2, [r9, #2336]
5190
+ ldr r1, .L808+152
5191
+ mov r0, r6
5192
+ bl sprintf
5193
+ add r6, r6, r0
49035194 ldrh r2, [r4, #-4]
4904
- ldr r1, .L814+192
4905
- add r5, r5, r0
4906
- mov r0, r5
5195
+ ldr r1, .L808+156
5196
+ mov r0, r6
49075197 bl sprintf
4908
- ldr r1, .L814+196
4909
- ldrb r2, [r6, #-3468] @ zero_extendqisi2
4910
- add r5, r5, r0
4911
- mov r0, r5
5198
+ movw r3, #2456
5199
+ add r6, r6, r0
5200
+ ldrh r2, [r9, r3]
5201
+ mov r0, r6
5202
+ ldr r1, .L808+160
5203
+ sub r4, r7, #3472
49125204 bl sprintf
4913
- ldrh r2, [r9, #4]
4914
- ldr r1, .L814+200
4915
- sub r9, r6, #3424
4916
- add r5, r5, r0
4917
- mov r0, r5
5205
+ add r6, r6, r0
5206
+ ldrh r2, [r10, #2]
5207
+ ldr r1, .L808+164
5208
+ mov r0, r6
49185209 bl sprintf
4919
- ldrh r3, [r4, #-4]
4920
- ldr r2, [r6, #-3544]
4921
- ldr r1, .L814+204
4922
- mov r3, r3, asl #1
5210
+ add r6, r6, r0
5211
+ ldrb r2, [r7, #-3514] @ zero_extendqisi2
5212
+ ldr r1, .L808+168
5213
+ mov r0, r6
5214
+ bl sprintf
5215
+ add r6, r6, r0
5216
+ ldrh r2, [r10]
5217
+ ldr r1, .L808+172
5218
+ mov r0, r6
5219
+ bl sprintf
5220
+ add r6, r6, r0
5221
+ ldrb r2, [r7, #-3512] @ zero_extendqisi2
5222
+ ldr r1, .L808+176
5223
+ mov r0, r6
5224
+ bl sprintf
5225
+ add r6, r6, r0
5226
+ ldrh r2, [r10, #4]
5227
+ ldr r1, .L808+180
5228
+ mov r0, r6
5229
+ bl sprintf
5230
+ ldrh r3, [r10]
5231
+ add r6, r6, r0
5232
+ ldr r2, [r7, #-3540]
5233
+ mov r0, r6
5234
+ ldr r1, .L808+184
5235
+ lsl r3, r3, #1
49235236 ldrh r2, [r2, r3]
4924
- add r5, r5, r0
4925
- mov r0, r5
49265237 bl sprintf
4927
- ldrh r2, [r4, #46]
4928
- ldr r1, .L814+208
4929
- add r5, r5, r0
4930
- mov r0, r5
5238
+ add r6, r6, r0
5239
+ ldrh r2, [r4, #2]
5240
+ ldr r1, .L808+188
5241
+ mov r0, r6
49315242 bl sprintf
4932
- ldr r1, .L814+212
4933
- ldrb r2, [r6, #-3422] @ zero_extendqisi2
4934
- add r5, r5, r0
4935
- mov r0, r5
5243
+ add r6, r6, r0
5244
+ ldrb r2, [r7, #-3466] @ zero_extendqisi2
5245
+ ldr r1, .L808+192
5246
+ mov r0, r6
49365247 bl sprintf
4937
- ldrh r2, [r9, #-4]
4938
- ldr r1, .L814+216
4939
- sub r9, r6, #3280
4940
- add r5, r5, r0
4941
- mov r0, r5
5248
+ add r6, r6, r0
5249
+ ldrh r2, [r4]
5250
+ ldr r1, .L808+196
5251
+ mov r0, r6
49425252 bl sprintf
4943
- ldr r1, .L814+220
4944
- ldrb r2, [r6, #-3420] @ zero_extendqisi2
4945
- add r5, r5, r0
4946
- mov r0, r5
5253
+ add r6, r6, r0
5254
+ ldrb r2, [r7, #-3464] @ zero_extendqisi2
5255
+ ldr r1, .L808+200
5256
+ mov r0, r6
49475257 bl sprintf
4948
- ldrh r2, [r4, #48]
4949
- ldr r1, .L814+224
4950
- add r5, r5, r0
4951
- mov r0, r5
5258
+ add r6, r6, r0
5259
+ ldrh r2, [r4, #4]
5260
+ ldr r1, .L808+204
5261
+ mov r0, r6
49525262 bl sprintf
4953
- ldrh r2, [r4, #190]
4954
- ldr r1, .L814+228
4955
- add r5, r5, r0
4956
- mov r0, r5
5263
+ ldrh r3, [r4]
5264
+ add r6, r6, r0
5265
+ ldr r2, [r7, #-3540]
5266
+ mov r0, r6
5267
+ ldr r1, .L808+208
5268
+ sub r4, r7, #3424
5269
+ lsl r3, r3, #1
5270
+ ldrh r2, [r2, r3]
49575271 bl sprintf
4958
- ldr r1, .L814+232
4959
- ldrb r2, [r6, #-3278] @ zero_extendqisi2
4960
- add r5, r5, r0
4961
- mov r0, r5
5272
+ add r6, r6, r0
5273
+ ldrh r2, [r4, #2]
5274
+ ldr r1, .L808+212
5275
+ mov r0, r6
49625276 bl sprintf
4963
- ldr r1, .L814+236
4964
- ldrh r2, [r9, #-4]
4965
- add r5, r5, r0
4966
- mov r0, r5
5277
+ add r6, r6, r0
5278
+ ldrb r2, [r7, #-3418] @ zero_extendqisi2
5279
+ ldr r1, .L808+216
5280
+ mov r0, r6
49675281 bl sprintf
4968
- ldr r1, .L814+240
4969
- ldrb r2, [r6, #-3276] @ zero_extendqisi2
4970
- add r5, r5, r0
4971
- mov r0, r5
5282
+ add r6, r6, r0
5283
+ ldrh r2, [r4]
5284
+ ldr r1, .L808+220
5285
+ mov r0, r6
49725286 bl sprintf
4973
- ldrh r2, [r4, #192]
4974
- ldr r1, .L814+244
4975
- add r5, r5, r0
4976
- mov r0, r5
5287
+ add r6, r6, r0
5288
+ ldrb r2, [r7, #-3416] @ zero_extendqisi2
5289
+ ldr r1, .L808+224
5290
+ mov r0, r6
49775291 bl sprintf
4978
- ldr r1, [r6, #-3148]
4979
- ldr r3, [r8, #2244]
4980
- ldr r2, [r6, #-3236]
4981
- orr r2, r3, r2, asl #8
4982
- ldr r3, [r6, #-3152]
4983
- str r1, [sp]
4984
- add r5, r5, r0
4985
- ldr r1, [r6, #-3156]
4986
- mov r0, r5
4987
- str r1, [sp, #4]
4988
- ldr r1, .L814+248
5292
+ add r6, r6, r0
5293
+ ldrh r2, [r4, #4]
5294
+ ldr r1, .L808+228
5295
+ mov r0, r6
49895296 bl sprintf
4990
- ldr r1, .L814+252
4991
- ldr r2, [r6, #-3160]
4992
- add r4, r5, r0
4993
- sub r5, r6, #2704
5297
+ add r6, r6, r0
5298
+ ldrh r2, [r5, #-2]
5299
+ ldr r1, .L808+232
5300
+ mov r0, r6
5301
+ bl sprintf
5302
+ add r6, r6, r0
5303
+ ldrb r2, [r7, #-3278] @ zero_extendqisi2
5304
+ ldr r1, .L808+236
5305
+ mov r0, r6
5306
+ bl sprintf
5307
+ add r6, r6, r0
5308
+ ldrh r2, [r5, #-4]
5309
+ ldr r1, .L808+240
5310
+ mov r0, r6
5311
+ bl sprintf
5312
+ add r6, r6, r0
5313
+ ldrb r2, [r7, #-3276] @ zero_extendqisi2
5314
+ ldr r1, .L808+244
5315
+ mov r0, r6
5316
+ bl sprintf
5317
+ sub r4, r5, #4
5318
+ add r6, r6, r0
5319
+ ldrh r2, [r4, #4]
5320
+ mov r0, r6
5321
+ ldr r1, .L808+248
5322
+ bl sprintf
5323
+ ldr r3, [r7, #-3160]
5324
+ add r6, r6, r0
5325
+ ldr r2, [r9, #2248]
5326
+ mov r0, r6
5327
+ ldr r1, [r7, #-2724]
5328
+ str r3, [sp, #4]
5329
+ ldr r3, [r7, #-3152]
5330
+ orr r2, r2, r1, lsl #8
5331
+ ldr r1, .L808+252
5332
+ str r3, [sp]
5333
+ ldr r3, [r7, #-3156]
5334
+ bl sprintf
5335
+ add r4, r6, r0
5336
+ ldr r2, [r7, #-3164]
5337
+ ldr r1, .L808+256
49945338 mov r0, r4
49955339 bl sprintf
4996
- ldr r1, .L814+256
4997
- ldr r2, [r6, #-3136]
49985340 add r4, r4, r0
5341
+ ldr r2, [r7, #-3140]
5342
+ ldr r1, .L808+260
49995343 mov r0, r4
50005344 bl sprintf
5001
- sub r3, r6, #2720
5002
- ldr r1, .L814+260
5345
+ sub r3, r7, #2720
5346
+ add r4, r4, r0
50035347 ldrh r2, [r3]
5348
+ mov r0, r4
5349
+ ldr r1, .L808+264
5350
+ sub r6, r7, #2704
5351
+ bl sprintf
50045352 add r4, r4, r0
5353
+ ldrh r2, [r6, #-14]
5354
+ ldr r1, .L808+268
50055355 mov r0, r4
50065356 bl sprintf
5007
- ldr r1, .L814+264
5008
- ldrh r2, [r5, #-14]
50095357 add r4, r4, r0
5358
+ ldr r2, [r7, #-2716]
5359
+ ldr r1, .L808+272
50105360 mov r0, r4
50115361 bl sprintf
5012
- ldr r1, .L814+268
5013
- ldr r2, [r6, #-2716]
50145362 add r4, r4, r0
5015
- mov r0, r4
5016
- bl sprintf
5017
- ldr r1, .L814+272
5018
- ldrh r2, [r5, #-8]
5019
- add r4, r4, r0
5363
+ ldrh r2, [r6, #-8]
5364
+ ldr r1, .L808+276
50205365 mov r0, r4
50215366 bl sprintf
50225367 add r4, r4, r0
50235368 bl GetFreeBlockMinEraseCount
5024
- ldr r1, .L814+276
5369
+ ldr r1, .L808+280
50255370 mov r2, r0
50265371 mov r0, r4
50275372 bl sprintf
50285373 add r4, r4, r0
5029
- ldrh r0, [r10, #-8]
5374
+ ldrh r0, [r10, #-4]
50305375 bl GetFreeBlockMaxEraseCount
5031
- ldr r1, .L814+280
5376
+ ldr r1, .L808+284
50325377 mov r2, r0
50335378 mov r0, r4
50345379 bl sprintf
5035
- ldrh r3, [r9, #-4]
5380
+ ldrh r3, [r5, #-4]
50365381 movw r2, #65535
5037
- cmp r3, r2
50385382 add r4, r4, r0
5039
- beq .L806
5040
- ldr r2, [r6, #-3544]
5041
- mov r3, r3, asl #1
5383
+ cmp r3, r2
5384
+ beq .L798
5385
+ ldr r2, [r7, #-3540]
5386
+ lsl r3, r3, #1
50425387 mov r0, r4
5043
- ldr r1, .L814+284
5388
+ ldr r1, .L808+288
50445389 ldrh r2, [r2, r3]
50455390 bl sprintf
50465391 add r4, r4, r0
5047
-.L806:
5392
+.L798:
50485393 mov r0, #0
5049
- mov r5, #0
5394
+ ldr r9, .L808+292
50505395 bl List_get_gc_head_node
5051
- movw r10, #65535
5052
- mov r9, #6
50535396 uxth r3, r0
5054
-.L808:
5055
- cmp r3, r10
5056
- beq .L807
5057
- ldr r2, [r6, #-3544]
5058
- mov r1, r3, asl #1
5059
- mul r8, r9, r3
5397
+ mov r5, #0
5398
+ movw fp, #65535
5399
+ mov r10, #6
5400
+.L800:
5401
+ cmp r3, fp
5402
+ beq .L799
5403
+ ldr r2, [r7, #-3604]
5404
+ lsl r1, r3, #1
5405
+ mul r6, r10, r3
50605406 mov r0, r4
50615407 ldrh r2, [r2, r1]
5062
- str r2, [sp]
5063
- ldr r2, [r6, #-3552]
5064
- add r2, r2, r8
5408
+ str r2, [sp, #8]
5409
+ ldr r2, [r7, #-3548]
5410
+ add r2, r2, r6
50655411 ldrh r2, [r2, #4]
50665412 str r2, [sp, #4]
5067
- ldr r2, [r6, #-3608]
5413
+ ldr r2, [r7, #-3540]
50685414 ldrh r2, [r2, r1]
5069
- ldr r1, .L814+288
5070
- str r2, [sp, #8]
5415
+ mov r1, r9
5416
+ str r2, [sp]
50715417 mov r2, r5
50725418 bl sprintf
50735419 add r5, r5, #1
5074
- ldr r3, [r6, #-3552]
5420
+ ldr r3, [r7, #-3548]
50755421 cmp r5, #16
5076
- ldrh r3, [r3, r8]
50775422 add r4, r4, r0
5078
- bne .L808
5079
-.L807:
5080
- ldr r2, [r6, #-3552]
5423
+ ldrh r3, [r3, r6]
5424
+ bne .L800
5425
+.L799:
5426
+ ldr r2, [r7, #-3548]
50815427 mov r5, #0
5082
- ldr r3, [r6, #-3532]
5083
- movw r10, #65535
5084
- mov r9, #6
5085
- rsb r3, r2, r3
5086
- ldr r2, .L814+292
5087
- mov r3, r3, asr #1
5428
+ ldr r3, [r7, #-3528]
5429
+ movw r9, #65535
5430
+ ldr fp, .L808+296
5431
+ mov r10, #6
5432
+ sub r3, r3, r2
5433
+ ldr r2, .L808+300
5434
+ asr r3, r3, #1
50885435 mul r3, r2, r3
50895436 uxth r3, r3
5090
-.L810:
5091
- cmp r3, r10
5092
- beq .L809
5093
- mul r8, r9, r3
5094
- ldr r2, [r6, #-3552]
5095
- ldr r1, [r6, #-3608]
5437
+.L802:
5438
+ cmp r3, r9
5439
+ beq .L801
5440
+ ldr r1, [r7, #-3604]
5441
+ lsl r2, r3, #1
5442
+ mul r6, r10, r3
50965443 mov r0, r4
5097
- add r2, r2, r8
5444
+ ldrh r2, [r1, r2]
5445
+ mov r1, fp
5446
+ str r2, [sp, #4]
5447
+ ldr r2, [r7, #-3548]
5448
+ add r2, r2, r6
50985449 ldrh r2, [r2, #4]
50995450 str r2, [sp]
5100
- mov r2, r3, asl #1
5101
- ldrh r2, [r1, r2]
5102
- ldr r1, .L814+296
5103
- str r2, [sp, #4]
51045451 mov r2, r5
5105
- bl sprintf
51065452 add r5, r5, #1
5107
- ldr r3, [r6, #-3552]
5453
+ bl sprintf
51085454 cmp r5, #4
5109
- ldrh r3, [r3, r8]
51105455 add r4, r4, r0
5111
- bne .L810
5112
-.L809:
5113
- rsb r0, r7, r4
5114
- add sp, sp, #32
5456
+ ldrne r3, [r7, #-3548]
5457
+ ldrhne r3, [r3, r6]
5458
+ bne .L802
5459
+.L801:
5460
+ sub r0, r4, r8
5461
+.L795:
5462
+ add sp, sp, #36
51155463 @ sp needed
5116
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
5117
-.L815:
5464
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5465
+.L809:
51185466 .align 2
5119
-.L814:
5467
+.L808:
51205468 .word .LANCHOR0
51215469 .word .LC6
51225470 .word .LC7
....@@ -5137,7 +5485,7 @@
51375485 .word .LC20
51385486 .word .LC21
51395487 .word .LC22
5140
- .word .LANCHOR0+2452
5488
+ .word .LANCHOR0+2456
51415489 .word .LC23
51425490 .word .LC24
51435491 .word .LC25
....@@ -5151,6 +5499,7 @@
51515499 .word .LC33
51525500 .word .LC34
51535501 .word .LC35
5502
+ .word .LANCHOR0+2516
51545503 .word .LC36
51555504 .word .LC37
51565505 .word .LC38
....@@ -5190,237 +5539,243 @@
51905539 .word .LC72
51915540 .word .LC73
51925541 .word .LC74
5193
- .word -1431655765
51945542 .word .LC75
5543
+ .word -1431655765
51955544 .fnend
51965545 .size FtlPrintInfo2buf, .-FtlPrintInfo2buf
51975546 .align 2
51985547 .global ftl_proc_ftl_read
5548
+ .syntax unified
5549
+ .arm
5550
+ .fpu softvfp
51995551 .type ftl_proc_ftl_read, %function
52005552 ftl_proc_ftl_read:
52015553 .fnstart
52025554 @ args = 0, pretend = 0, frame = 0
52035555 @ frame_needed = 0, uses_anonymous_args = 0
5204
- stmfd sp!, {r3, r4, r5, lr}
5205
- .save {r3, r4, r5, lr}
5556
+ push {r4, r5, r6, lr}
5557
+ .save {r4, r5, r6, lr}
52065558 mov r5, r0
5207
- ldr r1, .L818
5208
- ldr r2, .L818+4
5559
+ ldr r2, .L812
5560
+ ldr r1, .L812+4
52095561 bl sprintf
52105562 add r4, r5, r0
52115563 mov r0, r4
52125564 bl FtlPrintInfo2buf
52135565 add r0, r4, r0
5214
- rsb r0, r5, r0
5215
- ldmfd sp!, {r3, r4, r5, pc}
5216
-.L819:
5566
+ sub r0, r0, r5
5567
+ pop {r4, r5, r6, pc}
5568
+.L813:
52175569 .align 2
5218
-.L818:
5570
+.L812:
52195571 .word .LC76
52205572 .word .LC77
52215573 .fnend
52225574 .size ftl_proc_ftl_read, .-ftl_proc_ftl_read
52235575 .align 2
52245576 .global GetSwlReplaceBlock
5577
+ .syntax unified
5578
+ .arm
5579
+ .fpu softvfp
52255580 .type GetSwlReplaceBlock, %function
52265581 GetSwlReplaceBlock:
52275582 .fnstart
52285583 @ args = 0, pretend = 0, frame = 8
52295584 @ frame_needed = 0, uses_anonymous_args = 0
5230
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5585
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
52315586 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
52325587 .pad #28
52335588 sub sp, sp, #28
5234
- ldr r4, .L850
5589
+ ldr r4, .L842
52355590 ldr r2, [r4, #-3316]
52365591 ldr r3, [r4, #-3308]
52375592 cmp r2, r3
5238
- bcs .L821
5239
- ldr r2, .L850+4
5240
- movw r1, #2328
5241
- ldr r0, [r4, #-3608]
5593
+ bcs .L815
5594
+ ldr r0, .L842+4
5595
+ movw r2, #2332
52425596 mov r3, #0
52435597 str r3, [r4, #-3324]
5244
- ldrh r1, [r2, r1]
5245
- sub r0, r0, #2
5246
- mov r5, r2
5247
-.L822:
5598
+ ldrh r1, [r0, r2]
5599
+ mov r6, r0
5600
+ ldr r2, [r4, #-3604]
5601
+ sub r2, r2, #2
5602
+.L816:
52485603 cmp r3, r1
5249
- bcs .L849
5250
- ldrh r2, [r0, #2]!
5251
- add r3, r3, #1
5252
- ldr ip, [r4, #-3324]
5253
- add r2, r2, ip
5254
- str r2, [r4, #-3324]
5255
- b .L822
5256
-.L849:
5257
- ldr r6, [r4, #-3324]
5258
- mov r0, r6
5604
+ bcc .L817
5605
+ ldr r5, [r4, #-3324]
5606
+ mov r0, r5
52595607 bl __aeabi_uidiv
5260
- movw r3, #2380
5261
- ldrh r1, [r5, r3]
52625608 str r0, [r4, #-3316]
5609
+ movw r3, #2382
52635610 ldr r0, [r4, #-3320]
5264
- rsb r0, r0, r6
5611
+ ldrh r1, [r6, r3]
5612
+ sub r0, r5, r0
52655613 bl __aeabi_uidiv
52665614 str r0, [r4, #-3324]
5267
- b .L824
5268
-.L821:
5269
- ldr r3, [r4, #-3312]
5270
- cmp r2, r3
5271
- bls .L824
5272
- ldr ip, .L850+8
5273
- add r3, r3, #1
5274
- str r3, [r4, #-3312]
5275
- mov r3, #0
5276
-.L826:
5277
- ldrh r2, [ip]
5278
- cmp r3, r2
5279
- bcs .L824
5280
- ldr r0, [r4, #-3608]
5281
- mov r1, r3, asl #1
5282
- add r3, r3, #1
5283
- ldrh r2, [r0, r1]
5284
- add r2, r2, #1
5285
- strh r2, [r0, r1] @ movhi
5286
- b .L826
5287
-.L824:
5288
- ldr r6, [r4, #-3308]
5615
+.L818:
5616
+ ldr r5, [r4, #-3308]
52895617 ldr r8, [r4, #-3316]
5290
- add r3, r6, #256
5618
+ add r3, r5, #256
52915619 cmp r3, r8
5292
- bls .L829
5293
- ldr r2, .L850
5294
- add r3, r6, #768
5295
- ldr r2, [r2, #-3312]
5620
+ bls .L823
5621
+ ldr r2, [r4, #-3312]
5622
+ add r3, r5, #768
52965623 cmp r3, r2
5297
- bls .L829
5298
- ldr r3, .L850+4
5299
- cmp r6, #40
5300
- ldr r2, [r3, #2244]
5624
+ bls .L823
5625
+ ldr r3, .L842+4
5626
+ cmp r5, #40
5627
+ ldr r2, [r3, #2248]
53015628 movls r3, #0
53025629 movhi r3, #1
53035630 cmp r2, #0
53045631 orreq r3, r3, #1
53055632 cmp r3, #0
5306
- beq .L829
5307
-.L831:
5308
- movw r0, #65535
5309
- b .L830
5310
-.L829:
5311
- ldr r5, .L850
5312
- sub r3, r5, #3520
5313
- ldrh r0, [r3, #-8]
5314
- add r0, r0, r0, asl #1
5315
- ubfx r0, r0, #2, #16
5316
- bl GetFreeBlockMaxEraseCount
5317
- add r1, r6, #64
5318
- cmp r0, r1
5319
- mov r9, r0
5320
- movcs r1, #0
5321
- movcc r1, #1
5322
- cmp r6, #40
5323
- movls r1, #0
5324
- cmp r1, #0
5325
- bne .L831
5326
- ldr r3, [r5, #-3548]
5327
- cmp r3, #0
5328
- beq .L831
5329
- ldr r0, .L850+4
5330
- movw r2, #2328
5331
- ldr ip, .L850+12
5332
- movw r7, #65535
5333
- ldr r10, [r5, #-3608]
5334
- mov lr, #6
5335
- ldrh r2, [r0, r2]
5336
- ldr r0, [r5, #-3552]
5337
- mov r5, r7
5338
- str r2, [sp, #20]
5339
-.L832:
5340
- ldrh r2, [r3]
5341
- movw fp, #65535
5342
- cmp r2, fp
5343
- beq .L834
5344
- add r1, r1, #1
5345
- ldr fp, [sp, #20]
5346
- uxth r1, r1
5347
- cmp r1, fp
5348
- bhi .L831
5349
- ldrh fp, [r3, #4]
5350
- cmp fp, #0
5351
- beq .L833
5352
- rsb r3, r0, r3
5353
- mov r3, r3, asr #1
5354
- mul r3, ip, r3
5355
- uxth r3, r3
5356
- mov fp, r3, asl #1
5357
- ldrh fp, [r10, fp]
5358
- cmp fp, r6
5359
- bls .L838
5360
- cmp fp, r7
5361
- movcc r7, fp
5362
- movcc r5, r3
5363
-.L833:
5364
- mla r3, lr, r2, r0
5365
- b .L832
5366
-.L838:
5367
- mov r5, r3
5368
-.L834:
5369
- movw r3, #65535
5370
- cmp r5, r3
5371
- beq .L831
5372
- mov r3, r5, asl #1
5373
- ldrh fp, [r10, r3]
5374
- cmp fp, r6
5375
- bls .L836
5376
- str r3, [sp, #20]
5377
- bl GetFreeBlockMinEraseCount
5378
- ldr r3, [sp, #20]
5379
- cmp r0, r6
5380
- strhi r7, [r4, #-3308]
5381
-.L836:
5382
- cmp fp, r8
5383
- bcs .L831
5384
- add r2, fp, #128
5385
- cmp r9, r2
5386
- ble .L831
5387
- add r2, fp, #256
5388
- cmp r2, r8
5389
- bcc .L837
5390
- ldr r2, [r4, #-3312]
5391
- add fp, fp, #768
5392
- cmp fp, r2
5393
- bcs .L831
5394
-.L837:
5395
- ldr r2, [r4, #-3544]
5396
- mov r1, r5
5397
- ldr r0, .L850+16
5398
- ldrh r2, [r2, r3]
5399
- str r2, [sp]
5400
- mov r2, r8
5401
- ldrh r3, [r10, r3]
5402
- stmib sp, {r3, r9}
5403
- ldr r3, [r4, #-3312]
5404
- bl printk
5405
- mov r0, r5
5406
- mov r3, #1
5407
- str r3, [r4, #-2708]
5408
-.L830:
5633
+ beq .L823
5634
+.L825:
5635
+ movw r6, #65535
5636
+.L824:
5637
+ mov r0, r6
54095638 add sp, sp, #28
54105639 @ sp needed
5411
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5412
-.L851:
5640
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5641
+.L817:
5642
+ ldrh r0, [r2, #2]!
5643
+ add r3, r3, #1
5644
+ ldr ip, [r4, #-3324]
5645
+ add r0, r0, ip
5646
+ str r0, [r4, #-3324]
5647
+ b .L816
5648
+.L815:
5649
+ ldr r3, [r4, #-3312]
5650
+ cmp r2, r3
5651
+ bls .L818
5652
+ ldr ip, .L842+8
5653
+ add r3, r3, #1
5654
+ str r3, [r4, #-3312]
5655
+ mov r3, #0
5656
+.L820:
5657
+ ldrh r2, [ip]
5658
+ cmp r3, r2
5659
+ bcs .L818
5660
+ ldr r0, [r4, #-3604]
5661
+ lsl r1, r3, #1
5662
+ add r3, r3, #1
5663
+ ldrh r2, [r0, r1]
5664
+ add r2, r2, #1
5665
+ strh r2, [r0, r1] @ movhi
5666
+ b .L820
5667
+.L823:
5668
+ ldr r3, .L842+12
5669
+ ldrh r0, [r3, #-4]
5670
+ add r0, r0, r0, lsl #1
5671
+ ubfx r0, r0, #2, #16
5672
+ bl GetFreeBlockMaxEraseCount
5673
+ add r1, r5, #64
5674
+ mov r10, r0
5675
+ cmp r0, r1
5676
+ movcs r1, #0
5677
+ movcc r1, #1
5678
+ cmp r5, #40
5679
+ movls r1, #0
5680
+ cmp r1, #0
5681
+ bne .L825
5682
+ ldr r3, [r4, #-3544]
5683
+ cmp r3, #0
5684
+ beq .L825
5685
+ ldr r0, .L842+4
5686
+ movw r2, #2332
5687
+ ldr ip, [r4, #-3548]
5688
+ movw r7, #65535
5689
+ ldr r9, [r4, #-3604]
5690
+ mov fp, #6
5691
+ ldrh r2, [r0, r2]
5692
+ ldr lr, .L842+16
5693
+ str r2, [sp, #20]
5694
+ mov r2, r7
5695
+.L826:
5696
+ ldrh r0, [r3]
5697
+ movw r6, #65535
5698
+ cmp r0, r6
5699
+ bne .L829
5700
+ mov r6, r2
5701
+.L828:
5702
+ movw r3, #65535
5703
+ cmp r6, r3
5704
+ beq .L825
5705
+ lsl fp, r6, #1
5706
+ ldrh r1, [r9, fp]
5707
+ cmp r5, r1
5708
+ bcs .L830
5709
+ bl GetFreeBlockMinEraseCount
5710
+ cmp r5, r0
5711
+ strcc r7, [r4, #-3308]
5712
+.L830:
5713
+ cmp r8, r1
5714
+ bls .L825
5715
+ add r3, r1, #128
5716
+ cmp r10, r3
5717
+ ble .L825
5718
+ add r3, r1, #256
5719
+ cmp r8, r3
5720
+ bhi .L831
5721
+ ldr r3, [r4, #-3312]
5722
+ add r1, r1, #768
5723
+ cmp r1, r3
5724
+ bcs .L825
5725
+.L831:
5726
+ str r10, [sp, #8]
5727
+ mov r2, r8
5728
+ ldrh r3, [r9, fp]
5729
+ mov r1, r6
5730
+ ldr r0, .L842+20
5731
+ str r3, [sp, #4]
5732
+ ldr r3, [r4, #-3540]
5733
+ ldrh r3, [r3, fp]
5734
+ str r3, [sp]
5735
+ ldr r3, [r4, #-3312]
5736
+ bl printk
5737
+ mov r3, #1
5738
+ str r3, [r4, #-2708]
5739
+ b .L824
5740
+.L829:
5741
+ add r1, r1, #1
5742
+ ldr r6, [sp, #20]
5743
+ uxth r1, r1
5744
+ cmp r1, r6
5745
+ bhi .L825
5746
+ ldrh r6, [r3, #4]
5747
+ cmp r6, #0
5748
+ beq .L827
5749
+ sub r3, r3, ip
5750
+ asr r3, r3, #1
5751
+ mul r3, lr, r3
5752
+ uxth r6, r3
5753
+ lsl r3, r6, #1
5754
+ ldrh r3, [r9, r3]
5755
+ cmp r5, r3
5756
+ bcs .L828
5757
+ cmp r7, r3
5758
+ movhi r7, r3
5759
+ movhi r2, r6
5760
+.L827:
5761
+ mla r3, fp, r0, ip
5762
+ b .L826
5763
+.L843:
54135764 .align 2
5414
-.L850:
5765
+.L842:
54155766 .word .LANCHOR2
54165767 .word .LANCHOR0
5417
- .word .LANCHOR0+2328
5768
+ .word .LANCHOR0+2332
5769
+ .word .LANCHOR2-3520
54185770 .word -1431655765
54195771 .word .LC78
54205772 .fnend
54215773 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock
54225774 .align 2
54235775 .global free_data_superblock
5776
+ .syntax unified
5777
+ .arm
5778
+ .fpu softvfp
54245779 .type free_data_superblock, %function
54255780 free_data_superblock:
54265781 .fnstart
....@@ -5428,467 +5783,494 @@
54285783 @ frame_needed = 0, uses_anonymous_args = 0
54295784 movw r2, #65535
54305785 cmp r0, r2
5431
- stmfd sp!, {r3, lr}
5432
- .save {r3, lr}
5433
- beq .L853
5434
- ldr r2, .L855
5435
- mov r3, r0, asl #1
5786
+ beq .L847
5787
+ ldr r2, .L850
5788
+ lsl r3, r0, #1
5789
+ push {r4, lr}
5790
+ .save {r4, lr}
54365791 mov r1, #0
5437
- ldr r2, [r2, #-3544]
5792
+ ldr r2, [r2, #-3540]
54385793 strh r1, [r2, r3] @ movhi
54395794 bl INSERT_FREE_LIST
5440
-.L853:
54415795 mov r0, #0
5442
- ldmfd sp!, {r3, pc}
5443
-.L856:
5796
+ pop {r4, pc}
5797
+.L847:
5798
+ mov r0, #0
5799
+ bx lr
5800
+.L851:
54445801 .align 2
5445
-.L855:
5802
+.L850:
54465803 .word .LANCHOR2
54475804 .fnend
54485805 .size free_data_superblock, .-free_data_superblock
54495806 .align 2
54505807 .global FtlGcBufInit
5808
+ .syntax unified
5809
+ .arm
5810
+ .fpu softvfp
54515811 .type FtlGcBufInit, %function
54525812 FtlGcBufInit:
54535813 .fnstart
54545814 @ args = 0, pretend = 0, frame = 0
54555815 @ frame_needed = 0, uses_anonymous_args = 0
5456
- ldr ip, .L865
5816
+ ldr ip, .L858
54575817 mov r3, #0
5458
- ldr r1, .L865+4
5459
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
5818
+ ldr r2, .L858+4
5819
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
54605820 .save {r4, r5, r6, r7, r8, r9, r10, lr}
5461
- add r7, ip, #78
5462
- mov r5, #12
5463
- mov r6, #1
5464
- mov r8, #36
5465
- str r3, [r1, #-2704]
5466
-.L858:
5467
- ldrh r2, [ip]
5468
- add r4, r3, #1
5469
- uxth r3, r3
5470
- cmp r3, r2
5471
- bcs .L863
5472
- mul r0, r5, r3
5473
- ldr lr, [r1, #-2700]
5474
- add r2, lr, r0
5475
- str r6, [r2, #8]
5476
- ldrh r2, [r7]
5477
- mul r2, r2, r3
5478
- add r9, r2, #3
5479
- cmp r2, #0
5480
- movlt r2, r9
5481
- ldr r9, [r1, #-2696]
5482
- bic r2, r2, #3
5483
- add r2, r9, r2
5484
- str r2, [lr, r0]
5485
- ldr r2, .L865+8
5486
- ldr r9, [r1, #-2700]
5487
- ldrh r2, [r2]
5488
- add lr, r9, r0
5489
- mul r2, r2, r3
5490
- add r10, r2, #3
5491
- cmp r2, #0
5492
- movlt r2, r10
5493
- ldr r10, [r1, #-2692]
5494
- bic r2, r2, #3
5495
- add r2, r10, r2
5496
- str r2, [lr, #4]
5497
- ldr r2, [r1, #-2688]
5498
- mla r3, r8, r3, r2
5499
- ldr r2, [r9, r0]
5500
- str r2, [r3, #8]
5501
- ldr r2, [lr, #4]
5502
- str r2, [r3, #12]
5503
- mov r3, r4
5504
- b .L858
5505
-.L863:
5506
- ldr r0, .L865+4
5821
+ mov r4, #12
5822
+ mov r5, #1
5823
+ add r6, ip, #76
5824
+ mov r7, #36
5825
+ str r3, [r2, #-2704]
5826
+.L853:
5827
+ ldrh r1, [ip]
5828
+ uxth r0, r3
5829
+ add lr, r3, #1
5830
+ cmp r0, r1
5831
+ bcc .L854
5832
+ ldr r4, .L858+8
55075833 mov ip, #12
5508
- ldr r4, .L865+12
55095834 mov lr, #0
5510
-.L860:
5511
- ldr r3, [r1, #-2684]
5512
- cmp r2, r3
5513
- bcs .L864
5514
- mul r5, ip, r2
5515
- ldr r7, [r0, #-2700]
5516
- add r3, r7, r5
5835
+.L855:
5836
+ ldr r3, [r2, #-2684]
5837
+ cmp r1, r3
5838
+ bcc .L856
5839
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
5840
+.L854:
5841
+ uxth r3, r3
5842
+ ldr r8, [r2, #-2700]
5843
+ mul r0, r4, r3
5844
+ add r1, r8, r0
5845
+ str r5, [r1, #8]
5846
+ ldrh r1, [r6]
5847
+ mul r1, r3, r1
5848
+ add r9, r1, #3
5849
+ cmp r1, #0
5850
+ movlt r1, r9
5851
+ ldr r9, [r2, #-2696]
5852
+ bic r1, r1, #3
5853
+ add r1, r9, r1
5854
+ str r1, [r8, r0]
5855
+ ldr r1, .L858+12
5856
+ ldr r9, [r2, #-2700]
5857
+ ldrh r1, [r1]
5858
+ add r8, r9, r0
5859
+ mul r1, r3, r1
5860
+ add r10, r1, #3
5861
+ cmp r1, #0
5862
+ movlt r1, r10
5863
+ ldr r10, [r2, #-2692]
5864
+ bic r1, r1, #3
5865
+ add r1, r10, r1
5866
+ str r1, [r8, #4]
5867
+ ldr r1, [r2, #-2688]
5868
+ mla r3, r7, r3, r1
5869
+ ldr r1, [r9, r0]
5870
+ str r1, [r3, #8]
5871
+ ldr r1, [r8, #4]
5872
+ str r1, [r3, #12]
5873
+ mov r3, lr
5874
+ b .L853
5875
+.L856:
5876
+ mul r5, ip, r1
5877
+ ldr r6, [r2, #-2700]
5878
+ add r3, r6, r5
55175879 str lr, [r3, #8]
55185880 ldrh r3, [r4]
5519
- mul r3, r3, r2
5520
- add r6, r3, #3
5881
+ mul r3, r1, r3
5882
+ add r0, r3, #3
55215883 cmp r3, #0
5522
- movlt r3, r6
5523
- ldr r6, [r0, #-2696]
5884
+ movlt r3, r0
5885
+ ldr r0, [r2, #-2696]
55245886 bic r3, r3, #3
5525
- add r3, r6, r3
5526
- str r3, [r7, r5]
5527
- ldr r3, .L865+8
5528
- ldr r6, [r0, #-2700]
5887
+ add r3, r0, r3
5888
+ str r3, [r6, r5]
5889
+ ldr r3, .L858+12
5890
+ ldr r0, [r2, #-2700]
55295891 ldrh r3, [r3]
5530
- add r5, r6, r5
5531
- mul r3, r3, r2
5532
- add r2, r2, #1
5533
- uxth r2, r2
5534
- add r6, r3, #3
5892
+ add r0, r0, r5
5893
+ mul r3, r1, r3
5894
+ add r1, r1, #1
5895
+ uxth r1, r1
5896
+ add r5, r3, #3
55355897 cmp r3, #0
5536
- movlt r3, r6
5537
- ldr r6, [r0, #-2692]
5898
+ movlt r3, r5
5899
+ ldr r5, [r2, #-2692]
55385900 bic r3, r3, #3
5539
- add r3, r6, r3
5540
- str r3, [r5, #4]
5541
- b .L860
5542
-.L864:
5543
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
5544
-.L866:
5901
+ add r3, r5, r3
5902
+ str r3, [r0, #4]
5903
+ b .L855
5904
+.L859:
55455905 .align 2
5546
-.L865:
5547
- .word .LANCHOR0+2320
5906
+.L858:
5907
+ .word .LANCHOR0+2324
55485908 .word .LANCHOR2
55495909 .word .LANCHOR0+2400
5550
- .word .LANCHOR0+2398
5910
+ .word .LANCHOR0+2402
55515911 .fnend
55525912 .size FtlGcBufInit, .-FtlGcBufInit
55535913 .align 2
55545914 .global FtlGcBufFree
5915
+ .syntax unified
5916
+ .arm
5917
+ .fpu softvfp
55555918 .type FtlGcBufFree, %function
55565919 FtlGcBufFree:
55575920 .fnstart
55585921 @ args = 0, pretend = 0, frame = 0
55595922 @ frame_needed = 0, uses_anonymous_args = 0
5560
- ldr r3, .L875
5561
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
5923
+ ldr r3, .L868
5924
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
55625925 .save {r4, r5, r6, r7, r8, r9, r10, lr}
55635926 mov lr, #0
5564
- ldr r6, [r3, #-2684]
55655927 mov r5, #36
5928
+ mov r7, #12
5929
+ mov r8, lr
5930
+ ldr r6, [r3, #-2684]
55665931 ldr r4, [r3, #-2700]
5567
- mov r7, lr
5568
- mov r8, #12
5569
-.L868:
5570
- uxth ip, lr
5571
- cmp ip, r1
5572
- ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
5573
- mla ip, r5, ip, r0
5932
+.L861:
5933
+ uxth r3, lr
5934
+ cmp r1, r3
5935
+ popls {r4, r5, r6, r7, r8, r9, r10, pc}
5936
+ mla ip, r5, r3, r0
55745937 mov r2, #0
5575
-.L869:
5938
+.L862:
55765939 uxth r3, r2
5577
- cmp r3, r6
5578
- bcs .L870
5579
- mul r3, r8, r3
5940
+ cmp r6, r3
5941
+ bls .L863
5942
+ mul r3, r7, r3
55805943 add r2, r2, #1
5581
- add r9, r4, r3
55825944 ldr r10, [r4, r3]
5945
+ add r9, r4, r3
55835946 ldr r3, [ip, #8]
55845947 cmp r10, r3
5585
- bne .L869
5586
- str r7, [r9, #8]
5587
-.L870:
5948
+ bne .L862
5949
+ str r8, [r9, #8]
5950
+.L863:
55885951 add lr, lr, #1
5589
- b .L868
5590
-.L876:
5952
+ b .L861
5953
+.L869:
55915954 .align 2
5592
-.L875:
5955
+.L868:
55935956 .word .LANCHOR2
55945957 .fnend
55955958 .size FtlGcBufFree, .-FtlGcBufFree
55965959 .align 2
55975960 .global FtlGcBufAlloc
5961
+ .syntax unified
5962
+ .arm
5963
+ .fpu softvfp
55985964 .type FtlGcBufAlloc, %function
55995965 FtlGcBufAlloc:
56005966 .fnstart
56015967 @ args = 0, pretend = 0, frame = 0
56025968 @ frame_needed = 0, uses_anonymous_args = 0
5603
- ldr r3, .L886
5969
+ ldr r3, .L878
56045970 mov ip, #0
5605
- stmfd sp!, {r4, r5, r6, r7, r8, r9, lr}
5971
+ push {r4, r5, r6, r7, r8, r9, lr}
56065972 .save {r4, r5, r6, r7, r8, r9, lr}
56075973 mov r6, #12
5608
- ldr r4, [r3, #-2684]
56095974 mov r7, #1
5610
- ldr r5, [r3, #-2700]
56115975 mov r8, #36
5612
-.L878:
5976
+ ldr r4, [r3, #-2684]
5977
+ ldr r5, [r3, #-2700]
5978
+.L871:
56135979 uxth r2, ip
5614
- cmp r2, r1
5615
- bcs .L885
5980
+ cmp r1, r2
5981
+ bhi .L875
5982
+ pop {r4, r5, r6, r7, r8, r9, pc}
5983
+.L875:
56165984 mov lr, #0
5617
-.L879:
5985
+.L872:
56185986 uxth r3, lr
5619
- cmp r3, r4
5620
- bcs .L880
5987
+ cmp r4, r3
5988
+ bls .L873
56215989 mla r3, r6, r3, r5
56225990 add lr, lr, #1
56235991 ldr r9, [r3, #8]
56245992 cmp r9, #0
5625
- bne .L879
5993
+ bne .L872
56265994 mla r2, r8, r2, r0
56275995 ldr lr, [r3]
56285996 str r7, [r3, #8]
56295997 str lr, [r2, #8]
56305998 ldr r3, [r3, #4]
56315999 str r3, [r2, #12]
5632
-.L880:
6000
+.L873:
56336001 add ip, ip, #1
5634
- b .L878
5635
-.L885:
5636
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc}
5637
-.L887:
6002
+ b .L871
6003
+.L879:
56386004 .align 2
5639
-.L886:
6005
+.L878:
56406006 .word .LANCHOR2
56416007 .fnend
56426008 .size FtlGcBufAlloc, .-FtlGcBufAlloc
56436009 .align 2
56446010 .global IsBlkInGcList
6011
+ .syntax unified
6012
+ .arm
6013
+ .fpu softvfp
56456014 .type IsBlkInGcList, %function
56466015 IsBlkInGcList:
56476016 .fnstart
56486017 @ args = 0, pretend = 0, frame = 0
56496018 @ frame_needed = 0, uses_anonymous_args = 0
56506019 @ link register save eliminated.
5651
- ldr r2, .L894
6020
+ ldr r2, .L885
6021
+ ldr r3, [r2, #-2680]
56526022 sub r2, r2, #2672
5653
- ldr r3, [r2, #-8]
56546023 ldrh r2, [r2, #-4]
5655
- add r2, r3, r2, asl #1
5656
-.L889:
6024
+ add r2, r3, r2, lsl #1
6025
+.L881:
56576026 cmp r3, r2
5658
- beq .L893
5659
- ldrh r1, [r3], #2
5660
- cmp r1, r0
5661
- bne .L889
5662
- mov r0, #1
5663
- bx lr
5664
-.L893:
6027
+ bne .L883
56656028 mov r0, #0
56666029 bx lr
5667
-.L895:
6030
+.L883:
6031
+ ldrh r1, [r3], #2
6032
+ cmp r1, r0
6033
+ bne .L881
6034
+ mov r0, #1
6035
+ bx lr
6036
+.L886:
56686037 .align 2
5669
-.L894:
6038
+.L885:
56706039 .word .LANCHOR2
56716040 .fnend
56726041 .size IsBlkInGcList, .-IsBlkInGcList
56736042 .align 2
56746043 .global FtlGcUpdatePage
6044
+ .syntax unified
6045
+ .arm
6046
+ .fpu softvfp
56756047 .type FtlGcUpdatePage, %function
56766048 FtlGcUpdatePage:
56776049 .fnstart
56786050 @ args = 0, pretend = 0, frame = 0
56796051 @ frame_needed = 0, uses_anonymous_args = 0
5680
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
5681
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
6052
+ push {r4, r5, r6, r7, r8, lr}
6053
+ .save {r4, r5, r6, r7, r8, lr}
56826054 mov r4, r0
56836055 ubfx r0, r0, #10, #16
56846056 mov r5, r1
56856057 mov r6, r2
56866058 bl P2V_block_in_plane
5687
- ldr r2, .L904
5688
- mov lr, #0
5689
- sub r3, r2, #2672
5690
- ldr r8, [r2, #-2680]
5691
- ldrh r1, [r3, #-4]
5692
- sub r7, r8, #2
5693
-.L897:
5694
- uxth ip, lr
5695
- cmp ip, r1
5696
- bcs .L901
5697
- ldrh r9, [r7, #2]!
5698
- add lr, lr, #1
5699
- cmp r9, r0
5700
- bne .L897
5701
-.L901:
5702
- cmp ip, r1
5703
- moveq ip, ip, asl #1
5704
- streqh r0, [r8, ip] @ movhi
5705
- ldreqh ip, [r3, #-4]
5706
- addeq ip, ip, #1
5707
- streqh ip, [r3, #-4] @ movhi
5708
-.L899:
5709
- ldr r3, .L904+4
5710
- mov ip, #12
6059
+ ldr r2, .L892
6060
+ mov r3, #0
6061
+ sub ip, r2, #2672
6062
+ ldr lr, [r2, #-2680]
6063
+ ldrh r7, [ip, #-4]
6064
+ sub r1, lr, #2
6065
+.L888:
6066
+ uxth r8, r3
6067
+ cmp r8, r7
6068
+ bcc .L890
6069
+ moveq r3, r8
6070
+ lsleq r3, r3, #1
6071
+ strheq r0, [lr, r3] @ movhi
6072
+ ldrheq r3, [ip, #-4]
6073
+ addeq r3, r3, #1
6074
+ strheq r3, [ip, #-4] @ movhi
6075
+ b .L889
6076
+.L890:
6077
+ ldrh r8, [r1, #2]!
6078
+ add r3, r3, #1
6079
+ cmp r8, r0
6080
+ bne .L888
6081
+.L889:
6082
+ ldr r0, .L892+4
6083
+ mov r3, #12
57116084 ldr r2, [r2, #-2672]
5712
- ldrh r1, [r3, #-12]
5713
- mul ip, ip, r1
5714
- add r1, r2, ip
6085
+ ldrh r1, [r0, #-12]
6086
+ mul r3, r3, r1
6087
+ add r1, r2, r3
57156088 stmib r1, {r5, r6}
5716
- str r4, [r2, ip]
5717
- ldrh r2, [r3, #-12]
5718
- add r2, r2, #1
5719
- strh r2, [r3, #-12] @ movhi
5720
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
5721
-.L905:
6089
+ str r4, [r2, r3]
6090
+ ldrh r3, [r0, #-12]
6091
+ add r3, r3, #1
6092
+ strh r3, [r0, #-12] @ movhi
6093
+ pop {r4, r5, r6, r7, r8, pc}
6094
+.L893:
57226095 .align 2
5723
-.L904:
6096
+.L892:
57246097 .word .LANCHOR2
57256098 .word .LANCHOR2-2656
57266099 .fnend
57276100 .size FtlGcUpdatePage, .-FtlGcUpdatePage
57286101 .align 2
57296102 .global FtlGcRefreshOpenBlock
6103
+ .syntax unified
6104
+ .arm
6105
+ .fpu softvfp
57306106 .type FtlGcRefreshOpenBlock, %function
57316107 FtlGcRefreshOpenBlock:
57326108 .fnstart
57336109 @ args = 0, pretend = 0, frame = 0
57346110 @ frame_needed = 0, uses_anonymous_args = 0
5735
- stmfd sp!, {r3, r4, r5, lr}
5736
- .save {r3, r4, r5, lr}
5737
- mov r5, r0
5738
- ldr r4, .L914
6111
+ push {r4, r5, r6, lr}
6112
+ .save {r4, r5, r6, lr}
6113
+ ldr r4, .L902
57396114 ldrh r3, [r4, #-10]
57406115 cmp r3, r0
5741
- beq .L908
6116
+ beq .L896
57426117 ldrh r3, [r4, #-8]
57436118 cmp r3, r0
5744
- beq .L908
6119
+ beq .L896
57456120 ldrh r3, [r4, #-6]
57466121 cmp r3, r0
5747
- beq .L908
6122
+ beq .L896
57486123 ldrh r3, [r4, #-4]
57496124 cmp r3, r0
5750
- beq .L908
5751
- ldr r0, .L914+4
5752
- mov r1, r5
6125
+ beq .L896
6126
+ mov r5, r0
6127
+ mov r1, r0
6128
+ ldr r0, .L902+4
57536129 bl printk
57546130 ldrh r2, [r4, #-10]
57556131 movw r3, #65535
57566132 cmp r2, r3
5757
- streqh r5, [r4, #-10] @ movhi
5758
- beq .L908
6133
+ strheq r5, [r4, #-10] @ movhi
6134
+ beq .L896
57596135 ldrh r2, [r4, #-8]
57606136 cmp r2, r3
5761
- streqh r5, [r4, #-8] @ movhi
5762
- beq .L908
6137
+ strheq r5, [r4, #-8] @ movhi
6138
+ beq .L896
57636139 ldrh r2, [r4, #-6]
57646140 cmp r2, r3
5765
- streqh r5, [r4, #-6] @ movhi
5766
- beq .L908
6141
+ strheq r5, [r4, #-6] @ movhi
6142
+ beq .L896
57676143 ldrh r2, [r4, #-4]
57686144 cmp r2, r3
5769
- streqh r5, [r4, #-4] @ movhi
5770
-.L908:
6145
+ strheq r5, [r4, #-4] @ movhi
6146
+.L896:
57716147 mov r0, #0
5772
- ldmfd sp!, {r3, r4, r5, pc}
5773
-.L915:
6148
+ pop {r4, r5, r6, pc}
6149
+.L903:
57746150 .align 2
5775
-.L914:
6151
+.L902:
57766152 .word .LANCHOR2-2656
57776153 .word .LC79
57786154 .fnend
57796155 .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock
57806156 .align 2
57816157 .global FtlGcRefreshBlock
6158
+ .syntax unified
6159
+ .arm
6160
+ .fpu softvfp
57826161 .type FtlGcRefreshBlock, %function
57836162 FtlGcRefreshBlock:
57846163 .fnstart
57856164 @ args = 0, pretend = 0, frame = 0
57866165 @ frame_needed = 0, uses_anonymous_args = 0
5787
- stmfd sp!, {r3, r4, r5, lr}
5788
- .save {r3, r4, r5, lr}
5789
- mov r5, r0
5790
- ldr r4, .L927
6166
+ push {r4, r5, r6, lr}
6167
+ .save {r4, r5, r6, lr}
6168
+ ldr r4, .L915
57916169 ldrh r3, [r4, #-10]
57926170 cmp r3, r0
5793
- beq .L924
6171
+ beq .L912
57946172 ldrh r3, [r4, #-8]
57956173 cmp r3, r0
5796
- beq .L924
6174
+ beq .L912
57976175 ldrh r3, [r4, #-6]
57986176 cmp r3, r0
5799
- beq .L924
6177
+ beq .L912
58006178 ldrh r3, [r4, #-4]
58016179 cmp r3, r0
5802
- beq .L924
5803
- ldr r0, .L927+4
5804
- mov r1, r5
6180
+ beq .L912
6181
+ mov r5, r0
6182
+ mov r1, r0
6183
+ ldr r0, .L915+4
58056184 bl printk
58066185 ldrh r2, [r4, #-10]
58076186 movw r3, #65535
58086187 cmp r2, r3
5809
- streqh r5, [r4, #-10] @ movhi
5810
- beq .L924
6188
+ strheq r5, [r4, #-10] @ movhi
6189
+ beq .L912
58116190 ldrh r2, [r4, #-8]
58126191 cmp r2, r3
5813
- streqh r5, [r4, #-8] @ movhi
5814
- beq .L924
6192
+ strheq r5, [r4, #-8] @ movhi
6193
+ beq .L912
58156194 ldrh r2, [r4, #-6]
58166195 cmp r2, r3
5817
- streqh r5, [r4, #-6] @ movhi
5818
- beq .L924
6196
+ strheq r5, [r4, #-6] @ movhi
6197
+ beq .L912
58196198 ldrh r2, [r4, #-4]
58206199 cmp r2, r3
5821
- bne .L925
6200
+ bne .L913
58226201 strh r5, [r4, #-4] @ movhi
5823
-.L924:
6202
+.L912:
58246203 mov r0, #0
5825
- ldmfd sp!, {r3, r4, r5, pc}
5826
-.L925:
6204
+ pop {r4, r5, r6, pc}
6205
+.L913:
58276206 mvn r0, #0
5828
- ldmfd sp!, {r3, r4, r5, pc}
5829
-.L928:
6207
+ pop {r4, r5, r6, pc}
6208
+.L916:
58306209 .align 2
5831
-.L927:
6210
+.L915:
58326211 .word .LANCHOR2-2656
58336212 .word .LC79
58346213 .fnend
58356214 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock
58366215 .align 2
58376216 .global FtlGcMarkBadPhyBlk
6217
+ .syntax unified
6218
+ .arm
6219
+ .fpu softvfp
58386220 .type FtlGcMarkBadPhyBlk, %function
58396221 FtlGcMarkBadPhyBlk:
58406222 .fnstart
58416223 @ args = 0, pretend = 0, frame = 0
58426224 @ frame_needed = 0, uses_anonymous_args = 0
5843
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
5844
- .save {r3, r4, r5, r6, r7, lr}
6225
+ push {r4, r5, r6, r7, r8, lr}
6226
+ .save {r4, r5, r6, r7, r8, lr}
58456227 mov r5, r0
6228
+ ldr r6, .L926
58466229 bl P2V_block_in_plane
5847
- ldr r6, .L939
5848
- mov r2, r5
58496230 sub r7, r6, #2656
5850
- ldrh r1, [r7, #-2]
58516231 mov r4, r0
5852
- ldr r0, .L939+4
6232
+ mov r2, r5
6233
+ ldrh r1, [r7, #-2]
6234
+ ldr r0, .L926+4
58536235 bl printk
58546236 mov r0, r4
58556237 bl FtlGcRefreshBlock
5856
- ldr r3, .L939+8
5857
- ldr r3, [r3, #2244]
6238
+ ldr r3, .L926+8
6239
+ ldr r3, [r3, #2248]
58586240 cmp r3, #0
58596241 mov r3, r7
5860
- beq .L930
5861
- ldr r1, [r6, #-3608]
5862
- mov r4, r4, asl #1
6242
+ beq .L918
6243
+ ldr r1, [r6, #-3604]
6244
+ lsl r4, r4, #1
58636245 ldrh r2, [r1, r4]
58646246 cmp r2, #39
58656247 subhi r2, r2, #40
5866
- strhih r2, [r1, r4] @ movhi
5867
-.L930:
6248
+ strhhi r2, [r1, r4] @ movhi
6249
+.L918:
58686250 ldrh r2, [r3, #-2]
58696251 mov r1, #0
5870
-.L931:
6252
+.L919:
58716253 uxth r0, r1
5872
- cmp r0, r2
5873
- bcs .L938
5874
- add r1, r1, #1
5875
- add r0, r3, r1, asl #1
5876
- ldrh r0, [r0, #-2]
5877
- cmp r0, r5
5878
- bne .L931
5879
- b .L932
5880
-.L938:
6254
+ cmp r2, r0
6255
+ bhi .L921
58816256 cmp r2, #15
58826257 addls r1, r2, #1
5883
- movls r2, r2, asl #1
5884
- strlsh r1, [r3, #-2] @ movhi
5885
- strlsh r5, [r3, r2] @ movhi
5886
-.L932:
6258
+ lslls r2, r2, #1
6259
+ strhls r1, [r3, #-2] @ movhi
6260
+ strhls r5, [r3, r2] @ movhi
6261
+ b .L920
6262
+.L921:
6263
+ add r1, r1, #1
6264
+ add r0, r3, r1, lsl #1
6265
+ ldrh r0, [r0, #-2]
6266
+ cmp r0, r5
6267
+ bne .L919
6268
+.L920:
58876269 mov r0, #0
5888
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
5889
-.L940:
6270
+ pop {r4, r5, r6, r7, r8, pc}
6271
+.L927:
58906272 .align 2
5891
-.L939:
6273
+.L926:
58926274 .word .LANCHOR2
58936275 .word .LC80
58946276 .word .LANCHOR0
....@@ -5896,28 +6278,31 @@
58966278 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
58976279 .align 2
58986280 .global FtlGcReFreshBadBlk
6281
+ .syntax unified
6282
+ .arm
6283
+ .fpu softvfp
58996284 .type FtlGcReFreshBadBlk, %function
59006285 FtlGcReFreshBadBlk:
59016286 .fnstart
59026287 @ args = 0, pretend = 0, frame = 0
59036288 @ frame_needed = 0, uses_anonymous_args = 0
5904
- ldr r3, .L949
6289
+ ldr r3, .L938
59056290 ldrh r2, [r3, #-2]
59066291 cmp r2, #0
5907
- beq .L948
6292
+ beq .L935
59086293 ldrh r0, [r3, #-10]
59096294 movw r1, #65535
59106295 cmp r0, r1
5911
- bne .L948
5912
- stmfd sp!, {r4, lr}
6296
+ bne .L935
6297
+ push {r4, lr}
59136298 .save {r4, lr}
59146299 add r4, r3, #48
59156300 ldrh r1, [r4, #-14]
59166301 cmp r1, r2
59176302 movcs r2, #0
5918
- strcsh r2, [r4, #-14] @ movhi
6303
+ strhcs r2, [r4, #-14] @ movhi
59196304 ldrh r2, [r4, #-14]
5920
- mov r2, r2, asl #1
6305
+ lsl r2, r2, #1
59216306 ldrh r0, [r3, r2]
59226307 bl P2V_block_in_plane
59236308 bl FtlGcRefreshBlock
....@@ -5925,18 +6310,21 @@
59256310 mov r0, #0
59266311 add r3, r3, #1
59276312 strh r3, [r4, #-14] @ movhi
5928
- ldmfd sp!, {r4, pc}
5929
-.L948:
6313
+ pop {r4, pc}
6314
+.L935:
59306315 mov r0, #0
59316316 bx lr
5932
-.L950:
6317
+.L939:
59336318 .align 2
5934
-.L949:
6319
+.L938:
59356320 .word .LANCHOR2-2656
59366321 .fnend
59376322 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
59386323 .align 2
59396324 .global ftl_memset
6325
+ .syntax unified
6326
+ .arm
6327
+ .fpu softvfp
59406328 .type ftl_memset, %function
59416329 ftl_memset:
59426330 .fnstart
....@@ -5948,459 +6336,470 @@
59486336 .size ftl_memset, .-ftl_memset
59496337 .align 2
59506338 .global BuildFlashLsbPageTable
6339
+ .syntax unified
6340
+ .arm
6341
+ .fpu softvfp
59516342 .type BuildFlashLsbPageTable, %function
59526343 BuildFlashLsbPageTable:
59536344 .fnstart
59546345 @ args = 0, pretend = 0, frame = 0
59556346 @ frame_needed = 0, uses_anonymous_args = 0
59566347 cmp r0, #0
5957
- stmfd sp!, {r4, lr}
5958
- .save {r4, lr}
6348
+ push {r4, r5, r6, lr}
6349
+ .save {r4, r5, r6, lr}
59596350 mov r4, r1
5960
- bne .L953
5961
- ldr r3, .L996
5962
-.L954:
5963
- mov r2, r0, asl #1
6351
+ bne .L942
6352
+ ldr r3, .L998
6353
+.L943:
6354
+ lsl r2, r0, #1
59646355 strh r0, [r2, r3] @ movhi
59656356 add r0, r0, #1
59666357 cmp r0, #512
5967
- bne .L954
5968
-.L958:
6358
+ bne .L943
6359
+.L949:
6360
+ ldr r5, .L998+4
59696361 mov r1, #255
5970
- ldr r0, .L996+4
59716362 mov r2, #2048
59726363 uxth r4, r4
6364
+ sub r0, r5, #12
6365
+ sub r5, r5, #12
59736366 bl ftl_memset
6367
+ ldr r1, .L998
59746368 mov r3, #0
5975
- ldr r1, .L996
5976
- ldr r0, .L996+4
5977
- b .L955
5978
-.L953:
6369
+.L944:
6370
+ uxth r2, r3
6371
+ cmp r4, r2
6372
+ bhi .L977
6373
+ pop {r4, r5, r6, pc}
6374
+.L942:
59796375 cmp r0, #1
5980
- bne .L956
5981
- ldr ip, .L996
6376
+ bne .L945
6377
+ ldr r1, .L998
59826378 mov r3, #0
5983
-.L957:
6379
+.L948:
6380
+ cmp r3, #3
59846381 uxth r2, r3
5985
- mov lr, r3, asl #1
5986
- cmp r2, #3
5987
- movls r0, #0
5988
- movhi r0, #1
5989
- bics r1, r0, r3
6382
+ bls .L946
6383
+ tst r2, #1
6384
+ movne r0, #3
6385
+ moveq r0, #2
6386
+ rsb r2, r0, r2, lsl #1
6387
+ uxth r2, r2
6388
+.L946:
6389
+ lsl r0, r3, #1
59906390 add r3, r3, #1
5991
- movne r1, #2
5992
- moveq r1, #3
5993
- cmp r0, #0
5994
- rsb r1, r1, r2, asl #1
5995
- movne r2, r1
5996
- cmp r3, #512
5997
- strh r2, [lr, ip] @ movhi
5998
- bne .L957
5999
- b .L958
6000
-.L956:
6001
- cmp r0, #2
6002
- bne .L959
6003
- ldr r1, .L996
6004
- mov r3, #0
6005
-.L960:
6006
- uxth r2, r3
6007
- mov r0, r3, asl #1
6008
- cmp r2, #1
6009
- add r3, r3, #1
6010
- mov ip, r2, asl #1
6011
- subhi r2, ip, #1
60126391 cmp r3, #512
60136392 strh r2, [r0, r1] @ movhi
6014
- bne .L960
6015
- b .L958
6016
-.L959:
6393
+ bne .L948
6394
+ b .L949
6395
+.L945:
6396
+ cmp r0, #2
6397
+ bne .L950
6398
+ ldr r1, .L998
6399
+ mov r2, #0
6400
+.L952:
6401
+ uxth r3, r2
6402
+ cmp r2, #1
6403
+ lsl r0, r2, #1
6404
+ add r2, r2, #1
6405
+ lslhi r3, r3, #1
6406
+ subhi r3, r3, #1
6407
+ uxthhi r3, r3
6408
+ cmp r2, #512
6409
+ strh r3, [r0, r1] @ movhi
6410
+ bne .L952
6411
+ b .L949
6412
+.L950:
60176413 cmp r0, #3
6018
- bne .L961
6019
- ldr ip, .L996
6414
+ bne .L953
6415
+ ldr r1, .L998
60206416 mov r3, #0
6021
-.L962:
6417
+.L956:
6418
+ cmp r3, #5
60226419 uxth r2, r3
6023
- mov lr, r3, asl #1
6024
- cmp r2, #5
6025
- movls r0, #0
6026
- movhi r0, #1
6027
- bics r1, r0, r3
6420
+ bls .L954
6421
+ tst r2, #1
6422
+ movne r0, #5
6423
+ moveq r0, #4
6424
+ rsb r2, r0, r2, lsl #1
6425
+ uxth r2, r2
6426
+.L954:
6427
+ lsl r0, r3, #1
60286428 add r3, r3, #1
6029
- movne r1, #4
6030
- moveq r1, #5
6031
- cmp r0, #0
6032
- rsb r1, r1, r2, asl #1
6033
- movne r2, r1
60346429 cmp r3, #512
6035
- strh r2, [lr, ip] @ movhi
6036
- bne .L962
6037
- b .L958
6038
-.L961:
6430
+ strh r2, [r0, r1] @ movhi
6431
+ bne .L956
6432
+ b .L949
6433
+.L953:
60396434 cmp r0, #4
60406435 mov r3, #0
6041
- bne .L963
6042
- ldr r2, .L996+8
6043
- strh r3, [r2, #148] @ movhi
6436
+ bne .L957
6437
+ ldr r2, .L998+8
6438
+ strh r3, [r2, #156] @ movhi
60446439 mov r3, #1
6045
- strh r0, [r2, #156] @ movhi
6046
- strh r3, [r2, #150] @ movhi
6047
- mov r3, #2
6048
- strh r3, [r2, #152] @ movhi
6049
- mov r3, #3
6050
- strh r3, [r2, #154] @ movhi
6051
- mov r3, #5
60526440 strh r3, [r2, #158] @ movhi
6053
- mov r3, #7
6441
+ mov r3, #2
60546442 strh r3, [r2, #160] @ movhi
6443
+ mov r3, #3
6444
+ strh r3, [r2, #162] @ movhi
6445
+ mov r3, #5
6446
+ strh r3, [r2, #166] @ movhi
6447
+ mov r3, #7
6448
+ strh r3, [r2, #168] @ movhi
60556449 mov r3, #8
6056
- strh r3, [r2, #162]! @ movhi
6057
-.L964:
6450
+ strh r0, [r2, #164] @ movhi
6451
+ strh r3, [r2, #170]! @ movhi
6452
+.L959:
60586453 tst r3, #1
60596454 movne r1, #7
60606455 moveq r1, #6
6061
- rsb r1, r1, r3, asl #1
6456
+ rsb r1, r1, r3, lsl #1
60626457 add r3, r3, #1
6063
- strh r1, [r2, #2]! @ movhi
60646458 uxth r3, r3
6459
+ strh r1, [r2, #2]! @ movhi
60656460 cmp r3, #512
6066
- bne .L964
6067
- b .L958
6068
-.L963:
6461
+ bne .L959
6462
+ b .L949
6463
+.L957:
60696464 cmp r0, #5
6070
- bne .L965
6071
- ldr r2, .L996
6072
-.L966:
6073
- mov r1, r3, asl #1
6074
- strh r3, [r1, r2] @ movhi
6465
+ bne .L960
6466
+ ldr r2, .L998+8
6467
+ add r1, r2, #156
6468
+.L961:
6469
+ lsl r0, r3, #1
6470
+ strh r3, [r0, r1] @ movhi
60756471 add r3, r3, #1
60766472 cmp r3, #16
6077
- bne .L966
6078
- ldr r2, .L996+12
6079
-.L967:
6473
+ bne .L961
6474
+ add r2, r2, #186
6475
+.L962:
60806476 strh r3, [r2, #2]! @ movhi
60816477 add r3, r3, #2
60826478 uxth r3, r3
60836479 cmp r3, #1008
6084
- bne .L967
6085
- b .L958
6086
-.L965:
6480
+ bne .L962
6481
+ b .L949
6482
+.L960:
60876483 cmp r0, #6
6088
- bne .L968
6089
- ldr r1, .L996+16
6090
-.L969:
6091
- cmp r3, #5
6092
- add r2, r3, r3, asl #1
6093
- movls r0, #0
6094
- movhi r0, #1
6095
- bics ip, r0, r3
6096
- movne ip, #10
6097
- moveq ip, #12
6098
- cmp r0, #0
6099
- subne r2, r2, ip
6100
- moveq r2, r3
6101
- add r3, r3, #1
6102
- strh r2, [r1, #2]! @ movhi
6484
+ bne .L963
6485
+ ldr r0, .L998
6486
+ mov r1, r3
6487
+.L966:
6488
+ cmp r1, #5
6489
+ uxth r2, r1
6490
+ bls .L964
6491
+ tst r2, #1
6492
+ movne r2, #12
6493
+ moveq r2, #10
6494
+ sub r2, r3, r2
6495
+ uxth r2, r2
6496
+.L964:
6497
+ lsl ip, r1, #1
6498
+ add r1, r1, #1
6499
+ cmp r1, #512
6500
+ add r3, r3, #3
6501
+ strh r2, [ip, r0] @ movhi
61036502 uxth r3, r3
6104
- cmp r3, #512
6105
- bne .L969
6106
- b .L958
6107
-.L968:
6503
+ bne .L966
6504
+ b .L949
6505
+.L963:
61086506 cmp r0, #9
6109
- bne .L970
6110
- ldr r2, .L996+8
6507
+ bne .L967
6508
+ ldr r2, .L998+8
61116509 movw r1, #1021
6112
- strh r3, [r2, #148] @ movhi
6510
+ strh r3, [r2, #156] @ movhi
61136511 mov r3, #1
6114
- strh r3, [r2, #150] @ movhi
6115
- mov r3, #2
6116
- strh r3, [r2, #152]! @ movhi
6117
- mov r3, #3
6512
+ strh r3, [r2, #158] @ movhi
6513
+ mov r3, r2
6514
+ mov r2, #2
6515
+ strh r2, [r3, #160]! @ movhi
6516
+ mov r2, #3
6517
+.L968:
6518
+ strh r2, [r3, #2]! @ movhi
6519
+ add r2, r2, #2
6520
+ uxth r2, r2
6521
+ cmp r2, r1
6522
+ bne .L968
6523
+ b .L949
6524
+.L967:
6525
+ cmp r0, #10
6526
+ bne .L969
6527
+ ldr r2, .L998+8
6528
+ add r1, r2, #156
6529
+.L970:
6530
+ lsl r0, r3, #1
6531
+ strh r3, [r0, r1] @ movhi
6532
+ add r3, r3, #1
6533
+ cmp r3, #63
6534
+ bne .L970
6535
+ add r2, r2, #280
6536
+ movw r1, #961
61186537 .L971:
61196538 strh r3, [r2, #2]! @ movhi
61206539 add r3, r3, #2
61216540 uxth r3, r3
61226541 cmp r3, r1
61236542 bne .L971
6124
- b .L958
6125
-.L970:
6126
- cmp r0, #10
6127
- bne .L972
6128
- ldr r2, .L996
6129
-.L973:
6130
- mov r1, r3, asl #1
6131
- strh r3, [r1, r2] @ movhi
6132
- add r3, r3, #1
6133
- cmp r3, #63
6134
- bne .L973
6135
- ldr r2, .L996+20
6136
- movw r1, #961
6137
-.L974:
6138
- strh r3, [r2, #2]! @ movhi
6139
- add r3, r3, #2
6140
- uxth r3, r3
6141
- cmp r3, r1
6142
- bne .L974
6143
- b .L958
6144
-.L972:
6543
+ b .L949
6544
+.L969:
61456545 cmp r0, #11
6146
- bne .L975
6147
- ldr r2, .L996
6546
+ bne .L972
6547
+ ldr r2, .L998+8
61486548 mov r3, #0
6149
-.L976:
6150
- mov r1, r3, asl #1
6151
- strh r3, [r1, r2] @ movhi
6549
+ add r1, r2, #156
6550
+.L973:
6551
+ lsl r0, r3, #1
6552
+ strh r3, [r0, r1] @ movhi
61526553 add r3, r3, #1
61536554 cmp r3, #8
6154
- bne .L976
6155
- ldr r1, .L996+24
6156
-.L977:
6157
- tst r3, #1
6158
- movne r2, #7
6159
- moveq r2, #6
6160
- rsb r2, r2, r3, asl #1
6161
- add r3, r3, #1
6162
- strh r2, [r1, #2]! @ movhi
6163
- uxth r3, r3
6164
- cmp r3, #512
6165
- bne .L977
6166
- b .L958
6555
+ bne .L973
6556
+ add r2, r2, #170
61676557 .L975:
6558
+ tst r3, #1
6559
+ movne r1, #7
6560
+ moveq r1, #6
6561
+ rsb r1, r1, r3, lsl #1
6562
+ add r3, r3, #1
6563
+ uxth r3, r3
6564
+ strh r1, [r2, #2]! @ movhi
6565
+ cmp r3, #512
6566
+ bne .L975
6567
+ b .L949
6568
+.L972:
61686569 cmp r0, #12
6169
- bne .L958
6170
- ldr r3, .L996+8
6570
+ bne .L949
6571
+ ldr r3, .L998+8
61716572 mov r2, #0
6172
- strh r2, [r3, #148] @ movhi
6573
+ strh r2, [r3, #156] @ movhi
61736574 mov r2, #1
6174
- strh r2, [r3, #150] @ movhi
6575
+ strh r2, [r3, #158] @ movhi
61756576 mov r2, #2
6176
- strh r2, [r3, #152] @ movhi
6577
+ strh r2, [r3, #160] @ movhi
61776578 mov r2, #3
6178
- strh r2, [r3, #154]! @ movhi
6579
+ strh r2, [r3, #162]! @ movhi
61796580 mov r2, #4
6180
-.L978:
6581
+.L976:
61816582 sub r1, r2, #1
61826583 add r1, r1, r2, lsr #1
61836584 add r2, r2, #1
6184
- strh r1, [r3, #2]! @ movhi
61856585 uxth r2, r2
6586
+ strh r1, [r3, #2]! @ movhi
61866587 cmp r2, #512
6187
- bne .L978
6188
- b .L958
6189
-.L955:
6190
- uxth r2, r3
6191
- cmp r2, r4
6192
- bcs .L995
6193
- mov r2, r3, asl #1
6588
+ bne .L976
6589
+ b .L949
6590
+.L977:
6591
+ lsl r2, r3, #1
61946592 add r3, r3, #1
61956593 ldrh r2, [r2, r1]
6196
- mov ip, r2, asl #1
6197
- strh r2, [r0, ip] @ movhi
6198
- b .L955
6199
-.L995:
6200
- ldmfd sp!, {r4, pc}
6201
-.L997:
6594
+ lsl r0, r2, #1
6595
+ strh r2, [r5, r0] @ movhi
6596
+ b .L944
6597
+.L999:
62026598 .align 2
6203
-.L996:
6204
- .word .LANCHOR0+148
6205
- .word .LANCHOR2-2620
6599
+.L998:
6600
+ .word .LANCHOR0+156
6601
+ .word .LANCHOR2-2608
62066602 .word .LANCHOR0
6207
- .word .LANCHOR0+178
6208
- .word .LANCHOR0+146
6209
- .word .LANCHOR0+272
6210
- .word .LANCHOR0+162
62116603 .fnend
62126604 .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable
62136605 .align 2
62146606 .global FlashDieInfoInit
6607
+ .syntax unified
6608
+ .arm
6609
+ .fpu softvfp
62156610 .type FlashDieInfoInit, %function
62166611 FlashDieInfoInit:
62176612 .fnstart
62186613 @ args = 0, pretend = 0, frame = 0
62196614 @ frame_needed = 0, uses_anonymous_args = 0
6220
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
6221
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
6615
+ ldr r3, .L1015
6616
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
6617
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
62226618 mov r6, #0
6223
- ldr r3, .L1013
6224
- ldr r5, .L1013+4
6225
- ldr r9, .L1013+8
6619
+ ldr r4, .L1015+4
6620
+ ldr r10, .L1015+8
62266621 ldrh r0, [r3, #10]
6227
- strb r6, [r5, #2230]
6228
- mov r7, r5
6229
- strb r6, [r9, #-572]
6622
+ strb r6, [r4, #2234]
6623
+ strb r6, [r10, #-572]
62306624 bl FlashBlockAlignInit
6231
- mov r1, r6
62326625 mov r2, #8
6233
- ldr r0, .L1013+12
6234
- bl ftl_memset
62356626 mov r1, r6
6627
+ ldr r0, .L1015+12
6628
+ bl ftl_memset
62366629 mov r2, #32
6237
- ldr r0, .L1013+16
6238
- bl ftl_memset
6239
- ldr r0, .L1013+20
62406630 mov r1, r6
6241
- mov r2, #128
6631
+ ldr r0, .L1015+16
62426632 bl ftl_memset
6243
- ldr r4, [r5, #44]
6244
- ldr fp, .L1013+24
6245
- add r8, r4, #1
6246
-.L1000:
6247
- mov r0, r8
6248
- add r1, fp, r6, asl #3
6249
- ldrb r2, [r4] @ zero_extendqisi2
6250
- bl FlashMemCmp8
6251
- ldr r10, .L1013+24
6252
- cmp r0, #0
6253
- bne .L999
6254
- ldrb r3, [r7, #2230] @ zero_extendqisi2
6255
- add r2, r7, r3, asl #2
6256
- str r0, [r2, #1172]
6257
- add r2, r3, #1
6258
- add r3, r7, r3
6259
- strb r2, [r7, #2230]
6260
- strb r6, [r3, #2232]
6261
-.L999:
6262
- add r6, r6, #1
6263
- cmp r6, #4
6264
- bne .L1000
6265
- ldrb r3, [r5, #2230] @ zero_extendqisi2
6266
- ldr r7, .L1013+4
6267
- strb r3, [r9, #-572]
6268
- ldrb r3, [r4, #8] @ zero_extendqisi2
6269
- cmp r3, #2
6270
- beq .L1001
6271
-.L1005:
6272
- ldrb r3, [r4, #13] @ zero_extendqisi2
6273
- ldrb r2, [r5, #2230] @ zero_extendqisi2
6274
- smulbb r2, r2, r3
6275
- ldrh r3, [r4, #14]
6276
- smulbb r3, r2, r3
6277
- ldr r2, .L1013+28
6278
- strh r3, [r2, #-2] @ movhi
6279
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
6280
-.L1001:
6281
- ldr r9, [r7, #4]
6282
- mov r6, #0
6283
-.L1004:
6284
- mov r0, r8
6285
- add r1, r10, r6, asl #3
6286
- ldrb r2, [r4] @ zero_extendqisi2
6287
- bl FlashMemCmp8
6288
- cmp r0, #0
6289
- bne .L1002
6290
- ldrb r1, [r4, #13] @ zero_extendqisi2
6291
- ldrh r3, [r4, #14]
6292
- ldrb r2, [r7, #2230] @ zero_extendqisi2
6293
- mul r1, r9, r1
6294
- and r3, r3, #65280
6295
- add r0, r7, r2, asl #2
6296
- mul r3, r3, r1
6297
- str r3, [r0, #1172]
6298
- ldrb r1, [r4, #23] @ zero_extendqisi2
6299
- cmp r1, #0
6300
- movne r3, r3, asl #1
6301
- strne r3, [r0, #1172]
6302
- add r3, r2, #1
6303
- add r2, r5, r2
6304
- strb r3, [r5, #2230]
6305
- strb r6, [r2, #2232]
6633
+ mov r2, #128
6634
+ mov r1, r6
6635
+ ldr r0, .L1015+20
6636
+ bl ftl_memset
6637
+ ldr r9, .L1015+24
6638
+ ldr r5, [r4, #48]
6639
+ mov r8, r9
6640
+ add r7, r5, #1
63066641 .L1002:
6642
+ ldrb r2, [r5] @ zero_extendqisi2
6643
+ add r1, r9, r6, lsl #3
6644
+ mov r0, r7
6645
+ bl FlashMemCmp8
6646
+ cmp r0, #0
6647
+ bne .L1001
6648
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
6649
+ add r2, r4, r3, lsl #2
6650
+ str r0, [r2, #1180]
6651
+ add r2, r3, #1
6652
+ add r3, r4, r3
6653
+ strb r2, [r4, #2234]
6654
+ strb r6, [r3, #2236]
6655
+.L1001:
63076656 add r6, r6, #1
63086657 cmp r6, #4
6658
+ bne .L1002
6659
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
6660
+ strb r3, [r10, #-572]
6661
+ ldrb r3, [r5, #8] @ zero_extendqisi2
6662
+ cmp r3, #2
6663
+ beq .L1003
6664
+.L1007:
6665
+ ldrh r2, [r5, #14]
6666
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
6667
+ smulbb r3, r3, r2
6668
+ ldrb r2, [r5, #13] @ zero_extendqisi2
6669
+ smulbb r3, r3, r2
6670
+ ldr r2, .L1015+28
6671
+ strh r3, [r2, #-2] @ movhi
6672
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
6673
+.L1003:
6674
+ ldr r9, [r4, #40]
6675
+ mov r6, #0
6676
+.L1006:
6677
+ ldrb r2, [r5] @ zero_extendqisi2
6678
+ add r1, r8, r6, lsl #3
6679
+ mov r0, r7
6680
+ bl FlashMemCmp8
6681
+ cmp r0, #0
63096682 bne .L1004
6310
- b .L1005
6311
-.L1014:
6683
+ ldrh r3, [r5, #14]
6684
+ ldrb r2, [r4, #2234] @ zero_extendqisi2
6685
+ and r1, r3, #65280
6686
+ ldrb r3, [r5, #13] @ zero_extendqisi2
6687
+ mul r3, r9, r3
6688
+ mul r3, r3, r1
6689
+ add r1, r4, r2, lsl #2
6690
+ str r3, [r1, #1180]
6691
+ ldrb r0, [r5, #23] @ zero_extendqisi2
6692
+ cmp r0, #0
6693
+ lslne r3, r3, #1
6694
+ strne r3, [r1, #1180]
6695
+ add r3, r2, #1
6696
+ add r2, r4, r2
6697
+ strb r3, [r4, #2234]
6698
+ strb r6, [r2, #2236]
6699
+.L1004:
6700
+ add r6, r6, #1
6701
+ cmp r6, #4
6702
+ bne .L1006
6703
+ b .L1007
6704
+.L1016:
63126705 .align 2
6313
-.L1013:
6314
- .word .LANCHOR1+472
6706
+.L1015:
6707
+ .word .LANCHOR1+468
63156708 .word .LANCHOR0
63166709 .word .LANCHOR2
6317
- .word .LANCHOR0+2232
6318
- .word .LANCHOR0+1172
6319
- .word .LANCHOR0+2100
6320
- .word .LANCHOR0+2068
6710
+ .word .LANCHOR0+2236
6711
+ .word .LANCHOR0+1180
6712
+ .word .LANCHOR0+2104
6713
+ .word .LANCHOR0+2072
63216714 .word .LANCHOR2-568
63226715 .fnend
63236716 .size FlashDieInfoInit, .-FlashDieInfoInit
63246717 .align 2
63256718 .global ftl_read_flash_info
6719
+ .syntax unified
6720
+ .arm
6721
+ .fpu softvfp
63266722 .type ftl_read_flash_info, %function
63276723 ftl_read_flash_info:
63286724 .fnstart
63296725 @ args = 0, pretend = 0, frame = 0
63306726 @ frame_needed = 0, uses_anonymous_args = 0
6331
- stmfd sp!, {r4, lr}
6727
+ push {r4, lr}
63326728 .save {r4, lr}
6333
- mov r1, #0
63346729 mov r2, #11
6730
+ mov r1, #0
63356731 mov r4, r0
63366732 bl ftl_memset
6337
- ldr r2, .L1020
6338
- ldr r0, .L1020+4
6733
+ ldr r2, .L1021
63396734 mov ip, #1
6340
- ldr r3, [r2, #44]
6341
- ldrb r1, [r3, #9] @ zero_extendqisi2
6342
- ldr r3, [r2, #4]
6343
- smulbb r3, r1, r3
6735
+ ldr r0, .L1021+4
6736
+ ldr r3, [r2, #48]
6737
+ ldr r1, [r2, #40]
6738
+ ldrb r3, [r3, #9] @ zero_extendqisi2
6739
+ smulbb r3, r3, r1
63446740 strh r3, [r4, #4] @ unaligned
6345
- ldrb r3, [r2, #2312] @ zero_extendqisi2
6741
+ ldrb r3, [r2, #2316] @ zero_extendqisi2
63466742 strb r3, [r4, #7]
6347
- ldr r3, [r2, #2428]
6743
+ ldr r3, [r2, #2432]
63486744 str r3, [r4] @ unaligned
6349
- ldr r3, [r2, #44]
6745
+ ldr r3, [r2, #48]
63506746 ldrb r1, [r3, #9] @ zero_extendqisi2
63516747 strb r1, [r4, #6]
63526748 mov r1, #32
63536749 strb r1, [r4, #8]
6354
- ldrb r1, [r2, #2230] @ zero_extendqisi2
6750
+ ldrb r1, [r2, #2234] @ zero_extendqisi2
63556751 ldrb r3, [r3, #7] @ zero_extendqisi2
63566752 strb r3, [r4, #9]
63576753 mov r3, #0
63586754 strb r3, [r4, #10]
6359
-.L1016:
6755
+.L1018:
63606756 uxtb r2, r3
6361
- cmp r2, r1
6362
- bcs .L1019
6757
+ cmp r1, r2
6758
+ bhi .L1019
6759
+ pop {r4, pc}
6760
+.L1019:
63636761 ldrb lr, [r3, r0] @ zero_extendqisi2
63646762 add r3, r3, #1
63656763 ldrb r2, [r4, #10] @ zero_extendqisi2
6366
- orr r2, r2, ip, asl lr
6764
+ orr r2, r2, ip, lsl lr
63676765 strb r2, [r4, #10]
6368
- b .L1016
6369
-.L1019:
6370
- ldmfd sp!, {r4, pc}
6371
-.L1021:
6766
+ b .L1018
6767
+.L1022:
63726768 .align 2
6373
-.L1020:
6769
+.L1021:
63746770 .word .LANCHOR0
6375
- .word .LANCHOR0+2232
6771
+ .word .LANCHOR0+2236
63766772 .fnend
63776773 .size ftl_read_flash_info, .-ftl_read_flash_info
63786774 .align 2
63796775 .global FtlMemInit
6776
+ .syntax unified
6777
+ .arm
6778
+ .fpu softvfp
63806779 .type FtlMemInit, %function
63816780 FtlMemInit:
63826781 .fnstart
63836782 @ args = 0, pretend = 0, frame = 0
63846783 @ frame_needed = 0, uses_anonymous_args = 0
6385
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
6386
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
6784
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
6785
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
63876786 mov r6, #0
6388
- ldr r4, .L1127
6787
+ ldr r4, .L1126
63896788 mvn r2, #0
6390
- ldr r5, .L1127+4
63916789 mov r1, #32
6392
- sub r3, r4, #568
63936790 mov r0, #1024
6791
+ ldr r5, .L1126+4
6792
+ mov r8, #12
6793
+ sub r3, r4, #568
63946794 str r6, [r4, #-564]
6395
- add r7, r5, #2320
63966795 strh r6, [r3] @ movhi
63976796 movw r3, #65535
63986797 str r3, [r4, #-556]
63996798 sub r3, r4, #2656
6400
- str r6, [r4, #-3236]
6401
- mov r8, #36
64026799 strh r2, [r3, #-10] @ movhi
6800
+ movw r9, #2324
64036801 strh r2, [r3, #-8] @ movhi
6802
+ mov r7, #36
64046803 strh r2, [r3, #-6] @ movhi
64056804 strh r2, [r3, #-4] @ movhi
64066805 sub r2, r4, #2720
....@@ -6409,12 +6808,11 @@
64096808 strh r1, [r2] @ movhi
64106809 sub r2, r4, #2704
64116810 strh r6, [r3] @ movhi
6412
- sub r3, r4, #2608
6413
- strh r6, [r2, #-8] @ movhi
64146811 mov r1, #128
6415
- strh r6, [r3, #-14] @ movhi
6416
- movw r3, #2394
6812
+ sub r3, r4, #2608
64176813 strh r1, [r2, #-14] @ movhi
6814
+ strh r6, [r2, #-8] @ movhi
6815
+ str r6, [r4, #-2724]
64186816 str r6, [r4, #-3332]
64196817 str r6, [r4, #-3328]
64206818 str r6, [r4, #-3344]
....@@ -6425,7 +6823,7 @@
64256823 str r6, [r4, #-3364]
64266824 str r6, [r4, #-3324]
64276825 str r6, [r4, #-3320]
6428
- str r6, [r4, #-3604]
6826
+ str r6, [r4, #-3600]
64296827 str r6, [r4, #-3312]
64306828 str r6, [r4, #-3308]
64316829 str r6, [r4, #-560]
....@@ -6433,27 +6831,29 @@
64336831 str r6, [r4, #-552]
64346832 str r6, [r4, #-2716]
64356833 str r6, [r4, #-548]
6834
+ strh r6, [r3, #-14] @ movhi
6835
+ movw r3, #2396
64366836 ldrh r1, [r5, r3]
64376837 bl __aeabi_idiv
6438
- ldrh r10, [r7]
6439
- str r6, [r5, #2440]
6440
- movw r6, #2392
6441
- mov r9, r10, asl #2
6442
- cmp r0, r9
6838
+ movw r3, #2324
6839
+ str r6, [r5, #2444]
6840
+ ldrh r3, [r5, r3]
6841
+ movw r6, #2394
64436842 str r0, [r4, #-540]
6843
+ lsl r3, r3, #2
6844
+ cmp r0, r3
64446845 ldrh r0, [r5, r6]
6445
- strhi r9, [r4, #-540]
6446
- mov r9, #12
6447
- mov r0, r0, asl #1
6846
+ strhi r3, [r4, #-540]
6847
+ lsl r0, r0, #1
64486848 bl ftl_malloc
64496849 str r0, [r4, #-2680]
64506850 ldrh r0, [r5, r6]
6451
- mul r0, r9, r0
6851
+ mul r0, r8, r0
64526852 bl ftl_malloc
6453
- ldrh r6, [r7]
6454
- mul r6, r8, r6
6455
- mov r10, r6, asl #3
6853
+ ldrh r6, [r5, r9]
64566854 str r0, [r4, #-2672]
6855
+ mul r6, r7, r6
6856
+ lsl r10, r6, #3
64576857 mov r0, r10
64586858 bl ftl_malloc
64596859 str r0, [r4, #-536]
....@@ -6462,421 +6862,437 @@
64626862 str r0, [r4, #-532]
64636863 mov r0, r10
64646864 bl ftl_malloc
6465
- movw r10, #2398
64666865 str r0, [r4, #-528]
64676866 mov r0, r6
64686867 bl ftl_malloc
6469
- str r0, [r4, #-3612]
6868
+ str r0, [r4, #-3608]
64706869 mov r0, r6
64716870 bl ftl_malloc
64726871 str r0, [r4, #-2688]
6872
+ movw r10, #2402
64736873 ldr r0, [r4, #-540]
6474
- mul r0, r8, r0
6874
+ ldr r6, .L1126+8
6875
+ mul r0, r7, r0
64756876 bl ftl_malloc
6476
- ldrh r6, [r5, r10]
6477
- ldrh r3, [r7]
6478
- movw r8, #2330
6479
- mov r3, r3, asl #1
6877
+ ldrh r3, [r5, r9]
6878
+ ldrh r7, [r6]
6879
+ str r0, [r5, #2448]
6880
+ lsl r3, r3, #1
6881
+ mov r0, r7
64806882 add r3, r3, #1
64816883 str r3, [r4, #-2684]
6482
- str r0, [r5, #2444]
6483
- mov r0, r6
64846884 bl ftl_malloc
64856885 str r0, [r4, #-524]
6486
- mov r0, r6
6886
+ mov r0, r7
64876887 bl ftl_malloc
64886888 str r0, [r4, #-520]
6489
- mov r0, r6
6889
+ mov r0, r7
64906890 bl ftl_malloc
64916891 str r0, [r4, #-516]
64926892 ldr r0, [r4, #-2684]
6493
- mul r0, r0, r6
6893
+ mul r0, r0, r7
64946894 bl ftl_malloc
64956895 str r0, [r4, #-2696]
64966896 ldr r0, [r4, #-540]
6497
- mul r0, r0, r6
6897
+ mul r0, r0, r7
64986898 bl ftl_malloc
64996899 str r0, [r4, #-512]
6500
- mov r0, r6
6900
+ mov r0, r7
65016901 bl ftl_malloc
65026902 str r0, [r4, #-508]
6503
- mov r0, r6
6903
+ mov r0, r7
65046904 bl ftl_malloc
6505
- ldr r6, .L1127+8
65066905 str r0, [r4, #-504]
65076906 ldr r0, [r4, #-2684]
6508
- mul r0, r9, r0
6907
+ mul r0, r8, r0
65096908 bl ftl_malloc
6510
- ldrh r3, [r6]
6511
- ldrh r7, [r7]
6512
- mul r7, r7, r3
6909
+ ldrh r3, [r5, r10]
6910
+ ldrh r7, [r5, r9]
6911
+ movw r9, #2334
65136912 str r0, [r4, #-2700]
6913
+ mul r7, r7, r3
65146914 mov r0, r7
65156915 bl ftl_malloc
65166916 str r0, [r4, #-500]
6517
- mov r0, r7, asl #3
6917
+ lsl r0, r7, #3
6918
+ ldr r7, .L1126+12
65186919 bl ftl_malloc
6519
- ldrh r3, [r6]
6520
- ldr r7, .L1127+12
6920
+ ldrh r3, [r5, r10]
65216921 str r0, [r4, #-496]
65226922 ldr r0, [r4, #-2684]
65236923 mul r0, r0, r3
65246924 bl ftl_malloc
6525
- ldrh r3, [r6], #80
6925
+ ldrh r3, [r5, r10]
65266926 str r0, [r4, #-2692]
65276927 ldr r0, [r4, #-540]
65286928 mul r0, r0, r3
65296929 bl ftl_malloc
65306930 str r0, [r4, #-492]
6531
- ldrh r0, [r5, r8]
6532
- mov r0, r0, asl #1
6931
+ ldrh r0, [r5, r9]
6932
+ lsl r0, r0, #1
65336933 uxth r0, r0
65346934 strh r0, [r7] @ movhi
65356935 bl ftl_malloc
65366936 str r0, [r4, #-484]
65376937 ldrh r0, [r7]
6938
+ ldr r3, .L1126+16
65386939 add r0, r0, #544
65396940 add r0, r0, #3
6540
- mov r0, r0, lsr #9
6941
+ lsr r0, r0, #9
65416942 strh r0, [r7] @ movhi
6542
- mov r0, r0, asl #9
6943
+ and r0, r3, r0, lsl #9
65436944 bl ftl_malloc
6544
- ldrh fp, [r5, r8]
6545
- mov fp, fp, asl #1
6945
+ ldrh r10, [r5, r9]
65466946 str r0, [r4, #-480]
65476947 add r0, r0, #32
6548
- str r0, [r4, #-3608]
6549
- mov r0, fp
6948
+ str r0, [r4, #-3604]
6949
+ lsl r10, r10, #1
6950
+ mov r0, r10
65506951 bl ftl_malloc
65516952 str r0, [r4, #-476]
6552
- mov r0, fp
6953
+ mov r0, r10
65536954 bl ftl_malloc
6554
- ldr fp, [r5, #2416]
6555
- mov fp, fp, asl #1
6556
- str r0, [r4, #-3544]
6557
- mov r0, fp
6955
+ ldr r10, [r5, #2420]
6956
+ str r0, [r4, #-3540]
6957
+ lsl r10, r10, #1
6958
+ mov r0, r10
65586959 bl ftl_malloc
65596960 str r0, [r4, #-472]
6560
- mov r0, fp
6961
+ mov r0, r10
65616962 bl ftl_malloc
6562
- movw fp, #2408
65636963 str r0, [r4, #-468]
6564
- ldrh r0, [r5, r8]
6565
- mov r0, r0, lsr #3
6964
+ movw r10, #2412
6965
+ ldrh r0, [r5, r9]
6966
+ lsr r0, r0, #3
65666967 add r0, r0, #4
65676968 bl ftl_malloc
6568
- str r0, [r4, #-3368]
6569
- ldrh r0, [r5, fp]
6570
- mov r0, r0, asl #1
6969
+ str r0, [r5, #32]
6970
+ ldrh r0, [r5, r10]
6971
+ lsl r0, r0, #1
65716972 bl ftl_malloc
6572
- str r0, [r5, #2436]
6573
- ldrh r0, [r5, fp]
6574
- mov r0, r0, asl #1
6973
+ str r0, [r5, #2440]
6974
+ ldrh r0, [r5, r10]
6975
+ lsl r0, r0, #1
65756976 bl ftl_malloc
65766977 str r0, [r4, #-464]
6577
- ldrh r0, [r5, fp]
6578
- movw fp, #2410
6579
- mov r0, r0, asl #2
6978
+ ldrh r0, [r5, r10]
6979
+ movw r10, #2414
6980
+ lsl r0, r0, #2
65806981 bl ftl_malloc
65816982 str r0, [r4, #-460]
6582
- ldrh r0, [r5, fp]
6583
- mov r0, r0, asl #2
6983
+ ldrh r0, [r5, r10]
6984
+ lsl r0, r0, #2
65846985 bl ftl_malloc
6585
- ldrh r2, [r5, fp]
6986
+ ldrh r2, [r5, r10]
65866987 mov r1, #0
6587
- mov r2, r2, asl #2
65886988 str r0, [r4, #-456]
6989
+ lsl r2, r2, #2
65896990 bl ftl_memset
6590
- movw r3, #2424
6591
- ldrh fp, [r5, r3]
6592
- mov fp, fp, asl #2
6593
- mov r0, fp
6991
+ movw r3, #2428
6992
+ ldrh r10, [r5, r3]
6993
+ lsl r10, r10, #2
6994
+ mov r0, r10
65946995 bl ftl_malloc
65956996 str r0, [r4, #-452]
6596
- mov r0, fp
6997
+ mov r0, r10
65976998 bl ftl_malloc
6598
- movw fp, #2426
65996999 str r0, [r4, #-448]
6600
- ldr r0, [r5, #2416]
6601
- mov r0, r0, asl #2
7000
+ movw r10, #2430
7001
+ ldr r0, [r5, #2420]
7002
+ lsl r0, r0, #2
66027003 bl ftl_malloc
66037004 str r0, [r4, #-444]
6604
- ldrh r0, [r5, fp]
6605
- mul r0, r9, r0
6606
- bl ftl_malloc
6607
- ldrh r3, [r5, fp]
6608
- str r0, [r4, #-3380]
66097005 ldrh r0, [r5, r10]
7006
+ mul r0, r8, r0
7007
+ mov r8, r6
7008
+ add r6, r6, #56
7009
+ bl ftl_malloc
7010
+ ldrh r3, [r5, r10]
7011
+ str r0, [r4, #-3376]
7012
+ ldrh r0, [r8], #84
66107013 mul r0, r0, r3
66117014 bl ftl_malloc
6612
- ldrh r3, [r5, r8]
6613
- movw r8, #2342
7015
+ ldrh r3, [r5, r9]
7016
+ movw r9, #2346
66147017 str r0, [r4, #-440]
66157018 mov r0, #6
66167019 mul r0, r0, r3
66177020 bl ftl_malloc
6618
- movw r3, #2386
6619
- ldrh r3, [r5, r3]
6620
- add r3, r3, #31
6621
- mov r3, r3, asr #5
6622
- strh r3, [r7, #52]! @ movhi
6623
- str r0, [r4, #-3552]
6624
- ldrh r0, [r5, r8]
7021
+ movw r3, #2388
7022
+ str r0, [r4, #-3548]
7023
+ ldrh r0, [r5, r3]
7024
+ ldrh r3, [r5, r9]
7025
+ add r0, r0, #31
7026
+ asr r0, r0, #5
7027
+ strh r0, [r7, #52]! @ movhi
66257028 mul r0, r0, r3
6626
- mov r0, r0, asl #2
7029
+ lsl r0, r0, #2
66277030 bl ftl_malloc
66287031 ldrh r2, [r7]
6629
- ldrh ip, [r5, r8]
66307032 mov r3, #1
6631
- mov r2, r2, asl #2
7033
+ ldrh ip, [r5, r9]
7034
+ str r0, [r5, #2484]
7035
+ lsl r2, r2, #2
66327036 mov r1, r2
6633
- str r0, [r5, #2480]
6634
-.L1024:
7037
+.L1025:
66357038 cmp r3, ip
6636
- bcs .L1125
6637
- ldr r0, [r5, #2480]
7039
+ bcc .L1026
7040
+ add r6, r6, r3, lsl #2
7041
+ ldr r3, .L1126+20
7042
+ mov r2, #0
7043
+ add r6, r6, #24
7044
+.L1027:
7045
+ cmp r3, r6
7046
+ bne .L1028
7047
+ ldr r3, [r4, #-472]
7048
+ cmp r3, #0
7049
+ bne .L1029
7050
+.L1031:
7051
+ ldr r1, .L1126+24
7052
+ ldr r0, .L1126+28
7053
+ bl printk
7054
+ mvn r0, #0
7055
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
7056
+.L1026:
7057
+ ldr r0, [r5, #2484]
66387058 add r3, r3, #1
66397059 add r0, r0, r1
66407060 add r1, r1, r2
6641
- str r0, [r6, #4]!
6642
- b .L1024
6643
-.L1125:
6644
- ldr r2, .L1127+16
6645
- mov r1, #0
6646
-.L1026:
6647
- cmp r3, #8
6648
- addne r0, r2, r3, asl #2
6649
- addne r3, r3, #1
6650
- strne r1, [r0, #28]
6651
- bne .L1026
6652
-.L1126:
6653
- ldr r2, [r4, #-472]
6654
- ldr r3, .L1127
6655
- cmp r2, #0
6656
- bne .L1028
6657
-.L1030:
6658
- ldr r1, .L1127+20
6659
- ldr r0, .L1127+24
6660
- bl printk
6661
- mvn r0, #0
6662
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
7061
+ str r0, [r8, #4]!
7062
+ b .L1025
66637063 .L1028:
6664
- ldr r2, [r3, #-468]
6665
- cmp r2, #0
6666
- beq .L1030
6667
- ldr r2, [r3, #-452]
6668
- cmp r2, #0
6669
- beq .L1030
6670
- ldr r2, [r3, #-444]
6671
- cmp r2, #0
6672
- beq .L1030
6673
- ldr r2, [r3, #-3380]
6674
- cmp r2, #0
6675
- beq .L1030
6676
- ldr r2, [r3, #-440]
6677
- cmp r2, #0
6678
- beq .L1030
6679
- ldr r2, [r3, #-3552]
6680
- cmp r2, #0
6681
- beq .L1030
6682
- ldr r2, [r5, #2480]
6683
- cmp r2, #0
6684
- beq .L1030
6685
- ldr r3, [r3, #-3544]
7064
+ str r2, [r6, #4]!
7065
+ b .L1027
7066
+.L1029:
7067
+ ldr r3, [r4, #-468]
66867068 cmp r3, #0
6687
- beq .L1030
6688
- ldr r2, [r4, #-2680]
6689
- ldr r3, .L1127
6690
- cmp r2, #0
6691
- beq .L1030
6692
- ldr r2, [r3, #-2672]
6693
- cmp r2, #0
6694
- beq .L1030
6695
- ldr r2, [r3, #-536]
6696
- cmp r2, #0
6697
- beq .L1030
6698
- ldr r2, [r3, #-528]
6699
- cmp r2, #0
6700
- beq .L1030
6701
- ldr r2, [r3, #-3612]
6702
- cmp r2, #0
6703
- beq .L1030
6704
- ldr r2, [r3, #-2688]
6705
- cmp r2, #0
6706
- beq .L1030
6707
- ldr r2, [r3, #-532]
6708
- cmp r2, #0
6709
- beq .L1030
6710
- ldr r2, [r3, #-524]
6711
- cmp r2, #0
6712
- beq .L1030
6713
- ldr r2, [r3, #-520]
6714
- cmp r2, #0
6715
- beq .L1030
6716
- ldr r3, [r3, #-516]
7069
+ beq .L1031
7070
+ ldr r3, [r4, #-452]
67177071 cmp r3, #0
6718
- beq .L1030
6719
- ldr r2, [r4, #-2696]
6720
- ldr r3, .L1127
6721
- cmp r2, #0
6722
- beq .L1030
6723
- ldr r2, [r3, #-508]
6724
- cmp r2, #0
6725
- beq .L1030
6726
- ldr r2, [r3, #-504]
6727
- cmp r2, #0
6728
- beq .L1030
6729
- ldr r2, [r3, #-2700]
6730
- cmp r2, #0
6731
- beq .L1030
6732
- ldr r2, [r3, #-500]
6733
- cmp r2, #0
6734
- beq .L1030
6735
- ldr r2, [r3, #-496]
6736
- cmp r2, #0
6737
- beq .L1030
6738
- ldr r2, [r3, #-2692]
6739
- cmp r2, #0
6740
- beq .L1030
6741
- ldr r2, [r3, #-3608]
6742
- cmp r2, #0
6743
- beq .L1030
6744
- ldr r3, [r3, #-484]
7072
+ beq .L1031
7073
+ ldr r3, [r4, #-444]
67457074 cmp r3, #0
6746
- beq .L1030
6747
- ldr r3, .L1127+4
6748
- ldr r3, [r3, #2436]
7075
+ beq .L1031
7076
+ ldr r3, [r4, #-3376]
67497077 cmp r3, #0
6750
- beq .L1030
6751
- ldr r3, .L1127
7078
+ beq .L1031
7079
+ ldr r3, [r4, #-440]
7080
+ cmp r3, #0
7081
+ beq .L1031
7082
+ ldr r3, [r4, #-3548]
7083
+ cmp r3, #0
7084
+ beq .L1031
7085
+ ldr r3, [r5, #2484]
7086
+ cmp r3, #0
7087
+ beq .L1031
7088
+ ldr r3, [r4, #-3540]
7089
+ cmp r3, #0
7090
+ beq .L1031
7091
+ ldr r3, [r4, #-2680]
7092
+ cmp r3, #0
7093
+ beq .L1031
7094
+ ldr r3, [r4, #-2672]
7095
+ cmp r3, #0
7096
+ beq .L1031
7097
+ ldr r3, [r4, #-536]
7098
+ cmp r3, #0
7099
+ beq .L1031
7100
+ ldr r3, [r4, #-528]
7101
+ cmp r3, #0
7102
+ beq .L1031
7103
+ ldr r3, [r4, #-3608]
7104
+ cmp r3, #0
7105
+ beq .L1031
7106
+ ldr r3, [r4, #-2688]
7107
+ cmp r3, #0
7108
+ beq .L1031
7109
+ ldr r3, [r4, #-532]
7110
+ cmp r3, #0
7111
+ beq .L1031
7112
+ ldr r3, [r4, #-524]
7113
+ cmp r3, #0
7114
+ beq .L1031
7115
+ ldr r3, [r4, #-520]
7116
+ cmp r3, #0
7117
+ beq .L1031
7118
+ ldr r3, [r4, #-516]
7119
+ cmp r3, #0
7120
+ beq .L1031
7121
+ ldr r3, [r4, #-2696]
7122
+ cmp r3, #0
7123
+ beq .L1031
7124
+ ldr r3, [r4, #-508]
7125
+ cmp r3, #0
7126
+ beq .L1031
7127
+ ldr r3, [r4, #-504]
7128
+ cmp r3, #0
7129
+ beq .L1031
7130
+ ldr r3, [r4, #-2700]
7131
+ cmp r3, #0
7132
+ beq .L1031
7133
+ ldr r3, [r4, #-500]
7134
+ cmp r3, #0
7135
+ beq .L1031
7136
+ ldr r3, [r4, #-496]
7137
+ cmp r3, #0
7138
+ beq .L1031
7139
+ ldr r3, [r4, #-2692]
7140
+ cmp r3, #0
7141
+ beq .L1031
7142
+ ldr r3, [r4, #-3604]
7143
+ cmp r3, #0
7144
+ beq .L1031
7145
+ ldr r3, [r4, #-484]
7146
+ cmp r3, #0
7147
+ beq .L1031
7148
+ ldr r3, .L1126+4
7149
+ ldr r3, [r3, #2440]
7150
+ cmp r3, #0
7151
+ beq .L1031
7152
+ ldr r3, .L1126
67527153 ldr r2, [r3, #-464]
67537154 cmp r2, #0
6754
- beq .L1030
7155
+ beq .L1031
67557156 ldr r2, [r3, #-460]
67567157 cmp r2, #0
6757
- beq .L1030
7158
+ beq .L1031
67587159 ldr r3, [r3, #-456]
67597160 cmp r3, #0
6760
- beq .L1030
7161
+ beq .L1031
67617162 mov r0, #0
6762
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
6763
-.L1128:
6764
- .align 2
7163
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
67657164 .L1127:
7165
+ .align 2
7166
+.L1126:
67667167 .word .LANCHOR2
67677168 .word .LANCHOR0
67687169 .word .LANCHOR0+2400
67697170 .word .LANCHOR2-488
6770
- .word .LANCHOR0+2452
7171
+ .word 33553920
7172
+ .word .LANCHOR0+2512
67717173 .word .LANCHOR3
67727174 .word .LC81
67737175 .fnend
67747176 .size FtlMemInit, .-FtlMemInit
67757177 .align 2
67767178 .global FtlBbt2Bitmap
7179
+ .syntax unified
7180
+ .arm
7181
+ .fpu softvfp
67777182 .type FtlBbt2Bitmap, %function
67787183 FtlBbt2Bitmap:
67797184 .fnstart
67807185 @ args = 0, pretend = 0, frame = 0
67817186 @ frame_needed = 0, uses_anonymous_args = 0
6782
- ldr r3, .L1135
6783
- stmfd sp!, {r4, r5, r6, lr}
7187
+ ldr r3, .L1134
7188
+ push {r4, r5, r6, lr}
67847189 .save {r4, r5, r6, lr}
6785
- mov r4, r0
6786
- ldrh r2, [r3]
6787
- mov r0, r1
67887190 mov r5, r1
7191
+ mov r4, r0
67897192 mov r1, #0
7193
+ mov r0, r5
67907194 movw r6, #65535
6791
- mov r2, r2, asl #2
7195
+ ldrh r2, [r3]
7196
+ lsl r2, r2, #2
67927197 bl ftl_memset
6793
- add r3, r4, #1020
6794
- ldr ip, .L1135+4
6795
- add r3, r3, #2
6796
- sub r1, r4, #2
7198
+ ldr ip, .L1134+4
7199
+ add r0, r4, #1020
7200
+ sub r2, r4, #2
7201
+ add r0, r0, #2
67977202 mov r4, #1
6798
-.L1131:
6799
- ldrh r2, [r1, #2]!
6800
- cmp r2, r6
6801
- ldmeqfd sp!, {r4, r5, r6, pc}
6802
- mov lr, r2, lsr #5
6803
- and r2, r2, #31
6804
- cmp r1, r3
6805
- ldr r0, [r5, lr, asl #2]
6806
- orr r2, r0, r4, asl r2
6807
- str r2, [r5, lr, asl #2]
6808
- ldrh r2, [ip, #6]
6809
- add r2, r2, #1
6810
- strh r2, [ip, #6] @ movhi
6811
- bne .L1131
6812
- ldmfd sp!, {r4, r5, r6, pc}
6813
-.L1136:
6814
- .align 2
7203
+.L1130:
7204
+ ldrh r3, [r2, #2]!
7205
+ cmp r3, r6
7206
+ popeq {r4, r5, r6, pc}
7207
+ lsr lr, r3, #5
7208
+ and r3, r3, #31
7209
+ cmp r2, r0
7210
+ ldr r1, [r5, lr, lsl #2]
7211
+ orr r3, r1, r4, lsl r3
7212
+ str r3, [r5, lr, lsl #2]
7213
+ ldrh r3, [ip, #6]
7214
+ add r3, r3, #1
7215
+ strh r3, [ip, #6] @ movhi
7216
+ bne .L1130
7217
+ pop {r4, r5, r6, pc}
68157218 .L1135:
7219
+ .align 2
7220
+.L1134:
68167221 .word .LANCHOR2-436
6817
- .word .LANCHOR0+2452
7222
+ .word .LANCHOR0+2456
68187223 .fnend
68197224 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap
68207225 .align 2
68217226 .global FtlBbtMemInit
7227
+ .syntax unified
7228
+ .arm
7229
+ .fpu softvfp
68227230 .type FtlBbtMemInit, %function
68237231 FtlBbtMemInit:
68247232 .fnstart
68257233 @ args = 0, pretend = 0, frame = 0
68267234 @ frame_needed = 0, uses_anonymous_args = 0
68277235 @ link register save eliminated.
6828
- ldr r0, .L1138
6829
- movw r3, #2452
7236
+ ldr r2, .L1137
7237
+ movw r3, #2456
68307238 mvn r1, #0
6831
- add r2, r0, r3
6832
- strh r1, [r0, r3] @ movhi
7239
+ add r0, r2, r3
7240
+ strh r1, [r2, r3] @ movhi
68337241 mov r3, #0
6834
- add r0, r0, #2464
6835
- strh r3, [r2, #6] @ movhi
6836
- mov r1, #255
68377242 mov r2, #16
7243
+ strh r3, [r0, #6] @ movhi
7244
+ mov r1, #255
7245
+ add r0, r0, #12
68387246 b ftl_memset
6839
-.L1139:
6840
- .align 2
68417247 .L1138:
7248
+ .align 2
7249
+.L1137:
68427250 .word .LANCHOR0
68437251 .fnend
68447252 .size FtlBbtMemInit, .-FtlBbtMemInit
68457253 .align 2
68467254 .global FtlFreeSysBlkQueueInit
7255
+ .syntax unified
7256
+ .arm
7257
+ .fpu softvfp
68477258 .type FtlFreeSysBlkQueueInit, %function
68487259 FtlFreeSysBlkQueueInit:
68497260 .fnstart
68507261 @ args = 0, pretend = 0, frame = 0
68517262 @ frame_needed = 0, uses_anonymous_args = 0
6852
- ldr r3, .L1142
6853
- mov r2, #2048
6854
- stmfd sp!, {r4, lr}
7263
+ ldr r1, .L1141
7264
+ movw r2, #2516
7265
+ push {r4, lr}
68557266 .save {r4, lr}
68567267 mov r4, #0
7268
+ add r3, r1, r2
7269
+ strh r0, [r1, r2] @ movhi
7270
+ mov r2, #2048
68577271 mov r1, r4
7272
+ add r0, r3, #8
68587273 strh r4, [r3, #2] @ movhi
68597274 strh r4, [r3, #4] @ movhi
68607275 strh r4, [r3, #6] @ movhi
6861
- strh r0, [r3], #8 @ movhi
6862
- mov r0, r3
68637276 bl ftl_memset
68647277 mov r0, r4
6865
- ldmfd sp!, {r4, pc}
6866
-.L1143:
6867
- .align 2
7278
+ pop {r4, pc}
68687279 .L1142:
6869
- .word .LANCHOR0+2512
7280
+ .align 2
7281
+.L1141:
7282
+ .word .LANCHOR0
68707283 .fnend
68717284 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
68727285 .align 2
68737286 .global ftl_free_no_use_map_blk
7287
+ .syntax unified
7288
+ .arm
7289
+ .fpu softvfp
68747290 .type ftl_free_no_use_map_blk, %function
68757291 ftl_free_no_use_map_blk:
68767292 .fnstart
68777293 @ args = 0, pretend = 0, frame = 0
68787294 @ frame_needed = 0, uses_anonymous_args = 0
6879
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
7295
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
68807296 .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
68817297 mov r1, #0
68827298 ldrh r2, [r0, #10]
....@@ -6884,165 +7300,148 @@
68847300 ldr r5, [r0, #20]
68857301 ldr r7, [r0, #12]
68867302 ldr r6, [r0, #24]
6887
- mov r2, r2, asl #1
7303
+ lsl r2, r2, #1
68887304 mov r0, r5
68897305 bl ftl_memset
68907306 mov r2, #0
6891
-.L1145:
7307
+.L1144:
68927308 ldrh r1, [r4, #6]
68937309 uxth r3, r2
68947310 cmp r1, r3
6895
- bls .L1165
6896
- ldr r0, [r6, r3, asl #2]
7311
+ bhi .L1148
7312
+ ldr r2, .L1164
7313
+ movw r3, #2392
7314
+ mov r6, #0
7315
+ mov r8, r6
7316
+ mov r10, r6
7317
+ ldrh r2, [r2, r3]
7318
+ ldrh r3, [r4]
7319
+ lsl r3, r3, #1
7320
+ strh r2, [r5, r3] @ movhi
7321
+ ldrh r9, [r5]
7322
+.L1149:
7323
+ ldrh r3, [r4, #10]
7324
+ uxth r1, r6
7325
+ cmp r3, r1
7326
+ bhi .L1153
7327
+ mov r0, r8
7328
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
7329
+.L1148:
7330
+ uxth r3, r2
68977331 mov r1, #0
7332
+ ldr r0, [r6, r3, lsl #2]
68987333 ubfx r0, r0, #10, #16
6899
-.L1146:
7334
+.L1145:
69007335 ldrh ip, [r4, #10]
69017336 uxth r3, r1
69027337 cmp ip, r3
6903
- bls .L1166
6904
- mov r3, r3, asl #1
7338
+ addls r2, r2, #1
7339
+ bls .L1144
7340
+.L1147:
7341
+ uxth r3, r1
69057342 add r1, r1, #1
7343
+ lsl r3, r3, #1
69067344 ldrh ip, [r7, r3]
6907
- rsb lr, ip, r0
6908
- cmp ip, #0
6909
- clz lr, lr
6910
- mov lr, lr, lsr #5
6911
- moveq lr, #0
7345
+ adds lr, ip, #0
7346
+ movne lr, #1
7347
+ cmp r0, ip
7348
+ movne lr, #0
69127349 cmp lr, #0
6913
- ldrneh ip, [r5, r3]
7350
+ ldrhne ip, [r5, r3]
69147351 addne ip, ip, #1
6915
- strneh ip, [r5, r3] @ movhi
6916
- b .L1146
6917
-.L1166:
6918
- add r2, r2, #1
7352
+ strhne ip, [r5, r3] @ movhi
69197353 b .L1145
6920
-.L1165:
6921
- ldr r2, .L1168
6922
- movw r3, #2390
6923
- mov r8, #0
6924
- mov r1, r8
6925
- mov fp, r8
6926
- ldrh r2, [r2, r3]
6927
- ldrh r3, [r4]
6928
- mov r3, r3, asl #1
6929
- strh r2, [r5, r3] @ movhi
6930
- ldrh r9, [r5]
6931
-.L1150:
6932
- ldrh r3, [r4, #10]
6933
- uxth r6, r8
6934
- cmp r3, r6
6935
- bls .L1167
6936
- mov r2, r6, asl #1
6937
- ldrh r3, [r5, r2]
6938
- cmp r9, r3
6939
- bls .L1151
6940
- ldrh r0, [r7, r2]
6941
- add r10, r7, r2
7354
+.L1153:
7355
+ uxth r3, r6
7356
+ lsl r3, r3, #1
7357
+ ldrh r2, [r5, r3]
7358
+ cmp r9, r2
7359
+ bls .L1150
7360
+ ldrh r0, [r7, r3]
7361
+ add fp, r7, r3
69427362 cmp r0, #0
6943
- bne .L1152
6944
- b .L1153
6945
-.L1151:
6946
- cmp r3, #0
6947
- bne .L1153
6948
- ldrh r0, [r7, r2]
6949
- add r10, r7, r2
6950
- cmp r0, #0
6951
- movne r6, r1
6952
- beq .L1153
6953
- b .L1155
7363
+ bne .L1151
69547364 .L1152:
6955
- cmp r3, #0
6956
- movne r1, r6
6957
- movne r9, r3
6958
- bne .L1153
6959
- mov r9, r3
6960
-.L1155:
7365
+ add r6, r6, #1
7366
+ b .L1149
7367
+.L1150:
7368
+ cmp r2, #0
7369
+ bne .L1152
7370
+ ldrh r0, [r7, r3]
7371
+ add fp, r7, r3
7372
+ cmp r0, #0
7373
+ beq .L1152
7374
+.L1154:
69617375 mov r1, #1
69627376 bl FtlFreeSysBlkQueueIn
6963
- strh fp, [r10] @ movhi
7377
+ strh r10, [fp] @ movhi
69647378 ldrh r3, [r4, #8]
6965
- mov r1, r6
69667379 sub r3, r3, #1
69677380 strh r3, [r4, #8] @ movhi
6968
-.L1153:
6969
- add r8, r8, #1
6970
- b .L1150
6971
-.L1167:
6972
- mov r0, r1
6973
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
6974
-.L1169:
7381
+ b .L1152
7382
+.L1151:
7383
+ subs r9, r2, #0
7384
+ mov r8, r1
7385
+ beq .L1154
7386
+ b .L1152
7387
+.L1165:
69757388 .align 2
6976
-.L1168:
7389
+.L1164:
69777390 .word .LANCHOR0
69787391 .fnend
69797392 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
69807393 .align 2
69817394 .global FtlL2PDataInit
7395
+ .syntax unified
7396
+ .arm
7397
+ .fpu softvfp
69827398 .type FtlL2PDataInit, %function
69837399 FtlL2PDataInit:
69847400 .fnstart
69857401 @ args = 0, pretend = 0, frame = 0
69867402 @ frame_needed = 0, uses_anonymous_args = 0
6987
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
6988
- .save {r4, r5, r6, r7, r8, lr}
7403
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
7404
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
69897405 mov r1, #0
6990
- ldr r5, .L1175
6991
- mvn r6, #0
6992
- ldr r4, .L1175+4
6993
- ldr r2, [r5, #2416]
6994
- ldr r0, [r4, #-468]
6995
- mov r2, r2, asl #1
7406
+ ldr r4, .L1170
7407
+ mvn r7, #0
7408
+ ldr r5, .L1170+4
7409
+ ldr r2, [r4, #2420]
7410
+ add r6, r4, #2400
7411
+ ldr r0, [r5, #-468]
7412
+ lsl r2, r2, #1
69967413 bl ftl_memset
6997
- movw r3, #2398
6998
- movw r2, #2426
6999
- ldrh r3, [r5, r3]
7000
- ldrh r2, [r5, r2]
7414
+ movw r2, #2430
7415
+ ldrh r3, [r6]
7416
+ ldrh r2, [r4, r2]
70017417 mov r1, #255
7002
- ldr r0, [r4, #-440]
7418
+ ldr r0, [r5, #-440]
70037419 mul r2, r2, r3
70047420 bl ftl_memset
7005
- ldr ip, .L1175+8
7006
- mov r1, #0
7007
- mov r3, r4
7008
- sub r7, ip, #28
7009
- mov r4, #12
7010
- mov r5, r1
7011
-.L1171:
7012
- ldrh r2, [ip]
7013
- add lr, r1, #1
7014
- uxth r1, r1
7015
- ldr r0, .L1175
7016
- cmp r2, r1
7017
- bls .L1174
7018
- mul r0, r4, r1
7019
- ldr r2, [r3, #-3380]
7020
- add r8, r2, r0
7021
- str r5, [r8, #4]
7022
- strh r6, [r2, r0] @ movhi
7023
- ldr r2, [r3, #-3380]
7024
- add r0, r2, r0
7025
- ldrh r2, [r7]
7026
- mul r2, r1, r2
7027
- ldr r1, [r3, #-440]
7028
- bic r2, r2, #3
7029
- add r2, r1, r2
7030
- mov r1, lr
7031
- str r2, [r0, #8]
7032
- b .L1171
7033
-.L1174:
7034
- ldr r2, .L1175+12
7421
+ mov r2, #0
7422
+ mov r3, r5
7423
+ mov r1, r6
7424
+ add ip, r6, #30
7425
+ mov r5, #12
7426
+ mov r6, r2
7427
+.L1167:
7428
+ ldrh r8, [ip]
7429
+ uxth r0, r2
7430
+ add lr, r2, #1
7431
+ cmp r8, r0
7432
+ bhi .L1168
7433
+ ldr r2, .L1170+8
70357434 mvn r1, #0
70367435 strh r1, [r2, #2] @ movhi
70377436 strh r1, [r2] @ movhi
7038
- ldr r1, [r0, #2416]
7437
+ ldr r1, [r4, #2420]
70397438 strh r1, [r2, #10] @ movhi
7040
- ldr r1, .L1175+16
7439
+ ldr r1, .L1170+12
70417440 strh r1, [r2, #4] @ movhi
70427441 ldrh r1, [r2, #44]
70437442 strh r1, [r2, #8] @ movhi
7044
- movw r1, #2424
7045
- ldrh r1, [r0, r1]
7443
+ movw r1, #2428
7444
+ ldrh r1, [r4, r1]
70467445 strh r1, [r2, #6] @ movhi
70477446 ldr r2, [r3, #-472]
70487447 str r2, [r3, #-420]
....@@ -7052,236 +7451,249 @@
70527451 str r2, [r3, #-412]
70537452 ldr r2, [r3, #-452]
70547453 str r2, [r3, #-408]
7055
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
7056
-.L1176:
7454
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
7455
+.L1168:
7456
+ uxth r2, r2
7457
+ ldr r8, [r3, #-3376]
7458
+ mul r0, r5, r2
7459
+ add r9, r8, r0
7460
+ str r6, [r9, #4]
7461
+ strh r7, [r8, r0] @ movhi
7462
+ ldr r8, [r3, #-3376]
7463
+ add r0, r8, r0
7464
+ ldrh r8, [r1]
7465
+ mul r2, r2, r8
7466
+ ldr r8, [r3, #-440]
7467
+ bic r2, r2, #3
7468
+ add r2, r8, r2
7469
+ str r2, [r0, #8]
7470
+ mov r2, lr
7471
+ b .L1167
7472
+.L1171:
70577473 .align 2
7058
-.L1175:
7474
+.L1170:
70597475 .word .LANCHOR0
70607476 .word .LANCHOR2
7061
- .word .LANCHOR0+2426
70627477 .word .LANCHOR2-432
70637478 .word -3902
70647479 .fnend
70657480 .size FtlL2PDataInit, .-FtlL2PDataInit
70667481 .align 2
70677482 .global FtlVariablesInit
7483
+ .syntax unified
7484
+ .arm
7485
+ .fpu softvfp
70687486 .type FtlVariablesInit, %function
70697487 FtlVariablesInit:
70707488 .fnstart
70717489 @ args = 0, pretend = 0, frame = 0
70727490 @ frame_needed = 0, uses_anonymous_args = 0
7073
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
7074
- .save {r3, r4, r5, r6, r7, lr}
7491
+ push {r4, r5, r6, r7, r8, lr}
7492
+ .save {r4, r5, r6, r7, r8, lr}
70757493 mvn r3, #0
7076
- ldr r5, .L1179
7494
+ ldr r5, .L1174
70777495 mov r4, #0
7078
- ldr r6, .L1179+4
70797496 mov r1, r4
7497
+ movw r7, #2334
7498
+ ldr r6, .L1174+4
70807499 sub r2, r5, #380
7081
- movw r7, #2330
70827500 str r3, [r5, #-368]
70837501 strh r3, [r2] @ movhi
7084
- movw r3, #2434
7502
+ movw r3, #2438
70857503 strh r4, [r6, r3] @ movhi
7086
- movw r3, #2408
7504
+ movw r3, #2412
70877505 ldrh r2, [r6, r3]
7088
- ldr r0, [r6, #2436]
7506
+ ldr r0, [r6, #2440]
70897507 str r4, [r5, #-384]
7090
- mov r2, r2, asl #1
70917508 str r4, [r5, #-376]
7509
+ lsl r2, r2, #1
70927510 str r4, [r5, #-372]
7093
- str r4, [r6, #2244]
7511
+ str r4, [r6, #2248]
70947512 bl ftl_memset
70957513 ldrh r2, [r6, r7]
70967514 mov r1, r4
7097
- ldr r0, [r5, #-3608]
7098
- mov r2, r2, asl #1
7515
+ ldr r0, [r5, #-3604]
7516
+ lsl r2, r2, #1
70997517 bl ftl_memset
71007518 ldrh r2, [r6, r7]
71017519 mov r1, r4
71027520 ldr r0, [r5, #-484]
7103
- mov r2, r2, asl #1
7521
+ lsl r2, r2, #1
71047522 bl ftl_memset
7523
+ sub r0, r5, #3584
71057524 mov r1, r4
7106
- sub r0, r5, #3600
71077525 mov r2, #48
7526
+ sub r0, r0, #12
71087527 bl ftl_memset
7109
- mov r1, r4
7110
- mov r2, #512
71117528 sub r0, r5, #3232
7529
+ mov r2, #512
7530
+ mov r1, r4
7531
+ sub r0, r0, #4
71127532 bl ftl_memset
71137533 bl FtlGcBufInit
71147534 bl FtlL2PDataInit
71157535 mov r0, r4
7116
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
7117
-.L1180:
7536
+ pop {r4, r5, r6, r7, r8, pc}
7537
+.L1175:
71187538 .align 2
7119
-.L1179:
7539
+.L1174:
71207540 .word .LANCHOR2
71217541 .word .LANCHOR0
71227542 .fnend
71237543 .size FtlVariablesInit, .-FtlVariablesInit
71247544 .align 2
71257545 .global SupperBlkListInit
7546
+ .syntax unified
7547
+ .arm
7548
+ .fpu softvfp
71267549 .type SupperBlkListInit, %function
71277550 SupperBlkListInit:
71287551 .fnstart
7129
- @ args = 0, pretend = 0, frame = 24
7552
+ @ args = 0, pretend = 0, frame = 16
71307553 @ frame_needed = 0, uses_anonymous_args = 0
7131
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7554
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
71327555 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7133
- movw r3, #2330
7134
- ldr r10, .L1193
7556
+ movw r3, #2334
7557
+ ldr r6, .L1187
7558
+ mov r4, #0
71357559 mov r2, #6
7136
- ldr r6, .L1193+4
7560
+ .pad #20
7561
+ sub sp, sp, #20
7562
+ ldr r5, .L1187+4
71377563 mov r1, #0
7138
- .pad #28
7139
- sub sp, sp, #28
7140
- mov r7, #0
7141
- ldrh r3, [r10, r3]
7142
- mov r4, r7
7143
- ldr r0, [r6, #-3552]
7144
- mov r8, r7
7145
- mov r9, r7
7146
- mov r5, r6
7564
+ ldrh r3, [r6, r3]
7565
+ mov r9, r4
7566
+ mov r10, r4
7567
+ ldr r0, [r5, #-3548]
7568
+ sub r7, r5, #3520
71477569 mul r2, r2, r3
71487570 bl ftl_memset
7149
- sub r3, r6, #3520
7150
- sub r1, r6, #3536
7151
- mov fp, r6
7152
- strh r7, [r3, #-8] @ movhi
7153
- sub r3, r6, #568
7154
- str r7, [r6, #-3532]
7155
- str r7, [r6, #-3548]
7156
- str r7, [r6, #-3540]
7157
- strh r7, [r1] @ movhi
7158
- strh r7, [r3] @ movhi
7159
- str r10, [sp, #8]
7160
- str r1, [sp, #12]
7161
-.L1182:
7162
- ldr r3, .L1193+8
7163
- uxth r7, r4
7164
- sxth r10, r7
7165
- ldrh r2, [r3]
7166
- cmp r10, r2
7167
- bge .L1189
7168
- sub r3, r3, #8
7169
- ldr r2, .L1193+12
7170
- mov ip, r7
7571
+ sub r3, r5, #568
7572
+ str r4, [r5, #-3528]
7573
+ str r4, [r5, #-3544]
7574
+ str r4, [r5, #-3536]
7575
+ strh r4, [r7, #-12] @ movhi
7576
+ strh r4, [r7, #-4] @ movhi
7577
+ strh r4, [r3] @ movhi
7578
+ str r6, [sp]
7579
+.L1177:
7580
+ ldr r3, .L1187+8
7581
+ sxth r8, r4
71717582 ldrh r3, [r3]
7172
- str r3, [sp]
7173
- ldrh r3, [r2]
7174
- mov r2, #0
7175
- mov r6, r2
7176
- str r3, [sp, #4]
7177
-.L1190:
7583
+ cmp r8, r3
7584
+ bge .L1184
7585
+ ldr r3, .L1187+12
7586
+ uxth r1, r4
7587
+ mov fp, #0
7588
+ mov r6, fp
7589
+ str r1, [sp, #4]
7590
+ ldrh r2, [r3]
7591
+ add r3, r3, #66
7592
+ ldrh r3, [r3]
7593
+ b .L1185
7594
+.L1179:
7595
+ str r3, [sp, #12]
7596
+ add fp, fp, #1
71787597 ldr r3, [sp]
7179
- sxth r1, r2
7180
- cmp r1, r3
7181
- bge .L1192
7182
- ldr r3, [sp, #8]
7183
- str r2, [sp, #20]
7184
- add r1, r3, r1
7185
- str ip, [sp, #16]
7186
- ldrb r0, [r1, #2348] @ zero_extendqisi2
7187
- mov r1, ip
7598
+ str r2, [sp, #8]
7599
+ add r0, r3, r1
7600
+ ldr r1, [sp, #4]
7601
+ ldrb r0, [r0, #2350] @ zero_extendqisi2
71887602 bl V2P_block
71897603 bl FtlBbmIsBadBlock
7604
+ ldr r3, [sp, #12]
71907605 cmp r0, #0
7191
- ldr r2, [sp, #20]
7192
- ldr ip, [sp, #16]
7193
- ldreq r3, [sp, #4]
7194
- add r2, r2, #1
7606
+ ldr r2, [sp, #8]
71957607 addeq r6, r3, r6
7196
- uxtheq r6, r6
7197
- b .L1190
7198
-.L1192:
7608
+ sxtheq r6, r6
7609
+.L1185:
7610
+ sxth r1, fp
7611
+ cmp r1, r2
7612
+ blt .L1179
71997613 cmp r6, #0
7200
- beq .L1185
7201
- sxth r1, r6
7614
+ lsl fp, r8, #1
7615
+ ldreq r3, [r5, #-3540]
7616
+ mvneq r2, #0
7617
+ strheq r2, [r3, fp] @ movhi
7618
+ beq .L1181
7619
+ mov r1, r6
72027620 mov r0, #32768
72037621 bl __aeabi_idiv
7204
- uxth r6, r0
7205
- b .L1186
7206
-.L1185:
7207
- sxth r7, r7
7208
- ldr r2, [r5, #-3544]
7209
- mvn r1, #0
7210
- mov r7, r7, asl #1
7211
- strh r1, [r2, r7] @ movhi
7212
-.L1186:
7213
- mov r1, r10, asl #1
7214
- ldr r2, [r5, #-3552]
7215
- add r0, r1, r10
7216
- add r2, r2, r0, asl #1
7217
- strh r6, [r2, #4] @ movhi
7218
- ldr r2, .L1193+16
7219
- ldrh r0, [r2]
7220
- cmp r10, r0
7221
- beq .L1187
7222
- ldrh r0, [r2, #48]
7223
- cmp r10, r0
7224
- beq .L1187
7225
- ldrh r2, [r2, #96]
7226
- cmp r10, r2
7227
- beq .L1187
7228
- ldr r3, [fp, #-3544]
7622
+ sxth r6, r0
7623
+.L1181:
7624
+ ldr r2, [r5, #-3548]
7625
+ add r3, fp, r8
7626
+ add r3, r2, r3, lsl #1
7627
+ strh r6, [r3, #4] @ movhi
7628
+ ldrh r3, [r7]
7629
+ cmp r8, r3
7630
+ beq .L1182
7631
+ ldr r3, .L1187+16
7632
+ ldrh r3, [r3]
7633
+ cmp r8, r3
7634
+ beq .L1182
7635
+ ldr r3, .L1187+20
7636
+ ldrh r3, [r3]
7637
+ cmp r8, r3
7638
+ beq .L1182
7639
+ ldr r3, [r5, #-3540]
72297640 uxth r0, r4
7230
- ldrh r3, [r3, r1]
7641
+ ldrh r3, [r3, fp]
72317642 cmp r3, #0
7232
- bne .L1188
7233
- add r8, r8, #1
7234
- uxth r8, r8
7235
- bl INSERT_FREE_LIST
7236
- b .L1187
7237
-.L1188:
7643
+ bne .L1183
72387644 add r9, r9, #1
72397645 uxth r9, r9
7240
- bl INSERT_DATA_LIST
7241
-.L1187:
7646
+ bl INSERT_FREE_LIST
7647
+.L1182:
72427648 add r4, r4, #1
7649
+ b .L1177
7650
+.L1183:
7651
+ add r10, r10, #1
7652
+ uxth r10, r10
7653
+ bl INSERT_DATA_LIST
72437654 b .L1182
7244
-.L1189:
7245
- ldr r3, [sp, #12]
7655
+.L1184:
72467656 mov r0, #0
7247
- strh r9, [r3] @ movhi
7248
- ldr r3, .L1193+20
7249
- strh r8, [r3, #-8] @ movhi
7250
- add sp, sp, #28
7657
+ strh r10, [r7, #-12] @ movhi
7658
+ strh r9, [r7, #-4] @ movhi
7659
+ add sp, sp, #20
72517660 @ sp needed
7252
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7253
-.L1194:
7661
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7662
+.L1188:
72547663 .align 2
7255
-.L1193:
7664
+.L1187:
72567665 .word .LANCHOR0
72577666 .word .LANCHOR2
7258
- .word .LANCHOR0+2328
7259
- .word .LANCHOR0+2388
7260
- .word .LANCHOR2-3524
7261
- .word .LANCHOR2-3520
7667
+ .word .LANCHOR0+2332
7668
+ .word .LANCHOR0+2324
7669
+ .word .LANCHOR2-3472
7670
+ .word .LANCHOR2-3424
72627671 .fnend
72637672 .size SupperBlkListInit, .-SupperBlkListInit
72647673 .align 2
72657674 .global FtlGcPageVarInit
7675
+ .syntax unified
7676
+ .arm
7677
+ .fpu softvfp
72667678 .type FtlGcPageVarInit, %function
72677679 FtlGcPageVarInit:
72687680 .fnstart
72697681 @ args = 0, pretend = 0, frame = 0
72707682 @ frame_needed = 0, uses_anonymous_args = 0
7271
- stmfd sp!, {r4, r5, r6, lr}
7683
+ push {r4, r5, r6, lr}
72727684 .save {r4, r5, r6, lr}
72737685 mov r3, #0
7274
- ldr r4, .L1197
7275
- movw r5, #2392
7276
- ldr r6, .L1197+4
7686
+ ldr r4, .L1191
7687
+ movw r5, #2394
72777688 mov r1, #255
7689
+ ldr r6, .L1191+4
72787690 sub r2, r4, #2672
72797691 ldr r0, [r4, #-2680]
72807692 strh r3, [r2, #-4] @ movhi
72817693 sub r2, r4, #2656
72827694 strh r3, [r2, #-12] @ movhi
72837695 ldrh r2, [r6, r5]
7284
- mov r2, r2, asl #1
7696
+ lsl r2, r2, #1
72857697 bl ftl_memset
72867698 ldrh r3, [r6, r5]
72877699 mov r2, #12
....@@ -7289,17 +7701,20 @@
72897701 mov r1, #255
72907702 mul r2, r2, r3
72917703 bl ftl_memset
7292
- ldmfd sp!, {r4, r5, r6, lr}
7704
+ pop {r4, r5, r6, lr}
72937705 b FtlGcBufInit
7294
-.L1198:
7706
+.L1192:
72957707 .align 2
7296
-.L1197:
7708
+.L1191:
72977709 .word .LANCHOR2
72987710 .word .LANCHOR0
72997711 .fnend
73007712 .size FtlGcPageVarInit, .-FtlGcPageVarInit
73017713 .align 2
73027714 .global ftl_memcpy
7715
+ .syntax unified
7716
+ .arm
7717
+ .fpu softvfp
73037718 .type ftl_memcpy, %function
73047719 ftl_memcpy:
73057720 .fnstart
....@@ -7311,158 +7726,155 @@
73117726 .size ftl_memcpy, .-ftl_memcpy
73127727 .align 2
73137728 .global FlashReadIdbData
7729
+ .syntax unified
7730
+ .arm
7731
+ .fpu softvfp
73147732 .type FlashReadIdbData, %function
73157733 FlashReadIdbData:
73167734 .fnstart
73177735 @ args = 0, pretend = 0, frame = 0
73187736 @ frame_needed = 0, uses_anonymous_args = 0
7319
- stmfd sp!, {r3, lr}
7320
- .save {r3, lr}
7737
+ push {r4, lr}
7738
+ .save {r4, lr}
73217739 mov r2, #2048
7322
- ldr r1, .L1202
7740
+ ldr r1, .L1196
73237741 bl ftl_memcpy
73247742 mov r0, #0
7325
- ldmfd sp!, {r3, pc}
7326
-.L1203:
7743
+ pop {r4, pc}
7744
+.L1197:
73277745 .align 2
7328
-.L1202:
7746
+.L1196:
73297747 .word .LANCHOR2-364
73307748 .fnend
73317749 .size FlashReadIdbData, .-FlashReadIdbData
73327750 .align 2
73337751 .global FlashLoadPhyInfoInRam
7752
+ .syntax unified
7753
+ .arm
7754
+ .fpu softvfp
73347755 .type FlashLoadPhyInfoInRam, %function
73357756 FlashLoadPhyInfoInRam:
73367757 .fnstart
73377758 @ args = 0, pretend = 0, frame = 0
73387759 @ frame_needed = 0, uses_anonymous_args = 0
7339
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
7340
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
7760
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
7761
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
73417762 mov r4, #0
7342
- ldr r8, .L1217
7343
-.L1208:
7344
- mov r7, r4, asl #5
7345
- ldr r1, .L1217+4
7346
- add r0, r7, #1
7347
- ldrb r2, [r8, r4, asl #5] @ zero_extendqisi2
7348
- add r0, r8, r0
7349
- ldr r6, .L1217+8
7763
+ ldr r5, .L1207
7764
+ ldr r9, .L1207+4
7765
+ add r6, r5, #504
7766
+.L1201:
7767
+ lsl r8, r4, #5
7768
+ ldrb r2, [r6, r4, lsl #5] @ zero_extendqisi2
7769
+ mov r1, r9
7770
+ add r0, r8, #1
7771
+ add r0, r6, r0
73507772 bl FlashMemCmp8
7351
- add r9, r6, #508
7352
- subs r5, r0, #0
7353
- bne .L1205
7354
- adds r9, r9, r7
7355
- beq .L1211
7356
- add r4, r6, r7
7357
- mov r3, r5
7358
- ldr r1, .L1217+12
7359
- ldrb r2, [r4, #530] @ zero_extendqisi2
7360
- b .L1210
7361
-.L1205:
7362
- add r4, r4, #1
7363
- cmp r4, #86
7364
- bne .L1208
7365
- b .L1211
7366
-.L1216:
7773
+ subs r7, r0, #0
7774
+ bne .L1199
7775
+ add r5, r5, r8
7776
+ ldr r2, .L1207+8
7777
+ ldrb r0, [r5, #526] @ zero_extendqisi2
7778
+ add r6, r6, r8
7779
+ mov r3, r7
7780
+ mov r1, r2
7781
+.L1200:
7782
+ ldrb ip, [r2, r3, lsl #5] @ zero_extendqisi2
7783
+ cmp ip, r0
7784
+ beq .L1203
73677785 add r3, r3, #1
73687786 cmp r3, #4
7369
- beq .L1209
7370
-.L1210:
7371
- ldrb r0, [r1, r3, asl #5] @ zero_extendqisi2
7372
- cmp r0, r2
7373
- bne .L1216
7374
-.L1209:
7375
- ldr r4, .L1217+16
7787
+ bne .L1200
7788
+.L1203:
7789
+ ldr r4, .L1207+12
7790
+ add r1, r1, r3, lsl #5
73767791 mov r2, #32
7377
- ldr r1, .L1217+12
7378
- ldr r0, .L1217+20
7379
- add r1, r1, r3, asl #5
7792
+ ldr r0, .L1207+16
73807793 bl ftl_memcpy
7381
- mov r0, r4
7382
- mov r1, r9
73837794 mov r2, #32
7795
+ mov r1, r6
7796
+ mov r0, r4
73847797 bl ftl_memcpy
73857798 ldrh r0, [r4, #10]
73867799 bl FlashBlockAlignInit
7387
- b .L1206
7388
-.L1211:
7389
- mvn r5, #0
7390
-.L1206:
7391
- mov r0, r5
7392
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
7393
-.L1218:
7800
+ b .L1198
7801
+.L1199:
7802
+ add r4, r4, #1
7803
+ cmp r4, #86
7804
+ bne .L1201
7805
+ mvn r7, #0
7806
+.L1198:
7807
+ mov r0, r7
7808
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
7809
+.L1208:
73947810 .align 2
7395
-.L1217:
7396
- .word .LANCHOR1+508
7397
- .word .LANCHOR0+2068
7811
+.L1207:
73987812 .word .LANCHOR1
7399
- .word .LANCHOR1+3260
7400
- .word .LANCHOR1+472
7401
- .word .LANCHOR0+48
7813
+ .word .LANCHOR0+2072
7814
+ .word .LANCHOR1+3256
7815
+ .word .LANCHOR1+468
7816
+ .word .LANCHOR0+52
74027817 .fnend
74037818 .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam
74047819 .align 2
74057820 .global NandcCopy1KB
7821
+ .syntax unified
7822
+ .arm
7823
+ .fpu softvfp
74067824 .type NandcCopy1KB, %function
74077825 NandcCopy1KB:
74087826 .fnstart
74097827 @ args = 4, pretend = 0, frame = 0
74107828 @ frame_needed = 0, uses_anonymous_args = 0
74117829 cmp r1, #1
7412
- stmfd sp!, {r4, r5, r6, lr}
7830
+ push {r4, r5, r6, lr}
74137831 .save {r4, r5, r6, lr}
74147832 mov r4, r2
74157833 add r2, r0, #4096
7416
- ldr r5, [sp, #16]
74177834 add r6, r0, #512
7418
- add r2, r2, r4, asl #9
7419
- bne .L1220
7835
+ add r0, r2, r4, lsl #9
7836
+ ldr r5, [sp, #16]
7837
+ bne .L1210
74207838 cmp r3, #0
7421
- beq .L1221
7422
- mov r0, r2
7839
+ beq .L1211
7840
+ mov r2, #1024
74237841 mov r1, r3
7424
- mov r2, #1024
74257842 bl ftl_memcpy
7426
-.L1221:
7843
+.L1211:
74277844 cmp r5, #0
7428
- ldmeqfd sp!, {r4, r5, r6, pc}
7429
- ldrb r3, [r5, #2] @ zero_extendqisi2
7430
- mov r4, r4, lsr #1
7431
- ldrb r2, [r5, #1] @ zero_extendqisi2
7432
- add r4, r4, r4, asl #1
7433
- mov r3, r3, asl #16
7434
- orr r2, r3, r2, asl #8
7435
- ldrb r3, [r5] @ zero_extendqisi2
7436
- orr r3, r2, r3
7437
- ldrb r2, [r5, #3] @ zero_extendqisi2
7438
- orr r3, r3, r2, asl #24
7439
- str r3, [r6, r4, asl #4]
7440
- ldmfd sp!, {r4, r5, r6, pc}
7441
-.L1220:
7845
+ lsrne r4, r4, #1
7846
+ ldrne r3, [r5] @ unaligned
7847
+ addne r4, r4, r4, lsl #1
7848
+ strne r3, [r6, r4, lsl #4]
7849
+ pop {r4, r5, r6, pc}
7850
+.L1210:
74427851 cmp r3, #0
7443
- beq .L1224
7444
- mov r1, r2
7445
- mov r0, r3
7852
+ beq .L1214
7853
+ mov r1, r0
74467854 mov r2, #1024
7855
+ mov r0, r3
74477856 bl ftl_memcpy
7448
-.L1224:
7857
+.L1214:
74497858 cmp r5, #0
7450
- ldmeqfd sp!, {r4, r5, r6, pc}
7451
- mov r4, r4, lsr #1
7452
- add r4, r4, r4, asl #1
7453
- ldr r3, [r6, r4, asl #4]
7454
- mov r2, r3, lsr #8
7859
+ popeq {r4, r5, r6, pc}
7860
+ lsr r4, r4, #1
7861
+ add r4, r4, r4, lsl #1
7862
+ ldr r3, [r6, r4, lsl #4]
74557863 strb r3, [r5]
7864
+ lsr r2, r3, #8
74567865 strb r2, [r5, #1]
7457
- mov r2, r3, lsr #16
7458
- mov r3, r3, lsr #24
7866
+ lsr r2, r3, #16
7867
+ lsr r3, r3, #24
74597868 strb r2, [r5, #2]
74607869 strb r3, [r5, #3]
7461
- ldmfd sp!, {r4, r5, r6, pc}
7870
+ pop {r4, r5, r6, pc}
74627871 .fnend
74637872 .size NandcCopy1KB, .-NandcCopy1KB
74647873 .align 2
74657874 .global ftl_memcpy32
7875
+ .syntax unified
7876
+ .arm
7877
+ .fpu softvfp
74667878 .type ftl_memcpy32, %function
74677879 ftl_memcpy32:
74687880 .fnstart
....@@ -7470,18 +7882,22 @@
74707882 @ frame_needed = 0, uses_anonymous_args = 0
74717883 @ link register save eliminated.
74727884 mov r3, #0
7473
-.L1237:
7885
+.L1227:
74747886 cmp r3, r2
7475
- ldrne ip, [r1, r3, asl #2]
7476
- strne ip, [r0, r3, asl #2]
7477
- addne r3, r3, #1
7478
- bne .L1237
7479
-.L1239:
7887
+ bne .L1228
74807888 bx lr
7889
+.L1228:
7890
+ ldr ip, [r1, r3, lsl #2]
7891
+ str ip, [r0, r3, lsl #2]
7892
+ add r3, r3, #1
7893
+ b .L1227
74817894 .fnend
74827895 .size ftl_memcpy32, .-ftl_memcpy32
74837896 .align 2
74847897 .global ftl_memcmp
7898
+ .syntax unified
7899
+ .arm
7900
+ .fpu softvfp
74857901 .type ftl_memcmp, %function
74867902 ftl_memcmp:
74877903 .fnstart
....@@ -7493,52 +7909,60 @@
74937909 .size ftl_memcmp, .-ftl_memcmp
74947910 .align 2
74957911 .global timer_get_time
7912
+ .syntax unified
7913
+ .arm
7914
+ .fpu softvfp
74967915 .type timer_get_time, %function
74977916 timer_get_time:
74987917 .fnstart
74997918 @ args = 0, pretend = 0, frame = 0
75007919 @ frame_needed = 0, uses_anonymous_args = 0
75017920 @ link register save eliminated.
7502
- ldr r3, .L1242
7921
+ ldr r3, .L1231
75037922 ldr r0, [r3]
75047923 b jiffies_to_msecs
7505
-.L1243:
7924
+.L1232:
75067925 .align 2
7507
-.L1242:
7926
+.L1231:
75087927 .word jiffies
75097928 .fnend
75107929 .size timer_get_time, .-timer_get_time
75117930 .align 2
75127931 .global FlashSramLoadStore
7932
+ .syntax unified
7933
+ .arm
7934
+ .fpu softvfp
75137935 .type FlashSramLoadStore, %function
75147936 FlashSramLoadStore:
75157937 .fnstart
75167938 @ args = 0, pretend = 0, frame = 0
75177939 @ frame_needed = 0, uses_anonymous_args = 0
7518
- ldr ip, .L1248
7940
+ ldr ip, .L1238
75197941 cmp r2, #0
75207942 moveq r2, r3
75217943 ldr ip, [ip, #1684]
75227944 add ip, ip, #4096
7523
- add r1, ip, r1
7524
- beq .L1247
7525
- str lr, [sp, #-4]!
7945
+ add ip, ip, r1
7946
+ moveq r1, ip
7947
+ strne lr, [sp, #-4]!
75267948 .save {lr}
7527
- mov lr, r0
7528
- mov r0, r1
7529
- mov r1, lr
7530
- ldr lr, [sp], #4
7531
- mov r2, r3
7532
-.L1247:
7949
+ movne r1, r0
7950
+ ldrne lr, [sp], #4
7951
+ movne r2, r3
7952
+ movne r0, ip
7953
+.L1237:
75337954 b ftl_memcpy
7534
-.L1249:
7955
+.L1239:
75357956 .align 2
7536
-.L1248:
7957
+.L1238:
75377958 .word .LANCHOR2
75387959 .fnend
75397960 .size FlashSramLoadStore, .-FlashSramLoadStore
75407961 .align 2
75417962 .global FlashCs123Init
7963
+ .syntax unified
7964
+ .arm
7965
+ .fpu softvfp
75427966 .type FlashCs123Init, %function
75437967 FlashCs123Init:
75447968 .fnstart
....@@ -7549,7 +7973,51 @@
75497973 .fnend
75507974 .size FlashCs123Init, .-FlashCs123Init
75517975 .align 2
7976
+ .global ftl_dma32_malloc
7977
+ .syntax unified
7978
+ .arm
7979
+ .fpu softvfp
7980
+ .type ftl_dma32_malloc, %function
7981
+ftl_dma32_malloc:
7982
+ .fnstart
7983
+ @ args = 0, pretend = 0, frame = 0
7984
+ @ frame_needed = 0, uses_anonymous_args = 0
7985
+ cmp r0, #8192
7986
+ ble .L1242
7987
+ b ftl_malloc
7988
+.L1242:
7989
+ push {r4, r5, r6, lr}
7990
+ .save {r4, r5, r6, lr}
7991
+ add r4, r0, #63
7992
+ ldr r5, .L1246
7993
+ bic r4, r4, #63
7994
+ ldr r3, [r5, #1688]
7995
+ cmp r4, r3
7996
+ ble .L1243
7997
+ mov r0, #16384
7998
+ bl ftl_malloc
7999
+ mov r3, #16384
8000
+ str r0, [r5, #1692]
8001
+ str r3, [r5, #1688]
8002
+.L1243:
8003
+ ldr r3, [r5, #1688]
8004
+ ldr r0, [r5, #1692]
8005
+ sub r3, r3, r4
8006
+ add r4, r0, r4
8007
+ str r3, [r5, #1688]
8008
+ str r4, [r5, #1692]
8009
+ pop {r4, r5, r6, pc}
8010
+.L1247:
8011
+ .align 2
8012
+.L1246:
8013
+ .word .LANCHOR2
8014
+ .fnend
8015
+ .size ftl_dma32_malloc, .-ftl_dma32_malloc
8016
+ .align 2
75528017 .global rk_nand_suspend
8018
+ .syntax unified
8019
+ .arm
8020
+ .fpu softvfp
75538021 .type rk_nand_suspend, %function
75548022 rk_nand_suspend:
75558023 .fnstart
....@@ -7561,6 +8029,9 @@
75618029 .size rk_nand_suspend, .-rk_nand_suspend
75628030 .align 2
75638031 .global rk_nand_resume
8032
+ .syntax unified
8033
+ .arm
8034
+ .fpu softvfp
75648035 .type rk_nand_resume, %function
75658036 rk_nand_resume:
75668037 .fnstart
....@@ -7572,23 +8043,29 @@
75728043 .size rk_nand_resume, .-rk_nand_resume
75738044 .align 2
75748045 .global rk_ftl_get_capacity
8046
+ .syntax unified
8047
+ .arm
8048
+ .fpu softvfp
75758049 .type rk_ftl_get_capacity, %function
75768050 rk_ftl_get_capacity:
75778051 .fnstart
75788052 @ args = 0, pretend = 0, frame = 0
75798053 @ frame_needed = 0, uses_anonymous_args = 0
75808054 @ link register save eliminated.
7581
- ldr r3, .L1254
7582
- ldr r0, [r3, #2428]
8055
+ ldr r3, .L1251
8056
+ ldr r0, [r3, #2432]
75838057 bx lr
7584
-.L1255:
8058
+.L1252:
75858059 .align 2
7586
-.L1254:
8060
+.L1251:
75878061 .word .LANCHOR0
75888062 .fnend
75898063 .size rk_ftl_get_capacity, .-rk_ftl_get_capacity
75908064 .align 2
75918065 .global rk_nandc_get_irq_status
8066
+ .syntax unified
8067
+ .arm
8068
+ .fpu softvfp
75928069 .type rk_nandc_get_irq_status, %function
75938070 rk_nandc_get_irq_status:
75948071 .fnstart
....@@ -7601,6 +8078,9 @@
76018078 .size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status
76028079 .align 2
76038080 .global rknand_proc_ftlread
8081
+ .syntax unified
8082
+ .arm
8083
+ .fpu softvfp
76048084 .type rknand_proc_ftlread, %function
76058085 rknand_proc_ftlread:
76068086 .fnstart
....@@ -7612,6 +8092,9 @@
76128092 .size rknand_proc_ftlread, .-rknand_proc_ftlread
76138093 .align 2
76148094 .global ReadFlashInfo
8095
+ .syntax unified
8096
+ .arm
8097
+ .fpu softvfp
76158098 .type ReadFlashInfo, %function
76168099 ReadFlashInfo:
76178100 .fnstart
....@@ -7623,266 +8106,275 @@
76238106 .size ReadFlashInfo, .-ReadFlashInfo
76248107 .align 2
76258108 .global rknand_print_hex
8109
+ .syntax unified
8110
+ .arm
8111
+ .fpu softvfp
76268112 .type rknand_print_hex, %function
76278113 rknand_print_hex:
76288114 .fnstart
76298115 @ args = 0, pretend = 0, frame = 0
76308116 @ frame_needed = 0, uses_anonymous_args = 0
7631
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
7632
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
8117
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
8118
+ .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
76338119 mov r5, #0
7634
- mov r9, r0
8120
+ ldr r7, .L1266
8121
+ mov r10, r0
76358122 mov r6, r1
7636
- mov r7, r2
7637
- mov r8, r3
8123
+ mov r8, r2
8124
+ ldr fp, .L1266+4
8125
+ mov r9, r3
76388126 mov r4, r5
7639
-.L1260:
7640
- cmp r4, r8
7641
- beq .L1269
8127
+.L1257:
8128
+ cmp r4, r9
8129
+ bne .L1263
8130
+ ldr r1, .L1266+4
8131
+ ldr r0, .L1266+8
8132
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
8133
+ b printk
8134
+.L1263:
76428135 cmp r5, #0
7643
- bne .L1261
7644
- ldr r0, .L1270
7645
- mov r1, r9
7646
- mov r2, r6
8136
+ bne .L1258
76478137 mov r3, r4
8138
+ mov r2, r6
8139
+ mov r1, r10
8140
+ ldr r0, .L1266+12
76488141 bl printk
7649
-.L1261:
7650
- cmp r7, #4
7651
- ldreq r0, .L1270+4
7652
- ldreq r1, [r6, r4, asl #2]
7653
- beq .L1268
7654
- cmp r7, #2
7655
- moveq r3, r4, asl #1
7656
- ldreq r0, .L1270+4
7657
- ldreqsh r1, [r6, r3]
7658
- ldrne r0, .L1270+4
7659
- ldrneb r1, [r6, r4] @ zero_extendqisi2
7660
-.L1268:
8142
+.L1258:
8143
+ cmp r8, #4
8144
+ ldreq r1, [r6, r4, lsl #2]
8145
+ beq .L1265
8146
+ cmp r8, #2
8147
+ lsleq r3, r4, #1
8148
+ ldrbne r1, [r6, r4] @ zero_extendqisi2
8149
+ ldrsheq r1, [r6, r3]
8150
+.L1265:
8151
+ mov r0, r7
76618152 add r5, r5, #1
76628153 bl printk
76638154 cmp r5, #15
7664
- bls .L1265
7665
- ldr r0, .L1270+8
8155
+ bls .L1262
76668156 mov r5, #0
7667
- ldr r1, .L1270+12
8157
+ mov r1, fp
8158
+ ldr r0, .L1266+8
76688159 bl printk
7669
-.L1265:
8160
+.L1262:
76708161 add r4, r4, #1
7671
- b .L1260
7672
-.L1269:
7673
- ldr r0, .L1270+8
7674
- ldr r1, .L1270+12
7675
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
7676
- b printk
7677
-.L1271:
8162
+ b .L1257
8163
+.L1267:
76788164 .align 2
7679
-.L1270:
7680
- .word .LC82
8165
+.L1266:
76818166 .word .LC83
7682
- .word .LC76
76838167 .word .LC84
8168
+ .word .LC77
8169
+ .word .LC82
76848170 .fnend
76858171 .size rknand_print_hex, .-rknand_print_hex
76868172 .align 2
76878173 .global HynixGetReadRetryDefault
8174
+ .syntax unified
8175
+ .arm
8176
+ .fpu softvfp
76888177 .type HynixGetReadRetryDefault, %function
76898178 HynixGetReadRetryDefault:
76908179 .fnstart
7691
- @ args = 0, pretend = 0, frame = 40
8180
+ @ args = 0, pretend = 0, frame = 56
76928181 @ frame_needed = 0, uses_anonymous_args = 0
7693
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8182
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
76948183 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7695
- cmp r0, #2
7696
- ldr r7, .L1381
76978184 mvn r3, #83
8185
+ ldr r7, .L1384
8186
+ cmp r0, #2
76988187 mvn r1, #82
76998188 mvn r2, #81
7700
- .pad #44
7701
- sub sp, sp, #44
8189
+ .pad #60
8190
+ sub sp, sp, #60
77028191 mov r4, r0
7703
- strb r3, [r7, #1214]
7704
- mvn r3, #80
7705
- strb r0, [r7, #1210]
7706
- strb r1, [r7, #1215]
7707
- strb r2, [r7, #1216]
7708
- strb r3, [r7, #1217]
7709
- bne .L1273
7710
- mvn r3, #88
7711
- strb r3, [r7, #1214]
7712
- ldr r3, .L1381+4
7713
- mvn r2, #8
7714
- mov r5, #7
7715
- strb r2, [r3, #3405]
7716
- b .L1334
7717
-.L1273:
7718
- cmp r0, #3
7719
- bne .L1275
7720
- mvn r3, #79
7721
- strb r3, [r7, #1214]
7722
- mvn r3, #78
7723
- strb r3, [r7, #1215]
7724
- mvn r3, #77
7725
- strb r3, [r7, #1216]
7726
- mvn r3, #76
7727
- strb r3, [r7, #1217]
7728
- mvn r3, #75
7729
- strb r3, [r7, #1218]
7730
- mvn r3, #74
7731
- strb r3, [r7, #1219]
7732
- mvn r3, #73
77338192 strb r3, [r7, #1220]
7734
- mvn r3, #72
7735
- b .L1375
7736
-.L1275:
7737
- cmp r0, #4
7738
- bne .L1276
7739
- mvn r0, #51
7740
- strb r1, [r7, #1219]
7741
- strb r0, [r7, #1214]
7742
- mvn r0, #64
7743
- strb r2, [r7, #1220]
7744
- strb r0, [r7, #1215]
7745
- mvn r0, #85
8193
+ mvn r3, #80
77468194 strb r0, [r7, #1216]
7747
- mvn r0, #84
7748
- strb r0, [r7, #1217]
7749
- mvn r0, #50
7750
- strb r0, [r7, #1218]
7751
-.L1375:
7752
- mov r5, #8
8195
+ strb r1, [r7, #1221]
8196
+ strb r2, [r7, #1222]
8197
+ strb r3, [r7, #1223]
8198
+ bne .L1269
8199
+ mvn r3, #88
8200
+ mov r5, #7
8201
+ strb r3, [r7, #1220]
8202
+ mvn r2, #8
8203
+ ldr r3, .L1384+4
8204
+ strb r2, [r3, #3401]
8205
+.L1334:
8206
+ mov r6, #4
8207
+ b .L1270
8208
+.L1269:
8209
+ cmp r0, #3
8210
+ bne .L1271
8211
+ mvn r3, #79
8212
+ strb r3, [r7, #1220]
8213
+ mvn r3, #78
77538214 strb r3, [r7, #1221]
8215
+ mvn r3, #77
8216
+ strb r3, [r7, #1222]
8217
+ mvn r3, #76
8218
+ strb r3, [r7, #1223]
8219
+ mvn r3, #75
8220
+ strb r3, [r7, #1224]
8221
+ mvn r3, #74
8222
+ strb r3, [r7, #1225]
8223
+ mvn r3, #73
8224
+ strb r3, [r7, #1226]
8225
+ mvn r3, #72
8226
+.L1379:
8227
+ mov r5, #8
8228
+ strb r3, [r7, #1227]
77548229 mov r6, r5
7755
- b .L1274
7756
-.L1276:
8230
+.L1270:
8231
+ sub r3, r4, #1
8232
+ cmp r3, #1
8233
+ bhi .L1276
8234
+ ldr fp, .L1384+8
8235
+ mov r10, #0
8236
+ ldr r2, .L1384+12
8237
+.L1277:
8238
+ ldrb r1, [r7, #2234] @ zero_extendqisi2
8239
+ uxtb r3, r10
8240
+ cmp r1, r3
8241
+ bhi .L1283
8242
+.L1284:
8243
+ ldr r3, .L1384
8244
+ strb r6, [r3, #1217]
8245
+ strb r5, [r3, #1218]
8246
+ add sp, sp, #60
8247
+ @ sp needed
8248
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8249
+.L1271:
8250
+ cmp r0, #4
8251
+ bne .L1272
8252
+ mvn r0, #51
8253
+ strb r1, [r7, #1225]
8254
+ strb r0, [r7, #1220]
8255
+ mvn r0, #64
8256
+ strb r0, [r7, #1221]
8257
+ mvn r0, #85
8258
+ strb r0, [r7, #1222]
8259
+ mvn r0, #84
8260
+ strb r0, [r7, #1223]
8261
+ mvn r0, #50
8262
+ strb r0, [r7, #1224]
8263
+ strb r2, [r7, #1226]
8264
+ b .L1379
8265
+.L1272:
77578266 cmp r0, #5
7758
- bne .L1277
8267
+ bne .L1273
77598268 mov r3, #56
77608269 mov r5, #8
7761
- strb r3, [r7, #1214]
8270
+ strb r3, [r7, #1220]
77628271 mov r3, #57
7763
- strb r3, [r7, #1215]
8272
+ strb r3, [r7, #1221]
77648273 mov r3, #58
7765
- strb r3, [r7, #1216]
8274
+ strb r3, [r7, #1222]
77668275 mov r3, #59
7767
- strb r3, [r7, #1217]
8276
+ strb r3, [r7, #1223]
77688277 b .L1334
7769
-.L1277:
8278
+.L1273:
77708279 cmp r0, #6
7771
- bne .L1278
8280
+ bne .L1274
77728281 mov r3, #14
77738282 mov r5, #12
7774
- strb r3, [r7, #1214]
8283
+ strb r3, [r7, #1220]
77758284 mov r3, #15
7776
- strb r3, [r7, #1215]
8285
+ strb r3, [r7, #1221]
77778286 mov r3, #16
7778
- strb r3, [r7, #1216]
8287
+ strb r3, [r7, #1222]
77798288 mov r3, #17
7780
- strb r3, [r7, #1217]
8289
+ strb r3, [r7, #1223]
77818290 b .L1334
7782
-.L1278:
8291
+.L1274:
77838292 cmp r0, #7
7784
- bne .L1279
8293
+ bne .L1275
77858294 mvn r3, #79
77868295 mov r5, #12
7787
- strb r3, [r7, #1214]
7788
- mov r6, #10
7789
- mvn r3, #78
7790
- strb r3, [r7, #1215]
7791
- mvn r3, #77
7792
- strb r3, [r7, #1216]
7793
- mvn r3, #76
7794
- strb r3, [r7, #1217]
7795
- mvn r3, #75
7796
- strb r3, [r7, #1218]
7797
- mvn r3, #74
7798
- strb r3, [r7, #1219]
7799
- mvn r3, #73
78008296 strb r3, [r7, #1220]
7801
- mvn r3, #72
8297
+ mvn r3, #78
78028298 strb r3, [r7, #1221]
7803
- mvn r3, #43
8299
+ mvn r3, #77
78048300 strb r3, [r7, #1222]
7805
- mvn r3, #42
8301
+ mvn r3, #76
78068302 strb r3, [r7, #1223]
7807
- b .L1274
7808
-.L1279:
8303
+ mvn r3, #75
8304
+ strb r3, [r7, #1224]
8305
+ mvn r3, #74
8306
+ strb r3, [r7, #1225]
8307
+ mvn r3, #73
8308
+ strb r3, [r7, #1226]
8309
+ mvn r3, #72
8310
+ strb r3, [r7, #1227]
8311
+ mvn r3, #43
8312
+ strb r3, [r7, #1228]
8313
+ mvn r3, #42
8314
+ strb r3, [r7, #1229]
8315
+ mov r6, #10
8316
+ b .L1270
8317
+.L1275:
78098318 cmp r0, #8
78108319 mov r5, #7
78118320 bne .L1334
78128321 mov r3, #6
7813
- strb r5, [r7, #1215]
7814
- strb r3, [r7, #1214]
7815
- mov r5, #50
8322
+ strb r5, [r7, #1221]
8323
+ strb r3, [r7, #1220]
78168324 mov r3, #9
7817
- strb r0, [r7, #1216]
7818
- strb r3, [r7, #1217]
7819
- mov r6, #5
8325
+ strb r3, [r7, #1223]
78208326 mov r3, #10
7821
- strb r3, [r7, #1218]
7822
- b .L1274
7823
-.L1334:
7824
- mov r6, #4
7825
-.L1274:
7826
- sub r3, r4, #1
7827
- cmp r3, #1
7828
- bhi .L1371
7829
- ldr r10, .L1381+8
7830
- mov r9, #0
7831
-.L1280:
7832
- ldrb r1, [r7, #2230] @ zero_extendqisi2
7833
- uxtb r2, r9
7834
- ldr r3, .L1381
7835
- cmp r1, r2
7836
- bls .L1287
7837
- add r2, r3, r2
7838
- ldr r4, .L1381+12
7839
- ldr r1, .L1381+16
7840
- mov ip, #55
7841
- ldrb r2, [r2, #2232] @ zero_extendqisi2
7842
- add r3, r3, r2, asl #3
7843
- add r4, r4, r2, asl #6
7844
- add r4, r4, #20
7845
- ldrb r8, [r3, #16] @ zero_extendqisi2
7846
- ldr r0, [r3, #12]
7847
- mov fp, r4
7848
- mov r2, r4
7849
- add r8, r0, r8, asl #8
7850
-.L1282:
7851
- str ip, [r8, #2056]
7852
- mov r0, #80
7853
- ldrb r3, [r1, #1]! @ zero_extendqisi2
7854
- str r2, [sp, #12]
7855
- str ip, [sp, #8]
7856
- str r3, [r8, #2052]
7857
- str r1, [sp, #4]
7858
- str r1, [sp, #16]
7859
- bl NandcDelayns
7860
- ldr r3, [r8, #2048]
7861
- ldr r2, [sp, #12]
7862
- ldmib sp, {r1, ip}
7863
- strb r3, [r2], #1
7864
- rsb r3, r4, r2
7865
- uxtb r3, r3
7866
- cmp r3, r6
7867
- bcc .L1282
7868
- mov r2, #0
8327
+ strb r0, [r7, #1222]
8328
+ mov r5, #50
8329
+ strb r3, [r7, #1224]
8330
+ mov r6, #5
8331
+ b .L1270
78698332 .L1283:
7870
- add r0, r10, r2
8333
+ add r3, r7, r3
8334
+ mov r8, #0
8335
+ ldrb r3, [r3, #2236] @ zero_extendqisi2
8336
+ mov r1, #55
8337
+ ldr r9, [r7, r3, lsl #3]
8338
+ add r4, fp, r3, lsl #6
8339
+ add r3, r7, r3, lsl #3
8340
+ ldrb r3, [r3, #4] @ zero_extendqisi2
8341
+ add r4, r4, #20
8342
+ add r9, r9, r3, lsl #8
8343
+.L1278:
8344
+ add r3, fp, r8
8345
+ str r1, [r9, #2056]
8346
+ ldrb r3, [r3, #4] @ zero_extendqisi2
8347
+ mov r0, #80
8348
+ str r2, [sp, #4]
8349
+ str r1, [sp]
8350
+ str r3, [r9, #2052]
8351
+ bl ndelay
8352
+ ldr r3, [r9, #2048]
8353
+ ldm sp, {r1, r2}
8354
+ strb r3, [r4, r8]
8355
+ add r8, r8, #1
8356
+ uxtb r3, r8
8357
+ cmp r6, r3
8358
+ bhi .L1278
8359
+ mov r0, r4
8360
+ mov r1, #0
8361
+.L1281:
78718362 mov r3, #1
7872
-.L1284:
7873
- ldrb r1, [r0, r3, asl #2] @ zero_extendqisi2
7874
- ldrb ip, [fp] @ zero_extendqisi2
7875
- add r1, r1, ip
7876
- strb r1, [fp, r3, asl #3]
8363
+ add lr, r2, r1
8364
+.L1280:
8365
+ ldrb ip, [lr, r3, lsl #2] @ zero_extendqisi2
8366
+ ldrb r8, [r0] @ zero_extendqisi2
8367
+ add ip, ip, r8
8368
+ strb ip, [r0, r3, lsl #3]
78778369 add r3, r3, #1
78788370 cmp r3, #7
7879
- bne .L1284
7880
- add r2, r2, #1
7881
- add fp, fp, #1
7882
- cmp r2, #4
7883
- bne .L1283
8371
+ bne .L1280
8372
+ add r1, r1, #1
8373
+ add r0, r0, #1
8374
+ cmp r1, #4
8375
+ bne .L1281
78848376 mov r3, #0
7885
- add r9, r9, #1
8377
+ add r10, r10, #1
78868378 strb r3, [r4, #16]
78878379 strb r3, [r4, #24]
78888380 strb r3, [r4, #32]
....@@ -7890,102 +8382,71 @@
78908382 strb r3, [r4, #48]
78918383 strb r3, [r4, #41]
78928384 strb r3, [r4, #49]
7893
- b .L1280
7894
-.L1371:
8385
+ b .L1277
8386
+.L1276:
78958387 sub r3, r4, #3
78968388 cmp r3, #5
7897
- bhi .L1287
7898
- smulbb r2, r6, r5
7899
- mov r3, r2, asl #4
7900
- mov r2, r2, asr #1
7901
- str r3, [sp, #36]
7902
- mov r3, r2, asl #1
7903
- str r3, [sp, #8]
8389
+ bhi .L1284
8390
+ smulbb r3, r6, r5
8391
+ ldr r8, .L1384
8392
+ asr r2, r3, #1
8393
+ lsl r3, r3, #4
8394
+ str r3, [sp, #48]
8395
+ lsl r3, r2, #2
8396
+ str r2, [sp, #4]
8397
+ str r3, [sp, #40]
8398
+ lsl r3, r2, #1
8399
+ str r3, [sp, #28]
79048400 mov r3, #0
7905
-.L1379:
7906
- str r3, [sp, #16]
7907
- ldrb r3, [sp, #16] @ zero_extendqisi2
7908
- str r3, [sp, #12]
7909
- ldr r3, .L1381
7910
- ldr r2, [sp, #12]
7911
- ldrb r3, [r3, #2230] @ zero_extendqisi2
8401
+ str r3, [sp, #24]
8402
+ add r3, r8, #1216
8403
+ add r3, r3, #28
8404
+ str r3, [sp, #52]
8405
+.L1285:
8406
+ ldrb r3, [sp, #24] @ zero_extendqisi2
8407
+ str r3, [sp, #8]
8408
+ ldr r2, [sp, #8]
8409
+ ldrb r3, [r8, #2234] @ zero_extendqisi2
79128410 cmp r3, r2
7913
- bhi .L1332
7914
-.L1287:
7915
- ldr r3, .L1381
7916
- strb r6, [r3, #1211]
7917
- strb r5, [r3, #1212]
7918
- add sp, sp, #44
7919
- @ sp needed
7920
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7921
-.L1332:
7922
- ldr r2, [sp, #12]
7923
- ldr r3, .L1381
7924
- add r3, r3, r2
7925
- ldrb r10, [r3, #2232] @ zero_extendqisi2
7926
- ldr r3, .L1381
7927
- add r3, r3, r10, asl #3
7928
- mov r0, r10
7929
- ldrb fp, [r3, #16] @ zero_extendqisi2
7930
- ldr r8, [r3, #12]
8411
+ bls .L1284
8412
+ ldr r3, [sp, #8]
8413
+ add r3, r8, r3
8414
+ ldrb r9, [r3, #2236] @ zero_extendqisi2
8415
+ ldr fp, [r8, r9, lsl #3]
8416
+ mov r0, r9
8417
+ add r3, r8, r9, lsl #3
8418
+ ldrb r10, [r3, #4] @ zero_extendqisi2
79318419 mov r3, #255
7932
- mov r9, fp, asl #8
7933
- add r7, r8, r9
8420
+ add r7, fp, r10, lsl #8
79348421 str r3, [r7, #2056]
79358422 bl NandcWaitFlashReady
79368423 cmp r4, #7
7937
- ldreq r3, .L1381+12
7938
- moveq r7, #160
7939
- mlaeq r7, r7, r10, r3
7940
- addeq r3, r7, #28
7941
- beq .L1376
7942
-.L1289:
7943
- cmp r4, #8
7944
- beq .L1291
7945
- ldr r3, .L1381+12
7946
- add r7, r3, r10, asl #6
7947
- add r3, r7, #20
7948
-.L1376:
8424
+ bne .L1286
8425
+ ldr r3, .L1384+8
8426
+ mov r0, #160
8427
+ mla r0, r0, r9, r3
8428
+ add r3, r0, #28
8429
+.L1380:
79498430 str r3, [sp, #20]
79508431 cmp r4, #4
7951
- add r3, r8, fp, asl #8
8432
+ add r3, fp, r10, lsl #8
79528433 mov r2, #54
79538434 str r2, [r3, #2056]
7954
- bne .L1292
7955
- add r9, r8, r9
7956
- mov r3, #255
7957
- str r3, [r9, #2052]
7958
- mov r3, #64
7959
- str r3, [r9, #2048]
7960
- mov r3, #204
7961
- b .L1377
7962
-.L1292:
7963
- sub r2, r4, #5
7964
- cmp r2, #1
7965
- bhi .L1294
7966
- ldr r2, .L1381
7967
- ldrb r2, [r2, #1214] @ zero_extendqisi2
8435
+ bne .L1289
8436
+ mov r2, #255
79688437 str r2, [r3, #2052]
7969
- mov r2, #82
8438
+ mov r2, #64
79708439 str r2, [r3, #2048]
7971
- b .L1293
7972
-.L1294:
7973
- cmp r4, #7
7974
- bne .L1293
7975
- add r9, r8, r9
7976
- mov r3, #174
7977
- str r3, [r9, #2052]
7978
- mov r3, #0
7979
- str r3, [r9, #2048]
7980
- mov r3, #176
7981
-.L1377:
7982
- str r3, [r9, #2052]
7983
- mov r3, #77
7984
- str r3, [r9, #2048]
7985
-.L1293:
7986
- add r3, r8, fp, asl #8
7987
- cmp r4, #6
8440
+ mov r2, #204
8441
+.L1381:
8442
+ str r2, [r3, #2052]
8443
+ mov r2, #77
8444
+.L1382:
8445
+ str r2, [r3, #2048]
8446
+.L1290:
8447
+ add r3, fp, r10, lsl #8
79888448 mov r2, #22
8449
+ cmp r4, #6
79898450 str r2, [r3, #2056]
79908451 mov r2, #23
79918452 str r2, [r3, #2056]
....@@ -8004,174 +8465,153 @@
80048465 mov r2, #0
80058466 str r2, [r3, #2052]
80068467 .L1333:
8007
- add r3, r8, fp, asl #8
8468
+ add r3, fp, r10, lsl #8
80088469 mov r2, #48
8009
- mov r0, r10
8470
+ mov r0, r9
80108471 str r2, [r3, #2056]
80118472 bl NandcWaitFlashReady
80128473 sub r3, r4, #5
8013
- cmp r3, #1
8014
- movhi r3, #0
8015
- movls r3, #1
8016
- str r3, [sp, #24]
8017
- sub r3, r4, #8
8018
- clz r3, r3
8019
- mov r3, r3, lsr #5
8020
- str r3, [sp, #4]
8021
- ldr r2, [sp, #4]
8022
- ldr r3, [sp, #24]
8023
- orrs r3, r3, r2
8024
- movne ip, #16
8025
- bne .L1297
8474
+ cmp r4, #8
8475
+ cmpne r3, #1
8476
+ str r3, [sp, #44]
8477
+ movls r2, #16
8478
+ bls .L1294
80268479 cmp r4, #7
8027
- movne ip, #2
8028
- moveq ip, #32
8029
-.L1297:
8030
- ldr r3, .L1381+20
8031
- add r0, r8, fp, asl #8
8032
- ldr r3, [r3, #1688]
8033
- mov r1, r3
8034
-.L1298:
8035
- ldr r2, [r0, #2048]
8036
- strb r2, [r1], #1
8037
- rsb r2, r3, r1
8038
- uxtb r2, r2
8039
- cmp r2, ip
8040
- bcc .L1298
8041
- ldr r2, [sp, #4]
8042
- cmp r2, #0
8043
- beq .L1299
8480
+ moveq r2, #32
8481
+ movne r2, #2
8482
+.L1294:
8483
+ ldr r3, .L1384+16
8484
+ sub r2, r2, #1
8485
+ add ip, fp, r10, lsl #8
8486
+ ldr r3, [r3, #1696]
8487
+ str ip, [sp]
8488
+ sub r1, r3, #1
8489
+ uxtab r2, r3, r2
8490
+ mov r0, r1
8491
+.L1295:
8492
+ ldr ip, [sp]
8493
+ ldr ip, [ip, #2048]
8494
+ strb ip, [r0, #1]!
8495
+ cmp r2, r0
8496
+ bne .L1295
8497
+ cmp r4, #8
8498
+ bne .L1296
80448499 mov r2, #0
8045
-.L1301:
8046
- ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2
8500
+.L1298:
8501
+ ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2
80478502 uxtb r1, r2
8048
- cmp ip, #50
8049
- beq .L1300
8050
- add ip, r3, r2, asl #2
8051
- ldrb ip, [ip, #1] @ zero_extendqisi2
8052
- cmp ip, #5
8053
- beq .L1300
8503
+ cmp r0, #50
8504
+ beq .L1297
8505
+ add r0, r3, r2, lsl #2
8506
+ ldrb r0, [r0, #1] @ zero_extendqisi2
8507
+ cmp r0, #5
8508
+ beq .L1297
80548509 add r2, r2, #1
80558510 cmp r2, #8
8056
- bne .L1301
8057
- b .L1302
8058
-.L1300:
8059
- cmp r1, #6
8060
- bls .L1303
8061
-.L1302:
8062
- ldr r0, .L1381+24
8063
- mov r1, #0
8064
- bl printk
8065
-.L1304:
8066
- b .L1304
8511
+ bne .L1298
80678512 .L1299:
8513
+ mov r1, #0
8514
+ ldr r0, .L1384+20
8515
+ bl printk
8516
+.L1301:
8517
+ b .L1301
8518
+.L1286:
8519
+ cmp r4, #8
8520
+ beq .L1288
8521
+ ldr r3, .L1384+8
8522
+ add r0, r3, r9, lsl #6
8523
+ add r3, r0, #20
8524
+ b .L1380
8525
+.L1289:
8526
+ sub r2, r4, #5
8527
+ cmp r2, #1
8528
+ ldrbls r2, [r8, #1220] @ zero_extendqisi2
8529
+ strls r2, [r3, #2052]
8530
+ movls r2, #82
8531
+ bls .L1382
80688532 cmp r4, #7
8069
- bne .L1305
8070
- ldr r2, [sp, #4]
8071
-.L1307:
8072
- ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2
8073
- uxtb r1, r2
8074
- cmp ip, #12
8075
- beq .L1306
8076
- add ip, r3, r2, asl #2
8077
- ldrb ip, [ip, #1] @ zero_extendqisi2
8078
- cmp ip, #10
8079
- beq .L1306
8080
- add r2, r2, #1
8081
- cmp r2, #8
8082
- bne .L1307
8083
- b .L1308
8084
-.L1306:
8085
- cmp r1, #7
8086
- bne .L1303
8087
-.L1308:
8088
- ldr r0, .L1381+24
8089
- mov r1, #0
8090
- bl printk
8091
-.L1309:
8092
- b .L1309
8093
-.L1305:
8094
- cmp r4, #6
8095
- bne .L1303
8096
- sub r2, r3, #1
8097
- add r3, r3, #7
8098
-.L1310:
8099
- ldrb r1, [r2, #1]! @ zero_extendqisi2
8100
- cmp r1, #12
8101
- beq .L1303
8102
- ldrb r1, [r2, #8] @ zero_extendqisi2
8103
- cmp r1, #4
8104
- beq .L1303
8105
- cmp r2, r3
8106
- bne .L1310
8107
- ldr r0, .L1381+24
8108
- mov r1, #0
8109
- bl printk
8110
-.L1312:
8111
- b .L1312
8112
-.L1303:
8113
- ldr r1, .L1381+20
8114
- ldr ip, [sp, #36]
8115
- ldr r2, [r1, #1688]
8116
- add ip, r2, ip
8533
+ bne .L1290
8534
+ mov r2, #174
8535
+ str r2, [r3, #2052]
8536
+ mov r2, #0
8537
+ str r2, [r3, #2048]
8538
+ mov r2, #176
8539
+ b .L1381
8540
+.L1297:
8541
+ cmp r1, #6
8542
+ bhi .L1299
8543
+.L1300:
8544
+ ldr r1, .L1384+16
8545
+ ldr r2, [r1, #1696]
81178546 mov r3, r2
8547
+.L1310:
8548
+ ldr ip, [sp, #48]
8549
+ sub r0, r3, r2
8550
+ cmp r0, ip
8551
+ blt .L1311
8552
+ ldr r3, [sp, #28]
8553
+ ldr r1, [r1, #1696]
8554
+ add r0, r1, r3
8555
+ mov r3, #8
81188556 .L1313:
8119
- cmp r3, ip
8120
- ldrne lr, [r0, #2048]
8121
- strneb lr, [r3], #1
8557
+ mov lr, r0
8558
+ mov ip, #0
8559
+.L1312:
8560
+ ldrh r7, [lr]
8561
+ add ip, ip, #1
8562
+ mvn r7, r7
8563
+ strh r7, [lr], #2 @ movhi
8564
+ ldr r7, [sp, #4]
8565
+ cmp r7, ip
8566
+ bgt .L1312
8567
+ ldr ip, [sp, #40]
8568
+ subs r3, r3, #1
8569
+ add r0, r0, ip
81228570 bne .L1313
8123
-.L1380:
8124
- ldr r3, [r1, #1688]
8125
- mov r0, #8
8126
- ldr r1, [sp, #8]
8127
- add r1, r3, r1
8128
- str r1, [sp, #28]
8129
-.L1316:
8130
- ldr ip, [sp, #8]
8131
- add lr, r1, ip
8132
-.L1315:
8133
- ldrh ip, [r1]
8134
- mvn ip, ip
8135
- strh ip, [r1], #2 @ movhi
8136
- cmp r1, lr
8137
- bne .L1315
8138
- ldr ip, [sp, #8]
8139
- subs r0, r0, #1
8140
- add r1, r1, ip
8141
- bne .L1316
8142
-.L1317:
8571
+ str r1, [sp, #12]
8572
+ str r3, [sp, #16]
8573
+.L1319:
81438574 mov ip, #0
81448575 mov r0, ip
8145
-.L1320:
8146
- mov r1, #1
8147
- mov lr, #0
8148
- mov r1, r1, asl r0
8149
- mov r7, #16
8150
- str r7, [sp, #32]
8151
- mov r7, lr
81528576 .L1318:
8153
- ldrh r9, [r3, lr]
8154
- and r9, r9, r1
8155
- cmp r9, r1
8577
+ mov lr, #1
8578
+ mov r7, #16
8579
+ lsl lr, lr, r0
8580
+ str r7, [sp, #36]
8581
+ mov r7, #0
8582
+ str lr, [sp, #32]
8583
+ ldr lr, [sp, #12]
8584
+.L1316:
8585
+ ldrh r3, [lr]
8586
+ mov r1, r3
8587
+ ldr r3, [sp, #32]
8588
+ bics r3, r3, r1
8589
+ ldr r3, [sp, #28]
81568590 addeq r7, r7, #1
8157
- ldr r9, [sp, #8]
8158
- add lr, lr, r9
8159
- ldr r9, [sp, #32]
8160
- subs r9, r9, #1
8161
- str r9, [sp, #32]
8162
- bne .L1318
8591
+ add lr, lr, r3
8592
+ ldr r3, [sp, #36]
8593
+ subs r3, r3, #1
8594
+ str r3, [sp, #36]
8595
+ bne .L1316
81638596 cmp r7, #8
81648597 add r0, r0, #1
8165
- orrhi ip, ip, r1
8598
+ ldrhi r3, [sp, #32]
8599
+ orrhi ip, ip, r3
81668600 uxthhi ip, ip
81678601 cmp r0, #16
8168
- bne .L1320
8169
- ldr r1, [sp, #28]
8602
+ bne .L1318
8603
+ ldr r3, [sp, #12]
81708604 strh ip, [r3], #2 @ movhi
8605
+ str r3, [sp, #12]
8606
+ ldr r3, [sp, #16]
8607
+ add r3, r3, #1
8608
+ str r3, [sp, #16]
8609
+ ldr r1, [sp, #16]
8610
+ ldr r3, [sp, #4]
81718611 cmp r3, r1
8172
- bne .L1317
8173
- ldr r3, .L1381+20
8174
- ldr r1, [r3, #1688]
8612
+ bgt .L1319
8613
+ ldr r3, .L1384+16
8614
+ ldr r1, [r3, #1696]
81758615 mov r3, #0
81768616 sub r0, r1, #4
81778617 add ip, r1, #28
....@@ -8179,91 +8619,141 @@
81798619 ldr lr, [r0, #4]!
81808620 cmp lr, #0
81818621 addeq r3, r3, #1
8182
- cmp r0, ip
8622
+ cmp ip, r0
81838623 bne .L1322
81848624 cmp r3, #7
81858625 ble .L1323
8186
- ldr r0, .L1381+28
8187
- mov r2, #1
8626
+ ldr r0, .L1384+24
81888627 mov r3, #1024
8628
+ mov r2, #1
81898629 bl rknand_print_hex
8190
- ldr r0, .L1381+24
81918630 mov r1, #0
8631
+ ldr r0, .L1384+20
81928632 bl printk
81938633 .L1324:
81948634 b .L1324
8635
+.L1296:
8636
+ cmp r4, #7
8637
+ bne .L1302
8638
+ mov r2, #0
8639
+.L1304:
8640
+ ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2
8641
+ uxtb r1, r2
8642
+ cmp r0, #12
8643
+ beq .L1303
8644
+ add r0, r3, r2, lsl #2
8645
+ ldrb r0, [r0, #1] @ zero_extendqisi2
8646
+ cmp r0, #10
8647
+ beq .L1303
8648
+ add r2, r2, #1
8649
+ cmp r2, #8
8650
+ bne .L1304
8651
+.L1305:
8652
+ mov r1, #0
8653
+ ldr r0, .L1384+20
8654
+ bl printk
8655
+.L1306:
8656
+ b .L1306
8657
+.L1303:
8658
+ cmp r1, #6
8659
+ bls .L1300
8660
+ b .L1305
8661
+.L1302:
8662
+ cmp r4, #6
8663
+ bne .L1300
8664
+ add r3, r3, #7
8665
+.L1307:
8666
+ ldrb r2, [r1, #1]! @ zero_extendqisi2
8667
+ cmp r2, #12
8668
+ beq .L1300
8669
+ ldrb r2, [r1, #8] @ zero_extendqisi2
8670
+ cmp r2, #4
8671
+ beq .L1300
8672
+ cmp r3, r1
8673
+ bne .L1307
8674
+ mov r1, #0
8675
+ ldr r0, .L1384+20
8676
+ bl printk
8677
+.L1309:
8678
+ b .L1309
8679
+.L1311:
8680
+ ldr r0, [sp]
8681
+ ldr r0, [r0, #2048]
8682
+ strb r0, [r3], #1
8683
+ b .L1310
81958684 .L1323:
81968685 cmp r4, #6
8197
- moveq r0, #4
8686
+ moveq ip, #4
81988687 beq .L1325
81998688 cmp r4, #7
8200
- moveq r0, #10
8689
+ moveq ip, #10
82018690 beq .L1325
8202
- ldr r3, [sp, #4]
8203
- cmp r3, #0
8204
- moveq r0, #8
8205
- movne r0, #5
8691
+ cmp r4, #8
8692
+ moveq ip, #5
8693
+ movne ip, #8
82068694 .L1325:
8207
- sub r9, r6, #1
8208
- ldr r1, [sp, #20]
8209
- mov ip, #0
8210
- uxtb r9, r9
8211
- add r9, r9, #1
8695
+ sub r3, r6, #1
8696
+ ldr r0, [sp, #20]
8697
+ uxtb r3, r3
8698
+ mov lr, #0
8699
+ add r3, r3, #1
8700
+ str r3, [sp, #12]
82128701 .L1326:
8213
- mov r7, r1
8214
- mov r3, r2
8702
+ mov r3, r0
8703
+ mov r1, r2
82158704 .L1327:
8216
- ldrb lr, [r3], #1 @ zero_extendqisi2
8217
- strb lr, [r7], #1
8218
- rsb lr, r2, r3
8219
- uxtb lr, lr
8220
- cmp lr, r6
8221
- bcc .L1327
8222
- add ip, ip, #1
8223
- add r2, r2, r9
8224
- cmp ip, r5
8225
- add r1, r1, r0
8226
- blt .L1326
8227
- add r7, r8, fp, asl #8
8705
+ ldrb r7, [r1], #1 @ zero_extendqisi2
8706
+ strb r7, [r3], #1
8707
+ sub r7, r1, r2
8708
+ uxtb r7, r7
8709
+ cmp r6, r7
8710
+ bhi .L1327
8711
+ ldr r3, [sp, #12]
8712
+ add lr, lr, #1
8713
+ cmp r5, lr
8714
+ add r0, r0, ip
8715
+ add r2, r2, r3
8716
+ bgt .L1326
8717
+ add r10, fp, r10, lsl #8
82288718 mov r3, #255
8229
- mov r0, r10
8230
- str r3, [r7, #2056]
8719
+ mov r0, r9
8720
+ str r3, [r10, #2056]
8721
+ bl NandcWaitFlashReady
8722
+ ldr r3, [sp, #44]
8723
+ cmp r3, #1
8724
+ bhi .L1329
8725
+ mov r3, #54
8726
+ ldr r2, [sp]
8727
+ str r3, [r10, #2056]
8728
+ mvn r1, #0
8729
+ ldrb r3, [r8, #1220] @ zero_extendqisi2
8730
+ ldr r0, [sp, #8]
8731
+ str r3, [r2, #2052]
8732
+ mov r3, #0
8733
+ str r3, [r2, #2048]
8734
+ mov r3, #22
8735
+ str r3, [r10, #2056]
8736
+ bl FlashReadCmd
8737
+.L1330:
8738
+ mov r0, r9
82318739 bl NandcWaitFlashReady
82328740 ldr r3, [sp, #24]
8233
- cmp r3, #0
8234
- beq .L1329
8235
- mov r3, #54
8236
- str r3, [r7, #2056]
8237
- ldr r3, .L1381
8238
- mvn r1, #0
8239
- ldr r0, [sp, #12]
8240
- ldrb r3, [r3, #1214] @ zero_extendqisi2
8241
- str r3, [r7, #2052]
8242
- mov r3, #0
8243
- str r3, [r7, #2048]
8244
- mov r3, #22
8245
- str r3, [r7, #2056]
8246
- bl FlashReadCmd
8247
- b .L1330
8248
-.L1329:
8249
- ldr r3, [sp, #4]
8250
- cmp r3, #0
8251
- movne r3, #190
8252
- moveq r3, #56
8253
- str r3, [r7, #2056]
8254
-.L1330:
8255
- mov r0, r10
8256
- bl NandcWaitFlashReady
8257
- ldr r3, [sp, #16]
82588741 add r3, r3, #1
8259
- b .L1379
8260
-.L1291:
8742
+ str r3, [sp, #24]
8743
+ b .L1285
8744
+.L1329:
8745
+ cmp r4, #8
8746
+ moveq r3, #190
8747
+ movne r3, #56
8748
+ str r3, [r10, #2056]
8749
+ b .L1330
8750
+.L1288:
82618751 mov r3, #120
82628752 mov r2, #23
82638753 str r3, [r7, #2056]
8264
- mov r1, #25
82658754 mov r3, #0
82668755 str r3, [r7, #2052]
8756
+ mov r1, #25
82678757 str r3, [r7, #2052]
82688758 str r3, [r7, #2052]
82698759 str r2, [r7, #2056]
....@@ -8279,25 +8769,26 @@
82798769 str r1, [r7, #2052]
82808770 str r2, [r7, #2052]
82818771 str r3, [r7, #2052]
8282
- ldr r3, .L1381+32
8772
+ ldr r3, [sp, #52]
82838773 str r3, [sp, #20]
82848774 b .L1333
8285
-.L1382:
8775
+.L1385:
82868776 .align 2
8287
-.L1381:
8777
+.L1384:
82888778 .word .LANCHOR0
82898779 .word .LANCHOR1
8290
- .word .LANCHOR1+3388
8291
- .word .LANCHOR0+1210
8292
- .word .LANCHOR0+1213
8780
+ .word .LANCHOR0+1216
8781
+ .word .LANCHOR1+3384
82938782 .word .LANCHOR2
82948783 .word .LC85
82958784 .word .LC86
8296
- .word .LANCHOR0+1238
82978785 .fnend
82988786 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault
82998787 .align 2
83008788 .global FlashGetReadRetryDefault
8789
+ .syntax unified
8790
+ .arm
8791
+ .fpu softvfp
83018792 .type FlashGetReadRetryDefault, %function
83028793 FlashGetReadRetryDefault:
83038794 .fnstart
....@@ -8308,226 +8799,227 @@
83088799 bxeq lr
83098800 sub r2, r3, #1
83108801 cmp r2, #7
8311
- bhi .L1385
8802
+ bhi .L1388
83128803 b HynixGetReadRetryDefault
8313
-.L1385:
8804
+.L1388:
83148805 cmp r3, #49
8315
- bne .L1386
8316
- ldr r2, .L1397
8317
- ldr r0, .L1397+4
8318
- ldr r1, .L1397+8
8319
- strb r3, [r2, #1210]
8806
+ bne .L1389
8807
+ ldr r2, .L1400
8808
+ ldr r1, .L1400+4
8809
+ strb r3, [r2, #1216]
83208810 mov r3, #4
8321
- strb r3, [r2, #1211]
8811
+ strb r3, [r2, #1217]
83228812 mov r3, #15
8323
- strb r3, [r2, #1212]
8813
+ strb r3, [r2, #1218]
83248814 mov r2, #64
8325
- b .L1395
8326
-.L1386:
8815
+.L1398:
8816
+ ldr r0, .L1400+8
8817
+ b ftl_memcpy
8818
+.L1389:
83278819 sub r2, r3, #65
83288820 cmp r3, #33
83298821 cmpne r2, #1
8330
- ldrls r2, .L1397
8331
- strlsb r3, [r2, #1210]
8332
- movls r3, #4
8333
- bls .L1396
8334
-.L1387:
8335
- cmp r3, #34
8336
- cmpne r3, #67
8337
- bne .L1388
8338
- ldr r2, .L1397
8339
- strb r3, [r2, #1210]
8340
- mov r3, #5
8341
-.L1396:
8342
- strb r3, [r2, #1211]
8822
+ bhi .L1390
8823
+ ldr r2, .L1400
8824
+ strb r3, [r2, #1216]
8825
+ mov r3, #4
8826
+.L1399:
8827
+ strb r3, [r2, #1217]
83438828 mov r3, #7
8344
- ldr r0, .L1397+4
8345
- strb r3, [r2, #1212]
8829
+ strb r3, [r2, #1218]
83468830 mov r2, #45
8347
- ldr r1, .L1397+12
8348
- b .L1395
8349
-.L1388:
8350
- cmp r3, #35
8351
- cmpne r3, #68
8831
+ ldr r1, .L1400+12
8832
+ b .L1398
8833
+.L1390:
8834
+ cmp r3, #67
8835
+ cmpne r3, #34
8836
+ ldreq r2, .L1400
8837
+ strbeq r3, [r2, #1216]
8838
+ moveq r3, #5
8839
+ beq .L1399
8840
+.L1391:
8841
+ cmp r3, #68
8842
+ cmpne r3, #35
83528843 bxne lr
8353
- ldr r2, .L1397
8354
- ldr r0, .L1397+4
8355
- ldr r1, .L1397+16
8356
- strb r3, [r2, #1210]
8844
+ ldr r2, .L1400
8845
+ ldr r1, .L1400+16
8846
+ strb r3, [r2, #1216]
83578847 mov r3, #5
8358
- strb r3, [r2, #1211]
8848
+ strb r3, [r2, #1217]
83598849 mov r3, #17
8360
- strb r3, [r2, #1212]
8850
+ strb r3, [r2, #1218]
83618851 mov r2, #95
8362
-.L1395:
8363
- b ftl_memcpy
8364
-.L1398:
8852
+ b .L1398
8853
+.L1401:
83658854 .align 2
8366
-.L1397:
8855
+.L1400:
83678856 .word .LANCHOR0
8368
- .word .LANCHOR0+1214
8369
- .word .LANCHOR1+408
8857
+ .word .LANCHOR1+404
8858
+ .word .LANCHOR0+1220
83708859 .word .LANCHOR1+256
8371
- .word .LANCHOR1+304
8860
+ .word .LANCHOR1+301
83728861 .fnend
83738862 .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault
83748863 .align 2
83758864 .global NandcXferComp
8865
+ .syntax unified
8866
+ .arm
8867
+ .fpu softvfp
83768868 .type NandcXferComp, %function
83778869 NandcXferComp:
83788870 .fnstart
83798871 @ args = 0, pretend = 0, frame = 8
83808872 @ frame_needed = 0, uses_anonymous_args = 0
8381
- stmfd sp!, {r0, r1, r4, r5, r6, lr}
8382
- .save {r4, r5, r6, lr}
8873
+ push {r0, r1, r4, r5, r6, r7, r8, lr}
8874
+ .save {r4, r5, r6, r7, r8, lr}
83838875 .pad #8
8384
- ldr r5, .L1439
8385
- add r0, r5, r0, asl #3
8386
- ldr r3, [r5, #2260]
8387
- ldr r4, [r0, #12]
8876
+ ldr r5, .L1442
8877
+ ldr r3, [r5, #2264]
8878
+ ldr r4, [r5, r0, lsl #3]
83888879 cmp r3, #3
8389
- bls .L1430
8880
+ bls .L1433
83908881 ldr r3, [r4, #16]
83918882 tst r3, #4
8392
- beq .L1430
8883
+ beq .L1433
83938884 ldr r6, [r4, #16]
83948885 ldr r3, [r4, #8]
83958886 ubfx r6, r6, #1, #1
83968887 cmp r6, #0
83978888 str r3, [sp]
8398
- movne r6, #0
8399
- beq .L1412
8400
-.L1402:
8889
+ beq .L1404
8890
+ ldr r7, .L1442+4
8891
+ mov r6, #0
8892
+ ldr r8, .L1442+8
8893
+.L1405:
84018894 ldr r2, [r4, #28]
84028895 ldr r3, [sp]
84038896 ubfx r2, r2, #16, #5
84048897 ubfx r3, r3, #22, #6
84058898 cmp r2, r3
8406
- bge .L1410
8407
- ldr r3, [r5, #2260]
8899
+ bge .L1413
8900
+ ldr r3, [r5, #2264]
84088901 cmp r3, #5
8409
- bhi .L1403
8410
-.L1406:
8902
+ bhi .L1406
8903
+.L1409:
84118904 add r6, r6, #1
8412
- bic r3, r6, #-16777216
8413
- cmp r3, #0
8414
- bne .L1405
8905
+ bics r3, r6, #-16777216
8906
+ bne .L1408
84158907 ldr r2, [r4, #28]
84168908 mov r1, r6
84178909 ldr r3, [sp]
8910
+ mov r0, r7
84188911 ubfx r2, r2, #16, #5
8419
- ldr r0, .L1439+4
84208912 ubfx r3, r3, #22, #6
84218913 bl printk
8422
- ldr r0, .L1439+8
8423
- mov r1, r4
8424
- mov r2, #4
84258914 mov r3, #512
8915
+ mov r2, #4
8916
+ mov r1, r4
8917
+ mov r0, r8
84268918 bl rknand_print_hex
8919
+.L1408:
8920
+ mov r1, #5
8921
+ mov r0, #1
8922
+ bl usleep_range
84278923 b .L1405
8428
-.L1403:
8924
+.L1406:
84298925 ldr r3, [r4]
84308926 str r3, [sp, #4]
84318927 ldr r3, [sp, #4]
84328928 tst r3, #8192
8433
- beq .L1406
8929
+ beq .L1409
84348930 ldr r3, [sp, #4]
84358931 tst r3, #131072
8436
- beq .L1406
8437
-.L1410:
8438
- ldr r3, [r5, #2296]
8439
- ldr r4, .L1439
8932
+ beq .L1409
8933
+.L1413:
8934
+ ldr r3, [r5, #2300]
84408935 cmp r3, #0
8441
- beq .L1411
8936
+ beq .L1414
84428937 ldr r1, [sp]
84438938 mov r2, #0
8444
- ldr r0, [r4, #2288]
8939
+ ldr r0, [r5, #2292]
84458940 ubfx r1, r1, #22, #5
8446
- mov r1, r1, asl #10
8941
+ lsl r1, r1, #10
84478942 bl rknand_dma_unmap_single
8448
- ldr r0, [r4, #2292]
8449
- mov r2, #0
84508943 ldr r1, [sp]
8944
+ mov r2, #0
8945
+ ldr r0, [r5, #2296]
84518946 ubfx r1, r1, #22, #5
8452
- mov r1, r1, asl #7
8947
+ lsl r1, r1, #7
84538948 bl rknand_dma_unmap_single
8454
- b .L1411
8455
-.L1405:
8456
- mov r0, #1
8457
- mov r1, #5
8458
- bl usleep_range
8459
- b .L1402
84608949 .L1414:
8950
+ mov r3, #0
8951
+ str r3, [r5, #2300]
8952
+.L1402:
8953
+ add sp, sp, #8
8954
+ @ sp needed
8955
+ pop {r4, r5, r6, r7, r8, pc}
8956
+.L1404:
8957
+ ldr r7, .L1442+12
8958
+ ldr r8, .L1442+8
8959
+.L1415:
8960
+ ldr r3, [sp]
8961
+ tst r3, #1048576
8962
+ beq .L1417
8963
+ ldr r3, [r5, #2308]
8964
+ cmp r3, #0
8965
+ beq .L1418
8966
+ mov r0, r4
8967
+ bl NandcSendDumpDataStart
8968
+.L1418:
8969
+ ldr r3, [r5, #2300]
8970
+ cmp r3, #0
8971
+ beq .L1419
8972
+ ldr r1, [sp]
8973
+ mov r2, #1
8974
+ ldr r0, [r5, #2292]
8975
+ ubfx r1, r1, #22, #5
8976
+ lsl r1, r1, #10
8977
+ bl rknand_dma_unmap_single
8978
+ ldr r1, [sp]
8979
+ mov r2, #1
8980
+ ldr r0, [r5, #2296]
8981
+ ubfx r1, r1, #22, #5
8982
+ lsl r1, r1, #7
8983
+ bl rknand_dma_unmap_single
8984
+.L1419:
8985
+ ldr r3, [r5, #2308]
8986
+ cmp r3, #0
8987
+ beq .L1414
8988
+ mov r0, r4
8989
+ bl NandcSendDumpDataDone
8990
+ b .L1414
8991
+.L1417:
84618992 ldr r3, [r4, #8]
84628993 add r6, r6, #1
84638994 str r3, [sp]
8464
- bic r3, r6, #-16777216
8465
- cmp r3, #0
8466
- bne .L1413
8995
+ bics r3, r6, #-16777216
8996
+ bne .L1416
84678997 ldr r2, [sp]
84688998 mov r1, r6
84698999 ldr r3, [r4, #28]
8470
- ldr r0, .L1439+12
9000
+ mov r0, r7
84719001 ubfx r3, r3, #16, #5
84729002 bl printk
8473
- ldr r0, .L1439+8
8474
- mov r1, r4
8475
- mov r2, #4
84769003 mov r3, #512
9004
+ mov r2, #4
9005
+ mov r1, r4
9006
+ mov r0, r8
84779007 bl rknand_print_hex
8478
-.L1413:
8479
- mov r0, #1
8480
- mov r1, #5
8481
- bl usleep_range
8482
-.L1412:
8483
- ldr r3, [sp]
8484
- tst r3, #1048576
8485
- beq .L1414
8486
- ldr r3, [r5, #2304]
8487
- cmp r3, #0
8488
- beq .L1415
8489
- mov r0, r4
8490
- bl NandcSendDumpDataStart
8491
-.L1415:
8492
- ldr r3, [r5, #2296]
8493
- ldr r6, .L1439
8494
- cmp r3, #0
8495
- beq .L1416
8496
- ldr r1, [sp]
8497
- mov r2, #1
8498
- ldr r0, [r6, #2288]
8499
- ubfx r1, r1, #22, #5
8500
- mov r1, r1, asl #10
8501
- bl rknand_dma_unmap_single
8502
- ldr r0, [r6, #2292]
8503
- mov r2, #1
8504
- ldr r1, [sp]
8505
- ubfx r1, r1, #22, #5
8506
- mov r1, r1, asl #7
8507
- bl rknand_dma_unmap_single
85089008 .L1416:
8509
- ldr r3, [r5, #2304]
8510
- cmp r3, #0
8511
- beq .L1411
8512
- mov r0, r4
8513
- bl NandcSendDumpDataDone
8514
-.L1411:
8515
- mov r3, #0
8516
- str r3, [r5, #2296]
8517
- b .L1399
8518
-.L1430:
9009
+ mov r1, #5
9010
+ mov r0, #1
9011
+ bl usleep_range
9012
+ b .L1415
9013
+.L1433:
85199014 ldr r3, [r4, #8]
85209015 str r3, [sp]
85219016 ldr r3, [sp]
85229017 tst r3, #1048576
8523
- beq .L1430
8524
-.L1399:
8525
- add sp, sp, #8
8526
- @ sp needed
8527
- ldmfd sp!, {r4, r5, r6, pc}
8528
-.L1440:
9018
+ beq .L1433
9019
+ b .L1402
9020
+.L1443:
85299021 .align 2
8530
-.L1439:
9022
+.L1442:
85319023 .word .LANCHOR0
85329024 .word .LC87
85339025 .word .LC88
....@@ -8536,306 +9028,306 @@
85369028 .size NandcXferComp, .-NandcXferComp
85379029 .align 2
85389030 .global NandcXferData
9031
+ .syntax unified
9032
+ .arm
9033
+ .fpu softvfp
85399034 .type NandcXferData, %function
85409035 NandcXferData:
85419036 .fnstart
85429037 @ args = 4, pretend = 0, frame = 80
85439038 @ frame_needed = 0, uses_anonymous_args = 0
8544
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9039
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
85459040 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8546
- mov r10, r3
8547
- ldr r6, .L1489
8548
- tst r10, #63
9041
+ tst r3, #63
9042
+ ldr r9, .L1484
85499043 .pad #92
85509044 sub sp, sp, #92
8551
- mov r9, r0
8552
- add r3, r6, r0, asl #3
9045
+ mov r7, r0
85539046 mov r5, r1
8554
- mov r7, r2
8555
- ldr r8, [r3, #12]
8556
- bne .L1442
8557
- ldr r3, [sp, #128]
8558
- cmp r3, #0
8559
- bne .L1443
8560
- add r0, sp, #24
8561
- mov r1, #255
8562
- mov r2, #64
8563
- bl ftl_memset
8564
- add r3, sp, #24
8565
- str r3, [sp, #128]
8566
-.L1443:
8567
- ldr r3, [sp, #128]
8568
- mov r0, r9
8569
- mov r1, r5
8570
- mov r2, r7
8571
- str r10, [sp]
8572
- str r3, [sp, #4]
8573
- mov r3, #0
8574
- bl NandcXferStart
8575
- mov r0, r9
8576
- mov r1, r5
8577
- bl NandcXferComp
8578
- cmp r5, #0
8579
- movne fp, #0
8580
- bne .L1444
8581
- ldr r3, [r6, #2308]
8582
- mov r0, r7, lsr #1
8583
- mov r2, r5
8584
- mov r1, r5
8585
- cmp r3, #25
8586
- ldr r3, [sp, #128]
8587
- movcc lr, #64
8588
- movcs lr, #128
8589
-.L1446:
8590
- cmp r1, r0
8591
- add r3, r3, #4
8592
- add ip, r2, lr
8593
- bcs .L1487
8594
- ldr r4, [r6, #2276]
8595
- mov r2, r2, lsr #2
8596
- add r1, r1, #1
8597
- ldr r2, [r4, r2, asl #2]
8598
- mov r4, r2, lsr #8
8599
- strb r2, [r3, #-4]
8600
- strb r4, [r3, #-3]
8601
- mov r4, r2, lsr #16
8602
- mov r2, r2, lsr #24
8603
- strb r4, [r3, #-2]
8604
- strb r2, [r3, #-1]
8605
- mov r2, ip
8606
- b .L1446
8607
-.L1487:
8608
- ldr r0, [r6, #2308]
8609
- mov r2, #0
8610
- ldr r1, [r6, #2260]
8611
- mov r7, r7, lsr #2
8612
- mov fp, r2
8613
-.L1448:
8614
- cmp r2, r7
8615
- bcs .L1444
8616
- cmp r0, #0
8617
- beq .L1444
8618
- add r3, r2, #8
8619
- ldr r3, [r8, r3, asl #2]
8620
- str r3, [sp, #20]
8621
- ldr r3, [sp, #20]
8622
- tst r3, #4
8623
- bne .L1472
8624
- ldr r4, [sp, #20]
8625
- ubfx r4, r4, #15, #1
9047
+ str r2, [sp, #8]
9048
+ mov r8, r3
9049
+ ldr r4, [sp, #128]
9050
+ ldr r6, [r9, r0, lsl #3]
9051
+ bne .L1445
86269052 cmp r4, #0
8627
- bne .L1472
8628
- cmp r1, #5
8629
- bls .L1450
8630
- ldr ip, [sp, #20]
8631
- ldr r4, [sp, #20]
8632
- ldr r3, [sp, #20]
8633
- ubfx ip, ip, #3, #5
8634
- ldr lr, [sp, #20]
8635
- ubfx r4, r4, #27, #1
8636
- ubfx r3, r3, #16, #5
8637
- ubfx lr, lr, #29, #1
8638
- orr ip, ip, r4, asl #5
8639
- orr r3, r3, lr, asl #5
8640
- cmp ip, r3
8641
- ldr r3, [sp, #20]
8642
- ldrhi r4, [sp, #20]
8643
- ubfxhi r3, r3, #3, #5
8644
- ldrls r4, [sp, #20]
8645
- ubfxls r3, r3, #16, #5
8646
- ubfxhi r4, r4, #27, #1
8647
- ubfxls r4, r4, #29, #1
8648
- b .L1486
8649
-.L1450:
8650
- cmp r1, #3
8651
- bls .L1452
8652
- ldr ip, [sp, #20]
8653
- ldr r4, [sp, #20]
8654
- ldr r3, [sp, #20]
8655
- ubfx ip, ip, #3, #5
8656
- ldr lr, [sp, #20]
8657
- ubfx r4, r4, #28, #1
8658
- ubfx r3, r3, #16, #5
8659
- ubfx lr, lr, #30, #1
8660
- orr ip, ip, r4, asl #5
8661
- orr r3, r3, lr, asl #5
8662
- cmp ip, r3
8663
- ldr r3, [sp, #20]
8664
- ldrhi r4, [sp, #20]
8665
- ubfxhi r3, r3, #3, #5
8666
- ldrls r4, [sp, #20]
8667
- ubfxls r3, r3, #16, #5
8668
- ubfxhi r4, r4, #28, #1
8669
- ubfxls r4, r4, #30, #1
8670
-.L1486:
8671
- orr r4, r3, r4, asl #5
8672
-.L1452:
8673
- cmp fp, r4
8674
- movcc fp, r4
8675
- b .L1449
8676
-.L1472:
8677
- mvn fp, #0
8678
-.L1449:
8679
- add r2, r2, #1
8680
- b .L1448
8681
-.L1444:
9053
+ bne .L1446
9054
+ mov r2, #64
9055
+ mov r1, #255
9056
+ add r0, sp, #24
9057
+ bl ftl_memset
9058
+ add r4, sp, #24
9059
+.L1446:
86829060 mov r3, #0
8683
- str r3, [r8, #16]
8684
- b .L1455
8685
-.L1442:
8686
- cmp r1, #1
8687
- mov r4, #0
8688
- bne .L1484
8689
- mov fp, r4
8690
-.L1456:
8691
- cmp r4, r7
8692
- bcs .L1488
8693
- ldr r2, [sp, #128]
8694
- cmp r10, #0
8695
- addne r3, r10, r4, asl #9
8696
- ldr r1, [sp, #128]
8697
- moveq r3, r10
8698
- cmp r2, #0
8699
- and ip, r4, #3
8700
- mov r0, r8
8701
- movne r2, #2
8702
- moveq r2, #0
8703
- mla r2, r4, r2, r1
8704
- mov r1, #1
8705
- str ip, [sp, #8]
8706
- add r4, r4, #2
8707
- str r2, [sp]
8708
- mov r2, ip
8709
- bl NandcCopy1KB
8710
- mov r0, r9
8711
- mov r1, #1
8712
- mov r2, #2
8713
- ldr ip, [sp, #8]
8714
- str fp, [sp]
8715
- str fp, [sp, #4]
8716
- mov r3, ip
8717
- bl NandcXferStart
8718
- mov r0, r9
8719
- mov r1, #1
8720
- bl NandcXferComp
8721
- b .L1456
8722
-.L1488:
8723
- mov fp, #0
8724
- b .L1455
8725
-.L1484:
8726
- str r4, [sp]
8727
- mov r1, r4
8728
- str r4, [sp, #4]
8729
- mov r2, #2
8730
- mov r3, r4
8731
- mov fp, r4
8732
- bl NandcXferStart
8733
- str r10, [sp, #8]
8734
-.L1461:
8735
- cmp r4, r7
8736
- bcs .L1455
8737
- mov r0, r9
9061
+ ldr r2, [sp, #8]
87389062 mov r1, r5
8739
- bl NandcXferComp
8740
- ldr r3, [r8, #32]
8741
- add ip, r4, #2
8742
- cmp ip, r7
8743
- str r3, [sp, #20]
8744
- bcs .L1462
8745
- mov r3, #0
8746
- mov r0, r9
8747
- str r3, [sp]
8748
- mov r1, r3
8749
- str r3, [sp, #4]
8750
- mov r2, #2
8751
- and r3, ip, #3
8752
- str ip, [sp, #12]
9063
+ mov r0, r7
9064
+ str r4, [sp, #4]
9065
+ str r8, [sp]
87539066 bl NandcXferStart
8754
- ldr ip, [sp, #12]
8755
-.L1462:
8756
- ldr r3, [sp, #20]
8757
- tst r3, #4
8758
- mvnne fp, #0
8759
- bne .L1463
8760
- ldr r2, [sp, #20]
8761
- ldr r3, [sp, #20]
8762
- ubfx r2, r2, #3, #5
8763
- ubfx r3, r3, #27, #1
8764
- orr r3, r2, r3, asl #5
8765
- cmp fp, r3
8766
- movcc fp, r3
8767
-.L1463:
8768
- ldr r1, [sp, #128]
8769
- cmp r10, #0
8770
- ldr r3, [sp, #8]
8771
- sub r2, ip, #2
8772
- moveq r3, #0
8773
- ldr r0, [sp, #128]
8774
- cmp r1, #0
8775
- and r2, r2, #3
8776
- str ip, [sp, #12]
8777
- movne r1, #2
8778
- moveq r1, #0
8779
- mla r4, r4, r1, r0
8780
- mov r0, r8
8781
- mov r1, #0
8782
- str r4, [sp]
8783
- bl NandcCopy1KB
8784
- ldr ip, [sp, #12]
8785
- ldr r3, [sp, #8]
8786
- mov r4, ip
8787
- add r3, r3, #1024
8788
- str r3, [sp, #8]
8789
- b .L1461
8790
-.L1455:
8791
- ldr r3, [r6, #2260]
8792
- clz r5, r5
8793
- cmp r3, #5
8794
- mov r5, r5, lsr #5
8795
- movls r5, #0
9067
+ mov r1, r5
9068
+ mov r0, r7
9069
+ bl NandcXferComp
87969070 cmp r5, #0
8797
- beq .L1467
8798
- ldr r3, [r8]
9071
+ movne r9, #0
9072
+ bne .L1447
9073
+ ldr r3, [r9, #2312]
9074
+ mov r2, r5
9075
+ cmp r3, #25
9076
+ ldr r3, [sp, #8]
9077
+ movcc ip, #64
9078
+ movcs ip, #128
9079
+ lsr r1, r3, #1
9080
+ mov r3, r5
9081
+.L1449:
9082
+ cmp r2, r1
9083
+ add r4, r4, #4
9084
+ add r0, ip, r3
9085
+ bcc .L1450
9086
+ ldr r3, [sp, #8]
9087
+ mov r2, #0
9088
+ ldr r1, [r9, #2312]
9089
+ ldr ip, [r9, #2264]
9090
+ mov r9, r2
9091
+ lsr r0, r3, #2
9092
+.L1451:
9093
+ cmp r2, r0
9094
+ bcs .L1447
9095
+ cmp r1, #0
9096
+ bne .L1457
9097
+.L1447:
9098
+ mov r3, #0
9099
+ str r3, [r6, #16]
9100
+.L1458:
9101
+ ldr r3, .L1484
9102
+ ldr r3, [r3, #2264]
9103
+ cmp r3, #5
9104
+ movls r3, #0
9105
+ movhi r3, #1
9106
+ cmp r5, #0
9107
+ movne r3, #0
9108
+ cmp r3, #0
9109
+ beq .L1444
9110
+ ldr r3, [r6]
87999111 and r2, r3, #139264
88009112 cmp r2, #139264
9113
+ mvneq r9, #0
88019114 orreq r3, r3, #131072
8802
- streq r3, [r8]
8803
- mvneq fp, #0
8804
-.L1467:
8805
- mov r0, fp
9115
+ streq r3, [r6]
9116
+.L1444:
9117
+ mov r0, r9
88069118 add sp, sp, #92
88079119 @ sp needed
8808
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8809
-.L1490:
9120
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9121
+.L1450:
9122
+ ldr lr, [r9, #2280]
9123
+ bic r3, r3, #3
9124
+ add r2, r2, #1
9125
+ ldr r3, [lr, r3]
9126
+ strb r3, [r4, #-4]
9127
+ lsr lr, r3, #8
9128
+ strb lr, [r4, #-3]
9129
+ lsr lr, r3, #16
9130
+ lsr r3, r3, #24
9131
+ strb lr, [r4, #-2]
9132
+ strb r3, [r4, #-1]
9133
+ mov r3, r0
9134
+ b .L1449
9135
+.L1457:
9136
+ add r3, r2, #8
9137
+ ldr r3, [r6, r3, lsl #2]
9138
+ str r3, [sp, #20]
9139
+ ldr r3, [sp, #20]
9140
+ tst r3, #4
9141
+ bne .L1473
9142
+ ldr r3, [sp, #20]
9143
+ ubfx r3, r3, #15, #1
9144
+ cmp r3, #0
9145
+ bne .L1473
9146
+ cmp ip, #5
9147
+ bls .L1453
9148
+ ldr lr, [sp, #20]
9149
+ ldr r7, [sp, #20]
9150
+ ldr r3, [sp, #20]
9151
+ ldr r4, [sp, #20]
9152
+ ubfx lr, lr, #3, #5
9153
+ ubfx r7, r7, #27, #1
9154
+ ubfx r3, r3, #16, #5
9155
+ orr lr, lr, r7, lsl #5
9156
+ ubfx r4, r4, #29, #1
9157
+ orr r3, r3, r4, lsl #5
9158
+ cmp lr, r3
9159
+ ldr r3, [sp, #20]
9160
+ ldrhi lr, [sp, #20]
9161
+ ldrls lr, [sp, #20]
9162
+ ubfxhi r3, r3, #3, #5
9163
+ ubfxls r3, r3, #16, #5
9164
+ ubfxhi lr, lr, #27, #1
9165
+ ubfxls lr, lr, #29, #1
9166
+.L1483:
9167
+ orr r3, r3, lr, lsl #5
9168
+.L1455:
9169
+ cmp r9, r3
9170
+ movcc r9, r3
9171
+.L1452:
9172
+ add r2, r2, #1
9173
+ b .L1451
9174
+.L1453:
9175
+ cmp ip, #3
9176
+ bls .L1455
9177
+ ldr lr, [sp, #20]
9178
+ ldr r7, [sp, #20]
9179
+ ldr r3, [sp, #20]
9180
+ ldr r4, [sp, #20]
9181
+ ubfx lr, lr, #3, #5
9182
+ ubfx r7, r7, #28, #1
9183
+ ubfx r3, r3, #16, #5
9184
+ orr lr, lr, r7, lsl #5
9185
+ ubfx r4, r4, #30, #1
9186
+ orr r3, r3, r4, lsl #5
9187
+ cmp lr, r3
9188
+ ldr r3, [sp, #20]
9189
+ ldrhi lr, [sp, #20]
9190
+ ldrls lr, [sp, #20]
9191
+ ubfxhi r3, r3, #3, #5
9192
+ ubfxls r3, r3, #16, #5
9193
+ ubfxhi lr, lr, #28, #1
9194
+ ubfxls lr, lr, #30, #1
9195
+ b .L1483
9196
+.L1473:
9197
+ mvn r9, #0
9198
+ b .L1452
9199
+.L1445:
9200
+ cmp r1, #1
9201
+ bne .L1459
9202
+ mov r9, #0
9203
+ cmp r4, #0
9204
+ mov r10, r9
9205
+ movne r3, #4
9206
+ moveq r3, #0
9207
+ str r3, [sp, #12]
9208
+.L1460:
9209
+ ldr r3, [sp, #8]
9210
+ cmp r9, r3
9211
+ movcs r9, #0
9212
+ bcs .L1458
9213
+.L1462:
9214
+ cmp r8, #0
9215
+ and fp, r9, #3
9216
+ addne r3, r8, r9, lsl #9
9217
+ moveq r3, r8
9218
+ str r4, [sp]
9219
+ mov r2, fp
9220
+ mov r1, #1
9221
+ mov r0, r6
9222
+ bl NandcCopy1KB
9223
+ mov r3, fp
9224
+ mov r2, #2
9225
+ mov r1, #1
9226
+ mov r0, r7
9227
+ str r10, [sp, #4]
9228
+ add r9, r9, #2
9229
+ str r10, [sp]
9230
+ bl NandcXferStart
9231
+ mov r1, #1
9232
+ mov r0, r7
9233
+ bl NandcXferComp
9234
+ ldr r3, [sp, #12]
9235
+ add r4, r4, r3
9236
+ b .L1460
9237
+.L1459:
9238
+ mov r10, #0
9239
+ mov r2, #2
9240
+ mov r3, r10
9241
+ str r10, [sp, #4]
9242
+ str r10, [sp]
9243
+ mov r1, r10
9244
+ bl NandcXferStart
9245
+ mov fp, r8
9246
+ cmp r4, r10
9247
+ mov r9, r10
9248
+ movne r3, #4
9249
+ moveq r3, r10
9250
+ str r3, [sp, #12]
9251
+.L1463:
9252
+ ldr r3, [sp, #8]
9253
+ cmp r10, r3
9254
+ bcs .L1458
9255
+ mov r1, r5
9256
+ mov r0, r7
9257
+ bl NandcXferComp
9258
+ ldr r3, [r6, #32]
9259
+ add r10, r10, #2
9260
+ str r3, [sp, #20]
9261
+ ldr r3, [sp, #8]
9262
+ cmp r3, r10
9263
+ bls .L1464
9264
+ mov r3, #0
9265
+ mov r2, #2
9266
+ str r3, [sp, #4]
9267
+ mov r1, #0
9268
+ str r3, [sp]
9269
+ mov r0, r7
9270
+ and r3, r10, #3
9271
+ bl NandcXferStart
9272
+.L1464:
9273
+ ldr r3, [sp, #20]
9274
+ tst r3, #4
9275
+ mvnne r9, #0
9276
+ bne .L1465
9277
+ ldr r3, [sp, #20]
9278
+ ldr r2, [sp, #20]
9279
+ ubfx r3, r3, #3, #5
9280
+ ubfx r2, r2, #27, #1
9281
+ orr r3, r3, r2, lsl #5
9282
+ cmp r9, r3
9283
+ movcc r9, r3
9284
+.L1465:
9285
+ cmp r8, #0
9286
+ sub r2, r10, #2
9287
+ movne r3, fp
9288
+ str r4, [sp]
9289
+ moveq r3, #0
9290
+ and r2, r2, #3
9291
+ mov r1, #0
9292
+ mov r0, r6
9293
+ bl NandcCopy1KB
9294
+ ldr r3, [sp, #12]
9295
+ add fp, fp, #1024
9296
+ add r4, r4, r3
9297
+ b .L1463
9298
+.L1485:
88109299 .align 2
8811
-.L1489:
9300
+.L1484:
88129301 .word .LANCHOR0
88139302 .fnend
88149303 .size NandcXferData, .-NandcXferData
88159304 .align 2
88169305 .global FlashReadRawPage
9306
+ .syntax unified
9307
+ .arm
9308
+ .fpu softvfp
88179309 .type FlashReadRawPage, %function
88189310 FlashReadRawPage:
88199311 .fnstart
88209312 @ args = 0, pretend = 0, frame = 0
88219313 @ frame_needed = 0, uses_anonymous_args = 0
8822
- stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
9314
+ push {r0, r1, r4, r5, r6, r7, r8, lr}
88239315 .save {r4, r5, r6, r7, r8, lr}
88249316 .pad #8
88259317 mov r8, r3
8826
- ldr r3, .L1494
9318
+ ldr r3, .L1489
88279319 subs r4, r0, #0
88289320 mov r6, r1
88299321 mov r7, r2
8830
- ldrb r5, [r3, #481] @ zero_extendqisi2
8831
- bne .L1492
8832
- ldr r2, .L1494+4
8833
- ldrb r3, [r2, #1] @ zero_extendqisi2
8834
- ldr r2, [r2, #4]
8835
- mul r2, r2, r3
8836
- cmp r1, r2
8837
- movcc r5, #4
8838
-.L1492:
9322
+ ldrb r5, [r3, #477] @ zero_extendqisi2
9323
+ bne .L1487
9324
+ ldr r1, .L1489+4
9325
+ ldrb r3, [r1, #37] @ zero_extendqisi2
9326
+ ldr r0, [r1, #40]
9327
+ mul r0, r0, r3
9328
+ cmp r0, r6
9329
+ movhi r5, #4
9330
+.L1487:
88399331 mov r0, r4
88409332 bl NandcWaitFlashReady
88419333 mov r0, r4
....@@ -8845,181 +9337,177 @@
88459337 bl FlashReadCmd
88469338 mov r0, r4
88479339 bl NandcWaitFlashReady
8848
- mov r2, r5
8849
- mov r1, #0
88509340 mov r3, r7
8851
- mov r0, r4
9341
+ mov r2, r5
88529342 str r8, [sp]
9343
+ mov r1, #0
9344
+ mov r0, r4
88539345 bl NandcXferData
8854
- mov r5, r0
9346
+ mov r1, r0
88559347 mov r0, r4
88569348 bl NandcFlashDeCs
8857
- mov r0, r5
9349
+ mov r0, r1
88589350 add sp, sp, #8
88599351 @ sp needed
8860
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
8861
-.L1495:
9352
+ pop {r4, r5, r6, r7, r8, pc}
9353
+.L1490:
88629354 .align 2
8863
-.L1494:
9355
+.L1489:
88649356 .word .LANCHOR1
88659357 .word .LANCHOR0
88669358 .fnend
88679359 .size FlashReadRawPage, .-FlashReadRawPage
88689360 .align 2
88699361 .global FlashDdrTunningRead
9362
+ .syntax unified
9363
+ .arm
9364
+ .fpu softvfp
88709365 .type FlashDdrTunningRead, %function
88719366 FlashDdrTunningRead:
88729367 .fnstart
88739368 @ args = 4, pretend = 0, frame = 16
88749369 @ frame_needed = 0, uses_anonymous_args = 0
8875
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9370
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
88769371 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
88779372 mov r7, r3
8878
- ldr r4, .L1523
9373
+ ldr r4, .L1517
88799374 .pad #20
88809375 sub sp, sp, #20
8881
- mov r10, r0
88829376 mov fp, r2
8883
- str r1, [sp]
8884
- ldr r3, [r4, #80]
9377
+ stm sp, {r0, r1}
9378
+ ldr r3, [r4, #88]
88859379 ldr r3, [r3, #304]
8886
- str r3, [sp, #8]
8887
- ldr r3, [r4, #2260]
9380
+ str r3, [sp, #12]
9381
+ ldr r3, [r4, #2264]
88889382 cmp r3, #8
88899383 ldr r3, [sp, #56]
8890
- movcc r9, #6
8891
- movcs r9, #12
9384
+ movcc r10, #6
9385
+ movcs r10, #12
88929386 cmp r3, #0
8893
- moveq r6, #1024
8894
- beq .L1498
9387
+ moveq r5, #1024
9388
+ beq .L1493
88959389 mov r0, #1
88969390 bl FlashSetInterfaceMode
88979391 mov r0, #1
88989392 bl NandcSetMode
8899
- mov r0, r10
9393
+ ldr r0, [sp]
89009394 bl FlashReset
8901
- mov r2, fp
89029395 mov r3, r7
8903
- mov r0, r10
8904
- ldr r1, [sp]
9396
+ mov r2, fp
9397
+ ldm sp, {r0, r1}
89059398 bl FlashReadRawPage
8906
- mov r6, r0
8907
- ldrb r0, [r4, #2229] @ zero_extendqisi2
9399
+ mov r5, r0
9400
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
89089401 bl FlashSetInterfaceMode
8909
- ldrb r0, [r4, #2229] @ zero_extendqisi2
9402
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
89109403 bl NandcSetMode
8911
- cmn r6, #1
8912
- bne .L1499
8913
-.L1508:
8914
- mvn r6, #0
8915
- b .L1500
8916
-.L1499:
8917
- mov r2, r6
8918
- ldr r0, .L1523+4
8919
- ldr r1, [sp]
9404
+ cmn r5, #1
9405
+ bne .L1494
9406
+.L1503:
9407
+ mvn r5, #0
9408
+.L1491:
9409
+ mov r0, r5
9410
+ add sp, sp, #20
9411
+ @ sp needed
9412
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9413
+.L1494:
9414
+ mov r2, r5
9415
+ ldr r1, [sp, #4]
9416
+ ldr r0, .L1517+4
89209417 bl printk
8921
- cmp r6, #9
8922
- addls r4, r4, r10, asl #3
8923
- ldrls r3, [r4, #12]
8924
- ldr r4, .L1523+8
9418
+ cmp r5, #9
9419
+ ldrls r3, [sp]
9420
+ ldrls r3, [r4, r3, lsl #3]
89259421 ldrls r2, [r3, #3840]
89269422 ldrls r2, [r3]
89279423 orrls r2, r2, #131072
89289424 strls r2, [r3]
8929
- ldr r3, [r4, #1692]
9425
+ ldr r2, .L1517+8
9426
+ ldr r3, [r2, #1700]
89309427 add r3, r3, #1
8931
- str r3, [r4, #1692]
89329428 cmp r3, #2048
9429
+ str r3, [r2, #1700]
89339430 movcs r7, #0
8934
- strcs r7, [r4, #1692]
9431
+ strcs r7, [r2, #1700]
89359432 movcs fp, r7
8936
- bcc .L1500
8937
-.L1498:
8938
- mov r4, #0
9433
+ bcc .L1491
9434
+.L1493:
9435
+ mov r9, #0
89399436 mvn r8, #0
8940
- mov ip, r4
8941
- mov r5, r4
8942
- str r4, [sp, #4]
8943
-.L1506:
8944
- uxtb r0, r9
8945
- str ip, [sp, #12]
9437
+ mov r6, r9
9438
+ mov r4, r9
9439
+ str r9, [sp, #8]
9440
+.L1501:
9441
+ uxtb r0, r10
89469442 bl NandcSetDdrPara
89479443 mov r3, r7
8948
- mov r0, r10
89499444 mov r2, fp
8950
- ldr r1, [sp]
9445
+ ldm sp, {r0, r1}
89519446 bl FlashReadRawPage
8952
- add r3, r6, #1
9447
+ add r3, r5, #1
89539448 cmp r0, r3
8954
- ldr ip, [sp, #12]
8955
- bhi .L1502
9449
+ bhi .L1497
89569450 cmp r0, #2
8957
- bhi .L1512
8958
- add r5, r5, #1
8959
- cmp r5, #9
8960
- bls .L1512
8961
- rsb r4, r5, r9
8962
- mov r6, r0
9451
+ bhi .L1507
9452
+ add r4, r4, #1
9453
+ cmp r4, #9
9454
+ bls .L1507
9455
+ mov r3, r6
9456
+ mov r5, r0
9457
+ sub r6, r10, r4
89639458 mov r8, #0
8964
- b .L1504
8965
-.L1502:
8966
- ldr r3, [sp, #4]
8967
- cmp r3, r5
8968
- bcs .L1513
8969
- cmp r5, #7
8970
- rsb ip, r5, r4
8971
- bhi .L1514
8972
- str r5, [sp, #4]
8973
- b .L1513
8974
-.L1512:
8975
- mov r8, #0
8976
- mov r4, r9
8977
- mov r6, r0
8978
- mov r7, r8
8979
- mov fp, r8
8980
- b .L1503
8981
-.L1513:
8982
- mov r5, #0
8983
-.L1503:
8984
- add r9, r9, #2
8985
- cmp r9, #69
8986
- bls .L1506
8987
-.L1504:
8988
- ldr r3, [sp, #4]
8989
- cmp r3, r5
8990
- movcs r4, ip
8991
- b .L1505
8992
-.L1514:
8993
- mov r4, ip
8994
-.L1505:
8995
- cmp r4, #0
8996
- beq .L1507
8997
- ldr r0, .L1523+12
8998
- mov r1, r4
9459
+.L1499:
9460
+ ldr r2, [sp, #8]
9461
+ cmp r4, r2
9462
+ movls r6, r3
9463
+.L1500:
9464
+ cmp r6, #0
9465
+ beq .L1502
9466
+ mov r1, r6
9467
+ ldr r0, .L1517+12
89999468 bl printk
9000
- uxtb r0, r4
9469
+ uxtb r0, r6
90019470 bl NandcSetDdrPara
9002
-.L1507:
9471
+.L1502:
90039472 cmn r8, #1
9004
- bne .L1500
9005
- ldr r0, .L1523+16
9006
- mov r1, r10
9007
- ldr r2, [sp]
9473
+ bne .L1491
9474
+ ldm sp, {r1, r2}
9475
+ ldr r0, .L1517+16
90089476 bl printk
90099477 ldr r3, [sp, #56]
90109478 cmp r3, #0
9011
- beq .L1508
9012
- ldr r3, [sp, #8]
9479
+ beq .L1503
9480
+ ldr r3, [sp, #12]
90139481 ubfx r0, r3, #8, #8
90149482 bl NandcSetDdrPara
9015
-.L1500:
9016
- mov r0, r6
9017
- add sp, sp, #20
9018
- @ sp needed
9019
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9020
-.L1524:
9483
+ b .L1491
9484
+.L1497:
9485
+ ldr r3, [sp, #8]
9486
+ cmp r4, r3
9487
+ bls .L1508
9488
+ cmp r4, #7
9489
+ sub r6, r9, r4
9490
+ bhi .L1500
9491
+ str r4, [sp, #8]
9492
+.L1508:
9493
+ mov r4, #0
9494
+ b .L1498
9495
+.L1507:
9496
+ mov r8, #0
9497
+ mov r9, r10
9498
+ mov r5, r0
9499
+ mov r7, r8
9500
+ mov fp, r8
9501
+.L1498:
9502
+ add r10, r10, #2
9503
+ cmp r10, #69
9504
+ bls .L1501
9505
+ mov r3, r6
9506
+ mov r6, r9
9507
+ b .L1499
9508
+.L1518:
90219509 .align 2
9022
-.L1523:
9510
+.L1517:
90239511 .word .LANCHOR0
90249512 .word .LC90
90259513 .word .LANCHOR2
....@@ -9029,110 +9517,110 @@
90299517 .size FlashDdrTunningRead, .-FlashDdrTunningRead
90309518 .align 2
90319519 .global FlashReadPage
9520
+ .syntax unified
9521
+ .arm
9522
+ .fpu softvfp
90329523 .type FlashReadPage, %function
90339524 FlashReadPage:
90349525 .fnstart
90359526 @ args = 0, pretend = 0, frame = 0
90369527 @ frame_needed = 0, uses_anonymous_args = 0
9037
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
9528
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
90389529 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
90399530 .pad #12
90409531 mov r5, r0
90419532 mov r6, r1
9042
- mov r8, r2
9043
- mov r7, r3
9533
+ mov r7, r2
9534
+ mov r8, r3
90449535 bl FlashReadRawPage
90459536 cmn r0, #1
90469537 mov r4, r0
9047
- bne .L1526
9048
- ldr r9, .L1546
9049
- ldrb fp, [r9, #8] @ zero_extendqisi2
9538
+ bne .L1520
9539
+ ldr r9, .L1539
9540
+ ldrb fp, [r9, #44] @ zero_extendqisi2
90509541 mov r10, r9
90519542 cmp fp, #0
9052
- bne .L1527
9053
-.L1529:
9054
- ldrb r3, [r10, #2252] @ zero_extendqisi2
9055
- ldr r9, .L1546
9543
+ bne .L1521
9544
+.L1523:
9545
+ ldrb r3, [r10, #2256] @ zero_extendqisi2
90569546 cmp r3, #0
9057
- beq .L1526
9058
- b .L1545
9059
-.L1527:
9060
- mov r3, #0
9061
- mov r0, r5
9062
- strb r3, [r9, #8]
9547
+ beq .L1520
9548
+ ldr r3, [r10, #88]
9549
+ mov r2, r7
90639550 mov r1, r6
9064
- mov r2, r8
9065
- mov r3, r7
9066
- bl FlashReadRawPage
9067
- strb fp, [r9, #8]
9068
- cmn r0, #1
9069
- movne r4, r0
9070
- beq .L1529
9071
- b .L1526
9072
-.L1545:
9073
- ldr r3, [r9, #80]
90749551 mov r0, r5
9075
- mov r1, r6
9076
- mov r2, r8
9077
- ldr r10, [r3, #304]
9552
+ ldr r9, [r3, #304]
90789553 mov r3, #1
90799554 str r3, [sp]
9080
- mov r3, r7
9555
+ mov r3, r8
90819556 bl FlashDdrTunningRead
90829557 cmn r0, #1
90839558 mov r4, r0
9084
- beq .L1530
9085
- ldrb r3, [r9, #2312] @ zero_extendqisi2
9559
+ beq .L1524
9560
+ ldrb r3, [r10, #2316] @ zero_extendqisi2
90869561 cmp r0, r3, lsr #1
9087
- bls .L1526
9088
-.L1530:
9089
- ubfx r0, r10, #8, #8
9562
+ bls .L1520
9563
+.L1524:
9564
+ ubfx r0, r9, #8, #8
90909565 bl NandcSetDdrPara
9091
-.L1526:
9092
- ldr r9, .L1546+4
9093
- ldr ip, [r9, #1696]
9094
- adds r3, ip, #0
9566
+ b .L1520
9567
+.L1521:
9568
+ mov r3, #0
9569
+ mov r2, r7
9570
+ strb r3, [r9, #44]
9571
+ mov r1, r6
9572
+ mov r3, r8
9573
+ mov r0, r5
9574
+ bl FlashReadRawPage
9575
+ cmn r0, #1
9576
+ strb fp, [r9, #44]
9577
+ movne r4, r0
9578
+ beq .L1523
9579
+.L1520:
9580
+ ldr r9, .L1539+4
9581
+ ldr r10, [r9, #1704]
9582
+ adds r3, r10, #0
90959583 movne r3, #1
90969584 cmn r4, #1
90979585 movne r3, #0
90989586 cmp r3, #0
9099
- beq .L1531
9587
+ beq .L1519
9588
+ mov r3, r8
9589
+ mov r2, r7
91009590 mov r1, r6
9101
- mov r2, r8
9102
- mov r3, r7
91039591 mov r0, r5
9104
- blx ip
9105
- mov r2, r5
9592
+ blx r10
91069593 mov r3, r6
91079594 mov r4, r0
9108
- ldr r0, .L1546+8
9109
- mov r1, r4
9595
+ mov r1, r0
9596
+ mov r2, r5
9597
+ ldr r0, .L1539+8
91109598 bl printk
91119599 cmn r4, #1
9112
- bne .L1531
9113
- ldr r3, .L1546
9114
- ldrb r3, [r3, #144] @ zero_extendqisi2
9600
+ bne .L1519
9601
+ ldr r3, .L1539
9602
+ ldrb r3, [r3, #152] @ zero_extendqisi2
91159603 cmp r3, #0
9116
- beq .L1531
9604
+ beq .L1519
91179605 mov r0, r5
91189606 bl flash_enter_slc_mode
9119
- ldr ip, [r9, #1696]
9120
- mov r0, r5
9607
+ ldr r4, [r9, #1704]
9608
+ mov r3, r8
9609
+ mov r2, r7
91219610 mov r1, r6
9122
- mov r2, r8
9123
- mov r3, r7
9124
- blx ip
9611
+ mov r0, r5
9612
+ blx r4
91259613 mov r4, r0
91269614 mov r0, r5
91279615 bl flash_exit_slc_mode
9128
-.L1531:
9616
+.L1519:
91299617 mov r0, r4
91309618 add sp, sp, #12
91319619 @ sp needed
9132
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9133
-.L1547:
9620
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9621
+.L1540:
91349622 .align 2
9135
-.L1546:
9623
+.L1539:
91369624 .word .LANCHOR0
91379625 .word .LANCHOR2
91389626 .word .LC93
....@@ -9140,587 +9628,601 @@
91409628 .size FlashReadPage, .-FlashReadPage
91419629 .align 2
91429630 .global FlashDdrParaScan
9631
+ .syntax unified
9632
+ .arm
9633
+ .fpu softvfp
91439634 .type FlashDdrParaScan, %function
91449635 FlashDdrParaScan:
91459636 .fnstart
91469637 @ args = 0, pretend = 0, frame = 0
91479638 @ frame_needed = 0, uses_anonymous_args = 0
9148
- stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
9639
+ push {r0, r1, r4, r5, r6, r7, r8, lr}
91499640 .save {r4, r5, r6, r7, r8, lr}
91509641 .pad #8
9151
- mov r7, r0
9152
- ldr r5, .L1558
9153
- mov r6, r1
9642
+ mov r6, r0
9643
+ ldr r5, .L1551
91549644 mov r4, #0
9155
- ldrb r0, [r5, #2229] @ zero_extendqisi2
9645
+ mov r7, r1
9646
+ ldrb r0, [r5, #2233] @ zero_extendqisi2
91569647 bl FlashSetInterfaceMode
9157
- ldrb r0, [r5, #2229] @ zero_extendqisi2
9648
+ ldrb r0, [r5, #2233] @ zero_extendqisi2
91589649 bl NandcSetMode
9159
- mov r1, r6
9160
- mov r2, r4
91619650 mov r3, r4
9162
- mov r0, r7
9651
+ mov r2, r4
9652
+ mov r1, r7
91639653 str r4, [sp]
9654
+ mov r0, r6
91649655 bl FlashDdrTunningRead
91659656 mov r3, r4
9166
- mov r1, r6
9167
- mov r2, r4
91689657 mov r8, r0
9169
- mov r0, r7
9658
+ mov r2, r4
9659
+ mov r1, r7
9660
+ mov r0, r6
91709661 bl FlashReadRawPage
9662
+ cmn r8, #1
9663
+ cmnne r0, #1
91719664 mov r3, r5
9172
- cmn r0, #1
9173
- cmnne r8, #1
9174
- bne .L1549
9175
- ldrb r2, [r5, #2229] @ zero_extendqisi2
9665
+ bne .L1542
9666
+ ldrb r2, [r5, #2233] @ zero_extendqisi2
91769667 tst r2, #1
9177
- beq .L1549
9668
+ beq .L1542
91789669 mov r0, #1
91799670 bl FlashSetInterfaceMode
91809671 mov r0, #1
91819672 bl NandcSetMode
9182
- strb r4, [r5, #2252]
9183
- b .L1550
9184
-.L1549:
9185
- mov r2, #1
9186
- strb r2, [r3, #2252]
9187
-.L1550:
9673
+ strb r4, [r5, #2256]
9674
+.L1543:
91889675 mov r0, #0
91899676 add sp, sp, #8
91909677 @ sp needed
9191
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
9192
-.L1559:
9678
+ pop {r4, r5, r6, r7, r8, pc}
9679
+.L1542:
9680
+ mov r2, #1
9681
+ strb r2, [r3, #2256]
9682
+ b .L1543
9683
+.L1552:
91939684 .align 2
9194
-.L1558:
9685
+.L1551:
91959686 .word .LANCHOR0
91969687 .fnend
91979688 .size FlashDdrParaScan, .-FlashDdrParaScan
91989689 .align 2
91999690 .global FlashLoadPhyInfo
9691
+ .syntax unified
9692
+ .arm
9693
+ .fpu softvfp
92009694 .type FlashLoadPhyInfo, %function
92019695 FlashLoadPhyInfo:
92029696 .fnstart
92039697 @ args = 0, pretend = 0, frame = 16
92049698 @ frame_needed = 0, uses_anonymous_args = 0
9205
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9699
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
92069700 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9701
+ mov r3, #60
92079702 .pad #20
92089703 sub sp, sp, #20
9209
- ldr r3, .L1576
9210
- mov r4, #0
9211
- ldr r7, .L1576+4
9212
- mov r9, #4
9213
- ldr r5, .L1576+8
9214
- mvn r8, #0
9215
- ldr r0, [r3] @ unaligned
9216
- ldr r3, [r7, #4]
9217
- str r4, [r5, #1704]
9218
- mov r6, r5
9219
- str r0, [sp, #12] @ unaligned
9220
- mov r0, r4
9704
+ ldr r6, .L1568
9705
+ mov r5, #0
9706
+ mov r8, #4
9707
+ strb r3, [sp, #12]
9708
+ mov r3, #40
9709
+ strb r3, [sp, #13]
9710
+ mov r3, #24
9711
+ strb r3, [sp, #14]
9712
+ mov r3, #16
9713
+ ldr r4, .L1568+4
9714
+ mvn r7, #0
9715
+ strb r3, [sp, #15]
9716
+ mov r0, r5
9717
+ ldr r3, [r6, #40]
9718
+ str r5, [r4, #1712]
92219719 str r3, [sp, #4]
9222
- ldr r3, [r5, #1688]
9223
- str r3, [r5, #1700]
9720
+ ldr r3, [r4, #1696]
9721
+ str r3, [r4, #1708]
92249722 bl flash_enter_slc_mode
9225
-.L1561:
9226
- add fp, r4, #1
9227
- mov r10, #0
9228
-.L1563:
9229
- add r3, sp, #12
9230
- ldrb r0, [r3, r10] @ zero_extendqisi2
9723
+.L1554:
9724
+ add fp, r5, #1
9725
+ mov r9, #0
9726
+ add r10, sp, #12
9727
+.L1556:
9728
+ ldrb r0, [r10, r9] @ zero_extendqisi2
92319729 bl FlashBchSel
9232
- mov r0, #0
9233
- mov r1, r4
9234
- ldr r2, [r5, #1688]
9235
- mov r3, r0
9730
+ mov r3, #0
9731
+ ldr r2, [r4, #1696]
9732
+ mov r1, r5
9733
+ mov r0, r3
92369734 bl FlashReadRawPage
92379735 cmn r0, #1
9238
- bne .L1562
9239
- mov r0, #0
9736
+ bne .L1555
9737
+ mov r3, #0
9738
+ ldr r2, [r4, #1696]
92409739 mov r1, fp
9241
- ldr r2, [r6, #1688]
9242
- mov r3, r0
9740
+ mov r0, r3
92439741 bl FlashReadRawPage
92449742 cmn r0, #1
9245
- bne .L1562
9246
- add r10, r10, #1
9247
- cmp r10, #4
9248
- beq .L1564
9249
- b .L1563
9250
-.L1565:
9251
- add r0, fp, #12
9252
- movw r1, #2036
9253
- bl js_hash
9254
- ldr r3, [fp, #8]
9255
- cmp r3, r0
9256
- mvnne r8, #0
9257
- bne .L1564
9258
- ldr r8, .L1576+12
9259
- add r1, fp, #160
9260
- mov r2, #32
9743
+ bne .L1555
9744
+ add r9, r9, #1
9745
+ cmp r9, #4
9746
+ bne .L1556
9747
+.L1557:
9748
+ ldr r3, [sp, #4]
9749
+ subs r8, r8, #1
9750
+ add r5, r5, r3
9751
+ bne .L1554
92619752 mov r0, r8
9262
- bl ftl_memcpy
9263
- ldr r1, [r6, #1700]
9753
+ b .L1567
9754
+.L1558:
9755
+ movw r1, #2036
9756
+ add r0, r9, #12
9757
+ bl js_hash
9758
+ ldr r3, [r9, #8]
9759
+ cmp r3, r0
9760
+ mvnne r7, #0
9761
+ bne .L1557
92649762 mov r2, #32
9265
- ldr r0, .L1576+16
9763
+ add r1, r9, #160
9764
+ ldr r0, .L1568+8
9765
+ bl ftl_memcpy
9766
+ ldr r1, [r4, #1708]
9767
+ mov r2, #32
9768
+ ldr r0, .L1568+12
92669769 add r1, r1, #192
92679770 bl ftl_memcpy
9268
- ldr r1, [r6, #1700]
9771
+ ldr r1, [r4, #1708]
92699772 mov r2, #852
9270
- ldr r0, .L1576+20
9773
+ ldr r0, .L1568+16
92719774 add r1, r1, #224
92729775 bl ftl_memcpy
9273
- ldrh r0, [r8, #10]
9776
+ ldr r3, .L1568+8
9777
+ ldrh r0, [r3, #10]
92749778 bl FlashBlockAlignInit
9275
- ldr r8, [r6, #1700]
9276
- str r4, [r6, #1704]
9277
- mov r0, r4
9278
- ldr r1, [r7, #4]
9279
- ldr r3, [r8, #1076]
9280
- strb r3, [r7, #2252]
9779
+ ldr r7, [r4, #1708]
9780
+ mov r0, r5
9781
+ str r5, [r4, #1712]
9782
+ ldr r1, [r6, #40]
9783
+ ldr r3, [r7, #1076]
9784
+ strb r3, [r6, #2256]
92819785 bl __aeabi_uidiv
92829786 add r0, r0, #1
92839787 cmp r0, #1
9284
- strhi r0, [r6, #1708]
92859788 movls r3, #2
9286
- strls r3, [r6, #1708]
9287
- ldrh r3, [r8, #14]
9288
- mov r8, #0
9289
- strb r3, [r5, #1712]
9290
-.L1564:
9291
- ldr r3, [sp, #4]
9292
- subs r9, r9, #1
9293
- add r4, r4, r3
9294
- bne .L1561
9295
- mov r0, r9
9296
-.L1575:
9789
+ strhi r0, [r4, #1716]
9790
+ strls r3, [r4, #1716]
9791
+ ldrh r3, [r7, #14]
9792
+ mov r7, #0
9793
+ strb r3, [r4, #1720]
9794
+ b .L1557
9795
+.L1555:
9796
+ ldr r9, [r4, #1708]
9797
+ ldr r2, .L1568+20
9798
+ ldr r3, [r9]
9799
+ cmp r3, r2
9800
+ bne .L1557
9801
+ cmp r7, #0
9802
+ bne .L1558
9803
+ ldr r1, [r6, #40]
9804
+ mov r0, r5
9805
+ bl __aeabi_uidiv
9806
+ add r0, r0, #1
9807
+ str r0, [r4, #1716]
9808
+ mov r0, r7
9809
+.L1567:
92979810 bl flash_exit_slc_mode
9298
- mov r0, r8
9811
+ mov r0, r7
92999812 add sp, sp, #20
93009813 @ sp needed
9301
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9302
-.L1562:
9303
- ldr fp, [r5, #1700]
9304
- ldr r2, .L1576+24
9305
- ldr r3, [fp]
9306
- cmp r3, r2
9307
- bne .L1564
9308
- cmp r8, #0
9309
- bne .L1565
9310
- mov r0, r4
9311
- ldr r1, [r7, #4]
9312
- bl __aeabi_uidiv
9313
- ldr r3, .L1576+8
9314
- add r0, r0, #1
9315
- str r0, [r3, #1708]
9316
- mov r0, r8
9317
- b .L1575
9318
-.L1577:
9814
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9815
+.L1569:
93199816 .align 2
9320
-.L1576:
9321
- .word .LANCHOR3+11
9817
+.L1568:
93229818 .word .LANCHOR0
93239819 .word .LANCHOR2
9324
- .word .LANCHOR1+472
9325
- .word .LANCHOR0+48
9326
- .word .LANCHOR0+1210
9820
+ .word .LANCHOR1+468
9821
+ .word .LANCHOR0+52
9822
+ .word .LANCHOR0+1216
93279823 .word 1312902724
93289824 .fnend
93299825 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo
93309826 .align 2
93319827 .global ToshibaReadRetrial
9828
+ .syntax unified
9829
+ .arm
9830
+ .fpu softvfp
93329831 .type ToshibaReadRetrial, %function
93339832 ToshibaReadRetrial:
93349833 .fnstart
93359834 @ args = 0, pretend = 0, frame = 24
93369835 @ frame_needed = 0, uses_anonymous_args = 0
9337
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9836
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
93389837 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9838
+ mov r8, r0
9839
+ ldr r4, .L1598
93399840 .pad #28
93409841 sub sp, sp, #28
9341
- mov r9, r0
93429842 mov fp, r3
9843
+ str r1, [sp, #12]
93439844 str r2, [sp, #8]
9344
- str r1, [sp, #16]
93459845 bl NandcWaitFlashReady
9346
- ldr r4, .L1607
9347
- add r3, r4, r9, asl #3
9348
- ldrb r2, [r3, #16] @ zero_extendqisi2
9349
- ldr r6, [r3, #12]
9350
- ldrb r3, [r4, #1208] @ zero_extendqisi2
9351
- add r7, r2, #8
9846
+ add r3, r4, r8, lsl #3
9847
+ ldr r6, [r4, r8, lsl #3]
9848
+ ldrb r1, [r3, #4] @ zero_extendqisi2
9849
+ ldrb r3, [r4, #84] @ zero_extendqisi2
9850
+ add r7, r1, #8
93529851 sub r3, r3, #67
9353
- add r7, r6, r7, asl #8
9852
+ add r7, r6, r7, lsl #8
93549853 cmp r3, #1
9355
- mov r3, r2, asl #8
9356
- str r3, [sp, #12]
9357
- movls r3, #0
9358
- strls r3, [sp, #4]
9359
- bls .L1579
9360
- ldrb r5, [r4, #2252] @ zero_extendqisi2
9854
+ lsl r3, r1, #8
9855
+ movls r5, #0
9856
+ str r3, [sp, #16]
9857
+ bls .L1571
9858
+ ldrb r5, [r4, #2256] @ zero_extendqisi2
93619859 cmp r5, #0
9362
- streq r5, [sp, #4]
9363
- beq .L1580
9860
+ beq .L1572
9861
+ mov r5, #1
93649862 mov r0, #0
9365
- str r2, [sp, #20]
93669863 bl NandcSetDdrMode
9367
- mov r3, #1
9368
- ldr r2, [sp, #20]
9369
- str r3, [sp, #4]
9370
-.L1580:
9371
- ldr r3, [sp, #12]
9372
- mov r1, #92
9864
+.L1572:
9865
+ lsl r3, r1, #8
9866
+ mov r2, #92
93739867 add r3, r6, r3
9374
- str r1, [r3, #2056]
9375
- mov r1, #197
9376
- str r1, [r3, #2056]
9377
-.L1579:
9378
- mov r8, #1
9379
- mvn r10, #0
9380
- mov r3, r2, asl #8
9868
+ str r2, [r3, #2056]
9869
+ mov r2, #197
9870
+ str r2, [r3, #2056]
9871
+.L1571:
9872
+ mvn r3, #0
9873
+ mov r9, #1
9874
+ str r3, [sp, #4]
9875
+ lsl r3, r1, #8
93819876 str r3, [sp, #20]
9382
-.L1581:
9383
- ldr r3, .L1607+4
9384
- ldrb r3, [r3, #1713] @ zero_extendqisi2
9877
+.L1573:
9878
+ ldr r3, .L1598+4
9879
+ ldrb r3, [r3, #1721] @ zero_extendqisi2
93859880 add r3, r3, #1
9386
- cmp r8, r3
9387
- bcs .L1606
9388
- ldrb r3, [r4, #1208] @ zero_extendqisi2
9881
+ cmp r9, r3
9882
+ bcc .L1582
9883
+ ldr r10, [sp, #4]
9884
+.L1581:
9885
+ ldrb r2, [r4, #84] @ zero_extendqisi2
9886
+ mov r1, #0
93899887 mov r0, r7
9390
- uxtb r1, r8
9888
+ sub r2, r2, #67
9889
+ cmp r2, #1
9890
+ bhi .L1583
9891
+ bl SandiskSetRRPara
9892
+.L1584:
9893
+ ldr r3, [sp, #16]
9894
+ mov r2, #255
9895
+ add r6, r6, r3
9896
+ str r2, [r6, #2056]
9897
+ ldrb r2, [r4, #2316] @ zero_extendqisi2
9898
+ add r2, r2, r2, lsl #1
9899
+ cmp r10, r2, asr #2
9900
+ bcc .L1585
9901
+ cmn r10, #1
9902
+ movne r10, #256
9903
+.L1585:
9904
+ mov r0, r8
9905
+ bl NandcWaitFlashReady
9906
+ cmp r5, #0
9907
+ beq .L1570
9908
+ mov r0, #4
9909
+ bl NandcSetDdrMode
9910
+.L1570:
9911
+ mov r0, r10
9912
+ add sp, sp, #28
9913
+ @ sp needed
9914
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9915
+.L1582:
9916
+ ldrb r3, [r4, #84] @ zero_extendqisi2
9917
+ mov r0, r7
9918
+ uxtb r1, r9
93919919 sub r3, r3, #67
93929920 cmp r3, #1
9393
- bhi .L1582
9921
+ bhi .L1574
93949922 bl SandiskSetRRPara
9395
- b .L1583
9396
-.L1582:
9397
- bl ToshibaSetRRPara
9398
-.L1583:
9399
- ldrb r3, [r4, #1208] @ zero_extendqisi2
9923
+.L1575:
9924
+ ldrb r3, [r4, #84] @ zero_extendqisi2
94009925 cmp r3, #34
9401
- bne .L1584
9402
- ldr r3, .L1607+4
9403
- ldrb r3, [r3, #1713] @ zero_extendqisi2
9926
+ bne .L1576
9927
+ ldr r3, .L1598+4
9928
+ ldrb r3, [r3, #1721] @ zero_extendqisi2
94049929 sub r3, r3, #3
9405
- cmp r8, r3
9930
+ cmp r9, r3
94069931 ldreq r3, [sp, #20]
94079932 moveq r2, #179
94089933 addeq r3, r6, r3
94099934 streq r2, [r3, #2056]
9410
-.L1584:
9411
- ldr r3, [sp, #12]
9935
+.L1576:
9936
+ ldr r3, [sp, #16]
94129937 mov r2, #38
9938
+ cmp r5, #0
94139939 add r3, r6, r3
94149940 str r2, [r3, #2056]
94159941 mov r2, #93
94169942 str r2, [r3, #2056]
9417
- ldr r3, [sp, #4]
9418
- cmp r3, #0
9419
- beq .L1585
9943
+ beq .L1577
94209944 mov r0, #4
94219945 bl NandcSetDdrMode
9422
- mov r0, r9
94239946 mov r3, fp
9424
- ldr r1, [sp, #16]
94259947 ldr r2, [sp, #8]
9948
+ ldr r1, [sp, #12]
9949
+ mov r0, r8
94269950 bl FlashReadRawPage
9427
- mov r5, r0
9951
+ mov r10, r0
94289952 mov r0, #0
94299953 bl NandcSetDdrMode
9430
- b .L1586
9431
-.L1585:
9432
- mov r0, r9
9433
- ldr r1, [sp, #16]
9434
- ldr r2, [sp, #8]
9435
- mov r3, fp
9436
- bl FlashReadRawPage
9437
- mov r5, r0
9438
-.L1586:
9439
- cmn r5, #1
9440
- beq .L1587
9441
- ldrb r2, [r4, #2312] @ zero_extendqisi2
9954
+.L1578:
94429955 cmn r10, #1
9443
- moveq r10, r5
9444
- add r2, r2, r2, asl #1
9445
- cmp r5, r2, asr #2
9446
- bcc .L1589
9956
+ beq .L1579
9957
+ ldrb r2, [r4, #2316] @ zero_extendqisi2
9958
+ ldr r3, [sp, #4]
9959
+ add r2, r2, r2, lsl #1
9960
+ cmn r3, #1
9961
+ moveq r3, r10
9962
+ cmp r10, r2, asr #2
9963
+ str r3, [sp, #4]
9964
+ bcc .L1581
94479965 mov fp, #0
94489966 str fp, [sp, #8]
9449
-.L1587:
9450
- add r8, r8, #1
9451
- b .L1581
9452
-.L1606:
9453
- mov r5, r10
9454
-.L1589:
9455
- ldrb r2, [r4, #1208] @ zero_extendqisi2
9456
- mov r0, r7
9457
- mov r1, #0
9458
- sub r2, r2, #67
9459
- cmp r2, #1
9460
- bhi .L1591
9461
- bl SandiskSetRRPara
9462
- b .L1592
9463
-.L1591:
9967
+.L1579:
9968
+ add r9, r9, #1
9969
+ b .L1573
9970
+.L1574:
94649971 bl ToshibaSetRRPara
9465
-.L1592:
9466
- ldr r3, [sp, #12]
9467
- mov r2, #255
9468
- add r6, r6, r3
9469
- str r2, [r6, #2056]
9470
- ldrb r2, [r4, #2312] @ zero_extendqisi2
9471
- add r2, r2, r2, asl #1
9472
- cmp r5, r2, asr #2
9473
- bcc .L1593
9474
- cmn r5, #1
9475
- movne r5, #256
9476
-.L1593:
9477
- mov r0, r9
9478
- bl NandcWaitFlashReady
9479
- ldr r3, [sp, #4]
9480
- cmp r3, #0
9481
- beq .L1594
9482
- mov r0, #4
9483
- bl NandcSetDdrMode
9484
-.L1594:
9485
- mov r0, r5
9486
- add sp, sp, #28
9487
- @ sp needed
9488
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9489
-.L1608:
9972
+ b .L1575
9973
+.L1577:
9974
+ mov r3, fp
9975
+ ldr r2, [sp, #8]
9976
+ ldr r1, [sp, #12]
9977
+ mov r0, r8
9978
+ bl FlashReadRawPage
9979
+ mov r10, r0
9980
+ b .L1578
9981
+.L1583:
9982
+ bl ToshibaSetRRPara
9983
+ b .L1584
9984
+.L1599:
94909985 .align 2
9491
-.L1607:
9986
+.L1598:
94929987 .word .LANCHOR0
94939988 .word .LANCHOR2
94949989 .fnend
94959990 .size ToshibaReadRetrial, .-ToshibaReadRetrial
94969991 .align 2
94979992 .global SamsungReadRetrial
9993
+ .syntax unified
9994
+ .arm
9995
+ .fpu softvfp
94989996 .type SamsungReadRetrial, %function
94999997 SamsungReadRetrial:
95009998 .fnstart
9501
- @ args = 0, pretend = 0, frame = 8
9999
+ @ args = 0, pretend = 0, frame = 0
950210000 @ frame_needed = 0, uses_anonymous_args = 0
9503
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
9504
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9505
- .pad #12
9506
- mov r9, r0
9507
- ldr r5, .L1623
9508
- mov r10, r2
9509
- mov r8, r3
10001
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
10002
+ .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
10003
+ mov r8, r0
10004
+ ldr r5, .L1614
10005
+ mov r9, r3
951010006 mov fp, r1
10007
+ mov r10, r2
951110008 bl NandcWaitFlashReady
9512
- add r2, r5, r9, asl #3
9513
- ldr ip, .L1623+4
951410009 mov r7, #1
9515
- ldrb r3, [r2, #16] @ zero_extendqisi2
951610010 mvn r4, #0
9517
- ldr r6, [r2, #12]
9518
- add r3, r3, #8
9519
- add r6, r6, r3, asl #8
9520
-.L1610:
9521
- ldrb r3, [ip, #1713] @ zero_extendqisi2
10011
+ add r3, r5, r8, lsl #3
10012
+ ldrb r6, [r3, #4] @ zero_extendqisi2
10013
+ add r3, r6, #8
10014
+ ldr r6, [r5, r8, lsl #3]
10015
+ add r6, r6, r3, lsl #8
10016
+.L1601:
10017
+ ldr r3, .L1614+4
10018
+ ldrb r3, [r3, #1721] @ zero_extendqisi2
952210019 add r3, r3, #1
952310020 cmp r7, r3
9524
- bcs .L1613
9525
- mov r0, r6
9526
- uxtb r1, r7
9527
- str ip, [sp, #4]
9528
- bl SamsungSetRRPara
9529
- mov r0, r9
9530
- mov r1, fp
9531
- mov r2, r10
9532
- mov r3, r8
9533
- bl FlashReadRawPage
9534
- cmn r0, #1
9535
- ldr ip, [sp, #4]
9536
- beq .L1611
9537
- ldrb r3, [r5, #2312] @ zero_extendqisi2
9538
- cmn r4, #1
9539
- moveq r4, r0
9540
- add r3, r3, r3, asl #1
9541
- cmp r0, r3, asr #2
9542
- bcc .L1616
9543
- mov r8, #0
9544
- mov r10, r8
9545
-.L1611:
9546
- add r7, r7, #1
9547
- b .L1610
9548
-.L1616:
9549
- mov r4, r0
9550
-.L1613:
9551
- mov r0, r6
10021
+ bcc .L1605
10022
+.L1604:
955210023 mov r1, #0
10024
+ mov r0, r6
955310025 bl SamsungSetRRPara
9554
- ldrb r3, [r5, #2312] @ zero_extendqisi2
9555
- add r3, r3, r3, asl #1
10026
+ ldrb r3, [r5, #2316] @ zero_extendqisi2
10027
+ add r3, r3, r3, lsl #1
955610028 cmp r4, r3, asr #2
9557
- bcc .L1615
10029
+ bcc .L1600
955810030 cmn r4, #1
955910031 movne r4, #256
9560
-.L1615:
10032
+.L1600:
956110033 mov r0, r4
9562
- add sp, sp, #12
9563
- @ sp needed
9564
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9565
-.L1624:
10034
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
10035
+.L1605:
10036
+ uxtb r1, r7
10037
+ mov r0, r6
10038
+ bl SamsungSetRRPara
10039
+ mov r3, r9
10040
+ mov r2, r10
10041
+ mov r1, fp
10042
+ mov r0, r8
10043
+ bl FlashReadRawPage
10044
+ cmn r0, #1
10045
+ beq .L1602
10046
+ ldrb r3, [r5, #2316] @ zero_extendqisi2
10047
+ cmn r4, #1
10048
+ moveq r4, r0
10049
+ add r3, r3, r3, lsl #1
10050
+ cmp r0, r3, asr #2
10051
+ bcc .L1608
10052
+ mov r9, #0
10053
+ mov r10, r9
10054
+.L1602:
10055
+ add r7, r7, #1
10056
+ b .L1601
10057
+.L1608:
10058
+ mov r4, r0
10059
+ b .L1604
10060
+.L1615:
956610061 .align 2
9567
-.L1623:
10062
+.L1614:
956810063 .word .LANCHOR0
956910064 .word .LANCHOR2
957010065 .fnend
957110066 .size SamsungReadRetrial, .-SamsungReadRetrial
957210067 .align 2
957310068 .global MicronReadRetrial
10069
+ .syntax unified
10070
+ .arm
10071
+ .fpu softvfp
957410072 .type MicronReadRetrial, %function
957510073 MicronReadRetrial:
957610074 .fnstart
9577
- @ args = 0, pretend = 0, frame = 24
10075
+ @ args = 0, pretend = 0, frame = 32
957810076 @ frame_needed = 0, uses_anonymous_args = 0
9579
-.L1627:
9580
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10077
+.L1618:
10078
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
958110079 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9582
- mov r8, r3
9583
- ldr r3, .L1651
9584
- mov fp, r2
9585
- .pad #36
9586
- sub sp, sp, #36
9587
- mov r6, r0
9588
- mov r10, #0
9589
- ldrb r5, [r3, #2312] @ zero_extendqisi2
9590
- ldrb r3, [r3, #144] @ zero_extendqisi2
9591
- str r1, [sp, #20]
10080
+ mov r7, r3
10081
+ ldr r3, .L1642
10082
+ mov r10, r2
10083
+ .pad #44
10084
+ sub sp, sp, #44
10085
+ mov r5, r0
10086
+ ldr fp, .L1642
10087
+ ldrb r2, [r3, #2316] @ zero_extendqisi2
10088
+ ldrb r3, [r3, #152] @ zero_extendqisi2
10089
+ str r1, [sp, #28]
959210090 cmp r3, #0
9593
- addeq r5, r5, r5, asl #1
9594
- ldrne r2, .L1651+4
9595
- ubfxeq r5, r5, #2, #8
9596
- smullne r2, r3, r5, r2
9597
- uxtbne r5, r3
9598
- ldr r3, .L1651
9599
- add r3, r3, r0, asl #3
9600
- str r3, [sp, #24]
9601
-.L1637:
9602
- mov r0, r6
10091
+ ldrne r3, .L1642+4
10092
+ addeq r2, r2, r2, lsl #1
10093
+ asreq r3, r2, #2
10094
+ smullne r2, r3, r2, r3
10095
+ str r3, [sp, #12]
10096
+ mov r3, #0
10097
+ str r3, [sp, #16]
10098
+ add r3, fp, r0, lsl #3
10099
+ str r3, [sp, #36]
10100
+.L1628:
10101
+ mov r0, r5
960310102 mov r9, #0
960410103 bl NandcWaitFlashReady
10104
+ ldr r3, [fp, r5, lsl #3]
960510105 mvn r4, #0
9606
- ldr r3, [sp, #24]
9607
- ldr r3, [r3, #12]
9608
- str r3, [sp, #12]
9609
- ldr r3, [sp, #24]
9610
- ldrb r3, [r3, #16] @ zero_extendqisi2
9611
- str r3, [sp, #16]
9612
- ldr r2, [sp, #16]
9613
- ldr r3, [sp, #12]
9614
- add r7, r3, r2, asl #8
9615
-.L1628:
9616
- ldr r3, .L1651+8
9617
- ldrb r3, [r3, #1713] @ zero_extendqisi2
10106
+ str r3, [sp, #20]
10107
+ ldr r3, [sp, #36]
10108
+ ldrb r3, [r3, #4] @ zero_extendqisi2
10109
+ str r3, [sp, #24]
10110
+ ldr r2, [sp, #24]
10111
+ ldr r3, [sp, #20]
10112
+ add r6, r3, r2, lsl #8
10113
+.L1619:
10114
+ ldr r3, .L1642+8
10115
+ ldrb r3, [r3, #1721] @ zero_extendqisi2
961810116 cmp r9, r3
9619
- bcs .L1631
10117
+ bcc .L1623
10118
+.L1622:
10119
+ ldr r3, [sp, #20]
10120
+ mov r0, #200
10121
+ ldr r2, [sp, #24]
10122
+ add r6, r3, r2, lsl #8
10123
+ mov r3, #239
10124
+ str r3, [r6, #2056]
10125
+ mov r3, #137
10126
+ str r3, [r6, #2052]
10127
+ bl ndelay
10128
+ mov r3, #0
10129
+ str r3, [r6, #2048]
10130
+ str r3, [r6, #2048]
10131
+ str r3, [r6, #2048]
10132
+ str r3, [r6, #2048]
10133
+ ldr r3, [sp, #12]
10134
+ cmp r4, r3
10135
+ bcc .L1624
10136
+ cmn r4, #1
10137
+ movne r4, #256
10138
+.L1624:
10139
+ cmn r4, #1
10140
+ movne r6, #0
10141
+ moveq r6, #1
10142
+ cmp r4, #256
10143
+ movne r1, r6
10144
+ orreq r1, r6, #1
10145
+ cmp r1, #0
10146
+ beq .L1625
10147
+ mov r3, r9
10148
+ str r4, [sp]
10149
+ ldr r2, [sp, #28]
10150
+ mov r1, r9
10151
+ ldr r0, .L1642+12
10152
+ bl printk
10153
+ ldr r3, [sp, #16]
10154
+ cmp r3, #0
10155
+ bne .L1626
10156
+ ldrb r3, [fp, #152] @ zero_extendqisi2
10157
+ cmp r3, #0
10158
+ moveq r6, #0
10159
+ andne r6, r6, #1
10160
+ cmp r6, #0
10161
+ beq .L1616
10162
+ mov r1, #3
10163
+ mov r0, r5
10164
+ bl micron_auto_read_calibration_config
10165
+ mov r3, #1
10166
+ str r3, [sp, #16]
10167
+ b .L1628
10168
+.L1623:
962010169 mov r3, #239
962110170 mov r0, #200
9622
- str r3, [r7, #2056]
10171
+ str r3, [r6, #2056]
962310172 mov r3, #137
9624
- str r3, [r7, #2052]
9625
- bl NandcDelayns
9626
- mov ip, #0
10173
+ str r3, [r6, #2052]
10174
+ mov r8, #0
10175
+ bl ndelay
962710176 add r3, r9, #1
9628
- mov r0, r6
9629
- str r3, [r7, #2048]
9630
- mov r2, fp
9631
- str ip, [r7, #2048]
9632
- str ip, [r7, #2048]
9633
- str ip, [r7, #2048]
9634
- str r3, [sp, #8]
9635
- mov r3, r8
9636
- ldr r1, [sp, #20]
9637
- str ip, [sp, #28]
10177
+ mov r2, r10
10178
+ str r3, [r6, #2048]
10179
+ mov r0, r5
10180
+ str r8, [r6, #2048]
10181
+ str r3, [sp, #32]
10182
+ mov r3, r7
10183
+ str r8, [r6, #2048]
10184
+ ldr r1, [sp, #28]
10185
+ str r8, [r6, #2048]
963810186 bl FlashReadRawPage
963910187 cmn r0, #1
9640
- beq .L1629
9641
- cmn r4, #1
9642
- ldr ip, [sp, #28]
9643
- moveq r4, r0
9644
- cmp r0, r5
9645
- bcc .L1639
9646
- mov r8, ip
9647
- mov fp, ip
9648
-.L1629:
9649
- ldr r9, [sp, #8]
9650
- b .L1628
9651
-.L1639:
9652
- mov r4, r0
9653
- mov r8, ip
9654
- mov fp, ip
9655
-.L1631:
9656
- ldr r2, [sp, #16]
9657
- mov r0, #200
10188
+ beq .L1620
965810189 ldr r3, [sp, #12]
9659
- add r7, r3, r2, asl #8
9660
- mov r3, #239
9661
- str r3, [r7, #2056]
9662
- mov r3, #137
9663
- str r3, [r7, #2052]
9664
- bl NandcDelayns
9665
- cmp r4, r5
9666
- mov r3, #0
9667
- str r3, [r7, #2048]
9668
- str r3, [r7, #2048]
9669
- str r3, [r7, #2048]
9670
- str r3, [r7, #2048]
9671
- bcc .L1633
967210190 cmn r4, #1
9673
- movne r4, #256
9674
-.L1633:
9675
- cmn r4, #1
9676
- movne r7, #0
9677
- moveq r7, #1
9678
- cmp r4, #256
9679
- movne r1, r7
9680
- orreq r1, r7, #1
9681
- cmp r1, #0
9682
- beq .L1634
9683
- str r4, [sp]
9684
- mov r1, r9
9685
- ldr r0, .L1651+12
9686
- mov r3, r9
9687
- ldr r2, [sp, #20]
9688
- bl printk
9689
- cmp r10, #0
9690
- bne .L1635
9691
- ldr r3, .L1651
9692
- ldrb r3, [r3, #144] @ zero_extendqisi2
9693
- cmp r3, #0
9694
- moveq r7, #0
9695
- andne r7, r7, #1
9696
- cmp r7, #0
9697
- beq .L1644
9698
- mov r0, r6
9699
- mov r1, #3
9700
- bl micron_auto_read_calibration_config
9701
- mov r10, #1
9702
- b .L1637
9703
-.L1635:
9704
- mov r0, r6
10191
+ moveq r4, r0
10192
+ cmp r0, r3
10193
+ bcc .L1630
10194
+ mov r7, r8
10195
+ mov r10, r8
10196
+.L1620:
10197
+ ldr r9, [sp, #32]
10198
+ b .L1619
10199
+.L1630:
10200
+ mov r4, r0
10201
+ mov r7, r8
10202
+ mov r10, r8
10203
+ b .L1622
10204
+.L1626:
970510205 mov r1, #0
10206
+ mov r0, r5
970610207 bl micron_auto_read_calibration_config
970710208 cmn r4, #1
970810209 movne r4, #256
9709
- b .L1644
9710
-.L1634:
9711
- cmp r10, #0
9712
- beq .L1644
9713
- mov r0, r6
10210
+.L1616:
10211
+ mov r0, r4
10212
+ add sp, sp, #44
10213
+ @ sp needed
10214
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10215
+.L1625:
10216
+ ldr r3, [sp, #16]
10217
+ cmp r3, #0
10218
+ beq .L1616
10219
+ mov r0, r5
971410220 mov r4, #256
971510221 bl micron_auto_read_calibration_config
9716
-.L1644:
9717
- mov r0, r4
9718
- add sp, sp, #36
9719
- @ sp needed
9720
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9721
-.L1652:
10222
+ b .L1616
10223
+.L1643:
972210224 .align 2
9723
-.L1651:
10225
+.L1642:
972410226 .word .LANCHOR0
972510227 .word 1431655766
972610228 .word .LANCHOR2
....@@ -9729,296 +10231,299 @@
972910231 .size MicronReadRetrial, .-MicronReadRetrial
973010232 .align 2
973110233 .global HynixReadRetrial
10234
+ .syntax unified
10235
+ .arm
10236
+ .fpu softvfp
973210237 .type HynixReadRetrial, %function
973310238 HynixReadRetrial:
973410239 .fnstart
973510240 @ args = 0, pretend = 0, frame = 8
973610241 @ frame_needed = 0, uses_anonymous_args = 0
9737
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
10242
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
973810243 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
973910244 .pad #12
9740
- mov r8, r3
9741
- ldr r5, .L1671
9742
- mov r10, r2
9743
- mov r7, r0
9744
- mov fp, r1
9745
- add r2, r5, r0
10245
+ mov r9, r3
10246
+ ldr r5, .L1662
10247
+ mov r8, #0
974610248 mvn r6, #0
9747
- ldr r3, [r5, #44]
9748
- ldrb r4, [r2, #1222] @ zero_extendqisi2
9749
- ldrb r9, [r5, #1212] @ zero_extendqisi2
10249
+ mov fp, r2
10250
+ mov r7, r0
10251
+ str r1, [sp, #4]
10252
+ ldr r3, [r5, #48]
10253
+ add r2, r5, r0
10254
+ ldrb r4, [r2, #1228] @ zero_extendqisi2
10255
+ ldrb r10, [r5, #1218] @ zero_extendqisi2
975010256 ldrb r3, [r3, #19] @ zero_extendqisi2
975110257 sub r3, r3, #7
975210258 cmp r3, #1
9753
- ldrlsb r4, [r2, #1230] @ zero_extendqisi2
10259
+ ldrbls r4, [r2, #1236] @ zero_extendqisi2
975410260 bl NandcWaitFlashReady
9755
- mov ip, #0
9756
-.L1655:
9757
- cmp ip, r9
9758
- bcs .L1659
9759
- add r4, r4, #1
9760
- mov r0, r7
9761
- ldrb r1, [r5, #1211] @ zero_extendqisi2
9762
- uxtb r4, r4
9763
- ldr r2, .L1671+4
9764
- cmp r4, r9
9765
- str ip, [sp, #4]
9766
- movcs r4, #0
9767
- mov r3, r4
9768
- bl HynixSetRRPara
9769
- mov r0, r7
9770
- mov r1, fp
9771
- mov r2, r10
9772
- mov r3, r8
9773
- bl FlashReadRawPage
9774
- cmn r0, #1
9775
- ldr ip, [sp, #4]
9776
- beq .L1657
9777
- ldrb r3, [r5, #2312] @ zero_extendqisi2
9778
- cmn r6, #1
9779
- moveq r6, r0
9780
- add r3, r3, r3, asl #1
9781
- cmp r0, r3, asr #2
9782
- bcc .L1664
9783
- mov r8, #0
9784
- mov r10, r8
9785
-.L1657:
9786
- add ip, ip, #1
9787
- b .L1655
9788
-.L1664:
9789
- mov r6, r0
9790
-.L1659:
9791
- ldr r3, [r5, #44]
10261
+.L1646:
10262
+ cmp r8, r10
10263
+ bcc .L1651
10264
+.L1650:
10265
+ ldr r3, [r5, #48]
979210266 add r7, r5, r7
979310267 ldrb r3, [r3, #19] @ zero_extendqisi2
979410268 sub r3, r3, #7
979510269 cmp r3, #1
9796
- ldrb r3, [r5, #2312] @ zero_extendqisi2
9797
- strlsb r4, [r7, #1230]
9798
- strhib r4, [r7, #1222]
9799
- add r3, r3, r3, asl #1
10270
+ ldrb r3, [r5, #2316] @ zero_extendqisi2
10271
+ strbls r4, [r7, #1236]
10272
+ strbhi r4, [r7, #1228]
10273
+ add r3, r3, r3, lsl #1
980010274 cmp r6, r3, asr #2
9801
- bcc .L1663
10275
+ bcc .L1644
980210276 cmn r6, #1
980310277 movne r6, #256
9804
-.L1663:
10278
+.L1644:
980510279 mov r0, r6
980610280 add sp, sp, #12
980710281 @ sp needed
9808
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9809
-.L1672:
10282
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10283
+.L1651:
10284
+ add r4, r4, #1
10285
+ ldr r2, .L1662+4
10286
+ uxtb r4, r4
10287
+ ldrb r1, [r5, #1217] @ zero_extendqisi2
10288
+ mov r0, r7
10289
+ cmp r10, r4
10290
+ movls r4, #0
10291
+ mov r3, r4
10292
+ bl HynixSetRRPara
10293
+ mov r3, r9
10294
+ mov r2, fp
10295
+ ldr r1, [sp, #4]
10296
+ mov r0, r7
10297
+ bl FlashReadRawPage
10298
+ cmn r0, #1
10299
+ beq .L1648
10300
+ ldrb r3, [r5, #2316] @ zero_extendqisi2
10301
+ cmn r6, #1
10302
+ moveq r6, r0
10303
+ add r3, r3, r3, lsl #1
10304
+ cmp r0, r3, asr #2
10305
+ bcc .L1655
10306
+ mov r9, #0
10307
+ mov fp, r9
10308
+.L1648:
10309
+ add r8, r8, #1
10310
+ b .L1646
10311
+.L1655:
10312
+ mov r6, r0
10313
+ b .L1650
10314
+.L1663:
981010315 .align 2
9811
-.L1671:
10316
+.L1662:
981210317 .word .LANCHOR0
9813
- .word .LANCHOR0+1214
10318
+ .word .LANCHOR0+1220
981410319 .fnend
981510320 .size HynixReadRetrial, .-HynixReadRetrial
981610321 .align 2
10322
+ .syntax unified
10323
+ .arm
10324
+ .fpu softvfp
981710325 .type samsung_read_retrial, %function
981810326 samsung_read_retrial:
981910327 .fnstart
982010328 @ args = 0, pretend = 0, frame = 16
982110329 @ frame_needed = 0, uses_anonymous_args = 0
9822
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10330
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
982310331 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
982410332 .pad #28
982510333 sub sp, sp, #28
982610334 mov r10, r0
982710335 mov fp, r2
9828
- mov r8, r3
9829
- str r1, [sp, #12]
10336
+ mov r9, r3
10337
+ str r1, [sp, #16]
983010338 bl NandcWaitFlashReady
9831
- ldr r3, .L1703
9832
- add r2, r3, r10, asl #3
9833
- ldr r4, [r2, #12]
9834
- ldrb r2, [r2, #16] @ zero_extendqisi2
9835
- str r2, [sp, #8]
9836
- ldrb r2, [r3, #2228] @ zero_extendqisi2
9837
- str r3, [sp, #16]
10339
+ ldr r3, .L1694
10340
+ ldr r2, [r3, r10, lsl #3]
10341
+ str r3, [sp, #20]
10342
+ str r2, [sp, #12]
10343
+ add r2, r3, r10, lsl #3
10344
+ ldrb r6, [r2, #4] @ zero_extendqisi2
10345
+ ldrb r2, [r3, #2232] @ zero_extendqisi2
983810346 cmp r2, #0
9839
- bne .L1674
9840
- ldr r3, [sp, #8]
9841
- mvn r5, #0
9842
- mov r6, #1
9843
- mov r9, r3, asl #8
9844
- add r7, r4, r9
9845
-.L1678:
10347
+ bne .L1665
10348
+ ldr r3, [sp, #12]
10349
+ lsl r8, r6, #8
10350
+ mvn r4, #0
10351
+ mov r7, #1
10352
+ add r5, r3, r8
10353
+.L1669:
984610354 mov r3, #239
9847
- str r3, [r7, #2056]
10355
+ mov r6, #0
10356
+ str r3, [r5, #2056]
984810357 mov r3, #141
9849
- str r3, [r7, #2052]
9850
- ldr r3, .L1703+4
9851
- mov ip, #0
9852
- mov r0, r10
9853
- ldr r1, [sp, #12]
10358
+ str r3, [r5, #2052]
985410359 mov r2, fp
9855
- str ip, [sp, #20]
9856
- ldrsb r3, [r6, r3]
9857
- str r3, [r7, #2048]
9858
- mov r3, r8
9859
- str ip, [r7, #2048]
9860
- str ip, [r7, #2048]
9861
- str ip, [r7, #2048]
10360
+ ldr r3, .L1694+4
10361
+ mov r0, r10
10362
+ ldr r1, [sp, #16]
10363
+ ldrsb r3, [r7, r3]
10364
+ str r3, [r5, #2048]
10365
+ mov r3, r9
10366
+ str r6, [r5, #2048]
10367
+ str r6, [r5, #2048]
10368
+ str r6, [r5, #2048]
986210369 bl FlashReadRawPage
986310370 cmn r0, #1
9864
- beq .L1675
9865
- ldr r3, [sp, #16]
9866
- cmn r5, #1
9867
- moveq r5, r0
9868
- ldrb r3, [r3, #2312] @ zero_extendqisi2
9869
- add r3, r3, r3, asl #1
10371
+ beq .L1666
10372
+ ldr r3, [sp, #20]
10373
+ cmn r4, #1
10374
+ moveq r4, r0
10375
+ ldrb r3, [r3, #2316] @ zero_extendqisi2
10376
+ add r3, r3, r3, lsl #1
987010377 cmp r0, r3, asr #2
9871
- bcc .L1686
9872
- ldr ip, [sp, #20]
9873
- mov r8, ip
9874
- mov fp, ip
9875
-.L1675:
9876
- add r6, r6, #1
9877
- cmp r6, #26
9878
- bne .L1678
9879
- b .L1677
9880
-.L1686:
9881
- mov r5, r0
9882
-.L1677:
9883
- add r9, r4, r9
10378
+ bcc .L1677
10379
+ mov r9, r6
10380
+ mov fp, r6
10381
+.L1666:
10382
+ add r7, r7, #1
10383
+ cmp r7, #26
10384
+ bne .L1669
10385
+.L1668:
10386
+ ldr r3, [sp, #12]
10387
+ add r8, r3, r8
988410388 mov r3, #239
9885
- str r3, [r9, #2056]
9886
- ldr r3, [sp, #8]
9887
- add r4, r4, r3, asl #8
10389
+ str r3, [r8, #2056]
988810390 mov r3, #141
9889
- b .L1702
9890
-.L1674:
9891
- ldr r3, [sp, #8]
9892
- mvn r5, #0
9893
- ldr r7, .L1703+8
9894
- mov r6, #1
9895
- mov ip, r3, asl #8
9896
- add r9, r4, ip
9897
-.L1683:
9898
- mov r3, #239
9899
- str r3, [r9, #2056]
9900
- mov r3, #137
9901
- str r3, [r9, #2052]
9902
- ldrb r3, [r7, #4] @ zero_extendqisi2
9903
- mov r0, r10
9904
- ldr r1, [sp, #12]
9905
- mov r2, fp
9906
- str ip, [sp, #20]
9907
- str r3, [r9, #2048]
9908
- ldrb r3, [r7, #5] @ zero_extendqisi2
9909
- str r3, [r9, #2048]
9910
- ldrb r3, [r7, #6] @ zero_extendqisi2
9911
- str r3, [r9, #2048]
9912
- ldrb r3, [r7, #7] @ zero_extendqisi2
9913
- str r3, [r9, #2048]
9914
- mov r3, r8
9915
- bl FlashReadRawPage
9916
- cmn r0, #1
9917
- ldr ip, [sp, #20]
9918
- beq .L1680
9919
- ldr r3, [sp, #16]
9920
- cmn r5, #1
9921
- moveq r5, r0
9922
- ldrb r3, [r3, #2312] @ zero_extendqisi2
9923
- add r3, r3, r3, asl #1
9924
- cmp r0, r3, asr #2
9925
- bcc .L1687
9926
- mov r8, #0
9927
- mov fp, r8
9928
-.L1680:
9929
- add r6, r6, #1
9930
- add r7, r7, #4
9931
- cmp r6, #26
9932
- bne .L1683
9933
- b .L1682
9934
-.L1687:
9935
- mov r5, r0
9936
-.L1682:
9937
- add ip, r4, ip
9938
- mov r3, #239
9939
- str r3, [ip, #2056]
9940
- ldr r3, [sp, #8]
9941
- add r4, r4, r3, asl #8
9942
- mov r3, #137
9943
-.L1702:
9944
- str r3, [r4, #2052]
10391
+.L1693:
10392
+ str r3, [r5, #2052]
994510393 mov r3, #0
9946
- str r3, [r4, #2048]
9947
- str r3, [r4, #2048]
9948
- str r3, [r4, #2048]
9949
- str r3, [r4, #2048]
9950
- ldr r3, [sp, #16]
9951
- ldrb r3, [r3, #2312] @ zero_extendqisi2
9952
- add r3, r3, r3, asl #1
9953
- cmp r5, r3, asr #2
9954
- bcc .L1684
9955
- cmn r5, #1
9956
- movne r5, #256
9957
-.L1684:
9958
- cmn r5, #1
9959
- cmpne r5, #256
9960
- bne .L1685
9961
- str r5, [sp]
9962
- mov r1, r6
9963
- ldr r0, .L1703+12
9964
- mov r3, r6
9965
- ldr r2, [sp, #12]
10394
+ str r3, [r5, #2048]
10395
+ str r3, [r5, #2048]
10396
+ str r3, [r5, #2048]
10397
+ str r3, [r5, #2048]
10398
+ ldr r3, .L1694
10399
+ ldrb r3, [r3, #2316] @ zero_extendqisi2
10400
+ add r3, r3, r3, lsl #1
10401
+ cmp r4, r3, asr #2
10402
+ bcc .L1675
10403
+ cmn r4, #1
10404
+ movne r4, #256
10405
+.L1675:
10406
+ cmn r4, #1
10407
+ cmpne r4, #256
10408
+ bne .L1676
10409
+ str r4, [sp]
10410
+ mov r3, r7
10411
+ ldr r2, [sp, #16]
10412
+ mov r1, r7
10413
+ ldr r0, .L1694+8
996610414 bl printk
9967
-.L1685:
10415
+.L1676:
996810416 mov r0, r10
996910417 bl NandcWaitFlashReady
9970
- mov r0, r5
10418
+ mov r0, r4
997110419 add sp, sp, #28
997210420 @ sp needed
9973
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9974
-.L1704:
10421
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10422
+.L1677:
10423
+ mov r4, r0
10424
+ b .L1668
10425
+.L1665:
10426
+ ldr r3, [sp, #12]
10427
+ lsl r6, r6, #8
10428
+ ldr r8, .L1694+12
10429
+ mvn r4, #0
10430
+ mov r7, #1
10431
+ add r5, r3, r6
10432
+.L1674:
10433
+ mov r3, #239
10434
+ mov r2, fp
10435
+ str r3, [r5, #2056]
10436
+ mov r3, #137
10437
+ str r3, [r5, #2052]
10438
+ mov r0, r10
10439
+ ldrb r3, [r8, #4] @ zero_extendqisi2
10440
+ ldr r1, [sp, #16]
10441
+ str r3, [r5, #2048]
10442
+ ldrb r3, [r8, #5] @ zero_extendqisi2
10443
+ str r3, [r5, #2048]
10444
+ ldrb r3, [r8, #6] @ zero_extendqisi2
10445
+ str r3, [r5, #2048]
10446
+ ldrb r3, [r8, #7] @ zero_extendqisi2
10447
+ str r3, [r5, #2048]
10448
+ mov r3, r9
10449
+ bl FlashReadRawPage
10450
+ cmn r0, #1
10451
+ beq .L1671
10452
+ ldr r3, .L1694
10453
+ cmn r4, #1
10454
+ moveq r4, r0
10455
+ ldrb r3, [r3, #2316] @ zero_extendqisi2
10456
+ add r3, r3, r3, lsl #1
10457
+ cmp r0, r3, asr #2
10458
+ bcc .L1678
10459
+ mov r9, #0
10460
+ mov fp, r9
10461
+.L1671:
10462
+ add r7, r7, #1
10463
+ add r8, r8, #4
10464
+ cmp r7, #26
10465
+ bne .L1674
10466
+.L1673:
10467
+ ldr r3, [sp, #12]
10468
+ add r6, r3, r6
10469
+ mov r3, #239
10470
+ str r3, [r6, #2056]
10471
+ mov r3, #137
10472
+ b .L1693
10473
+.L1678:
10474
+ mov r4, r0
10475
+ b .L1673
10476
+.L1695:
997510477 .align 2
9976
-.L1703:
10478
+.L1694:
997710479 .word .LANCHOR0
9978
- .word .LANCHOR3+16
9979
- .word .LANCHOR3+44
10480
+ .word .LANCHOR3+11
998010481 .word .LC95
10482
+ .word .LANCHOR3+37
998110483 .fnend
998210484 .size samsung_read_retrial, .-samsung_read_retrial
998310485 .align 2
998410486 .global FlashProgPage
10487
+ .syntax unified
10488
+ .arm
10489
+ .fpu softvfp
998510490 .type FlashProgPage, %function
998610491 FlashProgPage:
998710492 .fnstart
998810493 @ args = 0, pretend = 0, frame = 0
998910494 @ frame_needed = 0, uses_anonymous_args = 0
9990
- stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
10495
+ push {r0, r1, r4, r5, r6, r7, r8, lr}
999110496 .save {r4, r5, r6, r7, r8, lr}
999210497 .pad #8
999310498 mov r8, r3
9994
- ldr r3, .L1709
10499
+ ldr r3, .L1700
999510500 subs r4, r0, #0
999610501 mov r5, r1
999710502 mov r7, r2
9998
- ldrb r6, [r3, #481] @ zero_extendqisi2
9999
- bne .L1706
10000
- ldr r2, .L1709+4
10001
- ldrb r3, [r2, #1] @ zero_extendqisi2
10002
- ldr r1, [r2, #4]
10003
- mul r1, r1, r3
10004
- cmp r5, r1
10005
- bcs .L1706
10006
- ldrb r3, [r2] @ zero_extendqisi2
10503
+ ldrb r6, [r3, #477] @ zero_extendqisi2
10504
+ bne .L1697
10505
+ ldr r1, .L1700+4
10506
+ ldrb r3, [r1, #37] @ zero_extendqisi2
10507
+ ldr r0, [r1, #40]
10508
+ mul r0, r0, r3
10509
+ cmp r0, r5
10510
+ bls .L1697
10511
+ ldrb r3, [r1, #36] @ zero_extendqisi2
1000710512 cmp r3, #0
1000810513 movne r6, #4
10009
-.L1706:
10514
+.L1697:
1001010515 mov r0, r4
1001110516 bl NandcWaitFlashReady
1001210517 mov r0, r4
1001310518 bl NandcFlashCs
10014
- mov r0, r4
1001510519 mov r1, r5
10016
- bl FlashProgFirstCmd
10017
- mov r2, r6
10018
- mov r3, r7
1001910520 mov r0, r4
10020
- mov r1, #1
10521
+ bl FlashProgFirstCmd
10522
+ mov r3, r7
10523
+ mov r2, r6
1002110524 str r8, [sp]
10525
+ mov r1, #1
10526
+ mov r0, r4
1002210527 bl NandcXferData
1002310528 mov r1, r5
1002410529 mov r0, r4
....@@ -10028,287 +10533,288 @@
1002810533 mov r1, r5
1002910534 mov r0, r4
1003010535 bl FlashReadStatus
10031
- mov r5, r0
10536
+ mov r1, r0
1003210537 mov r0, r4
1003310538 bl NandcFlashDeCs
10034
- and r0, r5, #1
10539
+ and r0, r1, #1
1003510540 add sp, sp, #8
1003610541 @ sp needed
10037
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
10038
-.L1710:
10542
+ pop {r4, r5, r6, r7, r8, pc}
10543
+.L1701:
1003910544 .align 2
10040
-.L1709:
10545
+.L1700:
1004110546 .word .LANCHOR1
1004210547 .word .LANCHOR0
1004310548 .fnend
1004410549 .size FlashProgPage, .-FlashProgPage
1004510550 .align 2
1004610551 .global FlashSavePhyInfo
10552
+ .syntax unified
10553
+ .arm
10554
+ .fpu softvfp
1004710555 .type FlashSavePhyInfo, %function
1004810556 FlashSavePhyInfo:
1004910557 .fnstart
10050
- @ args = 0, pretend = 0, frame = 8
10558
+ @ args = 0, pretend = 0, frame = 0
1005110559 @ frame_needed = 0, uses_anonymous_args = 0
10052
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
10053
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10054
- .pad #12
10055
- ldr r4, .L1725
10056
- ldr r5, .L1725+4
10057
- ldr r8, .L1725+8
10058
- ldr r3, [r4, #1688]
10059
- mov fp, r4
10060
- ldrb r0, [r4, #1714] @ zero_extendqisi2
10061
- mov r10, r5
10062
- str r3, [r4, #1700]
10560
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
10561
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
10562
+ ldr r4, .L1716
10563
+ ldr r5, .L1716+4
10564
+ ldr r3, [r4, #1696]
10565
+ ldrb r0, [r4, #1722] @ zero_extendqisi2
10566
+ ldr r8, .L1716+8
10567
+ str r3, [r4, #1708]
1006310568 bl FlashBchSel
10064
- mov r1, #0
1006510569 mov r2, #2048
10066
- ldr r0, [r4, #1688]
10570
+ mov r1, #0
10571
+ ldr r0, [r4, #1696]
1006710572 bl ftl_memset
10068
- ldr r3, [r4, #1700]
10069
- ldr r1, .L1725+12
10573
+ ldr r3, [r4, #1708]
1007010574 mov r2, #32
10575
+ ldr r1, .L1716+12
1007110576 str r8, [r3]
10072
- ldr r0, [r4, #1700]
10073
- ldrb r3, [r5, #2230] @ zero_extendqisi2
10577
+ ldr r0, [r4, #1708]
10578
+ ldrb r3, [r5, #2234] @ zero_extendqisi2
1007410579 add r0, r0, #16
1007510580 strh r3, [r0, #-4] @ movhi
10076
- ldrb r3, [r5, #1] @ zero_extendqisi2
10581
+ ldrb r3, [r5, #37] @ zero_extendqisi2
1007710582 strh r3, [r0, #-2] @ movhi
10078
- ldrb r3, [r5, #2252] @ zero_extendqisi2
10583
+ ldrb r3, [r5, #2256] @ zero_extendqisi2
1007910584 str r3, [r0, #1060]
1008010585 bl ftl_memcpy
10081
- ldr r0, [r4, #1700]
10082
- ldr r1, .L1725+16
10586
+ ldr r0, [r4, #1708]
1008310587 mov r2, #8
10588
+ ldr r1, .L1716+16
1008410589 add r0, r0, #80
1008510590 bl ftl_memcpy
10086
- ldr r0, [r4, #1700]
10087
- ldr r1, .L1725+20
10591
+ ldr r0, [r4, #1708]
1008810592 mov r2, #32
10593
+ ldr r1, .L1716+20
1008910594 add r0, r0, #96
1009010595 bl ftl_memcpy
10091
- ldr r0, [r4, #1700]
10092
- ldr r1, .L1725+24
10596
+ ldr r0, [r4, #1708]
1009310597 mov r2, #32
10598
+ ldr r1, .L1716+24
1009410599 add r0, r0, #160
1009510600 bl ftl_memcpy
10096
- ldr r0, [r4, #1700]
10097
- add r1, r5, #48
10601
+ ldr r0, [r4, #1708]
1009810602 mov r2, #32
10603
+ add r1, r5, #52
1009910604 add r0, r0, #192
1010010605 bl ftl_memcpy
10101
- ldr r0, [r4, #1700]
10606
+ ldr r0, [r4, #1708]
1010210607 mov r2, #852
10103
- ldr r1, .L1725+28
10608
+ add r1, r5, #1216
1010410609 add r0, r0, #224
1010510610 bl ftl_memcpy
10106
- ldr r6, [r4, #1700]
10611
+ ldr r6, [r4, #1708]
1010710612 movw r1, #2036
1010810613 add r0, r6, #12
1010910614 bl js_hash
1011010615 movw r3, #1592
10111
- str r3, [r6, #4]
10112
- ldr r3, [r4, #1716]
10113
- str r3, [r4, #1700]
1011410616 str r0, [r6, #8]
10115
- mov r0, #0
10116
- bl flash_enter_slc_mode
10617
+ str r3, [r6, #4]
1011710618 mov r6, #0
10619
+ ldr r3, [r4, #1724]
1011810620 mov r7, r6
10119
-.L1717:
10120
- ldr r1, [r5, #4]
1012110621 mov r0, #0
10122
- mov r2, r0
10622
+ str r3, [r4, #1708]
10623
+ bl flash_enter_slc_mode
10624
+.L1708:
10625
+ ldr r1, [r5, #40]
10626
+ mov r2, #0
10627
+ mov r0, r2
1012310628 mul r1, r1, r7
1012410629 bl FlashEraseBlock
10125
- ldrb r9, [r5, #144] @ zero_extendqisi2
10630
+ ldrb r9, [r5, #152] @ zero_extendqisi2
1012610631 cmp r9, #0
10127
- beq .L1712
10632
+ beq .L1703
1012810633 mov r9, #0
10129
-.L1713:
10130
- ldr r1, [r5, #4]
10131
- mov r0, #0
10132
- ldr r2, [r4, #1688]
10133
- mov r3, r0
10634
+.L1704:
10635
+ ldr r1, [r5, #40]
10636
+ mov r3, #0
10637
+ ldr r2, [r4, #1696]
10638
+ mov r0, r3
1013410639 mla r1, r1, r7, r9
1013510640 add r9, r9, #1
1013610641 bl FlashProgPage
1013710642 cmp r9, #10
10138
- bne .L1713
10139
- b .L1714
10140
-.L1712:
10141
- ldr r1, [r10, #4]
10142
- mov r3, r9
10143
- ldr r2, [r4, #1688]
10144
- mov r0, r9
10145
- mul r1, r1, r7
10146
- bl FlashProgPage
10147
- ldr r1, [r10, #4]
10148
- mov r0, r9
10149
- ldr r2, [r4, #1688]
10150
- mov r3, r9
10151
- mul r1, r1, r7
10152
- add r1, r1, #1
10153
- bl FlashProgPage
10154
-.L1714:
10155
- ldr r1, [r5, #4]
10156
- mov r0, #0
10157
- ldr r2, [r4, #1716]
10158
- mov r3, r0
10643
+ bne .L1704
10644
+.L1705:
10645
+ ldr r1, [r5, #40]
10646
+ mov r3, #0
10647
+ ldr r2, [r4, #1724]
10648
+ mov r0, r3
10649
+ add r10, r7, #1
1015910650 mul r1, r1, r7
1016010651 bl FlashReadRawPage
10161
- add r2, r7, #1
1016210652 cmn r0, #1
10163
- beq .L1715
10164
- ldr r9, [fp, #1700]
10653
+ beq .L1706
10654
+ ldr r9, [r4, #1708]
1016510655 ldr r3, [r9]
1016610656 cmp r3, r8
10167
- bne .L1715
10168
- add r0, r9, #12
10657
+ bne .L1706
1016910658 movw r1, #2036
10170
- str r2, [sp, #4]
10659
+ add r0, r9, #12
1017110660 bl js_hash
1017210661 ldr r3, [r9, #8]
1017310662 cmp r3, r0
10174
- ldr r2, [sp, #4]
10175
- bne .L1715
10176
- ldr r3, [r10, #4]
10663
+ bne .L1706
10664
+ ldr r3, [r5, #40]
1017710665 cmp r6, #1
10178
- str r2, [fp, #1708]
10179
- mul r7, r3, r7
10180
- str r7, [fp, #1704]
10181
- beq .L1718
10666
+ str r10, [r4, #1716]
10667
+ mul r7, r7, r3
10668
+ str r7, [r4, #1712]
10669
+ beq .L1709
1018210670 mov r6, #1
10183
-.L1715:
10184
- cmp r2, #4
10185
- mov r7, r2
10186
- bne .L1717
10187
- b .L1716
10188
-.L1718:
10189
- mov r6, #2
10190
-.L1716:
10671
+.L1706:
10672
+ cmp r10, #4
10673
+ mov r7, r10
10674
+ bne .L1708
10675
+.L1707:
1019110676 mov r0, #0
1019210677 bl flash_exit_slc_mode
1019310678 clz r0, r6
10194
- mov r0, r0, lsr #5
10679
+ lsr r0, r0, #5
1019510680 rsb r0, r0, #0
10196
- add sp, sp, #12
10197
- @ sp needed
10198
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10199
-.L1726:
10681
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
10682
+.L1703:
10683
+ ldr r1, [r5, #40]
10684
+ mov r3, r9
10685
+ ldr r2, [r4, #1696]
10686
+ mov r0, r9
10687
+ mul r1, r1, r7
10688
+ bl FlashProgPage
10689
+ ldr r1, [r5, #40]
10690
+ mov r3, r9
10691
+ ldr r2, [r4, #1696]
10692
+ mov r0, r9
10693
+ mul r1, r1, r7
10694
+ add r1, r1, #1
10695
+ bl FlashProgPage
10696
+ b .L1705
10697
+.L1709:
10698
+ mov r6, #2
10699
+ b .L1707
10700
+.L1717:
1020010701 .align 2
10201
-.L1725:
10702
+.L1716:
1020210703 .word .LANCHOR2
1020310704 .word .LANCHOR0
1020410705 .word 1312902724
10205
- .word .LANCHOR0+2068
10206
- .word .LANCHOR0+2232
10207
- .word .LANCHOR0+1172
10208
- .word .LANCHOR1+472
10209
- .word .LANCHOR0+1210
10706
+ .word .LANCHOR0+2072
10707
+ .word .LANCHOR0+2236
10708
+ .word .LANCHOR0+1180
10709
+ .word .LANCHOR1+468
1021010710 .fnend
1021110711 .size FlashSavePhyInfo, .-FlashSavePhyInfo
1021210712 .align 2
1021310713 .global FlashReadIdbDataRaw
10714
+ .syntax unified
10715
+ .arm
10716
+ .fpu softvfp
1021410717 .type FlashReadIdbDataRaw, %function
1021510718 FlashReadIdbDataRaw:
1021610719 .fnstart
1021710720 @ args = 0, pretend = 0, frame = 16
1021810721 @ frame_needed = 0, uses_anonymous_args = 0
10219
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10722
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1022010723 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10221
- mov r9, r0
10222
- ldr r3, .L1747
10724
+ mov r3, #60
1022310725 .pad #20
1022410726 sub sp, sp, #20
10225
- ldr r4, .L1747+4
10226
- ldr r0, [r3] @ unaligned
10227
- ldr r3, [r4, #2248]
10228
- ldrb r10, [r4, #2312] @ zero_extendqisi2
10727
+ ldr r4, .L1737
10728
+ mov r10, r0
10729
+ strb r3, [sp, #12]
10730
+ mov r3, #40
10731
+ strb r3, [sp, #13]
10732
+ mov r3, #24
10733
+ strb r3, [sp, #14]
10734
+ mov r3, #16
10735
+ strb r3, [sp, #15]
10736
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
10737
+ str r3, [sp, #4]
10738
+ ldr r3, [r4, #2252]
1022910739 cmp r3, #0
10230
- str r0, [sp, #12] @ unaligned
10231
- beq .L1728
10740
+ beq .L1719
1023210741 mov r0, #0
1023310742 bl flash_enter_slc_mode
10234
-.L1728:
10235
- mov r0, r9
10236
- mov r1, #0
10237
- mov r2, #2048
10743
+.L1719:
10744
+ ldr r6, .L1737+4
1023810745 mvn r8, #0
10239
- bl ftl_memset
1024010746 mov r5, #2
10241
-.L1729:
10242
- ldrb r3, [r4, #1] @ zero_extendqisi2
10243
- cmp r5, r3
10244
- bcs .L1733
10245
- ldr fp, .L1747+8
10246
- mov r7, #0
10247
-.L1731:
10248
- add r3, sp, #12
10249
- ldr r6, .L1747+8
10250
- ldrb ip, [r7, r3] @ zero_extendqisi2
10251
- mov r0, ip
10252
- str ip, [sp, #4]
10253
- bl FlashBchSel
10254
- ldr r1, [r4, #4]
10255
- mov r0, #0
10256
- ldr r2, [fp, #1688]
10257
- mov r3, r0
10258
- mul r1, r1, r5
10259
- bl FlashReadRawPage
10260
- cmn r0, #1
10261
- ldr ip, [sp, #4]
10262
- bne .L1730
10263
- add r7, r7, #1
10264
- cmp r7, #4
10265
- bne .L1731
10266
- b .L1732
10267
-.L1730:
10268
- ldr r3, [r6, #1688]
10269
- ldr r2, .L1747+12
10270
- ldr r3, [r3]
10271
- cmp r3, r2
10272
- bne .L1732
10273
- mov r1, ip
10274
- ldr r0, .L1747+16
10275
- bl printk
1027610747 mov r2, #2048
10277
- mov r0, r9
10278
- ldr r1, [r6, #1688]
10279
- bl ftl_memcpy
10280
- ldr r3, [r6, #1688]
10281
- ldr r2, .L1747+4
10282
- ldr r3, [r3, #512]
10283
- strb r3, [r2, #1]
10284
- ldr r3, [r6, #1708]
10285
- cmp r3, r5
10286
- bls .L1736
10287
- str r5, [r6, #1708]
10288
- bl FlashSavePhyInfo
10289
- mov r8, #0
10290
-.L1732:
10291
- add r5, r5, #1
10292
- b .L1729
10293
-.L1736:
10294
- mov r8, #0
10295
-.L1733:
10748
+ mov r1, #0
1029610749 mov r0, r10
10750
+ bl ftl_memset
10751
+.L1720:
10752
+ ldrb r3, [r4, #37] @ zero_extendqisi2
10753
+ cmp r5, r3
10754
+ bcc .L1725
10755
+.L1724:
10756
+ ldr r0, [sp, #4]
1029710757 bl FlashBchSel
10298
- ldr r3, [r4, #2248]
10758
+ ldr r3, [r4, #2252]
1029910759 cmp r3, #0
10300
- beq .L1740
10760
+ beq .L1718
1030110761 mov r0, #0
1030210762 bl flash_exit_slc_mode
10303
-.L1740:
10763
+.L1718:
1030410764 mov r0, r8
1030510765 add sp, sp, #20
1030610766 @ sp needed
10307
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10308
-.L1748:
10767
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10768
+.L1725:
10769
+ mov r7, #0
10770
+ add fp, sp, #12
10771
+.L1722:
10772
+ ldrb r9, [r7, fp] @ zero_extendqisi2
10773
+ mov r0, r9
10774
+ bl FlashBchSel
10775
+ ldr r1, [r4, #40]
10776
+ mov r3, #0
10777
+ ldr r2, [r6, #1696]
10778
+ mov r0, r3
10779
+ mul r1, r1, r5
10780
+ bl FlashReadRawPage
10781
+ cmn r0, #1
10782
+ bne .L1721
10783
+ add r7, r7, #1
10784
+ cmp r7, #4
10785
+ bne .L1722
10786
+.L1723:
10787
+ add r5, r5, #1
10788
+ b .L1720
10789
+.L1728:
10790
+ mov r8, #0
10791
+ b .L1724
10792
+.L1721:
10793
+ ldr r3, [r6, #1696]
10794
+ ldr r2, .L1737+8
10795
+ ldr r3, [r3]
10796
+ cmp r3, r2
10797
+ bne .L1723
10798
+ mov r1, r9
10799
+ ldr r0, .L1737+12
10800
+ bl printk
10801
+ mov r2, #2048
10802
+ ldr r1, [r6, #1696]
10803
+ mov r0, r10
10804
+ bl ftl_memcpy
10805
+ ldr r3, [r6, #1696]
10806
+ ldr r3, [r3, #512]
10807
+ strb r3, [r4, #37]
10808
+ ldr r3, [r6, #1716]
10809
+ cmp r5, r3
10810
+ bcs .L1728
10811
+ str r5, [r6, #1716]
10812
+ mov r8, #0
10813
+ bl FlashSavePhyInfo
10814
+ b .L1723
10815
+.L1738:
1030910816 .align 2
10310
-.L1747:
10311
- .word .LANCHOR3+11
10817
+.L1737:
1031210818 .word .LANCHOR0
1031310819 .word .LANCHOR2
1031410820 .word -52655045
....@@ -10317,846 +10823,823 @@
1031710823 .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw
1031810824 .align 2
1031910825 .global FlashInit
10826
+ .syntax unified
10827
+ .arm
10828
+ .fpu softvfp
1032010829 .type FlashInit, %function
1032110830 FlashInit:
1032210831 .fnstart
10323
- @ args = 0, pretend = 0, frame = 0
10832
+ @ args = 0, pretend = 0, frame = 8
1032410833 @ frame_needed = 0, uses_anonymous_args = 0
10325
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10834
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1032610835 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10327
- mov r5, r0
10328
- .pad #20
10329
- sub sp, sp, #20
10836
+ mov r7, r0
10837
+ ldr r5, .L1837
10838
+ .pad #28
10839
+ sub sp, sp, #28
10840
+ mov r0, #32768
10841
+ mov r6, #0
10842
+ bl ftl_malloc
10843
+ str r0, [r5, #1696]
1033010844 mov r0, #32768
1033110845 bl ftl_malloc
10332
- ldr r8, .L1848
10333
- ldr r4, .L1848+4
10334
- mov r7, #0
10335
- add r9, r4, #12
10336
- str r0, [r8, #1688]
10337
- mov r0, #32768
10338
- bl ftl_malloc
10339
- str r0, [r8, #1716]
10846
+ str r0, [r5, #1724]
1034010847 mov r0, #4096
10341
- bl ftl_malloc
10342
- str r0, [r8, #1720]
10848
+ bl ftl_dma32_malloc
10849
+ str r0, [r5, #1728]
1034310850 mov r0, #32768
1034410851 bl ftl_malloc
10345
- str r0, [r8, #1724]
10852
+ ldr r4, .L1837+4
10853
+ mov r8, r6
10854
+ str r0, [r5, #1732]
1034610855 mov r0, #4096
10347
- bl ftl_malloc
10856
+ bl ftl_dma32_malloc
10857
+ ldr fp, .L1837+8
1034810858 mov r3, #50
10349
- str r7, [r8, #1708]
10350
- strb r3, [r4, #1]
10351
- strb r3, [r8, #1712]
10859
+ str r0, [r5, #1736]
10860
+ mov r0, r7
10861
+ ldr r7, .L1837+12
10862
+ strb r3, [r4, #37]
10863
+ strb r3, [r5, #1720]
1035210864 mov r3, #128
10353
- strb r7, [r4, #2252]
10354
- str r3, [r4, #4]
10865
+ str r3, [r4, #40]
1035510866 mov r3, #60
10356
- str r7, [r8, #1692]
10357
- strb r7, [r4]
10358
- strb r7, [r8, #1732]
10359
- strb r3, [r8, #1714]
10360
- str r0, [r8, #1728]
10361
- mov r0, r5
10867
+ str r6, [r5, #1716]
10868
+ strb r6, [r4, #2256]
10869
+ str r6, [r5, #1700]
10870
+ strb r6, [r4, #36]
10871
+ strb r6, [r5, #1740]
10872
+ strb r3, [r5, #1722]
1036210873 bl NandcInit
10363
- ldr r5, .L1848+8
10364
-.L1755:
10365
- add r3, r9, r7, asl #3
10366
- uxtb fp, r7
10367
- ldr r6, [r9, r7, asl #3]
10368
- ldrb r10, [r3, #4] @ zero_extendqisi2
10369
- mov r0, fp
10874
+.L1745:
10875
+ add r2, r4, r6, lsl #3
10876
+ uxtb r9, r6
10877
+ ldr r10, [r4, r6, lsl #3]
10878
+ ldrb r2, [r2, #4] @ zero_extendqisi2
10879
+ mov r0, r9
10880
+ str r2, [sp, #20]
1037010881 bl FlashReset
10371
- mov r0, fp
10882
+ mov r0, r9
1037210883 bl NandcFlashCs
10884
+ ldr r2, [sp, #20]
1037310885 mov r3, #144
10374
- add r6, r6, r10, asl #8
1037510886 mov r0, #200
10376
- mov r10, #0
10377
- str r3, [r6, #2056]
10378
- str r10, [r6, #2052]
10379
- bl NandcDelayns
10380
- ldr r2, [r6, #2048]
10887
+ add r10, r10, r2, lsl #8
10888
+ str r3, [r10, #2056]
10889
+ str r8, [r10, #2052]
10890
+ bl ndelay
10891
+ ldr r2, [r10, #2048]
1038110892 uxtb r2, r2
10382
- strb r2, [r5]
10383
- ldr r1, [r6, #2048]
10893
+ strb r2, [r7]
1038410894 cmp r2, #44
10385
- strb r1, [r5, #1]
10386
- ldr r1, [r6, #2048]
10387
- strb r1, [r5, #2]
10388
- ldr r1, [r6, #2048]
10389
- strb r1, [r5, #3]
10390
- ldr r1, [r6, #2048]
10391
- strb r1, [r5, #4]
10392
- ldr r1, [r6, #2048]
10393
- strb r1, [r5, #5]
10394
- bne .L1750
10895
+ ldr r1, [r10, #2048]
10896
+ strb r1, [r7, #1]
10897
+ ldr r1, [r10, #2048]
10898
+ strb r1, [r7, #2]
10899
+ ldr r1, [r10, #2048]
10900
+ strb r1, [r7, #3]
10901
+ ldr r1, [r10, #2048]
10902
+ strb r1, [r7, #4]
10903
+ ldr r1, [r10, #2048]
10904
+ strb r1, [r7, #5]
10905
+ bne .L1740
1039510906 mov r2, #239
1039610907 mov r0, #200
10397
- str r2, [r6, #2056]
10908
+ str r2, [r10, #2056]
1039810909 mov r2, #1
10399
- str r2, [r6, #2052]
10400
- bl NandcDelayns
10910
+ str r2, [r10, #2052]
10911
+ bl ndelay
1040110912 mov r2, #4
10402
- str r2, [r6, #2048]
10403
- str r10, [r6, #2048]
10404
- str r10, [r6, #2048]
10405
- str r10, [r6, #2048]
10406
-.L1750:
10407
- mov r0, fp
10913
+ str r2, [r10, #2048]
10914
+ str r8, [r10, #2048]
10915
+ str r8, [r10, #2048]
10916
+ str r8, [r10, #2048]
10917
+.L1740:
10918
+ mov r0, r9
1040810919 bl NandcFlashDeCs
10409
- ldrb r2, [r5] @ zero_extendqisi2
10920
+ ldrb r2, [r7] @ zero_extendqisi2
1041010921 sub r3, r2, #1
1041110922 uxtb r3, r3
1041210923 cmp r3, #253
10413
- bhi .L1751
10414
- ldrb r1, [r5, #2] @ zero_extendqisi2
10415
- ldrb r3, [r5, #1] @ zero_extendqisi2
10416
- ldr r0, .L1848+12
10417
- str r1, [sp]
10418
- ldrb r1, [r5, #3] @ zero_extendqisi2
10419
- str r1, [sp, #4]
10420
- ldrb r1, [r5, #4] @ zero_extendqisi2
10421
- str r1, [sp, #8]
10422
- ldrb r1, [r5, #5] @ zero_extendqisi2
10924
+ bhi .L1741
10925
+ ldrb r1, [r7, #5] @ zero_extendqisi2
10926
+ mov r0, fp
10927
+ ldrb r3, [r7, #1] @ zero_extendqisi2
1042310928 str r1, [sp, #12]
10424
- add r1, r7, #1
10929
+ ldrb r1, [r7, #4] @ zero_extendqisi2
10930
+ str r1, [sp, #8]
10931
+ ldrb r1, [r7, #3] @ zero_extendqisi2
10932
+ str r1, [sp, #4]
10933
+ ldrb r1, [r7, #2] @ zero_extendqisi2
10934
+ str r1, [sp]
10935
+ add r1, r6, #1
1042510936 bl printk
10426
-.L1751:
10427
- cmp r7, #0
10428
- bne .L1752
10429
- ldrb r3, [r4, #2068] @ zero_extendqisi2
10937
+.L1741:
10938
+ cmp r6, #0
10939
+ bne .L1742
10940
+ ldrb r3, [r4, #2072] @ zero_extendqisi2
1043010941 sub r3, r3, #1
1043110942 uxtb r3, r3
1043210943 cmp r3, #253
10433
- bhi .L1802
10434
- ldr r3, .L1848+4
10435
- ldrb r3, [r3, #2069] @ zero_extendqisi2
10944
+ bhi .L1792
10945
+ ldrb r3, [r4, #2073] @ zero_extendqisi2
1043610946 cmp r3, #255
10437
- beq .L1802
10438
-.L1752:
10439
- ldrb r3, [r5] @ zero_extendqisi2
10440
- add r7, r7, #1
10441
- add r5, r5, #8
10947
+ beq .L1792
10948
+.L1742:
10949
+ ldrb r3, [r7] @ zero_extendqisi2
10950
+ add r6, r6, #1
10951
+ add r7, r7, #8
1044210952 cmp r3, #181
1044310953 moveq r3, #44
10444
- streqb r3, [r5, #-8]
10445
- cmp r7, #4
10446
- bne .L1755
10447
- ldrb r3, [r4, #2068] @ zero_extendqisi2
10954
+ strbeq r3, [r7, #-8]
10955
+ cmp r6, #4
10956
+ bne .L1745
10957
+ ldrb r3, [r4, #2072] @ zero_extendqisi2
1044810958 cmp r3, #173
10449
- beq .L1756
10450
- ldr r3, .L1848+4
10451
- ldr r0, [r3, #2256]
10959
+ beq .L1746
10960
+ ldr r0, [r4, #2260]
1045210961 bl NandcSetDdrMode
10453
-.L1756:
10962
+.L1746:
1045410963 mov r2, #852
10455
- ldr r0, .L1848+16
1045610964 mov r1, #0
10457
- ldr r5, .L1848+20
10965
+ ldr r0, .L1837+16
1045810966 bl ftl_memset
10459
- ldr r2, [r4, #2264]
10460
- ldr r0, .L1848+24
10461
- cmp r2, r5
10462
- add r3, r0, #472
10463
- str r3, [r4, #44]
10967
+ ldr r6, .L1837+20
10968
+ ldr r2, .L1837+24
10969
+ ldr r0, [r4, #2268]
10970
+ add r3, r2, #468
10971
+ cmp r0, r6
10972
+ str r3, [r4, #48]
1046410973 mov r3, #0
10465
- strb r3, [r4, #8]
10466
- bne .L1757
10467
- ldrb r3, [r0, #491] @ zero_extendqisi2
10974
+ strb r3, [r4, #44]
10975
+ bne .L1747
10976
+ ldrb r3, [r2, #487] @ zero_extendqisi2
1046810977 cmp r3, #50
10469
- ldrne r3, .L1848+4
10470
- movne r1, #1
10471
- strne r1, [r3, #2248]
10472
-.L1757:
10473
- ldrb r6, [r4, #2069] @ zero_extendqisi2
10474
- sub ip, r6, #218
10475
- cmp r6, #161
10476
- cmpne r6, #241
10477
- clz ip, ip
10478
- and r1, r6, #253
10479
- moveq r3, #1
10480
- movne r3, #0
10481
- mov ip, ip, lsr #5
10482
- orr r3, ip, r3
10483
- cmp r1, #209
10484
- orreq r3, r3, #1
10485
- cmp r3, #0
10486
- bne .L1758
10487
- cmp r6, #220
10488
- bne .L1759
10489
- ldr r3, .L1848+4
10490
- ldrb r3, [r3, #2071] @ zero_extendqisi2
10491
- cmp r3, #149
10492
- bne .L1759
10493
-.L1758:
10494
- mov lr, #16
10495
- strb lr, [r4, #1]
10496
- strb lr, [r8, #1714]
10978
+ movne r3, #1
10979
+ strne r3, [r4, #2252]
10980
+.L1747:
10981
+ ldrb r3, [r4, #2073] @ zero_extendqisi2
10982
+ cmp r3, #241
10983
+ cmpne r3, #161
10984
+ and ip, r3, #253
10985
+ moveq r1, #1
10986
+ movne r1, #0
10987
+ cmp r3, #218
10988
+ orreq r1, r1, #1
10989
+ cmp ip, #209
10990
+ orreq r1, r1, #1
10991
+ cmp r1, #0
10992
+ bne .L1748
10993
+ cmp r3, #220
10994
+ bne .L1749
10995
+ ldrb r1, [r4, #2075] @ zero_extendqisi2
10996
+ cmp r1, #149
10997
+ bne .L1749
10998
+.L1748:
10999
+ mov ip, #16
1049711000 mov r1, #1
10498
- ldrb lr, [r4, #2068] @ zero_extendqisi2
10499
- strb r1, [r4]
10500
- cmp lr, #152
10501
- ldr r3, .L1848
10502
- strb lr, [r0, #3417]
10503
- strb r6, [r0, #3418]
10504
- bne .L1761
10505
- ldr r7, .L1848+4
10506
- movw lr, #2072
10507
- ldrsb lr, [r7, lr]
10508
- cmp lr, #0
10509
- strltb r1, [r3, #1732]
10510
- movge r1, #24
10511
- strgeb r1, [r3, #1714]
10512
-.L1761:
10513
- movw r3, #2049
10514
- cmp r2, r5
10515
- cmpne r2, r3
10516
- moveq r3, #16
10517
- streqb r3, [r8, #1714]
10518
- cmp ip, #0
10519
- ldrne r3, .L1848+28
10520
- movne r2, #2048
10521
- strneh r2, [r3, #14] @ movhi
10522
- mvnne r3, #37
10523
- bne .L1842
10524
-.L1765:
10525
- cmp r6, #220
10526
- bne .L1767
10527
- ldr r3, .L1848+28
10528
- mov r2, #4096
10529
- strh r2, [r3, #14] @ movhi
10530
- mvn r3, #35
10531
-.L1842:
10532
- strb r3, [r0, #3418]
10533
- b .L1766
10534
-.L1767:
10535
- cmp r6, #211
10536
- ldreq r3, .L1848+28
10537
- moveq r2, #4096
10538
- streqh r2, [r3, #14] @ movhi
10539
- moveq r3, #2
10540
- streqb r3, [r0, #3429]
10541
-.L1766:
10542
- ldr r1, .L1848+32
11001
+ strb ip, [r4, #37]
11002
+ strb ip, [r5, #1722]
11003
+ ldrb ip, [r4, #2072] @ zero_extendqisi2
11004
+ strb r1, [r4, #36]
11005
+ strb r3, [r2, #3414]
11006
+ cmp ip, #152
11007
+ strb ip, [r2, #3413]
11008
+ bne .L1751
11009
+ ldrb ip, [r4, #2076] @ zero_extendqisi2
11010
+ lsrs ip, ip, #7
11011
+ moveq r1, #24
11012
+ strbne r1, [r5, #1740]
11013
+ strbeq r1, [r5, #1722]
11014
+.L1751:
11015
+ movw r1, #2049
11016
+ cmp r0, r1
11017
+ cmpne r0, r6
11018
+ moveq r1, #16
11019
+ strbeq r1, [r5, #1722]
11020
+ cmp r3, #218
11021
+ bne .L1755
11022
+ ldr r3, .L1837+28
11023
+ mov r1, #2048
11024
+ strh r1, [r3, #14] @ movhi
11025
+ mvn r3, #37
11026
+.L1831:
11027
+ strb r3, [r2, #3414]
11028
+.L1756:
1054311029 mov r2, #32
10544
- ldr r0, .L1848+36
11030
+ ldr r1, .L1837+32
11031
+ ldr r0, .L1837+36
1054511032 bl ftl_memcpy
10546
- ldr r0, .L1848+40
11033
+ ldr r1, .L1837+28
1054711034 mov r2, #32
10548
- add r1, r0, #2944
11035
+ sub r0, r1, #2944
1054911036 bl ftl_memcpy
10550
-.L1759:
10551
- ldrb r3, [r4] @ zero_extendqisi2
10552
- ldr r6, .L1848+4
11037
+.L1749:
11038
+ ldrb r3, [r4, #36] @ zero_extendqisi2
1055311039 cmp r3, #0
10554
- bne .L1768
11040
+ bne .L1759
1055511041 bl FlashLoadPhyInfoInRam
1055611042 cmp r0, #0
10557
- bne .L1770
10558
- ldr r3, [r6, #44]
11043
+ bne .L1761
11044
+ ldr r3, [r4, #48]
1055911045 ldrh r3, [r3, #16]
10560
- mov r3, r3, lsr #8
11046
+ lsr r3, r3, #8
1056111047 tst r3, #1
1056211048 and r0, r3, #7
10563
- strb r0, [r6, #2229]
10564
- bne .L1770
11049
+ strb r0, [r4, #2233]
11050
+ bne .L1761
1056511051 mov r3, #1
10566
- strb r3, [r6, #2252]
11052
+ strb r3, [r4, #2256]
1056711053 bl FlashSetInterfaceMode
10568
- ldrb r0, [r6, #2229] @ zero_extendqisi2
11054
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
1056911055 bl NandcSetMode
10570
-.L1770:
10571
- ldr r3, [r4, #44]
10572
- ldr r6, .L1848+4
11056
+.L1761:
11057
+ ldr r3, [r4, #48]
1057311058 ldrb r3, [r3, #26] @ zero_extendqisi2
10574
- strb r3, [r4, #144]
11059
+ strb r3, [r4, #152]
1057511060 bl FlashLoadPhyInfo
1057611061 cmp r0, #0
10577
- beq .L1768
10578
- ldr r3, [r6, #2256]
11062
+ beq .L1759
11063
+ ldr r3, [r4, #2260]
1057911064 cmp r3, #0
10580
- beq .L1773
11065
+ beq .L1764
1058111066 mov r0, #1
1058211067 bl FlashSetInterfaceMode
1058311068 mov r0, #1
10584
- b .L1843
10585
-.L1773:
10586
- ldrb r0, [r6, #2229] @ zero_extendqisi2
10587
- bl FlashSetInterfaceMode
10588
- ldrb r0, [r6, #2229] @ zero_extendqisi2
10589
-.L1843:
11069
+.L1832:
1059011070 bl NandcSetMode
1059111071 bl FlashLoadPhyInfo
1059211072 cmp r0, #0
10593
- beq .L1768
11073
+ beq .L1759
1059411074 mov r0, #1
10595
- ldr r6, .L1848+4
1059611075 bl FlashSetInterfaceMode
1059711076 mov r0, #1
1059811077 bl NandcSetMode
10599
- ldr r3, [r4, #44]
10600
- ldr r0, .L1848+44
11078
+ ldr r3, [r4, #48]
11079
+ ldr r0, .L1837+40
1060111080 ldrh r1, [r3, #14]
1060211081 bl printk
1060311082 bl FlashLoadPhyInfoInRam
1060411083 cmn r0, #1
10605
- beq .L1816
11084
+ beq .L1739
1060611085 bl FlashDieInfoInit
10607
- ldr r3, [r6, #44]
11086
+ ldr r3, [r4, #48]
1060811087 ldrb r0, [r3, #19] @ zero_extendqisi2
1060911088 bl FlashGetReadRetryDefault
10610
- ldr r3, .L1848+48
10611
- ldr r2, [r6, #44]
11089
+ ldr r3, .L1837+44
11090
+ ldr r2, [r4, #48]
1061211091 ldrh r3, [r3, #-2]
1061311092 ldrb r1, [r2, #9] @ zero_extendqisi2
1061411093 add r3, r3, #4080
1061511094 add r3, r3, #15
1061611095 cmp r1, r3, asr #12
1061711096 ldrh r3, [r2, #14]
10618
- blt .L1775
11097
+ blt .L1766
1061911098 add r0, r3, #255
1062011099 cmp r1, r0, asr #8
10621
- bge .L1776
10622
-.L1775:
11100
+ bge .L1767
11101
+.L1766:
1062311102 bic r3, r3, #255
1062411103 strh r3, [r2, #14] @ movhi
10625
-.L1776:
10626
- ldrb r3, [r4, #2229] @ zero_extendqisi2
11104
+.L1767:
11105
+ ldrb r3, [r4, #2233] @ zero_extendqisi2
1062711106 tst r3, #6
10628
- beq .L1777
11107
+ beq .L1768
1062911108 bl FlashSavePhyInfo
1063011109 mov r0, #0
1063111110 bl flash_enter_slc_mode
11111
+ ldr r1, [r5, #1712]
1063211112 mov r0, #0
10633
- ldr r1, [r8, #1704]
1063411113 bl FlashDdrParaScan
1063511114 mov r0, #0
1063611115 bl flash_exit_slc_mode
10637
-.L1777:
10638
- bl FlashSavePhyInfo
1063911116 .L1768:
10640
- ldr r2, [r4, #44]
10641
- ldr r7, .L1848+4
10642
- ldr r6, .L1848
10643
- ldrb r3, [r2, #26] @ zero_extendqisi2
10644
- ldrh r0, [r2, #10]
10645
- ldrb r9, [r2, #18] @ zero_extendqisi2
10646
- strb r3, [r4, #144]
10647
- ldrh r3, [r2, #16]
10648
- ubfx r1, r3, #7, #1
10649
- strb r1, [r4, #8]
10650
- ubfx r1, r3, #3, #1
10651
- strb r1, [r8, #1733]
10652
- ubfx r1, r3, #4, #1
11117
+ bl FlashSavePhyInfo
11118
+.L1759:
11119
+ ldr r7, [r4, #48]
11120
+ ldrb r3, [r7, #26] @ zero_extendqisi2
11121
+ ldrb r1, [r7, #12] @ zero_extendqisi2
11122
+ ldrh r0, [r7, #10]
11123
+ strb r3, [r4, #152]
11124
+ ldrh r3, [r7, #16]
11125
+ ubfx r2, r3, #7, #1
11126
+ strb r2, [r4, #44]
11127
+ ubfx r2, r3, #3, #1
11128
+ strb r2, [r5, #1741]
11129
+ ubfx r2, r3, #4, #1
1065311130 ubfx r3, r3, #8, #3
10654
- strb r1, [r4, #2240]
10655
- strb r3, [r4, #2229]
11131
+ strb r2, [r4, #2244]
11132
+ strb r3, [r4, #2233]
1065611133 mov r3, #0
10657
- ldrb r1, [r2, #12] @ zero_extendqisi2
10658
- str r3, [r8, #1696]
11134
+ str r3, [r5, #1704]
1065911135 bl __aeabi_idiv
1066011136 mov r1, r0
10661
- mov r0, r9
11137
+ ldrb r0, [r7, #18] @ zero_extendqisi2
1066211138 bl BuildFlashLsbPageTable
1066311139 bl FlashDieInfoInit
10664
- ldr r3, [r4, #44]
11140
+ ldr r3, [r4, #48]
1066511141 ldrh r2, [r3, #16]
1066611142 tst r2, #64
10667
- beq .L1779
11143
+ beq .L1770
1066811144 ldrb r0, [r3, #19] @ zero_extendqisi2
10669
- ldrb r3, [r7, #1211] @ zero_extendqisi2
10670
- strb r0, [r7, #1208]
10671
- strb r3, [r7, #1209]
10672
- ldrb r3, [r7, #1212] @ zero_extendqisi2
10673
- strb r3, [r6, #1713]
11145
+ ldrb r3, [r4, #1217] @ zero_extendqisi2
11146
+ strb r0, [r4, #84]
11147
+ strb r3, [r4, #85]
11148
+ ldrb r3, [r4, #1218] @ zero_extendqisi2
11149
+ strb r3, [r5, #1721]
1067411150 sub r3, r0, #1
1067511151 cmp r3, #7
10676
- bhi .L1780
10677
- ldr r3, .L1848+52
10678
- str r3, [r6, #1696]
11152
+ bhi .L1771
11153
+ ldr r3, .L1837+48
11154
+ str r3, [r5, #1704]
1067911155 sub r3, r0, #5
1068011156 cmp r0, #8
1068111157 cmpne r3, #1
10682
- sub r6, r0, #8
10683
- clz r6, r6
1068411158 movls r3, #1
10685
- strls r3, [r7, #2304]
11159
+ strls r3, [r4, #2308]
1068611160 cmp r0, #7
10687
- mov r6, r6, lsr #5
10688
- ldreq r6, .L1848+56
10689
- beq .L1783
10690
- ldr r3, .L1848+56
10691
- cmp r6, #0
10692
- sub r2, r3, #8
10693
- movne r6, r3
10694
- moveq r6, r2
10695
-.L1783:
10696
- sub r2, r6, #1
10697
- add r6, r6, #31
10698
- mov r3, #0
10699
-.L1784:
10700
- ldrsb r1, [r2, #1]!
10701
- cmp r1, #0
10702
- addeq r3, r3, #1
10703
- cmp r2, r6
10704
- bne .L1784
10705
- cmp r3, #27
10706
- bls .L1779
11161
+ ldr r3, .L1837+16
11162
+ beq .L1793
11163
+ cmp r0, #8
11164
+ addne r3, r3, #20
11165
+ bne .L1773
11166
+.L1793:
11167
+ add r3, r3, #28
11168
+.L1773:
11169
+ sub r1, r3, #1
11170
+ mov r2, #0
11171
+ add r3, r3, #31
11172
+.L1775:
11173
+ ldrsb ip, [r1, #1]!
11174
+ cmp ip, #0
11175
+ addeq r2, r2, #1
11176
+ cmp r3, r1
11177
+ bne .L1775
11178
+ cmp r2, #27
11179
+ bls .L1770
1070711180 bl FlashGetReadRetryDefault
1070811181 bl FlashSavePhyInfo
10709
- b .L1779
10710
-.L1780:
10711
- sub r3, r0, #17
10712
- cmp r3, #2
10713
- bhi .L1786
10714
- ldr r3, .L1848+60
10715
- cmp r0, #19
10716
- str r3, [r6, #1696]
10717
- moveq r3, #15
10718
- bne .L1847
10719
- b .L1845
10720
-.L1786:
10721
- sub r3, r0, #65
10722
- cmp r0, #33
10723
- cmpne r3, #1
10724
- bhi .L1788
10725
- ldr r3, .L1848+64
10726
- str r3, [r6, #1696]
10727
- mov r3, #4
10728
- strb r3, [r7, #1209]
10729
-.L1847:
10730
- mov r3, #7
10731
-.L1845:
10732
- strb r3, [r6, #1713]
10733
- b .L1779
10734
-.L1788:
10735
- sub r2, r0, #67
10736
- sub r3, r0, #34
10737
- cmp r2, #1
10738
- movhi r2, #0
10739
- movls r2, #1
10740
- cmp r3, #1
10741
- movhi r3, r2
10742
- orrls r3, r2, #1
10743
- cmp r3, #0
10744
- beq .L1789
10745
- ldr r3, .L1848+64
10746
- cmp r0, #68
10747
- cmpne r0, #35
10748
- str r3, [r6, #1696]
10749
- movne r3, #7
10750
- moveq r3, #17
11182
+.L1770:
11183
+ ldr r3, [r4, #2268]
11184
+ cmp r3, r6
11185
+ bne .L1785
11186
+ ldrb r2, [r4, #152] @ zero_extendqisi2
1075111187 cmp r2, #0
10752
- strb r3, [r6, #1713]
10753
- movne r3, #4
10754
- moveq r3, #5
10755
- strb r3, [r4, #1209]
10756
- b .L1779
10757
-.L1789:
10758
- cmp r0, #49
10759
- ldreq r3, .L1848+68
10760
- streq r3, [r6, #1696]
10761
- beq .L1779
10762
- cmp r0, #50
10763
- streq r3, [r7, #2248]
10764
- ldreq r2, .L1848+72
10765
- streq r2, [r6, #1696]
10766
-.L1779:
10767
- ldr r2, [r4, #2264]
10768
- ldr r3, .L1848+4
10769
- cmp r2, r5
10770
- bne .L1794
10771
- ldrb r1, [r3, #144] @ zero_extendqisi2
10772
- cmp r1, #0
10773
- ldrne r3, [r3, #44]
11188
+ ldrne r2, [r4, #48]
1077411189 movne r1, #0
10775
- strneb r1, [r3, #18]
10776
-.L1794:
10777
- ldrb r1, [r4, #2068] @ zero_extendqisi2
10778
- ldr r3, .L1848+4
10779
- cmp r1, #44
10780
- bne .L1795
10781
- ldrb r1, [r3, #2252] @ zero_extendqisi2
10782
- cmp r1, #0
10783
- beq .L1795
10784
- cmp r2, r5
10785
- bne .L1796
10786
- ldrb r3, [r3, #144] @ zero_extendqisi2
11190
+ strbne r1, [r2, #18]
11191
+.L1785:
11192
+ ldrb r2, [r4, #2072] @ zero_extendqisi2
11193
+ cmp r2, #44
11194
+ bne .L1786
11195
+ ldrb r2, [r4, #2256] @ zero_extendqisi2
11196
+ cmp r2, #0
11197
+ beq .L1786
11198
+ cmp r3, r6
11199
+ bne .L1787
11200
+ ldrb r3, [r4, #152] @ zero_extendqisi2
1078711201 cmp r3, #0
10788
- bne .L1795
10789
-.L1796:
10790
- mov r0, #1
11202
+ bne .L1786
11203
+.L1787:
1079111204 mov r3, #0
10792
- strb r3, [r4, #2252]
11205
+ mov r0, #1
11206
+ strb r3, [r4, #2256]
1079311207 bl FlashSetInterfaceMode
1079411208 mov r0, #1
1079511209 bl NandcSetMode
10796
-.L1795:
10797
- ldrb r3, [r4, #2229] @ zero_extendqisi2
11210
+.L1786:
11211
+ ldrb r3, [r4, #2233] @ zero_extendqisi2
1079811212 tst r3, #6
10799
- beq .L1797
10800
- ldr r2, .L1848+4
10801
- ldrb r2, [r2, #2252] @ zero_extendqisi2
11213
+ beq .L1788
11214
+ ldrb r2, [r4, #2256] @ zero_extendqisi2
1080211215 cmp r2, #0
10803
- bne .L1798
11216
+ bne .L1789
1080411217 tst r3, #1
10805
- bne .L1797
10806
-.L1798:
11218
+ bne .L1788
11219
+.L1789:
1080711220 mov r0, #0
1080811221 bl flash_enter_slc_mode
11222
+ ldr r1, [r5, #1712]
1080911223 mov r0, #0
10810
- ldr r1, [r8, #1704]
1081111224 bl FlashDdrParaScan
1081211225 mov r0, #0
1081311226 bl flash_exit_slc_mode
10814
-.L1797:
10815
- ldr r3, [r4, #44]
10816
- mov r7, #16
10817
- ldr r6, .L1848+4
11227
+.L1788:
11228
+ ldr r3, [r4, #48]
11229
+ mov r6, #16
1081811230 ldrb r0, [r3, #20] @ zero_extendqisi2
1081911231 bl FlashBchSel
10820
- ldr r0, .L1848+76
11232
+ ldr r0, .L1837+52
1082111233 bl FlashReadIdbDataRaw
10822
- ldr r0, .L1848+80
10823
- strb r7, [r4, #1]
11234
+ ldr r0, .L1837+56
11235
+ strb r6, [r4, #37]
1082411236 bl FlashTimingCfg
10825
- ldr r5, [r4, #44]
10826
- ldrb r2, [r4, #2069] @ zero_extendqisi2
11237
+ ldr r5, [r4, #48]
11238
+ ldrb r2, [r4, #2073] @ zero_extendqisi2
1082711239 ldrb r3, [r5, #12] @ zero_extendqisi2
10828
- ldrh r8, [r5, #14]
10829
- strh r3, [r4, #124] @ movhi
10830
- ldrb r3, [r5, #7] @ zero_extendqisi2
10831
- str r3, [r4, #120]
10832
- mov r3, r2, asl r7
10833
- orr r2, r3, r2, asl #8
10834
- ldrb r3, [r4, #2068] @ zero_extendqisi2
10835
- orr r3, r2, r3
10836
- ldrb r2, [r4, #2071] @ zero_extendqisi2
10837
- orr r3, r3, r2, asl #24
10838
- str r3, [r4, #116]
10839
- ldrb r3, [r4, #2230] @ zero_extendqisi2
10840
- strh r3, [r4, #126] @ movhi
10841
- ldrb r3, [r5, #13] @ zero_extendqisi2
10842
- strh r8, [r4, #130] @ movhi
10843
- strh r3, [r4, #128] @ movhi
10844
- ldrh r3, [r5, #10]
11240
+ ldrh r7, [r5, #14]
1084511241 strh r3, [r4, #132] @ movhi
11242
+ ldrb r3, [r5, #7] @ zero_extendqisi2
11243
+ str r3, [r4, #128]
11244
+ lsl r3, r2, r6
11245
+ orr r3, r3, r2, lsl #8
11246
+ ldrb r2, [r4, #2072] @ zero_extendqisi2
11247
+ orr r3, r3, r2
11248
+ ldrb r2, [r4, #2075] @ zero_extendqisi2
11249
+ orr r3, r3, r2, lsl #24
11250
+ str r3, [r4, #124]
11251
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
11252
+ strh r3, [r4, #134] @ movhi
11253
+ ldrb r3, [r5, #13] @ zero_extendqisi2
11254
+ strh r7, [r4, #138] @ movhi
11255
+ strh r3, [r4, #136] @ movhi
11256
+ ldrh r3, [r5, #10]
11257
+ strh r3, [r4, #140] @ movhi
1084611258 ldrb r1, [r5, #12] @ zero_extendqisi2
1084711259 ldrh r0, [r5, #10]
1084811260 bl __aeabi_idiv
10849
- strh r0, [r4, #134] @ movhi
11261
+ strh r0, [r4, #142] @ movhi
1085011262 ldrb r2, [r5, #9] @ zero_extendqisi2
10851
- strh r2, [r4, #136] @ movhi
10852
- ldrb r1, [r5, #9] @ zero_extendqisi2
10853
- ldrh r3, [r5, #10]
10854
- smulbb r3, r1, r3
11263
+ strh r2, [r4, #144] @ movhi
11264
+ ldrh r1, [r5, #10]
11265
+ ldrb r3, [r5, #9] @ zero_extendqisi2
11266
+ smulbb r3, r3, r1
1085511267 mov r1, #512
10856
- strh r1, [r4, #140] @ movhi
10857
- ldrb r1, [r4, #1] @ zero_extendqisi2
10858
- strh r1, [r4, #142] @ movhi
11268
+ strh r1, [r4, #148] @ movhi
11269
+ ldrb r1, [r4, #37] @ zero_extendqisi2
1085911270 uxth r3, r3
10860
- ldrb r1, [r4] @ zero_extendqisi2
10861
- strh r3, [r4, #138] @ movhi
11271
+ strh r1, [r4, #150] @ movhi
11272
+ ldrb r1, [r4, #36] @ zero_extendqisi2
11273
+ strh r3, [r4, #146] @ movhi
1086211274 cmp r1, #1
10863
- bne .L1800
10864
- mov r3, r3, asl #1
10865
- mov r8, r8, lsr #1
10866
- mov r2, r2, asl #1
10867
- strh r3, [r6, #138] @ movhi
10868
- strb r7, [r6, #1]
11275
+ bne .L1790
11276
+ lsl r3, r3, #1
11277
+ lsr r1, r7, #1
11278
+ lsl r2, r2, #1
11279
+ strb r6, [r4, #37]
11280
+ strh r3, [r4, #146] @ movhi
1086911281 mov r3, #8
10870
- strh r8, [r6, #130] @ movhi
10871
- strh r2, [r6, #136] @ movhi
10872
- strh r3, [r6, #142] @ movhi
10873
-.L1800:
11282
+ strh r1, [r4, #138] @ movhi
11283
+ strh r2, [r4, #144] @ movhi
11284
+ strh r3, [r4, #150] @ movhi
11285
+.L1790:
1087411286 ldrb r0, [r5, #20] @ zero_extendqisi2
1087511287 bl FlashBchSel
1087611288 bl ftl_flash_suspend
1087711289 mov r0, #0
10878
- b .L1816
10879
-.L1802:
10880
- mvn r0, #1
10881
-.L1816:
10882
- add sp, sp, #20
11290
+.L1739:
11291
+ add sp, sp, #28
1088311292 @ sp needed
10884
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10885
-.L1849:
11293
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11294
+.L1755:
11295
+ cmp r3, #220
11296
+ ldreq r3, .L1837+28
11297
+ moveq r1, #4096
11298
+ strheq r1, [r3, #14] @ movhi
11299
+ mvneq r3, #35
11300
+ beq .L1831
11301
+.L1757:
11302
+ cmp r3, #211
11303
+ ldreq r3, .L1837+28
11304
+ moveq r1, #4096
11305
+ strheq r1, [r3, #14] @ movhi
11306
+ moveq r3, #2
11307
+ strbeq r3, [r2, #3425]
11308
+ b .L1756
11309
+.L1764:
11310
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
11311
+ bl FlashSetInterfaceMode
11312
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
11313
+ b .L1832
11314
+.L1771:
11315
+ sub r3, r0, #17
11316
+ cmp r3, #2
11317
+ bhi .L1777
11318
+ ldr r3, .L1837+60
11319
+ cmp r0, #19
11320
+ str r3, [r5, #1704]
11321
+ moveq r3, #15
11322
+ beq .L1834
11323
+.L1836:
11324
+ mov r3, #7
11325
+.L1834:
11326
+ strb r3, [r5, #1721]
11327
+ b .L1770
11328
+.L1777:
11329
+ sub r3, r0, #65
11330
+ cmp r0, #33
11331
+ cmpne r3, #1
11332
+ ldrls r3, .L1837+64
11333
+ strls r3, [r5, #1704]
11334
+ movls r3, #4
11335
+ strbls r3, [r4, #85]
11336
+ bls .L1836
11337
+.L1779:
11338
+ sub r3, r0, #67
11339
+ sub r2, r0, #34
11340
+ uxtb r3, r3
11341
+ cmp r3, #1
11342
+ cmphi r2, #1
11343
+ movls r2, #1
11344
+ movhi r2, #0
11345
+ bhi .L1780
11346
+ ldr r2, .L1837+64
11347
+ cmp r0, #68
11348
+ cmpne r0, #35
11349
+ str r2, [r5, #1704]
11350
+ movne r2, #7
11351
+ moveq r2, #17
11352
+ cmp r3, #1
11353
+ movls r3, #4
11354
+ movhi r3, #5
11355
+ strb r2, [r5, #1721]
11356
+ strb r3, [r4, #85]
11357
+ b .L1770
11358
+.L1780:
11359
+ cmp r0, #49
11360
+ ldreq r3, .L1837+68
11361
+ streq r3, [r5, #1704]
11362
+ beq .L1770
11363
+ cmp r0, #50
11364
+ ldreq r3, .L1837+72
11365
+ streq r2, [r4, #2252]
11366
+ streq r3, [r5, #1704]
11367
+ b .L1770
11368
+.L1792:
11369
+ mvn r0, #1
11370
+ b .L1739
11371
+.L1838:
1088611372 .align 2
10887
-.L1848:
11373
+.L1837:
1088811374 .word .LANCHOR2
1088911375 .word .LANCHOR0
10890
- .word .LANCHOR0+2068
1089111376 .word .LC97
10892
- .word .LANCHOR0+1210
11377
+ .word .LANCHOR0+2072
11378
+ .word .LANCHOR0+1216
1089311379 .word 1446522928
1089411380 .word .LANCHOR1
10895
- .word .LANCHOR1+3416
10896
- .word .LANCHOR1+3292
10897
- .word .LANCHOR0+48
10898
- .word .LANCHOR1+472
11381
+ .word .LANCHOR1+3412
11382
+ .word .LANCHOR1+3288
11383
+ .word .LANCHOR0+52
1089911384 .word .LC98
1090011385 .word .LANCHOR2-568
1090111386 .word HynixReadRetrial
10902
- .word .LANCHOR0+1238
11387
+ .word .LANCHOR2-364
11388
+ .word 150000
1090311389 .word MicronReadRetrial
1090411390 .word ToshibaReadRetrial
1090511391 .word SamsungReadRetrial
1090611392 .word samsung_read_retrial
10907
- .word .LANCHOR2-364
10908
- .word 150000
1090911393 .fnend
1091011394 .size FlashInit, .-FlashInit
1091111395 .align 2
1091211396 .global FlashPageProgMsbFFData
11397
+ .syntax unified
11398
+ .arm
11399
+ .fpu softvfp
1091311400 .type FlashPageProgMsbFFData, %function
1091411401 FlashPageProgMsbFFData:
1091511402 .fnstart
1091611403 @ args = 0, pretend = 0, frame = 0
1091711404 @ frame_needed = 0, uses_anonymous_args = 0
10918
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
11405
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
1091911406 .save {r4, r5, r6, r7, r8, r9, r10, lr}
10920
- mov r7, r1
10921
- ldr r1, .L1867
11407
+ mov r8, r0
11408
+ ldr r5, .L1855
11409
+ mov r9, r1
1092211410 mov r4, r2
10923
- mov r6, r0
10924
- ldrb r2, [r1, #144] @ zero_extendqisi2
10925
- mov r5, r1
10926
- ldr r3, [r1, #44]
10927
- cmp r2, #0
11411
+ ldrb r3, [r5, #152] @ zero_extendqisi2
11412
+ cmp r3, #0
11413
+ beq .L1840
11414
+ ldr r3, [r5, #2252]
11415
+ cmp r3, #0
11416
+ popne {r4, r5, r6, r7, r8, r9, r10, pc}
11417
+.L1840:
11418
+ ldr r3, [r5, #48]
1092811419 ldrb r3, [r3, #19] @ zero_extendqisi2
10929
- beq .L1851
10930
- ldr r2, [r1, #2248]
10931
- cmp r2, #0
10932
- ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
10933
-.L1851:
1093411420 sub r2, r3, #5
1093511421 cmp r3, #50
1093611422 cmpne r2, #2
10937
- bls .L1852
11423
+ bls .L1841
1093811424 sub r2, r3, #19
10939
- tst r2, #239
10940
- moveq r2, #1
10941
- movne r2, #0
10942
- cmp r3, #68
10943
- movne r3, r2
10944
- orreq r3, r2, #1
10945
- cmp r3, #0
10946
- ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
10947
-.L1852:
10948
- ldr r8, .L1867+4
10949
- movw r10, #65535
10950
- ldr r9, .L1867+8
10951
-.L1854:
10952
- ldr r3, [r5, #44]
11425
+ and r2, r2, #239
11426
+ cmp r2, #0
11427
+ cmpne r3, #68
11428
+ popne {r4, r5, r6, r7, r8, r9, r10, pc}
11429
+.L1841:
11430
+ ldr r6, .L1855+4
11431
+ sub r7, r6, #2608
11432
+ sub r7, r7, #12
11433
+.L1843:
11434
+ ldr r3, [r5, #48]
1095311435 ldrh r3, [r3, #10]
1095411436 cmp r3, r4
10955
- bls .L1866
10956
- mov r3, r4, asl #1
10957
- ldrh r3, [r9, r3]
10958
- cmp r3, r10
10959
- ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
10960
- mov r1, #255
11437
+ bhi .L1844
11438
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
11439
+.L1844:
11440
+ lsl r3, r4, #1
11441
+ ldrh r2, [r7, r3]
11442
+ movw r3, #65535
11443
+ cmp r2, r3
11444
+ popne {r4, r5, r6, r7, r8, r9, r10, pc}
1096111445 mov r2, #32768
10962
- ldr r0, [r8, #1716]
11446
+ mov r1, #255
11447
+ ldr r0, [r6, #1724]
1096311448 bl ftl_memset
10964
- ldr r2, [r8, #1716]
10965
- add r1, r4, r7
11449
+ ldr r3, [r6, #1724]
11450
+ add r1, r4, r9
11451
+ mov r0, r8
1096611452 add r4, r4, #1
10967
- mov r0, r6
10968
- mov r3, r2
1096911453 uxth r4, r4
11454
+ mov r2, r3
1097011455 bl FlashProgPage
10971
- b .L1854
10972
-.L1866:
10973
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
10974
-.L1868:
11456
+ b .L1843
11457
+.L1856:
1097511458 .align 2
10976
-.L1867:
11459
+.L1855:
1097711460 .word .LANCHOR0
1097811461 .word .LANCHOR2
10979
- .word .LANCHOR2-2620
1098011462 .fnend
1098111463 .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData
1098211464 .align 2
1098311465 .global FlashReadSlc2KPages
11466
+ .syntax unified
11467
+ .arm
11468
+ .fpu softvfp
1098411469 .type FlashReadSlc2KPages, %function
1098511470 FlashReadSlc2KPages:
1098611471 .fnstart
1098711472 @ args = 0, pretend = 0, frame = 24
1098811473 @ frame_needed = 0, uses_anonymous_args = 0
10989
- ldr r3, .L1920
10990
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
11474
+ ldr r3, .L1906
11475
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1099111476 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
11477
+ mov r4, r0
11478
+ ldr r8, .L1906+4
11479
+ mov r9, #0
1099211480 .pad #36
1099311481 sub sp, sp, #36
10994
- ldrb r3, [r3, #481] @ zero_extendqisi2
10995
- mov r4, r0
10996
- mov r8, #0
11482
+ ldr fp, .L1906+8
11483
+ ldrb r3, [r3, #477] @ zero_extendqisi2
1099711484 str r1, [sp, #16]
1099811485 str r2, [sp, #20]
1099911486 str r3, [sp, #12]
11000
-.L1870:
11487
+.L1858:
1100111488 ldr r3, [sp, #16]
11002
- cmp r8, r3
11003
- beq .L1919
11489
+ cmp r9, r3
11490
+ bne .L1878
11491
+ mov r0, #0
11492
+ add sp, sp, #36
11493
+ @ sp needed
11494
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11495
+.L1878:
1100411496 ldr r3, [sp, #16]
1100511497 add r2, sp, #28
11006
- mov r0, r4
1100711498 ldr r1, [sp, #20]
11008
- rsb r3, r8, r3
11009
- ldr r9, .L1920+4
11499
+ mov r0, r4
11500
+ sub r3, r3, r9
1101011501 uxtb r3, r3
1101111502 str r3, [sp]
1101211503 add r3, sp, #24
11013
- mov fp, r9
1101411504 bl LogAddr2PhyAddr
11015
- ldrb r2, [r9, #2230] @ zero_extendqisi2
11505
+ ldrb r2, [r8, #2234] @ zero_extendqisi2
1101611506 ldr r3, [sp, #24]
11017
- cmp r3, r2
11018
- mvncs r3, #0
11019
- strcs r3, [r4]
11020
- bcs .L1872
11021
- add r3, r9, r3
11507
+ cmp r2, r3
11508
+ mvnls r3, #0
11509
+ strls r3, [r4]
11510
+ bls .L1860
11511
+ add r3, r8, r3
1102211512 mov r7, #0
11023
- ldrb r5, [r3, #2232] @ zero_extendqisi2
11024
- mov r0, r5
11513
+ ldrb r6, [r3, #2236] @ zero_extendqisi2
11514
+ mov r0, r6
1102511515 bl NandcWaitFlashReady
11026
- mov r0, r5
11516
+ mov r0, r6
1102711517 bl NandcFlashCs
11028
-.L1873:
11518
+.L1861:
1102911519 ldr r1, [sp, #28]
11030
- mov r0, r5
11520
+ mov r0, r6
1103111521 bl FlashReadCmd
11032
- mov r0, r5
11522
+ mov r0, r6
1103311523 bl NandcWaitFlashReady
1103411524 ldr r3, [r4, #12]
11035
- mov r0, r5
1103611525 mov r1, #0
11037
- str r3, [sp]
1103811526 ldr r2, [sp, #12]
11527
+ mov r0, r6
11528
+ str r3, [sp]
1103911529 ldr r3, [r4, #8]
1104011530 bl NandcXferData
11041
- ldr r3, .L1920+8
11042
- ldrb r3, [r3, #1732] @ zero_extendqisi2
11531
+ ldrb r3, [fp, #1740] @ zero_extendqisi2
11532
+ mov r5, r0
1104311533 cmp r3, #0
11044
- mov r6, r0
11045
- beq .L1874
11046
- mov r0, r5
11534
+ beq .L1862
11535
+ mov r0, r6
1104711536 bl flash_read_ecc
1104811537 cmp r0, #5
11049
- movhi r6, #256
11050
-.L1874:
11538
+ movhi r5, #256
11539
+.L1862:
1105111540 cmp r7, #9
11052
- cmnls r6, #1
11541
+ cmnls r5, #1
1105311542 moveq r3, #1
1105411543 movne r3, #0
1105511544 addeq r7, r7, #1
11056
- beq .L1873
11057
-.L1875:
11545
+ beq .L1861
11546
+.L1863:
1105811547 cmp r7, #0
1105911548 mov r7, r3
11060
- movne r6, #256
11061
-.L1877:
11062
- ldr r3, [sp, #28]
11063
- mov r0, r5
11064
- ldr r1, [fp, #4]
11549
+ movne r5, #256
11550
+.L1865:
11551
+ ldr r3, [r8, #40]
11552
+ mov r0, r6
11553
+ ldr r1, [sp, #28]
1106511554 add r1, r1, r3
1106611555 bl FlashReadCmd
11067
- mov r0, r5
11556
+ mov r0, r6
1106811557 bl NandcWaitFlashReady
1106911558 ldr r3, [r4, #8]
11070
- ldr r2, [r4, #12]
11071
- mov r0, r5
11072
- cmp r3, #0
1107311559 mov r1, #0
11560
+ ldr r2, [r4, #12]
11561
+ mov r0, r6
11562
+ cmp r3, #0
1107411563 addne r3, r3, #2048
1107511564 cmp r2, #0
1107611565 addne r2, r2, #8
1107711566 str r2, [sp]
1107811567 ldr r2, [sp, #12]
1107911568 bl NandcXferData
11080
- ldr r3, .L1920+8
11081
- ldrb r2, [r3, #1732] @ zero_extendqisi2
11082
- cmp r2, #0
11569
+ ldrb r2, [fp, #1740] @ zero_extendqisi2
1108311570 mov r10, r0
11084
- beq .L1880
11085
- mov r0, r5
11571
+ cmp r2, #0
11572
+ beq .L1868
11573
+ mov r0, r6
1108611574 bl flash_read_ecc
1108711575 cmp r0, #5
1108811576 movhi r10, #256
11089
-.L1880:
11577
+.L1868:
1109011578 cmp r7, #9
1109111579 cmnls r10, #1
1109211580 addeq r7, r7, #1
11093
- beq .L1877
11094
-.L1881:
11581
+ beq .L1865
11582
+.L1869:
1109511583 cmp r7, #0
11096
- mov r0, r5
11584
+ mov r0, r6
1109711585 movne r10, #256
1109811586 bl NandcFlashDeCs
11099
- ldrb r2, [r9, #2312] @ zero_extendqisi2
11100
- cmp r10, r6
11101
- movcs r3, r10
11102
- movcc r3, r6
11103
- add r2, r2, r2, asl #1
11104
- cmp r3, r2, asr #2
11105
- bls .L1883
11106
- cmn r3, #1
11107
- movne r3, #256
11108
-.L1883:
11109
- cmp r3, #256
11110
- cmnne r3, #1
11587
+ ldrb r3, [r8, #2316] @ zero_extendqisi2
11588
+ cmp r5, r10
11589
+ movcc r5, r10
11590
+ add r3, r3, r3, lsl #1
11591
+ cmp r5, r3, asr #2
11592
+ bls .L1871
11593
+ cmn r5, #1
11594
+ movne r5, #256
11595
+.L1871:
11596
+ cmp r5, #256
11597
+ cmnne r5, #1
1111111598 movne r3, #0
11112
- str r3, [r4]
11599
+ streq r5, [r4]
11600
+ strne r3, [r4]
1111311601 ldr r3, [r4, #12]
1111411602 cmp r3, #0
11115
- beq .L1886
11603
+ beq .L1874
1111611604 ldr r2, [r3, #12]
1111711605 cmn r2, #1
11118
- bne .L1886
11606
+ bne .L1874
1111911607 ldr r2, [r3, #8]
1112011608 cmn r2, #1
11121
- bne .L1886
11609
+ bne .L1874
1112211610 ldr r3, [r3]
1112311611 cmn r3, #1
1112411612 strne r2, [r4]
11125
-.L1886:
11613
+.L1874:
1112611614 ldr r3, [r4]
1112711615 cmn r3, #1
11128
- bne .L1872
11616
+ bne .L1860
1112911617 ldr r1, [r4, #4]
11130
- ldr r0, .L1920+12
11131
- ldrb r2, [r9, #2312] @ zero_extendqisi2
11618
+ ldrb r2, [r8, #2316] @ zero_extendqisi2
11619
+ ldr r0, .L1906+12
1113211620 bl printk
1113311621 ldr r1, [r4, #8]
1113411622 cmp r1, #0
11135
- beq .L1888
11136
- ldr r0, .L1920+16
11137
- mov r2, #4
11623
+ beq .L1876
1113811624 mov r3, #8
11625
+ mov r2, #4
11626
+ ldr r0, .L1906+16
1113911627 bl rknand_print_hex
11140
-.L1888:
11628
+.L1876:
1114111629 ldr r1, [r4, #12]
1114211630 cmp r1, #0
11143
- beq .L1872
11144
- mov r2, #4
11145
- ldr r0, .L1920+20
11146
- mov r3, r2
11631
+ beq .L1860
11632
+ mov r3, #4
11633
+ ldr r0, .L1906+20
11634
+ mov r2, r3
1114711635 bl rknand_print_hex
11148
-.L1872:
11149
- add r8, r8, #1
11636
+.L1860:
11637
+ add r9, r9, #1
1115011638 add r4, r4, #36
11151
- b .L1870
11152
-.L1919:
11153
- mov r0, #0
11154
- add sp, sp, #36
11155
- @ sp needed
11156
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11157
-.L1921:
11639
+ b .L1858
11640
+.L1907:
1115811641 .align 2
11159
-.L1920:
11642
+.L1906:
1116011643 .word .LANCHOR1
1116111644 .word .LANCHOR0
1116211645 .word .LANCHOR2
....@@ -11167,2042 +11650,2030 @@
1116711650 .size FlashReadSlc2KPages, .-FlashReadSlc2KPages
1116811651 .align 2
1116911652 .global FlashReadPages
11653
+ .syntax unified
11654
+ .arm
11655
+ .fpu softvfp
1117011656 .type FlashReadPages, %function
1117111657 FlashReadPages:
1117211658 .fnstart
1117311659 @ args = 0, pretend = 0, frame = 40
1117411660 @ frame_needed = 0, uses_anonymous_args = 0
11175
- ldr r3, .L1997
11176
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
11661
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1117711662 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1117811663 .pad #52
1117911664 sub sp, sp, #52
11180
- ldr r6, .L1997+4
11181
- ldrb r3, [r3, #481] @ zero_extendqisi2
11182
- str r1, [sp, #20]
11183
- ldrb r8, [r6] @ zero_extendqisi2
11184
- str r3, [sp, #16]
11185
- ldrb r3, [r6, #8] @ zero_extendqisi2
11186
- cmp r8, #0
11187
- str r2, [sp, #24]
11188
- str r3, [sp, #28]
11189
- beq .L1959
11665
+ ldr r4, .L1979
11666
+ str r1, [sp, #24]
11667
+ ldrb r9, [r4, #36] @ zero_extendqisi2
11668
+ str r2, [sp, #28]
11669
+ cmp r9, #0
11670
+ bne .L1909
11671
+ ldr r3, .L1979+4
11672
+ mov fp, r0
11673
+ ldr r10, .L1979+8
11674
+ str r9, [sp, #8]
11675
+ ldrb r3, [r3, #477] @ zero_extendqisi2
11676
+ str r3, [sp, #20]
11677
+ ldrb r3, [r4, #44] @ zero_extendqisi2
11678
+ str r3, [sp, #36]
11679
+.L1910:
11680
+ ldr r3, [sp, #8]
11681
+ ldr r2, [sp, #24]
11682
+ cmp r3, r2
11683
+ bcc .L1943
11684
+ mov r0, #0
11685
+ b .L1908
11686
+.L1909:
1119011687 bl FlashReadSlc2KPages
11191
- b .L1992
11192
-.L1959:
11193
- ldr r10, .L1997+8
11194
- mov r9, r0
11195
- mov fp, r8
11196
-.L1923:
11197
- ldr r3, [sp, #20]
11198
- cmp fp, r3
11199
- bcs .L1995
11688
+.L1908:
11689
+ add sp, sp, #52
11690
+ @ sp needed
11691
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11692
+.L1943:
11693
+ ldr r2, [sp, #8]
1120011694 mov r3, #36
11201
- add r2, sp, #44
11202
- mul r3, r3, fp
11203
- ldr r1, [sp, #24]
11204
- add r7, r9, r3
11205
- str r3, [sp, #8]
11206
- mov r0, r7
11207
- ldr r3, [r7, #4]
11695
+ ldr r1, [sp, #28]
11696
+ mul r3, r3, r2
11697
+ add r8, fp, r3
1120811698 str r3, [sp, #12]
11209
- ldr r3, [sp, #20]
11210
- rsb r3, fp, r3
11699
+ ldr r3, [sp, #24]
11700
+ mov r0, r8
11701
+ ldr r7, [r8, #4]
11702
+ sub r3, r3, r2
11703
+ add r2, sp, #44
1121111704 uxtb r3, r3
1121211705 str r3, [sp]
1121311706 add r3, sp, #40
1121411707 bl LogAddr2PhyAddr
11215
- ldrb r2, [r6, #2230] @ zero_extendqisi2
11708
+ ldrb r2, [r4, #2234] @ zero_extendqisi2
11709
+ mov r6, r0
1121611710 ldr r3, [sp, #40]
11217
- mov r5, r0
11218
- cmp r3, r2
11219
- ldrcs r2, [sp, #8]
11220
- mvncs r3, #0
11221
- strcs r3, [r9, r2]
11222
- bcs .L1926
11223
- add r3, r6, r3
11224
- ldrb r4, [r3, #2232] @ zero_extendqisi2
11225
- ldrb r3, [r10, #1733] @ zero_extendqisi2
11711
+ cmp r2, r3
11712
+ ldrls r2, [sp, #12]
11713
+ mvnls r3, #0
11714
+ strls r3, [fp, r2]
11715
+ bls .L1913
11716
+ add r3, r4, r3
11717
+ ldrb r5, [r3, #2236] @ zero_extendqisi2
11718
+ ldrb r3, [r10, #1741] @ zero_extendqisi2
11719
+ mov r0, r5
1122611720 cmp r3, #0
11227
- mov r0, r4
11228
- moveq r5, #0
11721
+ moveq r6, #0
1122911722 bl NandcWaitFlashReady
11230
- ldr r3, .L1997+4
11231
- ldr r3, [r3, #44]
11723
+ ldr r3, [r4, #48]
1123211724 ldrb r2, [r3, #19] @ zero_extendqisi2
1123311725 sub r3, r2, #1
1123411726 cmp r3, #7
11235
- bhi .L1928
11727
+ bhi .L1915
1123611728 sub r2, r2, #7
11237
- add r1, r6, r4
11729
+ add r1, r4, r5
1123811730 cmp r2, #1
11239
- ldr r2, .L1997+4
11240
- ldrb r3, [r1, #1222] @ zero_extendqisi2
11241
- add r2, r2, r4
11242
- ldrlsb r3, [r1, #1230] @ zero_extendqisi2
11243
- ldrb r2, [r2, #2064] @ zero_extendqisi2
11731
+ add r2, r4, r5
11732
+ ldrb r3, [r1, #1228] @ zero_extendqisi2
11733
+ ldrb r2, [r2, #2068] @ zero_extendqisi2
11734
+ ldrbls r3, [r1, #1236] @ zero_extendqisi2
1124411735 cmp r2, r3
11245
- beq .L1928
11246
- mov r0, r4
11247
- ldrb r1, [r6, #1211] @ zero_extendqisi2
11248
- ldr r2, .L1997+12
11736
+ beq .L1915
11737
+ ldr r2, .L1979+12
11738
+ mov r0, r5
11739
+ ldrb r1, [r4, #1217] @ zero_extendqisi2
1124911740 bl HynixSetRRPara
11250
-.L1928:
11251
- mov r0, r4
11741
+.L1915:
11742
+ mov r0, r5
11743
+ lsr r7, r7, #31
1125211744 bl NandcFlashCs
11253
- mov r0, r4
11254
- ldr r3, [sp, #12]
11255
- ldr r2, [sp, #24]
11256
- mov r3, r3, lsr #31
11257
- cmp r2, #1
11258
- orreq r3, r3, #1
11259
- str r3, [sp, #12]
11745
+ ldr r3, [sp, #28]
11746
+ mov r0, r5
11747
+ cmp r3, #1
11748
+ orreq r7, r7, #1
11749
+ cmp r7, #0
11750
+ str r7, [sp, #16]
11751
+ beq .L1917
11752
+ ldrb r3, [r4, #152] @ zero_extendqisi2
1126011753 cmp r3, #0
11261
- beq .L1930
11262
- ldr r3, .L1997+4
11263
- ldrb r3, [r3, #144] @ zero_extendqisi2
11264
- cmp r3, #0
11265
- beq .L1930
11754
+ beq .L1917
1126611755 bl flash_enter_slc_mode
11267
- b .L1931
11268
-.L1930:
11269
- bl flash_exit_slc_mode
11270
-.L1931:
11756
+.L1923:
1127111757 ldr r1, [sp, #44]
1127211758 cmn r1, #1
11273
- cmpeq r4, #255
11759
+ cmpeq r5, #255
1127411760 moveq r3, #0
1127511761 movne r3, #1
11276
- moveq r5, r3
11277
- beq .L1933
11278
- cmp r5, #0
11279
- beq .L1934
11280
- ldr r2, [r6, #4]
11281
- mov r0, r4
11762
+ moveq r6, r3
11763
+ beq .L1919
11764
+ cmp r6, #0
11765
+ beq .L1920
11766
+ ldr r2, [r4, #40]
11767
+ mov r0, r5
1128211768 add r2, r1, r2
1128311769 bl FlashReadDpCmd
11284
- b .L1935
11285
-.L1934:
11286
- mov r0, r4
11287
- bl FlashReadCmd
11288
-.L1935:
11289
- mov r0, r4
11770
+.L1921:
11771
+ mov r0, r5
1129011772 bl NandcWaitFlashReady
11291
- cmp r5, #0
11292
- beq .L1933
11293
- mov r0, r4
11773
+ cmp r6, #0
11774
+ beq .L1919
1129411775 ldr r1, [sp, #44]
11776
+ mov r0, r5
1129511777 bl FlashReadDpDataOutCmd
11296
-.L1933:
11297
- ldr r3, [r7, #12]
11298
- mov r0, r4
11299
- ldr r2, [sp, #16]
11778
+.L1919:
11779
+ ldr r3, [r8, #12]
1130011780 mov r1, #0
11781
+ ldr r2, [sp, #20]
11782
+ mov r0, r5
1130111783 str r3, [sp]
11302
- ldr r3, [r7, #8]
11784
+ ldr r3, [r8, #8]
1130311785 bl NandcXferData
11304
- ldrb r2, [r6, #8] @ zero_extendqisi2
11305
- adds r2, r2, #0
11786
+ ldrb r3, [r4, #44] @ zero_extendqisi2
11787
+ mov r7, r0
11788
+ adds r2, r3, #0
1130611789 movne r2, #1
1130711790 cmn r0, #1
11308
- mov ip, r0
1130911791 movne r2, #0
1131011792 cmp r2, #0
11311
- movne r3, #0
11312
- strneb r3, [r6, #8]
11313
- movne r5, r3
11314
- bne .L1931
11315
-.L1936:
11316
- cmp r5, #0
11317
- beq .L1937
11318
- ldr r3, .L1997+4
11319
- str r0, [sp, #32]
11320
- mov r0, r4
11321
- str r2, [sp, #36]
11322
- ldr r1, [r3, #4]
11323
- ldr r3, [sp, #44]
11793
+ str r2, [sp, #32]
11794
+ beq .L1922
11795
+ mov r3, #0
11796
+ mov r6, #0
11797
+ strb r3, [r4, #44]
11798
+ b .L1923
11799
+.L1917:
11800
+ bl flash_exit_slc_mode
11801
+ b .L1923
11802
+.L1920:
11803
+ mov r0, r5
11804
+ bl FlashReadCmd
11805
+ b .L1921
11806
+.L1922:
11807
+ cmp r6, #0
11808
+ beq .L1924
11809
+ ldr r3, [r4, #40]
11810
+ mov r0, r5
11811
+ ldr r1, [sp, #44]
1132411812 add r1, r1, r3
1132511813 bl FlashReadDpDataOutCmd
11326
- mov r0, r4
11327
- ldr r3, [sp, #8]
11328
- ldr r2, [sp, #36]
11814
+ ldr r3, [sp, #12]
11815
+ mov r0, r5
11816
+ ldr r1, [sp, #32]
1132911817 add r3, r3, #36
11330
- add r3, r9, r3
11331
- ldr r1, [r3, #12]
11332
- str r1, [sp]
11333
- mov r1, r2
11818
+ add r3, fp, r3
11819
+ ldr r2, [r3, #12]
11820
+ str r2, [sp]
11821
+ ldr r2, [sp, #20]
1133411822 ldr r3, [r3, #8]
11335
- ldr r2, [sp, #16]
1133611823 bl NandcXferData
1133711824 cmn r0, #1
11338
- ldr ip, [sp, #32]
11339
- mov r8, r0
11340
- moveq r5, #0
11341
-.L1937:
11342
- mov r0, r4
11343
- str ip, [sp, #32]
11825
+ mov r9, r0
11826
+ moveq r6, #0
11827
+.L1924:
11828
+ mov r0, r5
1134411829 bl NandcFlashDeCs
11345
- ldr ip, [sp, #32]
11346
- ldrb r3, [sp, #28] @ zero_extendqisi2
11347
- cmn ip, #1
11348
- strb r3, [r6, #8]
11349
- bne .L1944
11350
- ldrb r3, [r6, #2252] @ zero_extendqisi2
11830
+ ldrb r3, [sp, #36] @ zero_extendqisi2
11831
+ cmn r7, #1
11832
+ strb r3, [r4, #44]
11833
+ bne .L1925
11834
+ ldrb r3, [r4, #2256] @ zero_extendqisi2
1135111835 cmp r3, #0
11352
- bne .L1939
11353
-.L1943:
11354
- ldr r5, [r10, #1696]
11355
- cmp r5, #0
11356
- bne .L1940
11357
- b .L1996
11358
-.L1939:
11359
- ldr r3, [r6, #80]
11360
- mov r0, r4
11836
+ bne .L1926
11837
+.L1930:
11838
+ ldr r6, [r10, #1704]
11839
+ cmp r6, #0
11840
+ bne .L1927
11841
+ ldr r3, [r8, #12]
11842
+ mov r0, r5
11843
+ ldr r2, [r8, #8]
1136111844 ldr r1, [sp, #44]
11362
- ldr r5, [r3, #304]
11845
+ bl FlashReadRawPage
11846
+ mov r7, r0
11847
+.L1931:
11848
+ cmp r7, #256
11849
+ cmnne r7, #1
11850
+ ldreq r3, [sp, #12]
11851
+ movne r3, #0
11852
+ ldrne r2, [sp, #12]
11853
+ streq r7, [fp, r3]
11854
+ strne r3, [fp, r2]
11855
+ ldr r3, [sp, #12]
11856
+ ldr r3, [fp, r3]
11857
+ cmn r3, #1
11858
+ bne .L1938
11859
+ ldr r1, [r8, #4]
11860
+ ldrb r2, [r4, #2316] @ zero_extendqisi2
11861
+ ldr r0, .L1979+16
11862
+ bl printk
11863
+ ldr r1, [r8, #12]
11864
+ cmp r1, #0
11865
+ beq .L1938
11866
+ mov r3, #4
11867
+ ldr r0, .L1979+20
11868
+ mov r2, r3
11869
+ bl rknand_print_hex
11870
+.L1938:
11871
+ cmp r6, #0
11872
+ beq .L1940
11873
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
11874
+ add r3, r3, r3, lsl #1
11875
+ cmp r9, r3, asr #2
11876
+ bls .L1941
11877
+ ldr r3, [r10, #1704]
11878
+ cmp r3, #0
11879
+ moveq r9, #256
11880
+.L1941:
11881
+ ldr r3, [sp, #12]
11882
+ cmp r9, #256
11883
+ cmnne r9, #1
11884
+ movne r2, #0
11885
+ add r3, r3, #36
11886
+ streq r9, [fp, r3]
11887
+ strne r2, [fp, r3]
11888
+.L1940:
11889
+ ldr r3, [sp, #8]
11890
+ add r3, r3, r6
11891
+ str r3, [sp, #8]
11892
+ ldr r3, [sp, #16]
11893
+ cmp r3, #0
11894
+ beq .L1913
11895
+ ldrb r3, [r4, #152] @ zero_extendqisi2
11896
+ cmp r3, #0
11897
+ beq .L1913
11898
+ mov r0, r5
11899
+ bl flash_exit_slc_mode
11900
+.L1913:
11901
+ ldr r3, [sp, #8]
11902
+ add r3, r3, #1
11903
+ str r3, [sp, #8]
11904
+ b .L1910
11905
+.L1926:
11906
+ ldr r3, [r4, #88]
11907
+ mov r0, r5
11908
+ ldr r1, [sp, #44]
11909
+ ldr r6, [r3, #304]
1136311910 mov r3, #1
1136411911 str r3, [sp]
11365
- ldr r2, [r7, #8]
11366
- ldr r3, [r7, #12]
11912
+ ldr r3, [r8, #12]
11913
+ ldr r2, [r8, #8]
1136711914 bl FlashDdrTunningRead
1136811915 cmn r0, #1
11369
- mov ip, r0
11370
- beq .L1942
11371
- ldrb r3, [r6, #2312] @ zero_extendqisi2
11916
+ mov r7, r0
11917
+ beq .L1929
11918
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
1137211919 cmp r0, r3, lsr #1
11373
- bls .L1962
11374
-.L1942:
11375
- ubfx r0, r5, #8, #8
11376
- str ip, [sp, #32]
11920
+ bls .L1946
11921
+.L1929:
11922
+ ubfx r0, r6, #8, #8
1137711923 bl NandcSetDdrPara
11378
- ldr ip, [sp, #32]
11379
- cmn ip, #1
11380
- beq .L1943
11381
- b .L1962
11382
-.L1940:
11383
- mov r0, r4
11924
+ cmn r7, #1
11925
+ beq .L1930
11926
+.L1946:
11927
+ mov r6, #0
11928
+.L1925:
11929
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
11930
+ add r3, r3, r3, lsl #1
11931
+ cmp r7, r3, asr #2
11932
+ bls .L1931
11933
+ ldr r3, [r10, #1704]
11934
+ cmp r3, #0
11935
+ moveq r7, #256
11936
+ b .L1931
11937
+.L1927:
11938
+ ldr r3, [r8, #12]
11939
+ mov r0, r5
11940
+ ldr r2, [r8, #8]
1138411941 ldr r1, [sp, #44]
11385
- ldr r2, [r7, #8]
11386
- ldr r3, [r7, #12]
11387
- blx r5
11942
+ blx r6
1138811943 cmn r0, #1
11389
- mov ip, r0
11390
- bne .L1964
11391
- ldr r3, [r6, #44]
11944
+ mov r7, r0
11945
+ bne .L1948
11946
+ ldr r3, [r4, #48]
1139211947 ldrb r3, [r3, #19] @ zero_extendqisi2
1139311948 sub r3, r3, #1
1139411949 cmp r3, #7
11395
- bhi .L1946
11396
- mov r0, r4
11397
- ldrb r1, [r6, #1211] @ zero_extendqisi2
11398
- ldr r2, .L1997+12
11950
+ bhi .L1932
1139911951 mov r3, #0
11952
+ ldr r2, .L1979+12
11953
+ ldrb r1, [r4, #1217] @ zero_extendqisi2
11954
+ mov r0, r5
1140011955 bl HynixSetRRPara
11401
-.L1946:
11956
+.L1932:
11957
+ ldr r3, [r8, #12]
11958
+ mov r0, r5
11959
+ ldr r2, [r8, #8]
1140211960 ldr r1, [sp, #44]
11403
- mov r0, r4
11404
- ldr r2, [r7, #8]
11405
- ldr r3, [r7, #12]
1140611961 bl FlashReadRawPage
11407
- ldr r1, [r7, #4]
11408
- ldrb r2, [r6, #2312] @ zero_extendqisi2
11409
- mov ip, r0
11410
- ldr r0, .L1997+16
11411
- mov r3, ip
11412
- str ip, [sp, #32]
11962
+ ldrb r2, [r4, #2316] @ zero_extendqisi2
11963
+ mov r7, r0
11964
+ mov r3, r0
11965
+ ldr r1, [r8, #4]
11966
+ ldr r0, .L1979+24
1141311967 bl printk
11414
- ldr ip, [sp, #32]
11415
- cmn ip, #1
11416
- bne .L1964
11417
- ldrb r5, [r6, #144] @ zero_extendqisi2
11418
- cmp r5, #0
11419
- beq .L1945
11420
- ldr r3, [sp, #12]
11421
- mov r0, r4
11968
+ cmn r7, #1
11969
+ bne .L1948
11970
+ ldrb r6, [r4, #152] @ zero_extendqisi2
11971
+ cmp r6, #0
11972
+ beq .L1931
11973
+ ldr r3, [sp, #16]
11974
+ mov r0, r5
1142211975 cmp r3, #0
11423
- beq .L1947
11976
+ beq .L1933
1142411977 bl flash_enter_slc_mode
11425
- b .L1948
11426
-.L1947:
11427
- bl flash_exit_slc_mode
11978
+.L1934:
11979
+ ldr r6, [r10, #1704]
11980
+ mov r0, r5
11981
+ ldr r3, [r8, #12]
11982
+ ldr r2, [r8, #8]
11983
+ ldr r1, [sp, #44]
11984
+ blx r6
11985
+ mov r7, r0
1142811986 .L1948:
11429
- ldr ip, [r10, #1696]
11430
- mov r0, r4
11431
- ldr r1, [sp, #44]
11432
- ldr r2, [r7, #8]
11433
- ldr r3, [r7, #12]
11434
- blx ip
11435
- mov ip, r0
11436
- b .L1964
11437
-.L1996:
11438
- mov r0, r4
11439
- ldr r1, [sp, #44]
11440
- ldr r2, [r7, #8]
11441
- ldr r3, [r7, #12]
11442
- bl FlashReadRawPage
11443
- mov ip, r0
11444
- b .L1945
11445
-.L1962:
11446
- mov r5, #0
11447
-.L1944:
11448
- ldrb r3, [r6, #2312] @ zero_extendqisi2
11449
- add r3, r3, r3, asl #1
11450
- cmp ip, r3, asr #2
11451
- bls .L1945
11452
- ldr r3, [r10, #1696]
11453
- cmp r3, #0
11454
- moveq ip, #256
11455
- b .L1945
11456
-.L1964:
11457
- mov r5, #0
11458
-.L1945:
11459
- cmp ip, #256
11460
- cmnne ip, #1
11461
- ldreq r3, [sp, #8]
11462
- movne r3, #0
11463
- ldrne r2, [sp, #8]
11464
- streq ip, [r9, r3]
11465
- strne r3, [r9, r2]
11466
- ldr r3, [sp, #8]
11467
- ldr r3, [r9, r3]
11468
- cmn r3, #1
11469
- bne .L1952
11470
- ldr r1, [r7, #4]
11471
- ldr r0, .L1997+20
11472
- ldrb r2, [r6, #2312] @ zero_extendqisi2
11473
- bl printk
11474
- ldr r1, [r7, #12]
11475
- cmp r1, #0
11476
- beq .L1952
11477
- mov r2, #4
11478
- ldr r0, .L1997+24
11479
- mov r3, r2
11480
- bl rknand_print_hex
11481
-.L1952:
11482
- cmp r5, #0
11483
- beq .L1954
11484
- ldrb r3, [r6, #2312] @ zero_extendqisi2
11485
- add r3, r3, r3, asl #1
11486
- cmp r8, r3, asr #2
11487
- bls .L1955
11488
- ldr r3, [r10, #1696]
11489
- cmp r3, #0
11490
- moveq r8, #256
11491
-.L1955:
11492
- ldr r3, [sp, #8]
11493
- cmp r8, #256
11494
- cmnne r8, #1
11495
- add r3, r3, #36
11496
- movne r2, #0
11497
- streq r8, [r9, r3]
11498
- strne r2, [r9, r3]
11499
-.L1954:
11500
- ldr r3, [sp, #12]
11501
- add fp, fp, r5
11502
- cmp r3, #0
11503
- beq .L1926
11504
- ldrb r3, [r6, #144] @ zero_extendqisi2
11505
- cmp r3, #0
11506
- beq .L1926
11507
- mov r0, r4
11987
+ mov r6, #0
11988
+ b .L1931
11989
+.L1933:
1150811990 bl flash_exit_slc_mode
11509
-.L1926:
11510
- add fp, fp, #1
11511
- b .L1923
11512
-.L1995:
11513
- mov r0, #0
11514
-.L1992:
11515
- add sp, sp, #52
11516
- @ sp needed
11517
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11518
-.L1998:
11991
+ b .L1934
11992
+.L1980:
1151911993 .align 2
11520
-.L1997:
11521
- .word .LANCHOR1
11994
+.L1979:
1152211995 .word .LANCHOR0
11996
+ .word .LANCHOR1
1152311997 .word .LANCHOR2
11524
- .word .LANCHOR0+1214
11525
- .word .LC102
11998
+ .word .LANCHOR0+1220
1152611999 .word .LC99
1152712000 .word .LC101
12001
+ .word .LC102
1152812002 .fnend
1152912003 .size FlashReadPages, .-FlashReadPages
1153012004 .align 2
1153112005 .global FlashLoadFactorBbt
12006
+ .syntax unified
12007
+ .arm
12008
+ .fpu softvfp
1153212009 .type FlashLoadFactorBbt, %function
1153312010 FlashLoadFactorBbt:
1153412011 .fnstart
1153512012 @ args = 0, pretend = 0, frame = 56
1153612013 @ frame_needed = 0, uses_anonymous_args = 0
11537
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12014
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1153812015 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1153912016 mov r2, #16
11540
- ldr r4, .L2012
12017
+ ldr r8, .L1993
1154112018 .pad #60
1154212019 sub sp, sp, #60
11543
- ldr r0, .L2012+4
1154412020 mov r1, #0
11545
- ldr r10, .L2012+8
11546
- mov r5, #0
11547
- ldrh r3, [r4, #130]
1154812021 mvn fp, #0
11549
- ldrh r6, [r4, #128]
12022
+ ldr r10, .L1993+4
12023
+ mov r5, #0
12024
+ ldrh r3, [r8, #136]
1155012025 mov r9, r5
11551
- mov r8, r4
12026
+ ldrh r6, [r8, #138]
12027
+ ldr r0, .L1993+8
1155212028 smulbb r6, r6, r3
1155312029 bl ftl_memset
11554
- ldr r3, [r10, #1720]
12030
+ ldr r3, [r10, #1728]
1155512031 uxth r6, r6
11556
- add r2, r6, fp
11557
- str r3, [sp, #32]
11558
- uxth r3, r2
1155912032 str r5, [sp, #28]
11560
- str r3, [sp, #4]
11561
-.L2000:
11562
- ldrb r3, [r8, #2230] @ zero_extendqisi2
12033
+ str r3, [sp, #32]
12034
+ add r3, r6, fp
12035
+ uxth r3, r3
12036
+ str r3, [sp, #8]
12037
+.L1982:
12038
+ ldrb r3, [r8, #2234] @ zero_extendqisi2
1156312039 uxtb r7, r5
1156412040 cmp r3, r7
11565
- bls .L2011
11566
- mul ip, r6, r7
11567
- ldr r4, [sp, #4]
11568
- sub r3, r6, #12
11569
-.L2001:
11570
- cmp r4, r3
11571
- ble .L2003
11572
- add r2, ip, r4
11573
- mov r1, #1
11574
- add r0, sp, #20
11575
- str r3, [sp, #12]
11576
- mov r2, r2, asl #10
11577
- str r2, [sp, #24]
11578
- mov r2, r1
11579
- str ip, [sp, #8]
11580
- bl FlashReadPages
11581
- ldr r2, [sp, #20]
11582
- ldr ip, [sp, #8]
11583
- cmn r2, #1
11584
- ldr r3, [sp, #12]
11585
- beq .L2002
11586
- ldr r2, [r10, #1720]
11587
- ldrh r1, [r2]
11588
- movw r2, #61664
11589
- cmp r1, r2
11590
- bne .L2002
11591
- mov r1, r7
11592
- ldr r0, .L2012+12
11593
- mov r2, r4
11594
- mov r7, r7, asl #1
11595
- bl printk
11596
- ldr r3, .L2012+4
11597
- add r9, r9, #1
11598
- strh r4, [r3, r7] @ movhi
11599
- uxth r9, r9
11600
- b .L2003
11601
-.L2002:
11602
- sub r4, r4, #1
11603
- uxth r4, r4
11604
- b .L2001
11605
-.L2003:
11606
- ldrb r3, [r8, #2230] @ zero_extendqisi2
11607
- add r5, r5, #1
11608
- cmp r3, r9
11609
- moveq fp, #0
11610
- b .L2000
11611
-.L2011:
12041
+ bhi .L1988
1161212042 mov r0, fp
1161312043 add sp, sp, #60
1161412044 @ sp needed
11615
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11616
-.L2013:
12045
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12046
+.L1988:
12047
+ ldr r4, [sp, #8]
12048
+ mul r3, r7, r6
12049
+ sub r2, r6, #12
12050
+ str r2, [sp, #4]
12051
+.L1983:
12052
+ ldr r2, [sp, #4]
12053
+ cmp r4, r2
12054
+ ble .L1985
12055
+ add r2, r4, r3
12056
+ add r0, sp, #20
12057
+ lsl r2, r2, #10
12058
+ str r3, [sp, #12]
12059
+ str r2, [sp, #24]
12060
+ mov r2, #1
12061
+ mov r1, r2
12062
+ bl FlashReadPages
12063
+ ldr r2, [sp, #20]
12064
+ ldr r3, [sp, #12]
12065
+ cmn r2, #1
12066
+ beq .L1984
12067
+ ldr r2, [r10, #1728]
12068
+ ldrh r1, [r2]
12069
+ movw r2, #61664
12070
+ cmp r1, r2
12071
+ bne .L1984
12072
+ mov r1, r7
12073
+ mov r2, r4
12074
+ ldr r0, .L1993+12
12075
+ add r9, r9, #1
12076
+ bl printk
12077
+ uxth r9, r9
12078
+ ldr r3, .L1993+8
12079
+ lsl r7, r7, #1
12080
+ strh r4, [r3, r7] @ movhi
12081
+.L1985:
12082
+ ldrb r3, [r8, #2234] @ zero_extendqisi2
12083
+ add r5, r5, #1
12084
+ cmp r3, r9
12085
+ moveq fp, #0
12086
+ b .L1982
12087
+.L1984:
12088
+ sub r4, r4, #1
12089
+ uxth r4, r4
12090
+ b .L1983
12091
+.L1994:
1161712092 .align 2
11618
-.L2012:
12093
+.L1993:
1161912094 .word .LANCHOR0
11620
- .word .LANCHOR2+1736
1162112095 .word .LANCHOR2
12096
+ .word .LANCHOR2+1742
1162212097 .word .LC103
1162312098 .fnend
1162412099 .size FlashLoadFactorBbt, .-FlashLoadFactorBbt
1162512100 .align 2
1162612101 .global FlashProgSlc2KPages
12102
+ .syntax unified
12103
+ .arm
12104
+ .fpu softvfp
1162712105 .type FlashProgSlc2KPages, %function
1162812106 FlashProgSlc2KPages:
1162912107 .fnstart
11630
- @ args = 0, pretend = 0, frame = 56
12108
+ @ args = 0, pretend = 0, frame = 48
1163112109 @ frame_needed = 0, uses_anonymous_args = 0
11632
- ldr r3, .L2044
11633
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12110
+ ldr r3, .L2023
12111
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1163412112 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
11635
- .pad #68
11636
- sub sp, sp, #68
11637
- ldr r8, .L2044+4
11638
- mov r6, r1
11639
- ldrb r3, [r3, #481] @ zero_extendqisi2
11640
- mov r9, r2
12113
+ mov r10, r1
12114
+ ldr r9, .L2023+4
12115
+ .pad #60
12116
+ sub sp, sp, #60
12117
+ mov r8, r2
1164112118 mov r4, r0
11642
- mov r10, r0
12119
+ ldrb fp, [r3, #477] @ zero_extendqisi2
12120
+ mov r6, r0
1164312121 mov r7, #0
11644
- mov fp, r8
11645
- str r3, [sp, #12]
11646
-.L2015:
12122
+.L1996:
12123
+ cmp r7, r10
12124
+ bne .L2002
12125
+ ldr r5, .L2023+8
12126
+ mov r6, #0
12127
+ ldr r9, .L2023+12
12128
+.L2003:
1164712129 cmp r7, r6
11648
- beq .L2042
11649
- rsb r3, r7, r6
11650
- add r2, sp, #20
11651
- mov r0, r10
11652
- mov r1, r9
12130
+ bne .L2010
12131
+ mov r0, #0
12132
+ add sp, sp, #60
12133
+ @ sp needed
12134
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12135
+.L2002:
12136
+ sub r3, r10, r7
12137
+ add r2, sp, #12
1165312138 uxtb r3, r3
12139
+ mov r1, r8
12140
+ mov r0, r6
1165412141 str r3, [sp]
11655
- add r3, sp, #24
12142
+ add r3, sp, #16
1165612143 bl LogAddr2PhyAddr
11657
- ldrb r2, [r8, #2230] @ zero_extendqisi2
11658
- ldr r3, [sp, #24]
11659
- cmp r3, r2
11660
- mvncs r3, #0
11661
- strcs r3, [r10]
11662
- bcs .L2017
11663
- add r3, r8, r3
11664
- ldrb r5, [r3, #2232] @ zero_extendqisi2
12144
+ ldrb r2, [r9, #2234] @ zero_extendqisi2
12145
+ ldr r3, [sp, #16]
12146
+ cmp r2, r3
12147
+ mvnls r3, #0
12148
+ strls r3, [r6]
12149
+ bls .L1998
12150
+ add r3, r9, r3
12151
+ ldrb r5, [r3, #2236] @ zero_extendqisi2
1166512152 mov r0, r5
1166612153 bl NandcWaitFlashReady
1166712154 mov r0, r5
1166812155 bl NandcFlashCs
1166912156 mov r0, r5
11670
- ldr r1, [sp, #20]
12157
+ ldr r1, [sp, #12]
1167112158 bl FlashProgFirstCmd
11672
- ldr r3, [r10, #12]
12159
+ ldr r3, [r6, #12]
12160
+ mov r2, fp
1167312161 mov r1, #1
1167412162 mov r0, r5
11675
- ldr r2, [sp, #12]
1167612163 str r3, [sp]
11677
- ldr r3, [r10, #8]
12164
+ ldr r3, [r6, #8]
1167812165 bl NandcXferData
1167912166 mov r0, r5
11680
- ldr r1, [sp, #20]
12167
+ ldr r1, [sp, #12]
1168112168 bl FlashProgSecondCmd
1168212169 mov r0, r5
1168312170 bl NandcWaitFlashReady
1168412171 mov r0, r5
11685
- ldr r1, [sp, #20]
12172
+ ldr r1, [sp, #12]
1168612173 bl FlashReadStatus
11687
- ldr r3, [sp, #20]
1168812174 sbfx r0, r0, #0, #1
11689
- str r0, [r10]
12175
+ ldr r1, [sp, #12]
12176
+ str r0, [r6]
1169012177 mov r0, r5
11691
- ldr r1, [r8, #4]
12178
+ ldr r3, [r9, #40]
1169212179 add r1, r1, r3
1169312180 bl FlashProgFirstCmd
11694
- ldr r3, [r10, #8]
11695
- ldr r2, [r10, #12]
12181
+ ldr r3, [r6, #8]
1169612182 mov r1, #1
11697
- cmp r3, #0
12183
+ ldr r2, [r6, #12]
1169812184 mov r0, r5
12185
+ cmp r3, #0
1169912186 addne r3, r3, #2048
1170012187 cmp r2, #0
1170112188 addne r2, r2, #8
1170212189 str r2, [sp]
11703
- ldr r2, [sp, #12]
12190
+ mov r2, fp
1170412191 bl NandcXferData
11705
- ldr r1, [fp, #4]
12192
+ ldr r3, [r9, #40]
1170612193 mov r0, r5
11707
- ldr r3, [sp, #20]
12194
+ ldr r1, [sp, #12]
1170812195 add r1, r1, r3
1170912196 bl FlashProgSecondCmd
1171012197 mov r0, r5
1171112198 bl NandcWaitFlashReady
1171212199 mov r0, r5
11713
- ldr r1, [sp, #20]
12200
+ ldr r1, [sp, #12]
1171412201 bl FlashReadStatus
1171512202 tst r0, #1
1171612203 mov r0, r5
1171712204 mvnne r3, #0
11718
- strne r3, [r10]
12205
+ strne r3, [r6]
1171912206 bl NandcFlashDeCs
11720
-.L2017:
12207
+.L1998:
1172112208 add r7, r7, #1
11722
- add r10, r10, #36
11723
- b .L2015
11724
-.L2042:
11725
- ldr r5, .L2044+8
11726
- mov r7, #0
11727
- mov r8, r5
11728
-.L2022:
11729
- cmp r7, r6
11730
- beq .L2043
12209
+ add r6, r6, #36
12210
+ b .L1996
12211
+.L2010:
1173112212 ldr r3, [r4]
1173212213 cmn r3, #1
11733
- bne .L2023
12214
+ bne .L2004
1173412215 ldr r1, [r4, #4]
11735
- ldr r0, .L2044+12
12216
+ ldr r0, .L2023+16
1173612217 bl printk
11737
- b .L2024
11738
-.L2023:
11739
- rsb r3, r7, r6
11740
- mov r1, r9
11741
- add r2, sp, #20
11742
- mov r0, r4
12218
+.L2005:
12219
+ add r6, r6, #1
12220
+ add r4, r4, #36
12221
+ b .L2003
12222
+.L2004:
12223
+ sub r3, r7, r6
12224
+ add r2, sp, #12
1174312225 uxtb r3, r3
12226
+ mov r1, r8
12227
+ mov r0, r4
1174412228 str r3, [sp]
11745
- add r3, sp, #24
12229
+ add r3, sp, #16
1174612230 bl LogAddr2PhyAddr
11747
- ldr r2, [r5, #1724]
12231
+ ldr r2, [r5, #1732]
1174812232 mov r3, #0
1174912233 mov lr, r4
12234
+ add ip, sp, #20
1175012235 str r3, [r2]
11751
- ldr r2, [r5, #1728]
12236
+ ldr r2, [r5, #1736]
1175212237 str r3, [r2]
1175312238 ldmia lr!, {r0, r1, r2, r3}
11754
- add ip, sp, #28
1175512239 stmia ip!, {r0, r1, r2, r3}
1175612240 ldmia lr!, {r0, r1, r2, r3}
1175712241 stmia ip!, {r0, r1, r2, r3}
11758
- add r0, sp, #28
12242
+ mov r2, r8
1175912243 ldr r3, [lr]
1176012244 mov r1, #1
11761
- mov r2, r9
12245
+ add r0, sp, #20
1176212246 str r3, [ip]
11763
- ldr r3, [r5, #1724]
11764
- str r3, [sp, #36]
11765
- ldr r3, [r5, #1728]
11766
- str r3, [sp, #40]
12247
+ ldr r3, [r5, #1732]
12248
+ str r3, [sp, #28]
12249
+ ldr r3, [r5, #1736]
12250
+ str r3, [sp, #32]
1176712251 bl FlashReadPages
11768
- ldr r10, [sp, #28]
12252
+ ldr r10, [sp, #20]
1176912253 cmn r10, #1
11770
- bne .L2025
11771
- ldr r0, .L2044+16
12254
+ bne .L2006
1177212255 ldr r1, [r4, #4]
12256
+ ldr r0, .L2023+20
1177312257 bl printk
1177412258 str r10, [r4]
11775
-.L2025:
11776
- ldr r10, [sp, #28]
12259
+.L2006:
12260
+ ldr r10, [sp, #20]
1177712261 cmp r10, #256
11778
- bne .L2026
11779
- ldr r0, .L2044+20
12262
+ bne .L2007
1178012263 ldr r1, [r4, #4]
12264
+ ldr r0, .L2023+24
1178112265 bl printk
1178212266 str r10, [r4]
11783
-.L2026:
12267
+.L2007:
1178412268 ldr r3, [r4, #12]
1178512269 cmp r3, #0
11786
- beq .L2027
12270
+ beq .L2008
1178712271 ldr r2, [r3]
11788
- ldr r3, [r8, #1728]
12272
+ ldr r3, [r5, #1736]
1178912273 ldr r3, [r3]
1179012274 cmp r2, r3
11791
- beq .L2027
11792
- ldr r0, .L2044+24
12275
+ beq .L2008
1179312276 ldr r1, [r4, #4]
12277
+ ldr r0, .L2023+28
1179412278 bl printk
1179512279 mvn r3, #0
1179612280 str r3, [r4]
11797
-.L2027:
12281
+.L2008:
1179812282 ldr r3, [r4, #8]
1179912283 cmp r3, #0
11800
- beq .L2024
12284
+ beq .L2005
1180112285 ldr r2, [r3]
11802
- ldr r3, [r8, #1724]
12286
+ ldr r3, [r5, #1732]
1180312287 ldr r3, [r3]
1180412288 cmp r2, r3
11805
- beq .L2024
11806
- ldr r0, .L2044+28
12289
+ beq .L2005
1180712290 ldr r1, [r4, #4]
12291
+ mov r0, r9
1180812292 bl printk
1180912293 mvn r3, #0
1181012294 str r3, [r4]
12295
+ b .L2005
1181112296 .L2024:
11812
- add r7, r7, #1
11813
- add r4, r4, #36
11814
- b .L2022
11815
-.L2043:
11816
- mov r0, #0
11817
- add sp, sp, #68
11818
- @ sp needed
11819
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11820
-.L2045:
1182112297 .align 2
11822
-.L2044:
12298
+.L2023:
1182312299 .word .LANCHOR1
1182412300 .word .LANCHOR0
1182512301 .word .LANCHOR2
12302
+ .word .LC108
1182612303 .word .LC104
1182712304 .word .LC105
1182812305 .word .LC106
1182912306 .word .LC107
11830
- .word .LC108
1183112307 .fnend
1183212308 .size FlashProgSlc2KPages, .-FlashProgSlc2KPages
1183312309 .align 2
1183412310 .global FtlLoadFactoryBbt
12311
+ .syntax unified
12312
+ .arm
12313
+ .fpu softvfp
1183512314 .type FtlLoadFactoryBbt, %function
1183612315 FtlLoadFactoryBbt:
1183712316 .fnstart
1183812317 @ args = 0, pretend = 0, frame = 8
1183912318 @ frame_needed = 0, uses_anonymous_args = 0
11840
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
12319
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1184112320 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1184212321 .pad #12
1184312322 mov r7, #0
11844
- ldr r5, .L2058
11845
- ldr r6, .L2058+4
12323
+ ldr r5, .L2036
12324
+ ldr r6, .L2036+4
1184612325 ldr r3, [r5, #-524]
11847
- sub r9, r6, #76
1184812326 ldr r8, [r5, #-500]
1184912327 sub r10, r6, #120
11850
- mov fp, r9
11851
- str r3, [r5, #1760]
11852
- str r8, [r5, #1764]
11853
-.L2047:
12328
+ sub r9, r6, #78
12329
+ str r3, [r5, #1768]
12330
+ str r8, [r5, #1772]
12331
+.L2026:
1185412332 ldrh r3, [r10]
1185512333 cmp r7, r3
11856
- bcs .L2057
11857
- ldrh r4, [r9]
11858
- mvn r3, #0
11859
- movw ip, #61664
11860
- strh r3, [r6, #2]! @ movhi
11861
- add r4, r4, r3
11862
- uxth r4, r4
11863
-.L2048:
11864
- ldrh r3, [fp]
11865
- sub r2, r3, #16
11866
- cmp r4, r2
11867
- ble .L2050
11868
- mla r3, r3, r7, r4
11869
- mov r1, #1
11870
- ldr r0, .L2058+8
11871
- mov r2, r1
11872
- str ip, [sp, #4]
11873
- mov r3, r3, asl #10
11874
- str r3, [r5, #1756]
11875
- bl FlashReadPages
11876
- ldr r3, [r5, #1752]
11877
- cmn r3, #1
11878
- ldr ip, [sp, #4]
11879
- beq .L2049
11880
- ldrh r3, [r8]
11881
- cmp r3, ip
11882
- streqh r4, [r6] @ movhi
11883
- beq .L2050
11884
-.L2049:
11885
- sub r4, r4, #1
11886
- uxth r4, r4
11887
- b .L2048
11888
-.L2050:
11889
- add r7, r7, #1
11890
- b .L2047
11891
-.L2057:
12334
+ bcc .L2031
1189212335 mov r0, #0
1189312336 add sp, sp, #12
1189412337 @ sp needed
11895
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11896
-.L2059:
12338
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12339
+.L2031:
12340
+ ldrh r4, [r9]
12341
+ mvn r3, #0
12342
+ ldr fp, .L2036+8
12343
+ strh r3, [r6, #2]! @ movhi
12344
+ add r4, r4, r3
12345
+ movw r3, #61664
12346
+ uxth r4, r4
12347
+.L2027:
12348
+ ldrh r2, [r9]
12349
+ sub r1, r2, #16
12350
+ cmp r4, r1
12351
+ ble .L2029
12352
+ mla r2, r7, r2, r4
12353
+ str r3, [sp, #4]
12354
+ mov r0, fp
12355
+ lsl r2, r2, #10
12356
+ str r2, [r5, #1764]
12357
+ mov r2, #1
12358
+ mov r1, r2
12359
+ bl FlashReadPages
12360
+ ldr r2, [r5, #1760]
12361
+ ldr r3, [sp, #4]
12362
+ cmn r2, #1
12363
+ beq .L2028
12364
+ ldrh r2, [r8]
12365
+ cmp r2, r3
12366
+ bne .L2028
12367
+ strh r4, [r6] @ movhi
12368
+.L2029:
12369
+ add r7, r7, #1
12370
+ b .L2026
12371
+.L2028:
12372
+ sub r4, r4, #1
12373
+ uxth r4, r4
12374
+ b .L2027
12375
+.L2037:
1189712376 .align 2
11898
-.L2058:
12377
+.L2036:
1189912378 .word .LANCHOR2
11900
- .word .LANCHOR0+2462
11901
- .word .LANCHOR2+1752
12379
+ .word .LANCHOR0+2466
12380
+ .word .LANCHOR2+1760
1190212381 .fnend
1190312382 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
1190412383 .align 2
1190512384 .global FtlGetLastWrittenPage
12385
+ .syntax unified
12386
+ .arm
12387
+ .fpu softvfp
1190612388 .type FtlGetLastWrittenPage, %function
1190712389 FtlGetLastWrittenPage:
1190812390 .fnstart
1190912391 @ args = 0, pretend = 0, frame = 104
1191012392 @ frame_needed = 0, uses_anonymous_args = 0
12393
+ ldr r3, .L2051
1191112394 cmp r1, #1
11912
- ldr r3, .L2073
11913
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
12395
+ movweq r2, #2392
12396
+ movwne r2, #2390
12397
+ push {r4, r5, r6, r7, r8, lr}
1191412398 .save {r4, r5, r6, r7, r8, lr}
11915
- movweq r2, #2390
11916
- movwne r2, #2388
12399
+ lsl r8, r0, #10
12400
+ ldrh r5, [r3, r2]
1191712401 .pad #104
1191812402 sub sp, sp, #104
11919
- ldrh r4, [r3, r2]
11920
- mov r8, r1
1192112403 add r3, sp, #40
11922
- mov r6, r0, asl #10
11923
- sub r5, r4, #1
12404
+ mov r2, r1
1192412405 str r3, [sp, #16]
11925
- add r0, sp, #4
12406
+ mov r7, r1
12407
+ sub r5, r5, #1
12408
+ mov r6, #0
12409
+ sxth r5, r5
1192612410 mov r1, #1
11927
- uxth r5, r5
11928
- mov r2, r8
11929
- mov r7, #0
11930
- str r7, [sp, #12]
11931
- sxth r3, r5
11932
- orr r3, r3, r6
12411
+ add r0, sp, #4
12412
+ str r6, [sp, #12]
12413
+ orr r3, r5, r8
1193312414 str r3, [sp, #8]
1193412415 bl FlashReadPages
1193512416 ldr r3, [sp, #40]
1193612417 cmn r3, #1
11937
- bne .L2063
11938
-.L2064:
11939
- sxth r4, r7
11940
- sxth r3, r5
11941
- cmp r4, r3
11942
- bgt .L2063
11943
- add r4, r4, r3
11944
- add r0, sp, #4
12418
+ bne .L2041
12419
+.L2042:
12420
+ cmp r6, r5
12421
+ ble .L2045
12422
+.L2041:
12423
+ mov r0, r5
12424
+ add sp, sp, #104
12425
+ @ sp needed
12426
+ pop {r4, r5, r6, r7, r8, pc}
12427
+.L2045:
12428
+ add r3, r6, r5
12429
+ mov r2, r7
12430
+ add r3, r3, r3, lsr #31
1194512431 mov r1, #1
11946
- mov r2, r8
11947
- add r4, r4, r4, lsr #31
11948
- mov r4, r4, asr #1
12432
+ add r0, sp, #4
12433
+ asr r4, r3, #1
1194912434 sxth r3, r4
11950
- orr r3, r3, r6
12435
+ orr r3, r3, r8
1195112436 str r3, [sp, #8]
1195212437 bl FlashReadPages
1195312438 ldr r3, [sp, #40]
1195412439 cmn r3, #1
11955
- bne .L2065
12440
+ bne .L2043
1195612441 ldr r3, [sp, #44]
1195712442 cmn r3, #1
11958
- bne .L2065
12443
+ bne .L2043
1195912444 ldr r3, [sp, #4]
1196012445 cmn r3, #1
1196112446 subne r4, r4, #1
11962
- uxthne r5, r4
11963
- bne .L2064
11964
-.L2065:
11965
- add r3, r4, #1
11966
- uxth r7, r3
11967
- b .L2064
11968
-.L2063:
11969
- sxth r0, r5
11970
- add sp, sp, #104
11971
- @ sp needed
11972
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
11973
-.L2074:
12447
+ sxthne r5, r4
12448
+ bne .L2042
12449
+.L2043:
12450
+ add r4, r4, #1
12451
+ sxth r6, r4
12452
+ b .L2042
12453
+.L2052:
1197412454 .align 2
11975
-.L2073:
12455
+.L2051:
1197612456 .word .LANCHOR0
1197712457 .fnend
1197812458 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
1197912459 .align 2
1198012460 .global FtlLoadBbt
12461
+ .syntax unified
12462
+ .arm
12463
+ .fpu softvfp
1198112464 .type FtlLoadBbt, %function
1198212465 FtlLoadBbt:
1198312466 .fnstart
1198412467 @ args = 0, pretend = 0, frame = 0
1198512468 @ frame_needed = 0, uses_anonymous_args = 0
11986
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
11987
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
11988
- ldr r4, .L2108
11989
- ldr r7, .L2108+4
11990
- ldr r8, .L2108+8
12469
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
12470
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
12471
+ ldr r4, .L2085
12472
+ ldr r5, .L2085+4
1199112473 ldr r3, [r4, #-524]
11992
- mov r9, r4
11993
- ldr r6, [r4, #-500]
11994
- str r3, [r4, #1760]
11995
- str r6, [r4, #1764]
12474
+ add r8, r4, #1760
12475
+ ldr r7, [r4, #-500]
12476
+ ldr r9, .L2085+8
12477
+ str r3, [r4, #1768]
12478
+ str r7, [r4, #1772]
1199612479 bl FtlBbtMemInit
11997
- movw r3, #2386
11998
- ldrh r5, [r7, r3]
11999
- sub r5, r5, #1
12000
- uxth r5, r5
12001
-.L2076:
12002
- ldrh r3, [r8]
12480
+ movw r3, #2388
12481
+ ldrh r6, [r5, r3]
12482
+ sub r6, r6, #1
12483
+ uxth r6, r6
12484
+.L2054:
12485
+ ldrh r3, [r9]
1200312486 sub r3, r3, #48
12004
- cmp r5, r3
12005
- ble .L2079
12006
- mov r1, #1
12007
- ldr r0, .L2108+12
12008
- mov r2, r1
12009
- mov r3, r5, asl #10
12010
- str r3, [r4, #1756]
12487
+ cmp r6, r3
12488
+ ble .L2057
12489
+ lsl r3, r6, #10
12490
+ mov r2, #1
12491
+ mov r1, r2
12492
+ mov r0, r8
12493
+ str r3, [r4, #1764]
1201112494 bl FlashReadPages
12012
- ldr r3, [r4, #1752]
12495
+ ldr r3, [r4, #1760]
1201312496 cmn r3, #1
12014
- bne .L2077
12015
- ldr r3, [r9, #1756]
12016
- mov r1, #1
12017
- ldr r0, .L2108+12
12018
- mov r2, r1
12497
+ bne .L2055
12498
+ ldr r3, [r4, #1764]
12499
+ mov r2, #1
12500
+ mov r1, r2
12501
+ mov r0, r8
1201912502 add r3, r3, #1
12020
- str r3, [r9, #1756]
12503
+ str r3, [r4, #1764]
1202112504 bl FlashReadPages
12022
-.L2077:
12023
- ldr r3, [r4, #1752]
12505
+.L2055:
12506
+ ldr r3, [r4, #1760]
1202412507 cmn r3, #1
12025
- beq .L2078
12026
- ldrh r2, [r6]
12508
+ beq .L2056
12509
+ ldrh r2, [r7]
1202712510 movw r3, #61649
1202812511 cmp r2, r3
12029
- bne .L2078
12030
- movw r3, #2452
12031
- strh r5, [r7, r3] @ movhi
12032
- ldr r3, [r6, #4]
12033
- str r3, [r7, #2460]
12034
- ldr r3, .L2108+16
12035
- ldrh r2, [r6, #8]
12512
+ bne .L2056
12513
+ movw r3, #2456
12514
+ strh r6, [r5, r3] @ movhi
12515
+ ldr r3, [r7, #4]
12516
+ str r3, [r5, #2464]
12517
+ ldr r3, .L2085+12
12518
+ ldrh r2, [r7, #8]
1203612519 strh r2, [r3, #4] @ movhi
12037
- b .L2079
12038
-.L2078:
12039
- sub r5, r5, #1
12040
- uxth r5, r5
12041
- b .L2076
12042
-.L2079:
12043
- movw r9, #2452
12520
+.L2057:
12521
+ movw r8, #2456
1204412522 movw r2, #65535
12045
- ldrh r3, [r7, r9]
12046
- ldr r8, .L2108+4
12523
+ ldrh r3, [r5, r8]
12524
+ ldr r6, .L2085+12
1204712525 cmp r3, r2
12048
- ldr r5, .L2108+16
12049
- beq .L2093
12050
- ldrh r3, [r5, #4]
12526
+ beq .L2071
12527
+ ldrh r3, [r6, #4]
1205112528 cmp r3, r2
12052
- beq .L2083
12053
- mov r1, #1
12054
- ldr r0, .L2108+12
12055
- mov r2, r1
12056
- mov r3, r3, asl #10
12057
- str r3, [r4, #1756]
12529
+ beq .L2061
12530
+ lsl r3, r3, #10
12531
+ mov r2, #1
12532
+ mov r1, r2
12533
+ ldr r0, .L2085+16
12534
+ str r3, [r4, #1764]
1205812535 bl FlashReadPages
12059
- ldr r3, [r4, #1752]
12536
+ ldr r3, [r4, #1760]
1206012537 cmn r3, #1
12061
- beq .L2083
12062
- ldrh r2, [r6]
12538
+ beq .L2061
12539
+ ldrh r2, [r7]
1206312540 movw r3, #61649
1206412541 cmp r2, r3
12065
- bne .L2083
12066
- ldr r3, [r6, #4]
12067
- ldr r2, [r8, #2460]
12542
+ bne .L2061
12543
+ ldr r3, [r7, #4]
12544
+ ldr r2, [r5, #2464]
1206812545 cmp r3, r2
12069
- strhi r3, [r8, #2460]
12070
- ldrhih r2, [r5, #4]
12071
- ldrhih r3, [r6, #8]
12072
- strhih r2, [r8, r9] @ movhi
12073
- strhih r3, [r5, #4] @ movhi
12074
-.L2083:
12075
- movw r3, #2452
12546
+ ldrhhi r2, [r6, #4]
12547
+ strhi r3, [r5, #2464]
12548
+ ldrhhi r3, [r7, #8]
12549
+ strhhi r2, [r5, r8] @ movhi
12550
+ strhhi r3, [r6, #4] @ movhi
12551
+.L2061:
12552
+ ldr r9, .L2085+16
12553
+ movw r3, #2456
1207612554 mov r1, #1
12077
- ldrh r0, [r7, r3]
12078
- movw r8, #61649
12555
+ ldrh r0, [r5, r3]
12556
+ movw r10, #61649
1207912557 bl FtlGetLastWrittenPage
12080
- uxth r7, r0
12558
+ sxth r8, r0
1208112559 add r0, r0, #1
12082
- strh r0, [r5, #2] @ movhi
12083
-.L2085:
12084
- sxth r3, r7
12085
- cmp r3, #0
12086
- blt .L2090
12087
- ldrh r2, [r5]
12088
- mov r1, #1
12089
- ldr r0, .L2108+12
12090
- orr r3, r3, r2, asl #10
12091
- str r3, [r4, #1756]
12092
- ldr r3, [r4, #-524]
12093
- mov r2, r1
12094
- str r3, [r4, #1760]
12095
- bl FlashReadPages
12096
- ldr r3, [r4, #1752]
12097
- cmn r3, #1
12098
- beq .L2086
12560
+ strh r0, [r6, #2] @ movhi
12561
+.L2063:
12562
+ cmp r8, #0
12563
+ blt .L2068
1209912564 ldrh r3, [r6]
12100
- cmp r3, r8
12101
- bne .L2086
12102
-.L2090:
12103
- ldrh r2, [r6, #10]
12104
- ldrh r0, [r6, #12]
12105
- ldr r3, .L2108+4
12106
- strh r2, [r5, #6] @ movhi
12107
- movw r2, #65535
12108
- cmp r0, r2
12109
- bne .L2087
12110
- b .L2088
12111
-.L2086:
12112
- sub r7, r7, #1
12113
- uxth r7, r7
12114
- b .L2085
12115
-.L2087:
12116
- ldr r2, [r3, #2316]
12117
- cmp r0, r2
12118
- beq .L2088
12119
- movw r1, #2330
12120
- ldrh r3, [r3, r1]
12121
- mov r3, r3, lsr #2
12565
+ mov r2, #1
12566
+ mov r1, r2
12567
+ mov r0, r9
12568
+ orr r3, r8, r3, lsl #10
12569
+ str r3, [r4, #1764]
12570
+ ldr r3, [r4, #-524]
12571
+ str r3, [r4, #1768]
12572
+ bl FlashReadPages
12573
+ ldr r3, [r4, #1760]
12574
+ cmn r3, #1
12575
+ beq .L2064
12576
+ ldrh r3, [r7]
12577
+ cmp r3, r10
12578
+ bne .L2064
12579
+.L2068:
12580
+ ldrh r3, [r7, #10]
12581
+ ldrh r0, [r7, #12]
12582
+ strh r3, [r6, #6] @ movhi
12583
+ movw r3, #65535
1212212584 cmp r0, r3
12123
- cmpcc r2, r3
12124
- bcs .L2088
12125
- bl FtlSysBlkNumInit
12126
-.L2088:
12127
- ldr r6, .L2108+20
12585
+ bne .L2065
12586
+.L2066:
12587
+ ldr r6, .L2085+20
1212812588 mov r5, #0
12129
- ldr r8, .L2108+24
12589
+ ldr r8, .L2085+24
1213012590 sub r7, r6, #134
12131
-.L2091:
12591
+.L2069:
1213212592 ldrh r3, [r7]
1213312593 cmp r5, r3
12134
- bcs .L2107
12135
- ldrh r2, [r8]
12136
- ldr r1, [r4, #1760]
12137
- ldr r0, [r6, #4]!
12138
- mov r2, r2, asl #2
12139
- mla r1, r5, r2, r1
12140
- bl ftl_memcpy
12141
- add r5, r5, #1
12142
- b .L2091
12143
-.L2107:
12594
+ bcc .L2070
1214412595 mov r0, #0
12145
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
12146
-.L2093:
12596
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
12597
+.L2056:
12598
+ sub r6, r6, #1
12599
+ uxth r6, r6
12600
+ b .L2054
12601
+.L2064:
12602
+ sub r8, r8, #1
12603
+ sxth r8, r8
12604
+ b .L2063
12605
+.L2065:
12606
+ ldr r2, [r5, #2320]
12607
+ cmp r0, r2
12608
+ beq .L2066
12609
+ movw r3, #2334
12610
+ ldrh r3, [r5, r3]
12611
+ lsr r3, r3, #2
12612
+ cmp r2, r3
12613
+ cmpcc r0, r3
12614
+ bcs .L2066
12615
+ bl FtlSysBlkNumInit
12616
+ b .L2066
12617
+.L2070:
12618
+ ldrh r2, [r8]
12619
+ ldr r1, [r4, #1768]
12620
+ ldr r0, [r6, #4]!
12621
+ lsl r2, r2, #2
12622
+ mla r1, r5, r2, r1
12623
+ add r5, r5, #1
12624
+ bl ftl_memcpy
12625
+ b .L2069
12626
+.L2071:
1214712627 mvn r0, #0
12148
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
12149
-.L2109:
12628
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
12629
+.L2086:
1215012630 .align 2
12151
-.L2108:
12631
+.L2085:
1215212632 .word .LANCHOR2
1215312633 .word .LANCHOR0
12154
- .word .LANCHOR0+2386
12155
- .word .LANCHOR2+1752
12156
- .word .LANCHOR0+2452
12157
- .word .LANCHOR0+2476
12634
+ .word .LANCHOR0+2388
12635
+ .word .LANCHOR0+2456
12636
+ .word .LANCHOR2+1760
12637
+ .word .LANCHOR0+2480
1215812638 .word .LANCHOR2-436
1215912639 .fnend
1216012640 .size FtlLoadBbt, .-FtlLoadBbt
1216112641 .align 2
1216212642 .global FtlScanSysBlk
12643
+ .syntax unified
12644
+ .arm
12645
+ .fpu softvfp
1216312646 .type FtlScanSysBlk, %function
1216412647 FtlScanSysBlk:
1216512648 .fnstart
12166
- @ args = 0, pretend = 0, frame = 32
12649
+ @ args = 0, pretend = 0, frame = 24
1216712650 @ frame_needed = 0, uses_anonymous_args = 0
12168
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12651
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1216912652 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12170
- mov r5, #0
12171
- ldr r7, .L2196
12172
- mov r1, r5
12173
- ldr r4, .L2196+4
12174
- .pad #36
12175
- sub sp, sp, #36
12176
- movw r6, #2408
12177
- ldr r2, [r7, #2416]
12178
- sub r3, r4, #388
12653
+ mov r6, #0
12654
+ ldr r5, .L2166
12655
+ movw r3, #2438
12656
+ mov r1, r6
12657
+ .pad #28
12658
+ sub sp, sp, #28
12659
+ ldr r4, .L2166+4
12660
+ movw r8, #2412
12661
+ ldr r2, [r5, #2420]
12662
+ strh r6, [r5, r3] @ movhi
12663
+ sub r7, r4, #388
1217912664 ldr r0, [r4, #-444]
12180
- mov r8, r4
12181
- strh r5, [r3] @ movhi
12182
- movw r3, #2434
12183
- mov r2, r2, asl #2
12184
- strh r5, [r7, r3] @ movhi
12665
+ strh r6, [r7] @ movhi
12666
+ lsl r2, r2, #2
1218512667 bl ftl_memset
12186
- ldr r2, [r7, #2416]
12187
- mov r1, r5
12668
+ ldr r2, [r5, #2420]
12669
+ mov r1, r6
1218812670 ldr r0, [r4, #-472]
12189
- mov r2, r2, asl #1
12671
+ lsl r2, r2, #1
1219012672 bl ftl_memset
12191
- ldrh r2, [r7, r6]
12192
- mov r1, r5
12673
+ ldrh r2, [r5, r8]
12674
+ mov r1, r6
1219312675 ldr r0, [r4, #-460]
12194
- mov r2, r2, asl #2
12676
+ lsl r2, r2, #2
1219512677 bl ftl_memset
12196
- ldrh r2, [r7, r6]
12197
- ldr r0, [r7, #2436]
12198
- mov r1, r5
12199
- mov r2, r2, asl #1
12678
+ ldrh r2, [r5, r8]
12679
+ mov r1, r6
12680
+ ldr r0, [r5, #2440]
12681
+ lsl r2, r2, #1
1220012682 bl ftl_memset
12201
- ldr r0, .L2196+8
12202
- mov r1, #255
12683
+ sub r0, r4, #3296
1220312684 mov r2, #16
12685
+ mov r1, #255
12686
+ sub r0, r0, #4
1220412687 bl ftl_memset
12205
- movw r3, #2328
12206
- ldrh r3, [r7, r3]
12207
- str r7, [sp, #16]
12208
- mov r7, r4
12209
- str r3, [sp, #4]
12210
-.L2111:
12211
- ldr r3, .L2196+12
12212
- ldr r2, [sp, #4]
12213
- ldr r1, .L2196
12688
+ movw r3, #2332
12689
+ str r7, [sp]
12690
+ ldrh fp, [r5, r3]
12691
+ str r5, [sp, #4]
12692
+.L2088:
12693
+ ldr r3, .L2166+8
12694
+ ldr r2, .L2166
1221412695 ldrh r3, [r3]
12215
- cmp r3, r2
12216
- mov r0, r1
12217
- bls .L2152
12218
- add r3, r1, #2320
12219
- add r1, r1, #2400
12220
- ldr r0, [r4, #-2692]
12221
- mov r5, #0
12222
- ldrh ip, [r3]
12223
- sub r6, r1, #52
12224
- ldr r3, [r4, #-536]
12225
- mov fp, r5
12226
- ldr r2, [r4, #-2696]
12227
- mov r9, #36
12696
+ cmp r3, fp
12697
+ bls .L2128
12698
+ ldr r1, [r4, #-2692]
12699
+ mov r6, #0
12700
+ ldr r3, .L2166+12
12701
+ mov r5, r6
12702
+ ldr r7, [r4, #-536]
12703
+ mov r8, #36
12704
+ str r1, [sp, #8]
12705
+ ldr r1, .L2166+16
12706
+ ldrh r2, [r3]
12707
+ ldr r3, [r4, #-2696]
1222812708 ldrh r10, [r1]
12229
- str r0, [sp, #8]
12230
-.L2153:
12231
- uxth r1, r5
12232
- cmp r1, ip
12233
- bcs .L2191
12234
- ldr r1, [sp, #4]
12235
- ldrb r0, [r6, r5] @ zero_extendqisi2
12236
- str r2, [sp, #28]
12237
- str r3, [sp, #24]
12238
- str ip, [sp, #20]
12709
+ sub r9, r1, #52
12710
+ b .L2129
12711
+.L2090:
12712
+ mov r1, fp
12713
+ ldrb r0, [r9, r6] @ zero_extendqisi2
12714
+ str r3, [sp, #20]
12715
+ str r2, [sp, #16]
1223912716 bl V2P_block
1224012717 str r0, [sp, #12]
1224112718 bl FtlBbmIsBadBlock
1224212719 cmp r0, #0
12720
+ ldr r2, [sp, #16]
12721
+ ldr r3, [sp, #20]
12722
+ bne .L2089
1224312723 ldr r1, [sp, #12]
12244
- ldr ip, [sp, #20]
12245
- ldr r3, [sp, #24]
12246
- ldr r2, [sp, #28]
12247
- bne .L2112
12248
- mla r0, r9, fp, r3
12249
- mov r1, r1, asl #10
12250
- stmib r0, {r1, r2}
12251
- mul r1, r10, fp
12252
- add lr, r1, #3
12253
- cmp r1, #0
12254
- movlt r1, lr
12255
- ldr lr, [sp, #8]
12256
- bic r1, r1, #3
12257
- add r1, lr, r1
12258
- str r1, [r0, #12]
12259
- add r0, fp, #1
12260
- uxth fp, r0
12261
-.L2112:
12724
+ mla r0, r8, r5, r7
12725
+ lsl r1, r1, #10
12726
+ stmib r0, {r1, r3}
12727
+ mul r1, r10, r5
1226212728 add r5, r5, #1
12263
- b .L2153
12264
-.L2191:
12265
- cmp fp, #0
12266
- beq .L2115
12267
- ldr r0, [r4, #-536]
12268
- mov r1, fp
12729
+ uxth r5, r5
12730
+ add ip, r1, #3
12731
+ cmp r1, #0
12732
+ movlt r1, ip
12733
+ ldr ip, [sp, #8]
12734
+ bic r1, r1, #3
12735
+ add r1, ip, r1
12736
+ str r1, [r0, #12]
12737
+.L2089:
12738
+ add r6, r6, #1
12739
+.L2129:
12740
+ uxth r1, r6
12741
+ cmp r2, r1
12742
+ bhi .L2090
12743
+ cmp r5, #0
12744
+ bne .L2091
12745
+.L2127:
12746
+ add r3, fp, #1
12747
+ uxth fp, r3
12748
+ b .L2088
12749
+.L2091:
12750
+ mov r8, #0
1226912751 mov r2, #1
12752
+ mov r1, r5
12753
+ mov r0, r7
1227012754 bl FlashReadPages
12271
- mov r3, #0
12272
-.L2189:
12273
- str r3, [sp, #8]
12274
- ldrh r3, [sp, #8]
12275
- cmp r3, fp
12276
- bcs .L2115
12277
- ldr r3, [sp, #8]
12755
+.L2092:
12756
+ uxth r3, r8
12757
+ cmp r5, r3
12758
+ bls .L2127
1227812759 mov r9, #36
12279
- mul r9, r9, r3
1228012760 ldr r3, [r4, #-536]
12761
+ mul r9, r9, r8
1228112762 add r2, r3, r9
1228212763 ldr r3, [r3, r9]
12283
- ldr r5, [r2, #4]
12764
+ ldr r6, [r2, #4]
12765
+ ldr r7, [r2, #12]
1228412766 cmn r3, #1
12285
- ldr r6, [r2, #12]
12286
- ubfx r5, r5, #10, #16
12287
- bne .L2118
12767
+ ubfx r6, r6, #10, #16
12768
+ bne .L2095
1228812769 mov r10, #16
12289
- movw ip, #65535
12290
-.L2117:
12770
+.L2097:
1229112771 ldr r0, [r4, #-536]
12292
- mov r1, #1
12293
- mov r2, r1
12294
- str ip, [sp, #12]
12772
+ mov r2, #1
12773
+ mov r1, r2
1229512774 add r0, r0, r9
1229612775 ldr r3, [r0, #4]
1229712776 add r3, r3, #1
1229812777 str r3, [r0, #4]
1229912778 bl FlashReadPages
12300
- ldrh r3, [r6]
12301
- ldr ip, [sp, #12]
12302
- cmp r3, ip
12303
- ldreq r3, [r8, #-536]
12304
- mvneq r2, #0
12305
- streq r2, [r3, r9]
12306
- beq .L2118
12307
-.L2119:
12308
- ldr r3, [r7, #-536]
12779
+ ldrh r3, [r7]
12780
+ movw r2, #65535
12781
+ cmp r3, r2
12782
+ ldr r3, [r4, #-536]
12783
+ bne .L2094
12784
+ mvn r2, #0
12785
+ str r2, [r3, r9]
12786
+ ldr r3, [r4, #-536]
12787
+ ldr r3, [r3, r9]
12788
+ cmp r3, r2
12789
+ beq .L2096
12790
+.L2095:
12791
+ ldr r2, [r4, #-3332]
12792
+ ldr r3, [r7, #4]
12793
+ cmn r2, #1
12794
+ beq .L2098
12795
+ cmp r2, r3
12796
+ bhi .L2099
12797
+.L2098:
12798
+ cmn r3, #1
12799
+ addne r2, r3, #1
12800
+ strne r2, [r4, #-3332]
12801
+.L2099:
12802
+ ldrh r2, [r7]
12803
+ movw r1, #61604
12804
+ cmp r2, r1
12805
+ beq .L2101
12806
+ bhi .L2102
12807
+ movw r3, #61574
12808
+ cmp r2, r3
12809
+ beq .L2103
12810
+.L2100:
12811
+ add r8, r8, #1
12812
+ b .L2092
12813
+.L2094:
1230912814 ldr r3, [r3, r9]
1231012815 cmn r3, #1
12311
- bne .L2118
12816
+ bne .L2095
1231212817 sub r10, r10, #1
1231312818 uxth r10, r10
1231412819 cmp r10, #0
12315
- bne .L2117
12316
-.L2118:
12317
- ldr r3, [r7, #-536]
12318
- ldr r3, [r3, r9]
12319
- cmn r3, #1
12320
- beq .L2121
12321
- ldr r2, [r7, #-3332]
12322
- ldr r3, [r6, #4]
12323
- cmn r2, #1
12324
- beq .L2122
12325
- cmp r2, r3
12326
- bhi .L2123
12327
-.L2122:
12328
- cmn r3, #1
12329
- addne r2, r3, #1
12330
- strne r2, [r8, #-3332]
12331
-.L2123:
12332
- ldrh r2, [r6]
12333
- movw r1, #61604
12334
- cmp r2, r1
12335
- beq .L2125
12336
- bhi .L2126
12337
- movw r3, #61574
12338
- cmp r2, r3
12339
- bne .L2124
12340
- ldr r2, .L2196+16
12341
- ldr lr, [r8, #-460]
12342
- ldrh ip, [r2]
12343
- ldrh r1, [r2, #26]
12344
- sub r0, ip, #1
12345
- rsb r2, r1, r0
12346
- str r2, [sp, #12]
12347
- uxth r3, r0
12348
- b .L2139
12349
-.L2126:
12820
+ bne .L2097
12821
+.L2096:
12822
+ ldr r3, .L2166
12823
+ ldrb r1, [r3, #152] @ zero_extendqisi2
12824
+ cmp r1, #0
12825
+ bne .L2165
12826
+.L2125:
12827
+ mov r0, r6
12828
+ bl FtlFreeSysBlkQueueIn
12829
+ b .L2100
12830
+.L2102:
1235012831 movw r3, #61634
1235112832 cmp r2, r3
12352
- beq .L2128
12833
+ beq .L2104
1235312834 movw r3, #65535
1235412835 cmp r2, r3
12355
- moveq r0, r5
12356
- beq .L2190
12357
- b .L2124
12358
-.L2128:
12359
- ldr r3, [sp, #16]
12360
- ldr ip, .L2196+20
12361
- ldr r9, [r4, #-444]
12362
- ldr lr, [r3, #2416]
12363
- ldrh r2, [ip]
12364
- uxth r1, lr
12365
- sub r3, r1, #1
12366
- rsb r1, r2, r1
12367
- sub r1, r1, #1
12368
- uxth r3, r3
12369
- sxth r1, r1
12370
- str r1, [sp, #20]
12371
-.L2130:
12372
- ldr r1, [sp, #20]
12373
- sxth r0, r3
12374
- cmp r0, r1
12375
- ble .L2192
12376
- mov r10, r0, asl #2
12377
- ldr r1, [r6, #4]
12378
- str r10, [sp, #12]
12379
- ldr r10, [r9, r0, asl #2]
12380
- cmp r1, r10
12381
- bls .L2131
12382
- ldr r1, [r9]
12383
- cmp r1, #0
12384
- bne .L2132
12385
- cmp r2, lr
12386
- addne r2, r2, #1
12387
- strneh r2, [ip] @ movhi
12388
-.L2132:
12389
- uxth r9, r3
12836
+ bne .L2100
12837
+.L2165:
1239012838 mov r1, #0
12391
-.L2133:
12392
- uxth r2, r1
12393
- cmp r2, r9
12394
- bcs .L2193
12395
- ldr lr, [r7, #-444]
12396
- sxth r2, r2
12397
- add r1, r1, #1
12398
- add r10, lr, r2, asl #2
12399
- ldr r10, [r10, #4]
12400
- str r10, [lr, r2, asl #2]
12401
- mov r2, r2, asl #1
12402
- ldr lr, [r7, #-472]
12403
- add r10, lr, r2
12404
- ldrh r10, [r10, #2]
12405
- strh r10, [lr, r2] @ movhi
12406
- b .L2133
12407
-.L2193:
12839
+ b .L2125
12840
+.L2104:
12841
+ ldr r3, [sp, #4]
12842
+ ldr r2, [sp]
12843
+ ldr ip, [r4, #-444]
12844
+ ldr r0, [r3, #2420]
12845
+ ldrh r2, [r2]
12846
+ uxth r1, r0
12847
+ sub r3, r1, #1
12848
+ sub r1, r1, r2
12849
+ sub r1, r1, #1
12850
+ sxth r3, r3
12851
+ sxth r1, r1
12852
+.L2106:
12853
+ cmp r3, r1
12854
+ bgt .L2112
12855
+ cmp r3, #0
12856
+ bge .L2142
12857
+ b .L2100
12858
+.L2112:
12859
+ ldr r10, [r7, #4]
12860
+ lsl lr, r3, #2
12861
+ ldr r9, [ip, r3, lsl #2]
12862
+ cmp r10, r9
12863
+ bls .L2107
12864
+ ldr r1, [ip]
12865
+ cmp r1, #0
12866
+ bne .L2108
12867
+ cmp r0, r2
12868
+ ldrne r1, .L2166+20
12869
+ addne r2, r2, #1
12870
+ strhne r2, [r1] @ movhi
12871
+.L2108:
12872
+ uxth ip, r3
12873
+ mov r1, #0
12874
+.L2109:
12875
+ uxth r0, r1
12876
+ sxth r2, r1
12877
+ cmp r0, ip
12878
+ bcc .L2110
12879
+ ldr r1, [r7, #4]
12880
+ cmp r3, #0
1240812881 ldr r2, [r4, #-444]
12409
- mov r0, r0, asl #1
12410
- ldr r1, [r6, #4]
12411
- ldr lr, [sp, #12]
1241212882 str r1, [r2, lr]
12413
- ldr r2, [r4, #-472]
12414
- strh r5, [r2, r0] @ movhi
12415
- sxth r0, r3
12416
- cmp r0, #0
12417
- bge .L2135
12418
- b .L2124
12419
-.L2131:
12420
- sub r3, r3, #1
12421
- uxth r3, r3
12422
- b .L2130
12423
-.L2192:
12424
- cmp r0, #0
12425
- bge .L2166
12426
- b .L2124
12427
-.L2135:
12428
- ldr r1, .L2196
12429
- ldrh r2, [ip]
12430
- ldr r1, [r1, #2416]
12431
- rsb r1, r2, r1
12883
+ lsl r2, r3, #1
12884
+ ldr r1, [r4, #-472]
12885
+ strh r6, [r1, r2] @ movhi
12886
+ blt .L2100
12887
+ ldr r2, [sp]
12888
+ ldr r1, .L2166
12889
+ ldrh r2, [r2]
12890
+ ldr r1, [r1, #2420]
12891
+ sub r1, r1, r2
1243212892 sub r1, r1, #1
1243312893 sxth r1, r1
12434
- cmp r0, r1
12435
- bgt .L2124
12436
-.L2166:
12437
- add r2, r2, #1
12438
- ldr r1, [r6, #4]
12439
- strh r2, [ip] @ movhi
12440
- sxth r3, r3
12441
- ldr r2, [r4, #-444]
12442
- str r1, [r2, r3, asl #2]
12443
- mov r3, r3, asl #1
12444
- ldr r2, [r4, #-472]
12445
- b .L2187
12446
-.L2145:
12447
- ldr r9, [lr, r2, asl #2]
12448
- mov r10, r2, asl #2
12449
- ldr r0, [r6, #4]
12450
- cmp r0, r9
12451
- bhi .L2194
12452
- sub r3, r3, #1
12453
- uxth r3, r3
12454
-.L2139:
12455
- ldr r0, [sp, #12]
12456
- sxth r2, r3
12457
- cmp r2, r0
12458
- bgt .L2145
12459
- b .L2144
12460
-.L2194:
12461
- ldr r0, [lr]
12462
- cmp r0, #0
12463
- bne .L2141
12464
- cmp r1, ip
12465
- addne r1, r1, #1
12466
- ldrne r0, .L2196+24
12467
- strneh r1, [r0] @ movhi
12468
-.L2141:
12469
- uxth lr, r3
12470
- mov r0, #0
12894
+ cmp r3, r1
12895
+ bgt .L2100
1247112896 .L2142:
12472
- uxth r1, r0
12473
- cmp r1, lr
12474
- bcs .L2195
12475
- ldr ip, [r4, #-460]
12476
- sxth r1, r1
12477
- add r0, r0, #1
12478
- add r9, ip, r1, asl #2
12897
+ ldr r1, [sp]
12898
+ add r2, r2, #1
12899
+ strh r2, [r1] @ movhi
12900
+ ldr r2, [r4, #-444]
12901
+ ldr r1, [r7, #4]
12902
+ str r1, [r2, r3, lsl #2]
12903
+ lsl r3, r3, #1
12904
+ ldr r2, [r4, #-472]
12905
+.L2163:
12906
+ strh r6, [r2, r3] @ movhi
12907
+ b .L2100
12908
+.L2110:
12909
+ ldr r0, [r4, #-444]
12910
+ add r1, r1, #1
12911
+ add r9, r0, r2, lsl #2
1247912912 ldr r9, [r9, #4]
12480
- str r9, [ip, r1, asl #2]
12481
- mov r1, r1, asl #1
12482
- ldr ip, .L2196
12483
- ldr ip, [ip, #2436]
12484
- add r9, ip, r1
12913
+ str r9, [r0, r2, lsl #2]
12914
+ lsl r2, r2, #1
12915
+ ldr r0, [r4, #-472]
12916
+ add r9, r0, r2
1248512917 ldrh r9, [r9, #2]
12486
- strh r9, [ip, r1] @ movhi
12487
- b .L2142
12488
-.L2195:
12489
- ldr r1, [r8, #-460]
12490
- mov r2, r2, asl #1
12491
- ldr r0, [r6, #4]
12492
- str r0, [r1, r10]
12493
- ldr r1, .L2196
12494
- ldr r1, [r1, #2436]
12495
- strh r5, [r1, r2] @ movhi
12496
-.L2144:
12918
+ strh r9, [r0, r2] @ movhi
12919
+ b .L2109
12920
+.L2107:
12921
+ sub r3, r3, #1
1249712922 sxth r3, r3
12923
+ b .L2106
12924
+.L2103:
12925
+ ldr r3, .L2166+24
12926
+ ldr r1, .L2166+28
12927
+ ldr lr, [r4, #-460]
12928
+ ldrh r2, [r3]
12929
+ ldrh r1, [r1]
12930
+ sub r0, r2, #1
12931
+ sxth r3, r0
12932
+ sub r0, r0, r1
12933
+.L2115:
12934
+ cmp r3, r0
12935
+ ble .L2120
12936
+ ldr r10, [r7, #4]
12937
+ lsl ip, r3, #2
12938
+ ldr r9, [lr, r3, lsl #2]
12939
+ cmp r10, r9
12940
+ bls .L2116
12941
+ sub r2, r2, r1
12942
+ ldr r0, [lr]
12943
+ clz r2, r2
12944
+ uxth r9, r3
12945
+ lsr r2, r2, #5
12946
+ cmp r0, #0
12947
+ orrne r2, r2, #1
12948
+ ldr r0, .L2166
12949
+ cmp r2, #0
12950
+ ldreq r2, .L2166+28
12951
+ addeq r1, r1, #1
12952
+ strheq r1, [r2] @ movhi
12953
+ mov r1, #0
12954
+.L2118:
12955
+ uxth lr, r1
12956
+ sxth r2, r1
12957
+ cmp lr, r9
12958
+ bcc .L2119
12959
+ ldr r1, [r7, #4]
12960
+ ldr r2, [r4, #-460]
12961
+ str r1, [r2, ip]
12962
+ lsl r2, r3, #1
12963
+ ldr r1, [r0, #2440]
12964
+ strh r6, [r1, r2] @ movhi
12965
+.L2120:
1249812966 cmp r3, #0
12499
- blt .L2124
12500
- ldr r0, .L2196+24
12967
+ blt .L2100
12968
+ ldr r0, .L2166+28
1250112969 ldrh r2, [r0, #-26]
1250212970 ldrh r1, [r0]
1250312971 sub r2, r2, #1
12504
- rsb r2, r1, r2
12972
+ sub r2, r2, r1
1250512973 sxth r2, r2
1250612974 cmp r3, r2
12507
- bgt .L2124
12975
+ bgt .L2100
1250812976 add r1, r1, #1
12509
- ldr r2, [r8, #-460]
12977
+ ldr r2, [r4, #-460]
1251012978 strh r1, [r0] @ movhi
12511
- ldr r1, [r6, #4]
12512
- str r1, [r2, r3, asl #2]
12513
- mov r3, r3, asl #1
12514
- ldr r2, .L2196
12515
- ldr r2, [r2, #2436]
12516
-.L2187:
12517
- strh r5, [r2, r3] @ movhi
12518
- b .L2124
12519
-.L2125:
12520
- ldr r2, .L2196+8
12979
+ ldr r1, [r7, #4]
12980
+ str r1, [r2, r3, lsl #2]
12981
+ lsl r3, r3, #1
12982
+ ldr r2, [sp, #4]
12983
+ ldr r2, [r2, #2440]
12984
+ b .L2163
12985
+.L2119:
12986
+ ldr lr, [r4, #-460]
12987
+ add r1, r1, #1
12988
+ add r10, lr, r2, lsl #2
12989
+ ldr r10, [r10, #4]
12990
+ str r10, [lr, r2, lsl #2]
12991
+ lsl r2, r2, #1
12992
+ ldr lr, [r0, #2440]
12993
+ add r10, lr, r2
12994
+ ldrh r10, [r10, #2]
12995
+ strh r10, [lr, r2] @ movhi
12996
+ b .L2118
12997
+.L2116:
12998
+ sub r3, r3, #1
12999
+ sxth r3, r3
13000
+ b .L2115
13001
+.L2101:
13002
+ ldr r2, .L2166+32
1252113003 movw r1, #65535
12522
- ldrh r0, [r2]
13004
+ mov r9, r2
13005
+ ldrh r0, [r9], #4
1252313006 cmp r0, r1
12524
- streqh r5, [r2] @ movhi
12525
- beq .L2188
13007
+ strheq r6, [r2] @ movhi
13008
+ beq .L2164
1252613009 ldrh r0, [r2, #4]
1252713010 cmp r0, r1
12528
- beq .L2147
13011
+ beq .L2123
1252913012 mov r1, #1
1253013013 bl FtlFreeSysBlkQueueIn
12531
-.L2147:
12532
- ldr r3, [r6, #4]
12533
- ldr r2, [r8, #-3292]
13014
+.L2123:
13015
+ ldr r3, [r7, #4]
13016
+ ldr r2, [r4, #-3292]
1253413017 cmp r2, r3
12535
- ldr r3, .L2196+8
12536
- strcsh r5, [r3, #4] @ movhi
12537
- bcs .L2124
12538
- ldrh r2, [r3]
12539
- strh r5, [r3] @ movhi
12540
- strh r2, [r3, #4] @ movhi
12541
- ldr r3, [r6, #4]
12542
-.L2188:
12543
- str r3, [r7, #-3292]
12544
- b .L2124
12545
-.L2121:
12546
- ldr r3, .L2196
12547
- mov r0, r5
12548
- ldrb r1, [r3, #144] @ zero_extendqisi2
12549
- cmp r1, #0
12550
- beq .L2149
12551
-.L2190:
12552
- mov r1, #0
12553
-.L2149:
12554
- bl FtlFreeSysBlkQueueIn
12555
-.L2124:
12556
- ldr r3, [sp, #8]
12557
- add r3, r3, #1
12558
- b .L2189
12559
-.L2115:
12560
- ldr r3, [sp, #4]
12561
- add r5, r3, #1
12562
- uxth r3, r5
12563
- str r3, [sp, #4]
12564
- b .L2111
12565
-.L2152:
12566
- ldr r3, .L2196+4
12567
- ldr ip, [r3, #-472]
12568
- ldrh r2, [ip]
12569
- cmp r2, #0
12570
- beq .L2154
12571
-.L2157:
12572
- ldr r0, [r0, #2436]
12573
- ldr r3, .L2196
12574
- ldrh r2, [r0]
12575
- cmp r2, #0
12576
- beq .L2155
12577
- b .L2178
12578
-.L2154:
12579
- sub r3, r3, #388
12580
- ldrh r3, [r3]
13018
+ strhcs r6, [r9] @ movhi
13019
+ bcs .L2100
13020
+ ldrh r3, [r9, #-4]
13021
+ strh r6, [r9, #-4] @ movhi
13022
+ strh r3, [r9] @ movhi
13023
+ ldr r3, [r7, #4]
13024
+.L2164:
13025
+ str r3, [r4, #-3292]
13026
+ b .L2100
13027
+.L2128:
13028
+ ldr r0, [r4, #-472]
13029
+ ldrh r3, [r0]
1258113030 cmp r3, #0
12582
- ldrne lr, [r1, #2416]
12583
- beq .L2157
12584
-.L2158:
12585
- uxth r3, r2
12586
- sxth r1, r3
12587
- cmp r1, lr
12588
- bcs .L2157
12589
- mov r5, r1, asl #1
12590
- add r2, r2, #1
12591
- ldrh r5, [ip, r5]
12592
- cmp r5, #0
12593
- beq .L2158
12594
- mov r6, #0
12595
-.L2159:
12596
- ldr ip, [r0, #2416]
12597
- sxth r2, r3
12598
- cmp r2, ip
12599
- bcs .L2157
12600
- ldr lr, [r4, #-472]
12601
- mov ip, r2, asl #1
12602
- rsb r5, r1, r2
12603
- add r3, r3, #1
12604
- ldrh r8, [lr, ip]
12605
- mov r7, r5, asl #1
12606
- uxth r3, r3
12607
- strh r8, [lr, r7] @ movhi
12608
- ldr lr, [r4, #-444]
12609
- ldr r2, [lr, r2, asl #2]
12610
- str r2, [lr, r5, asl #2]
12611
- ldr r2, [r4, #-472]
12612
- strh r6, [r2, ip] @ movhi
12613
- b .L2159
12614
-.L2155:
12615
- movw r1, #2434
12616
- ldrh r1, [r3, r1]
13031
+ beq .L2130
13032
+.L2133:
13033
+ ldr r0, [r2, #2440]
13034
+ ldrh r1, [r0]
1261713035 cmp r1, #0
12618
- movwne r1, #2408
12619
- ldrneh ip, [r3, r1]
12620
- beq .L2178
12621
-.L2162:
12622
- uxth r3, r2
13036
+ beq .L2131
13037
+.L2153:
13038
+ mov r0, #0
13039
+ add sp, sp, #28
13040
+ @ sp needed
13041
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13042
+.L2130:
13043
+ ldr r1, .L2166+20
13044
+ ldrh r1, [r1]
13045
+ cmp r1, #0
13046
+ ldrne ip, [r2, #2420]
13047
+ beq .L2133
13048
+.L2134:
1262313049 sxth r1, r3
1262413050 cmp r1, ip
12625
- bge .L2178
12626
- mov lr, r1, asl #1
12627
- add r2, r2, #1
13051
+ bcs .L2133
13052
+ lsl lr, r1, #1
13053
+ add r3, r3, #1
1262813054 ldrh lr, [r0, lr]
1262913055 cmp lr, #0
12630
- beq .L2162
12631
- ldr r0, .L2196
12632
- mov r7, #0
12633
- ldr r6, .L2196+16
12634
-.L2163:
12635
- ldrh ip, [r6]
12636
- sxth r2, r3
12637
- cmp r2, ip
12638
- bge .L2178
12639
- ldr lr, [r0, #2436]
12640
- mov ip, r2, asl #1
12641
- rsb r5, r1, r2
13056
+ beq .L2134
13057
+ mov r3, r1
13058
+ mov r5, #0
13059
+.L2135:
13060
+ ldr r0, [r2, #2420]
13061
+ cmp r3, r0
13062
+ bcs .L2133
13063
+ ldr ip, [r4, #-472]
13064
+ lsl r0, r3, #1
13065
+ sub lr, r3, r1
13066
+ lsl r6, lr, #1
13067
+ ldrh r7, [ip, r0]
13068
+ strh r7, [ip, r6] @ movhi
13069
+ ldr ip, [r4, #-444]
13070
+ ldr r6, [ip, r3, lsl #2]
1264213071 add r3, r3, #1
12643
- ldrh r9, [lr, ip]
12644
- mov r8, r5, asl #1
12645
- uxth r3, r3
12646
- strh r9, [lr, r8] @ movhi
12647
- ldr lr, [r4, #-460]
12648
- ldr r2, [lr, r2, asl #2]
12649
- str r2, [lr, r5, asl #2]
12650
- ldr r2, [r0, #2436]
12651
- strh r7, [r2, ip] @ movhi
12652
- b .L2163
12653
-.L2178:
12654
- mov r0, #0
12655
- add sp, sp, #36
12656
- @ sp needed
12657
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12658
-.L2197:
13072
+ sxth r3, r3
13073
+ str r6, [ip, lr, lsl #2]
13074
+ ldr ip, [r4, #-472]
13075
+ strh r5, [ip, r0] @ movhi
13076
+ b .L2135
13077
+.L2131:
13078
+ movw r3, #2438
13079
+ ldrh r3, [r2, r3]
13080
+ cmp r3, #0
13081
+ movwne r3, #2412
13082
+ ldrhne ip, [r2, r3]
13083
+ beq .L2153
13084
+.L2138:
13085
+ sxth r3, r1
13086
+ cmp r3, ip
13087
+ mov lr, r3
13088
+ bge .L2153
13089
+ lsl r5, r3, #1
13090
+ add r1, r1, #1
13091
+ ldrh r5, [r0, r5]
13092
+ cmp r5, #0
13093
+ beq .L2138
13094
+ ldr r5, .L2166+24
13095
+ mov r6, #0
13096
+.L2139:
13097
+ ldrh r1, [r5]
13098
+ cmp r3, r1
13099
+ bge .L2153
13100
+ ldr r0, [r2, #2440]
13101
+ lsl r1, r3, #1
13102
+ sub ip, r3, lr
13103
+ lsl r7, ip, #1
13104
+ ldrh r8, [r0, r1]
13105
+ strh r8, [r0, r7] @ movhi
13106
+ ldr r0, [r4, #-460]
13107
+ ldr r7, [r0, r3, lsl #2]
13108
+ add r3, r3, #1
13109
+ sxth r3, r3
13110
+ str r7, [r0, ip, lsl #2]
13111
+ ldr r0, [r2, #2440]
13112
+ strh r6, [r0, r1] @ movhi
13113
+ b .L2139
13114
+.L2167:
1265913115 .align 2
12660
-.L2196:
13116
+.L2166:
1266113117 .word .LANCHOR0
1266213118 .word .LANCHOR2
12663
- .word .LANCHOR2-3300
12664
- .word .LANCHOR0+2330
12665
- .word .LANCHOR0+2408
13119
+ .word .LANCHOR0+2334
13120
+ .word .LANCHOR0+2324
13121
+ .word .LANCHOR0+2402
1266613122 .word .LANCHOR2-388
12667
- .word .LANCHOR0+2434
13123
+ .word .LANCHOR0+2412
13124
+ .word .LANCHOR0+2438
13125
+ .word .LANCHOR2-3300
1266813126 .fnend
1266913127 .size FtlScanSysBlk, .-FtlScanSysBlk
1267013128 .align 2
1267113129 .global FtlLoadSysInfo
13130
+ .syntax unified
13131
+ .arm
13132
+ .fpu softvfp
1267213133 .type FtlLoadSysInfo, %function
1267313134 FtlLoadSysInfo:
1267413135 .fnstart
1267513136 @ args = 0, pretend = 0, frame = 8
1267613137 @ frame_needed = 0, uses_anonymous_args = 0
12677
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13138
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1267813139 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1267913140 mov r1, #0
12680
- ldr r4, .L2227
13141
+ ldr r4, .L2197
1268113142 .pad #36
1268213143 sub sp, sp, #36
12683
- ldr r6, .L2227+4
12684
- sub r7, r4, #3296
13144
+ ldr r5, .L2197+4
1268513145 ldr r3, [r4, #-524]
12686
- ldr r0, [r4, #-3544]
12687
- str r3, [r4, #1760]
13146
+ sub r7, r4, #3296
13147
+ ldr r0, [r4, #-3540]
13148
+ str r3, [r4, #1768]
1268813149 ldr r3, [r4, #-500]
12689
- str r3, [r4, #1764]
12690
- movw r3, #2328
12691
- ldrh r2, [r6, r3]
12692
- mov r2, r2, asl #1
13150
+ str r3, [r4, #1772]
13151
+ movw r3, #2332
13152
+ ldrh r2, [r5, r3]
13153
+ lsl r2, r2, #1
1269313154 bl ftl_memset
1269413155 ldrh r0, [r7, #-4]
1269513156 movw r3, #65535
1269613157 cmp r0, r3
12697
- bne .L2199
12698
-.L2210:
13158
+ bne .L2169
13159
+.L2180:
1269913160 mvn r0, #0
12700
- b .L2200
12701
-.L2199:
13161
+.L2168:
13162
+ add sp, sp, #36
13163
+ @ sp needed
13164
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13165
+.L2169:
1270213166 mov r1, #1
13167
+ add fp, r5, #2400
1270313168 bl FtlGetLastWrittenPage
12704
- ldr r3, .L2227+8
12705
- ldrh r9, [r7, #-4]
12706
- mov r7, r4
12707
- uxth r5, r0
13169
+ ldrsh r9, [r7, #-4]
13170
+ sub r8, r7, #4
13171
+ sxth r6, r0
1270813172 add r0, r0, #1
12709
- strh r0, [r3, #2] @ movhi
12710
-.L2201:
12711
- sxth r3, r5
12712
- cmp r3, #0
12713
- blt .L2209
12714
- sxth fp, r9
12715
- mov r1, #1
12716
- ldr r0, .L2227+12
12717
- mov r2, r1
12718
- orr r3, r3, fp, asl #10
12719
- str r3, [r4, #1756]
13173
+ strh r0, [r8, #2] @ movhi
13174
+.L2171:
13175
+ cmp r6, #0
13176
+ blt .L2179
13177
+ orr r3, r6, r9, lsl #10
13178
+ mov r2, #1
13179
+ mov r1, r2
13180
+ ldr r0, .L2197+8
13181
+ str r3, [r4, #1764]
1272013182 ldr r3, [r4, #-524]
12721
- str r3, [r4, #1760]
13183
+ str r3, [r4, #1768]
1272213184 bl FlashReadPages
12723
- ldrb r3, [r6] @ zero_extendqisi2
13185
+ ldrb r3, [r5, #36] @ zero_extendqisi2
1272413186 cmp r3, #0
12725
- beq .L2202
12726
- ldr r8, [r7, #1764]
13187
+ beq .L2172
13188
+ ldr r8, [r4, #1772]
1272713189 ldr r3, [r8, #12]
1272813190 cmp r3, #0
12729
- beq .L2202
12730
- ldr r2, [r7, #1760]
12731
- ldr r10, .L2227+16
1273213191 str r3, [sp, #28]
13192
+ beq .L2172
13193
+ ldr r2, [r4, #1768]
13194
+ ldrh r1, [fp]
1273313195 mov r0, r2
1273413196 str r2, [sp, #24]
12735
- ldrh r1, [r10]
1273613197 bl js_hash
1273713198 ldr r3, [sp, #28]
1273813199 cmp r3, r0
12739
- beq .L2202
12740
- cmp r5, #0
13200
+ beq .L2172
13201
+ cmp r6, #0
13202
+ bne .L2173
13203
+ mov r10, r7
1274113204 ldr r2, [sp, #24]
12742
- bne .L2203
12743
- ldr ip, .L2227+8
12744
- ldrh r1, [ip, #4]
12745
- cmp fp, r1
12746
- beq .L2203
12747
- ldr r0, [r8]
12748
- ldrh r1, [ip]
12749
- str ip, [sp, #24]
12750
- str r0, [sp]
12751
- ldr r0, [r8, #4]
12752
- str r0, [sp, #4]
12753
- ldr r0, [r8, #8]
13205
+ ldrh r1, [r10], #-4
13206
+ cmp r9, r1
13207
+ beq .L2173
13208
+ ldr r2, [r2]
13209
+ ldrh r1, [r7, #-4]
1275413210 str r3, [sp, #12]
12755
- str r0, [sp, #8]
12756
- ldr r3, [r2]
12757
- ldr r0, .L2227+20
12758
- str r3, [sp, #16]
12759
- ldr r2, [r7, #1752]
12760
- ldr r3, [r7, #1756]
13211
+ str r2, [sp, #16]
13212
+ ldr r3, [r8, #8]
13213
+ ldr r2, [r4, #1760]
13214
+ ldr r0, .L2197+12
13215
+ str r3, [sp, #8]
13216
+ ldr r3, [r8, #4]
13217
+ str r3, [sp, #4]
13218
+ ldr r3, [r8]
13219
+ str r3, [sp]
13220
+ ldr r3, [r4, #1764]
1276113221 bl printk
12762
- ldrh r5, [r10, #-8]
12763
- ldr ip, [sp, #24]
12764
- ldrh r9, [ip, #4]
12765
- b .L2205
12766
-.L2203:
13222
+ ldr r3, .L2197+16
13223
+ ldrsh r9, [r10, #4]
13224
+ ldrh r6, [r3]
13225
+.L2175:
13226
+ sub r6, r6, #1
13227
+ sxth r6, r6
13228
+ b .L2171
13229
+.L2173:
1276713230 mvn r3, #0
12768
- str r3, [r4, #1752]
12769
-.L2202:
12770
- ldr r3, [r4, #1752]
13231
+ str r3, [r4, #1760]
13232
+.L2172:
13233
+ ldr r3, [r4, #1760]
1277113234 cmn r3, #1
12772
- beq .L2205
12773
- ldr r3, [r7, #-524]
12774
- ldr r2, .L2227+24
13235
+ beq .L2175
13236
+ ldr r3, [r4, #-524]
13237
+ ldr r2, .L2197+20
1277513238 ldr r3, [r3]
1277613239 cmp r3, r2
12777
- bne .L2205
12778
- ldr r3, [r7, #-500]
13240
+ bne .L2175
13241
+ ldr r3, [r4, #-500]
1277913242 ldrh r2, [r3]
1278013243 movw r3, #61604
1278113244 cmp r2, r3
12782
- bne .L2205
12783
-.L2209:
12784
- ldr r5, .L2227
13245
+ bne .L2175
13246
+.L2179:
1278513247 mov r2, #48
12786
- ldr r1, [r4, #1760]
12787
- movw r8, #2328
12788
- sub r0, r5, #3600
12789
- ldr r7, .L2227+4
13248
+ ldr r1, [r4, #1768]
13249
+ movw r6, #2332
13250
+ ldr r0, .L2197+24
1279013251 bl ftl_memcpy
12791
- ldrh r2, [r6, r8]
12792
- ldr r1, [r4, #1760]
12793
- ldr r0, [r4, #-3544]
13252
+ ldrh r2, [r5, r6]
13253
+ ldr r1, [r4, #1768]
13254
+ ldr r0, [r4, #-3540]
13255
+ lsl r2, r2, #1
1279413256 add r1, r1, #48
12795
- mov r2, r2, asl #1
1279613257 bl ftl_memcpy
12797
- ldrh r2, [r6, r8]
12798
- ldr r1, [r4, #1760]
12799
- ldr r0, [r4, #-3368]
12800
- mov r3, r2, asl #1
12801
- mov r2, r2, lsr #3
12802
- add r3, r3, #51
13258
+ ldrh r1, [r5, r6]
13259
+ ldr r3, [r4, #1768]
13260
+ ldr r0, [r5, #32]
13261
+ lsr r2, r1, #3
13262
+ lsl r1, r1, #1
13263
+ add r1, r1, #51
1280313264 add r2, r2, #4
12804
- bic r3, r3, #3
12805
- add r1, r1, r3
13265
+ bic r1, r1, #3
13266
+ add r1, r3, r1
1280613267 bl ftl_memcpy
12807
- add r3, r7, #2432
12808
- ldrh r3, [r3]
13268
+ movw r3, #2436
13269
+ ldrh r3, [r5, r3]
1280913270 cmp r3, #0
12810
- beq .L2207
12811
- ldrh r2, [r7, r8]
12812
- ldr r1, [r5, #1760]
12813
- ldr r0, [r5, #-448]
12814
- mov r3, r2, lsr #3
12815
- add r3, r3, r2, asl #1
12816
- movw r2, #2424
12817
- ldrh r2, [r7, r2]
13271
+ beq .L2177
13272
+ ldrh r1, [r5, r6]
13273
+ movw r3, #2428
13274
+ ldrh r2, [r5, r3]
13275
+ ldr r0, [r4, #-448]
13276
+ lsr r3, r1, #3
13277
+ lsl r2, r2, #2
13278
+ add r3, r3, r1, lsl #1
13279
+ ldr r1, [r4, #1768]
1281813280 add r3, r3, #52
1281913281 ubfx r3, r3, #2, #14
12820
- mov r2, r2, asl #2
12821
- add r1, r1, r3, asl #2
13282
+ add r1, r1, r3, lsl #2
1282213283 bl ftl_memcpy
12823
- b .L2207
12824
-.L2205:
12825
- sub r5, r5, #1
12826
- uxth r5, r5
12827
- b .L2201
12828
-.L2207:
12829
- ldr r2, [r4, #-3600]
12830
- ldr r3, .L2227+24
12831
- ldr r5, .L2227
13284
+.L2177:
13285
+ ldr r2, [r4, #-3596]
13286
+ ldr r3, .L2197+20
1283213287 cmp r2, r3
12833
- bne .L2210
12834
- sub r7, r5, #3600
12835
- movw r1, #2342
12836
- ldrb r0, [r5, #-3590] @ zero_extendqisi2
12837
- add r3, r7, #300
12838
- ldrh r1, [r6, r1]
12839
- sub r8, r5, #3296
12840
- ldrh r2, [r7, #8]
12841
- cmp r0, r1
12842
- strh r2, [r3, #6] @ movhi
12843
- ldr r3, .L2227+4
12844
- bne .L2210
12845
- movw r1, #2388
12846
- movw r0, #2394
12847
- ldrh r1, [r3, r1]
12848
- ldrh r0, [r3, r0]
12849
- add r3, r3, #2320
12850
- str r2, [r5, #1788]
12851
- mul r1, r2, r1
12852
- str r1, [r3, #128]
12853
- mul r1, r0, r1
12854
- str r1, [r3, #108]
12855
- ldr r1, .L2227+28
12856
- ldrh r0, [r1, #6]
12857
- ldr r1, [r3, #12]
12858
- rsb r0, r0, r1
12859
- ldrh r1, [r3]
12860
- rsb r0, r2, r0
13288
+ bne .L2180
13289
+ ldr r6, .L2197+24
13290
+ movw r3, #2346
13291
+ ldrb r1, [r4, #-3586] @ zero_extendqisi2
13292
+ ldrh r3, [r5, r3]
13293
+ ldrh r2, [r6, #8]
13294
+ cmp r1, r3
13295
+ strh r2, [r7, #2] @ movhi
13296
+ bne .L2180
13297
+ movw r3, #2390
13298
+ movw r1, #2396
13299
+ ldrh r3, [r5, r3]
13300
+ ldrh r1, [r5, r1]
13301
+ ldr r0, [r5, #2336]
13302
+ str r2, [r4, #1796]
13303
+ mul r3, r2, r3
13304
+ str r3, [r5, #2452]
13305
+ mul r3, r3, r1
13306
+ str r3, [r5, #2432]
13307
+ ldr r3, .L2197+28
13308
+ ldrh r3, [r3, #6]
13309
+ sub r0, r0, r3
13310
+ movw r3, #2324
13311
+ ldrh r1, [r5, r3]
13312
+ sub r0, r0, r2
1286113313 bl __aeabi_uidiv
12862
- sub r3, r5, #3520
12863
- add r2, r7, #76
12864
- sub lr, r5, #3280
12865
- sub ip, r5, #3424
12866
- strh r0, [r8, #-8] @ movhi
12867
- mov r8, ip
12868
- ldrh r0, [r7, #14]
12869
- strh r0, [r3, #-4] @ movhi
12870
- ldrh r3, [r7, #16]
12871
- mov r1, r3, lsr #6
13314
+ ldrh r3, [r6, #16]
13315
+ add r2, r6, #76
13316
+ mov r5, r2
13317
+ strh r0, [r7, #-8] @ movhi
13318
+ ldrh r0, [r6, #14]
13319
+ add r7, r2, #240
13320
+ lsr r1, r3, #6
1287213321 and r3, r3, #63
12873
- strb r3, [r5, #-3518]
12874
- ldrb r3, [r5, #-3589] @ zero_extendqisi2
12875
- strh r1, [r7, #78] @ movhi
12876
- ldrh r1, [r7, #18]
12877
- strb r3, [r5, #-3516]
13322
+ strb r3, [r4, #-3514]
13323
+ strh r1, [r2, #2] @ movhi
13324
+ ldrh r1, [r6, #18]
13325
+ ldrb r3, [r4, #-3585] @ zero_extendqisi2
13326
+ strh r0, [r2] @ movhi
13327
+ strh r1, [r5, #48]! @ movhi
13328
+ ldrh r1, [r6, #20]
13329
+ strb r3, [r4, #-3512]
1287813330 mvn r3, #0
12879
- strh r3, [lr, #-4] @ movhi
13331
+ strh r3, [r7, #-4] @ movhi
1288013332 mov r3, #0
12881
- strh r3, [r2, #242] @ movhi
12882
- sub r2, r5, #3472
12883
- strb r3, [r5, #-3278]
12884
- strh r1, [r2, #-4] @ movhi
12885
- ldrh r1, [r7, #20]
12886
- strb r3, [r5, #-3276]
12887
- str r3, [r5, #-3344]
12888
- mov r6, r1, lsr #6
13333
+ strh r3, [r2, #238] @ movhi
13334
+ lsr ip, r1, #6
1288913335 and r1, r1, #63
12890
- strb r1, [r5, #-3470]
12891
- ldrb r1, [r5, #-3588] @ zero_extendqisi2
12892
- strh r6, [r2, #-2] @ movhi
13336
+ strb r1, [r4, #-3466]
13337
+ ldrb r1, [r4, #-3584] @ zero_extendqisi2
13338
+ strh ip, [r5, #2] @ movhi
13339
+ strb r3, [r4, #-3278]
13340
+ strb r1, [r4, #-3464]
13341
+ ldrh r1, [r6, #22]
13342
+ strb r3, [r4, #-3276]
13343
+ strh r1, [r2, #96]! @ movhi
13344
+ ldrh r1, [r6, #24]
1289313345 mov r6, r2
12894
- strb r1, [r5, #-3468]
12895
- ldrh r1, [r7, #22]
12896
- strh r1, [ip, #-4] @ movhi
12897
- ldrh r1, [r7, #24]
12898
- mov r7, r1, lsr #6
13346
+ lsr ip, r1, #6
1289913347 and r1, r1, #63
12900
- strb r1, [r5, #-3422]
12901
- ldrb r1, [r5, #-3587] @ zero_extendqisi2
12902
- strh r7, [r2, #46] @ movhi
12903
- mov r7, lr
12904
- strb r1, [r5, #-3420]
12905
- str r3, [r5, #-3356]
12906
- ldr r1, [r5, #-3568]
12907
- str r3, [r5, #-3364]
12908
- str r3, [r5, #-3348]
12909
- str r3, [r5, #-3320]
12910
- str r3, [r5, #-3312]
12911
- str r3, [r5, #-3352]
12912
- ldr r3, [r5, #-3560]
12913
- str r1, [r5, #-3324]
12914
- ldr r1, [r5, #-3332]
13348
+ strb r1, [r4, #-3418]
13349
+ ldrb r1, [r4, #-3583] @ zero_extendqisi2
13350
+ strh ip, [r2, #2] @ movhi
13351
+ strb r1, [r4, #-3416]
13352
+ str r3, [r4, #-3344]
13353
+ ldr r1, [r4, #-3564]
13354
+ str r3, [r4, #-3356]
13355
+ str r3, [r4, #-3364]
13356
+ str r3, [r4, #-3348]
13357
+ str r1, [r4, #-3324]
13358
+ str r3, [r4, #-3320]
13359
+ ldr r1, [r4, #-3332]
13360
+ str r3, [r4, #-3312]
13361
+ str r3, [r4, #-3352]
13362
+ ldr r3, [r4, #-3556]
1291513363 ldr r2, [r4, #-3328]
1291613364 cmp r3, r1
12917
- strhi r3, [r5, #-3332]
12918
- ldr r3, [r4, #-3564]
13365
+ strhi r3, [r4, #-3332]
13366
+ ldr r3, [r4, #-3560]
1291913367 cmp r3, r2
12920
- ldrhi r2, .L2227
12921
- strhi r3, [r2, #-3328]
13368
+ strhi r3, [r4, #-3328]
1292213369 movw r3, #65535
1292313370 cmp r0, r3
12924
- beq .L2213
12925
- ldr r0, .L2227+32
13371
+ beq .L2183
13372
+ ldr r0, .L2197+32
1292613373 bl make_superblock
12927
-.L2213:
12928
- ldrh r2, [r6, #-4]
13374
+.L2183:
13375
+ ldrh r2, [r5]
1292913376 movw r3, #65535
1293013377 cmp r2, r3
12931
- beq .L2214
12932
- ldr r0, .L2227+36
13378
+ beq .L2184
13379
+ ldr r0, .L2197+36
1293313380 bl make_superblock
12934
-.L2214:
12935
- ldrh r2, [r8, #-4]
13381
+.L2184:
13382
+ ldrh r2, [r6]
1293613383 movw r3, #65535
1293713384 cmp r2, r3
12938
- beq .L2215
12939
- ldr r0, .L2227+40
13385
+ beq .L2185
13386
+ ldr r0, .L2197+40
1294013387 bl make_superblock
12941
-.L2215:
13388
+.L2185:
1294213389 ldrh r2, [r7, #-4]
1294313390 movw r3, #65535
13391
+ sub r0, r7, #4
1294413392 cmp r2, r3
12945
- beq .L2216
12946
- ldr r0, .L2227+44
13393
+ beq .L2186
1294713394 bl make_superblock
12948
-.L2216:
13395
+.L2186:
1294913396 mov r0, #0
12950
-.L2200:
12951
- add sp, sp, #36
12952
- @ sp needed
12953
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12954
-.L2228:
13397
+ b .L2168
13398
+.L2198:
1295513399 .align 2
12956
-.L2227:
13400
+.L2197:
1295713401 .word .LANCHOR2
1295813402 .word .LANCHOR0
12959
- .word .LANCHOR2-3300
12960
- .word .LANCHOR2+1752
12961
- .word .LANCHOR0+2398
13403
+ .word .LANCHOR2+1760
1296213404 .word .LC109
13405
+ .word .LANCHOR0+2392
1296313406 .word 1179929683
12964
- .word .LANCHOR0+2452
12965
- .word .LANCHOR2-3524
12966
- .word .LANCHOR2-3476
12967
- .word .LANCHOR2-3428
12968
- .word .LANCHOR2-3284
13407
+ .word .LANCHOR2-3596
13408
+ .word .LANCHOR0+2456
13409
+ .word .LANCHOR2-3520
13410
+ .word .LANCHOR2-3472
13411
+ .word .LANCHOR2-3424
1296913412 .fnend
1297013413 .size FtlLoadSysInfo, .-FtlLoadSysInfo
1297113414 .align 2
1297213415 .global FtlDumpBlockInfo
13416
+ .syntax unified
13417
+ .arm
13418
+ .fpu softvfp
1297313419 .type FtlDumpBlockInfo, %function
1297413420 FtlDumpBlockInfo:
1297513421 .fnstart
12976
- @ args = 0, pretend = 0, frame = 72
13422
+ @ args = 0, pretend = 0, frame = 64
1297713423 @ frame_needed = 0, uses_anonymous_args = 0
12978
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13424
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1297913425 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12980
- movw r3, #2388
12981
- ldr r5, .L2243
12982
- .pad #100
12983
- sub sp, sp, #100
13426
+ movw r3, #2390
13427
+ ldr r5, .L2211
13428
+ .pad #92
13429
+ sub sp, sp, #92
1298413430 ubfx r0, r0, #10, #16
12985
- mov r4, r1
12986
- ldr r7, .L2243+4
12987
- ldrh r9, [r5, r3]
13431
+ mov r9, r1
13432
+ ldr r7, .L2211+4
13433
+ ldrh r8, [r5, r3]
1298813434 bl P2V_block_in_plane
12989
- ldr r1, .L2243+8
13435
+ ldr r1, .L2211+8
1299013436 mov r6, r0
12991
- ldr r0, .L2243+12
13437
+ ldr r0, .L2211+12
1299213438 bl printk
12993
- ldr r2, [r7, #-3544]
12994
- mov r3, r6, asl #1
13439
+ ldr r2, [r7, #-3540]
13440
+ lsl r3, r6, #1
1299513441 mov r1, r6
12996
- ldr r0, .L2243+16
13442
+ ldr r0, .L2211+16
1299713443 ldrh r2, [r2, r3]
1299813444 bl printk
12999
- add r0, sp, #96
13445
+ add r0, sp, #88
1300013446 strh r6, [r0, #-48]! @ movhi
1300113447 bl make_superblock
13002
- ldrb r2, [r5, #144] @ zero_extendqisi2
13003
- clz r3, r4
13004
- cmp r2, #0
13005
- mov r3, r3, lsr #5
13006
- moveq r3, #0
13448
+ ldrb r4, [r5, #152] @ zero_extendqisi2
13449
+ str r7, [sp, #36]
13450
+ adds r3, r4, #0
13451
+ movne r3, #1
13452
+ cmp r9, #0
13453
+ movne r3, #0
1300713454 cmp r3, #0
1300813455 moveq r4, r3
13009
- str r7, [sp, #44]
13010
- beq .L2230
13456
+ beq .L2200
1301113457 mov r0, r6
1301213458 bl ftl_get_blk_mode
1301313459 cmp r0, #1
1301413460 mov r4, r0
13015
- movweq r3, #2390
13016
- ldreqh r9, [r5, r3]
13017
-.L2230:
13018
- movw r3, #2388
13019
- ldr r0, .L2243+20
13020
- mov r1, r4
13021
- mov r2, r9
13022
- ldrh r3, [r5, r3]
13461
+ movweq r3, #2392
13462
+ ldrheq r8, [r5, r3]
13463
+.L2200:
13464
+ movw r3, #2390
1302313465 mov r6, #0
13466
+ mov r9, #36
13467
+ ldrh r3, [r5, r3]
13468
+ mov r2, r8
13469
+ mov r1, r4
13470
+ ldr r0, .L2211+20
1302413471 bl printk
13025
- ldr r8, .L2243+4
13026
-.L2231:
13027
- ldr r3, .L2243+24
13028
- add r0, sp, #62
13029
- movw lr, #65535
13030
- mov r10, #36
13472
+.L2201:
13473
+ ldr r3, .L2211+24
13474
+ add ip, sp, #54
13475
+ movw r10, #65535
1303113476 ldrh r3, [r3]
1303213477 mov r7, r3
13033
- ldr r3, [r8, #-536]
13034
- str r3, [sp, #28]
13035
- ldr r3, [r8, #-2696]
13478
+ ldr r3, .L2211+4
13479
+ ldr r2, [r3, #-2696]
13480
+ ldr r0, [r3, #-536]
13481
+ ldr r3, [r3, #-2692]
13482
+ str r2, [sp, #24]
13483
+ ldr r2, .L2211+28
1303613484 str r3, [sp, #32]
13037
- ldr r3, .L2243+28
13038
- ldrh r2, [r3]
13039
- ldrh ip, [r3, #2]
13040
- str r2, [sp, #36]
13041
- ldr r2, [r8, #-2692]
13042
- str r2, [sp, #40]
13485
+ ldrh r1, [r2]
13486
+ ldrh lr, [r2, #2]
1304313487 mov r2, #0
1304413488 mov r5, r2
13045
-.L2232:
13489
+ str r1, [sp, #28]
13490
+.L2202:
1304613491 uxth r3, r2
13047
- cmp r3, r7
13048
- bcs .L2241
13049
- ldrh r3, [r0, #2]!
13050
- cmp r3, lr
13051
- beq .L2233
13052
- ldr r1, [sp, #28]
13053
- orr r3, r6, r3, asl #10
13054
- mla r1, r10, r5, r1
13492
+ cmp r7, r3
13493
+ bhi .L2204
13494
+ ldr fp, .L2211+32
13495
+ mov r10, #0
13496
+ mov r2, r4
13497
+ mov r1, r5
13498
+ bl FlashReadPages
13499
+.L2205:
13500
+ uxth r3, r10
13501
+ cmp r5, r3
13502
+ bhi .L2206
13503
+ add r6, r6, #1
13504
+ uxth r6, r6
13505
+ cmp r8, r6
13506
+ bne .L2201
13507
+.L2207:
13508
+ mov r0, #0
13509
+ add sp, sp, #92
13510
+ @ sp needed
13511
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13512
+.L2204:
13513
+ ldrh r3, [ip, #2]!
13514
+ cmp r3, r10
13515
+ beq .L2203
13516
+ mla r1, r9, r5, r0
13517
+ orr r3, r6, r3, lsl #10
1305513518 str r3, [r1, #4]
13056
- ldr r3, [sp, #36]
13519
+ ldr r3, [sp, #28]
1305713520 mul r3, r3, r5
13521
+ add fp, r3, #3
13522
+ cmp r3, #0
13523
+ movlt r3, fp
13524
+ ldr fp, [sp, #24]
13525
+ bic r3, r3, #3
13526
+ add r3, fp, r3
13527
+ str r3, [r1, #8]
13528
+ mul r3, lr, r5
13529
+ add r5, r5, #1
13530
+ uxth r5, r5
1305813531 add fp, r3, #3
1305913532 cmp r3, #0
1306013533 movlt r3, fp
1306113534 ldr fp, [sp, #32]
1306213535 bic r3, r3, #3
1306313536 add r3, fp, r3
13064
- str r3, [r1, #8]
13065
- mul r3, ip, r5
13066
- add r5, r5, #1
13067
- uxth r5, r5
13068
- add fp, r3, #3
13069
- cmp r3, #0
13070
- movlt r3, fp
13071
- ldr fp, [sp, #40]
13072
- bic r3, r3, #3
13073
- add r3, fp, r3
1307413537 str r3, [r1, #12]
13075
-.L2233:
13538
+.L2203:
1307613539 add r2, r2, #1
13077
- b .L2232
13078
-.L2241:
13079
- ldr r0, [r8, #-536]
13080
- mov r1, r5
13081
- mov r2, r4
13082
- mov r10, #0
13083
- bl FlashReadPages
13084
- mov fp, #36
13085
-.L2235:
13086
- uxth r3, r10
13087
- cmp r3, r5
13088
- bcs .L2242
13089
- ldr r3, [sp, #44]
13090
- mul r2, fp, r10
13091
- ldrh r1, [sp, #48]
13092
- ldr lr, [r3, #-536]
13540
+ b .L2202
13541
+.L2206:
13542
+ ldr r3, [sp, #36]
13543
+ mul r0, r9, r10
13544
+ ldrh r1, [sp, #40]
1309313545 add r10, r10, #1
13094
- add ip, lr, r2
13095
- ldr r3, [ip, #12]
13096
- ldr r0, [ip, #8]
13097
- ldr r7, [r3]
13098
- str r7, [sp]
13099
- ldr r7, [r3, #4]
13100
- str r7, [sp, #4]
13101
- ldr r7, [r3, #8]
13102
- str r7, [sp, #8]
13103
- ldr r3, [r3, #12]
13104
- str r3, [sp, #12]
13105
- ldr r3, [r0]
13106
- str r3, [sp, #16]
13107
- ldr r3, [r0, #4]
13108
- ldr r0, .L2243+32
13109
- str r3, [sp, #20]
13110
- ldr r2, [lr, r2]
13111
- ldr r3, [ip, #4]
13546
+ ldr ip, [r3, #-536]
13547
+ add r2, ip, r0
13548
+ ldr lr, [r2, #8]
13549
+ ldr r3, [r2, #12]
13550
+ ldr r7, [lr, #4]
13551
+ str r7, [sp, #20]
13552
+ ldr lr, [lr]
13553
+ str lr, [sp, #16]
13554
+ ldr lr, [r3, #12]
13555
+ str lr, [sp, #12]
13556
+ ldr lr, [r3, #8]
13557
+ str lr, [sp, #8]
13558
+ ldr lr, [r3, #4]
13559
+ str lr, [sp, #4]
13560
+ ldr r3, [r3]
13561
+ str r3, [sp]
13562
+ ldr r3, [r2, #4]
13563
+ ldr r2, [ip, r0]
13564
+ mov r0, fp
1311213565 bl printk
13113
- b .L2235
13114
-.L2242:
13115
- add r6, r6, #1
13116
- uxth r6, r6
13117
- cmp r6, r9
13118
- bne .L2231
13119
-.L2237:
13120
- mov r0, #0
13121
- add sp, sp, #100
13122
- @ sp needed
13123
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13124
-.L2244:
13566
+ b .L2205
13567
+.L2212:
1312513568 .align 2
13126
-.L2243:
13569
+.L2211:
1312713570 .word .LANCHOR0
1312813571 .word .LANCHOR2
13129
- .word .LANCHOR3+148
13572
+ .word .LANCHOR3+141
1313013573 .word .LC110
1313113574 .word .LC111
1313213575 .word .LC112
13133
- .word .LANCHOR0+2320
13134
- .word .LANCHOR0+2398
13576
+ .word .LANCHOR0+2324
13577
+ .word .LANCHOR0+2400
1313513578 .word .LC113
1313613579 .fnend
1313713580 .size FtlDumpBlockInfo, .-FtlDumpBlockInfo
1313813581 .align 2
1313913582 .global FtlScanAllBlock
13583
+ .syntax unified
13584
+ .arm
13585
+ .fpu softvfp
1314013586 .type FtlScanAllBlock, %function
1314113587 FtlScanAllBlock:
1314213588 .fnstart
13143
- @ args = 0, pretend = 0, frame = 64
13589
+ @ args = 0, pretend = 0, frame = 56
1314413590 @ frame_needed = 0, uses_anonymous_args = 0
13145
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13591
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1314613592 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13147
- .pad #92
13148
- sub sp, sp, #92
13149
- ldr r0, .L2260
13150
- mov r7, #0
13151
- ldr r1, .L2260+4
13593
+ mov r6, #0
13594
+ ldr r5, .L2224
13595
+ .pad #84
13596
+ sub sp, sp, #84
13597
+ ldr r1, .L2224+4
13598
+ ldr r0, .L2224+8
1315213599 bl printk
13153
- ldr r5, .L2260+8
13154
- mov r6, r5
13155
-.L2246:
13156
- ldr r3, .L2260+12
13157
- uxth r4, r7
13600
+.L2214:
13601
+ ldr r3, .L2224+12
13602
+ uxth r0, r6
1315813603 ldrh r3, [r3]
13159
- cmp r3, r4
13160
- bls .L2256
13161
- add r8, sp, #88
13162
- mov r0, r4
13604
+ cmp r3, r0
13605
+ bhi .L2222
13606
+ mov r0, #0
13607
+ add sp, sp, #84
13608
+ @ sp needed
13609
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13610
+.L2222:
13611
+ add r4, sp, #80
1316313612 movw r9, #65535
13613
+ strh r0, [r4, #-48]! @ movhi
1316413614 mov r10, #36
13165
- strh r4, [r8, #-48]! @ movhi
1316613615 bl ftl_get_blk_mode
13167
- ldr ip, [r5, #-3544]
13168
- mov r2, r4, asl #1
13169
- mov r1, r4
13170
- ldrh r2, [ip, r2]
13616
+ uxth r1, r6
13617
+ ldr ip, [r5, #-3540]
1317113618 mov r3, r0
13172
- ldr r0, .L2260+16
13619
+ ldr r0, .L2224+16
13620
+ lsl r2, r1, #1
13621
+ ldrh r2, [ip, r2]
1317313622 bl printk
13174
- mov r0, r8
13623
+ mov r0, r4
1317513624 bl make_superblock
13176
- ldr r3, .L2260+20
13177
- ldr lr, [r5, #-2692]
13625
+ ldr r3, .L2224+20
13626
+ add ip, sp, #46
13627
+ ldr r0, [r5, #-536]
13628
+ ldr r7, [r5, #-2692]
1317813629 ldrh r2, [r3]
13179
- ldrh ip, [r3, #78]
13180
- ldrh r8, [r3, #80]
13181
- str r2, [sp, #28]
13182
- add r0, sp, #54
13183
- ldr r2, [r5, #-536]
13184
- str r2, [sp, #32]
13630
+ ldrh lr, [r3, #76]
13631
+ ldrh r8, [r3, #78]
13632
+ str r2, [sp, #24]
1318513633 ldr r2, [r5, #-2696]
13186
- str r2, [sp, #36]
13634
+ str r2, [sp, #28]
1318713635 mov r2, #0
1318813636 mov r4, r2
13189
-.L2247:
13190
- ldr r1, [sp, #28]
13637
+.L2215:
13638
+ ldr r1, [sp, #24]
1319113639 uxth r3, r2
13192
- cmp r3, r1
13193
- bcs .L2257
13194
- ldrh r3, [r0, #2]!
13640
+ cmp r1, r3
13641
+ bhi .L2217
13642
+ ldr r9, .L2224+24
13643
+ mov r7, #0
13644
+ mov r8, #36
13645
+ mov r2, #0
13646
+ mov r1, r4
13647
+ bl FlashReadPages
13648
+.L2218:
13649
+ uxth r3, r7
13650
+ cmp r4, r3
13651
+ bhi .L2219
13652
+ ldr r9, .L2224+28
13653
+ mov r7, #0
13654
+ mov r8, #36
13655
+ mov r2, #1
13656
+ mov r1, r4
13657
+ ldr r0, [r5, #-536]
13658
+ bl FlashReadPages
13659
+.L2220:
13660
+ uxth r3, r7
13661
+ cmp r4, r3
13662
+ bhi .L2221
13663
+ add r6, r6, #1
13664
+ b .L2214
13665
+.L2217:
13666
+ ldrh r3, [ip, #2]!
1319513667 cmp r3, r9
13196
- beq .L2248
13197
- ldr r1, [sp, #32]
13198
- mov r3, r3, asl #10
13199
- mla r1, r10, r4, r1
13668
+ beq .L2216
13669
+ mla r1, r10, r4, r0
13670
+ lsl r3, r3, #10
1320013671 str r3, [r1, #4]
13201
- mul r3, ip, r4
13672
+ mul r3, lr, r4
1320213673 add fp, r3, #3
1320313674 cmp r3, #0
1320413675 movlt r3, fp
13205
- ldr fp, [sp, #36]
13676
+ ldr fp, [sp, #28]
1320613677 bic r3, r3, #3
1320713678 add r3, fp, r3
1320813679 str r3, [r1, #8]
....@@ -13213,673 +13684,764 @@
1321313684 cmp r3, #0
1321413685 movlt r3, fp
1321513686 bic r3, r3, #3
13216
- add r3, lr, r3
13687
+ add r3, r7, r3
1321713688 str r3, [r1, #12]
13218
-.L2248:
13689
+.L2216:
1321913690 add r2, r2, #1
13220
- b .L2247
13221
-.L2257:
13222
- ldr r0, [r6, #-536]
13223
- mov r1, r4
13224
- mov r2, #0
13225
- mov r8, #0
13226
- bl FlashReadPages
13227
- mov r9, #36
13228
-.L2250:
13229
- uxth r3, r8
13230
- cmp r3, r4
13231
- bcs .L2258
13232
- mul r2, r9, r8
13233
- ldr lr, [r6, #-536]
13234
- ldrh r1, [sp, #40]
13235
- add r8, r8, #1
13236
- add ip, lr, r2
13237
- ldr r3, [ip, #12]
13238
- ldr r0, [ip, #8]
13239
- ldr r10, [r3]
13240
- str r10, [sp]
13241
- ldr r10, [r3, #4]
13242
- str r10, [sp, #4]
13243
- ldr r10, [r3, #8]
13244
- str r10, [sp, #8]
13245
- ldr r3, [r3, #12]
13246
- str r3, [sp, #12]
13247
- ldr r3, [r0]
13248
- str r3, [sp, #16]
13249
- ldr r3, [r0, #4]
13250
- ldr r0, .L2260+24
13251
- str r3, [sp, #20]
13252
- ldr r2, [lr, r2]
13253
- ldr r3, [ip, #4]
13254
- bl printk
13255
- b .L2250
13256
-.L2258:
13257
- ldr r0, [r6, #-536]
13258
- mov r1, r4
13259
- mov r2, #1
13260
- mov r8, #0
13261
- bl FlashReadPages
13262
- mov r9, #36
13263
-.L2252:
13264
- uxth r3, r8
13265
- cmp r3, r4
13266
- bcs .L2259
13267
- mul r2, r9, r8
13268
- ldr lr, [r6, #-536]
13269
- ldrh r1, [sp, #40]
13270
- add r8, r8, #1
13271
- add ip, lr, r2
13272
- ldr r3, [ip, #12]
13273
- ldr r0, [ip, #8]
13274
- ldr r10, [r3]
13275
- str r10, [sp]
13276
- ldr r10, [r3, #4]
13277
- str r10, [sp, #4]
13278
- ldr r10, [r3, #8]
13279
- str r10, [sp, #8]
13280
- ldr r3, [r3, #12]
13281
- str r3, [sp, #12]
13282
- ldr r3, [r0]
13283
- str r3, [sp, #16]
13284
- ldr r3, [r0, #4]
13285
- ldr r0, .L2260+28
13286
- str r3, [sp, #20]
13287
- ldr r2, [lr, r2]
13288
- ldr r3, [ip, #4]
13289
- bl printk
13290
- b .L2252
13291
-.L2259:
13691
+ b .L2215
13692
+.L2219:
13693
+ mul r0, r8, r7
13694
+ ldr ip, [r5, #-536]
13695
+ ldrh r1, [sp, #32]
1329213696 add r7, r7, #1
13293
- b .L2246
13294
-.L2256:
13295
- mov r0, #0
13296
- add sp, sp, #92
13297
- @ sp needed
13298
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13299
-.L2261:
13697
+ add r2, ip, r0
13698
+ ldr lr, [r2, #8]
13699
+ ldr r3, [r2, #12]
13700
+ ldr r10, [lr, #4]
13701
+ str r10, [sp, #20]
13702
+ ldr lr, [lr]
13703
+ str lr, [sp, #16]
13704
+ ldr lr, [r3, #12]
13705
+ str lr, [sp, #12]
13706
+ ldr lr, [r3, #8]
13707
+ str lr, [sp, #8]
13708
+ ldr lr, [r3, #4]
13709
+ str lr, [sp, #4]
13710
+ ldr r3, [r3]
13711
+ str r3, [sp]
13712
+ ldr r3, [r2, #4]
13713
+ ldr r2, [ip, r0]
13714
+ mov r0, r9
13715
+ bl printk
13716
+ b .L2218
13717
+.L2221:
13718
+ mul r0, r8, r7
13719
+ ldr ip, [r5, #-536]
13720
+ ldrh r1, [sp, #32]
13721
+ add r7, r7, #1
13722
+ add r2, ip, r0
13723
+ ldr lr, [r2, #8]
13724
+ ldr r3, [r2, #12]
13725
+ ldr r10, [lr, #4]
13726
+ str r10, [sp, #20]
13727
+ ldr lr, [lr]
13728
+ str lr, [sp, #16]
13729
+ ldr lr, [r3, #12]
13730
+ str lr, [sp, #12]
13731
+ ldr lr, [r3, #8]
13732
+ str lr, [sp, #8]
13733
+ ldr lr, [r3, #4]
13734
+ str lr, [sp, #4]
13735
+ ldr r3, [r3]
13736
+ str r3, [sp]
13737
+ ldr r3, [r2, #4]
13738
+ ldr r2, [ip, r0]
13739
+ mov r0, r9
13740
+ bl printk
13741
+ b .L2220
13742
+.L2225:
1330013743 .align 2
13301
-.L2260:
13302
- .word .LC110
13303
- .word .LANCHOR3+168
13744
+.L2224:
1330413745 .word .LANCHOR2
13305
- .word .LANCHOR0+2330
13746
+ .word .LANCHOR3+158
13747
+ .word .LC110
13748
+ .word .LANCHOR0+2334
1330613749 .word .LC114
13307
- .word .LANCHOR0+2320
13750
+ .word .LANCHOR0+2324
1330813751 .word .LC115
1330913752 .word .LC116
1331013753 .fnend
1331113754 .size FtlScanAllBlock, .-FtlScanAllBlock
1331213755 .align 2
1331313756 .global ftl_scan_all_ppa
13757
+ .syntax unified
13758
+ .arm
13759
+ .fpu softvfp
1331413760 .type ftl_scan_all_ppa, %function
1331513761 ftl_scan_all_ppa:
1331613762 .fnstart
13317
- @ args = 0, pretend = 0, frame = 0
13763
+ @ args = 0, pretend = 0, frame = 8
1331813764 @ frame_needed = 0, uses_anonymous_args = 0
13319
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
13320
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
13321
- movw r3, #2386
13322
- ldr r6, .L2281
13323
- .pad #24
13324
- sub sp, sp, #24
13325
- ldr r5, .L2281+4
13326
- ldrh r4, [r6, r3]
13765
+ ldr r3, .L2243
13766
+ movw r2, #2388
13767
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13768
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13769
+ .pad #36
13770
+ sub sp, sp, #36
13771
+ ldr r5, .L2243+4
13772
+ ldrh r4, [r3, r2]
13773
+ add r10, r5, #1760
13774
+ str r3, [sp, #28]
1332713775 sub r4, r4, #16
13328
-.L2263:
13329
- ldr r7, .L2281+8
13330
- ldrh r3, [r7]
13776
+ lsl r9, r4, #10
13777
+.L2227:
13778
+ ldr r3, .L2243+8
13779
+ ldrh r3, [r3]
1333113780 cmp r4, r3
13332
- bge .L2279
13333
- uxth r8, r4
13334
- mov r0, r8
13781
+ blt .L2235
13782
+ ldr r1, .L2243+12
13783
+ ldr r0, .L2243+16
13784
+ add sp, sp, #36
13785
+ @ sp needed
13786
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13787
+ b printk
13788
+.L2235:
13789
+ uxth r7, r4
13790
+ mov r0, r7
1333513791 bl ftl_get_blk_mode
13336
- ldrb r3, [r6, #144] @ zero_extendqisi2
13792
+ ldr r3, [sp, #28]
13793
+ ldrb r3, [r3, #152] @ zero_extendqisi2
1333713794 cmp r3, #0
13338
- beq .L2264
13339
- ldrh r3, [r7, #-58]
13795
+ beq .L2228
13796
+ ldr r3, .L2243+20
13797
+ ldrh r2, [r3]
13798
+ cmp r4, r2
13799
+ bge .L2229
13800
+ ldrh r3, [r3, #72]
1334013801 cmp r4, r3
13341
- bge .L2265
13342
- ldrh r3, [r7, #16]
13343
- cmp r4, r3
13344
- blt .L2265
13345
-.L2264:
13802
+ blt .L2229
13803
+.L2228:
1334613804 cmp r0, #1
13347
- bne .L2266
13348
-.L2265:
13349
- ldr r3, .L2281+12
13350
- mov r9, #-2147483648
13351
- ldrh r7, [r3]
13352
- b .L2267
13353
-.L2266:
13354
- ldr r3, .L2281+16
13355
- mov r9, #0
13356
- ldrh r7, [r3]
13357
-.L2267:
13805
+ bne .L2230
13806
+.L2229:
13807
+ ldr r3, .L2243+24
13808
+ mov r8, #-2147483648
13809
+ ldrh r6, [r3]
13810
+.L2231:
13811
+ mov r3, r8
13812
+ mov r2, r6
1335813813 mov r1, r4
13359
- mov r2, r7
13360
- mov r3, r9
13361
- ldr r0, .L2281+20
13814
+ ldr r0, .L2243+28
1336213815 bl printk
13363
- mov r0, r8
13816
+ mov r0, r7
1336413817 bl FtlBbmIsBadBlock
1336513818 cmp r0, #0
13366
- beq .L2268
13367
- ldr r0, .L2281+24
13819
+ beq .L2232
13820
+ mov r3, r8
13821
+ mov r2, r6
1336813822 mov r1, r4
13369
- mov r2, r7
13370
- mov r3, r9
13823
+ ldr r0, .L2243+32
1337113824 bl printk
13372
-.L2268:
13373
- mov r10, r4, asl #10
13825
+.L2232:
13826
+ ldr fp, .L2243+36
13827
+ mov r7, #0
13828
+.L2233:
13829
+ cmp r7, r6
13830
+ bne .L2234
13831
+ add r4, r4, #1
13832
+ add r9, r9, #1024
13833
+ b .L2227
13834
+.L2230:
13835
+ ldr r3, .L2243+40
1337413836 mov r8, #0
13375
-.L2269:
13376
- cmp r8, r7
13377
- beq .L2280
13378
- add r3, r9, r10
13837
+ ldrh r6, [r3]
13838
+ b .L2231
13839
+.L2234:
13840
+ add r3, r8, r9
1337913841 mov r2, #0
13380
- add r3, r3, r8
13381
- str r3, [r5, #1756]
13382
- ldr r3, [r5, #-524]
13842
+ add r3, r3, r7
1338313843 mov r1, #1
13384
- ldr r0, .L2281+28
13385
- add r8, r8, #1
13386
- str r2, [r5, #1752]
13387
- str r3, [r5, #1760]
13388
- ldr r3, [r5, #-500]
1338913844 str r3, [r5, #1764]
13845
+ mov r0, r10
13846
+ ldr r3, [r5, #-524]
13847
+ add r7, r7, #1
13848
+ str r2, [r5, #1760]
13849
+ str r3, [r5, #1768]
13850
+ ldr r3, [r5, #-500]
13851
+ str r3, [r5, #1772]
1339013852 bl FlashReadPages
13391
- ldr r3, [r5, #1764]
13853
+ ldr r2, [r5, #1768]
13854
+ mov r0, fp
13855
+ ldr r3, [r5, #1772]
13856
+ ldr r1, [r2, #4]
13857
+ str r1, [sp, #16]
13858
+ ldr r2, [r2]
13859
+ ldr r1, [r5, #1764]
13860
+ str r2, [sp, #12]
13861
+ ldr r2, [r3, #12]
13862
+ str r2, [sp, #8]
13863
+ ldr r2, [r3, #8]
13864
+ str r2, [sp, #4]
13865
+ ldr r2, [r3, #4]
13866
+ str r2, [sp]
1339213867 ldr r2, [r5, #1760]
13393
- ldr r0, .L2281+32
13394
- ldr r1, [r3, #4]
13395
- str r1, [sp]
13396
- ldr r1, [r3, #8]
13397
- str r1, [sp, #4]
13398
- ldr r1, [r3, #12]
13399
- str r1, [sp, #8]
13400
- ldr r1, [r2]
13401
- str r1, [sp, #12]
13402
- ldr r2, [r2, #4]
13403
- ldr r1, [r5, #1756]
13404
- str r2, [sp, #16]
13405
- ldr r2, [r5, #1752]
1340613868 ldr r3, [r3]
1340713869 bl printk
13408
- b .L2269
13409
-.L2280:
13410
- add r4, r4, #1
13411
- b .L2263
13412
-.L2279:
13413
- ldr r0, .L2281+36
13414
- ldr r1, .L2281+40
13415
- add sp, sp, #24
13416
- @ sp needed
13417
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
13418
- b printk
13419
-.L2282:
13870
+ b .L2233
13871
+.L2244:
1342013872 .align 2
13421
-.L2281:
13873
+.L2243:
1342213874 .word .LANCHOR0
1342313875 .word .LANCHOR2
13424
- .word .LANCHOR0+2386
13425
- .word .LANCHOR0+2390
1342613876 .word .LANCHOR0+2388
13877
+ .word .LANCHOR3+174
13878
+ .word .LC120
13879
+ .word .LANCHOR0+2332
13880
+ .word .LANCHOR0+2392
1342713881 .word .LC117
1342813882 .word .LC118
13429
- .word .LANCHOR2+1752
1343013883 .word .LC119
13431
- .word .LC120
13432
- .word .LANCHOR3+184
13884
+ .word .LANCHOR0+2390
1343313885 .fnend
1343413886 .size ftl_scan_all_ppa, .-ftl_scan_all_ppa
1343513887 .align 2
1343613888 .global FlashProgPages
13889
+ .syntax unified
13890
+ .arm
13891
+ .fpu softvfp
1343713892 .type FlashProgPages, %function
1343813893 FlashProgPages:
1343913894 .fnstart
13440
- @ args = 0, pretend = 0, frame = 64
13895
+ @ args = 0, pretend = 0, frame = 72
1344113896 @ frame_needed = 0, uses_anonymous_args = 0
13442
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13897
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1344313898 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13444
- .pad #76
13445
- sub sp, sp, #76
13446
- ldr r6, .L2339
13447
- mov r4, r0
13448
- str r1, [sp, #8]
13449
- mov r9, r2
13450
- str r3, [sp, #20]
13451
- ldr ip, [r6, #44]
13452
- ldrb r7, [r6] @ zero_extendqisi2
13899
+ .pad #84
13900
+ sub sp, sp, #84
13901
+ ldr r5, .L2298
13902
+ str r1, [sp, #12]
13903
+ ldr ip, [r5, #48]
13904
+ ldrb r8, [r5, #36] @ zero_extendqisi2
13905
+ str r3, [sp, #24]
1345313906 ldrb ip, [ip, #19] @ zero_extendqisi2
13454
- cmp r7, #0
13455
- str ip, [sp, #16]
13456
- ldr ip, .L2339+4
13457
- ldrb ip, [ip, #481] @ zero_extendqisi2
13458
- str ip, [sp, #12]
13459
- beq .L2284
13907
+ cmp r8, #0
13908
+ str ip, [sp, #20]
13909
+ bne .L2246
13910
+ ldr r3, .L2298+4
13911
+ mov r4, r0
13912
+ mov r9, r2
13913
+ ldrb r3, [r3, #477] @ zero_extendqisi2
13914
+ str r3, [sp, #16]
13915
+ add r3, r5, #1216
13916
+ add r3, r3, #4
13917
+ str r3, [sp, #28]
13918
+.L2247:
13919
+ ldr r3, [sp, #12]
13920
+ cmp r8, r3
13921
+ bcc .L2260
13922
+ ldr r7, .L2298+8
13923
+ mov r6, #0
13924
+.L2261:
13925
+ ldrb r3, [r5, #2234] @ zero_extendqisi2
13926
+ cmp r6, r3
13927
+ bcc .L2263
13928
+ ldr r3, [sp, #24]
13929
+ cmp r3, #0
13930
+ bne .L2264
13931
+.L2272:
13932
+ mov r0, #0
13933
+ b .L2245
13934
+.L2246:
1346013935 bl FlashProgSlc2KPages
13461
- b .L2285
13462
-.L2297:
13463
- mov r3, #36
13936
+.L2245:
13937
+ add sp, sp, #84
13938
+ @ sp needed
13939
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13940
+.L2260:
13941
+ ldr r3, [sp, #12]
13942
+ mov r7, #36
13943
+ mul r7, r7, r8
13944
+ add r2, sp, #36
1346413945 mov r1, r9
13465
- mul r8, r3, r7
13466
- ldr r3, [sp, #8]
13467
- add r2, sp, #28
13468
- rsb r3, r7, r3
13469
- add fp, r4, r8
13946
+ sub r3, r3, r8
1347013947 uxtb r3, r3
13948
+ add fp, r4, r7
1347113949 str r3, [sp]
1347213950 mov r0, fp
13473
- add r3, sp, #32
13951
+ add r3, sp, #40
1347413952 bl LogAddr2PhyAddr
13475
- ldrb r3, [r6, #2230] @ zero_extendqisi2
13953
+ ldrb r3, [r5, #2234] @ zero_extendqisi2
1347613954 mov r10, r0
13477
- ldr r0, [sp, #32]
13478
- cmp r0, r3
13479
- mvncs r3, #0
13480
- strcs r3, [r4, r8]
13481
- bcc .L2336
13482
-.L2287:
13483
- add r7, r7, #1
13484
-.L2284:
13485
- ldr r3, [sp, #8]
13486
- ldr r5, .L2339
13487
- cmp r7, r3
13488
- bcc .L2297
13489
- b .L2337
13490
-.L2336:
13491
- ldrb r3, [r6, #2240] @ zero_extendqisi2
13955
+ ldr r0, [sp, #40]
13956
+ cmp r3, r0
13957
+ mvnls r3, #0
13958
+ strls r3, [r4, r7]
13959
+ bls .L2250
13960
+ ldrb r3, [r5, #2244] @ zero_extendqisi2
1349213961 cmp r3, #0
13493
- add r3, r6, r0, asl #4
13494
- ldr r3, [r3, #2108]
13962
+ add r3, r5, r0, lsl #4
1349513963 moveq r10, #0
13964
+ ldr r3, [r3, #2112]
1349613965 cmp r3, #0
13497
- beq .L2289
13966
+ beq .L2252
1349813967 uxtb r0, r0
1349913968 bl FlashWaitCmdDone
13500
-.L2289:
13501
- ldr r3, [sp, #32]
13969
+.L2252:
13970
+ ldr r3, [sp, #40]
1350213971 mov r1, #0
1350313972 cmp r10, #0
13504
- add r2, r6, r3, asl #4
13505
- str r1, [r2, #2112]
13506
- ldr r1, [sp, #28]
13507
- str fp, [r2, #2108]
13508
- str r1, [r2, #2104]
13509
- addne r1, r8, #36
13973
+ add r2, r5, r3, lsl #4
13974
+ str r1, [r2, #2116]
13975
+ ldr r1, [sp, #36]
13976
+ str fp, [r2, #2112]
13977
+ str r1, [r2, #2108]
13978
+ addne r1, r7, #36
1351013979 addne r1, r4, r1
13511
- strne r1, [r2, #2112]
13512
- add r2, r6, r3
13513
- add r3, r6, r3, asl #4
13514
- ldrb r5, [r2, #2232] @ zero_extendqisi2
13515
- strb r5, [r3, #2100]
13516
- mov r0, r5
13517
- ldrb r3, [r6, #2230] @ zero_extendqisi2
13980
+ strne r1, [r2, #2116]
13981
+ add r2, r5, r3
13982
+ ldrb r6, [r2, #2236] @ zero_extendqisi2
13983
+ add r3, r5, r3, lsl #4
13984
+ strb r6, [r3, #2104]
13985
+ mov r0, r6
13986
+ ldrb r3, [r5, #2234] @ zero_extendqisi2
1351813987 cmp r3, #1
13519
- bne .L2291
13988
+ bne .L2254
1352013989 bl NandcWaitFlashReady
13521
- b .L2292
13522
-.L2291:
13523
- bl NandcFlashCs
13524
- mov r0, r5
13525
- ldr r3, [sp, #32]
13526
- ldr r1, [sp, #28]
13527
- add r3, r6, r3, asl #2
13528
- ldr r2, [r3, #1172]
13529
- adds r2, r2, #0
13530
- movne r2, #1
13531
- bl FlashWaitReadyEN
13532
- mov r0, r5
13533
- bl NandcFlashDeCs
13534
-.L2292:
13535
- ldr r3, [sp, #16]
13990
+.L2255:
13991
+ ldr r3, [sp, #20]
1353613992 sub r3, r3, #1
1353713993 cmp r3, #7
13538
- bhi .L2293
13539
- add r3, r6, r5
13540
- ldrb r3, [r3, #2064] @ zero_extendqisi2
13994
+ bhi .L2256
13995
+ add r3, r5, r6
13996
+ ldrb r3, [r3, #2068] @ zero_extendqisi2
1354113997 cmp r3, #0
13542
- beq .L2293
13543
- mov r0, r5
13544
- ldrb r1, [r6, #1211] @ zero_extendqisi2
13545
- ldr r2, .L2339+8
13998
+ beq .L2256
1354613999 mov r3, #0
14000
+ ldr r2, [sp, #28]
14001
+ ldrb r1, [r5, #1217] @ zero_extendqisi2
14002
+ mov r0, r6
1354714003 bl HynixSetRRPara
13548
-.L2293:
13549
- mov r0, r5
14004
+.L2256:
14005
+ mov r0, r6
1355014006 bl NandcFlashCs
1355114007 cmp r9, #1
13552
- mov r0, r5
13553
- bne .L2294
13554
- ldrb r3, [r6, #144] @ zero_extendqisi2
14008
+ mov r0, r6
14009
+ bne .L2257
14010
+ ldrb r3, [r5, #152] @ zero_extendqisi2
1355514011 cmp r3, #0
13556
- beq .L2294
14012
+ beq .L2257
1355714013 bl flash_enter_slc_mode
13558
- b .L2295
13559
-.L2294:
13560
- bl flash_exit_slc_mode
13561
-.L2295:
13562
- mov r0, r5
13563
- ldr r1, [sp, #28]
14014
+.L2258:
14015
+ ldr r1, [sp, #36]
14016
+ mov r0, r6
1356414017 bl FlashProgFirstCmd
1356514018 ldr r3, [fp, #12]
13566
- mov r0, r5
1356714019 mov r1, #1
14020
+ ldr r2, [sp, #16]
14021
+ mov r0, r6
1356814022 str r3, [sp]
13569
- ldr r2, [sp, #12]
1357014023 ldr r3, [fp, #8]
1357114024 bl NandcXferData
1357214025 cmp r10, #0
13573
- beq .L2296
13574
- mov r0, r5
13575
- ldr r1, [sp, #28]
14026
+ beq .L2259
14027
+ ldr r1, [sp, #36]
14028
+ mov r0, r6
1357614029 bl FlashProgDpFirstCmd
13577
- mov r0, r5
13578
- add r8, r8, #36
13579
- add r8, r4, r8
13580
- ldr r3, [sp, #32]
13581
- ldr r1, [sp, #28]
13582
- add r3, r6, r3, asl #2
13583
- ldr r2, [r3, #1172]
14030
+ ldr r3, [sp, #40]
14031
+ mov r0, r6
14032
+ ldr r1, [sp, #36]
14033
+ add r7, r7, #36
14034
+ add r7, r4, r7
14035
+ add r3, r5, r3, lsl #2
14036
+ ldr r2, [r3, #1180]
1358414037 adds r2, r2, #0
1358514038 movne r2, #1
1358614039 bl FlashWaitReadyEN
13587
- ldr r1, [r6, #4]
13588
- mov r0, r5
13589
- ldr r3, [sp, #28]
14040
+ ldr r3, [r5, #40]
14041
+ mov r0, r6
14042
+ ldr r1, [sp, #36]
1359014043 add r1, r1, r3
1359114044 bl FlashProgDpSecondCmd
13592
- ldr r3, [r8, #12]
13593
- mov r0, r5
14045
+ ldr r3, [r7, #12]
1359414046 mov r1, #1
14047
+ ldr r2, [sp, #16]
14048
+ mov r0, r6
1359514049 str r3, [sp]
13596
- ldr r2, [sp, #12]
13597
- ldr r3, [r8, #8]
14050
+ ldr r3, [r7, #8]
1359814051 bl NandcXferData
13599
-.L2296:
13600
- mov r0, r5
13601
- ldr r1, [sp, #28]
14052
+.L2259:
14053
+ ldr r1, [sp, #36]
14054
+ mov r0, r6
14055
+ add r8, r8, r10
1360214056 bl FlashProgSecondCmd
13603
- mov r0, r5
14057
+ mov r0, r6
1360414058 bl NandcFlashDeCs
13605
- add r7, r7, r10
13606
- b .L2287
13607
-.L2337:
13608
- ldr r8, .L2339+12
13609
- mov r6, #0
13610
- mov r7, r5
13611
-.L2298:
13612
- ldrb r3, [r5, #2230] @ zero_extendqisi2
13613
- cmp r6, r3
13614
- bcs .L2338
14059
+.L2250:
14060
+ add r8, r8, #1
14061
+ b .L2247
14062
+.L2254:
14063
+ bl NandcFlashCs
14064
+ ldr r3, [sp, #40]
14065
+ mov r0, r6
14066
+ ldr r1, [sp, #36]
14067
+ add r3, r5, r3, lsl #2
14068
+ ldr r2, [r3, #1180]
14069
+ adds r2, r2, #0
14070
+ movne r2, #1
14071
+ bl FlashWaitReadyEN
14072
+ mov r0, r6
14073
+ bl NandcFlashDeCs
14074
+ b .L2255
14075
+.L2257:
14076
+ bl flash_exit_slc_mode
14077
+ b .L2258
14078
+.L2263:
1361514079 uxtb r0, r6
1361614080 bl FlashWaitCmdDone
1361714081 cmp r9, #1
13618
- bne .L2299
13619
- ldrb r3, [r7, #144] @ zero_extendqisi2
14082
+ bne .L2262
14083
+ ldrb r3, [r5, #152] @ zero_extendqisi2
1362014084 cmp r3, #0
13621
- beq .L2299
13622
- ldrb r0, [r8, r6, asl #4] @ zero_extendqisi2
14085
+ beq .L2262
14086
+ ldrb r0, [r7, r6, lsl #4] @ zero_extendqisi2
1362314087 bl flash_exit_slc_mode
13624
-.L2299:
14088
+.L2262:
1362514089 add r6, r6, #1
13626
- b .L2298
13627
-.L2338:
13628
- ldr r3, [sp, #20]
13629
- cmp r3, #0
13630
- bne .L2301
13631
-.L2309:
13632
- mov r0, #0
13633
- b .L2285
13634
-.L2301:
13635
- ldr r5, .L2339+16
14090
+ b .L2261
14091
+.L2264:
14092
+ ldr r5, .L2298+12
1363614093 mov r6, #0
13637
- mov r7, r5
13638
-.L2302:
13639
- ldr r3, [sp, #8]
14094
+ ldr r7, .L2298+16
14095
+.L2265:
14096
+ ldr r3, [sp, #12]
1364014097 cmp r6, r3
13641
- beq .L2309
14098
+ beq .L2272
1364214099 ldr r3, [r4]
1364314100 cmn r3, #1
13644
- bne .L2303
14101
+ bne .L2266
1364514102 ldr r1, [r4, #4]
13646
- ldr r0, .L2339+20
14103
+ ldr r0, .L2298+20
1364714104 bl printk
13648
- b .L2304
13649
-.L2303:
13650
- ldr r3, [sp, #8]
13651
- mov r1, r9
13652
- add r2, sp, #28
13653
- mov r0, r4
13654
- rsb r3, r6, r3
13655
- uxtb r3, r3
13656
- str r3, [sp]
13657
- add r3, sp, #32
13658
- bl LogAddr2PhyAddr
13659
- ldr r2, [r5, #1724]
13660
- mov r3, #0
13661
- mov lr, r4
13662
- str r3, [r2]
13663
- ldr r2, [r5, #1728]
13664
- str r3, [r2]
13665
- ldmia lr!, {r0, r1, r2, r3}
13666
- add ip, sp, #36
13667
- stmia ip!, {r0, r1, r2, r3}
13668
- ldmia lr!, {r0, r1, r2, r3}
13669
- stmia ip!, {r0, r1, r2, r3}
13670
- add r0, sp, #36
13671
- ldr r3, [lr]
13672
- mov r1, #1
13673
- mov r2, r9
13674
- str r3, [ip]
13675
- ldr r3, [r5, #1724]
13676
- str r3, [sp, #44]
13677
- ldr r3, [r5, #1728]
13678
- str r3, [sp, #48]
13679
- bl FlashReadPages
13680
- ldr r8, [sp, #36]
13681
- cmn r8, #1
13682
- bne .L2305
13683
- ldr r0, .L2339+24
13684
- ldr r1, [r4, #4]
13685
- bl printk
13686
- str r8, [r4]
13687
-.L2305:
13688
- ldr r3, [r4, #12]
13689
- cmp r3, #0
13690
- beq .L2306
13691
- ldr r2, [r3]
13692
- ldr r3, [r7, #1728]
13693
- ldr r3, [r3]
13694
- cmp r2, r3
13695
- beq .L2306
13696
- ldr r0, .L2339+28
13697
- ldr r1, [r4, #4]
13698
- bl printk
13699
- mvn r3, #0
13700
- str r3, [r4]
13701
-.L2306:
13702
- ldr r3, [r4, #8]
13703
- cmp r3, #0
13704
- beq .L2304
13705
- ldr r2, [r3]
13706
- ldr r3, [r7, #1724]
13707
- ldr r3, [r3]
13708
- cmp r2, r3
13709
- beq .L2304
13710
- ldr r0, .L2339+32
13711
- ldr r1, [r4, #4]
13712
- bl printk
13713
- mvn r3, #0
13714
- str r3, [r4]
13715
-.L2304:
14105
+.L2267:
1371614106 add r6, r6, #1
1371714107 add r4, r4, #36
13718
- b .L2302
13719
-.L2285:
13720
- add sp, sp, #76
13721
- @ sp needed
13722
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13723
-.L2340:
14108
+ b .L2265
14109
+.L2266:
14110
+ ldr r3, [sp, #12]
14111
+ add r2, sp, #36
14112
+ mov r1, r9
14113
+ mov r0, r4
14114
+ sub r3, r3, r6
14115
+ uxtb r3, r3
14116
+ str r3, [sp]
14117
+ add r3, sp, #40
14118
+ bl LogAddr2PhyAddr
14119
+ ldr r2, [r5, #1732]
14120
+ mov r3, #0
14121
+ mov lr, r4
14122
+ add ip, sp, #44
14123
+ str r3, [r2]
14124
+ ldr r2, [r5, #1736]
14125
+ str r3, [r2]
14126
+ ldmia lr!, {r0, r1, r2, r3}
14127
+ stmia ip!, {r0, r1, r2, r3}
14128
+ ldmia lr!, {r0, r1, r2, r3}
14129
+ stmia ip!, {r0, r1, r2, r3}
14130
+ mov r2, r9
14131
+ ldr r3, [lr]
14132
+ mov r1, #1
14133
+ add r0, sp, #44
14134
+ str r3, [ip]
14135
+ ldr r3, [r5, #1732]
14136
+ str r3, [sp, #52]
14137
+ ldr r3, [r5, #1736]
14138
+ str r3, [sp, #56]
14139
+ bl FlashReadPages
14140
+ ldr r8, [sp, #44]
14141
+ cmn r8, #1
14142
+ bne .L2268
14143
+ ldr r1, [r4, #4]
14144
+ ldr r0, .L2298+24
14145
+ bl printk
14146
+ str r8, [r4]
14147
+.L2268:
14148
+ ldr r3, [r4, #12]
14149
+ cmp r3, #0
14150
+ beq .L2269
14151
+ ldr r2, [r3]
14152
+ ldr r3, [r5, #1736]
14153
+ ldr r3, [r3]
14154
+ cmp r2, r3
14155
+ beq .L2269
14156
+ ldr r1, [r4, #4]
14157
+ ldr r0, .L2298+28
14158
+ bl printk
14159
+ mvn r3, #0
14160
+ str r3, [r4]
14161
+.L2269:
14162
+ ldr r3, [r4, #8]
14163
+ cmp r3, #0
14164
+ beq .L2267
14165
+ ldr r2, [r3]
14166
+ ldr r3, [r5, #1732]
14167
+ ldr r3, [r3]
14168
+ cmp r2, r3
14169
+ beq .L2267
14170
+ ldr r1, [r4, #4]
14171
+ mov r0, r7
14172
+ bl printk
14173
+ mvn r3, #0
14174
+ str r3, [r4]
14175
+ b .L2267
14176
+.L2299:
1372414177 .align 2
13725
-.L2339:
14178
+.L2298:
1372614179 .word .LANCHOR0
1372714180 .word .LANCHOR1
13728
- .word .LANCHOR0+1214
13729
- .word .LANCHOR0+2100
14181
+ .word .LANCHOR0+2104
1373014182 .word .LANCHOR2
14183
+ .word .LC108
1373114184 .word .LC104
1373214185 .word .LC105
1373314186 .word .LC107
13734
- .word .LC108
1373514187 .fnend
1373614188 .size FlashProgPages, .-FlashProgPages
1373714189 .align 2
1373814190 .global FlashTestBlk
14191
+ .syntax unified
14192
+ .arm
14193
+ .fpu softvfp
1373914194 .type FlashTestBlk, %function
1374014195 FlashTestBlk:
1374114196 .fnstart
1374214197 @ args = 0, pretend = 0, frame = 104
1374314198 @ frame_needed = 0, uses_anonymous_args = 0
13744
- stmfd sp!, {r4, r5, lr}
14199
+ push {r4, r5, lr}
1374514200 .save {r4, r5, lr}
1374614201 .pad #108
1374714202 sub sp, sp, #108
13748
- ldr r5, .L2345
13749
- ldr r3, [r5, #1708]
14203
+ ldr r5, .L2304
14204
+ ldr r3, [r5, #1716]
1375014205 cmp r0, r3
1375114206 movcc r4, #0
13752
- bcc .L2342
13753
- ldr r3, [r5, #1716]
14207
+ bcc .L2300
14208
+ ldr r3, [r5, #1724]
1375414209 mov r4, r0
13755
- mov r1, #165
13756
- add r0, sp, #40
1375714210 mov r2, #32
14211
+ add r0, sp, #40
14212
+ mov r1, #165
1375814213 str r0, [sp, #16]
1375914214 str r3, [sp, #12]
1376014215 bl ftl_memset
13761
- mov r1, #90
1376214216 mov r2, #8
13763
- ldr r0, [r5, #1716]
13764
- mov r4, r4, asl #10
14217
+ mov r1, #90
14218
+ ldr r0, [r5, #1724]
1376514219 bl ftl_memset
13766
- mov r1, #1
13767
- mov r2, r1
13768
- add r0, sp, #4
13769
- str r4, [sp, #8]
13770
- bl FlashEraseBlocks
13771
- mov r1, #1
13772
- mov r2, r1
13773
- mov r3, r1
13774
- add r0, sp, #4
13775
- bl FlashProgPages
13776
- mov r1, #0
14220
+ lsl r0, r4, #10
1377714221 mov r2, #1
14222
+ mov r1, r2
14223
+ str r0, [sp, #8]
14224
+ add r0, sp, #4
14225
+ bl FlashEraseBlocks
14226
+ mov r3, #1
14227
+ add r0, sp, #4
14228
+ mov r2, r3
14229
+ mov r1, r3
14230
+ bl FlashProgPages
1377814231 ldr r4, [sp, #4]
14232
+ mov r2, #1
14233
+ mov r1, #0
1377914234 add r0, sp, #4
1378014235 adds r4, r4, #0
1378114236 movne r4, #1
1378214237 rsb r4, r4, #0
1378314238 bl FlashEraseBlocks
13784
-.L2342:
14239
+.L2300:
1378514240 mov r0, r4
1378614241 add sp, sp, #108
1378714242 @ sp needed
13788
- ldmfd sp!, {r4, r5, pc}
13789
-.L2346:
14243
+ pop {r4, r5, pc}
14244
+.L2305:
1379014245 .align 2
13791
-.L2345:
14246
+.L2304:
1379214247 .word .LANCHOR2
1379314248 .fnend
1379414249 .size FlashTestBlk, .-FlashTestBlk
1379514250 .align 2
1379614251 .global FlashMakeFactorBbt
14252
+ .syntax unified
14253
+ .arm
14254
+ .fpu softvfp
1379714255 .type FlashMakeFactorBbt, %function
1379814256 FlashMakeFactorBbt:
1379914257 .fnstart
1380014258 @ args = 0, pretend = 0, frame = 80
1380114259 @ frame_needed = 0, uses_anonymous_args = 0
13802
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14260
+ ldr r2, .L2357
14261
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1380314262 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1380414263 .pad #84
1380514264 sub sp, sp, #84
13806
- ldr r5, .L2403
13807
- mov r1, #1
13808
- ldr r4, .L2403+4
13809
- ldr r0, .L2403+8
13810
- ldr r3, [r5, #1720]
13811
- ldrh r8, [r4, #128]
13812
- str r3, [sp, #20]
13813
- ldrh r3, [r4, #130]
13814
- smulbb r8, r8, r3
13815
- ldr r3, [r4, #44]
13816
- ldrb r3, [r3, #24] @ zero_extendqisi2
13817
- uxth r8, r8
14265
+ ldr r5, .L2357
14266
+ mov r4, r2
14267
+ ldr r3, [r2, #1728]
1381814268 str r3, [sp, #24]
13819
- ldrh r3, [r4, #4]
13820
- str r3, [sp, #16]
13821
- ldrb r3, [r4] @ zero_extendqisi2
13822
- ldr r4, .L2403+4
14269
+ ldr r3, .L2357+4
14270
+ ldrh r0, [r3, #136]
14271
+ ldrh r1, [r3, #138]
14272
+ smulbb r1, r1, r0
14273
+ ldr r0, .L2357+8
14274
+ uxth r1, r1
14275
+ str r1, [sp, #4]
14276
+ ldr r1, [r3, #48]
14277
+ ldrb r1, [r1, #24] @ zero_extendqisi2
14278
+ str r1, [sp, #28]
14279
+ ldrh r1, [r3, #40]
14280
+ ldrb r3, [r3, #36] @ zero_extendqisi2
14281
+ str r1, [sp, #20]
1382314282 cmp r3, #1
13824
- ldreq r3, [sp, #16]
13825
- moveq r3, r3, asl #1
14283
+ moveq r3, r1
14284
+ mov r1, #1
14285
+ lsleq r3, r3, #1
1382614286 uxtheq r3, r3
13827
- streq r3, [sp, #16]
14287
+ streq r3, [sp, #20]
1382814288 bl printk
13829
- ldr r0, [r5, #1720]
13830
- mov r1, #0
14289
+ ldr r0, [r4, #1728]
1383114290 mov r2, #4096
14291
+ mov r1, #0
14292
+ ldr r4, .L2357+4
1383214293 bl ftl_memset
13833
- ldr r5, .L2403
13834
- mov r3, r8, lsr #4
13835
- str r3, [sp, #28]
14294
+ ldr r3, [sp, #4]
14295
+ lsr r3, r3, #4
14296
+ str r3, [sp, #32]
1383614297 mov r3, #0
13837
- str r3, [sp, #8]
13838
-.L2349:
13839
- ldrb r7, [sp, #8] @ zero_extendqisi2
13840
- ldrb r3, [r4, #2230] @ zero_extendqisi2
14298
+ str r3, [sp, #12]
14299
+.L2308:
14300
+ ldrb r7, [sp, #12] @ zero_extendqisi2
14301
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
1384114302 cmp r3, r7
13842
- bls .L2399
13843
- ldr r2, .L2403+12
13844
- mov r3, r7, asl #1
14303
+ bhi .L2335
14304
+ add sp, sp, #84
14305
+ @ sp needed
14306
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14307
+.L2335:
14308
+ ldr r2, .L2357+12
14309
+ lsl r3, r7, #1
1384514310 ldrh r6, [r2, r3]
1384614311 cmp r6, #0
13847
- bne .L2379
13848
- ldrh r2, [r4, #136]
14312
+ bne .L2309
14313
+ ldrh r2, [r4, #144]
1384914314 mov r1, r6
13850
- ldr r0, [r5, #1688]
14315
+ ldr r0, [r5, #1696]
14316
+ add fp, r4, r7, lsl #2
14317
+ mov r8, r6
1385114318 mov r9, r6
13852
- mov r2, r2, asl #9
14319
+ lsl r2, r2, #9
1385314320 bl ftl_memset
1385414321 add r3, r4, r7
13855
- ldrb r10, [r3, #2232] @ zero_extendqisi2
13856
- mov r3, r7, asl #2
13857
- add fp, r4, r3
13858
- str r6, [sp, #4]
13859
- str r3, [sp, #32]
13860
-.L2351:
13861
- ldrh r3, [sp, #4]
13862
- cmp r3, r8
13863
- str r3, [sp, #12]
13864
- bcs .L2361
14322
+ str r6, [sp, #8]
14323
+ ldrb r10, [r3, #2236] @ zero_extendqisi2
14324
+.L2310:
14325
+ ldrh r3, [sp, #8]
14326
+ ldr r2, [sp, #4]
14327
+ str r3, [sp, #16]
14328
+ cmp r3, r2
14329
+ bcc .L2321
14330
+.L2320:
14331
+ mov r2, r8
14332
+ mov r1, r7
14333
+ ldr r0, .L2357+16
14334
+ bl printk
14335
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
14336
+ ldr r2, [sp, #32]
14337
+ mul r3, r2, r3
14338
+ cmp r8, r3
14339
+ blt .L2322
14340
+ ldrh r2, [r4, #144]
14341
+ mov r1, #0
14342
+ ldr r0, [r5, #1696]
14343
+ lsl r2, r2, #9
14344
+ bl ftl_memset
14345
+.L2322:
14346
+ cmp r7, #0
14347
+ bne .L2324
14348
+ add r3, r5, #1712
14349
+ ldr r8, .L2357+20
14350
+ add r3, r3, #4
14351
+ ldrh r10, [r3]
14352
+ mov r9, #1
14353
+.L2325:
14354
+ ldrb r3, [r4, #37] @ zero_extendqisi2
14355
+ cmp r3, r10
14356
+ bhi .L2327
14357
+ ldr r3, [sp, #4]
14358
+ mov r10, #1
14359
+ ldr r9, .L2357+20
14360
+ sub fp, r3, #1
14361
+ sub r8, r3, #50
14362
+ uxth fp, fp
14363
+.L2328:
14364
+ cmp fp, r8
14365
+ bgt .L2330
14366
+ ldrb r3, [r4, #37] @ zero_extendqisi2
14367
+ ldr r2, [r5, #1716]
14368
+ sub r3, r3, r2
14369
+ cmp r6, r3
14370
+ bcc .L2324
14371
+ ldrh r2, [r4, #144]
14372
+ mov r1, #0
14373
+ ldr r0, [r5, #1696]
14374
+ lsl r2, r2, #9
14375
+ bl ftl_memset
14376
+.L2324:
14377
+ ldr r3, [sp, #4]
14378
+ ldrb r8, [sp, #12] @ zero_extendqisi2
14379
+ ldr r9, .L2357+12
14380
+ sub r6, r3, #1
14381
+ ldr fp, .L2357+24
14382
+ ldr r10, .L2357+28
14383
+ uxth r6, r6
14384
+ mul r8, r3, r8
14385
+ add r9, r9, r7, lsl #1
14386
+.L2332:
14387
+ mov r1, r7
14388
+ mov r2, r6
14389
+ mov r0, fp
14390
+ bl printk
14391
+ ldr r1, [r5, #1696]
14392
+.L2333:
14393
+ lsr r2, r6, #5
14394
+ and r3, r6, #31
14395
+ ldr r2, [r1, r2, lsl #2]
14396
+ lsr r3, r2, r3
14397
+ ands r3, r3, #1
14398
+ bne .L2334
14399
+ ldr r2, [sp, #24]
14400
+ add r0, sp, #44
14401
+ strh r6, [r9] @ movhi
14402
+ strh r10, [r2] @ movhi
14403
+ strh r6, [r2, #2] @ movhi
14404
+ strh r3, [r2, #8] @ movhi
14405
+ mov r2, #1
14406
+ ldr r3, [r5, #1696]
14407
+ mov r1, r2
14408
+ str r3, [sp, #52]
14409
+ ldr r3, [r5, #1728]
14410
+ str r3, [sp, #56]
14411
+ add r3, r6, r8
14412
+ lsl r3, r3, #10
14413
+ str r3, [sp, #48]
14414
+ bl FlashEraseBlocks
14415
+ mov r3, #1
14416
+ add r0, sp, #44
14417
+ mov r2, r3
14418
+ mov r1, r3
14419
+ bl FlashProgPages
14420
+ ldr r3, [sp, #44]
14421
+ cmp r3, #0
14422
+ beq .L2309
14423
+ sub r6, r6, #1
14424
+ uxth r6, r6
14425
+ b .L2332
14426
+.L2321:
1386514427 mvn r3, #0
1386614428 strb r3, [sp, #42]
1386714429 strb r3, [sp, #43]
13868
- ldr r3, [sp, #24]
14430
+ ldr r3, [sp, #28]
1386914431 tst r3, #1
13870
- beq .L2353
13871
- ldr r3, [fp, #1172]
14432
+ beq .L2312
14433
+ ldr r3, [fp, #1180]
1387214434 add r2, sp, #42
1387314435 mov r0, r10
13874
- add r3, r6, r3
13875
- str r3, [sp, #36]
14436
+ add r3, r9, r3
1387614437 mov r1, r3
14438
+ str r3, [sp, #36]
1387714439 bl FlashReadSpare
13878
- ldrb r2, [r4] @ zero_extendqisi2
13879
- cmp r2, #1
14440
+ ldrb r2, [r4, #36] @ zero_extendqisi2
1388014441 ldr r3, [sp, #36]
13881
- bne .L2353
13882
- ldr r1, [r4, #4]
14442
+ cmp r2, #1
14443
+ bne .L2312
14444
+ ldr r1, [r4, #40]
1388314445 add r2, sp, #43
1388414446 mov r0, r10
1388514447 add r1, r3, r1
....@@ -13888,1198 +14450,1097 @@
1388814450 ldrb r2, [sp, #43] @ zero_extendqisi2
1388914451 and r3, r3, r2
1389014452 strb r3, [sp, #42]
13891
-.L2353:
13892
- ldr r3, [sp, #24]
14453
+.L2312:
14454
+ ldr r3, [sp, #28]
1389314455 tst r3, #2
13894
- beq .L2355
13895
- ldr r3, [r4, #44]
13896
- mov r0, r10
14456
+ beq .L2314
14457
+ ldr r3, [r4, #48]
1389714458 add r2, sp, #43
14459
+ mov r0, r10
1389814460 ldrh r1, [r3, #10]
13899
- ldr r3, [fp, #1172]
14461
+ ldr r3, [fp, #1180]
1390014462 sub r1, r1, #1
1390114463 add r1, r1, r3
13902
- add r1, r1, r6
14464
+ add r1, r1, r9
1390314465 bl FlashReadSpare
13904
-.L2355:
13905
- ldr r2, [r4, #44]
14466
+.L2314:
14467
+ ldr r2, [r4, #48]
1390614468 ldrb r3, [r2, #7] @ zero_extendqisi2
13907
- cmp r3, #1
13908
- cmpne r3, #8
14469
+ cmp r3, #8
14470
+ cmpne r3, #1
1390914471 ldrb r3, [sp, #42] @ zero_extendqisi2
13910
- beq .L2356
14472
+ beq .L2315
1391114473 ldrb r2, [r2, #18] @ zero_extendqisi2
1391214474 cmp r2, #12
13913
- bne .L2357
13914
-.L2356:
14475
+ bne .L2316
14476
+.L2315:
1391514477 cmp r3, #0
13916
- ldrneb r0, [sp, #43] @ zero_extendqisi2
14478
+ ldrbne r0, [sp, #43] @ zero_extendqisi2
1391714479 clzne r0, r0
13918
- movne r0, r0, lsr #5
13919
- bne .L2358
13920
- b .L2378
13921
-.L2357:
14480
+ lsrne r0, r0, #5
14481
+ bne .L2317
14482
+.L2337:
14483
+ mov r0, #1
14484
+ b .L2317
14485
+.L2316:
1392214486 cmp r3, #255
13923
- bne .L2378
14487
+ bne .L2337
1392414488 ldrb r0, [sp, #43] @ zero_extendqisi2
1392514489 subs r0, r0, #255
1392614490 movne r0, #1
13927
- b .L2358
13928
-.L2378:
13929
- mov r0, #1
13930
-.L2358:
13931
- ldr r3, [sp, #24]
14491
+.L2317:
14492
+ ldr r3, [sp, #28]
1393214493 tst r3, #4
13933
- beq .L2359
13934
- ldr r3, .L2403+4
14494
+ beq .L2318
14495
+ ldr r1, [fp, #1180]
1393514496 mov r0, r10
13936
- ldr r2, [sp, #32]
13937
- add r3, r3, r2
13938
- ldr r1, [r3, #1172]
13939
- add r1, r6, r1
14497
+ add r1, r9, r1
1394014498 bl SandiskProgTestBadBlock
13941
-.L2359:
14499
+.L2318:
1394214500 cmp r0, #0
13943
- beq .L2360
14501
+ beq .L2319
14502
+ ldr r2, [sp, #8]
1394414503 mov r1, r7
13945
- ldr r2, [sp, #4]
13946
- ldr r0, .L2403+16
13947
- add r9, r9, #1
14504
+ ldr r0, .L2357+32
14505
+ add r8, r8, #1
1394814506 bl printk
13949
- ldr r1, [r5, #1688]
13950
- mov ip, #1
13951
- uxth r9, r9
13952
- ldr r3, [sp, #12]
13953
- mov r0, r3, lsr #5
13954
- and r3, r3, #31
13955
- ldr r2, [r1, r0, asl #2]
13956
- orr r3, r2, ip, asl r3
13957
- ldr r2, [sp, #28]
13958
- str r3, [r1, r0, asl #2]
13959
- ldrb r3, [r4, #2230] @ zero_extendqisi2
13960
- mul r3, r3, r2
13961
- cmp r9, r3
13962
- bgt .L2361
13963
-.L2360:
13964
- ldr r3, [sp, #4]
13965
- add r3, r3, #1
13966
- str r3, [sp, #4]
1396714507 ldr r3, [sp, #16]
13968
- add r6, r6, r3
13969
- b .L2351
13970
-.L2361:
13971
- mov r2, r9
13972
- ldr r0, .L2403+20
13973
- mov r1, r7
13974
- bl printk
13975
- ldrb r3, [r4, #2230] @ zero_extendqisi2
13976
- ldr r2, [sp, #28]
13977
- mul r3, r3, r2
13978
- cmp r9, r3
13979
- blt .L2363
13980
- ldrh r2, [r4, #136]
13981
- mov r1, #0
13982
- ldr r0, [r5, #1688]
13983
- mov r2, r2, asl #9
13984
- bl ftl_memset
13985
-.L2363:
13986
- cmp r7, #0
13987
- bne .L2365
13988
- ldr r3, [r5, #1708]
13989
- mov r6, r7
13990
- mov r9, #1
13991
- uxth r10, r3
13992
-.L2366:
13993
- ldr r3, .L2403+4
13994
- ldrb r3, [r3, #1] @ zero_extendqisi2
13995
- cmp r3, r10
13996
- bls .L2400
13997
- mov r0, r10
13998
- bl FlashTestBlk
13999
- cmp r0, #0
14000
- beq .L2367
14001
- mov r1, r10
14002
- ldr r0, .L2403+24
14003
- bl printk
14004
- ldr r1, [r5, #1688]
14005
- mov r0, r10, lsr #5
14006
- add r6, r6, #1
14007
- and r3, r10, #31
14008
- ldr r2, [r1, r0, asl #2]
14009
- uxth r6, r6
14010
- orr r3, r2, r9, asl r3
14011
- str r3, [r1, r0, asl #2]
14012
-.L2367:
14013
- add r10, r10, #1
14014
- uxth r10, r10
14015
- b .L2366
14016
-.L2400:
14017
- sub fp, r8, #1
14018
- sub r9, r8, #50
14019
- mov r10, #1
14020
- uxth fp, fp
14021
-.L2369:
14022
- cmp fp, r9
14023
- ble .L2401
14024
- mov r0, fp
14025
- bl FlashTestBlk
14026
- cmp r0, #0
14027
- beq .L2370
14028
- mov r1, fp
14029
- ldr r0, .L2403+24
14030
- bl printk
14031
- ldr r1, [r5, #1688]
14032
- mov r0, fp, lsr #5
14033
- and r3, fp, #31
14034
- ldr r2, [r1, r0, asl #2]
14035
- orr r3, r2, r10, asl r3
14036
- str r3, [r1, r0, asl #2]
14037
-.L2370:
14038
- sub fp, fp, #1
14039
- uxth fp, fp
14040
- b .L2369
14041
-.L2401:
14042
- ldr r3, .L2403+4
14043
- ldr r2, [r5, #1708]
14044
- ldrb r3, [r3, #1] @ zero_extendqisi2
14045
- rsb r3, r2, r3
14046
- cmp r6, r3
14047
- bcc .L2365
14048
- ldrh r2, [r4, #136]
14049
- mov r1, #0
14050
- ldr r0, [r5, #1688]
14051
- mov r2, r2, asl #9
14052
- bl ftl_memset
14053
-.L2365:
14054
- ldrb r6, [sp, #8] @ zero_extendqisi2
14055
- sub r10, r8, #1
14056
- ldr r9, .L2403+12
14057
- uxth r10, r10
14058
- mul r6, r8, r6
14059
- add r9, r9, r7, asl #1
14060
-.L2373:
14061
- mov r1, r7
14062
- ldr r0, .L2403+28
14063
- mov r2, r10
14064
- bl printk
14065
- ldr r1, [r5, #1688]
14066
-.L2374:
14067
- mov r2, r10, lsr #5
14068
- and r3, r10, #31
14069
- ldr r2, [r1, r2, asl #2]
14070
- mov r3, r2, lsr r3
14071
- ands r3, r3, #1
14072
- subne r10, r10, #1
14073
- uxthne r10, r10
14074
- bne .L2374
14075
-.L2402:
14076
- ldr r1, [sp, #20]
14077
- add r0, sp, #44
14078
- ldr r2, .L2403+32
14079
- strh r10, [r9] @ movhi
14080
- strh r10, [r1, #2] @ movhi
14081
- strh r2, [r1] @ movhi
14082
- strh r3, [r1, #8] @ movhi
14083
- mov r1, #1
14084
- ldr r3, [r5, #1688]
14085
- mov r2, r1
14086
- str r3, [sp, #52]
14087
- ldr r3, [r5, #1720]
14088
- str r3, [sp, #56]
14089
- add r3, r10, r6
14090
- mov r3, r3, asl #10
14091
- str r3, [sp, #48]
14092
- bl FlashEraseBlocks
14093
- mov r1, #1
14094
- mov r3, r1
14095
- mov r2, r1
14096
- add r0, sp, #44
14097
- bl FlashProgPages
14098
- ldr r3, [sp, #44]
14099
- cmp r3, #0
14100
- subne r10, r10, #1
14101
- uxthne r10, r10
14102
- bne .L2373
14103
-.L2379:
14508
+ mov ip, #1
14509
+ ldr r2, [r5, #1696]
14510
+ uxth r8, r8
14511
+ and r0, r3, #31
14512
+ lsr r1, r3, #5
14513
+ ldr r3, [r2, r1, lsl #2]
14514
+ orr r3, r3, ip, lsl r0
14515
+ str r3, [r2, r1, lsl #2]
14516
+ ldr r2, [sp, #32]
14517
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
14518
+ mul r3, r2, r3
14519
+ cmp r8, r3
14520
+ bgt .L2320
14521
+.L2319:
1410414522 ldr r3, [sp, #8]
1410514523 add r3, r3, #1
1410614524 str r3, [sp, #8]
14107
- b .L2349
14108
-.L2399:
14109
- add sp, sp, #84
14110
- @ sp needed
14111
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14112
-.L2404:
14525
+ ldr r3, [sp, #20]
14526
+ add r9, r9, r3
14527
+ b .L2310
14528
+.L2327:
14529
+ mov r0, r10
14530
+ bl FlashTestBlk
14531
+ cmp r0, #0
14532
+ beq .L2326
14533
+ mov r1, r10
14534
+ mov r0, r8
14535
+ bl printk
14536
+ ldr r1, [r5, #1696]
14537
+ lsr r0, r10, #5
14538
+ add r6, r6, #1
14539
+ and r3, r10, #31
14540
+ uxth r6, r6
14541
+ ldr r2, [r1, r0, lsl #2]
14542
+ orr r3, r2, r9, lsl r3
14543
+ str r3, [r1, r0, lsl #2]
14544
+.L2326:
14545
+ add r10, r10, #1
14546
+ uxth r10, r10
14547
+ b .L2325
14548
+.L2330:
14549
+ mov r0, fp
14550
+ bl FlashTestBlk
14551
+ cmp r0, #0
14552
+ beq .L2329
14553
+ mov r1, fp
14554
+ mov r0, r9
14555
+ bl printk
14556
+ ldr r1, [r5, #1696]
14557
+ lsr r0, fp, #5
14558
+ and r3, fp, #31
14559
+ ldr r2, [r1, r0, lsl #2]
14560
+ orr r3, r2, r10, lsl r3
14561
+ str r3, [r1, r0, lsl #2]
14562
+.L2329:
14563
+ sub fp, fp, #1
14564
+ uxth fp, fp
14565
+ b .L2328
14566
+.L2334:
14567
+ sub r6, r6, #1
14568
+ uxth r6, r6
14569
+ b .L2333
14570
+.L2309:
14571
+ ldr r3, [sp, #12]
14572
+ add r3, r3, #1
14573
+ str r3, [sp, #12]
14574
+ b .L2308
14575
+.L2358:
1411314576 .align 2
14114
-.L2403:
14577
+.L2357:
1411514578 .word .LANCHOR2
1411614579 .word .LANCHOR0
1411714580 .word .LC121
14118
- .word .LANCHOR2+1736
14119
- .word .LC122
14581
+ .word .LANCHOR2+1742
1412014582 .word .LC123
1412114583 .word .LC124
1412214584 .word .LC125
1412314585 .word -3872
14586
+ .word .LC122
1412414587 .fnend
1412514588 .size FlashMakeFactorBbt, .-FlashMakeFactorBbt
1412614589 .align 2
1412714590 .global FtlLowFormatEraseBlock
14591
+ .syntax unified
14592
+ .arm
14593
+ .fpu softvfp
1412814594 .type FtlLowFormatEraseBlock, %function
1412914595 FtlLowFormatEraseBlock:
1413014596 .fnstart
1413114597 @ args = 0, pretend = 0, frame = 24
1413214598 @ frame_needed = 0, uses_anonymous_args = 0
14133
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14599
+ ldr r3, .L2404
14600
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1413414601 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1413514602 .pad #28
1413614603 sub sp, sp, #28
14137
- ldr r9, .L2455
14138
- ldr fp, .L2455+4
14139
- ldr r5, [r9, #-3616]
14140
- ldrb r3, [fp, #2240] @ zero_extendqisi2
14141
- cmp r5, #0
14142
- str r3, [sp, #16]
14143
- movne r0, #0
14144
- bne .L2406
14145
- ldrb r3, [fp, #144] @ zero_extendqisi2
14146
- mov r6, fp
14147
- add fp, fp, #2400
14148
- mov r10, r9
14149
- mov r4, r5
14150
- mov r9, r5
14604
+ ldr r2, [r3, #-3612]
14605
+ cmp r2, #0
14606
+ movne r4, #0
14607
+ bne .L2359
14608
+ ldr r5, .L2404+4
14609
+ mov r10, r3
14610
+ ldr fp, .L2404+8
14611
+ mov r9, r2
14612
+ mov r6, r2
14613
+ mov r4, r2
14614
+ ldrb r3, [r5, #2244] @ zero_extendqisi2
1415114615 mov r8, #36
14152
- str r1, [sp]
14153
- str r0, [sp, #4]
14154
- str r3, [sp, #8]
14616
+ str r1, [sp, #4]
14617
+ str r0, [sp, #8]
14618
+ str r3, [sp, #20]
14619
+ ldrb r3, [r5, #152] @ zero_extendqisi2
1415514620 str r0, [r10, #-548]
14156
-.L2407:
14157
- ldr ip, .L2455+4
14158
- add r1, ip, #2320
14159
- ldrh r0, [r1]
14621
+ str r3, [sp, #12]
14622
+.L2361:
14623
+ ldrh r0, [fp]
1416014624 uxth r1, r9
1416114625 cmp r0, r1
14162
- bls .L2450
14163
- mul r0, r8, r1
14164
- ldr ip, [r10, #-3612]
14626
+ bhi .L2365
14627
+ cmp r6, #0
14628
+ beq .L2359
14629
+ ldr r3, [sp, #12]
14630
+ mov r8, #0
14631
+ mov r2, r6
14632
+ ldr r0, [r10, #-3608]
14633
+ strb r8, [r5, #2244]
14634
+ mov r9, #36
14635
+ adds r7, r3, #0
14636
+ movne r7, #1
14637
+ mov r1, r7
14638
+ bl FlashEraseBlocks
14639
+ ldrb r3, [sp, #20] @ zero_extendqisi2
14640
+ strb r3, [r5, #2244]
14641
+.L2367:
14642
+ uxth r2, r8
14643
+ cmp r6, r2
14644
+ bhi .L2369
14645
+ ldr r3, [sp, #4]
14646
+ cmp r3, #0
14647
+ bne .L2370
14648
+ uxth r7, r7
14649
+ mov r3, #6
14650
+ str r3, [sp, #16]
14651
+ mov r3, #1
14652
+ str r3, [sp, #12]
14653
+.L2371:
14654
+ ldr r6, .L2404
14655
+ mov r9, #0
14656
+.L2380:
14657
+ ldr fp, .L2404+4
14658
+ mov r10, #0
14659
+ mov r5, r10
14660
+.L2372:
14661
+ ldr r3, .L2404+8
14662
+ ldrh r1, [r3]
14663
+ uxth r3, r10
14664
+ cmp r1, r3
14665
+ bhi .L2375
14666
+ cmp r5, #0
14667
+ beq .L2359
14668
+ mov r3, #1
14669
+ mov r8, #0
14670
+ mov r2, r7
14671
+ mov r1, r5
14672
+ ldr r0, [r6, #-3608]
14673
+ strb r8, [fp, #2244]
14674
+ bl FlashProgPages
14675
+ ldrb r3, [sp, #20] @ zero_extendqisi2
14676
+ strb r3, [fp, #2244]
14677
+ mov fp, #36
14678
+.L2377:
14679
+ uxth r3, r8
14680
+ cmp r5, r3
14681
+ bhi .L2379
14682
+ ldr r3, [sp, #16]
14683
+ add r9, r9, r3
14684
+ ldr r3, [sp, #12]
14685
+ uxth r9, r9
14686
+ cmp r3, r9
14687
+ bhi .L2380
14688
+ mov r8, #0
14689
+ mov r9, #36
14690
+.L2381:
14691
+ uxth r3, r8
14692
+ cmp r5, r3
14693
+ ldr r3, [sp, #4]
14694
+ bhi .L2383
14695
+ adds r0, r3, #0
14696
+ ldr r3, [sp, #8]
14697
+ movne r0, #1
14698
+ cmp r3, #63
14699
+ orrls r0, r0, #1
14700
+ cmp r0, #0
14701
+ beq .L2359
14702
+ mov r2, r5
14703
+ mov r1, r7
14704
+ ldr r0, [r6, #-3608]
14705
+ bl FlashEraseBlocks
14706
+.L2359:
14707
+ mov r0, r4
14708
+ add sp, sp, #28
14709
+ @ sp needed
14710
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14711
+.L2365:
14712
+ uxth r1, r9
14713
+ ldr ip, [r10, #-3608]
1416514714 mov r3, #0
14715
+ mul r0, r8, r1
1416614716 str r3, [ip, r0]
14167
- ldr r3, .L2455+4
14168
- add r1, r3, r1
14169
- ldrb r0, [r1, #2348] @ zero_extendqisi2
14170
- ldr r1, [sp, #4]
14717
+ add r0, r5, r1
14718
+ ldrb r0, [r0, #2350] @ zero_extendqisi2
14719
+ ldr r1, [sp, #8]
1417114720 bl V2P_block
14172
- ldr r3, [sp]
14721
+ ldr r3, [sp, #4]
1417314722 mov r7, r0
1417414723 cmp r3, #0
14175
- beq .L2408
14724
+ beq .L2362
1417614725 bl IsBlkInVendorPart
1417714726 cmp r0, #0
14178
- bne .L2409
14179
-.L2408:
14727
+ bne .L2363
14728
+.L2362:
1418014729 mov r0, r7
1418114730 bl FtlBbmIsBadBlock
1418214731 cmp r0, #0
1418314732 addne r4, r4, #1
1418414733 uxthne r4, r4
14185
- bne .L2409
14186
- ldr ip, [r10, #-3612]
14187
- mov r7, r7, asl #10
14188
- ldrh r1, [fp]
14189
- mla ip, r8, r5, ip
14190
- mul r1, r1, r5
14191
- add r5, r5, #1
14192
- uxth r5, r5
14193
- cmp r1, #0
14734
+ bne .L2363
14735
+ ldr r3, .L2404+12
14736
+ lsl r7, r7, #10
14737
+ ldr ip, [r10, #-3608]
14738
+ ldrh r1, [r3]
14739
+ mla ip, r8, r6, ip
14740
+ mul r1, r6, r1
14741
+ add r6, r6, #1
14742
+ uxth r6, r6
1419414743 str r0, [ip, #8]
14195
- add r0, r1, #3
1419614744 str r7, [ip, #4]
14745
+ add r0, r1, #3
14746
+ cmp r1, #0
1419714747 movlt r1, r0
1419814748 ldr r0, [r10, #-496]
1419914749 bic r1, r1, #3
1420014750 add r1, r0, r1
1420114751 str r1, [ip, #12]
14202
-.L2409:
14752
+.L2363:
1420314753 add r9, r9, #1
14204
- b .L2407
14205
-.L2450:
14206
- cmp r5, #0
14207
- beq .L2430
14208
- ldr r3, [sp, #8]
14209
- mov r2, r5
14210
- ldr r0, [r10, #-3612]
14211
- mov r8, #0
14212
- adds r7, r3, #0
14213
- strb r8, [ip, #2240]
14214
- str ip, [sp, #8]
14215
- mov r9, #36
14216
- movne r7, #1
14217
- mov r1, r7
14218
- bl FlashEraseBlocks
14219
- ldrb r3, [sp, #16] @ zero_extendqisi2
14220
- ldr ip, [sp, #8]
14221
- strb r3, [ip, #2240]
14222
-.L2413:
14223
- uxth r2, r8
14224
- cmp r2, r5
14225
- bcs .L2451
14754
+ b .L2361
14755
+.L2369:
1422614756 mul r2, r9, r8
14227
- ldr r1, [r10, #-3612]
14228
- add r0, r1, r2
14757
+ ldr r1, [r10, #-3608]
14758
+ add ip, r1, r2
1422914759 ldr r2, [r1, r2]
1423014760 cmn r2, #1
14231
- bne .L2414
14232
- ldr r0, [r0, #4]
14761
+ bne .L2368
14762
+ ldr r0, [ip, #4]
1423314763 add r4, r4, #1
14234
- ubfx r0, r0, #10, #16
1423514764 uxth r4, r4
14765
+ ubfx r0, r0, #10, #16
1423614766 bl FtlBbmMapBadBlock
14237
-.L2414:
14767
+.L2368:
1423814768 add r8, r8, #1
14239
- b .L2413
14240
-.L2451:
14241
- ldr r3, [sp]
14242
- cmp r3, #0
14243
- bne .L2416
14244
- mov r3, #6
14245
- uxth r7, r7
14769
+ b .L2367
14770
+.L2370:
14771
+ movw r3, #2392
14772
+ ldrh r3, [r5, r3]
1424614773 str r3, [sp, #12]
14247
- mov r3, #1
14248
- str r3, [sp, #8]
14249
- b .L2417
14250
-.L2416:
14251
- movw r3, #2390
14252
- ldrh r3, [r6, r3]
14253
- str r3, [sp, #8]
14254
- ldrb r3, [r6, #144] @ zero_extendqisi2
14774
+ ldrb r3, [r5, #152] @ zero_extendqisi2
1425514775 cmp r3, #0
14256
- ldreq r3, [sp, #8]
14257
- moveq r7, #1
14776
+ ldreq r3, [sp, #12]
1425814777 movne r7, #1
14259
- strne r7, [sp, #12]
14260
- moveq r3, r3, lsr #2
14261
- streq r3, [sp, #12]
14262
-.L2417:
14263
- ldr r10, .L2455
14264
- mov r5, #0
14265
- mov r8, r10
14266
-.L2426:
14267
- mov fp, #0
14268
- mov r6, fp
14269
-.L2418:
14270
- ldr r9, .L2455+4
14271
- add r3, r9, #2320
14272
- ldrh r1, [r3]
14273
- uxth r3, fp
14274
- cmp r1, r3
14275
- bls .L2452
14778
+ moveq r7, #1
14779
+ strne r7, [sp, #16]
14780
+ lsreq r3, r3, #2
14781
+ streq r3, [sp, #16]
14782
+ b .L2371
14783
+.L2375:
14784
+ uxth r3, r10
1427614785 mov r2, #36
14277
- ldr r0, [r10, #-3612]
14786
+ ldr r0, [r6, #-3608]
1427814787 mul r1, r2, r3
14788
+ add r3, fp, r3
1427914789 mov r2, #0
1428014790 str r2, [r0, r1]
14281
- ldr r2, .L2455+4
14282
- ldr r1, [sp, #4]
14283
- add r3, r2, r3
14284
- ldrb r0, [r3, #2348] @ zero_extendqisi2
14791
+ ldr r1, [sp, #8]
14792
+ ldrb r0, [r3, #2350] @ zero_extendqisi2
1428514793 bl V2P_block
14286
- ldr r3, [sp]
14287
- mov r9, r0
14794
+ ldr r3, [sp, #4]
14795
+ mov r8, r0
1428814796 cmp r3, #0
14289
- beq .L2419
14797
+ beq .L2373
1429014798 bl IsBlkInVendorPart
1429114799 cmp r0, #0
14292
- bne .L2420
14293
-.L2419:
14294
- mov r0, r9
14800
+ bne .L2374
14801
+.L2373:
14802
+ mov r0, r8
1429514803 bl FtlBbmIsBadBlock
1429614804 cmp r0, #0
14297
- bne .L2420
14298
- ldr r1, [r8, #-3612]
14805
+ bne .L2374
14806
+ ldr r1, [r6, #-3608]
1429914807 mov r3, #36
14300
- add r9, r5, r9, asl #10
14301
- mla r1, r3, r6, r1
14302
- ldr r3, [r8, #-508]
14808
+ add r8, r9, r8, lsl #10
14809
+ mla r1, r3, r5, r1
14810
+ ldr r3, [r6, #-508]
1430314811 str r3, [r1, #8]
14304
- ldr r3, .L2455+8
14305
- str r9, [r1, #4]
14812
+ ldr r3, .L2404+12
14813
+ str r8, [r1, #4]
1430614814 ldrh r3, [r3]
14307
- mul r3, r3, r6
14308
- add r6, r6, #1
14309
- uxth r6, r6
14815
+ mul r3, r5, r3
14816
+ add r5, r5, #1
14817
+ uxth r5, r5
1431014818 add r0, r3, #3
1431114819 cmp r3, #0
1431214820 movlt r3, r0
14313
- ldr r0, [r8, #-504]
14821
+ ldr r0, [r6, #-504]
1431414822 bic r3, r3, #3
1431514823 add r3, r0, r3
1431614824 str r3, [r1, #12]
14317
-.L2420:
14318
- add fp, fp, #1
14319
- b .L2418
14320
-.L2452:
14321
- cmp r6, #0
14322
- beq .L2430
14323
- mov r2, r7
14324
- mov r3, #1
14325
- ldr r0, [r10, #-3612]
14326
- mov r1, r6
14327
- mov fp, #0
14328
- strb fp, [r9, #2240]
14329
- bl FlashProgPages
14330
- mov r2, #36
14331
- ldrb r3, [sp, #16] @ zero_extendqisi2
14332
- strb r3, [r9, #2240]
14333
- ldr r9, .L2455
14334
-.L2423:
14335
- uxth r3, fp
14336
- cmp r3, r6
14337
- bcs .L2453
14338
- mul r3, r2, fp
14339
- ldr r1, [r8, #-3612]
14340
- add r0, r1, r3
14341
- ldr r3, [r1, r3]
14342
- cmp r3, #0
14343
- beq .L2424
14344
- ldr r0, [r0, #4]
14345
- add r4, r4, #1
14346
- str r2, [sp, #20]
14347
- ubfx r0, r0, #10, #16
14348
- uxth r4, r4
14349
- bl FtlBbmMapBadBlock
14350
- ldr r2, [sp, #20]
14351
-.L2424:
14352
- add fp, fp, #1
14353
- b .L2423
14354
-.L2453:
14355
- ldr r3, [sp, #12]
14356
- add r5, r5, r3
14357
- ldr r3, [sp, #8]
14358
- uxth r5, r5
14359
- cmp r5, r3
14360
- bcc .L2426
14361
- mov r5, #0
14362
- mov r8, #36
14363
-.L2427:
14364
- uxth r3, r5
14365
- cmp r3, r6
14366
- ldr r3, [sp]
14367
- bcs .L2454
14368
- cmp r3, #0
14369
- beq .L2428
14370
- mul r3, r8, r5
14371
- ldr r2, [r9, #-3612]
14825
+.L2374:
14826
+ add r10, r10, #1
14827
+ b .L2372
14828
+.L2379:
14829
+ mul r3, fp, r8
14830
+ ldr r2, [r6, #-3608]
1437214831 add r1, r2, r3
1437314832 ldr r3, [r2, r3]
1437414833 cmp r3, #0
14375
- bne .L2428
14834
+ beq .L2378
14835
+ ldr r0, [r1, #4]
14836
+ add r4, r4, #1
14837
+ uxth r4, r4
14838
+ ubfx r0, r0, #10, #16
14839
+ bl FtlBbmMapBadBlock
14840
+.L2378:
14841
+ add r8, r8, #1
14842
+ b .L2377
14843
+.L2383:
14844
+ cmp r3, #0
14845
+ beq .L2382
14846
+ mul r3, r9, r8
14847
+ ldr r2, [r6, #-3608]
14848
+ add r1, r2, r3
14849
+ ldr r3, [r2, r3]
14850
+ cmp r3, #0
14851
+ bne .L2382
1437614852 ldr r0, [r1, #4]
1437714853 mov r1, #1
1437814854 ubfx r0, r0, #10, #16
1437914855 bl FtlFreeSysBlkQueueIn
14380
-.L2428:
14381
- add r5, r5, #1
14382
- b .L2427
14383
-.L2454:
14384
- adds r1, r3, #0
14385
- ldr r3, [sp, #4]
14386
- movne r1, #1
14387
- cmp r3, #63
14388
- orrls r1, r1, #1
14389
- cmp r1, #0
14390
- beq .L2430
14391
- ldr r0, [r9, #-3612]
14392
- mov r1, r7
14393
- mov r2, r6
14394
- bl FlashEraseBlocks
14395
-.L2430:
14396
- mov r0, r4
14397
-.L2406:
14398
- add sp, sp, #28
14399
- @ sp needed
14400
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14401
-.L2456:
14856
+.L2382:
14857
+ add r8, r8, #1
14858
+ b .L2381
14859
+.L2405:
1440214860 .align 2
14403
-.L2455:
14861
+.L2404:
1440414862 .word .LANCHOR2
1440514863 .word .LANCHOR0
14406
- .word .LANCHOR0+2400
14864
+ .word .LANCHOR0+2324
14865
+ .word .LANCHOR0+2402
1440714866 .fnend
1440814867 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
1440914868 .align 2
1441014869 .global FtlBbmTblFlush
14870
+ .syntax unified
14871
+ .arm
14872
+ .fpu softvfp
1441114873 .type FtlBbmTblFlush, %function
1441214874 FtlBbmTblFlush:
1441314875 .fnstart
14414
- @ args = 0, pretend = 0, frame = 8
14876
+ @ args = 0, pretend = 0, frame = 0
1441514877 @ frame_needed = 0, uses_anonymous_args = 0
14416
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14878
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1441714879 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14418
- .pad #20
14419
- sub sp, sp, #20
14420
- ldr r4, .L2475
14421
- ldr r5, [r4, #-3616]
14880
+ .pad #12
14881
+ ldr r4, .L2421
14882
+ ldr r5, [r4, #-3612]
1442214883 cmp r5, #0
14423
- bne .L2459
14424
- ldr r3, [r4, #-500]
14884
+ bne .L2408
14885
+ ldr r7, .L2421+4
14886
+ sub r10, r4, #436
14887
+ ldr r8, .L2421+8
1442514888 mov r1, r5
14426
- ldr r2, .L2475+4
14427
- sub r9, r4, #436
1442814889 ldr r0, [r4, #-524]
14429
- str r3, [r4, #1764]
14430
- movw r3, #2398
14431
- ldrh r2, [r2, r3]
14432
- str r0, [r4, #1760]
14433
- bl ftl_memset
14434
- ldr r6, .L2475+8
14435
- sub r8, r6, #134
14436
-.L2460:
14437
- ldrh r3, [r8]
14438
- ldr r7, .L2475+4
14439
- cmp r5, r3
14440
- bge .L2474
14441
- ldrh r2, [r9]
14442
- ldr r3, [r4, #1760]
14443
- ldr r1, [r6, #4]!
14444
- mul r0, r2, r5
14445
- mov r2, r2, asl #2
14446
- add r5, r5, #1
14447
- add r0, r3, r0, asl #2
14448
- bl ftl_memcpy
14449
- b .L2460
14450
-.L2474:
14451
- ldr r9, [r4, #1764]
14452
- mov r1, #255
14453
- mov r2, #16
14454
- ldr r5, .L2475+12
14455
- ldr r10, .L2475
14456
- mov r6, #0
14457
- mov r0, r9
14458
- bl ftl_memset
14459
- ldr r3, .L2475+16
14460
- mov r8, r5
14461
- strh r3, [r9] @ movhi
14462
- ldr r3, [r7, #2460]
14463
- str r3, [r9, #4]
14464
- movw r3, #2452
14465
- ldrh r3, [r7, r3]
14466
- strh r3, [r9, #2] @ movhi
14467
- ldrh r3, [r5, #4]
14468
- strh r3, [r9, #8] @ movhi
14469
- ldrh r3, [r5, #6]
14470
- strh r3, [r9, #10] @ movhi
14471
- ldr r3, [r7, #2316]
14472
- strh r3, [r9, #12] @ movhi
14473
- str r6, [sp, #12]
14474
-.L2462:
14475
- ldr r3, [r4, #-524]
14476
- mov fp, #0
14477
- ldrh r1, [r5]
14478
- ldrh r2, [r5, #2]
14479
- str r3, [r4, #1760]
1448014890 ldr r3, [r4, #-500]
14481
- str fp, [r4, #1752]
14891
+ mov r6, r7
14892
+ sub r7, r7, #2400
14893
+ ldrh r2, [r6], #80
14894
+ mov r9, r7
14895
+ str r0, [r4, #1768]
14896
+ str r3, [r4, #1772]
14897
+ bl ftl_memset
14898
+.L2409:
14899
+ ldrh r3, [r8]
14900
+ cmp r5, r3
14901
+ blt .L2410
14902
+ ldr r6, [r4, #1772]
14903
+ mov r2, #16
14904
+ mov r1, #255
14905
+ ldr r5, .L2421+12
14906
+ ldr fp, .L2421+16
14907
+ mov r0, r6
14908
+ bl ftl_memset
14909
+ ldr r3, .L2421+20
14910
+ strh r3, [r6] @ movhi
14911
+ ldr r3, [r7, #2464]
14912
+ str r3, [r6, #4]
14913
+ movw r3, #2456
14914
+ ldrh r3, [r7, r3]
14915
+ strh r3, [r6, #2] @ movhi
14916
+ ldrh r3, [r5, #4]
14917
+ strh r3, [r6, #8] @ movhi
14918
+ ldrh r3, [r5, #6]
14919
+ strh r3, [r6, #10] @ movhi
14920
+ ldr r3, [r7, #2320]
14921
+ mov r7, #0
14922
+ mov r8, r7
14923
+ strh r3, [r6, #12] @ movhi
14924
+.L2411:
14925
+ ldr r3, [r4, #-524]
14926
+ mov r10, #0
14927
+ ldrh r2, [r5, #2]
14928
+ ldrh r1, [r5]
14929
+ str r3, [r4, #1768]
14930
+ ldr r3, [r4, #-500]
14931
+ str r10, [r4, #1760]
14932
+ str r3, [r4, #1772]
14933
+ orr r3, r2, r1, lsl #10
14934
+ ldrh r0, [r6, #10]
1448214935 str r3, [r4, #1764]
14483
- orr r3, r2, r1, asl #10
14484
- ldrh r0, [r9, #10]
14485
- str r3, [r4, #1756]
1448614936 ldrh r3, [r5, #4]
1448714937 str r0, [sp]
14488
- ldr r0, .L2475+20
14938
+ mov r0, fp
1448914939 bl printk
14490
- ldr r3, .L2475+24
14940
+ ldr r3, .L2421+24
1449114941 ldrh r2, [r5, #2]
1449214942 ldrh r3, [r3]
1449314943 sub r3, r3, #1
1449414944 cmp r2, r3
14495
- blt .L2463
14496
- ldr r3, [r7, #2460]
14497
- mov r1, #1
14498
- ldrh r2, [r8]
14945
+ blt .L2412
14946
+ ldr r3, [r9, #2464]
14947
+ ldrh r2, [r5]
14948
+ ldr r0, [r4, #-3608]
1449914949 add r3, r3, #1
14500
- ldr r0, [r10, #-3612]
14501
- str r3, [r7, #2460]
14502
- str r3, [r9, #4]
14503
- ldrh r3, [r8, #4]
14504
- strh r2, [r9, #8] @ movhi
14505
- strh r2, [r8, #4] @ movhi
14506
- mov r2, r1
14507
- strh r3, [r8] @ movhi
14508
- mov r3, r3, asl #10
14509
- str r3, [r10, #1756]
14950
+ strh r10, [r5, #2] @ movhi
14951
+ str r3, [r9, #2464]
14952
+ str r3, [r6, #4]
14953
+ ldrh r3, [r5, #4]
14954
+ strh r2, [r6, #8] @ movhi
14955
+ strh r2, [r5, #4] @ movhi
14956
+ mov r2, #1
14957
+ strh r3, [r5] @ movhi
14958
+ mov r1, r2
14959
+ lsl r3, r3, #10
14960
+ str r3, [r4, #1764]
1451014961 str r3, [r0, #4]
14511
- strh fp, [r8, #2] @ movhi
1451214962 bl FlashEraseBlocks
14513
-.L2463:
14514
- mov r1, #1
14515
- ldr r0, .L2475+28
14516
- mov r3, r1
14517
- mov r2, r1
14963
+.L2412:
14964
+ mov r3, #1
14965
+ ldr r0, .L2421+28
14966
+ mov r2, r3
14967
+ mov r1, r3
1451814968 bl FlashProgPages
1451914969 ldrh r3, [r5, #2]
14520
- ldr fp, .L2475
1452114970 add r3, r3, #1
1452214971 strh r3, [r5, #2] @ movhi
14523
- ldr r3, [r4, #1752]
14972
+ ldr r3, [r4, #1760]
1452414973 cmn r3, #1
14525
- bne .L2464
14526
- add r6, r6, #1
14527
- ldr r0, .L2475+32
14528
- ldr r1, [r10, #1756]
14529
- uxth r6, r6
14974
+ bne .L2413
14975
+ add r7, r7, #1
14976
+ ldr r1, [r4, #1764]
14977
+ uxth r7, r7
14978
+ ldr r0, .L2421+32
1453014979 bl printk
14531
- cmp r6, #3
14532
- bls .L2462
14533
- ldr r0, .L2475+36
14534
- mov r2, r6
14535
- ldr r1, [fp, #1756]
14980
+ cmp r7, #3
14981
+ bls .L2411
14982
+ mov r2, r7
14983
+ ldr r1, [r4, #1764]
14984
+ ldr r0, .L2421+36
1453614985 bl printk
1453714986 mov r3, #1
14538
- str r3, [fp, #-3616]
14539
- b .L2459
14540
-.L2464:
14541
- ldr r2, [sp, #12]
14542
- add r2, r2, #1
14543
- str r2, [sp, #12]
14544
- cmp r2, #1
14545
- beq .L2462
14546
- cmp r3, #256
14547
- beq .L2462
14548
-.L2459:
14987
+ str r3, [r4, #-3612]
14988
+.L2408:
1454914989 mov r0, #0
14550
- add sp, sp, #20
14990
+ add sp, sp, #12
1455114991 @ sp needed
14552
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14553
-.L2476:
14992
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14993
+.L2410:
14994
+ ldrh r2, [r10]
14995
+ ldr r3, [r4, #1768]
14996
+ ldr r1, [r6, #4]!
14997
+ mul r0, r5, r2
14998
+ lsl r2, r2, #2
14999
+ add r5, r5, #1
15000
+ add r0, r3, r0, lsl #2
15001
+ bl ftl_memcpy
15002
+ b .L2409
15003
+.L2416:
15004
+ mov r8, #1
15005
+ b .L2411
15006
+.L2413:
15007
+ add r8, r8, #1
15008
+ cmp r8, #1
15009
+ ble .L2416
15010
+ cmp r3, #256
15011
+ bne .L2408
15012
+ b .L2411
15013
+.L2422:
1455415014 .align 2
14555
-.L2475:
15015
+.L2421:
1455615016 .word .LANCHOR2
14557
- .word .LANCHOR0
14558
- .word .LANCHOR0+2476
14559
- .word .LANCHOR0+2452
14560
- .word -3887
15017
+ .word .LANCHOR0+2400
15018
+ .word .LANCHOR0+2346
15019
+ .word .LANCHOR0+2456
1456115020 .word .LC126
14562
- .word .LANCHOR0+2390
14563
- .word .LANCHOR2+1752
15021
+ .word -3887
15022
+ .word .LANCHOR0+2392
15023
+ .word .LANCHOR2+1760
1456415024 .word .LC127
1456515025 .word .LC128
1456615026 .fnend
1456715027 .size FtlBbmTblFlush, .-FtlBbmTblFlush
1456815028 .align 2
1456915029 .global allocate_data_superblock
15030
+ .syntax unified
15031
+ .arm
15032
+ .fpu softvfp
1457015033 .type allocate_data_superblock, %function
1457115034 allocate_data_superblock:
1457215035 .fnstart
14573
- @ args = 0, pretend = 0, frame = 16
15036
+ @ args = 0, pretend = 0, frame = 24
1457415037 @ frame_needed = 0, uses_anonymous_args = 0
14575
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15038
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1457615039 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14577
- .pad #20
14578
- sub sp, sp, #20
14579
- ldr r4, .L2532
14580
- ldr r3, [r4, #-3616]
15040
+ .pad #28
15041
+ sub sp, sp, #28
15042
+ ldr r4, .L2473
15043
+ ldr r3, [r4, #-3612]
1458115044 cmp r3, #0
14582
- bne .L2478
14583
- mov r5, r0
14584
- mov r8, r4
14585
-.L2479:
14586
- ldr r3, .L2532+4
14587
- ldr r10, .L2532+8
14588
- cmp r5, r3
14589
- ldrb r2, [r5, #8] @ zero_extendqisi2
14590
- bne .L2480
14591
- ldrh r3, [r5, #-100]
14592
- ldr ip, [r8, #-2708]
14593
- mov r0, r3, lsr #1
14594
- mul lr, ip, r3
14595
- add r1, r0, #1
14596
- add r1, r1, lr, lsr #2
14597
- ldr lr, [r10, #2244]
14598
- cmp lr, #0
15045
+ bne .L2424
15046
+ sub r9, r4, #3520
15047
+ mov r7, r0
15048
+ sub r3, r9, #8
15049
+ str r3, [sp, #12]
15050
+.L2425:
15051
+ ldr r3, .L2473+4
15052
+ ldr r8, .L2473+8
15053
+ ldrb r2, [r7, #8] @ zero_extendqisi2
15054
+ cmp r7, r3
15055
+ bne .L2426
15056
+ ldrh r0, [r9, #-4]
15057
+ ldr lr, [r4, #-2708]
15058
+ lsr ip, r0, #1
15059
+ mul r5, lr, r0
15060
+ add r1, ip, #1
15061
+ add r1, r1, r5, lsr #2
15062
+ ldr r5, [r8, #2248]
1459915063 uxth r1, r1
14600
- beq .L2481
14601
- ldr lr, [r8, #-3308]
14602
- cmp lr, #39
14603
- bhi .L2481
14604
- cmp lr, #2
14605
- bls .L2506
14606
- cmp ip, #0
14607
- movne r3, #0
14608
- andeq r3, r3, #1
14609
- cmp r3, #0
14610
- moveq r1, r0
14611
- beq .L2481
14612
- b .L2506
14613
-.L2480:
15064
+ cmp r5, #0
15065
+ beq .L2427
15066
+ ldr r5, [r4, #-3308]
15067
+ cmp r5, #39
15068
+ bhi .L2427
15069
+ cmp r5, #2
15070
+ bls .L2453
15071
+ cmp lr, #0
15072
+ movne r0, #0
15073
+ andeq r0, r0, #1
15074
+ cmp r0, #0
15075
+ moveq r1, ip
15076
+ beq .L2427
15077
+.L2453:
15078
+ mov r1, #0
15079
+ b .L2428
15080
+.L2426:
1461415081 cmp r2, #1
14615
- bne .L2506
14616
- ldr r1, .L2532+12
15082
+ bne .L2453
15083
+ ldr r1, .L2473+12
1461715084 ldrh r1, [r1]
1461815085 cmp r1, #1
14619
- beq .L2506
14620
- ldrb r1, [r10, #144] @ zero_extendqisi2
15086
+ beq .L2453
15087
+ ldrb r1, [r8, #152] @ zero_extendqisi2
1462115088 cmp r1, #0
14622
- bne .L2506
14623
- ldr r0, [r10, #2244]
14624
- ldrh r3, [r3, #-100]
14625
- cmp r0, #0
14626
- mov r1, r3, lsr #3
14627
- beq .L2481
14628
- ldr r0, [r8, #-3308]
14629
- cmp r0, #1
14630
- rsbls r3, r3, r3, asl #3
14631
- ubfxls r1, r3, #3, #16
14632
-.L2481:
15089
+ bne .L2453
15090
+ ldr ip, [r8, #2248]
15091
+ ldrh r0, [r9, #-4]
15092
+ cmp ip, #0
15093
+ lsr r1, r0, #3
15094
+ beq .L2427
15095
+ ldr ip, [r4, #-3308]
15096
+ cmp ip, #1
15097
+ rsbls r0, r0, r0, lsl #3
15098
+ ubfxls r1, r0, #3, #16
15099
+.L2427:
1463315100 cmp r1, #0
1463415101 subne r1, r1, #1
1463515102 uxthne r1, r1
14636
- b .L2482
14637
-.L2506:
14638
- mov r1, #0
14639
-.L2482:
14640
- ldr r0, .L2532+16
15103
+.L2428:
15104
+ ldr r0, [sp, #12]
1464115105 bl List_pop_index_node
14642
- ldr r2, .L2532+20
14643
- ldrh r3, [r2]
14644
- sub r3, r3, #1
14645
- strh r3, [r2] @ movhi
14646
- ldr r3, .L2532+24
14647
- ldrh r3, [r3]
14648
- uxth r9, r0
14649
- cmp r3, r9
14650
- bls .L2479
14651
- ldr r3, [r8, #-3544]
14652
- mov r7, r9, asl #1
14653
- ldrh r6, [r3, r7]
14654
- cmp r6, #0
14655
- bne .L2479
14656
- strh r9, [r5] @ movhi
14657
- mov r0, r5
14658
- bl make_superblock
14659
- ldrb r3, [r5, #7] @ zero_extendqisi2
14660
- cmp r3, #0
14661
- beq .L2484
14662
- ldr r2, .L2532+28
14663
- add ip, r5, #14
14664
- ldr r0, [r8, #-3612]
14665
- ldrh lr, [r2]
14666
- mov r2, #36
14667
- mov r3, r0
14668
- mla r1, r2, lr, r0
14669
- mov lr, r6
14670
- str r1, [sp]
14671
- b .L2485
14672
-.L2484:
14673
- ldr r3, [r8, #-3544]
14674
- b .L2527
14675
-.L2485:
14676
- ldr r1, [sp]
14677
- cmp r3, r1
14678
- beq .L2529
14679
- str lr, [r3, #8]
14680
- movw fp, #65535
14681
- str lr, [r3, #12]
14682
- add r3, r3, #36
14683
- ldrh r1, [ip, #2]!
14684
- cmp r1, fp
14685
- movne r1, r1, asl #10
14686
- mlane fp, r2, r6, r0
14687
- addne r6, r6, #1
14688
- uxthne r6, r6
14689
- strne r1, [fp, #4]
14690
- b .L2485
14691
-.L2529:
14692
- ldr r3, .L2532+32
14693
- ldr r2, [r10, #2244]
14694
- rsb r3, r3, r5
14695
- clz r3, r3
14696
- cmp r2, #0
14697
- mov r3, r3, lsr #5
14698
- moveq r3, #0
14699
- cmp r3, #0
14700
- beq .L2488
14701
- ldr r3, [r8, #-3608]
14702
- ldrh r3, [r3, r7]
14703
- cmp r3, #40
14704
- movhi r3, #0
14705
- strhib r3, [r8, #-3516]
14706
-.L2488:
14707
- ldrb r3, [r5, #8] @ zero_extendqisi2
14708
- ldr r2, [r4, #-3608]
14709
- cmp r3, #0
14710
- ldr fp, .L2532+36
14711
- ldrh r3, [r2, r7]
14712
- bne .L2489
14713
- cmp r3, #0
14714
- mov r0, r9
14715
- ldrneh r1, [fp]
14716
- moveq r3, #2
14717
- addne r3, r3, r1
14718
- mov r1, #0
14719
- uxthne r3, r3
14720
- strh r3, [r2, r7] @ movhi
14721
- ldr r3, [r4, #-3324]
14722
- add r3, r3, #1
14723
- str r3, [r4, #-3324]
14724
- bl ftl_set_blk_mode
14725
- b .L2491
14726
-.L2489:
14727
- add r3, r3, #1
14728
- strh r3, [r2, r7] @ movhi
14729
- ldr r2, [r4, #-3368]
14730
- mov r1, r9, lsr #5
14731
- ldr r3, [r4, #-3320]
14732
- mov r0, #1
14733
- add r3, r3, #1
14734
- str r3, [r4, #-3320]
14735
- ldr ip, [r2, r1, asl #2]
14736
- and r3, r9, #31
14737
- orr r3, ip, r0, asl r3
14738
- str r3, [r2, r1, asl #2]
14739
-.L2491:
14740
- ldr r3, [r4, #-3608]
14741
- ldr r2, [r4, #-3312]
14742
- ldr r0, [r4, #-3324]
14743
- ldrh r3, [r3, r7]
14744
- cmp r3, r2
14745
- ldrh r2, [fp]
14746
- strhi r3, [r8, #-3312]
14747
- ldr r3, [r4, #-3320]
14748
- mla r0, r0, r2, r3
14749
- ldr r3, .L2532+24
14750
- ldrh r1, [r3]
14751
- bl __aeabi_uidiv
14752
- ldr r2, [r4, #-480]
14753
- ldr r1, [r4, #-3612]
14754
- ldr r3, [r2, #16]
14755
- add r3, r3, #1
14756
- str r3, [r2, #16]
14757
- mov r3, #36
14758
- add r2, r1, #4
14759
- mla r3, r3, r6, r1
14760
- add r3, r3, #40
14761
- str r0, [r4, #-3316]
14762
-.L2493:
14763
- add r2, r2, #36
15106
+ ldrh r2, [r9, #-4]
15107
+ uxth r3, r0
15108
+ ldr r10, .L2473+16
15109
+ str r3, [sp, #4]
15110
+ sub r2, r2, #1
15111
+ strh r2, [r9, #-4] @ movhi
15112
+ ldrh r2, [r10]
1476415113 cmp r2, r3
14765
- ldrne r1, [r2, #-36]
14766
- bicne r1, r1, #1020
14767
- bicne r1, r1, #3
14768
- strne r1, [r2, #-36]
14769
- bne .L2493
14770
-.L2530:
14771
- ldrb r3, [r10, #144] @ zero_extendqisi2
14772
- cmp r3, #0
14773
- beq .L2495
14774
- ldrb r3, [r5, #8] @ zero_extendqisi2
15114
+ bls .L2425
15115
+ ldr r2, [r4, #-3540]
15116
+ lsl r5, r3, #1
15117
+ ldrh r6, [r2, r5]
15118
+ cmp r6, #0
15119
+ bne .L2425
15120
+ ldrh r3, [sp, #4]
15121
+ mov r0, r7
15122
+ strh r3, [r7] @ movhi
15123
+ bl make_superblock
15124
+ ldrb r2, [r7, #7] @ zero_extendqisi2
15125
+ cmp r2, #0
15126
+ beq .L2470
15127
+ ldr r0, [r4, #-3608]
15128
+ add r3, r7, #16
15129
+ ldrh ip, [r10, #-8]
15130
+ mov r1, #36
15131
+ str r3, [sp, #8]
15132
+ add fp, r7, #16
15133
+ mov r2, r0
15134
+ str r1, [sp, #16]
15135
+ mla r3, r1, ip, r0
15136
+ mov ip, r6
15137
+.L2431:
15138
+ cmp r3, r2
15139
+ bne .L2433
15140
+ ldr r2, [r8, #2248]
15141
+ adds r2, r2, #0
15142
+ movne r2, #1
15143
+ cmp r7, r9
15144
+ movne r2, #0
15145
+ cmp r2, #0
15146
+ beq .L2434
15147
+ ldr r2, [r4, #-3604]
15148
+ ldrh r2, [r2, r5]
15149
+ cmp r2, #40
15150
+ movhi r2, #0
15151
+ strbhi r2, [r4, #-3512]
15152
+.L2434:
15153
+ ldrb r2, [r7, #8] @ zero_extendqisi2
15154
+ ldr r1, [r4, #-3604]
15155
+ ldr fp, .L2473+20
15156
+ cmp r2, #0
15157
+ ldrh r2, [r1, r5]
15158
+ bne .L2435
15159
+ cmp r2, #0
15160
+ ldrhne r0, [fp]
15161
+ moveq r2, #2
15162
+ addne r2, r2, r0
15163
+ ldr r0, [sp, #4]
15164
+ strh r2, [r1, r5] @ movhi
15165
+ mov r1, #0
15166
+ ldr r2, [r4, #-3324]
15167
+ add r2, r2, #1
15168
+ str r2, [r4, #-3324]
15169
+ bl ftl_set_blk_mode
15170
+.L2438:
15171
+ ldr r2, [r4, #-3604]
15172
+ ldr r1, [r4, #-3312]
15173
+ ldr ip, [r4, #-3324]
15174
+ ldrh r2, [r2, r5]
15175
+ ldrh r0, [fp]
15176
+ cmp r2, r1
15177
+ ldrh r1, [r10]
15178
+ strhi r2, [r4, #-3312]
15179
+ ldr r2, [r4, #-3320]
15180
+ mla r0, ip, r0, r2
15181
+ bl __aeabi_uidiv
15182
+ ldr r1, [r4, #-480]
15183
+ str r0, [r4, #-3316]
15184
+ ldr r0, [r4, #-3608]
15185
+ ldr r2, [r1, #16]
15186
+ ldr ip, .L2473+24
15187
+ add r2, r2, #1
15188
+ str r2, [r1, #16]
15189
+ mov r1, #36
15190
+ mla r1, r1, r6, r0
15191
+ add r2, r0, #4
15192
+ add r1, r1, #40
15193
+.L2440:
15194
+ add r2, r2, #36
15195
+ cmp r1, r2
15196
+ bne .L2441
15197
+ ldrb r2, [r8, #152] @ zero_extendqisi2
15198
+ cmp r2, #0
15199
+ beq .L2442
15200
+ ldrb r2, [r7, #8] @ zero_extendqisi2
15201
+ ldr r0, [r4, #-3608]
15202
+ cmp r2, #1
1477515203 mov r2, r6
14776
- ldr r0, [r4, #-3612]
14777
- cmp r3, #1
1477815204 moveq r1, #0
1477915205 movne r1, #1
1478015206 bl FlashEraseBlocks
14781
-.L2495:
14782
- ldrb r1, [r5, #8] @ zero_extendqisi2
15207
+.L2442:
15208
+ ldrb r1, [r7, #8] @ zero_extendqisi2
1478315209 mov r2, r6
14784
- ldr r0, [r4, #-3612]
14785
- mov fp, #0
15210
+ ldr r0, [r4, #-3608]
15211
+ mov r10, #0
1478615212 bl FlashEraseBlocks
14787
- add r1, r5, #16
14788
- mov r2, fp
14789
- mov ip, #36
14790
-.L2497:
14791
- uxth r3, fp
14792
- cmp r3, r6
14793
- bcs .L2531
14794
- mul r3, ip, fp
14795
- ldr lr, [r4, #-3612]
14796
- add r0, lr, r3
14797
- ldr r3, [lr, r3]
14798
- cmn r3, #1
14799
- bne .L2498
14800
- ldr r0, [r0, #4]
14801
- add r2, r2, #1
14802
- stmib sp, {r1, r3, ip}
14803
- ubfx r0, r0, #10, #16
14804
- str r2, [sp]
14805
- bl FtlBbmMapBadBlock
14806
- ldmib sp, {r1, r3}
14807
- ldr ip, [sp, #12]
14808
- ldr r2, [sp]
14809
- strh r3, [r1] @ movhi
14810
- ldrb r3, [r5, #7] @ zero_extendqisi2
14811
- sub r3, r3, #1
14812
- strb r3, [r5, #7]
14813
-.L2498:
14814
- add fp, fp, #1
14815
- add r1, r1, #2
14816
- b .L2497
14817
-.L2531:
14818
- cmp r2, #0
14819
- beq .L2500
14820
- mov r0, r9
15213
+ mov fp, r10
15214
+ mov r1, #36
15215
+.L2444:
15216
+ uxth r2, r10
15217
+ cmp r6, r2
15218
+ bhi .L2446
15219
+ cmp fp, #0
15220
+ ble .L2447
15221
+ ldr r0, [sp, #4]
1482115222 bl update_multiplier_value
1482215223 bl FtlBbmTblFlush
14823
-.L2500:
14824
- ldrb r3, [r5, #7] @ zero_extendqisi2
14825
- cmp r3, #0
14826
- bne .L2501
14827
- ldr r3, [r4, #-3544]
14828
-.L2527:
14829
- mvn r2, #0
14830
- strh r2, [r3, r7] @ movhi
14831
- b .L2479
14832
-.L2501:
14833
- movw r2, #2388
14834
- ldrh r2, [r10, r2]
14835
- strh r9, [r5] @ movhi
14836
- smulbb r3, r2, r3
14837
- mov r2, #0
14838
- strh r2, [r5, #2] @ movhi
14839
- strb r2, [r5, #6]
14840
- ldr r2, [r4, #-3332]
14841
- ldr r1, [r4, #-3544]
14842
- uxth r3, r3
14843
- strh r3, [r5, #4] @ movhi
14844
- str r2, [r5, #12]
15224
+.L2447:
15225
+ ldrb r1, [r7, #7] @ zero_extendqisi2
15226
+ cmp r1, #0
15227
+ bne .L2448
15228
+.L2470:
15229
+ ldr r2, [r4, #-3540]
15230
+ mvn r1, #0
15231
+ strh r1, [r2, r5] @ movhi
15232
+ b .L2425
15233
+.L2433:
15234
+ str ip, [r2, #8]
15235
+ movw lr, #65535
15236
+ str ip, [r2, #12]
15237
+ add r2, r2, #36
15238
+ ldrh r1, [fp], #2
15239
+ cmp r1, lr
15240
+ ldrne lr, [sp, #16]
15241
+ lslne r1, r1, #10
15242
+ mlane lr, lr, r6, r0
15243
+ addne r6, r6, #1
15244
+ uxthne r6, r6
15245
+ strne r1, [lr, #4]
15246
+ b .L2431
15247
+.L2435:
1484515248 add r2, r2, #1
14846
- str r2, [r4, #-3332]
14847
- ldrh r2, [r5]
14848
- mov r2, r2, asl #1
14849
- strh r3, [r1, r2] @ movhi
14850
-.L2478:
15249
+ ldr r0, [sp, #4]
15250
+ strh r2, [r1, r5] @ movhi
15251
+ ldr r2, [r4, #-3320]
15252
+ add r2, r2, #1
15253
+ str r2, [r4, #-3320]
15254
+ bl ftl_set_blk_mode.part.9
15255
+ b .L2438
15256
+.L2441:
15257
+ ldr r0, [r2, #-36]
15258
+ and r0, r0, ip
15259
+ str r0, [r2, #-36]
15260
+ b .L2440
15261
+.L2446:
15262
+ mul r2, r1, r10
15263
+ ldr r0, [r4, #-3608]
15264
+ add ip, r0, r2
15265
+ ldr r2, [r0, r2]
15266
+ cmn r2, #1
15267
+ bne .L2445
15268
+ ldr r0, [ip, #4]
15269
+ add fp, fp, #1
15270
+ str r1, [sp, #20]
15271
+ str r2, [sp, #16]
15272
+ ubfx r0, r0, #10, #16
15273
+ bl FtlBbmMapBadBlock
15274
+ ldr r2, [sp, #16]
15275
+ ldr r3, [sp, #8]
15276
+ ldr r1, [sp, #20]
15277
+ strh r2, [r3] @ movhi
15278
+ ldrb r2, [r7, #7] @ zero_extendqisi2
15279
+ sub r2, r2, #1
15280
+ strb r2, [r7, #7]
15281
+.L2445:
15282
+ ldr r3, [sp, #8]
15283
+ add r10, r10, #1
15284
+ add r3, r3, #2
15285
+ str r3, [sp, #8]
15286
+ b .L2444
15287
+.L2448:
15288
+ movw r2, #2390
15289
+ ldrh r3, [sp, #4]
15290
+ ldrh r2, [r8, r2]
15291
+ strh r3, [r7] @ movhi
15292
+ smulbb r2, r2, r1
15293
+ mov r1, #0
15294
+ strh r1, [r7, #2] @ movhi
15295
+ strb r1, [r7, #6]
15296
+ ldr r1, [r4, #-3332]
15297
+ uxth r2, r2
15298
+ strh r2, [r7, #4] @ movhi
15299
+ str r1, [r7, #12]
15300
+ add r1, r1, #1
15301
+ str r1, [r4, #-3332]
15302
+ ldrh r3, [r7]
15303
+ ldr r1, [r4, #-3540]
15304
+ lsl r3, r3, #1
15305
+ strh r2, [r1, r3] @ movhi
15306
+.L2424:
1485115307 mov r0, #0
14852
- add sp, sp, #20
15308
+ add sp, sp, #28
1485315309 @ sp needed
14854
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14855
-.L2533:
15310
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
15311
+.L2474:
1485615312 .align 2
14857
-.L2532:
15313
+.L2473:
1485815314 .word .LANCHOR2
14859
- .word .LANCHOR2-3428
15315
+ .word .LANCHOR2-3424
1486015316 .word .LANCHOR0
14861
- .word .LANCHOR0+2340
14862
- .word .LANCHOR2-3532
14863
- .word .LANCHOR2-3528
14864
- .word .LANCHOR0+2328
14865
- .word .LANCHOR0+2320
14866
- .word .LANCHOR2-3524
14867
- .word .LANCHOR0+2380
15317
+ .word .LANCHOR0+2344
15318
+ .word .LANCHOR0+2332
15319
+ .word .LANCHOR0+2382
15320
+ .word -1024
1486815321 .fnend
1486915322 .size allocate_data_superblock, .-allocate_data_superblock
1487015323 .align 2
1487115324 .global FtlGcFreeBadSuperBlk
15325
+ .syntax unified
15326
+ .arm
15327
+ .fpu softvfp
1487215328 .type FtlGcFreeBadSuperBlk, %function
1487315329 FtlGcFreeBadSuperBlk:
1487415330 .fnstart
1487515331 @ args = 0, pretend = 0, frame = 8
1487615332 @ frame_needed = 0, uses_anonymous_args = 0
14877
- ldr r3, .L2548
14878
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
15333
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1487915334 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1488015335 .pad #12
14881
- ldrh r2, [r3, #-2]
14882
- cmp r2, #0
14883
- beq .L2536
14884
- sub r10, r3, #2
14885
- mov r7, r0
14886
- mov r9, #0
14887
- mov r5, r3
14888
- mov r8, r10
14889
-.L2535:
14890
- ldr r3, .L2548+4
14891
- add r2, r3, #2320
14892
- ldrh r1, [r2]
14893
- uxth r2, r9
14894
- cmp r1, r2
14895
- bls .L2545
14896
- add r3, r3, r2
14897
- mov r1, r7
14898
- mov fp, #0
14899
- ldrb r0, [r3, #2348] @ zero_extendqisi2
14900
- bl V2P_block
14901
- mov r6, r0
14902
-.L2537:
14903
- ldrh r3, [r10]
14904
- uxth r4, fp
14905
- cmp r3, r4
14906
- bls .L2546
14907
- mov r3, r4, asl #1
14908
- add ip, r5, r3
14909
- ldrh r3, [r5, r3]
14910
- cmp r3, r6
14911
- bne .L2538
14912
- mov r1, r6
14913
- ldr r0, .L2548+8
14914
- str ip, [sp, #4]
14915
- bl printk
14916
- mov r0, r6
14917
- bl FtlBbmMapBadBlock
14918
- bl FtlBbmTblFlush
14919
- ldrh r2, [r10]
14920
- ldr ip, [sp, #4]
14921
- mov r3, ip
14922
-.L2539:
14923
- cmp r4, r2
14924
- ldrcch r1, [r3, #2]
14925
- addcc r4, r4, #1
14926
- uxthcc r4, r4
14927
- strcch r1, [r3], #2 @ movhi
14928
- bcc .L2539
14929
-.L2547:
14930
- sub r2, r2, #1
14931
- strh r2, [r8] @ movhi
14932
-.L2538:
14933
- add fp, fp, #1
14934
- b .L2537
14935
-.L2546:
14936
- add r9, r9, #1
14937
- b .L2535
14938
-.L2545:
15336
+ ldr r4, .L2488
15337
+ ldrh r3, [r4, #-2]
15338
+ cmp r3, #0
15339
+ beq .L2476
15340
+ ldr r9, .L2488+4
15341
+ mov r6, #0
15342
+ ldr r8, .L2488+8
15343
+ ldr r10, .L2488+12
15344
+ str r0, [sp]
15345
+.L2477:
15346
+ ldrh r2, [r8]
15347
+ uxth r3, r6
15348
+ cmp r2, r3
15349
+ bhi .L2483
1493915350 bl FtlGcReFreshBadBlk
14940
-.L2536:
15351
+.L2476:
1494115352 mov r0, #0
1494215353 add sp, sp, #12
1494315354 @ sp needed
14944
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14945
-.L2549:
15355
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
15356
+.L2483:
15357
+ uxtah r3, r9, r6
15358
+ ldr r1, [sp]
15359
+ mov fp, #0
15360
+ ldrb r0, [r3, #2350] @ zero_extendqisi2
15361
+ bl V2P_block
15362
+ mov r7, r0
15363
+.L2478:
15364
+ ldrh r3, [r4, #-2]
15365
+ uxth r5, fp
15366
+ cmp r3, r5
15367
+ addls r6, r6, #1
15368
+ bls .L2477
15369
+.L2482:
15370
+ uxth r3, fp
15371
+ lsl r1, r3, #1
15372
+ ldrh r1, [r4, r1]
15373
+ cmp r1, r7
15374
+ bne .L2479
15375
+ mov r1, r7
15376
+ mov r0, r10
15377
+ str r3, [sp, #4]
15378
+ bl printk
15379
+ mov r0, r7
15380
+ bl FtlBbmMapBadBlock
15381
+ bl FtlBbmTblFlush
15382
+ ldr r3, [sp, #4]
15383
+ ldrh r1, [r4, #-2]
15384
+ add r3, r4, r3, lsl #1
15385
+.L2480:
15386
+ cmp r5, r1
15387
+ bcc .L2481
15388
+ sub r1, r1, #1
15389
+ strh r1, [r4, #-2] @ movhi
15390
+.L2479:
15391
+ add fp, fp, #1
15392
+ b .L2478
15393
+.L2481:
15394
+ ldrh r0, [r3, #2]!
15395
+ add r5, r5, #1
15396
+ uxth r5, r5
15397
+ strh r0, [r3, #-2] @ movhi
15398
+ b .L2480
15399
+.L2489:
1494615400 .align 2
14947
-.L2548:
15401
+.L2488:
1494815402 .word .LANCHOR2-2656
1494915403 .word .LANCHOR0
15404
+ .word .LANCHOR0+2324
1495015405 .word .LC129
1495115406 .fnend
1495215407 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
1495315408 .align 2
1495415409 .global update_vpc_list
15410
+ .syntax unified
15411
+ .arm
15412
+ .fpu softvfp
1495515413 .type update_vpc_list, %function
1495615414 update_vpc_list:
1495715415 .fnstart
1495815416 @ args = 0, pretend = 0, frame = 0
1495915417 @ frame_needed = 0, uses_anonymous_args = 0
14960
- ldr r2, .L2560
14961
- stmfd sp!, {r3, r4, r5, lr}
14962
- .save {r3, r4, r5, lr}
14963
- mov r3, r0, asl #1
14964
- ldr r1, [r2, #-3544]
14965
- mov r4, r0
15418
+ ldr r2, .L2499
15419
+ lsl r3, r0, #1
15420
+ push {r4, r5, r6, lr}
15421
+ .save {r4, r5, r6, lr}
15422
+ ldr r1, [r2, #-3540]
1496615423 ldrh r3, [r1, r3]
1496715424 cmp r3, #0
14968
- bne .L2551
15425
+ bne .L2491
1496915426 sub r1, r2, #3280
15427
+ mov r4, r0
1497015428 ldrh r0, [r1, #-4]
15429
+ sub r5, r2, #3520
1497115430 cmp r0, r4
1497215431 mvneq r3, #0
14973
- streqh r3, [r1, #-4] @ movhi
14974
- beq .L2553
14975
- sub r1, r2, #3520
14976
- ldrh r1, [r1, #-4]
15432
+ strheq r3, [r1, #-4] @ movhi
15433
+ beq .L2493
15434
+ ldrh r1, [r5]
1497715435 cmp r1, r4
14978
- beq .L2559
15436
+ beq .L2490
1497915437 sub r1, r2, #3472
14980
- ldrh r1, [r1, #-4]
15438
+ ldrh r1, [r1]
1498115439 cmp r1, r4
14982
- beq .L2559
15440
+ beq .L2490
1498315441 sub r2, r2, #3424
14984
- ldrh r2, [r2, #-4]
15442
+ ldrh r2, [r2]
1498515443 cmp r2, r4
14986
- beq .L2559
14987
-.L2553:
14988
- ldr r5, .L2560+4
15444
+ beq .L2490
15445
+.L2493:
1498915446 mov r1, r4
14990
- sub r0, r5, #12
15447
+ ldr r0, .L2499+4
1499115448 bl List_remove_node
14992
- ldrh r3, [r5]
15449
+ ldrh r3, [r5, #-12]
1499315450 mov r0, r4
1499415451 sub r3, r3, #1
14995
- strh r3, [r5] @ movhi
15452
+ strh r3, [r5, #-12] @ movhi
1499615453 bl free_data_superblock
1499715454 mov r0, r4
1499815455 bl FtlGcFreeBadSuperBlk
14999
- mov r0, #1
15000
- ldmfd sp!, {r3, r4, r5, pc}
15001
-.L2551:
15456
+ mov r3, #1
15457
+.L2490:
15458
+ mov r0, r3
15459
+ pop {r4, r5, r6, pc}
15460
+.L2491:
1500215461 bl List_update_data_list
15003
-.L2559:
15004
- mov r0, #0
15005
- ldmfd sp!, {r3, r4, r5, pc}
15006
-.L2561:
15462
+ mov r3, #0
15463
+ b .L2490
15464
+.L2500:
1500715465 .align 2
15008
-.L2560:
15466
+.L2499:
1500915467 .word .LANCHOR2
15010
- .word .LANCHOR2-3536
15468
+ .word .LANCHOR2-3544
1501115469 .fnend
1501215470 .size update_vpc_list, .-update_vpc_list
1501315471 .align 2
1501415472 .global decrement_vpc_count
15473
+ .syntax unified
15474
+ .arm
15475
+ .fpu softvfp
1501515476 .type decrement_vpc_count, %function
1501615477 decrement_vpc_count:
1501715478 .fnstart
1501815479 @ args = 0, pretend = 0, frame = 0
1501915480 @ frame_needed = 0, uses_anonymous_args = 0
15020
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
15021
- .save {r3, r4, r5, r6, r7, lr}
1502215481 movw r3, #65535
15482
+ push {r4, r5, r6, r7, r8, lr}
15483
+ .save {r4, r5, r6, r7, r8, lr}
1502315484 cmp r0, r3
1502415485 mov r4, r0
15025
- beq .L2563
15026
- ldr r6, .L2573
15027
- mov r5, r0, asl #1
15028
- ldr r3, [r6, #-3544]
15486
+ beq .L2502
15487
+ ldr r6, .L2512
15488
+ lsl r5, r0, #1
15489
+ ldr r3, [r6, #-3540]
1502915490 ldrh r2, [r3, r5]
1503015491 cmp r2, #0
1503115492 subne r2, r2, #1
15032
- strneh r2, [r3, r5] @ movhi
15033
- bne .L2563
15034
- mov r1, r4
15035
- ldr r0, .L2573+4
15493
+ strhne r2, [r3, r5] @ movhi
15494
+ bne .L2502
15495
+ mov r1, r0
15496
+ ldr r0, .L2512+4
1503615497 bl printk
15037
- ldr r3, [r6, #-3544]
15498
+ ldr r3, [r6, #-3540]
1503815499 sub r7, r6, #3520
1503915500 mov r2, #32
15040
- sub r0, r7, #12
15501
+ sub r8, r7, #8
1504115502 mov r1, r4
15503
+ mov r0, r8
1504215504 strh r2, [r3, r5] @ movhi
1504315505 bl test_node_in_list
1504415506 cmp r0, #0
15045
- beq .L2565
15507
+ beq .L2504
1504615508 mov r1, r4
15047
- sub r0, r7, #12
15509
+ mov r0, r8
1504815510 bl List_remove_node
15049
- ldrh r3, [r7, #-8]
15511
+ ldrh r3, [r7, #-4]
1505015512 mov r0, r4
1505115513 sub r3, r3, #1
15052
- strh r3, [r7, #-8] @ movhi
15514
+ strh r3, [r7, #-4] @ movhi
1505315515 bl INSERT_DATA_LIST
15054
- ldr r3, [r6, #-3544]
15055
- ldr r0, .L2573+8
15516
+ ldr r3, [r6, #-3540]
1505615517 mov r1, r4
15518
+ ldr r0, .L2512+8
1505715519 ldrh r2, [r3, r5]
1505815520 bl printk
15059
-.L2565:
15521
+.L2504:
1506015522 mov r0, r4
1506115523 bl FtlGcRefreshBlock
15062
- b .L2568
15063
-.L2563:
15064
- ldr r5, .L2573+12
15524
+.L2507:
15525
+ mov r0, #0
15526
+ pop {r4, r5, r6, r7, r8, pc}
15527
+.L2502:
15528
+ ldr r5, .L2512+12
1506515529 movw r3, #65535
1506615530 ldrh r0, [r5]
1506715531 cmp r0, r3
15068
- streqh r4, [r5] @ movhi
15069
- beq .L2568
15070
- cmp r0, r4
15071
- beq .L2568
15532
+ strheq r4, [r5] @ movhi
15533
+ beq .L2507
15534
+ cmp r4, r0
15535
+ beq .L2507
1507215536 bl update_vpc_list
15073
- strh r4, [r5] @ movhi
1507415537 adds r0, r0, #0
15538
+ strh r4, [r5] @ movhi
1507515539 movne r0, #1
15076
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
15077
-.L2568:
15078
- mov r0, #0
15079
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
15080
-.L2574:
15540
+ pop {r4, r5, r6, r7, r8, pc}
15541
+.L2513:
1508115542 .align 2
15082
-.L2573:
15543
+.L2512:
1508315544 .word .LANCHOR2
1508415545 .word .LC130
1508515546 .word .LC131
....@@ -15088,59 +15549,44 @@
1508815549 .size decrement_vpc_count, .-decrement_vpc_count
1508915550 .align 2
1509015551 .global FtlSlcSuperblockCheck
15552
+ .syntax unified
15553
+ .arm
15554
+ .fpu softvfp
1509115555 .type FtlSlcSuperblockCheck, %function
1509215556 FtlSlcSuperblockCheck:
1509315557 .fnstart
1509415558 @ args = 0, pretend = 0, frame = 0
1509515559 @ frame_needed = 0, uses_anonymous_args = 0
15096
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
15097
- .save {r3, r4, r5, r6, r7, lr}
1509815560 ldrh r3, [r0, #4]
1509915561 cmp r3, #0
15100
- ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
15562
+ bxeq lr
1510115563 ldrh r2, [r0]
1510215564 movw r3, #65535
1510315565 cmp r2, r3
15104
- ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
15105
- ldrb r3, [r0, #6] @ zero_extendqisi2
15566
+ bxeq lr
15567
+ push {r4, r5, r6, lr}
15568
+ .save {r4, r5, r6, lr}
1510615569 mov r4, r0
15107
- ldr r5, .L2588
15108
- ldr r6, .L2588+4
15109
- add r3, r0, r3, asl #1
15110
- add r7, r5, #2320
15570
+ ldrb r3, [r0, #6] @ zero_extendqisi2
15571
+ ldr r5, .L2529
15572
+ ldr r6, .L2529+4
15573
+ add r3, r0, r3, lsl #1
1511115574 ldrh r3, [r3, #16]
15112
-.L2579:
15575
+.L2518:
1511315576 movw r1, #65535
1511415577 cmp r3, r1
15115
- bne .L2587
15116
-.L2581:
15117
- ldrb r3, [r4, #6] @ zero_extendqisi2
15118
- ldrh r2, [r7]
15119
- add r3, r3, #1
15120
- uxtb r3, r3
15121
- strb r3, [r4, #6]
15122
- cmp r2, r3
15123
- ldreqh r3, [r4, #2]
15124
- addeq r3, r3, #1
15125
- streqh r3, [r4, #2] @ movhi
15126
- moveq r3, #0
15127
- streqb r3, [r4, #6]
15128
- ldrb r3, [r4, #6] @ zero_extendqisi2
15129
- add r3, r4, r3, asl #1
15130
- ldrh r3, [r3, #16]
15131
- b .L2579
15132
-.L2587:
15578
+ beq .L2520
1513315579 ldrb r2, [r4, #8] @ zero_extendqisi2
1513415580 cmp r2, #1
15135
- bne .L2582
15136
- ldrb r3, [r5, #144] @ zero_extendqisi2
15581
+ bne .L2521
15582
+ ldrb r3, [r5, #152] @ zero_extendqisi2
1513715583 cmp r3, #0
15138
- bne .L2582
15584
+ bne .L2521
1513915585 ldrh r3, [r4, #2]
15140
- mov r3, r3, asl #1
15586
+ lsl r3, r3, #1
1514115587 ldrh r3, [r6, r3]
1514215588 cmp r3, r1
15143
- bne .L2582
15589
+ bne .L2521
1514415590 ldrh r3, [r4, #4]
1514515591 ldrh r0, [r4]
1514615592 sub r3, r3, #1
....@@ -15148,178 +15594,191 @@
1514815594 bl decrement_vpc_count
1514915595 ldrh r2, [r4, #4]
1515015596 cmp r2, #0
15151
- bne .L2581
15597
+ bne .L2520
1515215598 ldrh r3, [r4, #2]
1515315599 strb r2, [r4, #6]
1515415600 add r3, r3, #1
1515515601 strh r3, [r4, #2] @ movhi
15156
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
15157
-.L2582:
15158
- ldr r1, .L2588
15159
- ldrb r3, [r1, #144] @ zero_extendqisi2
15160
- cmp r3, #0
15161
- ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
15162
- cmp r2, #1
15163
- ldmnefd sp!, {r3, r4, r5, r6, r7, pc}
15164
- movw r3, #2390
15165
- ldrh r2, [r4, #2]
15166
- ldrh r3, [r1, r3]
15602
+ pop {r4, r5, r6, pc}
15603
+.L2520:
15604
+ ldrb r3, [r4, #6] @ zero_extendqisi2
15605
+ ldr r2, .L2529+8
15606
+ add r3, r3, #1
15607
+ ldrh r2, [r2]
15608
+ uxtb r3, r3
15609
+ strb r3, [r4, #6]
1516715610 cmp r2, r3
15168
- ldmccfd sp!, {r3, r4, r5, r6, r7, pc}
15169
- ldr r2, .L2588+8
15611
+ ldrheq r3, [r4, #2]
15612
+ addeq r3, r3, #1
15613
+ strheq r3, [r4, #2] @ movhi
15614
+ moveq r3, #0
15615
+ strbeq r3, [r4, #6]
15616
+ ldrb r3, [r4, #6] @ zero_extendqisi2
15617
+ add r3, r4, r3, lsl #1
15618
+ ldrh r3, [r3, #16]
15619
+ b .L2518
15620
+.L2521:
15621
+ ldrb r3, [r5, #152] @ zero_extendqisi2
15622
+ adds r3, r3, #0
15623
+ movne r3, #1
15624
+ cmp r2, #1
15625
+ movne r3, #0
15626
+ cmp r3, #0
15627
+ popeq {r4, r5, r6, pc}
15628
+ movw r3, #2392
15629
+ ldrh r2, [r4, #2]
15630
+ ldrh r3, [r5, r3]
15631
+ cmp r2, r3
15632
+ popcc {r4, r5, r6, pc}
1517015633 ldrh r3, [r4]
15171
- ldrh ip, [r4, #4]
15172
- ldr r0, [r2, #-3544]
15173
- mov r3, r3, asl #1
15174
- ldrh r2, [r0, r3]
15175
- rsb r2, ip, r2
15176
- strh r2, [r0, r3] @ movhi
15177
- movw r2, #2388
15634
+ ldr r2, .L2529+12
15635
+ ldrh r0, [r4, #4]
15636
+ ldr r1, [r2, #-3540]
15637
+ lsl r3, r3, #1
15638
+ ldrh r2, [r1, r3]
15639
+ sub r2, r2, r0
15640
+ strh r2, [r1, r3] @ movhi
15641
+ movw r2, #2390
15642
+ ldrh r2, [r5, r2]
1517815643 mov r3, #0
15179
- ldrh r2, [r1, r2]
1518015644 strh r3, [r4, #4] @ movhi
1518115645 strb r3, [r4, #6]
1518215646 strh r2, [r4, #2] @ movhi
15183
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
15184
-.L2589:
15647
+ pop {r4, r5, r6, pc}
15648
+.L2530:
1518515649 .align 2
15186
-.L2588:
15650
+.L2529:
1518715651 .word .LANCHOR0
1518815652 .word .LANCHOR2-2620
15653
+ .word .LANCHOR0+2324
1518915654 .word .LANCHOR2
1519015655 .fnend
1519115656 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
1519215657 .align 2
1519315658 .global get_new_active_ppa
15659
+ .syntax unified
15660
+ .arm
15661
+ .fpu softvfp
1519415662 .type get_new_active_ppa, %function
1519515663 get_new_active_ppa:
1519615664 .fnstart
1519715665 @ args = 0, pretend = 0, frame = 0
1519815666 @ frame_needed = 0, uses_anonymous_args = 0
15199
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
15200
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
1520115667 mov r3, #0
15668
+ push {r4, r5, r6, r7, r8, lr}
15669
+ .save {r4, r5, r6, r7, r8, lr}
1520215670 strb r3, [r0, #10]
1520315671 mov r4, r0
1520415672 ldrb r3, [r0, #6] @ zero_extendqisi2
15205
- ldr r7, .L2608
15206
- ldr r9, .L2608+4
15207
- add r3, r0, r3, asl #1
15208
- sub r8, r7, #2320
15673
+ ldr r5, .L2547
15674
+ ldr r7, .L2547+4
15675
+ add r3, r0, r3, lsl #1
1520915676 ldrh r2, [r3, #16]
15210
-.L2591:
15677
+.L2532:
1521115678 movw r1, #65535
1521215679 cmp r2, r1
15213
- ldr r6, .L2608
15214
- bne .L2607
15215
-.L2592:
15216
- ldrb r3, [r4, #6] @ zero_extendqisi2
15217
- ldrh r2, [r7]
15218
- add r3, r3, #1
15219
- uxtb r3, r3
15220
- strb r3, [r4, #6]
15221
- cmp r2, r3
15222
- ldreqh r3, [r4, #2]
15223
- addeq r3, r3, #1
15224
- streqh r3, [r4, #2] @ movhi
15225
- moveq r3, #0
15226
- streqb r3, [r4, #6]
15227
- ldrb r3, [r4, #6] @ zero_extendqisi2
15228
- add r3, r4, r3, asl #1
15229
- ldrh r2, [r3, #16]
15230
- b .L2591
15231
-.L2607:
15680
+ beq .L2533
1523215681 ldrb r3, [r4, #8] @ zero_extendqisi2
15233
- ldrh r5, [r4, #2]
15682
+ ldrh r6, [r4, #2]
1523415683 cmp r3, #1
1523515684 ldrh r3, [r4, #4]
15236
- bne .L2594
15237
- ldrb r0, [r8, #144] @ zero_extendqisi2
15685
+ bne .L2535
15686
+ ldr r0, .L2547+8
15687
+ ldrb r0, [r0, #152] @ zero_extendqisi2
1523815688 cmp r0, #0
15239
- bne .L2594
15240
- mov r0, r5, asl #1
15241
- ldrh r0, [r9, r0]
15689
+ bne .L2535
15690
+ lsl r0, r6, #1
15691
+ ldrh r0, [r7, r0]
1524215692 cmp r0, r1
15243
- bne .L2594
15693
+ bne .L2535
1524415694 sub r3, r3, #1
1524515695 ldrh r0, [r4]
1524615696 strh r3, [r4, #4] @ movhi
1524715697 bl decrement_vpc_count
15248
- b .L2592
15249
-.L2594:
15250
- ldr r7, .L2608+8
15251
- orr r5, r5, r2, asl #10
15698
+.L2533:
15699
+ ldrb r3, [r4, #6] @ zero_extendqisi2
15700
+ ldrh r2, [r5]
15701
+ add r3, r3, #1
15702
+ uxtb r3, r3
15703
+ cmp r2, r3
15704
+ strb r3, [r4, #6]
15705
+ ldrheq r3, [r4, #2]
15706
+ addeq r3, r3, #1
15707
+ strheq r3, [r4, #2] @ movhi
15708
+ moveq r3, #0
15709
+ strbeq r3, [r4, #6]
15710
+ ldrb r3, [r4, #6] @ zero_extendqisi2
15711
+ add r3, r4, r3, lsl #1
15712
+ ldrh r2, [r3, #16]
15713
+ b .L2532
15714
+.L2535:
15715
+ ldr r7, .L2547+4
15716
+ orr r6, r6, r2, lsl #10
1525215717 sub r3, r3, #1
1525315718 strh r3, [r4, #4] @ movhi
15254
-.L2595:
15719
+.L2536:
1525515720 ldrb r3, [r4, #6] @ zero_extendqisi2
15256
- movw r2, #65535
15257
- ldrh r0, [r6]
15258
-.L2597:
15721
+ movw r1, #65535
15722
+ ldrh r0, [r5]
15723
+.L2538:
1525915724 add r3, r3, #1
1526015725 uxtb r3, r3
1526115726 cmp r3, r0
15262
- ldreqh r3, [r4, #2]
15727
+ ldrheq r3, [r4, #2]
1526315728 addeq r3, r3, #1
15264
- streqh r3, [r4, #2] @ movhi
15729
+ strheq r3, [r4, #2] @ movhi
1526515730 moveq r3, #0
15266
- add r1, r4, r3, asl #1
15267
- ldrh r1, [r1, #16]
15268
- cmp r1, r2
15269
- beq .L2597
15731
+ add r2, r4, r3, lsl #1
15732
+ ldrh r2, [r2, #16]
15733
+ cmp r2, r1
15734
+ beq .L2538
1527015735 strb r3, [r4, #6]
1527115736 ldrb r3, [r4, #8] @ zero_extendqisi2
1527215737 cmp r3, #1
15273
- bne .L2602
15274
- ldrb r3, [r7, #144] @ zero_extendqisi2
15738
+ bne .L2531
15739
+ ldr r2, .L2547+8
15740
+ ldrb r3, [r2, #152] @ zero_extendqisi2
1527515741 cmp r3, #0
15276
- bne .L2599
1527715742 ldrh r3, [r4, #2]
15278
- ldr r2, .L2608+4
15279
- mov r3, r3, asl #1
15280
- ldrh r2, [r2, r3]
15281
- movw r3, #65535
15282
- cmp r2, r3
15283
- bne .L2599
15743
+ bne .L2540
15744
+ lsl r3, r3, #1
15745
+ ldrh r3, [r7, r3]
15746
+ cmp r3, r1
15747
+ bne .L2531
1528415748 ldrh r3, [r4, #4]
1528515749 cmp r3, #0
15286
- beq .L2599
15750
+ beq .L2531
1528715751 sub r3, r3, #1
1528815752 ldrh r0, [r4]
1528915753 strh r3, [r4, #4] @ movhi
1529015754 bl decrement_vpc_count
15291
- b .L2595
15292
-.L2599:
15293
- ldr r1, .L2608+8
15294
- ldrb r3, [r1, #144] @ zero_extendqisi2
15295
- cmp r3, #0
15296
- beq .L2602
15297
- movw r3, #2390
15298
- ldrh r2, [r4, #2]
15299
- ldrh r3, [r1, r3]
15300
- cmp r2, r3
15301
- bcc .L2602
15302
- ldr r2, .L2608+12
15755
+ b .L2536
15756
+.L2540:
15757
+ movw r1, #2392
15758
+ ldrh r1, [r2, r1]
15759
+ cmp r3, r1
15760
+ bcc .L2531
1530315761 ldrh r3, [r4]
15762
+ ldr r1, .L2547+12
1530415763 ldrh ip, [r4, #4]
15305
- ldr r0, [r2, #-3544]
15306
- mov r3, r3, asl #1
15307
- ldrh r2, [r0, r3]
15308
- rsb r2, ip, r2
15309
- strh r2, [r0, r3] @ movhi
15310
- movw r2, #2388
15764
+ ldr r0, [r1, #-3540]
15765
+ lsl r3, r3, #1
15766
+ ldrh r1, [r0, r3]
15767
+ sub r1, r1, ip
15768
+ strh r1, [r0, r3] @ movhi
15769
+ movw r1, #2390
15770
+ ldrh r2, [r2, r1]
1531115771 mov r3, #0
15312
- ldrh r2, [r1, r2]
1531315772 strh r3, [r4, #4] @ movhi
1531415773 strb r3, [r4, #6]
1531515774 strh r2, [r4, #2] @ movhi
15316
-.L2602:
15317
- mov r0, r5
15318
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
15319
-.L2609:
15775
+.L2531:
15776
+ mov r0, r6
15777
+ pop {r4, r5, r6, r7, r8, pc}
15778
+.L2548:
1532015779 .align 2
15321
-.L2608:
15322
- .word .LANCHOR0+2320
15780
+.L2547:
15781
+ .word .LANCHOR0+2324
1532315782 .word .LANCHOR2-2620
1532415783 .word .LANCHOR0
1532515784 .word .LANCHOR2
....@@ -15327,320 +15786,323 @@
1532715786 .size get_new_active_ppa, .-get_new_active_ppa
1532815787 .align 2
1532915788 .global FtlVpcTblFlush
15789
+ .syntax unified
15790
+ .arm
15791
+ .fpu softvfp
1533015792 .type FtlVpcTblFlush, %function
1533115793 FtlVpcTblFlush:
1533215794 .fnstart
15333
- @ args = 0, pretend = 0, frame = 0
15795
+ @ args = 0, pretend = 0, frame = 8
1533415796 @ frame_needed = 0, uses_anonymous_args = 0
15335
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
15336
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
15337
- ldr r4, .L2628
15338
- ldr r3, [r4, #-3616]
15797
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
15798
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15799
+ .pad #12
15800
+ ldr r4, .L2567
15801
+ ldr r3, [r4, #-3612]
1533915802 cmp r3, #0
15340
- bne .L2612
15803
+ bne .L2551
1534115804 ldr r2, [r4, #-524]
15342
- sub r6, r4, #3600
15805
+ sub r5, r4, #3296
1534315806 ldr r7, [r4, #-500]
15807
+ sub r8, r5, #300
15808
+ ldr r6, .L2567+4
1534415809 mov r1, #255
15345
- ldr r5, .L2628+4
15346
- str r2, [r4, #1760]
15347
- sub r2, r4, #3296
15348
- str r7, [r4, #1764]
15349
- ldrh r2, [r2, #-4]
15810
+ str r2, [r4, #1768]
15811
+ ldrh r2, [r5, #-4]
15812
+ str r7, [r4, #1772]
15813
+ add r9, r6, #2400
1535015814 str r3, [r7, #12]
1535115815 strh r2, [r7, #2] @ movhi
15352
- ldr r2, .L2628+8
15816
+ ldr r2, .L2567+8
1535315817 strh r2, [r7] @ movhi
1535415818 ldr r2, [r4, #-3292]
1535515819 stmib r7, {r2, r3}
15356
- ldr r3, .L2628+12
15357
- ldrh r2, [r6, #78]
15358
- str r3, [r4, #-3600]
15359
- ldr r3, .L2628+16
15820
+ ldr r3, .L2567+12
1536015821 str r3, [r4, #-3596]
15361
- add r3, r6, #300
15362
- ldrh r3, [r3, #6]
15363
- strh r3, [r6, #8] @ movhi
15364
- movw r3, #2342
15365
- ldrh r3, [r5, r3]
15366
- strb r3, [r4, #-3590]
15822
+ ldr r3, .L2567+16
15823
+ str r3, [r4, #-3592]
15824
+ ldrh r3, [r5, #2]
15825
+ strh r3, [r8, #8] @ movhi
15826
+ movw r3, #2346
15827
+ ldrh r3, [r6, r3]
15828
+ strb r3, [r4, #-3586]
1536715829 sub r3, r4, #3520
15368
- ldrh r3, [r3, #-4]
15369
- strh r3, [r6, #14] @ movhi
15370
- ldrb r3, [r4, #-3518] @ zero_extendqisi2
15371
- orr r3, r3, r2, asl #6
15372
- strh r3, [r6, #16] @ movhi
15373
- ldrb r3, [r4, #-3516] @ zero_extendqisi2
15374
- ldrh r2, [r6, #126]
15375
- strb r3, [r4, #-3589]
15830
+ ldrh r2, [r3]
15831
+ strh r2, [r8, #14] @ movhi
15832
+ ldrh r2, [r3, #2]
15833
+ ldrb r3, [r4, #-3514] @ zero_extendqisi2
15834
+ orr r3, r3, r2, lsl #6
15835
+ strh r3, [r8, #16] @ movhi
15836
+ ldrb r3, [r4, #-3512] @ zero_extendqisi2
15837
+ strb r3, [r4, #-3585]
1537615838 sub r3, r4, #3472
15377
- ldrh r3, [r3, #-4]
15378
- strh r3, [r6, #18] @ movhi
15379
- ldrb r3, [r4, #-3470] @ zero_extendqisi2
15380
- orr r3, r3, r2, asl #6
15381
- strh r3, [r6, #20] @ movhi
15382
- ldrb r3, [r4, #-3468] @ zero_extendqisi2
15383
- strb r3, [r4, #-3588]
15839
+ ldrh r2, [r3]
15840
+ strh r2, [r8, #18] @ movhi
15841
+ ldrh r2, [r3, #2]
15842
+ ldrb r3, [r4, #-3466] @ zero_extendqisi2
15843
+ orr r3, r3, r2, lsl #6
15844
+ strh r3, [r8, #20] @ movhi
15845
+ ldrb r3, [r4, #-3464] @ zero_extendqisi2
15846
+ strb r3, [r4, #-3584]
1538415847 sub r3, r4, #3424
15385
- ldrh r3, [r3, #-4]
15386
- strh r3, [r6, #22] @ movhi
15387
- ldrh r2, [r6, #174]
15388
- ldrb r3, [r4, #-3422] @ zero_extendqisi2
15389
- ldr r0, [r4, #1760]
15390
- orr r3, r3, r2, asl #6
15391
- strh r3, [r6, #24] @ movhi
15392
- ldrb r3, [r4, #-3420] @ zero_extendqisi2
15393
- strb r3, [r4, #-3587]
15848
+ ldrh r2, [r3]
15849
+ strh r2, [r8, #22] @ movhi
15850
+ ldrh r2, [r3, #2]
15851
+ ldrb r3, [r4, #-3418] @ zero_extendqisi2
15852
+ ldr r0, [r4, #1768]
15853
+ orr r3, r3, r2, lsl #6
15854
+ strh r3, [r8, #24] @ movhi
15855
+ ldrb r3, [r4, #-3416] @ zero_extendqisi2
15856
+ strb r3, [r4, #-3583]
1539415857 ldr r3, [r4, #-3324]
15395
- str r3, [r4, #-3568]
15396
- ldr r3, [r4, #-3332]
15397
- str r3, [r4, #-3560]
15398
- ldr r3, [r4, #-3328]
1539915858 str r3, [r4, #-3564]
15859
+ ldr r3, [r4, #-3332]
15860
+ str r3, [r4, #-3556]
15861
+ ldr r3, [r4, #-3328]
15862
+ str r3, [r4, #-3560]
1540015863 sub r3, r4, #2656
1540115864 ldrh r2, [r3, #-10]
1540215865 ldrh r3, [r3, #-8]
15403
- strh r2, [r6, #44] @ movhi
15404
- strh r3, [r6, #46] @ movhi
15405
- movw r3, #2398
15406
- ldrh r2, [r5, r3]
15866
+ strh r2, [r8, #44] @ movhi
15867
+ ldrh r2, [r9]
15868
+ strh r3, [r5, #-254] @ movhi
1540715869 bl ftl_memset
15408
- mov r1, r6
15870
+ mov r1, r8
1540915871 mov r2, #48
15410
- movw r6, #2328
15411
- ldr r0, [r4, #1760]
15872
+ movw r8, #2332
15873
+ ldr r0, [r4, #1768]
1541215874 bl ftl_memcpy
15413
- ldrh r2, [r5, r6]
15414
- ldr r0, [r4, #1760]
15415
- ldr r1, [r4, #-3544]
15416
- mov r2, r2, asl #1
15875
+ ldrh r2, [r6, r8]
15876
+ ldr r0, [r4, #1768]
15877
+ ldr r1, [r4, #-3540]
15878
+ lsl r2, r2, #1
1541715879 add r0, r0, #48
1541815880 bl ftl_memcpy
15419
- ldrh r2, [r5, r6]
15420
- ldr r0, [r4, #1760]
15421
- ldr r1, [r4, #-3368]
15422
- mov r3, r2, asl #1
15423
- mov r2, r2, lsr #3
15424
- add r3, r3, #51
15881
+ ldrh r0, [r6, r8]
15882
+ ldr r3, [r4, #1768]
15883
+ ldr r1, [r6, #32]
15884
+ lsr r2, r0, #3
15885
+ lsl r0, r0, #1
15886
+ add r0, r0, #51
1542515887 add r2, r2, #4
15426
- bic r3, r3, #3
15427
- add r0, r0, r3
15888
+ bic r0, r0, #3
15889
+ add r0, r3, r0
1542815890 bl ftl_memcpy
15429
- add r3, r5, #2432
15430
- ldrh r3, [r3]
15891
+ movw r3, #2436
15892
+ str r9, [sp, #4]
15893
+ ldrh r3, [r6, r3]
1543115894 cmp r3, #0
15432
- beq .L2613
15433
- ldrh r2, [r5, r6]
15434
- ldr r0, [r4, #1760]
15895
+ beq .L2552
15896
+ ldrh r0, [r6, r8]
15897
+ movw r3, #2428
15898
+ ldrh r2, [r6, r3]
1543515899 ldr r1, [r4, #-452]
15436
- mov r3, r2, lsr #3
15437
- add r3, r3, r2, asl #1
15438
- movw r2, #2424
15900
+ lsr r3, r0, #3
15901
+ lsl r2, r2, #2
15902
+ add r3, r3, r0, lsl #1
15903
+ ldr r0, [r4, #1768]
1543915904 add r3, r3, #52
15440
- ldrh r2, [r5, r2]
1544115905 ubfx r3, r3, #2, #14
15442
- mov r2, r2, asl #2
15443
- add r0, r0, r3, asl #2
15906
+ add r0, r0, r3, lsl #2
1544415907 bl ftl_memcpy
15445
-.L2613:
15446
- mov r0, #0
15447
- ldr r8, .L2628
15448
- bl FtlUpdateVaildLpn
15449
- ldr r10, .L2628+20
15450
- mov r6, #0
15908
+.L2552:
15909
+ ldr r10, .L2567+20
15910
+ mov r8, #0
1545115911 movw r9, #65535
15452
-.L2614:
15912
+ sub r5, r5, #4
15913
+ mov r0, #0
15914
+ mov fp, r10
15915
+ bl FtlUpdateVaildLpn
15916
+.L2553:
1545315917 ldr r3, [r4, #-524]
15454
- ldrh r2, [r10]
15455
- ldr fp, .L2628+24
15456
- str r3, [r4, #1760]
15918
+ ldrh r1, [r5, #2]
15919
+ ldrh r2, [r5]
15920
+ str r3, [r4, #1768]
1545715921 ldr r3, [r4, #-500]
15458
- ldrh r1, [r10, #2]
15922
+ str r3, [r4, #1772]
15923
+ orr r3, r1, r2, lsl #10
1545915924 str r3, [r4, #1764]
15460
- orr r3, r1, r2, asl #10
15461
- str r3, [r4, #1756]
15462
- ldrh r3, [fp]
15925
+ ldrh r3, [r10]
1546315926 sub r3, r3, #1
1546415927 cmp r1, r3
15465
- blt .L2615
15928
+ blt .L2554
1546615929 mov r3, #0
15467
- ldrh r9, [r10, #4]
15468
- strh r3, [r10, #2] @ movhi
15469
- strh r2, [r10, #4] @ movhi
15930
+ ldrh r9, [r5, #4]
15931
+ strh r3, [r5, #2] @ movhi
15932
+ strh r2, [r5, #4] @ movhi
1547015933 bl FtlFreeSysBlkQueueOut
15471
- ldr r3, [r8, #-3332]
15934
+ ldr r3, [r4, #-3332]
15935
+ strh r0, [r5] @ movhi
1547215936 add r2, r3, #1
15473
- str r2, [r8, #-3332]
15474
- str r3, [r8, #-3292]
15475
- mov r2, r0, asl #10
15476
- strh r0, [r10] @ movhi
15477
- str r2, [r8, #1756]
15937
+ str r3, [r4, #-3292]
15938
+ str r2, [r4, #-3332]
15939
+ lsl r2, r0, #10
15940
+ str r2, [r4, #1764]
1547815941 str r3, [r7, #4]
1547915942 strh r0, [r7, #2] @ movhi
15480
-.L2615:
15481
- ldrb r3, [r5] @ zero_extendqisi2
15943
+.L2554:
15944
+ ldrb r3, [r6, #36] @ zero_extendqisi2
1548215945 cmp r3, #0
15483
- beq .L2616
15484
- ldr r3, .L2628+28
15946
+ beq .L2555
15947
+ ldr r3, [sp, #4]
1548515948 ldr r0, [r4, #-524]
1548615949 ldrh r1, [r3]
1548715950 bl js_hash
1548815951 str r0, [r7, #12]
15489
-.L2616:
15490
- mov r1, #1
15491
- ldr r0, .L2628+32
15492
- mov r2, r1
15493
- mov r3, r1
15952
+.L2555:
15953
+ mov r3, #1
15954
+ ldr r0, .L2567+24
15955
+ mov r2, r3
15956
+ mov r1, r3
1549415957 bl FlashProgPages
15495
- ldr r3, .L2628+20
15496
- ldr r2, .L2628+20
15497
- ldrh r3, [r3, #2]
15958
+ ldrh r3, [r5, #2]
15959
+ ldr r2, [r4, #1760]
1549815960 add r3, r3, #1
1549915961 uxth r3, r3
15500
- strh r3, [r2, #2] @ movhi
15501
- ldr r2, [r4, #1752]
1550215962 cmn r2, #1
15503
- bne .L2617
15963
+ strh r3, [r5, #2] @ movhi
15964
+ bne .L2556
1550415965 cmp r3, #1
15505
- add r6, r6, #1
15506
- ldreqh r3, [fp]
15507
- uxth r6, r6
15966
+ add r8, r8, #1
15967
+ ldrheq r3, [fp]
15968
+ uxth r8, r8
1550815969 subeq r3, r3, #1
15509
- streqh r3, [r10, #2] @ movhi
15510
- cmp r6, #3
15511
- bls .L2614
15512
- ldr r0, .L2628+36
15513
- mov r2, r6
15514
- ldr r1, [r4, #1756]
15970
+ strheq r3, [r5, #2] @ movhi
15971
+ cmp r8, #3
15972
+ bls .L2553
15973
+ mov r2, r8
15974
+ ldr r1, [r4, #1764]
15975
+ ldr r0, .L2567+28
1551515976 bl printk
1551615977 mov r3, #1
15517
- str r3, [r4, #-3616]
15518
- b .L2612
15519
-.L2617:
15520
- cmp r2, #256
15521
- cmpne r3, #1
15522
- beq .L2614
15978
+ str r3, [r4, #-3612]
15979
+.L2551:
15980
+ mov r0, #0
15981
+ add sp, sp, #12
15982
+ @ sp needed
15983
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
15984
+.L2556:
15985
+ cmp r3, #1
15986
+ cmpne r2, #256
15987
+ beq .L2553
1552315988 movw r3, #65535
1552415989 cmp r9, r3
15525
- beq .L2612
15526
- mov r0, r9
15990
+ beq .L2551
1552715991 mov r1, #1
15992
+ mov r0, r9
1552815993 bl FtlFreeSysBlkQueueIn
15529
-.L2612:
15530
- mov r0, #0
15531
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
15532
-.L2629:
15994
+ b .L2551
15995
+.L2568:
1553315996 .align 2
15534
-.L2628:
15997
+.L2567:
1553515998 .word .LANCHOR2
1553615999 .word .LANCHOR0
1553716000 .word -3932
1553816001 .word 1179929683
1553916002 .word 1342177379
15540
- .word .LANCHOR2-3300
15541
- .word .LANCHOR0+2390
15542
- .word .LANCHOR0+2398
15543
- .word .LANCHOR2+1752
16003
+ .word .LANCHOR0+2392
16004
+ .word .LANCHOR2+1760
1554416005 .word .LC132
1554516006 .fnend
1554616007 .size FtlVpcTblFlush, .-FtlVpcTblFlush
1554716008 .align 2
1554816009 .global FtlSuperblockPowerLostFix
16010
+ .syntax unified
16011
+ .arm
16012
+ .fpu softvfp
1554916013 .type FtlSuperblockPowerLostFix, %function
1555016014 FtlSuperblockPowerLostFix:
1555116015 .fnstart
1555216016 @ args = 0, pretend = 0, frame = 40
1555316017 @ frame_needed = 0, uses_anonymous_args = 0
15554
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15555
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
15556
- .pad #44
15557
- sub sp, sp, #44
15558
- ldr r5, .L2647
15559
- ldr r3, [r5, #-3616]
16018
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
16019
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
16020
+ .pad #40
16021
+ sub sp, sp, #40
16022
+ ldr r5, .L2585
16023
+ ldr r10, [r5, #-3612]
16024
+ cmp r10, #0
16025
+ bne .L2569
16026
+ ldr r8, .L2585+4
16027
+ ldrb r3, [r8, #152] @ zero_extendqisi2
1556016028 cmp r3, #0
15561
- bne .L2630
15562
- ldr r8, .L2647+4
15563
- ldrb r6, [r8, #144] @ zero_extendqisi2
15564
- cmp r6, #0
15565
- beq .L2646
15566
- ldrb r6, [r0, #8] @ zero_extendqisi2
15567
- cmp r6, #1
15568
- ldreqh fp, [r0, #4]
15569
- beq .L2632
15570
- mov r6, r3
15571
-.L2646:
15572
- mov fp, #12
15573
-.L2632:
15574
- ldr r7, [r5, #-500]
16029
+ beq .L2580
16030
+ ldrb r3, [r0, #8] @ zero_extendqisi2
16031
+ cmp r3, #1
16032
+ ldrheq r7, [r0, #4]
16033
+ moveq r10, r3
16034
+ beq .L2571
16035
+.L2580:
16036
+ mov r7, #12
16037
+.L2571:
1557516038 mvn r3, #0
16039
+ ldr r6, [r5, #-500]
1557616040 str r3, [sp, #20]
1557716041 mov r9, #0
1557816042 ldr r3, [r5, #-524]
1557916043 movw r2, #61589
15580
- str r7, [sp, #16]
16044
+ str r6, [sp, #16]
1558116045 mov r4, r0
15582
- ldr r10, .L2647
1558316046 str r3, [sp, #12]
1558416047 mvn r3, #2
15585
- str r3, [r7, #8]
16048
+ str r3, [r6, #8]
1558616049 mvn r3, #1
15587
- str r3, [r7, #12]
16050
+ str r3, [r6, #12]
1558816051 ldrh r3, [r0]
15589
- strh r9, [r7] @ movhi
15590
- strh r3, [r7, #2] @ movhi
16052
+ strh r9, [r6] @ movhi
16053
+ strh r3, [r6, #2] @ movhi
1559116054 ldr r3, [r5, #-524]
1559216055 str r2, [r3]
15593
- ldr r2, .L2647+8
16056
+ ldr r2, .L2585+8
1559416057 ldr r3, [r5, #-524]
1559516058 str r2, [r3, #4]
15596
-.L2633:
15597
- subs fp, fp, #1
15598
- bcc .L2636
16059
+.L2572:
16060
+ subs r7, r7, #1
16061
+ bcc .L2575
1559916062 ldrh r3, [r4, #4]
1560016063 cmp r3, #0
15601
- bne .L2634
15602
-.L2636:
16064
+ bne .L2573
16065
+.L2575:
1560316066 ldrh r3, [r4]
15604
- ldr r1, [r5, #-3544]
16067
+ ldr r1, [r5, #-3540]
1560516068 ldrh r0, [r4, #4]
15606
- mov r3, r3, asl #1
16069
+ lsl r3, r3, #1
1560716070 ldrh r2, [r1, r3]
15608
- rsb r2, r0, r2
16071
+ sub r2, r2, r0
1560916072 strh r2, [r1, r3] @ movhi
15610
- movw r3, #2388
16073
+ movw r3, #2390
1561116074 ldrh r3, [r8, r3]
1561216075 strh r3, [r4, #2] @ movhi
1561316076 mov r3, #0
1561416077 strb r3, [r4, #6]
1561516078 strh r3, [r4, #4] @ movhi
15616
- b .L2630
15617
-.L2634:
16079
+.L2569:
16080
+ add sp, sp, #40
16081
+ @ sp needed
16082
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
16083
+.L2573:
1561816084 mov r0, r4
1561916085 bl get_new_active_ppa
1562016086 cmn r0, #1
1562116087 str r0, [sp, #8]
15622
- beq .L2636
16088
+ beq .L2575
1562316089 ldr r3, [r5, #-3328]
16090
+ mov r2, r10
1562416091 mov r1, #1
15625
- mov r2, r6
1562616092 add r0, sp, #4
15627
- str r3, [r7, #4]
16093
+ str r3, [r6, #4]
1562816094 add r3, r3, #1
1562916095 cmn r3, #1
1563016096 moveq r3, r9
15631
- str r3, [r10, #-3328]
16097
+ str r3, [r5, #-3328]
1563216098 mov r3, #0
1563316099 bl FlashProgPages
1563416100 ldrh r0, [r4]
1563516101 bl decrement_vpc_count
15636
- b .L2633
15637
-.L2630:
15638
- add sp, sp, #44
15639
- @ sp needed
15640
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
15641
-.L2648:
16102
+ b .L2572
16103
+.L2586:
1564216104 .align 2
15643
-.L2647:
16105
+.L2585:
1564416106 .word .LANCHOR2
1564516107 .word .LANCHOR0
1564616108 .word 305419896
....@@ -15648,32 +16110,35 @@
1564816110 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
1564916111 .align 2
1565016112 .global ftl_map_blk_gc
16113
+ .syntax unified
16114
+ .arm
16115
+ .fpu softvfp
1565116116 .type ftl_map_blk_gc, %function
1565216117 ftl_map_blk_gc:
1565316118 .fnstart
1565416119 @ args = 0, pretend = 0, frame = 8
1565516120 @ frame_needed = 0, uses_anonymous_args = 0
15656
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
16121
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1565716122 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1565816123 .pad #12
1565916124 mov r4, r0
1566016125 ldr r5, [r0, #12]
15661
- ldr r7, [r0, #24]
16126
+ ldr r10, [r0, #24]
1566216127 bl ftl_free_no_use_map_blk
1566316128 ldrh r3, [r4, #10]
1566416129 ldrh r2, [r4, #8]
16130
+ ldr fp, .L2600
1566516131 sub r3, r3, #4
15666
- ldr r8, .L2663
1566716132 cmp r2, r3
15668
- blt .L2650
16133
+ blt .L2588
1566916134 uxth r0, r0
15670
- mov r0, r0, asl #1
15671
- ldrh r10, [r5, r0]
15672
- cmp r10, #0
15673
- beq .L2650
16135
+ lsl r0, r0, #1
16136
+ ldrh r9, [r5, r0]
16137
+ cmp r9, #0
16138
+ beq .L2588
1567416139 ldr r3, [r4, #32]
1567516140 cmp r3, #0
15676
- bne .L2650
16141
+ bne .L2588
1567716142 mov r2, #1
1567816143 str r2, [r4, #32]
1567916144 strh r3, [r5, r0] @ movhi
....@@ -15681,114 +16146,117 @@
1568116146 ldrh r2, [r4, #2]
1568216147 sub r3, r3, #1
1568316148 strh r3, [r4, #8] @ movhi
15684
- movw r3, #2390
15685
- ldrh r3, [r8, r3]
16149
+ movw r3, #2392
16150
+ ldrh r3, [fp, r3]
1568616151 cmp r2, r3
15687
- bcc .L2651
16152
+ bcc .L2589
1568816153 mov r0, r4
1568916154 bl ftl_map_blk_alloc_new_blk
15690
-.L2651:
15691
- ldr r5, .L2663+4
15692
- mov fp, #0
15693
-.L2652:
15694
- ldrh r3, [r4, #6]
15695
- uxth r6, fp
15696
- cmp r3, r6
15697
- bls .L2662
15698
- ldr r3, [r7, r6, asl #2]
15699
- add ip, r7, r6, asl #2
15700
- cmp r10, r3, lsr #10
15701
- bne .L2653
15702
- ldr r3, [r5, #-520]
16155
+.L2589:
16156
+ ldr r5, .L2600+4
16157
+ mov r6, #0
16158
+.L2590:
16159
+ ldrh r2, [r4, #6]
16160
+ uxth r3, r6
16161
+ cmp r2, r3
16162
+ bhi .L2595
1570316163 mov r1, #1
15704
- ldr r9, [r5, #-500]
15705
- mov r2, r1
15706
- ldr r0, .L2663+8
15707
- str r3, [r5, #1760]
15708
- str r9, [r5, #1764]
15709
- ldr r3, [r7, r6, asl #2]
15710
- str ip, [sp, #4]
15711
- str r3, [r5, #1756]
15712
- bl FlashReadPages
15713
- ldr r3, [r5, #1752]
15714
- cmn r3, #1
15715
- ldr r3, .L2663+4
15716
- ldr ip, [sp, #4]
15717
- bne .L2654
15718
-.L2656:
15719
- mov r2, #0
15720
- ldr r0, .L2663+12
15721
- str r2, [ip]
15722
- ldr r1, [r3, #1756]
15723
- ldrh r2, [r9, #8]
15724
- str r3, [sp, #4]
15725
- bl printk
15726
- mov r2, #1
15727
- ldr r3, [sp, #4]
15728
- str r2, [r3, #-3616]
15729
- b .L2655
15730
-.L2654:
15731
- ldrh r1, [r9, #8]
15732
- cmp r1, r6
15733
- bne .L2656
15734
- ldrh r0, [r9]
15735
- ldrh r2, [r4, #4]
15736
- cmp r0, r2
15737
- bne .L2656
15738
- mov r0, r4
15739
- ldr r2, [r5, #1760]
15740
- bl FtlMapWritePage
15741
-.L2653:
15742
- add fp, fp, #1
15743
- b .L2652
15744
-.L2662:
15745
- mov r0, r10
15746
- mov r1, #1
16164
+ mov r0, r9
1574716165 bl FtlFreeSysBlkQueueIn
1574816166 mov r3, #0
1574916167 str r3, [r4, #32]
15750
-.L2650:
15751
- movw r3, #2390
16168
+.L2588:
16169
+ movw r3, #2392
1575216170 ldrh r2, [r4, #2]
15753
- ldrh r3, [r8, r3]
16171
+ ldrh r3, [fp, r3]
1575416172 cmp r2, r3
15755
- bcc .L2655
16173
+ bcc .L2593
1575616174 mov r0, r4
1575716175 bl ftl_map_blk_alloc_new_blk
15758
-.L2655:
16176
+ b .L2593
16177
+.L2595:
16178
+ uxth r7, r6
16179
+ add r2, r10, r7, lsl #2
16180
+ str r2, [sp]
16181
+ ldr r2, [r10, r7, lsl #2]
16182
+ cmp r9, r2, lsr #10
16183
+ bne .L2591
16184
+ ldr r2, [r5, #-520]
16185
+ ldr r8, [r5, #-500]
16186
+ ldr r0, .L2600+8
16187
+ str r2, [r5, #1768]
16188
+ str r8, [r5, #1772]
16189
+ ldr r2, [r10, r7, lsl #2]
16190
+ str r3, [sp, #4]
16191
+ str r2, [r5, #1764]
16192
+ mov r2, #1
16193
+ mov r1, r2
16194
+ bl FlashReadPages
16195
+ ldr r2, [r5, #1760]
16196
+ ldr r3, [sp, #4]
16197
+ cmn r2, #1
16198
+ bne .L2592
16199
+.L2594:
16200
+ ldr r2, [sp]
16201
+ mov r3, #0
16202
+ ldr r0, .L2600+12
16203
+ str r3, [r2]
16204
+ ldrh r2, [r8, #8]
16205
+ ldr r1, [r5, #1764]
16206
+ bl printk
16207
+ mov r3, #1
16208
+ str r3, [r5, #-3612]
16209
+.L2593:
1575916210 mov r0, #0
1576016211 add sp, sp, #12
1576116212 @ sp needed
15762
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
15763
-.L2664:
16213
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16214
+.L2592:
16215
+ ldrh r2, [r8, #8]
16216
+ cmp r2, r3
16217
+ bne .L2594
16218
+ ldrh r2, [r8]
16219
+ ldrh r3, [r4, #4]
16220
+ cmp r2, r3
16221
+ bne .L2594
16222
+ ldr r2, [r5, #1768]
16223
+ mov r1, r7
16224
+ mov r0, r4
16225
+ bl FtlMapWritePage
16226
+.L2591:
16227
+ add r6, r6, #1
16228
+ b .L2590
16229
+.L2601:
1576416230 .align 2
15765
-.L2663:
16231
+.L2600:
1576616232 .word .LANCHOR0
1576716233 .word .LANCHOR2
15768
- .word .LANCHOR2+1752
16234
+ .word .LANCHOR2+1760
1576916235 .word .LC133
1577016236 .fnend
1577116237 .size ftl_map_blk_gc, .-ftl_map_blk_gc
1577216238 .align 2
1577316239 .global Ftl_write_map_blk_to_last_page
16240
+ .syntax unified
16241
+ .arm
16242
+ .fpu softvfp
1577416243 .type Ftl_write_map_blk_to_last_page, %function
1577516244 Ftl_write_map_blk_to_last_page:
1577616245 .fnstart
1577716246 @ args = 0, pretend = 0, frame = 0
1577816247 @ frame_needed = 0, uses_anonymous_args = 0
15779
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
16248
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
1578016249 .save {r4, r5, r6, r7, r8, r9, r10, lr}
15781
- ldr r5, .L2677
15782
- ldr r7, [r0, #12]
15783
- ldr r9, [r0, #24]
15784
- ldr r6, [r5, #-3616]
16250
+ ldr r5, .L2613
16251
+ ldr r6, [r5, #-3612]
1578516252 cmp r6, #0
15786
- bne .L2666
16253
+ bne .L2603
1578716254 ldrh r3, [r0]
1578816255 movw r2, #65535
1578916256 mov r4, r0
16257
+ ldr r7, [r0, #12]
1579016258 cmp r3, r2
15791
- bne .L2667
16259
+ bne .L2604
1579216260 ldrh r3, [r0, #8]
1579316261 add r3, r3, #1
1579416262 strh r3, [r0, #8] @ movhi
....@@ -15796,479 +16264,346 @@
1579616264 strh r0, [r7] @ movhi
1579716265 ldr r3, [r4, #28]
1579816266 strh r6, [r4, #2] @ movhi
15799
- add r3, r3, #1
1580016267 strh r6, [r4] @ movhi
16268
+ add r3, r3, #1
1580116269 str r3, [r4, #28]
15802
- b .L2666
15803
-.L2667:
15804
- mov r3, r3, asl #1
15805
- ldr r10, .L2677+4
16270
+.L2603:
16271
+ mov r0, #0
16272
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
16273
+.L2604:
16274
+ lsl r3, r3, #1
16275
+ ldr r8, [r0, #24]
16276
+ ldr r10, .L2613+4
1580616277 mov r1, #255
15807
- ldrh r8, [r7, r3]
16278
+ ldrh r9, [r7, r3]
1580816279 ldrh r3, [r0, #2]
1580916280 ldr r7, [r5, #-500]
15810
- orr r3, r3, r8, asl #10
15811
- str r3, [r5, #1756]
16281
+ orr r3, r3, r9, lsl #10
16282
+ str r7, [r5, #1772]
16283
+ str r3, [r5, #1764]
1581216284 ldr r3, [r5, #-524]
15813
- str r7, [r5, #1764]
15814
- str r3, [r5, #1760]
16285
+ str r3, [r5, #1768]
1581516286 ldr r3, [r0, #28]
1581616287 str r3, [r7, #4]
15817
- ldr r3, .L2677+8
16288
+ ldr r3, .L2613+8
1581816289 strh r3, [r7, #8] @ movhi
1581916290 ldrh r3, [r0, #4]
15820
- strh r8, [r7, #2] @ movhi
16291
+ strh r9, [r7, #2] @ movhi
1582116292 strh r3, [r7] @ movhi
15822
- movw r3, #2390
16293
+ movw r3, #2392
1582316294 ldrh r2, [r10, r3]
1582416295 ldr r0, [r5, #-524]
15825
- mov r2, r2, asl #3
16296
+ lsl r2, r2, #3
1582616297 bl ftl_memset
1582716298 mov r2, r6
15828
-.L2668:
15829
- ldrh r1, [r4, #6]
15830
- uxth r3, r2
15831
- cmp r1, r3
15832
- bls .L2676
15833
- ldr r1, [r9, r3, asl #2]
15834
- cmp r8, r1, lsr #10
15835
- bne .L2669
15836
- add r6, r6, #1
15837
- ldr r1, [r5, #-524]
15838
- uxth r6, r6
15839
- str r3, [r1, r6, asl #3]
15840
- ldr r1, [r9, r3, asl #2]
15841
- ldr r3, [r5, #-524]
15842
- add r3, r3, r6, asl #3
15843
- str r1, [r3, #4]
15844
-.L2669:
15845
- add r2, r2, #1
15846
- b .L2668
15847
-.L2676:
15848
- ldrb r3, [r10] @ zero_extendqisi2
16299
+ mov r3, r6
16300
+.L2605:
16301
+ ldrh r0, [r4, #6]
16302
+ uxth r1, r2
16303
+ cmp r0, r1
16304
+ bhi .L2607
16305
+ ldrb r3, [r10, #36] @ zero_extendqisi2
1584916306 cmp r3, #0
15850
- beq .L2671
15851
- ldr r2, .L2677+4
15852
- movw r3, #2398
15853
- ldr r0, [r5, #1760]
15854
- ldrh r1, [r2, r3]
16307
+ beq .L2608
16308
+ ldr r3, .L2613+12
16309
+ ldr r0, [r5, #1768]
16310
+ ldrh r1, [r3]
1585516311 bl js_hash
1585616312 str r0, [r7, #12]
15857
-.L2671:
15858
- mov r1, #1
16313
+.L2608:
16314
+ mov r2, #1
1585916315 mov r3, #0
15860
- ldr r0, .L2677+12
15861
- mov r2, r1
16316
+ mov r1, r2
16317
+ ldr r0, .L2613+16
1586216318 bl FlashProgPages
1586316319 ldrh r3, [r4, #2]
1586416320 mov r0, r4
1586516321 add r3, r3, #1
1586616322 strh r3, [r4, #2] @ movhi
1586716323 bl ftl_map_blk_gc
15868
-.L2666:
15869
- mov r0, #0
15870
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
15871
-.L2678:
16324
+ b .L2603
16325
+.L2607:
16326
+ uxth r1, r2
16327
+ ldr r0, [r8, r1, lsl #2]
16328
+ cmp r9, r0, lsr #10
16329
+ bne .L2606
16330
+ ldr r0, [r5, #-524]
16331
+ add r3, r3, #1
16332
+ uxth r3, r3
16333
+ str r1, [r0, r3, lsl #3]
16334
+ ldr r0, [r8, r1, lsl #2]
16335
+ ldr r1, [r5, #-524]
16336
+ add r1, r1, r3, lsl #3
16337
+ str r0, [r1, #4]
16338
+.L2606:
16339
+ add r2, r2, #1
16340
+ b .L2605
16341
+.L2614:
1587216342 .align 2
15873
-.L2677:
16343
+.L2613:
1587416344 .word .LANCHOR2
1587516345 .word .LANCHOR0
1587616346 .word -1291
15877
- .word .LANCHOR2+1752
16347
+ .word .LANCHOR0+2400
16348
+ .word .LANCHOR2+1760
1587816349 .fnend
1587916350 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
1588016351 .align 2
1588116352 .global FtlMapWritePage
16353
+ .syntax unified
16354
+ .arm
16355
+ .fpu softvfp
1588216356 .type FtlMapWritePage, %function
1588316357 FtlMapWritePage:
1588416358 .fnstart
1588516359 @ args = 0, pretend = 0, frame = 8
1588616360 @ frame_needed = 0, uses_anonymous_args = 0
15887
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
16361
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1588816362 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1588916363 .pad #12
1589016364 mov r4, r0
15891
- ldr r10, .L2698
15892
- mov r8, r1
15893
- ldr fp, .L2698+4
15894
- mov r5, #0
15895
- str r2, [sp]
15896
- mov r9, r10
15897
-.L2680:
15898
- ldr r3, [r10, #-3348]
15899
- ldr r6, .L2698
16365
+ ldr r7, .L2634
16366
+ mov r9, r1
16367
+ mov fp, r2
16368
+ mov r6, #0
16369
+ ldr r10, .L2634+4
16370
+ mov r5, r7
16371
+.L2616:
16372
+ ldr r3, [r7, #-3348]
1590016373 add r3, r3, #1
15901
- str r3, [r10, #-3348]
15902
- ldrh r3, [fp]
16374
+ str r3, [r7, #-3348]
16375
+ ldrh r3, [r10]
1590316376 ldrh r2, [r4, #2]
1590416377 sub r3, r3, #1
1590516378 cmp r2, r3
15906
- bge .L2681
16379
+ bge .L2617
1590716380 ldrh r2, [r4]
1590816381 movw r3, #65535
1590916382 cmp r2, r3
15910
- bne .L2682
15911
-.L2681:
16383
+ bne .L2618
16384
+.L2617:
1591216385 mov r0, r4
1591316386 bl Ftl_write_map_blk_to_last_page
15914
-.L2682:
15915
- ldr r1, [r9, #-3616]
16387
+.L2618:
16388
+ ldr r1, [r5, #-3612]
1591616389 cmp r1, #0
15917
- bne .L2683
16390
+ bne .L2619
1591816391 ldrh r3, [r4]
1591916392 ldr r2, [r4, #12]
15920
- ldr r0, [r10, #-500]
15921
- mov r3, r3, asl #1
15922
- ldrh r7, [r2, r3]
16393
+ ldr r0, [r5, #-500]
16394
+ lsl r3, r3, #1
16395
+ ldrh r8, [r2, r3]
1592316396 mov r2, #16
1592416397 ldrh r3, [r4, #2]
15925
- str r0, [r10, #1764]
15926
- orr r3, r3, r7, asl #10
15927
- str r3, [r10, #1756]
15928
- ldr r3, [sp]
15929
- str r3, [r10, #1760]
16398
+ str fp, [r5, #1768]
16399
+ str r0, [r5, #1772]
16400
+ orr r3, r3, r8, lsl #10
16401
+ str r3, [r5, #1764]
1593016402 bl ftl_memset
16403
+ ldr r3, [r5, #1772]
1593116404 ldr r2, [r4, #28]
15932
- ldr r3, [r10, #1764]
16405
+ strh r9, [r3, #8] @ movhi
1593316406 str r2, [r3, #4]
15934
- strh r8, [r3, #8] @ movhi
1593516407 ldrh r2, [r4, #4]
15936
- strh r7, [r3, #2] @ movhi
15937
- strh r2, [r3] @ movhi
15938
- ldr r2, .L2698+8
15939
- ldrb r2, [r2] @ zero_extendqisi2
15940
- cmp r2, #0
15941
- beq .L2684
15942
- ldr r2, .L2698+12
15943
- ldr r0, [r10, #1760]
1594416408 str r3, [sp, #4]
16409
+ strh r8, [r3, #2] @ movhi
16410
+ strh r2, [r3] @ movhi
16411
+ ldr r2, .L2634+8
16412
+ ldrb r1, [r2, #36] @ zero_extendqisi2
16413
+ cmp r1, #0
16414
+ beq .L2620
16415
+ add r2, r2, #2400
16416
+ ldr r0, [r5, #1768]
1594516417 ldrh r1, [r2]
1594616418 bl js_hash
1594716419 ldr r3, [sp, #4]
1594816420 str r0, [r3, #12]
15949
-.L2684:
15950
- mov r1, #1
15951
- ldr r0, .L2698+16
15952
- mov r2, r1
15953
- mov r3, r1
16421
+.L2620:
16422
+ mov r3, #1
16423
+ ldr r0, .L2634+12
16424
+ mov r2, r3
16425
+ mov r1, r3
1595416426 bl FlashProgPages
1595516427 ldrh r3, [r4, #2]
1595616428 add r3, r3, #1
1595716429 uxth r3, r3
1595816430 strh r3, [r4, #2] @ movhi
15959
- ldr r2, [r9, #1752]
16431
+ ldr r2, [r5, #1760]
1596016432 cmn r2, #1
15961
- bne .L2685
15962
- ldr r0, .L2698+20
15963
- add r5, r5, #1
15964
- ldr r1, [r10, #1756]
16433
+ bne .L2621
16434
+ ldr r1, [r5, #1764]
16435
+ add r6, r6, #1
16436
+ ldr r0, .L2634+16
16437
+ uxth r6, r6
1596516438 bl printk
1596616439 ldrh r3, [r4, #2]
15967
- uxth r5, r5
1596816440 cmp r3, #2
15969
- ldrls r3, .L2698+4
15970
- ldrlsh r3, [r3]
16441
+ ldrhls r3, [r10]
1597116442 subls r3, r3, #1
15972
- strlsh r3, [r4, #2] @ movhi
15973
- cmp r5, #3
15974
- bls .L2680
15975
- ldr r0, .L2698+24
15976
- mov r2, r5
15977
- ldr r1, [r6, #1756]
16443
+ strhls r3, [r4, #2] @ movhi
16444
+ cmp r6, #3
16445
+ bls .L2616
16446
+ mov r2, r6
16447
+ ldr r1, [r5, #1764]
16448
+ ldr r0, .L2634+20
1597816449 bl printk
1597916450 mov r3, #1
15980
- str r3, [r6, #-3616]
15981
- b .L2683
15982
-.L2685:
15983
- cmp r2, #0
15984
- strneh r7, [r4, #40] @ movhi
15985
- cmp r2, #256
15986
- cmpne r3, #1
15987
- beq .L2689
15988
- ldr r3, [r4, #36]
15989
- cmp r3, #0
15990
- beq .L2690
15991
-.L2689:
15992
- mov r3, #0
15993
- str r3, [r4, #36]
15994
- b .L2680
15995
-.L2690:
15996
- ldr r2, [r6, #1756]
15997
- ldr r3, [r4, #24]
15998
- str r2, [r3, r8, asl #2]
15999
-.L2683:
16451
+ str r3, [r5, #-3612]
16452
+.L2619:
1600016453 mov r0, #0
1600116454 add sp, sp, #12
1600216455 @ sp needed
16003
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16004
-.L2699:
16456
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16457
+.L2621:
16458
+ cmp r2, #0
16459
+ strhne r8, [r4, #40] @ movhi
16460
+ cmp r3, #1
16461
+ cmpne r2, #256
16462
+ beq .L2625
16463
+ ldr r3, [r4, #36]
16464
+ cmp r3, #0
16465
+ beq .L2626
16466
+.L2625:
16467
+ mov r3, #0
16468
+ str r3, [r4, #36]
16469
+ b .L2616
16470
+.L2626:
16471
+ ldr r2, [r5, #1764]
16472
+ ldr r3, [r4, #24]
16473
+ str r2, [r3, r9, lsl #2]
16474
+ b .L2619
16475
+.L2635:
1600516476 .align 2
16006
-.L2698:
16477
+.L2634:
1600716478 .word .LANCHOR2
16008
- .word .LANCHOR0+2390
16479
+ .word .LANCHOR0+2392
1600916480 .word .LANCHOR0
16010
- .word .LANCHOR0+2398
16011
- .word .LANCHOR2+1752
16481
+ .word .LANCHOR2+1760
1601216482 .word .LC134
1601316483 .word .LC135
1601416484 .fnend
1601516485 .size FtlMapWritePage, .-FtlMapWritePage
1601616486 .align 2
1601716487 .global flush_l2p_region
16488
+ .syntax unified
16489
+ .arm
16490
+ .fpu softvfp
1601816491 .type flush_l2p_region, %function
1601916492 flush_l2p_region:
1602016493 .fnstart
1602116494 @ args = 0, pretend = 0, frame = 0
1602216495 @ frame_needed = 0, uses_anonymous_args = 0
16023
- stmfd sp!, {r3, r4, r5, lr}
16024
- .save {r3, r4, r5, lr}
16496
+ push {r4, r5, r6, lr}
16497
+ .save {r4, r5, r6, lr}
1602516498 mov r4, #12
16026
- ldr r5, .L2702
16499
+ ldr r5, .L2638
1602716500 mul r4, r4, r0
16501
+ ldr r3, [r5, #-3376]
1602816502 sub r0, r5, #432
16029
- ldr r3, [r5, #-3380]
1603016503 add r2, r3, r4
1603116504 ldrh r1, [r3, r4]
1603216505 ldr r2, [r2, #8]
1603316506 bl FtlMapWritePage
16034
- ldr r3, [r5, #-3380]
16507
+ ldr r3, [r5, #-3376]
1603516508 mov r0, #0
1603616509 add r4, r3, r4
1603716510 ldr r3, [r4, #4]
1603816511 bic r3, r3, #-2147483648
1603916512 str r3, [r4, #4]
16040
- ldmfd sp!, {r3, r4, r5, pc}
16041
-.L2703:
16513
+ pop {r4, r5, r6, pc}
16514
+.L2639:
1604216515 .align 2
16043
-.L2702:
16516
+.L2638:
1604416517 .word .LANCHOR2
1604516518 .fnend
1604616519 .size flush_l2p_region, .-flush_l2p_region
1604716520 .align 2
1604816521 .global FtlMapTblRecovery
16522
+ .syntax unified
16523
+ .arm
16524
+ .fpu softvfp
1604916525 .type FtlMapTblRecovery, %function
1605016526 FtlMapTblRecovery:
1605116527 .fnstart
1605216528 @ args = 0, pretend = 0, frame = 24
1605316529 @ frame_needed = 0, uses_anonymous_args = 0
16054
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
16530
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1605516531 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1605616532 .pad #28
1605716533 sub sp, sp, #28
16058
- ldr r3, [r0, #16]
16534
+ ldr r3, [r0, #24]
1605916535 mov r4, r0
16060
- ldrh r10, [r0, #6]
1606116536 mov r1, #0
16062
- ldr r8, [r0, #24]
16537
+ mov r7, #0
16538
+ ldr r5, .L2682
16539
+ str r3, [sp]
16540
+ ldr r3, [r0, #16]
16541
+ ldr r8, [r0, #12]
16542
+ ldr fp, .L2682+4
1606316543 str r3, [sp, #12]
16544
+ ldrh r3, [r0, #6]
16545
+ str r3, [sp, #4]
1606416546 ldrh r3, [r0, #8]
16065
- mov r2, r10, asl #2
16066
- ldr r9, [r0, #12]
16067
- mov r0, r8
16547
+ ldr r0, [sp]
1606816548 str r3, [sp, #8]
16549
+ ldr r3, [sp, #4]
16550
+ lsl r2, r3, #2
1606916551 bl ftl_memset
16070
- ldr r1, .L2747
16071
- mov r2, #1
16072
- str r2, [r4, #36]
16073
- ldr r3, [r1, #-524]
16074
- mov r5, r1
16075
- ldr r6, [r1, #-500]
16076
- mov r7, r1
16077
- str r3, [r1, #1760]
16552
+ ldr r3, [r5, #-524]
16553
+ ldr r6, [r5, #-500]
16554
+ str r7, [r4, #32]
16555
+ str r3, [r5, #1768]
1607816556 mvn r3, #0
16079
- str r6, [r1, #1764]
16557
+ str r6, [r5, #1772]
1608016558 strh r3, [r4] @ movhi
1608116559 strh r3, [r4, #2] @ movhi
16082
- mov r3, #0
16083
- str r3, [r4, #32]
16084
- str r3, [r4, #28]
16085
- str r3, [sp, #4]
16086
-.L2705:
16087
- ldrh r3, [sp, #4]
16088
- ldr r2, [sp, #8]
16089
- sxth fp, r3
16090
- cmp fp, r2
16091
- bge .L2723
16092
- ldr r2, [sp, #8]
16093
- sub r2, r2, #1
16094
- cmp fp, r2
16095
- mov r2, fp, asl #1
16096
- bne .L2706
16097
- ldrh r0, [r9, r2]
16560
+ mov r3, #1
16561
+ str r7, [r4, #28]
16562
+ str r3, [r4, #36]
16563
+.L2641:
16564
+ ldr r3, [sp, #8]
16565
+ sxth r10, r7
16566
+ cmp r10, r3
16567
+ bge .L2660
16568
+ ldr r3, [sp, #8]
16569
+ sub r3, r3, #1
16570
+ cmp r10, r3
16571
+ lsl r3, r10, #1
16572
+ bne .L2642
16573
+ ldrh r0, [r8, r3]
1609816574 mov r1, #1
16099
- str r3, [sp, #8]
16100
- add r3, r9, r2
16101
- str r3, [sp, #4]
16575
+ add r9, r8, r3
16576
+ mov r8, #0
1610216577 bl FtlGetLastWrittenPage
16103
- mov r7, #0
16104
- ldr r3, [sp, #8]
16105
- add r2, r0, #1
16106
- strh r2, [r4, #2] @ movhi
16107
- sxth r0, r0
16108
- add r9, r0, #1
16109
- strh r3, [r4] @ movhi
16110
- ldr r3, [sp, #12]
16111
- ldr r3, [r3, fp, asl #2]
16112
- ldr fp, .L2747
16113
- str r3, [r4, #28]
16114
-.L2707:
16115
- sxth r3, r7
16116
- cmp r3, r9
16117
- bge .L2723
16118
- ldr r2, [sp, #4]
16119
- mov r1, #1
16120
- ldr r0, .L2747+4
16121
- ldrh r2, [r2]
16122
- orr r3, r3, r2, asl #10
16123
- mov r2, r1
16124
- str r3, [r5, #1756]
16125
- bl FlashReadPages
16126
- ldr r3, .L2747+8
16127
- ldrb r3, [r3] @ zero_extendqisi2
16128
- cmp r3, #0
16129
- beq .L2708
16130
- ldr r3, [fp, #1764]
16131
- ldr r3, [r3, #12]
16132
- cmp r3, #0
16133
- beq .L2708
16134
- ldr r2, .L2747+12
16135
- ldr r0, [fp, #1760]
16578
+ sxth r3, r0
16579
+ strh r7, [r4] @ movhi
16580
+ add r0, r0, #1
16581
+ ldr r7, .L2682+8
1613616582 str r3, [sp, #8]
16137
- ldrh r1, [r2]
16138
- bl js_hash
16583
+ ldr r3, [sp, #12]
16584
+ strh r0, [r4, #2] @ movhi
16585
+ add fp, r7, #2400
16586
+ ldr r3, [r3, r10, lsl #2]
16587
+ ldr r10, .L2682+12
16588
+ str r3, [r4, #28]
16589
+.L2643:
1613916590 ldr r3, [sp, #8]
16140
- cmp r3, r0
16141
- mvnne r3, #0
16142
- strne r3, [fp, #1752]
16143
-.L2708:
16144
- ldr r3, [fp, #1752]
16145
- cmn r3, #1
16146
- beq .L2709
16147
- ldrh r3, [r6, #8]
16148
- cmp r3, r10
16149
- bcs .L2709
16150
- ldrh r2, [r4, #4]
16151
- ldrh r1, [r6]
16152
- cmp r1, r2
16153
- ldreq r2, [fp, #1756]
16154
- streq r2, [r8, r3, asl #2]
16155
-.L2709:
16156
- add r7, r7, #1
16157
- b .L2707
16158
-.L2723:
16591
+ sxth r2, r8
16592
+ add r1, r3, #1
16593
+ cmp r2, r1
16594
+ blt .L2646
16595
+.L2660:
1615916596 mov r0, r4
1616016597 bl ftl_free_no_use_map_blk
16161
- ldr r1, .L2747+8
16162
- movw r3, #2390
16598
+ ldr r1, .L2682+8
16599
+ movw r3, #2392
1616316600 ldrh r2, [r4, #2]
1616416601 ldrh r3, [r1, r3]
1616516602 cmp r2, r3
16166
- bne .L2712
16603
+ bne .L2648
1616716604 mov r0, r4
1616816605 bl ftl_map_blk_alloc_new_blk
16169
- b .L2712
16170
-.L2706:
16171
- ldr r3, [r5, #-524]
16172
- mov r1, #1
16173
- ldr fp, .L2747+16
16174
- ldr r0, .L2747+4
16175
- str r3, [r5, #1760]
16176
- add r3, r9, r2
16177
- ldrh r2, [r9, r2]
16178
- str r3, [sp, #16]
16179
- ldrh r3, [fp]
16180
- sub r3, r3, #1
16181
- orr r3, r3, r2, asl #10
16182
- mov r2, r1
16183
- str r3, [r5, #1756]
16184
- bl FlashReadPages
16185
- ldr r3, [r5, #1752]
16186
- cmn r3, #1
16187
- mov r3, fp
16188
- beq .L2725
16189
- ldrh r1, [r6]
16190
- ldrh r2, [r4, #4]
16191
- cmp r1, r2
16192
- bne .L2725
16193
- ldrh r1, [r6, #8]
16194
- movw r2, #64245
16195
- cmp r1, r2
16196
- bne .L2725
16197
- mov r0, #0
16198
- mov lr, #8
16199
- mov fp, #4
16200
-.L2714:
16201
- uxth r2, r0
16202
- ldrh ip, [r3]
16203
- sxth r1, r2
16204
- sub ip, ip, #1
16205
- cmp r1, ip
16206
- bge .L2717
16207
- ldr ip, [r5, #-524]
16208
- add r0, r0, #1
16209
- ldr r1, [ip, r1, asl #3]
16210
- uxth r1, r1
16211
- cmp r1, r10
16212
- smlabbcc r2, r2, lr, fp
16213
- ldrcc r2, [ip, r2]
16214
- strcc r2, [r8, r1, asl #2]
16215
- b .L2714
16216
-.L2725:
16217
- mov fp, #0
16218
-.L2745:
16219
- ldr r3, .L2747+16
16220
- sxth r2, fp
16221
- ldrh r1, [r3]
16222
- cmp r2, r1
16223
- bge .L2717
16224
- str r3, [sp, #20]
16225
- ldr r3, [sp, #16]
16226
- ldr r0, .L2747+4
16227
- ldrh r1, [r3]
16228
- orr r2, r2, r1, asl #10
16229
- mov r1, #1
16230
- str r2, [r7, #1756]
16231
- mov r2, r1
16232
- bl FlashReadPages
16233
- ldr r3, .L2747+8
16234
- ldrb r2, [r3] @ zero_extendqisi2
16235
- cmp r2, #0
16236
- ldr r3, [sp, #20]
16237
- beq .L2718
16238
- ldr r2, [r7, #1764]
16239
- ldr r2, [r2, #12]
16240
- cmp r2, #0
16241
- beq .L2718
16242
- ldrh r1, [r3, #8]
16243
- ldr r0, [r7, #1760]
16244
- str r2, [sp, #20]
16245
- bl js_hash
16246
- ldr r2, [sp, #20]
16247
- cmp r2, r0
16248
- mvnne r3, #0
16249
- strne r3, [r7, #1752]
16250
-.L2718:
16251
- ldr r3, .L2747
16252
- ldr r3, [r3, #1752]
16253
- cmn r3, #1
16254
- beq .L2719
16255
- ldrh r3, [r6, #8]
16256
- cmp r3, r10
16257
- bcs .L2719
16258
- ldrh r2, [r4, #4]
16259
- ldrh r1, [r6]
16260
- cmp r1, r2
16261
- ldreq r2, [r7, #1756]
16262
- streq r2, [r8, r3, asl #2]
16263
-.L2719:
16264
- add fp, fp, #1
16265
- b .L2745
16266
-.L2717:
16267
- ldr r3, [sp, #4]
16268
- add r3, r3, #1
16269
- str r3, [sp, #4]
16270
- b .L2705
16271
-.L2712:
16606
+.L2648:
1627216607 mov r0, r4
1627316608 bl ftl_map_blk_gc
1627416609 mov r0, r4
....@@ -16276,54 +16611,199 @@
1627616611 mov r0, #0
1627716612 add sp, sp, #28
1627816613 @ sp needed
16279
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16280
-.L2748:
16614
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16615
+.L2646:
16616
+ ldrh r1, [r9]
16617
+ mov r0, r10
16618
+ orr r2, r2, r1, lsl #10
16619
+ str r2, [r5, #1764]
16620
+ mov r2, #1
16621
+ mov r1, r2
16622
+ bl FlashReadPages
16623
+ ldrb r2, [r7, #36] @ zero_extendqisi2
16624
+ cmp r2, #0
16625
+ beq .L2644
16626
+ ldr r2, [r5, #1772]
16627
+ ldr r2, [r2, #12]
16628
+ cmp r2, #0
16629
+ str r2, [sp, #12]
16630
+ beq .L2644
16631
+ ldrh r1, [fp]
16632
+ ldr r0, [r5, #1768]
16633
+ bl js_hash
16634
+ ldr r2, [sp, #12]
16635
+ cmp r2, r0
16636
+ mvnne r2, #0
16637
+ strne r2, [r5, #1760]
16638
+.L2644:
16639
+ ldr r1, .L2682
16640
+ ldr r2, [r1, #1760]
16641
+ cmn r2, #1
16642
+ beq .L2645
16643
+ ldrh r2, [r6, #8]
16644
+ ldr r3, [sp, #4]
16645
+ cmp r3, r2
16646
+ bls .L2645
16647
+ ldrh ip, [r6]
16648
+ ldrh r0, [r4, #4]
16649
+ cmp ip, r0
16650
+ ldreq r1, [r1, #1764]
16651
+ ldreq r3, [sp]
16652
+ streq r1, [r3, r2, lsl #2]
16653
+.L2645:
16654
+ add r8, r8, #1
16655
+ b .L2643
16656
+.L2642:
16657
+ ldr r2, [r5, #-524]
16658
+ ldr r0, .L2682+12
16659
+ str r2, [r5, #1768]
16660
+ add r2, r8, r3
16661
+ str r2, [sp, #16]
16662
+ ldrh r2, [r8, r3]
16663
+ ldrh r3, [fp]
16664
+ sub r3, r3, #1
16665
+ orr r3, r3, r2, lsl #10
16666
+ mov r2, #1
16667
+ mov r1, r2
16668
+ str r3, [r5, #1764]
16669
+ bl FlashReadPages
16670
+ ldr r3, [r5, #1760]
16671
+ cmn r3, #1
16672
+ beq .L2662
16673
+ ldrh r2, [r6]
16674
+ ldrh r3, [r4, #4]
16675
+ cmp r2, r3
16676
+ bne .L2662
16677
+ ldrh r2, [r6, #8]
16678
+ movw r3, #64245
16679
+ cmp r2, r3
16680
+ beq .L2650
16681
+.L2662:
16682
+ ldr r9, .L2682
16683
+ mov r10, #0
16684
+.L2651:
16685
+ ldrh r2, [fp]
16686
+ sxth r3, r10
16687
+ cmp r3, r2
16688
+ bge .L2658
16689
+ ldr r2, [sp, #16]
16690
+ ldr r0, .L2682+12
16691
+ ldrh r2, [r2]
16692
+ orr r3, r3, r2, lsl #10
16693
+ mov r2, #1
16694
+ mov r1, r2
16695
+ str r3, [r9, #1764]
16696
+ bl FlashReadPages
16697
+ ldr r3, .L2682+8
16698
+ ldrb r3, [r3, #36] @ zero_extendqisi2
16699
+ cmp r3, #0
16700
+ beq .L2655
16701
+ ldr r3, [r9, #1772]
16702
+ ldr r3, [r3, #12]
16703
+ cmp r3, #0
16704
+ str r3, [sp, #20]
16705
+ beq .L2655
16706
+ ldr r2, .L2682+16
16707
+ ldr r0, [r9, #1768]
16708
+ ldrh r1, [r2]
16709
+ bl js_hash
16710
+ ldr r3, [sp, #20]
16711
+ cmp r3, r0
16712
+ mvnne r3, #0
16713
+ strne r3, [r9, #1760]
16714
+.L2655:
16715
+ ldr r3, [r9, #1760]
16716
+ cmn r3, #1
16717
+ beq .L2656
16718
+ ldrh r3, [r6, #8]
16719
+ ldr r2, [sp, #4]
16720
+ cmp r2, r3
16721
+ bls .L2656
16722
+ ldrh r1, [r6]
16723
+ ldrh r2, [r4, #4]
16724
+ cmp r1, r2
16725
+ ldreq r2, [r9, #1764]
16726
+ ldreq r1, [sp]
16727
+ streq r2, [r1, r3, lsl #2]
16728
+.L2656:
16729
+ add r10, r10, #1
16730
+ b .L2651
16731
+.L2650:
16732
+ mov r1, #0
16733
+ mov ip, #4
16734
+.L2652:
16735
+ ldrh r2, [fp]
16736
+ sxth r3, r1
16737
+ sub r2, r2, #1
16738
+ cmp r3, r2
16739
+ blt .L2654
16740
+.L2658:
16741
+ add r7, r7, #1
16742
+ b .L2641
16743
+.L2654:
16744
+ ldr r0, [r5, #-524]
16745
+ add r1, r1, #1
16746
+ ldr r9, [sp, #4]
16747
+ ldr r2, [r0, r3, lsl #3]
16748
+ uxth lr, r2
16749
+ cmp r9, lr
16750
+ addhi r3, ip, r3, lsl #3
16751
+ movhi r2, lr
16752
+ ldrhi r3, [r0, r3]
16753
+ ldrhi r0, [sp]
16754
+ strhi r3, [r0, r2, lsl #2]
16755
+ b .L2652
16756
+.L2683:
1628116757 .align 2
16282
-.L2747:
16758
+.L2682:
1628316759 .word .LANCHOR2
16284
- .word .LANCHOR2+1752
16760
+ .word .LANCHOR0+2392
1628516761 .word .LANCHOR0
16286
- .word .LANCHOR0+2398
16287
- .word .LANCHOR0+2390
16762
+ .word .LANCHOR2+1760
16763
+ .word .LANCHOR0+2400
1628816764 .fnend
1628916765 .size FtlMapTblRecovery, .-FtlMapTblRecovery
1629016766 .align 2
1629116767 .global FtlLoadVonderInfo
16768
+ .syntax unified
16769
+ .arm
16770
+ .fpu softvfp
1629216771 .type FtlLoadVonderInfo, %function
1629316772 FtlLoadVonderInfo:
1629416773 .fnstart
1629516774 @ args = 0, pretend = 0, frame = 0
1629616775 @ frame_needed = 0, uses_anonymous_args = 0
16297
- ldr r2, .L2751
16298
- movw r1, #2408
16299
- stmfd sp!, {r3, lr}
16300
- .save {r3, lr}
16301
- ldr r3, .L2751+4
16776
+ ldr r2, .L2686
16777
+ movw r1, #2412
16778
+ ldr r3, .L2686+4
16779
+ push {r4, lr}
16780
+ .save {r4, lr}
1630216781 ldrh r1, [r2, r1]
1630316782 add r0, r3, #1792
16783
+ add r0, r0, #8
1630416784 strh r1, [r0, #10] @ movhi
16305
- ldr r1, .L2751+8
16785
+ ldr r1, .L2686+8
1630616786 strh r1, [r0, #4] @ movhi
16307
- movw r1, #2434
16787
+ movw r1, #2438
1630816788 ldrh r1, [r2, r1]
1630916789 strh r1, [r0, #8] @ movhi
16310
- movw r1, #2410
16790
+ movw r1, #2414
1631116791 ldrh r1, [r2, r1]
16312
- ldr r2, [r2, #2436]
16792
+ ldr r2, [r2, #2440]
1631316793 strh r1, [r0, #6] @ movhi
16314
- str r2, [r3, #1804]
16315
- ldr r2, [r3, #-460]
16316
- str r2, [r3, #1808]
16317
- ldr r2, [r3, #-464]
1631816794 str r2, [r3, #1812]
16319
- ldr r2, [r3, #-456]
16795
+ ldr r2, [r3, #-460]
1632016796 str r2, [r3, #1816]
16797
+ ldr r2, [r3, #-464]
16798
+ str r2, [r3, #1820]
16799
+ ldr r2, [r3, #-456]
16800
+ str r2, [r3, #1824]
1632116801 bl FtlMapTblRecovery
1632216802 mov r0, #0
16323
- ldmfd sp!, {r3, pc}
16324
-.L2752:
16803
+ pop {r4, pc}
16804
+.L2687:
1632516805 .align 2
16326
-.L2751:
16806
+.L2686:
1632716807 .word .LANCHOR0
1632816808 .word .LANCHOR2
1632916809 .word -3962
....@@ -16331,237 +16811,241 @@
1633116811 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo
1633216812 .align 2
1633316813 .global FtlLoadMapInfo
16814
+ .syntax unified
16815
+ .arm
16816
+ .fpu softvfp
1633416817 .type FtlLoadMapInfo, %function
1633516818 FtlLoadMapInfo:
1633616819 .fnstart
1633716820 @ args = 0, pretend = 0, frame = 0
1633816821 @ frame_needed = 0, uses_anonymous_args = 0
16339
- stmfd sp!, {r3, lr}
16340
- .save {r3, lr}
16822
+ push {r4, lr}
16823
+ .save {r4, lr}
1634116824 bl FtlL2PDataInit
16342
- ldr r0, .L2755
16825
+ ldr r0, .L2690
1634316826 bl FtlMapTblRecovery
1634416827 mov r0, #0
16345
- ldmfd sp!, {r3, pc}
16346
-.L2756:
16828
+ pop {r4, pc}
16829
+.L2691:
1634716830 .align 2
16348
-.L2755:
16831
+.L2690:
1634916832 .word .LANCHOR2-432
1635016833 .fnend
1635116834 .size FtlLoadMapInfo, .-FtlLoadMapInfo
1635216835 .align 2
1635316836 .global FtlVendorPartWrite
16837
+ .syntax unified
16838
+ .arm
16839
+ .fpu softvfp
1635416840 .type FtlVendorPartWrite, %function
1635516841 FtlVendorPartWrite:
1635616842 .fnstart
1635716843 @ args = 0, pretend = 0, frame = 56
1635816844 @ frame_needed = 0, uses_anonymous_args = 0
16359
- ldr r3, .L2768
16360
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
16845
+ ldr r3, .L2702
16846
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1636116847 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1636216848 mov r10, r2
16363
- movw r2, #2396
16364
- mov r6, r0
16365
- ldrh r5, [r3, r2]
16366
- add r3, r3, #2384
16367
- add r2, r0, r1
16849
+ movw r2, #2386
16850
+ mov r5, r1
16851
+ add r1, r0, r1
1636816852 .pad #60
1636916853 sub sp, sp, #60
16370
- ldrh r3, [r3]
16371
- mov r4, r1
16372
- cmp r2, r3
16373
- mvnhi r0, #0
16374
- bhi .L2758
16375
- ldr fp, .L2768+4
16376
- mov r5, r6, lsr r5
16377
- mov r3, r5, asl #2
16378
- str r3, [sp, #4]
16379
- mov r7, fp
16380
- mov r3, #0
16381
- str r3, [sp]
16382
-.L2759:
16383
- cmp r4, #0
16384
- beq .L2767
16385
- ldr r2, [sp, #4]
16386
- mov r0, r6
16387
- ldr r3, [fp, #-456]
16388
- ldr ip, [r3, r2]
16389
- ldr r3, .L2768+8
16390
- str ip, [sp, #12]
16391
- ldrh r2, [r3]
16392
- mov r1, r2
16393
- str r2, [sp, #8]
16394
- bl __aeabi_uidivmod
16395
- ldr r2, [sp, #8]
16396
- mov r8, r1
16397
- ldr ip, [sp, #12]
16398
- rsb r3, r1, r2
16399
- uxth r9, r3
16400
- cmp r9, r4
16401
- uxthhi r9, r4
16402
- cmp r9, r2
16403
- cmpne ip, #0
16404
- movne r1, #1
16405
- moveq r1, #0
16406
- beq .L2761
16407
- ldr r2, [r7, #-516]
16408
- mov r1, #1
16409
- add r0, sp, #20
16410
- str ip, [sp, #24]
16411
- str r2, [sp, #28]
16412
- mov r2, #0
16413
- str r2, [sp, #32]
16414
- mov r2, r1
16415
- bl FlashReadPages
16416
- b .L2762
16417
-.L2761:
16418
- ldr r2, .L2768+12
16419
- ldr r0, [r7, #-516]
16420
- ldrh r2, [r2]
16421
- bl ftl_memset
16422
-.L2762:
16423
- mov ip, r9, asl #9
16424
- ldr r0, [r7, #-516]
16425
- uxth r8, r8
16426
- mov r1, r10
16427
- mov r2, ip
16428
- str ip, [sp, #8]
16429
- add r0, r0, r8, asl #9
16430
- rsb r4, r9, r4
16431
- bl ftl_memcpy
16432
- mov r1, r5
16433
- ldr r0, .L2768+16
16434
- add r5, r5, #1
16435
- ldr r2, [r7, #-516]
16436
- add r6, r6, r9
16437
- bl FtlMapWritePage
16438
- ldr r3, [sp]
16439
- cmn r0, #1
16440
- ldr ip, [sp, #8]
16441
- mvneq r3, #0
16442
- str r3, [sp]
16443
- add r10, r10, ip
16444
- ldr r3, [sp, #4]
16445
- add r3, r3, #4
16446
- str r3, [sp, #4]
16447
- b .L2759
16448
-.L2767:
16449
- ldr r0, [sp]
16450
-.L2758:
16854
+ ldrh r2, [r3, r2]
16855
+ cmp r1, r2
16856
+ mvnhi r9, #0
16857
+ bhi .L2692
16858
+ movw r2, #2398
16859
+ ldr r8, .L2702+4
16860
+ ldrh r6, [r3, r2]
16861
+ mov r7, r0
16862
+ mov r9, #0
16863
+ lsr r6, r0, r6
16864
+ lsl fp, r6, #2
16865
+.L2694:
16866
+ cmp r5, #0
16867
+ bne .L2699
16868
+.L2692:
16869
+ mov r0, r9
1645116870 add sp, sp, #60
1645216871 @ sp needed
16453
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16454
-.L2769:
16872
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16873
+.L2699:
16874
+ ldr r3, [r8, #-456]
16875
+ mov r0, r7
16876
+ ldr r2, [r3, fp]
16877
+ ldr r3, .L2702+8
16878
+ str r2, [sp, #12]
16879
+ ldrh r3, [r3]
16880
+ mov r1, r3
16881
+ str r3, [sp, #8]
16882
+ bl __aeabi_uidivmod
16883
+ ldr r3, [sp, #8]
16884
+ ldr r2, [sp, #12]
16885
+ str r1, [sp, #4]
16886
+ sub r4, r3, r1
16887
+ uxth r4, r4
16888
+ cmp r5, r4
16889
+ uxthcc r4, r5
16890
+ cmp r2, #0
16891
+ cmpne r4, r3
16892
+ movne r1, #1
16893
+ moveq r1, #0
16894
+ beq .L2696
16895
+ ldr r3, [r8, #-516]
16896
+ add r0, sp, #20
16897
+ str r2, [sp, #24]
16898
+ mov r2, #1
16899
+ mov r1, r2
16900
+ str r3, [sp, #28]
16901
+ mov r3, #0
16902
+ str r3, [sp, #32]
16903
+ bl FlashReadPages
16904
+.L2697:
16905
+ lsl r3, r4, #9
16906
+ ldr r0, [r8, #-516]
16907
+ mov r1, r10
16908
+ mov r2, r3
16909
+ str r3, [sp, #8]
16910
+ ldr r3, [sp, #4]
16911
+ sub r5, r5, r4
16912
+ add r7, r7, r4
16913
+ add fp, fp, #4
16914
+ add r0, r0, r3, lsl #9
16915
+ bl ftl_memcpy
16916
+ mov r1, r6
16917
+ ldr r2, [r8, #-516]
16918
+ ldr r0, .L2702+12
16919
+ add r6, r6, #1
16920
+ bl FtlMapWritePage
16921
+ ldr r3, [sp, #8]
16922
+ cmn r0, #1
16923
+ mvneq r9, #0
16924
+ add r10, r10, r3
16925
+ b .L2694
16926
+.L2696:
16927
+ ldr r3, .L2702+16
16928
+ ldr r0, [r8, #-516]
16929
+ ldrh r2, [r3]
16930
+ bl ftl_memset
16931
+ b .L2697
16932
+.L2703:
1645516933 .align 2
16456
-.L2768:
16934
+.L2702:
1645716935 .word .LANCHOR0
1645816936 .word .LANCHOR2
16459
- .word .LANCHOR0+2394
16460
- .word .LANCHOR0+2398
16461
- .word .LANCHOR2+1792
16937
+ .word .LANCHOR0+2396
16938
+ .word .LANCHOR2+1800
16939
+ .word .LANCHOR0+2400
1646216940 .fnend
1646316941 .size FtlVendorPartWrite, .-FtlVendorPartWrite
1646416942 .align 2
1646516943 .global Ftl_save_ext_data
16944
+ .syntax unified
16945
+ .arm
16946
+ .fpu softvfp
1646616947 .type Ftl_save_ext_data, %function
1646716948 Ftl_save_ext_data:
1646816949 .fnstart
1646916950 @ args = 0, pretend = 0, frame = 0
1647016951 @ frame_needed = 0, uses_anonymous_args = 0
1647116952 @ link register save eliminated.
16472
- ldr r2, .L2772
16473
- ldr r3, .L2772+4
16474
- ldr r1, [r2, #-3232]
16475
- cmp r1, r3
16953
+ ldr r3, .L2706
16954
+ ldr r2, .L2706+4
16955
+ ldr r1, [r3, #-3236]
16956
+ cmp r1, r2
1647616957 bxne lr
16477
- ldr r3, .L2772+8
16478
- mov r0, #0
16958
+ ldr r2, .L2706+8
1647916959 mov r1, #1
16480
- sub r2, r2, #3232
16481
- str r3, [r2, #4]
16482
- ldr r3, [r2, #-108]
16483
- str r3, [r2, #88]
16484
- ldr r3, [r2, #-104]
16485
- str r3, [r2, #92]
16486
- ldr r3, [r2, #-112]
16487
- str r3, [r2, #8]
16488
- ldr r3, [r2, #-124]
16489
- str r3, [r2, #12]
16490
- ldr r3, [r2, #-132]
16491
- str r3, [r2, #16]
16492
- ldr r3, [r2, #-116]
16493
- str r3, [r2, #20]
16494
- ldr r3, [r2, #-88]
16495
- str r3, [r2, #28]
16496
- ldr r3, [r2, #-372]
16497
- str r3, [r2, #32]
16498
- ldr r3, [r2, #-128]
16499
- str r3, [r2, #36]
16500
- ldr r3, [r2, #-120]
16501
- str r3, [r2, #40]
16502
- ldr r3, [r2, #-80]
16503
- str r3, [r2, #44]
16504
- ldr r3, [r2, #-76]
16505
- str r3, [r2, #48]
16506
- ldr r3, [r2, #-4]
16507
- str r3, [r2, #60]
16508
- ldr r3, [r2, #2668]
16509
- str r3, [r2, #64]
16960
+ mov r0, #0
16961
+ str r2, [r3, #-3232]
16962
+ ldr r2, [r3, #-3340]
16963
+ str r2, [r3, #-3148]
16964
+ ldr r2, [r3, #-3336]
16965
+ str r2, [r3, #-3144]
16966
+ ldr r2, [r3, #-3344]
16967
+ str r2, [r3, #-3228]
16968
+ ldr r2, [r3, #-3356]
16969
+ str r2, [r3, #-3224]
16970
+ ldr r2, [r3, #-3364]
16971
+ str r2, [r3, #-3220]
16972
+ ldr r2, [r3, #-3348]
16973
+ str r2, [r3, #-3216]
16974
+ ldr r2, [r3, #-3320]
16975
+ str r2, [r3, #-3208]
16976
+ ldr r2, [r3, #-3600]
16977
+ str r2, [r3, #-3204]
16978
+ ldr r2, [r3, #-3360]
16979
+ str r2, [r3, #-3200]
16980
+ ldr r2, [r3, #-3352]
16981
+ str r2, [r3, #-3196]
16982
+ ldr r2, [r3, #-3312]
16983
+ str r2, [r3, #-3192]
16984
+ ldr r2, [r3, #-3308]
16985
+ str r2, [r3, #-3188]
16986
+ ldr r2, [r3, #-2724]
16987
+ str r2, [r3, #-3176]
16988
+ ldr r2, [r3, #-564]
16989
+ str r2, [r3, #-3172]
16990
+ ldr r2, .L2706+12
1651016991 b FtlVendorPartWrite
16511
-.L2773:
16992
+.L2707:
1651216993 .align 2
16513
-.L2772:
16994
+.L2706:
1651416995 .word .LANCHOR2
1651516996 .word 1179929683
1651616997 .word 1342177379
16998
+ .word .LANCHOR2-3236
1651716999 .fnend
1651817000 .size Ftl_save_ext_data, .-Ftl_save_ext_data
1651917001 .align 2
1652017002 .global FtlEctTblFlush
17003
+ .syntax unified
17004
+ .arm
17005
+ .fpu softvfp
1652117006 .type FtlEctTblFlush, %function
1652217007 FtlEctTblFlush:
1652317008 .fnstart
1652417009 @ args = 0, pretend = 0, frame = 0
1652517010 @ frame_needed = 0, uses_anonymous_args = 0
16526
- stmfd sp!, {r3, lr}
16527
- .save {r3, lr}
16528
- ldr r3, .L2782
16529
- ldr r3, [r3, #2244]
17011
+ ldr r3, .L2718
17012
+ ldr r3, [r3, #2248]
1653017013 cmp r3, #0
16531
- ldr r3, .L2782+4
17014
+ ldr r3, .L2718+4
1653217015 moveq r2, #32
16533
- beq .L2775
17016
+ beq .L2709
1653417017 ldr r2, [r3, #-3308]
1653517018 cmp r2, #39
1653617019 movhi r2, #32
1653717020 movls r2, #4
16538
-.L2775:
16539
- movw ip, #1836
17021
+.L2709:
17022
+ movw ip, #1844
1654017023 ldrh r1, [r3, ip]
1654117024 cmp r1, #31
1654217025 addls r1, r1, #1
16543
- ldrls r2, .L2782+4
16544
- strlsh r1, [r2, ip] @ movhi
1654517026 movls r2, #1
17027
+ strhls r1, [r3, ip] @ movhi
1654617028 cmp r0, #0
16547
- bne .L2777
17029
+ bne .L2711
1654817030 ldr r1, [r3, #-480]
1654917031 ldr r0, [r1, #20]
1655017032 ldr r1, [r1, #16]
1655117033 add r2, r2, r0
1655217034 cmp r1, r2
16553
- bcc .L2778
16554
-.L2777:
16555
- ldr r2, [r3, #-480]
17035
+ bcc .L2716
17036
+.L2711:
17037
+ push {r4, lr}
17038
+ .save {r4, lr}
1655617039 mov r0, #64
17040
+ ldr r2, [r3, #-480]
1655717041 ldr r1, [r2, #16]
1655817042 str r1, [r2, #20]
16559
- ldr r1, .L2782+8
17043
+ ldr r1, .L2718+8
1656017044 str r1, [r2]
1656117045 ldr r2, [r3, #-480]
16562
- ldr r3, .L2782+12
17046
+ ldr r3, .L2718+12
1656317047 ldrh r1, [r3]
16564
- mov r3, r1, asl #9
17048
+ lsl r3, r1, #9
1656517049 str r3, [r2, #12]
1656617050 ldr r3, [r2, #8]
1656717051 add r3, r3, #1
....@@ -16570,12 +17054,14 @@
1657017054 str r3, [r2, #4]
1657117055 bl FtlVendorPartWrite
1657217056 bl Ftl_save_ext_data
16573
-.L2778:
1657417057 mov r0, #0
16575
- ldmfd sp!, {r3, pc}
16576
-.L2783:
17058
+ pop {r4, pc}
17059
+.L2716:
17060
+ mov r0, #0
17061
+ bx lr
17062
+.L2719:
1657717063 .align 2
16578
-.L2782:
17064
+.L2718:
1657917065 .word .LANCHOR0
1658017066 .word .LANCHOR2
1658117067 .word 1112818501
....@@ -16584,404 +17070,411 @@
1658417070 .size FtlEctTblFlush, .-FtlEctTblFlush
1658517071 .align 2
1658617072 .global FtlVendorPartRead
17073
+ .syntax unified
17074
+ .arm
17075
+ .fpu softvfp
1658717076 .type FtlVendorPartRead, %function
1658817077 FtlVendorPartRead:
1658917078 .fnstart
1659017079 @ args = 0, pretend = 0, frame = 56
1659117080 @ frame_needed = 0, uses_anonymous_args = 0
16592
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
17081
+ ldr r3, .L2731
17082
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1659317083 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
16594
- movw r3, #2396
16595
- ldr r4, .L2796
16596
- mov r8, r2
16597
- add r2, r0, r1
16598
- mov r7, r0
17084
+ mov r10, r2
17085
+ movw r2, #2386
17086
+ mov r6, r1
17087
+ add r1, r0, r1
1659917088 .pad #60
1660017089 sub sp, sp, #60
16601
- mov r6, r1
16602
- ldrh r5, [r4, r3]
16603
- add r4, r4, #2384
16604
- ldrh r3, [r4]
16605
- cmp r2, r3
16606
- mvnhi r0, #0
16607
- bhi .L2785
16608
- ldr r9, .L2796+4
16609
- mov r5, r7, lsr r5
16610
- mov r3, r5, asl #2
16611
- str r3, [sp, #4]
16612
- mov r10, r9
16613
- mov r3, #0
16614
- str r3, [sp]
16615
-.L2786:
17090
+ ldrh r2, [r3, r2]
17091
+ cmp r1, r2
17092
+ mvnhi r9, #0
17093
+ bhi .L2720
17094
+ movw r2, #2398
17095
+ ldr r8, .L2731+4
17096
+ ldrh r5, [r3, r2]
17097
+ mov r7, r0
17098
+ mov r9, #0
17099
+ lsr r5, r0, r5
17100
+ lsl fp, r5, #2
17101
+.L2722:
1661617102 cmp r6, #0
16617
- beq .L2795
16618
- ldr r2, [sp, #4]
17103
+ bne .L2728
17104
+.L2720:
17105
+ mov r0, r9
17106
+ add sp, sp, #60
17107
+ @ sp needed
17108
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17109
+.L2728:
17110
+ ldr r3, [r8, #-456]
1661917111 mov r0, r7
16620
- ldr r3, [r9, #-456]
16621
- ldr r3, [r3, r2]
16622
- str r3, [sp, #12]
16623
- ldr r3, .L2796+8
17112
+ ldr r3, [r3, fp]
17113
+ str r3, [sp, #8]
17114
+ ldr r3, .L2731+8
1662417115 ldrh r4, [r3]
1662517116 mov r1, r4
1662617117 bl __aeabi_uidivmod
16627
- rsb r4, r1, r4
16628
- ldr r3, [sp, #12]
16629
- str r1, [sp, #8]
17118
+ sub r4, r4, r1
17119
+ ldr r3, [sp, #8]
1663017120 uxth r4, r4
16631
- cmp r4, r6
16632
- uxthhi r4, r6
17121
+ str r1, [sp, #4]
17122
+ cmp r6, r4
17123
+ uxthcc r4, r6
1663317124 cmp r3, #0
16634
- mov fp, r4, asl #9
16635
- beq .L2788
16636
- ldr r2, [r10, #-516]
16637
- mov r1, #1
17125
+ lsl r2, r4, #9
17126
+ str r2, [sp, #8]
17127
+ beq .L2724
17128
+ ldr r2, [r8, #-516]
1663817129 add r0, sp, #20
1663917130 str r3, [sp, #24]
1664017131 str r3, [sp, #12]
1664117132 str r2, [sp, #28]
1664217133 mov r2, #0
1664317134 str r2, [sp, #32]
16644
- mov r2, r1
17135
+ mov r2, #1
17136
+ mov r1, r2
1664517137 bl FlashReadPages
1664617138 ldr r2, [sp, #20]
16647
- ldr r3, [sp]
16648
- cmn r2, #1
16649
- ldr r2, [r10, #1752]
16650
- mvneq r3, #0
16651
- cmp r2, #256
16652
- str r3, [sp]
1665317139 ldr r3, [sp, #12]
16654
- bne .L2790
16655
- mov r1, r5
17140
+ cmn r2, #1
17141
+ ldr r2, [r8, #1760]
17142
+ mvneq r9, #0
17143
+ cmp r2, #256
17144
+ bne .L2726
1665617145 mov r2, r3
16657
- ldr r0, .L2796+12
16658
- bl printk
16659
- ldr r0, .L2796+16
1666017146 mov r1, r5
16661
- ldr r2, [r9, #-516]
17147
+ ldr r0, .L2731+12
17148
+ bl printk
17149
+ ldr r2, [r8, #-516]
17150
+ mov r1, r5
17151
+ ldr r0, .L2731+16
1666217152 bl FtlMapWritePage
16663
-.L2790:
16664
- ldrh r3, [sp, #8]
16665
- mov r0, r8
16666
- ldr r1, [r10, #-516]
16667
- mov r2, fp
16668
- add r1, r1, r3, asl #9
16669
- bl ftl_memcpy
16670
- b .L2791
16671
-.L2788:
16672
- mov r0, r8
16673
- mov r1, r3
16674
- mov r2, fp
16675
- bl ftl_memset
16676
-.L2791:
17153
+.L2726:
17154
+ ldr r1, [r8, #-516]
17155
+ lsl r2, r4, #9
1667717156 ldr r3, [sp, #4]
17157
+ mov r0, r10
17158
+ add r1, r1, r3, lsl #9
17159
+ bl ftl_memcpy
17160
+.L2727:
17161
+ ldr r3, [sp, #8]
1667817162 add r5, r5, #1
16679
- rsb r6, r4, r6
17163
+ sub r6, r6, r4
1668017164 add r7, r7, r4
16681
- add r3, r3, #4
16682
- add r8, r8, fp
16683
- str r3, [sp, #4]
16684
- b .L2786
16685
-.L2795:
16686
- ldr r0, [sp]
16687
-.L2785:
16688
- add sp, sp, #60
16689
- @ sp needed
16690
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
16691
-.L2797:
17165
+ add fp, fp, #4
17166
+ add r10, r10, r3
17167
+ b .L2722
17168
+.L2724:
17169
+ lsl r2, r4, #9
17170
+ mov r1, r3
17171
+ mov r0, r10
17172
+ bl ftl_memset
17173
+ b .L2727
17174
+.L2732:
1669217175 .align 2
16693
-.L2796:
17176
+.L2731:
1669417177 .word .LANCHOR0
1669517178 .word .LANCHOR2
16696
- .word .LANCHOR0+2394
17179
+ .word .LANCHOR0+2396
1669717180 .word .LC136
16698
- .word .LANCHOR2+1792
17181
+ .word .LANCHOR2+1800
1669917182 .fnend
1670017183 .size FtlVendorPartRead, .-FtlVendorPartRead
1670117184 .align 2
1670217185 .global FtlLoadEctTbl
17186
+ .syntax unified
17187
+ .arm
17188
+ .fpu softvfp
1670317189 .type FtlLoadEctTbl, %function
1670417190 FtlLoadEctTbl:
1670517191 .fnstart
1670617192 @ args = 0, pretend = 0, frame = 0
1670717193 @ frame_needed = 0, uses_anonymous_args = 0
16708
- stmfd sp!, {r3, r4, r5, lr}
16709
- .save {r3, r4, r5, lr}
17194
+ push {r4, r5, r6, lr}
17195
+ .save {r4, r5, r6, lr}
1671017196 mov r0, #64
16711
- ldr r4, .L2801
17197
+ ldr r4, .L2736
1671217198 sub r5, r4, #488
1671317199 ldr r2, [r4, #-480]
1671417200 ldrh r1, [r5]
1671517201 bl FtlVendorPartRead
1671617202 ldr r3, [r4, #-480]
1671717203 ldr r2, [r3]
16718
- ldr r3, .L2801+4
17204
+ ldr r3, .L2736+4
1671917205 cmp r2, r3
16720
- beq .L2799
16721
- ldr r1, .L2801+8
16722
- ldr r0, .L2801+12
17206
+ beq .L2734
17207
+ ldr r1, .L2736+8
17208
+ ldr r0, .L2736+12
1672317209 bl printk
1672417210 ldrh r2, [r5]
16725
- ldr r0, [r4, #-480]
1672617211 mov r1, #0
16727
- mov r2, r2, asl #9
17212
+ ldr r0, [r4, #-480]
17213
+ lsl r2, r2, #9
1672817214 bl ftl_memset
16729
-.L2799:
17215
+.L2734:
1673017216 mov r0, #0
16731
- ldmfd sp!, {r3, r4, r5, pc}
16732
-.L2802:
17217
+ pop {r4, r5, r6, pc}
17218
+.L2737:
1673317219 .align 2
16734
-.L2801:
17220
+.L2736:
1673517221 .word .LANCHOR2
1673617222 .word 1112818501
1673717223 .word .LC137
16738
- .word .LC76
17224
+ .word .LC77
1673917225 .fnend
1674017226 .size FtlLoadEctTbl, .-FtlLoadEctTbl
1674117227 .align 2
1674217228 .global Ftl_load_ext_data
17229
+ .syntax unified
17230
+ .arm
17231
+ .fpu softvfp
1674317232 .type Ftl_load_ext_data, %function
1674417233 Ftl_load_ext_data:
1674517234 .fnstart
1674617235 @ args = 0, pretend = 0, frame = 0
1674717236 @ frame_needed = 0, uses_anonymous_args = 0
16748
- stmfd sp!, {r3, r4, r5, lr}
16749
- .save {r3, r4, r5, lr}
16750
- mov r0, #0
16751
- ldr r4, .L2809
17237
+ push {r4, r5, r6, lr}
17238
+ .save {r4, r5, r6, lr}
1675217239 mov r1, #1
16753
- ldr r5, .L2809+4
16754
- sub r2, r4, #3232
17240
+ ldr r4, .L2744
17241
+ mov r0, #0
17242
+ ldr r5, .L2744+4
17243
+ sub r6, r4, #3232
17244
+ sub r6, r6, #4
17245
+ mov r2, r6
1675517246 bl FtlVendorPartRead
16756
- ldr r3, [r4, #-3232]
17247
+ ldr r3, [r4, #-3236]
1675717248 cmp r3, r5
16758
- beq .L2804
16759
- sub r0, r4, #3232
16760
- mov r1, #0
17249
+ beq .L2739
1676117250 mov r2, #512
17251
+ mov r1, #0
17252
+ mov r0, r6
1676217253 bl ftl_memset
16763
- str r5, [r4, #-3232]
16764
-.L2804:
16765
- ldr r2, [r4, #-3232]
16766
- ldr r3, .L2809
16767
- cmp r2, r5
16768
- bne .L2805
16769
- ldr r2, [r3, #-3144]
16770
- str r2, [r3, #-3340]
16771
- ldr r2, [r3, #-3140]
16772
- str r2, [r3, #-3336]
16773
- ldr r2, [r3, #-3224]
16774
- str r2, [r3, #-3344]
16775
- ldr r2, [r3, #-3220]
16776
- str r2, [r3, #-3356]
16777
- ldr r2, [r3, #-3216]
16778
- str r2, [r3, #-3364]
16779
- ldr r2, [r3, #-3212]
16780
- str r2, [r3, #-3348]
16781
- ldr r2, [r3, #-3204]
16782
- str r2, [r3, #-3320]
16783
- ldr r2, [r3, #-3200]
16784
- str r2, [r3, #-3604]
16785
- ldr r2, [r3, #-3196]
16786
- str r2, [r3, #-3360]
16787
- ldr r2, [r3, #-3192]
16788
- str r2, [r3, #-3352]
16789
- ldr r2, [r3, #-3188]
16790
- str r2, [r3, #-3312]
16791
- ldr r2, [r3, #-3184]
16792
- str r2, [r3, #-3308]
16793
- ldr r2, [r3, #-3172]
16794
- str r2, [r3, #-3236]
16795
-.L2805:
16796
- ldr r1, [r4, #-3164]
17254
+ str r5, [r4, #-3236]
17255
+.L2739:
17256
+ ldr r3, [r4, #-3236]
17257
+ cmp r3, r5
17258
+ bne .L2740
17259
+ ldr r3, [r4, #-3148]
17260
+ str r3, [r4, #-3340]
17261
+ ldr r3, [r4, #-3144]
17262
+ str r3, [r4, #-3336]
17263
+ ldr r3, [r4, #-3228]
17264
+ str r3, [r4, #-3344]
17265
+ ldr r3, [r4, #-3224]
17266
+ str r3, [r4, #-3356]
17267
+ ldr r3, [r4, #-3220]
17268
+ str r3, [r4, #-3364]
17269
+ ldr r3, [r4, #-3216]
17270
+ str r3, [r4, #-3348]
17271
+ ldr r3, [r4, #-3208]
17272
+ str r3, [r4, #-3320]
17273
+ ldr r3, [r4, #-3204]
17274
+ str r3, [r4, #-3600]
17275
+ ldr r3, [r4, #-3200]
17276
+ str r3, [r4, #-3360]
17277
+ ldr r3, [r4, #-3196]
17278
+ str r3, [r4, #-3352]
17279
+ ldr r3, [r4, #-3192]
17280
+ str r3, [r4, #-3312]
17281
+ ldr r3, [r4, #-3188]
17282
+ str r3, [r4, #-3308]
17283
+ ldr r3, [r4, #-3176]
17284
+ str r3, [r4, #-2724]
17285
+.L2740:
17286
+ ldr r1, [r4, #-3168]
1679717287 mov r3, #0
16798
- ldr r2, .L2809+8
17288
+ ldr r2, .L2744+8
1679917289 str r3, [r4, #-564]
17290
+ ldr r5, .L2744+12
1680017291 cmp r1, r2
16801
- ldr r5, .L2809+12
16802
- bne .L2806
16803
- ldrb r2, [r5, #144] @ zero_extendqisi2
17292
+ bne .L2741
17293
+ ldrb r2, [r5, #152] @ zero_extendqisi2
1680417294 cmp r2, r3
16805
- beq .L2807
16806
- ldr r2, .L2809
16807
- str r3, [r2, #-3164]
17295
+ beq .L2742
17296
+ str r3, [r4, #-3168]
1680817297 bl Ftl_save_ext_data
16809
- b .L2806
16810
-.L2807:
16811
- ldr r0, .L2809+16
16812
- mov r3, #1
16813
- ldr r1, .L2809+20
16814
- str r3, [r5, #2244]
16815
- bl printk
16816
-.L2806:
16817
- movw r3, #2380
17298
+.L2741:
17299
+ movw r3, #2382
1681817300 ldr r0, [r4, #-3324]
1681917301 ldrh r2, [r5, r3]
17302
+ movw r1, #2332
1682017303 ldr r3, [r4, #-3320]
17304
+ ldrh r1, [r5, r1]
1682117305 mla r0, r0, r2, r3
16822
- movw r3, #2328
16823
- ldrh r1, [r5, r3]
1682417306 bl __aeabi_uidiv
1682517307 str r0, [r4, #-3316]
16826
- ldmfd sp!, {r3, r4, r5, pc}
16827
-.L2810:
17308
+ pop {r4, r5, r6, pc}
17309
+.L2742:
17310
+ mov r3, #1
17311
+ ldr r1, .L2744+16
17312
+ ldr r0, .L2744+20
17313
+ str r3, [r5, #2248]
17314
+ bl printk
17315
+ b .L2741
17316
+.L2745:
1682817317 .align 2
16829
-.L2809:
17318
+.L2744:
1683017319 .word .LANCHOR2
1683117320 .word 1179929683
1683217321 .word 305432421
1683317322 .word .LANCHOR0
16834
- .word .LC76
1683517323 .word .LC138
17324
+ .word .LC77
1683617325 .fnend
1683717326 .size Ftl_load_ext_data, .-Ftl_load_ext_data
1683817327 .align 2
1683917328 .global FtlMapBlkWriteDumpData
17329
+ .syntax unified
17330
+ .arm
17331
+ .fpu softvfp
1684017332 .type FtlMapBlkWriteDumpData, %function
1684117333 FtlMapBlkWriteDumpData:
1684217334 .fnstart
1684317335 @ args = 0, pretend = 0, frame = 0
1684417336 @ frame_needed = 0, uses_anonymous_args = 0
16845
- stmfd sp!, {r4, r5, r6, lr}
17337
+ ldr r3, [r0, #36]
17338
+ cmp r3, #0
17339
+ bxeq lr
17340
+ push {r4, r5, r6, lr}
1684617341 .save {r4, r5, r6, lr}
16847
- ldr r2, [r0, #36]
16848
- ldrh r5, [r0, #6]
16849
- cmp r2, #0
16850
- ldr r3, [r0, #24]
16851
- ldmeqfd sp!, {r4, r5, r6, pc}
16852
- ldr r4, .L2818
1685317342 mov r2, #0
17343
+ ldr r4, .L2756
1685417344 str r2, [r0, #36]
16855
- ldr r2, [r4, #-3616]
17345
+ ldr r2, [r4, #-3612]
17346
+ ldrh r5, [r0, #6]
17347
+ ldr r3, [r0, #24]
1685617348 cmp r2, #0
16857
- ldmnefd sp!, {r4, r5, r6, pc}
16858
- sub r5, r5, #1
17349
+ popne {r4, r5, r6, pc}
1685917350 mov r6, r0
1686017351 ldr r2, [r4, #-500]
1686117352 ldr r0, [r4, #-520]
17353
+ sub r5, r5, #1
1686217354 uxth r5, r5
16863
- str r2, [r4, #1764]
16864
- str r0, [r4, #1760]
16865
- ldr r3, [r3, r5, asl #2]
17355
+ str r2, [r4, #1772]
17356
+ str r0, [r4, #1768]
17357
+ ldr r3, [r3, r5, lsl #2]
1686617358 cmp r3, #0
16867
- str r3, [r4, #1756]
16868
- beq .L2815
16869
- mov r1, #1
16870
- ldr r0, .L2818+4
16871
- mov r2, r1
17359
+ str r3, [r4, #1764]
17360
+ beq .L2750
17361
+ mov r2, #1
17362
+ add r0, r4, #1760
17363
+ mov r1, r2
1687217364 bl FlashReadPages
16873
- b .L2816
16874
-.L2815:
16875
- ldr r2, .L2818+8
16876
- movw r3, #2398
16877
- mov r1, #255
16878
- ldrh r2, [r2, r3]
16879
- bl ftl_memset
16880
-.L2816:
16881
- mov r0, r6
17365
+.L2751:
17366
+ ldr r2, [r4, #1768]
1688217367 mov r1, r5
16883
- ldr r2, [r4, #1760]
16884
- ldmfd sp!, {r4, r5, r6, lr}
17368
+ mov r0, r6
17369
+ pop {r4, r5, r6, lr}
1688517370 b FtlMapWritePage
16886
-.L2819:
17371
+.L2750:
17372
+ ldr r3, .L2756+4
17373
+ mov r1, #255
17374
+ ldrh r2, [r3]
17375
+ bl ftl_memset
17376
+ b .L2751
17377
+.L2757:
1688717378 .align 2
16888
-.L2818:
17379
+.L2756:
1688917380 .word .LANCHOR2
16890
- .word .LANCHOR2+1752
16891
- .word .LANCHOR0
17381
+ .word .LANCHOR0+2400
1689217382 .fnend
1689317383 .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData
1689417384 .align 2
1689517385 .global FlashReadFacBbtData
17386
+ .syntax unified
17387
+ .arm
17388
+ .fpu softvfp
1689617389 .type FlashReadFacBbtData, %function
1689717390 FlashReadFacBbtData:
1689817391 .fnstart
1689917392 @ args = 0, pretend = 0, frame = 40
1690017393 @ frame_needed = 0, uses_anonymous_args = 0
16901
- ldr r3, .L2835
16902
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
17394
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
1690317395 .save {r4, r5, r6, r7, r8, r9, r10, lr}
1690417396 mov r8, r2
16905
- ldrh r2, [r3, #128]
17397
+ ldr r2, .L2771
1690617398 .pad #40
1690717399 sub sp, sp, #40
16908
- ldrh r3, [r3, #130]
1690917400 mov r5, r0
16910
- ldr r9, .L2835+4
1691117401 mov r7, r1
16912
- smulbb r3, r2, r3
16913
- ldr r2, [r9, #1688]
16914
- str r2, [sp, #12]
16915
- ldr r2, [r9, #1720]
17402
+ ldr r9, .L2771+4
17403
+ ldrh r3, [r2, #138]
17404
+ ldrh r2, [r2, #136]
17405
+ smulbb r3, r3, r2
17406
+ ldr r2, [r9, #1696]
1691617407 uxth r3, r3
17408
+ str r2, [sp, #12]
17409
+ ldr r2, [r9, #1728]
1691717410 sub r6, r3, #1
16918
- sub r4, r3, #16
16919
- mul r10, r3, r1
17411
+ mul r10, r1, r3
1692017412 uxth r6, r6
17413
+ sub r4, r3, #16
1692117414 str r2, [sp, #16]
16922
-.L2821:
17415
+.L2759:
1692317416 cmp r6, r4
16924
- ble .L2834
16925
- mov r1, #1
17417
+ mvnle r0, #0
17418
+ ble .L2758
17419
+.L2765:
1692617420 add r3, r6, r10
17421
+ mov r2, #1
17422
+ lsl r3, r3, #10
17423
+ mov r1, r2
1692717424 add r0, sp, #4
16928
- mov r2, r1
16929
- mov r3, r3, asl #10
1693017425 str r3, [sp, #8]
1693117426 bl FlashReadPages
1693217427 ldr r3, [sp, #4]
1693317428 cmn r3, #1
16934
- beq .L2822
16935
- ldr r3, [r9, #1720]
17429
+ beq .L2760
17430
+ ldr r3, [r9, #1728]
1693617431 ldrh r2, [r3]
1693717432 movw r3, #61664
1693817433 cmp r2, r3
16939
- bne .L2822
17434
+ bne .L2760
1694017435 cmp r5, #0
1694117436 moveq r0, r5
16942
- beq .L2823
17437
+ beq .L2758
1694317438 cmp r7, #0
16944
- ldreq ip, .L2835+4
17439
+ moveq r1, r7
1694517440 moveq lr, #1
16946
- beq .L2824
16947
-.L2826:
16948
- ldr r1, [r9, #1688]
17441
+ beq .L2763
17442
+.L2762:
1694917443 mov r2, r8
17444
+ ldr r1, [r9, #1696]
1695017445 mov r0, r5
1695117446 bl ftl_memcpy
16952
- mov r2, #4
16953
- ldr r0, .L2835+8
17447
+ mov r3, #4
17448
+ ldr r0, .L2771+8
17449
+ mov r2, r3
1695417450 mov r1, r5
16955
- mov r3, r2
1695617451 bl rknand_print_hex
1695717452 mov r0, #0
16958
- b .L2823
16959
-.L2824:
16960
- ldr r2, [r9, #1708]
16961
- uxth r3, r7
16962
- add r7, r7, #1
16963
- cmp r3, r2
16964
- bcs .L2826
16965
- ldr r1, [ip, #1688]
16966
- mov r0, r3, lsr #5
16967
- and r4, r3, #31
16968
- ldr r2, [r1, r0, asl #2]
16969
- orr r4, r2, lr, asl r4
16970
- str r4, [r1, r0, asl #2]
16971
- b .L2824
16972
-.L2822:
16973
- sub r6, r6, #1
16974
- uxth r6, r6
16975
- b .L2821
16976
-.L2834:
16977
- mvn r0, #0
16978
-.L2823:
17453
+.L2758:
1697917454 add sp, sp, #40
1698017455 @ sp needed
16981
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
16982
-.L2836:
17456
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
17457
+.L2764:
17458
+ ldr r0, [r9, #1696]
17459
+ lsr ip, r3, #5
17460
+ and r3, r3, #31
17461
+ ldr r2, [r0, ip, lsl #2]
17462
+ orr r3, r2, lr, lsl r3
17463
+ str r3, [r0, ip, lsl #2]
17464
+.L2763:
17465
+ ldr r0, [r9, #1716]
17466
+ uxth r3, r1
17467
+ add r1, r1, #1
17468
+ cmp r3, r0
17469
+ bcc .L2764
17470
+ b .L2762
17471
+.L2760:
17472
+ sub r6, r6, #1
17473
+ uxth r6, r6
17474
+ b .L2759
17475
+.L2772:
1698317476 .align 2
16984
-.L2835:
17477
+.L2771:
1698517478 .word .LANCHOR0
1698617479 .word .LANCHOR2
1698717480 .word .LC139
....@@ -16989,378 +17482,371 @@
1698917482 .size FlashReadFacBbtData, .-FlashReadFacBbtData
1699017483 .align 2
1699117484 .global FlashGetBadBlockList
17485
+ .syntax unified
17486
+ .arm
17487
+ .fpu softvfp
1699217488 .type FlashGetBadBlockList, %function
1699317489 FlashGetBadBlockList:
1699417490 .fnstart
1699517491 @ args = 0, pretend = 0, frame = 0
1699617492 @ frame_needed = 0, uses_anonymous_args = 0
16997
- ldr r3, .L2848
16998
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
17493
+ ldr r3, .L2784
17494
+ push {r4, r5, r6, r7, r8, lr}
1699917495 .save {r4, r5, r6, r7, r8, lr}
1700017496 mov r5, r0
17001
- ldr r3, [r3, #44]
17002
- ldr r6, .L2848+4
17497
+ ldr r6, .L2784+4
17498
+ ldr r3, [r3, #48]
17499
+ ldr r0, [r6, #1724]
1700317500 ldrb r4, [r3, #13] @ zero_extendqisi2
1700417501 ldrh r3, [r3, #14]
17005
- ldr r0, [r6, #1716]
1700617502 smulbb r4, r4, r3
1700717503 uxth r4, r4
1700817504 add r2, r4, #7
17009
- mov r2, r2, asr #3
17505
+ asr r2, r2, #3
1701017506 bl FlashReadFacBbtData
1701117507 cmn r0, #1
17012
- bne .L2838
17013
-.L2842:
17508
+ bne .L2774
17509
+.L2778:
1701417510 mov r3, #0
17015
- b .L2839
17016
-.L2838:
17017
- mov lr, r4, lsr #4
17018
- mov ip, #0
17019
- sub r4, r4, #1
17020
- mov r3, ip
17021
- mov r7, #1
17022
-.L2840:
17023
- uxth r0, ip
17024
- cmp r0, r4
17025
- bge .L2839
17026
- ldr r8, [r6, #1716]
17027
- mov r1, r0, lsr #5
17028
- and r2, r0, #31
17029
- add ip, ip, #1
17030
- ldr r1, [r8, r1, asl #2]
17031
- ands r2, r1, r7, asl r2
17032
- addne r2, r3, #1
17033
- movne r3, r3, asl #1
17034
- strneh r0, [r5, r3] @ movhi
17035
- uxthne r3, r2
17036
- cmp r3, lr
17037
- bcc .L2840
17038
- b .L2842
17039
-.L2839:
17040
- mov r3, r3, asl #1
17511
+.L2775:
17512
+ lsl r3, r3, #1
1704117513 mvn r2, #0
1704217514 mov r0, #0
1704317515 strh r2, [r5, r3] @ movhi
17044
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
17045
-.L2849:
17516
+ pop {r4, r5, r6, r7, r8, pc}
17517
+.L2774:
17518
+ mov r2, #0
17519
+ lsr lr, r4, #4
17520
+ mov r3, r2
17521
+ sub r4, r4, #1
17522
+ mov r7, #1
17523
+.L2776:
17524
+ uxth r1, r2
17525
+ cmp r1, r4
17526
+ bge .L2775
17527
+ ldr r8, [r6, #1724]
17528
+ lsr ip, r1, #5
17529
+ and r0, r1, #31
17530
+ add r2, r2, #1
17531
+ ldr ip, [r8, ip, lsl #2]
17532
+ ands r0, ip, r7, lsl r0
17533
+ addne r0, r3, #1
17534
+ lslne r3, r3, #1
17535
+ strhne r1, [r5, r3] @ movhi
17536
+ uxthne r3, r0
17537
+ cmp r3, lr
17538
+ bcc .L2776
17539
+ b .L2778
17540
+.L2785:
1704617541 .align 2
17047
-.L2848:
17542
+.L2784:
1704817543 .word .LANCHOR0
1704917544 .word .LANCHOR2
1705017545 .fnend
1705117546 .size FlashGetBadBlockList, .-FlashGetBadBlockList
1705217547 .align 2
1705317548 .global FtlMakeBbt
17549
+ .syntax unified
17550
+ .arm
17551
+ .fpu softvfp
1705417552 .type FtlMakeBbt, %function
1705517553 FtlMakeBbt:
1705617554 .fnstart
1705717555 @ args = 0, pretend = 0, frame = 8
1705817556 @ frame_needed = 0, uses_anonymous_args = 0
17059
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
17557
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1706017558 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1706117559 .pad #12
17062
- ldr r4, .L2874
17063
- ldr r5, [r4, #-3616]
17064
- cmp r5, #0
17065
- bne .L2851
17560
+ ldr r4, .L2807
17561
+ ldr r8, [r4, #-3612]
17562
+ cmp r8, #0
17563
+ bne .L2787
17564
+ ldr r9, .L2807+4
1706617565 bl FtlBbtMemInit
17067
- ldr r7, .L2874+4
1706817566 bl FtlLoadFactoryBbt
17069
- sub r9, r7, #18
17070
- sub r10, r7, #94
17071
-.L2852:
17072
- ldr r3, .L2874+8
17073
- ldr r6, .L2874+12
17567
+ sub r10, r9, #18
17568
+ sub r5, r9, #28
17569
+.L2788:
17570
+ ldr r3, .L2807+8
17571
+ ldr r6, .L2807+12
1707417572 ldrh r3, [r3]
17075
- cmp r5, r3
17076
- bcs .L2871
17077
- ldrh r3, [r9, #2]!
17573
+ cmp r8, r3
17574
+ bcc .L2794
17575
+ ldr r8, .L2807+16
17576
+ mov r7, #0
17577
+.L2795:
17578
+ ldrh r3, [r8]
17579
+ uxth r0, r7
17580
+ add r7, r7, #1
17581
+ cmp r3, r0
17582
+ bhi .L2796
17583
+ ldrh r7, [r5, #12]
17584
+ movw r8, #65535
17585
+ sub r7, r7, #1
17586
+ uxth r7, r7
17587
+.L2797:
17588
+ ldrh r3, [r5, #12]
17589
+ sub r3, r3, #48
17590
+ cmp r7, r3
17591
+ ble .L2801
17592
+ mov r0, r7
17593
+ bl FtlBbmIsBadBlock
17594
+ cmp r0, #1
17595
+ beq .L2798
17596
+ mov r0, r7
17597
+ bl FlashTestBlk
17598
+ cmp r0, #0
17599
+ beq .L2799
17600
+ mov r0, r7
17601
+ bl FtlBbmMapBadBlock
17602
+.L2798:
17603
+ sub r7, r7, #1
17604
+ uxth r7, r7
17605
+ b .L2797
17606
+.L2794:
17607
+ ldr r3, [r4, #-500]
1707817608 movw r2, #65535
1707917609 ldr r0, [r4, #-524]
17080
- ldr fp, [r4, #-500]
17610
+ ldr fp, .L2807+20
17611
+ str r3, [sp, #4]
17612
+ str r3, [r4, #1772]
17613
+ ldrh r3, [r10, #2]!
17614
+ str r0, [r4, #1768]
1708117615 cmp r3, r2
17082
- ldr r8, .L2874
17083
- str r0, [r4, #1760]
17084
- str fp, [r4, #1764]
17085
- beq .L2853
17086
- ldrh ip, [r10]
17087
- mov r1, #1
17088
- mov r2, r1
17089
- ldr r0, .L2874+16
17090
- mla ip, ip, r5, r3
17091
- mov r3, ip, asl #10
17092
- str ip, [sp, #4]
17093
- str r3, [r8, #1756]
17616
+ beq .L2789
17617
+ ldrh r7, [fp]
17618
+ mov r2, #1
17619
+ mov r1, r2
17620
+ ldr r0, .L2807+24
17621
+ mla r7, r8, r7, r3
17622
+ lsl r3, r7, #10
17623
+ str r3, [r4, #1764]
1709417624 bl FlashReadPages
17095
- ldrh r2, [r10]
17096
- ldr r0, [r7]
17625
+ ldrh r2, [fp]
17626
+ ldr r1, [r4, #1768]
17627
+ ldr r0, [r9]
1709717628 add r2, r2, #7
17098
- ldr r1, [r8, #1760]
17099
- mov r2, r2, asr #3
17629
+ asr r2, r2, #3
1710017630 bl ftl_memcpy
17101
- ldr ip, [sp, #4]
17102
- b .L2854
17103
-.L2853:
17104
- mov r1, r5
17105
- sub r8, r8, #436
17631
+.L2790:
17632
+ uxth r0, r7
17633
+ add r8, r8, #1
17634
+ add r9, r9, #4
17635
+ bl FtlBbmMapBadBlock
17636
+ b .L2788
17637
+.L2789:
17638
+ mov r1, r8
1710617639 bl FlashGetBadBlockList
17107
- ldr r0, [r8, #2196]
17108
- ldr r1, [r7]
17640
+ ldr r1, [r9]
17641
+ ldr r0, [r4, #1768]
1710917642 bl FtlBbt2Bitmap
17110
- ldrh r6, [r10]
17643
+ ldrh r6, [fp]
17644
+.L2792:
1711117645 sub r6, r6, #1
1711217646 uxth r6, r6
17113
-.L2855:
17114
- ldrh r0, [r10]
17115
- smlabb r0, r0, r5, r6
17647
+.L2791:
17648
+ ldrh r0, [fp]
17649
+ smlabb r0, r0, r8, r6
1711617650 uxth r0, r0
1711717651 bl FtlBbmIsBadBlock
1711817652 cmp r0, #1
17119
- subeq r6, r6, #1
17120
- uxtheq r6, r6
17121
- beq .L2855
17122
-.L2872:
17123
- mov r1, #0
17653
+ beq .L2792
1712417654 mov r2, #16
17125
- strh r6, [r9] @ movhi
17655
+ mov r1, #0
17656
+ strh r6, [r10] @ movhi
1712617657 ldr r0, [r4, #-500]
1712717658 bl ftl_memset
17128
- ldr r3, .L2874+20
17129
- strh r3, [fp] @ movhi
17659
+ ldr r3, [sp, #4]
17660
+ movw r2, 61664 @ movhi
17661
+ strh r2, [r3] @ movhi
1713017662 mov r3, #0
17131
- str r3, [fp, #4]
17132
- ldrh r3, [r9]
17133
- ldrh ip, [r10]
17134
- ldrh r2, [r8]
17135
- strh r3, [fp, #2] @ movhi
17136
- ldrh r3, [r9]
17137
- ldr r1, [r7]
17138
- mov r2, r2, asl #2
17139
- ldr r0, [r4, #1760]
17140
- mla ip, ip, r5, r3
17141
- mov r3, ip, asl #10
17142
- str r3, [r4, #1756]
17143
- str ip, [sp, #4]
17663
+ ldr r2, [sp, #4]
17664
+ ldrh r7, [fp]
17665
+ str r3, [r2, #4]
17666
+ ldrh r3, [r10]
17667
+ strh r3, [r2, #2] @ movhi
17668
+ ldrh r3, [r10]
17669
+ ldr r1, [r9]
17670
+ ldr r0, [r4, #1768]
17671
+ mla r7, r8, r7, r3
17672
+ lsl r3, r7, #10
17673
+ str r3, [r4, #1764]
17674
+ ldr r3, .L2807+28
17675
+ ldrh r2, [r3]
17676
+ lsl r2, r2, #2
1714417677 bl ftl_memcpy
17145
- mov r1, #1
17146
- ldr r0, .L2874+16
17147
- mov r2, r1
17678
+ mov r2, #1
17679
+ ldr r0, .L2807+24
17680
+ mov r1, r2
1714817681 bl FlashEraseBlocks
17149
- mov r1, #1
17150
- mov r3, r1
17151
- ldr r0, .L2874+16
17152
- mov r2, r1
17682
+ mov r3, #1
17683
+ ldr r0, .L2807+24
17684
+ mov r2, r3
17685
+ mov r1, r3
1715317686 bl FlashProgPages
17154
- ldr r3, [r4, #1752]
17687
+ ldr r3, [r4, #1760]
1715517688 cmn r3, #1
17156
- ldr ip, [sp, #4]
17157
- bne .L2854
17158
- uxth r0, ip
17689
+ bne .L2790
17690
+ uxth r0, r7
1715917691 bl FtlBbmMapBadBlock
17160
- b .L2855
17161
-.L2854:
17162
- uxth r0, ip
17163
- add r5, r5, #1
17692
+ b .L2791
17693
+.L2796:
1716417694 bl FtlBbmMapBadBlock
17165
- add r7, r7, #4
17166
- b .L2852
17167
-.L2871:
17168
- ldr r7, .L2874+24
17169
- mov r5, #0
17170
-.L2859:
17171
- ldrh r3, [r7]
17172
- uxth r0, r5
17173
- add r5, r5, #1
17174
- cmp r3, r0
17175
- bls .L2873
17176
- bl FtlBbmMapBadBlock
17177
- b .L2859
17178
-.L2873:
17179
- ldr r7, .L2874+28
17180
- movw r9, #65535
17181
- ldrh r5, [r7, #12]
17182
- mov r8, r7
17183
- sub r5, r5, #1
17184
- uxth r5, r5
17185
-.L2861:
17186
- ldrh r3, [r7, #12]
17187
- sub r3, r3, #48
17188
- cmp r5, r3
17189
- ble .L2865
17190
- mov r0, r5
17191
- bl FtlBbmIsBadBlock
17192
- cmp r0, #1
17193
- beq .L2862
17194
- mov r0, r5
17195
- bl FlashTestBlk
17196
- cmp r0, #0
17197
- beq .L2863
17198
- mov r0, r5
17199
- bl FtlBbmMapBadBlock
17200
- b .L2862
17201
-.L2863:
17202
- ldrh r3, [r8]
17203
- cmp r3, r9
17204
- streqh r5, [r8] @ movhi
17205
-.L2864:
17206
- ldrne r3, .L2874+28
17207
- strneh r5, [r3, #4] @ movhi
17208
- bne .L2865
17209
-.L2862:
17210
- sub r5, r5, #1
17211
- uxth r5, r5
17212
- b .L2861
17213
-.L2865:
17214
- movw r5, #2452
17215
- ldr r0, [r4, #-3612]
17216
- ldrh r3, [r6, r5]
17695
+ b .L2795
17696
+.L2799:
17697
+ ldrh r3, [r5]
17698
+ cmp r3, r8
17699
+ strheq r7, [r5] @ movhi
17700
+ beq .L2798
17701
+.L2800:
17702
+ strh r7, [r5, #4] @ movhi
17703
+.L2801:
17704
+ movw r7, #2456
17705
+ ldr r0, [r4, #-3608]
17706
+ ldrh r3, [r6, r7]
1721717707 mov r8, #0
17218
- str r8, [r6, #2460]
17708
+ str r8, [r6, #2464]
1721917709 mov r2, #2
1722017710 mov r1, #1
17221
- strh r8, [r7, #2] @ movhi
17222
- mov r3, r3, asl #10
17711
+ strh r8, [r5, #2] @ movhi
17712
+ lsl r3, r3, #10
1722317713 str r3, [r0, #4]
17224
- ldrh r3, [r7, #4]
17225
- mov r3, r3, asl #10
17714
+ ldrh r3, [r5, #4]
17715
+ lsl r3, r3, #10
1722617716 str r3, [r0, #40]
1722717717 bl FlashEraseBlocks
17228
- ldrh r0, [r6, r5]
17718
+ ldrh r0, [r6, r7]
1722917719 bl FtlBbmMapBadBlock
17230
- ldrh r0, [r7, #4]
17720
+ ldrh r0, [r5, #4]
1723117721 bl FtlBbmMapBadBlock
1723217722 bl FtlBbmTblFlush
17233
- ldr r3, [r6, #2460]
17234
- ldrh r2, [r7, #4]
17723
+ ldr r3, [r6, #2464]
17724
+ ldrh r2, [r5, #4]
17725
+ strh r8, [r5, #2] @ movhi
1723517726 add r3, r3, #1
17236
- str r3, [r6, #2460]
17237
- ldrh r3, [r6, r5]
17238
- strh r8, [r7, #2] @ movhi
17239
- strh r2, [r6, r5] @ movhi
17240
- strh r3, [r7, #4] @ movhi
17727
+ str r3, [r6, #2464]
17728
+ ldrh r3, [r6, r7]
17729
+ strh r2, [r6, r7] @ movhi
17730
+ strh r3, [r5, #4] @ movhi
1724117731 bl FtlBbmTblFlush
17242
-.L2851:
17732
+.L2787:
1724317733 mov r0, #0
1724417734 add sp, sp, #12
1724517735 @ sp needed
17246
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17247
-.L2875:
17736
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17737
+.L2808:
1724817738 .align 2
17249
-.L2874:
17739
+.L2807:
1725017740 .word .LANCHOR2
17251
- .word .LANCHOR0+2480
17252
- .word .LANCHOR0+2342
17741
+ .word .LANCHOR0+2484
17742
+ .word .LANCHOR0+2346
1725317743 .word .LANCHOR0
17254
- .word .LANCHOR2+1752
17255
- .word -3872
17256
- .word .LANCHOR0+2402
17257
- .word .LANCHOR0+2452
17744
+ .word .LANCHOR0+2404
17745
+ .word .LANCHOR0+2388
17746
+ .word .LANCHOR2+1760
17747
+ .word .LANCHOR2-436
1725817748 .fnend
1725917749 .size FtlMakeBbt, .-FtlMakeBbt
1726017750 .align 2
1726117751 .global log2phys
17752
+ .syntax unified
17753
+ .arm
17754
+ .fpu softvfp
1726217755 .type log2phys, %function
1726317756 log2phys:
1726417757 .fnstart
17265
- @ args = 0, pretend = 0, frame = 8
17758
+ @ args = 0, pretend = 0, frame = 16
1726617759 @ frame_needed = 0, uses_anonymous_args = 0
17267
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
17760
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1726817761 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
17269
- .pad #12
17270
- movw r3, #2396
17271
- ldr r7, .L2893
17272
- ldrh r10, [r7, r3]
17273
- ldr r3, [r7, #2448]
17762
+ .pad #20
17763
+ sub sp, sp, #20
17764
+ ldr r8, .L2825
17765
+ ldr r3, [r8, #2452]
1727417766 cmp r0, r3
17275
- bcs .L2877
17276
- add r10, r10, #7
17277
- ldr fp, .L2893+4
17278
- mov r5, r0, lsr r10
17279
- movw r3, #2426
17280
- str r2, [sp, #4]
17281
- mov r9, r1
17282
- mov r6, r7
17283
- str r0, [sp]
17284
- uxth r5, r5
17285
- ldrh r2, [r7, r3]
17286
- ldr r8, [fp, #-3380]
17287
- mov r4, #0
17288
- mov r1, #12
17289
- b .L2878
17290
-.L2877:
17767
+ bcs .L2810
17768
+ movw r3, #2398
17769
+ mov r10, r0
17770
+ ldrh r0, [r8, r3]
17771
+ mov r5, #12
17772
+ ldr r4, .L2825+4
17773
+ str r1, [sp, #8]
17774
+ add r3, r0, #7
17775
+ str r2, [sp, #12]
17776
+ lsr r6, r10, r3
17777
+ ldr fp, [r4, #-3376]
17778
+ str r3, [sp, #4]
17779
+ movw r3, #2430
17780
+ uxth r9, r6
17781
+ ldrh r1, [r8, r3]
17782
+ mov r3, #0
17783
+.L2811:
17784
+ uxth r7, r3
17785
+ cmp r7, r1
17786
+ bcc .L2816
17787
+ bl select_l2p_ram_region
17788
+ mul r5, r5, r0
17789
+ movw r2, #65535
17790
+ mov r7, r0
17791
+ ldrh r1, [fp, r5]
17792
+ add r3, fp, r5
17793
+ cmp r1, r2
17794
+ beq .L2817
17795
+ ldr r3, [r3, #4]
17796
+ cmp r3, #0
17797
+ bge .L2817
17798
+ bl flush_l2p_region
17799
+.L2817:
17800
+ ldr r3, [r4, #-452]
17801
+ uxth r6, r6
17802
+ ldr fp, [r3, r6, lsl #2]
17803
+ cmp fp, #0
17804
+ bne .L2818
17805
+ ldr r0, [r4, #-3376]
17806
+ mov r1, #255
17807
+ ldr r2, .L2825+8
17808
+ add r0, r0, r5
17809
+ ldrh r2, [r2]
17810
+ ldr r0, [r0, #8]
17811
+ bl ftl_memset
17812
+ ldr r2, [r4, #-3376]
17813
+ strh r9, [r2, r5] @ movhi
17814
+ ldr r2, [r4, #-3376]
17815
+ add r5, r2, r5
17816
+ str fp, [r5, #4]
17817
+ b .L2813
17818
+.L2810:
1729117819 cmp r2, #0
1729217820 mvn r0, #0
1729317821 streq r0, [r1]
17294
- b .L2879
17295
-.L2883:
17296
- add r4, r4, #1
17297
- mla r0, r1, r4, r8
17822
+.L2809:
17823
+ add sp, sp, #20
17824
+ @ sp needed
17825
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17826
+.L2816:
17827
+ add r3, r3, #1
17828
+ mla r0, r5, r3, fp
1729817829 ldrh r0, [r0, #-12]
17299
- cmp r0, r5
17300
- beq .L2880
17301
-.L2878:
17302
- uxth r7, r4
17303
- cmp r7, r2
17304
- bcc .L2883
17305
- bl select_l2p_ram_region
17306
- mov r4, #12
17307
- movw r3, #65535
17308
- mul r4, r4, r0
17309
- mov r7, r0
17310
- add r2, r8, r4
17311
- ldrh r1, [r8, r4]
17312
- cmp r1, r3
17313
- bne .L2892
17314
-.L2884:
17315
- ldr r3, [fp, #-452]
17316
- ldr r8, .L2893+4
17317
- ldr fp, [r3, r5, asl #2]
17318
- cmp fp, #0
17319
- bne .L2885
17320
- ldr r3, [r8, #-3380]
17321
- mov r1, #255
17322
- add r3, r3, r4
17323
- ldr r0, [r3, #8]
17324
- movw r3, #2398
17325
- ldrh r2, [r6, r3]
17326
- bl ftl_memset
17327
- ldr r3, [r8, #-3380]
17328
- strh r5, [r3, r4] @ movhi
17329
- ldr r3, [r8, #-3380]
17330
- add r4, r3, r4
17331
- str fp, [r4, #4]
17332
-.L2880:
17333
- ldr r2, [sp]
17334
- mvn r3, #0
17335
- mov r6, #12
17336
- bic r10, r2, r3, asl r10
17830
+ cmp r0, r9
17831
+ bne .L2811
17832
+.L2813:
1733717833 ldr r3, [sp, #4]
17338
- ldr r2, .L2893+4
17339
- cmp r3, #0
17834
+ mvn r0, #0
17835
+ ldr r1, .L2825+4
17836
+ bic r10, r10, r0, lsl r3
17837
+ ldr r3, [sp, #12]
1734017838 uxth r10, r10
17341
- bne .L2881
17342
- ldr r3, [r2, #-3380]
17343
- mla r6, r6, r7, r3
17344
- ldr r3, [r6, #8]
17345
- ldr r3, [r3, r10, asl #2]
17346
- str r3, [r9]
17347
- b .L2882
17348
-.L2881:
17349
- mul r6, r6, r7
17350
- ldr r3, [r2, #-3380]
17351
- ldr r1, [r9]
17352
- add r3, r3, r6
17839
+ cmp r3, #0
17840
+ mov r3, #12
17841
+ bne .L2814
17842
+ ldr r2, [r1, #-3376]
17843
+ mla r3, r3, r7, r2
17844
+ ldr r2, [sp, #8]
1735317845 ldr r3, [r3, #8]
17354
- str r1, [r3, r10, asl #2]
17355
- ldr r3, [r2, #-3380]
17356
- add r6, r3, r6
17357
- ldr r3, [r6, #4]
17358
- orr r3, r3, #-2147483648
17359
- str r3, [r6, #4]
17360
- sub r3, r2, #3376
17361
- strh r5, [r3] @ movhi
17362
-.L2882:
17363
- ldr r2, [r2, #-3380]
17846
+ ldr r3, [r3, r10, lsl #2]
17847
+ str r3, [r2]
17848
+.L2815:
17849
+ ldr r2, [r1, #-3376]
1736417850 mov r3, #12
1736517851 mov r0, #0
1736617852 mla r7, r3, r7, r2
....@@ -17368,1841 +17854,1868 @@
1736817854 cmn r3, #1
1736917855 addne r3, r3, #1
1737017856 strne r3, [r7, #4]
17371
- b .L2879
17372
-.L2892:
17373
- ldr r3, [r2, #4]
17374
- cmp r3, #0
17375
- bge .L2884
17376
- bl flush_l2p_region
17377
- b .L2884
17378
-.L2885:
17379
- ldr r3, [r8, #-3380]
17380
- mov r1, #1
17381
- ldr r0, .L2893+8
17382
- mov r2, r1
17383
- add r3, r3, r4
17384
- str fp, [r8, #1756]
17385
- ldr r3, [r3, #8]
17386
- str r3, [r8, #1760]
17387
- ldr r3, [r8, #-500]
17388
- str r3, [r8, #1764]
17857
+ b .L2809
17858
+.L2814:
17859
+ ldr r2, [sp, #8]
17860
+ mul r3, r3, r7
17861
+ ldr r0, [r2]
17862
+ ldr r2, [r4, #-3376]
17863
+ add r2, r2, r3
17864
+ ldr r2, [r2, #8]
17865
+ str r0, [r2, r10, lsl #2]
17866
+ ldr r2, [r4, #-3376]
17867
+ add r3, r2, r3
17868
+ ldr r2, [r3, #4]
17869
+ orr r2, r2, #-2147483648
17870
+ str r2, [r3, #4]
17871
+ sub r3, r1, #3360
17872
+ strh r9, [r3, #-12] @ movhi
17873
+ b .L2815
17874
+.L2818:
17875
+ ldr r2, [r4, #-3376]
17876
+ ldr r0, .L2825+12
17877
+ str fp, [r4, #1764]
17878
+ add r2, r2, r5
17879
+ ldr r2, [r2, #8]
17880
+ str r2, [r4, #1768]
17881
+ ldr r2, [r4, #-500]
17882
+ str r2, [r4, #1772]
17883
+ mov r2, #1
17884
+ mov r1, r2
1738917885 bl FlashReadPages
17390
- ldr r3, [r8, #1764]
17391
- ldrh r3, [r3, #8]
17392
- cmp r3, r5
17393
- beq .L2886
17394
- mov r1, r5
17886
+ ldr r2, [r4, #1772]
17887
+ ldrh r2, [r2, #8]
17888
+ cmp r2, r9
17889
+ beq .L2819
1739517890 mov r2, fp
17396
- ldr r0, .L2893+12
17891
+ mov r1, r6
17892
+ ldr r0, .L2825+16
1739717893 bl printk
17398
- mov r2, #4
17399
- mov r3, r2
17400
- ldr r0, .L2893+16
17401
- ldr r1, [r8, #1764]
17894
+ mov r3, #4
17895
+ ldr r1, [r4, #1772]
17896
+ mov r2, r3
17897
+ ldr r0, .L2825+20
1740217898 bl rknand_print_hex
17403
- movw r3, #2424
17404
- ldrh r3, [r6, r3]
17899
+ movw r3, #2428
1740517900 mov r2, #4
17406
- ldr r0, .L2893+20
17407
- ldr r1, [r8, #-452]
17901
+ ldrh r3, [r8, r3]
17902
+ ldr r1, [r4, #-452]
17903
+ ldr r0, .L2825+24
1740817904 bl rknand_print_hex
1740917905 mov r3, #1
17410
- str r3, [r8, #-3616]
17411
- b .L2887
17412
-.L2886:
17413
- ldr r3, [r8, #1752]
17414
- cmp r3, #256
17415
- bne .L2887
17416
- mov r1, r5
17906
+ str r3, [r4, #-3612]
17907
+.L2820:
17908
+ ldr r3, .L2825+4
17909
+ mov r1, #0
17910
+ ldr r3, [r3, #-3376]
17911
+ add r2, r3, r5
17912
+ str r1, [r2, #4]
17913
+ strh r9, [r3, r5] @ movhi
17914
+ b .L2813
17915
+.L2819:
17916
+ ldr r2, [r4, #1760]
17917
+ cmp r2, #256
17918
+ bne .L2820
1741717919 mov r2, fp
17418
- ldr r0, .L2893+24
17920
+ mov r1, r6
17921
+ ldr r0, .L2825+28
1741917922 bl printk
17420
- ldr r3, [r8, #-3380]
17421
- sub r0, r8, #432
17422
- mov r1, r5
17423
- add r3, r3, r4
17923
+ ldr r3, [r4, #-3376]
17924
+ mov r1, r6
17925
+ ldr r0, .L2825+32
17926
+ add r3, r3, r5
1742417927 ldr r2, [r3, #8]
1742517928 bl FtlMapWritePage
17426
-.L2887:
17427
- ldr r3, .L2893+4
17428
- mov r1, #0
17429
- ldr r3, [r3, #-3380]
17430
- add r2, r3, r4
17431
- str r1, [r2, #4]
17432
- strh r5, [r3, r4] @ movhi
17433
- b .L2880
17434
-.L2879:
17435
- add sp, sp, #12
17436
- @ sp needed
17437
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17438
-.L2894:
17929
+ b .L2820
17930
+.L2826:
1743917931 .align 2
17440
-.L2893:
17932
+.L2825:
1744117933 .word .LANCHOR0
1744217934 .word .LANCHOR2
17443
- .word .LANCHOR2+1752
17935
+ .word .LANCHOR0+2400
17936
+ .word .LANCHOR2+1760
1744417937 .word .LC140
1744517938 .word .LC101
1744617939 .word .LC141
1744717940 .word .LC142
17941
+ .word .LANCHOR2-432
1744817942 .fnend
1744917943 .size log2phys, .-log2phys
1745017944 .align 2
1745117945 .global FtlWriteDumpData
17946
+ .syntax unified
17947
+ .arm
17948
+ .fpu softvfp
1745217949 .type FtlWriteDumpData, %function
1745317950 FtlWriteDumpData:
1745417951 .fnstart
1745517952 @ args = 0, pretend = 0, frame = 40
1745617953 @ frame_needed = 0, uses_anonymous_args = 0
17457
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
17954
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1745817955 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1745917956 .pad #44
1746017957 sub sp, sp, #44
17461
- ldr r4, .L2915
17462
- ldr r3, [r4, #-3616]
17958
+ ldr r4, .L2846
17959
+ ldr r3, [r4, #-3612]
1746317960 cmp r3, #0
17464
- bne .L2895
17465
- ldr r3, .L2915+4
17466
- ldrh r2, [r3, #4]
17961
+ bne .L2827
17962
+ sub r6, r4, #3520
17963
+ ldrh r2, [r6, #4]
1746717964 cmp r2, #0
17468
- beq .L2897
17469
- ldrb r3, [r4, #-3516] @ zero_extendqisi2
17965
+ beq .L2829
17966
+ ldrb r3, [r4, #-3512] @ zero_extendqisi2
1747017967 cmp r3, #0
17471
- bne .L2897
17472
- ldr r8, .L2915+8
17473
- movw r3, #2388
17474
- ldrb r1, [r4, #-3517] @ zero_extendqisi2
17968
+ bne .L2829
17969
+ ldr r8, .L2846+4
17970
+ movw r3, #2390
17971
+ ldrb r1, [r4, #-3513] @ zero_extendqisi2
1747517972 ldrh r3, [r8, r3]
1747617973 mul r3, r3, r1
1747717974 cmp r2, r3
17478
- beq .L2897
17479
- ldrb r9, [r4, #-3514] @ zero_extendqisi2
17480
- add r3, r8, #2320
17481
- ldr r6, [r8, #2448]
17482
- cmp r9, #0
17483
- ldrh r7, [r3]
17484
- bne .L2895
17485
- sub r6, r6, #1
17975
+ beq .L2829
17976
+ ldrb r10, [r4, #-3510] @ zero_extendqisi2
17977
+ cmp r10, #0
17978
+ bne .L2827
17979
+ ldr r7, [r8, #2452]
17980
+ movw r3, #2324
17981
+ mov r2, r10
1748617982 mov r1, sp
17487
- mov r2, r9
17488
- mov r0, r6
17983
+ ldrh r9, [r8, r3]
17984
+ sub r7, r7, #1
17985
+ mov r0, r7
1748917986 bl log2phys
17987
+ ldr r3, [sp]
1749017988 ldr r5, [r4, #-500]
1749117989 ldr r0, [r4, #-524]
17492
- ldr r3, [sp]
17493
- str r6, [sp, #20]
1749417990 cmn r3, #1
17495
- str r0, [sp, #12]
1749617991 str r3, [sp, #8]
17992
+ str r7, [sp, #20]
17993
+ str r0, [sp, #12]
1749717994 str r5, [sp, #16]
17498
- str r9, [r5, #4]
17499
- beq .L2899
17995
+ str r10, [r5, #4]
17996
+ beq .L2831
17997
+ mov r2, r10
1750017998 mov r1, #1
17501
- mov r2, r9
1750217999 add r0, sp, #4
1750318000 bl FlashReadPages
17504
- b .L2900
17505
-.L2899:
17506
- movw r3, #2398
17507
- mov r1, #255
17508
- ldrh r2, [r8, r3]
17509
- bl ftl_memset
17510
-.L2900:
17511
- ldr fp, .L2915+4
17512
- mov r7, r7, asl #2
17513
- ldr r3, .L2915+12
18001
+.L2832:
18002
+ ldr r10, .L2846+8
1751418003 mov r8, #0
17515
- ldr r9, .L2915
17516
- mov r10, fp
18004
+ ldr r3, .L2846+12
18005
+ lsl r9, r9, #2
18006
+ mov fp, r8
1751718007 strh r3, [r5] @ movhi
17518
-.L2901:
17519
- cmp r8, r7
17520
- beq .L2902
17521
- ldrh r3, [fp, #4]
18008
+.L2833:
18009
+ cmp r9, r8
18010
+ bne .L2837
18011
+.L2834:
18012
+ mov r3, #1
18013
+.L2845:
18014
+ strb r3, [r4, #-3510]
18015
+.L2827:
18016
+ add sp, sp, #44
18017
+ @ sp needed
18018
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
18019
+.L2831:
18020
+ add r8, r8, #2400
18021
+ mov r1, #255
18022
+ ldrh r2, [r8]
18023
+ bl ftl_memset
18024
+ b .L2832
18025
+.L2837:
18026
+ ldrh r3, [r6, #4]
1752218027 cmp r3, #0
17523
- beq .L2902
18028
+ beq .L2834
1752418029 ldr r3, [sp, #8]
18030
+ mov r0, r10
18031
+ str r7, [r5, #8]
1752518032 add r8, r8, #1
17526
- str r6, [r5, #8]
17527
- ldr r0, .L2915+4
1752818033 str r3, [r5, #12]
17529
- ldrh r3, [fp]
18034
+ ldrh r3, [r6]
1753018035 strh r3, [r5, #2] @ movhi
1753118036 bl get_new_active_ppa
17532
- ldr r3, [r9, #-3328]
17533
- mov r2, #0
18037
+ ldr r3, [r4, #-3328]
1753418038 mov r1, #1
1753518039 str r0, [sp, #8]
1753618040 add r0, sp, #4
1753718041 str r3, [r5, #4]
1753818042 add r3, r3, #1
1753918043 cmn r3, #1
17540
- moveq r3, #0
17541
- str r3, [r9, #-3328]
17542
- mov r3, r2
17543
- bl FlashProgPages
17544
- ldrh r0, [r10]
17545
- bl decrement_vpc_count
17546
- b .L2901
17547
-.L2902:
17548
- mov r3, #1
17549
- b .L2914
17550
-.L2897:
18044
+ moveq r3, fp
18045
+ str r3, [r4, #-3328]
1755118046 mov r3, #0
17552
-.L2914:
17553
- strb r3, [r4, #-3514]
17554
-.L2895:
17555
- add sp, sp, #44
17556
- @ sp needed
17557
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
17558
-.L2916:
18047
+ mov r2, r3
18048
+ bl FlashProgPages
18049
+ ldrh r0, [r6]
18050
+ bl decrement_vpc_count
18051
+ b .L2833
18052
+.L2829:
18053
+ mov r3, #0
18054
+ b .L2845
18055
+.L2847:
1755918056 .align 2
17560
-.L2915:
18057
+.L2846:
1756118058 .word .LANCHOR2
17562
- .word .LANCHOR2-3524
1756318059 .word .LANCHOR0
18060
+ .word .LANCHOR2-3520
1756418061 .word -3947
1756518062 .fnend
1756618063 .size FtlWriteDumpData, .-FtlWriteDumpData
1756718064 .align 2
1756818065 .global l2p_flush
18066
+ .syntax unified
18067
+ .arm
18068
+ .fpu softvfp
1756918069 .type l2p_flush, %function
1757018070 l2p_flush:
1757118071 .fnstart
1757218072 @ args = 0, pretend = 0, frame = 0
1757318073 @ frame_needed = 0, uses_anonymous_args = 0
17574
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
17575
- .save {r3, r4, r5, r6, r7, lr}
17576
- bl FtlWriteDumpData
18074
+ push {r4, r5, r6, r7, r8, lr}
18075
+ .save {r4, r5, r6, r7, r8, lr}
1757718076 mov r4, #0
17578
- ldr r5, .L2923
18077
+ ldr r5, .L2853
1757918078 mov r7, #12
17580
- ldr r6, .L2923+4
17581
-.L2918:
18079
+ ldr r6, .L2853+4
18080
+ bl FtlWriteDumpData
18081
+.L2849:
1758218082 ldrh r3, [r5]
1758318083 uxth r0, r4
1758418084 cmp r3, r0
17585
- bls .L2922
17586
- ldr r3, [r6, #-3380]
17587
- mla r3, r7, r0, r3
18085
+ bhi .L2851
18086
+ mov r0, #0
18087
+ pop {r4, r5, r6, r7, r8, pc}
18088
+.L2851:
18089
+ ldr r2, [r6, #-3376]
18090
+ uxth r3, r4
18091
+ mla r3, r7, r3, r2
1758818092 ldr r3, [r3, #4]
1758918093 cmp r3, #0
17590
- bge .L2919
18094
+ bge .L2850
1759118095 bl flush_l2p_region
17592
-.L2919:
18096
+.L2850:
1759318097 add r4, r4, #1
17594
- b .L2918
17595
-.L2922:
17596
- mov r0, #0
17597
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
17598
-.L2924:
18098
+ b .L2849
18099
+.L2854:
1759918100 .align 2
17600
-.L2923:
17601
- .word .LANCHOR0+2426
18101
+.L2853:
18102
+ .word .LANCHOR0+2430
1760218103 .word .LANCHOR2
1760318104 .fnend
1760418105 .size l2p_flush, .-l2p_flush
1760518106 .align 2
1760618107 .global allocate_new_data_superblock
18108
+ .syntax unified
18109
+ .arm
18110
+ .fpu softvfp
1760718111 .type allocate_new_data_superblock, %function
1760818112 allocate_new_data_superblock:
1760918113 .fnstart
1761018114 @ args = 0, pretend = 0, frame = 0
1761118115 @ frame_needed = 0, uses_anonymous_args = 0
17612
- stmfd sp!, {r4, r5, r6, lr}
17613
- .save {r4, r5, r6, lr}
17614
- ldr r5, .L2952
17615
- ldrh r6, [r0]
17616
- ldr r3, [r5, #-3616]
18116
+ push {r4, r5, r6, r7, r8, lr}
18117
+ .save {r4, r5, r6, r7, r8, lr}
18118
+ ldr r4, .L2882
18119
+ ldr r3, [r4, #-3612]
1761718120 cmp r3, #0
17618
- bne .L2926
18121
+ bne .L2856
18122
+ ldrh r5, [r0]
1761918123 movw r3, #65535
17620
- cmp r6, r3
17621
- mov r4, r0
17622
- beq .L2927
17623
- ldr r2, [r5, #-3544]
17624
- mov r3, r6, asl #1
17625
- mov r0, r6
18124
+ mov r7, r0
18125
+ cmp r5, r3
18126
+ beq .L2857
18127
+ ldr r2, [r4, #-3540]
18128
+ lsl r3, r5, #1
18129
+ mov r0, r5
1762618130 ldrh r3, [r2, r3]
1762718131 cmp r3, #0
17628
- beq .L2928
18132
+ beq .L2858
1762918133 bl INSERT_DATA_LIST
17630
- b .L2927
17631
-.L2928:
17632
- bl INSERT_FREE_LIST
17633
-.L2927:
18134
+.L2857:
18135
+ ldr r2, .L2882+4
1763418136 mov r3, #0
17635
- strb r3, [r4, #8]
17636
- ldr r3, .L2952+4
17637
- cmp r4, r3
17638
- beq .L2929
17639
- ldr r3, .L2952+8
17640
- movw r2, #2340
17641
- ldrh r2, [r3, r2]
17642
- cmp r2, #1
17643
- beq .L2929
17644
- ldrb r1, [r3, #144] @ zero_extendqisi2
17645
- cmp r1, #0
17646
- beq .L2930
17647
-.L2929:
18137
+ strb r3, [r7, #8]
18138
+ cmp r7, r2
18139
+ beq .L2859
18140
+ ldr r3, .L2882+8
18141
+ movw r1, #2344
18142
+ ldrh r1, [r3, r1]
18143
+ cmp r1, #1
18144
+ beq .L2859
18145
+ ldrb r0, [r3, #152] @ zero_extendqisi2
18146
+ cmp r0, #0
18147
+ beq .L2860
18148
+.L2859:
1764818149 mov r3, #1
17649
- strb r3, [r4, #8]
17650
- b .L2931
17651
-.L2930:
17652
- ldr r1, .L2952+12
17653
- cmp r4, r1
17654
- bne .L2931
17655
- cmp r2, #3
17656
- beq .L2933
17657
- ldr r2, .L2952
17658
- ldr r2, [r2, #-3236]
17659
- cmp r2, #1
17660
- bne .L2934
17661
-.L2933:
17662
- mov r2, #1
17663
- strb r2, [r5, #-3516]
17664
-.L2934:
17665
- ldr r3, [r3, #2244]
17666
- cmp r3, #0
17667
- beq .L2931
17668
- ldr r3, [r5, #-3308]
17669
- cmp r3, #39
17670
- ldrls r3, .L2952
17671
- movls r2, #1
17672
- strlsb r2, [r3, #-3516]
17673
-.L2931:
17674
- ldr r2, .L2952
17675
- movw r1, #65535
17676
- sub r3, r2, #380
18150
+ strb r3, [r7, #8]
18151
+.L2861:
18152
+ ldr r3, .L2882+12
18153
+ movw r2, #65535
1767718154 ldrh r0, [r3]
17678
- mov r5, r3
17679
- cmp r0, r1
17680
- beq .L2936
17681
- cmp r6, r0
17682
- bne .L2937
17683
- ldr r2, [r2, #-3544]
17684
- mov r3, r0, asl #1
18155
+ mov r6, r3
18156
+ cmp r0, r2
18157
+ beq .L2866
18158
+ cmp r5, r0
18159
+ bne .L2867
18160
+ ldr r2, [r4, #-3540]
18161
+ lsl r3, r0, #1
1768518162 ldrh r3, [r2, r3]
1768618163 cmp r3, #0
17687
- beq .L2938
17688
-.L2937:
18164
+ beq .L2868
18165
+.L2867:
1768918166 bl update_vpc_list
17690
-.L2938:
18167
+.L2868:
1769118168 mvn r3, #0
17692
- strh r3, [r5] @ movhi
17693
-.L2936:
17694
- mov r0, r4
18169
+ strh r3, [r6] @ movhi
18170
+.L2866:
18171
+ mov r0, r7
1769518172 bl allocate_data_superblock
1769618173 bl l2p_flush
1769718174 mov r0, #0
1769818175 bl FtlEctTblFlush
1769918176 bl FtlVpcTblFlush
17700
-.L2926:
18177
+.L2856:
1770118178 mov r0, #0
17702
- ldmfd sp!, {r4, r5, r6, pc}
17703
-.L2953:
18179
+ pop {r4, r5, r6, r7, r8, pc}
18180
+.L2858:
18181
+ bl INSERT_FREE_LIST
18182
+ b .L2857
18183
+.L2860:
18184
+ sub r2, r2, #48
18185
+ cmp r7, r2
18186
+ bne .L2861
18187
+ cmp r1, #3
18188
+ beq .L2863
18189
+ ldr r2, [r4, #-2724]
18190
+ cmp r2, #1
18191
+ bne .L2864
18192
+.L2863:
18193
+ mov r2, #1
18194
+ strb r2, [r4, #-3512]
18195
+.L2864:
18196
+ ldr r3, [r3, #2248]
18197
+ cmp r3, #0
18198
+ beq .L2861
18199
+ ldr r3, [r4, #-3308]
18200
+ cmp r3, #39
18201
+ movls r3, #1
18202
+ strbls r3, [r4, #-3512]
18203
+ b .L2861
18204
+.L2883:
1770418205 .align 2
17705
-.L2952:
18206
+.L2882:
1770618207 .word .LANCHOR2
17707
- .word .LANCHOR2-3476
18208
+ .word .LANCHOR2-3472
1770818209 .word .LANCHOR0
17709
- .word .LANCHOR2-3524
18210
+ .word .LANCHOR2-380
1771018211 .fnend
1771118212 .size allocate_new_data_superblock, .-allocate_new_data_superblock
1771218213 .align 2
1771318214 .global FtlCheckVpc
18215
+ .syntax unified
18216
+ .arm
18217
+ .fpu softvfp
1771418218 .type FtlCheckVpc, %function
1771518219 FtlCheckVpc:
1771618220 .fnstart
1771718221 @ args = 0, pretend = 0, frame = 8
1771818222 @ frame_needed = 0, uses_anonymous_args = 0
17719
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
17720
- .save {r4, r5, r6, r7, r8, r9, lr}
18223
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
18224
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1772118225 .pad #12
1772218226 mov r4, #0
17723
- ldr r1, .L2977
17724
- ldr r0, .L2977+4
18227
+ ldr r6, .L2905
18228
+ ldr r5, .L2905+4
18229
+ ldr r1, .L2905+8
18230
+ ldr r0, .L2905+12
1772518231 bl printk
17726
- ldr r0, .L2977+8
17727
- mov r1, #0
1772818232 mov r2, #8192
18233
+ mov r1, #0
18234
+ ldr r0, .L2905+4
1772918235 bl memset
17730
- ldr r6, .L2977+12
17731
- ldr r5, .L2977+8
17732
-.L2955:
17733
- ldr r3, [r6, #2448]
18236
+.L2885:
18237
+ ldr r3, [r6, #2452]
1773418238 cmp r4, r3
17735
- bcs .L2975
17736
- mov r0, r4
17737
- add r1, sp, #4
17738
- mov r2, #0
17739
- bl log2phys
17740
- ldr r0, [sp, #4]
17741
- cmn r0, #1
17742
- beq .L2956
17743
- ubfx r0, r0, #10, #16
17744
- bl P2V_block_in_plane
17745
- mov r0, r0, asl #1
17746
- ldrh r3, [r5, r0]
17747
- add r3, r3, #1
17748
- strh r3, [r5, r0] @ movhi
17749
-.L2956:
17750
- add r4, r4, #1
17751
- b .L2955
17752
-.L2975:
17753
- ldr r7, .L2977+16
18239
+ bcc .L2887
18240
+ ldr r9, .L2905+16
1775418241 mov r4, #0
17755
- ldr r9, .L2977+20
18242
+ ldr r5, .L2905+20
1775618243 mov r6, r4
17757
- add r8, r7, #1840
17758
-.L2958:
17759
- ldrh r3, [r9]
17760
- uxth r1, r4
17761
- ldr r5, .L2977+16
17762
- cmp r3, r1
17763
- bls .L2976
17764
- ldr r3, [r7, #-3544]
17765
- mov r5, r1, asl #1
17766
- ldrh r2, [r3, r5]
17767
- ldrh r3, [r8, r5]
18244
+ ldr r8, .L2905+4
18245
+.L2888:
18246
+ ldrh r2, [r9]
18247
+ uxth r3, r4
1776818248 cmp r2, r3
17769
- beq .L2959
17770
- ldr r0, .L2977+24
17771
- bl printk
17772
- ldr r3, [r7, #-3544]
17773
- movw r2, #65535
17774
- ldrh r3, [r3, r5]
17775
- cmp r3, r2
17776
- beq .L2959
17777
- ldrh r2, [r8, r5]
17778
- cmp r2, r3
17779
- movhi r6, #1
17780
-.L2959:
17781
- add r4, r4, #1
17782
- b .L2958
17783
-.L2976:
17784
- ldr r3, [r5, #-3532]
17785
- cmp r3, #0
17786
- beq .L2961
17787
- sub r2, r5, #3520
17788
- add r9, r5, #1840
17789
- mov r8, #0
17790
- ldrh r7, [r2, #-8]
17791
- ldr r2, [r5, #-3552]
17792
- rsb r3, r2, r3
17793
- ldr r2, .L2977+28
17794
- mov r3, r3, asr #1
17795
- mul r3, r2, r3
17796
- uxth r4, r3
17797
-.L2962:
17798
- uxth r3, r8
17799
- cmp r3, r7
17800
- bcs .L2961
17801
- ldr r2, [r5, #-3544]
17802
- mov r3, r4, asl #1
18249
+ bhi .L2890
18250
+ ldr r4, [r5, #-3528]
18251
+ cmp r4, #0
18252
+ beq .L2891
18253
+ ldr r3, .L2905+24
18254
+ mov r7, #0
18255
+ ldr r9, .L2905+4
18256
+ mov fp, #6
18257
+ ldr r10, .L2905+28
18258
+ ldrh r8, [r3, #-4]
18259
+ ldr r3, [r5, #-3548]
18260
+ sub r4, r4, r3
18261
+ ldr r3, .L2905+32
18262
+ asr r4, r4, #1
18263
+ mul r4, r3, r4
18264
+ uxth r4, r4
18265
+.L2892:
18266
+ uxth r3, r7
18267
+ cmp r8, r3
18268
+ bls .L2891
18269
+ ldr r2, [r5, #-3540]
18270
+ lsl r3, r4, #1
1780318271 ldrh r2, [r2, r3]
1780418272 cmp r2, #0
17805
- beq .L2963
17806
- ldr r0, .L2977+32
17807
- mov r1, r4
17808
- ldrh r3, [r9, r3]
18273
+ beq .L2893
1780918274 mov r6, #1
18275
+ ldrh r3, [r9, r3]
18276
+ mov r1, r4
18277
+ mov r0, r10
1781018278 bl printk
17811
-.L2963:
17812
- mov r3, #6
17813
- ldr r2, [r5, #-3552]
17814
- mul r4, r3, r4
18279
+.L2893:
18280
+ mul r4, fp, r4
18281
+ ldr r3, [r5, #-3548]
18282
+ add r7, r7, #1
18283
+ ldrh r4, [r3, r4]
1781518284 movw r3, #65535
17816
- add r8, r8, #1
17817
- ldrh r4, [r2, r4]
1781818285 cmp r4, r3
17819
- bne .L2962
17820
-.L2961:
18286
+ bne .L2892
18287
+.L2891:
1782118288 mov r1, r6
17822
- ldr r0, .L2977+36
18289
+ ldr r0, .L2905+36
1782318290 bl printk
1782418291 add sp, sp, #12
1782518292 @ sp needed
17826
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc}
17827
-.L2978:
18293
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
18294
+.L2887:
18295
+ mov r2, #0
18296
+ add r1, sp, #4
18297
+ mov r0, r4
18298
+ bl log2phys
18299
+ ldr r0, [sp, #4]
18300
+ cmn r0, #1
18301
+ beq .L2886
18302
+ ubfx r0, r0, #10, #16
18303
+ bl P2V_block_in_plane
18304
+ lsl r0, r0, #1
18305
+ ldrh r3, [r5, r0]
18306
+ add r3, r3, #1
18307
+ strh r3, [r5, r0] @ movhi
18308
+.L2886:
18309
+ add r4, r4, #1
18310
+ b .L2885
18311
+.L2890:
18312
+ uxth r1, r4
18313
+ ldr r3, [r5, #-3540]
18314
+ lsl r7, r1, #1
18315
+ ldrh r2, [r3, r7]
18316
+ ldrh r3, [r8, r7]
18317
+ cmp r2, r3
18318
+ beq .L2889
18319
+ ldr r0, .L2905+40
18320
+ bl printk
18321
+ ldr r3, [r5, #-3540]
18322
+ movw r2, #65535
18323
+ ldrh r3, [r3, r7]
18324
+ cmp r3, r2
18325
+ beq .L2889
18326
+ ldrh r2, [r8, r7]
18327
+ cmp r2, r3
18328
+ movhi r6, #1
18329
+.L2889:
18330
+ add r4, r4, #1
18331
+ b .L2888
18332
+.L2906:
1782818333 .align 2
17829
-.L2977:
17830
- .word .LANCHOR3+204
17831
- .word .LC110
17832
- .word .LANCHOR2+1840
18334
+.L2905:
1783318335 .word .LANCHOR0
18336
+ .word check_valid_page_count_table
18337
+ .word .LANCHOR3+191
18338
+ .word .LC110
18339
+ .word .LANCHOR0+2332
1783418340 .word .LANCHOR2
17835
- .word .LANCHOR0+2328
17836
- .word .LC143
17837
- .word -1431655765
18341
+ .word .LANCHOR2-3520
1783818342 .word .LC144
18343
+ .word -1431655765
1783918344 .word .LC145
18345
+ .word .LC143
1784018346 .fnend
1784118347 .size FtlCheckVpc, .-FtlCheckVpc
1784218348 .align 2
1784318349 .global Ftlscanalldata
18350
+ .syntax unified
18351
+ .arm
18352
+ .fpu softvfp
1784418353 .type Ftlscanalldata, %function
1784518354 Ftlscanalldata:
1784618355 .fnstart
1784718356 @ args = 0, pretend = 0, frame = 8
1784818357 @ frame_needed = 0, uses_anonymous_args = 0
17849
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
18358
+ push {r4, r5, r6, r7, r8, lr}
1785018359 .save {r4, r5, r6, r7, r8, lr}
17851
- mov r1, #0
18360
+ mov r5, #0
18361
+ ldr r4, .L2916
1785218362 .pad #32
1785318363 sub sp, sp, #32
17854
- ldr r0, .L2989
18364
+ mov r1, #0
18365
+ ldr r7, .L2916+4
18366
+ add r8, r4, #1760
18367
+ ldr r0, .L2916+8
1785518368 bl printk
17856
- ldr r5, .L2989+4
17857
- ldr r8, .L2989+8
17858
- mov r4, #0
17859
- mov r6, r5
17860
-.L2980:
17861
- ldr r3, [r8, #2448]
17862
- cmp r4, r3
17863
- bcs .L2988
17864
- mov r0, r4
17865
- add r1, sp, #28
17866
- mov r2, #0
17867
- bl log2phys
17868
- ubfx r3, r4, #0, #11
17869
- cmp r3, #0
17870
- bne .L2981
17871
- ldr r0, .L2989+12
17872
- mov r1, r4
17873
- ldr r2, [sp, #28]
17874
- bl printk
17875
-.L2981:
17876
- ldr r3, [sp, #28]
17877
- cmn r3, #1
17878
- beq .L2983
17879
- str r3, [r5, #1756]
17880
- mov r2, #0
17881
- ldr r3, [r5, #-524]
17882
- mov r1, #1
17883
- ldr r7, [r5, #-500]
17884
- ldr r0, .L2989+16
17885
- str r3, [r5, #1760]
17886
- str r4, [r5, #1768]
17887
- str r7, [r5, #1764]
17888
- str r2, [r5, #1752]
17889
- bl FlashReadPages
17890
- ldr r3, [r5, #1752]
17891
- cmn r3, #1
17892
- cmpne r3, #256
17893
- beq .L2984
17894
- ldr r3, [r7, #8]
17895
- cmp r3, r4
17896
- beq .L2983
17897
-.L2984:
17898
- ldr r3, [r6, #1764]
17899
- ldr r2, [r6, #1760]
17900
- ldr r0, .L2989+20
17901
- ldr r1, [r3, #4]
17902
- str r1, [sp]
17903
- ldr r1, [r3, #8]
17904
- str r1, [sp, #4]
17905
- ldr r1, [r3, #12]
17906
- str r1, [sp, #8]
17907
- ldr r1, [r2]
17908
- str r1, [sp, #12]
17909
- mov r1, r4
17910
- ldr r2, [r2, #4]
17911
- str r2, [sp, #16]
17912
- ldr r2, [r6, #1756]
17913
- ldr r3, [r3]
17914
- bl printk
17915
-.L2983:
17916
- add r4, r4, #1
17917
- b .L2980
17918
-.L2988:
18369
+.L2908:
18370
+ ldr r3, [r7, #2452]
18371
+ cmp r5, r3
18372
+ bcc .L2914
1791918373 add sp, sp, #32
1792018374 @ sp needed
17921
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
17922
-.L2990:
18375
+ pop {r4, r5, r6, r7, r8, pc}
18376
+.L2914:
18377
+ mov r2, #0
18378
+ add r1, sp, #28
18379
+ mov r0, r5
18380
+ bl log2phys
18381
+ ubfx r3, r5, #0, #11
18382
+ cmp r3, #0
18383
+ bne .L2909
18384
+ ldr r2, [sp, #28]
18385
+ mov r1, r5
18386
+ ldr r0, .L2916+12
18387
+ bl printk
18388
+.L2909:
18389
+ ldr r3, [sp, #28]
18390
+ cmn r3, #1
18391
+ beq .L2911
18392
+ str r3, [r4, #1764]
18393
+ mov r2, #0
18394
+ ldr r3, [r4, #-524]
18395
+ mov r1, #1
18396
+ ldr r6, [r4, #-500]
18397
+ mov r0, r8
18398
+ str r5, [r4, #1776]
18399
+ str r3, [r4, #1768]
18400
+ str r6, [r4, #1772]
18401
+ str r2, [r4, #1760]
18402
+ bl FlashReadPages
18403
+ ldr r3, [r4, #1760]
18404
+ cmn r3, #1
18405
+ cmpne r3, #256
18406
+ beq .L2912
18407
+ ldr r3, [r6, #8]
18408
+ cmp r5, r3
18409
+ beq .L2911
18410
+.L2912:
18411
+ ldr r2, [r4, #1768]
18412
+ ldr r3, [r4, #1772]
18413
+ ldr r0, .L2916+16
18414
+ ldr r1, [r2, #4]
18415
+ str r1, [sp, #16]
18416
+ mov r1, r5
18417
+ ldr r2, [r2]
18418
+ str r2, [sp, #12]
18419
+ ldr r2, [r3, #12]
18420
+ str r2, [sp, #8]
18421
+ ldr r2, [r3, #8]
18422
+ str r2, [sp, #4]
18423
+ ldr r2, [r3, #4]
18424
+ str r2, [sp]
18425
+ ldr r2, [r4, #1764]
18426
+ ldr r3, [r3]
18427
+ bl printk
18428
+.L2911:
18429
+ add r5, r5, #1
18430
+ b .L2908
18431
+.L2917:
1792318432 .align 2
17924
-.L2989:
17925
- .word .LC146
18433
+.L2916:
1792618434 .word .LANCHOR2
1792718435 .word .LANCHOR0
18436
+ .word .LC146
1792818437 .word .LC147
17929
- .word .LANCHOR2+1752
1793018438 .word .LC148
1793118439 .fnend
1793218440 .size Ftlscanalldata, .-Ftlscanalldata
1793318441 .align 2
1793418442 .global FtlReUsePrevPpa
18443
+ .syntax unified
18444
+ .arm
18445
+ .fpu softvfp
1793518446 .type FtlReUsePrevPpa, %function
1793618447 FtlReUsePrevPpa:
1793718448 .fnstart
1793818449 @ args = 0, pretend = 0, frame = 8
1793918450 @ frame_needed = 0, uses_anonymous_args = 0
17940
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
18451
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
1794118452 .save {r4, r5, r6, r7, r8, r9, lr}
1794218453 .pad #12
1794318454 mov r5, r0
18455
+ ldr r6, .L2928
1794418456 ubfx r0, r1, #10, #16
1794518457 str r1, [sp, #4]
1794618458 bl P2V_block_in_plane
17947
- ldr r6, .L3001
17948
- ldr r4, [r6, #-3544]
17949
- mov r7, r0, asl #1
17950
- ldrh r3, [r4, r7]
18459
+ ldr r2, [r6, #-3540]
18460
+ lsl r7, r0, #1
18461
+ ldrh r3, [r2, r7]
1795118462 cmp r3, #0
17952
- addne r3, r3, #1
17953
- strneh r3, [r4, r7] @ movhi
17954
- bne .L2993
17955
- ldr r4, [r6, #-3532]
18463
+ bne .L2919
18464
+ ldr r4, [r6, #-3528]
1795618465 cmp r4, #0
17957
- beq .L2993
17958
- ldr r1, [r6, #-3552]
17959
- sub r2, r6, #3520
17960
- ldr lr, .L3001+4
17961
- movw r9, #65535
17962
- rsb r4, r1, r4
17963
- ldrh ip, [r2, #-8]
17964
- mov r8, r2
17965
- mov r4, r4, asr #1
17966
- mul r4, lr, r4
18466
+ beq .L2920
18467
+ ldr r2, [r6, #-3548]
18468
+ sub r8, r6, #3520
18469
+ ldr ip, .L2928+4
1796718470 mov lr, #6
18471
+ ldrh r1, [r8, #-4]
18472
+ movw r9, #65535
18473
+ sub r4, r4, r2
18474
+ asr r4, r4, #1
18475
+ mul r4, ip, r4
1796818476 uxth r4, r4
17969
-.L2994:
17970
- uxth r2, r3
17971
- cmp r2, ip
17972
- bcs .L2993
18477
+.L2921:
18478
+ uxth ip, r3
18479
+ cmp r1, ip
18480
+ bls .L2920
1797318481 cmp r4, r0
17974
- bne .L2995
18482
+ bne .L2922
1797518483 mov r1, r4
17976
- ldr r0, .L3001+8
18484
+ sub r0, r8, #8
1797718485 bl List_remove_node
17978
- ldrh r3, [r8, #-8]
18486
+ ldrh r3, [r8, #-4]
1797918487 mov r0, r4
1798018488 sub r3, r3, #1
17981
- strh r3, [r8, #-8] @ movhi
18489
+ strh r3, [r8, #-4] @ movhi
1798218490 bl INSERT_DATA_LIST
17983
- ldr r2, [r6, #-3544]
18491
+ ldr r2, [r6, #-3540]
1798418492 ldrh r3, [r2, r7]
18493
+.L2919:
1798518494 add r3, r3, #1
1798618495 strh r3, [r2, r7] @ movhi
17987
- b .L2993
17988
-.L2995:
18496
+ b .L2920
18497
+.L2922:
1798918498 mul r4, lr, r4
1799018499 add r3, r3, #1
17991
- ldrh r4, [r1, r4]
18500
+ ldrh r4, [r2, r4]
1799218501 cmp r4, r9
17993
- bne .L2994
17994
-.L2993:
17995
- mov r0, r5
17996
- add r1, sp, #4
18502
+ bne .L2921
18503
+.L2920:
1799718504 mov r2, #1
18505
+ add r1, sp, #4
18506
+ mov r0, r5
1799818507 bl log2phys
1799918508 add sp, sp, #12
1800018509 @ sp needed
18001
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc}
18002
-.L3002:
18510
+ pop {r4, r5, r6, r7, r8, r9, pc}
18511
+.L2929:
1800318512 .align 2
18004
-.L3001:
18513
+.L2928:
1800518514 .word .LANCHOR2
1800618515 .word -1431655765
18007
- .word .LANCHOR2-3532
1800818516 .fnend
1800918517 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa
1801018518 .align 2
1801118519 .global FtlRecoverySuperblock
18520
+ .syntax unified
18521
+ .arm
18522
+ .fpu softvfp
1801218523 .type FtlRecoverySuperblock, %function
1801318524 FtlRecoverySuperblock:
1801418525 .fnstart
18015
- @ args = 0, pretend = 0, frame = 64
18526
+ @ args = 0, pretend = 0, frame = 48
1801618527 @ frame_needed = 0, uses_anonymous_args = 0
18017
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
18528
+ ldrh r2, [r0]
18529
+ movw r1, #65535
18530
+ cmp r2, r1
18531
+ beq .L3075
18532
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1801818533 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
18019
- movw r2, #65535
18020
- ldrh r3, [r0]
18021
- .pad #68
18022
- sub sp, sp, #68
18023
- mov r4, r0
18024
- cmp r3, r2
18025
- beq .L3144
18534
+ movw r2, #2390
18535
+ ldr r6, .L3087
18536
+ .pad #52
18537
+ sub sp, sp, #52
18538
+ mov r10, r0
1802618539 ldrh r3, [r0, #2]
18027
- ldr r5, .L3161
18540
+ ldrh r2, [r6, r2]
1802818541 str r3, [sp, #8]
18029
- ldrb r3, [r0, #6] @ zero_extendqisi2
18030
- ldr r1, [sp, #8]
18031
- str r3, [sp, #16]
18032
- movw r3, #2388
18033
- ldrh r3, [r5, r3]
18034
- cmp r3, r1
18035
- mov r3, #0
18036
- streqh r3, [r0, #4] @ movhi
18037
- streqb r3, [r0, #6]
18038
- ldrneh r0, [r0, #16]
18039
- beq .L3144
18040
-.L3007:
18041
- cmp r0, r2
18042
- add r3, r3, #1
18043
- uxtheq r1, r3
18044
- addeq r1, r4, r1, asl #1
18045
- ldreqh r0, [r1, #16]
18046
- beq .L3007
18047
-.L3156:
18048
- ldrb r1, [r4, #8] @ zero_extendqisi2
18049
- mov r9, r4
18542
+ cmp r2, r3
18543
+ mov r2, #0
18544
+ strheq r2, [r0, #4] @ movhi
18545
+ strbeq r2, [r0, #6]
18546
+ ldrhne r0, [r0, #16]
18547
+ bne .L2934
18548
+.L3073:
18549
+ mov r0, #0
18550
+ add sp, sp, #52
18551
+ @ sp needed
18552
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
18553
+.L2935:
18554
+ uxth r0, r2
18555
+ add r0, r10, r0, lsl #1
18556
+ ldrh r0, [r0, #16]
18557
+.L2934:
18558
+ cmp r0, r1
18559
+ add r2, r2, #1
18560
+ beq .L2935
18561
+ ldrb r1, [r10, #8] @ zero_extendqisi2
18562
+ ldrb r3, [r10, #6] @ zero_extendqisi2
1805018563 cmp r1, #1
18051
- bne .L3009
18564
+ str r3, [sp, #12]
18565
+ bne .L2936
1805218566 bl FtlGetLastWrittenPage
1805318567 cmn r0, #1
1805418568 mov r4, r0
18055
- beq .L3010
18056
- ldrb r3, [r5, #144] @ zero_extendqisi2
18569
+ beq .L2937
18570
+ ldrb r3, [r6, #152] @ zero_extendqisi2
1805718571 cmp r3, #0
18058
- bne .L3147
18059
- ldr r3, .L3161
18060
- add r3, r3, r0, asl #1
18061
- ldrh r6, [r3, #148]
18062
- b .L3081
18063
-.L3009:
18572
+ addeq r3, r6, r0, lsl #1
18573
+ ldrheq r5, [r3, #156]
18574
+ beq .L2938
18575
+.L3008:
18576
+ mov r5, r4
18577
+.L2938:
18578
+ movw r3, #2324
18579
+ mov r2, #0
18580
+ ldrh r3, [r6, r3]
18581
+ movw r8, #65535
18582
+ mov r9, #36
18583
+ str r3, [sp]
18584
+ ldr r3, .L3087+4
18585
+ ldr r0, [r3, #-536]
18586
+ ldr lr, [r3, #-2692]
18587
+ movw r3, #2402
18588
+ ldrh r7, [r6, r3]
18589
+ add r3, r10, #16
18590
+ mov ip, r3
18591
+ mov r6, r2
18592
+ str r3, [sp, #20]
18593
+.L2939:
18594
+ ldr r1, [sp]
18595
+ uxth r3, r2
18596
+ cmp r1, r3
18597
+ bhi .L2941
18598
+ ldrb r3, [r10, #8] @ zero_extendqisi2
18599
+ cmp r3, #1
18600
+ movne r3, #0
18601
+ bne .L3078
18602
+ ldr r3, .L3087
18603
+ ldrb r3, [r3, #152] @ zero_extendqisi2
18604
+ adds r3, r3, #0
18605
+ movne r3, #1
18606
+.L3078:
18607
+ ldr r7, .L3087+4
18608
+ mov r1, r6
18609
+ str r3, [sp, #24]
18610
+ mov r8, #0
18611
+ ldr r2, [sp, #24]
18612
+ movw r9, #65535
18613
+ bl FlashReadPages
18614
+ ldr r3, [r7, #-3328]
18615
+ mov fp, r7
18616
+ str r3, [sp, #16]
18617
+.L2943:
18618
+ uxth r3, r8
18619
+ cmp r6, r3
18620
+ bhi .L2948
18621
+ bne .L2946
18622
+ add r4, r4, #1
18623
+ uxth r3, r4
18624
+ str r3, [sp]
18625
+ ldr r3, [r7, #-536]
18626
+ ldr r0, [r3, #4]
18627
+.L3079:
18628
+ ubfx r0, r0, #10, #16
18629
+ bl P2V_plane
18630
+ ldrb r2, [r10, #8] @ zero_extendqisi2
18631
+ str r0, [sp, #4]
18632
+ ldr r3, .L3087
18633
+ cmp r2, #1
18634
+ bne .L2950
18635
+ ldrb r1, [r3, #152] @ zero_extendqisi2
18636
+ cmp r1, #0
18637
+ ldreq r1, [sp]
18638
+ addeq r4, r3, r1, lsl #1
18639
+ ldrheq r1, [r4, #156]
18640
+ streq r1, [sp]
18641
+.L2950:
18642
+ movw r1, #2390
18643
+ ldrh r3, [r3, r1]
18644
+ ldr r1, [sp]
18645
+ cmp r3, r1
18646
+ ldmib sp, {r0, r1}
18647
+ ldrheq r3, [sp]
18648
+ strheq r3, [r10, #2] @ movhi
18649
+ moveq r3, #0
18650
+ strbeq r3, [r10, #6]
18651
+ strheq r3, [r10, #4] @ movhi
18652
+ ldrh r3, [sp, #12]
18653
+ str r3, [sp, #28]
18654
+ ldr ip, [sp, #28]
18655
+ ldr r3, [sp]
18656
+ cmp r3, r1
18657
+ cmpeq r0, ip
18658
+ moveq r2, r0
18659
+ moveq r1, r3
18660
+ beq .L3085
18661
+ ldr r3, [sp, #16]
18662
+ sub fp, r3, #1
18663
+ movw r3, #65535
18664
+ subs r9, r9, r3
18665
+ movne r9, #1
18666
+ cmp r2, #0
18667
+ orreq r9, r9, #1
18668
+ cmp r9, #0
18669
+ beq .L2954
18670
+ ldr r3, [r7, #-368]
18671
+ uxth r8, r5
18672
+ uxth r5, r5
18673
+ cmn r3, #1
18674
+ streq fp, [r7, #-368]
18675
+ ldr r3, [r7, #-368]
18676
+ mvn r7, #0
18677
+ mov r6, r7
18678
+ str r3, [sp, #12]
18679
+ ldr r3, [sp, #8]
18680
+ add r3, r3, #7
18681
+ cmp r5, r3
18682
+ subgt r4, r8, #7
18683
+ ldrle r4, [sp, #8]
18684
+ uxthgt r4, r4
18685
+.L2957:
18686
+ cmp r4, r8
18687
+ ldr r3, .L3087+4
18688
+ bhi .L2970
18689
+ ldr r2, .L3087+8
18690
+ mov ip, #36
18691
+ ldr r0, [r3, #-536]
18692
+ mov r3, #0
18693
+ ldr r1, [sp, #20]
18694
+ mov r5, r3
18695
+ ldrh r9, [r2]
18696
+ b .L2971
18697
+.L2936:
1806418698 mov r1, #0
1806518699 bl FtlGetLastWrittenPage
1806618700 cmn r0, #1
1806718701 mov r4, r0
18068
- beq .L3010
18069
-.L3147:
18070
- mov r6, r4
18071
-.L3081:
18072
- ldr r3, .L3161+4
18073
- movw r8, #65535
18074
- ldrh r2, [r3], #80
18075
- str r2, [sp, #4]
18076
- ldr r2, .L3161+8
18077
- ldrh r7, [r3]
18078
- add r3, r9, #14
18079
- str r3, [sp, #20]
18080
- ldr ip, [r2, #-536]
18081
- mov r0, r3
18082
- ldr lr, [r2, #-2692]
18083
- mov r2, #0
18084
- mov r5, r2
18085
- mov r10, r2
18086
- b .L3012
18087
-.L3010:
18702
+ bne .L3008
18703
+.L2937:
1808818704 mov r3, #0
18089
- strh r3, [r9, #2] @ movhi
18090
- strb r3, [r9, #6]
18091
- b .L3144
18092
-.L3014:
18093
- ldrh r3, [r0, #2]!
18705
+ strh r3, [r10, #2] @ movhi
18706
+.L3084:
18707
+ strb r3, [r10, #6]
18708
+ b .L3073
18709
+.L2941:
18710
+ ldrh r3, [ip], #2
1809418711 cmp r3, r8
18095
- beq .L3013
18096
- mov r1, #36
18097
- orr r3, r6, r3, asl #10
18098
- mla r1, r1, r5, ip
18099
- stmib r1, {r3, r10}
18100
- mul r3, r7, r5
18101
- add r5, r5, #1
18102
- uxth r5, r5
18712
+ beq .L2940
18713
+ mla r1, r9, r6, r0
18714
+ orr r3, r5, r3, lsl #10
18715
+ str r3, [r1, #4]
18716
+ mov r3, #0
18717
+ str r3, [r1, #8]
18718
+ mul r3, r7, r6
18719
+ add r6, r6, #1
18720
+ uxth r6, r6
1810318721 add fp, r3, #3
1810418722 cmp r3, #0
1810518723 movlt r3, fp
1810618724 bic r3, r3, #3
1810718725 add r3, lr, r3
1810818726 str r3, [r1, #12]
18109
-.L3013:
18727
+.L2940:
1811018728 add r2, r2, #1
18111
-.L3012:
18112
- ldr r1, [sp, #4]
18113
- uxth r3, r2
18114
- cmp r3, r1
18115
- bcc .L3014
18116
- ldrb r3, [r9, #8] @ zero_extendqisi2
18117
- cmp r3, #1
18118
- movne r3, #0
18119
- bne .L3148
18120
- ldr r3, .L3161
18121
- ldrb lr, [r3, #144] @ zero_extendqisi2
18122
- adds r3, lr, #0
18123
- movne r3, #1
18124
-.L3148:
18125
- ldr r7, .L3161+8
18126
- mov r1, r5
18127
- str r3, [sp, #24]
18128
- mov fp, #0
18129
- ldr r2, [sp, #24]
18130
- movw r10, #65535
18131
- ldr r0, [r7, #-536]
18132
- bl FlashReadPages
18133
- ldr r3, [r7, #-3328]
18134
- str r7, [sp, #12]
18135
- str r3, [sp, #28]
18136
-.L3016:
18137
- uxth r8, fp
18138
- cmp r8, r5
18139
- bcs .L3023
18140
- mov r1, #36
18141
- ldr r0, [r7, #-536]
18142
- mul r1, r1, fp
18143
- add ip, r0, r1
18144
- ldr r1, [r0, r1]
18145
- cmp r1, #0
18146
- bne .L3017
18147
- ldr ip, [ip, #12]
18148
- ldr r3, [ip, #4]
18729
+ b .L2939
18730
+.L2948:
18731
+ mov r3, #36
18732
+ ldr r1, [fp, #-536]
18733
+ mul r3, r3, r8
18734
+ add r2, r1, r3
18735
+ ldr r3, [r1, r3]
18736
+ cmp r3, #0
18737
+ bne .L2944
18738
+ ldr r2, [r2, #12]
18739
+ ldr r3, [r2, #4]
1814918740 cmn r3, #1
18150
- beq .L3018
18741
+ beq .L2945
18742
+ ldr r1, [fp, #-3328]
1815118743 mov r0, r3
18152
- ldr r1, [r7, #-3328]
18153
- str ip, [sp, #32]
18154
- str r3, [sp, #4]
1815518744 bl ftl_cmp_data_ver
18156
- ldr r3, [sp, #4]
1815718745 cmp r0, #0
18158
- ldr ip, [sp, #32]
1815918746 addne r3, r3, #1
18160
- strne r3, [r7, #-3328]
18161
-.L3018:
18162
- ldr r1, [ip]
18163
- cmn r1, #1
18164
- bne .L3019
18165
-.L3023:
18166
- cmp r8, r5
18167
- ldr r5, .L3161+8
18168
- bne .L3145
18169
- add fp, r4, #1
18170
- uxth r3, fp
18171
- str r3, [sp, #4]
18172
- ldr r3, [r5, #-536]
18173
- ldr r0, [r3, #4]
18174
- b .L3149
18175
-.L3017:
18176
- ldr r1, [ip, #4]
18177
- uxth r10, r6
18178
- ldr r0, .L3161+12
18179
- bl printk
18180
- ldrh r1, [r9]
18181
- ldr r3, .L3161+16
18182
- strh r1, [r3] @ movhi
18183
-.L3019:
18184
- add fp, fp, #1
18185
- b .L3016
18186
-.L3145:
18747
+ strne r3, [fp, #-3328]
18748
+.L2945:
18749
+ ldr r3, [r2]
18750
+ cmn r3, #1
18751
+ bne .L2947
18752
+.L2946:
1818718753 uxth r3, r4
18188
- str r3, [sp, #4]
18189
- ldr r3, [sp, #12]
18754
+ uxth r8, r8
18755
+ str r3, [sp]
1819018756 mov r2, #36
18191
- ldr r3, [r3, #-536]
18757
+ ldr r3, [r7, #-536]
1819218758 mla r8, r2, r8, r3
1819318759 ldr r0, [r8, #4]
18194
-.L3149:
18195
- ubfx r0, r0, #10, #16
18196
- bl P2V_plane
18197
- ldr r2, .L3161
18198
- str r0, [sp, #12]
18199
- ldrb r0, [r9, #8] @ zero_extendqisi2
18200
- cmp r0, #1
18201
- bne .L3025
18202
- ldrb r3, [r2, #144] @ zero_extendqisi2
18203
- cmp r3, #0
18204
- ldreq r3, [sp, #4]
18205
- addeq fp, r2, r3, asl #1
18206
- ldreqh r3, [fp, #148]
18207
- streq r3, [sp, #4]
18208
-.L3025:
18209
- movw r3, #2388
18210
- ldr r1, [sp, #12]
18211
- ldrh r3, [r2, r3]
18212
- ldr r2, [sp, #4]
18213
- cmp r3, r2
18214
- ldr r2, [sp, #8]
18215
- ldreqh r3, [sp, #4]
18216
- streqh r3, [r9, #2] @ movhi
18217
- moveq r3, #0
18218
- streqb r3, [r9, #6]
18219
- streqh r3, [r9, #4] @ movhi
18220
- ldrh r3, [sp, #16]
18221
- str r3, [sp, #32]
18222
- ldr ip, [sp, #32]
18223
- ldr r3, [sp, #4]
18224
- cmp r3, r2
18225
- cmpeq r1, ip
18226
- moveq r0, r9
18227
- moveq r1, r3
18228
- beq .L3154
18229
- ldr r3, [sp, #28]
18230
- movw r2, #65535
18231
- sub fp, r3, #1
18232
- clz r3, r0
18233
- mov r3, r3, lsr #5
18234
- cmp r10, r2
18235
- orrne r3, r3, #1
18236
- cmp r3, #0
18237
- beq .L3029
18238
- ldr r3, [r5, #-368]
18239
- uxth r10, r6
18240
- ldr r7, .L3161+8
18241
- mvn r8, #0
18242
- cmn r3, #1
18243
- mov r6, r8
18244
- ldreq r3, .L3161+8
18245
- streq fp, [r3, #-368]
18246
- ldr r3, [r5, #-368]
18247
- str r3, [sp, #16]
18248
- ldr r3, [sp, #8]
18249
- add r3, r3, #7
18250
- cmp r10, r3
18251
- subgt r4, r10, #7
18252
- ldrle r4, [sp, #8]
18253
- uxthgt r4, r4
18254
-.L3032:
18255
- cmp r4, r10
18256
- bhi .L3045
18257
- ldr r3, .L3161+4
18258
- mov r0, #36
18259
- ldr lr, [r7, #-536]
18260
- ldr r1, [sp, #20]
18261
- ldrh r3, [r3]
18262
- str r3, [sp, #28]
18263
- mov r3, #0
18264
- mov r5, r3
18265
-.L3046:
18266
- ldr ip, [sp, #28]
18267
- uxth r2, r3
18268
- cmp r2, ip
18269
- bcs .L3157
18270
- ldrh r2, [r1, #2]!
18271
- movw ip, #65535
18760
+ b .L3079
18761
+.L2944:
18762
+ ldr r1, [r2, #4]
18763
+ uxth r9, r5
18764
+ ldr r0, .L3087+12
18765
+ bl printk
18766
+ ldrh r3, [r10]
18767
+ ldr r2, .L3087+16
18768
+ strh r3, [r2] @ movhi
18769
+.L2947:
18770
+ add r8, r8, #1
18771
+ b .L2943
18772
+.L2959:
18773
+ ldrh r2, [r1], #2
18774
+ movw lr, #65535
1827218775 add r3, r3, #1
18273
- cmp r2, ip
18274
- orrne r2, r4, r2, asl #10
18275
- mlane ip, r0, r5, lr
18776
+ cmp r2, lr
18777
+ mlane lr, ip, r5, r0
1827618778 addne r5, r5, #1
18779
+ orrne r2, r4, r2, lsl #10
1827718780 uxthne r5, r5
18278
- strne r2, [ip, #4]
18279
- b .L3046
18280
-.L3157:
18781
+ strne r2, [lr, #4]
18782
+.L2971:
18783
+ uxth r2, r3
18784
+ cmp r2, r9
18785
+ bcc .L2959
1828118786 mov r1, r5
1828218787 ldr r2, [sp, #24]
18283
- ldr r0, [r7, #-536]
1828418788 bl FlashReadPages
18285
- ldr r3, .L3161
18286
- mov r2, #36
18789
+ ldr r3, .L3087
18790
+ mov r1, #36
18791
+ ldr r2, .L3087+4
18792
+ ldr r0, .L3087+20
18793
+ ldrb ip, [r3, #152] @ zero_extendqisi2
18794
+ ldr r3, [r2, #-536]
18795
+ add lr, r0, r4, lsl #1
18796
+ mla r5, r1, r5, r3
1828718797 movw r1, #65535
18288
- ldrb ip, [r3, #144] @ zero_extendqisi2
18289
- ldr r3, [r7, #-536]
18290
- mla r5, r2, r5, r3
18291
- ldr r2, .L3161+20
18292
- add r2, r2, r4, asl #1
18293
-.L3035:
18294
- cmp r3, r5
18295
- beq .L3158
18798
+.L2960:
18799
+ cmp r5, r3
18800
+ addeq r4, r4, #1
18801
+ uxtheq r4, r4
18802
+ beq .L2957
18803
+.L2969:
1829618804 ldr r0, [r3]
1829718805 cmp r0, #0
18298
- bne .L3036
18806
+ bne .L2961
1829918807 ldr r0, [r3, #12]
18300
- ldrh lr, [r0]
18301
- cmp lr, r1
18302
- beq .L3037
18808
+ ldrh r9, [r0]
18809
+ cmp r9, r1
18810
+ beq .L2962
1830318811 ldr r0, [r0, #4]
1830418812 cmn r0, #1
18305
- beq .L3037
18306
- cmn r8, #1
18307
- ldr r6, [r7, #-368]
18308
- str r0, [r7, #-368]
18309
- bne .L3037
18310
- ldrh r0, [r2]
18813
+ beq .L2962
18814
+ cmn r7, #1
18815
+ ldr r6, [r2, #-368]
18816
+ str r0, [r2, #-368]
18817
+ bne .L2962
18818
+ ldrh r0, [lr]
1831118819 cmp r0, r1
18312
- bne .L3038
18820
+ bne .L2963
1831318821 cmp ip, #0
18314
- beq .L3037
18315
-.L3038:
18316
- cmp r6, fp
18317
- mvneq r8, #0
18318
- movne r8, r6
18319
- b .L3037
18320
-.L3036:
18321
- ldrh r1, [r9]
18322
- movw r3, #1848
18323
- ldr r2, .L3161+24
18324
- strh r1, [r2, r3] @ movhi
18325
- ldrb r3, [r9, #8] @ zero_extendqisi2
18326
- cmp r3, #0
18327
- bne .L3029
18328
- ldr r2, .L3161+20
18329
- mov r4, r4, asl #1
18330
- ldr r3, .L3161+8
18822
+ beq .L2962
18823
+.L2963:
18824
+ cmp fp, r6
18825
+ movne r7, r6
18826
+.L2962:
18827
+ add r3, r3, #36
18828
+ b .L2960
18829
+.L2961:
18830
+ ldrh r1, [r10]
18831
+ movw r2, #1846
18832
+ ldr r3, .L3087+4
18833
+ strh r1, [r3, r2] @ movhi
18834
+ ldrb r2, [r10, #8] @ zero_extendqisi2
18835
+ cmp r2, #0
18836
+ bne .L2954
18837
+ ldr r2, .L3087+20
18838
+ lsl r4, r4, #1
1833118839 ldrh r1, [r2, r4]
1833218840 movw r2, #65535
1833318841 cmp r1, r2
18334
- bne .L3040
18335
- cmn r8, #1
18336
- strne r8, [r3, #-368]
18337
- bne .L3029
18338
- ldr r2, [sp, #16]
18339
- cmp r2, fp
18340
- bne .L3150
18842
+ bne .L2965
18843
+ cmn r7, #1
18844
+ strne r7, [r3, #-368]
18845
+ bne .L2954
18846
+ ldr r2, [sp, #12]
18847
+ cmp fp, r2
18848
+ beq .L2967
18849
+.L3080:
18850
+ str r2, [r3, #-368]
18851
+ b .L2954
18852
+.L2967:
1834118853 ldr r2, [r3, #-368]
18342
- b .L3155
18343
-.L3040:
18854
+.L3086:
18855
+ sub r2, r2, #1
18856
+ b .L3080
18857
+.L2965:
1834418858 cmp r6, fp
18345
- beq .L3043
18859
+ beq .L2968
1834618860 cmn r6, #1
1834718861 strne r6, [r3, #-368]
18348
- b .L3029
18349
-.L3043:
18350
- ldr r2, [r3, #-368]
18351
- cmp r2, fp
18352
- beq .L3029
18353
-.L3155:
18354
- sub r2, r2, #1
18355
- b .L3150
18356
-.L3037:
18357
- add r3, r3, #36
18358
- b .L3035
18359
-.L3158:
18360
- add r4, r4, #1
18361
- uxth r4, r4
18362
- b .L3032
18363
-.L3045:
18364
- ldr r3, .L3161+8
18365
- mvn r2, #0
18366
-.L3150:
18367
- str r2, [r3, #-368]
18368
-.L3029:
18369
- ldr r2, .L3161+24
18370
- movw r3, #1850
18371
- ldr r10, [sp, #8]
18372
- mov r1, #1
18373
- ldr r4, .L3161+8
18374
- strh r1, [r2, r3] @ movhi
18375
-.L3047:
18376
- ldr r3, .L3161+4
18377
- movw r1, #65535
18378
- ldr r8, [r4, #-536]
18379
- mov r0, #36
18380
- ldr r6, [sp, #20]
18381
- mov r5, #0
18382
- ldrh r7, [r3]
18383
- ldrb lr, [r3, #-2176] @ zero_extendqisi2
18384
- str r5, [sp, #16]
18385
-.L3048:
18386
- uxth r3, r5
18387
- cmp r3, r7
18388
- bcs .L3159
18389
- ldrh r3, [r6, #2]!
18390
- cmp r3, r1
18391
- beq .L3049
18392
- ldr r2, [sp, #16]
18393
- orr r3, r10, r3, asl #10
18394
- mla r2, r0, r2, r8
18395
- str r3, [r2, #4]
18396
- ldrb ip, [r9, #8] @ zero_extendqisi2
18397
- cmp ip, #1
18398
- bne .L3050
18399
- cmp lr, #0
18400
- orrne r3, r3, #-2147483648
18401
- strne r3, [r2, #4]
18402
-.L3050:
18403
- ldr r3, [sp, #16]
18404
- add r3, r3, #1
18405
- uxth r3, r3
18406
- str r3, [sp, #16]
18407
-.L3049:
18408
- add r5, r5, #1
18409
- b .L3048
18410
-.L3159:
18862
+.L2954:
18863
+ ldr r9, [sp, #8]
18864
+ mov r2, #1
18865
+ ldr r4, .L3087+4
18866
+ movw r3, #1848
18867
+ strh r2, [r4, r3] @ movhi
18868
+.L2972:
18869
+ ldr r3, .L3087+8
18870
+ movw r6, #65535
1841118871 ldr r0, [r4, #-536]
18412
- ldr r1, [sp, #16]
18872
+ mov r7, #36
18873
+ ldr r1, [sp, #20]
18874
+ mov r2, #0
18875
+ ldrh lr, [r3]
18876
+ ldr r3, .L3087
18877
+ str r2, [sp, #12]
18878
+ ldrb r5, [r3, #152] @ zero_extendqisi2
18879
+.L2973:
18880
+ uxth r3, r2
18881
+ cmp lr, r3
18882
+ bhi .L2976
1841318883 ldr r2, [sp, #24]
18884
+ ldr r1, [sp, #12]
1841418885 bl FlashReadPages
1841518886 mov r3, #0
18416
-.L3153:
18417
- str r3, [sp, #28]
18418
- ldr r2, [sp, #16]
18419
- ldrh r3, [sp, #28]
18420
- cmp r3, r2
18421
- bcs .L3160
18422
- ldr r3, [sp, #28]
18423
- mov r5, #36
18887
+.L3083:
18888
+ str r3, [sp, #16]
18889
+ ldr r2, [sp, #12]
18890
+ ldrh r3, [sp, #16]
18891
+ cmp r2, r3
18892
+ bhi .L3002
18893
+ ldrb r3, [r10, #8] @ zero_extendqisi2
18894
+ add r9, r9, #1
18895
+ uxth r9, r9
18896
+ cmp r3, #1
18897
+ bne .L3003
18898
+ ldr r3, .L3087
18899
+ ldrb r3, [r3, #152] @ zero_extendqisi2
18900
+ cmp r3, #0
18901
+ beq .L3003
18902
+ ldr r3, .L3087+24
18903
+ ldr r2, [sp]
18904
+ ldrh r3, [r3]
18905
+ cmp r3, r9
18906
+ cmpeq r2, r9
18907
+ beq .L2979
18908
+.L3003:
18909
+ ldr r3, .L3087+28
18910
+ ldrh r3, [r3]
18911
+ cmp r3, r9
18912
+ bne .L2972
18913
+ ldr r1, .L3087
18914
+ movw r2, #2324
18915
+ movw r0, #65535
18916
+ mov r3, #0
18917
+ strh r9, [r10, #2] @ movhi
18918
+ ldrh r2, [r1, r2]
18919
+ strh r3, [r10, #4] @ movhi
18920
+.L3004:
18921
+ uxth r1, r3
18922
+ cmp r1, r2
18923
+ bcs .L3073
18924
+ ldr r1, [sp, #20]
18925
+ ldrh ip, [r1], #2
18926
+ cmp ip, r0
18927
+ str r1, [sp, #20]
18928
+ add r1, r3, #1
18929
+ bne .L3084
18930
+ mov r3, r1
18931
+ b .L3004
18932
+.L2968:
18933
+ ldr r2, [r3, #-368]
18934
+ cmp fp, r2
18935
+ bne .L3086
18936
+ b .L2954
18937
+.L2970:
18938
+ mvn r2, #0
18939
+ b .L3080
18940
+.L2976:
18941
+ ldrh r3, [r1], #2
18942
+ cmp r3, r6
18943
+ beq .L2974
18944
+ ldr ip, [sp, #12]
18945
+ orr r3, r9, r3, lsl #10
18946
+ mla ip, r7, ip, r0
18947
+ str r3, [ip, #4]
18948
+ ldrb r8, [r10, #8] @ zero_extendqisi2
18949
+ cmp r8, #1
18950
+ bne .L2975
18951
+ cmp r5, #0
18952
+ orrne r3, r3, #-2147483648
18953
+ strne r3, [ip, #4]
18954
+.L2975:
18955
+ ldr r3, [sp, #12]
18956
+ add r3, r3, #1
18957
+ uxth r3, r3
18958
+ str r3, [sp, #12]
18959
+.L2974:
18960
+ add r2, r2, #1
18961
+ b .L2973
18962
+.L3002:
18963
+ ldr r3, [sp, #16]
18964
+ mov r6, #36
1842418965 ldr r8, [r4, #-536]
18425
- mul r5, r5, r3
18426
- add r7, r8, r5
18427
- ldr r6, [r7, #4]
18428
- ubfx r0, r6, #10, #16
18429
- str r6, [sp, #60]
18966
+ mul r6, r6, r3
18967
+ add r7, r8, r6
18968
+ ldr r5, [r7, #4]
18969
+ ubfx r0, r5, #10, #16
18970
+ str r5, [sp, #44]
1843018971 bl P2V_plane
1843118972 ldr r3, [sp, #8]
18432
- cmp r10, r3
18433
- bcc .L3053
18434
- ldr r3, [sp, #32]
18435
- ldr r2, [sp, #8]
18436
- cmp r0, r3
18437
- movcs r3, #0
18438
- movcc r3, #1
18439
- cmp r10, r2
18973
+ cmp r9, r3
18974
+ bcc .L2978
18975
+ ldr r2, [sp, #28]
18976
+ moveq r3, #1
1844018977 movne r3, #0
18978
+ cmp r2, r0
18979
+ movls r3, #0
18980
+ andhi r3, r3, #1
1844118981 cmp r3, #0
18442
- bne .L3053
18443
- ldr r3, [sp, #12]
18982
+ bne .L2978
18983
+ ldr r3, [sp]
1844418984 ldr r2, [sp, #4]
18445
- cmp r0, r3
18446
- cmpeq r10, r2
18447
- beq .L3054
18448
- ldr r3, [r8, r5]
18985
+ cmp r9, r3
18986
+ cmpeq r2, r0
18987
+ beq .L2979
18988
+ ldr r3, [r8, r6]
1844918989 cmn r3, #1
18450
- beq .L3055
18451
- ldr r7, [r7, #12]
18452
- movw r3, #61589
18453
- ldrh r2, [r7]
18454
- cmp r2, r3
18455
- ldrneh r0, [r9]
18456
- bne .L3151
18457
- ldr fp, [r7, #4]
18990
+ beq .L2980
18991
+ ldr r3, [r7, #12]
18992
+ movw r2, #61589
18993
+ ldrh r1, [r3]
18994
+ cmp r1, r2
18995
+ ldrhne r0, [r10]
18996
+ bne .L3081
18997
+ ldr fp, [r3, #4]
1845818998 cmn fp, #1
18459
- beq .L3057
18999
+ beq .L2982
1846019000 ldr r1, [r4, #-3328]
1846119001 mov r0, fp
1846219002 bl ftl_cmp_data_ver
1846319003 cmp r0, #0
18464
- addne r3, fp, #1
18465
- strne r3, [r4, #-3328]
18466
-.L3057:
18467
- ldr r6, [r7, #8]
18468
- add r1, sp, #56
18469
- ldr r3, [r7, #12]
19004
+ addne r2, fp, #1
19005
+ strne r2, [r4, #-3328]
19006
+.L2982:
19007
+ ldr r5, [r3, #8]
19008
+ add r1, sp, #40
19009
+ ldr r3, [r3, #12]
1847019010 mov r2, #0
18471
- mov r0, r6
18472
- str r3, [sp, #52]
19011
+ mov r0, r5
19012
+ str r3, [sp, #36]
1847319013 bl log2phys
1847419014 ldr r1, [r4, #-368]
1847519015 cmn r1, #1
18476
- beq .L3058
19016
+ beq .L2983
1847719017 mov r0, fp
1847819018 bl ftl_cmp_data_ver
1847919019 cmp r0, #0
18480
- beq .L3058
18481
- ldr r3, [sp, #52]
19020
+ beq .L2983
19021
+ ldr r3, [sp, #36]
1848219022 cmn r3, #1
18483
- beq .L3059
19023
+ beq .L2984
1848419024 ldr r0, [r4, #-536]
1848519025 mov r2, #0
1848619026 mov r1, #1
18487
- add r0, r0, r5
19027
+ add r0, r0, r6
1848819028 str r3, [r0, #4]
18489
- ldr r8, [r0, #12]
18490
- bl FlashReadPages
18491
- ldr r2, [r4, #-536]
18492
- ldr r3, [r8, #4]
18493
- add ip, r2, r5
18494
- str r3, [sp, #36]
18495
- ldr r3, [r2, r5]
18496
- cmn r3, #1
18497
- bne .L3060
18498
- b .L3061
18499
-.L3059:
18500
- ldr r3, [sp, #60]
18501
- ldr r2, [sp, #56]
18502
- cmp r2, r3
18503
- bne .L3053
18504
- mov r0, r6
18505
- add r1, sp, #52
18506
- mov r2, #1
18507
- bl log2phys
18508
- b .L3053
18509
-.L3060:
18510
- ldr r7, [r8, #8]
18511
- cmp r7, r6
18512
- bne .L3061
18513
- ldr r0, [r4, #-368]
18514
- ldr r1, [sp, #36]
18515
- str r2, [sp, #44]
18516
- str ip, [sp, #40]
18517
- bl ftl_cmp_data_ver
18518
- cmp r0, #0
18519
- ldr ip, [sp, #40]
18520
- ldr r2, [sp, #44]
18521
- beq .L3061
18522
- ldr r3, [sp, #56]
18523
- ldr r1, [sp, #60]
18524
- cmp r3, r1
18525
- beq .L3066
18526
- ldr r1, [sp, #52]
18527
- cmp r3, r1
18528
- beq .L3061
18529
- cmn r3, #1
18530
- streq r3, [r2, r5]
18531
- beq .L3065
18532
- str r3, [ip, #4]
18533
- mov r0, ip
18534
- mov r1, #1
18535
- mov r2, #0
18536
- ldr r8, [ip, #12]
18537
- bl FlashReadPages
18538
-.L3065:
18539
- ldr r3, [r4, #-536]
18540
- ldr r3, [r3, r5]
18541
- cmn r3, #1
18542
- beq .L3066
18543
- ldr r5, [r8, #4]
18544
- ldr r0, [r4, #-368]
18545
- mov r1, r5
18546
- bl ftl_cmp_data_ver
18547
- cmp r0, #0
18548
- beq .L3066
18549
- ldr r0, [sp, #36]
18550
- mov r1, r5
18551
- bl ftl_cmp_data_ver
18552
- cmp r0, #0
18553
- beq .L3061
18554
-.L3066:
18555
- mov r0, r7
18556
- ldr r1, [sp, #52]
18557
- bl FtlReUsePrevPpa
18558
-.L3061:
18559
- mvn r3, #0
18560
- str r3, [sp, #52]
18561
- b .L3068
18562
-.L3058:
18563
- ldr r3, [sp, #60]
18564
- ldr r2, [sp, #56]
18565
- cmp r2, r3
18566
- beq .L3068
18567
- ldr r3, [sp, #52]
18568
- cmn r3, #1
18569
- beq .L3070
18570
- ldr r2, .L3161
18571
- ubfx r3, r3, #10, #21
18572
- ldr r2, [r2, #2336]
18573
- cmp r3, r2
18574
- bcs .L3053
18575
-.L3070:
18576
- mov r0, r6
18577
- add r1, sp, #60
18578
- mov r2, #1
18579
- bl log2phys
18580
- ldr r5, [sp, #56]
18581
- cmn r5, #1
18582
- beq .L3068
18583
- ldr r3, [sp, #52]
18584
- cmp r5, r3
18585
- beq .L3068
18586
- ubfx r0, r5, #10, #16
18587
- bl P2V_block_in_plane
18588
- ldr r3, .L3161+28
18589
- ldrh r2, [r3]
18590
- cmp r2, r0
18591
- beq .L3072
18592
- ldrh r2, [r3, #48]
18593
- cmp r2, r0
18594
- beq .L3072
18595
- ldrh r3, [r3, #96]
18596
- cmp r3, r0
18597
- bne .L3068
18598
-.L3072:
18599
- ldr r0, [r4, #-536]
18600
- mov r1, #1
18601
- mov r2, #0
18602
- str r5, [r0, #4]
1860319029 ldr r7, [r0, #12]
1860419030 bl FlashReadPages
18605
- ldr r3, [r4, #-536]
18606
- ldr r1, [r7, #4]
18607
- ldr r3, [r3]
18608
- cmn r3, #1
18609
- beq .L3068
18610
- mov r0, fp
18611
- bl ftl_cmp_data_ver
18612
- cmp r0, #0
18613
- bne .L3068
18614
- mov r0, r6
18615
- add r1, sp, #56
18616
- mov r2, #1
18617
- bl log2phys
18618
-.L3068:
18619
- ldr r0, [sp, #52]
18620
- cmn r0, #1
18621
- beq .L3053
18622
- ubfx r0, r0, #10, #16
19031
+ ldr r2, [r4, #-536]
19032
+ ldr r1, [r2, r6]
19033
+ add r3, r2, r6
19034
+ cmn r1, #1
19035
+ bne .L2985
19036
+.L2986:
19037
+ mvn r3, #0
19038
+ str r3, [sp, #36]
19039
+.L2993:
19040
+ ldr r8, [sp, #36]
19041
+ cmn r8, #1
19042
+ beq .L2978
19043
+.L3007:
19044
+ ubfx r0, r8, #10, #16
1862319045 bl P2V_block_in_plane
18624
- ldr r2, [r4, #-3544]
18625
- mov r3, r0, asl #1
19046
+ ldr r2, [r4, #-3540]
19047
+ lsl r3, r0, #1
1862619048 mov r1, r0
1862719049 ldrh r3, [r2, r3]
1862819050 cmp r3, #0
18629
- beq .L3073
18630
-.L3151:
19051
+ beq .L2999
19052
+.L3081:
1863119053 bl decrement_vpc_count
18632
- b .L3053
18633
-.L3073:
18634
- ldr r0, .L3161+32
19054
+ b .L2978
19055
+.L2984:
19056
+ ldr r3, [sp, #44]
19057
+ ldr r2, [sp, #40]
19058
+ cmp r2, r3
19059
+ bne .L2978
19060
+ mov r2, #1
19061
+ add r1, sp, #36
19062
+ mov r0, r5
19063
+ bl log2phys
19064
+.L2978:
19065
+ ldr r3, [sp, #16]
19066
+ add r3, r3, #1
19067
+ b .L3083
19068
+.L2985:
19069
+ ldr r1, [r7, #8]
19070
+ cmp r5, r1
19071
+ bne .L2986
19072
+ ldr r8, [r7, #4]
19073
+ ldr r0, [r4, #-368]
19074
+ mov r1, r8
19075
+ bl ftl_cmp_data_ver
19076
+ cmp r0, #0
19077
+ beq .L2986
19078
+ ldr r1, [sp, #40]
19079
+ ldr r0, [sp, #44]
19080
+ cmp r1, r0
19081
+ bne .L2988
19082
+.L2991:
19083
+ ldr r1, [sp, #36]
19084
+ mov r0, r5
19085
+ bl FtlReUsePrevPpa
19086
+ b .L2986
19087
+.L2988:
19088
+ ldr r0, [sp, #36]
19089
+ cmp r1, r0
19090
+ beq .L2986
19091
+ cmn r1, #1
19092
+ streq r1, [r2, r6]
19093
+ beq .L2990
19094
+ str r1, [r3, #4]
19095
+ mov r2, #0
19096
+ mov r1, #1
19097
+ mov r0, r3
19098
+ ldr r7, [r3, #12]
19099
+ bl FlashReadPages
19100
+.L2990:
19101
+ ldr r3, [r4, #-536]
19102
+ ldr r3, [r3, r6]
19103
+ cmn r3, #1
19104
+ beq .L2991
19105
+ ldr r3, [r7, #4]
19106
+ ldr r0, [r4, #-368]
19107
+ mov r1, r3
19108
+ bl ftl_cmp_data_ver
19109
+ cmp r0, #0
19110
+ beq .L2991
19111
+ mov r1, r3
19112
+ mov r0, r8
19113
+ bl ftl_cmp_data_ver
19114
+ cmp r0, #0
19115
+ beq .L2986
19116
+ b .L2991
19117
+.L2983:
19118
+ ldr r3, [sp, #44]
19119
+ ldr r2, [sp, #40]
19120
+ cmp r2, r3
19121
+ beq .L2993
19122
+ ldr r3, [sp, #36]
19123
+ cmn r3, #1
19124
+ beq .L2995
19125
+ ldr r2, .L3087
19126
+ ubfx r3, r3, #10, #21
19127
+ ldr r2, [r2, #2340]
19128
+ cmp r3, r2
19129
+ bcs .L2978
19130
+.L2995:
19131
+ mov r2, #1
19132
+ add r1, sp, #44
19133
+ mov r0, r5
19134
+ bl log2phys
19135
+ ldr r8, [sp, #40]
19136
+ cmn r8, #1
19137
+ beq .L2993
19138
+ ldr r3, [sp, #36]
19139
+ cmp r8, r3
19140
+ beq .L3007
19141
+ ldr r6, .L3087+32
19142
+ ubfx r0, r8, #10, #16
19143
+ bl P2V_block_in_plane
19144
+ ldrh r3, [r6]
19145
+ cmp r3, r0
19146
+ beq .L2998
19147
+ add r2, r6, #48
19148
+ ldrh r2, [r2]
19149
+ cmp r2, r0
19150
+ beq .L2998
19151
+ add r3, r6, #96
19152
+ ldrh r3, [r3]
19153
+ cmp r3, r0
19154
+ bne .L2993
19155
+.L2998:
19156
+ ldr r0, [r6, #2984]
19157
+ mov r2, #0
19158
+ mov r1, #1
19159
+ str r8, [r0, #4]
19160
+ ldr r7, [r0, #12]
19161
+ bl FlashReadPages
19162
+ ldr r3, [r6, #2984]
19163
+ ldr r3, [r3]
19164
+ cmn r3, #1
19165
+ beq .L2993
19166
+ ldr r1, [r7, #4]
19167
+ mov r0, fp
19168
+ bl ftl_cmp_data_ver
19169
+ cmp r0, #0
19170
+ bne .L2993
19171
+ mov r2, #1
19172
+ add r1, sp, #40
19173
+ mov r0, r5
19174
+ bl log2phys
19175
+ b .L2993
19176
+.L2999:
19177
+ ldr r0, .L3087+36
1863519178 bl printk
18636
- b .L3053
18637
-.L3055:
18638
- ldrh r3, [r9]
18639
- mov r1, r6
18640
- ldr r2, .L3161+16
18641
- ldr r0, .L3161+36
19179
+ b .L2978
19180
+.L2980:
19181
+ ldrh r3, [r10]
19182
+ mov r1, r5
19183
+ ldr r2, .L3087+16
19184
+ ldr r0, .L3087+40
1864219185 strh r3, [r2] @ movhi
1864319186 mov r2, fp
1864419187 bl printk
18645
- ldr r3, .L3161+24
18646
- ldr r3, [r3, #1852]
19188
+ ldr r3, [r4, #1852]
1864719189 cmp r3, #31
18648
- bhi .L3074
18649
- ldr r2, .L3161+24
18650
- ldr r1, [sp, #60]
18651
- add r2, r2, r3, asl #2
18652
- add r3, r3, #1
18653
- str r1, [r2, #1856]
18654
- ldr r2, .L3161+24
18655
- str r3, [r2, #1852]
18656
-.L3074:
18657
- ldrh r0, [r9]
19190
+ ldrls r1, [sp, #44]
19191
+ addls r2, r4, r3, lsl #2
19192
+ addls r3, r3, #1
19193
+ strls r3, [r4, #1852]
19194
+ strls r1, [r2, #1856]
19195
+ ldrh r0, [r10]
1865819196 bl decrement_vpc_count
1865919197 ldr r3, [r4, #-368]
1866019198 cmn r3, #1
18661
- beq .L3152
18662
- cmp r3, fp
18663
- bls .L3053
18664
-.L3152:
19199
+ bne .L3001
19200
+.L3082:
1866519201 str fp, [r4, #-368]
18666
-.L3053:
18667
- ldr r3, [sp, #28]
18668
- add r3, r3, #1
18669
- b .L3153
18670
-.L3160:
18671
- ldrb r3, [r9, #8] @ zero_extendqisi2
18672
- add r10, r10, #1
18673
- cmp r3, #1
18674
- uxth r10, r10
18675
- bne .L3077
18676
- ldr r3, .L3161
18677
- ldrb r3, [r3, #144] @ zero_extendqisi2
18678
- cmp r3, #0
18679
- beq .L3077
18680
- ldr r3, .L3161+40
18681
- ldr r2, [sp, #4]
18682
- ldrh r3, [r3]
18683
- cmp r2, r10
18684
- cmpeq r3, r10
18685
- beq .L3054
18686
-.L3077:
18687
- ldr r2, .L3161+44
18688
- ldrh r3, [r2]
18689
- cmp r10, r3
18690
- bne .L3047
18691
- ldrh r1, [r2, #-68]
18692
- movw r0, #65535
18693
- mov r3, #0
18694
- strh r10, [r9, #2] @ movhi
18695
- strh r3, [r9, #4] @ movhi
18696
-.L3078:
18697
- uxth r2, r3
18698
- cmp r2, r1
18699
- bcs .L3144
18700
- ldr lr, [sp, #20]
18701
- add r3, r3, #1
18702
- ldrh ip, [lr, #2]!
18703
- cmp ip, r0
18704
- str lr, [sp, #20]
18705
- beq .L3078
18706
- strb r2, [r9, #6]
18707
- b .L3144
18708
-.L3054:
18709
- ldrb r3, [sp, #12] @ zero_extendqisi2
18710
- mov r0, r9
18711
- ldr r1, [sp, #4]
18712
- strb r3, [r9, #6]
18713
- ldrh r3, [sp, #4]
18714
- strh r3, [r9, #2] @ movhi
18715
-.L3154:
18716
- ldr r2, [sp, #12]
19202
+ b .L2978
19203
+.L3001:
19204
+ cmp fp, r3
19205
+ bcs .L2978
19206
+ b .L3082
19207
+.L2979:
19208
+ ldrb r3, [sp, #4] @ zero_extendqisi2
19209
+ ldm sp, {r1, r2}
19210
+ strb r3, [r10, #6]
19211
+ ldrh r3, [sp]
19212
+ strh r3, [r10, #2] @ movhi
19213
+.L3085:
19214
+ mov r0, r10
1871719215 bl ftl_sb_update_avl_pages
18718
-.L3144:
19216
+ b .L3073
19217
+.L3075:
1871919218 mov r0, #0
18720
- add sp, sp, #68
18721
- @ sp needed
18722
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
18723
-.L3162:
19219
+ bx lr
19220
+.L3088:
1872419221 .align 2
18725
-.L3161:
19222
+.L3087:
1872619223 .word .LANCHOR0
18727
- .word .LANCHOR0+2320
1872819224 .word .LANCHOR2
19225
+ .word .LANCHOR0+2324
1872919226 .word .LC149
18730
- .word .LANCHOR4+1848
19227
+ .word .LANCHOR2+1846
1873119228 .word .LANCHOR2-2620
18732
- .word .LANCHOR4
18733
- .word .LANCHOR2-3524
19229
+ .word .LANCHOR0+2392
19230
+ .word .LANCHOR0+2390
19231
+ .word .LANCHOR2-3520
1873419232 .word .LC150
1873519233 .word .LC151
18736
- .word .LANCHOR0+2390
18737
- .word .LANCHOR0+2388
1873819234 .fnend
1873919235 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock
1874019236 .align 2
1874119237 .global FtlVpcCheckAndModify
19238
+ .syntax unified
19239
+ .arm
19240
+ .fpu softvfp
1874219241 .type FtlVpcCheckAndModify, %function
1874319242 FtlVpcCheckAndModify:
1874419243 .fnstart
1874519244 @ args = 0, pretend = 0, frame = 8
1874619245 @ frame_needed = 0, uses_anonymous_args = 0
18747
- stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
19246
+ push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
1874819247 .save {r4, r5, r6, r7, r8, r9, r10, lr}
1874919248 .pad #8
18750
- mov r4, #0
18751
- ldr r5, .L3180
18752
- ldr r1, .L3180+4
18753
- ldr r0, .L3180+8
19249
+ mov r5, #0
19250
+ ldr r6, .L3104
19251
+ ldr r1, .L3104+4
19252
+ ldr r0, .L3104+8
1875419253 bl printk
18755
- movw r3, #2330
18756
- ldrh r2, [r5, r3]
19254
+ movw r3, #2334
19255
+ ldr r4, .L3104+12
19256
+ ldrh r2, [r6, r3]
1875719257 mov r1, #0
18758
- ldr r6, .L3180+12
18759
- mov r2, r2, asl #1
18760
- ldr r0, [r6, #-476]
19258
+ ldr r0, [r4, #-476]
19259
+ lsl r2, r2, #1
1876119260 bl ftl_memset
18762
-.L3164:
18763
- ldr r3, [r5, #2448]
18764
- cmp r4, r3
18765
- bcs .L3178
18766
- mov r0, r4
18767
- add r1, sp, #4
18768
- mov r2, #0
18769
- bl log2phys
18770
- ldr r0, [sp, #4]
18771
- cmn r0, #1
18772
- beq .L3165
18773
- ubfx r0, r0, #10, #16
18774
- bl P2V_block_in_plane
18775
- ldr r2, [r6, #-476]
18776
- mov r0, r0, asl #1
18777
- ldrh r3, [r2, r0]
18778
- add r3, r3, #1
18779
- strh r3, [r2, r0] @ movhi
18780
-.L3165:
18781
- add r4, r4, #1
18782
- b .L3164
18783
-.L3178:
18784
- ldr r8, .L3180+16
19261
+.L3090:
19262
+ ldr r3, [r6, #2452]
19263
+ cmp r5, r3
19264
+ bcc .L3092
19265
+ ldr r8, .L3104+16
1878519266 mov r7, #0
18786
- ldr r10, .L3180+12
18787
- ldr r9, .L3180+20
18788
-.L3167:
18789
- ldrh r3, [r8]
18790
- uxth r4, r7
18791
- cmp r3, r4
18792
- bls .L3179
18793
- ldr r3, [r6, #-3544]
18794
- mov r5, r4, asl #1
18795
- movw r1, #65535
18796
- ldrh r2, [r3, r5]
18797
- ldr r3, [r6, #-476]
18798
- ldrh r3, [r3, r5]
18799
- cmp r2, r1
18800
- cmpne r2, r3
18801
- beq .L3168
18802
- ldrh r1, [r9]
18803
- cmp r1, r4
18804
- beq .L3168
18805
- ldr r1, .L3180+24
18806
- ldrh r0, [r1]
18807
- cmp r0, r4
18808
- beq .L3168
18809
- ldrh r1, [r1, #-48]
18810
- cmp r1, r4
18811
- beq .L3168
18812
- ldr r0, .L3180+28
18813
- mov r1, r4
18814
- bl printk
18815
- ldr r3, [r10, #-3544]
18816
- ldrh r2, [r3, r5]
18817
- cmp r2, #0
18818
- ldr r2, [r10, #-476]
18819
- ldrh r2, [r2, r5]
18820
- strh r2, [r3, r5] @ movhi
18821
- beq .L3168
18822
- mov r0, r4
18823
- bl update_vpc_list
18824
-.L3168:
18825
- add r7, r7, #1
18826
- b .L3167
18827
-.L3179:
19267
+ ldr r9, .L3104+20
19268
+ add r10, r8, #96
19269
+.L3093:
19270
+ ldrh r3, [r9]
19271
+ uxth r6, r7
19272
+ cmp r3, r6
19273
+ bhi .L3096
1882819274 bl l2p_flush
1882919275 bl FtlVpcTblFlush
1883019276 add sp, sp, #8
1883119277 @ sp needed
18832
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
18833
-.L3181:
19278
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
19279
+.L3092:
19280
+ mov r2, #0
19281
+ add r1, sp, #4
19282
+ mov r0, r5
19283
+ bl log2phys
19284
+ ldr r0, [sp, #4]
19285
+ cmn r0, #1
19286
+ beq .L3091
19287
+ ubfx r0, r0, #10, #16
19288
+ bl P2V_block_in_plane
19289
+ ldr r2, [r4, #-476]
19290
+ lsl r0, r0, #1
19291
+ ldrh r3, [r2, r0]
19292
+ add r3, r3, #1
19293
+ strh r3, [r2, r0] @ movhi
19294
+.L3091:
19295
+ add r5, r5, #1
19296
+ b .L3090
19297
+.L3096:
19298
+ uxth r1, r7
19299
+ ldr r3, [r4, #-3540]
19300
+ movw r0, #65535
19301
+ lsl r5, r1, #1
19302
+ ldrh r2, [r3, r5]
19303
+ ldr r3, [r4, #-476]
19304
+ ldrh r3, [r3, r5]
19305
+ cmp r2, r0
19306
+ cmpne r2, r3
19307
+ beq .L3094
19308
+ ldrh r0, [r8]
19309
+ cmp r0, r6
19310
+ beq .L3094
19311
+ ldrh r0, [r10]
19312
+ cmp r0, r6
19313
+ beq .L3094
19314
+ ldr r0, .L3104+24
19315
+ ldrh r0, [r0]
19316
+ cmp r0, r6
19317
+ beq .L3094
19318
+ ldr r0, .L3104+28
19319
+ bl printk
19320
+ ldr r3, [r4, #-3540]
19321
+ ldrh r2, [r3, r5]
19322
+ cmp r2, #0
19323
+ ldr r2, [r4, #-476]
19324
+ ldrh r2, [r2, r5]
19325
+ strh r2, [r3, r5] @ movhi
19326
+ bne .L3095
19327
+.L3094:
19328
+ add r7, r7, #1
19329
+ b .L3093
19330
+.L3095:
19331
+ mov r0, r6
19332
+ bl update_vpc_list
19333
+ b .L3094
19334
+.L3105:
1883419335 .align 2
18835
-.L3180:
19336
+.L3104:
1883619337 .word .LANCHOR0
18837
- .word .LANCHOR3+216
19338
+ .word .LANCHOR3+203
1883819339 .word .LC110
1883919340 .word .LANCHOR2
18840
- .word .LANCHOR0+2328
18841
- .word .LANCHOR2-3524
18842
- .word .LANCHOR2-3428
19341
+ .word .LANCHOR2-3520
19342
+ .word .LANCHOR0+2332
19343
+ .word .LANCHOR2-3472
1884319344 .word .LC152
1884419345 .fnend
1884519346 .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
1884619347 .align 2
1884719348 .global FtlGcScanTempBlk
19349
+ .syntax unified
19350
+ .arm
19351
+ .fpu softvfp
1884819352 .type FtlGcScanTempBlk, %function
1884919353 FtlGcScanTempBlk:
1885019354 .fnstart
1885119355 @ args = 0, pretend = 0, frame = 64
1885219356 @ frame_needed = 0, uses_anonymous_args = 0
18853
- ldr r2, .L3235
18854
- movw r3, #3448
18855
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
19357
+ ldr r2, .L3154
19358
+ movw r3, #3444
19359
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1885619360 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1885719361 .pad #68
1885819362 sub sp, sp, #68
18859
- ldrh r5, [r2, r3]
18860
- movw r3, #65535
1886119363 mov r4, r0
1886219364 str r1, [sp, #12]
18863
- cmp r5, r3
18864
- beq .L3216
18865
- cmp r5, #0
18866
- bne .L3183
18867
- b .L3184
18868
-.L3216:
18869
- mov r5, #0
18870
-.L3183:
18871
- ldr r2, .L3235+4
18872
- movw r3, #2388
19365
+ ldrh r6, [r2, r3]
19366
+ movw r3, #65535
19367
+ cmp r6, r3
19368
+ beq .L3138
19369
+ cmp r6, #0
19370
+ bne .L3107
19371
+.L3108:
19372
+ bl FtlGcPageVarInit
19373
+ b .L3109
19374
+.L3138:
19375
+ mov r6, #0
19376
+.L3107:
19377
+ ldr r2, .L3154+4
19378
+ movw r3, #2390
1887319379 ldrh r3, [r2, r3]
1887419380 ldr r2, [sp, #12]
18875
- cmp r2, r3
18876
- bne .L3185
18877
-.L3184:
18878
- bl FtlGcPageVarInit
18879
-.L3185:
18880
- ldr r6, .L3235+8
19381
+ cmp r3, r2
19382
+ beq .L3108
19383
+.L3109:
19384
+ ldr r5, .L3154+8
1888119385 mvn r3, #0
1888219386 str r3, [sp, #8]
1888319387 mov r3, #0
1888419388 str r3, [sp]
18885
-.L3186:
19389
+.L3110:
1888619390 ldrh r1, [r4]
1888719391 movw r3, #65535
1888819392 mov r2, #0
1888919393 strb r2, [r4, #8]
1889019394 cmp r1, r3
18891
- beq .L3187
18892
-.L3188:
18893
-.L3213:
18894
- ldr r3, .L3235+12
18895
- mov r7, #0
18896
- ldr ip, [r6, #-2692]
18897
- add r1, r4, #14
18898
- mov r8, r7
19395
+ beq .L3111
19396
+.L3135:
19397
+ ldr r3, .L3154+12
19398
+ add ip, r4, #16
19399
+ ldr r0, [r5, #-536]
1889919400 movw r9, #65535
18900
- ldrh r3, [r3]
19401
+ ldr lr, [r5, #-2692]
1890119402 mov r10, #36
19403
+ ldrh r3, [r3]
1890219404 str r3, [sp, #4]
18903
- ldr r3, [r6, #-536]
19405
+ ldr r3, [r5, #-2696]
1890419406 str r3, [sp, #16]
18905
- ldr r3, [r6, #-2696]
18906
- str r3, [sp, #20]
18907
- ldr r3, .L3235+16
18908
- ldrh r0, [r3]
18909
- ldrh lr, [r3, #2]
18910
-.L3189:
18911
- ldr r2, [sp, #4]
18912
- uxth r3, r7
19407
+ ldr r3, .L3154+16
19408
+ ldrh r2, [r3]
19409
+ ldrh r8, [r3, #2]
19410
+ str r2, [sp, #20]
19411
+ mov r2, #0
19412
+ mov r7, r2
19413
+.L3112:
19414
+ ldr r1, [sp, #4]
19415
+ uxth r3, r2
19416
+ cmp r1, r3
19417
+ bhi .L3114
19418
+ ldr r10, .L3154+4
19419
+ mov fp, #0
19420
+ mov r2, #0
19421
+ mov r1, r7
19422
+ bl FlashReadPages
19423
+.L3115:
19424
+ uxth r3, fp
19425
+ cmp r7, r3
19426
+ bhi .L3133
19427
+ ldr r3, [sp]
19428
+ add r6, r6, #1
19429
+ uxth r6, r6
19430
+ add r3, r3, #1
19431
+ str r3, [sp]
19432
+ ldr r2, [sp]
19433
+ ldr r3, [sp, #12]
1891319434 cmp r3, r2
18914
- bcs .L3233
18915
- ldrh r3, [r1, #2]!
19435
+ ldr r2, .L3154+20
19436
+ bls .L3134
19437
+.L3136:
19438
+ ldrh r3, [r2]
19439
+ cmp r3, r6
19440
+ bhi .L3135
19441
+ mov r2, #0
19442
+ b .L3111
19443
+.L3114:
19444
+ ldrh r3, [ip], #2
1891619445 cmp r3, r9
18917
- beq .L3190
18918
- ldr r2, [sp, #16]
18919
- orr r3, r5, r3, asl #10
18920
- mla r2, r10, r8, r2
18921
- str r3, [r2, #4]
18922
- mul r3, r0, r8
19446
+ beq .L3113
19447
+ mla r1, r10, r7, r0
19448
+ orr r3, r6, r3, lsl #10
19449
+ str r3, [r1, #4]
19450
+ ldr r3, [sp, #20]
19451
+ mul r3, r3, r7
1892319452 add fp, r3, #3
1892419453 cmp r3, #0
1892519454 movlt r3, fp
18926
- ldr fp, [sp, #20]
19455
+ ldr fp, [sp, #16]
1892719456 bic r3, r3, #3
1892819457 add r3, fp, r3
18929
- str r3, [r2, #8]
18930
- mul r3, lr, r8
18931
- add r8, r8, #1
18932
- uxth r8, r8
19458
+ str r3, [r1, #8]
19459
+ mul r3, r8, r7
19460
+ add r7, r7, #1
19461
+ uxth r7, r7
1893319462 add fp, r3, #3
1893419463 cmp r3, #0
1893519464 movlt r3, fp
1893619465 bic r3, r3, #3
18937
- add r3, ip, r3
18938
- str r3, [r2, #12]
18939
-.L3190:
18940
- add r7, r7, #1
18941
- b .L3189
18942
-.L3233:
18943
- ldr r0, [r6, #-536]
18944
- mov r1, r8
18945
- mov r2, #0
18946
- mov fp, #0
18947
- bl FlashReadPages
18948
-.L3192:
18949
- uxth r3, fp
18950
- cmp r3, r8
18951
- bcs .L3234
18952
- ldr r3, .L3235+8
19466
+ add r3, lr, r3
19467
+ str r3, [r1, #12]
19468
+.L3113:
19469
+ add r2, r2, #1
19470
+ b .L3112
19471
+.L3133:
1895319472 mov r9, #36
19473
+ ldr r8, [r5, #-536]
1895419474 mul r9, r9, fp
18955
- ldr r7, [r3, #-536]
18956
- add r10, r7, r9
18957
- ldr r3, [r10, #4]
18958
- ubfx r0, r3, #10, #16
18959
- str r3, [sp, #4]
19475
+ add r3, r8, r9
19476
+ ldr r2, [r3, #4]
19477
+ str r3, [sp, #16]
19478
+ ubfx r0, r2, #10, #16
19479
+ str r2, [sp, #4]
1896019480 bl P2V_plane
18961
- ldr r7, [r7, r9]
18962
- ldr r10, [r10, #12]
18963
- cmp r7, #0
18964
- ldr ip, .L3235+4
18965
- ldr r3, .L3235+8
19481
+ ldr r8, [r8, r9]
1896619482 mov r2, r0
18967
- bne .L3193
18968
- ldrh r0, [r10]
19483
+ ldr r3, [sp, #16]
19484
+ cmp r8, #0
19485
+ ldr r3, [r3, #12]
19486
+ bne .L3116
19487
+ ldrh r0, [r3]
1896919488 movw r1, #65535
1897019489 cmp r0, r1
18971
- bne .L3194
18972
-.L3197:
18973
- ldrb r1, [ip, #144] @ zero_extendqisi2
19490
+ bne .L3117
19491
+.L3120:
19492
+ ldrb r1, [r10, #152] @ zero_extendqisi2
1897419493 cmp r1, #0
18975
- beq .L3228
18976
- mov r1, #1
18977
- str r1, [r3, #-372]
18978
- b .L3187
18979
-.L3194:
18980
- ldr r1, .L3235+4
18981
- ldr r0, [r10, #8]
18982
- ldr r1, [r1, #2448]
19494
+ beq .L3150
19495
+ mov r3, #1
19496
+ str r3, [r5, #-372]
19497
+.L3111:
19498
+ ldr r1, .L3154
19499
+ mvn r0, #0
19500
+ movw r3, #3444
19501
+ strh r6, [r4, #2] @ movhi
19502
+ strb r2, [r4, #6]
19503
+ strh r0, [r1, r3] @ movhi
19504
+ mov r1, r6
19505
+ mov r0, r4
19506
+ bl ftl_sb_update_avl_pages
19507
+ b .L3106
19508
+.L3117:
19509
+ ldr r0, [r3, #8]
19510
+ ldr r1, [r10, #2452]
1898319511 cmp r0, r1
18984
- bls .L3229
18985
- b .L3197
18986
-.L3228:
19512
+ bhi .L3120
19513
+ ldrb r2, [r10, #36] @ zero_extendqisi2
19514
+ cmp r2, #0
19515
+ bne .L3123
19516
+.L3124:
19517
+ ldr r2, [r3, #8]
19518
+ add fp, fp, #1
19519
+ ldr r1, [sp, #4]
19520
+ ldr r0, [r3, #12]
19521
+ bl FtlGcUpdatePage
19522
+ b .L3115
19523
+.L3150:
1898719524 ldrh r3, [r4]
18988
- ldr r2, .L3235+8
18989
- mov r3, r3, asl #1
18990
- ldr r2, [r2, #-3544]
18991
- b .L3232
18992
-.L3229:
18993
- ldr r3, .L3235+4
18994
- ldrb r3, [r3] @ zero_extendqisi2
18995
- cmp r3, #0
18996
- beq .L3201
18997
- add r1, sp, #24
18998
- mov r2, r7
18999
- bl log2phys
19000
- ldr r3, [r10, #12]
19001
- ldr r2, [sp, #24]
19002
- rsb r1, r3, r2
19003
- cmn r2, #1
19004
- clz r1, r1
19005
- mov r1, r1, lsr #5
19006
- moveq r1, #0
19007
- cmp r1, #0
19008
- beq .L3201
19009
- str r3, [sp, #32]
19010
- mov r2, r7
19011
- ldr r3, [r6, #-504]
19012
- add r0, sp, #28
19013
- mov r1, #1
19014
- str r3, [sp, #36]
19015
- ldr r3, [r6, #-496]
19016
- str r3, [sp, #40]
19017
- bl FlashReadPages
19018
- ldr r3, .L3235+20
19019
- ldr r2, [r6, #-536]
19020
- ldrh r3, [r3]
19021
- add r9, r2, r9
19022
- mov r3, r3, asl #7
19023
- ldr r2, [sp, #36]
19024
- b .L3203
19025
-.L3204:
19026
- add r7, r7, #1
19027
-.L3203:
19028
- cmp r7, r3
19029
- beq .L3201
19030
- ldr r1, [r9, #8]
19031
- ldr r0, [r1, r7, asl #2]
19032
- ldr r1, [r2, r7, asl #2]
19033
- cmp r0, r1
19034
- beq .L3204
19035
- ldrh r1, [r4]
19036
- ldr r2, [sp, #32]
19037
- ldr r0, .L3235+24
19038
- bl printk
19039
- ldrh r3, [r4]
19040
- ldr r2, [r6, #-3544]
19041
- mov r1, #0
19042
- mov r3, r3, asl #1
19043
-.L3232:
19525
+ ldr r2, [r5, #-3540]
19526
+ lsl r3, r3, #1
1904419527 strh r1, [r2, r3] @ movhi
1904519528 ldrh r0, [r4]
1904619529 bl INSERT_FREE_LIST
19047
- ldr r2, .L3235+28
19530
+ ldr r2, .L3154+24
1904819531 mvn r3, #0
1904919532 strh r3, [r4] @ movhi
1905019533 strh r3, [r2] @ movhi
19051
- b .L3231
19052
-.L3201:
19053
- ldr r0, [r10, #12]
19054
- add fp, fp, #1
19055
- ldr r1, [sp, #4]
19056
- ldr r2, [r10, #8]
19057
- bl FtlGcUpdatePage
19058
- b .L3192
19059
-.L3193:
19060
- ldr r2, [sp, #4]
19061
- ldr r0, .L3235+32
19534
+.L3153:
19535
+ bl FtlGcPageVarInit
19536
+ mov r6, #0
19537
+ b .L3110
19538
+.L3123:
19539
+ mov r2, r8
19540
+ add r1, sp, #24
19541
+ str r3, [sp, #16]
19542
+ bl log2phys
19543
+ ldr r3, [sp, #16]
19544
+ ldr r1, [sp, #24]
19545
+ ldr r2, [r3, #12]
19546
+ cmn r1, #1
19547
+ sub r0, r2, r1
19548
+ clz r0, r0
19549
+ lsr r0, r0, #5
19550
+ moveq r0, #0
19551
+ cmp r0, #0
19552
+ beq .L3124
19553
+ str r2, [sp, #32]
19554
+ mov r1, #1
19555
+ ldr r2, [r5, #-504]
19556
+ add r0, sp, #28
19557
+ str r2, [sp, #36]
19558
+ ldr r2, [r5, #-496]
19559
+ str r2, [sp, #40]
19560
+ mov r2, r8
19561
+ bl FlashReadPages
19562
+ ldr r2, .L3154+28
19563
+ ldr r1, [r5, #-536]
19564
+ ldr r3, [sp, #16]
19565
+ ldrh r2, [r2]
19566
+ add r9, r1, r9
19567
+ ldr r1, [sp, #36]
19568
+ lsl r2, r2, #7
19569
+.L3125:
19570
+ cmp r8, r2
19571
+ beq .L3124
19572
+ ldr r0, [r9, #8]
19573
+ ldr ip, [r0, r8, lsl #2]
19574
+ ldr r0, [r1, r8, lsl #2]
19575
+ cmp ip, r0
19576
+ beq .L3126
19577
+ ldr r2, [sp, #32]
1906219578 ldrh r1, [r4]
19063
- str r3, [sp, #20]
19064
- str ip, [sp, #16]
19579
+ ldr r0, .L3154+32
1906519580 bl printk
19066
- ldrh r5, [r4]
19067
- ldr ip, [sp, #16]
19068
- ldr r3, [sp, #20]
19069
- ldr r2, [ip, #2244]
19581
+ ldrh r3, [r4]
19582
+ mov r1, #0
19583
+ ldr r2, [r5, #-3540]
19584
+ lsl r3, r3, #1
19585
+ strh r1, [r2, r3] @ movhi
19586
+ ldrh r0, [r4]
19587
+ bl INSERT_FREE_LIST
19588
+ ldr r2, .L3154+36
19589
+ mvn r3, #0
19590
+ strh r3, [r4] @ movhi
19591
+ strh r3, [r2, #-4] @ movhi
19592
+ b .L3153
19593
+.L3126:
19594
+ add r8, r8, #1
19595
+ b .L3125
19596
+.L3116:
19597
+ ldr r2, [sp, #4]
19598
+ ldrh r1, [r4]
19599
+ ldr r0, .L3154+40
19600
+ bl printk
19601
+ ldr r3, [r10, #2248]
19602
+ cmp r3, #0
19603
+ ldrh r3, [r4]
19604
+ bne .L3129
19605
+ ldrb r2, [r10, #152] @ zero_extendqisi2
1907019606 cmp r2, #0
19071
- bne .L3207
19072
- ldrb r2, [ip, #144] @ zero_extendqisi2
19073
- cmp r2, #0
19074
- beq .L3208
19075
-.L3207:
19076
- ldr r1, [r3, #-3608]
19077
- mov r2, r5, asl #1
19607
+ beq .L3130
19608
+.L3129:
19609
+ ldr r1, [r5, #-3604]
19610
+ lsl r2, r3, #1
1907819611 ldrh r2, [r1, r2]
1907919612 cmp r2, #159
19080
- bls .L3209
19081
-.L3208:
19082
- ldr r2, [r3, #-536]
19613
+ bls .L3131
19614
+.L3130:
19615
+ ldr r2, [r5, #-536]
1908319616 ldr r2, [r2, r9]
1908419617 cmn r2, #1
19085
- bne .L3210
19086
-.L3209:
19087
- ldr r3, [r3, #-536]
19088
- add r9, r3, r9
19089
- ldr r3, [r9, #4]
19090
- str r3, [sp, #8]
19091
-.L3210:
19092
- ldr r3, .L3235+8
19093
- mov r5, r5, asl #1
19094
- mov r2, #0
19095
- ldr r3, [r3, #-3544]
19096
- strh r2, [r3, r5] @ movhi
19618
+ bne .L3132
19619
+.L3131:
19620
+ ldr r2, [r5, #-536]
19621
+ add r9, r2, r9
19622
+ ldr r2, [r9, #4]
19623
+ str r2, [sp, #8]
19624
+.L3132:
19625
+ ldr r2, [r5, #-3540]
19626
+ lsl r3, r3, #1
19627
+ mov r1, #0
19628
+ strh r1, [r2, r3] @ movhi
1909719629 ldrh r0, [r4]
1909819630 bl INSERT_FREE_LIST
1909919631 mvn r3, #0
1910019632 strh r3, [r4] @ movhi
19101
-.L3231:
19102
- bl FtlGcPageVarInit
19103
- mov r5, #0
19104
- b .L3186
19105
-.L3234:
19106
- ldr r3, [sp]
19107
- add r5, r5, #1
19108
- ldr r2, [sp, #12]
19109
- add r3, r3, #1
19110
- uxth r5, r5
19111
- cmp r3, r2
19112
- str r3, [sp]
19113
- ldr r2, .L3235+36
19114
- bcs .L3212
19115
-.L3214:
19116
- ldrh r3, [r2]
19117
- cmp r3, r5
19118
- bhi .L3213
19119
- mov r2, #0
19120
- b .L3187
19121
-.L3212:
19122
- ldr r1, .L3235+40
19633
+ b .L3153
19634
+.L3134:
19635
+ ldr r1, .L3154+44
1912319636 movw r0, #65535
1912419637 ldrh r3, [r1]
1912519638 cmp r3, r0
19126
- beq .L3214
19639
+ beq .L3136
1912719640 ldr r0, [sp]
1912819641 add r3, r3, r0
1912919642 strh r3, [r1] @ movhi
1913019643 ldrh r3, [r2]
19131
- cmp r3, r5
19132
- bls .L3214
19133
- b .L3215
19134
-.L3187:
19135
- ldr r1, .L3235
19136
- movw r3, #3448
19137
- mvn r0, #0
19138
- strh r5, [r4, #2] @ movhi
19139
- strb r2, [r4, #6]
19140
- strh r0, [r1, r3] @ movhi
19141
- mov r0, r4
19142
- mov r1, r5
19143
- bl ftl_sb_update_avl_pages
19144
-.L3215:
19644
+ cmp r3, r6
19645
+ bls .L3136
19646
+.L3106:
1914519647 ldr r0, [sp, #8]
1914619648 add sp, sp, #68
1914719649 @ sp needed
19148
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
19149
-.L3236:
19650
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
19651
+.L3155:
1915019652 .align 2
19151
-.L3235:
19653
+.L3154:
1915219654 .word .LANCHOR1
1915319655 .word .LANCHOR0
1915419656 .word .LANCHOR2
19155
- .word .LANCHOR0+2320
19156
- .word .LANCHOR0+2398
19157
- .word .LANCHOR0+2394
19158
- .word .LC153
19657
+ .word .LANCHOR0+2324
19658
+ .word .LANCHOR0+2400
19659
+ .word .LANCHOR0+2390
1915919660 .word .LANCHOR2-3284
19661
+ .word .LANCHOR0+2396
19662
+ .word .LC153
19663
+ .word .LANCHOR2-3280
1916019664 .word .LC154
19161
- .word .LANCHOR0+2388
19162
- .word .LANCHOR1+3448
19665
+ .word .LANCHOR1+3444
1916319666 .fnend
1916419667 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk
1916519668 .align 2
1916619669 .global FtlReadRefresh
19670
+ .syntax unified
19671
+ .arm
19672
+ .fpu softvfp
1916719673 .type FtlReadRefresh, %function
1916819674 FtlReadRefresh:
1916919675 .fnstart
1917019676 @ args = 0, pretend = 0, frame = 40
1917119677 @ frame_needed = 0, uses_anonymous_args = 0
19172
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
19678
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
1917319679 .save {r4, r5, r6, r7, r8, r9, r10, lr}
1917419680 .pad #40
1917519681 sub sp, sp, #40
19176
- ldr r5, .L3254
19177
- ldr r4, .L3254+4
19178
- ldr r9, [r5, #-3152]
19682
+ ldr r5, .L3173
19683
+ ldr r9, [r5, #-3156]
1917919684 mov r6, r5
1918019685 cmp r9, #0
19181
- beq .L3238
19182
- ldr r2, [r5, #-3148]
19183
- ldr r3, [r4, #2448]
19184
- cmp r2, r3
19185
- bcs .L3239
19686
+ beq .L3157
19687
+ ldr r3, .L3173+4
19688
+ ldr r1, [r5, #-3152]
19689
+ ldr r2, [r3, #2452]
19690
+ mov r4, r3
19691
+ cmp r1, r2
19692
+ bcs .L3158
1918619693 mov r5, #2048
19187
- mov r7, r6
19188
-.L3244:
19189
- ldr r0, [r6, #-3148]
19190
- ldr r3, [r4, #2448]
19694
+.L3163:
19695
+ ldr r0, [r6, #-3152]
19696
+ ldr r3, [r4, #2452]
1919119697 cmp r0, r3
19192
- bcs .L3243
19698
+ bcc .L3159
19699
+.L3162:
19700
+ mvn r0, #0
19701
+.L3156:
19702
+ add sp, sp, #40
19703
+ @ sp needed
19704
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
19705
+.L3159:
1919319706 mov r2, #0
1919419707 mov r1, sp
1919519708 bl log2phys
19196
- ldr r3, [r7, #-3148]
19197
- add r3, r3, #1
19198
- str r3, [r7, #-3148]
1919919709 ldr r2, [sp]
19710
+ ldr r3, [r6, #-3152]
1920019711 cmn r2, #1
19201
- beq .L3242
19202
- add r0, sp, #40
19712
+ add r3, r3, #1
19713
+ str r3, [r6, #-3152]
19714
+ beq .L3161
1920319715 str r2, [sp, #8]
19204
- mov r1, #1
19716
+ add r0, sp, #40
1920519717 mov r2, #0
19718
+ mov r1, #1
1920619719 str r2, [r0, #-36]!
1920719720 str r3, [sp, #20]
1920819721 str r2, [sp, #12]
....@@ -19210,357 +19723,352 @@
1921019723 bl FlashReadPages
1921119724 ldr r3, [sp, #4]
1921219725 cmp r3, #256
19213
- bne .L3243
19726
+ bne .L3162
1921419727 ldr r0, [sp]
1921519728 ubfx r0, r0, #10, #16
1921619729 bl P2V_block_in_plane
1921719730 bl FtlGcRefreshBlock
19218
-.L3243:
19219
- mvn r0, #0
19220
- b .L3246
19221
-.L3242:
19731
+ b .L3162
19732
+.L3161:
1922219733 subs r5, r5, #1
19223
- bne .L3244
19224
- b .L3243
19225
-.L3239:
19734
+ bne .L3163
19735
+ b .L3162
19736
+.L3158:
1922619737 ldr r3, [r5, #-3364]
1922719738 mov r0, #0
19739
+ str r0, [r5, #-3156]
1922819740 str r0, [r5, #-3152]
19229
- str r0, [r5, #-3148]
19230
- str r3, [r5, #-3156]
19231
- b .L3246
19232
-.L3238:
19741
+ str r3, [r5, #-3160]
19742
+ b .L3156
19743
+.L3157:
1923319744 ldr r1, [r5, #-3312]
19234
- sub r10, r5, #3600
19235
- ldr r8, [r5, #-3364]
19236
- ldr r3, [r4, #2448]
1923719745 movw r4, #10000
19238
- ldr r7, [r5, #-3156]
19746
+ ldr r8, [r5, #-3364]
19747
+ sub r10, r5, #3584
19748
+ ldr r7, [r5, #-3160]
1923919749 cmp r1, r4
19240
- add r2, r8, #1048576
19750
+ add r3, r8, #1048576
1924119751 movhi r4, #31
1924219752 movls r4, #63
19243
- cmp r7, r2
19244
- bhi .L3248
19245
- mov r1, r1, lsr #10
19753
+ cmp r7, r3
19754
+ bhi .L3167
19755
+ ldr r3, .L3173+4
19756
+ lsr r1, r1, #10
1924619757 mov r0, #1000
19247
- mul r0, r0, r3
1924819758 add r1, r1, #1
19759
+ ldr r3, [r3, #2452]
19760
+ mul r0, r0, r3
1924919761 bl __aeabi_uidiv
1925019762 add r0, r0, r7
19251
- cmp r0, r8
19252
- bcc .L3248
19253
- ldrh r3, [r10, #28]
19763
+ cmp r8, r0
19764
+ bhi .L3167
19765
+ ldrh r3, [r10, #16]
1925419766 ands r0, r4, r3
1925519767 movne r0, r9
19256
- bne .L3246
19257
- ldr r2, [r5, #-3132]
19258
- cmp r2, r3
19259
- beq .L3246
19260
-.L3248:
19261
- ldrh r3, [r10, #28]
19768
+ bne .L3156
19769
+ ldr r2, [r5, #-3136]
19770
+ cmp r3, r2
19771
+ beq .L3156
19772
+.L3167:
19773
+ ldrh r3, [r10, #16]
1926219774 mov r0, #0
19263
- str r8, [r6, #-3156]
19264
- str r0, [r6, #-3148]
19265
- str r3, [r6, #-3132]
19775
+ str r0, [r6, #-3152]
19776
+ str r8, [r6, #-3160]
19777
+ str r3, [r6, #-3136]
1926619778 mov r3, #1
19267
- str r3, [r6, #-3152]
19268
-.L3246:
19269
- add sp, sp, #40
19270
- @ sp needed
19271
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
19272
-.L3255:
19779
+ str r3, [r6, #-3156]
19780
+ b .L3156
19781
+.L3174:
1927319782 .align 2
19274
-.L3254:
19783
+.L3173:
1927519784 .word .LANCHOR2
1927619785 .word .LANCHOR0
1927719786 .fnend
1927819787 .size FtlReadRefresh, .-FtlReadRefresh
1927919788 .align 2
1928019789 .global FtlGcFreeTempBlock
19790
+ .syntax unified
19791
+ .arm
19792
+ .fpu softvfp
1928119793 .type FtlGcFreeTempBlock, %function
1928219794 FtlGcFreeTempBlock:
1928319795 .fnstart
19284
- @ args = 0, pretend = 0, frame = 24
19796
+ @ args = 0, pretend = 0, frame = 16
1928519797 @ frame_needed = 0, uses_anonymous_args = 0
19286
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
19798
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1928719799 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
19288
- movw r3, #2388
19289
- ldr r4, .L3295
19290
- .pad #28
19291
- sub sp, sp, #28
19292
- ldr r6, .L3295+4
19293
- ldr ip, [r4, #-3616]
19800
+ movw r3, #2390
19801
+ ldr r4, .L3213
19802
+ .pad #20
19803
+ sub sp, sp, #20
19804
+ ldr r6, .L3213+4
19805
+ ldr ip, [r4, #-3612]
1929419806 ldrh r1, [r6, r3]
1929519807 cmp ip, #0
19296
- bne .L3293
19297
- sub r7, r4, #3424
19808
+ beq .L3176
19809
+.L3212:
19810
+ mov r0, #0
19811
+.L3175:
19812
+ add sp, sp, #20
19813
+ @ sp needed
19814
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
19815
+.L3176:
19816
+ sub r5, r4, #3424
1929819817 movw lr, #65535
19299
- ldrh r5, [r7, #-4]
19300
- cmp r5, lr
19301
- bne .L3259
19302
-.L3268:
19303
- ldrh r2, [r7, #-4]
19818
+ ldrh r7, [r5]
19819
+ cmp r7, lr
19820
+ bne .L3178
19821
+.L3187:
19822
+ ldrh r2, [r5]
1930419823 movw r3, #65535
19305
- ldr r5, .L3295
19306
- mov r8, #0
19824
+ mov r7, #0
19825
+ str r7, [r4, #-372]
1930719826 cmp r2, r3
19308
- str r8, [r4, #-372]
19309
- sub r9, r5, #3424
19310
- beq .L3293
19827
+ beq .L3212
1931119828 bl FtlCacheWriteBack
19312
- movw r2, #2388
19313
- ldrb r0, [r5, #-3421] @ zero_extendqisi2
19314
- ldrh r2, [r6, r2]
19315
- ldrh r3, [r9, #-4]
19316
- ldr r1, [r5, #-3544]
19317
- smulbb r2, r0, r2
19318
- mov r3, r3, asl #1
19829
+ movw r0, #2390
19830
+ ldrb r2, [r4, #-3417] @ zero_extendqisi2
19831
+ ldrh r0, [r6, r0]
19832
+ mov fp, #12
19833
+ ldrh r3, [r5]
19834
+ ldr r1, [r4, #-3540]
19835
+ ldr r8, .L3213+8
19836
+ smulbb r2, r2, r0
19837
+ lsl r3, r3, #1
1931919838 strh r2, [r1, r3] @ movhi
19320
- sub r2, r5, #2656
19321
- ldr r3, [r5, #-3344]
19322
- sub fp, r2, #12
19323
- ldrh ip, [r2, #-12]
19324
- sub r10, r2, #772
19325
- add r3, ip, r3
19326
- str r3, [r5, #-3344]
19327
- stmib sp, {r2, r5}
19328
- b .L3269
19329
-.L3259:
19839
+ ldr r2, [r4, #-3344]
19840
+ ldrh r3, [r8, #-12]
19841
+ add r3, r3, r2
19842
+ str r3, [r4, #-3344]
19843
+.L3188:
19844
+ ldrh r2, [r8, #-12]
19845
+ uxth r3, r7
19846
+ cmp r2, r3
19847
+ bhi .L3192
19848
+ movw r0, #65535
19849
+ bl decrement_vpc_count
19850
+ ldrb r3, [r6, #152] @ zero_extendqisi2
19851
+ cmp r3, #0
19852
+ beq .L3193
19853
+ ldrh r1, [r5]
19854
+ ldr r0, .L3213+12
19855
+ bl printk
19856
+.L3193:
19857
+ ldrh r0, [r5]
19858
+ ldr r2, [r4, #-3540]
19859
+ lsl r3, r0, #1
19860
+ ldrh r3, [r2, r3]
19861
+ cmp r3, #0
19862
+ beq .L3194
19863
+ bl INSERT_DATA_LIST
19864
+.L3195:
19865
+ ldr r7, .L3213+16
19866
+ mvn r9, #0
19867
+ strh r9, [r5] @ movhi
19868
+ mov r5, #0
19869
+ strh r5, [r8, #-12] @ movhi
19870
+ strh r5, [r7, #-4] @ movhi
19871
+ bl l2p_flush
19872
+ bl FtlVpcTblFlush
19873
+ sub r3, r7, #608
19874
+ sub r2, r7, #848
19875
+ strh r9, [r3, #-4] @ movhi
19876
+ ldr r3, [r6, #2248]
19877
+ ldrh r2, [r2, #-4]
19878
+ cmp r3, r5
19879
+ sub r3, r7, #624
19880
+ ldrh r3, [r3, #-8]
19881
+ beq .L3196
19882
+ ldr r1, [r4, #-3308]
19883
+ cmp r1, #39
19884
+ bhi .L3196
19885
+ cmp r2, r3
19886
+ lslcc r3, r3, #1
19887
+ strhcc r3, [r7, #-48] @ movhi
19888
+ b .L3212
19889
+.L3178:
1933019890 cmp r0, #0
19331
- beq .L3262
19332
- ldr r2, .L3295+8
19333
- movw r3, #3448
19891
+ beq .L3181
19892
+ ldr r2, .L3213+20
19893
+ movw r3, #3444
1933419894 ldrh r0, [r2, r3]
1933519895 cmp r0, lr
19336
- beq .L3263
19337
-.L3264:
19896
+ beq .L3182
19897
+.L3183:
1933819898 mov r1, #2
19339
- b .L3262
19340
-.L3263:
19341
- strh ip, [r2, r3] @ movhi
19342
- sub r3, r4, #3520
19343
- ldrh r3, [r3, #-8]
19344
- cmp r3, #17
19345
- bhi .L3264
19346
-.L3262:
19347
- ldr r0, .L3295+12
19899
+.L3181:
19900
+ ldr r0, .L3213+24
1934819901 bl FtlGcScanTempBlk
1934919902 cmn r0, #1
19350
- str r0, [sp, #20]
19351
- beq .L3265
19352
- ldr r3, .L3295
19353
- mov r5, r5, asl #1
19354
- ldr r2, [r3, #-3608]
19355
- ldrh r3, [r2, r5]
19903
+ str r0, [sp, #12]
19904
+ beq .L3184
19905
+ ldr r2, [r4, #-3604]
19906
+ lsl r7, r7, #1
19907
+ ldrh r3, [r2, r7]
1935619908 cmp r3, #4
19357
- bls .L3266
19909
+ bls .L3185
1935819910 sub r3, r3, #5
1935919911 mov r0, #1
19360
- strh r3, [r2, r5] @ movhi
19912
+ strh r3, [r2, r7] @ movhi
1936119913 bl FtlEctTblFlush
19362
-.L3266:
19914
+.L3185:
1936319915 ldr r3, [r4, #-372]
19364
- ldr r2, .L3295
1936519916 cmp r3, #0
19366
- bne .L3267
19367
- ldr r0, [sp, #20]
19368
- ldr r3, [r2, #-3136]
19369
- ubfx r0, r0, #10, #16
19917
+ bne .L3186
19918
+ ldr r3, [r4, #-3140]
19919
+ ldr r0, [sp, #12]
1937019920 add r3, r3, #1
19371
- str r3, [r2, #-3136]
19921
+ ubfx r0, r0, #10, #16
19922
+ str r3, [r4, #-3140]
1937219923 bl FtlBbmMapBadBlock
1937319924 bl FtlBbmTblFlush
19374
-.L3267:
19925
+.L3186:
1937519926 mov r3, #0
1937619927 str r3, [r4, #-372]
19377
- b .L3279
19378
-.L3265:
19379
- ldr r2, .L3295+8
19380
- movw r3, #3448
19928
+.L3198:
19929
+ mov r0, #1
19930
+ b .L3175
19931
+.L3182:
19932
+ strh ip, [r2, r3] @ movhi
19933
+ sub r3, r4, #3520
19934
+ ldrh r3, [r3, #-4]
19935
+ cmp r3, #17
19936
+ bhi .L3183
19937
+ b .L3181
19938
+.L3184:
19939
+ ldr r2, .L3213+20
19940
+ movw r3, #3444
1938119941 ldrh r2, [r2, r3]
1938219942 movw r3, #65535
1938319943 cmp r2, r3
19384
- bne .L3279
19385
- b .L3268
19386
-.L3272:
19387
- ldr r3, [r5, #4]
19388
- cmp r0, r3
19389
- bne .L3291
19390
-.L3271:
19391
- add r8, r8, #1
19392
-.L3269:
19393
- ldrh r2, [fp]
19394
- uxth r3, r8
19395
- cmp r2, r3
19396
- bls .L3294
19397
- mov r9, #12
19398
- ldr r2, [r6, #2448]
19399
- mul r9, r9, r3
19400
- ldr r3, [sp, #8]
19401
- ldr ip, [r3, #-2672]
19402
- add r5, ip, r9
19403
- ldr r0, [r5, #8]
19944
+ bne .L3198
19945
+ b .L3187
19946
+.L3192:
19947
+ uxth r10, r7
19948
+ ldr r3, [r4, #-2672]
19949
+ ldr r2, [r6, #2452]
19950
+ mul r10, fp, r10
19951
+ add r9, r3, r10
19952
+ ldr r0, [r9, #8]
1940419953 cmp r0, r2
19405
- bcs .L3291
19954
+ bcc .L3189
19955
+.L3210:
19956
+ ldrh r0, [r5]
19957
+ b .L3211
19958
+.L3189:
1940619959 mov r2, #0
19407
- add r1, sp, #20
19408
- str ip, [sp, #12]
19960
+ add r1, sp, #12
19961
+ str r3, [sp, #4]
1940919962 bl log2phys
19410
- ldr ip, [sp, #12]
19411
- ldr r0, [sp, #20]
19412
- ldr r2, [ip, r9]
19963
+ ldr r3, [sp, #4]
19964
+ ldr r2, [sp, #12]
19965
+ ldr r0, [r3, r10]
1941319966 cmp r0, r2
19414
- bne .L3272
19967
+ bne .L3191
1941519968 ubfx r0, r0, #10, #16
1941619969 bl P2V_block_in_plane
19417
- add r1, r5, #4
1941819970 mov r2, #1
19419
- mov r9, r0
19420
- ldr r0, [r5, #8]
19971
+ mov r10, r0
19972
+ add r1, r9, #4
19973
+ ldr r0, [r9, #8]
1942119974 bl log2phys
19422
- mov r0, r9
19423
- b .L3292
19424
-.L3291:
19425
- ldrh r0, [r10]
19426
-.L3292:
19975
+ mov r0, r10
19976
+.L3211:
1942719977 bl decrement_vpc_count
19428
- b .L3271
19429
-.L3294:
19430
- movw r0, #65535
19431
- bl decrement_vpc_count
19432
- ldrb r3, [r6, #144] @ zero_extendqisi2
19433
- cmp r3, #0
19434
- beq .L3274
19435
- ldr r0, .L3295+16
19436
- ldrh r1, [r7, #-4]
19437
- bl printk
19438
-.L3274:
19439
- ldrh r0, [r7, #-4]
19440
- ldr r2, [r4, #-3544]
19441
- mov r3, r0, asl #1
19442
- ldrh r3, [r2, r3]
19443
- cmp r3, #0
19444
- beq .L3275
19445
- bl INSERT_DATA_LIST
19446
- b .L3276
19447
-.L3275:
19448
- bl INSERT_FREE_LIST
19449
-.L3276:
19450
- ldr r3, [sp, #4]
19451
- mvn r5, #0
19452
- ldr r4, .L3295
19453
- strh r5, [r7, #-4] @ movhi
19454
- mov r7, #0
19455
- strh r7, [r3, #-12] @ movhi
19456
- sub r3, r4, #2672
19457
- strh r7, [r3, #-4] @ movhi
19458
- bl l2p_flush
19459
- bl FtlVpcTblFlush
19460
- sub r3, r4, #3280
19461
- sub r2, r4, #3520
19462
- strh r5, [r3, #-4] @ movhi
19463
- ldr r3, [r6, #2244]
19464
- ldrh r2, [r2, #-8]
19465
- cmp r3, r7
19466
- sub r3, r4, #3296
19467
- ldrh r3, [r3, #-8]
19468
- beq .L3277
19469
- ldr r1, [r4, #-3308]
19470
- cmp r1, #39
19471
- bhi .L3277
19978
+ b .L3190
19979
+.L3191:
19980
+ ldr r3, [r9, #4]
1947219981 cmp r2, r3
19473
- subcc r4, r4, #2720
19474
- movcc r3, r3, asl #1
19475
- strcch r3, [r4] @ movhi
19476
- b .L3293
19477
-.L3277:
19478
- add r1, r3, r3, asl #1
19982
+ bne .L3210
19983
+.L3190:
19984
+ add r7, r7, #1
19985
+ b .L3188
19986
+.L3194:
19987
+ bl INSERT_FREE_LIST
19988
+ b .L3195
19989
+.L3196:
19990
+ add r1, r3, r3, lsl #1
1947919991 cmp r2, r1, asr #2
19480
- ble .L3293
19481
- ldrb r0, [r6, #144] @ zero_extendqisi2
19482
- ldr r2, .L3295+20
19992
+ ble .L3212
19993
+ ldrb r0, [r6, #152] @ zero_extendqisi2
19994
+ ldr r2, .L3213+28
1948319995 cmp r0, #0
1948419996 moveq r3, #20
19485
- streqh r3, [r2] @ movhi
19486
- beq .L3258
19997
+ strheq r3, [r2] @ movhi
19998
+ beq .L3175
1948719999 sub r3, r3, #2
1948820000 strh r3, [r2] @ movhi
19489
-.L3293:
19490
- mov r0, #0
19491
- b .L3258
19492
-.L3279:
19493
- mov r0, #1
19494
-.L3258:
19495
- add sp, sp, #28
19496
- @ sp needed
19497
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
19498
-.L3296:
20001
+ b .L3212
20002
+.L3214:
1949920003 .align 2
19500
-.L3295:
20004
+.L3213:
1950120005 .word .LANCHOR2
1950220006 .word .LANCHOR0
19503
- .word .LANCHOR1
19504
- .word .LANCHOR2-3428
20007
+ .word .LANCHOR2-2656
1950520008 .word .LC155
20009
+ .word .LANCHOR2-2672
20010
+ .word .LANCHOR1
20011
+ .word .LANCHOR2-3424
1950620012 .word .LANCHOR2-2720
1950720013 .fnend
1950820014 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
1950920015 .align 2
1951020016 .global FtlGcPageRecovery
20017
+ .syntax unified
20018
+ .arm
20019
+ .fpu softvfp
1951120020 .type FtlGcPageRecovery, %function
1951220021 FtlGcPageRecovery:
1951320022 .fnstart
1951420023 @ args = 0, pretend = 0, frame = 0
1951520024 @ frame_needed = 0, uses_anonymous_args = 0
19516
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
19517
- .save {r3, r4, r5, r6, r7, lr}
19518
- movw r5, #2388
19519
- ldr r7, .L3300
19520
- ldr r6, .L3300+4
19521
- ldr r4, .L3300+8
20025
+ push {r4, r5, r6, r7, r8, lr}
20026
+ .save {r4, r5, r6, r7, r8, lr}
20027
+ movw r5, #2390
20028
+ ldr r4, .L3218
20029
+ ldr r6, .L3218+4
20030
+ sub r7, r4, #3424
1952220031 mov r0, r7
1952320032 ldrh r1, [r6, r5]
1952420033 bl FtlGcScanTempBlk
1952520034 ldrh r2, [r7, #2]
1952620035 ldrh r3, [r6, r5]
1952720036 cmp r2, r3
19528
- ldmccfd sp!, {r3, r4, r5, r6, r7, pc}
20037
+ popcc {r4, r5, r6, r7, r8, pc}
1952920038 sub r0, r4, #432
1953020039 bl FtlMapBlkWriteDumpData
1953120040 mov r0, #0
1953220041 bl FtlGcFreeTempBlock
1953320042 mov r3, #0
1953420043 str r3, [r4, #-372]
19535
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
19536
-.L3301:
20044
+ pop {r4, r5, r6, r7, r8, pc}
20045
+.L3219:
1953720046 .align 2
19538
-.L3300:
19539
- .word .LANCHOR2-3428
19540
- .word .LANCHOR0
20047
+.L3218:
1954120048 .word .LANCHOR2
20049
+ .word .LANCHOR0
1954220050 .fnend
1954320051 .size FtlGcPageRecovery, .-FtlGcPageRecovery
1954420052 .align 2
1954520053 .global FtlPowerLostRecovery
20054
+ .syntax unified
20055
+ .arm
20056
+ .fpu softvfp
1954620057 .type FtlPowerLostRecovery, %function
1954720058 FtlPowerLostRecovery:
1954820059 .fnstart
1954920060 @ args = 0, pretend = 0, frame = 0
1955020061 @ frame_needed = 0, uses_anonymous_args = 0
19551
- stmfd sp!, {r4, r5, r6, lr}
20062
+ push {r4, r5, r6, lr}
1955220063 .save {r4, r5, r6, lr}
19553
- mov r6, #0
19554
- ldr r4, .L3304
19555
- ldr r3, .L3304+4
19556
- sub r5, r4, #3520
20064
+ mov r5, #0
20065
+ ldr r4, .L3222
20066
+ sub r6, r4, #3520
20067
+ str r5, [r4, #1852]
20068
+ mov r0, r6
1955720069 sub r4, r4, #3472
19558
- sub r5, r5, #4
19559
- sub r4, r4, #4
19560
- str r6, [r3, #1852]
19561
- mov r0, r5
1956220070 bl FtlRecoverySuperblock
19563
- mov r0, r5
20071
+ mov r0, r6
1956420072 bl FtlSlcSuperblockCheck
1956520073 mov r0, r4
1956620074 bl FtlRecoverySuperblock
....@@ -19569,51 +20077,54 @@
1956920077 bl FtlGcPageRecovery
1957020078 movw r0, #65535
1957120079 bl decrement_vpc_count
19572
- mov r0, r6
19573
- ldmfd sp!, {r4, r5, r6, pc}
19574
-.L3305:
20080
+ mov r0, r5
20081
+ pop {r4, r5, r6, pc}
20082
+.L3223:
1957520083 .align 2
19576
-.L3304:
20084
+.L3222:
1957720085 .word .LANCHOR2
19578
- .word .LANCHOR4
1957920086 .fnend
1958020087 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery
1958120088 .align 2
1958220089 .global FtlSysBlkInit
20090
+ .syntax unified
20091
+ .arm
20092
+ .fpu softvfp
1958320093 .type FtlSysBlkInit, %function
1958420094 FtlSysBlkInit:
1958520095 .fnstart
1958620096 @ args = 0, pretend = 0, frame = 0
1958720097 @ frame_needed = 0, uses_anonymous_args = 0
19588
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
19589
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
19590
- movw r3, #1850
19591
- ldr r4, .L3324
20098
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
20099
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
1959220100 mov r2, #0
19593
- ldr r6, .L3324+4
19594
- ldr r5, .L3324+8
19595
- strh r2, [r4, r3] @ movhi
20101
+ ldr r5, .L3242
1959620102 movw r3, #1848
20103
+ ldr r6, .L3242+4
20104
+ strh r2, [r5, r3] @ movhi
1959720105 mvn r2, #0
19598
- strh r2, [r4, r3] @ movhi
19599
- ldr r3, [r6, #2324]
19600
- uxth r0, r3
20106
+ movw r3, #1846
20107
+ strh r2, [r5, r3] @ movhi
20108
+ add r3, r6, #2320
20109
+ add r3, r3, #8
20110
+ ldrh r0, [r3]
1960120111 bl FtlFreeSysBlkQueueInit
1960220112 bl FtlScanSysBlk
1960320113 sub r3, r5, #3296
1960420114 ldrh r2, [r3, #-4]
1960520115 movw r3, #65535
1960620116 cmp r2, r3
19607
- bne .L3307
19608
-.L3309:
19609
- mvn r8, #0
19610
- b .L3308
19611
-.L3307:
20117
+ bne .L3225
20118
+.L3227:
20119
+ mvn r7, #0
20120
+.L3224:
20121
+ mov r0, r7
20122
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
20123
+.L3225:
1961220124 bl FtlLoadSysInfo
19613
- subs r8, r0, #0
19614
- bne .L3309
20125
+ subs r7, r0, #0
20126
+ bne .L3227
1961520127 bl FtlLoadMapInfo
19616
- mov r7, r4
1961720128 bl FtlLoadVonderInfo
1961820129 bl Ftl_load_ext_data
1961920130 bl FtlLoadEctTbl
....@@ -19622,638 +20133,642 @@
1962220133 bl FtlPowerLostRecovery
1962320134 mov r0, #1
1962420135 bl FtlUpdateVaildLpn
19625
- ldr r2, [r5, #-3380]
19626
- movw r3, #2426
19627
- mov r0, #12
20136
+ ldr r2, [r5, #-3376]
20137
+ movw r3, #2430
1962820138 ldrh r1, [r6, r3]
19629
- mov r3, r8
19630
-.L3310:
20139
+ mov r0, #12
20140
+ mov r3, r7
20141
+.L3228:
1963120142 cmp r3, r1
19632
- bge .L3315
20143
+ bge .L3233
1963320144 mla ip, r0, r3, r2
1963420145 ldr ip, [ip, #4]
1963520146 cmp ip, #0
19636
- bge .L3311
19637
-.L3315:
19638
- ldr r4, .L3324+12
20147
+ bge .L3229
20148
+.L3233:
20149
+ ldr r4, .L3242+8
1963920150 cmp r3, r1
19640
- add r9, r4, #80
1964120151 ldrh r2, [r4, #28]
20152
+ add r8, r4, #12
20153
+ add r4, r4, #76
1964220154 add r2, r2, #1
19643
- strh r2, [r4, #28] @ movhi
19644
- bge .L3322
19645
- b .L3312
19646
-.L3311:
19647
- add r3, r3, #1
19648
- b .L3310
19649
-.L3322:
19650
- movw r3, #1850
19651
- ldrh r3, [r7, r3]
19652
- cmp r3, #0
19653
- beq .L3316
19654
-.L3312:
19655
- ldrh r2, [r9, #-4]
19656
- ldr r3, .L3324+16
19657
- ldr r0, [r5, #-3544]
19658
- mov r2, r2, asl #1
19659
- ldrh ip, [r3, #4]
19660
- ldrh r1, [r0, r2]
19661
- rsb r1, ip, r1
19662
- movw ip, #2388
19663
- strh r1, [r0, r2] @ movhi
19664
- add r1, r3, #48
19665
- ldrh r2, [r6, ip]
19666
- ldr lr, [r5, #-3544]
19667
- ldrh r7, [r1, #4]
19668
- strh r2, [r3, #2] @ movhi
20155
+ strh r2, [r4, #-48] @ movhi
20156
+ bge .L3240
20157
+.L3230:
20158
+ ldrh r3, [r4]
20159
+ movw ip, #2390
20160
+ ldr r1, [r5, #-3540]
20161
+ ldrh r0, [r4, #4]
20162
+ lsl r3, r3, #1
20163
+ ldrh r2, [r1, r3]
20164
+ sub r2, r2, r0
20165
+ strh r2, [r1, r3] @ movhi
1966920166 mov r2, #0
19670
- strh r2, [r3, #4] @ movhi
19671
- ldrh r3, [r3, #48]
19672
- strb r2, [r5, #-3518]
19673
- mov r3, r3, asl #1
19674
- ldrh r0, [lr, r3]
19675
- rsb r0, r7, r0
19676
- strh r0, [lr, r3] @ movhi
1967720167 ldrh r3, [r6, ip]
19678
- strb r2, [r5, #-3470]
19679
- strh r2, [r1, #4] @ movhi
19680
- strh r3, [r1, #2] @ movhi
19681
- ldrh r3, [r4, #30]
20168
+ ldr lr, [r5, #-3540]
20169
+ strb r2, [r5, #-3514]
20170
+ strh r3, [r4, #2] @ movhi
20171
+ ldr r3, .L3242+12
20172
+ strh r2, [r4, #4] @ movhi
20173
+ ldrh r1, [r3]
20174
+ ldrh r9, [r3, #4]
20175
+ lsl r1, r1, #1
20176
+ ldrh r0, [lr, r1]
20177
+ sub r0, r0, r9
20178
+ strh r0, [lr, r1] @ movhi
20179
+ ldrh r1, [r6, ip]
20180
+ strh r2, [r3, #4] @ movhi
20181
+ strb r2, [r5, #-3466]
20182
+ strh r1, [r3, #2] @ movhi
20183
+ ldrh r3, [r8, #18]
1968220184 add r3, r3, #1
19683
- strh r3, [r4, #30] @ movhi
20185
+ strh r3, [r8, #18] @ movhi
1968420186 bl l2p_flush
1968520187 bl FtlVpcTblFlush
1968620188 bl FtlVpcTblFlush
19687
-.L3316:
19688
- ldrh r0, [r9, #-4]
20189
+ b .L3234
20190
+.L3229:
20191
+ add r3, r3, #1
20192
+ b .L3228
20193
+.L3240:
20194
+ movw r3, #1848
20195
+ ldrh r3, [r5, r3]
20196
+ cmp r3, #0
20197
+ bne .L3230
20198
+.L3234:
20199
+ ldrh r0, [r4]
1968920200 movw r3, #65535
19690
- ldr r5, .L3324+16
1969120201 cmp r0, r3
19692
- beq .L3317
19693
- ldrh r3, [r5, #4]
20202
+ beq .L3235
20203
+ ldrh r3, [r4, #4]
1969420204 cmp r3, #0
19695
- bne .L3317
19696
- ldrh r3, [r5, #52]
19697
- add r9, r5, #52
19698
- add r7, r5, #48
20205
+ bne .L3235
20206
+ ldr r4, .L3242+12
20207
+ ldrh r3, [r4, #4]
1969920208 cmp r3, #0
19700
- bne .L3317
20209
+ bne .L3235
1970120210 bl FtlGcRefreshOpenBlock
19702
- ldrh r0, [r5, #48]
20211
+ ldrh r0, [r4]
1970320212 bl FtlGcRefreshOpenBlock
1970420213 bl FtlVpcTblFlush
19705
- mov r0, r5
20214
+ sub r0, r4, #48
1970620215 bl allocate_new_data_superblock
19707
- mov r0, r7
20216
+ mov r0, r4
1970820217 bl allocate_new_data_superblock
19709
-.L3317:
19710
- ldrb r3, [r6] @ zero_extendqisi2
20218
+.L3235:
20219
+ ldrb r3, [r6, #36] @ zero_extendqisi2
1971120220 cmp r3, #0
19712
- bne .L3318
19713
- ldrh r3, [r4, #28]
20221
+ bne .L3236
20222
+ ldrh r3, [r8, #16]
1971420223 tst r3, #31
19715
- bne .L3308
19716
-.L3318:
20224
+ bne .L3224
20225
+.L3236:
1971720226 bl FtlVpcCheckAndModify
19718
-.L3308:
19719
- mov r0, r8
19720
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
19721
-.L3325:
20227
+ b .L3224
20228
+.L3243:
1972220229 .align 2
19723
-.L3324:
19724
- .word .LANCHOR4
19725
- .word .LANCHOR0
20230
+.L3242:
1972620231 .word .LANCHOR2
19727
- .word .LANCHOR2-3600
19728
- .word .LANCHOR2-3524
20232
+ .word .LANCHOR0
20233
+ .word .LANCHOR2-3596
20234
+ .word .LANCHOR2-3472
1972920235 .fnend
1973020236 .size FtlSysBlkInit, .-FtlSysBlkInit
1973120237 .align 2
1973220238 .global FtlLowFormat
20239
+ .syntax unified
20240
+ .arm
20241
+ .fpu softvfp
1973320242 .type FtlLowFormat, %function
1973420243 FtlLowFormat:
1973520244 .fnstart
1973620245 @ args = 0, pretend = 0, frame = 8
1973720246 @ frame_needed = 0, uses_anonymous_args = 0
19738
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
20247
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1973920248 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1974020249 .pad #12
19741
- ldr r4, .L3361
19742
- ldr r6, [r4, #-3616]
20250
+ ldr r4, .L3276
20251
+ ldr r6, [r4, #-3612]
1974320252 cmp r6, #0
19744
- bne .L3328
19745
- ldr r5, .L3361+4
19746
- movw r7, #2424
20253
+ bne .L3246
20254
+ ldr r5, .L3276+4
20255
+ movw r7, #2428
1974720256 mov r1, r6
1974820257 ldr r0, [r4, #-448]
1974920258 ldrh r2, [r5, r7]
19750
- mov r2, r2, asl #2
20259
+ lsl r2, r2, #2
1975120260 bl ftl_memset
1975220261 ldrh r2, [r5, r7]
1975320262 mov r1, r6
1975420263 ldr r0, [r4, #-452]
19755
- mov r2, r2, asl #2
20264
+ lsl r2, r2, #2
1975620265 bl ftl_memset
19757
- ldr r3, [r5, #2324]
20266
+ add r3, r5, #2320
1975820267 str r6, [r4, #-3332]
20268
+ add r3, r3, #8
20269
+ ldrh r0, [r3]
1975920270 str r6, [r4, #-3328]
19760
- uxth r0, r3
1976120271 bl FtlFreeSysBlkQueueInit
1976220272 bl FtlLoadBbt
1976320273 cmp r0, #0
19764
- beq .L3329
20274
+ beq .L3247
1976520275 bl FtlMakeBbt
19766
-.L3329:
19767
- ldr r0, .L3361+8
20276
+.L3247:
20277
+ ldr r0, .L3276+8
1976820278 mov r2, #0
19769
- ldr ip, .L3361+12
19770
-.L3330:
20279
+ ldr ip, .L3276+12
20280
+.L3248:
1977120281 ldrh r1, [r0]
1977220282 uxth r3, r2
1977320283 add r2, r2, #1
19774
- cmp r3, r1, asl #7
19775
- bge .L3358
19776
- ldr lr, [r4, #-508]
19777
- mvn r1, r3
19778
- orr r1, r3, r1, asl #16
19779
- str r1, [lr, r3, asl #2]
19780
- ldr r1, [r4, #-504]
19781
- str ip, [r1, r3, asl #2]
19782
- b .L3330
19783
-.L3358:
19784
- ldr r2, .L3361+4
19785
- movw r3, #2328
19786
- ldr r7, .L3361+16
19787
- mov r8, #0
19788
- ldrh r6, [r2, r3]
19789
-.L3332:
19790
- ldrh r3, [r7]
19791
- ldr r10, .L3361+4
19792
- cmp r3, r6
19793
- ldr r9, .L3361+16
19794
- bls .L3359
20284
+ cmp r3, r1, lsl #7
20285
+ blt .L3249
20286
+ movw r3, #2332
20287
+ ldr r9, .L3276+16
20288
+ ldrh r7, [r5, r3]
20289
+ mov r6, #0
20290
+ mov r8, r9
20291
+.L3250:
20292
+ ldrh r3, [r9]
20293
+ cmp r3, r7
20294
+ bhi .L3251
20295
+ movw r3, #2324
20296
+ ldrh r1, [r5, r3]
20297
+ sub r3, r6, #3
20298
+ cmp r3, r1, lsl #1
20299
+ blt .L3252
1979520300 mov r0, r6
19796
- mov r1, #1
19797
- bl FtlLowFormatEraseBlock
19798
- add r6, r6, #1
19799
- uxth r6, r6
19800
- add r0, r8, r0
19801
- uxth r8, r0
19802
- b .L3332
19803
-.L3359:
19804
- add r7, r10, #2320
19805
- sub r3, r8, #3
19806
- ldrh r1, [r7]
19807
- cmp r3, r1, asl #1
19808
- blt .L3334
19809
- mov r0, r8
19810
- mov r8, #0
20301
+ mov r6, #0
1981120302 bl __aeabi_uidiv
19812
- ldr r3, [r10, #2420]
20303
+ ldr r3, [r5, #2424]
1981320304 add r0, r0, r3
1981420305 uxth r0, r0
1981520306 bl FtlSysBlkNumInit
19816
- ldr r3, [r10, #2324]
19817
- uxth r0, r3
20307
+ add r3, r5, #2320
20308
+ add r3, r3, #8
20309
+ ldrh r0, [r3]
1981820310 bl FtlFreeSysBlkQueueInit
19819
- movw r3, #2328
19820
- ldrh r6, [r10, r3]
19821
-.L3335:
19822
- ldrh r3, [r9]
19823
- cmp r3, r6
19824
- bls .L3334
19825
- mov r0, r6
19826
- mov r1, #1
19827
- bl FtlLowFormatEraseBlock
19828
- add r6, r6, #1
19829
- uxth r6, r6
19830
- add r0, r8, r0
19831
- uxth r8, r0
19832
- b .L3335
19833
-.L3334:
19834
- ldr r10, .L3361+20
19835
- mov r9, #0
19836
- mov r6, r9
19837
-.L3337:
19838
- ldrh r2, [r10]
19839
- uxth r0, r9
19840
- ldr r3, .L3361+4
19841
- add r9, r9, #1
19842
- cmp r2, r0
19843
- bls .L3360
19844
- mov r1, #0
19845
- bl FtlLowFormatEraseBlock
19846
- add r0, r6, r0
19847
- uxth r6, r0
19848
- b .L3337
19849
-.L3360:
19850
- movw r2, #2330
19851
- ldrh r9, [r7]
19852
- ldrh r2, [r3, r2]
19853
- str r3, [sp, #4]
19854
- mov r1, r9
19855
- ldr r7, .L3361+24
19856
- str r2, [r4, #-548]
19857
- ldr r2, [r3, #2332]
20311
+ movw r3, #2332
20312
+ ldrh r7, [r5, r3]
20313
+.L3253:
20314
+ ldrh r3, [r8]
20315
+ cmp r3, r7
20316
+ bhi .L3254
20317
+.L3252:
20318
+ ldr r8, .L3276+20
20319
+ mov r7, #0
20320
+ mov r9, r7
20321
+.L3255:
20322
+ ldrh r3, [r8]
20323
+ uxth r0, r7
20324
+ add r7, r7, #1
20325
+ cmp r3, r0
20326
+ bhi .L3256
20327
+ movw r3, #2334
20328
+ ldr r2, [r5, #2336]
20329
+ ldrh r3, [r5, r3]
20330
+ ldr r8, .L3276+24
1985820331 mov r0, r2
19859
- str r2, [sp]
20332
+ str r2, [sp, #4]
20333
+ str r3, [r4, #-548]
20334
+ movw r3, #2324
20335
+ ldrh r7, [r5, r3]
20336
+ mov r1, r7
1986020337 bl __aeabi_uidiv
1986120338 ubfx r10, r0, #5, #16
19862
- ldr r3, [sp, #4]
19863
- add r1, r10, #36
19864
- strh r1, [r7, #-8] @ movhi
19865
- mov r1, #24
1986620339 mov fp, r0
19867
- mul r1, r1, r9
19868
- str r0, [r3, #2448]
19869
- ldr r2, [sp]
19870
- cmp r6, r1
19871
- ble .L3339
19872
- rsb r0, r6, r2
19873
- mov r1, r9
19874
- str r3, [sp]
20340
+ add r3, r10, #36
20341
+ str r0, [r5, #2452]
20342
+ strh r3, [r8, #-8] @ movhi
20343
+ mov r3, #24
20344
+ mul r3, r3, r7
20345
+ cmp r9, r3
20346
+ ble .L3257
20347
+ ldr r2, [sp, #4]
20348
+ mov r1, r7
20349
+ sub r0, r2, r9
1987520350 bl __aeabi_uidiv
19876
- ldr r3, [sp]
19877
- str r0, [r3, #2448]
19878
- mov r0, r0, lsr #5
20351
+ str r0, [r5, #2452]
20352
+ lsr r0, r0, #5
1987920353 add r0, r0, #24
19880
- strh r0, [r7, #-8] @ movhi
19881
-.L3339:
19882
- ldr r3, [r5, #2244]
20354
+ strh r0, [r8, #-8] @ movhi
20355
+.L3257:
20356
+ ldr r3, [r5, #2248]
1988320357 cmp r3, #1
19884
- bne .L3340
19885
- ldrh r3, [r7, #-8]
19886
- mov r0, r6
19887
- mov r1, r9
19888
- str r3, [sp]
20358
+ bne .L3258
20359
+ ldrh r3, [r8, #-8]
20360
+ mov r1, r7
20361
+ mov r0, r9
20362
+ str r3, [sp, #4]
1988920363 bl __aeabi_uidiv
19890
- ldr r3, [sp]
20364
+ ldr r3, [sp, #4]
1989120365 uxtah r0, r3, r0
1989220366 add r3, r3, r0, asr #2
19893
- strh r3, [r7, #-8] @ movhi
19894
-.L3340:
19895
- ldrb r3, [r5, #144] @ zero_extendqisi2
20367
+ strh r3, [r8, #-8] @ movhi
20368
+.L3258:
20369
+ ldrb r3, [r5, #152] @ zero_extendqisi2
1989620370 cmp r3, #0
19897
- beq .L3341
19898
- ldrh r3, [r7, #-8]
19899
- mov r0, r6
19900
- mov r1, r9
19901
- str r3, [sp]
20371
+ beq .L3259
20372
+ ldrh r3, [r8, #-8]
20373
+ mov r1, r7
20374
+ mov r0, r9
20375
+ str r3, [sp, #4]
1990220376 bl __aeabi_uidiv
19903
- ldr r3, [sp]
20377
+ ldr r3, [sp, #4]
1990420378 uxtah r0, r3, r0
1990520379 add r3, r3, r0, asr #2
19906
- strh r3, [r7, #-8] @ movhi
19907
-.L3341:
19908
- movw r3, #2382
19909
- ldrh r3, [r5, r3]
20380
+ strh r3, [r8, #-8] @ movhi
20381
+.L3259:
20382
+ ldr r3, .L3276+28
20383
+ ldrh r3, [r3]
1991020384 cmp r3, #0
19911
- beq .L3343
19912
- ldrh r2, [r7, #-8]
20385
+ beq .L3261
20386
+ ldrh r2, [r8, #-8]
1991320387 add r2, r2, r3, lsr #1
19914
- strh r2, [r7, #-8] @ movhi
19915
- mul r2, r9, r3
19916
- cmp r2, r6
19917
- addgt r3, r3, #32
19918
- ldrgt r2, .L3361+4
19919
- addgt r3, r10, r3
19920
- strgt fp, [r2, #2448]
19921
- ldrgt r2, .L3361+24
19922
- strgth r3, [r2, #-8] @ movhi
19923
-.L3343:
19924
- ldrh r2, [r7, #-8]
19925
- ldr r3, [r5, #2448]
19926
- rsb r3, r2, r3
19927
- mul r9, r9, r3
19928
- movw r3, #2388
20388
+ strh r2, [r8, #-8] @ movhi
20389
+ mul r2, r7, r3
20390
+ cmp r9, r2
20391
+ addlt r3, r3, #32
20392
+ strlt fp, [r5, #2452]
20393
+ addlt r3, r10, r3
20394
+ strhlt r3, [r8, #-8] @ movhi
20395
+.L3261:
20396
+ ldrh r2, [r8, #-8]
20397
+ ldr r3, [r5, #2452]
20398
+ sub r3, r3, r2
20399
+ mul r7, r7, r3
20400
+ movw r3, #2390
1992920401 ldrh r3, [r5, r3]
19930
- str r9, [r4, #1788]
19931
- mul r9, r3, r9
19932
- movw r3, #2394
20402
+ str r7, [r4, #1796]
20403
+ mul r7, r7, r3
20404
+ movw r3, #2396
1993320405 ldrh r3, [r5, r3]
19934
- str r9, [r5, #2448]
19935
- mul r9, r3, r9
19936
- str r9, [r5, #2428]
20406
+ str r7, [r5, #2452]
20407
+ mul r7, r7, r3
20408
+ str r7, [r5, #2432]
1993720409 bl FtlBbmTblFlush
19938
- ldr r2, [r5, #2336]
19939
- movw r3, #2402
20410
+ movw r3, #2404
20411
+ ldr r2, [r5, #2340]
1994020412 ldrh r3, [r5, r3]
19941
- add r1, r6, r8
20413
+ add r1, r6, r9
1994220414 add r3, r3, r2, lsr #3
1994320415 cmp r1, r3
19944
- bls .L3345
19945
- ldr r0, .L3361+28
19946
- mov r2, r2, lsr #5
20416
+ bls .L3263
20417
+ lsr r2, r2, #5
20418
+ ldr r0, .L3276+32
1994720419 bl printk
19948
-.L3345:
19949
- movw r3, #2330
19950
- ldr r6, .L3361+32
20420
+.L3263:
20421
+ movw r3, #2334
20422
+ ldr r6, .L3276+36
1995120423 ldrh r2, [r5, r3]
1995220424 mov r1, #0
19953
- sub r8, r6, #244
19954
- ldr r0, [r4, #-3544]
19955
- mvn r9, #0
19956
- mov r2, r2, asl #1
19957
- mov fp, r8
20425
+ ldr r0, [r4, #-3540]
20426
+ mvn r7, #0
20427
+ sub r6, r6, #240
20428
+ lsl r2, r2, #1
1995820429 bl ftl_memset
1995920430 mov r3, #0
19960
- strh r3, [r6, #-2] @ movhi
20431
+ strh r7, [r6, #236] @ movhi
20432
+ strh r3, [r6, #238] @ movhi
1996120433 mov r1, #255
19962
- strh r3, [r6, #-244] @ movhi
19963
- str r3, [r4, #-3372]
20434
+ str r3, [r4, #-3368]
1996420435 strb r3, [r4, #-3278]
1996520436 strb r3, [r4, #-3276]
19966
- strh r3, [r8, #2] @ movhi
19967
- strb r3, [r4, #-3518]
19968
- mov r3, #1
19969
- strb r3, [r4, #-3516]
19970
- movw r3, #2328
19971
- ldrh r2, [r5, r3]
19972
- ldr r0, [r4, #-3368]
19973
- strh r9, [r6, #-4] @ movhi
19974
- add r6, r6, #3280
19975
- mov r2, r2, lsr #3
19976
- bl ftl_memset
19977
-.L3346:
19978
- ldr r10, .L3361+36
19979
- ldr r5, .L3361
19980
- mov r0, r10
19981
- bl make_superblock
19982
- ldrb r3, [r4, #-3517] @ zero_extendqisi2
19983
- cmp r3, #0
19984
- ldrh r3, [r8]
19985
- bne .L3347
19986
- ldr r2, [r6, #-3544]
19987
- mov r3, r3, asl #1
19988
- strh r9, [r2, r3] @ movhi
19989
- ldrh r3, [fp]
19990
- add r3, r3, #1
19991
- strh r3, [fp] @ movhi
19992
- b .L3346
19993
-.L3347:
19994
- ldr r2, [r5, #-3332]
19995
- mov r3, r3, asl #1
19996
- ldrh r1, [r10, #4]
19997
- mov r9, r5
19998
- str r2, [r5, #-3512]
19999
- add r2, r2, #1
20000
- str r2, [r5, #-3332]
20001
- ldr r2, [r5, #-3544]
20002
- strh r1, [r2, r3] @ movhi
20003
- sub r2, r5, #3472
20004
- sub r6, r2, #4
20005
- mov r3, #0
20006
- strb r3, [r5, #-3470]
2000720437 strh r3, [r6, #2] @ movhi
20008
- ldrh r3, [r10]
20009
- mvn r10, #0
20010
- add r3, r3, #1
20011
- strh r3, [r2, #-4] @ movhi
20012
- mov r3, #1
20013
- strb r3, [r5, #-3468]
20014
-.L3348:
20015
- ldr r8, .L3361+40
20016
- ldr r5, .L3361
20017
- mov r0, r8
20018
- bl make_superblock
20019
- ldrb r3, [r4, #-3469] @ zero_extendqisi2
20020
- cmp r3, #0
20021
- ldrh r3, [r6]
20022
- bne .L3349
20023
- ldr r2, [r9, #-3544]
20024
- mov r3, r3, asl #1
20025
- strh r10, [r2, r3] @ movhi
20026
- ldrh r3, [r6]
20027
- add r3, r3, #1
20438
+ strb r3, [r4, #-3514]
2002820439 strh r3, [r6] @ movhi
20029
- b .L3348
20030
-.L3349:
20031
- ldr r2, [r5, #-3332]
20032
- mov r3, r3, asl #1
20033
- ldrh r1, [r8, #4]
20034
- mvn r4, #0
20035
- str r2, [r5, #-3464]
20036
- add r2, r2, #1
20037
- str r2, [r5, #-3332]
20038
- ldr r2, [r5, #-3544]
20039
- strh r1, [r2, r3] @ movhi
20040
- sub r3, r5, #3424
20041
- strh r4, [r3, #-4] @ movhi
20042
- bl FtlFreeSysBlkQueueOut
20043
- ldr r3, .L3361+44
20044
- mov r2, #0
20045
- strh r2, [r3, #2] @ movhi
20046
- ldr r2, [r5, #1788]
20047
- strh r4, [r3, #4] @ movhi
20048
- strh r2, [r3, #6] @ movhi
20049
- ldr r3, [r5, #-3332]
20050
- str r3, [r5, #-3292]
20440
+ mov r3, #1
20441
+ strb r3, [r4, #-3512]
20442
+ movw r3, #2332
20443
+ ldrh r2, [r5, r3]
20444
+ ldr r0, [r5, #32]
20445
+ mov r5, r6
20446
+ lsr r2, r2, #3
20447
+ bl ftl_memset
20448
+.L3264:
20449
+ mov r0, r6
20450
+ bl make_superblock
20451
+ ldrb r3, [r4, #-3513] @ zero_extendqisi2
20452
+ cmp r3, #0
20453
+ ldrh r3, [r5]
20454
+ bne .L3265
20455
+ ldr r2, [r4, #-3540]
20456
+ lsl r3, r3, #1
20457
+ strh r7, [r2, r3] @ movhi
20458
+ ldrh r3, [r5]
2005120459 add r3, r3, #1
20052
- str r3, [r5, #-3332]
20053
- strh r0, [r7, #-4] @ movhi
20460
+ strh r3, [r5] @ movhi
20461
+ b .L3264
20462
+.L3249:
20463
+ ldr lr, [r4, #-508]
20464
+ mvn r1, r3
20465
+ orr r1, r3, r1, lsl #16
20466
+ str r1, [lr, r3, lsl #2]
20467
+ ldr r1, [r4, #-504]
20468
+ str ip, [r1, r3, lsl #2]
20469
+ b .L3248
20470
+.L3251:
20471
+ mov r0, r7
20472
+ mov r1, #1
20473
+ bl FtlLowFormatEraseBlock
20474
+ add r7, r7, #1
20475
+ add r6, r6, r0
20476
+ uxth r6, r6
20477
+ uxth r7, r7
20478
+ b .L3250
20479
+.L3254:
20480
+ mov r0, r7
20481
+ mov r1, #1
20482
+ bl FtlLowFormatEraseBlock
20483
+ add r7, r7, #1
20484
+ add r6, r6, r0
20485
+ uxth r6, r6
20486
+ uxth r7, r7
20487
+ b .L3253
20488
+.L3256:
20489
+ mov r1, #0
20490
+ bl FtlLowFormatEraseBlock
20491
+ add r9, r9, r0
20492
+ uxth r9, r9
20493
+ b .L3255
20494
+.L3265:
20495
+ ldr r2, [r4, #-3332]
20496
+ lsl r3, r3, #1
20497
+ ldrh r1, [r5, #4]
20498
+ mvn r6, #0
20499
+ str r2, [r4, #-3508]
20500
+ add r2, r2, #1
20501
+ str r2, [r4, #-3332]
20502
+ ldr r2, [r4, #-3540]
20503
+ strh r1, [r2, r3] @ movhi
20504
+ mov r2, #0
20505
+ ldr r3, .L3276+40
20506
+ strb r2, [r4, #-3466]
20507
+ strh r2, [r3, #2] @ movhi
20508
+ mov r7, r3
20509
+ ldrh r2, [r5]
20510
+ mov r5, r3
20511
+ add r2, r2, #1
20512
+ strh r2, [r3] @ movhi
20513
+ mov r2, #1
20514
+ strb r2, [r4, #-3464]
20515
+.L3266:
20516
+ mov r0, r7
20517
+ bl make_superblock
20518
+ ldrb r3, [r4, #-3465] @ zero_extendqisi2
20519
+ cmp r3, #0
20520
+ ldrh r3, [r5]
20521
+ bne .L3267
20522
+ ldr r2, [r4, #-3540]
20523
+ lsl r3, r3, #1
20524
+ strh r6, [r2, r3] @ movhi
20525
+ ldrh r3, [r5]
20526
+ add r3, r3, #1
20527
+ strh r3, [r5] @ movhi
20528
+ b .L3266
20529
+.L3267:
20530
+ ldr r2, [r4, #-3332]
20531
+ lsl r3, r3, #1
20532
+ ldrh r1, [r5, #4]
20533
+ mvn r5, #0
20534
+ str r2, [r4, #-3460]
20535
+ add r2, r2, #1
20536
+ str r2, [r4, #-3332]
20537
+ ldr r2, [r4, #-3540]
20538
+ strh r1, [r2, r3] @ movhi
20539
+ ldr r3, .L3276+44
20540
+ strh r5, [r3] @ movhi
20541
+ bl FtlFreeSysBlkQueueOut
20542
+ sub r3, r8, #4
20543
+ mov r2, #0
20544
+ strh r5, [r3, #4] @ movhi
20545
+ ldr r3, [r4, #-3332]
20546
+ strh r2, [r8, #-2] @ movhi
20547
+ ldr r2, [r4, #1796]
20548
+ str r3, [r4, #-3292]
20549
+ add r3, r3, #1
20550
+ str r3, [r4, #-3332]
20551
+ strh r2, [r8, #2] @ movhi
20552
+ strh r0, [r8, #-4] @ movhi
2005420553 bl FtlVpcTblFlush
2005520554 bl FtlSysBlkInit
2005620555 cmp r0, #0
20057
- ldreq r3, .L3361+48
20556
+ ldreq r3, .L3276+48
2005820557 moveq r2, #1
20059
- streq r2, [r3, #504]
20060
-.L3328:
20558
+ streq r2, [r3, #500]
20559
+.L3246:
2006120560 mov r0, #0
2006220561 add sp, sp, #12
2006320562 @ sp needed
20064
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
20065
-.L3362:
20563
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
20564
+.L3277:
2006620565 .align 2
20067
-.L3361:
20566
+.L3276:
2006820567 .word .LANCHOR2
2006920568 .word .LANCHOR0
20070
- .word .LANCHOR0+2394
20569
+ .word .LANCHOR0+2396
2007120570 .word 168778952
20072
- .word .LANCHOR0+2330
20073
- .word .LANCHOR0+2328
20571
+ .word .LANCHOR0+2334
20572
+ .word .LANCHOR0+2332
2007420573 .word .LANCHOR2-3296
20574
+ .word .LANCHOR0+2384
2007520575 .word .LC156
2007620576 .word .LANCHOR2-3280
20077
- .word .LANCHOR2-3524
20078
- .word .LANCHOR2-3476
20079
- .word .LANCHOR2-3300
20577
+ .word .LANCHOR2-3472
20578
+ .word .LANCHOR2-3424
2008020579 .word .LANCHOR1
2008120580 .fnend
2008220581 .size FtlLowFormat, .-FtlLowFormat
2008320582 .align 2
2008420583 .global FtlReInitForSDUpdata
20584
+ .syntax unified
20585
+ .arm
20586
+ .fpu softvfp
2008520587 .type FtlReInitForSDUpdata, %function
2008620588 FtlReInitForSDUpdata:
2008720589 .fnstart
2008820590 @ args = 0, pretend = 0, frame = 16
2008920591 @ frame_needed = 0, uses_anonymous_args = 0
20090
- stmfd sp!, {r4, r5, lr}
20091
- .save {r4, r5, lr}
20092
- .pad #20
20093
- sub sp, sp, #20
20094
- ldr r4, .L3392
20095
- ldrb r3, [r4, #144] @ zero_extendqisi2
20592
+ push {r0, r1, r2, r3, r4, r5, r6, lr}
20593
+ .save {r4, r5, r6, lr}
20594
+ .pad #16
20595
+ ldr r4, .L3314
20596
+ ldrb r3, [r4, #152] @ zero_extendqisi2
2009620597 cmp r3, #0
20097
- beq .L3364
20098
-.L3366:
20099
- mov r0, #0
20100
- b .L3365
20101
-.L3364:
20102
- ldr r5, .L3392+4
20598
+ beq .L3279
20599
+.L3281:
20600
+ mov r6, #0
20601
+.L3278:
20602
+ mov r0, r6
20603
+ add sp, sp, #16
20604
+ @ sp needed
20605
+ pop {r4, r5, r6, pc}
20606
+.L3279:
20607
+ ldr r5, .L3314+4
2010320608 ldr r0, [r5, #1684]
2010420609 bl FlashInit
20105
- cmp r0, #0
20106
- bne .L3366
20610
+ subs r6, r0, #0
20611
+ bne .L3281
2010720612 bl FlashLoadFactorBbt
2010820613 cmp r0, #0
20109
- beq .L3367
20614
+ beq .L3282
2011020615 bl FlashMakeFactorBbt
20111
-.L3367:
20112
- ldr r0, [r5, #1716]
20616
+.L3282:
20617
+ ldr r0, [r5, #1724]
2011320618 bl FlashReadIdbDataRaw
2011420619 cmp r0, #0
20115
- beq .L3368
20116
- mov r1, #0
20620
+ beq .L3283
2011720621 mov r2, #16
20622
+ mov r1, #0
2011820623 mov r0, sp
2011920624 bl FlashReadFacBbtData
20625
+ ldr r1, [sp]
2012020626 mov r3, #0
2012120627 mov r2, r3
20122
- mov ip, #1
20123
- ldr r1, [sp]
20124
-.L3369:
20125
- ands lr, r1, ip, asl r2
20126
- add r0, r3, #1
20628
+ mov r0, #1
20629
+.L3285:
20630
+ ands ip, r1, r0, lsl r2
2012720631 add r2, r2, #1
20128
- movne r3, r0
20632
+ addne r3, r3, #1
2012920633 cmp r2, #16
20130
- bne .L3369
20634
+ bne .L3285
2013120635 cmp r3, #6
20132
- bls .L3388
20636
+ bhi .L3286
20637
+.L3311:
20638
+ strb r2, [r4, #37]
20639
+ b .L3287
20640
+.L3286:
2013320641 mov r2, #0
20134
- mov ip, #1
20135
-.L3372:
20136
- ands lr, r1, ip, asl r2
20137
- add r0, r3, #1
20642
+ mov r0, #1
20643
+.L3289:
20644
+ ands ip, r1, r0, lsl r2
2013820645 add r2, r2, #1
20139
- movne r3, r0
20646
+ addne r3, r3, #1
2014020647 cmp r2, #24
20141
- bne .L3372
20648
+ bne .L3289
2014220649 cmp r3, #17
2014320650 movhi r3, #36
20144
- strhib r3, [r4, #1]
20145
- bhi .L3371
20146
-.L3388:
20147
- strb r2, [r4, #1]
20148
-.L3371:
20149
- ldrb r3, [r4, #1] @ zero_extendqisi2
20150
- strh r3, [r4, #142] @ movhi
20151
-.L3368:
20152
- ldr r1, .L3392+8
20153
- ldr r0, .L3392+12
20651
+ strbhi r3, [r4, #37]
20652
+ bls .L3311
20653
+.L3287:
20654
+ ldrb r3, [r4, #37] @ zero_extendqisi2
20655
+ strh r3, [r4, #150] @ movhi
20656
+.L3283:
20657
+ ldr r1, .L3314+8
20658
+ ldr r0, .L3314+12
2015420659 bl printk
20155
- ldr r0, .L3392+16
20660
+ ldr r0, .L3314+16
2015620661 bl FtlConstantsInit
2015720662 bl FtlVariablesInit
20158
- ldr r0, [r4, #2324]
20663
+ ldr r0, [r4, #2328]
2015920664 mov r4, #1
2016020665 uxth r0, r0
2016120666 bl FtlFreeSysBlkQueueInit
20162
-.L3374:
20667
+.L3291:
2016320668 bl FtlLoadBbt
2016420669 cmp r0, #0
20165
- beq .L3375
20166
-.L3390:
20670
+ beq .L3292
20671
+.L3313:
2016720672 bl FtlLowFormat
2016820673 cmp r4, #3
20169
- addls r4, r4, #1
20170
- bls .L3374
20171
-.L3391:
20172
- mvn r0, #0
20173
- b .L3365
20174
-.L3375:
20674
+ mvnhi r6, #0
20675
+ bhi .L3278
20676
+.L3293:
20677
+ add r4, r4, #1
20678
+ b .L3291
20679
+.L3292:
2017520680 bl FtlSysBlkInit
2017620681 cmp r0, #0
20177
- bne .L3390
20178
- ldr r3, .L3392+20
20682
+ bne .L3313
20683
+ ldr r3, .L3314+20
2017920684 mov r2, #1
20180
- str r2, [r3, #504]
20181
-.L3365:
20182
- add sp, sp, #20
20183
- @ sp needed
20184
- ldmfd sp!, {r4, r5, pc}
20185
-.L3393:
20685
+ str r2, [r3, #500]
20686
+ b .L3278
20687
+.L3315:
2018620688 .align 2
20187
-.L3392:
20689
+.L3314:
2018820690 .word .LANCHOR0
2018920691 .word .LANCHOR2
20190
- .word .LC77
2019120692 .word .LC76
20192
- .word .LANCHOR0+116
20693
+ .word .LC77
20694
+ .word .LANCHOR0+124
2019320695 .word .LANCHOR1
2019420696 .fnend
2019520697 .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata
2019620698 .align 2
2019720699 .global Ftl_gc_temp_data_write_back
20700
+ .syntax unified
20701
+ .arm
20702
+ .fpu softvfp
2019820703 .type Ftl_gc_temp_data_write_back, %function
2019920704 Ftl_gc_temp_data_write_back:
2020020705 .fnstart
2020120706 @ args = 0, pretend = 0, frame = 0
2020220707 @ frame_needed = 0, uses_anonymous_args = 0
20203
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
20204
- .save {r4, r5, r6, r7, r8, lr}
20205
- ldr r5, .L3411
20206
- ldr r3, [r5, #-3616]
20708
+ push {r4, r5, r6, lr}
20709
+ .save {r4, r5, r6, lr}
20710
+ ldr r4, .L3332
20711
+ ldr r3, [r4, #-3612]
2020720712 cmp r3, #0
20208
- beq .L3395
20209
-.L3398:
20713
+ beq .L3317
20714
+.L3320:
2021020715 mov r0, #0
20211
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
20212
-.L3395:
20213
- ldr r3, .L3411+4
20214
- ldrb r3, [r3, #144] @ zero_extendqisi2
20716
+ pop {r4, r5, r6, pc}
20717
+.L3317:
20718
+ ldr r3, .L3332+4
20719
+ ldrb r3, [r3, #152] @ zero_extendqisi2
2021520720 cmp r3, #0
20216
- beq .L3397
20217
- ldr r3, [r5, #-2704]
20721
+ beq .L3319
20722
+ ldr r3, [r4, #-2704]
2021820723 tst r3, #1
20219
- beq .L3397
20220
- ldr r3, .L3411+8
20724
+ beq .L3319
20725
+ sub r3, r4, #3424
2022120726 ldrh r3, [r3, #4]
2022220727 cmp r3, #0
20223
- bne .L3398
20224
-.L3397:
20225
- mov r2, #0
20226
- ldr r0, [r5, #-532]
20227
- ldr r1, [r5, #-2704]
20228
- mov r3, r2
20728
+ bne .L3320
20729
+.L3319:
20730
+ mov r3, #0
20731
+ mov r5, #0
20732
+ mov r6, #36
20733
+ mov r2, r3
20734
+ ldr r1, [r4, #-2704]
20735
+ ldr r0, [r4, #-532]
2022920736 bl FlashProgPages
20230
- ldr r7, .L3411
20231
- mov r6, #0
20232
- mov r8, #36
20233
-.L3399:
20234
- ldr r1, [r5, #-2704]
20235
- uxth r3, r6
20236
- ldr r4, .L3411
20737
+.L3321:
20738
+ ldr r1, [r4, #-2704]
20739
+ uxth r3, r5
2023720740 cmp r3, r1
20238
- bcs .L3410
20239
- mul r3, r8, r3
20240
- ldr r0, [r7, #-532]
20241
- add r6, r6, #1
20242
- add r1, r0, r3
20243
- ldr r0, [r0, r3]
20244
- ldr r2, [r1, #12]
20245
- cmn r0, #1
20246
- bne .L3400
20247
- sub r1, r4, #3424
20248
- ldr ip, [r4, #-3544]
20741
+ bcc .L3323
20742
+ ldr r0, [r4, #-532]
20743
+ bl FtlGcBufFree
20744
+ mov r3, #0
20745
+ str r3, [r4, #-2704]
20746
+ ldr r3, .L3332+8
20747
+ ldrh r3, [r3, #4]
20748
+ cmp r3, #0
20749
+ bne .L3320
20750
+ mov r0, #1
20751
+ bl FtlGcFreeTempBlock
20752
+ b .L3331
20753
+.L3323:
20754
+ mul r3, r6, r3
20755
+ ldr r2, [r4, #-532]
20756
+ add r5, r5, #1
20757
+ ldr ip, [r2, r3]
20758
+ add r1, r2, r3
20759
+ ldr r0, [r1, #12]
20760
+ cmn ip, #1
20761
+ bne .L3322
20762
+ ldr r1, .L3332+8
2024920763 mov lr, #0
20250
- ldrh r2, [r1, #-4]
20251
- mov r2, r2, asl #1
20252
- strh lr, [ip, r2] @ movhi
20253
- ldr r2, [r4, #-3136]
20254
- strh r0, [r1, #-4] @ movhi
20764
+ ldr r0, [r4, #-3540]
20765
+ ldrh r2, [r1]
20766
+ lsl r2, r2, #1
20767
+ strh lr, [r0, r2] @ movhi
20768
+ ldr r2, [r4, #-3140]
20769
+ strh ip, [r1] @ movhi
2025520770 add r2, r2, #1
20256
- str r2, [r4, #-3136]
20771
+ str r2, [r4, #-3140]
2025720772 ldr r2, [r4, #-532]
2025820773 add r3, r2, r3
2025920774 ldr r0, [r3, #4]
....@@ -20261,61 +20776,52 @@
2026120776 bl FtlBbmMapBadBlock
2026220777 bl FtlBbmTblFlush
2026320778 bl FtlGcPageVarInit
20264
- b .L3409
20265
-.L3400:
20266
- ldr r0, [r2, #12]
20779
+.L3331:
20780
+ mov r0, #1
20781
+ pop {r4, r5, r6, pc}
20782
+.L3322:
20783
+ ldr r2, [r0, #8]
2026720784 ldr r1, [r1, #4]
20268
- ldr r2, [r2, #8]
20785
+ ldr r0, [r0, #12]
2026920786 bl FtlGcUpdatePage
20270
- b .L3399
20271
-.L3410:
20272
- ldr r0, [r4, #-532]
20273
- bl FtlGcBufFree
20274
- mov r3, #0
20275
- str r3, [r4, #-2704]
20276
- ldr r3, .L3411+8
20277
- ldrh r3, [r3, #4]
20278
- cmp r3, #0
20279
- bne .L3398
20280
- mov r0, #1
20281
- bl FtlGcFreeTempBlock
20282
-.L3409:
20283
- mov r0, #1
20284
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
20285
-.L3412:
20787
+ b .L3321
20788
+.L3333:
2028620789 .align 2
20287
-.L3411:
20790
+.L3332:
2028820791 .word .LANCHOR2
2028920792 .word .LANCHOR0
20290
- .word .LANCHOR2-3428
20793
+ .word .LANCHOR2-3424
2029120794 .fnend
2029220795 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
2029320796 .align 2
2029420797 .global Ftl_get_new_temp_ppa
20798
+ .syntax unified
20799
+ .arm
20800
+ .fpu softvfp
2029520801 .type Ftl_get_new_temp_ppa, %function
2029620802 Ftl_get_new_temp_ppa:
2029720803 .fnstart
2029820804 @ args = 0, pretend = 0, frame = 0
2029920805 @ frame_needed = 0, uses_anonymous_args = 0
20300
- stmfd sp!, {r3, r4, r5, lr}
20301
- .save {r3, r4, r5, lr}
20302
- ldr r3, .L3417
20303
- sub r2, r3, #4
20304
- ldrh r1, [r3, #-4]
20305
- movw r3, #65535
20306
- cmp r1, r3
20307
- beq .L3414
20308
- ldrh r3, [r2, #4]
20806
+ ldr r3, .L3341
20807
+ movw r2, #65535
20808
+ ldrh r1, [r3]
20809
+ cmp r1, r2
20810
+ beq .L3335
20811
+ ldrh r3, [r3, #4]
2030920812 cmp r3, #0
20310
- bne .L3415
20311
-.L3414:
20312
- ldr r4, .L3417+4
20813
+ ldrne r0, .L3341
20814
+ bne .L3340
20815
+.L3335:
20816
+ push {r4, r5, r6, lr}
20817
+ .save {r4, r5, r6, lr}
20818
+ mov r5, #0
20819
+ ldr r4, .L3341+4
2031320820 bl FtlCacheWriteBack
2031420821 mov r0, #0
20315
- mov r5, #0
2031620822 bl FtlGcFreeTempBlock
20317
- ldr r0, .L3417+8
20318
- strb r5, [r4, #-3420]
20823
+ sub r0, r4, #3424
20824
+ strb r5, [r4, #-3416]
2031920825 bl allocate_data_superblock
2032020826 sub r3, r4, #2672
2032120827 sub r4, r4, #2656
....@@ -20325,712 +20831,833 @@
2032520831 mov r0, r5
2032620832 bl FtlEctTblFlush
2032720833 bl FtlVpcTblFlush
20328
-.L3415:
20329
- ldr r0, .L3417+8
20330
- ldmfd sp!, {r3, r4, r5, lr}
20834
+ pop {r4, r5, r6, lr}
20835
+ ldr r0, .L3341
20836
+.L3340:
2033120837 b get_new_active_ppa
20332
-.L3418:
20838
+.L3342:
2033320839 .align 2
20334
-.L3417:
20840
+.L3341:
2033520841 .word .LANCHOR2-3424
2033620842 .word .LANCHOR2
20337
- .word .LANCHOR2-3428
2033820843 .fnend
2033920844 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
2034020845 .align 2
2034120846 .global ftl_do_gc
20847
+ .syntax unified
20848
+ .arm
20849
+ .fpu softvfp
2034220850 .type ftl_do_gc, %function
2034320851 ftl_do_gc:
2034420852 .fnstart
2034520853 @ args = 0, pretend = 0, frame = 32
2034620854 @ frame_needed = 0, uses_anonymous_args = 0
20347
- ldr r3, .L3583
20348
- ldr ip, [r3, #-3616]
20349
- cmp ip, #0
20350
- bne .L3513
20351
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
20855
+ ldr r3, .L3507
20856
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2035220857 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
20858
+ mov lr, r0
2035320859 .pad #44
2035420860 sub sp, sp, #44
20355
- ldr r4, .L3583+4
20356
- ldr r8, [r4, #504]
20357
- cmp r8, #1
20358
- bne .L3515
20861
+ ldr r0, [r3, #-3612]
20862
+ cmp r0, #0
20863
+ bne .L3439
20864
+ ldr ip, .L3507+4
20865
+ ldr r5, [ip, #500]
20866
+ cmp r5, #1
20867
+ bne .L3343
2035920868 ldr r2, [r3, #-560]
2036020869 cmp r2, #0
20361
- bne .L3515
20362
- mov r9, r0
20363
- sub r0, r3, #3536
20364
- ldrh r0, [r0]
20870
+ bne .L3343
20871
+ sub r8, r3, #3520
20872
+ ldrh r0, [r8, #-12]
2036520873 cmp r0, #47
20366
- movls r0, r2
20367
- bls .L3572
20368
- movw r2, #3448
20369
- str r1, [sp, #12]
20370
- ldrh r1, [r4, r2]
20874
+ bls .L3439
20875
+ movw r2, #3444
20876
+ mov r7, r1
20877
+ ldrh r1, [ip, r2]
2037120878 movw r2, #65535
20372
- mov r5, r3
20373
- str r9, [sp, #16]
20879
+ mov r4, r3
20880
+ str lr, [sp, #16]
2037420881 cmp r1, r2
20375
- bne .L3421
20376
-.L3424:
20377
- ldr r4, .L3583+8
20882
+ bne .L3345
20883
+.L3348:
20884
+ ldr r6, .L3507+8
2037820885 movw r2, #65535
20379
- ldrh r0, [r4, #-8]
20886
+ ldrh r0, [r6, #-8]
2038020887 cmp r0, r2
20381
- bne .L3422
20382
- b .L3423
20383
-.L3421:
20384
- sub r3, r3, #3424
20385
- ldrh r3, [r3, #-4]
20386
- cmp r3, r2
20387
- beq .L3424
20388
- mov r0, r8
20389
- bl FtlGcFreeTempBlock
20390
- cmp r0, #0
20391
- beq .L3424
20392
- mov r0, r8
20393
- b .L3572
20394
-.L3422:
20395
- ldrh r3, [r4, #-10]
20396
- cmp r3, r2
20397
- bne .L3423
20398
- ldrh r1, [r4, #-6]
20399
- cmp r1, r3
20400
- beq .L3423
20401
- ldrh r2, [r4, #-4]
20402
- cmp r2, r3
20403
- strneh r0, [r4, #-10] @ movhi
20404
- strneh r1, [r4, #-8] @ movhi
20405
- mvnne r3, #0
20406
- strneh r2, [r4, #-6] @ movhi
20407
- strneh r3, [r4, #-4] @ movhi
20408
-.L3423:
20409
- ldr r3, [sp, #16]
20410
- ldr r8, [r5, #-2716]
20411
- ldr r6, .L3583+12
20412
- cmp r3, #1
20413
- add r8, r8, #1
20414
- add r8, r8, r3, asl #7
20415
- sub r7, r6, #240
20416
- str r8, [r5, #-2716]
20417
- bne .L3435
20418
- ldr r9, .L3583+16
20419
- ldr r3, [r9, #2244]
20420
- cmp r3, #0
20421
- bne .L3426
20422
- ldrb r3, [r9, #144] @ zero_extendqisi2
20423
- cmp r3, #0
20424
- beq .L3435
20425
-.L3426:
20426
- ldr r3, [r5, #-3308]
20427
- ldr fp, .L3583
20428
- cmp r3, #39
20429
- bhi .L3435
20430
- ldr r10, .L3583+20
20431
- ldrh r3, [r10]
20432
- add r8, r8, r3
20433
- str r8, [fp, #-2716]
20434
- bl FtlGcReFreshBadBlk
20435
- ldrh r8, [r6, #-4]
20436
- movw r3, #65535
20437
- cmp r8, r3
20438
- bne .L3435
20439
- ldrh r3, [r4, #-10]
20440
- cmp r3, r8
20441
- bne .L3435
20442
- ldr r3, [fp, #-2716]
20443
- cmp r3, #1024
20444
- bhi .L3427
20445
- ldrh r3, [r7, #-8]
20446
- cmp r3, #63
20447
- bhi .L3435
20448
-.L3427:
20449
- ldr r1, .L3583
20450
- mov r3, #0
20451
- strh r3, [r10] @ movhi
20452
- sub r8, r1, #2704
20453
- ldrh r0, [r7, #-8]
20454
- ldr r2, .L3583+20
20455
- ldrh r10, [r8, #-14]
20456
- add ip, r10, #64
20457
- cmp r0, ip
20458
- bgt .L3435
20459
- str r3, [r1, #-2716]
20460
- ldr r3, [r1, #-3308]
20461
- cmp r3, #0
20462
- moveq r3, #6
20463
- beq .L3574
20464
- cmp r3, #5
20465
- bhi .L3429
20466
- mov r3, #18
20467
-.L3574:
20468
- strh r3, [r2] @ movhi
20469
-.L3429:
20470
- mov r0, #32
20471
- bl List_get_gc_head_node
20472
- movw ip, #65535
20473
- uxth r3, r0
20474
- cmp r3, ip
20475
- beq .L3434
20476
- ldrh r0, [r8, #-8]
20477
- ldr r2, .L3583
20478
- cmp r0, #0
20479
- sub r10, r2, #2704
20480
- beq .L3431
20481
- mov r8, r3, asl #1
20482
- movw r3, #2390
20483
- ldrh lr, [r9, r3]
20484
- ldr r3, .L3583+24
20485
- ldr r2, [r2, #-3544]
20486
- ldrh r3, [r3]
20487
- ldrh r1, [r2, r8]
20488
- mul r3, r3, lr
20888
+ bne .L3346
20889
+.L3347:
20890
+ ldr r3, [r4, #-2716]
20891
+ ldr r2, [sp, #16]
2048920892 add r3, r3, #1
20893
+ cmp r2, #1
20894
+ add r3, r3, r2, lsl #7
20895
+ str r3, [r4, #-2716]
20896
+ bne .L3349
20897
+ ldr r9, .L3507+12
20898
+ ldr r2, [r9, #2248]
20899
+ cmp r2, #0
20900
+ bne .L3350
20901
+ ldrb r2, [r9, #152] @ zero_extendqisi2
20902
+ cmp r2, #0
20903
+ beq .L3349
20904
+.L3350:
20905
+ ldr r2, [r4, #-3308]
20906
+ cmp r2, #39
20907
+ bhi .L3349
20908
+ ldr r10, .L3507+16
20909
+ movw r5, #65535
20910
+ ldrh r2, [r10]
20911
+ add r3, r2, r3
20912
+ str r3, [r4, #-2716]
20913
+ bl FtlGcReFreshBadBlk
20914
+ ldr r3, .L3507+20
20915
+ mov r2, r10
20916
+ ldrh r3, [r3, #-4]
20917
+ cmp r3, r5
20918
+ bne .L3351
20919
+ ldrh r1, [r6, #-10]
2049020920 cmp r1, r3
20491
- bgt .L3434
20492
- add r1, r0, #1
20493
- str ip, [sp, #28]
20494
- str r2, [sp, #24]
20495
- mov r9, #0
20496
- uxth r1, r1
20497
- str r9, [r10, #-4]
20498
- strh r1, [r10, #-8] @ movhi
20499
- str r1, [sp, #20]
20921
+ bne .L3438
20922
+ ldr r3, [r4, #-2716]
20923
+ cmp r3, #1024
20924
+ bhi .L3353
20925
+ ldrh r3, [r8, #-4]
20926
+ cmp r3, #63
20927
+ bhi .L3438
20928
+.L3353:
20929
+ ldr r6, .L3507+24
20930
+ mov r1, #0
20931
+ ldrh r0, [r8, #-4]
20932
+ strh r1, [r2] @ movhi
20933
+ ldrh r3, [r6, #-14]
20934
+ add r3, r3, #64
20935
+ cmp r0, r3
20936
+ bgt .L3438
20937
+ ldr r3, [r4, #-3308]
20938
+ str r1, [r4, #-2716]
20939
+ cmp r3, r1
20940
+ moveq r3, #6
20941
+ beq .L3499
20942
+ cmp r3, #5
20943
+ bhi .L3355
20944
+ mov r3, #18
20945
+.L3499:
20946
+ strh r3, [r2] @ movhi
20947
+.L3355:
20948
+ mov r0, #32
20949
+ movw r10, #65535
2050020950 bl List_get_gc_head_node
20501
- ldr ip, [sp, #28]
20502
- uxth fp, r0
20503
- ldr r1, [sp, #20]
20504
- cmp fp, ip
20505
- ldr r2, [sp, #24]
20506
- beq .L3434
20507
- mov ip, fp, asl #1
20508
- ldr r0, .L3583+28
20509
- str ip, [sp, #20]
20510
- ldrh r3, [r2, ip]
20511
- ldrh r2, [r2, r8]
20512
- str r2, [sp]
20513
- mov r2, fp
20951
+ uxth r3, r0
20952
+ cmp r3, r10
20953
+ beq .L3359
20954
+ ldrh ip, [r6, #-8]
20955
+ cmp ip, #0
20956
+ beq .L3357
20957
+ movw r2, #2392
20958
+ uxth r0, r0
20959
+ ldrh lr, [r9, r2]
20960
+ movw r2, #2324
20961
+ ldrh r2, [r9, r2]
20962
+ lsl r1, r0, #1
20963
+ ldr r3, [r4, #-3540]
20964
+ str r1, [sp, #12]
20965
+ mul r2, r2, lr
20966
+ ldrh r0, [r3, r1]
20967
+ str r3, [sp, #8]
20968
+ add r2, r2, #1
20969
+ cmp r0, r2
20970
+ bgt .L3359
20971
+ add fp, ip, #1
20972
+ mov r9, #0
20973
+ uxth fp, fp
20974
+ mov r0, ip
20975
+ str r9, [r4, #-2708]
20976
+ strh fp, [r6, #-8] @ movhi
20977
+ bl List_get_gc_head_node
20978
+ uxth r5, r0
20979
+ ldr r3, [sp, #8]
20980
+ ldr r1, [sp, #12]
20981
+ cmp r5, r10
20982
+ beq .L3359
20983
+ lsl r10, r5, #1
20984
+ mov r2, r5
20985
+ ldrh r0, [r3, r10]
20986
+ ldrh r3, [r3, r1]
20987
+ mov r1, fp
20988
+ str r3, [sp]
20989
+ mov r3, r0
20990
+ ldr r0, .L3507+28
2051420991 bl printk
20515
- ldrh r3, [r10, #-8]
20992
+ ldrh r3, [r6, #-8]
2051620993 cmp r3, #40
20517
- ldr ip, [sp, #20]
20518
- bls .L3432
20519
- ldr r3, [r10, #-840]
20520
- ldrh r3, [r3, ip]
20994
+ bls .L3358
20995
+ ldr r3, [r4, #-3540]
20996
+ ldrh r3, [r3, r10]
2052120997 cmp r3, #32
20522
- strhih r9, [r10, #-8] @ movhi
20523
-.L3432:
20524
- ldr r3, .L3583+20
20998
+ strhhi r9, [r6, #-8] @ movhi
20999
+.L3358:
21000
+ ldr r3, .L3507+16
2052521001 mov r2, #6
2052621002 strh r2, [r3] @ movhi
20527
- b .L3436
20528
-.L3431:
21003
+.L3351:
21004
+ movw r0, #65535
21005
+ ldr r3, [sp, #16]
21006
+ sub r2, r5, r0
21007
+ clz r2, r2
21008
+ lsr r2, r2, #5
21009
+ cmp r3, #0
21010
+ movne r1, #0
21011
+ andeq r1, r2, #1
21012
+ cmp r1, #0
21013
+ beq .L3373
21014
+ ldrh r3, [r8, #-4]
21015
+ cmp r3, #24
21016
+ movhi r6, #1
21017
+ bhi .L3374
21018
+ ldr r1, .L3507+12
21019
+ movw r2, #2390
21020
+ cmp r3, #16
21021
+ ldrh r6, [r1, r2]
21022
+ lsrhi r6, r6, #5
21023
+ bhi .L3374
21024
+ cmp r3, #12
21025
+ lsrhi r6, r6, #4
21026
+ bhi .L3374
21027
+ cmp r3, #8
21028
+ lsrhi r6, r6, #2
21029
+.L3374:
21030
+ ldr r1, .L3507+32
21031
+ ldrh r2, [r1]
21032
+ cmp r2, r3
21033
+ mov r2, r1
21034
+ bcs .L3378
21035
+ sub r3, r1, #704
21036
+ movw r0, #65535
21037
+ ldrh r3, [r3]
21038
+ cmp r3, r0
21039
+ bne .L3379
21040
+ ldrh r0, [r1, #54]
21041
+ cmp r0, r3
21042
+ bne .L3379
21043
+ ldr r3, .L3507+16
21044
+ ldrh r0, [r3]
21045
+ cmp r0, #0
21046
+ bne .L3380
21047
+ ldr r3, .L3507+12
21048
+ ldr ip, [r4, #-3368]
21049
+ ldr r3, [r3, #2452]
21050
+ add r3, r3, r3, lsl #1
21051
+ cmp ip, r3, lsr #2
21052
+ movcs r3, #18
21053
+ strhcs r3, [r1] @ movhi
21054
+ bcs .L3382
21055
+.L3380:
21056
+ ldr r3, .L3507+36
21057
+ ldrh r3, [r3, #-8]
21058
+ add r3, r3, r3, lsl #1
21059
+ asr r3, r3, #2
21060
+ strh r3, [r2] @ movhi
21061
+.L3382:
21062
+ mov r3, #0
21063
+ str r3, [r4, #-2708]
21064
+.L3343:
21065
+ add sp, sp, #44
21066
+ @ sp needed
21067
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
21068
+.L3345:
21069
+ sub r3, r3, #3424
21070
+ ldrh r3, [r3]
21071
+ cmp r3, r2
21072
+ beq .L3348
21073
+ mov r0, r5
21074
+ bl FtlGcFreeTempBlock
21075
+ cmp r0, #0
21076
+ beq .L3348
21077
+ mov r0, r5
21078
+ b .L3343
21079
+.L3346:
21080
+ ldrh r3, [r6, #-10]
21081
+ cmp r3, r2
21082
+ bne .L3347
21083
+ ldrh r1, [r6, #-6]
21084
+ cmp r1, r3
21085
+ beq .L3347
21086
+ ldrh r2, [r6, #-4]
21087
+ cmp r2, r3
21088
+ mvnne r3, #0
21089
+ strhne r0, [r6, #-10] @ movhi
21090
+ strhne r1, [r6, #-8] @ movhi
21091
+ strhne r2, [r6, #-6] @ movhi
21092
+ strhne r3, [r6, #-4] @ movhi
21093
+ b .L3347
21094
+.L3357:
2052921095 mov r3, #1
20530
- strh r3, [r10, #-8] @ movhi
20531
-.L3434:
21096
+ strh r3, [r6, #-8] @ movhi
21097
+.L3359:
2053221098 bl GetSwlReplaceBlock
2053321099 movw r3, #65535
21100
+ mov r5, r0
2053421101 cmp r0, r3
20535
- mov fp, r0
20536
- bne .L3436
20537
- ldr r3, .L3583+20
21102
+ bne .L3351
21103
+ ldr r3, .L3507+16
2053821104 mov r2, #0
2053921105 strh r2, [r3] @ movhi
20540
-.L3435:
20541
- ldrh ip, [r6, #-4]
21106
+.L3349:
21107
+ ldr r3, .L3507+20
21108
+ movw r5, #65535
21109
+ ldrh r3, [r3, #-4]
21110
+ cmp r3, r5
21111
+ bne .L3351
21112
+.L3438:
21113
+ ldr r6, .L3507+40
2054221114 movw r3, #65535
20543
- ldr r8, .L3583
20544
- cmp ip, r3
20545
- bne .L3577
20546
- sub r3, r8, #3424
20547
- ldrh r3, [r3, #-4]
20548
- cmp r3, ip
20549
- movne fp, ip
20550
- beq .L3580
20551
-.L3436:
20552
- movw r1, #65535
20553
- rsb r3, r1, fp
20554
- clz r3, r3
20555
- ldr r2, [sp, #16]
20556
- ldr r8, .L3583+32
20557
- mov r3, r3, lsr #5
20558
- cmp r2, #0
20559
- movne ip, #0
20560
- andeq ip, r3, #1
20561
- cmp ip, #0
20562
- beq .L3449
20563
- ldrh r0, [r8, #-8]
20564
- cmp r0, #24
20565
- movhi r9, #1
20566
- bhi .L3450
20567
- ldr r2, .L3583+16
20568
- movw r3, #2388
20569
- cmp r0, #16
20570
- ldrh r9, [r2, r3]
20571
- movhi r9, r9, lsr #5
20572
- bhi .L3450
20573
- cmp r0, #12
20574
- movhi r9, r9, lsr #4
20575
- bhi .L3450
20576
- cmp r0, #8
20577
- movhi r9, r9, lsr #2
20578
-.L3450:
20579
- ldr r1, .L3583
20580
- sub r2, r1, #2720
20581
- ldrh r3, [r2]
20582
- cmp r3, r0
20583
- bcs .L3454
20584
- sub r3, r1, #3424
20585
- movw r0, #65535
20586
- ldrh r3, [r3, #-4]
20587
- cmp r3, r0
20588
- bne .L3455
20589
- ldrh r0, [r4, #-10]
20590
- cmp r0, r3
20591
- bne .L3455
20592
- ldr r3, .L3583+20
20593
- ldrh r0, [r3]
20594
- cmp r0, #0
20595
- bne .L3456
20596
- ldr r3, .L3583+16
20597
- ldr r1, [r1, #-3372]
20598
- ldr r3, [r3, #2448]
20599
- add r3, r3, r3, asl #1
20600
- cmp r1, r3, lsr #2
20601
- movcs r3, #18
20602
- bcs .L3457
20603
-.L3456:
20604
- ldr r3, .L3583+36
20605
- ldrh r3, [r3, #-8]
20606
- add r3, r3, r3, asl #1
20607
- ubfx r3, r3, #2, #16
20608
-.L3457:
20609
- strh r3, [r2] @ movhi
21115
+ ldrh r5, [r6]
21116
+ cmp r5, r3
21117
+ movne r5, r3
21118
+ bne .L3351
21119
+ add r3, r6, #768
21120
+ ldrh r9, [r3, #-10]
21121
+ cmp r9, r5
21122
+ bne .L3351
21123
+ ldrh r3, [r8, #-4]
21124
+ ldr r2, [r4, #-2716]
21125
+ cmp r3, #24
21126
+ movcc r3, #5120
21127
+ movcs r3, #1024
21128
+ cmp r2, r3
21129
+ bls .L3351
21130
+ ldr r2, .L3507+16
2061021131 mov r3, #0
20611
- str r3, [r5, #-2708]
20612
- b .L3572
20613
-.L3455:
20614
- ldr r3, .L3583+36
20615
- ldrh r3, [r3, #-8]
20616
- add r3, r3, r3, asl #1
20617
- mov r3, r3, asr #2
21132
+ str r3, [r4, #-2716]
2061821133 strh r3, [r2] @ movhi
20619
-.L3454:
20620
- ldr r3, .L3583+16
20621
- movw fp, #65535
20622
- ldr r2, [r3, #2244]
20623
- ldr r3, [sp, #12]
20624
- cmp r3, #2
20625
- movhi r3, #0
20626
- movls r3, #1
21134
+ bl GetSwlReplaceBlock
21135
+ cmp r0, r9
21136
+ mov r5, r0
21137
+ movne r10, r0
21138
+ bne .L3361
21139
+ add r6, r6, #720
21140
+ ldrh r2, [r8, #-4]
21141
+ ldrh r3, [r6, #-14]
21142
+ mov r9, r6
21143
+ cmp r2, r3
21144
+ movcs r3, #80
21145
+ strhcs r3, [r6, #-14] @ movhi
21146
+ bcs .L3364
21147
+ mov r0, #64
21148
+ bl List_get_gc_head_node
21149
+ uxth r3, r0
21150
+ cmp r3, r5
21151
+ beq .L3364
21152
+ ldr r3, [r4, #-564]
21153
+ ldr r6, .L3507+12
21154
+ cmp r3, #0
21155
+ uxth r3, r0
21156
+ bne .L3365
21157
+ movw r2, #2344
21158
+ ldrh r2, [r6, r2]
21159
+ cmp r2, #3
21160
+ beq .L3365
21161
+ ldr r2, [r4, #-2724]
2062721162 cmp r2, #0
20628
- moveq r3, #0
20629
- cmp r3, #0
20630
- addne r9, r9, #1
20631
- uxthne r9, r9
20632
- b .L3459
20633
-.L3449:
20634
- ldrh r0, [r8, #92]
20635
- add r2, r8, #3520
20636
- cmp r0, r1
20637
- bne .L3460
20638
- ldrh r1, [r4, #-10]
20639
- cmp r1, r0
21163
+ bne .L3365
21164
+ ldr r2, [r6, #2248]
21165
+ cmp r2, #0
21166
+ bne .L3365
21167
+ ldrb r0, [r6, #152] @ zero_extendqisi2
21168
+ cmp r0, #0
21169
+ beq .L3366
21170
+.L3365:
21171
+ ldr r2, [r4, #-3540]
21172
+ lsl r3, r3, #1
21173
+ movw r0, #2344
21174
+ ldrh r0, [r6, r0]
21175
+ ldrh r1, [r2, r3]
21176
+ movw r3, #2392
21177
+ movw r2, #2324
21178
+ ldrh r3, [r6, r3]
21179
+ ldrh r2, [r6, r2]
21180
+ cmp r0, #3
21181
+ mul r2, r3, r2
21182
+ lsreq r3, r3, #1
2064021183 movne r3, #0
20641
- andeq r3, r3, #1
20642
- cmp r3, #0
20643
- beq .L3460
20644
- ldrh r3, [r6, #-4]
20645
- cmp r3, r0
20646
- beq .L3461
20647
-.L3465:
20648
- movw fp, #65535
20649
- b .L3460
20650
-.L3461:
20651
- sub r10, r2, #2720
20652
- ldrh r1, [r7, #-8]
20653
- str ip, [r2, #-2708]
20654
- ldrh r3, [r10]
20655
- ldr r9, .L3583+20
21184
+ add r3, r3, r2
2065621185 cmp r1, r3
20657
- bls .L3462
20658
- ldrh r3, [r9]
21186
+ bgt .L3368
21187
+ mov r0, #0
21188
+ bl List_get_gc_head_node
21189
+ ldr r3, [r6, #2452]
21190
+ uxth r10, r0
21191
+ ldr r2, [r4, #-3368]
21192
+ add r3, r3, r3, lsl #1
21193
+ cmp r2, r3, lsr #2
21194
+ movls r3, #160
21195
+ bls .L3500
21196
+.L3501:
21197
+ mov r3, #128
21198
+.L3500:
21199
+ strh r3, [r9, #-14] @ movhi
21200
+ movw r3, #65535
21201
+ cmp r10, r3
21202
+ beq .L3364
21203
+.L3361:
21204
+ ldr r0, .L3507+32
21205
+ lsl r1, r10, #1
21206
+ ldr r3, [r4, #-3540]
21207
+ mov r5, r10
21208
+ ldrh r2, [r8, #-4]
21209
+ ldrh r0, [r0]
21210
+ ldrh r3, [r3, r1]
21211
+ str r0, [sp, #4]
21212
+ ldr r0, [r4, #-3604]
21213
+ ldrh r1, [r0, r1]
21214
+ ldr r0, .L3507+44
21215
+ str r1, [sp]
21216
+ mov r1, r10
21217
+ bl printk
21218
+ b .L3364
21219
+.L3368:
21220
+ mov r3, #128
21221
+.L3502:
21222
+ strh r3, [r9, #-14] @ movhi
21223
+.L3364:
21224
+ bl FtlGcReFreshBadBlk
21225
+ b .L3351
21226
+.L3366:
21227
+ ldr r2, [r4, #-3540]
21228
+ lsl r3, r3, #1
21229
+ ldrh r3, [r2, r3]
21230
+ cmp r3, #7
21231
+ bhi .L3371
21232
+ bl List_get_gc_head_node
21233
+ uxth r10, r0
21234
+ b .L3501
21235
+.L3371:
21236
+ mov r3, #64
21237
+ b .L3502
21238
+.L3379:
21239
+ ldr r3, .L3507+36
21240
+ ldrh r3, [r3, #-8]
21241
+ add r3, r3, r3, lsl #1
21242
+ asr r3, r3, #2
21243
+ strh r3, [r2] @ movhi
21244
+.L3378:
21245
+ ldr r3, .L3507+12
21246
+ movw r5, #65535
21247
+ ldr r3, [r3, #2248]
21248
+ adds r3, r3, #0
21249
+ movne r3, #1
21250
+ cmp r7, #2
21251
+ movhi r3, #0
2065921252 cmp r3, #0
20660
- bne .L3463
20661
- ldr r3, .L3583+16
20662
- ldr r2, [r2, #-3372]
20663
- ldr r3, [r3, #2448]
20664
- add r3, r3, r3, asl #1
21253
+ addne r6, r6, #1
21254
+ uxthne r6, r6
21255
+.L3384:
21256
+ ldr r7, .L3507+20
21257
+ movw r2, #65535
21258
+ ldrh r3, [r7, #-4]
21259
+ cmp r3, r2
21260
+ bne .L3394
21261
+ cmp r5, r3
21262
+ strhne r5, [r7, #-4] @ movhi
21263
+ bne .L3396
21264
+ add r3, r7, #624
21265
+ ldrh r2, [r3, #-10]
21266
+ cmp r2, r5
21267
+ beq .L3396
21268
+ ldr r1, [r4, #-3540]
21269
+ lsl r2, r2, #1
21270
+ ldrh r2, [r1, r2]
21271
+ cmp r2, #0
21272
+ mvneq r2, #0
21273
+ strheq r2, [r3, #-10] @ movhi
21274
+ ldrh r2, [r3, #-10]
21275
+ strh r2, [r7, #-4] @ movhi
21276
+ mvn r2, #0
21277
+ strh r2, [r3, #-10] @ movhi
21278
+.L3396:
21279
+ ldrh r0, [r7, #-4]
21280
+ mov r3, #0
21281
+ strb r3, [r4, #-3276]
21282
+ movw r3, #65535
21283
+ cmp r0, r3
21284
+ beq .L3394
21285
+ bl IsBlkInGcList
21286
+ cmp r0, #0
21287
+ mvnne r3, #0
21288
+ strhne r3, [r7, #-4] @ movhi
21289
+ ldr r3, .L3507+12
21290
+ ldrb r3, [r3, #152] @ zero_extendqisi2
21291
+ cmp r3, #0
21292
+ beq .L3400
21293
+ ldrh r0, [r7, #-4]
21294
+ bl ftl_get_blk_mode
21295
+ strb r0, [r4, #-3276]
21296
+.L3400:
21297
+ ldrh r2, [r7, #-4]
21298
+ movw r3, #65535
21299
+ sub r9, r7, #4
21300
+ cmp r2, r3
21301
+ beq .L3394
21302
+ mov r0, r9
21303
+ bl make_superblock
21304
+ mov r3, #0
21305
+ movw r2, #1986
21306
+ strh r3, [r4, r2] @ movhi
21307
+ strh r3, [r7, #-2] @ movhi
21308
+ strb r3, [r4, #-3278]
21309
+ ldrh r3, [r7, #-4]
21310
+ ldr r2, [r4, #-3540]
21311
+ lsl r3, r3, #1
21312
+ ldrh r2, [r2, r3]
21313
+ movw r3, #1988
21314
+ strh r2, [r4, r3] @ movhi
21315
+.L3394:
21316
+ ldrh r3, [r7, #-4]
21317
+ ldrh r2, [r8]
21318
+ cmp r2, r3
21319
+ beq .L3401
21320
+ ldr r2, .L3507+48
21321
+ ldrh r1, [r2]
21322
+ cmp r1, r3
21323
+ beq .L3401
21324
+ ldrh r2, [r2, #48]
21325
+ cmp r2, r3
21326
+ bne .L3402
21327
+.L3401:
21328
+ mvn r3, #0
21329
+ strh r3, [r7, #-4] @ movhi
21330
+.L3402:
21331
+ ldr r4, .L3507
21332
+ sub r7, r4, #3280
21333
+.L3435:
21334
+ ldrh r2, [r7, #-4]
21335
+ movw r3, #65535
21336
+ cmp r2, r3
21337
+ bne .L3403
21338
+ ldr r9, .L3507+24
21339
+ mov r3, #0
21340
+ ldr r10, .L3507+52
21341
+ str r3, [r4, #-2708]
21342
+.L3404:
21343
+ ldr fp, .L3507+56
21344
+ ldrh r8, [fp]
21345
+ mov r0, r8
21346
+ bl List_get_gc_head_node
21347
+ uxth r2, r0
21348
+ sub r1, fp, #568
21349
+ strh r2, [r1, #-4] @ movhi
21350
+ movw r1, #65535
21351
+ cmp r2, r1
21352
+ bne .L3405
21353
+ mov r3, #0
21354
+ mov r0, #8
21355
+ strh r3, [fp] @ movhi
21356
+ b .L3343
21357
+.L3373:
21358
+ ldr r3, .L3507+40
21359
+ ldrh r7, [r3]
21360
+ cmp r7, r0
21361
+ bne .L3385
21362
+ add r0, r3, #768
21363
+ ldrh r0, [r0, #-10]
21364
+ cmp r0, r7
21365
+ movne r2, #0
21366
+ andeq r2, r2, #1
21367
+ cmp r2, #0
21368
+ beq .L3385
21369
+ ldrh r2, [r3, #140]
21370
+ cmp r2, r7
21371
+ beq .L3386
21372
+.L3391:
21373
+ mov r5, r7
21374
+.L3385:
21375
+ ldr r3, .L3507+12
21376
+ ldr r3, [r3, #2248]
21377
+ cmp r3, #0
21378
+ moveq r6, #1
21379
+ movne r6, #2
21380
+ b .L3384
21381
+.L3386:
21382
+ add r5, r3, #704
21383
+ ldrh r2, [r8, #-4]
21384
+ ldrh r3, [r5]
21385
+ str r1, [r4, #-2708]
21386
+ ldr r6, .L3507+16
21387
+ cmp r2, r3
21388
+ bls .L3387
21389
+ ldrh r3, [r6]
21390
+ cmp r3, #0
21391
+ bne .L3388
21392
+ ldr r3, .L3507+12
21393
+ ldr r2, [r4, #-3368]
21394
+ ldr r3, [r3, #2452]
21395
+ add r3, r3, r3, lsl #1
2066521396 cmp r2, r3, lsr #2
2066621397 movcs r3, #18
20667
- bcs .L3464
20668
-.L3463:
20669
- ldr r3, .L3583+36
21398
+ bcs .L3503
21399
+.L3388:
21400
+ ldr r3, .L3507+36
2067021401 ldrh r3, [r3, #-8]
20671
- add r3, r3, r3, asl #1
20672
- ubfx r3, r3, #2, #16
20673
-.L3464:
20674
- strh r3, [r10] @ movhi
21402
+ add r3, r3, r3, lsl #1
21403
+ asr r3, r3, #2
21404
+.L3503:
21405
+ strh r3, [r5] @ movhi
2067521406 bl FtlReadRefresh
2067621407 mov r0, #0
2067721408 bl List_get_gc_head_node
20678
- ldr r3, [r5, #-3544]
2067921409 uxth r0, r0
20680
- mov r0, r0, asl #1
21410
+ ldr r3, [r4, #-3540]
21411
+ lsl r0, r0, #1
2068121412 ldrh r3, [r3, r0]
2068221413 cmp r3, #4
20683
- ldrhih r0, [r9]
20684
- bhi .L3572
20685
-.L3462:
20686
- ldrh r0, [r9]
21414
+ bls .L3387
21415
+.L3504:
21416
+ ldrh r0, [r6]
21417
+ b .L3343
21418
+.L3387:
21419
+ ldrh r0, [r6]
2068721420 cmp r0, #0
20688
- bne .L3465
20689
- ldr r3, .L3583+36
21421
+ bne .L3391
21422
+ ldr r3, .L3507+36
2069021423 ldrh r9, [r3, #-8]
20691
- add r3, r9, r9, asl #1
20692
- mov r3, r3, asr #2
20693
- strh r3, [r10] @ movhi
21424
+ add r3, r9, r9, lsl #1
21425
+ asr r3, r3, #2
21426
+ strh r3, [r5] @ movhi
2069421427 bl List_get_gc_head_node
20695
- ldr r3, [r5, #-3544]
20696
- movw r2, #2390
2069721428 uxth r0, r0
20698
- mov r0, r0, asl #1
21429
+ ldr r3, [r4, #-3540]
21430
+ ldr r2, .L3507+12
21431
+ lsl r0, r0, #1
2069921432 ldrh r1, [r3, r0]
20700
- ldr r3, .L3583+16
20701
- ldrh r2, [r3, r2]
20702
- add r3, r3, #2320
20703
- ldrh r3, [r3]
20704
- mul r3, r3, r2
21433
+ movw r3, #2392
21434
+ ldrh r0, [r2, r3]
21435
+ movw r3, #2324
21436
+ ldrh r3, [r2, r3]
21437
+ mul r3, r3, r0
2070521438 add r3, r3, r3, lsr #31
2070621439 cmp r1, r3, asr #1
20707
- ble .L3466
20708
- ldrh r3, [r7, #-8]
20709
- sub r2, r9, #1
20710
- cmp r3, r2
20711
- blt .L3466
20712
- bl FtlReadRefresh
20713
- b .L3578
20714
-.L3466:
20715
- cmp r1, #0
20716
- bne .L3465
20717
- movw r0, #65535
20718
- bl decrement_vpc_count
20719
- ldrh r0, [r8, #-8]
20720
- add r0, r0, #1
20721
- b .L3572
20722
-.L3460:
20723
- ldr r3, .L3583+16
20724
- ldr r3, [r3, #2244]
20725
- cmp r3, #0
20726
- moveq r9, #1
20727
- movne r9, #2
20728
-.L3459:
20729
- ldrh r3, [r6, #-4]
20730
- movw r0, #65535
20731
- ldr r2, .L3583
20732
- cmp r3, r0
20733
- sub r1, r2, #3280
20734
- bne .L3468
20735
- cmp fp, r3
20736
- strneh fp, [r1, #-4] @ movhi
20737
- bne .L3470
20738
- ldrh r3, [r4, #-10]
20739
- sub r1, r2, #2656
20740
- cmp r3, fp
20741
- beq .L3470
20742
- ldr r2, [r2, #-3544]
20743
- mov r3, r3, asl #1
20744
- ldrh r3, [r2, r3]
20745
- cmp r3, #0
20746
- mvneq r3, #0
20747
- streqh r3, [r1, #-10] @ movhi
20748
- ldrh r3, [r4, #-10]
20749
- strh r3, [r6, #-4] @ movhi
20750
- mvn r3, #0
20751
- strh r3, [r4, #-10] @ movhi
20752
-.L3470:
20753
- ldrh r0, [r6, #-4]
20754
- mov r3, #0
20755
- strb r3, [r5, #-3276]
20756
- movw r3, #65535
20757
- cmp r0, r3
20758
- beq .L3468
20759
- bl IsBlkInGcList
20760
- cmp r0, #0
20761
- ldrne r3, .L3583+12
20762
- mvnne r2, #0
20763
- strneh r2, [r3, #-4] @ movhi
20764
- ldr r3, .L3583+16
20765
- ldrb r3, [r3, #144] @ zero_extendqisi2
20766
- cmp r3, #0
20767
- beq .L3474
20768
- ldrh r0, [r6, #-4]
20769
- bl ftl_get_blk_mode
20770
- strb r0, [r5, #-3276]
20771
-.L3474:
20772
- ldrh r2, [r6, #-4]
20773
- movw r3, #65535
20774
- ldr r5, .L3583
20775
- cmp r2, r3
20776
- sub r7, r5, #3280
20777
- sub r4, r7, #4
20778
- beq .L3468
20779
- mov r0, r4
20780
- bl make_superblock
20781
- ldr r2, .L3583+40
20782
- movw r1, #1986
20783
- mov r3, #0
20784
- strh r3, [r7, #-2] @ movhi
20785
- strh r3, [r2, r1] @ movhi
20786
- strb r3, [r5, #-3278]
20787
- ldrh r3, [r7, #-4]
20788
- ldr r1, [r5, #-3544]
20789
- mov r3, r3, asl #1
20790
- ldrh r1, [r1, r3]
20791
- movw r3, #1988
20792
- strh r1, [r2, r3] @ movhi
20793
-.L3468:
20794
- ldrh r3, [r6, #-4]
21440
+ ble .L3392
2079521441 ldrh r2, [r8, #-4]
21442
+ sub r3, r9, #1
2079621443 cmp r2, r3
20797
- beq .L3475
20798
- ldr r2, .L3583+44
20799
- ldrh r1, [r2, #-4]
20800
- cmp r1, r3
20801
- beq .L3475
20802
- ldrh r2, [r2, #44]
20803
- cmp r2, r3
20804
- bne .L3509
20805
-.L3475:
20806
- mvn r3, #0
20807
- strh r3, [r6, #-4] @ movhi
20808
-.L3509:
20809
- ldr r6, .L3583+48
20810
- movw r3, #65535
20811
- ldr r5, .L3583
20812
- ldrh r2, [r6]
20813
- mov r10, r6
20814
- cmp r2, r3
20815
- bne .L3477
20816
- mov r3, #0
20817
- str r5, [sp, #12]
20818
- str r3, [r5, #-2708]
20819
-.L3478:
20820
- ldr r8, .L3583+52
20821
- ldrh r4, [r8]
20822
- mov r0, r4
20823
- bl List_get_gc_head_node
20824
- movw r3, #65535
20825
- uxth r7, r0
20826
- strh r7, [r10] @ movhi
20827
- cmp r7, r3
20828
- moveq r3, #0
20829
- moveq r0, #8
20830
- streqh r3, [r8] @ movhi
20831
- beq .L3572
20832
-.L3479:
20833
- mov r0, r7
20834
- add r4, r4, #1
20835
- bl IsBlkInGcList
20836
- cmp r0, #0
20837
- ldrne r3, .L3583+52
20838
- strneh r4, [r3] @ movhi
20839
- bne .L3478
20840
- ldr r3, .L3583+52
20841
- uxth r4, r4
20842
- mov r2, r7, asl #1
20843
- strh r4, [r3] @ movhi
20844
- ldr r3, [sp, #12]
20845
- ldr r1, [r3, #-3544]
20846
- ldr r3, .L3583+56
20847
- ldrh r0, [r1, r2]
20848
- ldrh ip, [r3]
20849
- ldrh r3, [r3, #-68]
20850
- mul r3, r3, ip
20851
- add ip, r3, r3, lsr #31
20852
- cmp r0, ip, asr #1
20853
- bgt .L3482
20854
- cmp r0, #8
20855
- cmphi r4, #48
20856
- bls .L3483
20857
- ldrh r0, [r8, #36]
20858
- cmp r0, #35
20859
- bhi .L3483
20860
-.L3482:
20861
- ldr ip, .L3583+52
20862
- mov r0, #0
20863
- strh r0, [ip] @ movhi
20864
-.L3483:
20865
- ldrh r2, [r1, r2]
20866
- movw r1, #65535
20867
- cmp r2, r3
20868
- cmpge fp, r1
20869
- bne .L3484
20870
- ldr r3, .L3583+52
20871
- ldrh r1, [r3]
20872
- cmp r1, #3
20873
- bhi .L3484
20874
- sub r2, r3, #568
20875
- mvn r1, #0
20876
- strh r1, [r2, #-4] @ movhi
20877
- mov r2, #0
20878
- strh r2, [r3] @ movhi
20879
-.L3578:
20880
- ldr r3, .L3583+20
20881
- ldrh r0, [r3]
20882
- b .L3572
20883
-.L3484:
20884
- cmp r2, #0
20885
- bne .L3485
21444
+ blt .L3392
21445
+ bl FtlReadRefresh
21446
+ b .L3504
21447
+.L3392:
21448
+ cmp r1, #0
21449
+ bne .L3391
2088621450 movw r0, #65535
2088721451 bl decrement_vpc_count
20888
- ldr r3, .L3583+52
20889
- ldr r2, .L3583+52
21452
+ ldrh r0, [r8, #-4]
21453
+ add r0, r0, #1
21454
+ b .L3343
21455
+.L3405:
21456
+ str r0, [sp, #12]
21457
+ mov r0, r2
21458
+ str r2, [sp, #8]
21459
+ add r8, r8, #1
21460
+ bl IsBlkInGcList
21461
+ cmp r0, #0
21462
+ ldr r2, [sp, #8]
21463
+ ldr r3, [sp, #12]
21464
+ strhne r8, [fp] @ movhi
21465
+ bne .L3404
21466
+ uxth r3, r3
21467
+ ldrh lr, [r10]
21468
+ ldr r0, [r4, #-3540]
21469
+ uxth r8, r8
21470
+ lsl r1, r3, #1
21471
+ ldr r3, .L3507+60
21472
+ strh r8, [fp] @ movhi
21473
+ ldrh ip, [r0, r1]
2089021474 ldrh r3, [r3]
21475
+ mul r3, r3, lr
21476
+ add lr, r3, r3, lsr #31
21477
+ cmp ip, lr, asr #1
21478
+ bgt .L3408
21479
+ cmp r8, #48
21480
+ cmphi ip, #8
21481
+ bls .L3409
21482
+ ldrh ip, [fp, #36]
21483
+ cmp ip, #35
21484
+ bhi .L3409
21485
+.L3408:
21486
+ mov ip, #0
21487
+ strh ip, [r9, #-8] @ movhi
21488
+.L3409:
21489
+ ldrh r1, [r0, r1]
21490
+ movw r0, #65535
21491
+ cmp r3, r1
21492
+ cmple r5, r0
21493
+ bne .L3410
21494
+ ldrh r0, [r9, #-8]
21495
+ cmp r0, #3
21496
+ bhi .L3410
21497
+ ldr r1, .L3507+20
21498
+ mvn r2, #0
21499
+ strh r2, [r1, #-4] @ movhi
21500
+ mov r2, #0
21501
+ strh r2, [r9, #-8] @ movhi
21502
+.L3506:
21503
+ ldr r3, .L3507+16
21504
+ b .L3505
21505
+.L3410:
21506
+ cmp r1, #0
21507
+ bne .L3411
21508
+ movw r0, #65535
21509
+ bl decrement_vpc_count
21510
+ ldrh r3, [r9, #-8]
2089121511 add r3, r3, #1
20892
- strh r3, [r2] @ movhi
20893
- b .L3478
20894
-.L3485:
21512
+ strh r3, [r9, #-8] @ movhi
21513
+ b .L3404
21514
+.L3411:
2089521515 mov r3, #0
20896
- strb r3, [r5, #-3276]
20897
- ldr r3, .L3583+16
20898
- ldrb r3, [r3, #144] @ zero_extendqisi2
21516
+ strb r3, [r4, #-3276]
21517
+ ldr r3, .L3507+12
21518
+ ldrb r3, [r3, #152] @ zero_extendqisi2
2089921519 cmp r3, #0
20900
- beq .L3486
20901
- mov r0, r7
21520
+ beq .L3412
21521
+ mov r0, r2
2090221522 bl ftl_get_blk_mode
20903
- ldr r3, .L3583
20904
- strb r0, [r3, #-3276]
20905
-.L3486:
20906
- ldr r0, .L3583+48
21523
+ strb r0, [r4, #-3276]
21524
+.L3412:
21525
+ ldr r3, .L3507+20
21526
+ sub r8, r3, #4
21527
+ mov r0, r8
2090721528 bl make_superblock
20908
- ldrh r2, [r6]
20909
- ldr r1, .L3583+60
21529
+ add r2, r8, #4
21530
+ ldr r1, .L3507+64
21531
+ ldrh r2, [r2, #-4]
2091021532 mov r3, #0
20911
- ldr r0, [r5, #-3544]
20912
- mov r2, r2, asl #1
21533
+ ldr r0, [r4, #-3540]
2091321534 strh r3, [r1] @ movhi
21535
+ lsl r2, r2, #1
2091421536 ldrh r2, [r0, r2]
20915
- strh r3, [r6, #2] @ movhi
20916
- strb r3, [r5, #-3278]
21537
+ strh r3, [r8, #2] @ movhi
21538
+ strb r3, [r4, #-3278]
2091721539 strh r2, [r1, #2] @ movhi
20918
-.L3477:
21540
+.L3403:
2091921541 ldr r3, [sp, #16]
2092021542 cmp r3, #1
20921
- bne .L3487
21543
+ bne .L3413
2092221544 bl FtlReadRefresh
20923
-.L3487:
21545
+.L3413:
2092421546 mov r3, #1
20925
- str r3, [r5, #-560]
20926
- ldr r3, .L3583+56
21547
+ str r3, [r4, #-560]
21548
+ ldr r3, .L3507+52
2092721549 ldrh r3, [r3]
20928
- str r3, [sp, #12]
20929
- ldr r3, .L3583+16
20930
- ldrb r3, [r3, #144] @ zero_extendqisi2
21550
+ str r3, [sp, #8]
21551
+ ldr r3, .L3507+12
21552
+ ldrb r3, [r3, #152] @ zero_extendqisi2
2093121553 cmp r3, #0
20932
- beq .L3488
20933
- ldr r3, .L3583
20934
- ldrb r3, [r3, #-3276] @ zero_extendqisi2
21554
+ beq .L3414
21555
+ ldrb r3, [r4, #-3276] @ zero_extendqisi2
2093521556 cmp r3, #1
20936
- ldreq r3, .L3583+64
20937
- ldreqh r3, [r3]
20938
- streq r3, [sp, #12]
20939
-.L3488:
20940
- ldrh r3, [r6, #2]
20941
- mov r6, #0
20942
- ldr r1, [sp, #12]
20943
- add r2, r3, r9
20944
- ldr r4, .L3583
21557
+ ldreq r3, .L3507+68
21558
+ ldrheq r3, [r3]
21559
+ streq r3, [sp, #8]
21560
+.L3414:
21561
+ ldr r3, .L3507+20
21562
+ ldr r1, [sp, #8]
21563
+ ldrh r3, [r3, #-2]
21564
+ add r2, r3, r6
2094521565 cmp r2, r1
2094621566 movgt r2, r1
20947
- rsbgt r3, r3, r2
20948
- uxthgt r9, r3
20949
-.L3490:
20950
- uxth r3, r6
20951
- ldr r7, .L3583
20952
- cmp r3, r9
20953
- ldr r5, .L3583+48
20954
- bcs .L3497
20955
- ldr r3, .L3583+24
20956
- add r0, r5, #14
20957
- ldrh r1, [r5, #2]
20958
- movw lr, #65535
20959
- ldr r7, [r4, #-2688]
20960
- mov ip, #36
20961
- ldrh r8, [r3]
20962
- add r1, r1, r6
21567
+ subgt r6, r2, r3
2096321568 mov r3, #0
20964
- mov r5, r3
20965
-.L3498:
20966
- uxth r2, r3
20967
- cmp r2, r8
20968
- bcs .L3581
20969
- ldrh r2, [r0, #2]!
20970
- add r3, r3, #1
20971
- cmp r2, lr
20972
- orrne r2, r1, r2, asl #10
20973
- mlane r10, ip, r5, r7
20974
- addne r5, r5, #1
20975
- uxthne r5, r5
20976
- strne r2, [r10, #4]
20977
- b .L3498
20978
-.L3581:
21569
+ uxthgt r6, r6
21570
+ str r3, [sp, #12]
21571
+ sub r3, r7, #4
21572
+ str r3, [sp, #20]
21573
+.L3416:
21574
+ ldrh r3, [sp, #12]
21575
+ cmp r6, r3
21576
+ bls .L3423
21577
+ ldr r3, .L3507+60
21578
+ add ip, r7, #10
2097921579 ldr r0, [r4, #-2688]
20980
- mov r1, r5
21580
+ movw r9, #65535
21581
+ mov lr, #36
21582
+ ldrh r10, [r3]
21583
+ ldr r3, [sp, #20]
21584
+ ldrh r1, [r3, #2]
21585
+ ldr r3, [sp, #12]
21586
+ add r1, r1, r3
21587
+ mov r3, #0
21588
+ mov r8, r3
21589
+ b .L3424
21590
+.L3418:
21591
+ ldrh r2, [ip, #2]!
21592
+ add r3, r3, #1
21593
+ cmp r2, r9
21594
+ mlane fp, lr, r8, r0
21595
+ addne r8, r8, #1
21596
+ orrne r2, r1, r2, lsl #10
21597
+ uxthne r8, r8
21598
+ strne r2, [fp, #4]
21599
+.L3424:
21600
+ uxth r2, r3
21601
+ cmp r10, r2
21602
+ bhi .L3418
21603
+ mov fp, #0
2098121604 ldrb r2, [r4, #-3276] @ zero_extendqisi2
20982
- mov r8, #0
21605
+ mov r1, r8
2098321606 bl FlashReadPages
20984
-.L3493:
20985
- uxth r3, r8
20986
- cmp r3, r5
20987
- bcs .L3582
21607
+.L3419:
21608
+ uxth r3, fp
21609
+ cmp r8, r3
21610
+ ldrls r3, [sp, #12]
21611
+ addls r3, r3, #1
21612
+ strls r3, [sp, #12]
21613
+ bls .L3416
21614
+.L3422:
2098821615 mov r3, #36
2098921616 ldr r2, [r4, #-2688]
20990
- mul r7, r3, r8
20991
- add r1, r2, r7
20992
- ldr r2, [r2, r7]
20993
- ldr r10, [r1, #12]
21617
+ mul r9, r3, fp
21618
+ add r1, r2, r9
21619
+ ldr r2, [r2, r9]
2099421620 cmn r2, #1
20995
- beq .L3529
20996
- ldrh r1, [r10]
21621
+ beq .L3420
21622
+ ldr r10, [r1, #12]
2099721623 movw r2, #61589
21624
+ ldrh r1, [r10]
2099821625 cmp r1, r2
20999
- bne .L3529
21000
- add r1, sp, #32
21626
+ bne .L3420
2100121627 mov r2, #0
21628
+ add r1, sp, #32
2100221629 ldr r0, [r10, #8]
21003
- str r3, [sp, #20]
21004
- bl log2phys
21005
- ldr r2, [r4, #-2688]
21006
- add r2, r2, r7
21007
- ldr r0, [r2, #4]
21008
- ldr r1, [sp, #32]
21009
- ldr r3, [sp, #20]
21010
- bic r1, r1, #-2147483648
21011
- cmp r1, r0
21012
- bne .L3529
21013
- ldr r1, .L3583+60
21014
- ldr r0, .L3583+60
21015
- ldr r2, [r2, #16]
21016
- ldrh r1, [r1]
2101721630 str r3, [sp, #24]
21018
- add r1, r1, #1
21019
- strh r1, [r0] @ movhi
21020
- ldr r0, [r4, #-2704]
21021
- ldr r1, [r4, #-532]
21022
- mla r1, r3, r0, r1
21023
- str r2, [r1, #16]
21024
- str r1, [sp, #20]
21025
- bl Ftl_get_new_temp_ppa
21026
- ldr r2, [r4, #-532]
21027
- ldr r1, [sp, #20]
21631
+ bl log2phys
21632
+ ldr r1, [r4, #-2688]
21633
+ ldr r2, [sp, #32]
2102821634 ldr r3, [sp, #24]
21029
- str r0, [r1, #4]
21030
- ldr r1, [r4, #-2704]
21031
- mla r3, r3, r1, r2
21635
+ add r1, r1, r9
21636
+ ldr r0, [r1, #4]
21637
+ bic r2, r2, #-2147483648
21638
+ cmp r2, r0
21639
+ bne .L3420
21640
+ ldr r2, .L3507+64
21641
+ ldr r0, .L3507+64
21642
+ ldr r1, [r1, #16]
21643
+ ldrh r2, [r2]
21644
+ str r3, [sp, #28]
21645
+ add r2, r2, #1
21646
+ strh r2, [r0] @ movhi
21647
+ ldr r0, [r4, #-2704]
21648
+ ldr r2, [r4, #-532]
21649
+ mla r2, r3, r0, r2
21650
+ str r1, [r2, #16]
21651
+ str r2, [sp, #24]
21652
+ bl Ftl_get_new_temp_ppa
21653
+ ldr r2, [sp, #24]
21654
+ ldr r1, [r4, #-532]
21655
+ ldr r3, [sp, #28]
21656
+ str r0, [r2, #4]
21657
+ ldr r2, [r4, #-2704]
21658
+ mla r3, r3, r2, r1
2103221659 ldr r2, [r4, #-2688]
21033
- add r2, r2, r7
21660
+ add r2, r2, r9
2103421661 ldr r1, [r2, #8]
2103521662 str r1, [r3, #8]
2103621663 mov r1, #1
....@@ -21038,592 +21665,479 @@
2103821665 str r2, [r3, #12]
2103921666 ldr r3, [sp, #32]
2104021667 str r3, [r10, #12]
21041
- ldr r3, .L3583+68
21668
+ ldr r3, .L3507+40
2104221669 ldrh r3, [r3]
2104321670 strh r3, [r10, #2] @ movhi
2104421671 ldr r3, [r4, #-3328]
2104521672 ldr r0, [r4, #-2688]
2104621673 str r3, [r10, #4]
21047
- add r0, r0, r7
2104821674 ldr r3, [r4, #-2704]
21675
+ add r0, r0, r9
2104921676 add r3, r3, #1
2105021677 str r3, [r4, #-2704]
2105121678 bl FtlGcBufAlloc
21052
- ldr r3, .L3583+16
21053
- ldrb r3, [r3, #144] @ zero_extendqisi2
21679
+ ldr r3, .L3507+12
21680
+ ldrb r3, [r3, #152] @ zero_extendqisi2
2105421681 cmp r3, #0
21055
- bne .L3495
21056
- ldrb r3, [r4, #-3421] @ zero_extendqisi2
21057
- ldr r2, [r4, #-2704]
21682
+ bne .L3421
21683
+ ldrb r2, [r4, #-3417] @ zero_extendqisi2
21684
+ ldr r3, [r4, #-2704]
2105821685 cmp r2, r3
21059
- beq .L3495
21060
- ldr r3, .L3583+68
21686
+ beq .L3421
21687
+ ldr r3, .L3507+40
2106121688 ldrh r3, [r3, #4]
2106221689 cmp r3, #0
21063
- bne .L3529
21064
-.L3495:
21690
+ bne .L3420
21691
+.L3421:
2106521692 bl Ftl_gc_temp_data_write_back
2106621693 cmp r0, #0
21067
- beq .L3529
21068
- ldr r3, .L3583
21694
+ beq .L3420
21695
+ ldr r3, .L3507
2106921696 mov r2, #0
21070
- mvn r1, #0
21071
- sub r3, r3, #3280
21072
- str r2, [r3, #2720]
21073
- strh r1, [r3, #-4] @ movhi
21074
- strh r2, [r3, #-2] @ movhi
21075
- b .L3578
21076
-.L3529:
21077
- add r8, r8, #1
21078
- b .L3493
21079
-.L3582:
21080
- add r6, r6, #1
21081
- b .L3490
21082
-.L3497:
21083
- ldrh r3, [r5, #2]
21084
- add r9, r9, r3
21085
- ldr r3, [sp, #12]
21086
- uxth r9, r9
21087
- strh r9, [r5, #2] @ movhi
21088
- cmp r9, r3
21089
- bcc .L3499
21090
- ldr r3, [r7, #-2704]
21697
+ mvn ip, #0
21698
+ sub r1, r3, #3280
21699
+ str r2, [r3, #-560]
21700
+ add r3, r3, #1984
21701
+ strh ip, [r1, #-4] @ movhi
21702
+ strh r2, [r1, #-2] @ movhi
21703
+.L3505:
21704
+ ldrh r0, [r3]
21705
+ b .L3343
21706
+.L3420:
21707
+ add fp, fp, #1
21708
+ b .L3419
21709
+.L3423:
21710
+ ldrh r3, [r7, #-2]
21711
+ add r6, r6, r3
21712
+ ldr r3, [sp, #8]
21713
+ uxth r6, r6
21714
+ cmp r3, r6
21715
+ strh r6, [r7, #-2] @ movhi
21716
+ bhi .L3425
21717
+ ldr r3, [r4, #-2704]
2109121718 cmp r3, #0
21092
- beq .L3500
21719
+ beq .L3426
2109321720 bl Ftl_gc_temp_data_write_back
2109421721 cmp r0, #0
2109521722 movne r3, #0
21096
- strne r3, [r7, #-560]
21097
- bne .L3578
21098
-.L3500:
21099
- ldr r3, .L3583+60
21100
- ldrh r4, [r3]
21101
- cmp r4, #0
21102
- bne .L3501
21103
- ldrh r3, [r5]
21104
- ldr r2, [r7, #-3544]
21105
- mov r3, r3, asl #1
21723
+ strne r3, [r4, #-560]
21724
+ bne .L3506
21725
+.L3426:
21726
+ ldr r3, .L3507+64
21727
+ ldrh r0, [r3]
21728
+ cmp r0, #0
21729
+ bne .L3427
21730
+ ldrh r3, [r7, #-4]
21731
+ ldr r2, [r4, #-3540]
21732
+ lsl r3, r3, #1
2110621733 ldrh r3, [r2, r3]
2110721734 cmp r3, #0
21108
- beq .L3501
21109
- ldr r6, .L3583+16
21110
-.L3502:
21111
- ldr r3, [r6, #2448]
21112
- cmp r4, r3
21113
- bcs .L3507
21114
- mov r0, r4
21115
- add r1, sp, #36
21735
+ movne r6, r0
21736
+ ldrne r8, .L3507+12
21737
+ bne .L3428
21738
+.L3427:
21739
+ mvn r3, #0
21740
+ strh r3, [r7, #-4] @ movhi
21741
+.L3425:
21742
+ ldr r3, .L3507+72
21743
+ ldrh r3, [r3]
21744
+ cmp r3, #2
21745
+ bhi .L3434
21746
+ ldr r3, .L3507+52
21747
+ ldrh r6, [r3]
21748
+ b .L3435
21749
+.L3429:
21750
+ add r6, r6, #1
21751
+.L3428:
21752
+ ldr r3, [r8, #2452]
21753
+ cmp r6, r3
21754
+ bcs .L3433
2111621755 mov r2, #0
21756
+ add r1, sp, #36
21757
+ mov r0, r6
2111721758 bl log2phys
2111821759 ldr r0, [sp, #36]
2111921760 cmn r0, #1
21120
- beq .L3503
21761
+ beq .L3429
2112121762 ubfx r0, r0, #10, #16
2112221763 bl P2V_block_in_plane
21123
- ldrh r3, [r5]
21764
+ ldrh r3, [r7, #-4]
2112421765 cmp r3, r0
21125
- bne .L3503
21126
-.L3507:
21127
- ldr r3, .L3583+16
21128
- ldr r3, [r3, #2448]
21129
- cmp r4, r3
21130
- bcc .L3501
21131
- ldrh r3, [r5]
21766
+ bne .L3429
21767
+.L3433:
21768
+ ldr r3, [r8, #2452]
21769
+ cmp r6, r3
21770
+ bcc .L3427
21771
+ ldrh r3, [r7, #-4]
2113221772 mov r1, #0
21133
- ldr r2, [r7, #-3544]
21134
- mov r3, r3, asl #1
21773
+ ldr r2, [r4, #-3540]
21774
+ lsl r3, r3, #1
2113521775 strh r1, [r2, r3] @ movhi
21136
- ldrh r0, [r5]
21776
+ ldrh r0, [r7, #-4]
2113721777 bl update_vpc_list
2113821778 bl FtlCacheWriteBack
2113921779 bl l2p_flush
2114021780 bl FtlVpcTblFlush
21141
- b .L3501
21142
-.L3503:
21143
- add r4, r4, #1
21144
- b .L3502
21145
-.L3501:
21146
- mvn r3, #0
21147
- strh r3, [r5] @ movhi
21148
-.L3499:
21149
- ldr r3, .L3583+72
21150
- ldrh r3, [r3]
21151
- cmp r3, #2
21152
- ldrls r3, .L3583+56
21153
- ldrlsh r9, [r3]
21154
- bls .L3509
21155
-.L3508:
21156
- ldr r2, .L3583
21157
- mov r1, #0
21158
- str r1, [r2, #-560]
21159
- ldr r2, .L3583+20
21781
+ b .L3427
21782
+.L3434:
21783
+ mov r2, #0
21784
+ str r2, [r4, #-560]
21785
+ ldr r2, .L3507+16
2116021786 ldrh r0, [r2]
21161
- cmp r0, r1
21162
- addeq r0, r3, #1
21163
- b .L3572
21164
-.L3513:
21165
- mov r0, #0
21166
- bx lr
21167
-.L3515:
21168
- mov r0, ip
21169
- b .L3572
21170
-.L3580:
21171
- ldrh r9, [r4, #-10]
21172
- cmp r9, r3
21173
- bne .L3577
21174
- sub r3, r8, #3520
21175
- ldr r2, [r8, #-2716]
21176
- ldrh r3, [r3, #-8]
21177
- cmp r3, #24
21178
- movcc r3, #5120
21179
- movcs r3, #1024
21180
- cmp r2, r3
21181
- movls fp, r9
21182
- bls .L3436
21183
- ldr r2, .L3583+20
21184
- mov r3, #0
21185
- str r3, [r5, #-2716]
21186
- strh r3, [r2] @ movhi
21187
- bl GetSwlReplaceBlock
21188
- cmp r0, r9
21189
- mov fp, r0
21190
- bne .L3438
21191
- sub r3, r8, #2704
21192
- ldrh r1, [r7, #-8]
21193
- ldrh r2, [r3, #-14]
21194
- mov r9, r3
21195
- cmp r1, r2
21196
- movcs r2, #80
21197
- strcsh r2, [r3, #-14] @ movhi
21198
- bcs .L3448
21199
- mov r0, #64
21200
- bl List_get_gc_head_node
21201
- uxth r3, r0
21202
- cmp r3, fp
21203
- beq .L3448
21204
- ldr r2, [r8, #-564]
21205
- ldr r10, .L3583+16
21206
- cmp r2, #0
21207
- bne .L3441
21208
- movw r1, #2340
21209
- ldrh r1, [r10, r1]
21210
- cmp r1, #3
21211
- beq .L3441
21212
- ldr r1, [r8, #-3236]
21213
- cmp r1, #0
21214
- bne .L3441
21215
- ldr r1, [r10, #2244]
21216
- cmp r1, #0
21217
- bne .L3441
21218
- ldrb r0, [r10, #144] @ zero_extendqisi2
2121921787 cmp r0, #0
21220
- beq .L3442
21221
-.L3441:
21222
- ldr r2, [r5, #-3544]
21223
- mov r3, r3, asl #1
21224
- movw r0, #2340
21225
- ldrh r0, [r10, r0]
21226
- ldrh r1, [r2, r3]
21227
- movw r3, #2390
21228
- ldr r2, .L3583+24
21229
- cmp r0, #3
21230
- ldrh r3, [r10, r3]
21231
- ldrh r2, [r2]
21232
- mul r2, r2, r3
21233
- moveq r3, r3, lsr #1
21234
- movne r3, #0
21235
- add r3, r2, r3
21236
- cmp r1, r3
21237
- bgt .L3444
21788
+ addeq r0, r3, #1
21789
+ b .L3343
21790
+.L3439:
2123821791 mov r0, #0
21239
- bl List_get_gc_head_node
21240
- ldr r3, [r10, #2448]
21241
- ldr r2, [r5, #-3372]
21242
- add r3, r3, r3, asl #1
21243
- cmp r2, r3, lsr #2
21244
- movls r3, #160
21245
- uxth fp, r0
21246
- bls .L3575
21247
- b .L3579
21248
-.L3442:
21249
- ldr r2, [r8, #-3544]
21250
- mov r3, r3, asl #1
21251
- ldrh r3, [r2, r3]
21252
- cmp r3, #7
21253
- bhi .L3447
21254
- bl List_get_gc_head_node
21255
- uxth fp, r0
21256
-.L3579:
21257
- mov r3, #128
21258
-.L3575:
21259
- strh r3, [r9, #-14] @ movhi
21260
- movw r3, #65535
21261
- cmp fp, r3
21262
- beq .L3448
21263
- b .L3438
21264
-.L3444:
21265
- mov r3, #128
21266
- b .L3576
21267
-.L3447:
21268
- mov r3, #64
21269
-.L3576:
21270
- strh r3, [r9, #-14] @ movhi
21271
- b .L3448
21272
-.L3438:
21273
- ldr r0, [r5, #-3608]
21274
- mov r1, fp, asl #1
21275
- ldr r3, [r5, #-3544]
21276
- ldrh r2, [r7, #-8]
21277
- ldrh r3, [r3, r1]
21278
- ldrh r1, [r0, r1]
21279
- ldr r0, .L3583+76
21280
- str r1, [sp]
21281
- ldr r1, .L3583+80
21282
- ldrh r1, [r1]
21283
- str r1, [sp, #4]
21284
- mov r1, fp
21285
- bl printk
21286
-.L3448:
21287
- bl FtlGcReFreshBadBlk
21288
- b .L3436
21289
-.L3577:
21290
- mov fp, r3
21291
- b .L3436
21292
-.L3572:
21293
- add sp, sp, #44
21294
- @ sp needed
21295
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
21296
-.L3584:
21792
+ b .L3343
21793
+.L3508:
2129721794 .align 2
21298
-.L3583:
21795
+.L3507:
2129921796 .word .LANCHOR2
2130021797 .word .LANCHOR1
2130121798 .word .LANCHOR2-2656
21302
- .word .LANCHOR2-3280
2130321799 .word .LANCHOR0
21304
- .word .LANCHOR4+1984
21305
- .word .LANCHOR0+2320
21800
+ .word .LANCHOR2+1984
21801
+ .word .LANCHOR2-3280
21802
+ .word .LANCHOR2-2704
2130621803 .word .LC157
21307
- .word .LANCHOR2-3520
21308
- .word .LANCHOR2-3296
21309
- .word .LANCHOR4
21310
- .word .LANCHOR2-3472
21311
- .word .LANCHOR2-3284
21312
- .word .LANCHOR2-2712
21313
- .word .LANCHOR0+2388
21314
- .word .LANCHOR4+1986
21315
- .word .LANCHOR0+2390
21316
- .word .LANCHOR2-3428
21317
- .word .LANCHOR2-3528
21318
- .word .LC158
2131921804 .word .LANCHOR2-2720
21805
+ .word .LANCHOR2-3296
21806
+ .word .LANCHOR2-3424
21807
+ .word .LC158
21808
+ .word .LANCHOR2-3472
21809
+ .word .LANCHOR0+2390
21810
+ .word .LANCHOR2-2712
21811
+ .word .LANCHOR0+2324
21812
+ .word .LANCHOR2+1986
21813
+ .word .LANCHOR0+2392
21814
+ .word .LANCHOR2-3524
2132021815 .fnend
2132121816 .size ftl_do_gc, .-ftl_do_gc
2132221817 .align 2
2132321818 .global FtlCacheWriteBack
21819
+ .syntax unified
21820
+ .arm
21821
+ .fpu softvfp
2132421822 .type FtlCacheWriteBack, %function
2132521823 FtlCacheWriteBack:
2132621824 .fnstart
21327
- @ args = 0, pretend = 0, frame = 8
21825
+ @ args = 0, pretend = 0, frame = 16
2132821826 @ frame_needed = 0, uses_anonymous_args = 0
21329
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
21827
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2133021828 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
21331
- .pad #12
21332
- ldr r3, .L3629
21333
- ldr r7, .L3629+4
21334
- ldr r5, [r3, #1992]
21335
- ldr r3, [r7, #-3616]
21336
- cmp r3, #0
21337
- bne .L3587
21338
- ldr r4, .L3629+8
21339
- ldr r1, [r4, #2440]
21829
+ .pad #20
21830
+ sub sp, sp, #20
21831
+ ldr r6, .L3552
21832
+ ldr r9, [r6, #-3612]
21833
+ cmp r9, #0
21834
+ bne .L3511
21835
+ ldr r4, .L3552+4
21836
+ ldr r1, [r4, #2444]
2134021837 cmp r1, #0
21341
- beq .L3587
21342
- ldrb r6, [r4, #144] @ zero_extendqisi2
21343
- mov r8, #0
21344
- ldr r0, [r4, #2444]
21838
+ beq .L3511
21839
+ ldrb r3, [r4, #152] @ zero_extendqisi2
21840
+ mov r7, #0
21841
+ ldr r5, [r6, #1992]
2134521842 mov r10, #36
21346
- cmp r6, #0
21843
+ ldr fp, .L3552+8
21844
+ cmp r3, #0
21845
+ ldr r0, [r4, #2448]
21846
+ ldrbne r8, [r5, #8] @ zero_extendqisi2
21847
+ moveq r8, r9
2134721848 ldrb r3, [r5, #9] @ zero_extendqisi2
21348
- ldr r9, .L3629+8
21349
- ldrneb r6, [r5, #8] @ zero_extendqisi2
21350
- subne r6, r6, #1
21351
- clzne r6, r6
21352
- movne r6, r6, lsr #5
21353
- mov r2, r6
21849
+ subne r8, r8, #1
21850
+ clzne r8, r8
21851
+ lsrne r8, r8, #5
21852
+ mov r2, r8
2135421853 bl FlashProgPages
21355
-.L3590:
21356
- ldr r3, [r4, #2440]
21357
- cmp r8, r3
21358
- bcs .L3608
21359
- mul fp, r10, r8
21360
- ldr r3, [r9, #2444]
21361
- add r2, r3, fp
21362
- ldr r3, [r3, fp]
21363
- cmn r3, #1
21364
- beq .L3611
21365
- ldr r3, [r2, #4]
21366
- cmp r6, #0
21367
- ldr r0, [r2, #16]
21368
- add r1, sp, #4
21369
- mov r2, #1
21370
- orrne r3, r3, #-2147483648
21371
- str r3, [sp, #4]
21372
- bl log2phys
21854
+.L3514:
2137321855 ldr r3, [r4, #2444]
21374
- add r3, r3, fp
21856
+ cmp r7, r3
21857
+ bcc .L3521
21858
+.L3533:
21859
+ mov r3, #0
21860
+ str r3, [r4, #2444]
21861
+.L3511:
21862
+ mov r0, #0
21863
+ add sp, sp, #20
21864
+ @ sp needed
21865
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
21866
+.L3521:
21867
+ mul r3, r10, r7
21868
+ ldr r2, [r4, #2448]
21869
+ add r0, r2, r3
21870
+ ldr r2, [r2, r3]
21871
+ cmn r2, #1
21872
+ beq .L3516
21873
+ ldr r2, [r0, #4]
21874
+ cmp r8, #0
21875
+ add r1, sp, #12
21876
+ ldr r0, [r0, #16]
21877
+ str r3, [sp, #4]
21878
+ orrne r2, r2, #-2147483648
21879
+ str r2, [sp, #12]
21880
+ mov r2, #1
21881
+ bl log2phys
21882
+ ldr r2, [r4, #2448]
21883
+ ldr r3, [sp, #4]
21884
+ add r3, r2, r3
2137521885 ldr r3, [r3, #12]
2137621886 ldr r0, [r3, #12]
2137721887 cmn r0, #1
21378
- beq .L3594
21888
+ beq .L3519
2137921889 ubfx r0, r0, #10, #16
2138021890 bl P2V_block_in_plane
21381
- ldr r2, [r7, #-3544]
21382
- mov r3, r0, asl #1
21383
- mov fp, r0
21891
+ ldr r1, [r6, #-3540]
21892
+ lsl r2, r0, #1
21893
+ mov r3, r0
21894
+ ldrh r2, [r1, r2]
21895
+ cmp r2, #0
21896
+ bne .L3520
21897
+ mov r1, r0
21898
+ str r0, [sp, #4]
21899
+ mov r0, fp
21900
+ bl printk
21901
+ ldr r3, [sp, #4]
21902
+.L3520:
21903
+ mov r0, r3
21904
+ bl decrement_vpc_count
21905
+.L3519:
21906
+ add r7, r7, #1
21907
+ b .L3514
21908
+.L3531:
21909
+ mov r7, #36
21910
+ ldr r3, [r4, #2448]
21911
+ mul r7, r7, r9
21912
+ mov r10, #0
21913
+ mov fp, #1
21914
+ mvn r2, #0
21915
+ str r2, [r3, r7]
21916
+.L3522:
21917
+ ldr r2, [r4, #2448]
21918
+ add r3, r2, r7
21919
+ ldr r2, [r2, r7]
21920
+ ldr r0, [r3, #4]
21921
+ cmn r2, #1
21922
+ beq .L3526
21923
+ cmp r8, #0
21924
+ mov r2, #1
21925
+ orrne r0, r0, #-2147483648
21926
+ add r1, sp, #12
21927
+ str r0, [sp, #12]
21928
+ ldr r0, [r3, #16]
21929
+ bl log2phys
21930
+ ldr r3, [r4, #2448]
21931
+ add r7, r3, r7
21932
+ ldr r3, [r7, #12]
21933
+ ldr r0, [r3, #12]
21934
+ cmn r0, #1
21935
+ beq .L3529
21936
+ ubfx r0, r0, #10, #16
21937
+ bl P2V_block_in_plane
21938
+ ldr r2, [r6, #-3540]
21939
+ lsl r3, r0, #1
21940
+ mov r7, r0
2138421941 ldrh r2, [r2, r3]
2138521942 cmp r2, #0
21386
- bne .L3595
21387
- ldr r0, .L3629+12
21388
- mov r1, fp
21389
- bl printk
21390
-.L3595:
21391
- mov r0, fp
21392
- bl decrement_vpc_count
21393
-.L3594:
21394
- add r8, r8, #1
21395
- b .L3590
21396
-.L3627:
21397
- ldr r6, .L3629+16
21398
- movw r5, #16386
21399
-.L3607:
21400
- ldrh r3, [r6]
21401
- cmp r3, #0
21402
- beq .L3608
21403
- mov r0, #1
21943
+ bne .L3530
2140421944 mov r1, r0
21945
+ ldr r0, .L3552+8
21946
+ bl printk
21947
+.L3530:
21948
+ mov r0, r7
21949
+ bl decrement_vpc_count
21950
+.L3529:
21951
+ add r9, r9, #1
21952
+.L3516:
21953
+ ldr r3, [r4, #2444]
21954
+ cmp r9, r3
21955
+ bcc .L3531
21956
+ movw r5, #16386
21957
+.L3534:
21958
+ ldr r3, .L3552+12
21959
+ ldrh r3, [r3]
21960
+ cmp r3, #0
21961
+ beq .L3533
21962
+ mov r1, #1
21963
+ mov r0, r1
2140521964 bl ftl_do_gc
2140621965 subs r5, r5, #1
21407
- bne .L3607
21408
-.L3608:
21409
- mov r3, #0
21410
- str r3, [r4, #2440]
21411
- b .L3587
21412
-.L3611:
21413
- ldr fp, .L3629+8
21414
- mov r9, #0
21415
-.L3591:
21416
- ldr r3, [r4, #2440]
21417
- cmp r9, r3
21418
- bcs .L3627
21419
- mov r8, #36
21420
- ldr r3, [fp, #2444]
21421
- mul r8, r8, r9
21422
- mov r10, #0
21423
- mvn r2, #0
21424
- str r2, [r3, r8]
21425
-.L3597:
21426
- ldr r3, [r4, #2444]
21427
- add r2, r3, r8
21428
- ldr r3, [r3, r8]
21429
- cmn r3, #1
21430
- bne .L3628
21431
- ldr r0, [r2, #4]
21966
+ bne .L3534
21967
+ b .L3533
21968
+.L3526:
2143221969 ubfx r0, r0, #10, #16
2143321970 bl P2V_block_in_plane
2143421971 ldrh r3, [r5]
2143521972 cmp r3, r0
21436
- bne .L3598
21437
- ldr r1, [r7, #-3544]
21438
- mov r3, r3, asl #1
21973
+ bne .L3523
21974
+ ldr r1, [r6, #-3540]
21975
+ lsl r3, r3, #1
2143921976 ldrh r0, [r5, #4]
2144021977 ldrh r2, [r1, r3]
21441
- rsb r2, r0, r2
21978
+ sub r2, r2, r0
2144221979 strh r2, [r1, r3] @ movhi
21443
- ldr r3, .L3629+20
21980
+ ldr r3, .L3552+16
2144421981 strb r10, [r5, #6]
2144521982 strh r10, [r5, #4] @ movhi
2144621983 ldrh r3, [r3]
2144721984 strh r3, [r5, #2] @ movhi
21448
-.L3598:
21985
+.L3523:
2144921986 ldrh r3, [r5, #4]
2145021987 cmp r3, #0
21451
- bne .L3599
21988
+ bne .L3524
2145221989 mov r0, r5
2145321990 bl allocate_new_data_superblock
21454
-.L3599:
21455
- ldr r3, [r7, #-3136]
21991
+.L3524:
21992
+ ldr r3, [r6, #-3140]
2145621993 add r3, r3, #1
21457
- str r3, [r7, #-3136]
21458
- ldr r3, [r4, #2444]
21459
- add r3, r3, r8
21994
+ str r3, [r6, #-3140]
21995
+ ldr r3, [r4, #2448]
21996
+ add r3, r3, r7
2146021997 ldr r0, [r3, #4]
2146121998 ubfx r0, r0, #10, #16
2146221999 bl FtlGcMarkBadPhyBlk
2146322000 mov r0, r5
2146422001 bl get_new_active_ppa
21465
- ldr r3, [r4, #2444]
21466
- mov r2, r6
22002
+ ldr r3, [r4, #2448]
22003
+ mov r2, r0
22004
+ str r0, [sp, #12]
2146722005 mov r1, #1
21468
- add r3, r3, r8
21469
- str r0, [sp, #4]
21470
- str r0, [r3, #4]
21471
- mov r0, r3
22006
+ add r0, r3, r7
22007
+ str r2, [r0, #4]
22008
+ mov r2, r8
2147222009 ldrb r3, [r5, #9] @ zero_extendqisi2
2147322010 bl FlashProgPages
21474
- ldr r3, [r4, #2444]
21475
- ldr r3, [r3, r8]
22011
+ ldr r3, [r4, #2448]
22012
+ ldr r3, [r3, r7]
2147622013 cmn r3, #1
21477
- ldreq r2, .L3629+4
21478
- moveq r3, #1
21479
- streq r3, [r2, #-3616]
21480
- ldr r3, [r7, #-3616]
22014
+ streq fp, [r6, #-3612]
22015
+ ldr r3, [r6, #-3612]
2148122016 cmp r3, #0
21482
- beq .L3597
21483
- b .L3587
21484
-.L3628:
21485
- ldr r3, [r2, #4]
21486
- cmp r6, #0
21487
- ldr r0, [r2, #16]
21488
- add r1, sp, #4
21489
- mov r2, #1
21490
- orrne r3, r3, #-2147483648
21491
- str r3, [sp, #4]
21492
- bl log2phys
21493
- ldr r3, [r4, #2444]
21494
- add r8, r3, r8
21495
- ldr r3, [r8, #12]
21496
- ldr r0, [r3, #12]
21497
- cmn r0, #1
21498
- beq .L3604
21499
- ubfx r0, r0, #10, #16
21500
- bl P2V_block_in_plane
21501
- ldr r2, [r7, #-3544]
21502
- mov r3, r0, asl #1
21503
- mov r8, r0
21504
- ldrh r2, [r2, r3]
21505
- cmp r2, #0
21506
- bne .L3605
21507
- ldr r0, .L3629+12
21508
- mov r1, r8
21509
- bl printk
21510
-.L3605:
21511
- mov r0, r8
21512
- bl decrement_vpc_count
21513
-.L3604:
21514
- add r9, r9, #1
21515
- b .L3591
21516
-.L3587:
21517
- mov r0, #0
21518
- add sp, sp, #12
21519
- @ sp needed
21520
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
21521
-.L3630:
22017
+ beq .L3522
22018
+ b .L3511
22019
+.L3553:
2152222020 .align 2
21523
-.L3629:
21524
- .word .LANCHOR4
22021
+.L3552:
2152522022 .word .LANCHOR2
2152622023 .word .LANCHOR0
2152722024 .word .LC159
2152822025 .word .LANCHOR2-2658
21529
- .word .LANCHOR0+2388
22026
+ .word .LANCHOR0+2390
2153022027 .fnend
2153122028 .size FtlCacheWriteBack, .-FtlCacheWriteBack
2153222029 .align 2
2153322030 .global FtlSysFlush
22031
+ .syntax unified
22032
+ .arm
22033
+ .fpu softvfp
2153422034 .type FtlSysFlush, %function
2153522035 FtlSysFlush:
2153622036 .fnstart
2153722037 @ args = 0, pretend = 0, frame = 0
2153822038 @ frame_needed = 0, uses_anonymous_args = 0
21539
- ldr r3, .L3635
21540
- ldr r3, [r3, #-3616]
22039
+ ldr r3, .L3560
22040
+ ldr r3, [r3, #-3612]
2154122041 cmp r3, #0
21542
- bne .L3634
21543
- ldr r3, .L3635+4
21544
- stmfd sp!, {r4, lr}
22042
+ bne .L3557
22043
+ ldr r3, .L3560+4
22044
+ push {r4, lr}
2154522045 .save {r4, lr}
21546
- ldr r4, [r3, #504]
22046
+ ldr r4, [r3, #500]
2154722047 cmp r4, #1
21548
- bne .L3632
22048
+ bne .L3555
2154922049 bl FtlCacheWriteBack
2155022050 bl l2p_flush
2155122051 mov r0, r4
2155222052 bl FtlEctTblFlush
2155322053 bl FtlVpcTblFlush
21554
-.L3632:
22054
+.L3555:
2155522055 mov r0, #0
21556
- ldmfd sp!, {r4, pc}
21557
-.L3634:
22056
+ pop {r4, pc}
22057
+.L3557:
2155822058 mov r0, #0
2155922059 bx lr
21560
-.L3636:
22060
+.L3561:
2156122061 .align 2
21562
-.L3635:
22062
+.L3560:
2156322063 .word .LANCHOR2
2156422064 .word .LANCHOR1
2156522065 .fnend
2156622066 .size FtlSysFlush, .-FtlSysFlush
2156722067 .align 2
2156822068 .global FtlDeInit
22069
+ .syntax unified
22070
+ .arm
22071
+ .fpu softvfp
2156922072 .type FtlDeInit, %function
2157022073 FtlDeInit:
2157122074 .fnstart
2157222075 @ args = 0, pretend = 0, frame = 0
2157322076 @ frame_needed = 0, uses_anonymous_args = 0
21574
- stmfd sp!, {r3, lr}
21575
- .save {r3, lr}
21576
- ldr r3, .L3640
21577
- ldr r3, [r3, #504]
22077
+ ldr r3, .L3568
22078
+ ldr r3, [r3, #500]
2157822079 cmp r3, #1
21579
- bne .L3638
22080
+ bne .L3565
22081
+ push {r4, lr}
22082
+ .save {r4, lr}
2158022083 bl FtlSysFlush
21581
-.L3638:
2158222084 mov r0, #0
21583
- ldmfd sp!, {r3, pc}
21584
-.L3641:
22085
+ pop {r4, pc}
22086
+.L3565:
22087
+ mov r0, #0
22088
+ bx lr
22089
+.L3569:
2158522090 .align 2
21586
-.L3640:
22091
+.L3568:
2158722092 .word .LANCHOR1
2158822093 .fnend
2158922094 .size FtlDeInit, .-FtlDeInit
2159022095 .align 2
2159122096 .global ftl_deinit
22097
+ .syntax unified
22098
+ .arm
22099
+ .fpu softvfp
2159222100 .type ftl_deinit, %function
2159322101 ftl_deinit:
2159422102 .fnstart
2159522103 @ args = 0, pretend = 0, frame = 0
2159622104 @ frame_needed = 0, uses_anonymous_args = 0
21597
- stmfd sp!, {r3, lr}
21598
- .save {r3, lr}
22105
+ push {r4, lr}
22106
+ .save {r4, lr}
2159922107 bl ftl_flash_de_init
2160022108 bl FtlDeInit
21601
- ldmfd sp!, {r3, lr}
22109
+ pop {r4, lr}
2160222110 b ftl_flash_de_init
2160322111 .fnend
2160422112 .size ftl_deinit, .-ftl_deinit
2160522113 .align 2
2160622114 .global rk_ftl_de_init
22115
+ .syntax unified
22116
+ .arm
22117
+ .fpu softvfp
2160722118 .type rk_ftl_de_init, %function
2160822119 rk_ftl_de_init:
2160922120 .fnstart
2161022121 @ args = 0, pretend = 0, frame = 0
2161122122 @ frame_needed = 0, uses_anonymous_args = 0
21612
- stmfd sp!, {r3, lr}
21613
- .save {r3, lr}
22123
+ push {r4, lr}
22124
+ .save {r4, lr}
2161422125 mov r1, #0
21615
- ldr r0, .L3646
22126
+ ldr r0, .L3574
2161622127 bl printk
21617
- ldmfd sp!, {r3, lr}
22128
+ pop {r4, lr}
2161822129 b ftl_deinit
21619
-.L3647:
22130
+.L3575:
2162022131 .align 2
21621
-.L3646:
22132
+.L3574:
2162222133 .word .LC160
2162322134 .fnend
2162422135 .size rk_ftl_de_init, .-rk_ftl_de_init
2162522136 .align 2
2162622137 .global ftl_cache_flush
22138
+ .syntax unified
22139
+ .arm
22140
+ .fpu softvfp
2162722141 .type ftl_cache_flush, %function
2162822142 ftl_cache_flush:
2162922143 .fnstart
....@@ -21635,6 +22149,9 @@
2163522149 .size ftl_cache_flush, .-ftl_cache_flush
2163622150 .align 2
2163722151 .global rk_ftl_cache_write_back
22152
+ .syntax unified
22153
+ .arm
22154
+ .fpu softvfp
2163822155 .type rk_ftl_cache_write_back, %function
2163922156 rk_ftl_cache_write_back:
2164022157 .fnstart
....@@ -21646,74 +22163,89 @@
2164622163 .size rk_ftl_cache_write_back, .-rk_ftl_cache_write_back
2164722164 .align 2
2164822165 .global ftl_discard
22166
+ .syntax unified
22167
+ .arm
22168
+ .fpu softvfp
2164922169 .type ftl_discard, %function
2165022170 ftl_discard:
2165122171 .fnstart
2165222172 @ args = 0, pretend = 0, frame = 8
2165322173 @ frame_needed = 0, uses_anonymous_args = 0
21654
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
21655
- .save {r4, r5, r6, r7, r8, r9, lr}
21656
- .pad #12
22174
+ push {r0, r1, r4, r5, r6, r7, r8, lr}
22175
+ .save {r4, r5, r6, r7, r8, lr}
22176
+ .pad #8
2165722177 mov r6, r0
21658
- ldr r8, .L3669
22178
+ ldr r5, .L3596
22179
+ ldr r3, [r5, #2432]
22180
+ cmp r3, r1
22181
+ cmpcs r3, r0
22182
+ movls r0, #1
22183
+ movhi r0, #0
22184
+ bls .L3586
22185
+ add r2, r6, r1
2165922186 mov r4, r1
21660
- ldr r3, [r8, #2428]
21661
- cmp r1, r3
21662
- cmpls r0, r3
21663
- movcs r5, #1
21664
- movcc r5, #0
21665
- bcs .L3658
21666
- add r2, r0, r1
21667
- cmp r2, r3
21668
- bhi .L3658
22187
+ cmp r3, r2
22188
+ bcc .L3586
2166922189 cmp r1, #31
21670
- bls .L3656
21671
- ldr r7, .L3669+4
21672
- ldr r3, [r7, #-3616]
22190
+ bls .L3578
22191
+ ldr r7, .L3596+4
22192
+ ldr r3, [r7, #-3612]
2167322193 cmp r3, #0
21674
- movne r0, r5
21675
- bne .L3651
22194
+ bne .L3578
2167622195 bl FtlCacheWriteBack
21677
- movw r3, #2394
21678
- ldrh r5, [r8, r3]
22196
+ movw r3, #2396
2167922197 mov r0, r6
22198
+ ldrh r5, [r5, r3]
2168022199 mov r1, r5
2168122200 bl __aeabi_uidiv
2168222201 smulbb r3, r0, r5
2168322202 mov r8, r0
21684
- rsb r6, r3, r6
22203
+ sub r6, r6, r3
2168522204 uxth r6, r6
2168622205 cmp r6, #0
21687
- beq .L3652
21688
- rsb r5, r6, r5
22206
+ beq .L3580
22207
+ sub r5, r5, r6
2168922208 add r8, r0, #1
2169022209 cmp r5, r4
2169122210 movcs r5, r4
2169222211 uxth r5, r5
21693
- rsb r4, r5, r4
21694
-.L3652:
21695
- ldr r5, .L3669+8
22212
+ sub r4, r4, r5
22213
+.L3580:
22214
+ ldr r5, .L3596+8
2169622215 mvn r3, #0
21697
- ldr r9, .L3669+12
2169822216 str r3, [sp, #4]
2169922217 mov r6, r5
21700
-.L3653:
22218
+.L3581:
2170122219 ldrh r3, [r5]
2170222220 cmp r4, r3
21703
- bcc .L3668
21704
- mov r0, r8
21705
- mov r1, sp
22221
+ bcs .L3583
22222
+ ldr r3, [r7, #1996]
22223
+ cmp r3, #32
22224
+ bls .L3584
22225
+ mov r3, #0
22226
+ str r3, [r7, #1996]
22227
+ bl l2p_flush
22228
+ bl FtlVpcTblFlush
22229
+.L3584:
22230
+ mov r0, #0
22231
+.L3578:
22232
+ add sp, sp, #8
22233
+ @ sp needed
22234
+ pop {r4, r5, r6, r7, r8, pc}
22235
+.L3583:
2170622236 mov r2, #0
22237
+ mov r1, sp
22238
+ mov r0, r8
2170722239 bl log2phys
2170822240 ldr r3, [sp]
2170922241 cmn r3, #1
21710
- beq .L3654
21711
- ldr r3, [r9, #1996]
21712
- add r1, sp, #4
22242
+ beq .L3582
22243
+ ldr r3, [r7, #1996]
2171322244 mov r2, #1
22245
+ add r1, sp, #4
2171422246 mov r0, r8
2171522247 add r3, r3, #1
21716
- str r3, [r9, #1996]
22248
+ str r3, [r7, #1996]
2171722249 ldr r3, [r7, #-3360]
2171822250 add r3, r3, #1
2171922251 str r3, [r7, #-3360]
....@@ -21722,40 +22254,27 @@
2172222254 ubfx r0, r0, #10, #16
2172322255 bl P2V_block_in_plane
2172422256 bl decrement_vpc_count
21725
-.L3654:
22257
+.L3582:
2172622258 ldrh r3, [r6]
2172722259 add r8, r8, #1
21728
- rsb r4, r3, r4
21729
- b .L3653
21730
-.L3668:
21731
- ldr r3, .L3669+12
21732
- ldr r2, [r3, #1996]
21733
- cmp r2, #32
21734
- bls .L3656
21735
- mov r2, #0
21736
- str r2, [r3, #1996]
21737
- bl l2p_flush
21738
- bl FtlVpcTblFlush
21739
-.L3656:
21740
- mov r0, #0
21741
- b .L3651
21742
-.L3658:
22260
+ sub r4, r4, r3
22261
+ b .L3581
22262
+.L3586:
2174322263 mvn r0, #0
21744
-.L3651:
21745
- add sp, sp, #12
21746
- @ sp needed
21747
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc}
21748
-.L3670:
22264
+ b .L3578
22265
+.L3597:
2174922266 .align 2
21750
-.L3669:
22267
+.L3596:
2175122268 .word .LANCHOR0
2175222269 .word .LANCHOR2
21753
- .word .LANCHOR0+2394
21754
- .word .LANCHOR4
22270
+ .word .LANCHOR0+2396
2175522271 .fnend
2175622272 .size ftl_discard, .-ftl_discard
2175722273 .align 2
2175822274 .global FtlDiscard
22275
+ .syntax unified
22276
+ .arm
22277
+ .fpu softvfp
2175922278 .type FtlDiscard, %function
2176022279 FtlDiscard:
2176122280 .fnstart
....@@ -21767,393 +22286,403 @@
2176722286 .size FtlDiscard, .-FtlDiscard
2176822287 .align 2
2176922288 .global ftl_read
22289
+ .syntax unified
22290
+ .arm
22291
+ .fpu softvfp
2177022292 .type ftl_read, %function
2177122293 ftl_read:
2177222294 .fnstart
2177322295 @ args = 0, pretend = 0, frame = 56
2177422296 @ frame_needed = 0, uses_anonymous_args = 0
21775
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22297
+ ldr ip, .L3643
22298
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2177622299 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
21777
- mov r5, r1
21778
- ldr r1, .L3720
2177922300 .pad #84
2178022301 sub sp, sp, #84
21781
- ldr r1, [r1, #504]
21782
- cmp r1, #1
21783
- bne .L3697
22302
+ ldr ip, [ip, #500]
22303
+ cmp ip, #1
22304
+ bne .L3623
2178422305 cmp r0, #16
2178522306 mov r8, r3
21786
- mov r9, r2
21787
- bne .L3674
21788
- mov r1, r2
21789
- add r0, r5, #256
22307
+ str r2, [sp, #28]
22308
+ mov r5, r1
22309
+ bne .L3601
2179022310 mov r2, r3
22311
+ ldr r1, [sp, #28]
22312
+ add r0, r5, #256
2179122313 bl FtlVendorPartRead
21792
- b .L3673
21793
-.L3674:
21794
- ldr r2, .L3720+4
21795
- ldr r3, [r2, #2428]
21796
- cmp r9, r3
21797
- cmpls r5, r3
21798
- bcs .L3697
21799
- add r1, r5, r9
21800
- str r1, [sp, #40]
22314
+ mov r10, r0
22315
+.L3599:
22316
+ mov r0, r10
22317
+ add sp, sp, #84
22318
+ @ sp needed
22319
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
22320
+.L3601:
22321
+ ldr r2, .L3643+4
22322
+ ldr r1, [sp, #28]
22323
+ ldr r3, [r2, #2432]
2180122324 cmp r1, r3
21802
- bhi .L3697
21803
- movw r3, #2394
22325
+ cmpls r5, r3
22326
+ bcs .L3623
22327
+ add r1, r5, r1
22328
+ cmp r3, r1
22329
+ str r1, [sp, #44]
22330
+ bcc .L3623
22331
+ movw r3, #2396
2180422332 mov r0, r5
2180522333 ldrh r4, [r2, r3]
2180622334 mov r1, r4
2180722335 bl __aeabi_uidiv
22336
+ ldr r3, [sp, #44]
2180822337 mov r1, r4
21809
- ldr r3, [sp, #40]
21810
- str r0, [sp, #32]
22338
+ str r0, [sp, #36]
2181122339 sub r0, r3, #1
2181222340 bl __aeabi_uidiv
21813
- ldr r3, [sp, #32]
21814
- str r0, [sp, #36]
22341
+ ldr r3, [sp, #36]
22342
+ ldr r1, [sp, #28]
22343
+ str r0, [sp, #40]
2181522344 rsb r3, r3, #1
2181622345 add r3, r3, r0
21817
- str r3, [sp, #28]
21818
- ldr r3, .L3720+8
21819
- ldr r1, [sp, #28]
21820
- ldr r0, [sp, #32]
22346
+ str r3, [sp, #32]
22347
+ ldr r3, .L3643+8
2182122348 ldr r2, [r3, #-3336]
21822
- add r2, r9, r2
22349
+ add r2, r2, r1
22350
+ ldr r1, [sp, #32]
2182322351 str r2, [r3, #-3336]
2182422352 ldr r2, [r3, #-3364]
21825
- add r2, r1, r2
21826
- ldr r1, [sp, #36]
22353
+ add r2, r2, r1
22354
+ mov r1, r0
22355
+ ldr r0, [sp, #36]
2182722356 str r2, [r3, #-3364]
2182822357 bl FtlCacheMetchLpa
2182922358 cmp r0, #0
21830
- beq .L3675
22359
+ beq .L3602
2183122360 bl FtlCacheWriteBack
21832
-.L3675:
21833
- ldr r6, [sp, #32]
21834
- mov r10, #0
21835
- ldr r4, .L3720+8
21836
- mov r7, r10
21837
- str r10, [sp, #48]
21838
- str r10, [sp, #52]
21839
-.L3676:
21840
- ldr r3, [sp, #28]
22361
+.L3602:
22362
+ ldr r6, [sp, #36]
22363
+ mov r3, #0
22364
+ ldr r4, .L3643+8
22365
+ mov r7, r3
22366
+ mov r10, r3
22367
+ str r3, [sp, #52]
22368
+ str r3, [sp, #48]
22369
+.L3603:
22370
+ ldr r3, [sp, #32]
2184122371 cmp r3, #0
21842
- beq .L3719
21843
- mov r0, r6
21844
- add r1, sp, #76
22372
+ bne .L3620
22373
+ ldr r3, .L3643+12
22374
+ ldrh r3, [r3, #-2]
22375
+ cmp r3, #0
22376
+ beq .L3599
22377
+ mov r1, #1
22378
+ ldr r0, [sp, #32]
22379
+ bl ftl_do_gc
22380
+ b .L3599
22381
+.L3620:
2184522382 mov r2, #0
22383
+ add r1, sp, #76
22384
+ mov r0, r6
2184622385 bl log2phys
2184722386 ldr r3, [sp, #76]
2184822387 cmn r3, #1
21849
- bne .L3715
21850
- mov fp, #0
21851
-.L3677:
21852
- ldr r3, .L3720+12
21853
- ldrh r0, [r3]
21854
- cmp fp, r0
21855
- bcs .L3681
21856
- mla r0, r0, r6, fp
21857
- ldr r2, [sp, #40]
21858
- cmp r0, r5
21859
- movcs r3, #1
21860
- movcc r3, #0
21861
- cmp r0, r2
21862
- movcs r3, #0
21863
- cmp r3, #0
21864
- beq .L3679
21865
- rsb r0, r5, r0
21866
- mov r1, #0
21867
- mov r2, #512
21868
- add r0, r8, r0, asl #9
21869
- bl ftl_memset
21870
-.L3679:
21871
- add fp, fp, #1
21872
- b .L3677
21873
-.L3715:
22388
+ moveq r9, #0
22389
+ beq .L3605
2187422390 ldr r2, [r4, #-536]
21875
- mov fp, #36
21876
- mla fp, fp, r7, r2
21877
- str r3, [fp, #4]
21878
- ldr r3, [sp, #32]
21879
- cmp r6, r3
21880
- bne .L3682
21881
- ldr r3, [r4, #-508]
21882
- mov r0, r5
21883
- str r3, [fp, #8]
21884
- ldr r3, .L3720+12
21885
- ldrh ip, [r3]
21886
- mov r1, ip
21887
- str ip, [sp, #44]
21888
- bl __aeabi_uidivmod
21889
- ldr ip, [sp, #44]
21890
- str r1, [sp, #56]
21891
- rsb r3, r1, ip
21892
- cmp r3, r9
21893
- movcs r3, r9
21894
- cmp r3, ip
21895
- str r3, [sp, #48]
21896
- streq r8, [fp, #8]
21897
- b .L3683
21898
-.L3682:
22391
+ mov r9, #36
22392
+ mla r9, r9, r7, r2
22393
+ str r3, [r9, #4]
2189922394 ldr r3, [sp, #36]
2190022395 cmp r6, r3
21901
- bne .L3684
21902
- ldr r3, [r4, #-504]
21903
- ldr r1, [sp, #40]
21904
- str r3, [fp, #8]
21905
- ldr r3, .L3720+12
21906
- ldrh r2, [r3]
21907
- mul r3, r2, r6
21908
- rsb r10, r3, r1
21909
- cmp r10, r2
21910
- bne .L3683
21911
- b .L3717
21912
-.L3684:
21913
- ldr r3, .L3720+12
21914
- ldrh r3, [r3]
21915
- mul r3, r3, r6
21916
-.L3717:
21917
- rsb r3, r5, r3
21918
- add r3, r8, r3, asl #9
21919
- str r3, [fp, #8]
21920
-.L3683:
21921
- ldr r3, .L3720+16
22396
+ bne .L3609
22397
+ ldr r3, [r4, #-508]
22398
+ mov r0, r5
22399
+ str r3, [r9, #8]
22400
+ ldr r3, .L3643+16
22401
+ ldrh fp, [r3]
22402
+ mov r1, fp
22403
+ bl __aeabi_uidivmod
22404
+ ldr r2, [sp, #28]
22405
+ sub r3, fp, r1
22406
+ str r1, [sp, #56]
22407
+ cmp r2, r3
22408
+ movcc r3, r2
22409
+ cmp r3, fp
22410
+ str r3, [sp, #48]
22411
+ streq r8, [r9, #8]
22412
+.L3610:
22413
+ ldr r3, .L3643+20
2192222414 ldr r2, [r4, #-496]
21923
- str r6, [fp, #16]
22415
+ str r6, [r9, #16]
2192422416 ldrh r3, [r3]
21925
- mul r3, r3, r7
22417
+ mul r3, r7, r3
2192622418 add r7, r7, #1
2192722419 bic r3, r3, #3
2192822420 add r3, r2, r3
21929
- str r3, [fp, #12]
21930
-.L3681:
21931
- ldr r3, [sp, #28]
22421
+ str r3, [r9, #12]
22422
+ b .L3608
22423
+.L3607:
22424
+ mla r0, r0, r6, r9
22425
+ ldr r2, [sp, #44]
22426
+ cmp r5, r0
22427
+ movls r3, #1
22428
+ movhi r3, #0
22429
+ cmp r2, r0
22430
+ movls r3, #0
22431
+ cmp r3, #0
22432
+ beq .L3606
22433
+ sub r0, r0, r5
22434
+ mov r2, #512
22435
+ mov r1, #0
22436
+ add r0, r8, r0, lsl #9
22437
+ bl ftl_memset
22438
+.L3606:
22439
+ add r9, r9, #1
22440
+.L3605:
22441
+ ldr r3, .L3643+16
22442
+ ldrh r0, [r3]
22443
+ cmp r9, r0
22444
+ bcc .L3607
22445
+.L3608:
22446
+ ldr r3, [sp, #32]
2193222447 add r6, r6, #1
2193322448 subs r3, r3, #1
21934
- str r3, [sp, #28]
21935
- beq .L3685
21936
- ldr r3, .L3720+20
22449
+ str r3, [sp, #32]
22450
+ beq .L3612
22451
+ ldr r3, .L3643+24
2193722452 ldrh r3, [r3]
21938
- cmp r7, r3, asl #3
21939
- bne .L3676
21940
-.L3685:
22453
+ cmp r7, r3, lsl #3
22454
+ bne .L3603
22455
+.L3612:
2194122456 cmp r7, #0
21942
- beq .L3676
21943
- ldr r0, [r4, #-536]
21944
- mov r1, r7
22457
+ beq .L3603
2194522458 mov r2, #0
22459
+ mov r1, r7
22460
+ ldr r0, [r4, #-536]
22461
+ mov fp, #0
2194622462 bl FlashReadPages
22463
+ ldr r3, [sp, #52]
22464
+ lsl r3, r3, #9
22465
+ str r3, [sp, #68]
2194722466 ldr r3, [sp, #56]
21948
- mov r3, r3, asl #9
22467
+ lsl r3, r3, #9
2194922468 str r3, [sp, #60]
2195022469 ldr r3, [sp, #48]
21951
- mov r3, r3, asl #9
22470
+ lsl r3, r3, #9
2195222471 str r3, [sp, #64]
21953
- mov r3, r10, asl #9
21954
- str r3, [sp, #68]
21955
- mov r3, #0
21956
- str r3, [sp, #44]
21957
-.L3692:
21958
- ldr r3, [sp, #44]
21959
- mov ip, #36
21960
- ldr r1, [sp, #32]
21961
- mul fp, ip, r3
22472
+.L3619:
22473
+ mov r9, #36
2196222474 ldr r3, [r4, #-536]
21963
- add r3, r3, fp
22475
+ mul r9, r9, fp
22476
+ ldr r1, [sp, #36]
22477
+ add r3, r3, r9
2196422478 ldr r2, [r3, #16]
21965
- cmp r2, r1
21966
- bne .L3687
22479
+ cmp r1, r2
22480
+ bne .L3614
2196722481 ldr r1, [r3, #8]
2196822482 ldr r3, [r4, #-508]
2196922483 cmp r1, r3
21970
- bne .L3688
22484
+ bne .L3615
2197122485 ldr r3, [sp, #60]
2197222486 mov r0, r8
2197322487 ldr r2, [sp, #64]
2197422488 add r1, r1, r3
21975
- b .L3718
21976
-.L3687:
21977
- ldr r1, [sp, #36]
21978
- cmp r2, r1
21979
- bne .L3688
21980
- ldr r1, [r3, #8]
21981
- ldr r3, [r4, #-504]
21982
- cmp r1, r3
21983
- bne .L3688
21984
- ldr r3, .L3720+12
21985
- ldr r2, [sp, #68]
21986
- ldrh r0, [r3]
21987
- ldr r3, [sp, #36]
21988
- mul r0, r0, r3
21989
- rsb r0, r5, r0
21990
- add r0, r8, r0, asl #9
21991
-.L3718:
22489
+.L3642:
2199222490 bl ftl_memcpy
21993
-.L3688:
21994
- ldr r2, [r4, #-536]
21995
- add r3, r2, fp
21996
- ldr r1, [r2, fp]
21997
- cmn r1, #1
21998
- streq r1, [sp, #52]
21999
- ldreq r2, [r4, #-3160]
22000
- addeq r2, r2, #1
22001
- streq r2, [r4, #-3160]
22002
- ldr r2, [r3, #12]
22003
- ldr r1, [r3, #16]
22004
- ldr r2, [r2, #8]
22005
- cmp r1, r2
22006
- beq .L3690
22007
- ldr r2, [r4, #-3160]
22008
- ldr r0, .L3720+24
22009
- add r2, r2, #1
22010
- str r2, [r4, #-3160]
22011
- ldr lr, [r3, #12]
22012
- ldr r2, [r3, #8]
22013
- ldr r1, [lr, #4]
22014
- str r1, [sp]
22015
- ldr r1, [lr, #8]
22016
- str r1, [sp, #4]
22017
- ldr r1, [lr, #12]
22018
- str r1, [sp, #8]
22019
- ldr r1, [r2]
22020
- str r1, [sp, #12]
22021
- ldr r2, [r2, #4]
22022
- str r2, [sp, #16]
22023
- ldr r1, [r3, #16]
22024
- ldr r2, [r3, #4]
22025
- ldr r3, [lr]
22026
- bl printk
22027
-.L3690:
22491
+.L3615:
2202822492 ldr r3, [r4, #-536]
22029
- add r2, r3, fp
22030
- ldr r3, [r3, fp]
22493
+ ldr r2, [r3, r9]
22494
+ add r1, r3, r9
22495
+ cmn r2, #1
22496
+ ldreq r3, [r4, #-3164]
22497
+ moveq r10, r2
22498
+ addeq r3, r3, #1
22499
+ streq r3, [r4, #-3164]
22500
+ ldr r3, [r1, #12]
22501
+ ldr r2, [r1, #16]
22502
+ ldr r3, [r3, #8]
22503
+ cmp r2, r3
22504
+ beq .L3617
22505
+ ldr r3, [r4, #-3164]
22506
+ add r3, r3, #1
22507
+ str r3, [r4, #-3164]
22508
+ ldr r2, [r1, #8]
22509
+ ldr r3, [r1, #12]
22510
+ ldr r0, [r2, #4]
22511
+ str r0, [sp, #16]
22512
+ ldr r2, [r2]
22513
+ ldr r0, .L3643+28
22514
+ str r2, [sp, #12]
22515
+ ldr r2, [r3, #12]
22516
+ str r2, [sp, #8]
22517
+ ldr r2, [r3, #8]
22518
+ str r2, [sp, #4]
22519
+ ldr r2, [r3, #4]
22520
+ str r2, [sp]
22521
+ ldr r2, [r1, #4]
22522
+ ldr r3, [r3]
22523
+ ldr r1, [r1, #16]
22524
+ bl printk
22525
+.L3617:
22526
+ ldr r3, [r4, #-536]
22527
+ add r2, r3, r9
22528
+ ldr r3, [r3, r9]
2203122529 cmp r3, #256
22032
- bne .L3691
22530
+ bne .L3618
2203322531 ldr r0, [r2, #4]
2203422532 ubfx r0, r0, #10, #16
2203522533 bl P2V_block_in_plane
2203622534 bl FtlGcRefreshBlock
22037
-.L3691:
22038
- ldr r3, [sp, #44]
22039
- add r3, r3, #1
22040
- str r3, [sp, #44]
22041
- cmp r3, r7
22042
- bne .L3692
22535
+.L3618:
22536
+ add fp, fp, #1
22537
+ cmp r7, fp
22538
+ bne .L3619
2204322539 mov r7, #0
22044
- b .L3676
22045
-.L3719:
22046
- ldr r3, .L3720+28
22047
- ldrh r3, [r3, #-2]
22048
- cmp r3, #0
22049
- beq .L3694
22050
- ldr r0, [sp, #28]
22051
- mov r1, #1
22052
- bl ftl_do_gc
22053
-.L3694:
22054
- ldr r0, [sp, #52]
22055
- b .L3673
22056
-.L3697:
22057
- mvn r0, #0
22058
-.L3673:
22059
- add sp, sp, #84
22060
- @ sp needed
22061
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
22062
-.L3721:
22540
+ b .L3603
22541
+.L3609:
22542
+ ldr r3, [sp, #40]
22543
+ cmp r6, r3
22544
+ bne .L3611
22545
+ ldr r3, [r4, #-504]
22546
+ ldr r1, [sp, #44]
22547
+ str r3, [r9, #8]
22548
+ ldr r3, .L3643+16
22549
+ ldrh r2, [r3]
22550
+ mul r3, r2, r6
22551
+ sub r1, r1, r3
22552
+ cmp r2, r1
22553
+ str r1, [sp, #52]
22554
+ bne .L3610
22555
+.L3641:
22556
+ sub r3, r3, r5
22557
+ add r3, r8, r3, lsl #9
22558
+ str r3, [r9, #8]
22559
+ b .L3610
22560
+.L3611:
22561
+ ldr r3, .L3643+16
22562
+ ldrh r3, [r3]
22563
+ mul r3, r6, r3
22564
+ b .L3641
22565
+.L3614:
22566
+ ldr r1, [sp, #40]
22567
+ cmp r1, r2
22568
+ bne .L3615
22569
+ ldr r1, [r3, #8]
22570
+ ldr r3, [r4, #-504]
22571
+ cmp r1, r3
22572
+ bne .L3615
22573
+ ldr r3, .L3643+16
22574
+ ldr r2, [sp, #68]
22575
+ ldrh r0, [r3]
22576
+ ldr r3, [sp, #40]
22577
+ mul r0, r3, r0
22578
+ sub r0, r0, r5
22579
+ add r0, r8, r0, lsl #9
22580
+ b .L3642
22581
+.L3623:
22582
+ mvn r10, #0
22583
+ b .L3599
22584
+.L3644:
2206322585 .align 2
22064
-.L3720:
22586
+.L3643:
2206522587 .word .LANCHOR1
2206622588 .word .LANCHOR0
2206722589 .word .LANCHOR2
22068
- .word .LANCHOR0+2394
22069
- .word .LANCHOR0+2400
22070
- .word .LANCHOR0+2320
22071
- .word .LC148
2207222590 .word .LANCHOR2-2656
22591
+ .word .LANCHOR0+2396
22592
+ .word .LANCHOR0+2402
22593
+ .word .LANCHOR0+2324
22594
+ .word .LC148
2207322595 .fnend
2207422596 .size ftl_read, .-ftl_read
2207522597 .align 2
2207622598 .global ftl_vendor_read
22599
+ .syntax unified
22600
+ .arm
22601
+ .fpu softvfp
2207722602 .type ftl_vendor_read, %function
2207822603 ftl_vendor_read:
2207922604 .fnstart
2208022605 @ args = 0, pretend = 0, frame = 0
2208122606 @ frame_needed = 0, uses_anonymous_args = 0
22082
- str lr, [sp, #-4]!
22083
- .save {lr}
22084
- mov ip, r1
22085
- mov lr, r0
22607
+ @ link register save eliminated.
2208622608 mov r3, r2
22087
- mov r1, lr
22609
+ mov r2, r1
22610
+ mov r1, r0
2208822611 mov r0, #16
22089
- mov r2, ip
22090
- ldr lr, [sp], #4
2209122612 b ftl_read
2209222613 .fnend
2209322614 .size ftl_vendor_read, .-ftl_vendor_read
2209422615 .align 2
2209522616 .global FlashBootVendorRead
22617
+ .syntax unified
22618
+ .arm
22619
+ .fpu softvfp
2209622620 .type FlashBootVendorRead, %function
2209722621 FlashBootVendorRead:
2209822622 .fnstart
2209922623 @ args = 0, pretend = 0, frame = 0
2210022624 @ frame_needed = 0, uses_anonymous_args = 0
22101
- stmfd sp!, {r4, r5, r6, lr}
22625
+ push {r4, r5, r6, lr}
2210222626 .save {r4, r5, r6, lr}
22103
- mov r4, r2
22104
- mov r6, r0
22627
+ mov r4, r0
2210522628 mov r5, r1
22629
+ mov r6, r2
2210622630 bl rknand_device_lock
22107
- ldr r3, .L3728
22108
- ldr r3, [r3, #504]
22631
+ ldr r3, .L3650
22632
+ ldr r3, [r3, #500]
2210922633 cmp r3, #1
2211022634 mvnne r4, #0
22111
- bne .L3725
22112
- mov r2, r4
22113
- mov r0, r6
22635
+ bne .L3647
22636
+ mov r0, r4
22637
+ mov r2, r6
2211422638 mov r1, r5
2211522639 bl ftl_vendor_read
2211622640 mov r4, r0
22117
-.L3725:
22641
+.L3647:
2211822642 bl rknand_device_unlock
2211922643 mov r0, r4
22120
- ldmfd sp!, {r4, r5, r6, pc}
22121
-.L3729:
22644
+ pop {r4, r5, r6, pc}
22645
+.L3651:
2212222646 .align 2
22123
-.L3728:
22647
+.L3650:
2212422648 .word .LANCHOR1
2212522649 .fnend
2212622650 .size FlashBootVendorRead, .-FlashBootVendorRead
2212722651 .align 2
2212822652 .global ftl_sys_read
22653
+ .syntax unified
22654
+ .arm
22655
+ .fpu softvfp
2212922656 .type ftl_sys_read, %function
2213022657 ftl_sys_read:
2213122658 .fnstart
2213222659 @ args = 0, pretend = 0, frame = 0
2213322660 @ frame_needed = 0, uses_anonymous_args = 0
2213422661 @ link register save eliminated.
22135
- mov ip, r1
2213622662 mov r3, r2
22663
+ mov r2, r1
2213722664 add r1, r0, #256
22138
- mov r2, ip
2213922665 mov r0, #16
2214022666 b ftl_read
2214122667 .fnend
2214222668 .size ftl_sys_read, .-ftl_sys_read
2214322669 .align 2
2214422670 .global StorageSysDataLoad
22671
+ .syntax unified
22672
+ .arm
22673
+ .fpu softvfp
2214522674 .type StorageSysDataLoad, %function
2214622675 StorageSysDataLoad:
2214722676 .fnstart
2214822677 @ args = 0, pretend = 0, frame = 0
2214922678 @ frame_needed = 0, uses_anonymous_args = 0
22150
- stmfd sp!, {r3, r4, r5, lr}
22151
- .save {r3, r4, r5, lr}
22152
- mov r2, #512
22153
- mov r5, r0
22679
+ push {r4, r5, r6, lr}
22680
+ .save {r4, r5, r6, lr}
2215422681 mov r4, r1
22155
- mov r0, r1
22682
+ mov r5, r0
22683
+ mov r2, #512
2215622684 mov r1, #0
22685
+ mov r0, r4
2215722686 bl ftl_memset
2215822687 bl rknand_device_lock
2215922688 mov r2, r4
....@@ -22163,11 +22692,14 @@
2216322692 mov r4, r0
2216422693 bl rknand_device_unlock
2216522694 mov r0, r4
22166
- ldmfd sp!, {r3, r4, r5, pc}
22695
+ pop {r4, r5, r6, pc}
2216722696 .fnend
2216822697 .size StorageSysDataLoad, .-StorageSysDataLoad
2216922698 .align 2
2217022699 .global FtlRead
22700
+ .syntax unified
22701
+ .arm
22702
+ .fpu softvfp
2217122703 .type FtlRead, %function
2217222704 FtlRead:
2217322705 .fnstart
....@@ -22179,284 +22711,288 @@
2217922711 .size FtlRead, .-FtlRead
2218022712 .align 2
2218122713 .global FtlInit
22714
+ .syntax unified
22715
+ .arm
22716
+ .fpu softvfp
2218222717 .type FtlInit, %function
2218322718 FtlInit:
2218422719 .fnstart
2218522720 @ args = 0, pretend = 0, frame = 0
2218622721 @ frame_needed = 0, uses_anonymous_args = 0
22187
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
22722
+ push {r4, r5, r6, r7, r8, lr}
2218822723 .save {r4, r5, r6, r7, r8, lr}
2218922724 mvn r3, #0
22190
- ldr r2, .L3751
22191
- ldr r7, .L3751+4
22192
- ldr r5, .L3751+8
22193
- ldr r6, .L3751+12
22194
- ldr r1, .L3751+16
22195
- ldr r0, .L3751+20
22196
- str r3, [r7, #504]
22725
+ ldr r7, .L3673
22726
+ ldr r5, .L3673+4
22727
+ ldr r6, .L3673+8
22728
+ ldr r1, .L3673+12
22729
+ str r3, [r7, #500]
2219722730 mov r3, #0
22198
- str r3, [r2, #2000]
22199
- str r3, [r5, #-3616]
22731
+ ldr r0, .L3673+16
22732
+ str r3, [r5, #2000]
22733
+ str r3, [r5, #-3612]
2220022734 bl printk
22201
- add r0, r6, #116
22735
+ add r0, r6, #124
2220222736 bl FtlConstantsInit
2220322737 bl FtlMemInit
2220422738 bl FtlVariablesInit
22205
- ldr r3, [r6, #2324]
22206
- uxth r0, r3
22739
+ add r3, r6, #2320
22740
+ add r3, r3, #8
22741
+ ldrh r0, [r3]
2220722742 bl FtlFreeSysBlkQueueInit
2220822743 bl FtlLoadBbt
2220922744 cmp r0, #0
22210
- ldrne r0, .L3751+24
22211
- bne .L3750
22745
+ beq .L3657
22746
+ ldr r1, .L3673+20
22747
+ ldr r0, .L3673+24
22748
+.L3672:
22749
+ bl printk
22750
+.L3658:
22751
+ mov r0, #0
22752
+ pop {r4, r5, r6, r7, r8, pc}
22753
+.L3657:
2221222754 bl FtlSysBlkInit
2221322755 subs r4, r0, #0
22214
- beq .L3737
22215
- ldr r0, .L3751+28
22216
-.L3750:
22217
- ldr r1, .L3751+32
22218
- bl printk
22219
- b .L3736
22220
-.L3737:
22221
- sub r5, r5, #3520
22756
+ ldrne r1, .L3673+20
22757
+ ldrne r0, .L3673+28
22758
+ bne .L3672
22759
+.L3659:
2222222760 mov r1, #1
22223
- str r1, [r7, #504]
22761
+ sub r5, r5, #3520
22762
+ str r1, [r7, #500]
2222422763 bl ftl_do_gc
22225
- ldrh r5, [r5, #-8]
22226
- cmp r5, #15
22227
- bhi .L3738
22228
- ldr r6, .L3751+36
22229
- ldr r7, .L3751+40
22230
- sub r8, r6, #244
22231
-.L3741:
22232
- ldrh r3, [r6]
22764
+ ldrh r7, [r5, #-4]
22765
+ cmp r7, #15
22766
+ bhi .L3660
22767
+.L3663:
22768
+ ldr r3, .L3673+32
2223322769 movw r2, #65535
22770
+ ldrh r3, [r3]
2223422771 cmp r3, r2
22235
- bne .L3739
22236
- ldrh r2, [r7]
22772
+ bne .L3661
22773
+ ldr r2, .L3673+36
22774
+ ldrh r2, [r2]
2223722775 cmp r2, r3
22238
- bne .L3739
22776
+ bne .L3661
2223922777 and r0, r4, #63
2224022778 bl List_get_gc_head_node
2224122779 uxth r0, r0
2224222780 bl FtlGcRefreshBlock
22243
-.L3739:
22244
- mov r0, #1
22245
- mov r1, r0
22246
- bl ftl_do_gc
22247
- mov r0, #0
22781
+.L3661:
2224822782 mov r1, #1
22783
+ mov r0, r1
2224922784 bl ftl_do_gc
22250
- ldrh r2, [r8]
22251
- add r3, r5, #2
22785
+ mov r1, #1
22786
+ mov r0, #0
22787
+ bl ftl_do_gc
22788
+ ldrh r2, [r5, #-4]
22789
+ add r3, r7, #2
2225222790 cmp r2, r3
22253
- bhi .L3736
22791
+ bhi .L3658
2225422792 add r4, r4, #1
2225522793 cmp r4, #4096
22256
- bne .L3741
22257
- b .L3736
22258
-.L3738:
22259
- ldrb r3, [r6, #144] @ zero_extendqisi2
22794
+ bne .L3663
22795
+ b .L3658
22796
+.L3660:
22797
+ ldrb r3, [r6, #152] @ zero_extendqisi2
2226022798 cmp r3, #0
22261
- beq .L3736
22799
+ beq .L3658
2226222800 mov r4, #128
22263
-.L3743:
22264
- mov r0, #1
22265
- mov r1, r0
22801
+.L3665:
22802
+ mov r1, #1
22803
+ mov r0, r1
2226622804 bl ftl_do_gc
2226722805 subs r4, r4, #1
22268
- bne .L3743
22269
-.L3736:
22270
- mov r0, #0
22271
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
22272
-.L3752:
22806
+ bne .L3665
22807
+ b .L3658
22808
+.L3674:
2227322809 .align 2
22274
-.L3751:
22275
- .word .LANCHOR4
22810
+.L3673:
2227622811 .word .LANCHOR1
2227722812 .word .LANCHOR2
2227822813 .word .LANCHOR0
22279
- .word .LC77
2228022814 .word .LC76
22815
+ .word .LC77
22816
+ .word .LANCHOR3+224
2228122817 .word .LC161
2228222818 .word .LC162
22283
- .word .LANCHOR3+240
2228422819 .word .LANCHOR2-3284
2228522820 .word .LANCHOR2-2666
2228622821 .fnend
2228722822 .size FtlInit, .-FtlInit
2228822823 .align 2
2228922824 .global rk_ftl_init
22825
+ .syntax unified
22826
+ .arm
22827
+ .fpu softvfp
2229022828 .type rk_ftl_init, %function
2229122829 rk_ftl_init:
2229222830 .fnstart
2229322831 @ args = 0, pretend = 0, frame = 0
2229422832 @ frame_needed = 0, uses_anonymous_args = 0
22295
- stmfd sp!, {r4, r5, r6, lr}
22833
+ push {r4, r5, r6, lr}
2229622834 .save {r4, r5, r6, lr}
2229722835 mov r0, #2048
22298
- bl ftl_malloc
22299
- ldr r6, .L3758
22300
- ldr r4, .L3758+4
22836
+ bl ftl_dma32_malloc
2230122837 mov r5, #0
22302
- ldr r1, .L3758+8
22303
- str r5, [r6, #2008]
22838
+ ldr r4, .L3680
22839
+ ldr r1, .L3680+4
22840
+ str r0, [r4, #2004]
22841
+ sub r0, r1, #324
22842
+ str r5, [r4, #1688]
2230422843 str r5, [r4, #1684]
22305
- str r0, [r6, #2004]
22306
- ldr r0, .L3758+12
22844
+ str r5, [r4, #2008]
2230722845 bl rknand_get_reg_addr
2230822846 ldr r3, [r4, #1684]
2230922847 cmp r3, r5
22310
- beq .L3756
22848
+ mvneq r4, #0
22849
+ beq .L3675
2231122850 bl rk_nandc_irq_init
22312
- mov r1, r5
22313
- mov r2, r5
2231422851 mov r3, #2048
22315
- ldr r0, [r6, #2004]
22852
+ mov r2, r5
22853
+ mov r1, r5
22854
+ ldr r0, [r4, #2004]
2231622855 bl FlashSramLoadStore
2231722856 bl rknand_flash_cs_init
2231822857 ldr r0, [r4, #1684]
2231922858 bl FlashInit
2232022859 subs r4, r0, #0
22321
- bne .L3755
22860
+ bne .L3677
2232222861 bl FtlInit
22323
-.L3755:
22862
+.L3677:
2232422863 mov r1, r4
22325
- ldr r0, .L3758+16
22864
+ ldr r0, .L3680+8
2232622865 bl printk
22866
+.L3675:
2232722867 mov r0, r4
22328
- ldmfd sp!, {r4, r5, r6, pc}
22329
-.L3756:
22330
- mvn r0, #0
22331
- ldmfd sp!, {r4, r5, r6, pc}
22332
-.L3759:
22868
+ pop {r4, r5, r6, pc}
22869
+.L3681:
2233322870 .align 2
22334
-.L3758:
22335
- .word .LANCHOR4
22871
+.L3680:
2233622872 .word .LANCHOR2
22337
- .word .LANCHOR4+2008
22338
- .word .LANCHOR2+1684
22873
+ .word .LANCHOR2+2008
2233922874 .word .LC163
2234022875 .fnend
2234122876 .size rk_ftl_init, .-rk_ftl_init
2234222877 .align 2
2234322878 .global ftl_fix_nand_power_lost_error
22879
+ .syntax unified
22880
+ .arm
22881
+ .fpu softvfp
2234422882 .type ftl_fix_nand_power_lost_error, %function
2234522883 ftl_fix_nand_power_lost_error:
2234622884 .fnstart
2234722885 @ args = 0, pretend = 0, frame = 48
2234822886 @ frame_needed = 0, uses_anonymous_args = 0
22349
- ldr r3, .L3777
22350
- ldrb r3, [r3, #144] @ zero_extendqisi2
22887
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
22888
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
22889
+ .pad #48
22890
+ sub sp, sp, #48
22891
+ ldr r8, .L3697
22892
+ ldrb r3, [r8, #152] @ zero_extendqisi2
2235122893 cmp r3, #0
22352
- bxeq lr
22353
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22354
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22355
- movw r3, #1848
22356
- ldr r8, .L3777+4
22357
- .pad #52
22358
- sub sp, sp, #52
22359
- ldr r4, .L3777+8
22894
+ beq .L3682
22895
+ ldr r4, .L3697+4
22896
+ movw r3, #1846
22897
+ ldr r0, .L3697+8
22898
+ ldrh r6, [r4, r3]
22899
+ sub r9, r4, #3520
22900
+ ldr r3, [r4, #-3540]
22901
+ sub r5, r4, #3472
22902
+ mov r1, r6
22903
+ lsl r7, r6, #1
22904
+ ldrh r2, [r3, r7]
22905
+ bl printk
22906
+ ldrh r0, [r9]
22907
+ bl FtlGcRefreshOpenBlock
22908
+ ldrh r0, [r5]
22909
+ bl FtlGcRefreshOpenBlock
22910
+ mov r0, r9
22911
+ bl allocate_new_data_superblock
22912
+ mov r0, r5
2236022913 movw r5, #4097
22361
- ldr r0, .L3777+12
22362
- ldrh r7, [r8, r3]
22363
- ldr r3, [r4, #-3544]
22364
- mov r6, r7, asl #1
22365
- mov r1, r7
22366
- ldrh r2, [r3, r6]
22367
- bl printk
22368
- sub r3, r4, #3520
22369
- ldrh r0, [r3, #-4]
22370
- bl FtlGcRefreshOpenBlock
22371
- sub r3, r4, #3472
22372
- ldrh r0, [r3, #-4]
22373
- bl FtlGcRefreshOpenBlock
22374
- ldr r0, .L3777+16
2237522914 bl allocate_new_data_superblock
22376
- ldr r0, .L3777+20
22377
- bl allocate_new_data_superblock
22378
-.L3762:
22915
+.L3684:
2237922916 subs r5, r5, #1
22380
- beq .L3766
22381
- mov r0, #1
22382
- mov r1, r0
22917
+ beq .L3688
22918
+ mov r1, #1
22919
+ mov r0, r1
2238322920 bl ftl_do_gc
22384
- ldr r3, [r4, #-3544]
22385
- ldrh r3, [r3, r6]
22921
+ ldr r3, [r4, #-3540]
22922
+ ldrh r3, [r3, r7]
2238622923 cmp r3, #0
22387
- bne .L3762
22388
-.L3766:
22389
- ldr r3, [r4, #-3544]
22390
- mov r1, r7
22391
- ldr r0, .L3777+12
22392
- ldrh r2, [r3, r6]
22924
+ bne .L3684
22925
+.L3688:
22926
+ ldr r3, [r4, #-3540]
22927
+ mov r1, r6
22928
+ ldr r0, .L3697+8
22929
+ ldrh r2, [r3, r7]
2239322930 bl printk
22394
- ldr r3, [r4, #-3544]
22395
- ldrh r5, [r3, r6]
22931
+ ldr r3, [r4, #-3540]
22932
+ ldrh r5, [r3, r7]
2239622933 cmp r5, #0
22397
- bne .L3764
22934
+ bne .L3686
2239822935 add r0, sp, #48
22399
- movw r10, #65535
22400
- mov fp, #36
22401
- strh r7, [r0, #-48]! @ movhi
22936
+ movw r9, #65535
22937
+ strh r6, [r0, #-48]! @ movhi
22938
+ mov r10, #36
2240222939 bl make_superblock
22403
- ldr r3, .L3777+24
22404
- ldrh lr, [r3]
22405
- ldr r3, .L3777+8
22406
- ldr r9, [r3, #-3612]
22407
- mov r3, r5
22408
- mov ip, r3
22940
+ movw r3, #2324
2240922941 add r0, sp, #14
22410
-.L3767:
22411
- uxth r2, r3
22412
- cmp r2, lr
22413
- bcs .L3776
22414
- ldrh r2, [r0, #2]!
22415
- add r3, r3, #1
22416
- cmp r2, r10
22417
- movne r2, r2, asl #10
22418
- mlane r1, fp, r5, r9
22942
+ ldrh lr, [r8, r3]
22943
+ mov r2, r5
22944
+ ldr r8, [r4, #-3608]
22945
+ mov ip, r5
22946
+.L3689:
22947
+ uxth r3, r2
22948
+ cmp lr, r3
22949
+ bhi .L3691
22950
+ ldr r3, [r4, #-3540]
22951
+ mov r1, r6
22952
+ ldr r0, .L3697+12
22953
+ ldrh r2, [r3, r7]
22954
+ bl printk
22955
+ mov r2, r5
22956
+ mov r1, #0
22957
+ ldr r0, [r4, #-3608]
22958
+ bl FlashEraseBlocks
22959
+ mov r2, r5
22960
+ mov r1, #1
22961
+ ldr r0, [r4, #-3608]
22962
+ bl FlashEraseBlocks
22963
+.L3686:
22964
+ mvn r2, #0
22965
+ movw r3, #1846
22966
+ strh r2, [r4, r3] @ movhi
22967
+.L3682:
22968
+ add sp, sp, #48
22969
+ @ sp needed
22970
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
22971
+.L3691:
22972
+ ldrh r3, [r0, #2]!
22973
+ add r2, r2, #1
22974
+ cmp r3, r9
22975
+ mlane r1, r10, r5, r8
22976
+ lslne r3, r3, #10
2241922977 addne r5, r5, #1
2242022978 uxthne r5, r5
22421
- stmneib r1, {r2, ip}
22979
+ stmibne r1, {r3, ip}
2242222980 strne ip, [r1, #12]
22423
- b .L3767
22424
-.L3776:
22425
- ldr r3, [r4, #-3544]
22426
- mov r1, r7
22427
- ldr r0, .L3777+28
22428
- ldrh r2, [r3, r6]
22429
- bl printk
22430
- mov r1, #0
22431
- mov r2, r5
22432
- ldr r0, [r4, #-3612]
22433
- bl FlashEraseBlocks
22434
- ldr r0, [r4, #-3612]
22435
- mov r1, #1
22436
- mov r2, r5
22437
- bl FlashEraseBlocks
22438
-.L3764:
22439
- movw r3, #1848
22440
- mvn r2, #0
22441
- strh r2, [r8, r3] @ movhi
22442
- add sp, sp, #52
22443
- @ sp needed
22444
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
22445
-.L3778:
22981
+ b .L3689
22982
+.L3698:
2244622983 .align 2
22447
-.L3777:
22984
+.L3697:
2244822985 .word .LANCHOR0
22449
- .word .LANCHOR4
2245022986 .word .LANCHOR2
2245122987 .word .LC164
22452
- .word .LANCHOR2-3524
22453
- .word .LANCHOR2-3476
22454
- .word .LANCHOR0+2320
2245522988 .word .LC165
2245622989 .fnend
2245722990 .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error
2245822991 .align 2
2245922992 .global rk_ftl_garbage_collect
22993
+ .syntax unified
22994
+ .arm
22995
+ .fpu softvfp
2246022996 .type rk_ftl_garbage_collect, %function
2246122997 rk_ftl_garbage_collect:
2246222998 .fnstart
....@@ -22468,907 +23004,910 @@
2246823004 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
2246923005 .align 2
2247023006 .global ftl_write
23007
+ .syntax unified
23008
+ .arm
23009
+ .fpu softvfp
2247123010 .type ftl_write, %function
2247223011 ftl_write:
2247323012 .fnstart
22474
- @ args = 0, pretend = 0, frame = 96
23013
+ @ args = 0, pretend = 0, frame = 80
2247523014 @ frame_needed = 0, uses_anonymous_args = 0
22476
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23015
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2247723016 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
22478
- .pad #100
22479
- sub sp, sp, #100
22480
- ldr r10, .L3854
22481
- str r3, [sp, #4]
22482
- ldr r3, [r10, #-3616]
23017
+ mov fp, r3
23018
+ ldr r4, .L3768
23019
+ .pad #84
23020
+ sub sp, sp, #84
23021
+ ldr r3, [r4, #-3612]
2248323022 cmp r3, #0
22484
- bne .L3821
22485
- mov r8, r2
22486
- ldr r2, .L3854+4
22487
- ldr r2, [r2, #504]
23023
+ bne .L3741
23024
+ mov r9, r2
23025
+ ldr r2, .L3768+4
23026
+ ldr r2, [r2, #500]
2248823027 cmp r2, #1
2248923028 movne r0, r3
22490
- bne .L3781
23029
+ bne .L3700
2249123030 cmp r0, #16
2249223031 mov r7, r1
22493
- bne .L3782
22494
- add r0, r1, #256
22495
- ldr r2, [sp, #4]
22496
- mov r1, r8
23032
+ bne .L3702
23033
+ mov r2, fp
23034
+ mov r1, r9
23035
+ add r0, r7, #256
2249723036 bl FtlVendorPartWrite
22498
- b .L3781
22499
-.L3782:
22500
- ldr fp, .L3854+8
22501
- ldr r3, [fp, #2428]
22502
- cmp r8, r3
23037
+.L3700:
23038
+ add sp, sp, #84
23039
+ @ sp needed
23040
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
23041
+.L3702:
23042
+ ldr r10, .L3768+8
23043
+ ldr r3, [r10, #2432]
23044
+ cmp r9, r3
2250323045 cmpls r1, r3
22504
- bcs .L3824
22505
- add r5, r1, r8
22506
- cmp r5, r3
22507
- bhi .L3824
22508
- ldr r6, .L3854+12
23046
+ bcs .L3744
23047
+ add r6, r1, r9
23048
+ cmp r3, r6
23049
+ bcc .L3744
2250923050 mov r3, #2048
22510
- mov r0, r1
22511
- str r3, [r6, #2012]
22512
- movw r3, #2394
22513
- ldrh r4, [fp, r3]
22514
- mov r1, r4
23051
+ mov r0, r7
23052
+ str r3, [r4, #2012]
23053
+ movw r3, #2396
23054
+ ldrh r5, [r10, r3]
23055
+ mov r1, r5
2251523056 bl __aeabi_uidiv
22516
- mov r1, r4
22517
- str r0, [sp, #8]
22518
- sub r0, r5, #1
23057
+ mov r1, r5
23058
+ str r0, [sp, #4]
23059
+ sub r0, r6, #1
2251923060 bl __aeabi_uidiv
22520
- cmp r8, r4, asl #1
22521
- ldr r2, [sp, #8]
22522
- str r0, [sp, #28]
22523
- rsb r5, r2, r0
22524
- add r3, r5, #1
22525
- str r3, [sp]
22526
- ldr r2, [sp]
22527
- ldr r3, [r10, #-3356]
22528
- add r3, r2, r3
22529
- ldr r2, [fp, #2440]
22530
- str r3, [r10, #-3356]
22531
- ldr r3, [r10, #-3340]
22532
- add r3, r8, r3
22533
- str r3, [r10, #-3340]
23061
+ ldr r2, [sp, #4]
23062
+ cmp r9, r5, lsl #1
23063
+ ldr r3, [r4, #-3356]
23064
+ ldr r1, [r10, #2444]
23065
+ sub r6, r0, r2
23066
+ str r0, [sp, #24]
23067
+ add r8, r6, #1
23068
+ add r3, r3, r8
23069
+ str r3, [r4, #-3356]
23070
+ ldr r3, [r4, #-3340]
23071
+ add r3, r3, r9
23072
+ str r3, [r4, #-3340]
2253423073 movcs r3, #1
2253523074 movcc r3, #0
22536
- cmp r2, #0
22537
- str r3, [sp, #20]
22538
- beq .L3784
23075
+ cmp r1, #0
23076
+ str r3, [sp, #16]
23077
+ beq .L3745
2253923078 mov r3, #36
22540
- ldr r9, [fp, #2444]
22541
- mul r3, r3, r2
22542
- ldr r2, [sp, #8]
23079
+ ldr r2, [r10, #2448]
23080
+ mul r3, r3, r1
2254323081 sub r3, r3, #36
22544
- add r9, r9, r3
22545
- ldr r3, [r9, #16]
22546
- cmp r2, r3
22547
- bne .L3785
22548
- ldr r3, [r10, #-3352]
22549
- mov r1, r4
22550
- mov r0, r7
22551
- add r3, r3, #1
22552
- str r3, [r10, #-3352]
22553
- ldr r3, [r6, #2016]
22554
- add r3, r3, #1
22555
- str r3, [r6, #2016]
22556
- bl __aeabi_uidivmod
22557
- ldr r0, [r9, #8]
22558
- rsb r4, r1, r4
22559
- add r0, r0, r1, asl #9
22560
- cmp r4, r8
22561
- ldr r1, [sp, #4]
22562
- movcs r4, r8
22563
- mov r10, r4, asl #9
22564
- mov r2, r10
22565
- bl ftl_memcpy
22566
- cmp r5, #0
22567
- bne .L3786
22568
- ldr r3, [r6, #2016]
22569
- cmp r3, #2
22570
- ble .L3821
22571
-.L3786:
23082
+ add r10, r2, r3
2257223083 ldr r3, [sp, #4]
22573
- rsb r8, r4, r8
22574
- add r7, r7, r4
22575
- str r5, [sp]
22576
- add r3, r3, r10
22577
- str r3, [sp, #4]
22578
- ldr r3, [sp, #8]
23084
+ ldr r2, [r10, #16]
23085
+ cmp r3, r2
23086
+ strne fp, [sp, #12]
23087
+ bne .L3705
23088
+ ldr r2, [r4, #-3352]
23089
+ mov r1, r5
23090
+ mov r0, r7
23091
+ add r2, r2, #1
23092
+ str r2, [r4, #-3352]
23093
+ ldr r2, [r4, #2016]
23094
+ add r2, r2, #1
23095
+ str r2, [r4, #2016]
23096
+ bl __aeabi_uidivmod
23097
+ sub r5, r5, r1
23098
+ ldr r3, [r10, #8]
23099
+ cmp r9, r5
23100
+ mov r0, r1
23101
+ movcc r5, r9
23102
+ mov r1, fp
23103
+ lsl r8, r5, #9
23104
+ add r0, r3, r0, lsl #9
23105
+ mov r2, r8
23106
+ bl ftl_memcpy
23107
+ cmp r6, #0
23108
+ bne .L3706
23109
+ ldr r3, [r4, #2016]
23110
+ cmp r3, #2
23111
+ bgt .L3706
23112
+.L3741:
23113
+ mov r0, #0
23114
+ b .L3700
23115
+.L3706:
23116
+ add r3, fp, r8
23117
+ sub r9, r9, r5
23118
+ str r3, [sp, #12]
23119
+ add r7, r7, r5
23120
+ ldr r3, [sp, #4]
23121
+ mov r8, r6
2257923122 add r3, r3, #1
22580
- str r3, [sp, #8]
22581
-.L3785:
23123
+ str r3, [sp, #4]
23124
+.L3705:
2258223125 mov r3, #0
22583
- str r3, [r6, #2016]
22584
-.L3784:
22585
- ldr r0, [sp, #8]
22586
- ldr r1, [sp, #28]
23126
+ str r3, [r4, #2016]
23127
+.L3704:
23128
+ ldr r1, [sp, #24]
23129
+ ldr r0, [sp, #4]
2258723130 bl FtlCacheMetchLpa
2258823131 cmp r0, #0
22589
- beq .L3787
23132
+ beq .L3707
2259023133 bl FtlCacheWriteBack
22591
-.L3787:
22592
- ldr r5, .L3854+16
22593
- mov r3, #0
22594
- ldr r4, .L3854+8
22595
- str r3, [sp, #12]
22596
- str r5, [r6, #1992]
22597
- ldr r6, [sp, #8]
22598
- mov r10, r4
22599
- str r3, [sp, #32]
22600
-.L3788:
22601
- ldr r3, [sp]
22602
- cmp r3, #0
22603
- beq .L3853
22604
- ldrh r2, [r5, #4]
22605
- cmp r2, #0
22606
- bne .L3789
22607
- ldr r3, .L3854+16
22608
- ldr r9, .L3854+4
22609
- cmp r5, r3
22610
- bne .L3790
22611
- add r0, r3, #48
22612
- ldrh r5, [r0, #4]
22613
- cmp r5, #0
22614
- bne .L3791
22615
- bl allocate_new_data_superblock
22616
- str r5, [r9, #3452]
22617
-.L3791:
22618
- ldr r0, .L3854+16
22619
- bl allocate_new_data_superblock
22620
- ldr r3, [r9, #3452]
22621
- cmp r3, #0
22622
- ldrne r5, .L3854+20
22623
- bne .L3792
22624
-.L3793:
22625
- ldr r5, .L3854+16
22626
- b .L3792
22627
-.L3790:
22628
- ldrh r3, [r3, #4]
22629
- str r2, [r9, #3452]
22630
- cmp r3, #0
22631
- bne .L3793
22632
- mov r0, r5
22633
- bl allocate_new_data_superblock
22634
-.L3792:
22635
- ldrh r3, [r5, #4]
22636
- cmp r3, #0
22637
- bne .L3794
22638
- mov r0, r5
22639
- bl allocate_new_data_superblock
22640
-.L3794:
22641
- ldr r3, .L3854+12
22642
- str r5, [r3, #1992]
22643
-.L3789:
22644
- ldr r2, .L3854
22645
- ldr r1, [r4, #2440]
22646
- ldrh r3, [r5, #4]
22647
- ldr r2, [r2, #-540]
22648
- rsb r2, r1, r2
22649
- cmp r3, r2
22650
- movcs r3, r2
22651
- ldr r2, [sp]
22652
- cmp r3, r2
22653
- movcs r3, r2
22654
- str r3, [sp, #44]
22655
- mov r3, #0
22656
-.L3851:
22657
- str r3, [sp, #16]
22658
- ldr r3, [sp, #16]
22659
- ldr r2, [sp, #44]
22660
- cmp r3, r2
22661
- beq .L3796
22662
- ldrh r3, [r5, #4]
22663
- cmp r3, #0
22664
- beq .L3796
22665
- ldr r3, [sp, #28]
22666
- ldr r2, [sp, #16]
22667
- rsb ip, r3, r6
22668
- ldr r3, [sp, #20]
22669
- clz ip, ip
22670
- mov ip, ip, lsr #5
22671
- and r3, ip, r3
22672
- cmp r2, #0
22673
- moveq r3, #0
22674
- andne r3, r3, #1
22675
- cmp r3, #0
22676
- beq .L3797
22677
- ldr r3, .L3854+24
22678
- ldrh r2, [r3]
22679
- add r3, r8, r7
22680
- mls r3, r2, r6, r3
22681
- cmp r3, r2
22682
- bne .L3796
22683
-.L3797:
22684
- add r1, sp, #56
22685
- mov r2, #0
22686
- mov r0, r6
22687
- str ip, [sp, #52]
22688
- bl log2phys
22689
- mov r0, r5
22690
- bl get_new_active_ppa
22691
- ldr r2, [r4, #2440]
22692
- ldr r1, [r4, #2444]
22693
- mov r3, #36
22694
- ldr fp, .L3854+28
22695
- mla r1, r3, r2, r1
22696
- ldrh r2, [fp]
22697
- str r6, [r1, #16]
22698
- str r3, [sp, #48]
22699
- ldr r3, [r4, #2440]
22700
- str r0, [r1, #4]
22701
- ldr r0, .L3854
22702
- mul lr, r3, r2
22703
- bic r3, lr, #3
22704
- str r3, [sp, #36]
22705
- ldr r3, [r0, #-492]
22706
- ldr ip, [sp, #36]
22707
- ldrh lr, [fp, #-2]
22708
- add r9, r3, ip
22709
- str r3, [sp, #40]
22710
- ldr r3, [r4, #2440]
22711
- ldr r0, [r0, #-512]
22712
- str r9, [r1, #12]
22713
- mul lr, r3, lr
22714
- bic lr, lr, #3
22715
- add lr, r0, lr
22716
- mov r0, r9
22717
- str lr, [r1, #8]
22718
- mov r1, #0
22719
- bl ftl_memset
22720
- ldr r3, [sp, #8]
22721
- ldr ip, [sp, #52]
22722
- rsb r3, r3, r6
22723
- clz r3, r3
22724
- mov r3, r3, lsr #5
22725
- str r3, [sp, #24]
22726
- orrs r3, r3, ip
22727
- ldr r3, [sp, #48]
22728
- beq .L3798
23134
+.L3707:
23135
+ ldr r6, [sp, #4]
23136
+ ldr r10, .L3768+8
23137
+ ldr r5, .L3768+12
23138
+ str r5, [r4, #1992]
23139
+.L3708:
23140
+ cmp r8, #0
23141
+ bne .L3736
2272923142 ldr r3, [sp, #24]
22730
- cmp r3, #0
22731
- beq .L3799
22732
- ldrh fp, [fp, #-6]
22733
- mov r0, r7
22734
- mov r1, fp
22735
- bl __aeabi_uidivmod
22736
- rsb fp, r1, fp
22737
- mov r3, r1
22738
- cmp fp, r8
22739
- str r1, [sp, #32]
22740
- movcc r3, fp
22741
- movcs r3, r8
22742
- str r3, [sp, #12]
22743
- b .L3800
22744
-.L3799:
22745
- cmp ip, #0
22746
- beq .L3800
22747
- ldr r2, .L3854+24
22748
- add r3, r8, r7
22749
- ldrh r2, [r2]
22750
- smulbb r2, r2, r6
22751
- rsb r3, r2, r3
22752
- uxth r3, r3
22753
- str r3, [sp, #12]
22754
- ldr r3, [sp, #24]
22755
- str r3, [sp, #32]
22756
-.L3800:
22757
- ldr r3, .L3854+24
22758
- ldr r2, [sp, #12]
22759
- ldrh r3, [r3]
22760
- cmp r2, r3
22761
- bne .L3801
22762
- ldr r3, [sp, #24]
22763
- ldr r0, [r10, #2444]
22764
- cmp r3, #0
22765
- moveq r3, r2
22766
- ldr r2, [r10, #2440]
22767
- muleq r1, r6, r3
22768
- ldreq r3, [sp, #4]
22769
- ldrne r1, [sp, #4]
22770
- rsbeq r1, r7, r1
22771
- addeq r1, r3, r1, asl #9
22772
- ldr r3, [sp, #20]
22773
- cmp r3, #0
22774
- mov r3, #36
22775
- mla r3, r3, r2, r0
22776
- strne r1, [r3, #8]
22777
- bne .L3804
22778
- ldr r0, [r3, #8]
22779
- ldr r3, .L3854+32
22780
- ldrh r2, [r3]
22781
- b .L3849
22782
-.L3801:
22783
- ldr r2, [sp, #56]
22784
- mov r3, #36
22785
- cmn r2, #1
22786
- beq .L3805
22787
- ldr r1, [r4, #2444]
22788
- add r0, sp, #60
22789
- str r2, [sp, #64]
22790
- ldr r2, [r4, #2440]
22791
- str r6, [sp, #76]
22792
- mla r3, r3, r2, r1
22793
- mov r1, #1
22794
- ldr r2, [r3, #8]
22795
- ldr r3, [r3, #12]
22796
- str r2, [sp, #68]
22797
- mov r2, #0
22798
- str r3, [sp, #72]
22799
- bl FlashReadPages
22800
- ldr r3, [sp, #60]
22801
- cmn r3, #1
22802
- ldr r3, .L3854
22803
- ldreq r2, [r3, #-3160]
22804
- addeq r2, r2, #1
22805
- streq r2, [r3, #-3160]
22806
- beq .L3808
22807
- ldr r2, [r9, #8]
22808
- cmp r2, r6
22809
- beq .L3808
22810
- ldr r2, [r3, #-3160]
22811
- ldr r0, .L3854+36
22812
- add r2, r2, #1
22813
- str r2, [r3, #-3160]
22814
- mov r2, r6
22815
- ldr r1, [r9, #8]
22816
- bl printk
22817
- b .L3808
22818
-.L3805:
22819
- ldr r2, [r4, #2440]
22820
- ldr r1, [r4, #2444]
22821
- mla r3, r3, r2, r1
22822
- mov r1, #0
22823
- ldr r0, [r3, #8]
22824
- ldr r3, .L3854+32
22825
- ldrh r2, [r3]
22826
- bl ftl_memset
22827
-.L3808:
22828
- ldr r3, [sp, #24]
22829
- cmp r3, #0
22830
- mov r3, #36
22831
- beq .L3809
22832
- ldr r1, [r4, #2444]
22833
- ldr r2, [r4, #2440]
22834
- mla r3, r3, r2, r1
22835
- ldr r1, [sp, #4]
22836
- ldr r0, [r3, #8]
22837
- ldr r3, [sp, #32]
22838
- add r0, r0, r3, asl #9
22839
- b .L3852
22840
-.L3809:
22841
- ldr r1, [r4, #2440]
22842
- ldr r2, [r4, #2444]
22843
- mla r3, r3, r1, r2
22844
- ldr r2, .L3854+24
22845
- ldrh r1, [r2]
22846
- ldr r0, [r3, #8]
22847
- mul r1, r1, r6
22848
- ldr r3, [sp, #4]
22849
- rsb r1, r7, r1
22850
- add r1, r3, r1, asl #9
22851
-.L3852:
22852
- ldr r3, [sp, #12]
22853
- mov r2, r3, asl #9
22854
- b .L3849
22855
-.L3798:
22856
- ldr r2, [sp, #20]
22857
- cmp r2, #0
22858
- ldr r2, [r4, #2440]
22859
- beq .L3810
22860
- ldr r1, [r4, #2444]
22861
- mla r3, r3, r2, r1
22862
- ldr r2, .L3854+24
22863
- ldrh fp, [r2]
23143
+ mov r0, r8
2286423144 ldr r2, [sp, #4]
22865
- mul fp, fp, r6
22866
- rsb fp, r7, fp
22867
- add fp, r2, fp, asl #9
22868
- str fp, [r3, #8]
22869
- b .L3804
22870
-.L3810:
22871
- ldr r0, [r4, #2444]
22872
- mla r3, r3, r2, r0
22873
- ldr r2, .L3854+24
22874
- ldrh r1, [r2]
22875
- ldrh r2, [fp, #-2]
22876
- ldr r0, [r3, #8]
22877
- mul r1, r1, r6
22878
- ldr r3, [sp, #4]
22879
- rsb r1, r7, r1
22880
- add r1, r3, r1, asl #9
22881
-.L3849:
22882
- bl ftl_memcpy
22883
-.L3804:
22884
- ldr r3, .L3854+40
22885
- ldr r2, [sp, #40]
22886
- ldr r1, [sp, #36]
22887
- strh r3, [r2, r1] @ movhi
22888
- ldr r2, .L3854
22889
- str r6, [r9, #8]
22890
- add r6, r6, #1
22891
- ldr r3, [r2, #-3328]
22892
- str r3, [r9, #4]
22893
- add r3, r3, #1
22894
- cmn r3, #1
22895
- moveq r3, #0
22896
- str r3, [r2, #-3328]
22897
- ldr r3, [sp, #56]
22898
- str r3, [r9, #12]
22899
- ldrh r3, [r5]
22900
- strh r3, [r9, #2] @ movhi
22901
- ldr r3, [r4, #2440]
22902
- add r3, r3, #1
22903
- str r3, [r4, #2440]
22904
- ldr r3, [sp, #16]
22905
- add r3, r3, #1
22906
- b .L3851
22907
-.L3796:
22908
- ldr r3, [sp]
22909
- ldr r2, [sp, #16]
22910
- ldr r1, [sp, #20]
22911
- rsb r3, r2, r3
22912
- ldr r2, .L3854
22913
- str r3, [sp]
22914
- ldr r3, [r4, #2440]
22915
- ldr r2, [r2, #-540]
22916
- cmp r3, r2
22917
- orrcs r1, r1, #1
22918
- cmp r1, #0
22919
- bne .L3814
22920
- ldrh r3, [r5, #4]
22921
- cmp r3, #0
22922
- beq .L3814
22923
-.L3816:
22924
- mov r3, #0
22925
- str r3, [sp, #20]
22926
- b .L3788
22927
-.L3814:
22928
- bl FtlCacheWriteBack
22929
- mov r3, #0
22930
- str r3, [r10, #2440]
22931
- ldr r3, [sp]
22932
- cmp r3, #1
22933
- bhi .L3788
22934
- b .L3816
22935
-.L3853:
22936
- mov r0, r3
22937
- ldr r2, [sp, #8]
22938
- ldr r3, [sp, #28]
22939
- rsb r1, r2, r3
23145
+ sub r1, r3, r2
2294023146 bl ftl_do_gc
22941
- ldr r3, .L3854+44
22942
- ldrh r3, [r3, #-8]
23147
+ ldr r2, .L3768+12
23148
+ ldrh r3, [r2, #-4]
23149
+ mov r4, r2
2294323150 cmp r3, #5
22944
- bls .L3827
23151
+ bls .L3737
2294523152 cmp r3, #31
22946
- bhi .L3821
22947
- ldr r3, .L3854+8
22948
- ldrb r3, [r3] @ zero_extendqisi2
23153
+ bhi .L3741
23154
+ ldr r3, .L3768+8
23155
+ ldrb r3, [r3, #36] @ zero_extendqisi2
2294923156 cmp r3, #0
22950
- bne .L3821
22951
-.L3827:
22952
- ldr r4, [sp]
22953
- ldr r5, .L3854+48
22954
- ldr r6, .L3854
22955
- ldr r7, .L3854+52
22956
-.L3840:
22957
- ldrh r2, [r5]
23157
+ bne .L3741
23158
+.L3737:
23159
+ ldr r5, .L3768+16
23160
+.L3740:
23161
+ ldr r3, .L3768+20
23162
+ ldrh r2, [r3]
2295823163 movw r3, #65535
2295923164 cmp r2, r3
22960
- bne .L3820
22961
- ldrh r3, [r7]
23165
+ bne .L3739
23166
+ ldr r3, .L3768+24
23167
+ ldrh r3, [r3]
2296223168 cmp r3, r2
22963
- bne .L3820
22964
- ldr r2, .L3854+56
22965
- ldrh r2, [r2]
23169
+ bne .L3739
23170
+ ldrh r2, [r5, #-8]
2296623171 cmp r2, r3
22967
- bne .L3820
22968
- and r0, r4, #7
23172
+ bne .L3739
23173
+ and r0, r8, #7
2296923174 bl List_get_gc_head_node
2297023175 uxth r0, r0
2297123176 bl FtlGcRefreshBlock
22972
-.L3820:
22973
- ldr r3, .L3854+60
22974
- mov r0, #1
22975
- mov r1, r0
23177
+.L3739:
23178
+ ldr r3, .L3768+28
23179
+ mov r1, #1
2297623180 mov r2, #128
23181
+ mov r0, r1
2297723182 strh r2, [r3] @ movhi
2297823183 strh r2, [r3, #-2] @ movhi
2297923184 bl ftl_do_gc
22980
- mov r0, #0
2298123185 mov r1, #1
22982
- bl ftl_do_gc
22983
- ldr r3, [r6, #-3616]
22984
- cmp r3, #0
22985
- bne .L3821
22986
- ldr r3, .L3854+64
22987
- ldrh r3, [r3]
22988
- cmp r3, #2
22989
- bhi .L3821
22990
- add r4, r4, #1
22991
- cmp r4, #256
22992
- bne .L3840
22993
- b .L3821
22994
-.L3824:
22995
- mvn r0, #0
22996
- b .L3781
22997
-.L3821:
2299823186 mov r0, #0
22999
-.L3781:
23000
- add sp, sp, #100
23001
- @ sp needed
23002
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
23003
-.L3855:
23187
+ bl ftl_do_gc
23188
+ ldr r3, .L3768
23189
+ ldr r3, [r3, #-3612]
23190
+ cmp r3, #0
23191
+ bne .L3741
23192
+ ldrh r3, [r4, #-4]
23193
+ cmp r3, #2
23194
+ bhi .L3741
23195
+ add r8, r8, #1
23196
+ cmp r8, #256
23197
+ bne .L3740
23198
+ b .L3741
23199
+.L3745:
23200
+ str fp, [sp, #12]
23201
+ b .L3704
23202
+.L3736:
23203
+ ldrh r1, [r5, #4]
23204
+ ldr r4, .L3768
23205
+ cmp r1, #0
23206
+ bne .L3709
23207
+ sub r2, r4, #3520
23208
+ ldr fp, .L3768+4
23209
+ cmp r5, r2
23210
+ bne .L3710
23211
+ sub r0, r4, #3472
23212
+ ldrh r5, [r0, #4]
23213
+ cmp r5, #0
23214
+ bne .L3711
23215
+ bl allocate_new_data_superblock
23216
+ str r5, [fp, #3448]
23217
+.L3711:
23218
+ ldr r0, .L3768+12
23219
+ bl allocate_new_data_superblock
23220
+ ldr r5, .L3768+12
23221
+ ldr r1, [fp, #3448]
23222
+ add r2, r5, #48
23223
+ cmp r1, #0
23224
+ movne r5, r2
23225
+.L3712:
23226
+ ldrh r2, [r5, #4]
23227
+ cmp r2, #0
23228
+ bne .L3713
23229
+ mov r0, r5
23230
+ bl allocate_new_data_superblock
23231
+.L3713:
23232
+ str r5, [r4, #1992]
23233
+.L3709:
23234
+ ldr r1, [r10, #2444]
23235
+ ldr r2, [r4, #-540]
23236
+ sub r2, r2, r1
23237
+ ldrh r1, [r5, #4]
23238
+ cmp r2, r8
23239
+ movcs r2, r8
23240
+ cmp r1, r2
23241
+ movcc r3, r1
23242
+ movcs r3, r2
23243
+ str r3, [sp, #36]
23244
+ mov r3, #0
23245
+.L3766:
23246
+ str r3, [sp, #20]
23247
+ ldr r3, [sp, #20]
23248
+ ldr r2, [sp, #36]
23249
+ cmp r3, r2
23250
+ bne .L3732
23251
+.L3715:
23252
+ ldr r3, [sp, #20]
23253
+ ldr r1, .L3768
23254
+ ldr r2, [r10, #2444]
23255
+ sub r8, r8, r3
23256
+ ldr r3, [sp, #16]
23257
+ ldr r1, [r1, #-540]
23258
+ cmp r2, r1
23259
+ orrcs r3, r3, #1
23260
+ cmp r3, #0
23261
+ bne .L3733
23262
+ ldrh r2, [r5, #4]
23263
+ cmp r2, #0
23264
+ beq .L3733
23265
+.L3735:
23266
+ mov r3, #0
23267
+ str r3, [sp, #16]
23268
+ b .L3708
23269
+.L3710:
23270
+ str r1, [fp, #3448]
23271
+ ldrh r1, [r2, #4]
23272
+ cmp r1, #0
23273
+ movne r5, r2
23274
+ bne .L3713
23275
+ mov r0, r5
23276
+ bl allocate_new_data_superblock
23277
+ b .L3712
23278
+.L3732:
23279
+ ldrh r2, [r5, #4]
23280
+ cmp r2, #0
23281
+ beq .L3715
23282
+ ldr r3, [sp, #24]
23283
+ sub r4, r3, r6
23284
+ ldr r3, [sp, #16]
23285
+ clz r4, r4
23286
+ lsr r4, r4, #5
23287
+ and r2, r4, r3
23288
+ ldr r3, [sp, #20]
23289
+ cmp r3, #0
23290
+ moveq r2, #0
23291
+ andne r2, r2, #1
23292
+ cmp r2, #0
23293
+ beq .L3716
23294
+ ldr r3, .L3768+32
23295
+ add r2, r7, r9
23296
+ ldrh r1, [r3]
23297
+ mls r2, r1, r6, r2
23298
+ cmp r1, r2
23299
+ bne .L3715
23300
+.L3716:
23301
+ mov r2, #0
23302
+ add r1, sp, #40
23303
+ mov r0, r6
23304
+ mov fp, #36
23305
+ bl log2phys
23306
+ mov r0, r5
23307
+ bl get_new_active_ppa
23308
+ ldr r2, .L3768+36
23309
+ ldr r1, [r10, #2444]
23310
+ ldr ip, [r10, #2448]
23311
+ ldrh r2, [r2]
23312
+ mla ip, fp, r1, ip
23313
+ mul lr, r2, r1
23314
+ str r0, [ip, #4]
23315
+ ldr r0, .L3768
23316
+ bic r3, lr, #3
23317
+ str r6, [ip, #16]
23318
+ str r3, [sp, #28]
23319
+ ldr lr, [sp, #28]
23320
+ ldr r3, [r0, #-492]
23321
+ ldr r0, [r0, #-512]
23322
+ str r3, [sp, #32]
23323
+ add r3, r3, lr
23324
+ str r3, [sp, #8]
23325
+ str r3, [ip, #12]
23326
+ ldr r3, .L3768+40
23327
+ ldrh lr, [r3]
23328
+ mul r1, r1, lr
23329
+ bic r1, r1, #3
23330
+ add r1, r0, r1
23331
+ ldr r0, [sp, #8]
23332
+ str r1, [ip, #8]
23333
+ mov r1, #0
23334
+ bl ftl_memset
23335
+ ldr r3, [sp, #4]
23336
+ cmp r3, r6
23337
+ orreq r4, r4, #1
23338
+ cmp r4, #0
23339
+ beq .L3717
23340
+ cmp r3, r6
23341
+ bne .L3718
23342
+ ldr r3, .L3768+32
23343
+ mov r0, r7
23344
+ ldrh r4, [r3]
23345
+ mov r1, r4
23346
+ bl __aeabi_uidivmod
23347
+ sub r4, r4, r1
23348
+ mov fp, r1
23349
+ cmp r4, r9
23350
+ movcs r4, r9
23351
+.L3719:
23352
+ ldr r3, .L3768+32
23353
+ ldrh r2, [r3]
23354
+ cmp r2, r4
23355
+ bne .L3720
23356
+ ldr r3, [sp, #4]
23357
+ cmp r3, r6
23358
+ mulne r1, r4, r6
23359
+ ldrne r3, [sp, #12]
23360
+ ldreq r1, [sp, #12]
23361
+ subne r1, r1, r7
23362
+ addne r1, r3, r1, lsl #9
23363
+ ldr r3, [sp, #16]
23364
+ cmp r3, #0
23365
+ beq .L3722
23366
+ ldr r2, [r10, #2444]
23367
+ mov ip, #36
23368
+ ldr r0, [r10, #2448]
23369
+ mla r2, ip, r2, r0
23370
+ str r1, [r2, #8]
23371
+.L3723:
23372
+ ldr r2, .L3768+44
23373
+ ldr r3, [sp, #32]
23374
+ ldr r1, [sp, #28]
23375
+ strh r2, [r3, r1] @ movhi
23376
+ ldr r1, .L3768
23377
+ ldr r3, [sp, #8]
23378
+ ldr r2, [r1, #-3328]
23379
+ str r2, [r3, #4]
23380
+ add r2, r2, #1
23381
+ cmn r2, #1
23382
+ ldr r3, [sp, #8]
23383
+ moveq r2, #0
23384
+ str r2, [r1, #-3328]
23385
+ ldr r2, [sp, #40]
23386
+ str r6, [r3, #8]
23387
+ add r6, r6, #1
23388
+ str r2, [r3, #12]
23389
+ ldrh r2, [r5]
23390
+ strh r2, [r3, #2] @ movhi
23391
+ ldr r2, [r10, #2444]
23392
+ ldr r3, [sp, #20]
23393
+ add r2, r2, #1
23394
+ str r2, [r10, #2444]
23395
+ add r3, r3, #1
23396
+ b .L3766
23397
+.L3718:
23398
+ ldr r3, .L3768+32
23399
+ add r4, r7, r9
23400
+ mov fp, #0
23401
+ ldrh r2, [r3]
23402
+ smulbb r2, r2, r6
23403
+ sub r4, r4, r2
23404
+ uxth r4, r4
23405
+ b .L3719
23406
+.L3722:
23407
+ ldr r2, [r10, #2448]
23408
+ mov ip, #36
23409
+ ldr r0, [r10, #2444]
23410
+ mla r0, ip, r0, r2
23411
+ ldr r2, .L3768+40
23412
+ ldrh r2, [r2]
23413
+.L3767:
23414
+ ldr r0, [r0, #8]
23415
+ b .L3764
23416
+.L3720:
23417
+ ldr r2, [sp, #40]
23418
+ cmn r2, #1
23419
+ beq .L3724
23420
+ ldr r1, [r10, #2448]
23421
+ mov r0, #36
23422
+ str r2, [sp, #48]
23423
+ ldr r2, [r10, #2444]
23424
+ str r6, [sp, #60]
23425
+ mla r2, r0, r2, r1
23426
+ add r0, sp, #44
23427
+ ldr r1, [r2, #8]
23428
+ ldr r2, [r2, #12]
23429
+ str r1, [sp, #52]
23430
+ mov r1, #1
23431
+ str r2, [sp, #56]
23432
+ mov r2, #0
23433
+ bl FlashReadPages
23434
+ ldr r2, [sp, #44]
23435
+ cmn r2, #1
23436
+ ldr r2, .L3768
23437
+ ldreq r1, [r2, #-3164]
23438
+ addeq r1, r1, #1
23439
+ streq r1, [r2, #-3164]
23440
+ beq .L3727
23441
+ ldr r3, [sp, #8]
23442
+ ldr r1, [r3, #8]
23443
+ cmp r6, r1
23444
+ beq .L3727
23445
+ ldr r1, [r2, #-3164]
23446
+ ldr r0, .L3768+48
23447
+ add r1, r1, #1
23448
+ str r1, [r2, #-3164]
23449
+ mov r2, r6
23450
+ ldr r1, [r3, #8]
23451
+ bl printk
23452
+.L3727:
23453
+ ldr r3, [sp, #4]
23454
+ lsl r2, r4, #9
23455
+ cmp r3, r6
23456
+ bne .L3728
23457
+ ldr r0, [r10, #2448]
23458
+ mov ip, #36
23459
+ ldr r1, [r10, #2444]
23460
+ mla r1, ip, r1, r0
23461
+ ldr r0, [r1, #8]
23462
+ ldr r1, [sp, #12]
23463
+ add r0, r0, fp, lsl #9
23464
+.L3764:
23465
+ bl ftl_memcpy
23466
+ b .L3723
23467
+.L3724:
23468
+ ldr r2, [r10, #2448]
23469
+ mov r1, #36
23470
+ ldr r0, [r10, #2444]
23471
+ mla r0, r1, r0, r2
23472
+ ldr r2, .L3768+40
23473
+ mov r1, #0
23474
+ ldrh r2, [r2]
23475
+ ldr r0, [r0, #8]
23476
+ bl ftl_memset
23477
+ b .L3727
23478
+.L3728:
23479
+ ldr r3, .L3768+32
23480
+ mov lr, #36
23481
+ ldr r0, [r10, #2444]
23482
+ ldr ip, [r10, #2448]
23483
+ ldrh r1, [r3]
23484
+ ldr r3, [sp, #12]
23485
+ mla r0, lr, r0, ip
23486
+ mul r1, r6, r1
23487
+ sub r1, r1, r7
23488
+ add r1, r3, r1, lsl #9
23489
+ b .L3767
23490
+.L3717:
23491
+ ldr r3, [sp, #16]
23492
+ cmp r3, #0
23493
+ beq .L3729
23494
+ ldr r2, [r10, #2444]
23495
+ ldr r1, [r10, #2448]
23496
+ ldr r3, .L3768+32
23497
+ mla fp, fp, r2, r1
23498
+ ldrh r2, [r3]
23499
+ ldr r3, [sp, #12]
23500
+ mul r2, r6, r2
23501
+ sub r2, r2, r7
23502
+ add r2, r3, r2, lsl #9
23503
+ str r2, [fp, #8]
23504
+ b .L3723
23505
+.L3729:
23506
+ ldr r3, .L3768+32
23507
+ ldr r2, [r10, #2444]
23508
+ ldr r0, [r10, #2448]
23509
+ ldrh r1, [r3]
23510
+ mla fp, fp, r2, r0
23511
+ ldrh r2, [r3, #4]
23512
+ ldr r3, [sp, #12]
23513
+ mul r1, r6, r1
23514
+ ldr r0, [fp, #8]
23515
+ sub r1, r1, r7
23516
+ add r1, r3, r1, lsl #9
23517
+ b .L3764
23518
+.L3733:
23519
+ bl FtlCacheWriteBack
23520
+ cmp r8, #1
23521
+ mov r2, #0
23522
+ str r2, [r10, #2444]
23523
+ bhi .L3708
23524
+ b .L3735
23525
+.L3744:
23526
+ mvn r0, #0
23527
+ b .L3700
23528
+.L3769:
2300423529 .align 2
23005
-.L3854:
23530
+.L3768:
2300623531 .word .LANCHOR2
2300723532 .word .LANCHOR1
2300823533 .word .LANCHOR0
23009
- .word .LANCHOR4
23010
- .word .LANCHOR2-3524
23011
- .word .LANCHOR2-3476
23012
- .word .LANCHOR0+2394
23013
- .word .LANCHOR0+2400
23014
- .word .LANCHOR0+2398
23015
- .word .LC166
23016
- .word -3947
2301723534 .word .LANCHOR2-3520
23535
+ .word .LANCHOR2-2656
2301823536 .word .LANCHOR2-3284
2301923537 .word .LANCHOR2-2666
23020
- .word .LANCHOR2-2664
2302123538 .word .LANCHOR2-2718
23022
- .word .LANCHOR2-3528
23539
+ .word .LANCHOR0+2396
23540
+ .word .LANCHOR0+2402
23541
+ .word .LANCHOR0+2400
23542
+ .word -3947
23543
+ .word .LC166
2302323544 .fnend
2302423545 .size ftl_write, .-ftl_write
2302523546 .align 2
2302623547 .global ftl_vendor_write
23548
+ .syntax unified
23549
+ .arm
23550
+ .fpu softvfp
2302723551 .type ftl_vendor_write, %function
2302823552 ftl_vendor_write:
2302923553 .fnstart
2303023554 @ args = 0, pretend = 0, frame = 0
2303123555 @ frame_needed = 0, uses_anonymous_args = 0
23032
- str lr, [sp, #-4]!
23033
- .save {lr}
23034
- mov ip, r1
23035
- mov lr, r0
23556
+ @ link register save eliminated.
2303623557 mov r3, r2
23037
- mov r1, lr
23558
+ mov r2, r1
23559
+ mov r1, r0
2303823560 mov r0, #16
23039
- mov r2, ip
23040
- ldr lr, [sp], #4
2304123561 b ftl_write
2304223562 .fnend
2304323563 .size ftl_vendor_write, .-ftl_vendor_write
2304423564 .align 2
2304523565 .global FlashBootVendorWrite
23566
+ .syntax unified
23567
+ .arm
23568
+ .fpu softvfp
2304623569 .type FlashBootVendorWrite, %function
2304723570 FlashBootVendorWrite:
2304823571 .fnstart
2304923572 @ args = 0, pretend = 0, frame = 0
2305023573 @ frame_needed = 0, uses_anonymous_args = 0
23051
- stmfd sp!, {r4, r5, r6, lr}
23574
+ push {r4, r5, r6, lr}
2305223575 .save {r4, r5, r6, lr}
23053
- mov r4, r2
23054
- mov r6, r0
23576
+ mov r4, r0
2305523577 mov r5, r1
23578
+ mov r6, r2
2305623579 bl rknand_device_lock
23057
- ldr r3, .L3862
23058
- ldr r3, [r3, #504]
23580
+ ldr r3, .L3775
23581
+ ldr r3, [r3, #500]
2305923582 cmp r3, #1
2306023583 mvnne r4, #0
23061
- bne .L3859
23062
- mov r2, r4
23063
- mov r0, r6
23584
+ bne .L3772
23585
+ mov r0, r4
23586
+ mov r2, r6
2306423587 mov r1, r5
2306523588 bl ftl_vendor_write
2306623589 mov r4, r0
23067
-.L3859:
23590
+.L3772:
2306823591 bl rknand_device_unlock
2306923592 mov r0, r4
23070
- ldmfd sp!, {r4, r5, r6, pc}
23071
-.L3863:
23593
+ pop {r4, r5, r6, pc}
23594
+.L3776:
2307223595 .align 2
23073
-.L3862:
23596
+.L3775:
2307423597 .word .LANCHOR1
2307523598 .fnend
2307623599 .size FlashBootVendorWrite, .-FlashBootVendorWrite
2307723600 .align 2
2307823601 .global ftl_sys_write
23602
+ .syntax unified
23603
+ .arm
23604
+ .fpu softvfp
2307923605 .type ftl_sys_write, %function
2308023606 ftl_sys_write:
2308123607 .fnstart
2308223608 @ args = 0, pretend = 0, frame = 0
2308323609 @ frame_needed = 0, uses_anonymous_args = 0
2308423610 @ link register save eliminated.
23085
- mov ip, r1
2308623611 mov r3, r2
23612
+ mov r2, r1
2308723613 add r1, r0, #256
23088
- mov r2, ip
2308923614 mov r0, #16
2309023615 b ftl_write
2309123616 .fnend
2309223617 .size ftl_sys_write, .-ftl_sys_write
2309323618 .align 2
2309423619 .global StorageSysDataStore
23620
+ .syntax unified
23621
+ .arm
23622
+ .fpu softvfp
2309523623 .type StorageSysDataStore, %function
2309623624 StorageSysDataStore:
2309723625 .fnstart
2309823626 @ args = 0, pretend = 0, frame = 0
2309923627 @ frame_needed = 0, uses_anonymous_args = 0
23100
- stmfd sp!, {r3, r4, r5, lr}
23101
- .save {r3, r4, r5, lr}
23102
- mov r4, r1
23103
- mov r5, r0
23628
+ push {r4, r5, r6, lr}
23629
+ .save {r4, r5, r6, lr}
23630
+ mov r5, r1
23631
+ mov r4, r0
2310423632 bl rknand_device_lock
23105
- mov r2, r4
23633
+ mov r2, r5
2310623634 mov r1, #1
23107
- mov r0, r5
23635
+ mov r0, r4
2310823636 bl ftl_sys_write
2310923637 mov r4, r0
2311023638 bl rknand_device_unlock
2311123639 mov r0, r4
23112
- ldmfd sp!, {r3, r4, r5, pc}
23640
+ pop {r4, r5, r6, pc}
2311323641 .fnend
2311423642 .size StorageSysDataStore, .-StorageSysDataStore
2311523643 .align 2
2311623644 .global FtlDumpSysBlock
23645
+ .syntax unified
23646
+ .arm
23647
+ .fpu softvfp
2311723648 .type FtlDumpSysBlock, %function
2311823649 FtlDumpSysBlock:
2311923650 .fnstart
2312023651 @ args = 0, pretend = 0, frame = 0
2312123652 @ frame_needed = 0, uses_anonymous_args = 0
23122
- stmfd sp!, {r4, r5, r6, r7, r8, r9, lr}
23123
- .save {r4, r5, r6, r7, r8, r9, lr}
23124
- mov r8, r0, asl #10
23125
- ldr r4, .L3876
23126
- .pad #28
23127
- sub sp, sp, #28
23128
- ldr r7, .L3876+4
23653
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
23654
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
23655
+ lsl r8, r0, #10
23656
+ ldr r4, .L3788
23657
+ .pad #24
23658
+ sub sp, sp, #24
2312923659 mov r6, r0
2313023660 mov r5, #0
23661
+ ldr r7, .L3788+4
2313123662 ldr r3, [r4, #-524]
23132
- mov r9, r4
23133
- str r3, [r4, #1760]
23663
+ add r9, r4, #1760
23664
+ ldr r10, .L3788+8
23665
+ str r3, [r4, #1768]
2313423666 ldr r3, [r4, #-500]
23135
- str r3, [r4, #1764]
23136
-.L3868:
23667
+ str r3, [r4, #1772]
23668
+.L3781:
2313723669 ldrh r2, [r7]
2313823670 sxth r3, r5
2313923671 cmp r3, r2
23140
- bge .L3875
23141
- mov r1, #1
23142
- ldr r0, .L3876+8
23143
- mov r2, r1
23672
+ blt .L3783
23673
+ add sp, sp, #24
23674
+ @ sp needed
23675
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
23676
+.L3783:
23677
+ mov r2, #1
2314423678 orr r3, r3, r8
23145
- str r3, [r4, #1756]
23679
+ mov r1, r2
23680
+ mov r0, r9
23681
+ str r3, [r4, #1764]
2314623682 bl FlashReadPages
23147
- ldr r3, [r4, #1764]
23683
+ ldr r2, [r4, #1768]
2314823684 mov r1, r6
23149
- ldr r0, .L3876+12
23150
- ldr r2, [r3]
23151
- str r2, [sp]
23152
- ldr r2, [r3, #4]
23153
- str r2, [sp, #4]
23685
+ ldr r3, [r4, #1772]
23686
+ mov r0, r10
23687
+ ldr r2, [r2]
23688
+ str r2, [sp, #16]
23689
+ ldr r2, [r3, #12]
23690
+ str r2, [sp, #12]
2315423691 ldr r2, [r3, #8]
2315523692 str r2, [sp, #8]
23156
- ldr r3, [r3, #12]
23157
- ldr r2, [r4, #1752]
23158
- str r3, [sp, #12]
23159
- ldr r3, [r4, #1760]
23693
+ ldr r2, [r3, #4]
23694
+ str r2, [sp, #4]
2316023695 ldr r3, [r3]
23161
- str r3, [sp, #16]
23162
- ldr r3, [r4, #1756]
23163
- bl printk
23696
+ ldr r2, [r4, #1760]
23697
+ str r3, [sp]
2316423698 ldr r3, [r4, #1764]
23699
+ bl printk
23700
+ ldr r3, [r4, #1772]
2316523701 ldr r3, [r3]
2316623702 cmn r3, #1
23167
- beq .L3869
23168
- ldr r0, .L3876+16
23169
- mov r2, #4
23170
- ldr r1, [r9, #-524]
23703
+ beq .L3782
2317123704 mov r3, #768
23705
+ mov r2, #4
23706
+ ldr r1, [r4, #-524]
23707
+ ldr r0, .L3788+12
2317223708 bl rknand_print_hex
23173
-.L3869:
23709
+.L3782:
2317423710 add r5, r5, #1
23175
- b .L3868
23176
-.L3875:
23177
- add sp, sp, #28
23178
- @ sp needed
23179
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc}
23180
-.L3877:
23711
+ b .L3781
23712
+.L3789:
2318123713 .align 2
23182
-.L3876:
23714
+.L3788:
2318323715 .word .LANCHOR2
23184
- .word .LANCHOR0+2390
23185
- .word .LANCHOR2+1752
23716
+ .word .LANCHOR0+2392
2318623717 .word .LC167
2318723718 .word .LC168
2318823719 .fnend
2318923720 .size FtlDumpSysBlock, .-FtlDumpSysBlock
2319023721 .align 2
2319123722 .global dump_map_info
23723
+ .syntax unified
23724
+ .arm
23725
+ .fpu softvfp
2319223726 .type dump_map_info, %function
2319323727 dump_map_info:
2319423728 .fnstart
23195
- @ args = 0, pretend = 0, frame = 24
23729
+ @ args = 0, pretend = 0, frame = 16
2319623730 @ frame_needed = 0, uses_anonymous_args = 0
23197
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23731
+ ldr r3, .L3805
23732
+ movw r2, #2332
23733
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2319823734 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23199
- movw r3, #2328
23200
- ldr r6, .L3896
23201
- .pad #52
23202
- sub sp, sp, #52
23203
- ldr r10, .L3896+4
23204
- ldrh r7, [r6, r3]
23205
- add fp, r10, #18
23206
-.L3879:
23207
- ldrh r3, [r10]
23208
- ldr r4, .L3896+8
23209
- cmp r3, r7
23210
- bls .L3892
23211
- ldr r1, .L3896+12
23212
- mov r8, #0
23213
- ldr r2, [r4, #-536]
23214
- mov r5, r8
23215
- ldr r3, [r4, #-2696]
23216
- ldrh ip, [r1]
23217
- ldr r9, [r4, #-2692]
23218
- ldrh r1, [r1, #80]
23219
- str r1, [sp, #28]
23220
-.L3888:
23221
- uxth r1, r8
23222
- cmp r1, ip
23223
- bcs .L3894
23224
- mov r1, r7
23225
- ldrb r0, [fp, r8] @ zero_extendqisi2
23226
- str r3, [sp, #44]
23227
- str r2, [sp, #40]
23228
- str ip, [sp, #36]
23735
+ .pad #44
23736
+ sub sp, sp, #44
23737
+ ldrh r6, [r3, r2]
23738
+ str r3, [sp, #24]
23739
+.L3791:
23740
+ ldr r3, .L3805+4
23741
+ ldr r4, .L3805+8
23742
+ ldrh r3, [r3]
23743
+ cmp r3, r6
23744
+ bhi .L3798
23745
+ ldr r10, .L3805+12
23746
+ mov r7, #0
23747
+ sub r9, r4, #388
23748
+ add fp, r4, #1760
23749
+.L3799:
23750
+ ldrh r3, [r9]
23751
+ sxth r5, r7
23752
+ cmp r5, r3
23753
+ bge .L3802
23754
+ lsl r5, r5, #1
23755
+ mov r6, #0
23756
+ ldr r8, .L3805+16
23757
+ b .L3803
23758
+.L3793:
23759
+ str r3, [sp, #32]
23760
+ mov r1, r6
23761
+ ldr r3, .L3805+20
23762
+ str r2, [sp, #36]
23763
+ ldrb r0, [r3, r7] @ zero_extendqisi2
2322923764 bl V2P_block
23230
- str r0, [sp, #32]
23765
+ str r0, [sp, #28]
2323123766 bl FtlBbmIsBadBlock
2323223767 cmp r0, #0
23233
- ldr r1, [sp, #32]
23234
- ldr ip, [sp, #36]
23235
- ldr r2, [sp, #40]
23236
- ldr r3, [sp, #44]
23237
- bne .L3880
23238
- mov r0, #36
23239
- mov r1, r1, asl #10
23240
- mla r0, r0, r5, r2
23241
- stmib r0, {r1, r3}
23768
+ ldr r3, [sp, #32]
23769
+ ldr r2, [sp, #36]
23770
+ bne .L3792
2324223771 ldr r1, [sp, #28]
23243
- mul r1, r1, r5
23772
+ mla r0, r2, r5, r8
23773
+ lsl r1, r1, #10
23774
+ stmib r0, {r1, fp}
23775
+ mul r1, r9, r5
2324423776 add r5, r5, #1
2324523777 uxth r5, r5
23246
- add lr, r1, #3
23778
+ add ip, r1, #3
2324723779 cmp r1, #0
23248
- movlt r1, lr
23780
+ movlt r1, ip
2324923781 bic r1, r1, #3
23250
- add r1, r9, r1
23782
+ add r1, r10, r1
2325123783 str r1, [r0, #12]
23252
-.L3880:
23253
- add r8, r8, #1
23254
- b .L3888
23255
-.L3894:
23784
+.L3792:
23785
+ add r7, r7, #1
23786
+.L3800:
23787
+ uxth r1, r7
23788
+ cmp r3, r1
23789
+ bhi .L3793
2325623790 cmp r5, #0
23257
- beq .L3883
23258
- ldr r0, [r4, #-536]
23259
- mov r1, r5
23260
- mov r2, #1
23261
- mov r8, #0
23262
- bl FlashReadPages
23263
- mov r9, #36
23264
-.L3884:
23265
- uxth r3, r8
23266
- cmp r3, r5
23267
- bcs .L3883
23268
- ldr r3, [r4, #-536]
23269
- ldr r0, .L3896+16
23270
- mla r3, r9, r8, r3
23271
- add r8, r8, #1
23272
- ldmib r3, {r2, r3, ip}
23273
- ldr r1, [ip, #4]
23274
- str r1, [sp]
23275
- ldr r1, [ip, #8]
23276
- str r1, [sp, #4]
23277
- ldr r1, [ip, #12]
23278
- str r1, [sp, #8]
23279
- ldr r1, [r3]
23280
- str r1, [sp, #12]
23281
- ubfx r1, r2, #10, #16
23282
- ldr r3, [r3, #4]
23283
- str r3, [sp, #16]
23284
- ldr r3, [ip]
23285
- bl printk
23286
- b .L3884
23287
-.L3883:
23288
- add r7, r7, #1
23289
- uxth r7, r7
23290
- b .L3879
23291
-.L3892:
23292
- ldr r9, .L3896+20
23293
- mov r8, #0
23294
-.L3887:
23295
- ldr r7, .L3896+8
23296
- sxth r5, r8
23297
- sub r3, r7, #388
23298
- ldrh r3, [r3]
23299
- cmp r5, r3
23300
- bge .L3890
23301
- mov r5, r5, asl #1
23791
+ bne .L3794
23792
+.L3797:
23793
+ add r6, r6, #1
23794
+ uxth r6, r6
23795
+ b .L3791
23796
+.L3794:
23797
+ ldr r9, .L3805+24
23798
+ mov r0, r8
2330223799 mov r7, #0
23303
-.L3891:
23304
- ldrh r2, [r9]
23305
- sxth r3, r7
23306
- add r7, r7, #1
23307
- cmp r3, r2
23308
- bge .L3895
23309
- ldr r2, [r4, #-472]
23310
- mov r1, #1
23311
- ldr r0, .L3896+24
23312
- ldrh r2, [r2, r5]
23313
- orr r3, r3, r2, asl #10
23314
- mov r2, r1
23315
- str r3, [r4, #1756]
23800
+ mov r8, #36
23801
+ mov r2, #1
23802
+ mov r1, r5
2331623803 bl FlashReadPages
23317
- ldr r3, [r4, #1764]
23318
- ldr r1, [r4, #-472]
23319
- ldr r2, [r4, #1760]
23320
- ldr r0, [r3]
23321
- ldrh r1, [r1, r5]
23322
- str r0, [sp]
23804
+.L3795:
23805
+ uxth r3, r7
23806
+ cmp r5, r3
23807
+ bls .L3797
23808
+ ldr r3, [r4, #-536]
23809
+ mla r3, r8, r7, r3
23810
+ add r7, r7, #1
23811
+ ldr r1, [r3, #12]
23812
+ ldr r2, [r3, #4]
23813
+ ldr r3, [r3, #8]
2332323814 ldr r0, [r3, #4]
23324
- str r0, [sp, #4]
23325
- ldr r0, [r3, #8]
23326
- str r0, [sp, #8]
23327
- ldr r3, [r3, #12]
23328
- ldr r0, .L3896+28
23815
+ str r0, [sp, #16]
23816
+ mov r0, r9
23817
+ ldr r3, [r3]
2332923818 str r3, [sp, #12]
23330
- ldr r3, [r2]
23331
- str r3, [sp, #16]
23332
- ldr r3, [r2, #4]
23333
- str r3, [sp, #20]
23334
- ldr r2, [r4, #1752]
23335
- ldr r3, [r4, #1756]
23819
+ ldr r3, [r1, #12]
23820
+ str r3, [sp, #8]
23821
+ ldr r3, [r1, #8]
23822
+ str r3, [sp, #4]
23823
+ ldr r3, [r1, #4]
23824
+ str r3, [sp]
23825
+ ldr r3, [r1]
23826
+ ubfx r1, r2, #10, #16
2333623827 bl printk
23337
- b .L3891
23338
-.L3895:
23339
- add r8, r8, #1
23340
- b .L3887
23341
-.L3890:
23342
- ldr r1, [r7, #-472]
23343
- movw r4, #2424
23344
- ldr r3, [r6, #2416]
23828
+ b .L3795
23829
+.L3798:
23830
+ ldr r2, .L3805+28
23831
+ mov r7, #0
23832
+ ldr r8, [r4, #-536]
23833
+ mov r5, r7
23834
+ ldr fp, [r4, #-2696]
23835
+ ldrh r3, [r2]
23836
+ ldrh r9, [r2, #78]
23837
+ mov r2, #36
23838
+ ldr r10, [r4, #-2692]
23839
+ b .L3800
23840
+.L3801:
23841
+ ldr r2, [r4, #-472]
23842
+ mov r0, fp
23843
+ ldrh r2, [r2, r5]
23844
+ orr r3, r3, r2, lsl #10
23845
+ mov r2, #1
23846
+ mov r1, r2
23847
+ str r3, [r4, #1764]
23848
+ bl FlashReadPages
23849
+ ldr r2, [r4, #1768]
23850
+ ldr r1, [r4, #-472]
23851
+ ldr r3, [r4, #1772]
23852
+ ldr r0, [r2, #4]
23853
+ ldrh r1, [r1, r5]
23854
+ str r0, [sp, #20]
23855
+ mov r0, r8
23856
+ ldr r2, [r2]
23857
+ str r2, [sp, #16]
23858
+ ldr r2, [r3, #12]
23859
+ str r2, [sp, #12]
23860
+ ldr r2, [r3, #8]
23861
+ str r2, [sp, #8]
23862
+ ldr r2, [r3, #4]
23863
+ str r2, [sp, #4]
23864
+ ldr r3, [r3]
23865
+ ldr r2, [r4, #1760]
23866
+ str r3, [sp]
23867
+ ldr r3, [r4, #1764]
23868
+ bl printk
23869
+.L3803:
23870
+ ldrh r2, [r10]
23871
+ sxth r3, r6
23872
+ add r6, r6, #1
23873
+ cmp r3, r2
23874
+ blt .L3801
23875
+ add r7, r7, #1
23876
+ b .L3799
23877
+.L3802:
23878
+ ldr r3, [sp, #24]
2334523879 mov r2, #2
23346
- ldr r0, .L3896+32
23880
+ ldr r1, [r4, #-472]
23881
+ movw r5, #2428
23882
+ ldr r0, .L3805+32
23883
+ ldr r3, [r3, #2420]
2334723884 bl rknand_print_hex
23348
- ldr r1, [r7, #-452]
23349
- ldrh r3, [r6, r4]
23885
+ ldr r3, [sp, #24]
2335023886 mov r2, #4
23351
- ldr r0, .L3896+36
23887
+ ldr r1, [r4, #-452]
23888
+ ldr r0, .L3805+36
23889
+ ldrh r3, [r3, r5]
2335223890 bl rknand_print_hex
23353
- ldr r0, .L3896+40
23354
- ldr r1, [r7, #-448]
23891
+ ldr r3, [sp, #24]
2335523892 mov r2, #4
23356
- ldrh r3, [r6, r4]
23357
- add sp, sp, #52
23893
+ ldr r1, [r4, #-448]
23894
+ ldr r0, .L3805+40
23895
+ ldrh r3, [r3, r5]
23896
+ add sp, sp, #44
2335823897 @ sp needed
23359
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23898
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2336023899 b rknand_print_hex
23361
-.L3897:
23900
+.L3806:
2336223901 .align 2
23363
-.L3896:
23902
+.L3805:
2336423903 .word .LANCHOR0
23365
- .word .LANCHOR0+2330
23904
+ .word .LANCHOR0+2334
2336623905 .word .LANCHOR2
23367
- .word .LANCHOR0+2320
23368
- .word .LC169
23369
- .word .LANCHOR0+2390
23370
- .word .LANCHOR2+1752
23906
+ .word .LANCHOR0+2392
2337123907 .word .LC113
23908
+ .word .LANCHOR0+2350
23909
+ .word .LC169
23910
+ .word .LANCHOR0+2324
2337223911 .word .LC170
2337323912 .word .LC171
2337423913 .word .LC172
....@@ -23376,493 +23915,483 @@
2337623915 .size dump_map_info, .-dump_map_info
2337723916 .align 2
2337823917 .global flash_boot_enter_slc_mode
23918
+ .syntax unified
23919
+ .arm
23920
+ .fpu softvfp
2337923921 .type flash_boot_enter_slc_mode, %function
2338023922 flash_boot_enter_slc_mode:
2338123923 .fnstart
2338223924 @ args = 0, pretend = 0, frame = 0
2338323925 @ frame_needed = 0, uses_anonymous_args = 0
2338423926 @ link register save eliminated.
23385
- ldr r3, .L3900
23386
- ldr r2, [r3, #2264]
23387
- ldr r3, .L3900+4
23927
+ ldr r3, .L3809
23928
+ ldr r2, [r3, #2268]
23929
+ ldr r3, .L3809+4
2338823930 cmp r2, r3
2338923931 bxne lr
2339023932 b flash_enter_slc_mode
23391
-.L3901:
23933
+.L3810:
2339223934 .align 2
23393
-.L3900:
23935
+.L3809:
2339423936 .word .LANCHOR0
2339523937 .word 1446522928
2339623938 .fnend
2339723939 .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode
2339823940 .align 2
2339923941 .global flash_boot_exit_slc_mode
23942
+ .syntax unified
23943
+ .arm
23944
+ .fpu softvfp
2340023945 .type flash_boot_exit_slc_mode, %function
2340123946 flash_boot_exit_slc_mode:
2340223947 .fnstart
2340323948 @ args = 0, pretend = 0, frame = 0
2340423949 @ frame_needed = 0, uses_anonymous_args = 0
2340523950 @ link register save eliminated.
23406
- ldr r3, .L3904
23407
- ldr r2, [r3, #2264]
23408
- ldr r3, .L3904+4
23951
+ ldr r3, .L3813
23952
+ ldr r2, [r3, #2268]
23953
+ ldr r3, .L3813+4
2340923954 cmp r2, r3
2341023955 bxne lr
2341123956 b flash_exit_slc_mode
23412
-.L3905:
23957
+.L3814:
2341323958 .align 2
23414
-.L3904:
23959
+.L3813:
2341523960 .word .LANCHOR0
2341623961 .word 1446522928
2341723962 .fnend
2341823963 .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode
2341923964 .align 2
2342023965 .global write_idblock
23966
+ .syntax unified
23967
+ .arm
23968
+ .fpu softvfp
2342123969 .type write_idblock, %function
2342223970 write_idblock:
2342323971 .fnstart
23424
- @ args = 0, pretend = 0, frame = 120
23972
+ @ args = 0, pretend = 0, frame = 112
2342523973 @ frame_needed = 0, uses_anonymous_args = 0
23426
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23974
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2342723975 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
23428
- mov r8, r0
23429
- ldr r7, .L3959
23430
- .pad #132
23431
- sub sp, sp, #132
23976
+ mov r6, r0
23977
+ ldr r4, .L3864
23978
+ .pad #124
23979
+ sub sp, sp, #124
2343223980 mov r0, #256000
23433
- mov fp, r1
23434
- mov r6, r2
23435
- ldr r3, [r7, #44]
23436
- ldr r4, [r7, #4]
23437
- ldrb r5, [r3, #9] @ zero_extendqisi2
23981
+ mov r10, r1
23982
+ mov r5, r2
23983
+ ldr r3, [r4, #48]
23984
+ ldr r8, [r4, #40]
23985
+ ldrb r7, [r3, #9] @ zero_extendqisi2
2343823986 bl ftl_malloc
2343923987 subs r3, r0, #0
2344023988 str r3, [sp, #8]
23441
- beq .L3933
23442
- add ip, r8, #508
23443
- add ip, ip, #3
23444
- mov r10, ip, lsr #9
23445
- cmp r10, #8
23446
- bls .L3931
23447
- cmp r10, #500
23448
- bhi .L3933
23449
- b .L3908
23450
-.L3931:
23451
- mov r10, #8
23452
-.L3908:
23453
- ldr r2, [fp]
23454
- ldr r3, .L3959+4
23989
+ beq .L3842
23990
+ add r0, r6, #508
23991
+ add r0, r0, #3
23992
+ lsr r9, r0, #9
23993
+ cmp r9, #8
23994
+ bls .L3840
23995
+ cmp r9, #500
23996
+ bhi .L3842
23997
+.L3817:
23998
+ ldr r2, [r10]
23999
+ ldr r3, .L3864+4
2345524000 cmp r2, r3
23456
- bne .L3933
23457
- smulbb r3, r5, r4
23458
- uxth r3, r3
23459
- str r3, [sp, #12]
23460
- sub r0, r3, #1
23461
- mov r1, r3
23462
- add r0, r0, r10
24001
+ bne .L3842
24002
+ smulbb r7, r7, r8
24003
+ uxth fp, r7
24004
+ sub r0, fp, #1
24005
+ mov r1, fp
24006
+ add r0, r0, r9
2346324007 bl __aeabi_uidiv
24008
+ str r0, [sp, #32]
24009
+ add r0, r10, #254976
24010
+ add r0, r0, #512
2346424011 mov r3, #0
2346524012 movw r2, #63871
23466
- str r0, [sp, #36]
23467
- add r0, fp, #254976
23468
- add r0, r0, #512
23469
-.L3912:
24013
+.L3821:
2347024014 ldr r1, [r0, #-4]!
2347124015 cmp r1, #0
23472
- bne .L3909
23473
- ldr r1, [fp, r3, asl #2]
24016
+ bne .L3818
24017
+ ldr r1, [r10, r3, lsl #2]
2347424018 add r3, r3, #1
2347524019 cmp r3, #4096
2347624020 sub r2, r2, #1
2347724021 movhi r3, #0
2347824022 cmp r2, #4096
2347924023 str r1, [r0, #512]
23480
- bne .L3912
23481
- b .L3911
23482
-.L3909:
23483
- ldr r0, .L3959+8
23484
- bl printk
23485
-.L3911:
24024
+ bne .L3821
24025
+.L3820:
2348624026 mov r3, #5
23487
- ldr r0, .L3959+12
23488
- mov r1, r6
24027
+ mov r1, r5
2348924028 mov r2, #4
24029
+ ldr r0, .L3864+8
2349024030 bl rknand_print_hex
23491
- ldr r1, [fp, #512]
23492
- ldrb r2, [r7, #1] @ zero_extendqisi2
23493
- sub r4, r6, #4
23494
- ldr r0, .L3959+16
24031
+ ldrb r2, [r4, #37] @ zero_extendqisi2
24032
+ sub r5, r5, #4
24033
+ ldr r1, [r10, #512]
24034
+ ldr r0, .L3864+12
2349524035 bl printk
23496
- ldr r2, .L3959+20
23497
- ldrh r3, [r7, #142]
23498
- mov r1, r10
23499
- ldr r0, .L3959+24
23500
- ldr r2, [r2, #1708]
23501
- ldr r5, .L3959
24036
+ ldr r2, .L3864+16
24037
+ mov r1, r9
24038
+ ldrh r3, [r4, #150]
24039
+ ldr r0, .L3864+20
24040
+ ldr r2, [r2, #1716]
2350224041 str r2, [sp]
23503
- mov r2, r10
24042
+ mov r2, r9
2350424043 bl printk
23505
- ldrb r3, [r7, #1] @ zero_extendqisi2
23506
- ldr r2, [fp, #512]
24044
+ ldrb r3, [r4, #37] @ zero_extendqisi2
24045
+ ldr r2, [r10, #512]
24046
+ ldr r4, .L3864
2350724047 cmp r2, r3
23508
- strhi r3, [fp, #512]
23509
- mov r3, r10, asl #7
24048
+ strhi r3, [r10, #512]
24049
+ lsl r3, r9, #7
2351024050 str r3, [sp, #40]
2351124051 mov r3, #0
2351224052 str r3, [sp, #20]
23513
- str r3, [sp, #16]
23514
-.L3929:
23515
- ldr r2, [r4, #4]
23516
- ldrb r3, [r5, #1] @ zero_extendqisi2
23517
- ldr r7, .L3959
24053
+ str r3, [sp, #12]
24054
+.L3838:
24055
+ ldr r2, [r5, #4]
24056
+ ldrb r3, [r4, #37] @ zero_extendqisi2
2351824057 cmp r2, r3
23519
- bcs .L3914
23520
- ldr r3, .L3959+20
23521
- ldr r3, [r3, #1708]
24058
+ bcs .L3823
24059
+ ldr r3, .L3864+16
24060
+ ldr r3, [r3, #1716]
2352224061 cmp r2, r3
23523
- bcc .L3914
23524
- ldr r3, [sp, #36]
23525
- ldr r1, [sp, #36]
23526
- cmp r3, #1
23527
- movls r3, #0
23528
- movhi r3, #1
23529
- str r3, [sp, #44]
23530
- ldr r3, [sp, #16]
23531
- cmp r3, #0
23532
- cmpne r1, #1
23533
- bls .L3915
23534
- ldr r3, [r4]
24062
+ bcc .L3823
24063
+ ldr r3, [sp, #32]
24064
+ ldr r1, [sp, #12]
24065
+ cmp r1, #0
24066
+ cmpne r3, #1
24067
+ bls .L3824
24068
+ ldr r3, [r5]
2353524069 add r3, r3, #1
2353624070 cmp r2, r3
23537
- beq .L3914
23538
-.L3915:
23539
- mov r1, #0
24071
+ beq .L3823
24072
+.L3824:
2354024073 mov r2, #512
24074
+ mov r1, #0
2354124075 ldr r0, [sp, #8]
2354224076 bl memset
23543
- ldr r6, [r4, #4]
23544
- mov r2, r10
23545
- ldr r0, .L3959+28
23546
- ldr r3, [sp, #12]
23547
- mul r6, r6, r3
23548
- ldr r3, [r7, #44]
23549
- ldr r7, [r7, #4]
23550
- ldrb r9, [r3, #9] @ zero_extendqisi2
24077
+ ldr r3, [r4, #48]
24078
+ mov r2, r9
24079
+ ldr r6, [r5, #4]
24080
+ ldr r7, [r4, #40]
24081
+ ldrb r3, [r3, #9] @ zero_extendqisi2
24082
+ ldr r0, .L3864+24
24083
+ mul r6, r6, fp
24084
+ str r3, [sp, #16]
24085
+ ldrh r3, [sp, #16]
2355124086 mov r1, r6
24087
+ smulbb r7, r7, r3
2355224088 bl printk
2355324089 mov r0, #0
23554
- bl flash_boot_enter_slc_mode
23555
- mov r1, r9
23556
- mov r0, r6
23557
- bl __aeabi_uidiv
23558
- smulbb r7, r7, r9
2355924090 uxth r7, r7
24091
+ bl flash_boot_enter_slc_mode
24092
+ mov r0, r6
24093
+ ldr r1, [sp, #16]
24094
+ bl __aeabi_uidiv
24095
+ mov r2, #0
2356024096 mov r1, r0
23561
- mov r0, #0
23562
- mov r2, r0
24097
+ mov r0, r2
2356324098 bl FlashEraseBlock
23564
- cmp r10, r7
23565
- movls r8, #1
23566
- bls .L3916
23567
- mov r0, #0
23568
- add r1, r6, r7
23569
- mov r2, r0
24099
+ cmp r7, r9
24100
+ movcs r8, #1
24101
+ bcs .L3825
24102
+ mov r2, #0
2357024103 mov r8, #2
24104
+ add r1, r6, r7
24105
+ mov r0, r2
2357124106 bl FlashEraseBlock
23572
-.L3916:
24107
+.L3825:
2357324108 mov r0, #0
2357424109 bl flash_boot_exit_slc_mode
23575
- ldr r3, [r5, #44]
24110
+ ldr r3, [r4, #48]
2357624111 ldrh r0, [r3, #10]
2357724112 ldrb r1, [r3, #12] @ zero_extendqisi2
23578
- mov r0, r0, asl #2
24113
+ lsl r0, r0, #2
2357924114 mul r0, r8, r0
24115
+ mov r8, #0
2358024116 bl __aeabi_idiv
2358124117 mov r1, r7
23582
- mov r8, #0
23583
- str r0, [sp, #48]
24118
+ str r0, [sp, #44]
2358424119 mov r0, r6
2358524120 bl __aeabi_uidivmod
23586
- mov ip, r1
23587
- rsb r3, r1, r6
23588
- str fp, [sp, #24]
23589
- str r3, [sp, #28]
23590
-.L3917:
23591
- ldr r3, [sp, #48]
23592
- ldr r7, .L3959
23593
- cmp r8, r3
23594
- bcs .L3957
23595
- add r3, r8, ip
23596
- ubfx r3, r3, #2, #16
23597
- cmp r3, #0
23598
- beq .L3918
23599
- add r2, r3, #1
23600
- add r1, r5, r2, asl #1
23601
- ldrh r7, [r1, #148]
23602
- ldrb r1, [r5, #144] @ zero_extendqisi2
23603
- cmp r1, #0
23604
- beq .L3919
23605
- ldr r1, [r5, #2264]
23606
- ldr r0, .L3959+32
23607
- cmp r1, r0
23608
- moveq r7, r2
23609
-.L3919:
23610
- sub r7, r7, #-1073741823
23611
- mov r7, r7, asl #2
23612
- str r7, [sp, #64]
23613
-.L3918:
23614
- movw r2, #61424
23615
- str r2, [sp, #68]
23616
- add r2, r5, r3, asl #1
23617
- ldrh r7, [r2, #148]
23618
- ldrb r2, [r5, #144] @ zero_extendqisi2
23619
- cmp r2, #0
23620
- beq .L3920
23621
- ldr r2, [r5, #2264]
23622
- ldr r1, .L3959+32
23623
- cmp r2, r1
23624
- moveq r7, r3
23625
-.L3920:
23626
- ldr r3, [sp, #28]
23627
- add r8, r8, #4
23628
- str ip, [sp, #56]
23629
- uxth r8, r8
23630
- mla r2, r9, r7, r3
23631
- ldr r3, .L3959
23632
- ldrb r3, [r3, #2312] @ zero_extendqisi2
23633
- str r2, [sp, #52]
23634
- str r3, [sp, #32]
23635
- ldr r3, .L3959+20
23636
- ldrb r0, [r3, #1714] @ zero_extendqisi2
23637
- bl FlashBchSel
23638
- mov r0, #0
23639
- bl flash_boot_enter_slc_mode
23640
- ldr r3, .L3959
23641
- ldr r3, [r3, #44]
23642
- ldrb r1, [r3, #9] @ zero_extendqisi2
23643
- ldr r2, [sp, #52]
23644
- mov r0, r2
23645
- bl __aeabi_uidiv
23646
- add r3, sp, #64
23647
- mov r1, r0
23648
- ldr r2, [sp, #24]
23649
- mov r0, #0
23650
- bl FlashProgPage
23651
- mov r0, #0
23652
- bl flash_boot_exit_slc_mode
23653
- ldr r0, [sp, #32]
23654
- bl FlashBchSel
23655
- mov r1, r9
23656
- ldr r0, [sp, #28]
23657
- bl __aeabi_uidiv
23658
- add r2, r7, #1
23659
- uxth r2, r2
23660
- mov r1, r0
23661
- mov r0, #0
23662
- bl FlashPageProgMsbFFData
23663
- ldr r3, [sp, #24]
23664
- ldr ip, [sp, #56]
23665
- add r3, r3, #2048
23666
- str r3, [sp, #24]
23667
- b .L3917
23668
-.L3957:
23669
- mov r1, r6
23670
- mov r2, r10
23671
- mov r3, #0
23672
- ldr r0, .L3959+36
23673
- bl printk
23674
- ldr r6, [r4, #4]
23675
- ldr r8, [r7, #4]
23676
- mov r2, r10
23677
- ldr r0, .L3959+40
23678
- mov r9, #0
23679
- ldr r3, [sp, #12]
23680
- mul r6, r6, r3
23681
- ldr r3, [r7, #44]
23682
- ldrb r3, [r3, #9] @ zero_extendqisi2
23683
- mov r1, r6
23684
- str r3, [sp, #24]
23685
- ldrh r3, [sp, #24]
23686
- smulbb r8, r8, r3
23687
- bl printk
23688
- mov r0, r6
23689
- uxth r8, r8
23690
- mov r1, r8
23691
- bl __aeabi_uidivmod
23692
- rsb r3, r1, r6
23693
- str r3, [sp, #48]
23694
- ldr r3, [sp, #24]
24121
+ sub r3, r6, r1
2369524122 str r1, [sp, #28]
23696
- mul ip, r3, r1
23697
- ldr r3, [sp, #8]
23698
- ubfx ip, ip, #2, #2
23699
- str r3, [sp, #32]
23700
-.L3922:
23701
- cmp r9, r10
23702
- bcs .L3958
23703
- ldr r3, [sp, #28]
23704
- rsb r8, ip, #4
23705
- ldrb r1, [r5, #144] @ zero_extendqisi2
23706
- add r3, r9, r3
23707
- uxth r8, r8
23708
- ubfx r3, r3, #2, #16
23709
- cmp r1, #0
23710
- add r2, r5, r3, asl #1
23711
- ldrh r2, [r2, #148]
23712
- beq .L3923
23713
- ldr r1, [r5, #2264]
23714
- ldr r0, .L3959+32
23715
- cmp r1, r0
23716
- moveq r2, r3
23717
-.L3923:
23718
- ldr r3, [sp, #48]
23719
- add r9, r8, r9
23720
- ldr r1, [sp, #24]
23721
- add r3, ip, r3
23722
- ldrb ip, [r7, #2312] @ zero_extendqisi2
23723
- uxth r9, r9
23724
- mla r3, r1, r2, r3
23725
- ldr r2, [r7, #44]
23726
- str ip, [sp, #52]
23727
- ldrb r1, [r2, #9] @ zero_extendqisi2
23728
- ldr r2, .L3959+20
23729
- str r3, [sp, #60]
23730
- str r1, [sp, #56]
23731
- ldrb r0, [r2, #1714] @ zero_extendqisi2
23732
- bl FlashBchSel
23733
- mov r0, #0
23734
- bl flash_boot_enter_slc_mode
23735
- ldr r3, [sp, #60]
23736
- ldr r1, [sp, #56]
23737
- mov r0, r3
23738
- bl __aeabi_uidiv
23739
- mov r1, r0
23740
- mov r0, #0
23741
- mov r3, r0
23742
- ldr r2, [sp, #32]
23743
- bl FlashReadPage
23744
- mov r0, #0
23745
- bl flash_boot_exit_slc_mode
23746
- ldr ip, [sp, #52]
23747
- mov r0, ip
23748
- bl FlashBchSel
23749
- mov ip, #0
23750
- ldr r3, [sp, #32]
23751
- add r3, r3, r8, asl #9
23752
- str r3, [sp, #32]
23753
- b .L3922
23754
-.L3958:
24123
+ str r3, [sp, #36]
24124
+ str r10, [sp, #24]
24125
+.L3826:
24126
+ ldr r3, [sp, #44]
24127
+ cmp r3, r8
24128
+ bhi .L3830
2375524129 mov r1, r6
23756
- mov r2, r10
2375724130 mov r3, #0
23758
- ldr r0, .L3959+44
24131
+ mov r2, r9
24132
+ ldr r0, .L3864+28
2375924133 bl printk
23760
- mov r6, #0
23761
- mov r3, fp
24134
+ ldr r3, [r4, #48]
24135
+ mov r2, r9
24136
+ ldr r6, [r5, #4]
24137
+ mov r8, #0
24138
+ ldr r7, [r4, #40]
24139
+ ldrb r3, [r3, #9] @ zero_extendqisi2
24140
+ ldr r0, .L3864+32
24141
+ mul r6, r6, fp
24142
+ str r3, [sp, #16]
24143
+ ldrh r3, [sp, #16]
24144
+ mov r1, r6
24145
+ smulbb r7, r7, r3
24146
+ bl printk
24147
+ uxth r7, r7
24148
+ mov r0, r6
24149
+ mov r1, r7
24150
+ bl __aeabi_uidivmod
24151
+ sub r3, r6, r1
2376224152 ldr r2, [sp, #8]
23763
-.L3928:
23764
- mov r8, r2
23765
- mov r7, r3
23766
- ldr r0, [r8]
24153
+ str r3, [sp, #36]
24154
+ ldr r3, [sp, #16]
24155
+ str r1, [sp, #24]
24156
+ str r2, [sp, #28]
24157
+ mul r3, r3, r1
24158
+ ubfx r3, r3, #2, #2
24159
+.L3831:
24160
+ cmp r8, r9
24161
+ bcc .L3833
24162
+ mov r3, #0
24163
+ mov r2, r9
24164
+ mov r1, r6
24165
+ ldr r0, .L3864+36
24166
+ bl printk
24167
+ ldr r2, [sp, #8]
24168
+ mov r3, r10
24169
+ mov r6, #0
24170
+.L3836:
24171
+ mov r7, r2
24172
+ mov r8, r3
24173
+ ldr r0, [r7]
2376724174 add r2, r2, #4
23768
- ldr r1, [r7]
24175
+ ldr r1, [r8]
2376924176 add r3, r3, #4
2377024177 cmp r0, r1
23771
- beq .L3925
23772
- mov r1, #0
24178
+ beq .L3834
2377324179 mov r2, #512
24180
+ mov r1, #0
2377424181 ldr r0, [sp, #8]
2377524182 bl memset
2377624183 ldr r3, [r8]
23777
- ldr r0, .L3959+48
23778
- str r3, [sp]
23779
- ldr r3, [r7]
23780
- bic r7, r6, #255
23781
- ldr r1, [sp, #16]
23782
- mov r7, r7, asl #2
24184
+ ldr r1, [sp, #12]
24185
+ ldr r0, .L3864+40
2378324186 str r3, [sp, #4]
24187
+ ldr r3, [r7]
24188
+ str r3, [sp]
2378424189 mov r3, r6
23785
- ldr r2, [r4, #4]
24190
+ bic r6, r6, #255
24191
+ ldr r2, [r5, #4]
24192
+ lsl r6, r6, #2
2378624193 bl printk
23787
- ldr r0, .L3959+52
23788
- add r1, fp, r7
23789
- mov r2, #4
2379024194 mov r3, #256
24195
+ mov r2, #4
24196
+ add r1, r10, r6
24197
+ ldr r0, .L3864+44
2379124198 bl rknand_print_hex
23792
- mov r2, #4
23793
- ldr r0, .L3959+56
23794
- ldr r3, [sp, #8]
23795
- add r1, r3, r7
24199
+ ldr r1, [sp, #8]
2379624200 mov r3, #256
24201
+ mov r2, #4
24202
+ ldr r0, .L3864+48
24203
+ add r1, r1, r6
2379724204 bl rknand_print_hex
2379824205 mov r0, #0
2379924206 bl flash_boot_enter_slc_mode
23800
- ldr r1, [r4, #4]
23801
- mov r0, #0
23802
- mov r2, r0
23803
- ldr r3, [sp, #12]
23804
- mul r1, r1, r3
24207
+ ldr r1, [r5, #4]
24208
+ mov r2, #0
24209
+ mov r0, r2
24210
+ mul r1, r1, fp
2380524211 bl FlashEraseBlock
23806
- ldr r3, [sp, #44]
23807
- cmp r3, #0
23808
- beq .L3926
23809
- ldr r1, [r4, #4]
23810
- mov r0, #0
23811
- ldr r3, [sp, #12]
23812
- mov r2, r0
23813
- mla r1, r1, r3, r3
24212
+ ldr r3, [sp, #32]
24213
+ cmp r3, #1
24214
+ bls .L3835
24215
+ ldr r1, [r5, #4]
24216
+ mov r2, #0
24217
+ mov r0, r2
24218
+ mla r1, r1, fp, fp
2381424219 bl FlashEraseBlock
23815
-.L3926:
24220
+.L3835:
2381624221 mov r0, #0
2381724222 bl flash_boot_exit_slc_mode
23818
- ldr r0, .L3959+60
23819
- ldr r1, [r4, #4]
24223
+ ldr r1, [r5, #4]
24224
+ ldr r0, .L3864+52
2382024225 bl printk
23821
- ldr r3, [sp, #40]
23822
- cmp r6, r3
23823
- bcc .L3914
23824
- b .L3927
23825
-.L3925:
23826
- ldr r1, [sp, #40]
23827
- add r6, r6, #1
23828
- cmp r6, r1
23829
- bne .L3928
23830
-.L3927:
23831
- ldr r3, [sp, #20]
24226
+.L3823:
24227
+ ldr r3, [sp, #12]
24228
+ add r5, r5, #4
2383224229 add r3, r3, #1
23833
- str r3, [sp, #20]
23834
-.L3914:
23835
- ldr r3, [sp, #16]
23836
- add r4, r4, #4
23837
- add r3, r3, #1
23838
- str r3, [sp, #16]
2383924230 cmp r3, #5
23840
- bne .L3929
24231
+ str r3, [sp, #12]
24232
+ bne .L3838
2384124233 ldr r0, [sp, #8]
2384224234 bl ftl_free
2384324235 ldr r3, [sp, #20]
2384424236 clz r0, r3
23845
- mov r0, r0, lsr #5
24237
+ lsr r0, r0, #5
2384624238 rsb r0, r0, #0
23847
- b .L3907
23848
-.L3933:
23849
- mvn r0, #0
23850
-.L3907:
23851
- add sp, sp, #132
24239
+.L3815:
24240
+ add sp, sp, #124
2385224241 @ sp needed
23853
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
23854
-.L3960:
24242
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
24243
+.L3840:
24244
+ mov r9, #8
24245
+ b .L3817
24246
+.L3818:
24247
+ ldr r0, .L3864+56
24248
+ bl printk
24249
+ b .L3820
24250
+.L3830:
24251
+ ldr r3, [sp, #28]
24252
+ add r2, r3, r8
24253
+ lsrs r2, r2, #2
24254
+ beq .L3827
24255
+ ldrb r0, [r4, #152] @ zero_extendqisi2
24256
+ add r1, r2, #1
24257
+ add r3, r4, r1, lsl #1
24258
+ cmp r0, #0
24259
+ ldrh r3, [r3, #156]
24260
+ beq .L3828
24261
+ ldr r0, [r4, #2268]
24262
+ ldr ip, .L3864+60
24263
+ cmp r0, ip
24264
+ moveq r3, r1
24265
+.L3828:
24266
+ sub r3, r3, #-1073741823
24267
+ lsl r3, r3, #2
24268
+ str r3, [sp, #56]
24269
+.L3827:
24270
+ movw r3, #61424
24271
+ str r3, [sp, #60]
24272
+ add r3, r4, r2, lsl #1
24273
+ ldrh r7, [r3, #156]
24274
+ ldrb r3, [r4, #152] @ zero_extendqisi2
24275
+ cmp r3, #0
24276
+ beq .L3829
24277
+ ldr r3, [r4, #2268]
24278
+ ldr r1, .L3864+60
24279
+ cmp r3, r1
24280
+ moveq r7, r2
24281
+.L3829:
24282
+ ldr r2, [sp, #36]
24283
+ add r8, r8, #4
24284
+ ldr r3, [sp, #16]
24285
+ uxth r8, r8
24286
+ mla r3, r7, r3, r2
24287
+ ldr r2, .L3864+16
24288
+ add r7, r7, #1
24289
+ ldrb r0, [r2, #1722] @ zero_extendqisi2
24290
+ uxth r7, r7
24291
+ str r3, [sp, #52]
24292
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
24293
+ str r3, [sp, #48]
24294
+ bl FlashBchSel
24295
+ mov r0, #0
24296
+ bl flash_boot_enter_slc_mode
24297
+ ldr r2, [r4, #48]
24298
+ ldr r3, [sp, #52]
24299
+ ldrb r1, [r2, #9] @ zero_extendqisi2
24300
+ mov r0, r3
24301
+ bl __aeabi_uidiv
24302
+ add r3, sp, #56
24303
+ ldr r2, [sp, #24]
24304
+ mov r1, r0
24305
+ mov r0, #0
24306
+ bl FlashProgPage
24307
+ mov r0, #0
24308
+ bl flash_boot_exit_slc_mode
24309
+ ldr r0, [sp, #48]
24310
+ bl FlashBchSel
24311
+ ldr r1, [sp, #16]
24312
+ ldr r0, [sp, #36]
24313
+ bl __aeabi_uidiv
24314
+ mov r2, r7
24315
+ mov r1, r0
24316
+ mov r0, #0
24317
+ bl FlashPageProgMsbFFData
24318
+ ldr r3, [sp, #24]
24319
+ add r3, r3, #2048
24320
+ str r3, [sp, #24]
24321
+ b .L3826
24322
+.L3833:
24323
+ ldr r2, [sp, #24]
24324
+ rsb r7, r3, #4
24325
+ ldrb r0, [r4, #152] @ zero_extendqisi2
24326
+ uxth r7, r7
24327
+ add r2, r2, r8
24328
+ lsr r2, r2, #2
24329
+ cmp r0, #0
24330
+ add r1, r4, r2, lsl #1
24331
+ ldrh r1, [r1, #156]
24332
+ beq .L3832
24333
+ ldr r0, [r4, #2268]
24334
+ ldr ip, .L3864+60
24335
+ cmp r0, ip
24336
+ moveq r1, r2
24337
+.L3832:
24338
+ ldr r2, [sp, #36]
24339
+ add r8, r7, r8
24340
+ uxth r8, r8
24341
+ add r3, r3, r2
24342
+ ldr r2, [sp, #16]
24343
+ mla r3, r1, r2, r3
24344
+ ldr r2, [r4, #48]
24345
+ ldrb r1, [r2, #9] @ zero_extendqisi2
24346
+ ldr r2, .L3864+16
24347
+ str r3, [sp, #52]
24348
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
24349
+ ldrb r0, [r2, #1722] @ zero_extendqisi2
24350
+ str r1, [sp, #48]
24351
+ str r3, [sp, #44]
24352
+ bl FlashBchSel
24353
+ mov r0, #0
24354
+ bl flash_boot_enter_slc_mode
24355
+ ldr r3, [sp, #52]
24356
+ ldr r1, [sp, #48]
24357
+ mov r0, r3
24358
+ bl __aeabi_uidiv
24359
+ mov r3, #0
24360
+ mov r1, r0
24361
+ ldr r2, [sp, #28]
24362
+ mov r0, r3
24363
+ bl FlashReadPage
24364
+ mov r0, #0
24365
+ bl flash_boot_exit_slc_mode
24366
+ ldr r0, [sp, #44]
24367
+ bl FlashBchSel
24368
+ ldr r3, [sp, #28]
24369
+ add r3, r3, r7, lsl #9
24370
+ str r3, [sp, #28]
24371
+ mov r3, #0
24372
+ b .L3831
24373
+.L3834:
24374
+ ldr r1, [sp, #40]
24375
+ add r6, r6, #1
24376
+ cmp r1, r6
24377
+ bne .L3836
24378
+ ldr r3, [sp, #20]
24379
+ add r3, r3, #1
24380
+ str r3, [sp, #20]
24381
+ b .L3823
24382
+.L3842:
24383
+ mvn r0, #0
24384
+ b .L3815
24385
+.L3865:
2385524386 .align 2
23856
-.L3959:
24387
+.L3864:
2385724388 .word .LANCHOR0
2385824389 .word -52655045
23859
- .word .LC173
2386024390 .word .LC174
2386124391 .word .LC175
2386224392 .word .LANCHOR2
2386324393 .word .LC176
2386424394 .word .LC177
23865
- .word 1446522928
2386624395 .word .LC178
2386724396 .word .LC179
2386824397 .word .LC180
....@@ -23870,92 +24399,90 @@
2387024399 .word .LC182
2387124400 .word .LC183
2387224401 .word .LC184
24402
+ .word .LC173
24403
+ .word 1446522928
2387324404 .fnend
2387424405 .size write_idblock, .-write_idblock
2387524406 .align 2
2387624407 .global write_loader_lba
24408
+ .syntax unified
24409
+ .arm
24410
+ .fpu softvfp
2387724411 .type write_loader_lba, %function
2387824412 write_loader_lba:
2387924413 .fnstart
2388024414 @ args = 0, pretend = 0, frame = 40
2388124415 @ frame_needed = 0, uses_anonymous_args = 0
2388224416 cmp r0, #64
23883
- stmfd sp!, {r4, r5, r6, r7, r8, r9, lr}
23884
- .save {r4, r5, r6, r7, r8, r9, lr}
24417
+ push {r4, r5, r6, r7, r8, lr}
24418
+ .save {r4, r5, r6, r7, r8, lr}
2388524419 mov r5, r0
23886
- .pad #52
23887
- sub sp, sp, #52
24420
+ .pad #48
24421
+ sub sp, sp, #48
2388824422 mov r6, r1
2388924423 mov r8, r2
23890
- ldr r4, .L3984
23891
- bne .L3962
24424
+ ldr r4, .L3890
24425
+ bne .L3867
2389224426 ldr r2, [r2]
23893
- ldr r3, .L3984+4
24427
+ ldr r3, .L3890+4
2389424428 cmp r2, r3
23895
- bne .L3962
23896
- mov r0, #256000
24429
+ bne .L3867
2389724430 mov r3, #1
24431
+ mov r0, #256000
2389824432 strb r3, [r4, #2020]
2389924433 bl ftl_malloc
23900
- mov r1, #0
2390124434 mov r2, #256000
24435
+ mov r1, #0
2390224436 str r0, [r4, #2024]
2390324437 bl ftl_memset
2390424438 str r5, [r4, #2028]
23905
-.L3962:
24439
+.L3867:
2390624440 str r6, [sp]
2390724441 mov r3, r5
23908
- ldr r0, .L3984+8
23909
- ldr r1, [r4, #2024]
2391024442 ldr r2, [r8]
24443
+ ldr r1, [r4, #2024]
24444
+ ldr r0, .L3890+8
2391124445 bl printk
2391224446 ldrb r3, [r4, #2020] @ zero_extendqisi2
23913
- ldr r9, .L3984
2391424447 cmp r3, #0
23915
- beq .L3961
24448
+ beq .L3866
2391624449 sub r0, r5, #64
23917
- ldr r7, [r9, #2024]
24450
+ ldr r7, [r4, #2024]
2391824451 cmp r0, #500
23919
- bcs .L3964
24452
+ bcs .L3869
2392024453 rsb r2, r5, #564
23921
- add r0, r7, r0, asl #9
23922
- cmp r2, r6
2392324454 mov r1, r8
23924
- movcs r2, r6
23925
- mov r2, r2, asl #9
24455
+ cmp r6, r2
24456
+ add r0, r7, r0, lsl #9
24457
+ movcc r2, r6
24458
+ lsl r2, r2, #9
2392624459 bl ftl_memcpy
23927
- b .L3965
23928
-.L3964:
23929
- cmp r5, #564
23930
- bcs .L3973
23931
-.L3965:
24460
+.L3870:
2393224461 ldr r3, [r4, #2028]
23933
- cmp r3, r5
23934
- beq .L3971
23935
- ldr r2, .L3984
24462
+ cmp r5, r3
24463
+ beq .L3879
2393624464 mov r3, #0
2393724465 cmp r7, r3
24466
+ strb r3, [r4, #2020]
2393824467 mov r8, r3
23939
- strb r3, [r2, #2020]
23940
- beq .L3972
24468
+ beq .L3880
2394124469 mov r0, r7
2394224470 bl ftl_free
23943
-.L3972:
24471
+.L3880:
2394424472 str r8, [r4, #2024]
23945
-.L3971:
23946
- add r5, r5, r6
23947
- str r5, [r4, #2028]
23948
- b .L3961
23949
-.L3973:
23950
- ldr r3, .L3984+12
23951
- ldr r0, [r9, #2028]
23952
- ldr r3, [r3, #44]
24473
+ b .L3879
24474
+.L3869:
24475
+ cmp r5, #564
24476
+ bcc .L3870
24477
+ ldr r3, .L3890+12
24478
+ ldr r0, [r4, #2028]
24479
+ ldr r3, [r3, #48]
2395324480 sub r0, r0, #64
2395424481 cmp r0, #500
2395524482 ldrb r3, [r3, #9] @ zero_extendqisi2
2395624483 movcs r0, #500
2395724484 cmp r3, #4
23958
- beq .L3974
24485
+ beq .L3871
2395924486 mov r3, #2
2396024487 str r3, [sp, #8]
2396124488 mov r3, #3
....@@ -23966,49 +24493,52 @@
2396624493 str r3, [sp, #20]
2396724494 mov r3, #6
2396824495 str r3, [sp, #24]
23969
- b .L3967
23970
-.L3974:
23971
- mov r3, #0
23972
-.L3966:
23973
- cmp r0, #256
23974
- add r1, sp, #8
23975
- mov r2, r3, asl #1
23976
- movls r2, r3
23977
- str r2, [r1, r3, asl #2]
23978
- add r3, r3, #1
23979
- cmp r3, #5
23980
- bne .L3966
23981
-.L3967:
24496
+.L3872:
2398224497 movw r3, #63872
23983
-.L3970:
23984
- ldr r2, [r7, r3, asl #2]
24498
+.L3878:
24499
+ ldr r2, [r7, r3, lsl #2]
2398524500 cmp r2, #0
23986
- addne r3, r3, #128
23987
- movne r0, r3, asl #2
23988
- bne .L3969
23989
-.L3968:
23990
- sub r3, r3, #1
23991
- cmp r3, #4096
23992
- bne .L3970
23993
- mov r0, r0, asl #9
23994
-.L3969:
24501
+ beq .L3876
24502
+ add r3, r3, #128
24503
+ lsl r0, r3, #2
24504
+.L3877:
2399524505 mov r1, r7
2399624506 add r2, sp, #8
24507
+ mov r7, #0
2399724508 bl write_idblock
2399824509 ldr r0, [r4, #2024]
23999
- mov r7, #0
2400024510 strb r7, [r4, #2020]
2400124511 bl ftl_free
2400224512 str r7, [r4, #2024]
24003
- b .L3971
24004
-.L3961:
24005
- add sp, sp, #52
24513
+.L3879:
24514
+ add r5, r5, r6
24515
+ str r5, [r4, #2028]
24516
+.L3866:
24517
+ add sp, sp, #48
2400624518 @ sp needed
24007
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc}
24008
-.L3985:
24519
+ pop {r4, r5, r6, r7, r8, pc}
24520
+.L3871:
24521
+ mov r2, #0
24522
+ add r3, sp, #8
24523
+.L3875:
24524
+ cmp r0, #256
24525
+ lslhi r1, r2, #1
24526
+ strls r2, [r3, r2, lsl #2]
24527
+ strhi r1, [r3, r2, lsl #2]
24528
+ add r2, r2, #1
24529
+ cmp r2, #5
24530
+ bne .L3875
24531
+ b .L3872
24532
+.L3876:
24533
+ sub r3, r3, #1
24534
+ cmp r3, #4096
24535
+ bne .L3878
24536
+ lsl r0, r0, #9
24537
+ b .L3877
24538
+.L3891:
2400924539 .align 2
24010
-.L3984:
24011
- .word .LANCHOR4
24540
+.L3890:
24541
+ .word .LANCHOR2
2401224542 .word -52655045
2401324543 .word .LC185
2401424544 .word .LANCHOR0
....@@ -24016,281 +24546,381 @@
2401624546 .size write_loader_lba, .-write_loader_lba
2401724547 .align 2
2401824548 .global FtlWrite
24549
+ .syntax unified
24550
+ .arm
24551
+ .fpu softvfp
2401924552 .type FtlWrite, %function
2402024553 FtlWrite:
2402124554 .fnstart
2402224555 @ args = 0, pretend = 0, frame = 0
2402324556 @ frame_needed = 0, uses_anonymous_args = 0
24024
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
24557
+ push {r4, r5, r6, r7, r8, lr}
2402524558 .save {r4, r5, r6, r7, r8, lr}
2402624559 mov r6, r2
2402724560 sub r2, r1, #64
2402824561 mov r4, r1
2402924562 cmp r2, #1984
24030
- mov r5, r3
24031
- mov r7, r0
24563
+ mov r7, r3
2403224564 movcs r2, #0
2403324565 movcc r2, #1
2403424566 cmp r0, #0
24567
+ mov r5, r0
2403524568 movne r2, #0
2403624569 cmp r2, #0
24037
- beq .L3987
24038
- mov r0, r1
24570
+ beq .L3893
2403924571 mov r2, r3
2404024572 mov r1, r6
24573
+ mov r0, r4
2404124574 bl write_loader_lba
24042
-.L3987:
24043
- mov r0, r7
24044
- mov r1, r4
24575
+.L3893:
24576
+ mov r3, r7
2404524577 mov r2, r6
24046
- mov r3, r5
24047
- ldmfd sp!, {r4, r5, r6, r7, r8, lr}
24578
+ mov r1, r4
24579
+ mov r0, r5
24580
+ pop {r4, r5, r6, r7, r8, lr}
2404824581 b ftl_write
2404924582 .fnend
2405024583 .size FtlWrite, .-FtlWrite
2405124584 .align 2
2405224585 .global rknand_sys_storage_ioctl
24586
+ .syntax unified
24587
+ .arm
24588
+ .fpu softvfp
2405324589 .type rknand_sys_storage_ioctl, %function
2405424590 rknand_sys_storage_ioctl:
2405524591 .fnstart
2405624592 @ args = 0, pretend = 0, frame = 520
2405724593 @ frame_needed = 0, uses_anonymous_args = 0
24058
- ldr r3, .L4049
24059
- stmfd sp!, {r4, r5, r6, r7, lr}
24594
+ ldr r3, .L3955
24595
+ push {r4, r5, r6, r7, lr}
2406024596 .save {r4, r5, r6, r7, lr}
24061
- cmp r1, r3
24597
+ mov r4, r1
2406224598 .pad #524
2406324599 sub sp, sp, #524
24064
- mov r4, r1
2406524600 mov r5, r2
24066
- beq .L3994
24067
- bhi .L3995
24601
+ cmp r1, r3
24602
+ beq .L3900
24603
+ bhi .L3901
2406824604 sub r3, r3, #2080
2406924605 sub r3, r3, #6
2407024606 cmp r1, r3
24071
- beq .L3996
24072
- bhi .L3997
24607
+ beq .L3902
24608
+ bhi .L3903
2407324609 sub r3, r3, #238
2407424610 cmp r1, r3
24075
- beq .L3998
24611
+ beq .L3904
2407624612 add r3, r3, #237
2407724613 cmp r1, r3
24078
- beq .L3999
24079
- b .L4029
24080
-.L3997:
24081
- ldr r3, .L4049+4
24614
+ beq .L3905
24615
+.L3935:
24616
+ mvn r4, #21
24617
+ b .L3898
24618
+.L3903:
24619
+ ldr r3, .L3955+4
2408224620 cmp r1, r3
24083
- beq .L4000
24621
+ beq .L3906
2408424622 add r3, r3, #1
2408524623 cmp r1, r3
24086
- beq .L4001
24624
+ beq .L3907
2408724625 sub r3, r3, #124
2408824626 cmp r1, r3
24089
- bne .L4029
24090
- b .L4047
24091
-.L3995:
24092
- ldr r3, .L4049+8
24093
- cmp r1, r3
24094
- mov r6, r3
24095
- beq .L4003
24096
- bhi .L4004
24097
- sub r3, r3, #2512
24098
- sub r3, r3, #14
24099
- cmp r1, r3
24100
- beq .L3994
24101
- add r3, r3, #10
24102
- cmp r1, r3
24103
- beq .L3994
24104
- b .L4029
24105
-.L4004:
24106
- ldr r3, .L4049+12
24107
- cmp r1, r3
24108
- beq .L4003
24109
- bcc .L4005
24110
- add r3, r3, #1
24111
- cmp r1, r3
24112
- beq .L4005
24113
- b .L4029
24114
-.L3999:
24115
- ldr r0, .L4049+16
24627
+ bne .L3935
24628
+ ldr r0, .L3955+8
2411624629 bl printk
24117
- mov r1, r5
2411824630 mov r2, #520
24631
+ mov r1, r5
2411924632 mov r0, sp
2412024633 bl rk_copy_from_user
2412124634 cmp r0, #0
24122
- beq .L4006
24123
-.L4012:
24124
- ldr r0, .L4049+20
24125
- bl printk
24126
- b .L4044
24127
-.L4006:
24635
+ bne .L3918
2412824636 ldr r2, [sp]
24129
- ldr r3, .L4049+24
24637
+ ldr r3, .L3955+12
2413024638 cmp r2, r3
24131
- beq .L4007
24132
-.L4009:
24639
+ bne .L3915
24640
+ ldr r2, [sp, #4]
24641
+ cmp r2, #512
24642
+ ldrls r1, .L3955+16
24643
+ bhi .L3915
24644
+.L3953:
24645
+ add r0, sp, #8
24646
+ bl memcpy
24647
+ b .L3947
24648
+.L3901:
24649
+ ldr r3, .L3955+20
24650
+ cmp r1, r3
24651
+ mov r6, r3
24652
+ beq .L3909
24653
+ bhi .L3910
24654
+ sub r3, r3, #2512
24655
+ sub r3, r3, #14
24656
+ cmp r1, r3
24657
+ beq .L3900
24658
+ add r3, r3, #10
24659
+ cmp r1, r3
24660
+ bne .L3935
24661
+.L3900:
24662
+ ldr r3, .L3955+24
24663
+ cmp r4, r3
24664
+ mov r7, r3
24665
+ ldreq r0, .L3955+28
24666
+ beq .L3949
24667
+ ldr r3, .L3955+32
24668
+ cmp r4, r3
24669
+ ldreq r0, .L3955+36
24670
+ ldrne r0, .L3955+40
24671
+.L3949:
24672
+ bl printk
24673
+ mov r2, #520
24674
+ mov r1, r5
24675
+ mov r0, sp
24676
+ bl rk_copy_from_user
24677
+ cmp r0, #0
24678
+ bne .L3918
24679
+ ldr r2, [sp]
24680
+ ldr r3, .L3955+44
24681
+ cmp r2, r3
24682
+ bne .L3952
24683
+ ldr r3, .L3955+32
24684
+ ldr r6, .L3955+48
24685
+ cmp r4, r3
24686
+ bne .L3928
24687
+ ldr r3, [r6, #2032]
24688
+ mov r2, #16
24689
+ mov r1, sp
24690
+ mov r0, r5
24691
+ ldr r3, [r3, #20]
24692
+ str r3, [sp, #4]
24693
+ strb r3, [sp, #8]
24694
+ bl rk_copy_to_user
24695
+ cmp r0, #0
24696
+ bne .L3952
24697
+.L3919:
24698
+ mov r4, #0
24699
+.L3898:
24700
+ mov r0, r4
24701
+ add sp, sp, #524
24702
+ @ sp needed
24703
+ pop {r4, r5, r6, r7, pc}
24704
+.L3910:
24705
+ ldr r3, .L3955+52
24706
+ cmp r1, r3
24707
+ beq .L3909
24708
+ bcc .L3911
24709
+ add r3, r3, #1
24710
+ cmp r1, r3
24711
+ bne .L3935
24712
+.L3911:
24713
+ ldr r0, .L3955+56
24714
+ bl printk
24715
+ mov r2, #520
24716
+ mov r1, r5
24717
+ mov r0, sp
24718
+ bl rk_copy_from_user
24719
+ cmp r0, #0
24720
+ bne .L3918
24721
+ ldr r2, [sp]
24722
+ ldr r3, .L3955+60
24723
+ cmp r2, r3
24724
+ bne .L3915
24725
+ ldr r2, [sp, #4]
24726
+ cmp r2, #504
24727
+ bhi .L3915
24728
+ ldr r3, .L3955+64
24729
+ mov r1, sp
24730
+ add r2, r2, #8
24731
+ cmp r4, r3
24732
+ ldr r4, .L3955+48
24733
+ bne .L3934
24734
+ ldr r0, [r4, #2564]
24735
+ bl memcpy
24736
+ ldr r1, [r4, #2564]
24737
+ mov r0, #2
24738
+ b .L3950
24739
+.L3905:
24740
+ ldr r0, .L3955+68
24741
+ bl printk
24742
+ mov r2, #520
24743
+ mov r1, r5
24744
+ mov r0, sp
24745
+ bl rk_copy_from_user
24746
+ cmp r0, #0
24747
+ beq .L3912
24748
+.L3918:
24749
+ ldr r0, .L3955+72
24750
+ bl printk
24751
+.L3952:
24752
+ mvn r4, #13
24753
+ b .L3898
24754
+.L3912:
24755
+ ldr r2, [sp]
24756
+ ldr r3, .L3955+76
24757
+ cmp r2, r3
24758
+ beq .L3913
24759
+.L3915:
2413324760 mvn r4, #0
24134
- b .L4008
24135
-.L4007:
24761
+.L3914:
24762
+ mov r1, r4
24763
+ ldr r0, .L3955+80
24764
+ bl printk
24765
+ b .L3898
24766
+.L3913:
2413624767 ldr r3, [sp, #4]
2413724768 cmp r3, #512
24138
- bhi .L4009
24139
- ldr r4, .L4049+28
24769
+ bhi .L3915
24770
+ ldr r4, .L3955+48
2414024771 mov r2, #512
2414124772 mov r0, sp
2414224773 ldr r1, [r4, #2032]
2414324774 bl memcpy
2414424775 ldr r2, [r4, #2036]
24145
- ldr r3, .L4049+32
24776
+ ldr r3, .L3955+84
2414624777 cmp r2, r3
24147
- beq .L4010
24778
+ beq .L3916
2414824779 mov r1, #0
24149
- add r0, sp, #64
2415024780 mov r2, #128
24781
+ add r0, sp, #64
2415124782 str r1, [sp, #8]
2415224783 str r1, [sp, #12]
2415324784 bl memset
24154
-.L4010:
24155
- mov r1, #0
24156
- add r0, sp, #256
24785
+.L3916:
2415724786 mov r2, #256
24787
+ mov r1, #0
24788
+ add r0, sp, r2
2415824789 str r1, [sp, #16]
2415924790 bl memset
24160
-.L4039:
24161
- mov r0, r5
24162
- mov r1, sp
24791
+.L3947:
2416324792 mov r2, #520
24793
+ mov r1, sp
24794
+ mov r0, r5
2416424795 bl rk_copy_to_user
2416524796 cmp r0, #0
24166
- bne .L4044
24167
- b .L4043
24168
-.L3996:
24169
- ldr r0, .L4049+36
24797
+ bne .L3952
24798
+.L3951:
24799
+ mov r4, #0
24800
+ b .L3914
24801
+.L3902:
24802
+ ldr r0, .L3955+88
2417024803 bl printk
24171
- mov r1, r5
2417224804 mov r2, #520
24805
+ mov r1, r5
2417324806 mov r0, sp
2417424807 bl rk_copy_from_user
2417524808 cmp r0, #0
24176
- bne .L4012
24809
+ bne .L3918
2417724810 ldr r2, [sp]
24178
- ldr r3, .L4049+24
24811
+ ldr r3, .L3955+76
2417924812 cmp r2, r3
24180
- bne .L4009
24813
+ bne .L3915
2418124814 ldr r3, [sp, #4]
2418224815 cmp r3, #512
24183
- bhi .L4009
24184
- ldr r2, .L4049+28
24185
- ldr r3, .L4049+32
24816
+ bhi .L3915
24817
+ ldr r2, .L3955+48
24818
+ ldr r3, .L3955+84
2418624819 ldr r1, [r2, #2036]
2418724820 cmp r1, r3
24188
- mvnne r0, #1
24189
- bne .L3993
24821
+ mvnne r4, #1
24822
+ bne .L3898
2419024823 ldr r3, [sp, #12]
2419124824 sub r1, r3, #1
2419224825 cmp r1, #127
24193
- mvnhi r0, #2
24194
- bhi .L3993
24826
+ mvnhi r4, #2
24827
+ bhi .L3898
2419524828 ldr r4, [r2, #2032]
2419624829 add r1, sp, #64
24197
- add r0, r4, #64
2419824830 str r3, [r4, #12]
24831
+ add r0, r4, #64
2419924832 ldr r2, [sp, #12]
2420024833 bl memcpy
24201
- mov r0, #1
2420224834 mov r1, r4
24203
- b .L4042
24204
-.L4001:
24205
- ldr r0, .L4049+40
24835
+ mov r0, #1
24836
+.L3950:
24837
+ bl StorageSysDataStore
24838
+ mov r4, r0
24839
+ b .L3914
24840
+.L3907:
24841
+ ldr r0, .L3955+92
2420624842 bl printk
24207
- mov r1, r5
2420824843 mov r2, #520
24844
+ mov r1, r5
2420924845 mov r0, sp
2421024846 bl rk_copy_from_user
2421124847 cmp r0, #0
24212
- bne .L4012
24848
+ bne .L3918
2421324849 ldr r2, [sp]
24214
- ldr r3, .L4049+44
24850
+ ldr r3, .L3955+96
2421524851 cmp r2, r3
24216
- bne .L4009
24852
+ bne .L3915
2421724853 ldr r3, [sp, #4]
2421824854 cmp r3, #512
24219
- bhi .L4009
24220
- ldr r5, .L4049+28
24855
+ bhi .L3915
24856
+ ldr r5, .L3955+48
2422124857 ldr r3, [r5, #2040]
2422224858 cmp r3, #0
24223
- bne .L4013
24224
-.L4016:
24225
- mov r0, #0
24226
- b .L3993
24227
-.L4013:
24859
+ beq .L3919
2422824860 ldr r3, [r5, #2044]
24229
- ldr r2, .L4049+48
24861
+ ldr r2, .L3955+100
2423024862 ldr r1, [r3]
2423124863 cmp r1, r2
24232
- beq .L4014
24864
+ beq .L3920
2423324865 str r2, [r3]
2423424866 mov r2, #504
24235
- ldr r3, .L4049+28
24236
- ldr r3, [r3, #2044]
24867
+ ldr r3, [r5, #2044]
2423724868 str r2, [r3, #4]
2423824869 mov r2, #0
2423924870 str r2, [r3, #8]
2424024871 str r2, [r3, #12]
24241
-.L4014:
24872
+.L3920:
2424224873 ldr r1, [r5, #2044]
2424324874 mov r4, #0
2424424875 mov r0, r4
2424524876 str r4, [r1, #16]
2424624877 bl StorageSysDataStore
2424724878 ldr r3, [r5, #2032]
24248
- ldr r2, .L4049+24
24879
+ ldr r2, .L3955+76
2424924880 ldr r1, [r3]
2425024881 cmp r1, r2
2425124882 strne r2, [r3]
24252
- ldr r6, [r5, #2032]
24253
- ldrne r3, .L4049+28
2425424883 movne r2, #504
24255
- add r0, r6, #64
24256
- ldrne r3, [r3, #2032]
24257
- stmneib r3, {r2, r4}
24884
+ ldrne r3, [r5, #2032]
24885
+ ldr r6, [r5, #2032]
24886
+ stmibne r3, {r2, r4}
2425824887 mov r4, #0
24259
- mov r1, r4
2426024888 mov r2, #128
24889
+ mov r1, r4
2426124890 str r4, [r6, #12]
24891
+ add r0, r6, #64
2426224892 bl memset
24263
- mov r0, #1
2426424893 mov r1, r6
24894
+ mov r0, #1
2426524895 bl StorageSysDataStore
2426624896 str r4, [r5, #2040]
2426724897 str r4, [r5, #2036]
24268
- b .L4008
24269
-.L4000:
24270
- ldr r0, .L4049+52
24898
+ b .L3914
24899
+.L3906:
24900
+ ldr r0, .L3955+104
2427124901 bl printk
24272
- mov r1, r5
2427324902 mov r2, #520
24903
+ mov r1, r5
2427424904 mov r0, sp
2427524905 bl rk_copy_from_user
2427624906 cmp r0, #0
24277
- bne .L4012
24907
+ bne .L3918
2427824908 ldr r2, [sp]
24279
- ldr r3, .L4049+56
24909
+ ldr r3, .L3955+108
2428024910 cmp r2, r3
24281
- bne .L4009
24911
+ bne .L3915
2428224912 ldr r3, [sp, #4]
2428324913 cmp r3, #512
24284
- bhi .L4009
24285
- ldr r5, .L4049+28
24914
+ bhi .L3915
24915
+ ldr r5, .L3955+48
2428624916 ldr r3, [r5, #2040]
2428724917 cmp r3, #1
24288
- beq .L4016
24918
+ beq .L3919
2428924919 ldr r2, [r5, #2044]
24290
- ldr r3, .L4049+48
24920
+ ldr r3, .L3955+100
2429124921 ldr r1, [r2]
2429224922 cmp r1, r3
24293
- beq .L4017
24923
+ beq .L3922
2429424924 str r3, [r2]
2429524925 mov r2, #504
2429624926 ldr r3, [r5, #2044]
....@@ -24298,7 +24928,7 @@
2429824928 mov r2, #0
2429924929 str r2, [r3, #8]
2430024930 str r2, [r3, #12]
24301
-.L4017:
24931
+.L3922:
2430224932 ldr r1, [r5, #2044]
2430324933 mov r3, #1
2430424934 mov r0, #0
....@@ -24306,209 +24936,114 @@
2430624936 str r3, [r1, #16]
2430724937 bl StorageSysDataStore
2430824938 ldr r3, [r5, #2032]
24309
- ldr r2, .L4049+24
24939
+ ldr r2, .L3955+76
2431024940 ldr r1, [r3]
2431124941 cmp r1, r2
2431224942 strne r2, [r3]
24313
- ldr r6, [r5, #2032]
24314
- ldrne r3, .L4049+28
2431524943 movne r1, #504
24944
+ ldrne r3, [r5, #2032]
2431624945 movne r2, #0
24317
- add r0, r6, #64
24318
- ldrne r3, [r3, #2032]
24319
- stmneib r3, {r1, r2}
24320
- mov r1, r4
24946
+ ldr r6, [r5, #2032]
24947
+ stmibne r3, {r1, r2}
2432124948 mov r2, #128
24949
+ mov r1, r4
2432224950 str r4, [r6, #12]
24951
+ add r0, r6, #64
2432324952 bl memset
24324
- mov r0, #1
2432524953 mov r1, r6
24954
+ mov r0, #1
2432624955 bl StorageSysDataStore
2432724956 mov r3, #1
2432824957 str r3, [r5, #2040]
24329
- b .L4008
24330
-.L4047:
24331
- ldr r0, .L4049+60
24332
- bl printk
24333
- mov r1, r5
24334
- mov r2, #520
24335
- mov r0, sp
24336
- bl rk_copy_from_user
24337
- cmp r0, #0
24338
- bne .L4012
24339
- ldr r2, [sp]
24340
- ldr r3, .L4049+64
24341
- cmp r2, r3
24342
- bne .L4009
24343
- ldr r2, [sp, #4]
24344
- cmp r2, #512
24345
- addls r0, sp, #8
24346
- ldrls r1, .L4049+68
24347
- bls .L4045
24348
- b .L4009
24349
-.L3994:
24350
- ldr r0, .L4049+72
24351
- cmp r4, r0
24352
- mov r7, r0
24353
- ldreq r0, .L4049+76
24354
- beq .L4041
24355
- ldr r3, .L4049+80
24356
- cmp r4, r3
24357
- ldreq r0, .L4049+84
24358
- ldrne r0, .L4049+88
24359
-.L4041:
24360
- bl printk
24361
- mov r1, r5
24362
- mov r2, #520
24363
- mov r0, sp
24364
- bl rk_copy_from_user
24365
- cmp r0, #0
24366
- bne .L4012
24367
- ldr r2, [sp]
24368
- ldr r3, .L4049+92
24369
- cmp r2, r3
24370
- bne .L4044
24371
- ldr r3, .L4049+80
24372
- ldr r6, .L4049+28
24373
- cmp r4, r3
24374
- bne .L4023
24375
- ldr r3, [r6, #2032]
24376
- mov r0, r5
24377
- mov r1, sp
24378
- mov r2, #16
24379
- ldr r3, [r3, #20]
24380
- str r3, [sp, #4]
24381
- strb r3, [sp, #8]
24382
- bl rk_copy_to_user
24383
- cmp r0, #0
24384
- beq .L3993
24385
- b .L4044
24386
-.L4023:
24958
+ b .L3914
24959
+.L3928:
2438724960 ldr r3, [r6, #2560]
2438824961 cmp r3, #10
24389
- bhi .L4044
24390
- ldr r1, [r6, #2032]
24391
- ldr r2, [sp, #4]
24392
- ldr r3, [r1, #24]
24393
- cmp r3, r2
24962
+ bhi .L3952
24963
+ ldr r2, [r6, #2032]
24964
+ ldr r1, [sp, #4]
24965
+ ldr r3, [r2, #24]
24966
+ cmp r3, r1
2439424967 cmpne r3, #0
2439524968 movne r3, #1
2439624969 moveq r3, #0
24397
- beq .L4024
24398
- ldr r0, .L4049+96
24399
- mov r1, r2
24970
+ beq .L3929
24971
+ ldr r0, .L3955+112
2440024972 bl printk
2440124973 ldr r3, [r6, #2560]
2440224974 add r3, r3, #1
2440324975 str r3, [r6, #2560]
24404
-.L4044:
24405
- mvn r0, #13
24406
- b .L3993
24407
-.L4024:
24976
+ b .L3952
24977
+.L3929:
2440824978 cmp r4, r7
2440924979 str r3, [r6, #2560]
24410
- mov r0, #1
24411
- moveq r2, r3
2441224980 movne r3, #1
24413
- moveq r3, r2
24414
- str r2, [r1, #24]
24415
- str r3, [r1, #20]
24981
+ strne r1, [r2, #24]
24982
+ streq r3, [r2, #20]
24983
+ mov r1, r2
24984
+ streq r3, [r2, #24]
24985
+ mov r0, #1
24986
+ strne r3, [r2, #20]
2441624987 bl StorageSysDataStore
2441724988 cmn r0, #1
24418
- bne .L4043
24419
- b .L4048
24420
-.L4003:
24421
- ldr r0, .L4049+100
24989
+ bne .L3951
24990
+ mvn r4, #1
24991
+ b .L3914
24992
+.L3909:
24993
+ ldr r0, .L3955+116
2442224994 bl printk
24423
- mov r1, r5
2442424995 mov r2, #520
24996
+ mov r1, r5
2442524997 mov r0, sp
2442624998 bl rk_copy_from_user
2442724999 cmp r0, #0
24428
- bne .L4012
25000
+ bne .L3918
2442925001 ldr r2, [sp]
24430
- ldr r3, .L4049+104
25002
+ ldr r3, .L3955+60
2443125003 cmp r2, r3
24432
- bne .L4009
25004
+ bne .L3915
2443325005 ldr r2, [sp, #4]
2443425006 cmp r2, #504
24435
- bhi .L4009
24436
- ldr r3, .L4049+28
25007
+ bhi .L3915
25008
+ ldr r3, .L3955+48
2443725009 cmp r4, r6
24438
- add r0, sp, #8
2443925010 ldreq r1, [r3, #2564]
2444025011 ldrne r1, [r3, #2568]
2444125012 add r1, r1, #8
24442
-.L4045:
24443
- bl memcpy
24444
- b .L4039
24445
-.L4005:
24446
- ldr r0, .L4049+108
24447
- bl printk
24448
- mov r1, r5
24449
- mov r2, #520
24450
- mov r0, sp
24451
- bl rk_copy_from_user
24452
- cmp r0, #0
24453
- bne .L4012
24454
- ldr r2, [sp]
24455
- ldr r3, .L4049+104
24456
- cmp r2, r3
24457
- bne .L4009
24458
- ldr r2, [sp, #4]
24459
- cmp r2, #504
24460
- bhi .L4009
24461
- ldr r3, .L4049+112
24462
- add r2, r2, #8
24463
- cmp r4, r3
24464
- ldr r4, .L4049+28
24465
- bne .L4028
24466
- mov r1, sp
24467
- ldr r0, [r4, #2564]
24468
- bl memcpy
24469
- mov r0, #2
24470
- ldr r1, [r4, #2564]
24471
- b .L4042
24472
-.L4028:
24473
- mov r1, sp
25013
+ b .L3953
25014
+.L3934:
2447425015 ldr r0, [r4, #2568]
2447525016 bl memcpy
2447625017 ldr r1, [r4, #2568]
2447725018 mov r0, #3
24478
-.L4042:
24479
- bl StorageSysDataStore
24480
- mov r4, r0
24481
- b .L4008
24482
-.L3998:
25019
+ b .L3950
25020
+.L3904:
2448325021 bl rknand_dev_flush
24484
-.L4043:
24485
- mov r4, #0
24486
- b .L4008
24487
-.L4048:
24488
- mvn r4, #1
24489
-.L4008:
24490
- ldr r0, .L4049+116
24491
- mov r1, r4
24492
- bl printk
24493
- mov r0, r4
24494
- b .L3993
24495
-.L4029:
24496
- mvn r0, #21
24497
-.L3993:
24498
- add sp, sp, #524
24499
- @ sp needed
24500
- ldmfd sp!, {r4, r5, r6, r7, pc}
24501
-.L4050:
25022
+ b .L3951
25023
+.L3956:
2450225024 .align 2
24503
-.L4049:
25025
+.L3955:
2450425026 .word 1074031656
2450525027 .word 1074029694
25028
+ .word .LC191
25029
+ .word 1094995539
25030
+ .word .LANCHOR2+2048
2450625031 .word 1074034192
25032
+ .word 1074031666
25033
+ .word .LC192
25034
+ .word 1074031676
25035
+ .word .LC193
25036
+ .word .LC194
25037
+ .word 1280262987
25038
+ .word .LANCHOR2
2450725039 .word 1074034194
25040
+ .word .LC197
25041
+ .word 1145980246
25042
+ .word 1074034193
2450825043 .word .LC186
2450925044 .word .LC187
2451025045 .word 1263358532
24511
- .word .LANCHOR4
25046
+ .word .LC198
2451225047 .word -1067903959
2451325048 .word .LC188
2451425049 .word .LC189
....@@ -24516,46 +25051,36 @@
2451625051 .word 1146313043
2451725052 .word .LC190
2451825053 .word 1112755781
24519
- .word .LC191
24520
- .word 1094995539
24521
- .word .LANCHOR4+2048
24522
- .word 1074031666
24523
- .word .LC192
24524
- .word 1074031676
24525
- .word .LC193
24526
- .word .LC194
24527
- .word 1280262987
2452825054 .word .LC195
2452925055 .word .LC196
24530
- .word 1145980246
24531
- .word .LC197
24532
- .word 1074034193
24533
- .word .LC198
2453425056 .fnend
2453525057 .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl
2453625058 .align 2
2453725059 .global rk_ftl_storage_sys_init
25060
+ .syntax unified
25061
+ .arm
25062
+ .fpu softvfp
2453825063 .type rk_ftl_storage_sys_init, %function
2453925064 rk_ftl_storage_sys_init:
2454025065 .fnstart
2454125066 @ args = 0, pretend = 0, frame = 0
2454225067 @ frame_needed = 0, uses_anonymous_args = 0
24543
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
24544
- .save {r3, r4, r5, r6, r7, lr}
24545
- mov r2, #512
24546
- ldr r4, .L4061
25068
+ push {r4, r5, r6, r7, r8, lr}
25069
+ .save {r4, r5, r6, r7, r8, lr}
2454725070 mvn r3, #0
25071
+ ldr r4, .L3967
2454825072 mov r5, #0
24549
- add r0, r4, #2048
25073
+ mov r2, #512
2455025074 ldr r1, [r4, #2004]
25075
+ add r0, r4, #2048
2455125076 str r3, [r4, #2028]
25077
+ strb r5, [r4, #2020]
2455225078 add r3, r1, #512
24553
- str r3, [r4, #2032]
2455425079 str r1, [r4, #2044]
25080
+ str r3, [r4, #2032]
2455525081 add r3, r1, #1024
2455625082 add r1, r1, #1536
2455725083 str r3, [r4, #2564]
24558
- strb r5, [r4, #2020]
2455925084 str r5, [r4, #2024]
2456025085 str r5, [r4, #2572]
2456125086 str r1, [r4, #2568]
....@@ -24567,40 +25092,42 @@
2456725092 ldr r3, [r6, #16]
2456825093 cmp r7, r5
2456925094 str r3, [r4, #2040]
24570
- beq .L4052
24571
- mov r0, r6
25095
+ beq .L3958
2457225096 mov r1, #508
25097
+ mov r0, r6
2457325098 bl js_hash
2457425099 cmp r7, r0
24575
- beq .L4052
25100
+ beq .L3958
2457625101 str r5, [r6, #16]
24577
- ldr r0, .L4061+4
25102
+ ldr r0, .L3967+4
2457825103 str r5, [r4, #2040]
2457925104 bl printk
24580
-.L4052:
25105
+.L3958:
2458125106 ldr r3, [r4, #2040]
2458225107 mov r0, #2
2458325108 ldr r1, [r4, #2564]
2458425109 cmp r3, #0
24585
- ldrne r3, .L4061
24586
- ldrne r2, .L4061+8
24587
- strne r2, [r3, #2036]
25110
+ ldrne r3, .L3967+8
25111
+ strne r3, [r4, #2036]
2458825112 bl StorageSysDataLoad
2458925113 ldr r1, [r4, #2568]
2459025114 mov r0, #3
2459125115 bl StorageSysDataLoad
24592
- ldmfd sp!, {r3, r4, r5, r6, r7, lr}
25116
+ pop {r4, r5, r6, r7, r8, lr}
2459325117 b rknand_sys_storage_init
24594
-.L4062:
25118
+.L3968:
2459525119 .align 2
24596
-.L4061:
24597
- .word .LANCHOR4
25120
+.L3967:
25121
+ .word .LANCHOR2
2459825122 .word .LC199
2459925123 .word -1067903959
2460025124 .fnend
2460125125 .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init
2460225126 .align 2
2460325127 .global StorageSysDataDeInit
25128
+ .syntax unified
25129
+ .arm
25130
+ .fpu softvfp
2460425131 .type StorageSysDataDeInit, %function
2460525132 StorageSysDataDeInit:
2460625133 .fnstart
....@@ -24613,269 +25140,269 @@
2461325140 .size StorageSysDataDeInit, .-StorageSysDataDeInit
2461425141 .align 2
2461525142 .global rk_ftl_vendor_storage_init
25143
+ .syntax unified
25144
+ .arm
25145
+ .fpu softvfp
2461625146 .type rk_ftl_vendor_storage_init, %function
2461725147 rk_ftl_vendor_storage_init:
2461825148 .fnstart
2461925149 @ args = 0, pretend = 0, frame = 0
2462025150 @ frame_needed = 0, uses_anonymous_args = 0
24621
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
25151
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
2462225152 .save {r4, r5, r6, r7, r8, r9, r10, lr}
2462325153 mov r0, #65536
25154
+ ldr r6, .L3980
2462425155 bl ftl_malloc
24625
- ldr r6, .L4075
2462625156 cmp r0, #0
2462725157 str r0, [r6, #2576]
24628
- beq .L4070
24629
- ldr r9, .L4075+4
24630
- mov r8, #0
24631
- mov r4, r8
24632
- mov r7, r8
24633
- mov r10, r6
24634
-.L4068:
24635
- mov r0, r7, asl #7
24636
- mov r1, #128
25158
+ beq .L3976
25159
+ ldr r10, .L3980+4
25160
+ mov r7, #0
25161
+ ldr r9, .L3980+8
25162
+ mov r4, r7
25163
+ mov r8, r7
25164
+.L3974:
2463725165 ldr r2, [r6, #2576]
25166
+ mov r1, #128
25167
+ lsl r0, r8, #7
2463825168 bl FlashBootVendorRead
2463925169 cmp r0, #0
24640
- bne .L4066
24641
- ldr r3, [r10, #2576]
24642
- ldr r0, .L4075+8
24643
- add r2, r3, #61440
24644
- ldr r1, [r3]
25170
+ bne .L3972
25171
+ ldr r1, [r6, #2576]
25172
+ mov r0, r10
25173
+ add r2, r1, #61440
25174
+ ldr r3, [r1, #4]
2464525175 ldr r2, [r2, #4092]
24646
- ldr r3, [r3, #4]
25176
+ ldr r1, [r1]
2464725177 bl printk
24648
- ldr r5, [r10, #2576]
25178
+ ldr r5, [r6, #2576]
2464925179 ldr r3, [r5]
2465025180 cmp r3, r9
24651
- bne .L4067
25181
+ bne .L3973
2465225182 add r2, r5, #61440
2465325183 ldr r3, [r5, #4]
24654
- ldr r1, [r2, #4092]
24655
- cmp r4, r3
24656
- movcs r2, #0
24657
- movcc r2, #1
24658
- cmp r1, r3
24659
- movne r2, #0
25184
+ ldr r2, [r2, #4092]
25185
+ cmp r3, r4
25186
+ sub r2, r2, r3
25187
+ clz r2, r2
25188
+ lsr r2, r2, #5
25189
+ movls r2, #0
2466025190 cmp r2, #0
24661
- movne r8, r7
25191
+ movne r7, r8
2466225192 movne r4, r3
24663
-.L4067:
24664
- cmp r7, #1
24665
- movne r7, #1
24666
- bne .L4068
24667
-.L4074:
25193
+.L3973:
25194
+ add r8, r8, #1
25195
+ cmp r8, #2
25196
+ bne .L3974
2466825197 cmp r4, #0
24669
- beq .L4069
24670
- mov r0, r8, asl #7
24671
- mov r1, #128
25198
+ beq .L3975
2467225199 mov r2, r5
25200
+ mov r1, #128
25201
+ lsl r0, r7, #7
2467325202 bl FlashBootVendorRead
2467425203 cmp r0, #0
24675
- bne .L4066
24676
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
24677
-.L4069:
24678
- mov r0, r5
24679
- mov r1, r4
25204
+ bne .L3972
25205
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
25206
+.L3975:
2468025207 mov r2, #65536
25208
+ mov r1, r4
25209
+ mov r0, r5
2468125210 bl memset
24682
- ldr r3, .L4075+4
24683
- str r7, [r5, #4]
25211
+ mov r3, #1
25212
+ add r2, r5, #61440
25213
+ str r3, [r5, #4]
2468425214 mov r0, r4
24685
- str r3, [r5]
24686
- add r3, r5, #61440
24687
- str r7, [r3, #4092]
24688
- ldr r3, .L4075+12
25215
+ str r9, [r5]
25216
+ str r3, [r2, #4092]
25217
+ ldr r3, .L3980+12
2468925218 strh r4, [r5, #12] @ movhi
2469025219 strh r3, [r5, #14] @ movhi
24691
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
24692
-.L4066:
25220
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
25221
+.L3972:
2469325222 ldr r0, [r6, #2576]
2469425223 bl kfree
2469525224 mov r3, #0
2469625225 mvn r0, #0
2469725226 str r3, [r6, #2576]
24698
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
24699
-.L4070:
25227
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
25228
+.L3976:
2470025229 mvn r0, #11
24701
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
24702
-.L4076:
25230
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
25231
+.L3981:
2470325232 .align 2
24704
-.L4075:
24705
- .word .LANCHOR4
24706
- .word 1380668996
25233
+.L3980:
25234
+ .word .LANCHOR2
2470725235 .word .LC200
25236
+ .word 1380668996
2470825237 .word -1032
2470925238 .fnend
2471025239 .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init
2471125240 .align 2
2471225241 .global rk_ftl_vendor_read
25242
+ .syntax unified
25243
+ .arm
25244
+ .fpu softvfp
2471325245 .type rk_ftl_vendor_read, %function
2471425246 rk_ftl_vendor_read:
2471525247 .fnstart
2471625248 @ args = 0, pretend = 0, frame = 0
2471725249 @ frame_needed = 0, uses_anonymous_args = 0
24718
- stmfd sp!, {r3, r4, r5, lr}
24719
- .save {r3, r4, r5, lr}
24720
- ldr r3, .L4084
25250
+ ldr r3, .L3992
2472125251 ldr ip, [r3, #2576]
2472225252 cmp ip, #0
24723
- ldrneh r4, [ip, #10]
24724
- movne r3, #0
24725
- beq .L4082
24726
-.L4079:
25253
+ beq .L3987
25254
+ push {r4, r5, r6, lr}
25255
+ .save {r4, r5, r6, lr}
25256
+ mov r3, #0
25257
+ ldrh r4, [ip, #10]
25258
+.L3984:
2472725259 cmp r3, r4
24728
- bcs .L4082
24729
- add lr, ip, r3, asl #3
25260
+ bcc .L3986
25261
+ mvn r0, #0
25262
+ pop {r4, r5, r6, pc}
25263
+.L3986:
25264
+ add lr, ip, r3, lsl #3
2473025265 ldrh r5, [lr, #16]
2473125266 cmp r5, r0
24732
- bne .L4080
24733
- ldrh r3, [lr, #20]
25267
+ bne .L3985
25268
+ ldrh r4, [lr, #20]
2473425269 mov r0, r1
2473525270 ldrh r1, [lr, #18]
24736
- mov r4, r2
24737
- cmp r2, r3
25271
+ cmp r4, r2
25272
+ movcs r4, r2
2473825273 add r1, r1, #1024
24739
- movcs r4, r3
24740
- add r1, ip, r1
2474125274 mov r2, r4
25275
+ add r1, ip, r1
2474225276 bl memcpy
2474325277 mov r0, r4
24744
- ldmfd sp!, {r3, r4, r5, pc}
24745
-.L4080:
25278
+ pop {r4, r5, r6, pc}
25279
+.L3985:
2474625280 add r3, r3, #1
24747
- b .L4079
24748
-.L4082:
25281
+ b .L3984
25282
+.L3987:
2474925283 mvn r0, #0
24750
- ldmfd sp!, {r3, r4, r5, pc}
24751
-.L4085:
25284
+ bx lr
25285
+.L3993:
2475225286 .align 2
24753
-.L4084:
24754
- .word .LANCHOR4
25287
+.L3992:
25288
+ .word .LANCHOR2
2475525289 .fnend
2475625290 .size rk_ftl_vendor_read, .-rk_ftl_vendor_read
2475725291 .align 2
2475825292 .global rk_ftl_vendor_write
25293
+ .syntax unified
25294
+ .arm
25295
+ .fpu softvfp
2475925296 .type rk_ftl_vendor_write, %function
2476025297 rk_ftl_vendor_write:
2476125298 .fnstart
2476225299 @ args = 0, pretend = 0, frame = 24
2476325300 @ frame_needed = 0, uses_anonymous_args = 0
24764
- stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr}
25301
+ ldr r3, .L4015
25302
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2476525303 .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
24766
- mov r9, r2
24767
- ldr r2, .L4109
2476825304 .pad #28
2476925305 sub sp, sp, #28
24770
- ldr r4, [r2, #2576]
25306
+ ldr r4, [r3, #2576]
2477125307 cmp r4, #0
24772
- beq .L4101
24773
- mov r3, r1
24774
- add r7, r9, #63
24775
- ldrh r1, [r4, #8]
24776
- bic r7, r7, #63
25308
+ beq .L4009
25309
+ mov r8, r2
2477725310 ldrh r2, [r4, #10]
24778
- mov ip, r0
24779
- mov r6, #0
24780
- str r1, [sp, #4]
24781
-.L4088:
24782
- cmp r6, r2
24783
- bcs .L4107
24784
- add r5, r4, r6, asl #3
24785
- ldrh r1, [r5, #16]
24786
- cmp r1, ip
24787
- bne .L4089
24788
- ldrh r1, [r5, #20]
24789
- add fp, r4, #1024
24790
- add r1, r1, #63
24791
- bic r1, r1, #63
24792
- str r1, [sp, #8]
24793
- cmp r9, r1
24794
- bls .L4090
25311
+ add r6, r8, #63
25312
+ ldrh r3, [r4, #8]
25313
+ mov fp, r1
25314
+ bic r6, r6, #63
25315
+ mov r7, #0
25316
+ str r3, [sp, #4]
25317
+.L3996:
25318
+ cmp r7, r2
25319
+ bcc .L4004
2479525320 ldrh r1, [r4, #14]
24796
- cmp r1, r7
24797
- subcs r2, r2, #1
24798
- strcs r2, [sp, #12]
24799
- ldrcsh r8, [r5, #18]
24800
- bcc .L4101
24801
-.L4091:
24802
- ldr r2, [sp, #12]
24803
- add r5, r5, #8
24804
- cmp r6, r2
24805
- bcs .L4108
24806
- ldrh r10, [r5, #20]
24807
- add r0, fp, r8
24808
- ldrh r2, [r5, #16]
24809
- add r6, r6, #1
24810
- ldrh r1, [r5, #18]
24811
- strh r10, [r5, #12] @ movhi
24812
- add r10, r10, #63
24813
- bic r10, r10, #63
24814
- strh r2, [r5, #8] @ movhi
24815
- strh r8, [r5, #10] @ movhi
24816
- add r1, fp, r1
24817
- mov r2, r10
24818
- str r3, [sp, #20]
24819
- str ip, [sp, #16]
24820
- bl memcpy
24821
- add r8, r8, r10
24822
- ldr r3, [sp, #20]
24823
- ldr ip, [sp, #16]
24824
- b .L4091
24825
-.L4108:
24826
- add r6, r4, r6, asl #3
24827
- uxth r8, r8
24828
- add r0, fp, r8
24829
- mov r1, r3
24830
- strh r8, [r6, #18] @ movhi
24831
- mov r2, r9
24832
- strh ip, [r6, #16] @ movhi
24833
- uxth r7, r7
24834
- strh r9, [r6, #20] @ movhi
24835
- add r8, r8, r7
24836
- bl memcpy
24837
- ldrh r5, [r4, #14]
24838
- strh r8, [r4, #12] @ movhi
24839
- ldr r3, [sp, #8]
24840
- add r5, r3, r5
24841
- rsb r7, r7, r5
24842
- strh r7, [r4, #14] @ movhi
24843
- b .L4106
24844
-.L4090:
24845
- ldrh r0, [r5, #18]
24846
- mov r1, r3
24847
- mov r2, r9
24848
- add r0, fp, r0
24849
- bl memcpy
24850
- strh r9, [r5, #20] @ movhi
24851
- b .L4106
24852
-.L4089:
24853
- add r6, r6, #1
24854
- b .L4088
24855
-.L4107:
24856
- ldrh r1, [r4, #14]
24857
- cmp r1, r7
24858
- bcc .L4101
24859
- add r2, r4, r2, asl #3
24860
- uxth r7, r7
24861
- rsb r1, r7, r1
24862
- strh ip, [r2, #16] @ movhi
24863
- ldrh r0, [r4, #12]
24864
- strh r9, [r2, #20] @ movhi
24865
- strh r0, [r2, #18] @ movhi
24866
- add r0, r7, r0
24867
- strh r1, [r4, #14] @ movhi
24868
- mov r1, r3
24869
- strh r0, [r4, #12] @ movhi
24870
- ldrh r0, [r2, #18]
24871
- mov r2, r9
25321
+ cmp r6, r1
25322
+ bhi .L4009
25323
+ add r3, r4, r2, lsl #3
25324
+ uxth r6, r6
25325
+ strh r0, [r3, #16] @ movhi
25326
+ ldrh r2, [r4, #12]
25327
+ strh r8, [r3, #20] @ movhi
25328
+ strh r2, [r3, #18] @ movhi
25329
+ add r2, r2, r6
25330
+ sub r6, r1, r6
25331
+ strh r2, [r4, #12] @ movhi
25332
+ strh r6, [r4, #14] @ movhi
25333
+ mov r2, r8
25334
+ ldrh r0, [r3, #18]
25335
+ mov r1, fp
2487225336 add r0, r0, #1024
2487325337 add r0, r4, r0
2487425338 bl memcpy
2487525339 ldrh r3, [r4, #10]
2487625340 add r3, r3, #1
2487725341 strh r3, [r4, #10] @ movhi
24878
-.L4106:
25342
+ b .L4014
25343
+.L4004:
25344
+ add r5, r4, r7, lsl #3
25345
+ ldrh r3, [r5, #16]
25346
+ cmp r3, r0
25347
+ str r3, [sp, #8]
25348
+ bne .L3997
25349
+ ldrh r1, [r5, #20]
25350
+ add r3, r4, #1024
25351
+ add r1, r1, #63
25352
+ bic r1, r1, #63
25353
+ cmp r8, r1
25354
+ str r1, [sp, #12]
25355
+ bls .L3998
25356
+ ldrh r1, [r4, #14]
25357
+ cmp r6, r1
25358
+ subls r2, r2, #1
25359
+ ldrhls r10, [r5, #18]
25360
+ strls r2, [sp, #16]
25361
+ bls .L3999
25362
+.L4009:
25363
+ mvn r0, #0
25364
+ b .L3994
25365
+.L4000:
25366
+ ldrh r9, [r5, #20]
25367
+ add r0, r3, r10
25368
+ ldrh r2, [r5, #16]
25369
+ add r7, r7, #1
25370
+ ldrh r1, [r5, #18]
25371
+ strh r9, [r5, #12] @ movhi
25372
+ add r9, r9, #63
25373
+ bic r9, r9, #63
25374
+ strh r2, [r5, #8] @ movhi
25375
+ strh r10, [r5, #10] @ movhi
25376
+ add r1, r3, r1
25377
+ mov r2, r9
25378
+ str r3, [sp, #20]
25379
+ bl memcpy
25380
+ ldr r3, [sp, #20]
25381
+ add r10, r10, r9
25382
+.L3999:
25383
+ ldr r2, [sp, #16]
25384
+ add r5, r5, #8
25385
+ cmp r7, r2
25386
+ bcc .L4000
25387
+ ldrh r2, [sp, #8]
25388
+ add r7, r4, r7, lsl #3
25389
+ uxth r5, r10
25390
+ uxtah r0, r3, r10
25391
+ strh r8, [r7, #20] @ movhi
25392
+ strh r2, [r7, #16] @ movhi
25393
+ mov r1, fp
25394
+ strh r5, [r7, #18] @ movhi
25395
+ mov r2, r8
25396
+ bl memcpy
25397
+ uxth r3, r6
25398
+ ldrh r6, [r4, #14]
25399
+ add r5, r5, r3
25400
+ sub r6, r6, r3
25401
+ ldr r3, [sp, #12]
25402
+ strh r5, [r4, #12] @ movhi
25403
+ add r6, r6, r3
25404
+ strh r6, [r4, #14] @ movhi
25405
+.L4014:
2487925406 ldr r3, [r4, #4]
2488025407 add r2, r4, #61440
2488125408 mov r1, #128
....@@ -24890,30 +25417,41 @@
2489025417 movhi r3, #0
2489125418 strh r3, [r4, #8] @ movhi
2489225419 ldr r3, [sp, #4]
24893
- mov r0, r3, asl #7
25420
+ lsl r0, r3, #7
2489425421 bl FlashBootVendorWrite
2489525422 mov r0, #0
24896
- b .L4087
24897
-.L4101:
24898
- mvn r0, #0
24899
-.L4087:
25423
+.L3994:
2490025424 add sp, sp, #28
2490125425 @ sp needed
24902
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc}
24903
-.L4110:
25426
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
25427
+.L3998:
25428
+ ldrh r0, [r5, #18]
25429
+ mov r2, r8
25430
+ mov r1, fp
25431
+ add r0, r3, r0
25432
+ bl memcpy
25433
+ strh r8, [r5, #20] @ movhi
25434
+ b .L4014
25435
+.L3997:
25436
+ add r7, r7, #1
25437
+ b .L3996
25438
+.L4016:
2490425439 .align 2
24905
-.L4109:
24906
- .word .LANCHOR4
25440
+.L4015:
25441
+ .word .LANCHOR2
2490725442 .fnend
2490825443 .size rk_ftl_vendor_write, .-rk_ftl_vendor_write
2490925444 .align 2
2491025445 .global rk_ftl_vendor_storage_ioctl
25446
+ .syntax unified
25447
+ .arm
25448
+ .fpu softvfp
2491125449 .type rk_ftl_vendor_storage_ioctl, %function
2491225450 rk_ftl_vendor_storage_ioctl:
2491325451 .fnstart
2491425452 @ args = 0, pretend = 0, frame = 0
2491525453 @ frame_needed = 0, uses_anonymous_args = 0
24916
- stmfd sp!, {r4, r5, r6, lr}
25454
+ push {r4, r5, r6, lr}
2491725455 .save {r4, r5, r6, lr}
2491825456 mov r0, #4096
2491925457 mov r5, r2
....@@ -24921,81 +25459,79 @@
2492125459 bl ftl_malloc
2492225460 subs r4, r0, #0
2492325461 mvneq r5, #0
24924
- beq .L4112
24925
- ldr r3, .L4128
25462
+ beq .L4017
25463
+ ldr r3, .L4033
2492625464 cmp r6, r3
24927
- beq .L4114
25465
+ beq .L4020
2492825466 add r3, r3, #1
2492925467 cmp r6, r3
24930
- beq .L4115
24931
- b .L4126
24932
-.L4114:
24933
- mov r1, r5
25468
+ beq .L4021
25469
+.L4031:
25470
+ mvn r5, #13
25471
+ b .L4019
25472
+.L4020:
2493425473 mov r2, #8
25474
+ mov r1, r5
2493525475 bl rk_copy_from_user
2493625476 cmp r0, #0
24937
- bne .L4126
25477
+ bne .L4031
2493825478 ldr r2, [r4]
24939
- ldr r3, .L4128+4
25479
+ ldr r3, .L4033+4
2494025480 cmp r2, r3
24941
- beq .L4117
24942
-.L4118:
25481
+ beq .L4023
25482
+.L4024:
2494325483 mvn r5, #0
24944
- b .L4113
24945
-.L4117:
24946
- ldrh r0, [r4, #4]
24947
- add r1, r4, #8
25484
+.L4019:
25485
+ mov r0, r4
25486
+ bl kfree
25487
+.L4017:
25488
+ mov r0, r5
25489
+ pop {r4, r5, r6, pc}
25490
+.L4023:
2494825491 ldrh r2, [r4, #6]
25492
+ add r1, r4, #8
25493
+ ldrh r0, [r4, #4]
2494925494 bl rk_ftl_vendor_read
2495025495 cmn r0, #1
24951
- beq .L4118
25496
+ beq .L4024
2495225497 uxth r2, r0
2495325498 strh r0, [r4, #6] @ movhi
2495425499 mov r1, r4
2495525500 mov r0, r5
2495625501 add r2, r2, #8
2495725502 bl rk_copy_to_user
24958
- cmp r0, #0
24959
- moveq r5, #0
24960
- mvnne r5, #13
24961
- b .L4113
24962
-.L4115:
24963
- mov r1, r5
25503
+ subs r5, r0, #0
25504
+ beq .L4019
25505
+ b .L4031
25506
+.L4021:
2496425507 mov r2, #8
25508
+ mov r1, r5
2496525509 bl rk_copy_from_user
2496625510 cmp r0, #0
24967
- bne .L4126
25511
+ bne .L4031
2496825512 ldr r2, [r4]
24969
- ldr r3, .L4128+4
25513
+ ldr r3, .L4033+4
2497025514 cmp r2, r3
24971
- bne .L4118
25515
+ bne .L4024
2497225516 ldrh r2, [r4, #6]
2497325517 movw r3, #4087
2497425518 cmp r2, r3
24975
- bhi .L4118
24976
- mov r0, r4
24977
- mov r1, r5
25519
+ bhi .L4024
2497825520 add r2, r2, #8
25521
+ mov r1, r5
25522
+ mov r0, r4
2497925523 bl rk_copy_from_user
2498025524 cmp r0, #0
24981
- bne .L4126
24982
- ldrh r0, [r4, #4]
24983
- add r1, r4, #8
25525
+ bne .L4031
2498425526 ldrh r2, [r4, #6]
25527
+ add r1, r4, #8
25528
+ ldrh r0, [r4, #4]
2498525529 bl rk_ftl_vendor_write
2498625530 mov r5, r0
24987
- b .L4113
24988
-.L4126:
24989
- mvn r5, #13
24990
-.L4113:
24991
- mov r0, r4
24992
- bl kfree
24993
-.L4112:
24994
- mov r0, r5
24995
- ldmfd sp!, {r4, r5, r6, pc}
24996
-.L4129:
25531
+ b .L4019
25532
+.L4034:
2499725533 .align 2
24998
-.L4128:
25534
+.L4033:
2499925535 .word 1074034177
2500025536 .word 1448232273
2500125537 .fnend
....@@ -25009,6 +25545,8 @@
2500925545 .global gSnSectorData
2501025546 .global gpDrmKeyInfo
2501125547 .global gpBootConfig
25548
+ .global ftl_dma32_buffer_size
25549
+ .global ftl_dma32_buffer
2501225550 .global gLoaderBootInfo
2501325551 .global RK29_NANDC1_REG_BASE
2501425552 .global RK29_NANDC_REG_BASE
....@@ -25244,18 +25782,11 @@
2524425782 .global IDByte
2524525783 .global read_retry_cur_offset
2524625784 .section .rodata
25247
- .align 2
25248
-.LANCHOR3 = . + 0
25249
- .type __func__.20390, %object
25250
- .size __func__.20390, 11
25251
-__func__.20390:
25785
+ .set .LANCHOR3,. + 0
25786
+ .type __func__.23812, %object
25787
+ .size __func__.23812, 11
25788
+__func__.23812:
2525225789 .ascii "FtlMemInit\000"
25253
-.LC0:
25254
- .byte 60
25255
- .byte 40
25256
- .byte 24
25257
- .byte 16
25258
- .space 1
2525925790 .type samsung_14nm_slc_rr, %object
2526025791 .size samsung_14nm_slc_rr, 26
2526125792 samsung_14nm_slc_rr:
....@@ -25285,7 +25816,6 @@
2528525816 .byte -125
2528625817 .byte -115
2528725818 .byte 100
25288
- .space 2
2528925819 .type samsung_14nm_mlc_rr, %object
2529025820 .size samsung_14nm_mlc_rr, 104
2529125821 samsung_14nm_mlc_rr:
....@@ -25393,452 +25923,33 @@
2539325923 .byte 18
2539425924 .byte 9
2539525925 .byte 8
25396
- .type __func__.21169, %object
25397
- .size __func__.21169, 17
25398
-__func__.21169:
25926
+ .type __func__.24591, %object
25927
+ .size __func__.24591, 17
25928
+__func__.24591:
2539925929 .ascii "FtlDumpBlockInfo\000"
25400
- .space 3
25401
- .type __func__.21188, %object
25402
- .size __func__.21188, 16
25403
-__func__.21188:
25930
+ .type __func__.24610, %object
25931
+ .size __func__.24610, 16
25932
+__func__.24610:
2540425933 .ascii "FtlScanAllBlock\000"
25405
- .type __func__.21456, %object
25406
- .size __func__.21456, 17
25407
-__func__.21456:
25934
+ .type __func__.24878, %object
25935
+ .size __func__.24878, 17
25936
+__func__.24878:
2540825937 .ascii "ftl_scan_all_ppa\000"
25409
- .space 3
25410
- .type __func__.21137, %object
25411
- .size __func__.21137, 12
25412
-__func__.21137:
25938
+ .type __func__.24559, %object
25939
+ .size __func__.24559, 12
25940
+__func__.24559:
2541325941 .ascii "FtlCheckVpc\000"
25414
- .type __func__.21436, %object
25415
- .size __func__.21436, 21
25416
-__func__.21436:
25942
+ .type __func__.24858, %object
25943
+ .size __func__.24858, 21
25944
+__func__.24858:
2541725945 .ascii "FtlVpcCheckAndModify\000"
25418
- .space 3
25419
- .type __func__.20463, %object
25420
- .size __func__.20463, 8
25421
-__func__.20463:
25946
+ .type __func__.23885, %object
25947
+ .size __func__.23885, 8
25948
+__func__.23885:
2542225949 .ascii "FtlInit\000"
25423
- .section .rodata.str1.1,"aMS",%progbits,1
25424
-.LC1:
25425
- .ascii "FlashEraseBlocks pageAddr error %x\012\000"
25426
-.LC2:
25427
- .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
25428
- .ascii "\000"
25429
-.LC3:
25430
- .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000"
25431
-.LC4:
25432
- .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
25433
- .ascii "\000"
25434
-.LC5:
25435
- .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
25436
-.LC6:
25437
- .ascii "FLASH INFO:\012\000"
25438
-.LC7:
25439
- .ascii "FLASH ID: %x\012\000"
25440
-.LC8:
25441
- .ascii "Device Capacity: %d MB\012\000"
25442
-.LC9:
25443
- .ascii "FMWAIT: %x %x %x %x\012\000"
25444
-.LC10:
25445
- .ascii "FTL INFO:\012\000"
25446
-.LC11:
25447
- .ascii "g_MaxLpn = 0x%x\012\000"
25448
-.LC12:
25449
- .ascii "g_VaildLpn = 0x%x\012\000"
25450
-.LC13:
25451
- .ascii "read_page_count = 0x%x\012\000"
25452
-.LC14:
25453
- .ascii "discard_page_count = 0x%x\012\000"
25454
-.LC15:
25455
- .ascii "write_page_count = 0x%x\012\000"
25456
-.LC16:
25457
- .ascii "cache_write_count = 0x%x\012\000"
25458
-.LC17:
25459
- .ascii "l2p_write_count = 0x%x\012\000"
25460
-.LC18:
25461
- .ascii "gc_page_count = 0x%x\012\000"
25462
-.LC19:
25463
- .ascii "totle_write = %d MB\012\000"
25464
-.LC20:
25465
- .ascii "totle_read = %d MB\012\000"
25466
-.LC21:
25467
- .ascii "GSV = 0x%x\012\000"
25468
-.LC22:
25469
- .ascii "GDV = 0x%x\012\000"
25470
-.LC23:
25471
- .ascii "bad blk num = %d %d\012\000"
25472
-.LC24:
25473
- .ascii "free_superblocks = 0x%x\012\000"
25474
-.LC25:
25475
- .ascii "mlc_EC = 0x%x\012\000"
25476
-.LC26:
25477
- .ascii "slc_EC = 0x%x\012\000"
25478
-.LC27:
25479
- .ascii "avg_EC = 0x%x\012\000"
25480
-.LC28:
25481
- .ascii "sys_EC = 0x%x\012\000"
25482
-.LC29:
25483
- .ascii "max_EC = 0x%x\012\000"
25484
-.LC30:
25485
- .ascii "min_EC = 0x%x\012\000"
25486
-.LC31:
25487
- .ascii "PLT = 0x%x\012\000"
25488
-.LC32:
25489
- .ascii "POT = 0x%x\012\000"
25490
-.LC33:
25491
- .ascii "MaxSector = 0x%x\012\000"
25492
-.LC34:
25493
- .ascii "init_sys_blks_pp = 0x%x\012\000"
25494
-.LC35:
25495
- .ascii "sys_blks_pp = 0x%x\012\000"
25496
-.LC36:
25497
- .ascii "free sysblock = 0x%x\012\000"
25498
-.LC37:
25499
- .ascii "data_blks_pp = 0x%x\012\000"
25500
-.LC38:
25501
- .ascii "data_op_blks_pp = 0x%x\012\000"
25502
-.LC39:
25503
- .ascii "max_data_blks = 0x%x\012\000"
25504
-.LC40:
25505
- .ascii "Sys.id = 0x%x\012\000"
25506
-.LC41:
25507
- .ascii "Bbt.id = 0x%x\012\000"
25508
-.LC42:
25509
- .ascii "ACT.page = 0x%x\012\000"
25510
-.LC43:
25511
- .ascii "ACT.plane = 0x%x\012\000"
25512
-.LC44:
25513
- .ascii "ACT.id = 0x%x\012\000"
25514
-.LC45:
25515
- .ascii "ACT.mode = 0x%x\012\000"
25516
-.LC46:
25517
- .ascii "ACT.a_pages = 0x%x\012\000"
25518
-.LC47:
25519
- .ascii "ACT VPC = 0x%x\012\000"
25520
-.LC48:
25521
- .ascii "BUF.page = 0x%x\012\000"
25522
-.LC49:
25523
- .ascii "BUF.plane = 0x%x\012\000"
25524
-.LC50:
25525
- .ascii "BUF.id = 0x%x\012\000"
25526
-.LC51:
25527
- .ascii "BUF.mode = 0x%x\012\000"
25528
-.LC52:
25529
- .ascii "BUF.a_pages = 0x%x\012\000"
25530
-.LC53:
25531
- .ascii "BUF VPC = 0x%x\012\000"
25532
-.LC54:
25533
- .ascii "TMP.page = 0x%x\012\000"
25534
-.LC55:
25535
- .ascii "TMP.plane = 0x%x\012\000"
25536
-.LC56:
25537
- .ascii "TMP.id = 0x%x\012\000"
25538
-.LC57:
25539
- .ascii "TMP.mode = 0x%x\012\000"
25540
-.LC58:
25541
- .ascii "TMP.a_pages = 0x%x\012\000"
25542
-.LC59:
25543
- .ascii "GC.page = 0x%x\012\000"
25544
-.LC60:
25545
- .ascii "GC.plane = 0x%x\012\000"
25546
-.LC61:
25547
- .ascii "GC.id = 0x%x\012\000"
25548
-.LC62:
25549
- .ascii "GC.mode = 0x%x\012\000"
25550
-.LC63:
25551
- .ascii "GC.a_pages = 0x%x\012\000"
25552
-.LC64:
25553
- .ascii "WR_CHK = 0x%x %x %x %x\012\000"
25554
-.LC65:
25555
- .ascii "Read Err = 0x%x\012\000"
25556
-.LC66:
25557
- .ascii "Prog Err = 0x%x\012\000"
25558
-.LC67:
25559
- .ascii "gc_free_blk_th= 0x%x\012\000"
25560
-.LC68:
25561
- .ascii "gc_merge_free_blk_th= 0x%x\012\000"
25562
-.LC69:
25563
- .ascii "gc_skip_write_count= 0x%x\012\000"
25564
-.LC70:
25565
- .ascii "gc_blk_index= 0x%x\012\000"
25566
-.LC71:
25567
- .ascii "free min EC= 0x%x\012\000"
25568
-.LC72:
25569
- .ascii "free max EC= 0x%x\012\000"
25570
-.LC73:
25571
- .ascii "GC__SB VPC = 0x%x\012\000"
25572
-.LC74:
25573
- .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
25574
-.LC75:
25575
- .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
25576
-.LC76:
25577
- .ascii "%s\012\000"
25578
-.LC77:
25579
- .ascii "FTL version: 5.0.63 20200923\000"
25580
-.LC78:
25581
- .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
25582
- .ascii "\012\000"
25583
-.LC79:
25584
- .ascii "FtlGcRefreshBlock 0x%x\012\000"
25585
-.LC80:
25586
- .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000"
25587
-.LC81:
25588
- .ascii "%s error allocating memory. return -1\012\000"
25589
-.LC82:
25590
- .ascii "%s %p:0x%x:\000"
25591
-.LC83:
25592
- .ascii "%x \000"
25593
-.LC84:
25594
- .ascii "\000"
25595
-.LC85:
25596
- .ascii "otp error! %d\000"
25597
-.LC86:
25598
- .ascii "rr\000"
25599
-.LC87:
25600
- .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012"
25601
- .ascii "\000"
25602
-.LC88:
25603
- .ascii "nandc:\000"
25604
-.LC89:
25605
- .ascii "%d flReg.d32=%x %x\012\000"
25606
-.LC90:
25607
- .ascii "sdr read ok %x ecc=%d\012\000"
25608
-.LC91:
25609
- .ascii "sync para %d\012\000"
25610
-.LC92:
25611
- .ascii "TOG mode Read error %x %x\012\000"
25612
-.LC93:
25613
- .ascii "read retry status %x %x %x\012\000"
25614
-.LC94:
25615
- .ascii "micron RR %d row=%x,count %d,status=%d\012\000"
25616
-.LC95:
25617
- .ascii "samsung RR %d row=%x,count %d,status=%d\012\000"
25618
-.LC96:
25619
- .ascii "ECC:%d\012\000"
25620
-.LC97:
25621
- .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000"
25622
-.LC98:
25623
- .ascii "FlashLoadPhyInfo fail %x!!\012\000"
25624
-.LC99:
25625
- .ascii "Read pageadd=%x ecc=%x err=%x\012\000"
25626
-.LC100:
25627
- .ascii "data:\000"
25628
-.LC101:
25629
- .ascii "spare:\000"
25630
-.LC102:
25631
- .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000"
25632
-.LC103:
25633
- .ascii "FLFB:%d %d\012\000"
25634
-.LC104:
25635
- .ascii "prog error: = %x\012\000"
25636
-.LC105:
25637
- .ascii "prog read error: = %x\012\000"
25638
-.LC106:
25639
- .ascii "prog read REFRESH: = %x\012\000"
25640
-.LC107:
25641
- .ascii "prog read s error: = %x %x %x\012\000"
25642
-.LC108:
25643
- .ascii "prog read d error: = %x %x %x\012\000"
25644
-.LC109:
25645
- .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012"
25646
- .ascii "\000"
25647
-.LC110:
25648
- .ascii "...%s enter...\012\000"
25649
-.LC111:
25650
- .ascii "superBlkID = %x vpc=%x\012\000"
25651
-.LC112:
25652
- .ascii "flashmode = %x pagenum = %x %x\012\000"
25653
-.LC113:
25654
- .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012"
25655
- .ascii "\000"
25656
-.LC114:
25657
- .ascii "blk = %x vpc=%x mode = %x\012\000"
25658
-.LC115:
25659
- .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
25660
- .ascii "%x\012\000"
25661
-.LC116:
25662
- .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
25663
- .ascii "%x\012\000"
25664
-.LC117:
25665
- .ascii "ftl_scan_all_ppa blk %x page %x flag: %x\012\000"
25666
-.LC118:
25667
- .ascii "ftl_scan_all_ppa blk %x page %x flag: %x .........."
25668
- .ascii "..... is bad block\012\000"
25669
-.LC119:
25670
- .ascii "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012"
25671
- .ascii "\000"
25672
-.LC120:
25673
- .ascii "%s finished\012\000"
25674
-.LC121:
25675
- .ascii "FlashMakeFactorBbt %d\012\000"
25676
-.LC122:
25677
- .ascii "bad block:%d %d\012\000"
25678
-.LC123:
25679
- .ascii "FMFB:%d %d\012\000"
25680
-.LC124:
25681
- .ascii "E:bad block:%d\012\000"
25682
-.LC125:
25683
- .ascii "FMFB:Save %d %d\012\000"
25684
-.LC126:
25685
- .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
25686
-.LC127:
25687
- .ascii "FtlBbmTblFlush error:%x\012\000"
25688
-.LC128:
25689
- .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
25690
-.LC129:
25691
- .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
25692
-.LC130:
25693
- .ascii "decrement_vpc_count %x = %d\012\000"
25694
-.LC131:
25695
- .ascii "decrement_vpc_count %x = %d in free list\012\000"
25696
-.LC132:
25697
- .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
25698
-.LC133:
25699
- .ascii "page map lost: %x %x\012\000"
25700
-.LC134:
25701
- .ascii "FtlMapWritePage error = %x\012\000"
25702
-.LC135:
25703
- .ascii "FtlMapWritePage error = %x error count = %d\012\000"
25704
-.LC136:
25705
- .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
25706
-.LC137:
25707
- .ascii "no ect\000"
25708
-.LC138:
25709
- .ascii "slc mode\000"
25710
-.LC139:
25711
- .ascii "BBT:\000"
25712
-.LC140:
25713
- .ascii "region_id = %x phyAddr = %x\012\000"
25714
-.LC141:
25715
- .ascii "map_ppn:\000"
25716
-.LC142:
25717
- .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
25718
-.LC143:
25719
- .ascii "FtlCheckVpc2 %x = %x %x\012\000"
25720
-.LC144:
25721
- .ascii "free blk vpc error %x = %x %x\012\000"
25722
-.LC145:
25723
- .ascii "error_flag %x\012\000"
25724
-.LC146:
25725
- .ascii "Ftlscanalldata = %x\012\000"
25726
-.LC147:
25727
- .ascii "scan lpa = %x ppa= %x\012\000"
25728
-.LC148:
25729
- .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
25730
- .ascii "\000"
25731
-.LC149:
25732
- .ascii "RSB refresh addr %x\012\000"
25733
-.LC150:
25734
- .ascii "spuer block %x vpn is 0\012 \000"
25735
-.LC151:
25736
- .ascii "g_recovery_ppa %x ver %x\012 \000"
25737
-.LC152:
25738
- .ascii "FtlCheckVpc %x = %x %x\012\000"
25739
-.LC153:
25740
- .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
25741
-.LC154:
25742
- .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
25743
-.LC155:
25744
- .ascii "GC des block %x done\012\000"
25745
-.LC156:
25746
- .ascii "too many bad block = %d %d\012\000"
25747
-.LC157:
25748
- .ascii "%d GC datablk = %x vpc %x %x\012\000"
25749
-.LC158:
25750
- .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
25751
-.LC159:
25752
- .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
25753
-.LC160:
25754
- .ascii "rk_ftl_de_init %x\012\000"
25755
-.LC161:
25756
- .ascii "...%s: no bad block mapping table, format device\012"
25757
- .ascii "\000"
25758
-.LC162:
25759
- .ascii "...%s FtlSysBlkInit error ,format device!\012\000"
25760
-.LC163:
25761
- .ascii "FtlInit %x\012\000"
25762
-.LC164:
25763
- .ascii "fix power lost blk = %x vpc=%x\012\000"
25764
-.LC165:
25765
- .ascii "erase power lost blk = %x vpc=%x\012\000"
25766
-.LC166:
25767
- .ascii "FtlWrite: lpa error:%x %x\012\000"
25768
-.LC167:
25769
- .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012"
25770
- .ascii "\000"
25771
-.LC168:
25772
- .ascii ":\000"
25773
-.LC169:
25774
- .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
25775
- .ascii "\000"
25776
-.LC170:
25777
- .ascii "Mblk:\000"
25778
-.LC171:
25779
- .ascii "L2P:\000"
25780
-.LC172:
25781
- .ascii "L2PC:\000"
25782
-.LC173:
25783
- .ascii "write_idblock fix data %x %x\012\000"
25784
-.LC174:
25785
- .ascii "idblk:\000"
25786
-.LC175:
25787
- .ascii "idb reverse %x %x\012\000"
25788
-.LC176:
25789
- .ascii "write_idblock totle_sec %x %x %x %x\012\000"
25790
-.LC177:
25791
- .ascii "IDBlockWriteData %x %x\012\000"
25792
-.LC178:
25793
- .ascii "IDBlockWriteData %x %x ret= %x\012\000"
25794
-.LC179:
25795
- .ascii "IdBlockReadData %x %x\012\000"
25796
-.LC180:
25797
- .ascii "IdBlockReadData %x %x ret= %x\012\000"
25798
-.LC181:
25799
- .ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x"
25800
- .ascii "\012\000"
25801
-.LC182:
25802
- .ascii "write\000"
25803
-.LC183:
25804
- .ascii "read\000"
25805
-.LC184:
25806
- .ascii "write_idblock error %d\012\000"
25807
-.LC185:
25808
- .ascii "wl_lba %p %x %x %x\012\000"
25809
-.LC186:
25810
- .ascii "RKNAND_GET_DRM_KEY\012\000"
25811
-.LC187:
25812
- .ascii "rk_copy_from_user error\012\000"
25813
-.LC188:
25814
- .ascii "RKNAND_STORE_DRM_KEY\012\000"
25815
-.LC189:
25816
- .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000"
25817
-.LC190:
25818
- .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000"
25819
-.LC191:
25820
- .ascii "RKNAND_GET_SN_SECTOR\012\000"
25821
-.LC192:
25822
- .ascii "RKNAND_LOADER_UNLOCK\012\000"
25823
-.LC193:
25824
- .ascii "RKNAND_LOADER_STATUS\012\000"
25825
-.LC194:
25826
- .ascii "RKNAND_LOADER_LOCK\012\000"
25827
-.LC195:
25828
- .ascii "LockKey not match %d\012\000"
25829
-.LC196:
25830
- .ascii "RKNAND_GET_VENDOR_SECTOR\012\000"
25831
-.LC197:
25832
- .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000"
25833
-.LC198:
25834
- .ascii "return ret = %lx\012\000"
25835
-.LC199:
25836
- .ascii "secureBootEn check error\012\000"
25837
-.LC200:
25838
- .ascii "\0013vendor storage %x,%x,%x\012\000"
2583925950 .data
2584025951 .align 2
25841
-.LANCHOR1 = . + 0
25952
+ .set .LANCHOR1,. + 0
2584225953 .type random_seed, %object
2584325954 .size random_seed, 256
2584425955 random_seed:
....@@ -26018,7 +26129,6 @@
2601826129 .byte 126
2601926130 .byte 124
2602026131 .byte 0
26021
- .space 3
2602226132 .type Toshiba15RefValue, %object
2602326133 .size Toshiba15RefValue, 95
2602426134 Toshiba15RefValue:
....@@ -26117,7 +26227,6 @@
2611726227 .byte 116
2611826228 .byte 114
2611926229 .byte 0
26120
- .space 1
2612126230 .type ToshibaRefValue, %object
2612226231 .size ToshibaRefValue, 8
2612326232 ToshibaRefValue:
....@@ -28614,9 +28723,16 @@
2861428723 .word 1
2861528724 .bss
2861628725 .align 2
28617
-.LANCHOR0 = . + 0
28618
-.LANCHOR2 = . + 8184
28619
-.LANCHOR4 = . + 16368
28726
+ .set .LANCHOR0,. + 0
28727
+ .set .LANCHOR2,. + 8184
28728
+ .type gNandChipMap, %object
28729
+ .size gNandChipMap, 32
28730
+gNandChipMap:
28731
+ .space 32
28732
+ .type p_blk_mode_table, %object
28733
+ .size p_blk_mode_table, 4
28734
+p_blk_mode_table:
28735
+ .space 4
2862028736 .type g_slc2KBNand, %object
2862128737 .size g_slc2KBNand, 1
2862228738 g_slc2KBNand:
....@@ -28635,10 +28751,6 @@
2863528751 gNandRandomizer:
2863628752 .space 1
2863728753 .space 3
28638
- .type gNandChipMap, %object
28639
- .size gNandChipMap, 32
28640
-gNandChipMap:
28641
- .space 32
2864228754 .type gpNandParaInfo, %object
2864328755 .size gpNandParaInfo, 4
2864428756 gpNandParaInfo:
....@@ -28647,6 +28759,15 @@
2864728759 .size gNandOptPara, 32
2864828760 gNandOptPara:
2864928761 .space 32
28762
+ .type g_retryMode, %object
28763
+ .size g_retryMode, 1
28764
+g_retryMode:
28765
+ .space 1
28766
+ .type g_maxRegNum, %object
28767
+ .size g_maxRegNum, 1
28768
+g_maxRegNum:
28769
+ .space 1
28770
+ .space 2
2865028771 .type gpNandc, %object
2865128772 .size gpNandc, 4
2865228773 gpNandc:
....@@ -28704,19 +28825,10 @@
2870428825 .size FlashWaitBusyScheduleEn, 4
2870528826 FlashWaitBusyScheduleEn:
2870628827 .space 4
28707
- .type g_retryMode, %object
28708
- .size g_retryMode, 1
28709
-g_retryMode:
28710
- .space 1
28711
- .type g_maxRegNum, %object
28712
- .size g_maxRegNum, 1
28713
-g_maxRegNum:
28714
- .space 1
2871528828 .type gReadRetryInfo, %object
2871628829 .size gReadRetryInfo, 852
2871728830 gReadRetryInfo:
2871828831 .space 852
28719
- .space 2
2872028832 .type read_retry_cur_offset, %object
2872128833 .size read_retry_cur_offset, 4
2872228834 read_retry_cur_offset:
....@@ -28838,7 +28950,6 @@
2883828950 .size c_ftl_nand_planes_per_die, 2
2883928951 c_ftl_nand_planes_per_die:
2884028952 .space 2
28841
- .space 2
2884228953 .type p_plane_order_table, %object
2884328954 .size p_plane_order_table, 32
2884428955 p_plane_order_table:
....@@ -28890,6 +29001,7 @@
2889029001 .type c_ftl_nand_reserved_blks, %object
2889129002 .size c_ftl_nand_reserved_blks, 2
2889229003 c_ftl_nand_reserved_blks:
29004
+ .space 2
2889329005 .space 2
2889429006 .type DeviceCapacity, %object
2889529007 .size DeviceCapacity, 4
....@@ -29038,10 +29150,6 @@
2903829150 .size g_VaildLpn, 4
2903929151 g_VaildLpn:
2904029152 .space 4
29041
- .type p_blk_mode_table, %object
29042
- .size p_blk_mode_table, 4
29043
-p_blk_mode_table:
29044
- .space 4
2904529153 .type g_totle_read_page_count, %object
2904629154 .size g_totle_read_page_count, 4
2904729155 g_totle_read_page_count:
....@@ -29115,14 +29223,14 @@
2911529223 .size g_gc_superblock, 48
2911629224 g_gc_superblock:
2911729225 .space 48
29118
- .type g_all_blk_used_slc_mode, %object
29119
- .size g_all_blk_used_slc_mode, 4
29120
-g_all_blk_used_slc_mode:
29121
- .space 4
2912229226 .type g_sys_ext_data, %object
2912329227 .size g_sys_ext_data, 512
2912429228 g_sys_ext_data:
2912529229 .space 512
29230
+ .type g_all_blk_used_slc_mode, %object
29231
+ .size g_all_blk_used_slc_mode, 4
29232
+g_all_blk_used_slc_mode:
29233
+ .space 4
2912629234 .type g_gc_free_blk_threshold, %object
2912729235 .size g_gc_free_blk_threshold, 2
2912829236 g_gc_free_blk_threshold:
....@@ -29404,6 +29512,14 @@
2940429512 .size RK29_NANDC_REG_BASE, 4
2940529513 RK29_NANDC_REG_BASE:
2940629514 .space 4
29515
+ .type ftl_dma32_buffer_size, %object
29516
+ .size ftl_dma32_buffer_size, 4
29517
+ftl_dma32_buffer_size:
29518
+ .space 4
29519
+ .type ftl_dma32_buffer, %object
29520
+ .size ftl_dma32_buffer, 4
29521
+ftl_dma32_buffer:
29522
+ .space 4
2940729523 .type gFlashPageBuffer0, %object
2940829524 .size gFlashPageBuffer0, 4
2940929525 gFlashPageBuffer0:
....@@ -29465,11 +29581,11 @@
2946529581 .size gMultiPageReadEn, 1
2946629582 gMultiPageReadEn:
2946729583 .space 1
29468
- .space 2
2946929584 .type FbbtBlk, %object
2947029585 .size FbbtBlk, 16
2947129586 FbbtBlk:
2947229587 .space 16
29588
+ .space 2
2947329589 .type req_sys, %object
2947429590 .size req_sys, 36
2947529591 req_sys:
....@@ -29486,11 +29602,6 @@
2948629602 .size g_ect_tbl_power_up_flush, 2
2948729603 g_ect_tbl_power_up_flush:
2948829604 .space 2
29489
- .space 2
29490
- .type check_valid_page_count_table, %object
29491
- .size check_valid_page_count_table, 8192
29492
-check_valid_page_count_table:
29493
- .space 8192
2949429605 .type g_power_lost_ecc_error_blk, %object
2949529606 .size g_power_lost_ecc_error_blk, 2
2949629607 g_power_lost_ecc_error_blk:
....@@ -29498,6 +29609,7 @@
2949829609 .type g_power_lost_recovery_flag, %object
2949929610 .size g_power_lost_recovery_flag, 2
2950029611 g_power_lost_recovery_flag:
29612
+ .space 2
2950129613 .space 2
2950229614 .type g_recovery_page_num, %object
2950329615 .size g_recovery_page_num, 4
....@@ -29601,6 +29713,10 @@
2960129713 .size g_vendor, 4
2960229714 g_vendor:
2960329715 .space 4
29716
+ .type check_valid_page_count_table, %object
29717
+ .size check_valid_page_count_table, 8192
29718
+check_valid_page_count_table:
29719
+ .space 8192
2960429720 .type g_gc_refresh_block_temp_tbl, %object
2960529721 .size g_gc_refresh_block_temp_tbl, 34
2960629722 g_gc_refresh_block_temp_tbl:
....@@ -29630,3 +29746,419 @@
2963029746 .size gFlashSdrModeEn, 1
2963129747 gFlashSdrModeEn:
2963229748 .space 1
29749
+ .section .rodata.str1.1,"aMS",%progbits,1
29750
+.LC1:
29751
+ .ascii "FlashEraseBlocks pageAddr error %x\012\000"
29752
+.LC2:
29753
+ .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
29754
+ .ascii "\000"
29755
+.LC3:
29756
+ .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000"
29757
+.LC4:
29758
+ .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
29759
+ .ascii "\000"
29760
+.LC5:
29761
+ .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
29762
+.LC6:
29763
+ .ascii "FLASH INFO:\012\000"
29764
+.LC7:
29765
+ .ascii "FLASH ID: %x\012\000"
29766
+.LC8:
29767
+ .ascii "Device Capacity: %d MB\012\000"
29768
+.LC9:
29769
+ .ascii "FMWAIT: %x %x %x %x\012\000"
29770
+.LC10:
29771
+ .ascii "FTL INFO:\012\000"
29772
+.LC11:
29773
+ .ascii "g_MaxLpn = 0x%x\012\000"
29774
+.LC12:
29775
+ .ascii "g_VaildLpn = 0x%x\012\000"
29776
+.LC13:
29777
+ .ascii "read_page_count = 0x%x\012\000"
29778
+.LC14:
29779
+ .ascii "discard_page_count = 0x%x\012\000"
29780
+.LC15:
29781
+ .ascii "write_page_count = 0x%x\012\000"
29782
+.LC16:
29783
+ .ascii "cache_write_count = 0x%x\012\000"
29784
+.LC17:
29785
+ .ascii "l2p_write_count = 0x%x\012\000"
29786
+.LC18:
29787
+ .ascii "gc_page_count = 0x%x\012\000"
29788
+.LC19:
29789
+ .ascii "totle_write = %d MB\012\000"
29790
+.LC20:
29791
+ .ascii "totle_read = %d MB\012\000"
29792
+.LC21:
29793
+ .ascii "GSV = 0x%x\012\000"
29794
+.LC22:
29795
+ .ascii "GDV = 0x%x\012\000"
29796
+.LC23:
29797
+ .ascii "bad blk num = %d %d\012\000"
29798
+.LC24:
29799
+ .ascii "free_superblocks = 0x%x\012\000"
29800
+.LC25:
29801
+ .ascii "mlc_EC = 0x%x\012\000"
29802
+.LC26:
29803
+ .ascii "slc_EC = 0x%x\012\000"
29804
+.LC27:
29805
+ .ascii "avg_EC = 0x%x\012\000"
29806
+.LC28:
29807
+ .ascii "sys_EC = 0x%x\012\000"
29808
+.LC29:
29809
+ .ascii "max_EC = 0x%x\012\000"
29810
+.LC30:
29811
+ .ascii "min_EC = 0x%x\012\000"
29812
+.LC31:
29813
+ .ascii "PLT = 0x%x\012\000"
29814
+.LC32:
29815
+ .ascii "POT = 0x%x\012\000"
29816
+.LC33:
29817
+ .ascii "MaxSector = 0x%x\012\000"
29818
+.LC34:
29819
+ .ascii "init_sys_blks_pp = 0x%x\012\000"
29820
+.LC35:
29821
+ .ascii "sys_blks_pp = 0x%x\012\000"
29822
+.LC36:
29823
+ .ascii "free sysblock = 0x%x\012\000"
29824
+.LC37:
29825
+ .ascii "data_blks_pp = 0x%x\012\000"
29826
+.LC38:
29827
+ .ascii "data_op_blks_pp = 0x%x\012\000"
29828
+.LC39:
29829
+ .ascii "max_data_blks = 0x%x\012\000"
29830
+.LC40:
29831
+ .ascii "Sys.id = 0x%x\012\000"
29832
+.LC41:
29833
+ .ascii "Bbt.id = 0x%x\012\000"
29834
+.LC42:
29835
+ .ascii "ACT.page = 0x%x\012\000"
29836
+.LC43:
29837
+ .ascii "ACT.plane = 0x%x\012\000"
29838
+.LC44:
29839
+ .ascii "ACT.id = 0x%x\012\000"
29840
+.LC45:
29841
+ .ascii "ACT.mode = 0x%x\012\000"
29842
+.LC46:
29843
+ .ascii "ACT.a_pages = 0x%x\012\000"
29844
+.LC47:
29845
+ .ascii "ACT VPC = 0x%x\012\000"
29846
+.LC48:
29847
+ .ascii "BUF.page = 0x%x\012\000"
29848
+.LC49:
29849
+ .ascii "BUF.plane = 0x%x\012\000"
29850
+.LC50:
29851
+ .ascii "BUF.id = 0x%x\012\000"
29852
+.LC51:
29853
+ .ascii "BUF.mode = 0x%x\012\000"
29854
+.LC52:
29855
+ .ascii "BUF.a_pages = 0x%x\012\000"
29856
+.LC53:
29857
+ .ascii "BUF VPC = 0x%x\012\000"
29858
+.LC54:
29859
+ .ascii "TMP.page = 0x%x\012\000"
29860
+.LC55:
29861
+ .ascii "TMP.plane = 0x%x\012\000"
29862
+.LC56:
29863
+ .ascii "TMP.id = 0x%x\012\000"
29864
+.LC57:
29865
+ .ascii "TMP.mode = 0x%x\012\000"
29866
+.LC58:
29867
+ .ascii "TMP.a_pages = 0x%x\012\000"
29868
+.LC59:
29869
+ .ascii "GC.page = 0x%x\012\000"
29870
+.LC60:
29871
+ .ascii "GC.plane = 0x%x\012\000"
29872
+.LC61:
29873
+ .ascii "GC.id = 0x%x\012\000"
29874
+.LC62:
29875
+ .ascii "GC.mode = 0x%x\012\000"
29876
+.LC63:
29877
+ .ascii "GC.a_pages = 0x%x\012\000"
29878
+.LC64:
29879
+ .ascii "WR_CHK = 0x%x %x %x %x\012\000"
29880
+.LC65:
29881
+ .ascii "Read Err = 0x%x\012\000"
29882
+.LC66:
29883
+ .ascii "Prog Err = 0x%x\012\000"
29884
+.LC67:
29885
+ .ascii "gc_free_blk_th= 0x%x\012\000"
29886
+.LC68:
29887
+ .ascii "gc_merge_free_blk_th= 0x%x\012\000"
29888
+.LC69:
29889
+ .ascii "gc_skip_write_count= 0x%x\012\000"
29890
+.LC70:
29891
+ .ascii "gc_blk_index= 0x%x\012\000"
29892
+.LC71:
29893
+ .ascii "free min EC= 0x%x\012\000"
29894
+.LC72:
29895
+ .ascii "free max EC= 0x%x\012\000"
29896
+.LC73:
29897
+ .ascii "GC__SB VPC = 0x%x\012\000"
29898
+.LC74:
29899
+ .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
29900
+.LC75:
29901
+ .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
29902
+.LC76:
29903
+ .ascii "FTL version: 5.0.63 20210616\000"
29904
+.LC77:
29905
+ .ascii "%s\012\000"
29906
+.LC78:
29907
+ .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
29908
+ .ascii "\012\000"
29909
+.LC79:
29910
+ .ascii "FtlGcRefreshBlock 0x%x\012\000"
29911
+.LC80:
29912
+ .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000"
29913
+.LC81:
29914
+ .ascii "%s error allocating memory. return -1\012\000"
29915
+.LC82:
29916
+ .ascii "%s %p:0x%x:\000"
29917
+.LC83:
29918
+ .ascii "%x \000"
29919
+.LC84:
29920
+ .ascii "\000"
29921
+.LC85:
29922
+ .ascii "otp error! %d\000"
29923
+.LC86:
29924
+ .ascii "rr\000"
29925
+.LC87:
29926
+ .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012"
29927
+ .ascii "\000"
29928
+.LC88:
29929
+ .ascii "nandc:\000"
29930
+.LC89:
29931
+ .ascii "%d flReg.d32=%x %x\012\000"
29932
+.LC90:
29933
+ .ascii "sdr read ok %x ecc=%d\012\000"
29934
+.LC91:
29935
+ .ascii "sync para %d\012\000"
29936
+.LC92:
29937
+ .ascii "TOG mode Read error %x %x\012\000"
29938
+.LC93:
29939
+ .ascii "read retry status %x %x %x\012\000"
29940
+.LC94:
29941
+ .ascii "micron RR %d row=%x,count %d,status=%d\012\000"
29942
+.LC95:
29943
+ .ascii "samsung RR %d row=%x,count %d,status=%d\012\000"
29944
+.LC96:
29945
+ .ascii "ECC:%d\012\000"
29946
+.LC97:
29947
+ .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000"
29948
+.LC98:
29949
+ .ascii "FlashLoadPhyInfo fail %x!!\012\000"
29950
+.LC99:
29951
+ .ascii "Read pageadd=%x ecc=%x err=%x\012\000"
29952
+.LC100:
29953
+ .ascii "data:\000"
29954
+.LC101:
29955
+ .ascii "spare:\000"
29956
+.LC102:
29957
+ .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000"
29958
+.LC103:
29959
+ .ascii "FLFB:%d %d\012\000"
29960
+.LC104:
29961
+ .ascii "prog error: = %x\012\000"
29962
+.LC105:
29963
+ .ascii "prog read error: = %x\012\000"
29964
+.LC106:
29965
+ .ascii "prog read REFRESH: = %x\012\000"
29966
+.LC107:
29967
+ .ascii "prog read s error: = %x %x %x\012\000"
29968
+.LC108:
29969
+ .ascii "prog read d error: = %x %x %x\012\000"
29970
+.LC109:
29971
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012"
29972
+ .ascii "\000"
29973
+.LC110:
29974
+ .ascii "...%s enter...\012\000"
29975
+.LC111:
29976
+ .ascii "superBlkID = %x vpc=%x\012\000"
29977
+.LC112:
29978
+ .ascii "flashmode = %x pagenum = %x %x\012\000"
29979
+.LC113:
29980
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012"
29981
+ .ascii "\000"
29982
+.LC114:
29983
+ .ascii "blk = %x vpc=%x mode = %x\012\000"
29984
+.LC115:
29985
+ .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
29986
+ .ascii "%x\012\000"
29987
+.LC116:
29988
+ .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
29989
+ .ascii "%x\012\000"
29990
+.LC117:
29991
+ .ascii "ftl_scan_all_ppa blk %x page %x flag: %x\012\000"
29992
+.LC118:
29993
+ .ascii "ftl_scan_all_ppa blk %x page %x flag: %x .........."
29994
+ .ascii "..... is bad block\012\000"
29995
+.LC119:
29996
+ .ascii "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012"
29997
+ .ascii "\000"
29998
+.LC120:
29999
+ .ascii "%s finished\012\000"
30000
+.LC121:
30001
+ .ascii "FlashMakeFactorBbt %d\012\000"
30002
+.LC122:
30003
+ .ascii "bad block:%d %d\012\000"
30004
+.LC123:
30005
+ .ascii "FMFB:%d %d\012\000"
30006
+.LC124:
30007
+ .ascii "E:bad block:%d\012\000"
30008
+.LC125:
30009
+ .ascii "FMFB:Save %d %d\012\000"
30010
+.LC126:
30011
+ .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
30012
+.LC127:
30013
+ .ascii "FtlBbmTblFlush error:%x\012\000"
30014
+.LC128:
30015
+ .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
30016
+.LC129:
30017
+ .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
30018
+.LC130:
30019
+ .ascii "decrement_vpc_count %x = %d\012\000"
30020
+.LC131:
30021
+ .ascii "decrement_vpc_count %x = %d in free list\012\000"
30022
+.LC132:
30023
+ .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
30024
+.LC133:
30025
+ .ascii "page map lost: %x %x\012\000"
30026
+.LC134:
30027
+ .ascii "FtlMapWritePage error = %x\012\000"
30028
+.LC135:
30029
+ .ascii "FtlMapWritePage error = %x error count = %d\012\000"
30030
+.LC136:
30031
+ .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
30032
+.LC137:
30033
+ .ascii "no ect\000"
30034
+.LC138:
30035
+ .ascii "slc mode\000"
30036
+.LC139:
30037
+ .ascii "BBT:\000"
30038
+.LC140:
30039
+ .ascii "region_id = %x phyAddr = %x\012\000"
30040
+.LC141:
30041
+ .ascii "map_ppn:\000"
30042
+.LC142:
30043
+ .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
30044
+.LC143:
30045
+ .ascii "FtlCheckVpc2 %x = %x %x\012\000"
30046
+.LC144:
30047
+ .ascii "free blk vpc error %x = %x %x\012\000"
30048
+.LC145:
30049
+ .ascii "error_flag %x\012\000"
30050
+.LC146:
30051
+ .ascii "Ftlscanalldata = %x\012\000"
30052
+.LC147:
30053
+ .ascii "scan lpa = %x ppa= %x\012\000"
30054
+.LC148:
30055
+ .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
30056
+ .ascii "\000"
30057
+.LC149:
30058
+ .ascii "RSB refresh addr %x\012\000"
30059
+.LC150:
30060
+ .ascii "spuer block %x vpn is 0\012 \000"
30061
+.LC151:
30062
+ .ascii "g_recovery_ppa %x ver %x\012 \000"
30063
+.LC152:
30064
+ .ascii "FtlCheckVpc %x = %x %x\012\000"
30065
+.LC153:
30066
+ .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
30067
+.LC154:
30068
+ .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
30069
+.LC155:
30070
+ .ascii "GC des block %x done\012\000"
30071
+.LC156:
30072
+ .ascii "too many bad block = %d %d\012\000"
30073
+.LC157:
30074
+ .ascii "%d GC datablk = %x vpc %x %x\012\000"
30075
+.LC158:
30076
+ .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
30077
+.LC159:
30078
+ .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
30079
+.LC160:
30080
+ .ascii "rk_ftl_de_init %x\012\000"
30081
+.LC161:
30082
+ .ascii "...%s: no bad block mapping table, format device\012"
30083
+ .ascii "\000"
30084
+.LC162:
30085
+ .ascii "...%s FtlSysBlkInit error ,format device!\012\000"
30086
+.LC163:
30087
+ .ascii "FtlInit %x\012\000"
30088
+.LC164:
30089
+ .ascii "fix power lost blk = %x vpc=%x\012\000"
30090
+.LC165:
30091
+ .ascii "erase power lost blk = %x vpc=%x\012\000"
30092
+.LC166:
30093
+ .ascii "FtlWrite: lpa error:%x %x\012\000"
30094
+.LC167:
30095
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012"
30096
+ .ascii "\000"
30097
+.LC168:
30098
+ .ascii ":\000"
30099
+.LC169:
30100
+ .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
30101
+ .ascii "\000"
30102
+.LC170:
30103
+ .ascii "Mblk:\000"
30104
+.LC171:
30105
+ .ascii "L2P:\000"
30106
+.LC172:
30107
+ .ascii "L2PC:\000"
30108
+.LC173:
30109
+ .ascii "write_idblock fix data %x %x\012\000"
30110
+.LC174:
30111
+ .ascii "idblk:\000"
30112
+.LC175:
30113
+ .ascii "idb reverse %x %x\012\000"
30114
+.LC176:
30115
+ .ascii "write_idblock totle_sec %x %x %x %x\012\000"
30116
+.LC177:
30117
+ .ascii "IDBlockWriteData %x %x\012\000"
30118
+.LC178:
30119
+ .ascii "IDBlockWriteData %x %x ret= %x\012\000"
30120
+.LC179:
30121
+ .ascii "IdBlockReadData %x %x\012\000"
30122
+.LC180:
30123
+ .ascii "IdBlockReadData %x %x ret= %x\012\000"
30124
+.LC181:
30125
+ .ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x"
30126
+ .ascii "\012\000"
30127
+.LC182:
30128
+ .ascii "write\000"
30129
+.LC183:
30130
+ .ascii "read\000"
30131
+.LC184:
30132
+ .ascii "write_idblock error %d\012\000"
30133
+.LC185:
30134
+ .ascii "wl_lba %p %x %x %x\012\000"
30135
+.LC186:
30136
+ .ascii "RKNAND_GET_DRM_KEY\012\000"
30137
+.LC187:
30138
+ .ascii "rk_copy_from_user error\012\000"
30139
+.LC188:
30140
+ .ascii "RKNAND_STORE_DRM_KEY\012\000"
30141
+.LC189:
30142
+ .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000"
30143
+.LC190:
30144
+ .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000"
30145
+.LC191:
30146
+ .ascii "RKNAND_GET_SN_SECTOR\012\000"
30147
+.LC192:
30148
+ .ascii "RKNAND_LOADER_UNLOCK\012\000"
30149
+.LC193:
30150
+ .ascii "RKNAND_LOADER_STATUS\012\000"
30151
+.LC194:
30152
+ .ascii "RKNAND_LOADER_LOCK\012\000"
30153
+.LC195:
30154
+ .ascii "LockKey not match %d\012\000"
30155
+.LC196:
30156
+ .ascii "RKNAND_GET_VENDOR_SECTOR\012\000"
30157
+.LC197:
30158
+ .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000"
30159
+.LC198:
30160
+ .ascii "return ret = %lx\012\000"
30161
+.LC199:
30162
+ .ascii "secureBootEn check error\012\000"
30163
+.LC200:
30164
+ .ascii "\0013vendor storage %x,%x,%x\012\000"