summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYifeng Zhao <zyf@rock-chips.com>2018-07-04 18:12:22 +0800
committerTao Huang <huangtao@rock-chips.com>2018-07-06 15:28:57 +0800
commit0a0307e95cc8edfc1605415c582ebd060a9e0791 (patch)
treebf38fb8279af6753162654937be8ec243e70a39d
parent7afc0c7b4bb60ec50231a54ba31b4a24ef2cb2f4 (diff)
drivers: rk_nand: fix 2cs 3d mlc nand gc fail issue
bug: 1ppa = 2212a00, status = 0, 2d1db 2bc05 spare: 3a20ea 2d1dc 22bc05 0 1ppa = 2212a00, status = 1, 3b8ef 25fe52 spare: 3a6bfa 3c5d6 5fe53 2 1ppa = 2212a00, status = 0, 2d1db 2bc05 spare: 3a20ea 2d1dc 22bc05 0 1ppa = 2212a00, status = 1, 3b8ef 25fe52 spare: 3a6bfa 3c5d6 5fe53 2 Change-Id: I04fd61716bf12dfdd8afc0eb2f1a099c631119dc Signed-off-by: Yifeng Zhao <zyf@rock-chips.com>
-rw-r--r--drivers/rk_nand/rk_ftl_arm_v7.S16131
-rw-r--r--drivers/rk_nand/rk_ftlv5_arm64.S9928
-rw-r--r--drivers/rk_nand/rk_zftl_arm64.S5067
3 files changed, 16493 insertions, 14633 deletions
diff --git a/drivers/rk_nand/rk_ftl_arm_v7.S b/drivers/rk_nand/rk_ftl_arm_v7.S
index 48e6735fedd7..221ec458b70e 100644
--- a/drivers/rk_nand/rk_ftl_arm_v7.S
+++ b/drivers/rk_nand/rk_ftl_arm_v7.S
@@ -5,7 +5,7 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- * date: 2018-05-30
+ * date: 2018-07-03
*/
.arch armv7-a
.fpu softvfp
@@ -20,8 +20,8 @@
.file "rk_ftl_arm_v7.S"
.text
.align 2
- .type FlashGetReadRetryDefault.part.25, %function
-FlashGetReadRetryDefault.part.25:
+ .type FlashGetReadRetryDefault.part.27, %function
+FlashGetReadRetryDefault.part.27:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@@ -75,7 +75,7 @@ FlashGetReadRetryDefault.part.25:
.word .LANCHOR1
.word .LANCHOR1+45
.fnend
- .size FlashGetReadRetryDefault.part.25, .-FlashGetReadRetryDefault.part.25
+ .size FlashGetReadRetryDefault.part.27, .-FlashGetReadRetryDefault.part.27
.align 2
.global FlashMemCmp8
.type FlashMemCmp8, %function
@@ -1468,6 +1468,42 @@ FlashEraseSLc2KBlocks:
.fnend
.size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks
.align 2
+ .global micron_auto_read_calibration_config
+ .type micron_auto_read_calibration_config, %function
+micron_auto_read_calibration_config:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r4, r5, r6, lr}
+ .save {r4, r5, r6, lr}
+ mov r6, r1
+ mov r4, r0
+ bl NandcWaitFlashReady
+ ldr r3, .L206
+ mov r2, #239
+ mov r0, #200
+ add r4, r3, r4, asl #3
+ ldr r5, [r4, #864]
+ ldrb r4, [r4, #868] @ zero_extendqisi2
+ add r4, r4, #8
+ add r3, r5, r4, asl #8
+ str r2, [r3, #8]
+ mov r2, #150
+ str r2, [r3, #4]
+ bl NandcDelayns
+ str r6, [r5, r4, asl #8]
+ mov r3, #0
+ str r3, [r5, r4, asl #8]
+ str r3, [r5, r4, asl #8]
+ str r3, [r5, r4, asl #8]
+ ldmfd sp!, {r4, r5, r6, pc}
+.L207:
+ .align 2
+.L206:
+ .word .LANCHOR0
+ .fnend
+ .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config
+ .align 2
.global SandiskSetRRPara
.type SandiskSetRRPara, %function
SandiskSetRRPara:
@@ -1484,17 +1520,17 @@ SandiskSetRRPara:
mov r0, #200
mov r5, r1
bl NandcDelayns
- ldr r1, .L211
+ ldr r1, .L214
add r3, r5, r5, asl #2
mvn r6, #4
add r0, r1, r3
add r1, r1, #45
add r1, r1, r3
mov r2, #0
- ldr ip, .L211+4
+ ldr ip, .L214+4
mul r5, r6, r5
- b .L206
-.L209:
+ b .L209
+.L212:
ldrb r6, [ip, #3761] @ zero_extendqisi2
add r2, r2, #1
cmp r6, #67
@@ -1505,16 +1541,16 @@ SandiskSetRRPara:
add r1, r1, #1
ldrsb r6, [r6, #5]
str r6, [r4, #0]
-.L206:
+.L209:
ldrb r6, [ip, #3760] @ zero_extendqisi2
cmp r2, r6
- bcc .L209
+ bcc .L212
mov r0, #0
ldmfd sp!, {r4, r5, r6, lr}
b NandcWaitFlashReady
-.L212:
+.L215:
.align 2
-.L211:
+.L214:
.word .LANCHOR1
.word .LANCHOR0
.fnend
@@ -1526,7 +1562,7 @@ SandiskProgTestBadBlock:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L214
+ ldr r3, .L217
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
add r3, r3, r0, asl #3
@@ -1557,9 +1593,9 @@ SandiskProgTestBadBlock:
ldr r0, [r5, r6, asl #8]
and r0, r0, #1
ldmfd sp!, {r4, r5, r6, pc}
-.L215:
+.L218:
.align 2
-.L214:
+.L217:
.word .LANCHOR0
.fnend
.size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock
@@ -1570,13 +1606,13 @@ FlashReadSpare:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L217
+ ldr r3, .L220
mov ip, #0
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r6, r2
ldrb r2, [r3, #2901] @ zero_extendqisi2
- ldr r3, .L217+4
+ ldr r3, .L220+4
add r3, r3, r0, asl #3
mov r2, r2, asl #9
ldrb r5, [r3, #868] @ zero_extendqisi2
@@ -1599,9 +1635,9 @@ FlashReadSpare:
ldr r3, [r4, r5, asl #8]
strb r3, [r6, #0]
ldmfd sp!, {r4, r5, r6, pc}
-.L218:
+.L221:
.align 2
-.L217:
+.L220:
.word .LANCHOR1
.word .LANCHOR0
.fnend
@@ -1647,7 +1683,7 @@ FlashReset:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r4, r0
- ldr r3, .L221
+ ldr r3, .L224
add r3, r3, r0, asl #3
ldrb r5, [r3, #868] @ zero_extendqisi2
ldr r2, [r3, #864]
@@ -1661,9 +1697,9 @@ FlashReset:
mov r0, r4
ldmfd sp!, {r3, r4, r5, lr}
b NandcFlashDeCs
-.L222:
+.L225:
.align 2
-.L221:
+.L224:
.word .LANCHOR0
.fnend
.size FlashReset, .-FlashReset
@@ -1678,7 +1714,7 @@ FlashReadIDRaw:
mov r5, r1
mov r4, r0
bl FlashReset
- ldr r3, .L225
+ ldr r3, .L228
mov r0, r4
add r3, r3, r4, asl #3
ldrb r7, [r3, #868] @ zero_extendqisi2
@@ -1710,10 +1746,10 @@ FlashReadIDRaw:
sub r3, r2, #1
uxtb r3, r3
cmp r3, #253
- bhi .L223
+ bhi .L226
ldrb r1, [r5, #2] @ zero_extendqisi2
ldrb r3, [r5, #1] @ zero_extendqisi2
- ldr r0, .L225+4
+ ldr r0, .L228+4
str r1, [sp, #0]
ldrb r1, [r5, #3] @ zero_extendqisi2
str r1, [sp, #4]
@@ -1723,11 +1759,11 @@ FlashReadIDRaw:
str r1, [sp, #12]
add r1, r4, #1
bl printk
-.L223:
- ldmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, pc}
.L226:
+ ldmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, pc}
+.L229:
.align 2
-.L225:
+.L228:
.word .LANCHOR0
.word .LC2
.fnend
@@ -1742,14 +1778,14 @@ FlashSetInterfaceMode:
stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r4, #0
- ldr sl, .L241
+ ldr sl, .L244
mov r7, #239
- ldr r9, .L241+4
+ ldr r9, .L244+4
mov r1, r4
sub r8, sl, #864
mov r6, #128
mov r5, #1
-.L237:
+.L240:
mov r2, sl
ldrb lr, [r4, r9] @ zero_extendqisi2
ldr r3, [r2, r4]!
@@ -1758,60 +1794,60 @@ FlashSetInterfaceMode:
ldrb r2, [r2, #4] @ zero_extendqisi2
add r2, r2, #8
add ip, r3, r2, asl #8
- beq .L228
+ beq .L231
cmp lr, #173
cmpne lr, #44
- bne .L229
-.L228:
+ bne .L232
+.L231:
cmp r0, #1
ldrb fp, [r8, #3772] @ zero_extendqisi2
- bne .L230
+ bne .L233
tst fp, #1
- beq .L229
+ beq .L232
cmp lr, #173
str r7, [ip, #8]
streq r0, [ip, #4]
- beq .L240
+ beq .L243
cmp lr, #44
streq r0, [ip, #4]
strne r6, [ip, #4]
moveq ip, #5
strne r0, [r3, r2, asl #8]
- bne .L235
- b .L239
-.L230:
+ bne .L238
+ b .L242
+.L233:
tst fp, #4
- beq .L229
+ beq .L232
cmp lr, #173
str r7, [ip, #8]
streq r5, [ip, #4]
moveq ip, #32
- beq .L239
+ beq .L242
cmp lr, #44
strne r6, [ip, #4]
- bne .L240
+ bne .L243
str r5, [ip, #4]
mov ip, #35
-.L239:
+.L242:
str ip, [r3, r2, asl #8]
- b .L235
-.L240:
+ b .L238
+.L243:
str r1, [r3, r2, asl #8]
-.L235:
+.L238:
str r1, [r3, r2, asl #8]
str r1, [r3, r2, asl #8]
str r1, [r3, r2, asl #8]
-.L229:
+.L232:
add r4, r4, #8
cmp r4, #32
- bne .L237
+ bne .L240
mov r0, #0
bl NandcWaitFlashReady
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L242:
+.L245:
.align 2
-.L241:
+.L244:
.word .LANCHOR0+864
.word .LANCHOR0+2980
.fnend
@@ -1826,37 +1862,37 @@ ftl_flash_de_init:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r0, #0
- ldr r4, .L246
+ ldr r4, .L249
bl NandcWaitFlashReady
bl FlashSetReadRetryDefault
- ldr r3, .L246+4
+ ldr r3, .L249+4
ldr r2, [r4, #3776]
cmp r2, r3
- bne .L244
+ bne .L247
mov r0, #0
bl flash_enter_slc_mode
-.L244:
+.L247:
ldrb r3, [r4, #3780] @ zero_extendqisi2
- ldr r5, .L246
+ ldr r5, .L249
cmp r3, #0
- beq .L245
+ beq .L248
ldrb r3, [r5, #3772] @ zero_extendqisi2
tst r3, #1
- beq .L245
+ beq .L248
mov r0, #1
bl FlashSetInterfaceMode
mov r0, #1
bl NandcSetMode
mov r3, #0
strb r3, [r5, #3780]
-.L245:
+.L248:
ldr r3, [r4, #864]
mov r0, #0
str r0, [r3, #336]
ldmfd sp!, {r3, r4, r5, pc}
-.L247:
+.L250:
.align 2
-.L246:
+.L249:
.word .LANCHOR0
.word 1446522928
.fnend
@@ -1868,7 +1904,7 @@ FlashReadDpCmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L252
+ ldr r3, .L255
stmfd sp!, {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r7, r2
@@ -1883,7 +1919,7 @@ FlashReadDpCmd:
ldrb r2, [r3, #904] @ zero_extendqisi2
add r6, r1, r6, asl #8
str r2, [r6, #8]
- bne .L249
+ bne .L252
mov r8, #0
uxtb r2, r5
str r8, [r6, #4]
@@ -1899,8 +1935,8 @@ FlashReadDpCmd:
str r8, [r6, #8]
str r8, [r6, #4]
str r8, [r6, #4]
- b .L251
-.L249:
+ b .L254
+.L252:
uxtb r2, r5
str r2, [r6, #4]
mov r2, r5, lsr #8
@@ -1909,7 +1945,7 @@ FlashReadDpCmd:
str r2, [r6, #4]
ldrb r3, [r3, #905] @ zero_extendqisi2
str r3, [r6, #8]
-.L251:
+.L254:
uxtb r3, r7
mov r0, r4
str r3, [r6, #4]
@@ -1922,9 +1958,9 @@ FlashReadDpCmd:
str r3, [r6, #8]
ldmfd sp!, {r4, r5, r6, r7, r8, lr}
b FlashSetRandomizer
-.L253:
+.L256:
.align 2
-.L252:
+.L255:
.word .LANCHOR0
.fnend
.size FlashReadDpCmd, .-FlashReadDpCmd
@@ -1936,14 +1972,14 @@ NandcRandmzSel:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L255
+ ldr r3, .L258
add r3, r3, r0, asl #3
ldr r3, [r3, #864]
str r1, [r3, #336]
bx lr
-.L256:
+.L259:
.align 2
-.L255:
+.L258:
.word .LANCHOR0
.fnend
.size NandcRandmzSel, .-NandcRandmzSel
@@ -1960,36 +1996,36 @@ NandcTimeCfg:
mov r4, r0
mov r0, #0
bl rknand_get_clk_rate
- ldr r1, .L267
+ ldr r1, .L270
bl __aeabi_idiv
- ldr r3, .L267+4
+ ldr r3, .L270+4
ldr r3, [r3, #3012]
cmp r0, #250
movwgt r2, #8354
- bgt .L265
+ bgt .L268
cmp r0, #220
- bgt .L266
-.L260:
+ bgt .L269
+.L263:
cmp r0, #185
movwgt r2, #4226
- bgt .L265
+ bgt .L268
cmp r0, #160
movwgt r2, #4194
- bgt .L265
+ bgt .L268
cmp r4, #35
movwls r2, #4193
- bls .L265
+ bls .L268
cmp r4, #99
movwls r2, #4225
- bls .L265
-.L266:
+ bls .L268
+.L269:
movw r2, #8322
-.L265:
+.L268:
str r2, [r3, #4]
ldmfd sp!, {r4, pc}
-.L268:
+.L271:
.align 2
-.L267:
+.L270:
.word 1000000
.word .LANCHOR0
.fnend
@@ -2004,7 +2040,7 @@ NandcInit:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r2, #0
- ldr r4, .L271
+ ldr r4, .L274
mov r3, #1
mov r5, #0
str r0, [r4, #3012]
@@ -2042,7 +2078,7 @@ NandcInit:
movw r2, #8322
mov r0, #36864
str r2, [r3, #344]
- ldr r2, .L271+4
+ ldr r2, .L274+4
str r2, [r3, #304]
bl ftl_malloc
str r5, [r4, #3820]
@@ -2052,9 +2088,9 @@ NandcInit:
add r0, r0, #32768
str r0, [r4, #3800]
ldmfd sp!, {r3, r4, r5, pc}
-.L272:
+.L275:
.align 2
-.L271:
+.L274:
.word .LANCHOR0
.word 1710593
.fnend
@@ -2072,23 +2108,23 @@ FlashTimingCfg:
sub r3, r3, #33
cmp r0, r2
cmpne r3, #1
- bls .L274
+ bls .L277
movw r3, #4226
movw r2, #8322
cmp r0, r3
cmpne r0, r2
- bne .L275
-.L274:
- ldr r3, .L276
+ bne .L278
+.L277:
+ ldr r3, .L279
ldr r3, [r3, #3012]
str r0, [r3, #4]
-.L275:
- ldr r3, .L276+4
+.L278:
+ ldr r3, .L279+4
ldrb r0, [r3, #2913] @ zero_extendqisi2
b NandcTimeCfg
-.L277:
+.L280:
.align 2
-.L276:
+.L279:
.word .LANCHOR0
.word .LANCHOR1
.fnend
@@ -2100,7 +2136,7 @@ NandcGetTimeCfg:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr ip, .L279
+ ldr ip, .L282
stmfd sp!, {r4, lr}
.save {r4, lr}
ldr r4, [ip, #3012]
@@ -2119,9 +2155,9 @@ NandcGetTimeCfg:
orr r2, r2, r1, asl #16
str r2, [r3, #0]
ldmfd sp!, {r4, pc}
-.L280:
+.L283:
.align 2
-.L279:
+.L282:
.word .LANCHOR0
.fnend
.size NandcGetTimeCfg, .-NandcGetTimeCfg
@@ -2133,7 +2169,7 @@ NandcBchSel:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L286
+ ldr r3, .L289
mov r1, #1
ldr r2, [r3, #3012]
str r0, [r3, #3832]
@@ -2143,24 +2179,24 @@ NandcBchSel:
cmp r0, r1
bfi r3, r1, #8, #8
bfc r3, #18, #1
- beq .L285
-.L282:
+ beq .L288
+.L285:
cmp r0, #24
orreq r3, r3, #16
- beq .L283
+ beq .L286
cmp r0, #40
orr r3, r3, #262144
orr r3, r3, #16
- bne .L283
-.L285:
+ bne .L286
+.L288:
bfc r3, #4, #1
-.L283:
+.L286:
orr r3, r3, #1
str r3, [r2, #12]
bx lr
-.L287:
+.L290:
.align 2
-.L286:
+.L289:
.word .LANCHOR0
.fnend
.size NandcBchSel, .-NandcBchSel
@@ -2172,12 +2208,12 @@ FlashBchSel:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L289
+ ldr r3, .L292
strb r0, [r3, #3836]
b NandcBchSel
-.L290:
+.L293:
.align 2
-.L289:
+.L292:
.word .LANCHOR0
.fnend
.size FlashBchSel, .-FlashBchSel
@@ -2188,14 +2224,14 @@ ftl_flash_resume:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L296
+ ldr r3, .L299
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r4, #0
ldr r2, [r3, #3012]
ldr r1, [r3, #3016]
ldr r5, [r3, #3032]
- ldr r6, .L296+4
+ ldr r6, .L299+4
str r1, [r2, #0]
ldr r1, [r3, #3020]
ldr r2, [r3, #3012]
@@ -2211,22 +2247,22 @@ ftl_flash_resume:
ldr r3, [r3, #3044]
str r1, [r2, #336]
str r3, [r2, #344]
-.L293:
+.L296:
ldrb r3, [r6, r4, asl #3] @ zero_extendqisi2
sub r3, r3, #1
uxtb r3, r3
cmp r3, #253
- bhi .L292
+ bhi .L295
uxtb r0, r4
bl FlashReset
-.L292:
+.L295:
add r4, r4, #1
cmp r4, #4
- bne .L293
- ldr r4, .L296
+ bne .L296
+ ldr r4, .L299
ldrb r3, [r4, #3780] @ zero_extendqisi2
cmp r3, #0
- beq .L294
+ beq .L297
mov r0, #1
bl NandcSetMode
ldrb r0, [r4, #3772] @ zero_extendqisi2
@@ -2235,15 +2271,15 @@ ftl_flash_resume:
bl NandcSetMode
ubfx r0, r5, #8, #8
bl NandcSetDdrPara
-.L294:
- ldr r3, .L296
+.L297:
+ ldr r3, .L299
ldr r3, [r3, #3624]
ldrb r0, [r3, #20] @ zero_extendqisi2
ldmfd sp!, {r4, r5, r6, lr}
b FlashBchSel
-.L297:
+.L300:
.align 2
-.L296:
+.L299:
.word .LANCHOR0
.word .LANCHOR0+2980
.fnend
@@ -2299,11 +2335,11 @@ NandcIqrWaitFlashReady:
and r3, r3, #2
uxtb r3, r3
cmp r3, #0
- bne .L301
+ bne .L304
mov r0, r4
ldmfd sp!, {r4, lr}
b wait_for_nand_flash_ready
-.L301:
+.L304:
ldr r3, [r4, #368]
orr r3, r3, #2
str r3, [r4, #368]
@@ -2324,18 +2360,18 @@ FlashEraseBlocks:
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #28
sub sp, sp, #28
- ldr r5, .L322
+ ldr r5, .L325
mov r6, r0
str r1, [sp, #12]
mov r7, r2
ldrb r4, [r5, #852] @ zero_extendqisi2
cmp r4, #0
moveq r9, r5
- beq .L303
+ beq .L306
mov r1, r2
bl FlashEraseSLc2KBlocks
- b .L304
-.L312:
+ b .L307
+.L315:
mov r8, #36
rsb r3, r4, r7
mul r8, r8, r4
@@ -2353,17 +2389,17 @@ FlashEraseBlocks:
cmp r0, r3
mvncs r3, #0
strcs r3, [r6, r8]
- bcs .L306
+ bcs .L309
ldrb r3, [r5, #3837] @ zero_extendqisi2
cmp r3, #0
add r3, r9, r0, asl #4
ldr r3, [r3, #3636]
moveq sl, #0
cmp r3, #0
- beq .L308
+ beq .L311
uxtb r0, r0
bl FlashWaitCmdDone
-.L308:
+.L311:
ldr r2, [sp, #20]
mov r1, #0
cmp sl, #0
@@ -2385,15 +2421,15 @@ FlashEraseBlocks:
ldr r3, [sp, #12]
mov r0, r8
cmp r3, #1
- bne .L310
+ bne .L313
ldrb r3, [r5, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L310
+ beq .L313
bl flash_enter_slc_mode
- b .L311
-.L310:
+ b .L314
+.L313:
bl flash_exit_slc_mode
-.L311:
+.L314:
ldr r3, [sp, #20]
mov r0, r8
ldr r1, [sp, #16]
@@ -2409,59 +2445,59 @@ FlashEraseBlocks:
bl FlashEraseCmd
mov r0, r8
bl NandcFlashDeCs
-.L306:
+.L309:
add r4, r4, #1
-.L303:
+.L306:
cmp r4, r7
- bcc .L312
- ldr r5, .L322
+ bcc .L315
+ ldr r5, .L325
mov r4, #0
- ldr r8, .L322+4
+ ldr r8, .L325+4
ldr r0, [r5, #3012]
bl NandcIqrWaitFlashReady
- b .L313
-.L315:
+ b .L316
+.L318:
uxtb r0, r4
bl FlashWaitCmdDone
ldr r3, [sp, #12]
cmp r3, #1
- bne .L314
+ bne .L317
ldrb r3, [r5, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L314
+ beq .L317
ldrb r0, [r8, r4, asl #4] @ zero_extendqisi2
bl flash_exit_slc_mode
-.L314:
+.L317:
add r4, r4, #1
-.L313:
+.L316:
ldrb r2, [r5, #3762] @ zero_extendqisi2
- ldr r3, .L322
+ ldr r3, .L325
cmp r4, r2
- bcc .L315
+ bcc .L318
ldr r0, [r3, #3840]
cmp r0, #0
- beq .L304
+ beq .L307
ldrb r3, [r3, #2980] @ zero_extendqisi2
cmp r3, #69
moveq r3, #0
moveq r2, r3
- bne .L321
- b .L316
-.L317:
+ bne .L324
+ b .L319
+.L320:
add r3, r3, #1
str r2, [r6, #-36]
-.L316:
+.L319:
cmp r3, r7
add r6, r6, #36
- bne .L317
-.L321:
+ bne .L320
+.L324:
mov r0, #0
-.L304:
+.L307:
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L323:
+.L326:
.align 2
-.L322:
+.L325:
.word .LANCHOR0
.word .LANCHOR0+3628
.fnend
@@ -2494,7 +2530,7 @@ NandcSendDumpDataStart:
ldr r2, [r0, #16]
.pad #8
sub sp, sp, #8
- ldr r3, .L326
+ ldr r3, .L329
str r2, [sp, #4]
ldr r2, [sp, #4]
bfc r2, #2, #1
@@ -2506,9 +2542,9 @@ NandcSendDumpDataStart:
str r3, [r0, #8]
add sp, sp, #8
bx lr
-.L327:
+.L330:
.align 2
-.L326:
+.L329:
.word 538969130
.fnend
.size NandcSendDumpDataStart, .-NandcSendDumpDataStart
@@ -2522,12 +2558,12 @@ NandcSendDumpDataDone:
@ link register save eliminated.
.pad #8
sub sp, sp, #8
-.L329:
+.L332:
ldr r3, [r0, #8]
str r3, [sp, #4]
ldr r3, [sp, #4]
tst r3, #1048576
- beq .L329
+ beq .L332
add sp, sp, #8
bx lr
.fnend
@@ -2542,7 +2578,7 @@ NandcXferStart:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r6, r1
- ldr r1, .L344
+ ldr r1, .L347
mov r8, r2
mov r4, #0
.pad #20
@@ -2567,7 +2603,7 @@ NandcXferStart:
bfi r4, r3, #4, #1
ldr r3, [r1, #3788]
cmp r3, #3
- bls .L332
+ bls .L335
ldr r3, [r5, #16]
cmp r9, #0
cmpeq ip, #0
@@ -2575,9 +2611,9 @@ NandcXferStart:
ldr r3, [sp, #12]
bfc r3, #2, #1
str r3, [sp, #12]
- beq .L333
+ beq .L336
cmp r6, #0
- beq .L334
+ beq .L337
ldr r3, [r1, #3832]
mov r0, ip
cmp r3, #24
@@ -2588,8 +2624,8 @@ NandcXferStart:
str r3, [sp, #4]
mov r3, #0
mov r2, r3
- b .L336
-.L339:
+ b .L339
+.L342:
cmp ip, #0
mov lr, r3, lsr #2
add r2, r2, #1
@@ -2603,11 +2639,11 @@ NandcXferStart:
strne sl, [fp, lr, asl #2]
ldr lr, [sp, #0]
add r3, r3, lr
-.L336:
+.L339:
ldr sl, [sp, #4]
cmp r2, sl
- bcc .L339
-.L334:
+ bcc .L342
+.L337:
mov r0, r5
add r8, r8, #1
bl rk_nandc_xfer_irq_flag_init
@@ -2615,7 +2651,7 @@ NandcXferStart:
mov r8, r8, asr #1
cmp r9, #0
bfi r4, r8, #22, #6
- ldr r8, .L344
+ ldr r8, .L347
orr r3, r3, #1
str r3, [r5, #368]
ldr r3, [r5, #364]
@@ -2667,19 +2703,19 @@ NandcXferStart:
ldr r3, [sp, #12]
orr r3, r3, #1
str r3, [sp, #12]
-.L333:
+.L336:
ldr r3, [sp, #12]
str r3, [r5, #16]
-.L332:
+.L335:
str r7, [r5, #12]
str r4, [r5, #8]
orr r4, r4, #4
str r4, [r5, #8]
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L345:
+.L348:
.align 2
-.L344:
+.L347:
.word .LANCHOR0
.fnend
.size NandcXferStart, .-NandcXferStart
@@ -2698,14 +2734,14 @@ NandcCopy1KB:
mov r4, r0
ldr r6, [sp, #16]
add r2, r2, r5, asl #9
- bne .L347
+ bne .L350
cmp r3, #0
- beq .L348
+ beq .L351
mov r0, r2
mov r1, r3
mov r2, #1024
bl memcpy
-.L348:
+.L351:
cmp r6, #0
ldmeqfd sp!, {r4, r5, r6, pc}
ldrb r3, [r6, #2] @ zero_extendqisi2
@@ -2723,14 +2759,14 @@ NandcCopy1KB:
add r5, r5, #128
str r3, [r4, r5, asl #2]
ldmfd sp!, {r4, r5, r6, pc}
-.L347:
+.L350:
cmp r3, #0
- beq .L350
+ beq .L353
mov r1, r2
mov r0, r3
mov r2, #1024
bl memcpy
-.L350:
+.L353:
cmp r6, #0
ldmeqfd sp!, {r4, r5, r6, pc}
mov r5, r5, lsr #1
@@ -2759,14 +2795,14 @@ Ftl_log2:
@ link register save eliminated.
mov r2, #1
mov r3, #0
- b .L352
-.L353:
+ b .L355
+.L356:
add r3, r3, #1
mov r2, r2, asl #1
uxth r3, r3
-.L352:
+.L355:
cmp r2, r0
- bls .L353
+ bls .L356
sub r3, r3, #1
uxth r0, r3
bx lr
@@ -2791,7 +2827,7 @@ FtlSysBlkNumInit:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L358
+ ldr r3, .L361
movw r2, #3848
cmp r0, #23
movw r1, #3858
@@ -2809,9 +2845,9 @@ FtlSysBlkNumInit:
rsb r2, r2, r1
str r2, [r3, #3860]
bx lr
-.L359:
+.L362:
.align 2
-.L358:
+.L361:
.word .LANCHOR0
.fnend
.size FtlSysBlkNumInit, .-FtlSysBlkNumInit
@@ -2825,7 +2861,7 @@ FtlConstantsInit:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
movw r2, #3868
- ldr r3, .L377
+ ldr r3, .L380
mov r4, r0
ldrh lr, [r0, #8]
.pad #20
@@ -2841,17 +2877,17 @@ FtlConstantsInit:
movw r2, #3858
strh r6, [r3, r2] @ movhi
mov r3, #0
- ldr r2, .L377+4
-.L361:
+ ldr r2, .L380+4
+.L364:
strb r3, [r3, r2]
add r3, r3, #1
cmp r3, #32
- bne .L361
+ bne .L364
ldrh r2, [r4, #14]
ldrh r3, [r4, #20]
cmp r3, r2, lsr #8
- bcs .L362
- ldr r2, .L377+4
+ bcs .L365
+ ldr r2, .L380+4
sub ip, r1, #1
uxtb r7, r0
mov r3, #0
@@ -2861,22 +2897,22 @@ FtlConstantsInit:
mov r8, r7, asl #1
uxtb r8, r8
str ip, [sp, #12]
- b .L363
-.L364:
+ b .L366
+.L367:
strb ip, [r9, r2]
add fp, ip, r7
add ip, ip, r8
add r5, r5, #1
strb fp, [sl, r2]
uxtb ip, ip
-.L366:
+.L369:
cmp r5, r1
add r2, r2, r0
- bcc .L364
+ bcc .L367
add r3, r3, #1
-.L363:
+.L366:
cmp r3, r0
- bcs .L365
+ bcs .L368
ldr fp, [sp, #8]
mov r2, #0
uxtb ip, r3
@@ -2884,22 +2920,22 @@ FtlConstantsInit:
add r9, fp, r3
ldr fp, [sp, #12]
add sl, fp, r3
- b .L366
-.L365:
- ldr r3, .L377
+ b .L369
+.L368:
+ ldr r3, .L380
movw r2, #3870
mov r1, r1, asl #1
mov r6, r6, lsr #1
strh r1, [r3, r2] @ movhi
movw r2, #3858
strh r6, [r3, r2] @ movhi
-.L362:
- ldr r3, .L377
+.L365:
+ ldr r3, .L380
movw r2, #3906
cmp lr, #1
mov r1, #5
mov ip, #0
- ldr sl, .L377
+ ldr sl, .L380
ldrb r8, [r3, #852] @ zero_extendqisi2
strh r1, [r3, r2] @ movhi
movw r1, #3908
@@ -2909,7 +2945,7 @@ FtlConstantsInit:
strh ip, [r3, r1] @ movhi
mov r1, #4352
strh r1, [r3, r2] @ movhi
- ldrne r3, .L377
+ ldrne r3, .L380
movne r1, #384
strneh r1, [r3, r2] @ movhi
movw r3, #3870
@@ -2980,8 +3016,8 @@ FtlConstantsInit:
uxth r0, r0
strh r0, [r4, r3] @ movhi
cmp r0, #4
- ldr r4, .L377
- ldrls r2, .L377
+ ldr r4, .L380
+ ldrls r2, .L380
movls r1, #4
strlsh r1, [r2, r3] @ movhi
cmp r8, #0
@@ -3005,10 +3041,10 @@ FtlConstantsInit:
ldrh r0, [r4, r3]
bl __aeabi_uidiv
cmp r5, #1
- ldreq r3, .L377
+ ldreq r3, .L380
uxtah r6, r6, r0
str r6, [r4, #3844]
- ldr r4, .L377
+ ldr r4, .L380
addeq r6, r6, #4
streq r6, [r3, #3844]
ldr r0, [r4, #3844]
@@ -3051,12 +3087,12 @@ FtlConstantsInit:
addne r1, r1, #5
strneh r0, [r4, r3] @ movhi
strne r1, [r4, #3944]
- bne .L374
-.L373:
+ bne .L377
+.L376:
cmp r2, #7
movls r3, #8
strls r3, [r4, #3944]
-.L374:
+.L377:
movw r3, #3960
mov r2, #0
strh r2, [r4, r3] @ movhi
@@ -3068,14 +3104,14 @@ FtlConstantsInit:
add r2, r2, #52
add r6, r2, r6, asl #2
cmp r6, r5, asl #9
- ldrcc r2, .L377
+ ldrcc r2, .L380
movcc r1, #1
strcch r1, [r2, r3] @ movhi
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L378:
+.L381:
.align 2
-.L377:
+.L380:
.word .LANCHOR0
.word .LANCHOR0+3874
.fnend
@@ -3088,36 +3124,36 @@ IsBlkInVendorPart:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L386
+ ldr r3, .L389
movw r2, #3962
ldrh r2, [r3, r2]
cmp r2, #0
- beq .L384
+ beq .L387
mov r2, #3936
ldrh r1, [r3, r2]
ldr r2, [r3, #3964]
mov r3, #0
- b .L381
-.L383:
+ b .L384
+.L386:
ldrh ip, [r2], #2
cmp ip, r0
- beq .L385
+ beq .L388
add r3, r3, #1
uxth r3, r3
-.L381:
+.L384:
cmp r3, r1
- bne .L383
+ bne .L386
mov r0, #0
bx lr
-.L385:
+.L388:
mov r0, #1
bx lr
-.L384:
+.L387:
mov r0, r2
bx lr
-.L387:
+.L390:
.align 2
-.L386:
+.L389:
.word .LANCHOR0
.fnend
.size IsBlkInVendorPart, .-IsBlkInVendorPart
@@ -3128,36 +3164,36 @@ FtlCacheMetchLpa:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L396
+ ldr r2, .L399
stmfd sp!, {r4, lr}
.save {r4, lr}
ldr r3, [r2, #3968]
cmp r3, #0
- beq .L393
+ beq .L396
ldr ip, [r2, #3972]
mov r2, #0
-.L392:
+.L395:
ldr r4, [ip, #16]
cmp r4, r0
- bcc .L390
+ bcc .L393
cmp r4, r1
- bls .L394
-.L390:
+ bls .L397
+.L393:
add r2, r2, #1
add ip, ip, #36
cmp r2, r3
- bne .L392
+ bne .L395
mov r0, #0
ldmfd sp!, {r4, pc}
-.L394:
+.L397:
mov r0, #1
ldmfd sp!, {r4, pc}
-.L393:
+.L396:
mov r0, r3
ldmfd sp!, {r4, pc}
-.L397:
+.L400:
.align 2
-.L396:
+.L399:
.word .LANCHOR0
.fnend
.size FtlCacheMetchLpa, .-FtlCacheMetchLpa
@@ -3169,12 +3205,12 @@ FtlGetCap:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L399
+ ldr r3, .L402
ldr r0, [r3, #3956]
bx lr
-.L400:
+.L403:
.align 2
-.L399:
+.L402:
.word .LANCHOR0
.fnend
.size FtlGetCap, .-FtlGetCap
@@ -3186,12 +3222,12 @@ ftl_get_density:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L402
+ ldr r3, .L405
ldr r0, [r3, #3956]
bx lr
-.L403:
+.L406:
.align 2
-.L402:
+.L405:
.word .LANCHOR0
.fnend
.size ftl_get_density, .-ftl_get_density
@@ -3203,12 +3239,12 @@ FtlGetLpn:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L405
+ ldr r3, .L408
ldr r0, [r3, #3976]
bx lr
-.L406:
+.L409:
.align 2
-.L405:
+.L408:
.word .LANCHOR0
.fnend
.size FtlGetLpn, .-FtlGetLpn
@@ -3222,7 +3258,7 @@ FtlBbmMapBadBlock:
stmfd sp!, {r0, r1, r4, r5, r6, lr}
.save {r0, r1, r4, r5, r6, lr}
movw r3, #3912
- ldr r4, .L408
+ ldr r4, .L411
mov r5, r0
ldrh r6, [r4, r3]
mov r1, r6
@@ -3240,7 +3276,7 @@ FtlBbmMapBadBlock:
str r1, [r0, ip, asl #2]
str r1, [sp, #0]
mov r1, r5
- ldr r0, .L408+4
+ ldr r0, .L411+4
bl printk
movw r3, #3986
ldrh r2, [r4, r3]
@@ -3248,9 +3284,9 @@ FtlBbmMapBadBlock:
add r2, r2, r6
strh r2, [r4, r3] @ movhi
ldmfd sp!, {r2, r3, r4, r5, r6, pc}
-.L409:
+.L412:
.align 2
-.L408:
+.L411:
.word .LANCHOR0
.word .LC3
.fnend
@@ -3266,7 +3302,7 @@ FtlBbmIsBadBlock:
stmfd sp!, {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
movw r3, #3912
- ldr r5, .L411
+ ldr r5, .L414
mov r7, r0
ldrh r6, [r5, r3]
mov r1, r6
@@ -3284,9 +3320,9 @@ FtlBbmIsBadBlock:
mov r0, r0, lsr r4
and r0, r0, #1
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L412:
+.L415:
.align 2
-.L411:
+.L414:
.word .LANCHOR0
.fnend
.size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
@@ -3312,11 +3348,11 @@ FtlBbtCalcTotleCnt:
.save {r4, r5, r6, r7, r8, lr}
mov r4, #0
mov r5, r4
- ldr r6, .L418
+ ldr r6, .L421
movw r8, #3912
movw r7, #3870
- b .L415
-.L417:
+ b .L418
+.L420:
mov r0, r5
add r5, r5, #1
bl FtlBbmIsBadBlock
@@ -3324,17 +3360,17 @@ FtlBbtCalcTotleCnt:
cmp r0, #0
addne r4, r4, #1
uxthne r4, r4
-.L415:
+.L418:
ldrh r3, [r6, r8]
ldrh r2, [r6, r7]
mul r3, r2, r3
cmp r5, r3
- blt .L417
+ blt .L420
mov r0, r4
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L419:
+.L422:
.align 2
-.L418:
+.L421:
.word .LANCHOR0
.fnend
.size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
@@ -3348,7 +3384,7 @@ V2P_block:
stmfd sp!, {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mov r3, #3872
- ldr r5, .L421
+ ldr r5, .L424
mov r7, r1
mov r6, r0
ldrh r4, [r5, r3]
@@ -3364,9 +3400,9 @@ V2P_block:
add r1, r5, r1
uxth r0, r1
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L422:
+.L425:
.align 2
-.L421:
+.L424:
.word .LANCHOR0
.fnend
.size V2P_block, .-V2P_block
@@ -3377,7 +3413,7 @@ P2V_plane:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L424
+ ldr r3, .L427
mov r2, #3872
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
@@ -3393,9 +3429,9 @@ P2V_plane:
add r1, r5, r1
uxth r0, r1
ldmfd sp!, {r4, r5, r6, pc}
-.L425:
+.L428:
.align 2
-.L424:
+.L427:
.word .LANCHOR0
.fnend
.size P2V_plane, .-P2V_plane
@@ -3409,7 +3445,7 @@ P2V_block_in_plane:
stmfd sp!, {r4, lr}
.save {r4, lr}
movw r3, #3912
- ldr r4, .L427
+ ldr r4, .L430
ldrh r1, [r4, r3]
bl __aeabi_uidivmod
mov r3, #3872
@@ -3418,13 +3454,66 @@ P2V_block_in_plane:
bl __aeabi_uidiv
uxth r0, r0
ldmfd sp!, {r4, pc}
-.L428:
+.L431:
.align 2
-.L427:
+.L430:
.word .LANCHOR0
.fnend
.size P2V_block_in_plane, .-P2V_block_in_plane
.align 2
+ .type FtlFreeSysBlkQueueIn.part.5, %function
+FtlFreeSysBlkQueueIn.part.5:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ cmp r1, #0
+ stmfd sp!, {r4, r5, r6, lr}
+ .save {r4, r5, r6, lr}
+ mov r5, r0
+ beq .L433
+ ldr r4, .L434
+ ldr r3, [r4, #4040]
+ cmp r3, #0
+ bne .L433
+ bl P2V_block_in_plane
+ mov r1, #1
+ mov r3, r5, asl #10
+ mov r2, r1
+ mov r6, r0
+ ldr r0, [r4, #4044]
+ mov r6, r6, asl #1
+ str r3, [r0, #4]
+ bl FlashEraseBlocks
+ ldr r3, [r4, #4048]
+ ldrh r2, [r3, r6]
+ add r2, r2, #1
+ strh r2, [r3, r6] @ movhi
+ ldr r3, [r4, #4052]
+ add r3, r3, #1
+ str r3, [r4, #4052]
+.L433:
+ ldr r3, .L434
+ movw r2, #4062
+ movw r0, #4056
+ ldrh r1, [r3, r2]
+ add r1, r1, #1
+ strh r1, [r3, r2] @ movhi
+ movw r2, #4060
+ ldrh r1, [r3, r2]
+ add ip, r1, #4
+ add r1, r1, #1
+ bic r1, r1, #64512
+ add ip, r3, ip, asl #1
+ strh r5, [ip, r0] @ movhi
+ strh r1, [r3, r2] @ movhi
+ ldmfd sp!, {r4, r5, r6, pc}
+.L435:
+ .align 2
+.L434:
+ .word .LANCHOR0
+ .fnend
+ .size FtlFreeSysBlkQueueIn.part.5, .-FtlFreeSysBlkQueueIn.part.5
+ .align 2
.global ftl_cmp_data_ver
.type ftl_cmp_data_ver, %function
ftl_cmp_data_ver:
@@ -3433,13 +3522,13 @@ ftl_cmp_data_ver:
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
cmp r0, r1
- bls .L430
+ bls .L437
rsb r0, r1, r0
cmp r0, #-2147483648
movhi r0, #0
movls r0, #1
bx lr
-.L430:
+.L437:
rsb r0, r0, r1
cmp r0, #-2147483648
movls r0, #0
@@ -3455,15 +3544,15 @@ FtlFreeSysBlkQueueEmpty:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L433
- movw r3, #4046
+ ldr r2, .L440
+ movw r3, #4062
ldrh r0, [r2, r3]
rsbs r0, r0, #1
movcc r0, #0
bx lr
-.L434:
+.L441:
.align 2
-.L433:
+.L440:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
@@ -3475,16 +3564,16 @@ FtlFreeSysBlkQueueFull:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L436
- movw r3, #4046
+ ldr r2, .L443
+ movw r3, #4062
ldrh r0, [r2, r3]
sub r2, r0, #1024
rsbs r0, r2, #0
adc r0, r0, r2
bx lr
-.L437:
+.L444:
.align 2
-.L436:
+.L443:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
@@ -3495,57 +3584,22 @@ FtlFreeSysBlkQueueIn:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L441
- movw r3, #4046
- stmfd sp!, {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
- mov r5, r0
+ @ link register save eliminated.
+ sub r2, r0, #1
+ movw r3, #65533
+ uxth r2, r2
+ cmp r2, r3
+ bxhi lr
+ ldr r2, .L447
+ movw r3, #4062
ldrh r3, [r2, r3]
cmp r3, #1024
- ldmeqfd sp!, {r4, r5, r6, pc}
- cmp r1, #0
- beq .L440
- ldr r4, .L441+4
- ldr r3, [r4, #-2088]
- cmp r3, #0
- bne .L440
- bl P2V_block_in_plane
- mov r1, #1
- mov r3, r5, asl #10
- mov r2, r1
- mov r6, r0
- ldr r0, [r4, #-2084]
- mov r6, r6, asl #1
- str r3, [r0, #4]
- bl FlashEraseBlocks
- ldr r3, [r4, #-2080]
- ldrh r2, [r3, r6]
- add r2, r2, #1
- strh r2, [r3, r6] @ movhi
- ldr r3, [r4, #-2076]
- add r3, r3, #1
- str r3, [r4, #-2076]
-.L440:
- ldr r3, .L441
- movw r2, #4046
- movw r0, #4040
- ldrh r1, [r3, r2]
- add r1, r1, #1
- strh r1, [r3, r2] @ movhi
- movw r2, #4044
- ldrh r1, [r3, r2]
- add ip, r1, #4
- add r1, r1, #1
- bic r1, r1, #64512
- add ip, r3, ip, asl #1
- strh r5, [ip, r0] @ movhi
- strh r1, [r3, r2] @ movhi
- ldmfd sp!, {r4, r5, r6, pc}
-.L442:
+ bxeq lr
+ b FtlFreeSysBlkQueueIn.part.5
+.L448:
.align 2
-.L441:
+.L447:
.word .LANCHOR0
- .word .LANCHOR2
.fnend
.size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
.align 2
@@ -3555,46 +3609,50 @@ FtlFreeSysBLkSort:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L446
- mov r0, #0
- ldr r2, .L446+4
- ldr r1, .L446+8
+ ldr r3, .L453
+ ldr r2, .L453+4
+ ldr r1, .L453+8
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
ldrh r4, [r2, r3]
- movw r3, #4042
+ movw r3, #4062
+ ldrh r3, [r1, r3]
+ and r4, r4, #31
+ cmp r3, #0
+ ldmeqfd sp!, {r4, r5, pc}
+ movw r3, #4058
+ mov r0, #0
ldrh r2, [r1, r3]
add r3, r3, #2
- and r4, r4, #31
ldrh r3, [r1, r3]
- b .L444
-.L445:
+ b .L451
+.L452:
add ip, r1, r2, asl #1
add r2, r2, #1
- add ip, ip, #4048
+ add ip, ip, #4064
add r0, r0, #1
mov r2, r2, asl #22
ldrh r5, [ip, #0]
add ip, r1, r3, asl #1
add r3, r3, #1
- add ip, ip, #4048
+ add ip, ip, #4064
mov r2, r2, lsr #22
uxth r0, r0
mov r3, r3, asl #22
strh r5, [ip, #0] @ movhi
mov r3, r3, lsr #22
-.L444:
+.L451:
cmp r0, r4
- ldr ip, .L446+8
- blt .L445
- movw r1, #4042
+ ldr ip, .L453+8
+ blt .L452
+ movw r1, #4058
strh r2, [ip, r1] @ movhi
- movw r2, #4044
+ movw r2, #4060
strh r3, [ip, r2] @ movhi
ldmfd sp!, {r4, r5, pc}
-.L447:
+.L454:
.align 2
-.L446:
+.L453:
.word -2044
.word .LANCHOR2
.word .LANCHOR0
@@ -3607,31 +3665,31 @@ remove_from_free_sys_Queue:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L454
- movw r2, #4046
+ ldr r3, .L461
+ movw r2, #4062
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r1, r0
ldrh r0, [r3, r2]
cmp r0, #0
ldmeqfd sp!, {r4, r5, r6, pc}
- movw r2, #4042
+ movw r2, #4058
mov r5, #0
ldrh r2, [r3, r2]
- b .L450
-.L452:
+ b .L457
+.L459:
add ip, r5, r2
- ldr r4, .L454
- movw r6, #4040
+ ldr r4, .L461
+ movw r6, #4056
mov ip, ip, asl #22
add ip, r3, ip, lsr #21
- add ip, ip, #4048
+ add ip, ip, #4064
ldrh ip, [ip, #0]
cmp ip, r1
- bne .L451
- ldr r0, .L454+4
+ bne .L458
+ ldr r0, .L461+4
bl printk
- movw r2, #4042
+ movw r2, #4058
ldrh r3, [r4, r2]
mov r0, #1
add r1, r3, #4
@@ -3645,21 +3703,21 @@ remove_from_free_sys_Queue:
add r5, r5, #8
strh r1, [r5, r6] @ movhi
strh r3, [r4, r2] @ movhi
- movw r3, #4046
+ movw r3, #4062
ldrh r2, [r4, r3]
sub r2, r2, #1
strh r2, [r4, r3] @ movhi
ldmfd sp!, {r4, r5, r6, pc}
-.L451:
+.L458:
add r5, r5, #1
-.L450:
+.L457:
cmp r5, r0
- bcc .L452
+ bcc .L459
mov r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L455:
+.L462:
.align 2
-.L454:
+.L461:
.word .LANCHOR0
.word .LC4
.fnend
@@ -3671,76 +3729,76 @@ FtlFreeSysBlkQueueOut:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- .save {r4, r5, r6, r7, r8, r9, sl, lr}
- movw r7, #4046
- ldr r4, .L463
- movw r8, #4042
-.L457:
- ldrh r1, [r4, r7]
+ stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
+ .save {r3, r4, r5, r6, r7, r8, sl, lr}
+ movw r6, #4062
+ ldr r4, .L470
+ movw r7, #4058
+.L464:
+ ldrh r1, [r4, r6]
cmp r1, #0
- beq .L458
- ldr r9, .L463+4
+ beq .L465
+ ldrh r3, [r4, r7]
sub r1, r1, #1
- ldrh r3, [r4, r8]
- ldr r6, [r9, #-2088]
+ ldr sl, [r4, #4040]
add r2, r4, r3, asl #1
+ cmp sl, #0
+ add r2, r2, #4064
add r3, r3, #1
- add r2, r2, #4048
- cmp r6, #0
bic r3, r3, #64512
ldrh r5, [r2, #0]
- strh r1, [r4, r7] @ movhi
- strh r3, [r4, r8] @ movhi
- bne .L459
+ strh r1, [r4, r6] @ movhi
+ strh r3, [r4, r7] @ movhi
+ bne .L466
mov r0, r5
bl P2V_block_in_plane
mov r3, r5, asl #10
- mov sl, r0
- ldr r0, [r9, #-2084]
+ mov r8, r0
+ ldr r0, [r4, #4044]
str r3, [r0, #4]
ldrb r3, [r4, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L460
- mov r1, r6
+ beq .L467
+ mov r1, sl
mov r2, #1
bl FlashEraseBlocks
-.L460:
- ldr r6, .L463+4
+.L467:
mov r1, #1
+ ldr r0, [r4, #4044]
mov r2, r1
- mov sl, sl, asl #1
- ldr r0, [r6, #-2084]
+ mov r8, r8, asl #1
bl FlashEraseBlocks
- ldr r3, [r6, #-2080]
- ldrh r2, [r3, sl]
+ ldr r3, [r4, #4048]
+ ldrh r2, [r3, r8]
add r2, r2, #1
- strh r2, [r3, sl] @ movhi
- ldr r3, [r6, #-2076]
+ strh r2, [r3, r8] @ movhi
+ ldr r3, [r4, #4052]
add r3, r3, #1
- str r3, [r6, #-2076]
- b .L459
-.L458:
- ldr r0, .L463+8
+ str r3, [r4, #4052]
+ b .L466
+.L465:
+ ldr r0, .L470+4
bl printk
-.L461:
- b .L461
-.L459:
- cmp r5, #0
- bne .L462
+.L468:
+ b .L468
+.L466:
+ sub r2, r5, #1
+ movw r3, #65533
+ uxth r2, r2
+ cmp r2, r3
+ bls .L469
mov r1, r5
- ldrh r2, [r4, r7]
- ldr r0, .L463+12
+ ldrh r2, [r4, r6]
+ ldr r0, .L470+8
bl printk
- b .L457
-.L462:
+ b .L464
+.L469:
mov r0, r5
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L464:
+ ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
+.L471:
.align 2
-.L463:
+.L470:
.word .LANCHOR0
- .word .LANCHOR2
.word .LC5
.word .LC6
.fnend
@@ -3752,7 +3810,7 @@ insert_data_list:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L480
+ ldr r2, .L487
mov r3, #3856
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
@@ -3760,49 +3818,49 @@ insert_data_list:
sub sp, sp, #20
ldrh r3, [r2, r3]
cmp r3, r0
- bls .L466
- ldr r1, .L480+4
+ bls .L473
+ ldr r1, .L487+4
mov ip, #6
mul ip, ip, r0
mvn r6, #0
ldr r4, [r1, #-2024]
- mov r5, r1
+ mov r8, r1
add r2, r4, ip
strh r6, [r2, #2] @ movhi
strh r6, [r4, ip] @ movhi
ldr r3, [r1, #-2020]
cmp r3, #0
- beq .L479
-.L467:
+ beq .L486
+.L474:
ldr r7, [r1, #-2016]
- mov r8, r0, asl #1
+ mov r5, r0, asl #1
ldrh r1, [r2, #4]
- ldr r9, .L480
- ldrh sl, [r7, r8]
+ ldr fp, [r8, #-2024]
+ ldrh sl, [r7, r5]
cmp r1, #0
- ldr fp, [r5, #-2080]
+ ldr r8, .L487+8
mulne r6, r1, sl
- ldr r1, [r5, #-2024]
- ldr sl, .L480+8
- mov r5, #0
- add r8, fp, r8
- str r8, [sp, #12]
- str r1, [sp, #4]
- rsb r1, r1, r3
- mov r1, r1, asr #1
- mul r1, sl, r1
+ rsb r1, fp, r3
mov sl, #3856
- ldrh sl, [r9, sl]
- str sl, [sp, #8]
+ mov r1, r1, asr #1
+ mul r1, r8, r1
+ ldr r8, .L487
+ ldrh sl, [r8, sl]
+ ldr r8, [r8, #4048]
uxth r1, r1
-.L474:
+ add r5, r8, r5
+ str r5, [sp, #12]
+ mov r5, #0
+ str sl, [sp, #8]
+ str r8, [sp, #4]
+.L481:
add r5, r5, #1
ldr r8, [sp, #8]
uxth r5, r5
cmp r5, r8
- bhi .L466
+ bhi .L473
cmp r0, r1
- beq .L466
+ beq .L473
mov r9, r1, asl #1
ldrh r8, [r3, #4]
ldrh sl, [r7, r9]
@@ -3810,56 +3868,56 @@ insert_data_list:
mvneq r8, #0
mulne r8, r8, sl
cmp r8, r6
- bne .L470
- ldrh sl, [fp, r9]
+ bne .L477
+ ldr r8, [sp, #4]
+ ldrh sl, [r8, r9]
ldr r9, [sp, #12]
ldrh r8, [r9, #0]
cmp sl, r8
- bcc .L472
- b .L471
-.L470:
- bhi .L471
-.L472:
+ bcc .L479
+ b .L478
+.L477:
+ bhi .L478
+.L479:
ldrh r8, [r3, #0]
movw sl, #65535
cmp r8, sl
streqh r1, [r2, #2] @ movhi
streqh r0, [r3, #0] @ movhi
- ldreq r3, .L480+4
+ ldreq r3, .L487+4
streq r2, [r3, #-2012]
- beq .L466
-.L473:
- ldr r9, [sp, #4]
+ beq .L473
+.L480:
mov r1, #6
- mla r3, r1, r8, r9
+ mla r3, r1, r8, fp
mov r1, r8
- b .L474
-.L471:
+ b .L481
+.L478:
strh r1, [r4, ip] @ movhi
ldrh r1, [r3, #2]
strh r1, [r2, #2] @ movhi
- ldr r1, .L480+4
+ ldr r1, .L487+4
ldr ip, [r1, #-2020]
cmp r3, ip
- bne .L475
+ bne .L482
strh r0, [r3, #2] @ movhi
-.L479:
+.L486:
str r2, [r1, #-2020]
- b .L466
-.L475:
+ b .L473
+.L482:
ldrh r2, [r3, #2]
mov ip, #6
ldr r1, [r1, #-2024]
mul r2, ip, r2
strh r0, [r1, r2] @ movhi
strh r0, [r3, #2] @ movhi
-.L466:
+.L473:
mov r0, #0
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L481:
+.L488:
.align 2
-.L480:
+.L487:
.word .LANCHOR0
.word .LANCHOR2
.word -1431655765
@@ -3875,15 +3933,15 @@ INSERT_DATA_LIST:
stmfd sp!, {r3, lr}
.save {r3, lr}
bl insert_data_list
- ldr r2, .L483
- ldr r3, .L483+4
+ ldr r2, .L490
+ ldr r3, .L490+4
ldrh r1, [r2, r3]
add r1, r1, #1
strh r1, [r2, r3] @ movhi
ldmfd sp!, {r3, pc}
-.L484:
+.L491:
.align 2
-.L483:
+.L490:
.word .LANCHOR2
.word -2008
.fnend
@@ -3899,8 +3957,8 @@ insert_free_list:
.save {r4, r5, r6, r7, r8, r9, sl, lr}
movw r6, #65535
cmp r0, r6
- beq .L486
- ldr r1, .L493
+ beq .L493
+ ldr r1, .L500
mov r5, #6
mul ip, r5, r0
mvn r3, #0
@@ -3910,59 +3968,61 @@ insert_free_list:
strh r3, [r4, ip] @ movhi
ldr r3, [r1, #-2004]
cmp r3, #0
- beq .L492
-.L487:
+ beq .L499
+.L494:
ldr sl, [r1, #-2024]
mov r8, r0, asl #1
- ldr r7, [r1, #-2080]
+ ldr r9, .L500+4
rsb r1, sl, r3
- ldr r9, .L493+4
+ ldr r7, .L500+8
mov r1, r1, asr #1
- ldrh r8, [r7, r8]
+ ldr r7, [r7, #4048]
mul r1, r9, r1
mov r9, r5
+ ldrh r8, [r7, r8]
uxth r1, r1
-.L490:
+.L497:
mov r5, r1, asl #1
ldrh r5, [r7, r5]
cmp r5, r8
- bcs .L488
+ bcs .L495
ldrh r5, [r3, #0]
cmp r5, r6
streqh r1, [r2, #2] @ movhi
streqh r0, [r3, #0] @ movhi
- beq .L486
-.L489:
+ beq .L493
+.L496:
mla r3, r9, r5, sl
mov r1, r5
- b .L490
-.L488:
+ b .L497
+.L495:
ldrh r5, [r3, #2]
strh r5, [r2, #2] @ movhi
strh r1, [r4, ip] @ movhi
- ldr r1, .L493
+ ldr r1, .L500
ldr ip, [r1, #-2004]
cmp r3, ip
- bne .L491
+ bne .L498
strh r0, [r3, #2] @ movhi
-.L492:
+.L499:
str r2, [r1, #-2004]
- b .L486
-.L491:
+ b .L493
+.L498:
ldrh r2, [r3, #2]
mov ip, #6
ldr r1, [r1, #-2024]
mul r2, ip, r2
strh r0, [r1, r2] @ movhi
strh r0, [r3, #2] @ movhi
-.L486:
+.L493:
mov r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L494:
+.L501:
.align 2
-.L493:
+.L500:
.word .LANCHOR2
.word -1431655765
+ .word .LANCHOR0
.fnend
.size insert_free_list, .-insert_free_list
.align 2
@@ -3975,15 +4035,15 @@ INSERT_FREE_LIST:
stmfd sp!, {r3, lr}
.save {r3, lr}
bl insert_free_list
- ldr r2, .L496
- ldr r3, .L496+4
+ ldr r2, .L503
+ ldr r3, .L503+4
ldrh r1, [r2, r3]
add r1, r1, #1
strh r1, [r2, r3] @ movhi
ldmfd sp!, {r3, pc}
-.L497:
+.L504:
.align 2
-.L496:
+.L503:
.word .LANCHOR2
.word -2000
.fnend
@@ -3995,7 +4055,7 @@ List_remove_node:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr ip, .L503
+ ldr ip, .L510
mov r2, #6
mul r1, r2, r1
ldr r3, [ip, #-2024]
@@ -4006,7 +4066,7 @@ List_remove_node:
movw r6, #65535
cmp r5, r4
ldrh r4, [r3, r1]
- bne .L499
+ bne .L506
cmp r4, r6
mlane r2, r2, r4, r3
moveq r2, #0
@@ -4014,17 +4074,17 @@ List_remove_node:
strne r2, [r0, #0]
mvnne r0, #0
strneh r0, [r2, #2] @ movhi
- b .L501
-.L499:
+ b .L508
+.L506:
cmp r4, r6
ldrh r0, [r5, #2]
- bne .L502
+ bne .L509
cmp r0, r4
mulne r2, r2, r0
mvnne r0, #0
strneh r0, [r3, r2] @ movhi
- b .L501
-.L502:
+ b .L508
+.L509:
mla r4, r2, r4, r3
strh r0, [r4, #2] @ movhi
ldrh r6, [r5, #2]
@@ -4032,15 +4092,15 @@ List_remove_node:
ldr r0, [ip, #-2024]
mul r2, r2, r6
strh r4, [r0, r2] @ movhi
-.L501:
+.L508:
mvn r2, #0
mov r0, #0
strh r2, [r3, r1] @ movhi
strh r2, [r5, #2] @ movhi
ldmfd sp!, {r4, r5, r6, pc}
-.L504:
+.L511:
.align 2
-.L503:
+.L510:
.word .LANCHOR2
.fnend
.size List_remove_node, .-List_remove_node
@@ -4055,25 +4115,25 @@ List_pop_index_node:
.save {r4, lr}
ldr r3, [r0, #0]
cmp r3, #0
- beq .L510
- ldr r2, .L511
+ beq .L517
+ ldr r2, .L518
movw lr, #65535
mov ip, #6
ldr r4, [r2, #-2024]
- b .L507
-.L509:
+ b .L514
+.L516:
mla r3, ip, r2, r4
sub r1, r1, #1
uxth r1, r1
-.L507:
+.L514:
cmp r1, #0
- beq .L508
+ beq .L515
ldrh r2, [r3, #0]
cmp r2, lr
- bne .L509
-.L508:
+ bne .L516
+.L515:
rsb r4, r4, r3
- ldr r3, .L511+4
+ ldr r3, .L518+4
mov r4, r4, asr #1
mul r4, r3, r4
uxth r4, r4
@@ -4081,12 +4141,12 @@ List_pop_index_node:
bl List_remove_node
mov r0, r4
ldmfd sp!, {r4, pc}
-.L510:
+.L517:
movw r0, #65535
ldmfd sp!, {r4, pc}
-.L512:
+.L519:
.align 2
-.L511:
+.L518:
.word .LANCHOR2
.word -1431655765
.fnend
@@ -4099,39 +4159,39 @@ List_get_gc_head_node:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L519
+ ldr r2, .L526
ldr r3, [r2, #-2020]
cmp r3, #0
- beq .L518
+ beq .L525
ldr r2, [r2, #-2024]
movw r1, #65535
mov ip, #6
- b .L515
-.L517:
+ b .L522
+.L524:
mla r3, ip, r3, r2
sub r0, r0, #1
uxth r0, r0
-.L515:
+.L522:
cmp r0, #0
- beq .L516
+ beq .L523
ldrh r3, [r3, #0]
cmp r3, r1
- bne .L517
+ bne .L524
mov r0, r1
bx lr
-.L516:
+.L523:
rsb r3, r2, r3
- ldr r0, .L519+4
+ ldr r0, .L526+4
mov r3, r3, asr #1
mul r0, r0, r3
uxth r0, r0
bx lr
-.L518:
+.L525:
movw r0, #65535
bx lr
-.L520:
+.L527:
.align 2
-.L519:
+.L526:
.word .LANCHOR2
.word -1431655765
.fnend
@@ -4146,26 +4206,26 @@ List_update_data_list:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r4, r0
- ldr r3, .L528
- ldr r2, .L528+4
+ ldr r3, .L535
+ ldr r2, .L535+4
ldrh r2, [r3, r2]
cmp r2, r0
- beq .L522
- ldr r2, .L528+8
+ beq .L529
+ ldr r2, .L535+8
ldrh r2, [r3, r2]
cmp r2, r0
- beq .L522
- ldr r2, .L528+12
+ beq .L529
+ ldr r2, .L535+12
ldrh r2, [r3, r2]
cmp r2, r0
- beq .L522
+ beq .L529
mov r5, #6
ldr r2, [r3, #-2024]
mul r5, r5, r0
ldr r0, [r3, #-2020]
add r1, r2, r5
cmp r1, r0
- beq .L522
+ beq .L529
ldr ip, [r3, #-2016]
mov r3, r4, asl #1
ldrh r0, [ip, r3]
@@ -4176,14 +4236,14 @@ List_update_data_list:
mvneq r0, #0
movw r1, #65535
cmp r3, r1
- bne .L524
+ bne .L531
ldrh r1, [r2, r5]
cmp r1, r3
- beq .L522
-.L524:
+ beq .L529
+.L531:
mov r1, #6
mla r3, r1, r3, r2
- ldr r1, .L528+16
+ ldr r1, .L535+16
rsb r2, r2, r3
mov r2, r2, asr #1
ldrh r3, [r3, #4]
@@ -4195,23 +4255,23 @@ List_update_data_list:
ldrh r2, [ip, r2]
mulne r3, r3, r2
cmp r0, r3
- bcs .L522
- ldr r0, .L528+20
+ bcs .L529
+ ldr r0, .L535+20
mov r1, r4
bl List_remove_node
- ldr r5, .L528
- ldr r3, .L528+24
+ ldr r5, .L535
+ ldr r3, .L535+24
mov r0, r4
ldrh r2, [r5, r3]
sub r2, r2, #1
strh r2, [r5, r3] @ movhi
bl INSERT_DATA_LIST
-.L522:
+.L529:
mov r0, #0
ldmfd sp!, {r3, r4, r5, pc}
-.L529:
+.L536:
.align 2
-.L528:
+.L535:
.word .LANCHOR2
.word -1996
.word -1948
@@ -4234,13 +4294,13 @@ ftl_map_blk_alloc_new_blk:
ldrh r2, [r0, #10]
mov r5, #0
ldr r3, [r0, #12]
- b .L531
-.L536:
+ b .L538
+.L543:
mov r7, r3
add r3, r3, #2
ldrh r6, [r7, #0]
cmp r6, #0
- bne .L532
+ bne .L539
bl FtlFreeSysBlkQueueOut
movw r3, #65533
sub r2, r0, #1
@@ -4248,15 +4308,15 @@ ftl_map_blk_alloc_new_blk:
strh r0, [r7, #0] @ movhi
uxth r2, r2
cmp r2, r3
- bls .L533
- ldr r2, .L537
- movw r3, #4046
- ldr r0, .L537+4
+ bls .L540
+ ldr r2, .L544
+ movw r3, #4062
+ ldr r0, .L544+4
ldrh r2, [r2, r3]
bl printk
-.L534:
- b .L534
-.L533:
+.L541:
+ b .L541
+.L540:
ldr r3, [r4, #28]
strh r6, [r4, #2] @ movhi
add r3, r3, #1
@@ -4265,19 +4325,19 @@ ftl_map_blk_alloc_new_blk:
strh r5, [r4, #0] @ movhi
add r3, r3, #1
strh r3, [r4, #8] @ movhi
- b .L535
-.L532:
+ b .L542
+.L539:
add r5, r5, #1
uxth r5, r5
-.L531:
+.L538:
cmp r5, r2
- bne .L536
-.L535:
+ bne .L543
+.L542:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L538:
+.L545:
.align 2
-.L537:
+.L544:
.word .LANCHOR0
.word .LC7
.fnend
@@ -4289,18 +4349,18 @@ select_l2p_ram_region:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L551
+ ldr r2, .L558
movw r3, #3954
stmfd sp!, {r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
movw r1, #65535
ldrh r3, [r2, r3]
- ldr r2, .L551+4
+ ldr r2, .L558+4
ldr ip, [r2, #-1852]
mov r2, #0
mov r0, r2
- b .L540
-.L542:
+ b .L547
+.L549:
add r2, r2, #12
add r4, ip, r2
ldrh r4, [r4, #-12]
@@ -4308,59 +4368,59 @@ select_l2p_ram_region:
ldmeqfd sp!, {r4, r5, r6, r7, pc}
add r0, r0, #1
uxth r0, r0
-.L540:
+.L547:
cmp r0, r3
- bne .L542
+ bne .L549
mov r1, #0
mov r0, r3
mov r5, #-2147483648
mov r2, r1
- b .L543
-.L545:
+ b .L550
+.L552:
add r4, ip, r1
ldr r4, [r4, #4]
cmp r4, #0
- blt .L544
+ blt .L551
cmp r4, r5
movcc r5, r4
movcc r0, r2
-.L544:
+.L551:
add r2, r2, #1
add r1, r1, #12
uxth r2, r2
-.L543:
+.L550:
cmp r2, r3
- bne .L545
+ bne .L552
cmp r0, r3
ldmccfd sp!, {r4, r5, r6, r7, pc}
- ldr r2, .L551+8
+ ldr r2, .L558+8
mov r0, r3
- ldr r1, .L551+4
+ ldr r1, .L558+4
mvn r4, #0
ldrh r6, [r1, r2]
mov r2, #0
mov r1, r2
- b .L546
-.L548:
+ b .L553
+.L555:
add r5, ip, r2
ldr r5, [r5, #4]
cmp r5, r4
- bcs .L547
+ bcs .L554
ldrh r7, [ip, r2]
cmp r7, r6
movne r4, r5
movne r0, r1
-.L547:
+.L554:
add r1, r1, #1
add r2, r2, #12
uxth r1, r1
-.L546:
+.L553:
cmp r1, r3
- bne .L548
+ bne .L555
ldmfd sp!, {r4, r5, r6, r7, pc}
-.L552:
+.L559:
.align 2
-.L551:
+.L558:
.word .LANCHOR0
.word .LANCHOR2
.word -1848
@@ -4373,8 +4433,8 @@ FtlUpdateVaildLpn:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L559
- ldr r2, .L559+4
+ ldr r3, .L566
+ ldr r2, .L566+4
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
ldrh r1, [r2, r3]
@@ -4382,11 +4442,11 @@ FtlUpdateVaildLpn:
add ip, r1, #1
mov r1, r3
strh ip, [r2, r3] @ movhi
- bhi .L554
+ bhi .L561
cmp r0, #0
ldmeqfd sp!, {r4, r5, pc}
-.L554:
- ldr r0, .L559+8
+.L561:
+ ldr r0, .L566+8
mov r3, #0
strh r3, [r2, r1] @ movhi
mov r1, #3856
@@ -4394,9 +4454,9 @@ FtlUpdateVaildLpn:
movw ip, #65535
ldrh r4, [r0, r1]
ldr r1, [r2, #-2016]
- ldr r2, .L559+4
- b .L556
-.L558:
+ ldr r2, .L566+4
+ b .L563
+.L565:
ldrh r0, [r1], #2
add r3, r3, #1
cmp r0, ip
@@ -4404,13 +4464,13 @@ FtlUpdateVaildLpn:
ldrne r5, [r2, #-1844]
addne r0, r0, r5
strne r0, [r2, #-1844]
-.L556:
+.L563:
cmp r3, r4
- bne .L558
+ bne .L565
ldmfd sp!, {r4, r5, pc}
-.L560:
+.L567:
.align 2
-.L559:
+.L566:
.word -1846
.word .LANCHOR2
.word .LANCHOR0
@@ -4424,7 +4484,7 @@ ftl_set_blk_mode:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L565
+ ldr r3, .L572
mov r2, r0, lsr #5
cmp r1, #0
and r0, r0, #31
@@ -4436,9 +4496,9 @@ ftl_set_blk_mode:
biceq r0, r1, ip, asl r0
str r0, [r3, r2, asl #2]
bx lr
-.L566:
+.L573:
.align 2
-.L565:
+.L572:
.word .LANCHOR2
.fnend
.size ftl_set_blk_mode, .-ftl_set_blk_mode
@@ -4450,7 +4510,7 @@ ftl_get_blk_mode:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L568
+ ldr r3, .L575
mov r2, r0, lsr #5
and r0, r0, #31
ldr r3, [r3, #-1840]
@@ -4458,9 +4518,9 @@ ftl_get_blk_mode:
mov r0, r3, lsr r0
and r0, r0, #1
bx lr
-.L569:
+.L576:
.align 2
-.L568:
+.L575:
.word .LANCHOR2
.fnend
.size ftl_get_blk_mode, .-ftl_get_blk_mode
@@ -4471,7 +4531,7 @@ ftl_sb_update_avl_pages:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr ip, .L577
+ ldr ip, .L584
mov r3, #0
strh r3, [r0, #4] @ movhi
movw r3, #3848
@@ -4479,8 +4539,8 @@ ftl_sb_update_avl_pages:
.save {r4, r5, r6, lr}
ldrh r3, [ip, r3]
movw ip, #65535
- b .L571
-.L573:
+ b .L578
+.L580:
add r4, r0, r2, asl #1
add r2, r2, #1
ldrh r4, [r4, #16]
@@ -4489,18 +4549,18 @@ ftl_sb_update_avl_pages:
ldrneh r4, [r0, #4]
addne r4, r4, #1
strneh r4, [r0, #4] @ movhi
-.L571:
+.L578:
cmp r2, r3
- bcc .L573
- ldr ip, .L577
+ bcc .L580
+ ldr ip, .L584
movw r2, #3916
movw r4, #65535
mvn r1, r1
ldrh r5, [ip, r2]
mov ip, r0
mov r2, #0
- b .L574
-.L576:
+ b .L581
+.L583:
ldrh r6, [ip, #16]
add r2, r2, #1
add ip, ip, #2
@@ -4510,13 +4570,13 @@ ftl_sb_update_avl_pages:
addne r6, r5, r6
addne r6, r6, r1
strneh r6, [r0, #4] @ movhi
-.L574:
+.L581:
cmp r2, r3
- bne .L576
+ bne .L583
ldmfd sp!, {r4, r5, r6, pc}
-.L578:
+.L585:
.align 2
-.L577:
+.L584:
.word .LANCHOR0
.fnend
.size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
@@ -4531,13 +4591,13 @@ make_superblock:
.save {r4, r5, r6, r7, r8, r9, sl, lr}
mov r4, r0
mov r5, #0
- ldr r6, .L585
+ ldr r6, .L592
strh r5, [r0, #4] @ movhi
movw r8, #3848
strb r5, [r4, #7]
mvn r7, #0
- b .L580
-.L582:
+ b .L587
+.L589:
add r3, r6, r5
ldrh r1, [r4, #0]
add sl, r5, #8
@@ -4554,42 +4614,40 @@ make_superblock:
ldreqb r3, [r4, #7] @ zero_extendqisi2
addeq r3, r3, #1
streqb r3, [r4, #7]
-.L580:
+.L587:
ldrh r2, [r6, r8]
- ldr r3, .L585
+ ldr r3, .L592
cmp r2, r5
- bhi .L582
+ bhi .L589
movw r1, #3916
ldrb r2, [r4, #7] @ zero_extendqisi2
ldrh r1, [r3, r1]
- ldr r3, [r3, #3840]
mul r2, r1, r2
strh r2, [r4, #4] @ movhi
mov r2, #0
- cmp r3, r2
strb r2, [r4, #9]
- beq .L583
- ldr r2, .L585+4
- ldrh r3, [r4, #0]
- ldr r2, [r2, #-2080]
- mov r3, r3, asl #1
+ ldr r2, [r3, #3840]
+ cmp r2, #0
+ beq .L590
+ ldrh r1, [r4, #0]
+ ldr r2, [r3, #4048]
+ mov r3, r1, asl #1
ldrh r3, [r2, r3]
cmp r3, #59
movls r3, #1
strlsb r3, [r4, #9]
-.L583:
- ldr r3, .L585
+.L590:
+ ldr r3, .L592
mov r0, #0
ldrb r3, [r3, #852] @ zero_extendqisi2
cmp r3, #0
movne r3, #1
strneb r3, [r4, #9]
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L586:
+.L593:
.align 2
-.L585:
+.L592:
.word .LANCHOR0
- .word .LANCHOR2
.fnend
.size make_superblock, .-make_superblock
.align 2
@@ -4604,11 +4662,11 @@ update_multiplier_value:
mov r4, #0
mov r7, r0
mov r5, r4
- ldr r6, .L592
+ ldr r6, .L599
movw sl, #3848
movw r8, #3916
- b .L588
-.L590:
+ b .L595
+.L597:
add r3, r6, r5
mov r1, r7
add r5, r5, #1
@@ -4620,27 +4678,27 @@ update_multiplier_value:
ldreqh r3, [r6, r8]
addeq r4, r4, r3
uxtheq r4, r4
-.L588:
+.L595:
ldrh r3, [r6, sl]
cmp r3, r5
- bhi .L590
+ bhi .L597
cmp r4, #0
- beq .L591
+ beq .L598
mov r1, r4
mov r0, #32768
bl __aeabi_idiv
uxth r4, r0
-.L591:
- ldr r3, .L592+4
+.L598:
+ ldr r3, .L599+4
mov r2, #6
mov r0, #0
ldr r3, [r3, #-2024]
mla r7, r2, r7, r3
strh r4, [r7, #4] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L593:
+.L600:
.align 2
-.L592:
+.L599:
.word .LANCHOR0
.word .LANCHOR2
.fnend
@@ -4653,24 +4711,26 @@ GetFreeBlockMinEraseCount:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L597
+ ldr r3, .L604
ldr r0, [r3, #-2004]
cmp r0, #0
bxeq lr
- ldr r2, [r3, #-2024]
- rsb r0, r2, r0
- ldr r2, .L597+4
+ ldr r3, [r3, #-2024]
+ ldr r2, .L604+4
+ rsb r0, r3, r0
+ ldr r3, .L604+8
mov r0, r0, asr #1
- mul r0, r2, r0
- ldr r2, [r3, #-2080]
- uxth r0, r0
- mov r3, r0, asl #1
+ ldr r2, [r2, #4048]
+ mul r3, r3, r0
+ uxth r3, r3
+ mov r3, r3, asl #1
ldrh r0, [r2, r3]
bx lr
-.L598:
+.L605:
.align 2
-.L597:
+.L604:
.word .LANCHOR2
+ .word .LANCHOR0
.word -1431655765
.fnend
.size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
@@ -4681,13 +4741,13 @@ GetFreeBlockMaxEraseCount:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L606
+ ldr r2, .L613
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
ldr r3, [r2, #-2004]
cmp r3, #0
- beq .L605
- ldr r1, .L606+4
+ beq .L612
+ ldr r1, .L613+4
mov ip, #7
mov r5, #6
movw r4, #65535
@@ -4697,39 +4757,40 @@ GetFreeBlockMaxEraseCount:
cmp r0, r1
uxthgt r0, r1
ldr r1, [r2, #-2024]
- ldr r2, .L606+8
+ ldr r2, .L613+8
rsb r3, r1, r3
mov r3, r3, asr #1
mul r3, r2, r3
mov r2, #0
uxth r3, r3
- b .L602
-.L604:
+ b .L609
+.L611:
mul ip, r5, r3
ldrh ip, [r1, ip]
cmp ip, r4
- beq .L603
+ beq .L610
add r2, r2, #1
mov r3, ip
uxth r2, r2
-.L602:
+.L609:
cmp r2, r0
- bne .L604
-.L603:
- ldr r2, .L606
+ bne .L611
+.L610:
+ ldr r2, .L613+12
mov r3, r3, asl #1
- ldr r2, [r2, #-2080]
+ ldr r2, [r2, #4048]
ldrh r0, [r2, r3]
ldmfd sp!, {r4, r5, pc}
-.L605:
+.L612:
mov r0, r3
ldmfd sp!, {r4, r5, pc}
-.L607:
+.L614:
.align 2
-.L606:
+.L613:
.word .LANCHOR2
.word -2000
.word -1431655765
+ .word .LANCHOR0
.fnend
.size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
.align 2
@@ -4742,27 +4803,27 @@ FtlPrintInfo2buf:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
.save {r4, r5, r6, r7, r8, r9, sl, lr}
mov sl, r0
- ldr r5, .L618
+ ldr r6, .L625
add r4, sl, #12
.pad #32
sub sp, sp, #32
- ldr r1, .L618+4
+ ldr r1, .L625+4
bl strcpy
mov r0, r4
- ldr r1, .L618+8
- ldr r2, [r5, #3048]
+ ldr r1, .L625+8
+ ldr r2, [r6, #3048]
bl sprintf
- ldr r1, .L618+12
- ldr r2, [r5, #3932]
+ ldr r1, .L625+12
+ ldr r2, [r6, #3932]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L618+16
+ ldr r3, .L625+16
ldr r3, [r3, #2996]
cmp r3, #1
add r4, r4, r0
- rsbne r0, sl, r4
- bne .L610
+ bne .L621
+.L616:
add r0, sp, #16
add r1, sp, #20
add r2, sp, #24
@@ -4771,467 +4832,469 @@ FtlPrintInfo2buf:
ldr r3, [sp, #24]
ldr r2, [sp, #16]
mov r0, r4
- ldr r1, .L618+20
+ ldr r1, .L625+20
str r3, [sp, #0]
ldr r3, [sp, #28]
- ldr r8, .L618+24
+ ldr r5, .L625+24
+ ldr r7, .L625+28
str r3, [sp, #4]
ldr r3, [sp, #20]
bl sprintf
- ldr r1, .L618+28
- add r6, r4, r0
- ldr r4, .L618+32
- mov r0, r6
- add r6, r6, #10
+ ldr r1, .L625+32
+ ldr r8, .L625+36
+ add r4, r4, r0
+ mov r0, r4
+ add r4, r4, #10
bl strcpy
- ldr r2, [r5, #3976]
- mov r0, r6
- ldr r1, .L618+36
+ ldr r1, .L625+40
+ mov r0, r4
+ ldr r2, [r6, #3976]
bl sprintf
- ldr r1, .L618+40
- ldr r2, [r4, #-1844]
- add r6, r6, r0
- mov r0, r6
+ ldr r1, .L625+44
+ ldr r2, [r5, #-1844]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+44
- ldr r2, [r4, #-1836]
- add r6, r6, r0
- mov r0, r6
+ ldr r1, .L625+48
+ ldr r2, [r5, #-1836]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+48
- ldr r2, [r4, #-1832]
- add r6, r6, r0
- mov r0, r6
+ ldr r1, .L625+52
+ ldr r2, [r5, #-1832]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+52
- ldr r2, [r4, #-1828]
- add r6, r6, r0
- mov r0, r6
+ ldr r1, .L625+56
+ ldr r2, [r5, #-1828]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+56
- ldr r2, [r4, #-1824]
- add r6, r6, r0
- mov r0, r6
+ ldr r1, .L625+60
+ ldr r2, [r5, #-1824]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+60
- ldr r2, [r4, #-1820]
- add r6, r6, r0
- mov r0, r6
+ ldr r1, .L625+64
+ ldr r2, [r5, #-1820]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+64
- ldr r2, [r4, #-1816]
- add r6, r6, r0
- mov r0, r6
+ ldr r1, .L625+68
+ ldr r2, [r5, #-1816]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r2, [r4, #-1812]
- ldr r1, .L618+68
+ ldr r2, [r5, #-1812]
+ ldr r1, .L625+72
mov r2, r2, lsr #11
- add r6, r6, r0
- mov r0, r6
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r2, [r4, #-1808]
- ldr r1, .L618+72
+ ldr r2, [r5, #-1808]
+ ldr r1, .L625+76
mov r2, r2, lsr #11
- add r6, r6, r0
- mov r0, r6
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+76
- ldr r2, [r4, #-1804]
- add r6, r6, r0
- mov r0, r6
+ ldr r1, .L625+80
+ ldr r2, [r5, #-1804]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+80
- ldr r2, [r4, #-1800]
- add r6, r6, r0
- mov r0, r6
+ ldr r1, .L625+84
+ ldr r2, [r5, #-1800]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- add r6, r6, r0
+ add r4, r4, r0
bl FtlBbtCalcTotleCnt
movw r2, #3986
- ldr r1, .L618+84
- ldrh r2, [r5, r2]
+ ldr r1, .L625+88
+ ldrh r2, [r6, r2]
mov r3, r0
- mov r0, r6
+ mov r0, r4
bl sprintf
- ldr r1, .L618+88
- add r7, r6, r0
- ldr r6, .L618+92
- mov r0, r7
- ldrh r2, [r4, r6]
+ ldr r1, .L625+92
+ ldrh r2, [r5, r7]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+96
- ldr r2, [r4, #-1796]
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+96
+ ldr r2, [r5, #-1796]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+100
- ldr r2, [r4, #-1792]
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+100
+ ldr r2, [r5, #-1792]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+104
- ldr r2, [r4, #-1788]
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+104
+ ldr r2, [r5, #-1788]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+108
- ldr r2, [r4, #-2076]
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+108
+ ldr r2, [r6, #4052]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+112
- ldr r2, [r4, #-1784]
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+112
+ ldr r2, [r5, #-1784]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+116
- ldr r2, [r4, #-1780]
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+116
+ ldr r2, [r5, #-1780]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+120
- ldr r1, .L618+124
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+120
+ ldr r1, .L625+124
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+128
- ldr r1, .L618+132
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+128
+ ldr r1, .L625+132
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r2, [r5, #3956]
- ldr r1, .L618+136
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+136
+ ldr r2, [r6, #3956]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r2, [r5, #3948]
- ldr r1, .L618+140
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+140
+ ldr r2, [r6, #3948]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r2, [r5, #3844]
- ldr r1, .L618+144
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+144
+ ldr r2, [r6, #3844]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- movw r3, #4046
- ldrh r2, [r5, r3]
- ldr r1, .L618+148
- add r7, r7, r0
- mov r0, r7
+ movw r3, #4062
+ ldrh r2, [r6, r3]
+ ldr r1, .L625+148
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
mov r3, #3856
- ldrh r2, [r5, r3]
- ldr r1, .L618+152
- add r7, r7, r0
- mov r0, r7
+ ldrh r2, [r6, r3]
+ ldr r1, .L625+152
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+156
- ldr r1, .L618+160
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+156
+ ldr r1, .L625+160
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r2, [r5, #3860]
- ldr r1, .L618+164
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+164
+ ldr r2, [r6, #3860]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+168
- ldr r1, .L618+172
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+168
+ ldr r1, .L625+172
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
movw r3, #3980
- ldrh r2, [r5, r3]
- ldr r1, .L618+176
- add r7, r7, r0
- mov r0, r7
+ ldrh r2, [r6, r3]
+ ldr r1, .L625+176
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+180
- ldr r1, .L618+184
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+180
+ ldr r1, .L625+184
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+188
- ldrb r2, [r4, #-1990] @ zero_extendqisi2
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+188
+ ldrb r2, [r5, #-1990] @ zero_extendqisi2
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldrh r2, [r4, r8]
- ldr r1, .L618+192
- add r7, r7, r0
- mov r0, r7
+ ldrh r2, [r5, r8]
+ ldr r1, .L625+192
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+196
- ldrb r2, [r4, #-1988] @ zero_extendqisi2
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+196
+ ldrb r2, [r5, #-1988] @ zero_extendqisi2
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+200
- ldr r1, .L618+204
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+200
+ ldr r1, .L625+204
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldrh r3, [r4, r8]
- ldr r2, [r4, #-2016]
+ ldrh r3, [r5, r8]
+ ldr r2, [r5, #-2016]
add r8, r8, #48
- ldr r1, .L618+208
+ ldr r1, .L625+208
mov r3, r3, asl #1
ldrh r2, [r2, r3]
- add r7, r7, r0
- mov r0, r7
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+212
- ldr r1, .L618+216
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+212
+ ldr r1, .L625+216
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+220
- ldrb r2, [r4, #-1942] @ zero_extendqisi2
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+220
+ ldrb r2, [r5, #-1942] @ zero_extendqisi2
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldrh r2, [r4, r8]
- ldr r1, .L618+224
- add r7, r7, r0
- mov r0, r7
+ ldrh r2, [r5, r8]
+ ldr r1, .L625+224
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+228
- ldrb r2, [r4, #-1940] @ zero_extendqisi2
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+228
+ ldrb r2, [r5, #-1940] @ zero_extendqisi2
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+232
- ldr r1, .L618+236
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+232
+ ldr r1, .L625+236
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldrh r3, [r4, r8]
- ldr r2, [r4, #-2016]
+ ldrh r3, [r5, r8]
+ ldr r2, [r5, #-2016]
add r8, r8, #188
- ldr r1, .L618+240
+ ldr r1, .L625+240
mov r3, r3, asl #1
ldrh r2, [r2, r3]
- add r7, r7, r0
- mov r0, r7
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+244
- ldr r1, .L618+248
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+244
+ ldr r1, .L625+248
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+252
- ldrb r2, [r4, #-1894] @ zero_extendqisi2
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+252
+ ldrb r2, [r5, #-1894] @ zero_extendqisi2
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+256
- ldr r1, .L618+260
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+256
+ ldr r1, .L625+260
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+264
- ldrb r2, [r4, #-1892] @ zero_extendqisi2
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+264
+ ldrb r2, [r5, #-1892] @ zero_extendqisi2
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+268
- ldr r1, .L618+272
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+268
+ ldr r1, .L625+272
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+276
- ldr r1, .L618+280
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+276
+ ldr r1, .L625+280
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+284
- ldrb r2, [r4, #-1754] @ zero_extendqisi2
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+284
+ ldrb r2, [r5, #-1754] @ zero_extendqisi2
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+288
- ldrh r2, [r4, r8]
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+288
+ ldrh r2, [r5, r8]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+292
- ldrb r2, [r4, #-1752] @ zero_extendqisi2
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+292
+ ldrb r2, [r5, #-1752] @ zero_extendqisi2
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+296
- ldr r1, .L618+300
- ldrh r2, [r4, r3]
- add r7, r7, r0
- mov r0, r7
+ ldr r3, .L625+296
+ ldr r1, .L625+300
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, [r4, #-1624]
- ldr r3, [r5, #3840]
- ldr r2, [r4, #-1712]
+ ldr r1, [r5, #-1624]
+ ldr r3, [r6, #3840]
+ ldr r2, [r5, #-1712]
str r1, [sp, #0]
- ldr r1, [r4, #-1632]
+ ldr r1, [r5, #-1632]
orr r2, r3, r2, asl #8
str r1, [sp, #4]
- ldr r1, .L618+304
- ldr r3, [r4, #-1628]
- add r7, r7, r0
- mov r0, r7
+ ldr r1, .L625+304
+ ldr r3, [r5, #-1628]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+308
- ldr r2, [r4, #-1636]
- add r5, r7, r0
- mov r0, r5
+ ldr r1, .L625+308
+ ldr r2, [r5, #-1636]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+312
- ldr r2, [r4, #-1612]
- add r5, r5, r0
- mov r0, r5
+ ldr r1, .L625+312
+ ldr r2, [r5, #-1612]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+316
- ldr r1, .L618+320
- ldrh r2, [r4, r3]
- add r5, r5, r0
- mov r0, r5
+ ldr r3, .L625+316
+ ldr r1, .L625+320
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+324
- ldr r1, .L618+328
- ldrh r2, [r4, r3]
- add r5, r5, r0
- mov r0, r5
+ ldr r3, .L625+324
+ ldr r1, .L625+328
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r1, .L618+332
- ldr r2, [r4, #-1192]
- add r5, r5, r0
- mov r0, r5
+ ldr r1, .L625+332
+ ldr r2, [r5, #-1192]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- ldr r3, .L618+336
- ldr r1, .L618+340
- ldrh r2, [r4, r3]
- add r5, r5, r0
- mov r0, r5
+ ldr r3, .L625+336
+ ldr r1, .L625+340
+ ldrh r2, [r5, r3]
+ add r4, r4, r0
+ mov r0, r4
bl sprintf
- add r5, r5, r0
+ add r4, r4, r0
bl GetFreeBlockMinEraseCount
- ldr r1, .L618+344
+ ldr r1, .L625+344
mov r2, r0
- mov r0, r5
+ mov r0, r4
bl sprintf
- add r5, r5, r0
- ldrh r0, [r4, r6]
+ add r4, r4, r0
+ ldrh r0, [r5, r7]
bl GetFreeBlockMaxEraseCount
- ldr r1, .L618+348
+ ldr r1, .L625+348
mov r2, r0
- mov r0, r5
+ mov r0, r4
bl sprintf
- ldrh r3, [r4, r8]
+ ldrh r3, [r5, r8]
movw r2, #65535
cmp r3, r2
- add r5, r5, r0
- beq .L611
- ldr r2, [r4, #-2016]
+ add r4, r4, r0
+ beq .L618
+ ldr r2, [r5, #-2016]
mov r3, r3, asl #1
- mov r0, r5
- ldr r1, .L618+352
+ mov r0, r4
+ ldr r1, .L625+352
ldrh r2, [r2, r3]
bl sprintf
- add r5, r5, r0
-.L611:
+ add r4, r4, r0
+.L618:
mov r0, #0
- ldr r4, .L618+32
+ ldr r6, .L625+24
bl List_get_gc_head_node
- mov r6, #0
- movw r8, #65535
- mov r9, #6
+ ldr r8, .L625
+ mov r5, #0
+ movw r9, #65535
uxth r3, r0
-.L613:
- cmp r3, r8
- beq .L612
- ldr r1, [r4, #-2016]
+.L620:
+ cmp r3, r9
+ beq .L619
+ ldr r1, [r6, #-2016]
mov r2, r3, asl #1
- mul r7, r9, r3
- mov r0, r5
+ mov r7, #6
+ mov r0, r4
+ mul r7, r7, r3
ldrh r1, [r1, r2]
str r1, [sp, #0]
- ldr r1, [r4, #-2024]
+ ldr r1, [r6, #-2024]
add r1, r1, r7
ldrh r1, [r1, #4]
str r1, [sp, #4]
- ldr r1, [r4, #-2080]
+ ldr r1, [r8, #4048]
ldrh r2, [r1, r2]
- ldr r1, .L618+356
+ ldr r1, .L625+356
str r2, [sp, #8]
- mov r2, r6
+ mov r2, r5
bl sprintf
- add r6, r6, #1
- ldr r3, [r4, #-2024]
- cmp r6, #16
+ add r5, r5, #1
+ ldr r3, [r6, #-2024]
+ cmp r5, #16
ldrh r3, [r3, r7]
- add r5, r5, r0
- bne .L613
-.L612:
- ldr r6, .L618+32
- mov r4, #0
- movw r8, #65535
- mov r9, #6
+ add r4, r4, r0
+ bne .L620
+.L619:
+ ldr r6, .L625+24
+ mov r5, #0
+ ldr r8, .L625
+ movw r9, #65535
ldr r2, [r6, #-2004]
ldr r3, [r6, #-2024]
rsb r3, r3, r2
- ldr r2, .L618+360
+ ldr r2, .L625+360
mov r3, r3, asr #1
mul r3, r2, r3
uxth r3, r3
-.L615:
- cmp r3, r8
- beq .L614
- mul r7, r9, r3
+.L622:
+ cmp r3, r9
+ beq .L621
+ mov r7, #6
ldr r2, [r6, #-2024]
- mov r0, r5
+ mul r7, r7, r3
+ mov r0, r4
add r2, r2, r7
ldrh r2, [r2, #4]
str r2, [sp, #0]
mov r2, r3, asl #1
- ldr r1, [r6, #-2080]
+ ldr r1, [r8, #4048]
ldrh r2, [r1, r2]
- ldr r1, .L618+364
+ ldr r1, .L625+364
str r2, [sp, #4]
- mov r2, r4
+ mov r2, r5
bl sprintf
- add r4, r4, #1
+ add r5, r5, #1
ldr r3, [r6, #-2024]
- cmp r4, #4
+ cmp r5, #4
ldrh r3, [r3, r7]
- add r5, r5, r0
- bne .L615
-.L614:
- rsb r0, sl, r5
-.L610:
+ add r4, r4, r0
+ bne .L622
+.L621:
+ rsb r0, sl, r4
add sp, sp, #32
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L619:
+.L626:
.align 2
-.L618:
+.L625:
.word .LANCHOR0
.word .LC8
.word .LC9
.word .LC10
.word .LANCHOR1
.word .LC11
- .word -1996
- .word .LC12
.word .LANCHOR2
+ .word -2000
+ .word .LC12
+ .word -1996
.word .LC13
.word .LC14
.word .LC15
@@ -5246,7 +5309,6 @@ FtlPrintInfo2buf:
.word .LC24
.word .LC25
.word .LC26
- .word -2000
.word .LC27
.word .LC28
.word .LC29
@@ -5327,8 +5389,8 @@ ftl_proc_ftl_read:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r4, r0
- ldr r1, .L621
- ldr r2, .L621+4
+ ldr r1, .L628
+ ldr r2, .L628+4
bl sprintf
add r5, r4, r0
mov r0, r5
@@ -5336,9 +5398,9 @@ ftl_proc_ftl_read:
add r0, r5, r0
rsb r0, r4, r0
ldmfd sp!, {r3, r4, r5, pc}
-.L622:
+.L629:
.align 2
-.L621:
+.L628:
.word .LC78
.word .LC79
.fnend
@@ -5350,7 +5412,7 @@ GetSwlReplaceBlock:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L648
+ ldr r3, .L655
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #20
@@ -5358,28 +5420,28 @@ GetSwlReplaceBlock:
ldr r1, [r3, #-1788]
ldr r2, [r3, #-1780]
cmp r1, r2
- bcs .L624
- ldr r0, .L648+4
+ bcs .L631
+ ldr r0, .L655+4
mov r1, #3856
mov r2, #0
str r2, [r3, #-1796]
ldrh r1, [r0, r1]
- ldr r0, [r3, #-2080]
- b .L625
-.L626:
+ ldr r0, [r0, #4048]
+ b .L632
+.L633:
ldrh lr, [r0], #2
add r2, r2, #1
ldr ip, [r3, #-1796]
add ip, lr, ip
str ip, [r3, #-1796]
-.L625:
+.L632:
cmp r2, r1
- ldr r4, .L648
- bcc .L626
+ ldr r4, .L655
+ bcc .L633
ldr r5, [r4, #-1796]
mov r0, r5
bl __aeabi_uidiv
- ldr r2, .L648+4
+ ldr r2, .L655+4
movw r3, #3906
ldrh r1, [r2, r3]
str r0, [r4, #-1788]
@@ -5387,48 +5449,48 @@ GetSwlReplaceBlock:
rsb r0, r0, r5
bl __aeabi_uidiv
str r0, [r4, #-1796]
- b .L627
-.L624:
+ b .L634
+.L631:
ldr r2, [r3, #-1784]
cmp r1, r2
- bls .L627
+ bls .L634
add r2, r2, #1
- ldr r4, .L648+4
- str r2, [r3, #-1784]
mov ip, #3856
- mov r2, #0
- b .L628
-.L629:
- ldr r0, [r3, #-2080]
- mov r1, r2, asl #1
- add r2, r2, #1
- ldrh r5, [r0, r1]
- add r5, r5, #1
- strh r5, [r0, r1] @ movhi
-.L628:
- ldrh r1, [r4, ip]
- cmp r2, r1
- bcc .L629
-.L627:
- ldr r3, .L648
+ str r2, [r3, #-1784]
+ mov r3, #0
+ ldr r2, .L655+4
+ b .L635
+.L636:
+ ldr r0, [r2, #4048]
+ mov r1, r3, asl #1
+ add r3, r3, #1
+ ldrh r4, [r0, r1]
+ add r4, r4, #1
+ strh r4, [r0, r1] @ movhi
+.L635:
+ ldrh r1, [r2, ip]
+ cmp r3, r1
+ bcc .L636
+.L634:
+ ldr r3, .L655
ldr r6, [r3, #-1780]
ldr r5, [r3, #-1788]
add r2, r6, #256
cmp r2, r5
mov r2, r3
- bls .L630
+ bls .L637
ldr r3, [r3, #-1784]
add r1, r6, #768
cmp r1, r3
- bls .L630
- ldr r3, .L648+4
+ bls .L637
+ ldr r3, .L655+4
ldr r3, [r3, #3840]
cmp r3, #0
- beq .L647
+ beq .L654
cmp r6, #30
- bhi .L647
-.L630:
- ldr r3, .L648+8
+ bhi .L654
+.L637:
+ ldr r3, .L655+8
ldrh r0, [r2, r3]
add r0, r0, r0, asl #1
ubfx r0, r0, #2, #16
@@ -5436,104 +5498,105 @@ GetSwlReplaceBlock:
add r3, r6, #64
cmp r0, r3
mov r8, r0
- bcs .L632
+ bcs .L639
cmp r6, #30
- bhi .L647
-.L632:
- ldr r2, .L648
- ldr r3, [r2, #-2020]
+ bhi .L654
+.L639:
+ ldr r1, .L655
+ ldr r3, [r1, #-2020]
cmp r3, #0
- beq .L647
- ldr r0, .L648+4
- mov r1, #3856
+ beq .L654
+ ldr r2, .L655+4
+ mov r0, #3856
movw r7, #65535
mov r4, r7
mov fp, r7
- ldrh sl, [r0, r1]
- ldr r0, [r2, #-2024]
- ldr r1, [r2, #-2080]
+ ldrh sl, [r2, r0]
+ ldr r0, [r1, #-2024]
+ ldr r1, [r2, #4048]
mov r2, #0
- b .L633
-.L636:
+ b .L640
+.L643:
add r2, r2, #1
uxth r2, r2
cmp r2, sl
- bhi .L647
+ bhi .L654
ldrh ip, [r3, #4]
cmp ip, #0
- beq .L634
+ beq .L641
rsb r3, r0, r3
- ldr ip, .L648+12
+ ldr ip, .L655+12
mov r3, r3, asr #1
mul r3, ip, r3
uxth r3, r3
mov ip, r3, asl #1
ldrh ip, [r1, ip]
cmp ip, r6
- bls .L644
+ bls .L651
cmp ip, r7
movcc r7, ip
movcc r4, r3
-.L634:
+.L641:
mov ip, #6
mla r3, ip, r9, r0
-.L633:
+.L640:
ldrh r9, [r3, #0]
cmp r9, fp
- bne .L636
- b .L635
-.L644:
+ bne .L643
+ b .L642
+.L651:
mov r4, r3
-.L635:
+.L642:
movw r3, #65535
cmp r4, r3
- beq .L631
+ beq .L638
mov r9, r4, asl #1
ldrh sl, [r1, r9]
cmp sl, r6
- bls .L637
+ bls .L644
bl GetFreeBlockMinEraseCount
cmp r0, r6
- ldrhi r3, .L648
+ ldrhi r3, .L655
strhi r7, [r3, #-1780]
-.L637:
+.L644:
cmp sl, r5
- bcs .L647
+ bcs .L654
add r3, sl, #128
cmp r8, r3
- ble .L647
+ ble .L654
add r3, sl, #256
- ldr r6, .L648
+ ldr r6, .L655
cmp r3, r5
- bcc .L638
+ bcc .L645
ldr r3, [r6, #-1784]
add sl, sl, #768
cmp sl, r3
- bcs .L647
-.L638:
+ bcs .L654
+.L645:
ldr r3, [r6, #-2016]
mov r1, r4
- ldr r0, .L648+16
+ ldr r0, .L655+16
mov r2, r5
ldrh r3, [r3, r9]
str r3, [sp, #0]
- ldr r3, [r6, #-2080]
+ ldr r3, .L655+4
+ ldr r3, [r3, #4048]
ldrh r3, [r3, r9]
stmib sp, {r3, r8}
ldr r3, [r6, #-1784]
bl printk
mov r3, #1
str r3, [r6, #-1184]
- b .L631
-.L647:
+ b .L638
+.L654:
movw r4, #65535
-.L631:
+.L638:
mov r0, r4
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L649:
+.L656:
.align 2
-.L648:
+.L655:
.word .LANCHOR2
.word .LANCHOR0
.word -2000
@@ -5552,19 +5615,19 @@ free_data_superblock:
cmp r0, r2
stmfd sp!, {r3, lr}
.save {r3, lr}
- beq .L651
- ldr r2, .L652
+ beq .L658
+ ldr r2, .L659
mov r3, r0, asl #1
mov r1, #0
ldr r2, [r2, #-2016]
strh r1, [r2, r3] @ movhi
bl INSERT_FREE_LIST
-.L651:
+.L658:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L653:
+.L660:
.align 2
-.L652:
+.L659:
.word .LANCHOR2
.fnend
.size free_data_superblock, .-free_data_superblock
@@ -5575,19 +5638,19 @@ FtlGcBufInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L662
+ ldr r2, .L669
mov r3, #0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
movw sl, #3848
str r3, [r2, #-1180]
mov r8, #12
- ldr r0, .L662+4
+ ldr r0, .L669+4
mov r7, #1
movw r6, #3926
movw fp, #3928
- b .L655
-.L656:
+ b .L662
+.L663:
mul r1, r8, r3
ldr r4, [r2, #-1176]
add ip, r4, r1
@@ -5621,12 +5684,12 @@ FtlGcBufInit:
str r1, [ip, #8]
ldr r1, [r4, #4]
str r1, [ip, #12]
-.L655:
+.L662:
ldrh r1, [r0, sl]
cmp r3, r1
- bcc .L656
- b .L661
-.L658:
+ bcc .L663
+ b .L668
+.L665:
mul r2, r8, r1
ldr r4, [r3, #-1176]
add r0, r4, r2
@@ -5653,22 +5716,22 @@ FtlGcBufInit:
bic r2, r2, #3
add r2, r4, r2
str r2, [r0, #4]
- b .L660
-.L661:
- ldr r3, .L662
+ b .L667
+.L668:
+ ldr r3, .L669
mov r8, #12
- ldr ip, .L662+4
+ ldr ip, .L669+4
mov r7, #0
movw r6, #3926
movw r5, #3928
-.L660:
+.L667:
ldr r2, [r3, #-1160]
cmp r1, r2
- bcc .L658
+ bcc .L665
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L663:
+.L670:
.align 2
-.L662:
+.L669:
.word .LANCHOR2
.word .LANCHOR0
.fnend
@@ -5680,7 +5743,7 @@ FtlGcBufFree:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L671
+ ldr r3, .L678
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r5, #36
@@ -5689,33 +5752,33 @@ FtlGcBufFree:
ldr ip, [r3, #-1176]
mov r3, #0
mov r4, r3
- b .L665
-.L668:
+ b .L672
+.L675:
mul sl, fp, r2
add r8, ip, sl
ldr r9, [ip, sl]
ldr sl, [r7, #8]
cmp r9, sl
streq r4, [r8, #8]
- beq .L667
-.L666:
+ beq .L674
+.L673:
add r2, r2, #1
uxth r2, r2
-.L670:
+.L677:
cmp r2, r6
- bcc .L668
-.L667:
+ bcc .L675
+.L674:
add r3, r3, #1
uxth r3, r3
-.L665:
+.L672:
cmp r3, r1
ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
mla r7, r5, r3, r0
mov r2, #0
- b .L670
-.L672:
+ b .L677
+.L679:
.align 2
-.L671:
+.L678:
.word .LANCHOR2
.fnend
.size FtlGcBufFree, .-FtlGcBufFree
@@ -5726,7 +5789,7 @@ FtlGcBufAlloc:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L680
+ ldr r3, .L687
stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
.save {r4, r5, r6, r7, r8, sl, lr}
mov r6, #12
@@ -5735,38 +5798,38 @@ FtlGcBufAlloc:
ldr r7, [r3, #-1176]
mov r4, #36
mov r3, #0
- b .L674
-.L677:
+ b .L681
+.L684:
mla ip, r6, r2, r7
ldr sl, [ip, #8]
cmp sl, #0
- bne .L675
+ bne .L682
mla r2, r4, r3, r0
ldr sl, [ip, #0]
str r5, [ip, #8]
str sl, [r2, #8]
ldr ip, [ip, #4]
str ip, [r2, #12]
- b .L676
-.L675:
+ b .L683
+.L682:
add r2, r2, #1
uxth r2, r2
- b .L678
-.L679:
+ b .L685
+.L686:
mov r2, #0
-.L678:
+.L685:
cmp r2, r8
- bcc .L677
-.L676:
+ bcc .L684
+.L683:
add r3, r3, #1
uxth r3, r3
-.L674:
+.L681:
cmp r3, r1
- bcc .L679
+ bcc .L686
ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
-.L681:
+.L688:
.align 2
-.L680:
+.L687:
.word .LANCHOR2
.fnend
.size FtlGcBufAlloc, .-FtlGcBufAlloc
@@ -5778,29 +5841,29 @@ IsBlkInGcList:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L687
- ldr r2, .L687+4
+ ldr r3, .L694
+ ldr r2, .L694+4
ldrh r1, [r3, r2]
ldr r2, [r3, #-1152]
mov r3, #0
- b .L683
-.L685:
+ b .L690
+.L692:
ldrh ip, [r2], #2
cmp ip, r0
- beq .L686
+ beq .L693
add r3, r3, #1
uxth r3, r3
-.L683:
+.L690:
cmp r3, r1
- bne .L685
+ bne .L692
mov r0, #0
bx lr
-.L686:
+.L693:
mov r0, #1
bx lr
-.L688:
+.L695:
.align 2
-.L687:
+.L694:
.word .LANCHOR2
.word -1156
.fnend
@@ -5819,33 +5882,33 @@ FtlGcUpdatePage:
mov r5, r1
mov r6, r2
bl P2V_block_in_plane
- ldr r3, .L693
- ldr r2, .L693+4
+ ldr r3, .L700
+ ldr r2, .L700+4
ldrh ip, [r3, r2]
ldr r2, [r3, #-1152]
mov r3, #0
mov r1, r2
- b .L690
-.L692:
+ b .L697
+.L699:
ldrh r7, [r1], #2
cmp r7, r0
- beq .L691
+ beq .L698
add r3, r3, #1
uxth r3, r3
-.L690:
+.L697:
cmp r3, ip
- bne .L692
+ bne .L699
mov r3, r3, asl #1
strh r0, [r2, r3] @ movhi
- ldr r2, .L693
- ldr r3, .L693+4
+ ldr r2, .L700
+ ldr r3, .L700+4
ldrh r1, [r2, r3]
add r1, r1, #1
strh r1, [r2, r3] @ movhi
-.L691:
- ldr r3, .L693
+.L698:
+ ldr r3, .L700
mov r0, #12
- ldr r2, .L693+8
+ ldr r2, .L700+8
ldrh r1, [r3, r2]
mul r1, r0, r1
ldr r0, [r3, #-1148]
@@ -5856,9 +5919,9 @@ FtlGcUpdatePage:
add r1, r1, #1
strh r1, [r3, r2] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L694:
+.L701:
.align 2
-.L693:
+.L700:
.word .LANCHOR2
.word -1156
.word -1144
@@ -5875,29 +5938,29 @@ FtlGcRefreshOpenBlock:
.save {r3, r4, r5, lr}
mov r4, r0
mov r1, r4
- ldr r0, .L698
+ ldr r0, .L705
bl printk
- ldr r3, .L698+4
- ldr ip, .L698+8
+ ldr r3, .L705+4
+ ldr ip, .L705+8
ldrh r5, [r3, ip]
cmp r5, r4
- beq .L696
- ldr r2, .L698+12
+ beq .L703
+ ldr r2, .L705+12
ldrh r0, [r3, r2]
cmp r0, r4
- beq .L696
+ beq .L703
movw r1, #65535
cmp r5, r1
streqh r4, [r3, ip] @ movhi
- beq .L696
+ beq .L703
cmp r0, r1
streqh r4, [r3, r2] @ movhi
-.L696:
+.L703:
mov r0, #0
ldmfd sp!, {r3, r4, r5, pc}
-.L699:
+.L706:
.align 2
-.L698:
+.L705:
.word .LC81
.word .LANCHOR2
.word -1142
@@ -5915,29 +5978,29 @@ FtlGcRefreshBlock:
.save {r3, r4, r5, lr}
mov r4, r0
mov r1, r4
- ldr r0, .L703
+ ldr r0, .L710
bl printk
- ldr r3, .L703+4
- ldr ip, .L703+8
+ ldr r3, .L710+4
+ ldr ip, .L710+8
ldrh r5, [r3, ip]
cmp r5, r4
- beq .L701
- ldr r2, .L703+12
+ beq .L708
+ ldr r2, .L710+12
ldrh r0, [r3, r2]
cmp r0, r4
- beq .L701
+ beq .L708
movw r1, #65535
cmp r5, r1
streqh r4, [r3, ip] @ movhi
- beq .L701
+ beq .L708
cmp r0, r1
streqh r4, [r3, r2] @ movhi
-.L701:
+.L708:
mov r0, #0
ldmfd sp!, {r3, r4, r5, pc}
-.L704:
+.L711:
.align 2
-.L703:
+.L710:
.word .LC81
.word .LANCHOR2
.word -1142
@@ -5955,54 +6018,54 @@ FtlGcMarkBadPhyBlk:
.save {r3, r4, r5, r6, r7, lr}
mov r4, r0
bl P2V_block_in_plane
- ldr r7, .L710
+ ldr r7, .L717
mov r2, r4
- ldr r6, .L710+4
+ ldr r6, .L717+4
ldrh r1, [r7, r6]
mov r5, r0
- ldr r0, .L710+8
+ ldr r0, .L717+8
bl printk
mov r0, r5
bl FtlGcRefreshBlock
- ldr r3, .L710+12
- ldr r3, [r3, #3840]
- cmp r3, #0
- beq .L706
- ldr r3, [r7, #-2080]
+ ldr r3, .L717+12
+ ldr r2, [r3, #3840]
+ cmp r2, #0
+ beq .L713
+ ldr r3, [r3, #4048]
mov r5, r5, asl #1
ldrh r2, [r3, r5]
cmp r2, #29
subhi r2, r2, #30
strhih r2, [r3, r5] @ movhi
-.L706:
+.L713:
ldrh r1, [r7, r6]
mov r3, #0
- ldr r2, .L710+16
- b .L707
-.L709:
+ ldr r2, .L717+16
+ b .L714
+.L716:
ldrh r0, [r2, #2]!
cmp r0, r4
- beq .L708
+ beq .L715
add r3, r3, #1
uxth r3, r3
-.L707:
+.L714:
cmp r3, r1
- bne .L709
+ bne .L716
cmp r3, #15
- bhi .L708
- ldr r2, .L710
+ bhi .L715
+ ldr r2, .L717
add r1, r2, r3, asl #1
add r3, r3, #1
sub r1, r1, #1136
strh r4, [r1, #0] @ movhi
- ldr r1, .L710+4
+ ldr r1, .L717+4
strh r3, [r2, r1] @ movhi
-.L708:
+.L715:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L711:
+.L718:
.align 2
-.L710:
+.L717:
.word .LANCHOR2
.word -1138
.word .LC82
@@ -6019,18 +6082,18 @@ FtlGcReFreshBadBlk:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
- ldr r2, .L715
- ldr r3, .L715+4
+ ldr r2, .L722
+ ldr r3, .L722+4
ldrh r2, [r3, r2]
cmp r2, #0
- beq .L713
- ldr r1, .L715+8
+ beq .L720
+ ldr r1, .L722+8
ldrh r0, [r3, r1]
movw r1, #65535
cmp r0, r1
- bne .L713
- ldr r4, .L715+12
- ldr r5, .L715+4
+ bne .L720
+ ldr r4, .L722+12
+ ldr r5, .L722+4
ldrh r1, [r3, r4]
cmp r1, r2
movcs r2, #0
@@ -6044,12 +6107,12 @@ FtlGcReFreshBadBlk:
ldrh r3, [r5, r4]
add r3, r3, #1
strh r3, [r5, r4] @ movhi
-.L713:
+.L720:
mov r0, #0
ldmfd sp!, {r3, r4, r5, pc}
-.L716:
+.L723:
.align 2
-.L715:
+.L722:
.word -1138
.word .LANCHOR2
.word -1142
@@ -6067,9 +6130,9 @@ ftl_memset:
stmfd sp!, {r4, lr}
.save {r4, lr}
mov r4, r0
- beq .L718
+ beq .L725
bl memset
-.L718:
+.L725:
mov r0, r4
ldmfd sp!, {r4, pc}
.fnend
@@ -6084,11 +6147,11 @@ FtlGcPageVarInit:
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r3, #0
- ldr r4, .L720
+ ldr r4, .L727
mov r5, #3920
- ldr r2, .L720+4
+ ldr r2, .L727+4
mov r1, #255
- ldr r6, .L720+8
+ ldr r6, .L727+8
ldr r0, [r4, #-1152]
strh r3, [r4, r2] @ movhi
add r2, r2, #12
@@ -6104,9 +6167,9 @@ FtlGcPageVarInit:
bl ftl_memset
ldmfd sp!, {r4, r5, r6, lr}
b FtlGcBufInit
-.L721:
+.L728:
.align 2
-.L720:
+.L727:
.word .LANCHOR2
.word -1156
.word .LANCHOR0
@@ -6122,9 +6185,9 @@ SupperBlkListInit:
stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
movw r3, #3858
- ldr r7, .L732
+ ldr r7, .L739
mov r2, #6
- ldr r4, .L732+4
+ ldr r4, .L739+4
mov r1, #0
mov r6, #0
ldrh r3, [r7, r3]
@@ -6132,7 +6195,7 @@ SupperBlkListInit:
ldr r0, [r4, #-2024]
mul r2, r2, r3
bl ftl_memset
- ldr r3, .L732+8
+ ldr r3, .L739+8
str r6, [r4, #-2004]
str r6, [r4, #-2020]
strh r6, [r4, r3] @ movhi
@@ -6142,8 +6205,8 @@ SupperBlkListInit:
add r3, r3, #900
strh r6, [r4, r3] @ movhi
mov r4, r6
- b .L723
-.L725:
+ b .L730
+.L732:
add r2, r7, r2
mov r1, fp
add r9, r9, #1
@@ -6157,84 +6220,84 @@ SupperBlkListInit:
ldreqh r2, [r7, r3]
addeq r5, r5, r2
uxtheq r5, r5
- b .L730
-.L731:
+ b .L737
+.L738:
mov r5, #0
uxth fp, r4
mov r9, r5
movw r3, #3916
-.L730:
+.L737:
movw r0, #3848
sxth r2, r9
ldrh r1, [r7, r0]
cmp r2, r1
- blt .L725
+ blt .L732
cmp r5, #0
- ldr r9, .L732+4
- beq .L726
+ ldr r9, .L739+4
+ beq .L733
sxth r1, r5
mov r0, #32768
bl __aeabi_idiv
uxth r5, r0
- b .L727
-.L726:
+ b .L734
+.L733:
sxth r3, r4
ldr r2, [r9, #-2016]
mvn r1, #0
mov r3, r3, asl #1
strh r1, [r2, r3] @ movhi
-.L727:
+.L734:
sxth r1, r4
ldr r0, [r9, #-2024]
- ldr r3, .L732+4
+ ldr r3, .L739+4
mov r2, r1, asl #1
add r1, r2, r1
add r1, r0, r1, asl #1
strh r5, [r1, #4] @ movhi
- ldr r1, .L732+12
+ ldr r1, .L739+12
ldrh r1, [r9, r1]
cmp r8, r1
- beq .L728
- ldr r1, .L732+16
+ beq .L735
+ ldr r1, .L739+16
ldrh r1, [r3, r1]
cmp r8, r1
- beq .L728
- ldr r1, .L732+20
+ beq .L735
+ ldr r1, .L739+20
ldrh r1, [r3, r1]
cmp r8, r1
- beq .L728
+ beq .L735
ldr r3, [r3, #-2016]
uxth r0, r4
ldrh r3, [r3, r2]
cmp r3, #0
- bne .L729
+ bne .L736
add r6, r6, #1
uxth r6, r6
bl INSERT_FREE_LIST
- b .L728
-.L729:
+ b .L735
+.L736:
add sl, sl, #1
uxth sl, sl
bl INSERT_DATA_LIST
-.L728:
+.L735:
add r4, r4, #1
uxth r4, r4
-.L723:
+.L730:
mov r3, #3856
sxth r8, r4
ldrh r3, [r7, r3]
cmp r8, r3
- blt .L731
- ldr r3, .L732+4
+ blt .L738
+ ldr r3, .L739+4
mov r0, #0
- ldr r2, .L732+8
+ ldr r2, .L739+8
strh sl, [r3, r2] @ movhi
add r2, r2, #8
strh r6, [r3, r2] @ movhi
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L733:
+.L740:
.align 2
-.L732:
+.L739:
.word .LANCHOR0
.word .LANCHOR2
.word -2008
@@ -6253,9 +6316,9 @@ FtlL2PDataInit:
stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r1, #0
- ldr r4, .L737
+ ldr r4, .L744
movw r6, #3926
- ldr r5, .L737+4
+ ldr r5, .L744+4
movw r7, #3954
mov r8, #12
ldr r2, [r4, #3944]
@@ -6271,8 +6334,8 @@ FtlL2PDataInit:
mov r2, #0
mov ip, r2
mvn r0, #0
- b .L735
-.L736:
+ b .L742
+.L743:
mul r3, r8, r2
ldr r1, [r5, #-1852]
add sl, r1, r3
@@ -6288,22 +6351,22 @@ FtlL2PDataInit:
bic r1, r1, #3
add r1, sl, r1
str r1, [r3, #8]
-.L735:
+.L742:
ldrh r3, [r4, r7]
- ldr r1, .L737
+ ldr r1, .L744
cmp r3, r2
- ldr r3, .L737+4
- bhi .L736
- ldr r0, .L737+8
+ ldr r3, .L744+4
+ bhi .L743
+ ldr r0, .L744+8
mvn r2, #0
ldr ip, [r1, #3944]
strh r2, [r3, r0] @ movhi
- ldr r0, .L737+12
+ ldr r0, .L744+12
strh r2, [r3, r0] @ movhi
add r0, r0, #10
strh ip, [r3, r0] @ movhi
sub r0, r0, #6
- ldr ip, .L737+16
+ ldr ip, .L744+16
strh ip, [r3, r0] @ movhi
add r0, r0, #40
ldrh ip, [r3, r0]
@@ -6311,7 +6374,7 @@ FtlL2PDataInit:
strh ip, [r3, r0] @ movhi
mov r0, #3952
ldrh r0, [r1, r0]
- ldr r1, .L737+20
+ ldr r1, .L744+20
strh r0, [r3, r1] @ movhi
ldr r1, [r3, #-1040]
str r1, [r3, #-1076]
@@ -6321,12 +6384,12 @@ FtlL2PDataInit:
str r1, [r3, #-1068]
ldr r1, [r3, #-1032]
str r1, [r3, #-1064]
- ldr r1, .L737+24
+ ldr r1, .L744+24
strh r2, [r3, r1] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L738:
+.L745:
.align 2
-.L737:
+.L744:
.word .LANCHOR0
.word .LANCHOR2
.word -1086
@@ -6355,13 +6418,13 @@ ftl_free_no_use_map_blk:
mov r0, r5
bl ftl_memset
mov r3, #0
- b .L740
-.L744:
+ b .L747
+.L751:
ldr r0, [r7, r3, asl #2]
mov r2, #0
ubfx r0, r0, #10, #16
- b .L741
-.L743:
+ b .L748
+.L750:
mov r1, r2, asl #1
add r2, r2, #1
ldrh ip, [r6, r1]
@@ -6370,42 +6433,42 @@ ftl_free_no_use_map_blk:
ldreqh ip, [r5, r1]
addeq ip, ip, #1
streqh ip, [r5, r1] @ movhi
-.L741:
+.L748:
ldrh r1, [r4, #10]
cmp r1, r2
- bhi .L743
+ bhi .L750
add r3, r3, #1
uxth r3, r3
-.L740:
+.L747:
ldrh r2, [r4, #6]
cmp r2, r3
- bhi .L744
+ bhi .L751
mov sl, #0
ldrh fp, [r5, #0]
mov r7, sl
- ldr r3, .L750
+ ldr r3, .L757
movw r2, #3918
- b .L745
-.L749:
+ b .L752
+.L756:
ldrh r1, [r4, #0]
cmp r1, r7
- bne .L746
+ bne .L753
ldrh r0, [r4, #2]
ldrh r1, [r3, r2]
cmp r0, r1
movcc r0, r7, asl #1
strcch r1, [r5, r0] @ movhi
-.L746:
+.L753:
mov r9, r7, asl #1
ldrh r8, [r5, r9]
cmp fp, r8
movhi sl, r7
movhi fp, r8
cmp r8, #0
- bne .L748
+ bne .L755
ldrh r0, [r6, r9]
cmp r0, #0
- beq .L748
+ beq .L755
mov r1, #1
stmia sp, {r2, r3}
bl FtlFreeSysBlkQueueIn
@@ -6414,18 +6477,18 @@ ftl_free_no_use_map_blk:
ldrh r1, [r4, #8]
sub r1, r1, #1
strh r1, [r4, #8] @ movhi
-.L748:
+.L755:
add r7, r7, #1
uxth r7, r7
-.L745:
+.L752:
ldrh r1, [r4, #10]
cmp r1, r7
- bhi .L749
+ bhi .L756
mov r0, sl
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L751:
+.L758:
.align 2
-.L750:
+.L757:
.word .LANCHOR0
.fnend
.size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
@@ -6436,8 +6499,8 @@ FtlFreeSysBlkQueueInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L753
- movw r2, #4042
+ ldr r3, .L760
+ movw r2, #4058
stmfd sp!, {r4, lr}
.save {r4, lr}
mov r4, #0
@@ -6447,16 +6510,16 @@ FtlFreeSysBlkQueueInit:
strh r4, [r3, r2] @ movhi
add r2, r2, #2
strh r4, [r3, r2] @ movhi
- movw r2, #4040
+ movw r2, #4056
strh r0, [r3, r2] @ movhi
- add r0, r3, #4048
+ add r0, r3, #4064
mov r2, #2048
bl ftl_memset
mov r0, r4
ldmfd sp!, {r4, pc}
-.L754:
+.L761:
.align 2
-.L753:
+.L760:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
@@ -6468,10 +6531,10 @@ FtlBbtMemInit:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L756
+ ldr r3, .L763
movw r2, #3980
mvn r1, #0
- ldr r0, .L756+4
+ ldr r0, .L763+4
strh r1, [r3, r2] @ movhi
add r2, r2, #6
mov r1, #0
@@ -6479,9 +6542,9 @@ FtlBbtMemInit:
mov r1, #255
mov r2, #16
b ftl_memset
-.L757:
+.L764:
.align 2
-.L756:
+.L763:
.word .LANCHOR0
.word .LANCHOR0+3992
.fnend
@@ -6493,8 +6556,8 @@ FtlBbt2Bitmap:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L762
- ldr r2, .L762+4
+ ldr r3, .L769
+ ldr r2, .L769+4
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r0
@@ -6507,7 +6570,7 @@ FtlBbt2Bitmap:
mov r3, #0
movw ip, #65535
mov r0, #1
-.L760:
+.L767:
ldrh r2, [r5, r3]
cmp r2, ip
ldmeqfd sp!, {r4, r5, r6, pc}
@@ -6518,11 +6581,11 @@ FtlBbt2Bitmap:
ldr r6, [r4, r1, asl #2]
orr r2, r6, r0, asl r2
str r2, [r4, r1, asl #2]
- bne .L760
+ bne .L767
ldmfd sp!, {r4, r5, r6, pc}
-.L763:
+.L770:
.align 2
-.L762:
+.L769:
.word -1028
.word .LANCHOR2
.fnend
@@ -6537,50 +6600,50 @@ FtlVariablesInit:
stmfd sp!, {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mvn r3, #0
- ldr r5, .L765
+ ldr r6, .L772
mov r4, #0
- ldr r2, .L765+4
+ ldr r2, .L772+4
mov r1, r4
- ldr r6, .L765+8
+ ldr r5, .L772+8
movw r7, #3858
- str r3, [r5, #-1008]
- strh r3, [r5, r2] @ movhi
+ str r3, [r6, #-1008]
+ strh r3, [r6, r2] @ movhi
movw r3, #3962
- strh r4, [r6, r3] @ movhi
+ strh r4, [r5, r3] @ movhi
mov r3, #3936
- ldrh r2, [r6, r3]
- ldr r0, [r6, #3964]
- str r4, [r5, #-1024]
+ ldrh r2, [r5, r3]
+ ldr r0, [r5, #3964]
+ str r4, [r6, #-1024]
mov r2, r2, asl #1
- str r4, [r5, #-1016]
- str r4, [r5, #-1012]
- str r4, [r6, #3840]
+ str r4, [r6, #-1016]
+ str r4, [r6, #-1012]
+ str r4, [r5, #3840]
bl ftl_memset
- ldrh r2, [r6, r7]
+ ldrh r2, [r5, r7]
mov r1, r4
- ldr r0, [r5, #-2080]
+ ldr r0, [r5, #4048]
mov r2, r2, asl #1
bl ftl_memset
- ldrh r2, [r6, r7]
+ ldrh r2, [r5, r7]
mov r1, r4
- ldr r0, [r5, #-1004]
+ ldr r0, [r6, #-1004]
mov r2, r2, asl #1
bl ftl_memset
mov r1, r4
mov r2, #48
- ldr r0, .L765+12
+ ldr r0, .L772+12
bl ftl_memset
mov r1, r4
mov r2, #512
- ldr r0, .L765+16
+ ldr r0, .L772+16
bl ftl_memset
bl FtlGcBufInit
bl FtlL2PDataInit
mov r0, r4
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L766:
+.L773:
.align 2
-.L765:
+.L772:
.word .LANCHOR2
.word -1020
.word .LANCHOR0
@@ -6598,13 +6661,13 @@ FtlMemInit:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
.save {r4, r5, r6, r7, r8, r9, sl, lr}
mov r6, #0
- ldr r4, .L798
+ ldr r4, .L805
mov r0, #1024
- ldr r3, .L798+4
+ ldr r3, .L805+4
mov r7, #12
- ldr r2, .L798+8
+ ldr r2, .L805+8
movw sl, #3848
- ldr r5, .L798+12
+ ldr r5, .L805+12
mov r8, #36
strh r6, [r4, r3] @ movhi
movw r3, #65535
@@ -6615,7 +6678,7 @@ FtlMemInit:
str r6, [r4, #-1000]
strh r3, [r4, r2] @ movhi
mov r2, #32
- ldr r3, .L798+16
+ ldr r3, .L805+16
str r6, [r4, #-1712]
str r6, [r4, #-1804]
strh r2, [r4, r3] @ movhi
@@ -6641,7 +6704,7 @@ FtlMemInit:
str r6, [r4, #-1836]
str r6, [r4, #-1796]
str r6, [r4, #-1792]
- str r6, [r4, #-2076]
+ str r6, [r5, #4052]
str r6, [r4, #-1784]
str r6, [r4, #-1780]
str r6, [r4, #-996]
@@ -6659,7 +6722,7 @@ FtlMemInit:
str r0, [r4, #-976]
ldrh r0, [r5, r6]
strhi r3, [r4, #-976]
- ldr r4, .L798
+ ldr r4, .L805
mov r0, r0, asl #1
bl ftl_malloc
str r0, [r4, #-1152]
@@ -6681,7 +6744,7 @@ FtlMemInit:
str r0, [r4, #-964]
mov r0, r6
bl ftl_malloc
- str r0, [r4, #-2084]
+ str r0, [r5, #4044]
mov r0, r6
bl ftl_malloc
str r0, [r4, #-1164]
@@ -6732,7 +6795,7 @@ FtlMemInit:
mov r0, sl, asl #3
bl ftl_malloc
ldrh r3, [r5, r6]
- ldr sl, .L798+20
+ ldr sl, .L805+20
str r0, [r4, #-932]
ldr r0, [r4, #-1160]
mul r0, r0, r3
@@ -6761,7 +6824,7 @@ FtlMemInit:
mov sl, sl, asl #1
str r0, [r4, #-920]
add r0, r0, #32
- str r0, [r4, #-2080]
+ str r0, [r5, #4048]
mov r0, sl
bl ftl_malloc
str r0, [r4, #-916]
@@ -6827,7 +6890,7 @@ FtlMemInit:
mul r0, r0, r3
bl ftl_malloc
ldrh r3, [r5, r6]
- ldr r6, .L798+24
+ ldr r6, .L805+24
str r0, [r4, #-1092]
mov r0, #6
mul r0, r0, r3
@@ -6844,166 +6907,167 @@ FtlMemInit:
bl ftl_malloc
ldrh r1, [r4, r6]
mov r3, #1
- ldr ip, .L798+12
+ ldr ip, .L805+12
mov r1, r1, asl #2
mov r2, r1
str r0, [r5, #4008]
ldrh r5, [r5, r7]
- ldr r0, .L798+28
- b .L769
-.L770:
+ ldr r0, .L805+28
+ b .L776
+.L777:
ldr r4, [ip, #4008]
add r3, r3, #1
add r4, r4, r2
add r2, r2, r1
str r4, [r0, #4]!
-.L769:
+.L776:
cmp r3, r5
- bcc .L770
- ldr r0, .L798+32
+ bcc .L777
+ ldr r0, .L805+32
mov r2, #0
mov r1, r2
add r0, r0, r3, asl #2
- b .L771
-.L772:
+ b .L778
+.L779:
add ip, r0, r2
add r3, r3, #1
add r2, r2, #4
str r1, [ip, #28]
-.L771:
+.L778:
cmp r3, #7
- bls .L772
- ldr r3, .L798
+ bls .L779
+ ldr r3, .L805
ldr r2, [r3, #-1040]
cmp r2, #0
- beq .L797
-.L773:
+ beq .L804
+.L780:
ldr r2, [r3, #-1096]
cmp r2, #0
- beq .L797
-.L775:
+ beq .L804
+.L782:
ldr r2, [r3, #-1032]
cmp r2, #0
- beq .L797
-.L776:
+ beq .L804
+.L783:
ldr r2, [r3, #-1036]
cmp r2, #0
- beq .L797
-.L777:
+ beq .L804
+.L784:
ldr r2, [r3, #-1852]
cmp r2, #0
- beq .L797
-.L778:
+ beq .L804
+.L785:
ldr r2, [r3, #-1092]
cmp r2, #0
- beq .L797
-.L779:
+ beq .L804
+.L786:
ldr r2, [r3, #-2024]
cmp r2, #0
- beq .L797
-.L780:
- ldr r2, .L798+12
+ beq .L804
+.L787:
+ ldr r2, .L805+12
ldr r2, [r2, #4008]
cmp r2, #0
- beq .L797
-.L781:
+ beq .L804
+.L788:
ldr r3, [r3, #-2016]
cmp r3, #0
- beq .L797
-.L782:
- ldr r3, .L798
+ beq .L804
+.L789:
+ ldr r3, .L805
ldr r2, [r3, #-1152]
cmp r2, #0
- beq .L797
+ beq .L804
ldr r2, [r3, #-1148]
cmp r2, #0
- beq .L797
-.L784:
+ beq .L804
+.L791:
ldr r2, [r3, #-972]
cmp r2, #0
- beq .L797
+ beq .L804
ldr r2, [r3, #-964]
cmp r2, #0
- beq .L797
- ldr r2, [r3, #-2084]
+ beq .L804
+ ldr r2, .L805+12
+ ldr r2, [r2, #4044]
cmp r2, #0
- beq .L797
+ beq .L804
ldr r2, [r3, #-1164]
cmp r2, #0
- beq .L797
+ beq .L804
ldr r2, [r3, #-968]
cmp r2, #0
- beq .L797
-.L786:
+ beq .L804
+.L793:
ldr r2, [r3, #-960]
cmp r2, #0
- beq .L797
+ beq .L804
ldr r2, [r3, #-956]
cmp r2, #0
- beq .L797
+ beq .L804
ldr r3, [r3, #-952]
cmp r3, #0
- beq .L797
- ldr r3, .L798
+ beq .L804
+ ldr r3, .L805
ldr r2, [r3, #-1172]
cmp r2, #0
- beq .L797
+ beq .L804
ldr r2, [r3, #-944]
cmp r2, #0
- beq .L797
+ beq .L804
ldr r2, [r3, #-940]
cmp r2, #0
- beq .L797
+ beq .L804
ldr r2, [r3, #-1176]
cmp r2, #0
- beq .L797
-.L788:
+ beq .L804
+.L795:
ldr r2, [r3, #-936]
cmp r2, #0
- beq .L797
+ beq .L804
ldr r2, [r3, #-932]
cmp r2, #0
- beq .L797
+ beq .L804
ldr r2, [r3, #-1168]
cmp r2, #0
- beq .L797
-.L790:
- ldr r2, [r3, #-2080]
- cmp r2, #0
- beq .L797
+ beq .L804
+.L797:
+ ldr r2, .L805+12
+ ldr r1, [r2, #4048]
+ cmp r1, #0
+ beq .L804
ldr r3, [r3, #-1004]
cmp r3, #0
- beq .L797
-.L792:
- ldr r3, .L798+12
- ldr r3, [r3, #3964]
+ beq .L804
+.L799:
+ ldr r3, [r2, #3964]
cmp r3, #0
- beq .L797
-.L793:
- ldr r3, .L798
+ beq .L804
+.L800:
+ ldr r3, .L805
ldr r2, [r3, #-912]
cmp r2, #0
- beq .L797
-.L794:
+ beq .L804
+.L801:
ldr r2, [r3, #-908]
cmp r2, #0
- beq .L797
-.L795:
+ beq .L804
+.L802:
ldr r3, [r3, #-904]
cmp r3, #0
- bne .L796
-.L797:
- ldr r0, .L798+36
- ldr r1, .L798+40
+ bne .L803
+.L804:
+ ldr r0, .L805+36
+ ldr r1, .L805+40
bl printk
mvn r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L796:
+.L803:
mov r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L799:
+.L806:
.align 2
-.L798:
+.L805:
.word .LANCHOR2
.word -1100
.word -1142
@@ -7030,7 +7094,7 @@ ftl_read_flash_info:
mov r2, #11
mov r4, r0
bl ftl_memset
- ldr r3, .L803
+ ldr r3, .L810
ldr r2, [r3, #3624]
ldr r1, [r3, #856]
ldrb r2, [r2, #9] @ zero_extendqisi2
@@ -7061,22 +7125,22 @@ ftl_read_flash_info:
strb r1, [r4, #10]
strb r2, [r4, #9]
mov r2, #1
- ldr r1, .L803+4
- b .L801
-.L802:
+ ldr r1, .L810+4
+ b .L808
+.L809:
ldrb r5, [r3, r1] @ zero_extendqisi2
add r3, r3, #1
ldrb ip, [r4, #10] @ zero_extendqisi2
orr ip, ip, r2, asl r5
strb ip, [r4, #10]
-.L801:
+.L808:
uxtb ip, r3
cmp ip, r0
- bcc .L802
+ bcc .L809
ldmfd sp!, {r3, r4, r5, pc}
-.L804:
+.L811:
.align 2
-.L803:
+.L810:
.word .LANCHOR0
.word .LANCHOR0+3764
.fnend
@@ -7088,50 +7152,50 @@ FlashDieInfoInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r1, .L817
+ ldr r1, .L824
mov r2, #0
stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
.save {r3, r4, r5, r6, r7, r8, sl, lr}
- ldr r3, .L817+4
+ ldr r3, .L824+4
strb r2, [r1, #-896]
- ldr r1, .L817+8
+ ldr r1, .L824+8
strb r2, [r3, #3762]
movw r2, #2902
ldrh r2, [r1, r2]
cmp r2, #256
str r2, [r3, #856]
movhi r2, #512
- bhi .L816
+ bhi .L823
cmp r2, #128
- bls .L807
+ bls .L814
mov r2, #256
-.L816:
+.L823:
str r2, [r3, #856]
-.L807:
+.L814:
mov r1, #0
mov r2, #8
- ldr r0, .L817+12
+ ldr r0, .L824+12
mov r6, #0
bl ftl_memset
mov r1, #0
mov r2, #32
- ldr r0, .L817+16
+ ldr r0, .L824+16
bl ftl_memset
- ldr r0, .L817+20
+ ldr r0, .L824+20
mov r1, #0
mov r2, #128
bl ftl_memset
- ldr r7, .L817+24
- ldr r5, .L817+4
+ ldr r7, .L824+24
+ ldr r5, .L824+4
mov r8, r7
-.L809:
+.L816:
ldr r4, [r5, #3624]
mov r1, r8
add r0, r4, #1
ldrb r2, [r4, #0] @ zero_extendqisi2
bl FlashMemCmp8
cmp r0, #0
- bne .L808
+ bne .L815
ldrb r3, [r5, #3762] @ zero_extendqisi2
add r2, r5, r3, asl #2
str r0, [r2, #3588]
@@ -7139,28 +7203,28 @@ FlashDieInfoInit:
add r3, r3, #1
strb r3, [r5, #3762]
strb r6, [r2, #3764]
-.L808:
+.L815:
add r6, r6, #1
add r8, r8, #8
cmp r6, #4
- bne .L809
- ldr r5, .L817+4
- ldr r3, .L817
+ bne .L816
+ ldr r5, .L824+4
+ ldr r3, .L824
ldrb r2, [r5, #3762] @ zero_extendqisi2
strb r2, [r3, #-896]
ldrb r3, [r4, #8] @ zero_extendqisi2
cmp r3, #2
- bne .L810
+ bne .L817
add sl, r4, #1
mov r6, #0
mov r8, r5
-.L813:
+.L820:
mov r0, sl
mov r1, r7
ldrb r2, [r4, #0] @ zero_extendqisi2
bl FlashMemCmp8
cmp r0, #0
- bne .L811
+ bne .L818
ldrb r1, [r4, #13] @ zero_extendqisi2
ldr r0, [r5, #856]
ldrb r3, [r5, #3762] @ zero_extendqisi2
@@ -7178,25 +7242,25 @@ FlashDieInfoInit:
add r3, r3, #1
strb r3, [r8, #3762]
strb r6, [r2, #3764]
-.L811:
+.L818:
add r6, r6, #1
add r7, r7, #8
cmp r6, #4
- bne .L813
-.L810:
- ldr r3, .L817+4
+ bne .L820
+.L817:
+ ldr r3, .L824+4
ldrb r1, [r4, #13] @ zero_extendqisi2
- ldr r2, .L817
+ ldr r2, .L824
ldrb r3, [r3, #3762] @ zero_extendqisi2
mul r1, r1, r3
ldrh r3, [r4, #14]
mul r1, r3, r1
- ldr r3, .L817+28
+ ldr r3, .L824+28
strh r1, [r2, r3] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L818:
+.L825:
.align 2
-.L817:
+.L824:
.word .LANCHOR2
.word .LANCHOR0
.word .LANCHOR1
@@ -7218,85 +7282,85 @@ BuildFlashLsbPageTable:
stmfd sp!, {r4, lr}
.save {r4, lr}
mov r4, r1
- bne .L820
- ldr r3, .L859
-.L821:
+ bne .L827
+ ldr r3, .L866
+.L828:
strh r0, [r3, #2]! @ movhi
add r0, r0, #1
uxth r0, r0
cmp r0, #256
- bne .L821
- b .L822
-.L820:
+ bne .L828
+ b .L829
+.L827:
cmp r0, #1
- bne .L823
- ldr r0, .L859+4
+ bne .L830
+ ldr r0, .L866+4
mov r2, #0
mov r3, r2
-.L826:
+.L833:
uxth r1, r3
cmp r1, #3
- bls .L824
+ bls .L831
tst r3, #1
moveq r1, #2
movne r1, #3
rsb r1, r1, r2
uxth r1, r1
-.L824:
+.L831:
add r3, r3, #1
strh r1, [r2, r0] @ movhi
cmp r3, #256
add r2, r2, #2
- bne .L826
- b .L822
-.L823:
+ bne .L833
+ b .L829
+.L830:
cmp r0, #2
- bne .L827
+ bne .L834
mov r3, #0
- ldr r0, .L859
+ ldr r0, .L866
movw r2, #65535
mov r1, r3
- b .L858
-.L830:
+ b .L865
+.L837:
cmp r3, #1
movls r1, r3
movhi r1, r2
-.L858:
+.L865:
add r3, r3, #1
add r2, r2, #2
strh r1, [r0, #2]! @ movhi
uxth r3, r3
uxth r2, r2
cmp r3, #256
- bne .L830
- b .L822
-.L827:
+ bne .L837
+ b .L829
+.L834:
cmp r0, #3
- bne .L831
- ldr r0, .L859+4
+ bne .L838
+ ldr r0, .L866+4
mov r2, #0
mov r3, r2
-.L834:
+.L841:
uxth r1, r3
cmp r1, #5
- bls .L832
+ bls .L839
tst r3, #1
moveq r1, #4
movne r1, #5
rsb r1, r1, r2
uxth r1, r1
-.L832:
+.L839:
add r3, r3, #1
strh r1, [r2, r0] @ movhi
cmp r3, #256
add r2, r2, #2
- bne .L834
- b .L822
-.L831:
+ bne .L841
+ b .L829
+.L838:
cmp r0, #4
mov r2, #0
- bne .L835
- ldr r3, .L859+8
+ bne .L842
+ ldr r3, .L866+8
movw r1, #3076
strh r2, [r3, r1] @ movhi
movw r2, #3078
@@ -7312,7 +7376,7 @@ BuildFlashLsbPageTable:
mov r1, #5
strh r0, [r3, r2] @ movhi
add r2, r2, #2
- ldr r0, .L859+12
+ ldr r0, .L866+12
strh r1, [r3, r2] @ movhi
mov r2, #3088
mov r1, #7
@@ -7322,7 +7386,7 @@ BuildFlashLsbPageTable:
strh r1, [r3, r2] @ movhi
mov r2, #16
mov r3, r1
-.L837:
+.L844:
tst r3, #1
add r3, r3, #1
moveq r1, #6
@@ -7332,72 +7396,72 @@ BuildFlashLsbPageTable:
add r2, r2, #2
strh r1, [r0, #2]! @ movhi
uxth r2, r2
- bne .L837
- b .L822
-.L835:
+ bne .L844
+ b .L829
+.L842:
cmp r0, #5
- bne .L838
- ldr r1, .L859
+ bne .L845
+ ldr r1, .L866
mov r3, r2
-.L839:
+.L846:
strh r3, [r1, #2]! @ movhi
add r3, r3, #1
uxth r3, r3
cmp r3, #16
- bne .L839
- ldr r2, .L859+16
-.L840:
+ bne .L846
+ ldr r2, .L866+16
+.L847:
strh r3, [r2, #2]! @ movhi
add r3, r3, #2
uxth r3, r3
cmp r3, #496
- bne .L840
- b .L822
-.L838:
+ bne .L847
+ b .L829
+.L845:
cmp r0, #6
- bne .L822
- ldr r0, .L859
+ bne .L829
+ ldr r0, .L866
mov r3, r2
-.L843:
+.L850:
uxth r1, r3
cmp r1, #5
- bls .L841
+ bls .L848
tst r3, #1
moveq r1, #10
movne r1, #12
rsb r1, r1, r2
uxth r1, r1
-.L841:
+.L848:
add r3, r3, #1
add r2, r2, #3
cmp r3, #256
strh r1, [r0, #2]! @ movhi
uxth r2, r2
- bne .L843
-.L822:
+ bne .L850
+.L829:
mov r2, #1024
- ldr r0, .L859+20
+ ldr r0, .L866+20
mov r1, #255
uxth r4, r4
bl ftl_memset
- ldr r2, .L859
+ ldr r2, .L866
mov r3, #0
- ldr r0, .L859+24
- b .L844
-.L845:
+ ldr r0, .L866+24
+ b .L851
+.L852:
ldrh r1, [r2, #2]!
add r3, r3, #1
uxth r3, r3
add ip, r0, r1, asl #1
sub ip, ip, #892
strh r1, [ip, #0] @ movhi
-.L844:
+.L851:
cmp r3, r4
- bcc .L845
+ bcc .L852
ldmfd sp!, {r4, pc}
-.L860:
+.L867:
.align 2
-.L859:
+.L866:
.word .LANCHOR0+3074
.word .LANCHOR0+3076
.word .LANCHOR0
@@ -7429,15 +7493,15 @@ ftl_memcpy32:
stmfd sp!, {r4, lr}
.save {r4, lr}
mov ip, r3
- b .L863
-.L864:
+ b .L870
+.L871:
ldr r4, [r1, r3]
add ip, ip, #1
str r4, [r0, r3]
add r3, r3, #4
-.L863:
+.L870:
cmp ip, r2
- bne .L864
+ bne .L871
ldmfd sp!, {r4, pc}
.fnend
.size ftl_memcpy32, .-ftl_memcpy32
@@ -7463,22 +7527,22 @@ js_hash:
mov r2, #0
stmfd sp!, {r4, lr}
.save {r4, lr}
- ldr r0, .L869
- b .L867
-.L868:
+ ldr r0, .L876
+ b .L874
+.L875:
mov ip, r0, asl #5
ldrb r4, [r3, r2] @ zero_extendqisi2
add ip, ip, r0, lsr #2
add r2, r2, #1
add ip, ip, r4
eor r0, r0, ip
-.L867:
+.L874:
cmp r2, r1
- bne .L868
+ bne .L875
ldmfd sp!, {r4, pc}
-.L870:
+.L877:
.align 2
-.L869:
+.L876:
.word 1204201446
.fnend
.size js_hash, .-js_hash
@@ -7490,12 +7554,12 @@ timer_get_time:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L872
+ ldr r3, .L879
ldr r0, [r3, #0]
b jiffies_to_msecs
-.L873:
+.L880:
.align 2
-.L872:
+.L879:
.word jiffies
.fnend
.size timer_get_time, .-timer_get_time
@@ -7509,7 +7573,7 @@ FlashSramLoadStore:
stmfd sp!, {r4, lr}
.save {r4, lr}
cmp r2, #0
- ldr r4, .L877
+ ldr r4, .L884
mov ip, r0
mov r2, r3
ldr r4, [r4, #132]
@@ -7519,9 +7583,9 @@ FlashSramLoadStore:
movne r1, ip
ldmfd sp!, {r4, lr}
b memcpy
-.L878:
+.L885:
.align 2
-.L877:
+.L884:
.word .LANCHOR2
.fnend
.size FlashSramLoadStore, .-FlashSramLoadStore
@@ -7566,12 +7630,12 @@ rk_ftl_get_capacity:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L883
+ ldr r3, .L890
ldr r0, [r3, #3956]
bx lr
-.L884:
+.L891:
.align 2
-.L883:
+.L890:
.word .LANCHOR0
.fnend
.size rk_ftl_get_capacity, .-rk_ftl_get_capacity
@@ -7624,47 +7688,47 @@ rknand_print_hex:
mov r7, r2
mov sl, r3
mov r4, r5
- b .L889
-.L895:
+ b .L896
+.L902:
cmp r5, #0
- bne .L890
- ldr r0, .L897
+ bne .L897
+ ldr r0, .L904
mov r1, r8
mov r2, r6
mov r3, r4
bl printk
-.L890:
+.L897:
cmp r7, #4
- ldreq r0, .L897+4
+ ldreq r0, .L904+4
ldreq r1, [r6, r4, asl #2]
- beq .L896
+ beq .L903
cmp r7, #2
moveq r3, r4, asl #1
- ldreq r0, .L897+4
+ ldreq r0, .L904+4
ldreqsh r1, [r6, r3]
- ldrne r0, .L897+4
+ ldrne r0, .L904+4
ldrneb r1, [r6, r4] @ zero_extendqisi2
-.L896:
+.L903:
add r5, r5, #1
bl printk
cmp r5, #15
- bls .L894
- ldr r0, .L897+8
+ bls .L901
+ ldr r0, .L904+8
mov r5, #0
- ldr r1, .L897+12
+ ldr r1, .L904+12
bl printk
-.L894:
+.L901:
add r4, r4, #1
-.L889:
+.L896:
cmp r4, sl
- bne .L895
- ldr r0, .L897+8
- ldr r1, .L897+12
+ bne .L902
+ ldr r0, .L904+8
+ ldr r1, .L904+12
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
b printk
-.L898:
+.L905:
.align 2
-.L897:
+.L904:
.word .LC84
.word .LC85
.word .LC78
@@ -7680,15 +7744,15 @@ NandcXferComp:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r0, r1, r4, r5, r6, lr}
.save {r0, r1, r4, r5, r6, lr}
- ldr r6, .L922
+ ldr r6, .L929
add r0, r6, r0, asl #3
ldr r3, [r6, #3788]
ldr r4, [r0, #864]
cmp r3, #3
- bls .L916
+ bls .L923
ldr r3, [r4, #16]
tst r3, #4
- beq .L916
+ beq .L923
mov r0, r4
bl wait_for_nandc_xfer_completed
ldr r5, [r4, #16]
@@ -7696,49 +7760,49 @@ NandcXferComp:
ands r5, r5, #2
str r3, [sp, #0]
movne r5, #0
- bne .L920
- b .L921
-.L906:
+ bne .L927
+ b .L928
+.L913:
ldr r3, [r6, #3788]
cmp r3, #5
- bls .L903
+ bls .L910
ldr r3, [r4, #0]
str r3, [sp, #4]
ldr r3, [sp, #4]
tst r3, #8192
- beq .L903
+ beq .L910
ldr r3, [sp, #4]
tst r3, #131072
- bne .L904
-.L903:
+ bne .L911
+.L910:
add r5, r5, #1
bic r3, r5, #-16777216
cmp r3, #0
- bne .L920
+ bne .L927
ldr r2, [r4, #28]
mov r1, r5
ldr r3, [sp, #0]
ubfx r2, r2, #16, #5
- ldr r0, .L922+4
+ ldr r0, .L929+4
ubfx r3, r3, #22, #6
bl printk
- ldr r0, .L922+8
+ ldr r0, .L929+8
mov r1, r4
mov r2, #4
mov r3, #512
bl rknand_print_hex
-.L920:
+.L927:
ldr r2, [r4, #28]
ldr r3, [sp, #0]
ubfx r2, r2, #16, #5
ubfx r3, r3, #22, #6
cmp r2, r3
- blt .L906
-.L904:
- ldr r4, .L922
+ blt .L913
+.L911:
+ ldr r4, .L929
ldr r3, [r4, #3820]
cmp r3, #0
- beq .L907
+ beq .L914
ldr r1, [sp, #0]
mov r2, #0
ldr r0, [r4, #3812]
@@ -7751,40 +7815,40 @@ NandcXferComp:
ubfx r1, r1, #22, #5
mov r1, r1, asl #7
bl rknand_dma_unmap_single
- b .L907
-.L910:
+ b .L914
+.L917:
ldr r3, [r4, #8]
add r5, r5, #1
str r3, [sp, #0]
bic r3, r5, #-16777216
cmp r3, #0
- bne .L921
+ bne .L928
ldr r2, [sp, #0]
mov r1, r5
ldr r3, [r4, #28]
- ldr r0, .L922+12
+ ldr r0, .L929+12
ubfx r3, r3, #16, #5
bl printk
- ldr r0, .L922+8
+ ldr r0, .L929+8
mov r1, r4
mov r2, #4
mov r3, #512
bl rknand_print_hex
-.L921:
+.L928:
ldr r3, [sp, #0]
tst r3, #1048576
- beq .L910
- ldr r6, .L922
+ beq .L917
+ ldr r6, .L929
ldr r3, [r6, #3828]
cmp r3, #0
- beq .L911
+ beq .L918
mov r0, r4
bl NandcSendDumpDataStart
-.L911:
+.L918:
ldr r3, [r6, #3820]
- ldr r5, .L922
+ ldr r5, .L929
cmp r3, #0
- beq .L912
+ beq .L919
ldr r1, [sp, #0]
mov r2, #1
ldr r0, [r5, #3812]
@@ -7797,29 +7861,29 @@ NandcXferComp:
ubfx r1, r1, #22, #5
mov r1, r1, asl #7
bl rknand_dma_unmap_single
-.L912:
- ldr r3, .L922
+.L919:
+ ldr r3, .L929
ldr r3, [r3, #3828]
cmp r3, #0
- beq .L907
+ beq .L914
mov r0, r4
bl NandcSendDumpDataDone
-.L907:
- ldr r3, .L922
+.L914:
+ ldr r3, .L929
mov r2, #0
str r2, [r3, #3820]
- b .L899
-.L916:
+ b .L906
+.L923:
ldr r3, [r4, #8]
str r3, [sp, #0]
ldr r3, [sp, #0]
tst r3, #1048576
- beq .L916
-.L899:
+ beq .L923
+.L906:
ldmfd sp!, {r2, r3, r4, r5, r6, pc}
-.L923:
+.L930:
.align 2
-.L922:
+.L929:
.word .LANCHOR0
.word .LC87
.word .LC88
@@ -7837,7 +7901,7 @@ NandcXferData:
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r4, r3
mov r9, r3
- ldr r3, .L962
+ ldr r3, .L969
.pad #92
sub sp, sp, #92
tst r4, #63
@@ -7847,15 +7911,15 @@ NandcXferData:
mov sl, r2
ldr r5, [sp, #128]
ldr r6, [r3, #864]
- bne .L925
+ bne .L932
cmp r5, #0
- bne .L926
+ bne .L933
add r0, sp, #24
mov r1, #255
mov r2, #64
add r5, sp, #24
bl ftl_memset
-.L926:
+.L933:
mov r0, r7
mov r1, fp
mov r2, sl
@@ -7866,8 +7930,8 @@ NandcXferData:
bl NandcXferComp
cmp fp, #0
movne r4, #0
- bne .L927
- ldr r1, .L962
+ bne .L934
+ ldr r1, .L969
mov r0, sl, lsr #1
mov r3, fp
mov r2, fp
@@ -7876,8 +7940,8 @@ NandcXferData:
cmp ip, #24
movhi ip, #128
movls ip, #64
- b .L929
-.L930:
+ b .L936
+.L937:
ldr r1, [r4, #3800]
mov r3, r3, lsr #2
add r2, r2, #1
@@ -7891,29 +7955,29 @@ NandcXferData:
strb r3, [r5, #3]
add r5, r5, #4
mov r3, r7
-.L929:
+.L936:
cmp r2, r0
add r7, r3, ip
- ldr r1, .L962
- bcc .L930
+ ldr r1, .L969
+ bcc .L937
mov r3, #0
ldr r0, [r1, #3832]
mov sl, sl, lsr #2
ldr r1, [r1, #3788]
mov r4, r3
- b .L931
-.L937:
+ b .L938
+.L944:
add r2, r3, #8
ldr r2, [r6, r2, asl #2]
str r2, [sp, #20]
ldr r2, [sp, #20]
tst r2, #4
- bne .L952
+ bne .L959
ldr r2, [sp, #20]
ands r2, r2, #32768
- bne .L952
+ bne .L959
cmp r1, #5
- bls .L933
+ bls .L940
ldr r7, [sp, #20]
ldr ip, [sp, #20]
ldr r5, [sp, #20]
@@ -7932,10 +7996,10 @@ NandcXferData:
ubfxls ip, ip, #16, #5
ubfxhi r2, r2, #27, #1
ubfxls r2, r2, #29, #1
- b .L960
-.L933:
+ b .L967
+.L940:
cmp r1, #3
- bls .L935
+ bls .L942
ldr r7, [sp, #20]
ldr ip, [sp, #20]
ldr r5, [sp, #20]
@@ -7954,31 +8018,31 @@ NandcXferData:
ubfxls ip, ip, #16, #5
ubfxhi r2, r2, #28, #1
ubfxls r2, r2, #30, #1
-.L960:
+.L967:
orr r2, ip, r2, asl #5
-.L935:
+.L942:
cmp r4, r2
movcc r4, r2
- b .L932
-.L952:
+ b .L939
+.L959:
mvn r4, #0
-.L932:
+.L939:
add r3, r3, #1
-.L931:
+.L938:
cmp r3, sl
- bcs .L927
+ bcs .L934
cmp r0, #0
- bne .L937
-.L927:
+ bne .L944
+.L934:
mov r3, #0
str r3, [r6, #16]
- b .L938
-.L925:
+ b .L945
+.L932:
cmp r1, #1
mov r8, #0
- bne .L958
- b .L939
-.L942:
+ bne .L965
+ b .L946
+.L949:
cmp r5, #0
and r4, r8, #3
mov r0, r6
@@ -8002,12 +8066,12 @@ NandcXferData:
mov r0, r7
bl NandcXferComp
add r9, r9, #1024
-.L939:
+.L946:
cmp r8, sl
- bcc .L942
+ bcc .L949
mov r4, #0
- b .L938
-.L958:
+ b .L945
+.L965:
mov r1, r8
mov r2, #2
mov r3, r8
@@ -8019,15 +8083,15 @@ NandcXferData:
mov ip, r8
mov fp, r6
mov r6, r5
- b .L961
-.L947:
+ b .L968
+.L954:
mov r0, r7
bl NandcXferComp
ldr r3, [fp, #32]
add ip, r5, #2
cmp ip, sl
str r3, [sp, #20]
- bcs .L944
+ bcs .L951
mov r3, #0
mov r0, r7
str r3, [sp, #0]
@@ -8038,11 +8102,11 @@ NandcXferData:
str ip, [sp, #8]
bl NandcXferStart
ldr ip, [sp, #8]
-.L944:
+.L951:
ldr r3, [sp, #20]
tst r3, #4
mvnne r4, #0
- bne .L945
+ bne .L952
ldr r2, [sp, #20]
ldr r3, [sp, #20]
ubfx r2, r2, #3, #5
@@ -8050,7 +8114,7 @@ NandcXferData:
orr r3, r2, r3, asl #5
cmp r4, r3
movcc r4, r3
-.L945:
+.L952:
cmp r6, #0
and r2, r8, #3
mov r0, fp
@@ -8065,34 +8129,34 @@ NandcXferData:
str r5, [sp, #0]
bl NandcCopy1KB
ldr ip, [sp, #8]
-.L961:
+.L968:
cmp ip, sl
mov r5, ip
- bcc .L947
+ bcc .L954
mov r6, fp
ldr fp, [sp, #12]
-.L938:
- ldr r3, .L962
+.L945:
+ ldr r3, .L969
rsbs fp, fp, #1
movcc fp, #0
ldr r3, [r3, #3788]
cmp r3, #5
movls fp, #0
cmp fp, #0
- beq .L948
+ beq .L955
ldr r3, [r6, #0]
and r2, r3, #139264
cmp r2, #139264
orreq r3, r3, #131072
streq r3, [r6, #0]
mvneq r4, #0
-.L948:
+.L955:
mov r0, r4
add sp, sp, #92
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L963:
+.L970:
.align 2
-.L962:
+.L969:
.word .LANCHOR0
.fnend
.size NandcXferData, .-NandcXferData
@@ -8106,23 +8170,23 @@ FlashProgPage:
stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r0, r1, r4, r5, r6, r7, r8, lr}
mov r8, r3
- ldr r3, .L967
+ ldr r3, .L974
subs r4, r0, #0
mov r5, r1
mov r6, r2
ldrb r7, [r3, #2901] @ zero_extendqisi2
- bne .L965
- ldr r3, .L967+4
+ bne .L972
+ ldr r3, .L974+4
ldrb r2, [r3, #853] @ zero_extendqisi2
ldr r1, [r3, #856]
mul r2, r1, r2
cmp r5, r2
- bcs .L965
+ bcs .L972
ldrb r3, [r3, #852] @ zero_extendqisi2
cmp r3, #0
subeq r7, r7, #2
movne r7, #4
-.L965:
+.L972:
mov r0, r4
bl NandcWaitFlashReady
mov r0, r4
@@ -8149,9 +8213,9 @@ FlashProgPage:
bl NandcFlashDeCs
and r0, r5, #1
ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
-.L968:
+.L975:
.align 2
-.L967:
+.L974:
.word .LANCHOR1
.word .LANCHOR0
.fnend
@@ -8166,29 +8230,29 @@ FlashPageProgMsbFFData:
stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r4, r2
- ldr r2, .L976
+ ldr r2, .L983
mov r7, r1
mov r8, r0
ldrb r1, [r2, #928] @ zero_extendqisi2
ldr r3, [r2, #3624]
cmp r1, #0
ldrb r3, [r3, #19] @ zero_extendqisi2
- beq .L970
+ beq .L977
ldr r1, [r2, #3776]
- ldr r2, .L976+4
+ ldr r2, .L983+4
cmp r1, r2
ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L970:
+.L977:
sub r2, r3, #5
uxtb r2, r2
cmp r3, #68
cmpne r2, #2
- bls .L973
+ bls .L980
cmp r3, #35
cmpne r3, #19
- beq .L973
+ beq .L980
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L974:
+.L981:
add r3, r5, r4, asl #1
sub r3, r3, #892
ldrh r3, [r3, #0]
@@ -8205,20 +8269,20 @@ FlashPageProgMsbFFData:
mov r3, #0
bl FlashProgPage
uxth r4, r4
- b .L975
-.L973:
- ldr r6, .L976
+ b .L982
+.L980:
+ ldr r6, .L983
movw sl, #65535
- ldr r5, .L976+8
-.L975:
+ ldr r5, .L983+8
+.L982:
ldr r3, [r6, #3624]
ldrh r3, [r3, #10]
cmp r3, r4
- bhi .L974
+ bhi .L981
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L977:
+.L984:
.align 2
-.L976:
+.L983:
.word .LANCHOR0
.word 1446522928
.word .LANCHOR2
@@ -8234,19 +8298,19 @@ FlashReadRawPage:
stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r0, r1, r4, r5, r6, r7, r8, lr}
mov r8, r3
- ldr r3, .L981
+ ldr r3, .L988
subs r4, r0, #0
mov r6, r1
mov r5, r2
ldrb r7, [r3, #2901] @ zero_extendqisi2
- bne .L979
- ldr r3, .L981+4
+ bne .L986
+ ldr r3, .L988+4
ldrb r2, [r3, #853] @ zero_extendqisi2
ldr r3, [r3, #856]
mul r3, r3, r2
cmp r1, r3
movcc r7, #4
-.L979:
+.L986:
mov r0, r4
bl NandcWaitFlashReady
mov r0, r4
@@ -8267,9 +8331,9 @@ FlashReadRawPage:
bl NandcFlashDeCs
mov r0, r5
ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
-.L982:
+.L989:
.align 2
-.L981:
+.L988:
.word .LANCHOR1
.word .LANCHOR0
.fnend
@@ -8284,9 +8348,9 @@ HynixReadRetrial:
stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r7, r3
- ldr r3, .L997
+ ldr r3, .L1004
mov sl, r2
- ldr fp, .L997
+ ldr fp, .L1004
mov r6, r0
add r2, r3, r0
str r1, [sp, #4]
@@ -8300,12 +8364,12 @@ HynixReadRetrial:
ldreqb r4, [r2, #20] @ zero_extendqisi2
bl NandcWaitFlashReady
mov ip, fp
- b .L985
-.L990:
+ b .L992
+.L997:
add r4, r4, #1
ldrb r1, [fp, #1] @ zero_extendqisi2
mov r0, r6
- ldr r2, .L997+4
+ ldr r2, .L1004+4
uxtb r4, r4
str ip, [sp, #0]
cmp r4, r9
@@ -8319,25 +8383,25 @@ HynixReadRetrial:
bl FlashReadRawPage
ldr ip, [sp, #0]
cmn r0, #1
- beq .L987
+ beq .L994
ldrb r3, [ip, #3836] @ zero_extendqisi2
cmn r5, #1
moveq r5, r0
add r3, r3, r3, asl #1
cmp r0, r3, lsr #2
- bcc .L996
+ bcc .L1003
mov r7, #0
mov sl, r7
-.L987:
+.L994:
add r8, r8, #1
-.L985:
+.L992:
cmp r8, r9
- bcc .L990
- b .L989
-.L996:
+ bcc .L997
+ b .L996
+.L1003:
mov r5, r0
-.L989:
- ldr r3, .L997
+.L996:
+ ldr r3, .L1004
add r6, r3, r6
ldr r2, [r3, #3624]
ldrb r3, [r3, #3836] @ zero_extendqisi2
@@ -8355,9 +8419,9 @@ HynixReadRetrial:
moveq r0, r5
movne r0, #256
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L998:
+.L1005:
.align 2
-.L997:
+.L1004:
.word .LANCHOR0
.word .LANCHOR0+4
.fnend
@@ -8367,113 +8431,150 @@ HynixReadRetrial:
.type MicronReadRetrial, %function
MicronReadRetrial:
.fnstart
- @ args = 0, pretend = 0, frame = 16
+ @ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- mov r9, r0
- ldr r4, .L1012
mov sl, r3
- .pad #28
- sub sp, sp, #28
- ldrb r0, [r4, #3836] @ zero_extendqisi2
- ldrb r3, [r4, #928] @ zero_extendqisi2
- str r1, [sp, #16]
+ ldr r3, .L1024
+ mov r9, r0
+ .pad #36
+ sub sp, sp, #36
+ ldrb r0, [r3, #3836] @ zero_extendqisi2
+ ldrb r3, [r3, #928] @ zero_extendqisi2
+ str r1, [sp, #24]
cmp r3, #0
str r2, [sp, #20]
addeq r0, r0, r0, asl #1
ubfxeq r0, r0, #2, #8
- beq .L1011
+ beq .L1023
mov r1, #3
bl __aeabi_idiv
uxtb r0, r0
-.L1011:
- add r4, r4, r9, asl #3
- str r0, [sp, #12]
+.L1023:
+.L1008:
+ mov r2, #0
+ ldr r3, .L1024
+ mvn r4, #0
+ mov r6, r2
+ add r3, r3, r9, asl #3
+ str r0, [sp, #16]
+ str r2, [sp, #12]
+ str r3, [sp, #28]
+.L1018:
mov r0, r9
- mov r8, #0
+ mov fp, #0
bl NandcWaitFlashReady
- ldrb r7, [r4, #868] @ zero_extendqisi2
- ldr r6, [r4, #864]
- mov fp, r8
+ ldr r2, [sp, #28]
+ ldrb r7, [r2, #868] @ zero_extendqisi2
+ ldr r8, [r2, #864]
add r7, r7, #8
- mvn r4, #0
- add r5, r6, r7, asl #8
- b .L1002
-.L1006:
+ add r5, r8, r7, asl #8
+ b .L1009
+.L1013:
mov r3, #239
mov r0, #200
str r3, [r5, #8]
mov r3, #137
str r3, [r5, #4]
bl NandcDelayns
- add ip, r8, #1
+ add ip, fp, #1
mov r0, r9
str ip, [r5, #0]
- ldr r1, [sp, #16]
+ ldr r1, [sp, #24]
mov r3, sl
- str fp, [r5, #0]
+ str r6, [r5, #0]
ldr r2, [sp, #20]
- str fp, [r5, #0]
- str fp, [r5, #0]
+ str r6, [r5, #0]
+ str r6, [r5, #0]
str ip, [sp, #8]
bl FlashReadRawPage
ldr ip, [sp, #8]
cmn r0, #1
- beq .L1003
+ beq .L1010
cmn r4, #1
- ldr r2, [sp, #12]
+ ldr r2, [sp, #16]
moveq r4, r0
cmp r0, r2
- bcc .L1010
+ bcc .L1020
mov sl, #0
str sl, [sp, #20]
-.L1003:
- mov r8, ip
-.L1002:
- ldr r2, .L1012+4
- ldrb r3, [r2, #140] @ zero_extendqisi2
- cmp r8, r3
- bcc .L1006
- b .L1005
.L1010:
+ mov fp, ip
+.L1009:
+ ldr r2, .L1024+4
+ ldrb r3, [r2, #140] @ zero_extendqisi2
+ cmp fp, r3
+ bcc .L1013
+ b .L1012
+.L1020:
mov r4, r0
-.L1005:
+ mov sl, #0
+ str sl, [sp, #20]
+.L1012:
mov r3, #239
mov r0, #200
str r3, [r5, #8]
mov r3, #137
str r3, [r5, #4]
bl NandcDelayns
- ldr r2, [sp, #12]
- mov r3, #0
- str r3, [r6, r7, asl #8]
+ ldr r2, [sp, #16]
+ str r6, [r8, r7, asl #8]
cmp r4, r2
- str r3, [r6, r7, asl #8]
- str r3, [r6, r7, asl #8]
- str r3, [r6, r7, asl #8]
+ str r6, [r8, r7, asl #8]
+ str r6, [r8, r7, asl #8]
movcc r3, #0
movcs r3, #1
cmn r4, #1
+ str r6, [r8, r7, asl #8]
moveq r3, #0
cmp r3, #0
movne r4, #256
cmn r4, #1
+ movne r5, #0
+ moveq r5, #1
+ cmn r4, #1
cmpne r4, #256
- bne .L1008
- ldr r0, .L1012+8
- mov r1, r8
- ldr r2, [sp, #16]
- mov r3, r8
+ bne .L1015
+ mov r3, fp
+ ldr r0, .L1024+8
+ mov r1, fp
+ ldr r2, [sp, #24]
str r4, [sp, #0]
bl printk
-.L1008:
+ ldr r3, [sp, #12]
+ cmp r3, #0
+ bne .L1016
+ ldr r2, .L1024
+ ldrb r3, [r2, #928] @ zero_extendqisi2
+ cmp r3, #0
+ moveq r5, #0
+ andne r5, r5, #1
+ cmp r5, #0
+ beq .L1017
+ mov r0, r9
+ mov r1, #3
+ bl micron_auto_read_calibration_config
+ mov r3, #1
+ str r3, [sp, #12]
+ b .L1018
+.L1015:
+ ldr r2, [sp, #12]
+ cmp r2, #0
+ beq .L1017
+.L1016:
+ mov r0, r9
+ mov r1, #0
+ bl micron_auto_read_calibration_config
+ cmn r4, #1
+ movne r4, #256
+.L1017:
mov r0, r4
- add sp, sp, #28
+ add sp, sp, #36
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1013:
+.L1025:
.align 2
-.L1012:
+.L1024:
.word .LANCHOR0
.word .LANCHOR2
.word .LC90
@@ -8493,17 +8594,17 @@ SamsungReadRetrial:
mov r6, r3
mov r9, r1
bl NandcWaitFlashReady
- ldr ip, .L1023
+ ldr ip, .L1035
mov r5, #1
mvn r4, #0
- ldr fp, .L1023+4
+ ldr fp, .L1035+4
add r3, ip, r8, asl #3
ldrb sl, [r3, #868] @ zero_extendqisi2
ldr r2, [r3, #864]
add sl, sl, #8
add sl, r2, sl, asl #8
- b .L1015
-.L1019:
+ b .L1027
+.L1031:
mov r0, sl
uxtb r1, r5
str ip, [sp, #4]
@@ -8515,30 +8616,30 @@ SamsungReadRetrial:
bl FlashReadRawPage
ldr ip, [sp, #4]
cmn r0, #1
- beq .L1016
+ beq .L1028
ldrb r3, [ip, #3836] @ zero_extendqisi2
cmn r4, #1
moveq r4, r0
add r3, r3, r3, asl #1
cmp r0, r3, lsr #2
- bcc .L1022
+ bcc .L1034
mov r6, #0
mov r7, r6
-.L1016:
+.L1028:
add r5, r5, #1
-.L1015:
+.L1027:
ldrb r3, [fp, #140] @ zero_extendqisi2
add r3, r3, #1
cmp r5, r3
- bcc .L1019
- b .L1018
-.L1022:
+ bcc .L1031
+ b .L1030
+.L1034:
mov r4, r0
-.L1018:
+.L1030:
mov r0, sl
mov r1, #0
bl SamsungSetRRPara
- ldr r3, .L1023
+ ldr r3, .L1035
adds r0, r4, #1
ldrb r3, [r3, #3836] @ zero_extendqisi2
movne r0, #1
@@ -8550,9 +8651,9 @@ SamsungReadRetrial:
moveq r0, r4
movne r0, #256
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1024:
+.L1036:
.align 2
-.L1023:
+.L1035:
.word .LANCHOR0
.word .LANCHOR2
.fnend
@@ -8571,7 +8672,7 @@ ToshibaReadRetrial:
mov r9, r2
mov r7, r3
bl NandcWaitFlashReady
- ldr r3, .L1046
+ ldr r3, .L1058
add r2, r3, r8, asl #3
ldr r1, [r2, #864]
ldrb r4, [r2, #868] @ zero_extendqisi2
@@ -8582,53 +8683,53 @@ ToshibaReadRetrial:
uxtb r2, r2
cmp r2, #1
movls sl, #0
- bls .L1026
+ bls .L1038
ldrb sl, [r3, #3780] @ zero_extendqisi2
cmp sl, #0
- beq .L1027
+ beq .L1039
mov r0, #0
mov sl, #1
bl NandcSetDdrMode
-.L1027:
+.L1039:
mov r3, #92
str r3, [r4, #8]
mov r3, #197
str r3, [r4, #8]
-.L1026:
+.L1038:
mov r6, #1
mvn r5, #0
- ldr fp, .L1046
- b .L1028
-.L1037:
+ ldr fp, .L1058
+ b .L1040
+.L1049:
ldrb r3, [fp, #3761] @ zero_extendqisi2
mov r0, r4
uxtb r1, r6
sub r3, r3, #67
uxtb r3, r3
cmp r3, #1
- bhi .L1029
+ bhi .L1041
bl SandiskSetRRPara
- b .L1030
-.L1029:
+ b .L1042
+.L1041:
bl ToshibaSetRRPara
-.L1030:
- ldr r2, .L1046
+.L1042:
+ ldr r2, .L1058
ldrb r3, [r2, #3761] @ zero_extendqisi2
cmp r3, #34
- bne .L1031
- ldr r2, .L1046+4
+ bne .L1043
+ ldr r2, .L1058+4
ldrb r3, [r2, #140] @ zero_extendqisi2
sub r3, r3, #3
cmp r6, r3
moveq r3, #179
streq r3, [r4, #8]
-.L1031:
+.L1043:
cmp sl, #0
mov r3, #38
str r3, [r4, #8]
mov r3, #93
str r3, [r4, #8]
- beq .L1032
+ beq .L1044
mov r0, #4
bl NandcSetDdrMode
ldr r1, [sp, #4]
@@ -8641,50 +8742,50 @@ ToshibaReadRetrial:
str r3, [sp, #0]
bl NandcSetDdrMode
ldr r3, [sp, #0]
- b .L1033
-.L1032:
+ b .L1045
+.L1044:
mov r3, r7
mov r0, r8
ldr r1, [sp, #4]
mov r2, r9
bl FlashReadRawPage
mov r3, r0
-.L1033:
+.L1045:
cmn r3, #1
- beq .L1034
+ beq .L1046
ldrb r2, [fp, #3836] @ zero_extendqisi2
cmn r5, #1
moveq r5, r3
add r2, r2, r2, asl #1
cmp r3, r2, lsr #2
- bcc .L1045
+ bcc .L1057
mov r7, #0
mov r9, r7
-.L1034:
+.L1046:
add r6, r6, #1
-.L1028:
- ldr r2, .L1046+4
+.L1040:
+ ldr r2, .L1058+4
ldrb r3, [r2, #140] @ zero_extendqisi2
add r3, r3, #1
cmp r6, r3
- bcc .L1037
- b .L1036
-.L1045:
+ bcc .L1049
+ b .L1048
+.L1057:
mov r5, r3
-.L1036:
- ldr r6, .L1046
+.L1048:
+ ldr r6, .L1058
mov r0, r4
mov r1, #0
ldrb r3, [r6, #3761] @ zero_extendqisi2
sub r3, r3, #67
uxtb r3, r3
cmp r3, #1
- bhi .L1038
+ bhi .L1050
bl SandiskSetRRPara
- b .L1039
-.L1038:
+ b .L1051
+.L1050:
bl ToshibaSetRRPara
-.L1039:
+.L1051:
mov r3, #255
str r3, [r4, #8]
ldrb r3, [r6, #3836] @ zero_extendqisi2
@@ -8699,15 +8800,15 @@ ToshibaReadRetrial:
movne r5, #256
bl NandcWaitFlashReady
cmp sl, #0
- beq .L1041
+ beq .L1053
mov r0, #4
bl NandcSetDdrMode
-.L1041:
+.L1053:
mov r0, r5
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1047:
+.L1059:
.align 2
-.L1046:
+.L1058:
.word .LANCHOR0
.word .LANCHOR2
.fnend
@@ -8722,9 +8823,9 @@ FlashSavePhyInfo:
stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r6, #0
- ldr r5, .L1055
- ldr r7, .L1055+4
- ldr r8, .L1055+8
+ ldr r5, .L1067
+ ldr r7, .L1067+4
+ ldr r8, .L1067+8
ldr r3, [r5, #148]
ldrb r0, [r5, #152] @ zero_extendqisi2
str r3, [r5, #144]
@@ -8734,7 +8835,7 @@ FlashSavePhyInfo:
ldr r0, [r5, #148]
bl ftl_memset
ldr r3, [r5, #144]
- ldr r1, .L1055+12
+ ldr r1, .L1067+12
mov r2, #32
str r8, [r3, #0]
ldr r4, [r5, #144]
@@ -8747,15 +8848,15 @@ FlashSavePhyInfo:
str r3, [r4, #1076]
bl memcpy
add r0, r4, #80
- ldr r1, .L1055+16
+ ldr r1, .L1067+16
mov r2, #8
bl memcpy
add r0, r4, #96
- ldr r1, .L1055+20
+ ldr r1, .L1067+20
mov r2, #32
bl memcpy
ldr r0, [r5, #144]
- ldr r1, .L1055+24
+ ldr r1, .L1067+24
mov r2, #32
add r0, r0, #160
bl memcpy
@@ -8779,7 +8880,7 @@ FlashSavePhyInfo:
mov r0, #0
bl flash_enter_slc_mode
mov r4, r6
-.L1051:
+.L1063:
ldr r1, [r7, #856]
mov r0, #0
mov r2, r0
@@ -8805,17 +8906,17 @@ FlashSavePhyInfo:
mul r1, r1, r4
bl FlashReadRawPage
cmn r0, #1
- beq .L1049
+ beq .L1061
ldr sl, [r5, #144]
ldr r3, [sl, #0]
cmp r3, r8
- bne .L1049
+ bne .L1061
add r0, sl, #12
movw r1, #2036
bl JSHash
ldr r3, [sl, #8]
cmp r3, r0
- bne .L1049
+ bne .L1061
add r3, r4, #1
str r3, [r5, #156]
ldr r3, [r7, #856]
@@ -8823,21 +8924,21 @@ FlashSavePhyInfo:
cmp r6, #1
mul r3, r3, r4
str r3, [r5, #160]
- bhi .L1050
-.L1049:
+ bhi .L1062
+.L1061:
add r4, r4, #1
cmp r4, #4
- bne .L1051
-.L1050:
+ bne .L1063
+.L1062:
mov r0, #0
bl flash_exit_slc_mode
cmp r6, #0
mvneq r0, #0
movne r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L1056:
+.L1068:
.align 2
-.L1055:
+.L1067:
.word .LANCHOR2
.word .LANCHOR0
.word 1312902724
@@ -8860,34 +8961,34 @@ FlashReadIdbDataRaw:
sub sp, sp, #20
mov r2, #4
mov sl, r0
- ldr r1, .L1068
+ ldr r1, .L1080
add r0, sp, #12
bl memcpy
- ldr r3, .L1068+4
+ ldr r3, .L1080+4
ldrb r2, [r3, #3836] @ zero_extendqisi2
str r2, [sp, #4]
ldr r2, [r3, #3776]
- ldr r3, .L1068+8
+ ldr r3, .L1080+8
cmp r2, r3
- bne .L1058
+ bne .L1070
mov r0, #0
bl flash_enter_slc_mode
-.L1058:
- ldr r7, .L1068+4
+.L1070:
+ ldr r7, .L1080+4
mov r0, sl
mov r1, #0
mov r2, #2048
bl ftl_memset
mvn r8, #0
mov r4, #2
- ldr r9, .L1068+12
+ ldr r9, .L1080+12
mov fp, r7
- b .L1059
-.L1066:
+ b .L1071
+.L1078:
mov r6, #0
-.L1061:
+.L1073:
add r3, sp, #12
- ldr r5, .L1068+12
+ ldr r5, .L1080+12
ldrb r0, [r3, r6] @ zero_extendqisi2
bl FlashBchSel
ldr r1, [r7, #856]
@@ -8897,19 +8998,19 @@ FlashReadIdbDataRaw:
mul r1, r1, r4
bl FlashReadRawPage
cmn r0, #1
- bne .L1060
+ bne .L1072
add r6, r6, #1
cmp r6, #4
- bne .L1061
- b .L1062
-.L1060:
+ bne .L1073
+ b .L1074
+.L1072:
ldr r3, [r5, #148]
ldr r2, [r3, #0]
- ldr r3, .L1068+16
+ ldr r3, .L1080+16
cmp r2, r3
- bne .L1062
+ bne .L1074
add r3, sp, #16
- ldr r0, .L1068+20
+ ldr r0, .L1080+20
add r6, r3, r6
ldrb r1, [r6, #-4] @ zero_extendqisi2
bl printk
@@ -8922,36 +9023,36 @@ FlashReadIdbDataRaw:
strb r3, [fp, #853]
ldr r3, [r5, #156]
cmp r3, r4
- bls .L1065
+ bls .L1077
str r4, [r5, #156]
bl FlashSavePhyInfo
mov r8, #0
-.L1062:
+.L1074:
add r4, r4, #1
-.L1059:
+.L1071:
ldrb r3, [r7, #853] @ zero_extendqisi2
cmp r4, r3
- bcc .L1066
- b .L1063
-.L1065:
+ bcc .L1078
+ b .L1075
+.L1077:
mov r8, #0
-.L1063:
+.L1075:
ldr r0, [sp, #4]
bl FlashBchSel
- ldr r3, .L1068+4
+ ldr r3, .L1080+4
ldr r2, [r3, #3776]
- ldr r3, .L1068+8
+ ldr r3, .L1080+8
cmp r2, r3
- bne .L1064
+ bne .L1076
mov r0, #0
bl flash_exit_slc_mode
-.L1064:
+.L1076:
mov r0, r8
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1069:
+.L1081:
.align 2
-.L1068:
+.L1080:
.word .LANCHOR3+11
.word .LANCHOR0
.word 1446522928
@@ -8970,11 +9071,11 @@ FlashLoadPhyInfo:
stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r2, #4
- ldr r1, .L1081
+ ldr r1, .L1093
add r0, sp, #4
bl memcpy
- ldr r5, .L1081+4
- ldr r2, .L1081+8
+ ldr r5, .L1093+4
+ ldr r2, .L1093+8
movw r3, #2902
mov r4, #0
mov r8, #4
@@ -8983,11 +9084,11 @@ FlashLoadPhyInfo:
ldrh r9, [r2, r3]
mvn r6, #0
ldr r3, [r5, #148]
- ldr fp, .L1081+12
+ ldr fp, .L1093+12
str r3, [r5, #144]
bl flash_enter_slc_mode
- b .L1071
-.L1073:
+ b .L1083
+.L1085:
add r3, sp, #4
ldrb r0, [r3, r7] @ zero_extendqisi2
bl FlashBchSel
@@ -8997,46 +9098,46 @@ FlashLoadPhyInfo:
mov r3, r0
bl FlashReadRawPage
cmn r0, #1
- bne .L1072
+ bne .L1084
mov r0, #0
mov r1, sl
ldr r2, [r5, #148]
mov r3, r0
bl FlashReadRawPage
cmn r0, #1
- bne .L1072
+ bne .L1084
add r7, r7, #1
cmp r7, #4
- beq .L1074
- b .L1073
-.L1072:
+ beq .L1086
+ b .L1085
+.L1084:
ldr r7, [r5, #144]
ldr r3, [r7, #0]
cmp r3, fp
- bne .L1074
+ bne .L1086
cmp r6, #0
- bne .L1075
- ldr r2, .L1081+8
+ bne .L1087
+ ldr r2, .L1093+8
movw r3, #2902
mov r0, r4
ldrh r1, [r2, r3]
bl __aeabi_uidiv
- ldr r3, .L1081+4
+ ldr r3, .L1093+4
add r0, r0, #1
str r0, [r3, #156]
mov r0, r6
- b .L1080
-.L1075:
+ b .L1092
+.L1087:
add r0, r7, #12
movw r1, #2036
bl JSHash
ldr r3, [r7, #8]
cmp r3, r0
- bne .L1074
- ldr r6, .L1081+16
+ bne .L1086
+ ldr r6, .L1093+16
add r1, r7, #160
mov r2, #32
- ldr r0, .L1081+20
+ ldr r0, .L1093+20
bl memcpy
add r0, r6, #896
add r1, r7, #192
@@ -9047,7 +9148,7 @@ FlashLoadPhyInfo:
mov r2, #852
bl memcpy
ldr r3, [r7, #1076]
- ldr r2, .L1081+8
+ ldr r2, .L1093+8
mov r0, r4
str r4, [r5, #160]
strb r3, [r6, #3780]
@@ -9062,23 +9163,23 @@ FlashLoadPhyInfo:
streq r3, [r5, #156]
ldrh r3, [r7, #14]
strb r3, [r5, #164]
-.L1074:
+.L1086:
subs r8, r8, #1
add r4, r4, r9
- beq .L1078
-.L1071:
+ beq .L1090
+.L1083:
add sl, r4, #1
mov r7, #0
- b .L1073
-.L1078:
+ b .L1085
+.L1090:
mov r0, r8
-.L1080:
+.L1092:
bl flash_exit_slc_mode
mov r0, r6
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1082:
+.L1094:
.align 2
-.L1081:
+.L1093:
.word .LANCHOR3+11
.word .LANCHOR2
.word .LANCHOR1
@@ -9097,7 +9198,7 @@ FlashDdrTunningRead:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov sl, r3
- ldr r4, .L1104
+ ldr r4, .L1116
.pad #20
sub sp, sp, #20
mov fp, r0
@@ -9113,7 +9214,7 @@ FlashDdrTunningRead:
ldr r3, [sp, #56]
cmp r3, #0
moveq r8, #1024
- beq .L1085
+ beq .L1097
mov r0, #1
bl FlashSetInterfaceMode
mov r0, #1
@@ -9131,21 +9232,21 @@ FlashDdrTunningRead:
ldrb r0, [r4, #3772] @ zero_extendqisi2
bl NandcSetMode
cmn r8, #1
- beq .L1086
- ldr r0, .L1104+4
+ beq .L1098
+ ldr r0, .L1116+4
mov r2, r8
ldr r1, [sp, #0]
bl printk
cmp r8, #9
- bhi .L1087
+ bhi .L1099
add r4, r4, fp, asl #3
ldr r3, [r4, #864]
ldr r2, [r3, #3840]
ldr r2, [r3, #0]
orr r2, r2, #131072
str r2, [r3, #0]
-.L1087:
- ldr r3, .L1104+8
+.L1099:
+ ldr r3, .L1116+8
ldr r2, [r3, #168]
add r2, r2, #1
str r2, [r3, #168]
@@ -9153,15 +9254,15 @@ FlashDdrTunningRead:
movcs sl, #0
strcs sl, [r3, #168]
movcs r9, sl
- bcc .L1086
-.L1085:
+ bcc .L1098
+.L1097:
mov r4, #0
str fp, [sp, #4]
mov r5, r4
mvn r6, #0
mov fp, r4
str r4, [sp, #8]
-.L1092:
+.L1104:
uxtb r0, r7
bl NandcSetDdrPara
mov r3, sl
@@ -9171,79 +9272,79 @@ FlashDdrTunningRead:
bl FlashReadRawPage
add r3, r8, #1
cmp r0, r3
- bhi .L1088
+ bhi .L1100
cmp r0, #2
- bhi .L1098
+ bhi .L1110
add r5, r5, #1
cmp r5, #9
- bls .L1098
+ bls .L1110
mov ip, fp
rsb r4, r5, r7
ldr fp, [sp, #4]
mov r8, r0
mov r6, #0
- b .L1090
-.L1088:
+ b .L1102
+.L1100:
cmp fp, r5
- bcs .L1099
+ bcs .L1111
cmp r5, #7
rsb r3, r5, r4
str r3, [sp, #8]
- bhi .L1103
+ bhi .L1115
mov fp, r5
- b .L1099
-.L1098:
+ b .L1111
+.L1110:
mov r6, #0
mov r4, r7
mov r8, r0
mov sl, r6
mov r9, r6
- b .L1089
-.L1099:
+ b .L1101
+.L1111:
mov r5, #0
-.L1089:
+.L1101:
add r7, r7, #2
cmp r7, #69
- bls .L1092
+ bls .L1104
mov ip, fp
ldr fp, [sp, #4]
-.L1090:
+.L1102:
cmp ip, r5
- bcc .L1093
- b .L1091
-.L1103:
+ bcc .L1105
+ b .L1103
+.L1115:
ldr fp, [sp, #4]
-.L1091:
+.L1103:
ldr r4, [sp, #8]
-.L1093:
+.L1105:
cmp r4, #0
- beq .L1094
- ldr r0, .L1104+12
+ beq .L1106
+ ldr r0, .L1116+12
mov r1, r4
bl printk
uxtb r0, r4
bl NandcSetDdrPara
-.L1094:
+.L1106:
cmn r6, #1
- bne .L1086
- ldr r0, .L1104+16
+ bne .L1098
+ ldr r0, .L1116+16
mov r1, fp
ldr r2, [sp, #0]
bl printk
ldr r3, [sp, #56]
cmp r3, #0
moveq r8, r6
- beq .L1086
+ beq .L1098
ldr r3, [sp, #12]
ubfx r0, r3, #8, #8
bl NandcSetDdrPara
-.L1086:
+.L1098:
mov r0, r8
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1105:
+.L1117:
.align 2
-.L1104:
+.L1116:
.word .LANCHOR0
.word .LC92
.word .LANCHOR2
@@ -9261,7 +9362,7 @@ FlashDdrParaScan:
stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r0, r1, r4, r5, r6, r7, r8, lr}
mov r7, r0
- ldr r5, .L1110
+ ldr r5, .L1122
mov r4, #0
mov r6, r1
ldrb r0, [r5, #3772] @ zero_extendqisi2
@@ -9281,30 +9382,30 @@ FlashDdrParaScan:
mov r0, r7
bl FlashReadRawPage
cmn r0, #1
- beq .L1107
+ beq .L1119
cmn r8, #1
- bne .L1108
-.L1107:
+ bne .L1120
+.L1119:
ldrb r3, [r5, #3772] @ zero_extendqisi2
tst r3, #1
- beq .L1108
+ beq .L1120
mov r0, #1
bl FlashSetInterfaceMode
mov r0, #1
bl NandcSetMode
- ldr r3, .L1110
+ ldr r3, .L1122
mov r2, #0
strb r2, [r3, #3780]
- b .L1109
-.L1108:
+ b .L1121
+.L1120:
mov r3, #1
strb r3, [r5, #3780]
-.L1109:
+.L1121:
mov r0, #0
ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
-.L1111:
+.L1123:
.align 2
-.L1110:
+.L1122:
.word .LANCHOR0
.fnend
.size FlashDdrParaScan, .-FlashDdrParaScan
@@ -9324,11 +9425,11 @@ FlashReadPage:
bl FlashReadRawPage
cmn r0, #1
mov r4, r0
- bne .L1113
- ldr r7, .L1118
+ bne .L1125
+ ldr r7, .L1130
ldrb r9, [r7, #860] @ zero_extendqisi2
cmp r9, #0
- beq .L1114
+ beq .L1126
mov r3, #0
mov r0, r5
strb r3, [r7, #860]
@@ -9339,12 +9440,12 @@ FlashReadPage:
strb r9, [r7, #860]
cmn r0, #1
movne r4, r0
- bne .L1113
-.L1114:
- ldr r7, .L1118
+ bne .L1125
+.L1126:
+ ldr r7, .L1130
ldrb r3, [r7, #3780] @ zero_extendqisi2
cmp r3, #0
- beq .L1113
+ beq .L1125
ldr r3, [r7, #3012]
mov r0, r5
mov r1, r6
@@ -9356,22 +9457,22 @@ FlashReadPage:
bl FlashDdrTunningRead
cmn r0, #1
mov r4, r0
- beq .L1115
+ beq .L1127
ldrb r3, [r7, #3836] @ zero_extendqisi2
cmp r0, r3, lsr #1
- bls .L1113
-.L1115:
+ bls .L1125
+.L1127:
ubfx r0, r9, #8, #8
bl NandcSetDdrPara
-.L1113:
- ldr r7, .L1118+4
+.L1125:
+ ldr r7, .L1130+4
ldr ip, [r7, #172]
adds r3, ip, #0
movne r3, #1
cmn r4, #1
movne r3, #0
cmp r3, #0
- beq .L1116
+ beq .L1128
mov r1, r6
mov r2, r8
mov r3, sl
@@ -9380,15 +9481,15 @@ FlashReadPage:
mov r2, r5
mov r3, r6
mov r4, r0
- ldr r0, .L1118+8
+ ldr r0, .L1130+8
mov r1, r4
bl printk
cmn r4, #1
- bne .L1116
- ldr r3, .L1118
+ bne .L1128
+ ldr r3, .L1130
ldrb r3, [r3, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L1116
+ beq .L1128
mov r0, r5
bl flash_enter_slc_mode
ldr ip, [r7, #172]
@@ -9400,12 +9501,12 @@ FlashReadPage:
mov r4, r0
mov r0, r5
bl flash_exit_slc_mode
-.L1116:
+.L1128:
mov r0, r4
ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc}
-.L1119:
+.L1131:
.align 2
-.L1118:
+.L1130:
.word .LANCHOR0
.word .LANCHOR2
.word .LC95
@@ -9418,7 +9519,7 @@ FlashReadSlc2KPages:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1133
+ ldr r3, .L1145
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r8, r1
@@ -9428,9 +9529,9 @@ FlashReadSlc2KPages:
ldrb sl, [r3, #2901] @ zero_extendqisi2
mov r4, r0
mov r7, #0
- ldr r6, .L1133+4
- b .L1121
-.L1130:
+ ldr r6, .L1145+4
+ b .L1133
+.L1142:
rsb r3, r7, r8
add r2, sp, #20
mov r0, r4
@@ -9444,7 +9545,7 @@ FlashReadSlc2KPages:
cmp r3, r2
mvncs r3, #0
strcs r3, [r4, #0]
- bcs .L1123
+ bcs .L1135
add r3, r6, r3
ldrb r5, [r3, #3764] @ zero_extendqisi2
mov r0, r5
@@ -9503,48 +9604,48 @@ FlashReadSlc2KPages:
strne r3, [r4, #0]
ldr r3, [r4, #12]
cmp r3, #0
- beq .L1128
+ beq .L1140
ldr r2, [r3, #8]
cmn r2, #1
- bne .L1128
+ bne .L1140
ldr r3, [r3, #0]
cmn r3, #1
strne r2, [r4, #0]
-.L1128:
+.L1140:
ldr r3, [r4, #0]
cmn r3, #1
- bne .L1123
+ bne .L1135
ldr r1, [r4, #4]
- ldr r0, .L1133+8
+ ldr r0, .L1145+8
ldrb r2, [r6, #3836] @ zero_extendqisi2
bl printk
ldr r1, [r4, #8]
cmp r1, #0
- beq .L1129
- ldr r0, .L1133+12
+ beq .L1141
+ ldr r0, .L1145+12
mov r2, #4
mov r3, #8
bl rknand_print_hex
-.L1129:
+.L1141:
ldr r1, [r4, #12]
cmp r1, #0
- beq .L1123
+ beq .L1135
mov r2, #4
- ldr r0, .L1133+16
+ ldr r0, .L1145+16
mov r3, r2
bl rknand_print_hex
-.L1123:
+.L1135:
add r7, r7, #1
add r4, r4, #36
-.L1121:
+.L1133:
cmp r7, r8
- bne .L1130
+ bne .L1142
mov r0, #0
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1134:
+.L1146:
.align 2
-.L1133:
+.L1145:
.word .LANCHOR1
.word .LANCHOR0
.word .LC96
@@ -9559,7 +9660,7 @@ FlashReadPages:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1177
+ ldr r3, .L1189
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #52
@@ -9569,22 +9670,22 @@ FlashReadPages:
str r1, [sp, #28]
str r2, [sp, #32]
str r3, [sp, #24]
- ldr r3, .L1177+4
+ ldr r3, .L1189+4
ldrb r8, [r3, #852] @ zero_extendqisi2
ldrb ip, [r3, #860] @ zero_extendqisi2
cmp r8, #0
str ip, [sp, #36]
moveq sl, r8
- beq .L1136
+ beq .L1148
bl FlashReadSlc2KPages
- b .L1137
-.L1164:
+ b .L1149
+.L1176:
mov r3, #36
ldr ip, [sp, #28]
mul r3, r3, sl
add r2, sp, #44
ldr r1, [sp, #32]
- ldr fp, .L1177+4
+ ldr fp, .L1189+4
add r6, r9, r3
str r3, [sp, #16]
rsb r3, sl, ip
@@ -9601,10 +9702,10 @@ FlashReadPages:
mvncs r3, #0
mov r7, r0
strcs r3, [r9, ip]
- bcs .L1139
+ bcs .L1151
add r3, fp, r3
ldrb r4, [r3, #3764] @ zero_extendqisi2
- ldr r3, .L1177+8
+ ldr r3, .L1189+8
mov r0, r4
ldrb r3, [r3, #176] @ zero_extendqisi2
cmp r3, #0
@@ -9615,21 +9716,21 @@ FlashReadPages:
sub r3, r2, #1
uxtb r3, r3
cmp r3, #6
- bhi .L1141
+ bhi .L1153
add r1, fp, r4
cmp r2, #7
add fp, fp, r4
- ldr r2, .L1177+4
+ ldr r2, .L1189+4
ldrb r3, [r1, #12] @ zero_extendqisi2
ldreqb r3, [r1, #20] @ zero_extendqisi2
ldrb r1, [fp, #3756] @ zero_extendqisi2
cmp r1, r3
- beq .L1141
+ beq .L1153
ldrb r1, [r2, #1] @ zero_extendqisi2
mov r0, r4
add r2, r2, #4
bl HynixSetRRPara
-.L1141:
+.L1153:
mov r0, r4
mov r5, r5, lsr #31
bl NandcFlashCs
@@ -9639,44 +9740,44 @@ FlashReadPages:
orreq r5, r5, #1
str r5, [sp, #20]
cmp r5, #0
- beq .L1143
- ldr r3, .L1177+4
+ beq .L1155
+ ldr r3, .L1189+4
ldrb r3, [r3, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L1143
+ beq .L1155
bl flash_enter_slc_mode
- b .L1144
-.L1143:
+ b .L1156
+.L1155:
bl flash_exit_slc_mode
-.L1144:
- ldr fp, .L1177+4
-.L1176:
+.L1156:
+ ldr fp, .L1189+4
+.L1188:
ldr r1, [sp, #44]
cmn r1, #1
cmpeq r4, #255
moveq r3, #0
movne r3, #1
moveq r7, r3
- beq .L1146
+ beq .L1158
cmp r7, #0
- beq .L1147
+ beq .L1159
ldr r2, [fp, #856]
mov r0, r4
add r2, r1, r2
bl FlashReadDpCmd
- b .L1148
-.L1147:
+ b .L1160
+.L1159:
mov r0, r4
bl FlashReadCmd
-.L1148:
+.L1160:
mov r0, r4
bl NandcWaitFlashReady
cmp r7, #0
- beq .L1146
+ beq .L1158
mov r0, r4
ldr r1, [sp, #44]
bl FlashReadDpDataOutCmd
-.L1146:
+.L1158:
ldr r3, [r6, #12]
mov r0, r4
ldr r2, [sp, #24]
@@ -9693,12 +9794,12 @@ FlashReadPages:
movne r2, #0
movne r7, #0
strneb r2, [fp, #860]
- bne .L1176
-.L1149:
+ bne .L1188
+.L1161:
cmp r7, #0
mov r5, r0
- beq .L1150
- ldr r3, .L1177+4
+ beq .L1162
+ ldr r3, .L1189+4
mov r0, r4
ldr r1, [r3, #856]
ldr r3, [sp, #44]
@@ -9719,17 +9820,17 @@ FlashReadPages:
cmn r0, #1
mov r8, r0
moveq r7, #0
-.L1150:
+.L1162:
mov r0, r4
- ldr fp, .L1177+4
+ ldr fp, .L1189+4
bl NandcFlashDeCs
ldr ip, [sp, #36]
cmn r5, #1
strb ip, [fp, #860]
- bne .L1154
+ bne .L1166
ldrb r3, [fp, #3780] @ zero_extendqisi2
cmp r3, #0
- beq .L1152
+ beq .L1164
ldr r3, [fp, #3012]
mov r0, r4
ldr r1, [sp, #44]
@@ -9741,68 +9842,68 @@ FlashReadPages:
bl FlashDdrTunningRead
cmn r0, #1
mov r5, r0
- beq .L1153
+ beq .L1165
ldrb r3, [fp, #3836] @ zero_extendqisi2
cmp r0, r3, lsr #1
- bls .L1170
-.L1153:
+ bls .L1182
+.L1165:
ubfx r0, r7, #8, #8
bl NandcSetDdrPara
cmn r5, #1
- bne .L1170
-.L1152:
- ldr r3, .L1177+8
+ bne .L1182
+.L1164:
+ ldr r3, .L1189+8
mov r0, r4
ldr r1, [sp, #44]
ldr r2, [r6, #8]
ldr r7, [r3, #172]
ldr r3, [r6, #12]
cmp r7, #0
- beq .L1155
+ beq .L1167
blx r7
cmn r0, #1
mov r5, r0
- bne .L1172
- ldr r2, .L1177+4
+ bne .L1184
+ ldr r2, .L1189+4
ldr r3, [r2, #3624]
ldrb r3, [r3, #19] @ zero_extendqisi2
sub r3, r3, #1
uxtb r3, r3
cmp r3, #6
- bhi .L1157
+ bhi .L1169
ldrb r1, [r2, #1] @ zero_extendqisi2
mov r0, r4
add r2, r2, #4
mov r3, #0
bl HynixSetRRPara
-.L1157:
+.L1169:
ldr r1, [sp, #44]
mov r0, r4
ldr r2, [r6, #8]
ldr r3, [r6, #12]
bl FlashReadRawPage
- ldr r7, .L1177+4
+ ldr r7, .L1189+4
ldr r1, [r6, #4]
ldrb r2, [r7, #3836] @ zero_extendqisi2
mov r5, r0
- ldr r0, .L1177+12
+ ldr r0, .L1189+12
mov r3, r5
bl printk
cmn r5, #1
- bne .L1172
+ bne .L1184
ldrb r7, [r7, #928] @ zero_extendqisi2
cmp r7, #0
- beq .L1156
+ beq .L1168
ldr ip, [sp, #20]
mov r0, r4
cmp ip, #0
- beq .L1158
+ beq .L1170
bl flash_enter_slc_mode
- b .L1159
-.L1158:
+ b .L1171
+.L1170:
bl flash_exit_slc_mode
-.L1159:
- ldr r3, .L1177+8
+.L1171:
+ ldr r3, .L1189+8
mov r0, r4
ldr r1, [sp, #44]
ldr r2, [r6, #8]
@@ -9810,27 +9911,27 @@ FlashReadPages:
ldr r3, [r6, #12]
blx ip
mov r5, r0
- b .L1172
-.L1155:
+ b .L1184
+.L1167:
bl FlashReadRawPage
mov r5, r0
- b .L1156
-.L1170:
+ b .L1168
+.L1182:
mov r7, #0
-.L1154:
- ldr r3, .L1177+4
+.L1166:
+ ldr r3, .L1189+4
ldrb r3, [r3, #3836] @ zero_extendqisi2
add r3, r3, r3, asl #1
cmp r5, r3, lsr #2
- bls .L1156
- ldr r3, .L1177+8
+ bls .L1168
+ ldr r3, .L1189+8
ldr r3, [r3, #172]
cmp r3, #0
moveq r5, #256
- b .L1156
-.L1172:
+ b .L1168
+.L1184:
mov r7, #0
-.L1156:
+.L1168:
ldr ip, [sp, #16]
cmp r5, #256
cmnne r5, #1
@@ -9840,32 +9941,32 @@ FlashReadPages:
ldr ip, [sp, #16]
ldr r3, [r9, ip]
cmn r3, #1
- bne .L1161
- ldr r2, .L1177+4
+ bne .L1173
+ ldr r2, .L1189+4
ldr r1, [r6, #4]
- ldr r0, .L1177+16
+ ldr r0, .L1189+16
ldrb r2, [r2, #3836] @ zero_extendqisi2
bl printk
ldr r1, [r6, #12]
cmp r1, #0
- beq .L1161
+ beq .L1173
mov r2, #4
- ldr r0, .L1177+20
+ ldr r0, .L1189+20
mov r3, r2
bl rknand_print_hex
-.L1161:
+.L1173:
cmp r7, #0
- beq .L1162
- ldr r3, .L1177+4
+ beq .L1174
+ ldr r3, .L1189+4
ldrb r3, [r3, #3836] @ zero_extendqisi2
add r3, r3, r3, asl #1
cmp r8, r3, lsr #2
- bls .L1163
- ldr r3, .L1177+8
+ bls .L1175
+ ldr r3, .L1189+8
ldr r3, [r3, #172]
cmp r3, #0
moveq r8, #256
-.L1163:
+.L1175:
add r3, sl, #1
mov r2, #36
cmp r8, #256
@@ -9874,30 +9975,30 @@ FlashReadPages:
movne r2, #0
str r8, [r9, r3]
strne r2, [r9, r3]
-.L1162:
+.L1174:
ldr ip, [sp, #20]
add sl, sl, r7
cmp ip, #0
- beq .L1139
- ldr r3, .L1177+4
+ beq .L1151
+ ldr r3, .L1189+4
ldrb r3, [r3, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L1139
+ beq .L1151
mov r0, r4
bl flash_exit_slc_mode
-.L1139:
+.L1151:
add sl, sl, #1
-.L1136:
+.L1148:
ldr ip, [sp, #28]
cmp sl, ip
- bcc .L1164
+ bcc .L1176
mov r0, #0
-.L1137:
+.L1149:
add sp, sp, #52
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1178:
+.L1190:
.align 2
-.L1177:
+.L1189:
.word .LANCHOR1
.word .LANCHOR0
.word .LANCHOR2
@@ -9913,7 +10014,7 @@ FtlGcScanTempBlk:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L1204
+ ldr r2, .L1216
movw r3, #3000
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
@@ -9924,38 +10025,38 @@ FtlGcScanTempBlk:
mov r5, r0
str r1, [sp, #20]
cmp r4, r3
- beq .L1200
+ beq .L1212
cmp r4, #0
- bne .L1180
- b .L1181
-.L1200:
+ bne .L1192
+ b .L1193
+.L1212:
mov r4, #0
-.L1180:
- ldr r2, .L1204+4
+.L1192:
+ ldr r2, .L1216+4
movw r3, #3916
ldr fp, [sp, #20]
ldrh r3, [r2, r3]
cmp fp, r3
- bne .L1182
-.L1181:
+ bne .L1194
+.L1193:
bl FtlGcPageVarInit
-.L1182:
+.L1194:
mov r7, #0
movw r8, #65535
mov sl, r7
mvn r3, #0
str r3, [sp, #16]
-.L1195:
+.L1207:
ldrh r3, [r5, #0]
strb sl, [r5, #8]
cmp r3, r8
- beq .L1201
-.L1184:
-.L1202:
- ldr r3, .L1204+4
+ beq .L1213
+.L1196:
+.L1214:
+ ldr r3, .L1216+4
movw r2, #3848
ldrh r9, [r3, r2]
- ldr r2, .L1204+8
+ ldr r2, .L1216+8
ldr lr, [r2, #-972]
ldr ip, [r2, #-1168]
movw r2, #3928
@@ -9964,11 +10065,11 @@ FtlGcScanTempBlk:
mov r6, r3
str r2, [sp, #12]
mov r2, r5
- b .L1185
-.L1187:
+ b .L1197
+.L1199:
ldrh r0, [r2, #16]
cmp r0, r8
- beq .L1186
+ beq .L1198
mov fp, #36
orr r0, r4, r0, asl #10
mla r1, fp, r6, lr
@@ -9983,14 +10084,14 @@ FtlGcScanTempBlk:
bic r0, r0, #3
add r0, ip, r0
str r0, [r1, #12]
-.L1186:
+.L1198:
add r3, r3, #1
add r2, r2, #2
uxth r3, r3
-.L1185:
+.L1197:
cmp r3, r9
- bne .L1187
- ldr r9, .L1204+8
+ bne .L1199
+ ldr r9, .L1216+8
mov r1, r6
mov r2, #0
ldr r0, [r9, #-972]
@@ -9999,8 +10100,8 @@ FtlGcScanTempBlk:
mul r3, r3, r6
mov r6, #0
str r3, [sp, #12]
- b .L1188
-.L1196:
+ b .L1200
+.L1208:
ldr r1, [r9, #-972]
add r3, r1, r6
ldr fp, [r3, #4]
@@ -10012,55 +10113,54 @@ FtlGcScanTempBlk:
ldr r1, [r1, r6]
cmp r1, #0
mov r2, r0
- bne .L1189
+ bne .L1201
ldr r3, [r3, #12]
add r6, r6, #36
ldrh r1, [r3, #0]
cmp r1, r8
- ldreq r3, .L1204+8
+ ldreq r3, .L1216+8
moveq r1, #1
streq r1, [r3, #-1012]
- beq .L1183
-.L1190:
+ beq .L1195
+.L1202:
ldr r0, [r3, #12]
mov r1, fp
ldr r2, [r3, #8]
bl FtlGcUpdatePage
- b .L1188
-.L1189:
+ b .L1200
+.L1201:
mov r2, fp
- ldr r0, .L1204+12
+ ldr r0, .L1216+12
ldrh r1, [r5, #0]
bl printk
- ldr r3, .L1204+4
+ ldr r3, .L1216+4
ldr r2, [r3, #3840]
cmp r2, #0
- bne .L1191
- ldrb r3, [r3, #928] @ zero_extendqisi2
- cmp r3, #0
- beq .L1192
-.L1191:
- ldr r2, .L1204+8
- ldrh r3, [r5, #0]
- ldr r2, [r2, #-2080]
- mov r3, r3, asl #1
+ bne .L1203
+ ldrb r2, [r3, #928] @ zero_extendqisi2
+ cmp r2, #0
+ beq .L1204
+.L1203:
+ ldrh r1, [r5, #0]
+ ldr r2, [r3, #4048]
+ mov r3, r1, asl #1
ldrh r3, [r2, r3]
cmp r3, #119
- bls .L1193
-.L1192:
- ldr r3, .L1204+8
+ bls .L1205
+.L1204:
+ ldr r3, .L1216+8
ldr r3, [r3, #-972]
ldr r3, [r3, r6]
cmn r3, #1
- bne .L1194
-.L1193:
- ldr r3, .L1204+8
+ bne .L1206
+.L1205:
+ ldr r3, .L1216+8
ldr r3, [r3, #-972]
add r6, r3, r6
ldr r6, [r6, #4]
str r6, [sp, #16]
-.L1194:
- ldr r2, .L1204+8
+.L1206:
+ ldr r2, .L1216+8
mov r4, #0
ldrh r3, [r5, #0]
ldr r2, [r2, #-2016]
@@ -10071,39 +10171,39 @@ FtlGcScanTempBlk:
mvn r3, #0
strh r3, [r5, #0] @ movhi
bl FtlGcPageVarInit
- b .L1195
-.L1188:
+ b .L1207
+.L1200:
ldr r3, [sp, #12]
cmp r6, r3
- bne .L1196
+ bne .L1208
ldr fp, [sp, #20]
add r7, r7, #1
add r4, r4, #1
cmp r7, fp
uxth r4, r4
- bcc .L1197
- ldr r2, .L1204
+ bcc .L1209
+ ldr r2, .L1216
movw r3, #3000
ldrh r1, [r2, r3]
cmp r1, r8
- beq .L1197
+ beq .L1209
add r1, r1, r7
strh r1, [r2, r3] @ movhi
- ldr r2, .L1204+4
+ ldr r2, .L1216+4
add r3, r3, #916
ldrh r3, [r2, r3]
cmp r3, r4
- bhi .L1198
-.L1197:
- ldr r2, .L1204+4
+ bhi .L1210
+.L1209:
+ ldr r2, .L1216+4
movw r3, #3916
ldrh r3, [r2, r3]
cmp r3, r4
- bhi .L1202
-.L1201:
+ bhi .L1214
+.L1213:
mov r2, #0
-.L1183:
- ldr r1, .L1204
+.L1195:
+ ldr r1, .L1216
movw r3, #3000
mvn r0, #0
strh r4, [r5, #2] @ movhi
@@ -10112,13 +10212,13 @@ FtlGcScanTempBlk:
mov r0, r5
mov r1, r4
bl ftl_sb_update_avl_pages
-.L1198:
+.L1210:
ldr r0, [sp, #16]
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1205:
+.L1217:
.align 2
-.L1204:
+.L1216:
.word .LANCHOR1
.word .LANCHOR0
.word .LANCHOR2
@@ -10126,6 +10226,335 @@ FtlGcScanTempBlk:
.fnend
.size FtlGcScanTempBlk, .-FtlGcScanTempBlk
.align 2
+ .global FtlScanAllBlock
+ .type FtlScanAllBlock, %function
+FtlScanAllBlock:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 56
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .pad #84
+ sub sp, sp, #84
+ ldr r0, .L1228
+ mov r5, #0
+ ldr r1, .L1228+4
+ bl printk
+ ldr r7, .L1228+8
+ b .L1219
+.L1227:
+ add r4, sp, #80
+ mov r0, r5
+ ldr r6, .L1228+12
+ mov r9, #36
+ strh r5, [r4, #-48]! @ movhi
+ bl ftl_get_blk_mode
+ mov r2, r5, asl #1
+ ldr ip, [r6, #-2016]
+ mov r1, r5
+ ldrh r2, [ip, r2]
+ mov r3, r0
+ ldr r0, .L1228+16
+ bl printk
+ mov r0, r4
+ bl make_superblock
+ movw r3, #3848
+ ldrh sl, [r7, r3]
+ add r3, r3, #78
+ add r0, r4, #14
+ mov r4, #0
+ ldrh r3, [r7, r3]
+ ldr r8, [r6, #-972]
+ ldr lr, [r6, #-1172]
+ str r3, [sp, #28]
+ movw r3, #3928
+ ldrh ip, [r7, r3]
+ mov r3, r4
+ ldr r6, [r6, #-1168]
+ b .L1220
+.L1222:
+ ldrh r1, [r0, #2]!
+ movw r2, #65535
+ cmp r1, r2
+ beq .L1221
+ mla r2, r9, r4, r8
+ ldr fp, [sp, #28]
+ mov r1, r1, asl #10
+ str r1, [r2, #4]
+ mul r1, fp, r4
+ add fp, r1, #3
+ cmp r1, #0
+ movlt r1, fp
+ bic r1, r1, #3
+ add r1, lr, r1
+ str r1, [r2, #8]
+ mul r1, ip, r4
+ add r4, r4, #1
+ uxth r4, r4
+ add fp, r1, #3
+ cmp r1, #0
+ movlt r1, fp
+ bic r1, r1, #3
+ add r1, r6, r1
+ str r1, [r2, #12]
+.L1221:
+ add r3, r3, #1
+ uxth r3, r3
+.L1220:
+ cmp r3, sl
+ bne .L1222
+ ldr sl, .L1228+12
+ mov r1, r4
+ mov r2, #0
+ mov r6, #0
+ mov r8, r6
+ ldr r0, [sl, #-972]
+ bl FlashReadPages
+ b .L1223
+.L1224:
+ ldr r2, [sl, #-972]
+ add r8, r8, #1
+ ldrh r1, [sp, #32]
+ add r3, r2, r6
+ uxth r8, r8
+ ldr r0, [r3, #12]
+ ldr ip, [r3, #8]
+ ldr lr, [r0, #0]
+ str lr, [sp, #0]
+ ldr lr, [r0, #4]
+ str lr, [sp, #4]
+ ldr lr, [r0, #8]
+ str lr, [sp, #8]
+ ldr r0, [r0, #12]
+ str r0, [sp, #12]
+ ldr r0, [ip, #0]
+ str r0, [sp, #16]
+ ldr r0, [ip, #4]
+ str r0, [sp, #20]
+ ldr r0, .L1228+20
+ ldr r2, [r2, r6]
+ add r6, r6, #36
+ ldr r3, [r3, #4]
+ bl printk
+.L1223:
+ cmp r8, r4
+ ldr r9, .L1228+12
+ bne .L1224
+ ldr r0, [r9, #-972]
+ mov r1, r4
+ mov r2, #1
+ mov r6, #0
+ bl FlashReadPages
+ mov r8, r6
+ mov sl, r9
+ b .L1225
+.L1226:
+ ldr r2, [sl, #-972]
+ add r8, r8, #1
+ ldrh r1, [sp, #32]
+ add r3, r2, r6
+ uxth r8, r8
+ ldr r0, [r3, #12]
+ ldr ip, [r3, #8]
+ ldr lr, [r0, #0]
+ str lr, [sp, #0]
+ ldr lr, [r0, #4]
+ str lr, [sp, #4]
+ ldr lr, [r0, #8]
+ str lr, [sp, #8]
+ ldr r0, [r0, #12]
+ str r0, [sp, #12]
+ ldr r0, [ip, #0]
+ str r0, [sp, #16]
+ ldr r0, [ip, #4]
+ str r0, [sp, #20]
+ ldr r0, .L1228+24
+ ldr r2, [r2, r6]
+ add r6, r6, #36
+ ldr r3, [r3, #4]
+ bl printk
+.L1225:
+ cmp r8, r4
+ bne .L1226
+ add r5, r5, #1
+ uxth r5, r5
+.L1219:
+ movw r3, #3858
+ ldrh r3, [r7, r3]
+ cmp r3, r5
+ bhi .L1227
+ mov r0, #0
+ add sp, sp, #84
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+.L1229:
+ .align 2
+.L1228:
+ .word .LC101
+ .word .LANCHOR3+15
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .word .LC102
+ .word .LC103
+ .word .LC104
+ .fnend
+ .size FtlScanAllBlock, .-FtlScanAllBlock
+ .align 2
+ .global FtlDumpBlockInfo
+ .type FtlDumpBlockInfo, %function
+FtlDumpBlockInfo:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 56
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ ubfx r0, r0, #10, #16
+ .pad #84
+ sub sp, sp, #84
+ mov r7, r1
+ bl P2V_block_in_plane
+ ldr r5, .L1241
+ ldr r1, .L1241+4
+ movw r6, #3916
+ ldrh r9, [r5, r6]
+ mov r4, r0
+ ldr r0, .L1241+8
+ bl printk
+ ldr r3, .L1241+12
+ mov r1, r4
+ ldr r0, .L1241+16
+ ldr r2, [r3, #-2016]
+ mov r3, r4, asl #1
+ ldrh r2, [r2, r3]
+ bl printk
+ add r0, sp, #80
+ strh r4, [r0, #-48]! @ movhi
+ bl make_superblock
+ rsbs r7, r7, #1
+ ldrb r3, [r5, #928] @ zero_extendqisi2
+ movcc r7, #0
+ cmp r3, #0
+ moveq r7, #0
+ cmp r7, #0
+ beq .L1231
+ mov r0, r4
+ bl ftl_get_blk_mode
+ cmp r0, #1
+ mov r7, r0
+ movweq r3, #3918
+ ldreqh r9, [r5, r3]
+.L1231:
+ ldrh r3, [r5, r6]
+ mov r1, r7
+ ldr r0, .L1241+20
+ mov r2, r9
+ bl printk
+ mov r6, #0
+.L1232:
+ ldr r3, .L1241
+ movw r2, #3848
+ movw r1, #3926
+ mov r4, #0
+ add r0, sp, #46
+ ldrh sl, [r3, r2]
+ ldr r2, .L1241+12
+ ldrh lr, [r3, r1]
+ ldr r8, [r2, #-972]
+ ldr r5, [r2, #-1172]
+ ldr ip, [r2, #-1168]
+ movw r2, #3928
+ ldrh r2, [r3, r2]
+ mov r3, r4
+ str r2, [sp, #28]
+ b .L1233
+.L1235:
+ ldrh r1, [r0, #2]!
+ movw r2, #65535
+ cmp r1, r2
+ beq .L1234
+ mov fp, #36
+ orr r1, r6, r1, asl #10
+ mla r2, fp, r4, r8
+ str r1, [r2, #4]
+ mul r1, lr, r4
+ add fp, r1, #3
+ cmp r1, #0
+ movlt r1, fp
+ ldr fp, [sp, #28]
+ bic r1, r1, #3
+ add r1, r5, r1
+ str r1, [r2, #8]
+ mul r1, fp, r4
+ add r4, r4, #1
+ uxth r4, r4
+ add fp, r1, #3
+ cmp r1, #0
+ movlt r1, fp
+ bic r1, r1, #3
+ add r1, ip, r1
+ str r1, [r2, #12]
+.L1234:
+ add r3, r3, #1
+ uxth r3, r3
+.L1233:
+ cmp r3, sl
+ bne .L1235
+ ldr r8, .L1241+12
+ mov r1, r4
+ mov r2, r7
+ mov r5, #0
+ mov sl, r5
+ ldr r0, [r8, #-972]
+ bl FlashReadPages
+ b .L1236
+.L1237:
+ ldr r2, [r8, #-972]
+ add sl, sl, #1
+ ldrh r1, [sp, #32]
+ add r3, r2, r5
+ uxth sl, sl
+ ldr r0, [r3, #12]
+ ldr ip, [r3, #8]
+ ldr lr, [r0, #0]
+ str lr, [sp, #0]
+ ldr lr, [r0, #4]
+ str lr, [sp, #4]
+ ldr lr, [r0, #8]
+ str lr, [sp, #8]
+ ldr r0, [r0, #12]
+ str r0, [sp, #12]
+ ldr r0, [ip, #0]
+ str r0, [sp, #16]
+ ldr r0, [ip, #4]
+ str r0, [sp, #20]
+ ldr r0, .L1241+24
+ ldr r2, [r2, r5]
+ add r5, r5, #36
+ ldr r3, [r3, #4]
+ bl printk
+.L1236:
+ cmp sl, r4
+ bne .L1237
+ add r6, r6, #1
+ uxth r6, r6
+ cmp r6, r9
+ bne .L1232
+.L1238:
+ mov r0, #0
+ add sp, sp, #84
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+.L1242:
+ .align 2
+.L1241:
+ .word .LANCHOR0
+ .word .LANCHOR3+31
+ .word .LC101
+ .word .LANCHOR2
+ .word .LC105
+ .word .LC106
+ .word .LC107
+ .fnend
+ .size FtlDumpBlockInfo, .-FtlDumpBlockInfo
+ .align 2
.global FtlScanSysBlk
.type FtlScanSysBlk, %function
FtlScanSysBlk:
@@ -10135,12 +10564,12 @@ FtlScanSysBlk:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r6, #0
- ldr r5, .L1264
+ ldr r5, .L1301
.pad #28
sub sp, sp, #28
- ldr r4, .L1264+4
+ ldr r4, .L1301+4
mov r1, r6
- ldr r3, .L1264+8
+ ldr r3, .L1301+8
mov r7, #3936
ldr r2, [r5, #3944]
ldr r0, [r4, #-1036]
@@ -10165,15 +10594,15 @@ FtlScanSysBlk:
ldr r0, [r5, #3964]
mov r2, r2, asl #1
bl ftl_memset
- ldr r0, .L1264+12
+ ldr r0, .L1301+12
mov r1, #255
mov r2, #12
bl ftl_memset
mov r3, #3856
ldrh r3, [r5, r3]
str r3, [sp, #8]
- b .L1207
-.L1209:
+ b .L1244
+.L1246:
add r3, r6, r5
ldr r1, [sp, #8]
ldrb r0, [r3, #3874] @ zero_extendqisi2
@@ -10182,7 +10611,7 @@ FtlScanSysBlk:
bl FtlBbmIsBadBlock
ldr r3, [sp, #0]
cmp r0, #0
- bne .L1208
+ bne .L1245
ldr r2, [r4, #-972]
mov r3, r3, asl #10
mla r2, r9, r7, r2
@@ -10200,22 +10629,22 @@ FtlScanSysBlk:
bic r3, r3, #3
add r3, r1, r3
str r3, [r2, #12]
-.L1208:
+.L1245:
add r5, r5, #1
uxth r5, r5
- b .L1242
-.L1255:
+ b .L1279
+.L1292:
mov r7, #0
movw fp, #3848
mov r5, r7
mov r9, #36
movw r8, #3928
-.L1242:
+.L1279:
ldrh r3, [r6, fp]
cmp r3, r5
- bhi .L1209
+ bhi .L1246
cmp r7, #0
- beq .L1210
+ beq .L1247
ldr r0, [r4, #-972]
mov r1, r7
mov r2, #1
@@ -10223,7 +10652,7 @@ FtlScanSysBlk:
bl FlashReadPages
mov r8, #0
str r8, [sp, #12]
-.L1241:
+.L1278:
ldr r3, [r4, #-972]
add r2, r3, r8
ldr r3, [r3, r8]
@@ -10231,9 +10660,9 @@ FtlScanSysBlk:
cmn r3, #1
ldr r5, [r2, #12]
ubfx r6, r6, #10, #16
- bne .L1211
+ bne .L1248
mov r7, #16
-.L1213:
+.L1250:
ldr r0, [r4, #-972]
mov r1, #1
mov r2, r1
@@ -10248,53 +10677,53 @@ FtlScanSysBlk:
ldreq r3, [sl, #-972]
mvneq r2, #0
streq r2, [r3, r8]
- beq .L1211
-.L1212:
+ beq .L1248
+.L1249:
ldr r3, [r4, #-972]
ldr r3, [r3, r8]
cmn r3, #1
- bne .L1211
+ bne .L1248
sub r7, r7, #1
uxth r7, r7
cmp r7, #0
- bne .L1213
-.L1211:
+ bne .L1250
+.L1248:
ldr r3, [r4, #-972]
ldr r3, [r3, r8]
cmn r3, #1
- beq .L1214
+ beq .L1251
ldr r2, [r4, #-1804]
ldr r3, [r5, #4]
cmn r2, #1
- beq .L1215
+ beq .L1252
cmp r2, r3
- bhi .L1216
-.L1215:
+ bhi .L1253
+.L1252:
cmn r3, #1
addne r3, r3, #1
strne r3, [sl, #-1804]
-.L1216:
+.L1253:
ldrh r3, [r5, #0]
movw r2, #61604
cmp r3, r2
- beq .L1219
- bhi .L1222
+ beq .L1256
+ bhi .L1259
movw r2, #61574
cmp r3, r2
- bne .L1217
- b .L1262
-.L1222:
+ bne .L1254
+ b .L1299
+.L1259:
movw r2, #61634
cmp r3, r2
- beq .L1220
+ beq .L1257
movw r2, #65535
cmp r3, r2
- bne .L1217
- b .L1263
-.L1220:
- ldr r3, .L1264
+ bne .L1254
+ b .L1300
+.L1257:
+ ldr r3, .L1301
mov r9, r6
- ldr r1, .L1264+8
+ ldr r1, .L1301+8
ldr ip, [r4, #-1036]
ldr r0, [r3, #3944]
ldrh r1, [r4, r1]
@@ -10305,28 +10734,28 @@ FtlScanSysBlk:
uxth r3, r3
sxth r2, r2
str r2, [sp, #4]
- b .L1223
-.L1229:
+ b .L1260
+.L1266:
mov r6, r2, asl #2
ldr r7, [r5, #4]
str r6, [sp, #16]
ldr r6, [ip, r2, asl #2]
cmp r7, r6
- bls .L1224
+ bls .L1261
ldr ip, [ip, #0]
mov r6, r9
cmp ip, #0
- bne .L1225
+ bne .L1262
cmp r1, r0
addne r1, r1, #1
- ldrne r0, .L1264+8
+ ldrne r0, .L1301+8
strneh r1, [r4, r0] @ movhi
-.L1225:
+.L1262:
mov r0, #0
sxth r9, r3
str r3, [sp, #4]
- b .L1226
-.L1227:
+ b .L1263
+.L1264:
ldr r7, [r4, #-1036]
add ip, r1, #1
add r0, r0, #1
@@ -10338,10 +10767,10 @@ FtlScanSysBlk:
ldr r7, [r4, #-1040]
ldrh ip, [r7, ip]
strh ip, [r7, r1] @ movhi
-.L1226:
+.L1263:
sxth r1, r0
cmp r1, r9
- bne .L1227
+ bne .L1264
ldr r1, [sl, #-1036]
mov r2, r2, asl #1
ldr r0, [r5, #4]
@@ -10350,29 +10779,29 @@ FtlScanSysBlk:
str r0, [r1, ip]
ldr r1, [sl, #-1040]
strh r6, [r1, r2] @ movhi
- b .L1228
-.L1224:
+ b .L1265
+.L1261:
sub r3, r3, #1
uxth r3, r3
-.L1223:
+.L1260:
ldr r6, [sp, #4]
sxth r2, r3
cmp r2, r6
- bgt .L1229
+ bgt .L1266
mov r6, r9
-.L1228:
+.L1265:
sxth r3, r3
cmp r3, #0
- blt .L1217
- ldr r2, .L1264+8
- ldr r0, .L1264
+ blt .L1254
+ ldr r2, .L1301+8
+ ldr r0, .L1301
ldrh r1, [r4, r2]
ldr r0, [r0, #3944]
rsb r0, r1, r0
sub r0, r0, #1
sxth r0, r0
cmp r3, r0
- bgt .L1217
+ bgt .L1254
add r1, r1, #1
strh r1, [r4, r2] @ movhi
ldr r2, [r4, #-1036]
@@ -10380,9 +10809,9 @@ FtlScanSysBlk:
str r1, [r2, r3, asl #2]
mov r3, r3, asl #1
ldr r2, [r4, #-1040]
- b .L1259
-.L1262:
- ldr r1, .L1264
+ b .L1296
+.L1299:
+ ldr r1, .L1301
mov r3, #3936
movw ip, #3962
mov r9, r6
@@ -10393,31 +10822,31 @@ FtlScanSysBlk:
uxth r3, r2
rsb r2, r1, r2
str r2, [sp, #4]
- b .L1230
-.L1236:
+ b .L1267
+.L1273:
mov r6, r2, asl #2
ldr r7, [r5, #4]
str r6, [sp, #16]
ldr r6, [ip, r2, asl #2]
cmp r7, r6
- bls .L1231
+ bls .L1268
ldr ip, [ip, #0]
mov r6, r9
cmp ip, #0
- bne .L1232
+ bne .L1269
cmp r1, r0
addne r1, r1, #1
- ldrne ip, .L1264
+ ldrne ip, .L1301
movwne r0, #3962
strneh r1, [ip, r0] @ movhi
-.L1232:
+.L1269:
sxth ip, r3
mov r0, #0
str ip, [sp, #20]
- ldr r9, .L1264
+ ldr r9, .L1301
str r3, [sp, #4]
- b .L1233
-.L1234:
+ b .L1270
+.L1271:
ldr r7, [r4, #-908]
add ip, r1, #1
add r0, r0, #1
@@ -10429,35 +10858,35 @@ FtlScanSysBlk:
ldr r7, [r9, #3964]
ldrh ip, [r7, ip]
strh ip, [r7, r1] @ movhi
-.L1233:
+.L1270:
ldr ip, [sp, #20]
sxth r1, r0
cmp r1, ip
- bne .L1234
+ bne .L1271
ldr r1, [sl, #-908]
mov r2, r2, asl #1
ldr r0, [r5, #4]
ldr ip, [sp, #16]
ldr r3, [sp, #4]
str r0, [r1, ip]
- ldr r1, .L1264
+ ldr r1, .L1301
ldr r1, [r1, #3964]
strh r6, [r1, r2] @ movhi
- b .L1235
-.L1231:
+ b .L1272
+.L1268:
sub r3, r3, #1
uxth r3, r3
-.L1230:
+.L1267:
ldr r6, [sp, #4]
sxth r2, r3
cmp r2, r6
- bgt .L1236
+ bgt .L1273
mov r6, r9
-.L1235:
+.L1272:
sxth r3, r3
cmp r3, #0
- blt .L1217
- ldr r2, .L1264
+ blt .L1254
+ ldr r2, .L1301
mov ip, #3936
movw r1, #3962
ldrh ip, [r2, ip]
@@ -10466,7 +10895,7 @@ FtlScanSysBlk:
rsb ip, r0, ip
sxth ip, ip
cmp r3, ip
- bgt .L1217
+ bgt .L1254
add r0, r0, #1
strh r0, [r2, r1] @ movhi
ldr r0, [r5, #4]
@@ -10474,93 +10903,93 @@ FtlScanSysBlk:
str r0, [r1, r3, asl #2]
mov r3, r3, asl #1
ldr r2, [r2, #3964]
-.L1259:
+.L1296:
strh r6, [r2, r3] @ movhi
- b .L1217
-.L1219:
- ldr r3, .L1264+16
+ b .L1254
+.L1256:
+ ldr r3, .L1301+16
movw ip, #65535
ldrh r2, [r4, r3]
cmp r2, ip
streqh r6, [r4, r3] @ movhi
- beq .L1260
- ldr r3, .L1264+20
+ beq .L1297
+ ldr r3, .L1301+20
movw r1, #65535
ldrh r0, [r4, r3]
cmp r0, r1
- beq .L1238
+ beq .L1275
mov r1, #1
bl FtlFreeSysBlkQueueIn
-.L1238:
+.L1275:
ldr r3, [r5, #4]
ldr r2, [sl, #-1764]
cmp r2, r3
- ldr r3, .L1264+20
+ ldr r3, .L1301+20
strcsh r6, [r4, r3] @ movhi
- bcs .L1217
- ldr r2, .L1264+16
+ bcs .L1254
+ ldr r2, .L1301+16
ldrh r1, [r4, r2]
strh r6, [r4, r2] @ movhi
strh r1, [r4, r3] @ movhi
-.L1260:
+.L1297:
ldr r3, [r5, #4]
str r3, [r4, #-1764]
- b .L1217
-.L1263:
+ b .L1254
+.L1300:
mov r0, r6
- b .L1261
-.L1214:
- ldr r3, .L1264
+ b .L1298
+.L1251:
+ ldr r3, .L1301
mov r0, r6
ldrb r1, [r3, #928] @ zero_extendqisi2
cmp r1, #0
- beq .L1240
-.L1261:
+ beq .L1277
+.L1298:
mov r1, #0
-.L1240:
+.L1277:
bl FtlFreeSysBlkQueueIn
-.L1217:
+.L1254:
ldr r6, [sp, #12]
add r8, r8, #36
add r3, r6, #1
uxth r3, r3
str r3, [sp, #12]
cmp r3, fp
- bne .L1241
-.L1210:
+ bne .L1278
+.L1247:
ldr ip, [sp, #8]
add r3, ip, #1
uxth r3, r3
str r3, [sp, #8]
-.L1207:
- ldr r6, .L1264
+.L1244:
+ ldr r6, .L1301
movw r3, #3858
ldr ip, [sp, #8]
ldrh r3, [r6, r3]
cmp r3, ip
- bhi .L1255
- ldr r1, .L1264+4
+ bhi .L1292
+ ldr r1, .L1301+4
ldr r2, [r1, #-1040]
ldrh r3, [r2, #0]
cmp r3, #0
- bne .L1243
- ldr r0, .L1264+8
+ bne .L1280
+ ldr r0, .L1301+8
ldrh r1, [r1, r0]
cmp r1, #0
ldrne r0, [r6, #3944]
- bne .L1244
- b .L1243
-.L1248:
+ bne .L1281
+ b .L1280
+.L1285:
mov r1, r1, asl #1
ldrh r1, [r2, r1]
cmp r1, #0
- beq .L1245
- ldr r7, .L1264
+ beq .L1282
+ ldr r7, .L1301
sxth r6, r3
- ldr r1, .L1264+4
+ ldr r1, .L1301+4
mov r5, #0
- b .L1246
-.L1247:
+ b .L1283
+.L1284:
ldr ip, [r1, #-1040]
mov r0, r2, asl #1
rsb r4, r6, r2
@@ -10574,43 +11003,43 @@ FtlScanSysBlk:
str r2, [ip, r4, asl #2]
ldr r2, [r1, #-1040]
strh r5, [r2, r0] @ movhi
-.L1246:
+.L1283:
ldr r0, [r7, #3944]
sxth r2, r3
cmp r2, r0
- bcc .L1247
- b .L1243
-.L1245:
+ bcc .L1284
+ b .L1280
+.L1282:
add r3, r3, #1
uxth r3, r3
-.L1244:
+.L1281:
sxth r1, r3
cmp r1, r0
- bcc .L1248
-.L1243:
- ldr r2, .L1264
+ bcc .L1285
+.L1280:
+ ldr r2, .L1301
ldr r1, [r2, #3964]
ldrh r3, [r1, #0]
cmp r3, #0
- bne .L1249
+ bne .L1286
movw r0, #3962
ldrh r0, [r2, r0]
cmp r0, #0
movne r0, #3936
ldrneh r2, [r2, r0]
- bne .L1250
- b .L1249
-.L1254:
+ bne .L1287
+ b .L1286
+.L1291:
mov ip, r0, asl #1
ldrh ip, [r1, ip]
cmp ip, #0
- beq .L1251
- ldr r1, .L1264
+ beq .L1288
+ ldr r1, .L1301
mov r8, #3936
- ldr r7, .L1264+4
+ ldr r7, .L1301+4
mov r6, #0
- b .L1252
-.L1253:
+ b .L1289
+.L1290:
ldr r4, [r1, #3964]
mov ip, r2, asl #1
rsb r5, r0, r2
@@ -10624,26 +11053,26 @@ FtlScanSysBlk:
str r2, [r4, r5, asl #2]
ldr r2, [r1, #3964]
strh r6, [r2, ip] @ movhi
-.L1252:
+.L1289:
ldrh ip, [r1, r8]
sxth r2, r3
cmp r2, ip
- blt .L1253
- b .L1249
-.L1251:
+ blt .L1290
+ b .L1286
+.L1288:
add r3, r3, #1
uxth r3, r3
-.L1250:
+.L1287:
sxth r0, r3
cmp r0, r2
- blt .L1254
-.L1249:
+ blt .L1291
+.L1286:
mov r0, #0
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1265:
+.L1302:
.align 2
-.L1264:
+.L1301:
.word .LANCHOR0
.word .LANCHOR2
.word -1044
@@ -10660,7 +11089,7 @@ FtlGetLastWrittenPage:
@ args = 0, pretend = 0, frame = 104
@ frame_needed = 0, uses_anonymous_args = 0
cmp r1, #1
- ldr r3, .L1277
+ ldr r3, .L1314
stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
.save {r4, r5, r6, r7, r8, sl, lr}
movweq r2, #3918
@@ -10686,9 +11115,9 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr r3, [sp, #40]
cmn r3, #1
- bne .L1270
- b .L1275
-.L1273:
+ bne .L1307
+ b .L1312
+.L1310:
add r6, r6, r3
mov r0, r7
mov r1, #1
@@ -10701,30 +11130,30 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr r3, [sp, #40]
cmn r3, #1
- bne .L1271
+ bne .L1308
ldr r3, [sp, #44]
cmn r3, #1
- bne .L1271
+ bne .L1308
ldr r3, [sp, #4]
cmn r3, #1
subne r4, r6, #1
uxthne r4, r4
- bne .L1275
-.L1271:
+ bne .L1312
+.L1308:
add r6, r6, #1
uxth r8, r6
-.L1275:
+.L1312:
sxth r6, r8
sxth r3, r4
cmp r6, r3
- ble .L1273
-.L1270:
+ ble .L1310
+.L1307:
sxth r0, r4
add sp, sp, #108
ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
-.L1278:
+.L1315:
.align 2
-.L1277:
+.L1314:
.word .LANCHOR0
.fnend
.size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
@@ -10738,10 +11167,10 @@ FtlLoadSysInfo:
stmfd sp!, {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mov r5, #0
- ldr r4, .L1295
+ ldr r4, .L1332
mov r1, r5
- ldr r2, .L1295+4
- ldr r7, .L1295+8
+ ldr r2, .L1332+4
+ ldr r7, .L1332+8
ldr r3, [r4, #-936]
str r5, [r4, #188]
ldr r0, [r4, #-2016]
@@ -10753,18 +11182,18 @@ FtlLoadSysInfo:
ldrh r0, [r4, r7]
movw r3, #65535
cmp r0, r3
- beq .L1293
+ beq .L1330
mov r1, #1
bl FtlGetLastWrittenPage
- ldr r3, .L1295+12
+ ldr r3, .L1332+12
add r2, r0, #1
mov r6, r0
strh r2, [r4, r3] @ movhi
- b .L1281
-.L1284:
+ b .L1318
+.L1321:
ldrh r2, [r4, r7]
mov r1, #1
- ldr r0, .L1295+16
+ ldr r0, .L1332+16
orr r3, r3, r2, asl #10
str r3, [r4, #184]
ldr r3, [r4, #-960]
@@ -10773,31 +11202,31 @@ FtlLoadSysInfo:
bl FlashReadPages
ldr r3, [r4, #180]
cmn r3, #1
- beq .L1282
+ beq .L1319
ldr r3, [r4, #-960]
ldr r2, [r3, #0]
- ldr r3, .L1295+20
+ ldr r3, .L1332+20
cmp r2, r3
- bne .L1282
+ bne .L1319
ldr r3, [r4, #-936]
ldrh r2, [r3, #0]
movw r3, #61604
cmp r2, r3
- beq .L1283
-.L1282:
+ beq .L1320
+.L1319:
sub r5, r5, #1
uxth r5, r5
-.L1281:
+.L1318:
add r3, r5, r6
sxth r3, r3
cmp r3, #0
- bge .L1284
-.L1283:
- ldr r4, .L1295
+ bge .L1321
+.L1320:
+ ldr r4, .L1332
mov r2, #48
- ldr r5, .L1295+4
+ ldr r5, .L1332+4
mov r6, #3856
- ldr r0, .L1295+24
+ ldr r0, .L1332+24
ldr r7, [r4, #188]
mov r1, r7
bl memcpy
@@ -10818,7 +11247,7 @@ FtlLoadSysInfo:
movw r3, #3960
ldrh r3, [r5, r3]
cmp r3, #0
- beq .L1285
+ beq .L1322
ldrh r3, [r5, r6]
mov r2, #3952
ldrh r2, [r5, r2]
@@ -10831,22 +11260,22 @@ FtlLoadSysInfo:
ubfx r1, r1, #2, #14
add r1, r3, r1, asl #2
bl memcpy
-.L1285:
- ldr r4, .L1295
- ldr r3, .L1295+20
+.L1322:
+ ldr r4, .L1332
+ ldr r3, .L1332+20
ldr r2, [r4, #-2072]
cmp r2, r3
- bne .L1293
- ldr r3, .L1295+28
+ bne .L1330
+ ldr r3, .L1332+28
movw r1, #3870
ldrb r0, [r4, #-2062] @ zero_extendqisi2
ldrh r2, [r4, r3]
- ldr r3, .L1295+32
+ ldr r3, .L1332+32
strh r2, [r4, r3] @ movhi
- ldr r3, .L1295+4
+ ldr r3, .L1332+4
ldrh r1, [r3, r1]
cmp r0, r1
- bne .L1293
+ bne .L1330
movw r1, #3916
movw r0, #3922
ldrh r1, [r3, r1]
@@ -10865,10 +11294,10 @@ FtlLoadSysInfo:
movw r2, #3848
ldrh r1, [r3, r2]
bl __aeabi_uidiv
- ldr r3, .L1295+36
- ldr r1, .L1295+40
+ ldr r3, .L1332+36
+ ldr r1, .L1332+40
strh r0, [r4, r3] @ movhi
- ldr r3, .L1295+44
+ ldr r3, .L1332+44
ldrh r2, [r4, r3]
add r3, r3, #62
strh r2, [r4, r3] @ movhi
@@ -10880,12 +11309,12 @@ FtlLoadSysInfo:
ldrb r3, [r4, #-2061] @ zero_extendqisi2
strh r0, [r4, r1] @ movhi
mvn r1, #0
- ldr r0, .L1295+48
+ ldr r0, .L1332+48
strb r3, [r4, #-1988]
- ldr r3, .L1295+52
+ ldr r3, .L1332+52
strh r1, [r4, r3] @ movhi
mov r3, #0
- ldr r1, .L1295+56
+ ldr r1, .L1332+56
strh r3, [r4, r0] @ movhi
strb r3, [r4, #-1754]
ldrh r0, [r4, r1]
@@ -10894,7 +11323,7 @@ FtlLoadSysInfo:
str r3, [r4, #-1816]
strh r0, [r4, r1] @ movhi
sub r1, r1, #104
- ldr r0, .L1295+60
+ ldr r0, .L1332+60
ldrh r1, [r4, r1]
mov ip, r1, lsr #6
and r1, r1, #63
@@ -10902,12 +11331,12 @@ FtlLoadSysInfo:
ldrb r1, [r4, #-2060] @ zero_extendqisi2
strh ip, [r4, r0] @ movhi
strb r1, [r4, #-1940]
- ldr r1, .L1295+64
+ ldr r1, .L1332+64
ldrh r0, [r4, r1]
add r1, r1, #150
strh r0, [r4, r1] @ movhi
- ldr r1, .L1295+68
- ldr r0, .L1295+72
+ ldr r1, .L1332+68
+ ldr r0, .L1332+72
ldrh r1, [r4, r1]
mov ip, r1, lsr #6
and r1, r1, #63
@@ -10927,49 +11356,49 @@ FtlLoadSysInfo:
ldr r1, [r4, #-1804]
cmp r3, r1
strhi r3, [r4, #-1804]
- ldr r4, .L1295
+ ldr r4, .L1332
ldr r3, [r4, #-2036]
ldr r1, [r4, #-1800]
cmp r3, r1
strhi r3, [r4, #-1800]
cmp r2, r5
- beq .L1288
- ldr r0, .L1295+76
+ beq .L1325
+ ldr r0, .L1332+76
bl make_superblock
-.L1288:
- ldr r3, .L1295+80
+.L1325:
+ ldr r3, .L1332+80
ldrh r3, [r4, r3]
cmp r3, r5
- beq .L1289
- ldr r0, .L1295+84
+ beq .L1326
+ ldr r0, .L1332+84
bl make_superblock
-.L1289:
- ldr r5, .L1295
+.L1326:
+ ldr r5, .L1332
movw r4, #65535
- ldr r3, .L1295+88
+ ldr r3, .L1332+88
ldrh r3, [r5, r3]
cmp r3, r4
- beq .L1290
- ldr r0, .L1295+92
+ beq .L1327
+ ldr r0, .L1332+92
bl make_superblock
-.L1290:
- ldr r3, .L1295+52
+.L1327:
+ ldr r3, .L1332+52
ldrh r3, [r5, r3]
cmp r3, r4
- beq .L1294
- ldr r0, .L1295+96
+ beq .L1331
+ ldr r0, .L1332+96
bl make_superblock
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1293:
+.L1330:
mvn r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1294:
+.L1331:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1296:
+.L1333:
.align 2
-.L1295:
+.L1332:
.word .LANCHOR2
.word .LANCHOR0
.word -1772
@@ -11006,8 +11435,8 @@ FtlLoadBbt:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
- ldr r6, .L1313
- ldr r8, .L1313+4
+ ldr r6, .L1350
+ ldr r8, .L1350+4
ldr r3, [r6, #-960]
mov r7, r6
ldr r4, [r6, #-936]
@@ -11018,33 +11447,33 @@ FtlLoadBbt:
ldrh r5, [r8, r3]
sub r5, r5, #1
uxth r5, r5
- b .L1298
-.L1302:
+ b .L1335
+.L1339:
mov r1, #1
mov r3, r5, asl #10
- ldr r0, .L1313+8
+ ldr r0, .L1350+8
mov r2, r1
str r3, [r6, #184]
bl FlashReadPages
ldr r3, [r6, #180]
cmn r3, #1
- bne .L1299
+ bne .L1336
ldr r3, [r6, #184]
mov r1, #1
- ldr r0, .L1313+8
+ ldr r0, .L1350+8
mov r2, r1
add r3, r3, #1
str r3, [r6, #184]
bl FlashReadPages
-.L1299:
+.L1336:
ldr r3, [r7, #180]
cmn r3, #1
- beq .L1300
+ beq .L1337
ldrh r2, [r4, #0]
movw r3, #61649
cmp r2, r3
- bne .L1300
- ldr r3, .L1313+4
+ bne .L1337
+ ldr r3, .L1350+4
movw r2, #3980
strh r5, [r3, r2] @ movhi
ldr r2, [r4, #4]
@@ -11052,28 +11481,28 @@ FtlLoadBbt:
mov r2, #3984
ldrh r1, [r4, #8]
strh r1, [r3, r2] @ movhi
- b .L1301
-.L1300:
+ b .L1338
+.L1337:
sub r5, r5, #1
uxth r5, r5
-.L1298:
+.L1335:
movw r3, #3912
ldrh r3, [r8, r3]
sub r3, r3, #48
cmp r5, r3
- bgt .L1302
-.L1301:
- ldr r5, .L1313+4
+ bgt .L1339
+.L1338:
+ ldr r5, .L1350+4
movw r8, #3980
movw r3, #65535
ldrh r2, [r5, r8]
cmp r2, r3
- beq .L1312
+ beq .L1349
mov r6, #3984
ldrh r2, [r5, r6]
cmp r2, r3
- beq .L1304
- ldr r7, .L1313
+ beq .L1341
+ ldr r7, .L1350
mov r1, #1
mov r2, r2, asl #10
add r0, r7, #180
@@ -11082,11 +11511,11 @@ FtlLoadBbt:
bl FlashReadPages
ldr r3, [r7, #180]
cmn r3, #1
- beq .L1304
+ beq .L1341
ldrh r2, [r4, #0]
movw r3, #61649
cmp r2, r3
- bne .L1304
+ bne .L1341
ldr r3, [r4, #4]
ldr r2, [r5, #3988]
cmp r3, r2
@@ -11095,24 +11524,24 @@ FtlLoadBbt:
ldrhih r3, [r4, #8]
strhih r2, [r5, r8] @ movhi
strhih r3, [r5, r6] @ movhi
-.L1304:
- ldr r8, .L1313+4
+.L1341:
+ ldr r8, .L1350+4
movw r3, #3980
mov r1, #1
mov r6, #0
- ldr r5, .L1313
+ ldr r5, .L1350
ldrh r0, [r8, r3]
bl FtlGetLastWrittenPage
movw r3, #3982
add r2, r0, #1
mov r7, r0
strh r2, [r8, r3] @ movhi
- b .L1305
-.L1308:
+ b .L1342
+.L1345:
movw r2, #3980
mov r1, #1
ldrh r2, [r8, r2]
- ldr r0, .L1313+8
+ ldr r0, .L1350+8
orr r3, r3, r2, asl #10
str r3, [r5, #184]
ldr r3, [r5, #-960]
@@ -11121,48 +11550,48 @@ FtlLoadBbt:
bl FlashReadPages
ldr r3, [r5, #180]
cmn r3, #1
- beq .L1306
+ beq .L1343
ldrh r2, [r4, #0]
movw r3, #61649
cmp r2, r3
- beq .L1307
-.L1306:
+ beq .L1344
+.L1343:
sub r6, r6, #1
uxth r6, r6
-.L1305:
+.L1342:
add r3, r6, r7
sxth r3, r3
cmp r3, #0
- bge .L1308
-.L1307:
- ldr r3, .L1313+4
+ bge .L1345
+.L1344:
+ ldr r3, .L1350+4
movw r2, #3986
ldrh r1, [r4, #10]
ldrh r0, [r4, #12]
strh r1, [r3, r2] @ movhi
movw r2, #65535
cmp r0, r2
- beq .L1309
+ beq .L1346
ldr r2, [r3, #3844]
cmp r0, r2
- beq .L1309
+ beq .L1346
movw r1, #3858
ldrh r3, [r3, r1]
mov r3, r3, lsr #2
cmp r2, r3
- bcs .L1309
+ bcs .L1346
cmp r0, r3
- bcs .L1309
+ bcs .L1346
bl FtlSysBlkNumInit
-.L1309:
- ldr r6, .L1313+12
+.L1346:
+ ldr r6, .L1350+12
mov r4, #0
- ldr r8, .L1313+4
+ ldr r8, .L1350+4
movw r7, #3870
- ldr r5, .L1313
- b .L1310
-.L1311:
- ldr r3, .L1313+16
+ ldr r5, .L1350
+ b .L1347
+.L1348:
+ ldr r3, .L1350+16
ldr r1, [r5, #188]
ldr r0, [r6, #4]!
ldrh r2, [r5, r3]
@@ -11170,18 +11599,18 @@ FtlLoadBbt:
mla r1, r4, r2, r1
bl memcpy
add r4, r4, #1
-.L1310:
+.L1347:
ldrh r3, [r8, r7]
cmp r4, r3
- bcc .L1311
+ bcc .L1348
mov r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L1312:
+.L1349:
mvn r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L1314:
+.L1351:
.align 2
-.L1313:
+.L1350:
.word .LANCHOR2
.word .LANCHOR0
.word .LANCHOR2+180
@@ -11199,59 +11628,59 @@ FtlLoadFactoryBbt:
stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r5, #0
- ldr r3, .L1322
+ ldr r3, .L1359
movw fp, #3870
- ldr r7, .L1322+4
- ldr r6, .L1322+8
+ ldr r7, .L1359+4
+ ldr r6, .L1359+8
ldr r2, [r3, #-960]
ldr r8, [r3, #-936]
str r2, [r3, #188]
str r8, [r3, #192]
- b .L1316
-.L1321:
+ b .L1353
+.L1358:
movw r9, #3912
mvn r3, #0
ldrh r4, [r6, r9]
strh r3, [r7], #2 @ movhi
add r4, r4, r3
- ldr sl, .L1322
+ ldr sl, .L1359
uxth r4, r4
- b .L1317
-.L1320:
+ b .L1354
+.L1357:
mla r3, r3, r5, r4
mov r1, #1
- ldr r0, .L1322+12
+ ldr r0, .L1359+12
mov r2, r1
mov r3, r3, asl #10
str r3, [sl, #184]
bl FlashReadPages
ldr r3, [sl, #180]
cmn r3, #1
- beq .L1318
+ beq .L1355
ldrh r2, [r8, #0]
movw r3, #61664
cmp r2, r3
streqh r4, [r7, #-2] @ movhi
- beq .L1319
-.L1318:
+ beq .L1356
+.L1355:
sub r4, r4, #1
uxth r4, r4
-.L1317:
+.L1354:
ldrh r3, [r6, r9]
sub r2, r3, #16
cmp r4, r2
- bgt .L1320
-.L1319:
+ bgt .L1357
+.L1356:
add r5, r5, #1
-.L1316:
+.L1353:
ldrh r3, [r6, fp]
cmp r5, r3
- bcc .L1321
+ bcc .L1358
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1323:
+.L1360:
.align 2
-.L1322:
+.L1359:
.word .LANCHOR2
.word .LANCHOR0+3992
.word .LANCHOR0
@@ -11273,13 +11702,13 @@ FlashProgSlc2KPages:
mov r9, r2
str r3, [sp, #12]
mov r4, r0
- ldr r3, .L1343
+ ldr r3, .L1380
mov r6, r0
mov r8, #0
- ldr r7, .L1343+4
+ ldr r7, .L1380+4
ldrb fp, [r3, #2901] @ zero_extendqisi2
- b .L1325
-.L1332:
+ b .L1362
+.L1369:
rsb r3, r8, sl
add r2, sp, #20
mov r0, r6
@@ -11293,7 +11722,7 @@ FlashProgSlc2KPages:
cmp r3, r2
mvncs r3, #0
strcs r3, [r6, #0]
- bcs .L1327
+ bcs .L1364
add r3, r7, r3
ldrb r5, [r3, #3764] @ zero_extendqisi2
mov r0, r5
@@ -11352,27 +11781,27 @@ FlashProgSlc2KPages:
mvnne r3, #0
strne r3, [r6, #0]
bl NandcFlashDeCs
-.L1327:
+.L1364:
add r8, r8, #1
add r6, r6, #36
-.L1325:
+.L1362:
cmp r8, sl
- bne .L1332
+ bne .L1369
ldr r3, [sp, #12]
cmp r3, #0
movne r6, #0
- ldrne r5, .L1343+8
- bne .L1333
- b .L1334
-.L1339:
+ ldrne r5, .L1380+8
+ bne .L1370
+ b .L1371
+.L1376:
ldr r3, [r4, #0]
cmn r3, #1
- bne .L1335
+ bne .L1372
ldr r1, [r4, #4]
- ldr r0, .L1343+12
+ ldr r0, .L1380+12
bl printk
- b .L1336
-.L1335:
+ b .L1373
+.L1372:
rsb r3, r6, sl
mov r1, r9
add r2, sp, #20
@@ -11404,59 +11833,59 @@ FlashProgSlc2KPages:
bl FlashReadPages
ldr r7, [sp, #28]
cmn r7, #1
- bne .L1337
- ldr r0, .L1343+16
+ bne .L1374
+ ldr r0, .L1380+16
ldr r1, [r4, #4]
bl printk
str r7, [r4, #0]
-.L1337:
+.L1374:
ldr r3, [r4, #12]
cmp r3, #0
- beq .L1338
+ beq .L1375
ldr r2, [r3, #0]
ldr r3, [r5, #224]
ldr r3, [r3, #0]
cmp r2, r3
- beq .L1338
- ldr r0, .L1343+20
+ beq .L1375
+ ldr r0, .L1380+20
ldr r1, [r4, #4]
bl printk
mvn r3, #0
str r3, [r4, #0]
-.L1338:
+.L1375:
ldr r3, [r4, #8]
cmp r3, #0
- beq .L1336
+ beq .L1373
ldr r2, [r3, #0]
ldr r3, [r5, #220]
ldr r3, [r3, #0]
cmp r2, r3
- beq .L1336
- ldr r0, .L1343+24
+ beq .L1373
+ ldr r0, .L1380+24
ldr r1, [r4, #4]
bl printk
mvn r3, #0
str r3, [r4, #0]
-.L1336:
+.L1373:
add r6, r6, #1
add r4, r4, #36
-.L1333:
+.L1370:
cmp r6, sl
- bne .L1339
-.L1334:
+ bne .L1376
+.L1371:
mov r0, #0
add sp, sp, #68
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1344:
+.L1381:
.align 2
-.L1343:
+.L1380:
.word .LANCHOR1
.word .LANCHOR0
.word .LANCHOR2
- .word .LC101
- .word .LC102
- .word .LC103
- .word .LC104
+ .word .LC108
+ .word .LC109
+ .word .LC110
+ .word .LC111
.fnend
.size FlashProgSlc2KPages, .-FlashProgSlc2KPages
.align 2
@@ -11470,7 +11899,7 @@ FlashProgPages:
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #76
sub sp, sp, #76
- ldr r5, .L1373
+ ldr r5, .L1410
mov r9, r0
str r1, [sp, #8]
mov sl, r2
@@ -11481,13 +11910,13 @@ FlashProgPages:
cmp r6, #0
moveq fp, r5
str ip, [sp, #20]
- ldr ip, .L1373+4
+ ldr ip, .L1410+4
ldrb ip, [ip, #2901] @ zero_extendqisi2
str ip, [sp, #12]
- beq .L1346
+ beq .L1383
bl FlashProgSlc2KPages
- b .L1347
-.L1360:
+ b .L1384
+.L1397:
mov r4, #36
ldr r2, [sp, #8]
mul r4, r4, r6
@@ -11506,22 +11935,22 @@ FlashProgPages:
mvncs r3, #0
strcs r3, [r9, r4]
mov r8, r0
- bcs .L1349
+ bcs .L1386
ldrb r1, [r5, #3837] @ zero_extendqisi2
add r2, fp, r2, asl #4
cmp r1, #0
ldr r2, [r2, #3636]
moveq r8, #0
cmp r2, #0
- beq .L1351
+ beq .L1388
cmp r3, #1
- bne .L1352
+ bne .L1389
ldr r0, [r5, #3012]
bl NandcIqrWaitFlashReady
-.L1352:
+.L1389:
ldrb r0, [sp, #32] @ zero_extendqisi2
bl FlashWaitCmdDone
-.L1351:
+.L1388:
ldr r2, [sp, #32]
mov r1, #0
cmp r8, #0
@@ -11541,10 +11970,10 @@ FlashProgPages:
cmp r3, #1
strb r4, [r2, #3628]
mov r0, r4
- bne .L1354
+ bne .L1391
bl NandcWaitFlashReady
- b .L1355
-.L1354:
+ b .L1392
+.L1391:
bl NandcFlashCs
ldr r3, [sp, #32]
mov r0, r4
@@ -11556,34 +11985,34 @@ FlashProgPages:
bl FlashWaitReadyEN
mov r0, r4
bl NandcFlashDeCs
-.L1355:
+.L1392:
ldr r2, [sp, #20]
sub r3, r2, #1
cmp r3, #6
- bhi .L1356
+ bhi .L1393
add r3, r5, r4
ldrb r3, [r3, #3756] @ zero_extendqisi2
cmp r3, #0
- beq .L1356
+ beq .L1393
mov r0, r4
ldrb r1, [r5, #1] @ zero_extendqisi2
- ldr r2, .L1373+8
+ ldr r2, .L1410+8
mov r3, #0
bl HynixSetRRPara
-.L1356:
+.L1393:
mov r0, r4
bl NandcFlashCs
cmp sl, #1
mov r0, r4
- bne .L1357
+ bne .L1394
ldrb r3, [r5, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L1357
+ beq .L1394
bl flash_enter_slc_mode
- b .L1358
-.L1357:
+ b .L1395
+.L1394:
bl flash_exit_slc_mode
-.L1358:
+.L1395:
mov r0, r4
ldr r1, [sp, #28]
bl FlashProgFirstCmd
@@ -11595,7 +12024,7 @@ FlashProgPages:
ldr r3, [r7, #8]
bl NandcXferData
cmp r8, #0
- beq .L1359
+ beq .L1396
mov r0, r4
ldr r1, [sp, #28]
bl FlashProgDpFirstCmd
@@ -11622,58 +12051,58 @@ FlashProgPages:
ldr r2, [sp, #12]
ldr r3, [r3, #8]
bl NandcXferData
-.L1359:
+.L1396:
mov r0, r4
ldr r1, [sp, #28]
bl FlashProgSecondCmd
mov r0, r4
bl NandcFlashDeCs
add r6, r6, r8
-.L1349:
+.L1386:
add r6, r6, #1
-.L1346:
+.L1383:
ldr r3, [sp, #8]
cmp r6, r3
- bcc .L1360
- ldr r5, .L1373
+ bcc .L1397
+ ldr r5, .L1410
mov r4, #0
- ldr r6, .L1373+12
+ ldr r6, .L1410+12
ldr r0, [r5, #3012]
bl NandcIqrWaitFlashReady
- b .L1361
-.L1363:
+ b .L1398
+.L1400:
uxtb r0, r4
bl FlashWaitCmdDone
cmp sl, #1
- bne .L1362
+ bne .L1399
ldrb r3, [r5, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L1362
+ beq .L1399
ldrb r0, [r6, r4, asl #4] @ zero_extendqisi2
bl flash_exit_slc_mode
-.L1362:
+.L1399:
add r4, r4, #1
-.L1361:
+.L1398:
ldrb r3, [r5, #3762] @ zero_extendqisi2
cmp r4, r3
- bcc .L1363
+ bcc .L1400
ldr r2, [sp, #16]
cmp r2, #0
ldreq r0, [sp, #16]
- beq .L1347
+ beq .L1384
mov r5, #0
- ldr r4, .L1373+16
+ ldr r4, .L1410+16
ldr r6, [sp, #8]
- b .L1364
-.L1369:
+ b .L1401
+.L1406:
ldr r3, [r9, #0]
cmn r3, #1
- bne .L1365
+ bne .L1402
ldr r1, [r9, #4]
- ldr r0, .L1373+20
+ ldr r0, .L1410+20
bl printk
- b .L1366
-.L1365:
+ b .L1403
+.L1402:
rsb r3, r5, r6
mov r1, sl
add r2, sp, #28
@@ -11705,101 +12134,101 @@ FlashProgPages:
bl FlashReadPages
ldr r7, [sp, #36]
cmn r7, #1
- bne .L1367
- ldr r0, .L1373+24
+ bne .L1404
+ ldr r0, .L1410+24
ldr r1, [r9, #4]
bl printk
str r7, [r9, #0]
-.L1367:
+.L1404:
ldr r3, [r9, #12]
cmp r3, #0
- beq .L1368
+ beq .L1405
ldr r2, [r3, #0]
ldr r3, [r4, #224]
ldr r3, [r3, #0]
cmp r2, r3
- beq .L1368
- ldr r0, .L1373+28
+ beq .L1405
+ ldr r0, .L1410+28
ldr r1, [r9, #4]
bl printk
mvn r3, #0
str r3, [r9, #0]
-.L1368:
+.L1405:
ldr r3, [r9, #8]
cmp r3, #0
- beq .L1366
+ beq .L1403
ldr r2, [r3, #0]
ldr r3, [r4, #220]
ldr r3, [r3, #0]
cmp r2, r3
- beq .L1366
- ldr r0, .L1373+32
+ beq .L1403
+ ldr r0, .L1410+32
ldr r1, [r9, #4]
bl printk
mvn r3, #0
str r3, [r9, #0]
-.L1366:
+.L1403:
add r5, r5, #1
add r9, r9, #36
-.L1364:
+.L1401:
cmp r5, r6
- bne .L1369
+ bne .L1406
mov r0, #0
-.L1347:
+.L1384:
add sp, sp, #76
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1374:
+.L1411:
.align 2
-.L1373:
+.L1410:
.word .LANCHOR0
.word .LANCHOR1
.word .LANCHOR0+4
.word .LANCHOR0+3628
.word .LANCHOR2
- .word .LC101
- .word .LC102
- .word .LC103
- .word .LC104
+ .word .LC108
+ .word .LC109
+ .word .LC110
+ .word .LC111
.fnend
.size FlashProgPages, .-FlashProgPages
.align 2
- .type FtlVpcTblFlush.part.13, %function
-FtlVpcTblFlush.part.13:
+ .type FtlVpcTblFlush.part.14, %function
+FtlVpcTblFlush.part.14:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r1, #255
- ldr r4, .L1387
+ ldr r4, .L1424
mov r7, #3856
- ldr r6, .L1387+4
+ ldr r6, .L1424+4
ldr r3, [r4, #-960]
ldr r5, [r4, #-936]
str r3, [r4, #188]
- ldr r3, .L1387+8
+ ldr r3, .L1424+8
str r5, [r4, #192]
ldrh r3, [r4, r3]
strh r3, [r5, #2] @ movhi
- ldr r3, .L1387+12
+ ldr r3, .L1424+12
strh r3, [r5, #0] @ movhi
ldr r3, [r4, #-1764]
str r3, [r5, #4]
mov r3, #0
str r3, [r5, #8]
str r3, [r5, #12]
- ldr r3, .L1387+16
+ ldr r3, .L1424+16
str r3, [r4, #-2072]
- ldr r3, .L1387+20
+ ldr r3, .L1424+20
str r3, [r4, #-2068]
- ldr r3, .L1387+24
+ ldr r3, .L1424+24
ldrh r2, [r4, r3]
- ldr r3, .L1387+28
+ ldr r3, .L1424+28
strh r2, [r4, r3] @ movhi
movw r3, #3870
ldrh r3, [r6, r3]
strb r3, [r4, #-2062]
- ldr r3, .L1387+32
+ ldr r3, .L1424+32
ldrh r2, [r4, r3]
sub r3, r3, #62
strh r2, [r4, r3] @ movhi
@@ -11807,11 +12236,11 @@ FtlVpcTblFlush.part.13:
ldrh r2, [r4, r3]
ldrb r3, [r4, #-1990] @ zero_extendqisi2
orr r2, r3, r2, asl #6
- ldr r3, .L1387+36
+ ldr r3, .L1424+36
strh r2, [r4, r3] @ movhi
ldrb r3, [r4, #-1988] @ zero_extendqisi2
strb r3, [r4, #-2061]
- ldr r3, .L1387+40
+ ldr r3, .L1424+40
ldrh r2, [r4, r3]
sub r3, r3, #106
strh r2, [r4, r3] @ movhi
@@ -11819,11 +12248,11 @@ FtlVpcTblFlush.part.13:
ldrh r2, [r4, r3]
ldrb r3, [r4, #-1942] @ zero_extendqisi2
orr r2, r3, r2, asl #6
- ldr r3, .L1387+44
+ ldr r3, .L1424+44
strh r2, [r4, r3] @ movhi
ldrb r3, [r4, #-1940] @ zero_extendqisi2
strb r3, [r4, #-2060]
- ldr r3, .L1387+48
+ ldr r3, .L1424+48
ldrh r2, [r4, r3]
sub r3, r3, #150
strh r2, [r4, r3] @ movhi
@@ -11832,7 +12261,7 @@ FtlVpcTblFlush.part.13:
ldrh r2, [r4, r3]
ldrb r3, [r4, #-1894] @ zero_extendqisi2
orr r2, r3, r2, asl #6
- ldr r3, .L1387+52
+ ldr r3, .L1424+52
strh r2, [r4, r3] @ movhi
ldrb r3, [r4, #-1892] @ zero_extendqisi2
strb r3, [r4, #-2059]
@@ -11845,7 +12274,7 @@ FtlVpcTblFlush.part.13:
movw r3, #3926
ldrh r2, [r6, r3]
bl ftl_memset
- ldr r1, .L1387+56
+ ldr r1, .L1424+56
mov r2, #48
ldr r0, [r4, #188]
bl memcpy
@@ -11867,7 +12296,7 @@ FtlVpcTblFlush.part.13:
movw r3, #3960
ldrh r3, [r6, r3]
cmp r3, #0
- beq .L1376
+ beq .L1413
ldrh r3, [r6, r7]
ldr r1, [r4, #188]
mov r0, r3, lsr #3
@@ -11880,21 +12309,21 @@ FtlVpcTblFlush.part.13:
add r0, r1, r0, asl #2
ldr r1, [r4, #-1032]
bl memcpy
-.L1376:
+.L1413:
mov r0, #0
- ldr r4, .L1387
+ ldr r4, .L1424
bl FtlUpdateVaildLpn
- ldr r8, .L1387+8
+ ldr r8, .L1424+8
mov r6, #0
movw sl, #65535
-.L1386:
+.L1423:
ldr r3, [r4, #-960]
mov r1, #1
- ldr r7, .L1387+60
+ ldr r7, .L1424+60
ldrh r2, [r4, r8]
str r3, [r4, #188]
ldr r3, [r4, #-936]
- ldr r0, .L1387+64
+ ldr r0, .L1424+64
str r3, [r4, #192]
ldrh r3, [r4, r7]
orr r3, r3, r2, asl #10
@@ -11902,14 +12331,14 @@ FtlVpcTblFlush.part.13:
str r3, [r4, #184]
mov r3, r1
bl FlashProgPages
- ldr r1, .L1387+4
+ ldr r1, .L1424+4
movw r3, #3918
ldrh r2, [r4, r7]
ldrh r3, [r1, r3]
sub r3, r3, #1
cmp r2, r3
- blt .L1378
- ldr r3, .L1387+68
+ blt .L1415
+ ldr r3, .L1424+68
ldrh r2, [r4, r8]
ldrh sl, [r4, r3]
strh r2, [r4, r3] @ movhi
@@ -11928,40 +12357,41 @@ FtlVpcTblFlush.part.13:
str r3, [r5, #4]
mov r3, r1
strh r0, [r5, #2] @ movhi
- ldr r0, .L1387+64
+ ldr r0, .L1424+64
bl FlashProgPages
-.L1378:
- ldr r2, .L1387+60
+.L1415:
+ ldr r2, .L1424+60
ldr r1, [r4, #180]
ldrh r3, [r4, r2]
cmn r1, #1
add r3, r3, #1
uxth r3, r3
strh r3, [r4, r2] @ movhi
- bne .L1379
+ bne .L1416
cmp r3, #1
add r6, r6, #1
- ldreq r1, .L1387+4
+ ldreq r1, .L1424+4
movweq r3, #3918
uxth r6, r6
ldreqh r3, [r1, r3]
subeq r3, r3, #1
streqh r3, [r4, r2] @ movhi
cmp r6, #3
- bls .L1386
- ldr r4, .L1387
+ bls .L1423
+ ldr r3, .L1424
mov r2, r6
- ldr r0, .L1387+72
- ldr r1, [r4, #184]
+ ldr r0, .L1424+72
+ ldr r1, [r3, #184]
bl printk
- mov r3, #1
- str r3, [r4, #-2088]
+ ldr r3, .L1424+4
+ mov r2, #1
+ str r2, [r3, #4040]
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L1379:
+.L1416:
cmp r3, #1
- beq .L1386
+ beq .L1423
cmp r1, #256
- beq .L1386
+ beq .L1423
movw r3, #65535
cmp sl, r3
ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
@@ -11969,9 +12399,9 @@ FtlVpcTblFlush.part.13:
mov r1, #1
bl FtlFreeSysBlkQueueIn
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L1388:
+.L1425:
.align 2
-.L1387:
+.L1424:
.word .LANCHOR2
.word .LANCHOR0
.word -1772
@@ -11990,9 +12420,9 @@ FtlVpcTblFlush.part.13:
.word -1770
.word .LANCHOR2+180
.word -1768
- .word .LC105
+ .word .LC112
.fnend
- .size FtlVpcTblFlush.part.13, .-FtlVpcTblFlush.part.13
+ .size FtlVpcTblFlush.part.14, .-FtlVpcTblFlush.part.14
.align 2
.global FtlVpcTblFlush
.type FtlVpcTblFlush, %function
@@ -12002,18 +12432,18 @@ FtlVpcTblFlush:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L1391
- ldr r3, [r3, #-2088]
+ ldr r3, .L1428
+ ldr r3, [r3, #4040]
cmp r3, #0
- bne .L1390
- bl FtlVpcTblFlush.part.13
-.L1390:
+ bne .L1427
+ bl FtlVpcTblFlush.part.14
+.L1427:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L1392:
+.L1429:
.align 2
-.L1391:
- .word .LANCHOR2
+.L1428:
+ .word .LANCHOR0
.fnend
.size FtlVpcTblFlush, .-FtlVpcTblFlush
.section .text.unlikely,"ax",%progbits
@@ -12026,11 +12456,11 @@ FtlBbmTblFlush.part.16:
stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r1, #0
- ldr r7, .L1406
- mov r6, #0
- ldr sl, .L1406+4
+ ldr r7, .L1443
+ mov r5, #0
+ ldr sl, .L1443+4
movw r9, #3870
- ldr r8, .L1406+8
+ ldr r8, .L1443+8
ldr r3, [r7, #-936]
ldr r0, [r7, #-960]
str r3, [r7, #192]
@@ -12038,143 +12468,143 @@ FtlBbmTblFlush.part.16:
str r0, [r7, #188]
ldrh r2, [sl, r3]
bl ftl_memset
- b .L1394
-.L1395:
- ldr r3, .L1406+12
+ b .L1431
+.L1432:
+ ldr r3, .L1443+12
ldr r1, [r8, #4]!
ldrh r2, [r7, r3]
ldr r3, [r7, #188]
- mul r0, r2, r6
+ mul r0, r2, r5
mov r2, r2, asl #2
- add r6, r6, #1
+ add r5, r5, #1
add r0, r3, r0, asl #2
bl memcpy
-.L1394:
+.L1431:
ldrh r3, [sl, r9]
- ldr r4, .L1406+4
- cmp r6, r3
- ldr r5, .L1406
- blt .L1395
- ldr r6, [r5, #192]
+ ldr r4, .L1443+4
+ cmp r5, r3
+ ldr r6, .L1443
+ blt .L1432
+ ldr r5, [r6, #192]
mov r1, #255
mov r2, #16
mov r7, #0
mov fp, r7
- mov r0, r6
+ mov r0, r5
bl ftl_memset
- ldr r3, .L1406+16
- strh r3, [r6, #0] @ movhi
+ ldr r3, .L1443+16
+ strh r3, [r5, #0] @ movhi
ldr r3, [r4, #3988]
- str r3, [r6, #4]
+ str r3, [r5, #4]
movw r3, #3980
ldrh r3, [r4, r3]
- strh r3, [r6, #2] @ movhi
+ strh r3, [r5, #2] @ movhi
mov r3, #3984
ldrh r3, [r4, r3]
- strh r3, [r6, #8] @ movhi
+ strh r3, [r5, #8] @ movhi
movw r3, #3986
ldrh r3, [r4, r3]
- strh r3, [r6, #10] @ movhi
+ strh r3, [r5, #10] @ movhi
ldr r3, [r4, #3844]
- strh r3, [r6, #12] @ movhi
- b .L1404
-.L1401:
+ strh r3, [r5, #12] @ movhi
+ b .L1441
+.L1438:
mov fp, #1
-.L1404:
- ldr r3, [r5, #-960]
+.L1441:
+ ldr r3, [r6, #-960]
movw r8, #3980
- ldr r4, .L1406+4
+ ldr r4, .L1443+4
mov r1, #0
movw sl, #3982
- str r1, [r5, #180]
- str r3, [r5, #188]
+ str r1, [r6, #180]
+ str r3, [r6, #188]
mov r9, #3984
- ldr r3, [r5, #-936]
+ ldr r3, [r6, #-936]
ldrh r1, [r4, r8]
ldrh r2, [r4, sl]
- str r3, [r5, #192]
- ldrh r0, [r6, #10]
+ str r3, [r6, #192]
+ ldrh r0, [r5, #10]
orr r3, r2, r1, asl #10
- str r3, [r5, #184]
+ str r3, [r6, #184]
ldrh r3, [r4, r9]
str r0, [sp, #0]
- ldr r0, .L1406+20
+ ldr r0, .L1443+20
bl printk
mov r1, #1
mov r2, r1
mov r3, r1
- ldr r0, .L1406+24
+ ldr r0, .L1443+24
bl FlashProgPages
movw r3, #3918
ldrh r3, [r4, r3]
ldrh r2, [r4, sl]
sub r3, r3, #1
cmp r2, r3
- blt .L1397
+ blt .L1434
ldr r3, [r4, #3988]
mov r1, #0 @ movhi
ldrh r2, [r4, r8]
add r3, r3, #1
- ldr r0, [r5, #-2084]
+ ldr r0, [r4, #4044]
str r3, [r4, #3988]
- str r3, [r6, #4]
+ str r3, [r5, #4]
ldrh r3, [r4, r9]
strh r1, [r4, sl] @ movhi
mov r1, #1
- strh r2, [r6, #8] @ movhi
+ strh r2, [r5, #8] @ movhi
strh r2, [r4, r9] @ movhi
mov r2, r1
strh r3, [r4, r8] @ movhi
mov r3, r3, asl #10
- str r3, [r5, #184]
+ str r3, [r6, #184]
str r3, [r0, #4]
bl FlashEraseBlocks
mov r1, #1
- ldr r0, .L1406+24
+ ldr r0, .L1443+24
mov r2, r1
mov r3, r1
bl FlashProgPages
-.L1397:
- ldr r2, .L1406+4
+.L1434:
+ ldr r4, .L1443+4
movw r3, #3982
- ldr r4, .L1406
- ldrh r1, [r2, r3]
- add r1, r1, #1
- strh r1, [r2, r3] @ movhi
- ldr r3, [r5, #180]
+ ldrh r2, [r4, r3]
+ add r2, r2, #1
+ strh r2, [r4, r3] @ movhi
+ ldr r3, [r6, #180]
cmn r3, #1
- bne .L1398
+ bne .L1435
add r7, r7, #1
- ldr r0, .L1406+28
- ldr r1, [r5, #184]
+ ldr r0, .L1443+28
+ ldr r1, [r6, #184]
uxth r7, r7
bl printk
cmp r7, #3
- bls .L1404
- ldr r0, .L1406+32
+ bls .L1441
+ ldr r3, .L1443
mov r2, r7
- ldr r1, [r4, #184]
+ ldr r0, .L1443+32
+ ldr r1, [r3, #184]
bl printk
mov r3, #1
- str r3, [r4, #-2088]
- b .L1405
-.L1398:
+ str r3, [r4, #4040]
+ b .L1442
+.L1435:
cmp fp, #0
- beq .L1401
-.L1405:
+ beq .L1438
+.L1442:
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1407:
+.L1444:
.align 2
-.L1406:
+.L1443:
.word .LANCHOR2
.word .LANCHOR0
.word .LANCHOR0+4004
.word -1028
.word -3887
- .word .LC106
+ .word .LC113
.word .LANCHOR2+180
- .word .LC107
- .word .LC108
+ .word .LC114
+ .word .LC115
.fnend
.size FtlBbmTblFlush.part.16, .-FtlBbmTblFlush.part.16
.text
@@ -12187,18 +12617,18 @@ FtlBbmTblFlush:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L1410
- ldr r3, [r3, #-2088]
+ ldr r3, .L1447
+ ldr r3, [r3, #4040]
cmp r3, #0
- bne .L1409
+ bne .L1446
bl FtlBbmTblFlush.part.16
-.L1409:
+.L1446:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L1411:
+.L1448:
.align 2
-.L1410:
- .word .LANCHOR2
+.L1447:
+ .word .LANCHOR0
.fnend
.size FtlBbmTblFlush, .-FtlBbmTblFlush
.align 2
@@ -12211,39 +12641,39 @@ FtlGcFreeBadSuperBlk:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
.save {r4, r5, r6, r7, r8, r9, sl, lr}
mov r9, r0
- ldr r4, .L1422
- ldr r3, .L1422+4
+ ldr r4, .L1459
+ ldr r3, .L1459+4
ldrh r3, [r4, r3]
cmp r3, #0
movne r6, #0
movne sl, r4
- bne .L1413
- b .L1414
-.L1420:
+ bne .L1450
+ b .L1451
+.L1457:
add r3, r3, r6
mov r1, r9
mov r5, #0
- ldr r7, .L1422+4
+ ldr r7, .L1459+4
ldrb r0, [r3, #3874] @ zero_extendqisi2
bl V2P_block
mov r8, r0
- b .L1415
-.L1419:
+ b .L1452
+.L1456:
add r3, r4, r5, asl #1
sub r3, r3, #1136
ldrh r3, [r3, #0]
cmp r3, r8
- bne .L1416
+ bne .L1453
mov r1, r8
- ldr r0, .L1422+8
+ ldr r0, .L1459+8
bl printk
mov r0, r8
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
ldrh r2, [r4, r7]
mov r3, r5
- b .L1417
-.L1418:
+ b .L1454
+.L1455:
add r1, r3, #1
add r3, r4, r3, asl #1
sub r3, r3, #1136
@@ -12252,36 +12682,36 @@ FtlGcFreeBadSuperBlk:
ldrh r0, [r0, #0]
strh r0, [r3, #0] @ movhi
uxth r3, r1
-.L1417:
+.L1454:
cmp r3, r2
- bcc .L1418
+ bcc .L1455
sub r2, r2, #1
strh r2, [sl, r7] @ movhi
-.L1416:
+.L1453:
add r5, r5, #1
uxth r5, r5
-.L1415:
+.L1452:
ldrh r3, [r4, r7]
cmp r3, r5
- bhi .L1419
+ bhi .L1456
add r6, r6, #1
uxth r6, r6
-.L1413:
- ldr r3, .L1422+12
+.L1450:
+ ldr r3, .L1459+12
movw r2, #3848
ldrh r2, [r3, r2]
cmp r2, r6
- bhi .L1420
+ bhi .L1457
bl FtlGcReFreshBadBlk
-.L1414:
+.L1451:
mov r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L1423:
+.L1460:
.align 2
-.L1422:
+.L1459:
.word .LANCHOR2
.word -1138
- .word .LC109
+ .word .LC116
.word .LANCHOR0
.fnend
.size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
@@ -12295,36 +12725,36 @@ update_vpc_list:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r2, r0, asl #1
- ldr r3, .L1432
+ ldr r3, .L1469
mov r4, r0
ldr r1, [r3, #-2016]
ldrh r2, [r1, r2]
cmp r2, #0
- bne .L1425
- ldr r1, .L1432+4
+ bne .L1462
+ ldr r1, .L1469+4
ldrh r0, [r3, r1]
cmp r0, r4
mvneq r2, #0
streqh r2, [r3, r1] @ movhi
- beq .L1427
- ldr r1, .L1432+8
+ beq .L1464
+ ldr r1, .L1469+8
ldrh r1, [r3, r1]
cmp r1, r4
- beq .L1428
- ldr r1, .L1432+12
+ beq .L1465
+ ldr r1, .L1469+12
ldrh r1, [r3, r1]
cmp r1, r4
- beq .L1428
- ldr r1, .L1432+16
+ beq .L1465
+ ldr r1, .L1469+16
ldrh r3, [r3, r1]
cmp r3, r4
- beq .L1428
-.L1427:
+ beq .L1465
+.L1464:
mov r1, r4
- ldr r0, .L1432+20
+ ldr r0, .L1469+20
bl List_remove_node
- ldr r5, .L1432
- ldr r3, .L1432+24
+ ldr r5, .L1469
+ ldr r3, .L1469+24
mov r0, r4
ldrh r2, [r5, r3]
sub r2, r2, #1
@@ -12333,16 +12763,16 @@ update_vpc_list:
mov r0, r4
bl FtlGcFreeBadSuperBlk
mov r2, #1
- b .L1428
-.L1425:
+ b .L1465
+.L1462:
bl List_update_data_list
mov r2, #0
-.L1428:
+.L1465:
mov r0, r2
ldmfd sp!, {r3, r4, r5, pc}
-.L1433:
+.L1470:
.align 2
-.L1432:
+.L1469:
.word .LANCHOR2
.word -1760
.word -1996
@@ -12364,45 +12794,45 @@ decrement_vpc_count:
movw r3, #65535
cmp r0, r3
mov r5, r0
- beq .L1435
- ldr r2, .L1440
+ beq .L1472
+ ldr r2, .L1477
mov r3, r0, asl #1
ldr r2, [r2, #-2016]
ldrh r4, [r2, r3]
cmp r4, #0
subne r4, r4, #1
strneh r4, [r2, r3] @ movhi
- bne .L1435
- ldr r0, .L1440+4
+ bne .L1472
+ ldr r0, .L1477+4
mov r1, r5
mov r2, r4
bl printk
mov r0, r4
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1435:
- ldr r7, .L1440
+.L1472:
+ ldr r7, .L1477
movw r3, #65535
- ldr r6, .L1440+8
+ ldr r6, .L1477+8
ldrh r0, [r7, r6]
cmp r0, r3
streqh r5, [r7, r6] @ movhi
moveq r0, #0
ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
cmp r0, r5
- beq .L1439
+ beq .L1476
bl update_vpc_list
strh r5, [r7, r6] @ movhi
adds r0, r0, #0
movne r0, #1
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1439:
+.L1476:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1441:
+.L1478:
.align 2
-.L1440:
+.L1477:
.word .LANCHOR2
- .word .LC110
+ .word .LC117
.word -1020
.fnend
.size decrement_vpc_count, .-decrement_vpc_count
@@ -12420,12 +12850,12 @@ get_new_active_ppa:
mov r4, r0
ldrb r3, [r0, #6] @ zero_extendqisi2
movw r6, #65535
- ldr r5, .L1454
- ldr r7, .L1454+4
+ ldr r5, .L1491
+ ldr r7, .L1491+4
add r3, r0, r3, asl #1
ldrh r3, [r3, #16]
- b .L1443
-.L1444:
+ b .L1480
+.L1481:
ldrb r3, [r4, #6] @ zero_extendqisi2
movw r2, #3848
ldrh r2, [r5, r2]
@@ -12441,28 +12871,28 @@ get_new_active_ppa:
ldrb r3, [r4, #6] @ zero_extendqisi2
add r3, r4, r3, asl #1
ldrh r3, [r3, #16]
-.L1443:
+.L1480:
cmp r3, r6
- beq .L1444
+ beq .L1481
ldrb r2, [r4, #8] @ zero_extendqisi2
cmp r2, #1
- bne .L1446
+ bne .L1483
ldrb r2, [r5, #928] @ zero_extendqisi2
cmp r2, #0
- bne .L1446
+ bne .L1483
ldrh r2, [r4, #2]
add r2, r7, r2, asl #1
sub r2, r2, #892
ldrh r2, [r2, #0]
cmp r2, r6
- bne .L1446
+ bne .L1483
ldrh r3, [r4, #4]
ldrh r0, [r4, #0]
sub r3, r3, #1
strh r3, [r4, #4] @ movhi
bl decrement_vpc_count
- b .L1444
-.L1446:
+ b .L1481
+.L1483:
ldrh r6, [r4, #2]
movw r5, #65535
mov r7, r5
@@ -12470,12 +12900,12 @@ get_new_active_ppa:
ldrh r3, [r4, #4]
sub r3, r3, #1
strh r3, [r4, #4] @ movhi
-.L1451:
- ldr r2, .L1454
+.L1488:
+ ldr r2, .L1491
movw r3, #3848
ldrh r2, [r2, r3]
ldrb r3, [r4, #6] @ zero_extendqisi2
-.L1448:
+.L1485:
add r3, r3, #1
uxtb r3, r3
cmp r3, r2
@@ -12486,36 +12916,36 @@ get_new_active_ppa:
add r1, r4, r3, asl #1
ldrh r1, [r1, #16]
cmp r1, r5
- beq .L1448
+ beq .L1485
strb r3, [r4, #6]
ldrb r3, [r4, #8] @ zero_extendqisi2
cmp r3, #1
- bne .L1449
- ldr r3, .L1454
+ bne .L1486
+ ldr r3, .L1491
ldrb r2, [r3, #928] @ zero_extendqisi2
cmp r2, #0
ldrh r2, [r4, #2]
- bne .L1452
- ldr r3, .L1454+4
+ bne .L1489
+ ldr r3, .L1491+4
add r2, r3, r2, asl #1
sub r2, r2, #892
ldrh r3, [r2, #0]
cmp r3, r7
- bne .L1449
+ bne .L1486
ldrh r3, [r4, #4]
cmp r3, #0
- beq .L1449
+ beq .L1486
sub r3, r3, #1
ldrh r0, [r4, #0]
strh r3, [r4, #4] @ movhi
bl decrement_vpc_count
- b .L1451
-.L1452:
+ b .L1488
+.L1489:
movw r1, #3918
ldrh r1, [r3, r1]
cmp r2, r1
- bcc .L1449
- ldr r1, .L1454+4
+ bcc .L1486
+ ldr r1, .L1491+4
ldrh r2, [r4, #0]
ldrh r0, [r4, #4]
ldr r1, [r1, #-2016]
@@ -12530,19 +12960,19 @@ get_new_active_ppa:
ldrh r3, [r3, r2]
strb r1, [r4, #6]
strh r3, [r4, #2] @ movhi
-.L1449:
+.L1486:
mov r0, r6
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1455:
+.L1492:
.align 2
-.L1454:
+.L1491:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size get_new_active_ppa, .-get_new_active_ppa
.align 2
- .type FtlSlcSuperblockCheck.part.19, %function
-FtlSlcSuperblockCheck.part.19:
+ .type FtlSlcSuperblockCheck.part.20, %function
+FtlSlcSuperblockCheck.part.20:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@@ -12551,12 +12981,12 @@ FtlSlcSuperblockCheck.part.19:
mov r4, r0
ldrb r3, [r0, #6] @ zero_extendqisi2
movw r6, #65535
- ldr r5, .L1462
- ldr r7, .L1462+4
+ ldr r5, .L1499
+ ldr r7, .L1499+4
add r3, r0, r3, asl #1
ldrh r3, [r3, #16]
- b .L1457
-.L1458:
+ b .L1494
+.L1495:
ldrb r3, [r4, #6] @ zero_extendqisi2
movw r2, #3848
ldrh r2, [r5, r2]
@@ -12572,21 +13002,21 @@ FtlSlcSuperblockCheck.part.19:
ldrb r3, [r4, #6] @ zero_extendqisi2
add r3, r4, r3, asl #1
ldrh r3, [r3, #16]
-.L1457:
+.L1494:
cmp r3, r6
- beq .L1458
+ beq .L1495
ldrb r2, [r4, #8] @ zero_extendqisi2
cmp r2, #1
- bne .L1460
+ bne .L1497
ldrb r3, [r5, #928] @ zero_extendqisi2
cmp r3, #0
- bne .L1460
+ bne .L1497
ldrh r3, [r4, #2]
add r3, r7, r3, asl #1
sub r3, r3, #892
ldrh r3, [r3, #0]
cmp r3, r6
- bne .L1460
+ bne .L1497
ldrh r3, [r4, #4]
ldrh r0, [r4, #0]
sub r3, r3, #1
@@ -12594,14 +13024,14 @@ FtlSlcSuperblockCheck.part.19:
bl decrement_vpc_count
ldrh r3, [r4, #4]
cmp r3, #0
- bne .L1458
+ bne .L1495
ldrh r2, [r4, #2]
strb r3, [r4, #6]
add r2, r2, #1
strh r2, [r4, #2] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1460:
- ldr r3, .L1462
+.L1497:
+ ldr r3, .L1499
ldrb r1, [r3, #928] @ zero_extendqisi2
cmp r1, #0
ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
@@ -12612,7 +13042,7 @@ FtlSlcSuperblockCheck.part.19:
ldrh r2, [r3, r2]
cmp r1, r2
ldmccfd sp!, {r3, r4, r5, r6, r7, pc}
- ldr r1, .L1462+4
+ ldr r1, .L1499+4
ldrh r2, [r4, #0]
ldrh r0, [r4, #4]
ldr r1, [r1, #-2016]
@@ -12628,13 +13058,13 @@ FtlSlcSuperblockCheck.part.19:
strb r1, [r4, #6]
strh r3, [r4, #2] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1463:
+.L1500:
.align 2
-.L1462:
+.L1499:
.word .LANCHOR0
.word .LANCHOR2
.fnend
- .size FtlSlcSuperblockCheck.part.19, .-FtlSlcSuperblockCheck.part.19
+ .size FtlSlcSuperblockCheck.part.20, .-FtlSlcSuperblockCheck.part.20
.align 2
.global FtlSlcSuperblockCheck
.type FtlSlcSuperblockCheck, %function
@@ -12650,304 +13080,308 @@ FtlSlcSuperblockCheck:
movw r3, #65535
cmp r2, r3
bxeq lr
- b FtlSlcSuperblockCheck.part.19
+ b FtlSlcSuperblockCheck.part.20
.fnend
.size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
.align 2
- .type allocate_data_superblock.part.20, %function
-allocate_data_superblock.part.20:
+ .type allocate_data_superblock.part.21, %function
+allocate_data_superblock.part.21:
.fnstart
- @ args = 0, pretend = 0, frame = 16
+ @ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- .pad #20
- sub sp, sp, #20
- ldr r4, .L1502
- mov r5, r0
- mov r8, r4
-.L1498:
- ldr r3, .L1502+4
- cmp r5, r3
- bne .L1468
- ldr r3, .L1502+8
- ldrh r2, [r4, r3]
- ldr r3, [r4, #-1184]
+ .pad #28
+ sub sp, sp, #28
+ ldr r5, .L1538
+ mov r4, r0
+ mov r8, r5
+.L1535:
+ ldr r3, .L1538+4
+ cmp r4, r3
+ bne .L1505
+ ldr r3, .L1538+8
+ ldrh r2, [r5, r3]
+ ldr r3, [r5, #-1184]
mov r1, r2, lsr #1
mul ip, r3, r2
add r0, r1, #1
add r0, r0, ip, lsr #2
- ldr ip, .L1502+12
+ ldr ip, .L1538+12
uxth r0, r0
ldr ip, [ip, #3840]
cmp ip, #0
- beq .L1492
- ldr ip, [r4, #-1780]
+ beq .L1529
+ ldr ip, [r5, #-1780]
cmp ip, #29
- bhi .L1492
+ bhi .L1529
cmp ip, #2
- bls .L1497
+ bls .L1534
tst r2, #1
- beq .L1469
+ beq .L1506
cmp r3, #0
moveq r1, r3
- beq .L1470
- b .L1469
-.L1468:
- ldrb r3, [r5, #8] @ zero_extendqisi2
+ beq .L1507
+ b .L1506
+.L1505:
+ ldrb r3, [r4, #8] @ zero_extendqisi2
cmp r3, #1
- bne .L1497
- ldr r3, .L1502+12
+ bne .L1534
+ ldr r3, .L1538+12
movw r2, #3868
ldrh r2, [r3, r2]
cmp r2, #1
- beq .L1497
+ beq .L1534
ldrb r2, [r3, #928] @ zero_extendqisi2
cmp r2, #0
- bne .L1497
+ bne .L1534
sub r2, r2, #2000
ldr r3, [r3, #3840]
- ldrh r2, [r4, r2]
+ ldrh r2, [r5, r2]
cmp r3, #0
mov r1, r2, lsr #3
- beq .L1469
- ldr r3, [r4, #-1780]
+ beq .L1506
+ ldr r3, [r5, #-1780]
cmp r3, #1
movls r1, #7
mulls r1, r1, r2
movls r1, r1, lsr #3
- b .L1469
-.L1492:
+ b .L1506
+.L1529:
mov r1, r0
-.L1469:
+.L1506:
cmp r1, #0
subne r1, r1, #1
uxthne r1, r1
- b .L1470
-.L1497:
+ b .L1507
+.L1534:
mov r1, #0
-.L1470:
- ldrb r2, [r5, #8] @ zero_extendqisi2
- ldr r0, .L1502+16
+.L1507:
+ ldrb r2, [r4, #8] @ zero_extendqisi2
+ ldr r0, .L1538+16
bl List_pop_index_node
- ldr r3, .L1502+8
- ldrh r2, [r4, r3]
+ ldr r3, .L1538+8
+ ldrh r2, [r5, r3]
sub r2, r2, #1
- strh r2, [r4, r3] @ movhi
+ strh r2, [r5, r3] @ movhi
uxth r7, r0
- mov r0, r5
- strh r7, [r5, #0] @ movhi
+ mov r0, r4
+ strh r7, [r4, #0] @ movhi
bl make_superblock
- ldrb r3, [r5, #7] @ zero_extendqisi2
+ ldrb r3, [r4, #7] @ zero_extendqisi2
cmp r3, #0
- beq .L1471
- ldr r2, .L1502+12
- movw r3, #3848
- ldr ip, [r4, #-2084]
+ beq .L1508
+ ldr r3, .L1538+12
+ movw r2, #3848
mov r6, #0
- mov sl, r5
- mov r1, r5
- ldrh r9, [r2, r3]
+ mov r9, r4
+ mov r1, r4
mov r0, r6
- mov r3, ip
+ ldr ip, [r3, #4044]
+ ldrh sl, [r3, r2]
mov r2, r6
- stmia sp, {r5, ip}
- b .L1472
-.L1471:
- ldr r3, [r4, #-2016]
+ mov r3, ip
+ stmib sp, {r4, ip}
+ b .L1509
+.L1508:
+ ldr r3, [r5, #-2016]
mov r7, r7, asl #1
mvn r2, #0
strh r2, [r3, r7] @ movhi
- b .L1498
-.L1475:
+ b .L1535
+.L1512:
str r0, [r3, #8]
- movw r5, #65535
+ movw r4, #65535
str r0, [r3, #12]
ldrh lr, [r1, #16]
- cmp lr, r5
- beq .L1474
- ldr r5, [sp, #4]
+ cmp lr, r4
+ beq .L1511
+ ldr r4, [sp, #8]
mov ip, #36
mov lr, lr, asl #10
- mla fp, ip, r6, r5
+ mla fp, ip, r6, r4
add r6, r6, #1
uxth r6, r6
str lr, [fp, #4]
-.L1474:
+.L1511:
add r2, r2, #1
add r3, r3, #36
add r1, r1, #2
uxth r2, r2
-.L1472:
- cmp r2, r9
- bne .L1475
- ldr r3, .L1502+12
- ldr r5, [sp, #0]
- ldr r3, [r3, #3840]
- cmp r3, #0
- beq .L1476
- ldr r3, .L1502+20
- cmp r5, r3
- bne .L1476
- ldr r2, [r4, #-2080]
+.L1509:
+ cmp r2, sl
+ bne .L1512
+ ldr r3, .L1538+12
+ ldr r4, [sp, #4]
+ ldr r2, [r3, #3840]
+ cmp r2, #0
+ beq .L1513
+ ldr r2, .L1538+20
+ cmp r4, r2
+ bne .L1513
+ ldr r2, [r3, #4048]
mov r3, r7, asl #1
ldrh r3, [r2, r3]
cmp r3, #30
movhi r3, #0
- strhib r3, [r4, #-1988]
-.L1476:
- ldrb r3, [r5, #8] @ zero_extendqisi2
- ldr r2, [r4, #-2080]
+ strhib r3, [r5, #-1988]
+.L1513:
+ ldrb r3, [r4, #8] @ zero_extendqisi2
+ ldr r2, .L1538+12
cmp r3, #0
mov r3, r7, asl #1
- ldrh r1, [r2, r3]
- bne .L1477
- cmp r1, #0
- ldrne ip, .L1502+12
- movwne r0, #3906
- moveq r1, #2
- ldrneh r0, [ip, r0]
- addne r1, r1, r0
- strh r1, [r2, r3] @ movhi
- ldr r3, [r4, #-1796]
+ bne .L1514
+ ldr r1, [r2, #4048]
+ ldrh r0, [r1, r3]
+ cmp r0, #0
+ movwne ip, #3906
+ moveq r2, #2
+ ldrneh r2, [r2, ip]
+ streqh r2, [r1, r3] @ movhi
+ addne r0, r0, r2
+ strneh r0, [r1, r3] @ movhi
+ ldr r3, [r5, #-1796]
mov r0, r7
mov r1, #0
add r3, r3, #1
- str r3, [r4, #-1796]
- b .L1500
-.L1477:
+ str r3, [r5, #-1796]
+ b .L1536
+.L1514:
+ ldr r2, [r2, #4048]
+ mov r0, r7
+ ldrh r1, [r2, r3]
add r1, r1, #1
strh r1, [r2, r3] @ movhi
- ldr r3, [r4, #-1792]
- mov r0, r7
+ ldr r3, [r5, #-1792]
mov r1, #1
add r3, r3, #1
- str r3, [r4, #-1792]
-.L1500:
+ str r3, [r5, #-1792]
+.L1536:
+ ldr sl, .L1538+12
bl ftl_set_blk_mode
- ldr r3, [r4, #-2080]
- mov r9, r7, asl #1
- ldr r2, [r4, #-1784]
+ mov fp, r7, asl #1
+ ldr r2, [r5, #-1784]
ldr r0, [r8, #-1796]
- ldrh r3, [r3, r9]
+ ldr r3, [sl, #4048]
+ ldrh r3, [r3, fp]
cmp r3, r2
- movw r2, #3906
- strhi r3, [r4, #-1784]
- ldr r3, .L1502+12
- ldrh r1, [r3, r2]
- ldr r2, [r8, #-1792]
- mla r0, r0, r1, r2
- mov r2, #3856
- ldrh r1, [r3, r2]
+ strhi r3, [r5, #-1784]
+ movw r3, #3906
+ ldrh r2, [sl, r3]
+ ldr r3, [r8, #-1792]
+ mla r0, r0, r2, r3
+ mov r3, #3856
+ ldrh r1, [sl, r3]
bl __aeabi_uidiv
ldr r3, [r8, #-920]
ldr r2, [r3, #16]
add r2, r2, #1
str r2, [r3, #16]
- ldr r3, [r8, #-2084]
+ ldr r3, [sl, #4044]
mov r2, #0
str r0, [r8, #-1788]
- b .L1482
-.L1483:
+ b .L1519
+.L1520:
add r2, r2, #1
ldr r1, [r3, #-32]
uxth r2, r2
bic r1, r1, #1020
bic r1, r1, #3
str r1, [r3, #-32]
-.L1482:
+.L1519:
cmp r2, r6
add r3, r3, #36
- bne .L1483
- ldr r3, .L1502+12
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ bne .L1520
+ ldr sl, .L1538+12
+ ldrb r3, [sl, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L1484
- ldrb r3, [r5, #8] @ zero_extendqisi2
+ beq .L1521
+ ldrb r3, [r4, #8] @ zero_extendqisi2
mov r2, r6
- ldr r0, [r4, #-2084]
+ ldr r0, [sl, #4044]
cmp r3, #1
moveq r1, #0
movne r1, #1
bl FlashEraseBlocks
-.L1484:
+.L1521:
mov r2, r6
- ldr r0, [r4, #-2084]
- ldrb r1, [r5, #8] @ zero_extendqisi2
- mov fp, #0
+ ldr r0, [sl, #4044]
+ ldrb r1, [r4, #8] @ zero_extendqisi2
bl FlashEraseBlocks
- mov r2, #36
- mul r2, r2, r6
- mov r3, r7
- mov ip, r9
- mov r6, fp
- mov r7, r5
- mov r9, r2
- b .L1486
-.L1488:
- ldr r1, [r4, #-2084]
- add r0, r1, fp
- ldr r5, [r1, fp]
- cmn r5, #1
- bne .L1487
+ mov r1, #36
+ mul r1, r1, r6
+ mov r6, #0
+ mov r3, fp
+ mov sl, r6
+ mov fp, r7
+ ldr r2, .L1538+12
+ mov r7, r1
+ b .L1523
+.L1525:
+ ldr r1, [r2, #4044]
+ add r0, r1, r6
+ ldr r1, [r1, r6]
+ cmn r1, #1
+ bne .L1524
ldr r0, [r0, #4]
- add r6, r6, #1
- str r3, [sp, #12]
+ add sl, sl, #1
+ str r1, [sp, #20]
ubfx r0, r0, #10, #16
- str ip, [sp, #8]
+ str r2, [sp, #16]
+ str r3, [sp, #12]
bl FtlBbmMapBadBlock
- strh r5, [sl, #16] @ movhi
- ldrb r1, [r7, #7] @ zero_extendqisi2
+ ldr r1, [sp, #20]
+ strh r1, [r9, #16] @ movhi
+ ldrb r1, [r4, #7] @ zero_extendqisi2
sub r1, r1, #1
- strb r1, [r7, #7]
- ldr ip, [sp, #8]
+ strb r1, [r4, #7]
ldr r3, [sp, #12]
-.L1487:
- add fp, fp, #36
- add sl, sl, #2
-.L1486:
- cmp fp, r9
- bne .L1488
- cmp r6, #0
- mov r5, r7
- mov r9, ip
- mov r7, r3
- beq .L1489
- mov r0, r3
+ ldr r2, [sp, #16]
+.L1524:
+ add r6, r6, #36
+ add r9, r9, #2
+.L1523:
+ cmp r6, r7
+ bne .L1525
+ cmp sl, #0
+ mov r7, fp
+ mov fp, r3
+ beq .L1526
+ mov r0, r7
bl update_multiplier_value
bl FtlBbmTblFlush
-.L1489:
- ldrb r3, [r5, #7] @ zero_extendqisi2
+.L1526:
+ ldrb r3, [r4, #7] @ zero_extendqisi2
cmp r3, #0
- ldreq r3, [r8, #-2016]
+ ldreq r3, [r5, #-2016]
mvneq r2, #0
- streqh r2, [r3, r9] @ movhi
- beq .L1498
-.L1490:
- ldr r1, .L1502+12
+ streqh r2, [r3, fp] @ movhi
+ beq .L1535
+.L1527:
+ ldr r1, .L1538+12
movw r2, #3916
ldrh r2, [r1, r2]
- strh r7, [r5, #0] @ movhi
+ strh r7, [r4, #0] @ movhi
mul r2, r2, r3
mov r3, #0
- strh r3, [r5, #2] @ movhi
- strb r3, [r5, #6]
- ldr r3, .L1502
+ strh r3, [r4, #2] @ movhi
+ strb r3, [r4, #6]
+ ldr r3, .L1538
uxth r2, r2
- strh r2, [r5, #4] @ movhi
+ strh r2, [r4, #4] @ movhi
ldr r1, [r3, #-1804]
- str r1, [r5, #12]
+ str r1, [r4, #12]
add r1, r1, #1
str r1, [r3, #-1804]
- ldrh r0, [r5, #0]
+ ldrh r0, [r4, #0]
ldr r1, [r3, #-2016]
mov r3, r0, asl #1
strh r2, [r1, r3] @ movhi
- add sp, sp, #20
+ add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1503:
+.L1539:
.align 2
-.L1502:
+.L1538:
.word .LANCHOR2
.word .LANCHOR2-1900
.word -2000
@@ -12955,7 +13389,7 @@ allocate_data_superblock.part.20:
.word .LANCHOR2-2004
.word .LANCHOR2-1996
.fnend
- .size allocate_data_superblock.part.20, .-allocate_data_superblock.part.20
+ .size allocate_data_superblock.part.21, .-allocate_data_superblock.part.21
.align 2
.global allocate_data_superblock
.type allocate_data_superblock, %function
@@ -12965,28 +13399,27 @@ allocate_data_superblock:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L1506
- ldr r3, [r3, #-2088]
+ ldr r3, .L1542
+ ldr r3, [r3, #4040]
cmp r3, #0
- bne .L1505
- bl allocate_data_superblock.part.20
-.L1505:
+ bne .L1541
+ bl allocate_data_superblock.part.21
+.L1541:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L1507:
+.L1543:
.align 2
-.L1506:
- .word .LANCHOR2
+.L1542:
+ .word .LANCHOR0
.fnend
.size allocate_data_superblock, .-allocate_data_superblock
.align 2
- .global FtlSuperblockPowerLostFix
- .type FtlSuperblockPowerLostFix, %function
-FtlSuperblockPowerLostFix:
+ .type FtlSuperblockPowerLostFix.part.19, %function
+FtlSuperblockPowerLostFix.part.19:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1517
+ ldr r3, .L1553
stmfd sp!, {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r4, r0
@@ -12994,27 +13427,27 @@ FtlSuperblockPowerLostFix:
.pad #40
sub sp, sp, #40
cmp r7, #0
- beq .L1516
+ beq .L1552
ldrb r7, [r0, #8] @ zero_extendqisi2
cmp r7, #1
ldreqh r6, [r0, #4]
- beq .L1509
+ beq .L1545
mov r7, #0
-.L1516:
+.L1552:
mov r6, #12
-.L1509:
+.L1545:
mvn r8, #0
- ldr r5, .L1517+4
- b .L1510
-.L1513:
+ ldr r5, .L1553+4
+ b .L1546
+.L1549:
ldrh r3, [r4, #4]
cmp r3, #0
- beq .L1511
+ beq .L1547
mov r0, r4
bl get_new_active_ppa
cmn r0, #1
str r0, [sp, #8]
- beq .L1511
+ beq .L1547
ldr r2, [r5, #-936]
add r0, sp, #4
ldr r3, [r5, #-960]
@@ -13039,11 +13472,11 @@ FtlSuperblockPowerLostFix:
bl FlashProgPages
ldrh r0, [r4, #0]
bl decrement_vpc_count
-.L1510:
+.L1546:
cmp r6, #0
- bne .L1513
-.L1511:
- ldr r2, .L1517+4
+ bne .L1549
+.L1547:
+ ldr r2, .L1553+4
ldrh r3, [r4, #0]
ldrh r1, [r4, #4]
ldr r2, [r2, #-2016]
@@ -13051,7 +13484,7 @@ FtlSuperblockPowerLostFix:
ldrh r0, [r2, r3]
rsb r1, r1, r0
strh r1, [r2, r3] @ movhi
- ldr r2, .L1517
+ ldr r2, .L1553
movw r3, #3916
ldrh r3, [r2, r3]
strh r3, [r4, #2] @ movhi
@@ -13060,12 +13493,31 @@ FtlSuperblockPowerLostFix:
strh r3, [r4, #4] @ movhi
add sp, sp, #40
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L1518:
+.L1554:
.align 2
-.L1517:
+.L1553:
.word .LANCHOR0
.word .LANCHOR2
.fnend
+ .size FtlSuperblockPowerLostFix.part.19, .-FtlSuperblockPowerLostFix.part.19
+ .align 2
+ .global FtlSuperblockPowerLostFix
+ .type FtlSuperblockPowerLostFix, %function
+FtlSuperblockPowerLostFix:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ @ link register save eliminated.
+ ldr r3, .L1557
+ ldr r3, [r3, #4040]
+ cmp r3, #0
+ bxne lr
+ b FtlSuperblockPowerLostFix.part.19
+.L1558:
+ .align 2
+.L1557:
+ .word .LANCHOR0
+ .fnend
.size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
.align 2
.global FtlLowFormatEraseBlock
@@ -13076,161 +13528,165 @@ FtlLowFormatEraseBlock:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ mov sl, r1
+ ldr r8, .L1589
.pad #28
sub sp, sp, #28
- ldr r7, .L1548
- mov r8, r1
- ldr r9, .L1548+4
- str r0, [sp, #12]
- ldr r6, [r7, #-2088]
- ldrb r0, [r9, #3837] @ zero_extendqisi2
+ str r0, [sp, #8]
+ ldr r6, [r8, #4040]
+ ldrb r1, [r8, #3837] @ zero_extendqisi2
cmp r6, #0
- str r0, [sp, #16]
+ str r1, [sp, #16]
movne r4, #0
- bne .L1520
- ldrb r2, [r9, #928] @ zero_extendqisi2
+ bne .L1560
+ ldrb r2, [r8, #928] @ zero_extendqisi2
mov r5, r6
- ldr r3, [sp, #12]
+ ldr fp, .L1589+4
mov r4, r6
- mov fp, #36
- str r2, [sp, #8]
- str r3, [r7, #-984]
- b .L1521
-.L1525:
- mul r3, fp, r6
- ldr r2, [r7, #-2084]
- mov r0, #0
- ldr r1, [sp, #12]
- str r0, [r2, r3]
- add r3, r9, r6
+ mov r9, #36
+ str r2, [sp, #4]
+ str r0, [fp, #-984]
+ b .L1561
+.L1565:
+ mul r3, r9, r6
+ ldr r2, [r8, #4044]
+ mov r1, #0
+ str r1, [r2, r3]
+ add r3, r8, r6
+ ldr r1, [sp, #8]
ldrb r0, [r3, #3874] @ zero_extendqisi2
bl V2P_block
- cmp r8, #0
- mov sl, r0
- beq .L1522
+ cmp sl, #0
+ mov r7, r0
+ beq .L1562
bl IsBlkInVendorPart
cmp r0, #0
- bne .L1523
-.L1522:
- mov r0, sl
+ bne .L1563
+.L1562:
+ mov r0, r7
bl FtlBbmIsBadBlock
cmp r0, #0
addne r4, r4, #1
uxthne r4, r4
- bne .L1523
+ bne .L1563
movw r1, #3928
- ldr r3, [r7, #-2084]
- ldrh r2, [r9, r1]
- mov sl, sl, asl #10
- mla r3, fp, r5, r3
+ ldr r3, [r8, #4044]
+ ldrh r2, [r8, r1]
+ mov r7, r7, asl #10
+ mla r3, r9, r5, r3
mul r2, r2, r5
add r5, r5, #1
uxth r5, r5
add r1, r2, #3
cmp r2, #0
- str sl, [r3, #4]
+ str r7, [r3, #4]
movlt r2, r1
- ldr r1, [r7, #-932]
+ ldr r1, [fp, #-932]
bic r2, r2, #3
str r0, [r3, #8]
add r2, r1, r2
str r2, [r3, #12]
-.L1523:
+.L1563:
add r6, r6, #1
uxth r6, r6
-.L1521:
+.L1561:
movw r2, #3848
- ldr sl, .L1548+4
- ldrh r3, [r9, r2]
+ ldr r7, .L1589
+ ldrh r3, [r8, r2]
cmp r3, r6
- bhi .L1525
+ bhi .L1565
cmp r5, #0
- beq .L1520
- ldr r3, [sp, #8]
- mov r7, #0
- ldr r9, .L1548
+ beq .L1560
+ ldr r3, [sp, #4]
+ mov r8, #0
+ ldr r0, [r7, #4044]
mov r2, r5
adds r6, r3, #0
- strb r7, [sl, #3837]
+ strb r8, [r7, #3837]
+ mov r9, r8
movne r6, #1
- ldr r0, [r9, #-2084]
mov r1, r6
bl FlashEraseBlocks
- ldr r0, [sp, #16]
- strb r0, [sl, #3837]
- mov sl, r7
-.L1528:
- ldr r3, [r9, #-2084]
- add r2, r3, r7
- ldr r3, [r3, r7]
+ ldr r1, [sp, #16]
+ strb r1, [r7, #3837]
+.L1568:
+ ldr r3, [r7, #4044]
+ add r2, r3, r8
+ ldr r3, [r3, r8]
cmn r3, #1
- bne .L1527
+ bne .L1567
ldr r0, [r2, #4]
add r4, r4, #1
ubfx r0, r0, #10, #16
uxth r4, r4
bl FtlBbmMapBadBlock
-.L1527:
- add sl, sl, #1
- add r7, r7, #36
- uxth sl, sl
- cmp sl, r5
- bne .L1528
- cmp r8, #0
- moveq r2, #6
- moveq sl, #1
- streq r2, [sp, #8]
- beq .L1529
- ldr r3, .L1548+4
+.L1567:
+ add r9, r9, #1
+ add r8, r8, #36
+ uxth r9, r9
+ cmp r9, r5
+ bne .L1568
+ cmp sl, #0
+ beq .L1582
+ ldr r3, .L1589
movw r2, #3918
- ldrh sl, [r3, r2]
+ ldrh r2, [r3, r2]
ldrb r3, [r3, #928] @ zero_extendqisi2
cmp r3, #0
- moveq r1, sl, lsr #2
- streq r1, [sp, #8]
+ str r2, [sp, #12]
+ moveq r2, r2, lsr #2
+ streq r2, [sp, #4]
moveq r6, #1
- movne r6, #1
- strne r6, [sp, #8]
-.L1529:
- mov r7, #0
-.L1537:
+ beq .L1569
+ b .L1588
+.L1582:
+ mov r3, #6
+ mov r1, #1
+ str r3, [sp, #4]
+ str r1, [sp, #12]
+ b .L1569
+.L1588:
+ mov r6, #1
+ str r6, [sp, #4]
+.L1569:
+ ldr r7, .L1589
+ mov r8, #0
+.L1577:
mov r9, #0
- ldr fp, .L1548
+ ldr fp, .L1589+4
mov r5, r9
- b .L1530
-.L1533:
- mov r0, #36
- ldr r2, [fp, #-2084]
- mul r3, r0, r9
+ b .L1570
+.L1573:
+ mov r1, #36
+ ldr r2, [r7, #4044]
+ mul r3, r1, r9
mov r1, #0
str r1, [r2, r3]
- ldr r2, .L1548+4
- ldr r1, [sp, #12]
- add r3, r2, r9
+ add r3, r7, r9
+ ldr r1, [sp, #8]
ldrb r0, [r3, #3874] @ zero_extendqisi2
bl V2P_block
- cmp r8, #0
+ cmp sl, #0
str r0, [sp, #20]
- beq .L1531
+ beq .L1571
bl IsBlkInVendorPart
cmp r0, #0
- bne .L1532
-.L1531:
+ bne .L1572
+.L1571:
ldr r0, [sp, #20]
bl FtlBbmIsBadBlock
cmp r0, #0
- bne .L1532
- ldr r3, [fp, #-2084]
- mov r0, #36
+ bne .L1572
+ ldr r3, [r7, #4044]
+ mov r2, #36
ldr r1, [sp, #20]
- mla r3, r0, r5, r3
- add r2, r7, r1, asl #10
- ldr r1, .L1548+4
- movw r0, #3928
+ mla r3, r2, r5, r3
+ add r2, r8, r1, asl #10
+ movw r1, #3928
str r2, [r3, #4]
ldr r2, [fp, #-944]
str r2, [r3, #8]
- ldrh r2, [r1, r0]
+ ldrh r2, [r7, r1]
mul r2, r2, r5
add r5, r5, #1
uxth r5, r5
@@ -13241,120 +13697,111 @@ FtlLowFormatEraseBlock:
bic r2, r2, #3
add r2, r1, r2
str r2, [r3, #12]
-.L1532:
+.L1572:
add r9, r9, #1
uxth r9, r9
-.L1530:
- ldr ip, .L1548+4
+.L1570:
movw r2, #3848
- ldrh r3, [ip, r2]
+ ldr ip, .L1589
+ ldrh r3, [r7, r2]
cmp r3, r9
- bhi .L1533
+ bhi .L1573
cmp r5, #0
- beq .L1520
- ldr r9, .L1548
+ beq .L1560
+ ldr r0, [ip, #4044]
mov r3, #0
mov r1, r5
strb r3, [ip, #3837]
mov r2, r6
mov r3, #1
- ldr r0, [r9, #-2084]
- mov fp, #0
- str ip, [sp, #4]
+ str ip, [sp, #0]
bl FlashProgPages
- ldr ip, [sp, #4]
- mov r3, fp
- ldr r0, [sp, #16]
- strb r0, [ip, #3837]
- mov ip, r8
- mov r8, r6
- mov r6, r5
- mov r5, fp
-.L1536:
- ldr r2, [r9, #-2084]
- add r1, r2, fp
- ldr r2, [r2, fp]
- cmp r2, #0
- beq .L1535
- ldr r0, [r1, #4]
+ ldr ip, [sp, #0]
+ mov r9, #0
+ ldr r1, [sp, #16]
+ mov fp, r9
+ strb r1, [ip, #3837]
+.L1576:
+ ldr r3, [r7, #4044]
+ add r2, r3, r9
+ ldr r3, [r3, r9]
+ cmp r3, #0
+ beq .L1575
+ ldr r0, [r2, #4]
add r4, r4, #1
- str ip, [sp, #4]
ubfx r0, r0, #10, #16
uxth r4, r4
bl FtlBbmMapBadBlock
- ldr ip, [sp, #4]
-.L1535:
- add r5, r5, #1
- add fp, fp, #36
- uxth r5, r5
- cmp r5, r6
- bne .L1536
- ldr r1, [sp, #8]
- mov r5, r6
- mov r6, r8
- mov r8, ip
- add r7, r7, r1
- uxth r7, r7
- cmp r7, sl
- bcc .L1537
- ldr r9, .L1548
+.L1575:
+ add fp, fp, #1
+ add r9, r9, #36
+ uxth fp, fp
+ cmp fp, r5
+ bne .L1576
+ ldr r2, [sp, #4]
+ ldr r3, [sp, #12]
+ add r8, r8, r2
+ uxth r8, r8
+ cmp r8, r3
+ bcc .L1577
+ ldr r9, .L1589
mov r7, #0
- mov sl, r7
-.L1539:
- cmp r8, #0
- beq .L1538
- ldr r3, [r9, #-2084]
+ mov r8, r7
+.L1579:
+ cmp sl, #0
+ beq .L1578
+ ldr r3, [r9, #4044]
add r2, r3, r7
ldr r3, [r3, r7]
cmp r3, #0
- bne .L1538
+ bne .L1578
ldr r0, [r2, #4]
mov r1, #1
ubfx r0, r0, #10, #16
bl FtlFreeSysBlkQueueIn
-.L1538:
- add sl, sl, #1
+.L1578:
+ add r8, r8, #1
add r7, r7, #36
- uxth sl, sl
- cmp sl, r5
- bne .L1539
- ldr r2, [sp, #12]
- cmp r2, #63
+ uxth r8, r8
+ cmp r8, r5
+ bne .L1579
+ ldr r1, [sp, #8]
+ cmp r1, #63
movhi r3, #0
movls r3, #1
- cmp r8, #0
- moveq r8, r3
- orrne r8, r3, #1
- cmp r8, #0
- beq .L1520
- ldr r3, .L1548
+ cmp sl, #0
+ moveq sl, r3
+ orrne sl, r3, #1
+ cmp sl, #0
+ beq .L1560
+ ldr r3, .L1589
mov r1, r6
- mov r2, sl
- ldr r0, [r3, #-2084]
+ mov r2, r8
+ ldr r0, [r3, #4044]
bl FlashEraseBlocks
-.L1520:
+.L1560:
mov r0, r4
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1549:
+.L1590:
.align 2
-.L1548:
- .word .LANCHOR2
+.L1589:
.word .LANCHOR0
+ .word .LANCHOR2
.fnend
.size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
.align 2
- .type FlashTestBlk.part.23, %function
-FlashTestBlk.part.23:
+ .type FlashTestBlk.part.25, %function
+FlashTestBlk.part.25:
.fnstart
@ args = 0, pretend = 0, frame = 104
@ frame_needed = 0, uses_anonymous_args = 0
-.L1551:
+.L1592:
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
.pad #108
sub sp, sp, #108
- ldr r4, .L1553
+ ldr r4, .L1594
mov r5, r0
mov r1, #165
add r0, sp, #40
@@ -13388,12 +13835,12 @@ FlashTestBlk.part.23:
mov r0, r4
add sp, sp, #108
ldmfd sp!, {r4, r5, pc}
-.L1554:
+.L1595:
.align 2
-.L1553:
+.L1594:
.word .LANCHOR2
.fnend
- .size FlashTestBlk.part.23, .-FlashTestBlk.part.23
+ .size FlashTestBlk.part.25, .-FlashTestBlk.part.25
.align 2
.global FlashTestBlk
.type FlashTestBlk, %function
@@ -13402,17 +13849,17 @@ FlashTestBlk:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L1557
+ ldr r3, .L1598
ldr r3, [r3, #156]
cmp r0, r3
- bcc .L1556
- b FlashTestBlk.part.23
-.L1556:
+ bcc .L1597
+ b FlashTestBlk.part.25
+.L1597:
mov r0, #0
bx lr
-.L1558:
+.L1599:
.align 2
-.L1557:
+.L1598:
.word .LANCHOR2
.fnend
.size FlashTestBlk, .-FlashTestBlk
@@ -13423,7 +13870,7 @@ FlashMakeFactorBbt:
.fnstart
@ args = 0, pretend = 0, frame = 72
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1587
+ ldr r3, .L1628
movw r1, #3062
movw r2, #3060
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
@@ -13434,13 +13881,13 @@ FlashMakeFactorBbt:
mov r5, #0
ldrh fp, [r3, r1]
mov r1, #1
- ldr r4, .L1587+4
+ ldr r4, .L1628+4
mul fp, fp, r2
ldr r2, [r3, #3624]
ldr r0, [r4, #228]
ldrb r2, [r2, #24] @ zero_extendqisi2
str r0, [sp, #28]
- ldr r0, .L1587+8
+ ldr r0, .L1628+8
uxth fp, fp
str r2, [sp, #12]
ldr r2, [r3, #856]
@@ -13458,17 +13905,17 @@ FlashMakeFactorBbt:
bl ftl_memset
sub r3, fp, #1
mov r2, fp, lsr #4
- ldr r4, .L1587
+ ldr r4, .L1628
uxth r3, r3
str r2, [sp, #20]
str r3, [sp, #24]
- b .L1561
-.L1583:
- ldr r3, .L1587+4
+ b .L1602
+.L1624:
+ ldr r3, .L1628+4
add r2, r3, r5, asl #1
ldrh r6, [r2, #232]
cmp r6, #0
- bne .L1562
+ bne .L1603
movw r2, #3068
ldr r0, [r3, #148]
ldrh r2, [r4, r2]
@@ -13480,14 +13927,14 @@ FlashMakeFactorBbt:
bl ftl_memset
add r3, r4, r5
ldrb r9, [r3, #3764] @ zero_extendqisi2
- b .L1563
-.L1571:
+ b .L1604
+.L1612:
mvn r3, #0
strb r3, [sp, #34]
strb r3, [sp, #35]
ldr r3, [sp, #12]
tst r3, #1
- beq .L1564
+ beq .L1605
ldr r3, [sl, #3588]
add r2, sp, #34
mov r0, r9
@@ -13498,7 +13945,7 @@ FlashMakeFactorBbt:
ldrb r2, [r4, #852] @ zero_extendqisi2
ldr r3, [sp, #4]
cmp r2, #1
- bne .L1564
+ bne .L1605
ldr r1, [r4, #856]
add r2, sp, #35
mov r0, r9
@@ -13508,10 +13955,10 @@ FlashMakeFactorBbt:
ldrb r2, [sp, #35] @ zero_extendqisi2
and r3, r2, r3
strb r3, [sp, #34]
-.L1564:
+.L1605:
ldr r0, [sp, #12]
tst r0, #2
- beq .L1565
+ beq .L1606
ldr r3, [r4, #3624]
mov r0, r9
add r2, sp, #35
@@ -13521,42 +13968,42 @@ FlashMakeFactorBbt:
add r1, r1, r3
add r1, r1, r6
bl FlashReadSpare
-.L1565:
+.L1606:
ldr r3, [r4, #3624]
ldrb r3, [r3, #7] @ zero_extendqisi2
cmp r3, #1
cmpne r3, #8
ldrb r3, [sp, #34] @ zero_extendqisi2
- bne .L1566
+ bne .L1607
cmp r3, #0
- beq .L1585
+ beq .L1626
ldrb r0, [sp, #35] @ zero_extendqisi2
rsbs r0, r0, #1
movcc r0, #0
- b .L1567
-.L1566:
+ b .L1608
+.L1607:
cmp r3, #255
- bne .L1585
+ bne .L1626
ldrb r0, [sp, #35] @ zero_extendqisi2
subs r0, r0, #255
movne r0, #1
- b .L1567
-.L1585:
+ b .L1608
+.L1626:
mov r0, #1
-.L1567:
+.L1608:
ldr r2, [sp, #12]
tst r2, #4
- beq .L1568
+ beq .L1609
ldr r1, [sl, #3588]
mov r0, r9
add r1, r6, r1
bl SandiskProgTestBadBlock
-.L1568:
+.L1609:
cmp r0, #0
- beq .L1569
+ beq .L1610
mov r1, r5
mov r2, r8
- ldr r0, .L1587+12
+ ldr r0, .L1628+12
add r7, r7, #1
bl printk
ldr r3, [sp, #16]
@@ -13564,7 +14011,7 @@ FlashMakeFactorBbt:
mov ip, #1
uxth r7, r7
mov r2, r3, lsr #5
- ldr r3, .L1587+4
+ ldr r3, .L1628+4
ldr r3, [r3, #148]
ldr r1, [r3, r2, asl #2]
orr r1, r1, ip, asl r0
@@ -13573,18 +14020,18 @@ FlashMakeFactorBbt:
ldrb r3, [r4, #3762] @ zero_extendqisi2
mul r3, r3, r0
cmp r7, r3
- bgt .L1570
-.L1569:
+ bgt .L1611
+.L1610:
ldr r2, [sp, #8]
add r8, r8, #1
add r6, r6, r2
-.L1563:
+.L1604:
uxth r3, r8
str r3, [sp, #16]
cmp r3, fp
- bcc .L1571
-.L1570:
- ldr r0, .L1587+16
+ bcc .L1612
+.L1611:
+ ldr r0, .L1628+16
mov r1, r5
mov r2, r7
bl printk
@@ -13592,29 +14039,29 @@ FlashMakeFactorBbt:
ldr r0, [sp, #20]
mul r3, r3, r0
cmp r7, r3
- blt .L1572
+ blt .L1613
movw r3, #3068
mov r1, #0
ldrh r2, [r4, r3]
- ldr r3, .L1587+4
+ ldr r3, .L1628+4
mov r2, r2, asl #9
ldr r0, [r3, #148]
bl ftl_memset
-.L1572:
+.L1613:
cmp r5, #0
- bne .L1573
- ldr sl, .L1587+4
+ bne .L1614
+ ldr sl, .L1628+4
mov r8, r5
mov r7, r5
ldrh r9, [sl, #156]
- b .L1574
-.L1576:
+ b .L1615
+.L1617:
mov r0, r6
bl FlashTestBlk
cmp r0, #0
- beq .L1575
+ beq .L1616
mov r1, r6
- ldr r0, .L1587+20
+ ldr r0, .L1628+20
bl printk
ldr r3, [sl, #148]
mov r2, r6, lsr #5
@@ -13625,27 +14072,27 @@ FlashMakeFactorBbt:
uxth r7, r7
orr r6, r1, r0, asl r6
str r6, [r3, r2, asl #2]
-.L1575:
+.L1616:
add r8, r8, #1
uxth r8, r8
-.L1574:
+.L1615:
add r6, r8, r9
ldrb r3, [r4, #853] @ zero_extendqisi2
uxth r6, r6
cmp r3, r6
- bhi .L1576
+ bhi .L1617
ldr r6, [sp, #24]
sub r9, fp, #50
- ldr sl, .L1587+4
+ ldr sl, .L1628+4
mov r8, #1
- b .L1577
-.L1579:
+ b .L1618
+.L1620:
mov r0, r6
bl FlashTestBlk
cmp r0, #0
- beq .L1578
+ beq .L1619
mov r1, r6
- ldr r0, .L1587+20
+ ldr r0, .L1628+20
bl printk
ldr r3, [sl, #148]
mov r2, r6, lsr #5
@@ -13653,48 +14100,48 @@ FlashMakeFactorBbt:
ldr r1, [r3, r2, asl #2]
orr r1, r1, r8, asl r0
str r1, [r3, r2, asl #2]
-.L1578:
+.L1619:
sub r6, r6, #1
uxth r6, r6
-.L1577:
+.L1618:
cmp r6, r9
- bgt .L1579
- ldr r3, .L1587+4
+ bgt .L1620
+ ldr r3, .L1628+4
ldrb r1, [r4, #853] @ zero_extendqisi2
ldr r2, [r3, #156]
rsb r2, r2, r1
cmp r7, r2
- bcc .L1573
+ bcc .L1614
movw r2, #3068
ldr r0, [r3, #148]
ldrh r2, [r4, r2]
mov r1, #0
mov r2, r2, asl #9
bl ftl_memset
-.L1573:
+.L1614:
mul r8, fp, r5
- ldr r7, .L1587+4
+ ldr r7, .L1628+4
ldr r6, [sp, #24]
ldr r9, [sp, #28]
add sl, r7, r5, asl #1
-.L1580:
- ldr r0, .L1587+24
+.L1621:
+ ldr r0, .L1628+24
mov r1, r5
mov r2, r6
bl printk
ldr r3, [r7, #148]
- b .L1581
-.L1582:
+ b .L1622
+.L1623:
sub r6, r6, #1
uxth r6, r6
-.L1581:
+.L1622:
mov r1, r6, lsr #5
and r2, r6, #31
ldr r1, [r3, r1, asl #2]
mov r2, r1, lsr r2
ands r2, r2, #1
- bne .L1582
- ldr r3, .L1587+28
+ bne .L1623
+ ldr r3, .L1628+28
mov r1, #1
strh r6, [sl, #232] @ movhi
add r0, sp, #36
@@ -13719,26 +14166,26 @@ FlashMakeFactorBbt:
cmp r3, #0
subne r6, r6, #1
uxthne r6, r6
- bne .L1580
-.L1562:
+ bne .L1621
+.L1603:
add r5, r5, #1
uxtb r5, r5
-.L1561:
+.L1602:
ldrb r3, [r4, #3762] @ zero_extendqisi2
cmp r3, r5
- bhi .L1583
+ bhi .L1624
add sp, sp, #76
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1588:
+.L1629:
.align 2
-.L1587:
+.L1628:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC111
- .word .LC112
- .word .LC113
- .word .LC114
- .word .LC115
+ .word .LC118
+ .word .LC119
+ .word .LC120
+ .word .LC121
+ .word .LC122
.word -3872
.fnend
.size FlashMakeFactorBbt, .-FlashMakeFactorBbt
@@ -13749,8 +14196,8 @@ ftl_map_blk_gc:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
- .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ .save {r4, r5, r6, r7, r8, r9, sl, lr}
mov r4, r0
ldr r6, [r0, #12]
ldr r5, [r0, #24]
@@ -13759,61 +14206,61 @@ ftl_map_blk_gc:
ldrh r2, [r4, #8]
sub r3, ip, #4
cmp r2, r3
- bge .L1590
+ bge .L1631
ldrh r2, [r4, #40]
movw r3, #65535
cmp r2, r3
- beq .L1591
- ldr r1, .L1603
+ beq .L1632
+ ldr r1, .L1645
movw r3, #3918
ldrh r2, [r4, #2]
ldrh r3, [r1, r3]
cmp r2, r3
- bcc .L1591
-.L1590:
+ bcc .L1632
+.L1631:
ldrh r1, [r4, #40]
movw r3, #65535
uxth r7, r0
cmp r1, r3
- beq .L1592
- ldr r0, .L1603
+ beq .L1633
+ ldr r0, .L1645
movw r2, #3918
ldrh r3, [r4, #2]
ldrh r2, [r0, r2]
cmp r2, r3
movls r0, r6
movls r2, #0
- bhi .L1592
- b .L1593
-.L1595:
+ bhi .L1633
+ b .L1634
+.L1636:
ldrh lr, [r0], #2
cmp lr, r1
- beq .L1602
+ beq .L1644
add r2, r2, #1
uxth r2, r2
-.L1593:
+.L1634:
cmp r2, ip
- bne .L1595
- b .L1594
-.L1602:
+ bne .L1636
+ b .L1635
+.L1644:
mov r7, r2
-.L1594:
+.L1635:
mov r2, r2, asl #1
- ldr r0, .L1603+4
+ ldr r0, .L1645+4
ldrh r2, [r6, r2]
bl printk
mvn r3, #0
strh r3, [r4, #40] @ movhi
-.L1592:
+.L1633:
mov r7, r7, asl #1
ldrh r8, [r6, r7]
cmp r8, #0
- beq .L1591
+ beq .L1632
ldr r3, [r4, #32]
cmp r3, #0
- bne .L1591
+ bne .L1632
mov r2, #1
- ldr r1, .L1603
+ ldr r1, .L1645
str r2, [r4, #32]
strh r3, [r6, r7] @ movhi
ldrh r3, [r4, #8]
@@ -13823,77 +14270,83 @@ ftl_map_blk_gc:
movw r3, #3918
ldrh r3, [r1, r3]
cmp r2, r3
- bcc .L1596
+ bcc .L1637
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L1596:
- mov r7, #0
- ldr r6, .L1603+8
- mov fp, r7
- b .L1597
-.L1600:
- ldr r3, [r5, r7, asl #2]
- mov r9, r7, asl #2
+.L1637:
+ mov r6, #0
+ ldr r7, .L1645+8
+ b .L1638
+.L1643:
+ ldr r3, [r5, r6, asl #2]
+ add r9, r5, r6, asl #2
cmp r8, r3, lsr #10
- bne .L1598
- ldr r3, [r6, #-956]
+ bne .L1639
+ ldr r3, [r7, #-956]
mov r1, #1
- ldr sl, [r6, #-936]
+ ldr sl, [r7, #-936]
mov r2, r1
- ldr r0, .L1603+12
- str r3, [r6, #188]
- str sl, [r6, #192]
- ldr r3, [r5, r7, asl #2]
- str r3, [r6, #184]
+ ldr r0, .L1645+12
+ str r3, [r7, #188]
+ str sl, [r7, #192]
+ ldr r3, [r5, r6, asl #2]
+ str r3, [r7, #184]
bl FlashReadPages
- ldr r3, [r6, #180]
+ ldr r3, [r7, #180]
cmn r3, #1
- bne .L1599
- str fp, [r5, r9]
- ldr r0, .L1603+16
- ldr r1, [r6, #184]
+ beq .L1640
+ ldrh r3, [sl, #8]
+ cmp r3, r6
+ beq .L1641
+.L1640:
+ mov r3, #0
+ str r3, [r9, #0]
+ ldr r3, .L1645+8
ldrh r2, [sl, #8]
+ ldr r0, .L1645+16
+ ldr r1, [r3, #184]
bl printk
- mov r3, #1
- str r3, [r6, #-2088]
- b .L1598
-.L1599:
+ ldr r3, .L1645
+ mov r2, #1
+ str r2, [r3, #4040]
+ b .L1642
+.L1641:
mov r0, r4
- mov r1, r7
- ldr r2, [r6, #188]
+ mov r1, r6
+ ldr r2, [r7, #188]
bl FtlMapWritePage
-.L1598:
- add r7, r7, #1
- uxth r7, r7
-.L1597:
+.L1639:
+ add r6, r6, #1
+ uxth r6, r6
+.L1638:
ldrh r3, [r4, #6]
- cmp r3, r7
- bhi .L1600
+ cmp r3, r6
+ bhi .L1643
mov r0, r8
mov r1, #1
bl FtlFreeSysBlkQueueIn
mov r3, #0
str r3, [r4, #32]
-.L1591:
- ldr r1, .L1603
+.L1632:
+ ldr r1, .L1645
movw r3, #3918
ldrh r2, [r4, #2]
ldrh r3, [r1, r3]
cmp r2, r3
- bcc .L1601
+ bcc .L1642
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L1601:
+.L1642:
mov r0, #0
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1604:
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+.L1646:
.align 2
-.L1603:
+.L1645:
.word .LANCHOR0
- .word .LC116
+ .word .LC123
.word .LANCHOR2
.word .LANCHOR2+180
- .word .LC117
+ .word .LC124
.fnend
.size ftl_map_blk_gc, .-ftl_map_blk_gc
.align 2
@@ -13903,60 +14356,60 @@ Ftl_write_map_blk_to_last_page:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
+ ldr r3, .L1653
stmfd sp!, {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r4, r0
- ldr r5, .L1611
- ldr r7, [r0, #12]
- ldr r8, [r0, #24]
- ldr r6, [r5, #-2088]
+ ldr r6, [r3, #4040]
+ ldr r5, [r0, #12]
cmp r6, #0
- bne .L1606
- ldrh r3, [r0, #0]
- movw r2, #65535
- cmp r3, r2
- bne .L1607
+ ldr r8, [r0, #24]
+ bne .L1648
+ ldrh r2, [r0, #0]
+ movw r1, #65535
+ cmp r2, r1
+ bne .L1649
ldrh r3, [r0, #8]
add r3, r3, #1
strh r3, [r0, #8] @ movhi
bl FtlFreeSysBlkQueueOut
- strh r0, [r7, #0] @ movhi
+ strh r0, [r5, #0] @ movhi
ldr r3, [r4, #28]
strh r6, [r4, #2] @ movhi
add r3, r3, #1
strh r6, [r4, #0] @ movhi
str r3, [r4, #28]
- b .L1606
-.L1607:
- mov r3, r3, asl #1
- ldr r2, [r0, #28]
+ b .L1648
+.L1649:
+ mov r2, r2, asl #1
+ ldr r1, [r0, #28]
+ ldrh r7, [r5, r2]
+ ldr r5, .L1653+4
+ ldrh r2, [r0, #2]
+ orr r2, r2, r7, asl #10
+ str r2, [r5, #184]
+ ldr r2, [r5, #-960]
+ str r2, [r5, #188]
+ ldr r2, [r5, #-936]
+ str r2, [r5, #192]
+ str r1, [r2, #4]
+ ldr r1, .L1653+8
+ strh r1, [r2, #8] @ movhi
+ ldrh r1, [r0, #4]
+ strh r7, [r2, #2] @ movhi
+ strh r1, [r2, #0] @ movhi
+ movw r2, #3918
+ ldrh r2, [r3, r2]
mov r1, #255
- ldrh r7, [r7, r3]
- ldrh r3, [r0, #2]
- orr r3, r3, r7, asl #10
- str r3, [r5, #184]
- ldr r3, [r5, #-960]
- str r3, [r5, #188]
- ldr r3, [r5, #-936]
- str r3, [r5, #192]
- str r2, [r3, #4]
- ldr r2, .L1611+4
- strh r2, [r3, #8] @ movhi
- ldrh r2, [r0, #4]
- strh r7, [r3, #2] @ movhi
- strh r2, [r3, #0] @ movhi
- movw r3, #3918
- ldr r2, .L1611+8
ldr r0, [r5, #-960]
- ldrh r2, [r2, r3]
mov r2, r2, asl #3
bl ftl_memset
mov r3, r6
- b .L1608
-.L1610:
+ b .L1650
+.L1652:
ldr r2, [r8, r3, asl #2]
cmp r7, r2, lsr #10
- bne .L1609
+ bne .L1651
add r6, r6, #1
ldr r2, [r5, #-960]
uxth r6, r6
@@ -13965,16 +14418,16 @@ Ftl_write_map_blk_to_last_page:
ldr r1, [r8, r3, asl #2]
add r2, r2, r6, asl #3
str r1, [r2, #4]
-.L1609:
+.L1651:
add r3, r3, #1
uxth r3, r3
-.L1608:
+.L1650:
ldrh r2, [r4, #6]
cmp r2, r3
- bhi .L1610
+ bhi .L1652
mov r1, #1
mov r3, #0
- ldr r0, .L1611+12
+ ldr r0, .L1653+12
mov r2, r1
bl FlashProgPages
ldrh r3, [r4, #2]
@@ -13982,33 +14435,35 @@ Ftl_write_map_blk_to_last_page:
add r3, r3, #1
strh r3, [r4, #2] @ movhi
bl ftl_map_blk_gc
-.L1606:
+.L1648:
mov r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L1612:
+.L1654:
.align 2
-.L1611:
+.L1653:
+ .word .LANCHOR0
.word .LANCHOR2
.word -1291
- .word .LANCHOR0
.word .LANCHOR2+180
.fnend
.size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
.align 2
- .type FtlMapWritePage.part.14, %function
-FtlMapWritePage.part.14:
+ .global FtlMapWritePage
+ .type FtlMapWritePage, %function
+FtlMapWritePage:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- .save {r4, r5, r6, r7, r8, r9, sl, lr}
+ stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r4, r0
- ldr r5, .L1626
+ ldr r8, .L1667
mov sl, r1
- ldr r8, .L1626+4
+ ldr r5, .L1667+4
mov r9, r2
mov r6, #0
-.L1624:
+ mov fp, r8
+.L1666:
ldr r3, [r5, #-1820]
add r3, r3, #1
str r3, [r5, #-1820]
@@ -14017,17 +14472,19 @@ FtlMapWritePage.part.14:
ldrh r3, [r8, r3]
sub r3, r3, #1
cmp r2, r3
- bge .L1615
+ bge .L1657
ldrh r2, [r4, #0]
movw r3, #65535
cmp r2, r3
- bne .L1616
-.L1615:
+ bne .L1658
+.L1657:
mov r0, r4
bl Ftl_write_map_blk_to_last_page
-.L1616:
+.L1658:
+ ldr r1, [fp, #4040]
+ cmp r1, #0
+ bne .L1659
ldrh r3, [r4, #0]
- mov r1, #0
ldr r2, [r4, #12]
ldr r0, [r5, #-936]
mov r3, r3, asl #1
@@ -14042,7 +14499,7 @@ FtlMapWritePage.part.14:
ldr r3, [r5, #192]
mov r1, #1
ldr r2, [r4, #28]
- ldr r0, .L1626+8
+ ldr r0, .L1667+8
strh sl, [r3, #8] @ movhi
str r2, [r3, #4]
ldrh r2, [r4, #4]
@@ -14057,8 +14514,8 @@ FtlMapWritePage.part.14:
strh r2, [r4, #2] @ movhi
ldr r3, [r5, #180]
cmn r3, #1
- bne .L1617
- ldr r0, .L1626+12
+ bne .L1660
+ ldr r0, .L1667+12
add r6, r6, #1
ldr r1, [r5, #184]
bl printk
@@ -14070,58 +14527,38 @@ FtlMapWritePage.part.14:
subls r3, r3, #1
strlsh r3, [r4, #2] @ movhi
cmp r6, #3
- bls .L1624
- ldr r4, .L1626
+ bls .L1666
+ ldr r3, .L1667+4
mov r2, r6
- ldr r0, .L1626+16
- ldr r1, [r4, #184]
+ ldr r0, .L1667+16
+ ldr r1, [r3, #184]
bl printk
- mov r3, #1
- str r3, [r4, #-2088]
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L1617:
+ ldr r3, .L1667
+ mov r2, #1
+ str r2, [r3, #4040]
+ b .L1659
+.L1660:
cmp r3, #0
strneh r7, [r4, #40] @ movhi
cmp r2, #1
- beq .L1624
+ beq .L1666
cmp r3, #256
- beq .L1624
- ldr r3, .L1626
+ beq .L1666
+ ldr r3, .L1667+4
ldr r2, [r3, #184]
ldr r3, [r4, #24]
str r2, [r3, sl, asl #2]
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L1627:
- .align 2
-.L1626:
- .word .LANCHOR2
- .word .LANCHOR0
- .word .LANCHOR2+180
- .word .LC118
- .word .LC119
- .fnend
- .size FtlMapWritePage.part.14, .-FtlMapWritePage.part.14
- .align 2
- .global FtlMapWritePage
- .type FtlMapWritePage, %function
-FtlMapWritePage:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, lr}
- .save {r3, lr}
- ldr r3, .L1630
- ldr r3, [r3, #-2088]
- cmp r3, #0
- bne .L1629
- bl FtlMapWritePage.part.14
-.L1629:
+.L1659:
mov r0, #0
- ldmfd sp!, {r3, pc}
-.L1631:
+ ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+.L1668:
.align 2
-.L1630:
+.L1667:
+ .word .LANCHOR0
.word .LANCHOR2
+ .word .LANCHOR2+180
+ .word .LC125
+ .word .LC126
.fnend
.size FtlMapWritePage, .-FtlMapWritePage
.align 2
@@ -14134,7 +14571,7 @@ flush_l2p_region:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r4, #12
- ldr r5, .L1633
+ ldr r5, .L1670
mul r4, r4, r0
sub r0, r5, #1088
ldr r2, [r5, #-1852]
@@ -14149,9 +14586,9 @@ flush_l2p_region:
bic r3, r3, #-2147483648
str r3, [r4, #4]
ldmfd sp!, {r3, r4, r5, pc}
-.L1634:
+.L1671:
.align 2
-.L1633:
+.L1670:
.word .LANCHOR2
.fnend
.size flush_l2p_region, .-flush_l2p_region
@@ -14162,53 +14599,52 @@ FtlMapBlkWriteDumpData:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, lr}
- .save {r3, r4, r5, lr}
+ stmfd sp!, {r4, r5, r6, lr}
+ .save {r4, r5, r6, lr}
mov r4, r0
ldr r3, [r0, #36]
- ldrh r5, [r0, #6]
+ ldrh r6, [r0, #6]
cmp r3, #0
ldr r2, [r0, #24]
- ldmeqfd sp!, {r3, r4, r5, pc}
+ ldmeqfd sp!, {r4, r5, r6, pc}
mov r3, #0
str r3, [r0, #36]
- ldr r3, .L1639
- ldr r1, [r3, #-2088]
+ ldr r3, .L1676
+ ldr r1, [r3, #4040]
cmp r1, #0
- ldmnefd sp!, {r3, r4, r5, pc}
- sub r5, r5, #1
- ldr r0, [r3, #-956]
- ldr r1, [r3, #-936]
- uxth r5, r5
- str r0, [r3, #188]
- str r1, [r3, #192]
- ldr r2, [r2, r5, asl #2]
+ ldmnefd sp!, {r4, r5, r6, pc}
+ ldr r5, .L1676+4
+ sub r6, r6, #1
+ uxth r6, r6
+ ldr r0, [r5, #-956]
+ ldr r1, [r5, #-936]
+ str r0, [r5, #188]
+ str r1, [r5, #192]
+ ldr r2, [r2, r6, asl #2]
cmp r2, #0
- str r2, [r3, #184]
- beq .L1637
+ str r2, [r5, #184]
+ beq .L1674
mov r1, #1
- add r0, r3, #180
+ add r0, r5, #180
mov r2, r1
bl FlashReadPages
- b .L1638
-.L1637:
- ldr r2, .L1639+4
- movw r3, #3926
+ b .L1675
+.L1674:
+ movw r2, #3926
mov r1, #255
- ldrh r2, [r2, r3]
+ ldrh r2, [r3, r2]
bl ftl_memset
-.L1638:
- ldr r3, .L1639
+.L1675:
mov r0, r4
- mov r1, r5
- ldr r2, [r3, #188]
- ldmfd sp!, {r3, r4, r5, lr}
+ mov r1, r6
+ ldr r2, [r5, #188]
+ ldmfd sp!, {r4, r5, r6, lr}
b FtlMapWritePage
-.L1640:
+.L1677:
.align 2
-.L1639:
- .word .LANCHOR2
+.L1676:
.word .LANCHOR0
+ .word .LANCHOR2
.fnend
.size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData
.align 2
@@ -14218,7 +14654,7 @@ FtlVendorPartRead:
.fnstart
@ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1652
+ ldr r3, .L1689
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r9, r2
@@ -14233,20 +14669,20 @@ FtlVendorPartRead:
mov r8, r0
cmp r1, r2
mvnhi fp, #0
- bhi .L1642
+ bhi .L1679
mov r7, r0, lsr r7
mov fp, #0
- ldr r6, .L1652+4
+ ldr r6, .L1689+4
mov r2, r7, asl #2
str r2, [sp, #0]
- b .L1643
-.L1649:
+ b .L1680
+.L1686:
ldr r3, [r6, #-904]
mov r0, r8
ldr r2, [sp, #0]
ldr sl, [r3, r2]
movw r3, #3922
- ldr r2, .L1652
+ ldr r2, .L1689
ldrh r4, [r2, r3]
mov r1, r4
bl __aeabi_uidivmod
@@ -14257,8 +14693,8 @@ FtlVendorPartRead:
cmp r4, r5
uxthhi r4, r5
cmp sl, #0
- beq .L1645
- ldr r2, .L1652+4
+ beq .L1682
+ ldr r2, .L1689+4
mov r1, #1
add r0, sp, #12
str sl, [sp, #16]
@@ -14273,29 +14709,29 @@ FtlVendorPartRead:
moveq fp, r3
ldr r3, [r6, #180]
cmp r3, #256
- bne .L1647
+ bne .L1684
mov r1, r7
mov r2, sl
- ldr r0, .L1652+8
+ ldr r0, .L1689+8
bl printk
- ldr r0, .L1652+12
+ ldr r0, .L1689+12
mov r1, r7
ldr r2, [r6, #-952]
bl FtlMapWritePage
-.L1647:
+.L1684:
ldr r3, [sp, #4]
mov r0, r9
ldr r1, [r6, #-952]
mov r2, r4, asl #9
add r1, r1, r3, asl #9
bl memcpy
- b .L1648
-.L1645:
+ b .L1685
+.L1682:
mov r0, r9
mov r1, sl
mov r2, r4, asl #9
bl ftl_memset
-.L1648:
+.L1685:
ldr r3, [sp, #0]
add r7, r7, #1
rsb r5, r4, r5
@@ -14303,19 +14739,19 @@ FtlVendorPartRead:
add r9, r9, r4, asl #9
add r3, r3, #4
str r3, [sp, #0]
-.L1643:
+.L1680:
cmp r5, #0
- bne .L1649
-.L1642:
+ bne .L1686
+.L1679:
mov r0, fp
add sp, sp, #52
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1653:
+.L1690:
.align 2
-.L1652:
+.L1689:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC120
+ .word .LC127
.word .LANCHOR2+248
.fnend
.size FtlVendorPartRead, .-FtlVendorPartRead
@@ -14329,25 +14765,26 @@ Ftl_load_ext_data:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r0, #0
- ldr r5, .L1658
+ ldr r5, .L1695
mov r1, #1
- ldr r2, .L1658+4
+ ldr r2, .L1695+4
bl FtlVendorPartRead
- ldr r4, .L1658+8
+ ldr r4, .L1695+8
ldr r3, [r5, #-1708]
cmp r3, r4
- beq .L1655
- ldr r0, .L1658+4
+ beq .L1692
+ ldr r0, .L1695+4
mov r1, #0
mov r2, #512
bl ftl_memset
str r4, [r5, #-1708]
-.L1655:
+.L1692:
ldr r2, [r5, #-1708]
- ldr r3, .L1658
+ ldr r3, .L1695
cmp r2, r4
- bne .L1656
+ bne .L1693
ldr r2, [r3, #-1620]
+ ldr r1, [r3, #-1676]
str r2, [r3, #-1812]
ldr r2, [r3, #-1616]
str r2, [r3, #-1808]
@@ -14361,8 +14798,8 @@ Ftl_load_ext_data:
str r2, [r3, #-1820]
ldr r2, [r3, #-1680]
str r2, [r3, #-1792]
- ldr r2, [r3, #-1676]
- str r2, [r3, #-2076]
+ ldr r2, .L1695+12
+ str r1, [r2, #4052]
ldr r2, [r3, #-1672]
str r2, [r3, #-1832]
ldr r2, [r3, #-1668]
@@ -14373,21 +14810,21 @@ Ftl_load_ext_data:
str r2, [r3, #-1780]
ldr r2, [r3, #-1648]
str r2, [r3, #-1712]
-.L1656:
- ldr r4, .L1658
+.L1693:
+ ldr r4, .L1695
mov r3, #0
- ldr r5, .L1658+12
+ ldr r5, .L1695+12
str r3, [r4, #-1000]
ldr r2, [r4, #-1640]
- ldr r3, .L1658+16
+ ldr r3, .L1695+16
cmp r2, r3
- bne .L1657
+ bne .L1694
mov r3, #1
- ldr r0, .L1658+20
+ ldr r0, .L1695+20
str r3, [r5, #3840]
- ldr r1, .L1658+24
+ ldr r1, .L1695+24
bl printk
-.L1657:
+.L1694:
movw r3, #3906
ldr r0, [r4, #-1796]
ldrh r2, [r5, r3]
@@ -14398,16 +14835,16 @@ Ftl_load_ext_data:
bl __aeabi_uidiv
str r0, [r4, #-1788]
ldmfd sp!, {r3, r4, r5, pc}
-.L1659:
+.L1696:
.align 2
-.L1658:
+.L1695:
.word .LANCHOR2
.word .LANCHOR2-1708
.word 1179929683
.word .LANCHOR0
.word 305432421
.word .LC78
- .word .LC121
+ .word .LC128
.fnend
.size Ftl_load_ext_data, .-Ftl_load_ext_data
.align 2
@@ -14420,34 +14857,34 @@ FtlLoadEctTbl:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r0, #64
- ldr r4, .L1662
- ldr r5, .L1662+4
+ ldr r4, .L1699
+ ldr r5, .L1699+4
ldr r2, [r4, #-920]
ldrh r1, [r4, r5]
bl FtlVendorPartRead
ldr r3, [r4, #-920]
ldr r2, [r3, #0]
- ldr r3, .L1662+8
+ ldr r3, .L1699+8
cmp r2, r3
- beq .L1661
- ldr r1, .L1662+12
- ldr r0, .L1662+16
+ beq .L1698
+ ldr r1, .L1699+12
+ ldr r0, .L1699+16
bl printk
ldrh r2, [r4, r5]
ldr r0, [r4, #-920]
mov r1, #0
mov r2, r2, asl #9
bl ftl_memset
-.L1661:
+.L1698:
mov r0, #0
ldmfd sp!, {r3, r4, r5, pc}
-.L1663:
+.L1700:
.align 2
-.L1662:
+.L1699:
.word .LANCHOR2
.word -924
.word 1112818501
- .word .LC122
+ .word .LC129
.word .LC78
.fnend
.size FtlLoadEctTbl, .-FtlLoadEctTbl
@@ -14458,7 +14895,7 @@ FtlVendorPartWrite:
.fnstart
@ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1674
+ ldr r3, .L1711
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r9, r2
@@ -14473,15 +14910,15 @@ FtlVendorPartWrite:
mov r6, r0
cmp r1, r2
mvnhi r7, #0
- bhi .L1665
+ bhi .L1702
mov r8, r0, lsr r8
mov r7, #0
- ldr sl, .L1674+4
+ ldr sl, .L1711+4
mov ip, r8, asl #2
str ip, [sp, #8]
- b .L1666
-.L1671:
- ldr r1, .L1674
+ b .L1703
+.L1708:
+ ldr r1, .L1711
movw r2, #3922
ldr ip, [sp, #8]
mov r0, r6
@@ -14492,7 +14929,7 @@ FtlVendorPartWrite:
str r3, [sp, #4]
bl __aeabi_uidivmod
ldr r3, [sp, #4]
- ldr r2, .L1674+4
+ ldr r2, .L1711+4
uxth r1, r1
str r1, [sp, #12]
rsb r5, r1, fp
@@ -14500,9 +14937,9 @@ FtlVendorPartWrite:
cmp r5, r4
uxthhi r5, r4
cmp r3, #0
- beq .L1668
+ beq .L1705
cmp r5, fp
- beq .L1668
+ beq .L1705
str r3, [sp, #24]
mov r1, #1
ldr r3, [r2, #-952]
@@ -14512,15 +14949,15 @@ FtlVendorPartWrite:
mov r3, #0
str r3, [sp, #32]
bl FlashReadPages
- b .L1669
-.L1668:
- ldr ip, .L1674
+ b .L1706
+.L1705:
+ ldr ip, .L1711
movw r3, #3926
ldr r0, [r2, #-952]
mov r1, #0
ldrh r2, [ip, r3]
bl ftl_memset
-.L1669:
+.L1706:
ldr r3, [sp, #12]
mov fp, r5, asl #9
ldr r0, [sl, #-952]
@@ -14531,7 +14968,7 @@ FtlVendorPartWrite:
add r6, r6, r5
bl memcpy
mov r1, r8
- ldr r0, .L1674+8
+ ldr r0, .L1711+8
add r8, r8, #1
ldr r2, [sl, #-952]
add r9, r9, fp
@@ -14541,16 +14978,16 @@ FtlVendorPartWrite:
str ip, [sp, #8]
cmn r0, #1
moveq r7, r0
-.L1666:
+.L1703:
cmp r4, #0
- bne .L1671
-.L1665:
+ bne .L1708
+.L1702:
mov r0, r7
add sp, sp, #60
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1675:
+.L1712:
.align 2
-.L1674:
+.L1711:
.word .LANCHOR0
.word .LANCHOR2
.word .LANCHOR2+248
@@ -14564,12 +15001,12 @@ Ftl_save_ext_data:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L1678
- ldr r2, .L1678+4
+ ldr r3, .L1715
+ ldr r2, .L1715+4
ldr r1, [r3, #-1708]
cmp r1, r2
bxne lr
- ldr r2, .L1678+8
+ ldr r2, .L1715+8
mov r0, #0
mov r1, #1
str r2, [r3, #-1704]
@@ -14587,7 +15024,8 @@ Ftl_save_ext_data:
str r2, [r3, #-1688]
ldr r2, [r3, #-1792]
str r2, [r3, #-1680]
- ldr r2, [r3, #-2076]
+ ldr r2, .L1715+12
+ ldr r2, [r2, #4052]
str r2, [r3, #-1676]
ldr r2, [r3, #-1832]
str r2, [r3, #-1672]
@@ -14601,14 +15039,15 @@ Ftl_save_ext_data:
str r2, [r3, #-1648]
ldr r2, [r3, #-1000]
str r2, [r3, #-1644]
- ldr r2, .L1678+12
+ ldr r2, .L1715+16
b FtlVendorPartWrite
-.L1679:
+.L1716:
.align 2
-.L1678:
+.L1715:
.word .LANCHOR2
.word 1179929683
.word 1342177352
+ .word .LANCHOR0
.word .LANCHOR2-1708
.fnend
.size Ftl_save_ext_data, .-Ftl_save_ext_data
@@ -14621,41 +15060,41 @@ FtlEctTblFlush:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L1687
- ldr r1, .L1687+4
+ ldr r3, .L1724
+ ldr r1, .L1724+4
ldr r3, [r3, #3840]
cmp r3, #0
moveq r2, #32
- beq .L1681
+ beq .L1718
ldr r2, [r1, #-1780]
cmp r2, #29
movls r2, #4
movhi r2, #32
-.L1681:
+.L1718:
mov r3, #292
ldrh r1, [r1, r3]
cmp r1, #31
addls r1, r1, #1
- ldrls r2, .L1687+4
+ ldrls r2, .L1724+4
strlsh r1, [r2, r3] @ movhi
movls r2, #1
cmp r0, #0
- ldr r3, .L1687+4
- bne .L1683
+ ldr r3, .L1724+4
+ bne .L1720
ldr r1, [r3, #-920]
ldr r0, [r1, #20]
ldr r1, [r1, #16]
add r2, r2, r0
cmp r1, r2
- bcc .L1684
-.L1683:
+ bcc .L1721
+.L1720:
ldr r2, [r3, #-920]
mov r0, #64
ldr r1, [r2, #16]
str r1, [r2, #20]
- ldr r1, .L1687+8
+ ldr r1, .L1724+8
str r1, [r2, #0]
- ldr r1, .L1687+12
+ ldr r1, .L1724+12
ldr r2, [r3, #-920]
ldrh r1, [r3, r1]
mov r3, r1, asl #9
@@ -14667,12 +15106,12 @@ FtlEctTblFlush:
str r3, [r2, #4]
bl FtlVendorPartWrite
bl Ftl_save_ext_data
-.L1684:
+.L1721:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L1688:
+.L1725:
.align 2
-.L1687:
+.L1724:
.word .LANCHOR0
.word .LANCHOR2
.word 1112818501
@@ -14680,81 +15119,1113 @@ FtlEctTblFlush:
.fnend
.size FtlEctTblFlush, .-FtlEctTblFlush
.align 2
+ .global FtlMapTblRecovery
+ .type FtlMapTblRecovery, %function
+FtlMapTblRecovery:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 24
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .pad #28
+ sub sp, sp, #28
+ ldr r3, [r0, #16]
+ mov r4, r0
+ ldr r7, [r0, #24]
+ mov r1, #0
+ ldrh r8, [r0, #6]
+ mov fp, #0
+ str r3, [sp, #16]
+ ldrh r3, [r0, #8]
+ mov sl, r7
+ ldr r9, [r0, #12]
+ mov r2, r8, asl #2
+ mov r0, r7
+ str r3, [sp, #8]
+ bl ftl_memset
+ ldr r3, .L1747
+ str fp, [r4, #32]
+ str fp, [r4, #28]
+ ldr r2, [r3, #-960]
+ ldr r5, [r3, #-936]
+ str r2, [r3, #188]
+ str r5, [r3, #192]
+ mvn r3, #0
+ strh r3, [r4, #0] @ movhi
+ strh r3, [r4, #2] @ movhi
+ mov r3, #1
+ str r3, [r4, #36]
+ ldr r3, [sp, #8]
+ sub r3, r3, #1
+ str r3, [sp, #12]
+ ldr r3, .L1747+4
+ b .L1727
+.L1741:
+ ldr r0, [sp, #12]
+ cmp r2, r0
+ mov r2, r2, asl #1
+ bne .L1728
+ ldrh r0, [r9, r2]
+ mov r1, #1
+ add ip, r9, r2
+ str ip, [sp, #4]
+ bl FtlGetLastWrittenPage
+ ldr r1, [sp, #12]
+ ldr r2, [sp, #16]
+ mov r7, sl
+ strh fp, [r4, #0] @ movhi
+ mov sl, #0
+ ldr ip, [sp, #4]
+ ldr r6, .L1747
+ mov fp, ip
+ uxth r0, r0
+ add r3, r0, #1
+ strh r3, [r4, #2] @ movhi
+ ldr r3, [r2, r1, asl #2]
+ sxth r9, r0
+ add r9, r9, #1
+ str r3, [r4, #28]
+ b .L1729
+.L1732:
+ ldrh r2, [fp, #0]
+ mov r1, #1
+ ldr r0, .L1747+8
+ orr r3, r3, r2, asl #10
+ mov r2, r1
+ str r3, [r6, #184]
+ bl FlashReadPages
+ ldr r3, [r6, #180]
+ cmn r3, #1
+ ldreqh r3, [fp, #0]
+ streqh r3, [r4, #40] @ movhi
+ beq .L1731
+ ldrh r3, [r5, #8]
+ cmp r3, r8
+ bcs .L1731
+ ldrh r2, [r4, #4]
+ ldrh r1, [r5, #0]
+ cmp r1, r2
+ ldreq r2, [r6, #184]
+ streq r2, [r7, r3, asl #2]
+.L1731:
+ add sl, sl, #1
+ uxth sl, sl
+.L1729:
+ sxth r3, sl
+ cmp r3, r9
+ blt .L1732
+ b .L1733
+.L1728:
+ ldr r6, .L1747
+ movw r7, #3918
+ add r0, r9, r2
+ str r0, [sp, #20]
+ add r0, r6, #180
+ ldr r1, [r6, #-960]
+ str r1, [r6, #188]
+ ldrh r1, [r9, r2]
+ ldrh r2, [r3, r7]
+ sub r2, r2, #1
+ orr r2, r2, r1, asl #10
+ mov r1, #1
+ str r2, [r6, #184]
+ mov r2, r1
+ str r3, [sp, #4]
+ bl FlashReadPages
+ ldr r2, [r6, #180]
+ ldr r3, [sp, #4]
+ cmn r2, #1
+ beq .L1744
+ ldrh r1, [r5, #0]
+ ldrh r2, [r4, #4]
+ cmp r1, r2
+ bne .L1744
+ ldrh r1, [r5, #8]
+ movw r2, #64245
+ cmp r1, r2
+ bne .L1744
+ b .L1745
+.L1737:
+ ldr r0, [r6, #-960]
+ mov ip, r1, asl #3
+ add r2, r2, #1
+ ldr r1, [r0, r1, asl #3]
+ uxth r2, r2
+ uxth r1, r1
+ cmp r1, r8
+ addcc r0, r0, ip
+ ldrcc r0, [r0, #4]
+ strcc r0, [sl, r1, asl #2]
+ b .L1735
+.L1745:
+ mov r2, #0
+.L1735:
+ ldrh r0, [r3, r7]
+ sxth r1, r2
+ sub r0, r0, #1
+ cmp r1, r0
+ blt .L1737
+ b .L1738
+.L1740:
+ ldr r0, [sp, #20]
+ ldrh r1, [r0, #0]
+ ldr r0, .L1747+8
+ orr r2, r2, r1, asl #10
+ mov r1, #1
+ str r2, [r7, #184]
+ mov r2, r1
+ str r3, [sp, #4]
+ bl FlashReadPages
+ ldr r2, [r7, #180]
+ ldr r3, [sp, #4]
+ cmn r2, #1
+ beq .L1739
+ ldrh r2, [r5, #8]
+ cmp r2, r8
+ bcs .L1739
+ ldrh r1, [r4, #4]
+ ldrh r0, [r5, #0]
+ cmp r0, r1
+ ldreq r1, [r7, #184]
+ streq r1, [sl, r2, asl #2]
+.L1739:
+ add r6, r6, #1
+ uxth r6, r6
+ b .L1746
+.L1744:
+ ldr r7, .L1747
+ mov r6, #0
+.L1746:
+ movw r1, #3918
+ sxth r2, r6
+ ldrh r1, [r3, r1]
+ cmp r2, r1
+ blt .L1740
+.L1738:
+ add fp, fp, #1
+ uxth fp, fp
+.L1727:
+ ldr r1, [sp, #8]
+ sxth r2, fp
+ cmp r2, r1
+ blt .L1741
+.L1733:
+ mov r0, r4
+ bl ftl_free_no_use_map_blk
+ ldr r1, .L1747+4
+ movw r3, #3918
+ ldrh r2, [r4, #2]
+ ldrh r3, [r1, r3]
+ cmp r2, r3
+ bne .L1742
+ mov r0, r4
+ bl ftl_map_blk_alloc_new_blk
+.L1742:
+ mov r0, r4
+ bl ftl_map_blk_gc
+ mov r0, r4
+ bl ftl_map_blk_gc
+ mov r0, #0
+ add sp, sp, #28
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+.L1748:
+ .align 2
+.L1747:
+ .word .LANCHOR2
+ .word .LANCHOR0
+ .word .LANCHOR2+180
+ .fnend
+ .size FtlMapTblRecovery, .-FtlMapTblRecovery
+ .align 2
+ .global FtlLoadMapInfo
+ .type FtlLoadMapInfo, %function
+FtlLoadMapInfo:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r3, lr}
+ .save {r3, lr}
+ bl FtlL2PDataInit
+ ldr r0, .L1750
+ bl FtlMapTblRecovery
+ mov r0, #0
+ ldmfd sp!, {r3, pc}
+.L1751:
+ .align 2
+.L1750:
+ .word .LANCHOR2-1088
+ .fnend
+ .size FtlLoadMapInfo, .-FtlLoadMapInfo
+ .align 2
+ .global FtlLoadVonderInfo
+ .type FtlLoadVonderInfo, %function
+FtlLoadVonderInfo:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r3, lr}
+ .save {r3, lr}
+ mov r2, #3936
+ ldr r3, .L1753
+ ldr r0, .L1753+4
+ ldrh r1, [r3, r2]
+ movw r2, #258
+ strh r1, [r0, r2] @ movhi
+ ldr r2, .L1753+8
+ strh r2, [r0, #252] @ movhi
+ movw r2, #3962
+ ldrh r1, [r3, r2]
+ mov r2, #256
+ strh r1, [r0, r2] @ movhi
+ movw r2, #3938
+ ldrh r2, [r3, r2]
+ ldr r3, [r3, #3964]
+ strh r2, [r0, #254] @ movhi
+ mvn r2, #0
+ str r3, [r0, #260]
+ ldr r3, [r0, #-908]
+ str r3, [r0, #264]
+ ldr r3, [r0, #-912]
+ str r3, [r0, #268]
+ ldr r3, [r0, #-904]
+ str r3, [r0, #272]
+ mov r3, #288
+ strh r2, [r0, r3] @ movhi
+ add r0, r0, #248
+ bl FtlMapTblRecovery
+ mov r0, #0
+ ldmfd sp!, {r3, pc}
+.L1754:
+ .align 2
+.L1753:
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .word -3962
+ .fnend
+ .size FtlLoadVonderInfo, .-FtlLoadVonderInfo
+ .align 2
+ .global FlashLoadFactorBbt
+ .type FlashLoadFactorBbt, %function
+FlashLoadFactorBbt:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 48
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ movw r2, #3062
+ ldr r9, .L1764
+ movw r3, #3060
+ ldr r4, .L1764+4
+ .pad #52
+ sub sp, sp, #52
+ mov r1, #0
+ mvn r7, #0
+ ldrh r3, [r9, r3]
+ add r0, r4, #232
+ ldrh r8, [r9, r2]
+ mov r2, #16
+ mov r6, #0
+ mul r8, r8, r3
+ bl ftl_memset
+ ldr r3, [r4, #228]
+ str r6, [sp, #20]
+ mov r4, r6
+ str r3, [sp, #24]
+ uxth r8, r8
+ add r3, r8, r7
+ uxth r3, r3
+ str r3, [sp, #4]
+ b .L1756
+.L1762:
+ ldr r5, [sp, #4]
+ sub r3, r8, #12
+ mul fp, r8, r4
+ ldr sl, .L1764+4
+ b .L1757
+.L1760:
+ add r2, fp, r5
+ mov r1, #1
+ add r0, sp, #12
+ str r3, [sp, #0]
+ mov r2, r2, asl #10
+ str r2, [sp, #16]
+ mov r2, r1
+ bl FlashReadPages
+ ldr r2, [sp, #12]
+ ldr r3, [sp, #0]
+ cmn r2, #1
+ beq .L1758
+ ldr r2, [sl, #228]
+ ldrh r1, [r2, #0]
+ movw r2, #61664
+ cmp r1, r2
+ bne .L1758
+ ldr r0, .L1764+8
+ mov r1, r4
+ mov r2, r5
+ add r6, r6, #1
+ bl printk
+ ldr r3, .L1764+4
+ uxth r6, r6
+ add r3, r3, r4, asl #1
+ strh r5, [r3, #232] @ movhi
+ b .L1759
+.L1758:
+ sub r5, r5, #1
+ uxth r5, r5
+.L1757:
+ cmp r5, r3
+ bgt .L1760
+.L1759:
+ ldrb r3, [r9, #3762] @ zero_extendqisi2
+ add r4, r4, #1
+ cmp r3, r6
+ uxtb r4, r4
+ moveq r7, #0
+.L1756:
+ ldrb r3, [r9, #3762] @ zero_extendqisi2
+ cmp r3, r4
+ bhi .L1762
+ mov r0, r7
+ add sp, sp, #52
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+.L1765:
+ .align 2
+.L1764:
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .word .LC130
+ .fnend
+ .size FlashLoadFactorBbt, .-FlashLoadFactorBbt
+ .align 2
+ .global dump_map_info
+ .type dump_map_info, %function
+dump_map_info:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 8
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ mov r3, #3856
+ ldr r5, .L1779
+ .pad #36
+ sub sp, sp, #36
+ ldrh r6, [r5, r3]
+ b .L1767
+.L1769:
+ add r3, r5, r7
+ mov r1, r6
+ ldrb r0, [r3, #3874] @ zero_extendqisi2
+ bl V2P_block
+ str r0, [sp, #28]
+ bl FtlBbmIsBadBlock
+ ldr r3, [sp, #28]
+ cmp r0, #0
+ bne .L1768
+ ldr r2, [r8, #-972]
+ mov r3, r3, asl #10
+ mla r2, r9, r4, r2
+ str r3, [r2, #4]
+ ldr r3, [r8, #-1172]
+ str r3, [r2, #8]
+ ldrh r3, [r5, sl]
+ mul r3, r3, r4
+ add r4, r4, #1
+ uxth r4, r4
+ add r1, r3, #3
+ cmp r3, #0
+ movlt r3, r1
+ ldr r1, [r8, #-1168]
+ bic r3, r3, #3
+ add r3, r1, r3
+ str r3, [r2, #12]
+.L1768:
+ add r7, r7, #1
+ uxth r7, r7
+ b .L1772
+.L1777:
+ ldr r8, .L1779+4
+ mov r4, #0
+ mov r7, r4
+ movw fp, #3848
+ mov r9, #36
+ movw sl, #3928
+.L1772:
+ ldrh r3, [r5, fp]
+ cmp r3, r7
+ bhi .L1769
+ cmp r4, #0
+ beq .L1770
+ ldr sl, .L1779+4
+ mov r1, r4
+ mov r2, #1
+ mov r7, #0
+ mov r8, r7
+ ldr r0, [sl, #-972]
+ bl FlashReadPages
+.L1771:
+ ldr r1, [sl, #-972]
+ add r8, r8, #1
+ add r1, r1, r7
+ uxth r8, r8
+ add r7, r7, #36
+ ldr r3, [r1, #12]
+ ldr r2, [r1, #4]
+ ldr r1, [r1, #8]
+ ldr r0, [r3, #4]
+ str r0, [sp, #0]
+ ldr r0, [r3, #8]
+ str r0, [sp, #4]
+ ldr r0, [r3, #12]
+ str r0, [sp, #8]
+ ldr r0, [r1, #0]
+ str r0, [sp, #12]
+ ldr r1, [r1, #4]
+ ldr r0, .L1779+8
+ str r1, [sp, #16]
+ ubfx r1, r2, #10, #16
+ ldr r3, [r3, #0]
+ bl printk
+ cmp r8, r4
+ bne .L1771
+.L1770:
+ add r6, r6, #1
+ uxth r6, r6
+.L1767:
+ movw r2, #3858
+ ldrh r3, [r5, r2]
+ cmp r3, r6
+ bhi .L1777
+ mov r5, #0
+ ldr r4, .L1779+4
+ ldr sl, .L1779+12
+ b .L1773
+.L1774:
+ ldr r2, [r4, #-1040]
+ mov r1, #1
+ ldr r0, .L1779+16
+ add r6, r6, #1
+ ldrh r2, [r2, r7]
+ uxth r6, r6
+ orr r3, r3, r2, asl #10
+ mov r2, r1
+ str r3, [r4, #184]
+ bl FlashReadPages
+ ldr r3, [r4, #192]
+ ldr r1, [r4, #-1040]
+ ldr r2, [r4, #188]
+ ldr r0, [r3, #0]
+ ldrh r1, [r1, r7]
+ str r0, [sp, #0]
+ ldr r0, [r3, #4]
+ str r0, [sp, #4]
+ ldr r0, [r3, #8]
+ str r0, [sp, #8]
+ ldr r3, [r3, #12]
+ ldr r0, .L1779+20
+ str r3, [sp, #12]
+ ldr r3, [r2, #0]
+ str r3, [sp, #16]
+ ldr r3, [r2, #4]
+ str r3, [sp, #20]
+ ldr r2, [r4, #180]
+ ldr r3, [r4, #184]
+ bl printk
+.L1776:
+ movw r2, #3918
+ sxth r3, r6
+ ldrh r2, [r8, r2]
+ cmp r3, r2
+ blt .L1774
+ add r5, r5, #1
+ uxth r5, r5
+.L1773:
+ ldrh r3, [r4, sl]
+ sxth r7, r5
+ ldr r6, .L1779+4
+ cmp r7, r3
+ movlt r7, r7, asl #1
+ movlt r6, #0
+ ldrlt r8, .L1779
+ blt .L1776
+.L1775:
+ ldr r4, .L1779
+ mov r5, #3952
+ ldr r1, [r6, #-1040]
+ mov r2, #2
+ ldr r0, .L1779+24
+ ldr r3, [r4, #3944]
+ bl rknand_print_hex
+ ldr r1, [r6, #-1032]
+ ldrh r3, [r4, r5]
+ mov r2, #4
+ ldr r0, .L1779+28
+ bl rknand_print_hex
+ ldr r0, .L1779+32
+ ldr r1, [r6, #-900]
+ mov r2, #4
+ ldrh r3, [r4, r5]
+ add sp, sp, #36
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ b rknand_print_hex
+.L1780:
+ .align 2
+.L1779:
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .word .LC131
+ .word -1044
+ .word .LANCHOR2+180
+ .word .LC107
+ .word .LC132
+ .word .LC133
+ .word .LC134
+ .fnend
+ .size dump_map_info, .-dump_map_info
+ .align 2
+ .global FtlDumpSysBlock
+ .type FtlDumpSysBlock, %function
+FtlDumpSysBlock:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r4, r5, r6, r7, r8, lr}
+ .save {r4, r5, r6, r7, r8, lr}
+ mov r6, r0
+ ldr r4, .L1785
+ .pad #24
+ sub sp, sp, #24
+ mov r7, r0, asl #10
+ mov r5, #0
+ ldr r8, .L1785+4
+ ldr r3, [r4, #-960]
+ str r3, [r4, #188]
+ ldr r3, [r4, #-936]
+ str r3, [r4, #192]
+ b .L1782
+.L1784:
+ mov r1, #1
+ ldr r0, .L1785+8
+ mov r2, r1
+ orr r3, r3, r7
+ str r3, [r4, #184]
+ bl FlashReadPages
+ ldr r3, [r4, #192]
+ mov r1, r6
+ ldr r0, .L1785+12
+ ldr r2, [r3, #0]
+ str r2, [sp, #0]
+ ldr r2, [r3, #4]
+ str r2, [sp, #4]
+ ldr r2, [r3, #8]
+ str r2, [sp, #8]
+ ldr r3, [r3, #12]
+ ldr r2, [r4, #180]
+ str r3, [sp, #12]
+ ldr r3, [r4, #188]
+ ldr r3, [r3, #0]
+ str r3, [sp, #16]
+ ldr r3, [r4, #184]
+ bl printk
+ ldr r3, [r4, #192]
+ ldr r3, [r3, #0]
+ cmn r3, #1
+ beq .L1783
+ ldr r0, .L1785+16
+ mov r2, #4
+ ldr r1, [r4, #-960]
+ mov r3, #768
+ bl rknand_print_hex
+.L1783:
+ add r5, r5, #1
+ uxth r5, r5
+.L1782:
+ movw r2, #3918
+ sxth r3, r5
+ ldrh r2, [r8, r2]
+ cmp r3, r2
+ blt .L1784
+ add sp, sp, #24
+ ldmfd sp!, {r4, r5, r6, r7, r8, pc}
+.L1786:
+ .align 2
+.L1785:
+ .word .LANCHOR2
+ .word .LANCHOR0
+ .word .LANCHOR2+180
+ .word .LC135
+ .word .LC136
+ .fnend
+ .size FtlDumpSysBlock, .-FtlDumpSysBlock
+ .align 2
+ .global FlashReadFacBbtData
+ .type FlashReadFacBbtData, %function
+FlashReadFacBbtData:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 40
+ @ frame_needed = 0, uses_anonymous_args = 0
+ ldr r3, .L1797
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ .save {r4, r5, r6, r7, r8, r9, sl, lr}
+ mov r6, r1
+ mov r9, r2
+ movw r1, #3062
+ movw r2, #3060
+ ldrh r8, [r3, r1]
+ ldrh r2, [r3, r2]
+ .pad #40
+ sub sp, sp, #40
+ ldr r7, .L1797+4
+ mov r4, r0
+ mul r8, r8, r2
+ ldr r3, [r7, #148]
+ str r3, [sp, #12]
+ ldr r3, [r7, #228]
+ uxth r8, r8
+ sub r5, r8, #1
+ mul sl, r8, r6
+ str r3, [sp, #16]
+ uxth r5, r5
+ sub r8, r8, #16
+ b .L1788
+.L1794:
+ mov r1, #1
+ add r3, r5, sl
+ add r0, sp, #4
+ mov r2, r1
+ mov r3, r3, asl #10
+ str r3, [sp, #8]
+ bl FlashReadPages
+ ldr r3, [sp, #4]
+ cmn r3, #1
+ beq .L1789
+ ldr r3, [r7, #228]
+ ldrh r2, [r3, #0]
+ movw r3, #61664
+ cmp r2, r3
+ bne .L1789
+ cmp r4, #0
+ moveq r0, r4
+ beq .L1790
+ cmp r6, #0
+ ldreq r3, .L1797+4
+ moveq r0, #1
+ beq .L1791
+ b .L1792
+.L1793:
+ ldr r2, [r3, #148]
+ ubfx r1, r6, #5, #16
+ and lr, r6, #31
+ add r6, r6, #1
+ ldr ip, [r2, r1, asl #2]
+ uxth r6, r6
+ orr ip, ip, r0, asl lr
+ str ip, [r2, r1, asl #2]
+.L1791:
+ ldr r2, [r3, #156]
+ cmp r6, r2
+ bcc .L1793
+.L1792:
+ ldr r3, .L1797+4
+ mov r2, r9
+ mov r0, r4
+ ldr r1, [r3, #148]
+ bl memcpy
+ mov r2, #4
+ ldr r0, .L1797+8
+ mov r1, r4
+ mov r3, r2
+ bl rknand_print_hex
+ mov r0, #0
+ b .L1790
+.L1789:
+ sub r5, r5, #1
+ uxth r5, r5
+.L1788:
+ cmp r5, r8
+ bgt .L1794
+ mvn r0, #0
+.L1790:
+ add sp, sp, #40
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+.L1798:
+ .align 2
+.L1797:
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .word .LC137
+ .fnend
+ .size FlashReadFacBbtData, .-FlashReadFacBbtData
+ .align 2
+ .global FlashGetBadBlockList
+ .type FlashGetBadBlockList, %function
+FlashGetBadBlockList:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ ldr r3, .L1806
+ stmfd sp!, {r4, r5, r6, r7, r8, lr}
+ .save {r4, r5, r6, r7, r8, lr}
+ mov r5, r0
+ ldr r3, [r3, #3624]
+ ldr r6, .L1806+4
+ ldrb r2, [r3, #13] @ zero_extendqisi2
+ ldrh r4, [r3, #14]
+ ldr r0, [r6, #136]
+ mul r4, r4, r2
+ uxth r4, r4
+ add r2, r4, #7
+ mov r2, r2, lsr #3
+ bl FlashReadFacBbtData
+ cmn r0, #1
+ beq .L1805
+ mov r2, #0
+ mov r0, r4, lsr #4
+ mov r3, r2
+ sub r4, r4, #1
+ mov r1, #1
+ b .L1801
+.L1803:
+ ldr ip, [r6, #136]
+ mov r8, r2, lsr #5
+ and r7, r2, #31
+ ldr ip, [ip, r8, asl #2]
+ ands ip, ip, r1, asl r7
+ movne ip, r3, asl #1
+ addne r3, r3, #1
+ uxthne r3, r3
+ strneh r2, [r5, ip] @ movhi
+ cmp r3, r0
+ bcs .L1805
+ add r2, r2, #1
+ uxth r2, r2
+.L1801:
+ cmp r2, r4
+ blt .L1803
+ b .L1800
+.L1805:
+ mov r3, #0
+.L1800:
+ mov r3, r3, asl #1
+ mvn r2, #0
+ mov r0, #0
+ strh r2, [r5, r3] @ movhi
+ ldmfd sp!, {r4, r5, r6, r7, r8, pc}
+.L1807:
+ .align 2
+.L1806:
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .fnend
+ .size FlashGetBadBlockList, .-FlashGetBadBlockList
+ .align 2
+ .global FtlMakeBbt
+ .type FtlMakeBbt, %function
+FtlMakeBbt:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ ldr r6, .L1826
+ ldr r5, [r6, #4040]
+ cmp r5, #0
+ bne .L1809
+ ldr r8, .L1826+4
+ bl FtlBbtMemInit
+ ldr r4, .L1826+8
+ bl FtlLoadFactoryBbt
+ add sl, r8, #12
+ b .L1810
+.L1816:
+ ldrh r3, [sl], #2
+ movw r2, #65535
+ ldr r0, [r4, #-960]
+ movw fp, #3912
+ ldr r9, [r4, #-936]
+ cmp r3, r2
+ str r0, [r4, #188]
+ str r9, [r4, #192]
+ beq .L1811
+ ldrh r7, [r6, fp]
+ mov r1, #1
+ mov r2, r1
+ ldr r0, .L1826+12
+ mla r7, r7, r5, r3
+ mov r3, r7, asl #10
+ str r3, [r4, #184]
+ bl FlashReadPages
+ ldrh r2, [r6, fp]
+ ldr r0, [r8, #28]
+ add r2, r2, #7
+ ldr r1, [r4, #188]
+ mov r2, r2, lsr #3
+ bl memcpy
+ b .L1812
+.L1811:
+ mov r1, r5
+ bl FlashGetBadBlockList
+ ldr r0, [r4, #188]
+ ldr r1, [r8, #28]
+ bl FtlBbt2Bitmap
+ ldrh fp, [r6, fp]
+.L1814:
+ sub fp, fp, #1
+ uxth fp, fp
+.L1825:
+ movw r7, #3912
+ ldrh r0, [r6, r7]
+ mla r0, r0, r5, fp
+ uxth r0, r0
+ bl FtlBbmIsBadBlock
+ cmp r0, #1
+ beq .L1814
+ mov r1, #0
+ mov r2, #16
+ strh fp, [sl, #-2] @ movhi
+ ldr r0, [r4, #-936]
+ bl ftl_memset
+ ldr r3, .L1826+16
+ strh r3, [r9, #0] @ movhi
+ mov r3, #0
+ str r3, [r9, #4]
+ ldrh r3, [sl, #-2]
+ ldrh r7, [r6, r7]
+ strh r3, [r9, #2] @ movhi
+ ldrh r3, [sl, #-2]
+ ldr r1, [r8, #28]
+ ldr r0, [r4, #188]
+ mla r7, r7, r5, r3
+ mov r3, r7, asl #10
+ str r3, [r4, #184]
+ ldr r3, .L1826+20
+ ldrh r2, [r4, r3]
+ mov r2, r2, asl #2
+ bl memcpy
+ mov r1, #1
+ mov r2, r1
+ ldr r0, .L1826+12
+ bl FlashEraseBlocks
+ mov r1, #1
+ mov r3, r1
+ ldr r0, .L1826+12
+ mov r2, r1
+ bl FlashProgPages
+ ldr r3, [r4, #180]
+ cmn r3, #1
+ bne .L1812
+ uxth r0, r7
+ bl FtlBbmMapBadBlock
+ b .L1825
+.L1812:
+ uxth r0, r7
+ add r5, r5, #1
+ bl FtlBbmMapBadBlock
+ add r8, r8, #4
+.L1810:
+ movw r3, #3870
+ ldrh r3, [r6, r3]
+ cmp r5, r3
+ bcc .L1816
+ mov r4, #0
+ ldr r7, .L1826
+ movw r6, #3930
+ b .L1817
+.L1818:
+ mov r0, r4
+ add r4, r4, #1
+ bl FtlBbmMapBadBlock
+ uxth r4, r4
+.L1817:
+ ldrh r3, [r7, r6]
+ ldr r5, .L1826
+ cmp r3, r4
+ bhi .L1818
+ movw r7, #3992
+ movw r6, #3980
+ ldrh r4, [r5, r7]
+ sub r4, r4, #1
+ uxth r4, r4
+ b .L1819
+.L1824:
+ mov r0, r4
+ bl FtlBbmIsBadBlock
+ cmp r0, #1
+ beq .L1820
+ mov r0, r4
+ bl FlashTestBlk
+ cmp r0, #0
+ beq .L1821
+ mov r0, r4
+ bl FtlBbmMapBadBlock
+ b .L1820
+.L1821:
+ ldrh r2, [r5, r6]
+ movw r3, #65535
+ cmp r2, r3
+ streqh r4, [r5, r6] @ movhi
+.L1822:
+ ldrne r2, .L1826
+ movne r3, #3984
+ strneh r4, [r2, r3] @ movhi
+ bne .L1823
+.L1820:
+ sub r4, r4, #1
+ uxth r4, r4
+.L1819:
+ ldrh r3, [r5, r7]
+ sub r3, r3, #48
+ cmp r4, r3
+ bgt .L1824
+.L1823:
+ ldr r4, .L1826
+ movw r6, #3980
+ mov r5, #3984
+ mov r7, #0
+ movw r8, #3982
+ mov r2, #2
+ ldr r0, [r4, #4044]
+ mov r1, #1
+ ldrh r3, [r4, r6]
+ str r7, [r4, #3988]
+ strh r7, [r4, r8] @ movhi
+ mov r3, r3, asl #10
+ str r3, [r0, #4]
+ ldrh r3, [r4, r5]
+ mov r3, r3, asl #10
+ str r3, [r0, #40]
+ bl FlashEraseBlocks
+ ldrh r0, [r4, r6]
+ bl FtlBbmMapBadBlock
+ ldrh r0, [r4, r5]
+ bl FtlBbmMapBadBlock
+ bl FtlBbmTblFlush
+ ldr r3, [r4, #3988]
+ ldrh r2, [r4, r5]
+ add r3, r3, #1
+ str r3, [r4, #3988]
+ ldrh r3, [r4, r6]
+ strh r7, [r4, r8] @ movhi
+ strh r2, [r4, r6] @ movhi
+ strh r3, [r4, r5] @ movhi
+ bl FtlBbmTblFlush
+.L1809:
+ mov r0, #0
+ ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+.L1827:
+ .align 2
+.L1826:
+ .word .LANCHOR0
+ .word .LANCHOR0+3980
+ .word .LANCHOR2
+ .word .LANCHOR2+180
+ .word -3872
+ .word -1028
+ .fnend
+ .size FtlMakeBbt, .-FtlMakeBbt
+ .align 2
.type ftl_load_l2p_region, %function
ftl_load_l2p_region:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
- .save {r3, r4, r5, r6, r7, lr}
- mov r5, r0
- ldr r4, .L1693
- mov r7, #12
- ldr r3, [r4, #-1032]
- ldr r6, [r3, r0, asl #2]
- cmp r6, #0
- bne .L1690
- mul r7, r7, r1
- ldr r3, [r4, #-1852]
- ldr r2, .L1693+4
+ stmfd sp!, {r4, r5, r6, r7, r8, lr}
+ .save {r4, r5, r6, r7, r8, lr}
+ mov r4, r0
+ ldr r6, .L1833
+ mov r5, #12
+ ldr r3, [r6, #-1032]
+ ldr r7, [r3, r0, asl #2]
+ cmp r7, #0
+ bne .L1829
+ mul r5, r5, r1
+ ldr r3, [r6, #-1852]
+ ldr r2, .L1833+4
mov r1, #255
- add r3, r3, r7
+ add r3, r3, r5
ldr r0, [r3, #8]
movw r3, #3926
ldrh r2, [r2, r3]
bl ftl_memset
- ldr r3, [r4, #-1852]
- strh r5, [r3, r7] @ movhi
- ldr r3, [r4, #-1852]
- add r7, r3, r7
- str r6, [r7, #4]
- b .L1691
-.L1690:
- mul r7, r7, r1
- ldr r3, [r4, #-1852]
+ ldr r3, [r6, #-1852]
+ strh r4, [r3, r5] @ movhi
+ ldr r3, [r6, #-1852]
+ add r5, r3, r5
+ str r7, [r5, #4]
+ b .L1830
+.L1829:
+ mul r5, r5, r1
+ ldr r3, [r6, #-1852]
mov r1, #1
- add r0, r4, #180
+ str r7, [r6, #184]
+ add r0, r6, #180
mov r2, r1
- str r6, [r4, #184]
- add r3, r3, r7
+ add r3, r3, r5
ldr r3, [r3, #8]
- str r3, [r4, #188]
- ldr r3, [r4, #-936]
- str r3, [r4, #192]
+ str r3, [r6, #188]
+ ldr r3, [r6, #-936]
+ str r3, [r6, #192]
bl FlashReadPages
- ldr r3, [r4, #180]
+ ldr r3, [r6, #180]
+ ldr r8, [r6, #192]
cmp r3, #256
- bne .L1692
- mov r2, r6
- mov r1, r5
- ldr r0, .L1693+8
- mov r6, r6, lsr #10
+ bne .L1831
+ mov r1, r4
+ mov r2, r7
+ ldr r0, .L1833+8
bl printk
- ldr r3, .L1693+12
- sub r0, r4, #1088
- mov r1, r5
- strh r6, [r4, r3] @ movhi
- ldr r3, [r4, #-1852]
- add r3, r3, r7
+ ldr r3, .L1833+12
+ mov r2, r7, lsr #10
+ sub r0, r6, #1088
+ mov r1, r4
+ strh r2, [r6, r3] @ movhi
+ ldr r3, [r6, #-1852]
+ add r3, r3, r5
ldr r2, [r3, #8]
bl FtlMapWritePage
-.L1692:
- ldr r3, .L1693
+.L1831:
+ ldrh r3, [r8, #8]
+ cmp r3, r4
+ beq .L1832
+ mov r2, r7
+ ldr r7, .L1833
+ mov r1, r4
+ ldr r0, .L1833+16
+ bl printk
+ ldr r6, .L1833+4
+ mov r2, #4
+ ldr r0, .L1833+20
+ mov r3, r2
+ ldr r1, [r7, #192]
+ bl rknand_print_hex
+ mov r3, #3952
+ ldrh r3, [r6, r3]
+ mov r2, #4
+ ldr r0, .L1833+24
+ ldr r1, [r7, #-1032]
+ bl rknand_print_hex
+ mov r3, #1
+ str r3, [r6, #4040]
+.L1832:
+ ldr r3, .L1833
mov r1, #0
ldr r3, [r3, #-1852]
- add r2, r3, r7
+ add r2, r3, r5
str r1, [r2, #4]
- strh r5, [r3, r7] @ movhi
-.L1691:
+ strh r4, [r3, r5] @ movhi
+.L1830:
mov r0, #0
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1694:
+ ldmfd sp!, {r4, r5, r6, r7, r8, pc}
+.L1834:
.align 2
-.L1693:
+.L1833:
.word .LANCHOR2
.word .LANCHOR0
- .word .LC123
+ .word .LC138
.word -1048
+ .word .LC139
+ .word .LC98
+ .word .LC140
.fnend
.size ftl_load_l2p_region, .-ftl_load_l2p_region
.align 2
@@ -14767,7 +16238,7 @@ log2phys:
stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r8, r2
- ldr r3, .L1704
+ ldr r3, .L1844
movw r2, #3924
mov r4, r1
ldrh r7, [r3, r2]
@@ -14778,30 +16249,30 @@ log2phys:
movw r2, #3954
ldrh r2, [r3, r2]
uxth r6, r6
- ldr r3, .L1704+4
+ ldr r3, .L1844+4
uxth r7, r7
ldr sl, [r3, #-1852]
mov r3, #0
mov r5, r3
- b .L1696
-.L1702:
+ b .L1836
+.L1842:
add r3, r3, #12
add r1, sl, r3
ldrh r1, [r1, #-12]
cmp r1, r6
- bne .L1697
-.L1698:
+ bne .L1837
+.L1838:
cmp r8, #0
- ldr r3, .L1704+4
+ ldr r3, .L1844+4
mov r2, #12
- bne .L1699
+ bne .L1839
ldr r3, [r3, #-1852]
mla r2, r2, r5, r3
ldr r3, [r2, #8]
ldr r3, [r3, r7, asl #2]
str r3, [r4, #0]
- b .L1700
-.L1699:
+ b .L1840
+.L1839:
mul r2, r2, r5
ldr r1, [r3, #-1852]
ldr r0, [r4, #0]
@@ -14813,10 +16284,10 @@ log2phys:
ldr r1, [r2, #4]
orr r1, r1, #-2147483648
str r1, [r2, #4]
- ldr r2, .L1704+8
+ ldr r2, .L1844+8
strh r6, [r3, r2] @ movhi
-.L1700:
- ldr r3, .L1704+4
+.L1840:
+ ldr r3, .L1844+4
mov r2, #12
mov r0, #0
ldr r3, [r3, #-1852]
@@ -14826,12 +16297,12 @@ log2phys:
addne r3, r3, #1
strne r3, [r5, #4]
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L1697:
+.L1837:
add r5, r5, #1
uxth r5, r5
-.L1696:
+.L1836:
cmp r5, r2
- bne .L1702
+ bne .L1842
bl select_l2p_ram_region
mov r3, #12
mul r3, r3, r0
@@ -14840,103 +16311,25 @@ log2phys:
ldrh r1, [sl, r3]
movw r3, #65535
cmp r1, r3
- beq .L1703
+ beq .L1843
ldr r3, [r2, #4]
cmp r3, #0
- bge .L1703
+ bge .L1843
bl flush_l2p_region
-.L1703:
+.L1843:
mov r0, r6
mov r1, r5
bl ftl_load_l2p_region
- b .L1698
-.L1705:
+ b .L1838
+.L1845:
.align 2
-.L1704:
+.L1844:
.word .LANCHOR0
.word .LANCHOR2
.word -1848
.fnend
.size log2phys, .-log2phys
.align 2
- .global FtlReUsePrevPpa
- .type FtlReUsePrevPpa, %function
-FtlReUsePrevPpa:
- .fnstart
- @ args = 0, pretend = 0, frame = 8
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr}
- .save {r0, r1, r2, r4, r5, r6, r7, lr}
- mov r7, r0
- ubfx r0, r1, #10, #16
- str r1, [sp, #4]
- bl P2V_block_in_plane
- ldr r3, .L1712
- ldr r1, [r3, #-2016]
- mov r5, r0, asl #1
- ldrh r2, [r1, r5]
- cmp r2, #0
- addne r2, r2, #1
- strneh r2, [r1, r5] @ movhi
- bne .L1708
- ldr r4, [r3, #-2004]
- cmp r4, #0
- beq .L1708
- ldr r1, .L1712+4
- mov ip, #6
- ldrh lr, [r3, r1]
- ldr r3, [r3, #-2024]
- ldr r1, .L1712+8
- rsb r4, r3, r4
- mov r4, r4, asr #1
- mul r4, r1, r4
- movw r1, #65535
- uxth r4, r4
- b .L1709
-.L1711:
- cmp r4, r0
- bne .L1710
- mov r1, r4
- ldr r0, .L1712+12
- bl List_remove_node
- ldr r6, .L1712
- ldr r3, .L1712+4
- mov r0, r4
- ldrh r2, [r6, r3]
- sub r2, r2, #1
- strh r2, [r6, r3] @ movhi
- bl INSERT_DATA_LIST
- ldr r3, [r6, #-2016]
- ldrh r2, [r3, r5]
- add r2, r2, #1
- strh r2, [r3, r5] @ movhi
- b .L1708
-.L1710:
- mul r4, ip, r4
- ldrh r4, [r3, r4]
- cmp r4, r1
- beq .L1708
- add r2, r2, #1
- uxth r2, r2
-.L1709:
- cmp r2, lr
- bne .L1711
-.L1708:
- mov r0, r7
- add r1, sp, #4
- mov r2, #1
- bl log2phys
- ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, pc}
-.L1713:
- .align 2
-.L1712:
- .word .LANCHOR2
- .word -2000
- .word -1431655765
- .word .LANCHOR2-2004
- .fnend
- .size FtlReUsePrevPpa, .-FtlReUsePrevPpa
- .align 2
.type FtlReadRefresh.part.15, %function
FtlReadRefresh.part.15:
.fnstart
@@ -14946,18 +16339,18 @@ FtlReadRefresh.part.15:
.save {r4, r5, r6, lr}
.pad #40
sub sp, sp, #40
- ldr r4, .L1722
- ldr r6, .L1722+4
+ ldr r4, .L1854
+ ldr r6, .L1854+4
ldr r2, [r4, #-1624]
ldr r3, [r6, #3976]
cmp r2, r3
- bcs .L1715
+ bcs .L1847
mov r5, #2048
-.L1718:
+.L1850:
ldr r0, [r4, #-1624]
ldr r3, [r6, #3976]
cmp r0, r3
- bcs .L1720
+ bcs .L1852
mov r1, sp
mov r2, #0
bl log2phys
@@ -14966,7 +16359,7 @@ FtlReadRefresh.part.15:
cmn r0, #1
add r3, r3, #1
str r3, [r4, #-1624]
- beq .L1717
+ beq .L1849
str r0, [sp, #8]
add r0, sp, #40
mov r2, #0
@@ -14978,31 +16371,31 @@ FtlReadRefresh.part.15:
bl FlashReadPages
ldr r3, [sp, #4]
cmp r3, #256
- bne .L1720
+ bne .L1852
ldr r0, [sp, #0]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl FtlGcRefreshBlock
- b .L1720
-.L1717:
+ b .L1852
+.L1849:
subs r5, r5, #1
- bne .L1718
- b .L1716
-.L1715:
+ bne .L1850
+ b .L1848
+.L1847:
ldr r3, [r4, #-1836]
mov r0, #0
str r0, [r4, #-1628]
str r0, [r4, #-1624]
str r3, [r4, #-1632]
- b .L1716
-.L1720:
+ b .L1848
+.L1852:
mvn r0, #0
-.L1716:
+.L1848:
add sp, sp, #40
ldmfd sp!, {r4, r5, r6, pc}
-.L1723:
+.L1855:
.align 2
-.L1722:
+.L1854:
.word .LANCHOR2
.word .LANCHOR0
.fnend
@@ -15015,13 +16408,13 @@ FtlReadRefresh:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L1731
+ ldr r3, .L1863
ldr r2, [r3, #-1628]
cmp r2, #0
- beq .L1725
+ beq .L1857
b FtlReadRefresh.part.15
-.L1725:
- ldr r2, .L1731+4
+.L1857:
+ ldr r2, .L1863+4
ldr r0, [r3, #-1784]
ldr r1, [r2, #3840]
ldrb r2, [r2, #928] @ zero_extendqisi2
@@ -15034,431 +16427,198 @@ FtlReadRefresh:
ldr r1, [r3, #-1632]
add r3, r2, #1048576
cmp r1, r3
- bhi .L1727
+ bhi .L1859
add r1, r0, r1
cmp r1, r2
- bcc .L1727
- ldr r3, .L1731
+ bcc .L1859
+ ldr r3, .L1863
ldrb r3, [r3, #-2044] @ zero_extendqisi2
cmp r3, #0
- bne .L1728
-.L1727:
- ldr r3, .L1731
+ bne .L1860
+.L1859:
+ ldr r3, .L1863
mov r1, #1
str r2, [r3, #-1632]
str r1, [r3, #-1628]
mov r1, #0
str r1, [r3, #-1624]
-.L1728:
+.L1860:
mov r0, #0
bx lr
-.L1732:
+.L1864:
.align 2
-.L1731:
+.L1863:
.word .LANCHOR2
.word .LANCHOR0
.fnend
.size FtlReadRefresh, .-FtlReadRefresh
.align 2
- .global FtlMapTblRecovery
- .type FtlMapTblRecovery, %function
-FtlMapTblRecovery:
+ .global FtlReUsePrevPpa
+ .type FtlReUsePrevPpa, %function
+FtlReUsePrevPpa:
.fnstart
- @ args = 0, pretend = 0, frame = 24
+ @ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- .save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- .pad #36
- sub sp, sp, #36
- ldr r3, [r0, #16]
- mov r4, r0
- ldrh r8, [r0, #6]
- mov r1, #0
- ldr fp, [r0, #24]
- mov r9, #0
- str r3, [sp, #24]
- ldrh r3, [r0, #8]
- mov r2, r8, asl #2
- ldr r7, [r0, #12]
- mov r0, fp
- str r3, [sp, #16]
- bl ftl_memset
- ldr r3, .L1768
- mov sl, r7
- str r9, [r4, #32]
- str r9, [r4, #28]
- ldr r2, [r3, #-960]
- ldr r5, [r3, #-936]
- str r2, [r3, #188]
- str r5, [r3, #192]
- mvn r3, #0
- strh r3, [r4, #0] @ movhi
- strh r3, [r4, #2] @ movhi
- mov r3, #1
- str r3, [r4, #36]
- ldr r3, [sp, #16]
- sub r3, r3, #1
- str r3, [sp, #20]
- ldr r3, .L1768+4
- b .L1734
-.L1748:
- ldr r0, [sp, #20]
- cmp r2, r0
- mov r2, r2, asl #1
- bne .L1735
- ldrh r0, [sl, r2]
- mov r1, #1
- add r3, sl, r2
- str r3, [sp, #16]
- bl FtlGetLastWrittenPage
- ldr r1, [sp, #20]
- ldr r2, [sp, #24]
- mov r7, sl
- strh r9, [r4, #0] @ movhi
- mov sl, #0
- ldr r6, .L1768
- uxth r0, r0
- add r3, r0, #1
- strh r3, [r4, #2] @ movhi
- ldr r3, [r2, r1, asl #2]
- sxth r9, r0
- add r9, r9, #1
- str r3, [r4, #28]
- b .L1736
-.L1739:
- ldr r0, [sp, #16]
- mov r1, #1
- ldrh r2, [r0, #0]
- ldr r0, .L1768+8
- orr r3, r3, r2, asl #10
- mov r2, r1
- str r3, [r6, #184]
- bl FlashReadPages
- ldr r3, [r6, #180]
- cmn r3, #1
- ldreq r1, [sp, #16]
- ldreqh r3, [r1, #0]
- streqh r3, [r4, #40] @ movhi
- beq .L1738
- ldrh r3, [r5, #8]
- cmp r3, r8
- bcs .L1738
- ldrh r2, [r4, #4]
- ldrh r1, [r5, #0]
- cmp r1, r2
- ldreq r2, [r6, #184]
- streq r2, [fp, r3, asl #2]
-.L1738:
- add sl, sl, #1
- uxth sl, sl
-.L1736:
- sxth r3, sl
- cmp r3, r9
- blt .L1739
- b .L1740
-.L1735:
- ldr r6, .L1768
- movw r7, #3918
- add r0, sl, r2
- str r0, [sp, #28]
- add r0, r6, #180
- ldr r1, [r6, #-960]
- str r1, [r6, #188]
- ldrh r1, [sl, r2]
- ldrh r2, [r3, r7]
+ stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr}
+ .save {r0, r1, r2, r4, r5, r6, r7, lr}
+ mov r7, r0
+ ubfx r0, r1, #10, #16
+ str r1, [sp, #4]
+ bl P2V_block_in_plane
+ ldr r3, .L1871
+ ldr r1, [r3, #-2016]
+ mov r5, r0, asl #1
+ ldrh r2, [r1, r5]
+ cmp r2, #0
+ addne r2, r2, #1
+ strneh r2, [r1, r5] @ movhi
+ bne .L1867
+ ldr r4, [r3, #-2004]
+ cmp r4, #0
+ beq .L1867
+ ldr r1, .L1871+4
+ mov ip, #6
+ ldrh lr, [r3, r1]
+ ldr r3, [r3, #-2024]
+ ldr r1, .L1871+8
+ rsb r4, r3, r4
+ mov r4, r4, asr #1
+ mul r4, r1, r4
+ movw r1, #65535
+ uxth r4, r4
+ b .L1868
+.L1870:
+ cmp r4, r0
+ bne .L1869
+ mov r1, r4
+ ldr r0, .L1871+12
+ bl List_remove_node
+ ldr r6, .L1871
+ ldr r3, .L1871+4
+ mov r0, r4
+ ldrh r2, [r6, r3]
sub r2, r2, #1
- orr r2, r2, r1, asl #10
- mov r1, #1
- str r2, [r6, #184]
- mov r2, r1
- str r3, [sp, #12]
- bl FlashReadPages
- ldr r2, [r6, #180]
- ldr r3, [sp, #12]
- cmn r2, #1
- beq .L1761
- ldrh r1, [r5, #0]
- ldrh r2, [r4, #4]
- cmp r1, r2
- bne .L1761
- ldrh r1, [r5, #8]
- movw r2, #64245
- cmp r1, r2
- bne .L1761
- b .L1762
-.L1744:
- ldr r0, [r6, #-960]
- mov ip, r1, asl #3
+ strh r2, [r6, r3] @ movhi
+ bl INSERT_DATA_LIST
+ ldr r3, [r6, #-2016]
+ ldrh r2, [r3, r5]
+ add r2, r2, #1
+ strh r2, [r3, r5] @ movhi
+ b .L1867
+.L1869:
+ mul r4, ip, r4
+ ldrh r4, [r3, r4]
+ cmp r4, r1
+ beq .L1867
add r2, r2, #1
- ldr r1, [r0, r1, asl #3]
uxth r2, r2
- uxth r1, r1
- cmp r1, r8
- addcc r0, r0, ip
- ldrcc r0, [r0, #4]
- strcc r0, [fp, r1, asl #2]
- b .L1742
-.L1762:
+.L1868:
+ cmp r2, lr
+ bne .L1870
+.L1867:
+ mov r0, r7
+ add r1, sp, #4
+ mov r2, #1
+ bl log2phys
+ ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, pc}
+.L1872:
+ .align 2
+.L1871:
+ .word .LANCHOR2
+ .word -2000
+ .word -1431655765
+ .word .LANCHOR2-2004
+ .fnend
+ .size FtlReUsePrevPpa, .-FtlReUsePrevPpa
+ .align 2
+ .global Ftlscanalldata
+ .type Ftlscanalldata, %function
+Ftlscanalldata:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 8
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r4, r5, r6, r7, r8, lr}
+ .save {r4, r5, r6, r7, r8, lr}
+ mov r1, #0
+ ldr r4, .L1879
+ .pad #32
+ sub sp, sp, #32
+ ldr r0, .L1879+4
+ mov r5, #0
+ bl printk
+ ldr r7, .L1879+8
+ mov r6, r4
+ b .L1874
+.L1878:
+ mov r0, r5
+ add r1, sp, #28
mov r2, #0
-.L1742:
- ldrh r0, [r3, r7]
- sxth r1, r2
- sub r0, r0, #1
- cmp r1, r0
- blt .L1744
- b .L1745
-.L1747:
- ldr r0, [sp, #28]
- ldrh r1, [r0, #0]
- ldr r0, .L1768+8
- orr r2, r2, r1, asl #10
- mov r1, #1
- str r2, [r7, #184]
- mov r2, r1
- str r3, [sp, #12]
- bl FlashReadPages
- ldr r2, [r7, #180]
- ldr r3, [sp, #12]
- cmn r2, #1
- beq .L1746
- ldrh r2, [r5, #8]
- cmp r2, r8
- bcs .L1746
- ldrh r1, [r4, #4]
- ldrh r0, [r5, #0]
- cmp r0, r1
- ldreq r1, [r7, #184]
- streq r1, [fp, r2, asl #2]
-.L1746:
- add r6, r6, #1
- uxth r6, r6
- b .L1764
-.L1761:
- ldr r7, .L1768
- mov r6, #0
-.L1764:
- movw r1, #3918
- sxth r2, r6
- ldrh r1, [r3, r1]
- cmp r2, r1
- blt .L1747
-.L1745:
- add r9, r9, #1
- uxth r9, r9
-.L1734:
- ldr r1, [sp, #16]
- sxth r2, r9
- cmp r2, r1
- blt .L1748
- mov r7, sl
-.L1740:
- ldr r3, .L1768+12
- cmp r4, r3
- bne .L1749
- ldr r9, .L1768+4
- movw r3, #3960
- ldrh r3, [r9, r3]
- cmp r3, #0
- addne r5, r4, #1088
- movne r8, #0
- movne sl, r4
- bne .L1750
- b .L1749
-.L1757:
- ldr r3, [r5, #-900]
- mov r4, r8, asl #2
- ldr r2, [r3, r8, asl #2]
- sub r1, r2, #1
- cmn r1, #3
- bhi .L1751
- ldr r1, [r5, #-1032]
- ldr r1, [r1, r8, asl #2]
- cmp r2, r1
- beq .L1751
- ldr r2, [r5, #-960]
- mov r1, #1
- ldr r6, [r5, #-936]
- ldr r0, .L1768+8
- str r2, [r5, #188]
- mov r2, r1
- str r6, [r5, #192]
- ldr r3, [r3, r4]
- str r3, [r5, #184]
- bl FlashReadPages
- ldr r3, [r5, #180]
+ bl log2phys
+ movs r3, r5, asl #21
+ bne .L1875
+ ldr r0, .L1879+12
+ mov r1, r5
+ ldr r2, [sp, #28]
+ bl printk
+.L1875:
+ ldr r3, [sp, #28]
cmn r3, #1
- beq .L1751
- ldr r0, .L1768+16
- ldrh r2, [r6, #0]
- ldrh r3, [r5, r0]
- cmp r2, r3
- bne .L1751
- ldr r3, [r5, #-1032]
- ldr fp, [r6, #4]
- ldr r2, [r3, r4]
- str r2, [r5, #184]
- ldr r3, [r3, r4]
- cmp r3, #0
- streq r3, [r6, #4]
- beq .L1753
+ beq .L1876
+ str r3, [r4, #184]
+ mov r2, #0
+ ldr r3, [r4, #-960]
mov r1, #1
- ldr r0, .L1768+8
- mov r2, r1
+ ldr r8, [r4, #-936]
+ ldr r0, .L1879+16
+ str r3, [r4, #188]
+ str r5, [r4, #196]
+ str r8, [r4, #192]
+ str r2, [r4, #180]
bl FlashReadPages
-.L1753:
- ldr r1, [r6, #4]
- cmp fp, r1
- bls .L1751
- ldr r2, [r5, #-900]
- ldr r3, [r5, #-1032]
- ldr r0, .L1768+20
+ ldr r3, [r4, #180]
+ cmn r3, #1
+ cmpne r3, #256
+ beq .L1877
+ ldr r3, [r8, #8]
+ cmp r3, r5
+ beq .L1876
+.L1877:
+ ldr r3, [r6, #192]
+ ldr r2, [r6, #188]
+ ldr r0, .L1879+20
+ ldr r1, [r3, #4]
str r1, [sp, #0]
- ldr r1, [r2, r4]
- ldr r2, [r3, r4]
- mov r3, fp
+ ldr r1, [r3, #8]
+ str r1, [sp, #4]
+ ldr r1, [r3, #12]
+ str r1, [sp, #8]
+ ldr r1, [r2, #0]
+ str r1, [sp, #12]
+ mov r1, r5
+ ldr r2, [r2, #4]
+ str r2, [sp, #16]
+ ldr r2, [r6, #184]
+ ldr r3, [r3, #0]
bl printk
- ldr r3, [r5, #-900]
- ldr r2, [r3, r4]
- ldr r3, [r5, #-1032]
- str r2, [r3, r4]
- mov r2, #0
- ldr r3, [r5, #-900]
- ldr r0, [r3, r4]
- ldr r3, .L1768+24
- ubfx r0, r0, #10, #16
- ldrh r3, [r5, r3]
- b .L1754
-.L1755:
- mov r1, r1, asl #1
- ldrh r1, [r7, r1]
- cmp r1, r0
- beq .L1751
- add r2, r2, #1
- uxth r2, r2
-.L1754:
- sxth r1, r2
- cmp r1, r3
- blt .L1755
- b .L1766
-.L1767:
- mov r3, r3, asl #1
- strh r0, [r7, r3] @ movhi
- ldr r3, .L1768+24
- ldrh r2, [r5, r3]
- add r2, r2, #1
- strh r2, [r5, r3] @ movhi
- bl remove_from_free_sys_Queue
-.L1751:
- add r8, r8, #1
-.L1750:
- mov r3, #3952
- ldrh r3, [r9, r3]
- cmp r8, r3
- bcc .L1757
- mov r4, sl
-.L1749:
- mov r0, r4
- bl ftl_free_no_use_map_blk
- ldr r1, .L1768+4
- movw r3, #3918
- ldrh r2, [r4, #2]
- ldrh r3, [r1, r3]
- cmp r2, r3
- bne .L1758
- mov r0, r4
- bl ftl_map_blk_alloc_new_blk
-.L1758:
- mov r0, r4
- bl ftl_map_blk_gc
- mov r0, r4
- bl ftl_map_blk_gc
- mov r0, #0
- add sp, sp, #36
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1766:
- ldr r2, [r9, #3944]
- cmp r3, r2
- bcs .L1751
- b .L1767
-.L1769:
+.L1876:
+ add r5, r5, #1
+.L1874:
+ ldr r3, [r7, #3976]
+ cmp r5, r3
+ bcc .L1878
+ add sp, sp, #32
+ ldmfd sp!, {r4, r5, r6, r7, r8, pc}
+.L1880:
.align 2
-.L1768:
+.L1879:
.word .LANCHOR2
+ .word .LC141
.word .LANCHOR0
+ .word .LC142
.word .LANCHOR2+180
- .word .LANCHOR2-1088
- .word -1084
- .word .LC124
- .word -1044
- .fnend
- .size FtlMapTblRecovery, .-FtlMapTblRecovery
- .align 2
- .global FtlLoadMapInfo
- .type FtlLoadMapInfo, %function
-FtlLoadMapInfo:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, lr}
- .save {r3, lr}
- bl FtlL2PDataInit
- ldr r0, .L1771
- bl FtlMapTblRecovery
- mov r0, #0
- ldmfd sp!, {r3, pc}
-.L1772:
- .align 2
-.L1771:
- .word .LANCHOR2-1088
- .fnend
- .size FtlLoadMapInfo, .-FtlLoadMapInfo
- .align 2
- .global FtlLoadVonderInfo
- .type FtlLoadVonderInfo, %function
-FtlLoadVonderInfo:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, lr}
- .save {r3, lr}
- mov r2, #3936
- ldr r3, .L1774
- ldr r0, .L1774+4
- ldrh r1, [r3, r2]
- movw r2, #258
- strh r1, [r0, r2] @ movhi
- ldr r2, .L1774+8
- strh r2, [r0, #252] @ movhi
- movw r2, #3962
- ldrh r1, [r3, r2]
- mov r2, #256
- strh r1, [r0, r2] @ movhi
- movw r2, #3938
- ldrh r2, [r3, r2]
- ldr r3, [r3, #3964]
- strh r2, [r0, #254] @ movhi
- mvn r2, #0
- str r3, [r0, #260]
- ldr r3, [r0, #-908]
- str r3, [r0, #264]
- ldr r3, [r0, #-912]
- str r3, [r0, #268]
- ldr r3, [r0, #-904]
- str r3, [r0, #272]
- mov r3, #288
- strh r2, [r0, r3] @ movhi
- add r0, r0, #248
- bl FtlMapTblRecovery
- mov r0, #0
- ldmfd sp!, {r3, pc}
-.L1775:
- .align 2
-.L1774:
- .word .LANCHOR0
- .word .LANCHOR2
- .word -3962
+ .word .LC143
.fnend
- .size FtlLoadVonderInfo, .-FtlLoadVonderInfo
+ .size Ftlscanalldata, .-Ftlscanalldata
.align 2
.global FtlRecoverySuperblock
.type FtlRecoverySuperblock, %function
@@ -15474,9 +16634,9 @@ FtlRecoverySuperblock:
sub sp, sp, #60
mov r4, r0
cmp r3, r2
- beq .L1777
+ beq .L1882
ldrh r3, [r0, #2]
- ldr r1, .L1866
+ ldr r1, .L1971
ldrb fp, [r0, #6] @ zero_extendqisi2
str r3, [sp, #12]
movw r3, #3916
@@ -15488,65 +16648,65 @@ FtlRecoverySuperblock:
streqh r3, [r0, #4] @ movhi
moveq r2, r3 @ movhi
ldrneh r0, [r0, #16]
- bne .L1779
- b .L1863
-.L1780:
+ bne .L1884
+ b .L1968
+.L1885:
add r3, r3, #1
uxth r3, r3
add r1, r4, r3, asl #1
ldrh r0, [r1, #16]
-.L1779:
+.L1884:
cmp r0, r2
- beq .L1780
+ beq .L1885
ldrb r1, [r4, #8] @ zero_extendqisi2
cmp r1, #1
- bne .L1781
+ bne .L1886
bl FtlGetLastWrittenPage
cmn r0, #1
mov r7, r0
- beq .L1782
- ldr r3, .L1866
+ beq .L1887
+ ldr r3, .L1971
ldrb r2, [r3, #928] @ zero_extendqisi2
cmp r2, #0
- bne .L1856
+ bne .L1961
add r3, r3, r0, asl #1
movw r2, #3076
ldrh r8, [r3, r2]
- b .L1848
-.L1781:
+ b .L1953
+.L1886:
mov r1, #0
bl FtlGetLastWrittenPage
cmn r0, #1
mov r7, r0
- beq .L1782
-.L1856:
+ beq .L1887
+.L1961:
mov r8, r7
-.L1848:
- ldr r3, .L1866
+.L1953:
+ ldr r3, .L1971
movw r2, #3848
mov r5, #0
str r4, [sp, #32]
movw ip, #65535
ldrh r9, [r3, r2]
- ldr r2, .L1866+4
+ ldr r2, .L1971+4
ldr sl, [r2, #-972]
ldr r6, [r2, #-1168]
movw r2, #3928
ldrh lr, [r3, r2]
mov r2, r4
mov r3, r5
- b .L1784
-.L1782:
+ b .L1889
+.L1887:
mov r3, #0
strh r3, [r4, #2] @ movhi
mov r2, r3 @ movhi
-.L1863:
+.L1968:
strb r2, [r4, #6]
- b .L1777
-.L1786:
+ b .L1882
+.L1891:
ldrh r0, [r2, #16]
cmp r0, ip
- beq .L1785
+ beq .L1890
mov fp, #36
orr r0, r8, r0, asl #10
mla r1, fp, r5, sl
@@ -15562,23 +16722,23 @@ FtlRecoverySuperblock:
bic r0, r0, #3
add r0, r6, r0
str r0, [r1, #12]
-.L1785:
+.L1890:
add r3, r3, #1
add r2, r2, #2
uxth r3, r3
-.L1784:
+.L1889:
cmp r3, r9
- bne .L1786
+ bne .L1891
ldrb r3, [r4, #8] @ zero_extendqisi2
cmp r3, #1
movne r3, #0
- bne .L1857
- ldr r3, .L1866
+ bne .L1962
+ ldr r3, .L1971
ldrb r3, [r3, #928] @ zero_extendqisi2
adds r3, r3, #0
movne r3, #1
-.L1857:
- ldr r6, .L1866+4
+.L1962:
+ ldr r6, .L1971+4
mov r1, r5
str r3, [sp, #20]
mov sl, #0
@@ -15589,19 +16749,19 @@ FtlRecoverySuperblock:
movw ip, #65535
str ip, [sp, #4]
str fp, [sp, #8]
- b .L1788
-.L1793:
+ b .L1893
+.L1898:
mov lr, #36
ldr r1, [r6, #-972]
mul r2, lr, sl
add r3, r1, r2
ldr r2, [r1, r2]
cmp r2, #0
- bne .L1789
+ bne .L1894
ldr r3, [r3, #12]
ldr fp, [r3, #4]
cmn fp, #1
- beq .L1790
+ beq .L1895
ldr r1, [r6, #-1800]
mov r0, fp
str r3, [sp, #0]
@@ -15610,28 +16770,28 @@ FtlRecoverySuperblock:
cmp r0, #0
addne fp, fp, #1
strne fp, [r6, #-1800]
-.L1790:
+.L1895:
ldr r3, [r3, #0]
cmn r3, #1
- bne .L1792
- b .L1791
-.L1789:
+ bne .L1897
+ b .L1896
+.L1894:
ldr r1, [r3, #4]
movw fp, #294
- ldr r0, .L1866+8
+ ldr r0, .L1971+8
bl printk
ldrh r3, [r4, #0]
uxth r2, r8
str r2, [sp, #4]
strh r3, [r6, fp] @ movhi
-.L1792:
+.L1897:
add sl, sl, #1
-.L1788:
+.L1893:
uxth r9, sl
cmp r9, r5
- bcc .L1793
-.L1791:
- ldr r3, .L1866+4
+ bcc .L1898
+.L1896:
+ ldr r3, .L1971+4
cmp r9, r5
addeq r7, r7, #1
uxthne r7, r7
@@ -15645,16 +16805,16 @@ FtlRecoverySuperblock:
ubfx r0, r0, #10, #16
bl P2V_plane
ldrb r2, [r4, #8] @ zero_extendqisi2
- ldr r3, .L1866
+ ldr r3, .L1971
cmp r2, #1
str r0, [sp, #16]
- bne .L1796
+ bne .L1901
ldrb r1, [r3, #928] @ zero_extendqisi2
cmp r1, #0
addeq r7, r3, r7, asl #1
movweq r1, #3076
ldreqh r7, [r7, r1]
-.L1796:
+.L1901:
movw r1, #3916
ldr ip, [sp, #12]
ldrh r3, [r3, r1]
@@ -15667,25 +16827,25 @@ FtlRecoverySuperblock:
ldr r3, [sp, #16]
cmp r7, ip
cmpeq r3, fp
- beq .L1864
-.L1798:
+ beq .L1969
+.L1903:
ldr fp, [sp, #4]
movw r3, #65535
ldr ip, [sp, #8]
cmp fp, r3
sub r6, ip, #1
- bne .L1799
+ bne .L1904
cmp r2, #0
- bne .L1800
-.L1799:
- ldr r2, .L1866+4
+ bne .L1905
+.L1904:
+ ldr r2, .L1971+4
uxth r3, r8
ldr ip, [sp, #12]
mvn fp, #0
mov sl, r3
mov r9, fp
ldr r1, [r2, #-1008]
- ldr r8, .L1866+4
+ ldr r8, .L1971+4
cmn r1, #1
streq r6, [r2, #-1008]
ldr r2, [r2, #-1008]
@@ -15697,12 +16857,12 @@ FtlRecoverySuperblock:
ldrle r5, [sp, #12]
mov r7, r6
uxthgt r5, r5
- b .L1803
-.L1805:
+ b .L1908
+.L1910:
ldrh r0, [r1, #16]
movw lr, #65535
cmp r0, lr
- beq .L1804
+ beq .L1909
ldr ip, [sp, #8]
mov r3, #36
orr r0, r5, r0, asl #10
@@ -15710,21 +16870,21 @@ FtlRecoverySuperblock:
add r6, r6, #1
uxth r6, r6
str r0, [lr, #4]
-.L1804:
+.L1909:
add r2, r2, #1
add r1, r1, #2
uxth r2, r2
-.L1816:
+.L1921:
ldr lr, [sp, #36]
cmp r2, lr
- bne .L1805
+ bne .L1910
ldr r3, [sp, #28]
mov r1, r6
ldr r0, [r8, #-972]
ldr r2, [sp, #20]
str r3, [sp, #0]
bl FlashReadPages
- ldr r2, .L1866
+ ldr r2, .L1971
add r0, r8, r5, asl #1
mov r1, #0
str r0, [sp, #8]
@@ -15732,90 +16892,90 @@ FtlRecoverySuperblock:
ldrb ip, [r2, #928] @ zero_extendqisi2
ldr r2, [r8, #-972]
str ip, [sp, #28]
- b .L1806
-.L1814:
+ b .L1911
+.L1919:
ldr r0, [r2, #0]
cmp r0, #0
- bne .L1807
+ bne .L1912
ldr r0, [r2, #12]
movw ip, #65535
ldrh lr, [r0, #0]
cmp lr, ip
- beq .L1808
+ beq .L1913
ldr r0, [r0, #4]
cmn r0, #1
- beq .L1808
+ beq .L1913
cmn fp, #1
ldr r9, [r8, #-1008]
str r0, [r8, #-1008]
- bne .L1808
+ bne .L1913
ldr lr, [sp, #8]
sub r0, lr, #892
ldrh r0, [r0, #0]
cmp r0, ip
- bne .L1809
+ bne .L1914
ldr r0, [sp, #28]
cmp r0, #0
- beq .L1808
-.L1809:
+ beq .L1913
+.L1914:
cmp r9, r7
mvneq fp, #0
movne fp, r9
- b .L1808
-.L1807:
+ b .L1913
+.L1912:
mov r6, r7
ldrh r1, [r4, #0]
mov r7, r3
- ldr r3, .L1866+4
+ ldr r3, .L1971+4
movw r2, #294
strh r1, [r3, r2] @ movhi
ldrb r2, [r4, #8] @ zero_extendqisi2
cmp r2, #0
- bne .L1800
+ bne .L1905
add r5, r3, r5, asl #1
movw r2, #65535
sub r5, r5, #892
ldrh r1, [r5, #0]
cmp r1, r2
- bne .L1810
+ bne .L1915
cmn fp, #1
- bne .L1859
-.L1811:
+ bne .L1964
+.L1916:
ldr fp, [sp, #4]
cmp fp, r6
- beq .L1812
-.L1859:
+ beq .L1917
+.L1964:
str fp, [r3, #-1008]
- b .L1800
-.L1812:
+ b .L1905
+.L1917:
ldr r2, [r3, #-1008]
- b .L1865
-.L1810:
+ b .L1970
+.L1915:
cmp r9, r6
- beq .L1813
+ beq .L1918
cmn r9, #1
strne r9, [r3, #-1008]
- b .L1800
-.L1813:
+ b .L1905
+.L1918:
ldr r2, [r3, #-1008]
cmp r2, r6
- beq .L1800
-.L1865:
+ beq .L1905
+.L1970:
sub r2, r2, #1
- b .L1860
-.L1808:
+ b .L1965
+.L1913:
add r1, r1, #1
add r2, r2, #36
uxth r1, r1
-.L1806:
+.L1911:
cmp r1, r6
- bne .L1814
+ bne .L1919
add r5, r5, #1
uxth r5, r5
-.L1803:
+.L1908:
cmp r5, sl
- bhi .L1815
- ldr r1, .L1866
+ bhi .L1920
+ ldr r1, .L1971
movw r2, #3848
ldr lr, [r8, #-972]
mov r6, #0
@@ -15825,16 +16985,16 @@ FtlRecoverySuperblock:
str lr, [sp, #8]
mov r2, r6
str ip, [sp, #36]
- b .L1816
-.L1815:
+ b .L1921
+.L1920:
mov r6, r7
mov r7, r3
- ldr r3, .L1866+4
+ ldr r3, .L1971+4
mvn r2, #0
-.L1860:
+.L1965:
str r2, [r3, #-1008]
-.L1800:
- ldr r5, .L1866+4
+.L1905:
+ ldr r5, .L1971+4
mov r3, #296
mov r2, #1
sub r0, r5, #1088
@@ -15842,8 +17002,8 @@ FtlRecoverySuperblock:
bl FtlMapBlkWriteDumpData
ldr r8, [sp, #12]
str r7, [sp, #8]
-.L1817:
- ldr r3, .L1866
+.L1922:
+ ldr r3, .L1971
movw r2, #3848
mov r7, #0
ldr lr, [r5, #-972]
@@ -15852,31 +17012,31 @@ FtlRecoverySuperblock:
mov r2, r4
ldrb ip, [r3, #928] @ zero_extendqisi2
mov r3, r7
- b .L1818
-.L1821:
+ b .L1923
+.L1926:
ldrh r0, [r2, #16]
movw r1, #65535
cmp r0, r1
- beq .L1819
+ beq .L1924
mla r1, fp, r7, lr
orr r0, r8, r0, asl #10
str r0, [r1, #4]
ldrb r9, [r4, #8] @ zero_extendqisi2
cmp r9, #1
- bne .L1820
+ bne .L1925
cmp ip, #0
orrne r0, r0, #-2147483648
strne r0, [r1, #4]
-.L1820:
+.L1925:
add r7, r7, #1
uxth r7, r7
-.L1819:
+.L1924:
add r3, r3, #1
add r2, r2, #2
uxth r3, r3
-.L1818:
+.L1923:
cmp r3, sl
- bne .L1821
+ bne .L1926
mov r1, r7
ldr r0, [r5, #-972]
ldr r2, [sp, #20]
@@ -15885,8 +17045,8 @@ FtlRecoverySuperblock:
mul r3, r3, r7
mov r7, #0
str r3, [sp, #36]
- b .L1822
-.L1843:
+ b .L1927
+.L1948:
ldr r9, [r5, #-972]
add r9, r9, r7
ldr sl, [r9, #4]
@@ -15895,7 +17055,7 @@ FtlRecoverySuperblock:
bl P2V_plane
ldr r3, [sp, #12]
cmp r8, r3
- bcc .L1823
+ bcc .L1928
ldr fp, [sp, #24]
mov ip, r3
cmp r0, fp
@@ -15904,31 +17064,31 @@ FtlRecoverySuperblock:
cmp r8, ip
movne r3, #0
cmp r3, #0
- bne .L1823
+ bne .L1928
ldr r3, [sp, #16]
ldr ip, [sp, #8]
cmp r0, r3
cmpeq r8, ip
- beq .L1855
+ beq .L1960
ldr r3, [r9, #0]
cmn r3, #1
- beq .L1825
+ beq .L1930
ldr sl, [r9, #12]
movw r3, #61589
ldrh r2, [sl, #0]
cmp r2, r3
- bne .L1832
-.L1826:
+ bne .L1937
+.L1931:
ldr r6, [sl, #4]
cmn r6, #1
- beq .L1827
+ beq .L1932
ldr r1, [r5, #-1800]
mov r0, r6
bl ftl_cmp_data_ver
cmp r0, #0
addne r3, r6, #1
strne r3, [r5, #-1800]
-.L1827:
+.L1932:
ldr r9, [sl, #8]
add r1, sp, #48
ldr r3, [sl, #12]
@@ -15938,14 +17098,14 @@ FtlRecoverySuperblock:
bl log2phys
ldr r1, [r5, #-1008]
cmn r1, #1
- beq .L1828
+ beq .L1933
mov r0, r6
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1828
+ beq .L1933
ldr r3, [sp, #44]
cmn r3, #1
- beq .L1829
+ beq .L1934
ldr r0, [r5, #-972]
mov r1, #1
mov r2, #0
@@ -15960,41 +17120,41 @@ FtlRecoverySuperblock:
ldr r3, [r3, r7]
str ip, [sp, #28]
cmn r3, #1
- bne .L1830
- b .L1831
-.L1829:
+ bne .L1935
+ b .L1936
+.L1934:
ldr r3, [sp, #52]
ldr r2, [sp, #48]
cmp r2, r3
- bne .L1832
+ bne .L1937
mov r0, r9
add r1, sp, #44
mov r2, #1
bl log2phys
-.L1832:
+.L1937:
ldrh r0, [r4, #0]
- b .L1862
-.L1830:
+ b .L1967
+.L1935:
ldr r3, [sp, #4]
ldr sl, [r3, #8]
cmp sl, r9
- bne .L1831
+ bne .L1936
ldr r0, [r5, #-1008]
ldr r1, [sp, #28]
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1831
+ beq .L1936
ldr r3, [sp, #48]
ldr r2, [sp, #52]
cmp r3, r2
- beq .L1836
-.L1833:
+ beq .L1941
+.L1938:
ldr r2, [sp, #44]
cmp r3, r2
- beq .L1831
+ beq .L1936
cmn r3, #1
streq r3, [fp, #0]
- beq .L1835
+ beq .L1940
ldr ip, [fp, #12]
mov r0, fp
str r3, [fp, #4]
@@ -16002,88 +17162,88 @@ FtlRecoverySuperblock:
mov r2, #0
str ip, [sp, #4]
bl FlashReadPages
-.L1835:
+.L1940:
ldr r3, [r5, #-972]
ldr r3, [r3, r7]
cmn r3, #1
- beq .L1836
+ beq .L1941
ldr r3, [sp, #4]
ldr r0, [r5, #-1008]
ldr r9, [r3, #4]
mov r1, r9
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1836
+ beq .L1941
ldr r0, [sp, #28]
mov r1, r9
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1831
-.L1836:
+ beq .L1936
+.L1941:
mov r0, sl
ldr r1, [sp, #44]
bl FtlReUsePrevPpa
-.L1831:
+.L1936:
ldrh r0, [r4, #0]
mvn r3, #0
str r3, [sp, #44]
bl decrement_vpc_count
- b .L1838
-.L1828:
+ b .L1943
+.L1933:
ldr r3, [sp, #52]
ldr r2, [sp, #48]
cmp r2, r3
- beq .L1838
+ beq .L1943
mov r0, r9
add r1, sp, #52
mov r2, #1
bl log2phys
ldr fp, [sp, #48]
cmn fp, #1
- beq .L1838
+ beq .L1943
ldr r3, [sp, #44]
cmp fp, r3
- beq .L1838
+ beq .L1943
ubfx r0, fp, #10, #16
bl P2V_block_in_plane
- ldr r3, .L1866+12
+ ldr r3, .L1971+12
ldrh r3, [r5, r3]
cmp r3, r0
- beq .L1839
- ldr r3, .L1866+16
+ beq .L1944
+ ldr r3, .L1971+16
ldrh r3, [r5, r3]
cmp r3, r0
- beq .L1839
- ldr r3, .L1866+20
+ beq .L1944
+ ldr r3, .L1971+20
ldrh r3, [r5, r3]
cmp r3, r0
- bne .L1838
-.L1839:
- ldr ip, .L1866+4
+ bne .L1943
+.L1944:
+ ldr ip, .L1971+4
mov r1, #1
mov r2, #0
ldr r0, [ip, #-972]
str fp, [r0, #4]
ldr sl, [r0, #12]
bl FlashReadPages
- ldr r0, .L1866+4
+ ldr r0, .L1971+4
ldr r1, [sl, #4]
ldr r3, [r0, #-972]
ldr r3, [r3, #0]
cmn r3, #1
- beq .L1838
+ beq .L1943
mov r0, r6
bl ftl_cmp_data_ver
cmp r0, #0
- bne .L1838
+ bne .L1943
mov r0, r9
add r1, sp, #48
mov r2, #1
bl log2phys
-.L1838:
+.L1943:
ldr r0, [sp, #44]
cmn r0, #1
- beq .L1823
+ beq .L1928
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
ldr r2, [r5, #-2016]
@@ -16091,19 +17251,19 @@ FtlRecoverySuperblock:
mov r1, r0
ldrh r3, [r2, r3]
cmp r3, #0
- beq .L1840
-.L1862:
+ beq .L1945
+.L1967:
bl decrement_vpc_count
- b .L1823
-.L1840:
- ldr r0, .L1866+24
+ b .L1928
+.L1945:
+ ldr r0, .L1971+24
bl printk
- b .L1823
-.L1825:
+ b .L1928
+.L1930:
ldrh r3, [r4, #0]
movw r1, #294
mov r2, r6
- ldr r0, .L1866+28
+ ldr r0, .L1971+28
strh r3, [r5, r1] @ movhi
mov r1, sl
bl printk
@@ -16118,39 +17278,39 @@ FtlRecoverySuperblock:
bl decrement_vpc_count
ldr r3, [r5, #-1008]
cmn r3, #1
- beq .L1861
-.L1842:
+ beq .L1966
+.L1947:
cmp r3, r6
- bls .L1823
-.L1861:
+ bls .L1928
+.L1966:
str r6, [r5, #-1008]
-.L1823:
+.L1928:
add r7, r7, #36
-.L1822:
+.L1927:
ldr r3, [sp, #36]
cmp r7, r3
- bne .L1843
+ bne .L1948
ldrb r3, [r4, #8] @ zero_extendqisi2
add r8, r8, #1
cmp r3, #1
uxth r8, r8
- bne .L1844
- ldr r3, .L1866
+ bne .L1949
+ ldr r3, .L1971
ldrb r2, [r3, #928] @ zero_extendqisi2
cmp r2, #0
- beq .L1844
+ beq .L1949
movw r2, #3918
ldr ip, [sp, #8]
ldrh r3, [r3, r2]
cmp ip, r8
cmpeq r3, r8
- beq .L1855
-.L1844:
- ldr r3, .L1866
+ beq .L1960
+.L1949:
+ ldr r3, .L1971
movw r2, #3916
ldrh r2, [r3, r2]
cmp r8, r2
- bne .L1817
+ bne .L1922
mov r2, #0
movw r1, #3848
strh r2, [r4, #4] @ movhi
@@ -16159,46 +17319,46 @@ FtlRecoverySuperblock:
strh r8, [r4, #2] @ movhi
movw r2, #65535
ldr r0, [sp, #32]
- b .L1845
-.L1847:
+ b .L1950
+.L1952:
add r0, r0, #2
ldrh ip, [r0, #14]
cmp ip, r2
strneb r3, [r4, #6]
- bne .L1777
-.L1846:
+ bne .L1882
+.L1951:
add r3, r3, #1
uxth r3, r3
-.L1845:
+.L1950:
cmp r3, r1
- bne .L1847
- b .L1777
-.L1855:
-.L1824:
+ bne .L1952
+ b .L1882
+.L1960:
+.L1929:
ldr r7, [sp, #8]
ldr r3, [sp, #16]
strh r7, [r4, #2] @ movhi
strb r3, [r4, #6]
-.L1864:
+.L1969:
mov r0, r4
mov r1, r7
mov r2, r3
bl ftl_sb_update_avl_pages
-.L1777:
+.L1882:
mov r0, #0
add sp, sp, #60
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1867:
+.L1972:
.align 2
-.L1866:
+.L1971:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC125
+ .word .LC144
.word -1996
.word -1948
.word -1900
- .word .LC126
- .word .LC127
+ .word .LC145
+ .word .LC146
.fnend
.size FtlRecoverySuperblock, .-FtlRecoverySuperblock
.align 2
@@ -16212,31 +17372,31 @@ FtlWriteDumpData:
.save {r4, r5, r6, r7, r8, sl, lr}
.pad #44
sub sp, sp, #44
- ldr r4, .L1877
- ldr r3, [r4, #-2088]
- mov r2, r4
+ ldr r5, .L1982
+ ldr r3, [r5, #4040]
cmp r3, #0
- bne .L1868
- ldr r3, .L1877+4
+ bne .L1973
+ ldr r4, .L1982+4
+ ldr r3, .L1982+8
+ mov r2, r4
ldrh r3, [r4, r3]
cmp r3, #0
- beq .L1870
+ beq .L1975
ldrb r1, [r4, #-1988] @ zero_extendqisi2
cmp r1, #0
- bne .L1870
- ldr r5, .L1877+8
+ bne .L1975
movw r0, #3916
ldrb r1, [r4, #-1989] @ zero_extendqisi2
ldrh r0, [r5, r0]
mul r1, r0, r1
cmp r3, r1
- beq .L1870
+ beq .L1975
ldrb r8, [r4, #-1986] @ zero_extendqisi2
movw r3, #3848
ldr r7, [r5, #3976]
cmp r8, #0
ldrh r6, [r5, r3]
- bne .L1868
+ bne .L1973
sub r7, r7, #1
mov r1, sp
mov r2, r8
@@ -16251,33 +17411,33 @@ FtlWriteDumpData:
str r0, [sp, #12]
str r4, [sp, #16]
str r8, [r4, #4]
- beq .L1871
+ beq .L1976
add r0, sp, #4
mov r1, #1
mov r2, r8
bl FlashReadPages
- b .L1872
-.L1871:
+ b .L1977
+.L1976:
movw r3, #3926
mov r1, #255
ldrh r2, [r5, r3]
bl ftl_memset
-.L1872:
- ldr r3, .L1877+12
+.L1977:
+ ldr r3, .L1982+12
mov r6, r6, asl #2
- ldr r5, .L1877
- ldr sl, .L1877+4
+ ldr r5, .L1982+4
+ ldr sl, .L1982+8
strh r3, [r4, #0] @ movhi
- ldr r8, .L1877+16
- b .L1873
-.L1876:
+ ldr r8, .L1982+16
+ b .L1978
+.L1981:
ldrh r3, [r5, sl]
cmp r3, #0
- beq .L1874
+ beq .L1979
ldr r3, [sp, #8]
sub r6, r6, #1
str r7, [r4, #8]
- ldr r0, .L1877+20
+ ldr r0, .L1982+20
str r3, [r4, #12]
ldrh r3, [r5, r8]
strh r3, [r4, #2] @ movhi
@@ -16297,26 +17457,26 @@ FtlWriteDumpData:
bl FlashProgPages
ldrh r0, [r5, r8]
bl decrement_vpc_count
-.L1873:
+.L1978:
cmp r6, #0
- bne .L1876
-.L1874:
- ldr r3, .L1877
+ bne .L1981
+.L1979:
+ ldr r3, .L1982+4
mov r2, #1
strb r2, [r3, #-1986]
- b .L1868
-.L1870:
+ b .L1973
+.L1975:
mov r3, #0
strb r3, [r2, #-1986]
-.L1868:
+.L1973:
add sp, sp, #44
ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
-.L1878:
+.L1983:
.align 2
-.L1877:
+.L1982:
+ .word .LANCHOR0
.word .LANCHOR2
.word -1992
- .word .LANCHOR0
.word -3947
.word -1996
.word .LANCHOR2-1996
@@ -16333,36 +17493,146 @@ l2p_flush:
.save {r3, r4, r5, r6, r7, lr}
bl FtlWriteDumpData
mov r4, #0
- ldr r7, .L1883
+ ldr r7, .L1988
movw r6, #3954
- ldr r5, .L1883+4
- b .L1880
-.L1882:
+ ldr r5, .L1988+4
+ b .L1985
+.L1987:
ldr r3, [r5, #-1852]
mov r2, #12
mla r3, r2, r4, r3
ldr r3, [r3, #4]
cmp r3, #0
- bge .L1881
+ bge .L1986
mov r0, r4
bl flush_l2p_region
-.L1881:
+.L1986:
add r4, r4, #1
uxth r4, r4
-.L1880:
+.L1985:
ldrh r3, [r7, r6]
cmp r3, r4
- bhi .L1882
+ bhi .L1987
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1884:
+.L1989:
.align 2
-.L1883:
+.L1988:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size l2p_flush, .-l2p_flush
.align 2
+ .global allocate_new_data_superblock
+ .type allocate_new_data_superblock, %function
+allocate_new_data_superblock:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ ldr r3, .L2002
+ stmfd sp!, {r4, r5, r6, lr}
+ .save {r4, r5, r6, lr}
+ mov r4, r0
+ ldr r3, [r3, #4040]
+ ldrh r5, [r0, #0]
+ cmp r3, #0
+ bne .L1991
+ movw r3, #65535
+ cmp r5, r3
+ beq .L1992
+ ldr r3, .L2002+4
+ mov r0, r5
+ ldr r2, [r3, #-2016]
+ mov r3, r5, asl #1
+ ldrh r3, [r2, r3]
+ cmp r3, #0
+ beq .L1993
+ bl INSERT_DATA_LIST
+ b .L1992
+.L1993:
+ bl INSERT_FREE_LIST
+.L1992:
+ mov r3, #0
+ strb r3, [r4, #8]
+ ldr r3, .L2002+8
+ cmp r4, r3
+ beq .L1994
+ ldr r2, .L2002
+ movw r3, #3868
+ ldrh r3, [r2, r3]
+ cmp r3, #1
+ beq .L1994
+ ldrb r2, [r2, #928] @ zero_extendqisi2
+ cmp r2, #0
+ beq .L1995
+.L1994:
+ mov r3, #1
+ strb r3, [r4, #8]
+ b .L1996
+.L1995:
+ ldr r2, .L2002+12
+ cmp r4, r2
+ bne .L1996
+ cmp r3, #3
+ ldr r3, .L2002+4
+ beq .L1997
+ ldr r2, [r3, #-1712]
+ cmp r2, #1
+ bne .L1998
+.L1997:
+ mov r2, #1
+ strb r2, [r3, #-1988]
+.L1998:
+ ldr r2, .L2002
+ ldr r2, [r2, #3840]
+ cmp r2, #0
+ beq .L1996
+ ldr r3, [r3, #-1780]
+ cmp r3, #29
+ ldrls r3, .L2002+4
+ movls r2, #1
+ strlsb r2, [r3, #-1988]
+.L1996:
+ ldr r3, .L2002+16
+ ldr r6, .L2002+4
+ ldrh r0, [r6, r3]
+ movw r3, #65535
+ cmp r0, r3
+ beq .L1999
+ cmp r5, r0
+ bne .L2000
+ ldr r2, [r6, #-2016]
+ mov r3, r0, asl #1
+ ldrh r3, [r2, r3]
+ cmp r3, #0
+ beq .L2001
+.L2000:
+ bl update_vpc_list
+.L2001:
+ ldr r3, .L2002+16
+ mvn r2, #0
+ strh r2, [r6, r3] @ movhi
+.L1999:
+ mov r0, r4
+ bl allocate_data_superblock
+ bl l2p_flush
+ mov r0, #0
+ bl FtlEctTblFlush
+ bl FtlVpcTblFlush
+.L1991:
+ mov r0, #0
+ ldmfd sp!, {r4, r5, r6, pc}
+.L2003:
+ .align 2
+.L2002:
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .word .LANCHOR2-1948
+ .word .LANCHOR2-1996
+ .word -1020
+ .fnend
+ .size allocate_new_data_superblock, .-allocate_new_data_superblock
+ .align 2
.global FtlVpcCheckAndModify
.type FtlVpcCheckAndModify, %function
FtlVpcCheckAndModify:
@@ -16372,26 +17642,26 @@ FtlVpcCheckAndModify:
stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r0, r1, r4, r5, r6, r7, r8, lr}
mov r4, #0
- ldr r6, .L1892
- ldr r1, .L1892+4
- ldr r0, .L1892+8
+ ldr r6, .L2011
+ ldr r1, .L2011+4
+ ldr r0, .L2011+8
bl printk
movw r3, #3858
ldrh r2, [r6, r3]
mov r1, #0
- ldr r5, .L1892+12
+ ldr r5, .L2011+12
mov r2, r2, asl #1
ldr r0, [r5, #-916]
bl ftl_memset
- b .L1886
-.L1888:
+ b .L2005
+.L2007:
mov r0, r4
add r1, sp, #4
mov r2, #0
bl log2phys
ldr r0, [sp, #4]
cmn r0, #1
- beq .L1887
+ beq .L2006
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
ldr r3, [r5, #-916]
@@ -16399,42 +17669,42 @@ FtlVpcCheckAndModify:
ldrh r2, [r3, r0]
add r2, r2, #1
strh r2, [r3, r0] @ movhi
-.L1887:
+.L2006:
add r4, r4, #1
-.L1886:
+.L2005:
ldr r3, [r6, #3976]
cmp r4, r3
- bcc .L1888
+ bcc .L2007
mov r4, #0
- ldr r7, .L1892
- ldr r5, .L1892+12
+ ldr r7, .L2011
+ ldr r5, .L2011+12
movw r8, #65535
- b .L1889
-.L1891:
+ b .L2008
+.L2010:
ldr r3, [r5, #-2016]
mov r6, r4, asl #1
ldrh r2, [r3, r6]
ldr r3, [r5, #-916]
ldrh r3, [r3, r6]
cmp r2, r3
- beq .L1890
+ beq .L2009
cmp r2, r8
- beq .L1890
- ldr r0, .L1892+16
+ beq .L2009
+ ldr r0, .L2011+16
mov r1, r4
bl printk
- ldr r3, .L1892+20
+ ldr r3, .L2011+20
ldrh r3, [r5, r3]
cmp r3, r4
- beq .L1890
- ldr r3, .L1892+24
+ beq .L2009
+ ldr r3, .L2011+24
ldrh r3, [r5, r3]
cmp r3, r4
- beq .L1890
- ldr r3, .L1892+28
+ beq .L2009
+ ldr r3, .L2011+28
ldrh r3, [r5, r3]
cmp r3, r4
- beq .L1890
+ beq .L2009
ldr r3, [r5, #-916]
mov r0, r4
ldrh r2, [r3, r6]
@@ -16443,146 +17713,1045 @@ FtlVpcCheckAndModify:
bl update_vpc_list
bl l2p_flush
bl FtlVpcTblFlush
-.L1890:
+.L2009:
add r4, r4, #1
uxth r4, r4
-.L1889:
+.L2008:
mov r3, #3856
ldrh r3, [r7, r3]
cmp r3, r4
- bhi .L1891
+ bhi .L2010
ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
-.L1893:
+.L2012:
.align 2
-.L1892:
+.L2011:
.word .LANCHOR0
- .word .LANCHOR3+15
- .word .LC128
+ .word .LANCHOR3+48
+ .word .LC101
.word .LANCHOR2
- .word .LC129
+ .word .LC147
.word -1996
.word -1900
.word -1948
.fnend
.size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
.align 2
- .global allocate_new_data_superblock
- .type allocate_new_data_superblock, %function
-allocate_new_data_superblock:
+ .global FtlGcFreeTempBlock
+ .type FtlGcFreeTempBlock, %function
+FtlGcFreeTempBlock:
.fnstart
- @ args = 0, pretend = 0, frame = 0
+ @ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1906
- stmfd sp!, {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
- mov r4, r0
- ldr r2, [r3, #-2088]
- ldrh r5, [r0, #0]
+ ldr r3, .L2036
+ stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr}
+ .save {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr}
+ movw r2, #3916
+ ldrh r1, [r3, r2]
+ ldr r2, [r3, #4040]
cmp r2, #0
- bne .L1895
- movw r2, #65535
- cmp r5, r2
- beq .L1896
- ldr r2, [r3, #-2016]
- mov r3, r5, asl #1
- mov r0, r5
+ bne .L2034
+ ldr ip, .L2036+4
+ ldr r3, .L2036+8
+ ldrh r4, [r3, ip]
+ movw ip, #65535
+ cmp r4, ip
+ beq .L2015
+ cmp r0, #0
+ beq .L2016
+ ldr lr, .L2036+12
+ movw r0, #3000
+ ldrh r5, [lr, r0]
+ cmp r5, ip
+ movne r1, #2
+ bne .L2016
+ strh r2, [lr, r0] @ movhi
+ sub r2, r2, #2000
+ ldrh r3, [r3, r2]
+ cmp r3, #17
+ movhi r1, #2
+.L2016:
+ ldr r0, .L2036+16
+ bl FtlGcScanTempBlk
+ cmn r0, #1
+ str r0, [sp, #4]
+ beq .L2017
+ ldr r3, .L2036
+ mov r4, r4, asl #1
+ ldr r3, [r3, #4048]
+ ldrh r2, [r3, r4]
+ cmp r2, #4
+ bls .L2018
+ sub r2, r2, #5
+ mov r0, #1
+ strh r2, [r3, r4] @ movhi
+ bl FtlEctTblFlush
+.L2018:
+ ldr r3, .L2036+8
+ ldr r2, [r3, #-1012]
+ cmp r2, #0
+ bne .L2019
+ ldr r2, [r3, #-1612]
+ ldr r0, [sp, #4]
+ add r2, r2, #1
+ str r2, [r3, #-1612]
+ ubfx r0, r0, #10, #16
+ bl FtlBbmMapBadBlock
+ bl FtlBbmTblFlush
+.L2019:
+ ldr r3, .L2036+8
+ mov r2, #0
+ str r2, [r3, #-1012]
+ b .L2032
+.L2017:
+ ldr r2, .L2036+12
+ movw r3, #3000
+ ldrh r2, [r2, r3]
+ movw r3, #65535
+ cmp r2, r3
+ bne .L2032
+.L2015:
+ ldr r6, .L2036+8
+ movw r3, #65535
+ ldr r5, .L2036+4
+ mov r4, #0
+ str r4, [r6, #-1012]
+ ldrh r2, [r6, r5]
+ cmp r2, r3
+ moveq r0, r4
+ beq .L2014
+ bl FtlCacheWriteBack
+ ldr ip, .L2036
+ movw r0, #3916
+ ldrb r1, [r6, #-1893] @ zero_extendqisi2
+ ldrh r3, [r6, r5]
+ ldrh r0, [ip, r0]
+ ldr r2, [r6, #-2016]
+ ldr sl, .L2036+20
+ mov r3, r3, asl #1
+ mul r1, r0, r1
+ strh r1, [r2, r3] @ movhi
+ ldr r3, [r6, #-1816]
+ ldrh r2, [r6, sl]
+ add r3, r2, r3
+ str r3, [r6, #-1816]
+ b .L2020
+.L2023:
+ mov r7, #12
+ ldr r8, [r6, #-1148]
+ mul r7, r7, r4
+ add r1, sp, #4
+ mov r2, #0
+ add r5, r8, r7
+ ldr r0, [r5, #8]
+ bl log2phys
+ ldr r0, [sp, #4]
+ ldr r3, [r8, r7]
+ cmp r0, r3
+ bne .L2021
+ ubfx r0, r0, #10, #16
+ bl P2V_block_in_plane
+ add r1, r5, #4
+ mov r2, #1
+ mov r7, r0
+ ldr r0, [r5, #8]
+ bl log2phys
+ mov r0, r7
+ b .L2035
+.L2021:
+ ldr r3, [r5, #4]
+ cmp r0, r3
+ beq .L2022
+ ldr r3, .L2036+4
+ ldrh r0, [r6, r3]
+.L2035:
+ bl decrement_vpc_count
+.L2022:
+ add r4, r4, #1
+ uxth r4, r4
+.L2020:
+ ldrh r3, [r6, sl]
+ ldr r5, .L2036+8
+ cmp r3, r4
+ bhi .L2023
+ movw r0, #65535
+ ldr r4, .L2036+4
+ bl decrement_vpc_count
+ ldr r3, .L2036
+ ldrb r3, [r3, #928] @ zero_extendqisi2
+ cmp r3, #0
+ beq .L2024
+ ldr r0, .L2036+24
+ ldrh r1, [r5, r4]
+ bl printk
+.L2024:
+ ldrh r0, [r5, r4]
+ ldr r2, [r5, #-2016]
+ mov r3, r0, asl #1
ldrh r3, [r2, r3]
cmp r3, #0
- beq .L1897
+ beq .L2025
bl INSERT_DATA_LIST
- b .L1896
-.L1897:
+ b .L2026
+.L2025:
bl INSERT_FREE_LIST
-.L1896:
+.L2026:
+ ldr r4, .L2036+8
+ mvn r2, #0
+ ldr r3, .L2036+4
+ strh r2, [r4, r3] @ movhi
mov r3, #0
- strb r3, [r4, #8]
- ldr r3, .L1906+4
+ ldr r2, .L2036+20
+ strh r3, [r4, r2] @ movhi
+ sub r2, r2, #12
+ strh r3, [r4, r2] @ movhi
+ bl l2p_flush
+ bl FtlVpcTblFlush
+ ldr r3, .L2036
+ mov r1, r4
+ ldr r3, [r3, #3840]
+ cmp r3, #0
+ beq .L2027
+ ldr r3, [r4, #-1780]
+ cmp r3, #29
+ bhi .L2027
+ ldr r3, .L2036+28
+ mvn r1, #0
+ ldr r2, .L2036+32
+ ldrh r3, [r4, r3]
+ ldrh r2, [r4, r2]
+ cmp r2, r3
+ movcc r3, r3, asl #1
+ ldrcc r2, .L2036+36
+ strcch r3, [r4, r2] @ movhi
+ ldr r3, .L2036+40
+ ldr r2, .L2036+8
+ strh r1, [r2, r3] @ movhi
+ b .L2034
+.L2027:
+ ldr r2, .L2036+28
+ ldr r0, .L2036+32
+ ldr r3, .L2036+8
+ ldrh r2, [r1, r2]
+ ldrh r1, [r1, r0]
+ add r0, r2, r2, asl #1
+ cmp r1, r0, lsr #2
+ ble .L2034
+ ldr r1, .L2036+40
+ mvn r0, #0
+ strh r0, [r3, r1] @ movhi
+ ldr r1, .L2036
+ ldrb r0, [r1, #928] @ zero_extendqisi2
+ ldr r1, .L2036+36
+ cmp r0, #0
+ subne r2, r2, #2
+ moveq r2, #20
+ strneh r2, [r3, r1] @ movhi
+ streqh r2, [r3, r1] @ movhi
+ beq .L2014
+ b .L2034
+.L2032:
+ mov r0, #1
+ b .L2014
+.L2034:
+ mov r0, #0
+.L2014:
+ ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, sl, pc}
+.L2037:
+ .align 2
+.L2036:
+ .word .LANCHOR0
+ .word -1900
+ .word .LANCHOR2
+ .word .LANCHOR1
+ .word .LANCHOR2-1900
+ .word -1144
+ .word .LC148
+ .word -1776
+ .word -2000
+ .word -1196
+ .word -1760
+ .fnend
+ .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
+ .align 2
+ .type Ftl_gc_temp_data_write_back.part.22, %function
+Ftl_gc_temp_data_write_back.part.22:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r3, r4, r5, r6, r7, lr}
+ .save {r3, r4, r5, r6, r7, lr}
+ mov r2, #0
+ ldr r4, .L2044
+ mov r3, r2
+ mov r5, #0
+ mov r6, #36
+ ldr r0, [r4, #-968]
+ ldr r1, [r4, #-1180]
+ bl FlashProgPages
+ b .L2039
+.L2042:
+ mul r3, r6, r5
+ ldr r1, [r4, #-968]
+ add r2, r1, r3
+ ldr r1, [r1, r3]
+ cmn r1, #1
+ bne .L2040
+ ldr r2, .L2044+4
+ mov lr, #0
+ ldr ip, [r7, #-2016]
+ ldrh r0, [r7, r2]
+ mov r0, r0, asl #1
+ strh lr, [ip, r0] @ movhi
+ strh r1, [r7, r2] @ movhi
+ ldr r2, [r7, #-1612]
+ add r2, r2, #1
+ str r2, [r7, #-1612]
+ ldr r2, [r7, #-968]
+ add r3, r2, r3
+ ldr r0, [r3, #4]
+ ubfx r0, r0, #10, #16
+ bl FtlBbmMapBadBlock
+ bl FtlBbmTblFlush
+ bl FtlGcPageVarInit
+ mov r0, #1
+ ldmfd sp!, {r3, r4, r5, r6, r7, pc}
+.L2040:
+ ldr r3, [r2, #12]
+ add r5, r5, #1
+ ldr r1, [r2, #4]
+ uxth r5, r5
+ ldr r0, [r3, #12]
+ ldr r2, [r3, #8]
+ bl FtlGcUpdatePage
+.L2039:
+ ldr r1, [r4, #-1180]
+ ldr r7, .L2044
+ cmp r5, r1
+ bcc .L2042
+ ldr r0, [r7, #-968]
+ bl FtlGcBufFree
+ ldr r3, .L2044+8
+ mov r0, #0
+ str r0, [r7, #-1180]
+ ldrh r3, [r7, r3]
+ cmp r3, r0
+ ldmnefd sp!, {r3, r4, r5, r6, r7, pc}
+ mov r0, #1
+ bl FtlGcFreeTempBlock
+ mov r0, #1
+ ldmfd sp!, {r3, r4, r5, r6, r7, pc}
+.L2045:
+ .align 2
+.L2044:
+ .word .LANCHOR2
+ .word -1900
+ .word -1896
+ .fnend
+ .size Ftl_gc_temp_data_write_back.part.22, .-Ftl_gc_temp_data_write_back.part.22
+ .align 2
+ .global Ftl_gc_temp_data_write_back
+ .type Ftl_gc_temp_data_write_back, %function
+Ftl_gc_temp_data_write_back:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ @ link register save eliminated.
+ ldr r3, .L2051
+ ldr r2, [r3, #4040]
+ cmp r2, #0
+ bne .L2047
+ ldrb r3, [r3, #928] @ zero_extendqisi2
+ cmp r3, #0
+ beq .L2048
+ ldr r3, .L2051+4
+ ldr r2, [r3, #-1180]
+ tst r2, #1
+ beq .L2048
+ ldr r2, .L2051+8
+ ldrh r3, [r3, r2]
+ cmp r3, #0
+ bne .L2047
+.L2048:
+ b Ftl_gc_temp_data_write_back.part.22
+.L2047:
+ mov r0, #0
+ bx lr
+.L2052:
+ .align 2
+.L2051:
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .word -1896
+ .fnend
+ .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
+ .align 2
+ .global FtlGcPageRecovery
+ .type FtlGcPageRecovery, %function
+FtlGcPageRecovery:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r4, r5, r6, lr}
+ .save {r4, r5, r6, lr}
+ movw r5, #3916
+ ldr r6, .L2055
+ ldr r0, .L2055+4
+ ldr r4, .L2055+8
+ ldrh r1, [r6, r5]
+ bl FtlGcScanTempBlk
+ ldr r3, .L2055+12
+ ldrh r2, [r4, r3]
+ ldrh r3, [r6, r5]
+ cmp r2, r3
+ ldmccfd sp!, {r4, r5, r6, pc}
+ sub r0, r4, #1088
+ bl FtlMapBlkWriteDumpData
+ mov r0, #0
+ bl FtlGcFreeTempBlock
+ mov r3, #0
+ str r3, [r4, #-1012]
+ ldmfd sp!, {r4, r5, r6, pc}
+.L2056:
+ .align 2
+.L2055:
+ .word .LANCHOR0
+ .word .LANCHOR2-1900
+ .word .LANCHOR2
+ .word -1898
+ .fnend
+ .size FtlGcPageRecovery, .-FtlGcPageRecovery
+ .align 2
+ .global FtlPowerLostRecovery
+ .type FtlPowerLostRecovery, %function
+FtlPowerLostRecovery:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r3, r4, r5, lr}
+ .save {r3, r4, r5, lr}
+ mov r4, #0
+ ldr r3, .L2058
+ ldr r5, .L2058+4
+ str r4, [r3, #300]
+ mov r0, r5
+ bl FtlRecoverySuperblock
+ mov r0, r5
+ add r5, r5, #48
+ bl FtlSlcSuperblockCheck
+ mov r0, r5
+ bl FtlRecoverySuperblock
+ mov r0, r5
+ bl FtlSlcSuperblockCheck
+ bl FtlGcPageRecovery
+ movw r0, #65535
+ bl decrement_vpc_count
+ mov r0, r4
+ ldmfd sp!, {r3, r4, r5, pc}
+.L2059:
+ .align 2
+.L2058:
+ .word .LANCHOR2
+ .word .LANCHOR2-1996
+ .fnend
+ .size FtlPowerLostRecovery, .-FtlPowerLostRecovery
+ .align 2
+ .global FtlSysBlkInit
+ .type FtlSysBlkInit, %function
+FtlSysBlkInit:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r3, r4, r5, r6, r7, lr}
+ .save {r3, r4, r5, r6, r7, lr}
+ mov r3, #296
+ ldr r6, .L2071
+ mov r2, #0
+ ldr r4, .L2071+4
+ mvn r5, #0
+ ldr r0, [r6, #3852]
+ strh r2, [r4, r3] @ movhi
+ movw r3, #294
+ strh r5, [r4, r3] @ movhi
+ uxth r0, r0
+ bl FtlFreeSysBlkQueueInit
+ bl FtlScanSysBlk
+ ldr r3, .L2071+8
+ ldrh r2, [r4, r3]
+ movw r3, #65535
+ cmp r2, r3
+ beq .L2061
+ bl FtlLoadSysInfo
+ subs r7, r0, #0
+ bne .L2061
+ bl FtlLoadMapInfo
+ bl FtlLoadVonderInfo
+ bl Ftl_load_ext_data
+ bl FtlLoadEctTbl
+ bl FtlFreeSysBLkSort
+ bl SupperBlkListInit
+ bl FtlPowerLostRecovery
+ mov r0, #1
+ bl FtlUpdateVaildLpn
+ movw r3, #3954
+ ldrh r2, [r6, r3]
+ mov r3, r7
+ ldr r1, [r4, #-1852]
+ b .L2062
+.L2064:
+ add r0, r1, r7
+ add r7, r7, #12
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ blt .L2063
+ add r3, r3, #1
+.L2062:
+ cmp r3, r2
+ blt .L2064
+.L2063:
+ ldr r4, .L2071+4
+ cmp r3, r2
+ ldr r1, .L2071+12
+ ldrh r0, [r4, r1]
+ add r0, r0, #1
+ strh r0, [r4, r1] @ movhi
+ blt .L2065
+ mov r3, #296
+ ldrh r3, [r4, r3]
+ cmp r3, #0
+ beq .L2066
+.L2065:
+ ldr r0, .L2071+16
+ bl FtlSuperblockPowerLostFix
+ ldr r0, .L2071+20
+ bl FtlSuperblockPowerLostFix
+ ldr r3, .L2071+24
+ ldr r1, [r4, #-2016]
+ ldr r2, .L2071+28
+ ldrh r3, [r4, r3]
+ ldrh r0, [r4, r2]
+ mov r3, r3, asl #1
+ ldrh ip, [r1, r3]
+ rsb r0, r0, ip
+ strh r0, [r1, r3] @ movhi
+ ldr r0, .L2071
+ movw r1, #3916
+ ldr r3, .L2071+32
+ ldr lr, [r4, #-2016]
+ ldrh ip, [r0, r1]
+ strh ip, [r4, r3] @ movhi
+ mov r3, #0
+ strh r3, [r4, r2] @ movhi
+ add r2, r2, #44
+ strb r3, [r4, #-1990]
+ ldrh ip, [r4, r2]
+ add r2, r2, #4
+ ldrh r5, [r4, r2]
+ mov ip, ip, asl #1
+ ldrh r6, [lr, ip]
+ rsb r5, r5, r6
+ strh r5, [lr, ip] @ movhi
+ ldrh r0, [r0, r1]
+ ldr r1, .L2071+36
+ strh r3, [r4, r2] @ movhi
+ strb r3, [r4, #-1942]
+ strh r0, [r4, r1] @ movhi
+ ldr r0, .L2071+40
+ bl FtlMapBlkWriteDumpData
+ ldr r0, .L2071+44
+ bl FtlMapBlkWriteDumpData
+ ldr r3, .L2071+48
+ ldrh r2, [r4, r3]
+ add r2, r2, #1
+ strh r2, [r4, r3] @ movhi
+ bl l2p_flush
+ bl FtlVpcTblFlush
+ bl FtlVpcTblFlush
+.L2066:
+ ldr r4, .L2071+4
+ movw r3, #65535
+ ldr r5, .L2071+24
+ ldrh r2, [r4, r5]
+ cmp r2, r3
+ beq .L2067
+ ldr r3, .L2071+28
+ ldrh r3, [r4, r3]
+ cmp r3, #0
+ bne .L2067
+ ldr r3, .L2071+52
+ ldrh r3, [r4, r3]
+ cmp r3, #0
+ bne .L2067
+ bl FtlVpcTblFlush
+ ldrh r0, [r4, r5]
+ bl FtlGcRefreshOpenBlock
+ ldr r3, .L2071+56
+ ldrh r0, [r4, r3]
+ bl FtlGcRefreshOpenBlock
+ ldr r0, .L2071+16
+ bl allocate_new_data_superblock
+ ldr r0, .L2071+20
+ bl allocate_new_data_superblock
+ add r0, r4, #248
+ bl FtlMapBlkWriteDumpData
+.L2067:
+ ldr r3, .L2071+12
+ ldr r2, .L2071+4
+ ldrh r5, [r2, r3]
+ ands r5, r5, #31
+ movne r5, #0
+ bne .L2061
+ bl FtlVpcCheckAndModify
+.L2061:
+ mov r0, r5
+ ldmfd sp!, {r3, r4, r5, r6, r7, pc}
+.L2072:
+ .align 2
+.L2071:
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .word -1772
+ .word -2044
+ .word .LANCHOR2-1996
+ .word .LANCHOR2-1948
+ .word -1996
+ .word -1992
+ .word -1994
+ .word -1946
+ .word .LANCHOR2-1088
+ .word .LANCHOR2+248
+ .word -2042
+ .word -1944
+ .word -1948
+ .fnend
+ .size FtlSysBlkInit, .-FtlSysBlkInit
+ .align 2
+ .type FtlLowFormat.part.26, %function
+FtlLowFormat.part.26:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ mov r6, #3952
+ ldr r5, .L2094
+ mov r1, #0
+ ldr r4, .L2094+4
+ ldrh r2, [r5, r6]
+ ldr r0, [r4, #-900]
+ mov r2, r2, asl #2
+ bl ftl_memset
+ ldrh r2, [r5, r6]
+ mov r1, #0
+ ldr r0, [r4, #-1032]
+ mov r2, r2, asl #2
+ bl ftl_memset
+ ldr r0, [r5, #3852]
+ mov r3, #0
+ str r3, [r4, #-1804]
+ str r3, [r4, #-1800]
+ uxth r0, r0
+ bl FtlFreeSysBlkQueueInit
+ bl FtlLoadBbt
+ cmp r0, #0
+ beq .L2074
+ bl FtlMakeBbt
+.L2074:
+ mov r3, #0
+ ldr ip, .L2094
+ movw r0, #3922
+ ldr r2, .L2094+4
+ ldr r1, .L2094+8
+ b .L2075
+.L2076:
+ ldr lr, [r2, #-944]
+ mvn r4, r3
+ orr r4, r3, r4, asl #16
+ str r4, [lr, r3, asl #2]
+ ldr lr, [r2, #-940]
+ str r1, [lr, r3, asl #2]
+ add r3, r3, #1
+ uxth r3, r3
+.L2075:
+ ldrh lr, [ip, r0]
+ ldr r8, .L2094
+ cmp r3, lr, asl #7
+ blt .L2076
+ mov r3, #3856
+ mov r5, #0
+ ldrh r6, [r8, r3]
+ movw r7, #3858
+ b .L2077
+.L2078:
+ mov r0, r6
+ mov r1, #1
+ bl FtlLowFormatEraseBlock
+ add r6, r6, #1
+ uxth r6, r6
+ add r5, r5, r0
+ uxth r5, r5
+.L2077:
+ ldrh r3, [r8, r7]
+ ldr r4, .L2094
+ cmp r3, r6
+ bhi .L2078
+ movw r3, #3848
+ ldrh r1, [r4, r3]
+ sub r3, r5, #3
+ cmp r3, r1, asl #1
+ blt .L2079
+ mov r0, r5
+ movw r6, #3858
+ bl __aeabi_uidiv
+ ldr r3, [r4, #3948]
+ add r0, r0, r3
+ uxth r0, r0
+ bl FtlSysBlkNumInit
+ ldr r0, [r4, #3852]
+ uxth r0, r0
+ bl FtlFreeSysBlkQueueInit
+ mov r3, #3856
+ ldrh r5, [r4, r3]
+ b .L2080
+.L2081:
+ mov r0, r5
+ mov r1, #1
+ bl FtlLowFormatEraseBlock
+ add r5, r5, #1
+ uxth r5, r5
+.L2080:
+ ldrh r3, [r4, r6]
+ cmp r3, r5
+ bhi .L2081
+.L2079:
+ mov r4, #0
+ ldr r8, .L2094
+ mov r6, r4
+ mov r7, #3856
+ b .L2082
+.L2083:
+ mov r0, r6
+ mov r1, #0
+ bl FtlLowFormatEraseBlock
+ add r6, r6, #1
+ uxth r6, r6
+ add r4, r4, r0
+ uxth r4, r4
+.L2082:
+ ldrh r3, [r8, r7]
+ ldr r5, .L2094
+ cmp r3, r6
+ bhi .L2083
+ movw r3, #3858
+ ldr r8, .L2094+4
+ ldrh r3, [r5, r3]
+ ldr fp, [r5, #3860]
+ ldr r9, .L2094+12
+ str r3, [r8, #-984]
+ movw r3, #3848
+ ldrh r6, [r5, r3]
+ mov r0, fp
+ mov r1, r6
+ bl __aeabi_uidiv
+ ubfx sl, r0, #5, #16
+ mov r7, r0
+ add r3, sl, #36
+ strh r3, [r8, r9] @ movhi
+ mov r3, #24
+ str r0, [r5, #3976]
+ mul r3, r3, r6
cmp r4, r3
- beq .L1898
- ldr r2, .L1906+8
- movw r3, #3868
- ldrh r3, [r2, r3]
+ ble .L2084
+ rsb r0, r4, fp
+ mov r1, r6
+ bl __aeabi_uidiv
+ str r0, [r5, #3976]
+ mov r0, r0, lsr #5
+ add r0, r0, #24
+ strh r0, [r8, r9] @ movhi
+.L2084:
+ ldr r3, .L2094
+ ldr r3, [r3, #3840]
cmp r3, #1
- beq .L1898
- ldrb r2, [r2, #928] @ zero_extendqisi2
- cmp r2, #0
- beq .L1899
-.L1898:
+ bne .L2085
+ mov r0, r4
+ mov r1, r6
+ bl __aeabi_uidiv
+ ldr r8, .L2094+4
+ ldr r5, .L2094+12
+ ldrh r9, [r8, r5]
+ uxtah r0, r9, r0
+ add r9, r9, r0, lsr #2
+ strh r9, [r8, r5] @ movhi
+.L2085:
+ ldr r3, .L2094
+ ldrb r3, [r3, #928] @ zero_extendqisi2
+ cmp r3, #0
+ beq .L2086
+ mov r0, r4
+ mov r1, r6
+ bl __aeabi_uidiv
+ ldr r8, .L2094+4
+ ldr r5, .L2094+12
+ ldrh r9, [r8, r5]
+ uxtah r0, r9, r0
+ add r9, r9, r0, lsr #2
+ strh r9, [r8, r5] @ movhi
+.L2086:
+ ldr r0, .L2094
+ movw r3, #3908
+ ldrh r3, [r0, r3]
+ cmp r3, #0
+ beq .L2087
+ ldr r1, .L2094+4
+ ldr r2, .L2094+12
+ ldrh ip, [r1, r2]
+ add ip, ip, r3, lsr #1
+ strh ip, [r1, r2] @ movhi
+ mul ip, r6, r3
+ cmp ip, r4
+ strgt r7, [r0, #3976]
+ addgt r3, r3, #32
+ addgt sl, sl, r3
+ strgth sl, [r1, r2] @ movhi
+.L2087:
+ ldr r4, .L2094+4
+ ldr r5, .L2094
+ ldr r3, .L2094+12
+ ldr r7, .L2094+16
+ ldr r2, [r5, #3976]
+ ldrh r3, [r4, r3]
+ rsb r3, r3, r2
+ mul r6, r6, r3
+ movw r3, #3916
+ ldrh r3, [r5, r3]
+ str r6, [r4, #216]
+ mul r6, r3, r6
+ movw r3, #3922
+ ldrh r3, [r5, r3]
+ str r6, [r5, #3976]
+ mul r6, r3, r6
+ str r6, [r5, #3956]
+ mvn r6, #0
+ bl FtlBbmTblFlush
+ movw r3, #3858
+ ldrh r2, [r5, r3]
+ mov r1, #0
+ ldr r0, [r4, #-2016]
+ mov r2, r2, asl #1
+ bl ftl_memset
+ ldr r1, .L2094+20
+ mov r3, #0
+ ldr r2, .L2094+24
+ str r3, [r4, #-1844]
+ strh r3, [r4, r1] @ movhi
+ sub r1, r1, #236
+ strb r3, [r4, #-1754]
+ strh r3, [r4, r1] @ movhi
+ mov r1, #255
+ strb r3, [r4, #-1752]
+ strb r3, [r4, #-1990]
+ strh r3, [r4, r7] @ movhi
mov r3, #1
- strb r3, [r4, #8]
- b .L1900
-.L1899:
- ldr r2, .L1906+12
- cmp r4, r2
- bne .L1900
- cmp r3, #3
- ldr r3, .L1906
- beq .L1901
- ldr r2, [r3, #-1712]
- cmp r2, #1
- bne .L1902
-.L1901:
+ strb r3, [r4, #-1988]
+ mov r3, #3856
+ strh r6, [r4, r2] @ movhi
+ ldrh r2, [r5, r3]
+ ldr r0, [r4, #-1840]
+ mov r2, r2, lsr #3
+ bl ftl_memset
+.L2088:
+ ldr r0, .L2094+28
+ bl make_superblock
+ ldrb r3, [r4, #-1989] @ zero_extendqisi2
+ ldr r5, .L2094+4
+ cmp r3, #0
+ ldr r3, .L2094+16
+ bne .L2089
+ ldrh r3, [r4, r7]
+ ldr r2, [r4, #-2016]
+ mov r3, r3, asl #1
+ strh r6, [r2, r3] @ movhi
+ ldrh r3, [r4, r7]
+ add r3, r3, #1
+ strh r3, [r4, r7] @ movhi
+ b .L2088
+.L2089:
+ ldr r2, [r5, #-1804]
+ mvn r7, #0
+ ldr r1, [r5, #-2016]
+ ldr r6, .L2094+32
+ str r2, [r5, #-1984]
+ add r2, r2, #1
+ str r2, [r5, #-1804]
+ ldr r2, .L2094+36
+ ldrh r0, [r5, r2]
+ ldrh r2, [r5, r3]
+ mov r2, r2, asl #1
+ strh r0, [r1, r2] @ movhi
+ mov r2, #0
+ ldr r0, .L2094+40
+ ldrh r3, [r5, r3]
+ strb r2, [r5, #-1942]
+ add r3, r3, #1
+ strh r2, [r5, r0] @ movhi
+ strh r3, [r5, r6] @ movhi
+ mov r3, #1
+ strb r3, [r5, #-1940]
+.L2090:
+ ldr r0, .L2094+44
+ bl make_superblock
+ ldrb r3, [r5, #-1941] @ zero_extendqisi2
+ ldr r4, .L2094+4
+ cmp r3, #0
+ bne .L2091
+ ldrh r3, [r5, r6]
+ ldr r2, [r5, #-2016]
+ mov r3, r3, asl #1
+ strh r7, [r2, r3] @ movhi
+ ldrh r3, [r5, r6]
+ add r3, r3, #1
+ strh r3, [r5, r6] @ movhi
+ b .L2090
+.L2091:
+ ldr r3, [r4, #-1804]
+ mvn r5, #0
+ ldr r2, [r4, #-2016]
+ str r3, [r4, #-1936]
+ add r3, r3, #1
+ str r3, [r4, #-1804]
+ ldr r3, .L2094+48
+ ldrh r1, [r4, r3]
+ sub r3, r3, #4
+ ldrh r3, [r4, r3]
+ mov r3, r3, asl #1
+ strh r1, [r2, r3] @ movhi
+ ldr r3, .L2094+52
+ strh r5, [r4, r3] @ movhi
+ bl FtlFreeSysBlkQueueOut
+ ldr r3, .L2094+56
+ mov r2, #0
+ strh r0, [r4, r3] @ movhi
+ add r3, r3, #2
+ strh r2, [r4, r3] @ movhi
+ add r3, r3, #2
+ ldr r2, [r4, #216]
+ strh r5, [r4, r3] @ movhi
+ add r3, r3, #2
+ strh r2, [r4, r3] @ movhi
+ ldr r3, [r4, #-1804]
+ str r3, [r4, #-1764]
+ add r3, r3, #1
+ str r3, [r4, #-1804]
+ bl FtlVpcTblFlush
+ bl FtlSysBlkInit
+ cmp r0, #0
+ ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+ ldr r3, .L2094+60
mov r2, #1
- strb r2, [r3, #-1988]
-.L1902:
- ldr r2, .L1906+8
- ldr r2, [r2, #3840]
- cmp r2, #0
- beq .L1900
- ldr r3, [r3, #-1780]
- cmp r3, #29
- ldrls r3, .L1906
- movls r2, #1
- strlsb r2, [r3, #-1988]
-.L1900:
- ldr r3, .L1906+16
- ldr r6, .L1906
- ldrh r0, [r6, r3]
+ str r2, [r3, #2996]
+ ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+.L2095:
+ .align 2
+.L2094:
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .word 168778952
+ .word -1776
+ .word -1996
+ .word -1758
+ .word -1760
+ .word .LANCHOR2-1996
+ .word -1948
+ .word -1992
+ .word -1946
+ .word .LANCHOR2-1948
+ .word -1944
+ .word -1900
+ .word -1772
+ .word .LANCHOR1
+ .fnend
+ .size FtlLowFormat.part.26, .-FtlLowFormat.part.26
+ .align 2
+ .global FtlLowFormat
+ .type FtlLowFormat, %function
+FtlLowFormat:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r3, lr}
+ .save {r3, lr}
+ ldr r3, .L2098
+ ldr r3, [r3, #4040]
+ cmp r3, #0
+ bne .L2097
+ bl FtlLowFormat.part.26
+.L2097:
+ mov r0, #0
+ ldmfd sp!, {r3, pc}
+.L2099:
+ .align 2
+.L2098:
+ .word .LANCHOR0
+ .fnend
+ .size FtlLowFormat, .-FtlLowFormat
+ .align 2
+ .global Ftl_get_new_temp_ppa
+ .type Ftl_get_new_temp_ppa, %function
+Ftl_get_new_temp_ppa:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r3, r4, r5, lr}
+ .save {r3, r4, r5, lr}
+ ldr r3, .L2103
+ ldr r5, .L2103+4
+ ldrh r2, [r5, r3]
movw r3, #65535
- cmp r0, r3
- beq .L1903
- cmp r5, r0
- bne .L1904
- ldr r2, [r6, #-2016]
- mov r3, r0, asl #1
- ldrh r3, [r2, r3]
+ cmp r2, r3
+ beq .L2101
+ ldr r3, .L2103+8
+ ldrh r3, [r5, r3]
cmp r3, #0
- beq .L1905
-.L1904:
- bl update_vpc_list
-.L1905:
- ldr r3, .L1906+16
- mvn r2, #0
- strh r2, [r6, r3] @ movhi
-.L1903:
- mov r0, r4
+ bne .L2102
+.L2101:
+ bl FtlCacheWriteBack
+ mov r0, #0
+ bl FtlGcFreeTempBlock
+ ldr r0, .L2103+12
+ mov r4, #0
+ strb r4, [r5, #-1892]
bl allocate_data_superblock
+ ldr r3, .L2103+16
+ strh r4, [r5, r3] @ movhi
+ add r3, r3, #12
+ strh r4, [r5, r3] @ movhi
bl l2p_flush
- mov r0, #0
+ mov r0, r4
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L1895:
- mov r0, #0
- ldmfd sp!, {r4, r5, r6, pc}
-.L1907:
+.L2102:
+ ldr r0, .L2103+12
+ ldmfd sp!, {r3, r4, r5, lr}
+ b get_new_active_ppa
+.L2104:
.align 2
-.L1906:
+.L2103:
+ .word -1900
.word .LANCHOR2
- .word .LANCHOR2-1948
- .word .LANCHOR0
- .word .LANCHOR2-1996
- .word -1020
+ .word -1896
+ .word .LANCHOR2-1900
+ .word -1156
.fnend
- .size allocate_new_data_superblock, .-allocate_new_data_superblock
+ .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
.align 2
- .type ftl_do_gc.part.21, %function
-ftl_do_gc.part.21:
+ .type ftl_do_gc.part.23, %function
+ftl_do_gc.part.23:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2005
+ ldr r3, .L2202
movw ip, #65535
- ldr r2, .L2005+4
+ ldr r2, .L2202+4
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #36
@@ -16591,91 +18760,91 @@ ftl_do_gc.part.21:
str r0, [sp, #16]
ldrh r0, [r3, r2]
cmp r0, ip
- beq .L1909
- ldr r1, .L2005+8
+ beq .L2106
+ ldr r1, .L2202+8
ldrh r4, [r3, r1]
cmp r4, ip
streqh r0, [r3, r1] @ movhi
mvneq r1, #0
streqh r1, [r3, r2] @ movhi
-.L1909:
+.L2106:
ldr r1, [sp, #16]
ldr r2, [r3, #-1192]
cmp r1, #1
add r2, r2, #1
add r2, r2, r1, asl #7
str r2, [r3, #-1192]
- bne .L1910
- ldr r3, .L2005+12
+ bne .L2107
+ ldr r3, .L2202+12
ldr r1, [r3, #3840]
cmp r1, #0
- bne .L1911
+ bne .L2108
ldrb r3, [r3, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L1910
-.L1911:
- ldr r4, .L2005
+ beq .L2107
+.L2108:
+ ldr r4, .L2202
ldr r3, [r4, #-1780]
cmp r3, #29
- bhi .L1910
+ bhi .L2107
mov r3, #432
ldrh r3, [r4, r3]
add r2, r2, r3
str r2, [r4, #-1192]
bl FtlGcReFreshBadBlk
- ldr r3, .L2005+16
+ ldr r3, .L2202+16
movw r2, #65535
ldrh r3, [r4, r3]
cmp r3, r2
- bne .L1910
- ldr r2, .L2005+8
+ bne .L2107
+ ldr r2, .L2202+8
ldrh r2, [r4, r2]
cmp r2, r3
- bne .L1910
+ bne .L2107
ldr r3, [r4, #-1192]
cmp r3, #1024
- bhi .L1912
- ldr r3, .L2005+20
+ bhi .L2109
+ ldr r3, .L2202+20
ldrh r3, [r4, r3]
cmp r3, #63
- bhi .L1910
-.L1912:
- ldr r3, .L2005
+ bhi .L2107
+.L2109:
+ ldr r3, .L2202
mov r2, #432
- ldr r0, .L2005+20
+ ldr r0, .L2202+20
mov r1, #0
strh r1, [r3, r2] @ movhi
ldrh ip, [r3, r0]
- ldr r0, .L2005+24
+ ldr r0, .L2202+24
ldrh r0, [r3, r0]
add r0, r0, #64
cmp ip, r0
- bgt .L1910
+ bgt .L2107
str r1, [r3, #-1192]
ldr r1, [r3, #-1780]
cmp r1, #0
moveq r1, #6
- beq .L2001
+ beq .L2198
cmp r1, #5
- bhi .L1914
+ bhi .L2111
mov r1, #18
-.L2001:
+.L2198:
strh r1, [r3, r2] @ movhi
-.L1914:
+.L2111:
mov r0, #32
movw r7, #65535
bl List_get_gc_head_node
uxth r2, r0
cmp r2, r7
- beq .L1915
- ldr r5, .L2005
- ldr r6, .L2005+28
+ beq .L2112
+ ldr r5, .L2202
+ ldr r6, .L2202+28
ldrh r0, [r5, r6]
cmp r0, #0
moveq r3, #1
streqh r3, [r5, r6] @ movhi
- beq .L1915
- ldr r3, .L2005+12
+ beq .L2112
+ ldr r3, .L2202+12
movw ip, #3918
movw lr, #3848
ldr r9, [r5, #-2016]
@@ -16686,7 +18855,7 @@ ftl_do_gc.part.21:
mul r3, r3, ip
add r3, r3, #1
cmp r1, r3
- bgt .L1915
+ bgt .L2112
add fp, r0, #1
mov r8, #0
str r8, [r5, #-1184]
@@ -16697,10 +18866,10 @@ ftl_do_gc.part.21:
ldr r2, [sp, #8]
uxth r4, r0
cmp r4, r7
- beq .L1915
+ beq .L2112
ldrh r2, [r9, r2]
mov r7, r4, asl #1
- ldr r0, .L2005+32
+ ldr r0, .L2202+32
mov r1, fp
ldrh r3, [r9, r7]
str r2, [sp, #0]
@@ -16708,45 +18877,45 @@ ftl_do_gc.part.21:
bl printk
ldrh r3, [r5, r6]
cmp r3, #40
- bls .L1917
+ bls .L2114
ldr r3, [r5, #-2016]
ldrh r3, [r3, r7]
cmp r3, #32
strhih r8, [r5, r6] @ movhi
-.L1917:
- ldr r2, .L2005
+.L2114:
+ ldr r2, .L2202
mov r3, #432
mov r1, #6
strh r1, [r2, r3] @ movhi
- b .L1919
-.L1915:
+ b .L2116
+.L2112:
bl GetSwlReplaceBlock
movw r3, #65535
cmp r0, r3
mov r4, r0
- bne .L1919
- ldr r2, .L2005
+ bne .L2116
+ ldr r2, .L2202
mov r3, #432
mov r1, #0
strh r1, [r2, r3] @ movhi
-.L1910:
- ldr r5, .L2005
+.L2107:
+ ldr r5, .L2202
movw r4, #65535
- ldr r3, .L2005+16
+ ldr r3, .L2202+16
ldrh r2, [r5, r3]
cmp r2, r4
- bne .L1919
+ bne .L2116
sub r3, r3, #140
ldrh r3, [r5, r3]
cmp r3, r2
movne r4, r2
- bne .L1919
- ldr r2, .L2005+8
+ bne .L2116
+ ldr r2, .L2202+8
ldrh r7, [r5, r2]
cmp r7, r3
movne r4, r3
- bne .L1919
- ldr r8, .L2005+20
+ bne .L2116
+ ldr r8, .L2202+20
ldr r2, [r5, #-1192]
ldrh r3, [r5, r8]
cmp r3, #23
@@ -16754,7 +18923,7 @@ ftl_do_gc.part.21:
movls r3, #5120
cmp r2, r3
movls r4, r7
- bls .L1919
+ bls .L2116
mov r2, #432
mov r3, #0
str r3, [r5, #-1192]
@@ -16763,45 +18932,45 @@ ftl_do_gc.part.21:
bl GetSwlReplaceBlock
cmp r0, r7
mov r4, r0
- bne .L1921
- ldr r3, .L2005+24
+ bne .L2118
+ ldr r3, .L2202+24
ldrh r1, [r5, r8]
ldrh r2, [r5, r3]
cmp r1, r2
movcs r2, #80
strcsh r2, [r5, r3] @ movhi
- bcs .L1931
+ bcs .L2128
mov r0, #64
bl List_get_gc_head_node
uxth r3, r0
cmp r3, r4
- beq .L1931
+ beq .L2128
ldr r2, [r5, #-1000]
cmp r2, #0
- bne .L1924
- ldr r2, .L2005+12
+ bne .L2121
+ ldr r2, .L2202+12
movw r1, #3868
ldrh r1, [r2, r1]
cmp r1, #3
- beq .L1924
+ beq .L2121
ldr r1, [r5, #-1712]
cmp r1, #0
- bne .L1924
+ bne .L2121
ldr r1, [r2, #3840]
cmp r1, #0
- bne .L1924
+ bne .L2121
ldrb r0, [r2, #928] @ zero_extendqisi2
cmp r0, #0
- beq .L1925
-.L1924:
- ldr r1, .L2005
+ beq .L2122
+.L2121:
+ ldr r1, .L2202
mov r3, r3, asl #1
movw ip, #3848
movw lr, #3868
ldr r2, [r1, #-2016]
ldrh r0, [r2, r3]
movw r2, #3918
- ldr r3, .L2005+12
+ ldr r3, .L2202+12
ldrh r2, [r3, r2]
ldrh ip, [r3, ip]
ldrh r3, [r3, lr]
@@ -16811,139 +18980,140 @@ ftl_do_gc.part.21:
movne r3, #0
add r3, ip, r3
cmp r0, r3
- bgt .L1927
+ bgt .L2124
mov r0, #0
bl List_get_gc_head_node
- ldr r2, .L2005+12
- ldr r3, .L2005
+ ldr r2, .L2202+12
+ ldr r3, .L2202
ldr r2, [r2, #3976]
ldr r1, [r3, #-1844]
add r2, r2, r2, asl #1
cmp r1, r2, lsr #2
- ldr r2, .L2005+24
+ ldr r2, .L2202+24
movhi r1, #128
movls r1, #160
strh r1, [r3, r2] @ movhi
uxth r4, r0
- b .L1929
-.L1927:
- ldr r3, .L2005+24
+ b .L2126
+.L2124:
+ ldr r3, .L2202+24
mov r2, #128
strh r2, [r1, r3] @ movhi
- b .L1931
-.L1925:
+ b .L2128
+.L2122:
ldr r2, [r5, #-2016]
mov r3, r3, asl #1
- ldr r6, .L2005
- ldr r5, .L2005+24
+ ldr r6, .L2202
+ ldr r5, .L2202+24
ldrh r3, [r2, r3]
cmp r3, #7
movhi r3, #64
strhih r3, [r6, r5] @ movhi
- bhi .L1931
+ bhi .L2128
bl List_get_gc_head_node
mov r3, #128
strh r3, [r6, r5] @ movhi
uxth r4, r0
-.L1929:
+.L2126:
movw r3, #65535
cmp r4, r3
- beq .L1931
-.L1921:
- ldr r1, .L2005
+ beq .L2128
+.L2118:
+ ldr r1, .L2202
mov r0, r4, asl #1
- ldr r3, .L2005+20
- ldr ip, [r1, #-2080]
+ ldr r3, .L2202+20
+ ldr ip, .L2202+12
ldrh r2, [r1, r3]
+ ldr ip, [ip, #4048]
ldr r3, [r1, #-2016]
ldrh r3, [r3, r0]
ldrh r0, [ip, r0]
str r0, [sp, #0]
- ldr r0, .L2005+36
+ ldr r0, .L2202+36
ldrh r1, [r1, r0]
- ldr r0, .L2005+40
+ ldr r0, .L2202+40
str r1, [sp, #4]
mov r1, r4
bl printk
-.L1931:
+.L2128:
bl FtlGcReFreshBadBlk
-.L1919:
+.L2116:
movw r0, #65535
rsb ip, r0, r4
rsbs r1, ip, #0
ldr r3, [sp, #16]
adc r1, r1, ip
- ldr r5, .L2005
+ ldr r5, .L2202
cmp r3, #0
movne r2, #0
andeq r2, r1, #1
cmp r2, #0
- beq .L1932
- ldr r3, .L2005+20
+ beq .L2129
+ ldr r3, .L2202+20
ldrh r2, [r5, r3]
cmp r2, #24
movhi r6, #1
- bhi .L1933
- ldr r1, .L2005+12
+ bhi .L2130
+ ldr r1, .L2202+12
movw r3, #3916
cmp r2, #16
ldrh r6, [r1, r3]
movhi r6, r6, lsr #5
- bhi .L1933
+ bhi .L2130
cmp r2, #12
movhi r6, r6, lsr #4
- bhi .L1933
+ bhi .L2130
cmp r2, #8
movhi r6, r6, lsr #2
-.L1933:
- ldr r1, .L2005+36
- ldr r3, .L2005
+.L2130:
+ ldr r1, .L2202+36
+ ldr r3, .L2202
ldrh r0, [r5, r1]
cmp r0, r2
mov r0, r1
- bcs .L1937
- ldr r2, .L2005+44
+ bcs .L2134
+ ldr r2, .L2202+44
movw ip, #65535
ldrh r2, [r3, r2]
cmp r2, ip
- bne .L1938
- ldr ip, .L2005+8
+ bne .L2135
+ ldr ip, .L2202+8
ldrh ip, [r3, ip]
cmp ip, r2
- bne .L1938
+ bne .L2135
mov r2, #432
ldrh r0, [r3, r2]
cmp r0, #0
- bne .L1939
- ldr r2, .L2005+12
+ bne .L2136
+ ldr r2, .L2202+12
ldr ip, [r3, #-1844]
ldr r2, [r2, #3976]
add r2, r2, r2, asl #1
cmp ip, r2, lsr #2
movcs r2, #18
- bcs .L2003
-.L1939:
- ldr r3, .L2005
- ldr r2, .L2005+48
- ldr r1, .L2005+36
+ bcs .L2200
+.L2136:
+ ldr r3, .L2202
+ ldr r2, .L2202+48
+ ldr r1, .L2202+36
ldrh r2, [r3, r2]
add r2, r2, r2, asl #1
mov r2, r2, asr #2
-.L2003:
+.L2200:
strh r2, [r3, r1] @ movhi
mov r2, #0
- ldr r3, .L2005
+ ldr r3, .L2202
str r2, [r3, #-1184]
- b .L1942
-.L1938:
- ldr r3, .L2005
- ldr r2, .L2005+48
+ b .L2139
+.L2135:
+ ldr r3, .L2202
+ ldr r2, .L2202+48
ldrh r2, [r3, r2]
add r2, r2, r2, asl #1
mov r2, r2, asr #2
strh r2, [r3, r0] @ movhi
-.L1937:
- ldr r3, .L2005+12
+.L2134:
+ ldr r3, .L2202+12
cmp sl, #2
movw r4, #65535
movhi sl, #0
@@ -16954,68 +19124,68 @@ ftl_do_gc.part.21:
cmp sl, #0
addne r6, r6, #1
uxthne r6, r6
- b .L1943
-.L1932:
- ldr r3, .L2005+44
+ b .L2140
+.L2129:
+ ldr r3, .L2202+44
ldrh r3, [r5, r3]
cmp r3, r0
- bne .L1944
- ldr r0, .L2005+8
+ bne .L2141
+ ldr r0, .L2202+8
ldrh r0, [r5, r0]
cmp r0, r3
movne r1, #0
andeq r1, r1, #1
cmp r1, #0
- beq .L1944
- ldr r1, .L2005+16
+ beq .L2141
+ ldr r1, .L2202+16
ldrh r4, [r5, r1]
cmp r4, r3
movne r4, r3
- bne .L1944
- ldr r3, .L2005+20
+ bne .L2141
+ ldr r3, .L2202+20
mov r6, #432
str r2, [r5, #-1184]
ldrh r7, [r5, r3]
add r3, r3, #804
ldrh r2, [r5, r3]
cmp r2, r7
- bcs .L1945
+ bcs .L2142
ldrh r2, [r5, r6]
cmp r2, #0
- bne .L1946
- ldr r2, .L2005+12
+ bne .L2143
+ ldr r2, .L2202+12
ldr r1, [r5, #-1844]
ldr r2, [r2, #3976]
add r2, r2, r2, asl #1
cmp r1, r2, lsr #2
movcs r2, #18
strcsh r2, [r5, r3] @ movhi
- bcs .L1948
-.L1946:
- ldr r3, .L2005
- ldr r2, .L2005+48
- ldr r1, .L2005+36
+ bcs .L2145
+.L2143:
+ ldr r3, .L2202
+ ldr r2, .L2202+48
+ ldr r1, .L2202+36
ldrh r2, [r3, r2]
add r2, r2, r2, asl #1
mov r2, r2, asr #2
strh r2, [r3, r1] @ movhi
-.L1948:
+.L2145:
bl FtlReadRefresh
mov r3, #432
- ldr r2, .L2005
- b .L2004
-.L1945:
+ ldr r2, .L2202
+ b .L2201
+.L2142:
ldrh r0, [r5, r6]
cmp r0, #0
- bne .L1944
- ldr r2, .L2005+48
+ bne .L2141
+ ldr r2, .L2202+48
ldrh r4, [r5, r2]
add r2, r4, r4, asl #1
mov r2, r2, asr #2
strh r2, [r5, r3] @ movhi
bl List_get_gc_head_node
ldr r3, [r5, #-2016]
- ldr r1, .L2005+12
+ ldr r1, .L2202+12
movw r2, #3918
ldrh r2, [r1, r2]
uxth r0, r0
@@ -17026,88 +19196,88 @@ ftl_do_gc.part.21:
mul r2, r1, r2
add r2, r2, r2, lsr #31
cmp r3, r2, asr #1
- ble .L1949
+ ble .L2146
sub r4, r4, #1
cmp r7, r4
- blt .L1949
+ blt .L2146
bl FtlReadRefresh
ldrh r0, [r5, r6]
- b .L1942
-.L1949:
+ b .L2139
+.L2146:
cmp r3, #0
movwne r4, #65535
- bne .L1944
+ bne .L2141
movw r0, #65535
bl decrement_vpc_count
- ldr r3, .L2005+20
- ldr r2, .L2005
+ ldr r3, .L2202+20
+ ldr r2, .L2202
ldrh r0, [r2, r3]
add r0, r0, #1
- b .L1942
-.L1944:
- ldr r3, .L2005+12
+ b .L2139
+.L2141:
+ ldr r3, .L2202+12
ldr r6, [r3, #3840]
cmp r6, #0
movne r6, #2
moveq r6, #1
-.L1943:
- ldr r3, .L2005
+.L2140:
+ ldr r3, .L2202
movw r0, #65535
- ldr r2, .L2005+16
+ ldr r2, .L2202+16
ldrh r1, [r3, r2]
cmp r1, r0
- bne .L1950
+ bne .L2147
cmp r4, r1
strneh r4, [r3, r2] @ movhi
- bne .L1952
- ldr r2, .L2005+8
+ bne .L2149
+ ldr r2, .L2202+8
ldrh r1, [r3, r2]
cmp r1, r4
- beq .L1952
+ beq .L2149
ldr r0, [r3, #-2016]
mov r1, r1, asl #1
ldrh r1, [r0, r1]
cmp r1, #0
mvneq r1, #0
streqh r1, [r3, r2] @ movhi
- ldr r3, .L2005
- ldr r1, .L2005+16
+ ldr r3, .L2202
+ ldr r1, .L2202+16
ldrh r0, [r3, r2]
strh r0, [r3, r1] @ movhi
mvn r1, #0
strh r1, [r3, r2] @ movhi
-.L1952:
- ldr r5, .L2005
+.L2149:
+ ldr r5, .L2202
mov r3, #0
- ldr r7, .L2005+16
+ ldr r7, .L2202+16
strb r3, [r5, #-1752]
movw r3, #65535
ldrh r0, [r5, r7]
cmp r0, r3
- beq .L1950
+ beq .L2147
bl IsBlkInGcList
cmp r0, #0
mvnne r3, #0
strneh r3, [r5, r7] @ movhi
- ldr r3, .L2005+12
- ldr r7, .L2005
+ ldr r3, .L2202+12
+ ldr r7, .L2202
ldrb r3, [r3, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L1955
- ldr r3, .L2005+16
+ beq .L2152
+ ldr r3, .L2202+16
ldrh r0, [r7, r3]
bl ftl_get_blk_mode
strb r0, [r7, #-1752]
-.L1955:
- ldr r8, .L2005+16
+.L2152:
+ ldr r8, .L2202+16
movw r3, #65535
- ldr r5, .L2005
+ ldr r5, .L2202
ldrh r2, [r7, r8]
cmp r2, r3
- beq .L1950
+ beq .L2147
add r0, r5, r8
bl make_superblock
- ldr r1, .L2005+52
+ ldr r1, .L2202+52
movw r2, #434
mov r3, #0
strh r3, [r5, r2] @ movhi
@@ -17119,63 +19289,63 @@ ftl_do_gc.part.21:
ldrh r2, [r2, r3]
mov r3, #436
strh r2, [r5, r3] @ movhi
-.L1950:
- ldr r3, .L2005
- ldr r2, .L2005+16
+.L2147:
+ ldr r3, .L2202
+ ldr r2, .L2202+16
ldrh r1, [r3, r2]
sub r2, r2, #236
ldrh r2, [r3, r2]
cmp r2, r1
mov r2, r3
- beq .L1956
- ldr r0, .L2005+56
+ beq .L2153
+ ldr r0, .L2202+56
ldrh r3, [r3, r0]
cmp r3, r1
movne fp, r4
- bne .L2000
-.L1957:
-.L1956:
- ldr r3, .L2005+16
+ bne .L2197
+.L2154:
+.L2153:
+ ldr r3, .L2202+16
mvn r1, #0
strh r1, [r2, r3] @ movhi
mov r3, #432
-.L2004:
+.L2201:
ldrh r0, [r2, r3]
- b .L1942
-.L2000:
- ldr r4, .L2005
+ b .L2139
+.L2197:
+ ldr r4, .L2202
movw sl, #65535
- ldr r3, .L2005+16
+ ldr r3, .L2202+16
ldrh r3, [r4, r3]
cmp r3, sl
- bne .L1959
- ldr r5, .L2005+28
+ bne .L2156
+ ldr r5, .L2202+28
mov r3, #0
str r3, [r4, #-1184]
-.L1999:
+.L2196:
ldrh r8, [r4, r5]
mov r0, r8
bl List_get_gc_head_node
- ldr r3, .L2005+16
+ ldr r3, .L2202+16
movw r1, #65535
uxth r7, r0
strh r7, [r4, r3] @ movhi
cmp r7, r1
- bne .L1961
- ldr r2, .L2005
+ bne .L2158
+ ldr r2, .L2202
add r3, r3, #572
mov r1, #0
mov r0, #8
strh r1, [r2, r3] @ movhi
- b .L1942
-.L1961:
+ b .L2139
+.L2158:
mov r0, r7
bl IsBlkInGcList
cmp r0, #0
add r0, r8, #1
strneh r0, [r4, r5] @ movhi
- bne .L1999
- ldr ip, .L2005+12
+ bne .L2196
+ ldr ip, .L2202+12
movw r8, #3916
movw sl, #3848
ldr r2, [r4, #-2016]
@@ -17188,28 +19358,28 @@ ftl_do_gc.part.21:
mul r8, ip, r8
add ip, r8, r8, lsr #31
cmp r1, ip, asr #1
- bgt .L1964
+ bgt .L2161
cmp r0, #48
- bls .L1965
+ bls .L2162
cmp r1, #8
- bls .L1965
- ldr r1, .L2005+60
+ bls .L2162
+ ldr r1, .L2202+60
ldrh r1, [r4, r1]
cmp r1, #35
- bhi .L1965
-.L1964:
+ bhi .L2162
+.L2161:
mov r1, #0
strh r1, [r4, r5] @ movhi
-.L1965:
+.L2162:
ldrh r3, [r2, r3]
movw r2, #65535
- ldr sl, .L2005
+ ldr sl, .L2202
cmp r3, r8
cmpge fp, r2
movne r8, #0
moveq r8, #1
- bne .L1966
- ldr r3, .L2005+16
+ bne .L2163
+ ldr r3, .L2202+16
mvn r2, #0
strh r2, [sl, r3] @ movhi
add r3, r3, #572
@@ -17217,33 +19387,33 @@ ftl_do_gc.part.21:
strh r2, [sl, r3] @ movhi
mov r3, #432
ldrh r0, [sl, r3]
- b .L1942
-.L1966:
+ b .L2139
+.L2163:
cmp r3, #0
- bne .L1967
+ bne .L2164
movw r0, #65535
bl decrement_vpc_count
ldrh r3, [r4, r5]
add r3, r3, #1
strh r3, [r4, r5] @ movhi
- b .L1999
-.L1967:
- ldr r3, .L2005+12
+ b .L2196
+.L2164:
+ ldr r3, .L2202+12
strb r8, [sl, #-1752]
ldrb r3, [r3, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L1968
+ beq .L2165
mov r0, r7
bl ftl_get_blk_mode
strb r0, [sl, #-1752]
-.L1968:
- ldr r4, .L2005
+.L2165:
+ ldr r4, .L2202
sub r0, r4, #1760
bl make_superblock
movw r1, #434
mov r3, #0
strh r3, [r4, r1] @ movhi
- ldr r1, .L2005+16
+ ldr r1, .L2202+16
ldr r0, [r4, #-2016]
ldrh r1, [r4, r1]
mov r1, r1, asl #1
@@ -17251,40 +19421,40 @@ ftl_do_gc.part.21:
mov r1, #436
strb r3, [r4, #-1754]
strh r0, [r4, r1] @ movhi
- ldr r1, .L2005+52
+ ldr r1, .L2202+52
strh r3, [r4, r1] @ movhi
-.L1959:
+.L2156:
ldr sl, [sp, #16]
cmp sl, #1
- bne .L1969
+ bne .L2166
bl FtlReadRefresh
-.L1969:
- ldr r3, .L2005
+.L2166:
+ ldr r3, .L2202
mov r2, #1
movw r1, #3916
str r2, [r3, #-996]
- ldr r2, .L2005+12
+ ldr r2, .L2202+12
ldrh r9, [r2, r1]
ldrb r1, [r2, #928] @ zero_extendqisi2
cmp r1, #0
- beq .L1970
+ beq .L2167
ldrb r1, [r3, #-1752] @ zero_extendqisi2
cmp r1, #1
movweq r1, #3918
ldreqh r9, [r2, r1]
-.L1970:
- ldr r2, .L2005+52
+.L2167:
+ ldr r2, .L2202+52
mov r8, #0
str fp, [sp, #20]
mov fp, r9
- ldr r4, .L2005
+ ldr r4, .L2202
ldrh r3, [r3, r2]
add r2, r3, r6
cmp r2, r9
rsbgt r6, r3, r9
uxthgt r6, r6
- b .L1972
-.L1974:
+ b .L2169
+.L2171:
ldrh r1, [r2, #2]!
movw sl, #65535
add r3, r3, #1
@@ -17295,9 +19465,9 @@ ftl_do_gc.part.21:
addne r7, r7, #1
uxthne r7, r7
strne r1, [sl, #4]
-.L1980:
+.L2177:
cmp r3, r5
- bne .L1974
+ bne .L2171
ldr r0, [r4, #-1164]
mov r1, r7
ldrb r2, [r4, #-1752] @ zero_extendqisi2
@@ -17305,18 +19475,18 @@ ftl_do_gc.part.21:
bl FlashReadPages
mov r9, r5
mov sl, r6
- b .L1975
-.L1978:
+ b .L2172
+.L2175:
ldr r3, [r4, #-1164]
add r2, r3, r5
ldr r3, [r3, r5]
ldr r6, [r2, #12]
cmn r3, #1
- beq .L1976
+ beq .L2173
ldrh r3, [r6, #0]
movw r1, #61589
cmp r3, r1
- bne .L1976
+ bne .L2173
add r1, sp, #28
mov r2, #0
ldr r0, [r6, #8]
@@ -17327,7 +19497,7 @@ ftl_do_gc.part.21:
bic r2, r2, #-2147483648
ldr r3, [r1, #4]
cmp r2, r3
- bne .L1976
+ bne .L2173
movw r3, #434
ldr r0, [r4, #-1180]
ldrh r2, [r4, r3]
@@ -17356,7 +19526,7 @@ ftl_do_gc.part.21:
str r2, [r3, #12]
ldr r3, [sp, #28]
str r3, [r6, #12]
- ldr r3, .L2005+44
+ ldr r3, .L2202+44
ldrh r3, [r4, r3]
strh r3, [r6, #2] @ movhi
ldr r3, [r4, #-1800]
@@ -17367,42 +19537,42 @@ ftl_do_gc.part.21:
add r3, r3, #1
str r3, [r4, #-1180]
bl FtlGcBufAlloc
- ldr r3, .L2005+12
+ ldr r3, .L2202+12
ldrb r3, [r3, #928] @ zero_extendqisi2
cmp r3, #0
- bne .L1977
+ bne .L2174
ldrb r3, [r4, #-1893] @ zero_extendqisi2
ldr r2, [r4, #-1180]
cmp r2, r3
- beq .L1977
- ldr r3, .L2005+64
+ beq .L2174
+ ldr r3, .L2202+64
ldrh r3, [r4, r3]
cmp r3, #0
- bne .L1976
-.L1977:
+ bne .L2173
+.L2174:
bl Ftl_gc_temp_data_write_back
cmp r0, #0
- ldrne r3, .L2005
+ ldrne r3, .L2202
movne r2, #0
strne r2, [r3, #-996]
movne r2, #432
- bne .L2004
-.L1976:
+ bne .L2201
+.L2173:
add r9, r9, #1
add r5, r5, #36
uxth r9, r9
-.L1975:
+.L2172:
cmp r9, r7
- bne .L1978
+ bne .L2175
add r8, r8, #1
mov r6, sl
-.L1972:
+.L2169:
uxth r3, r8
- ldr r7, .L2005
+ ldr r7, .L2202
cmp r3, r6
- ldr r3, .L2005+52
- bcs .L1979
- ldr r1, .L2005+12
+ ldr r3, .L2202+52
+ bcs .L2176
+ ldr r1, .L2202+12
movw r2, #3848
ldrh ip, [r4, r3]
mov r7, #0
@@ -17410,10 +19580,10 @@ ftl_do_gc.part.21:
mov r3, r7
ldrh r5, [r1, r2]
add ip, ip, r8
- ldr r2, .L2005+68
+ ldr r2, .L2202+68
mov r0, #36
- b .L1980
-.L1979:
+ b .L2177
+.L2176:
ldrh r2, [r7, r3]
mov r9, fp
ldr fp, [sp, #20]
@@ -17421,63 +19591,63 @@ ftl_do_gc.part.21:
uxth r6, r6
strh r6, [r7, r3] @ movhi
cmp r6, r9
- bcc .L1981
+ bcc .L2178
ldr r3, [r7, #-1180]
cmp r3, #0
- beq .L1982
+ beq .L2179
bl Ftl_gc_temp_data_write_back
cmp r0, #0
movne r3, #0
strne r3, [r7, #-996]
movne r3, #432
ldrneh r0, [r7, r3]
- bne .L1942
-.L1982:
- ldr r3, .L2005
+ bne .L2139
+.L2179:
+ ldr r3, .L2202
movw r2, #434
ldrh ip, [r3, r2]
cmp ip, #0
- bne .L1983
- ldr r2, .L2005+16
+ bne .L2180
+ ldr r2, .L2202+16
ldr r0, [r3, #-2016]
ldrh r1, [r3, r2]
mov r1, r1, asl #1
ldrh r4, [r0, r1]
cmp r4, #0
- beq .L1983
+ beq .L2180
strh ip, [r0, r1] @ movhi
ldrh r0, [r3, r2]
bl update_vpc_list
bl FtlCacheWriteBack
bl l2p_flush
bl FtlVpcTblFlush
-.L1983:
- ldr r3, .L2005+16
+.L2180:
+ ldr r3, .L2202+16
mvn r1, #0
- ldr r2, .L2005
+ ldr r2, .L2202
strh r1, [r2, r3] @ movhi
-.L1981:
- ldr r3, .L2005
- ldr r2, .L2005+20
+.L2178:
+ ldr r3, .L2202
+ ldr r2, .L2202+20
ldrh r2, [r3, r2]
cmp r2, #2
- ldrls r2, .L2005+12
+ ldrls r2, .L2202+12
movwls r3, #3916
ldrlsh r6, [r2, r3]
- bls .L2000
-.L1984:
+ bls .L2197
+.L2181:
mov r1, #0
str r1, [r3, #-996]
mov r1, #432
ldrh r0, [r3, r1]
cmp r0, #0
addeq r0, r2, #1
-.L1942:
+.L2139:
add sp, sp, #36
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2006:
+.L2203:
.align 2
-.L2005:
+.L2202:
.word .LANCHOR2
.word -1140
.word -1142
@@ -17486,9 +19656,9 @@ ftl_do_gc.part.21:
.word -2000
.word -1194
.word -1188
- .word .LC130
+ .word .LC149
.word -1196
- .word .LC131
+ .word .LC150
.word -1900
.word -1776
.word -1758
@@ -17497,7 +19667,7 @@ ftl_do_gc.part.21:
.word -1896
.word .LANCHOR2-1746
.fnend
- .size ftl_do_gc.part.21, .-ftl_do_gc.part.21
+ .size ftl_do_gc.part.23, .-ftl_do_gc.part.23
.align 2
.global ftl_do_gc
.type ftl_do_gc, %function
@@ -17508,45 +19678,47 @@ ftl_do_gc:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r4, r0
- ldr r3, .L2014
+ ldr r3, .L2211
mov r5, r1
- ldr r0, [r3, #-2088]
+ ldr r0, [r3, #4040]
cmp r0, #0
movne r0, #0
ldmnefd sp!, {r3, r4, r5, pc}
+ ldr r3, .L2211+4
ldr r2, [r3, #-996]
cmp r2, #0
ldmnefd sp!, {r3, r4, r5, pc}
- ldr r1, .L2014+4
+ ldr r1, .L2211+8
ldrh r1, [r3, r1]
cmp r1, #47
movls r0, r2
ldmlsfd sp!, {r3, r4, r5, pc}
- ldr r1, .L2014+8
+ ldr r1, .L2211+12
movw r2, #3000
ldrh r1, [r1, r2]
movw r2, #65535
cmp r1, r2
- beq .L2009
- ldr r1, .L2014+12
+ beq .L2206
+ ldr r1, .L2211+16
ldrh r3, [r3, r1]
cmp r3, r2
- beq .L2009
+ beq .L2206
mov r0, #1
bl FtlGcFreeTempBlock
cmp r0, #0
- bne .L2013
-.L2009:
+ bne .L2210
+.L2206:
mov r0, r4
mov r1, r5
ldmfd sp!, {r3, r4, r5, lr}
- b ftl_do_gc.part.21
-.L2013:
+ b ftl_do_gc.part.23
+.L2210:
mov r0, #1
ldmfd sp!, {r3, r4, r5, pc}
-.L2015:
+.L2212:
.align 2
-.L2014:
+.L2211:
+ .word .LANCHOR0
.word .LANCHOR2
.word -2008
.word .LANCHOR1
@@ -17560,40 +19732,40 @@ FtlCacheWriteBack:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2038
+ ldr r3, .L2236
stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
.save {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
ldr r4, [r3, #440]
- ldr r3, [r3, #-2088]
- cmp r3, #0
- bne .L2017
- ldr r3, .L2038+4
+ ldr r3, .L2236+4
+ ldr r2, [r3, #4040]
+ cmp r2, #0
+ bne .L2214
ldr r1, [r3, #3968]
cmp r1, #0
- beq .L2017
+ beq .L2214
ldrb r8, [r3, #928] @ zero_extendqisi2
cmp r8, #0
- beq .L2018
+ beq .L2215
ldrb r8, [r4, #8] @ zero_extendqisi2
sub lr, r8, #1
rsbs r8, lr, #0
adc r8, r8, lr
-.L2018:
- ldr r0, [r3, #3972]
+.L2215:
+ ldr r5, .L2236+4
mov r2, r8
ldrb r3, [r4, #9] @ zero_extendqisi2
- mov r5, #0
+ mov r6, #0
+ mov r7, r6
+ ldr r9, .L2236
+ ldr r0, [r5, #3972]
bl FlashProgPages
- mov r7, r5
- ldr r6, .L2038+4
- ldr r9, .L2038
- b .L2019
-.L2024:
- ldr r2, [r6, #3972]
- add r3, r2, r5
- ldr r2, [r2, r5]
+ b .L2216
+.L2221:
+ ldr r2, [r5, #3972]
+ add r3, r2, r6
+ ldr r2, [r2, r6]
cmn r2, #1
- beq .L2037
+ beq .L2235
ldr r2, [r3, #4]
cmp r8, #0
ldr r0, [r3, #16]
@@ -17603,12 +19775,12 @@ FtlCacheWriteBack:
strne r2, [sp, #4]
mov r2, #1
bl log2phys
- ldr r3, [r6, #3972]
- add r3, r3, r5
+ ldr r3, [r5, #3972]
+ add r3, r3, r6
ldr r3, [r3, #12]
ldr r0, [r3, #12]
cmn r0, #1
- beq .L2022
+ beq .L2219
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
ldr r2, [r9, #-2016]
@@ -17616,57 +19788,58 @@ FtlCacheWriteBack:
mov sl, r0
ldrh r2, [r2, r3]
cmp r2, #0
- bne .L2023
- ldr r0, .L2038+8
+ bne .L2220
+ ldr r0, .L2236+8
mov r1, sl
bl printk
-.L2023:
+.L2220:
mov r0, sl
bl decrement_vpc_count
-.L2022:
+.L2219:
add r7, r7, #1
- add r5, r5, #36
-.L2019:
- ldr r3, [r6, #3968]
+ add r6, r6, #36
+.L2216:
+ ldr r3, [r5, #3968]
cmp r7, r3
- bcc .L2024
- b .L2025
-.L2033:
- ldr r3, [r6, #3972]
+ bcc .L2221
+ b .L2222
+.L2231:
+ ldr r3, [r5, #3972]
mvn r2, #0
- movw sl, #3916
- str r2, [r3, r5]
- b .L2026
-.L2029:
+ ldr r7, .L2236
+ str r2, [r3, r6]
+ b .L2223
+.L2227:
ldr r0, [r3, #4]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
ldrh r3, [r4, #0]
cmp r3, r0
- bne .L2027
+ bne .L2224
ldr r2, [r7, #-2016]
mov r3, r3, asl #1
ldrh r1, [r4, #4]
ldrh r0, [r2, r3]
rsb r1, r1, r0
strh r1, [r2, r3] @ movhi
- ldrh r3, [r6, sl]
+ movw r3, #3916
+ ldrh r3, [r5, r3]
strh r3, [r4, #2] @ movhi
mov r3, #0
strb r3, [r4, #6]
strh r3, [r4, #4] @ movhi
-.L2027:
+.L2224:
ldrh r3, [r4, #4]
cmp r3, #0
- bne .L2028
+ bne .L2225
mov r0, r4
bl allocate_new_data_superblock
-.L2028:
+.L2225:
ldr r3, [r7, #-1612]
add r3, r3, #1
str r3, [r7, #-1612]
- ldr r3, [r6, #3972]
- add r3, r3, r5
+ ldr r3, [r5, #3972]
+ add r3, r3, r6
ldr r0, [r3, #4]
ubfx r0, r0, #10, #16
bl FtlGcMarkBadPhyBlk
@@ -17676,20 +19849,25 @@ FtlCacheWriteBack:
mov r2, r8
mov r3, r0
str r0, [sp, #4]
- ldr r0, [r6, #3972]
- add r0, r0, r5
+ ldr r0, [r5, #3972]
+ add r0, r0, r6
str r3, [r0, #4]
ldrb r3, [r4, #9] @ zero_extendqisi2
bl FlashProgPages
- ldr r3, [r7, #-2088]
+ ldr r3, [r5, #3972]
+ ldr r3, [r3, r6]
+ cmn r3, #1
+ moveq r3, #1
+ streq r3, [r5, #4040]
+ ldr r3, [r9, #4040]
cmp r3, #0
- bne .L2017
-.L2026:
- ldr r2, [r6, #3972]
- add r3, r2, r5
- ldr r2, [r2, r5]
+ bne .L2214
+.L2223:
+ ldr r2, [r5, #3972]
+ add r3, r2, r6
+ ldr r2, [r2, r6]
cmn r2, #1
- beq .L2029
+ beq .L2227
ldr r2, [r3, #4]
cmp r8, #0
ldr r0, [r3, #16]
@@ -17699,801 +19877,71 @@ FtlCacheWriteBack:
strne r2, [sp, #4]
mov r2, #1
bl log2phys
- ldr r3, [r6, #3972]
- add r3, r3, r5
+ ldr r3, [r5, #3972]
+ add r3, r3, r6
ldr r3, [r3, #12]
ldr r0, [r3, #12]
cmn r0, #1
- beq .L2031
+ beq .L2229
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- ldr r2, [r7, #-2016]
+ ldr r3, .L2236
+ ldr r2, [r3, #-2016]
mov r3, r0, asl #1
- mov sl, r0
+ mov r7, r0
ldrh r2, [r2, r3]
cmp r2, #0
- bne .L2032
- ldr r0, .L2038+8
- mov r1, sl
+ bne .L2230
+ ldr r0, .L2236+8
+ mov r1, r7
bl printk
-.L2032:
- mov r0, sl
+.L2230:
+ mov r0, r7
bl decrement_vpc_count
-.L2031:
- add r9, r9, #1
- add r5, r5, #36
- b .L2020
-.L2037:
- ldr r6, .L2038+4
- mov r5, #0
- ldr r7, .L2038
+.L2229:
+ add sl, sl, #1
+ add r6, r6, #36
+ b .L2217
+.L2235:
+ ldr r5, .L2236+4
+ mov r6, #0
+ mov sl, r6
mov r9, r5
-.L2020:
- ldr r3, [r6, #3968]
- cmp r9, r3
- bcc .L2033
+.L2217:
+ ldr r3, [r5, #3968]
+ cmp sl, r3
+ bcc .L2231
movw r4, #16386
- ldr r6, .L2038
- ldr r5, .L2038+12
- b .L2034
-.L2035:
+ ldr r6, .L2236
+ ldr r5, .L2236+12
+ b .L2232
+.L2233:
mov r0, #1
mov r1, r0
bl ftl_do_gc
subs r4, r4, #1
- beq .L2025
-.L2034:
+ beq .L2222
+.L2232:
ldrh r3, [r6, r5]
cmp r3, #0
- bne .L2035
-.L2025:
- ldr r3, .L2038+4
+ bne .L2233
+.L2222:
+ ldr r3, .L2236+4
mov r2, #0
str r2, [r3, #3968]
-.L2017:
+.L2214:
mov r0, #0
ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc}
-.L2039:
+.L2237:
.align 2
-.L2038:
+.L2236:
.word .LANCHOR2
.word .LANCHOR0
- .word .LC132
+ .word .LC151
.word -1138
.fnend
.size FtlCacheWriteBack, .-FtlCacheWriteBack
.align 2
- .global FtlGcFreeTempBlock
- .type FtlGcFreeTempBlock, %function
-FtlGcFreeTempBlock:
- .fnstart
- @ args = 0, pretend = 0, frame = 8
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr}
- .save {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr}
- movw r3, #3916
- ldr r2, .L2063
- ldrh r1, [r2, r3]
- ldr r3, .L2063+4
- ldr r2, [r3, #-2088]
- cmp r2, #0
- bne .L2061
- ldr ip, .L2063+8
- ldrh r4, [r3, ip]
- movw ip, #65535
- cmp r4, ip
- beq .L2042
- cmp r0, #0
- beq .L2043
- ldr lr, .L2063+12
- movw r0, #3000
- ldrh r5, [lr, r0]
- cmp r5, ip
- movne r1, #2
- bne .L2043
- strh r2, [lr, r0] @ movhi
- sub r2, r2, #2000
- ldrh r3, [r3, r2]
- cmp r3, #17
- movhi r1, #2
-.L2043:
- ldr r0, .L2063+16
- bl FtlGcScanTempBlk
- cmn r0, #1
- str r0, [sp, #4]
- beq .L2044
- ldr r3, .L2063+4
- mov r4, r4, asl #1
- ldr r3, [r3, #-2080]
- ldrh r2, [r3, r4]
- cmp r2, #4
- bls .L2045
- sub r2, r2, #5
- mov r0, #1
- strh r2, [r3, r4] @ movhi
- bl FtlEctTblFlush
-.L2045:
- ldr r3, .L2063+4
- ldr r2, [r3, #-1012]
- cmp r2, #0
- bne .L2046
- ldr r2, [r3, #-1612]
- ldr r0, [sp, #4]
- add r2, r2, #1
- str r2, [r3, #-1612]
- ubfx r0, r0, #10, #16
- bl FtlBbmMapBadBlock
- bl FtlBbmTblFlush
-.L2046:
- ldr r3, .L2063+4
- mov r2, #0
- str r2, [r3, #-1012]
- b .L2059
-.L2044:
- ldr r2, .L2063+12
- movw r3, #3000
- ldrh r2, [r2, r3]
- movw r3, #65535
- cmp r2, r3
- bne .L2059
-.L2042:
- ldr r6, .L2063+4
- movw r3, #65535
- ldr r5, .L2063+8
- mov r4, #0
- str r4, [r6, #-1012]
- ldrh r2, [r6, r5]
- cmp r2, r3
- moveq r0, r4
- beq .L2041
- bl FtlCacheWriteBack
- ldr ip, .L2063
- movw r0, #3916
- ldrb r1, [r6, #-1893] @ zero_extendqisi2
- ldrh r3, [r6, r5]
- ldrh r0, [ip, r0]
- ldr r2, [r6, #-2016]
- ldr sl, .L2063+20
- mov r3, r3, asl #1
- mul r1, r0, r1
- strh r1, [r2, r3] @ movhi
- ldr r3, [r6, #-1816]
- ldrh r2, [r6, sl]
- add r3, r2, r3
- str r3, [r6, #-1816]
- b .L2047
-.L2050:
- mov r7, #12
- ldr r8, [r6, #-1148]
- mul r7, r7, r4
- add r1, sp, #4
- mov r2, #0
- add r5, r8, r7
- ldr r0, [r5, #8]
- bl log2phys
- ldr r0, [sp, #4]
- ldr r3, [r8, r7]
- cmp r0, r3
- bne .L2048
- ubfx r0, r0, #10, #16
- bl P2V_block_in_plane
- add r1, r5, #4
- mov r2, #1
- mov r7, r0
- ldr r0, [r5, #8]
- bl log2phys
- mov r0, r7
- b .L2062
-.L2048:
- ldr r3, [r5, #4]
- cmp r0, r3
- beq .L2049
- ldr r3, .L2063+8
- ldrh r0, [r6, r3]
-.L2062:
- bl decrement_vpc_count
-.L2049:
- add r4, r4, #1
- uxth r4, r4
-.L2047:
- ldrh r3, [r6, sl]
- ldr r5, .L2063+4
- cmp r3, r4
- bhi .L2050
- movw r0, #65535
- ldr r4, .L2063+8
- bl decrement_vpc_count
- ldr r3, .L2063
- ldrb r3, [r3, #928] @ zero_extendqisi2
- cmp r3, #0
- beq .L2051
- ldr r0, .L2063+24
- ldrh r1, [r5, r4]
- bl printk
-.L2051:
- ldrh r0, [r5, r4]
- ldr r2, [r5, #-2016]
- mov r3, r0, asl #1
- ldrh r3, [r2, r3]
- cmp r3, #0
- beq .L2052
- bl INSERT_DATA_LIST
- b .L2053
-.L2052:
- bl INSERT_FREE_LIST
-.L2053:
- ldr r4, .L2063+4
- mvn r2, #0
- ldr r3, .L2063+8
- strh r2, [r4, r3] @ movhi
- mov r3, #0
- ldr r2, .L2063+20
- strh r3, [r4, r2] @ movhi
- sub r2, r2, #12
- strh r3, [r4, r2] @ movhi
- bl l2p_flush
- bl FtlVpcTblFlush
- ldr r3, .L2063
- mov r1, r4
- ldr r3, [r3, #3840]
- cmp r3, #0
- beq .L2054
- ldr r3, [r4, #-1780]
- cmp r3, #29
- bhi .L2054
- ldr r3, .L2063+28
- mvn r1, #0
- ldr r2, .L2063+32
- ldrh r3, [r4, r3]
- ldrh r2, [r4, r2]
- cmp r2, r3
- movcc r3, r3, asl #1
- ldrcc r2, .L2063+36
- strcch r3, [r4, r2] @ movhi
- ldr r3, .L2063+40
- ldr r2, .L2063+4
- strh r1, [r2, r3] @ movhi
- b .L2061
-.L2054:
- ldr r2, .L2063+28
- ldr r0, .L2063+32
- ldr r3, .L2063+4
- ldrh r2, [r1, r2]
- ldrh r1, [r1, r0]
- add r0, r2, r2, asl #1
- cmp r1, r0, lsr #2
- ble .L2061
- ldr r1, .L2063+40
- mvn r0, #0
- strh r0, [r3, r1] @ movhi
- ldr r1, .L2063
- ldrb r0, [r1, #928] @ zero_extendqisi2
- ldr r1, .L2063+36
- cmp r0, #0
- subne r2, r2, #2
- moveq r2, #20
- strneh r2, [r3, r1] @ movhi
- streqh r2, [r3, r1] @ movhi
- beq .L2041
- b .L2061
-.L2059:
- mov r0, #1
- b .L2041
-.L2061:
- mov r0, #0
-.L2041:
- ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, sl, pc}
-.L2064:
- .align 2
-.L2063:
- .word .LANCHOR0
- .word .LANCHOR2
- .word -1900
- .word .LANCHOR1
- .word .LANCHOR2-1900
- .word -1144
- .word .LC133
- .word -1776
- .word -2000
- .word -1196
- .word -1760
- .fnend
- .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
- .align 2
- .global Ftl_gc_temp_data_write_back
- .type Ftl_gc_temp_data_write_back, %function
-Ftl_gc_temp_data_write_back:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
- .save {r3, r4, r5, r6, r7, lr}
- ldr r3, .L2074
- ldrb r3, [r3, #928] @ zero_extendqisi2
- cmp r3, #0
- ldr r3, .L2074+4
- beq .L2066
- ldr r2, [r3, #-1180]
- tst r2, #1
- beq .L2066
- ldr r2, .L2074+8
- ldrh r2, [r3, r2]
- cmp r2, #0
- bne .L2071
-.L2066:
- mov r2, #0
- ldr r0, [r3, #-968]
- ldr r1, [r3, #-1180]
- mov r3, r2
- bl FlashProgPages
- mov r4, #0
- ldr r5, .L2074+4
- mov r6, #36
- b .L2068
-.L2070:
- mul r3, r6, r4
- ldr r1, [r5, #-968]
- add r2, r1, r3
- ldr r1, [r1, r3]
- cmn r1, #1
- bne .L2069
- ldr r2, .L2074+12
- mov lr, #0
- ldr ip, [r7, #-2016]
- ldrh r0, [r7, r2]
- mov r0, r0, asl #1
- strh lr, [ip, r0] @ movhi
- strh r1, [r7, r2] @ movhi
- ldr r2, [r7, #-1612]
- add r2, r2, #1
- str r2, [r7, #-1612]
- ldr r2, [r7, #-968]
- add r3, r2, r3
- ldr r0, [r3, #4]
- ubfx r0, r0, #10, #16
- bl FtlBbmMapBadBlock
- bl FtlBbmTblFlush
- bl FtlGcPageVarInit
- b .L2073
-.L2069:
- ldr r3, [r2, #12]
- add r4, r4, #1
- ldr r1, [r2, #4]
- uxth r4, r4
- ldr r0, [r3, #12]
- ldr r2, [r3, #8]
- bl FtlGcUpdatePage
-.L2068:
- ldr r1, [r5, #-1180]
- ldr r7, .L2074+4
- cmp r4, r1
- bcc .L2070
- ldr r0, [r7, #-968]
- bl FtlGcBufFree
- ldr r3, .L2074+8
- mov r0, #0
- str r0, [r7, #-1180]
- ldrh r3, [r7, r3]
- cmp r3, r0
- ldmnefd sp!, {r3, r4, r5, r6, r7, pc}
- mov r0, #1
- bl FtlGcFreeTempBlock
-.L2073:
- mov r0, #1
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L2071:
- mov r0, #0
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L2075:
- .align 2
-.L2074:
- .word .LANCHOR0
- .word .LANCHOR2
- .word -1896
- .word -1900
- .fnend
- .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
- .align 2
- .global FtlGcPageRecovery
- .type FtlGcPageRecovery, %function
-FtlGcPageRecovery:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
- movw r5, #3916
- ldr r6, .L2078
- ldr r0, .L2078+4
- ldr r4, .L2078+8
- ldrh r1, [r6, r5]
- bl FtlGcScanTempBlk
- ldr r3, .L2078+12
- ldrh r2, [r4, r3]
- ldrh r3, [r6, r5]
- cmp r2, r3
- ldmccfd sp!, {r4, r5, r6, pc}
- sub r0, r4, #1088
- bl FtlMapBlkWriteDumpData
- mov r0, #0
- bl FtlGcFreeTempBlock
- mov r3, #0
- str r3, [r4, #-1012]
- ldmfd sp!, {r4, r5, r6, pc}
-.L2079:
- .align 2
-.L2078:
- .word .LANCHOR0
- .word .LANCHOR2-1900
- .word .LANCHOR2
- .word -1898
- .fnend
- .size FtlGcPageRecovery, .-FtlGcPageRecovery
- .align 2
- .global FtlPowerLostRecovery
- .type FtlPowerLostRecovery, %function
-FtlPowerLostRecovery:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, lr}
- .save {r3, r4, r5, lr}
- mov r4, #0
- ldr r3, .L2081
- ldr r5, .L2081+4
- str r4, [r3, #300]
- mov r0, r5
- bl FtlRecoverySuperblock
- mov r0, r5
- add r5, r5, #48
- bl FtlSlcSuperblockCheck
- mov r0, r5
- bl FtlRecoverySuperblock
- mov r0, r5
- bl FtlSlcSuperblockCheck
- bl FtlGcPageRecovery
- movw r0, #65535
- bl decrement_vpc_count
- mov r0, r4
- ldmfd sp!, {r3, r4, r5, pc}
-.L2082:
- .align 2
-.L2081:
- .word .LANCHOR2
- .word .LANCHOR2-1996
- .fnend
- .size FtlPowerLostRecovery, .-FtlPowerLostRecovery
- .align 2
- .global FtlSysBlkInit
- .type FtlSysBlkInit, %function
-FtlSysBlkInit:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
- .save {r3, r4, r5, r6, r7, lr}
- mov r3, #296
- ldr r6, .L2094
- mov r2, #0
- ldr r4, .L2094+4
- mvn r5, #0
- ldr r0, [r6, #3852]
- strh r2, [r4, r3] @ movhi
- movw r3, #294
- strh r5, [r4, r3] @ movhi
- uxth r0, r0
- bl FtlFreeSysBlkQueueInit
- bl FtlScanSysBlk
- ldr r3, .L2094+8
- ldrh r2, [r4, r3]
- movw r3, #65535
- cmp r2, r3
- beq .L2084
- bl FtlLoadSysInfo
- subs r7, r0, #0
- bne .L2084
- bl FtlLoadMapInfo
- bl FtlLoadVonderInfo
- bl Ftl_load_ext_data
- bl FtlLoadEctTbl
- bl FtlFreeSysBLkSort
- bl SupperBlkListInit
- bl FtlPowerLostRecovery
- mov r0, #1
- bl FtlUpdateVaildLpn
- movw r3, #3954
- ldrh r2, [r6, r3]
- mov r3, r7
- ldr r1, [r4, #-1852]
- b .L2085
-.L2087:
- add r0, r1, r7
- add r7, r7, #12
- ldr r0, [r0, #4]
- cmp r0, #0
- blt .L2086
- add r3, r3, #1
-.L2085:
- cmp r3, r2
- blt .L2087
-.L2086:
- ldr r4, .L2094+4
- cmp r3, r2
- ldr r1, .L2094+12
- ldrh r0, [r4, r1]
- add r0, r0, #1
- strh r0, [r4, r1] @ movhi
- blt .L2088
- mov r3, #296
- ldrh r3, [r4, r3]
- cmp r3, #0
- beq .L2089
-.L2088:
- ldr r0, .L2094+16
- bl FtlSuperblockPowerLostFix
- ldr r0, .L2094+20
- bl FtlSuperblockPowerLostFix
- ldr r3, .L2094+24
- ldr r1, [r4, #-2016]
- ldr r2, .L2094+28
- ldrh r3, [r4, r3]
- ldrh r0, [r4, r2]
- mov r3, r3, asl #1
- ldrh ip, [r1, r3]
- rsb r0, r0, ip
- strh r0, [r1, r3] @ movhi
- ldr r0, .L2094
- movw r1, #3916
- ldr r3, .L2094+32
- ldr lr, [r4, #-2016]
- ldrh ip, [r0, r1]
- strh ip, [r4, r3] @ movhi
- mov r3, #0
- strh r3, [r4, r2] @ movhi
- add r2, r2, #44
- strb r3, [r4, #-1990]
- ldrh ip, [r4, r2]
- add r2, r2, #4
- ldrh r5, [r4, r2]
- mov ip, ip, asl #1
- ldrh r6, [lr, ip]
- rsb r5, r5, r6
- strh r5, [lr, ip] @ movhi
- ldrh r0, [r0, r1]
- ldr r1, .L2094+36
- strh r3, [r4, r2] @ movhi
- strb r3, [r4, #-1942]
- strh r0, [r4, r1] @ movhi
- ldr r0, .L2094+40
- bl FtlMapBlkWriteDumpData
- ldr r0, .L2094+44
- bl FtlMapBlkWriteDumpData
- ldr r3, .L2094+48
- ldrh r2, [r4, r3]
- add r2, r2, #1
- strh r2, [r4, r3] @ movhi
- bl l2p_flush
- bl FtlVpcTblFlush
- bl FtlVpcTblFlush
-.L2089:
- ldr r4, .L2094+4
- movw r3, #65535
- ldr r5, .L2094+24
- ldrh r2, [r4, r5]
- cmp r2, r3
- beq .L2090
- ldr r3, .L2094+28
- ldrh r3, [r4, r3]
- cmp r3, #0
- bne .L2090
- ldr r3, .L2094+52
- ldrh r3, [r4, r3]
- cmp r3, #0
- bne .L2090
- bl FtlVpcTblFlush
- ldrh r0, [r4, r5]
- bl FtlGcRefreshOpenBlock
- ldr r3, .L2094+56
- ldrh r0, [r4, r3]
- bl FtlGcRefreshOpenBlock
- ldr r0, .L2094+16
- bl allocate_new_data_superblock
- ldr r0, .L2094+20
- bl allocate_new_data_superblock
- add r0, r4, #248
- bl FtlMapBlkWriteDumpData
-.L2090:
- ldr r3, .L2094+12
- ldr r2, .L2094+4
- ldrh r5, [r2, r3]
- ands r5, r5, #31
- movne r5, #0
- bne .L2084
- bl FtlVpcCheckAndModify
-.L2084:
- mov r0, r5
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L2095:
- .align 2
-.L2094:
- .word .LANCHOR0
- .word .LANCHOR2
- .word -1772
- .word -2044
- .word .LANCHOR2-1996
- .word .LANCHOR2-1948
- .word -1996
- .word -1992
- .word -1994
- .word -1946
- .word .LANCHOR2-1088
- .word .LANCHOR2+248
- .word -2042
- .word -1944
- .word -1948
- .fnend
- .size FtlSysBlkInit, .-FtlSysBlkInit
- .align 2
- .global Ftl_get_new_temp_ppa
- .type Ftl_get_new_temp_ppa, %function
-Ftl_get_new_temp_ppa:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, lr}
- .save {r3, r4, r5, lr}
- ldr r3, .L2099
- ldr r5, .L2099+4
- ldrh r2, [r5, r3]
- movw r3, #65535
- cmp r2, r3
- beq .L2097
- ldr r3, .L2099+8
- ldrh r3, [r5, r3]
- cmp r3, #0
- bne .L2098
-.L2097:
- bl FtlCacheWriteBack
- mov r0, #0
- bl FtlGcFreeTempBlock
- ldr r0, .L2099+12
- mov r4, #0
- strb r4, [r5, #-1892]
- bl allocate_data_superblock
- ldr r3, .L2099+16
- strh r4, [r5, r3] @ movhi
- add r3, r3, #12
- strh r4, [r5, r3] @ movhi
- bl l2p_flush
- mov r0, r4
- bl FtlEctTblFlush
- bl FtlVpcTblFlush
-.L2098:
- ldr r0, .L2099+12
- ldmfd sp!, {r3, r4, r5, lr}
- b get_new_active_ppa
-.L2100:
- .align 2
-.L2099:
- .word -1900
- .word .LANCHOR2
- .word -1896
- .word .LANCHOR2-1900
- .word -1156
- .fnend
- .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
- .align 2
- .global ftl_discard
- .type ftl_discard, %function
-ftl_discard:
- .fnstart
- @ args = 0, pretend = 0, frame = 8
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr}
- .save {r0, r1, r2, r4, r5, r6, r7, lr}
- add r2, r1, r0
- ldr r5, .L2111
- mov r7, r0
- mov r4, r1
- ldr r3, [r5, #3956]
- cmp r2, r3
- mvnhi r0, #0
- bhi .L2102
- cmp r1, #31
- bls .L2109
- ldr r3, .L2111+4
- ldr r3, [r3, #-2088]
- cmp r3, #0
- bne .L2109
- bl FtlCacheWriteBack
- movw r3, #3922
- ldrh r6, [r5, r3]
- mov r0, r7
- mov r1, r6
- bl __aeabi_uidiv
- mls r7, r0, r6, r7
- mov r5, r0
- uxth r7, r7
- cmp r7, #0
- beq .L2103
- rsb r6, r7, r6
- add r5, r0, #1
- cmp r6, r4
- movcs r6, r4
- uxth r6, r6
- rsb r4, r6, r4
-.L2103:
- mvn r3, #0
- ldr r7, .L2111
- str r3, [sp, #4]
- movw r6, #3922
- b .L2104
-.L2106:
- mov r0, r5
- mov r1, sp
- mov r2, #0
- bl log2phys
- ldr r3, [sp, #0]
- cmn r3, #1
- beq .L2105
- ldr r3, .L2111+4
- add r1, sp, #4
- mov r0, r5
- ldr r2, [r3, #444]
- add r2, r2, #1
- str r2, [r3, #444]
- ldr r2, [r3, #-1832]
- add r2, r2, #1
- str r2, [r3, #-1832]
- mov r2, #1
- bl log2phys
- ldr r0, [sp, #0]
- ubfx r0, r0, #10, #16
- bl P2V_block_in_plane
- bl decrement_vpc_count
-.L2105:
- ldrh r3, [r7, r6]
- add r5, r5, #1
- rsb r4, r3, r4
-.L2104:
- ldrh r3, [r7, r6]
- cmp r4, r3
- bcs .L2106
- ldr r3, .L2111+4
- mov r4, #0
- ldr r2, [r3, #444]
- cmp r2, #32
- bls .L2110
- str r4, [r3, #444]
- bl l2p_flush
- bl FtlVpcTblFlush
- b .L2110
-.L2109:
- mov r0, #0
- b .L2102
-.L2110:
- mov r0, r4
-.L2102:
- ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, pc}
-.L2112:
- .align 2
-.L2111:
- .word .LANCHOR0
- .word .LANCHOR2
- .fnend
- .size ftl_discard, .-ftl_discard
- .align 2
- .global FtlDiscard
- .type FtlDiscard, %function
-FtlDiscard:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- @ link register save eliminated.
- b ftl_discard
- .fnend
- .size FtlDiscard, .-FtlDiscard
- .align 2
.global ftl_cache_flush
.type ftl_cache_flush, %function
ftl_cache_flush:
@@ -18524,22 +19972,22 @@ FtlSysFlush:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L2118
- ldr r3, [r3, #-2088]
+ ldr r3, .L2242
+ ldr r3, [r3, #4040]
cmp r3, #0
- bne .L2117
+ bne .L2241
bl FtlCacheWriteBack
bl l2p_flush
mov r0, #1
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L2117:
+.L2241:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L2119:
+.L2243:
.align 2
-.L2118:
- .word .LANCHOR2
+.L2242:
+ .word .LANCHOR0
.fnend
.size FtlSysFlush, .-FtlSysFlush
.align 2
@@ -18551,17 +19999,17 @@ FtlDeInit:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L2122
+ ldr r3, .L2246
ldr r3, [r3, #2996]
cmp r3, #1
- bne .L2121
+ bne .L2245
bl FtlSysFlush
-.L2121:
+.L2245:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L2123:
+.L2247:
.align 2
-.L2122:
+.L2246:
.word .LANCHOR1
.fnend
.size FtlDeInit, .-FtlDeInit
@@ -18590,14 +20038,14 @@ rk_ftl_de_init:
stmfd sp!, {r3, lr}
.save {r3, lr}
mov r1, #0
- ldr r0, .L2126
+ ldr r0, .L2250
bl printk
ldmfd sp!, {r3, lr}
b ftl_deinit
-.L2127:
+.L2251:
.align 2
-.L2126:
- .word .LC134
+.L2250:
+ .word .LC152
.fnend
.size rk_ftl_de_init, .-rk_ftl_de_init
.align 2
@@ -18618,17 +20066,17 @@ ftl_fix_nand_power_lost_error:
.fnstart
@ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2138
+ ldr r3, .L2262
stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
.save {r4, r5, r6, r7, r8, sl, lr}
.pad #52
sub sp, sp, #52
ldrb r3, [r3, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L2129
- ldr r4, .L2138+4
+ beq .L2253
+ ldr r4, .L2262+4
movw r3, #294
- ldr r0, .L2138+8
+ ldr r0, .L2262+8
movw r7, #4097
ldrh r6, [r4, r3]
ldr r3, [r4, #-2016]
@@ -18636,102 +20084,103 @@ ftl_fix_nand_power_lost_error:
mov r1, r6
ldrh r2, [r3, r5]
bl printk
- ldr r3, .L2138+12
+ ldr r3, .L2262+12
ldrh r0, [r4, r3]
bl FtlGcRefreshOpenBlock
- ldr r3, .L2138+16
+ ldr r3, .L2262+16
ldrh r0, [r4, r3]
bl FtlGcRefreshOpenBlock
- ldr r0, .L2138+20
+ ldr r0, .L2262+20
bl allocate_new_data_superblock
- ldr r0, .L2138+24
+ ldr r0, .L2262+24
bl allocate_new_data_superblock
- b .L2131
-.L2133:
+ b .L2255
+.L2257:
mov r0, #1
mov r1, r0
bl ftl_do_gc
ldr r3, [r4, #-2016]
ldrh r3, [r3, r5]
cmp r3, #0
- beq .L2132
-.L2131:
+ beq .L2256
+.L2255:
subs r7, r7, #1
- bne .L2133
-.L2132:
- ldr r7, .L2138+4
+ bne .L2257
+.L2256:
+ ldr r4, .L2262+4
mov r1, r6
- ldr r0, .L2138+8
- ldr r3, [r7, #-2016]
+ ldr r0, .L2262+8
+ ldr r3, [r4, #-2016]
ldrh r2, [r3, r5]
bl printk
- ldr r3, [r7, #-2016]
+ ldr r3, [r4, #-2016]
ldrh r4, [r3, r5]
cmp r4, #0
- bne .L2134
- add r8, sp, #48
+ bne .L2258
+ add r7, sp, #48
mov r0, sp
- strh r6, [r8, #-48]! @ movhi
- add r8, r8, #14
+ strh r6, [r7, #-48]! @ movhi
+ add r7, r7, #14
bl make_superblock
- ldr r2, .L2138
- movw r3, #3848
- ldr r7, [r7, #-2084]
+ ldr r3, .L2262
+ movw r2, #3848
movw lr, #65535
mov ip, #36
- ldrh sl, [r2, r3]
mov r1, r4
+ ldrh r8, [r3, r2]
+ ldr sl, [r3, #4044]
mov r3, r4
- b .L2135
-.L2137:
- ldrh r0, [r8, #2]!
+ b .L2259
+.L2261:
+ ldrh r0, [r7, #2]!
cmp r0, lr
- beq .L2136
- mla r2, ip, r4, r7
+ beq .L2260
+ mla r2, ip, r4, sl
add r4, r4, #1
mov r0, r0, asl #10
uxth r4, r4
stmib r2, {r0, r1}
str r1, [r2, #12]
-.L2136:
+.L2260:
add r3, r3, #1
uxth r3, r3
-.L2135:
- cmp r3, sl
- bne .L2137
- ldr r7, .L2138+4
+.L2259:
+ cmp r3, r8
+ bne .L2261
+ ldr r3, .L2262+4
mov r1, r6
- ldr r0, .L2138+28
- ldr r3, [r7, #-2016]
+ ldr r0, .L2262+28
+ ldr r3, [r3, #-2016]
ldrh r2, [r3, r5]
+ ldr r5, .L2262
bl printk
mov r1, #0
mov r2, r4
- ldr r0, [r7, #-2084]
+ ldr r0, [r5, #4044]
bl FlashEraseBlocks
- ldr r0, [r7, #-2084]
+ ldr r0, [r5, #4044]
mov r1, #1
mov r2, r4
bl FlashEraseBlocks
-.L2134:
- ldr r2, .L2138+4
+.L2258:
+ ldr r2, .L2262+4
movw r3, #294
mvn r1, #0
strh r1, [r2, r3] @ movhi
-.L2129:
+.L2253:
add sp, sp, #52
ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
-.L2139:
+.L2263:
.align 2
-.L2138:
+.L2262:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC135
+ .word .LC153
.word -1996
.word -1948
.word .LANCHOR2-1996
.word .LANCHOR2-1948
- .word .LC136
+ .word .LC154
.fnend
.size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error
.align 2
@@ -18741,97 +20190,207 @@ FtlInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
-.L2141:
+.L2265:
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mvn r3, #0
- ldr r4, .L2151
- ldr r6, .L2151+4
- ldr r5, .L2151+8
- ldr r1, .L2151+12
+ ldr r4, .L2275
+ ldr r6, .L2275+4
+ ldr r5, .L2275+8
+ ldr r1, .L2275+12
str r3, [r6, #2996]
mov r3, #0
- ldr r0, .L2151+16
- str r3, [r4, #448]
- str r3, [r4, #-2088]
+ ldr r0, .L2275+16
+ str r3, [r4, #4040]
+ str r3, [r5, #444]
bl printk
- ldr r0, .L2151+20
+ ldr r0, .L2275+20
bl FtlConstantsInit
bl FtlMemInit
bl FtlVariablesInit
- ldr r0, [r5, #3852]
+ ldr r0, [r4, #3852]
uxth r0, r0
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
cmp r0, #0
- ldrne r0, .L2151+24
- bne .L2150
+ ldrne r0, .L2275+24
+ bne .L2274
bl FtlSysBlkInit
cmp r0, #0
- beq .L2144
- ldr r0, .L2151+28
-.L2150:
- ldr r1, .L2151+32
+ beq .L2268
+ ldr r0, .L2275+28
+.L2274:
+ ldr r1, .L2275+32
bl printk
- b .L2143
-.L2144:
+ b .L2267
+.L2268:
mov r1, #1
str r1, [r6, #2996]
bl ftl_do_gc
- ldr r3, .L2151+36
- ldrh r3, [r4, r3]
+ ldr r3, .L2275+36
+ ldrh r3, [r5, r3]
cmp r3, #15
- bhi .L2145
+ bhi .L2269
mov r4, #1024
-.L2146:
+.L2270:
mov r0, #1
mov r1, r0
bl ftl_do_gc
subs r4, r4, #1
- bne .L2146
- b .L2143
-.L2145:
- ldrb r3, [r5, #928] @ zero_extendqisi2
+ bne .L2270
+ b .L2267
+.L2269:
+ ldrb r3, [r4, #928] @ zero_extendqisi2
cmp r3, #0
- beq .L2143
+ beq .L2267
mov r4, #128
-.L2147:
+.L2271:
mov r0, #1
mov r1, r0
bl ftl_do_gc
subs r4, r4, #1
- bne .L2147
-.L2143:
+ bne .L2271
+.L2267:
mov r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L2152:
+.L2276:
.align 2
-.L2151:
- .word .LANCHOR2
- .word .LANCHOR1
+.L2275:
.word .LANCHOR0
+ .word .LANCHOR1
+ .word .LANCHOR2
.word .LC79
.word .LC78
.word .LANCHOR0+3048
- .word .LC137
- .word .LC138
- .word .LANCHOR3+36
+ .word .LC155
+ .word .LC156
+ .word .LANCHOR3+69
.word -2000
.fnend
.size FtlInit, .-FtlInit
.align 2
- .type ftl_write.part.22, %function
-ftl_write.part.22:
+ .global ftl_discard
+ .type ftl_discard, %function
+ftl_discard:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 8
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr}
+ .save {r0, r1, r2, r4, r5, r6, r7, lr}
+ add r2, r1, r0
+ ldr r5, .L2287
+ mov r7, r0
+ mov r4, r1
+ ldr r3, [r5, #3956]
+ cmp r2, r3
+ mvnhi r0, #0
+ bhi .L2278
+ cmp r1, #31
+ bls .L2285
+ ldr r3, [r5, #4040]
+ cmp r3, #0
+ bne .L2285
+ bl FtlCacheWriteBack
+ movw r3, #3922
+ ldrh r6, [r5, r3]
+ mov r0, r7
+ mov r1, r6
+ bl __aeabi_uidiv
+ mls r7, r0, r6, r7
+ mov r5, r0
+ uxth r7, r7
+ cmp r7, #0
+ beq .L2279
+ rsb r6, r7, r6
+ add r5, r0, #1
+ cmp r6, r4
+ movcs r6, r4
+ uxth r6, r6
+ rsb r4, r6, r4
+.L2279:
+ mvn r3, #0
+ ldr r7, .L2287
+ str r3, [sp, #4]
+ movw r6, #3922
+ b .L2280
+.L2282:
+ mov r0, r5
+ mov r1, sp
+ mov r2, #0
+ bl log2phys
+ ldr r3, [sp, #0]
+ cmn r3, #1
+ beq .L2281
+ ldr r3, .L2287+4
+ add r1, sp, #4
+ mov r0, r5
+ ldr r2, [r3, #448]
+ add r2, r2, #1
+ str r2, [r3, #448]
+ ldr r2, [r3, #-1832]
+ add r2, r2, #1
+ str r2, [r3, #-1832]
+ mov r2, #1
+ bl log2phys
+ ldr r0, [sp, #0]
+ ubfx r0, r0, #10, #16
+ bl P2V_block_in_plane
+ bl decrement_vpc_count
+.L2281:
+ ldrh r3, [r7, r6]
+ add r5, r5, #1
+ rsb r4, r3, r4
+.L2280:
+ ldrh r3, [r7, r6]
+ cmp r4, r3
+ bcs .L2282
+ ldr r3, .L2287+4
+ mov r4, #0
+ ldr r2, [r3, #448]
+ cmp r2, #32
+ bls .L2286
+ str r4, [r3, #448]
+ bl l2p_flush
+ bl FtlVpcTblFlush
+ b .L2286
+.L2285:
+ mov r0, #0
+ b .L2278
+.L2286:
+ mov r0, r4
+.L2278:
+ ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, pc}
+.L2288:
+ .align 2
+.L2287:
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .fnend
+ .size ftl_discard, .-ftl_discard
+ .align 2
+ .global FtlDiscard
+ .type FtlDiscard, %function
+FtlDiscard:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ @ link register save eliminated.
+ b ftl_discard
+ .fnend
+ .size FtlDiscard, .-FtlDiscard
+ .align 2
+ .type ftl_write.part.24, %function
+ftl_write.part.24:
.fnstart
@ args = 0, pretend = 0, frame = 96
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r3, #2048
- ldr r4, .L2198
+ ldr r4, .L2335
.pad #100
sub sp, sp, #100
- ldr r8, .L2198+4
+ ldr r8, .L2335+4
mov r5, r1
mov r7, r0
mov r9, r2
@@ -18859,7 +20418,7 @@ ftl_write.part.22:
ldr r3, [r4, #-1812]
add r3, r5, r3
str r3, [r4, #-1812]
- beq .L2186
+ beq .L2323
ldr r3, [r8, #3972]
sub sl, sl, #1
mov r2, #36
@@ -18868,7 +20427,7 @@ ftl_write.part.22:
ldr r3, [sl, #16]
cmp r0, r3
strne r5, [sp, #32]
- bne .L2155
+ bne .L2292
ldr r3, [r4, #-1824]
mov r0, r7
mov r1, r6
@@ -18890,11 +20449,11 @@ ftl_write.part.22:
bl memcpy
cmp fp, #0
ldr r3, [sp, #4]
- bne .L2156
+ bne .L2293
ldr r2, [r4, #456]
cmp r2, #2
- ble .L2157
-.L2156:
+ ble .L2294
+.L2293:
add r9, r9, r3
add r7, r7, r8
ldr r3, [sp, #16]
@@ -18903,81 +20462,81 @@ ftl_write.part.22:
add r3, r3, #1
str r1, [sp, #32]
str r3, [sp, #16]
-.L2155:
- ldr r3, .L2198
+.L2292:
+ ldr r3, .L2335
mov r2, #0
str r2, [r3, #456]
- b .L2154
-.L2186:
+ b .L2291
+.L2323:
str r5, [sp, #32]
-.L2154:
+.L2291:
ldr r0, [sp, #16]
ldr r1, [sp, #36]
bl FtlCacheMetchLpa
cmp r0, #0
- beq .L2158
+ beq .L2295
bl FtlCacheWriteBack
-.L2158:
+.L2295:
cmp r5, r6, asl #1
- ldr r3, .L2198
- ldr r4, .L2198+4
+ ldr r3, .L2335
+ ldr r4, .L2335+4
mov fp, #0
movcc r6, #0
movcs r6, #1
str r6, [sp, #24]
- ldr r6, .L2198+8
+ ldr r6, .L2335+8
ldr r5, [sp, #16]
mov sl, r4
str fp, [sp, #40]
str r6, [r3, #440]
- b .L2195
-.L2184:
+ b .L2332
+.L2321:
ldrh r1, [r6, #4]
cmp r1, #0
- bne .L2160
- ldr r2, .L2198+8
- ldr r3, .L2198+12
+ bne .L2297
+ ldr r2, .L2335+8
+ ldr r3, .L2335+12
cmp r6, r2
- bne .L2161
- ldr r2, .L2198+16
+ bne .L2298
+ ldr r2, .L2335+16
ldrh r8, [r8, r2]
cmp r8, #0
- bne .L2162
- ldr r0, .L2198+20
+ bne .L2299
+ ldr r0, .L2335+20
str r3, [sp, #4]
bl allocate_new_data_superblock
ldr r3, [sp, #4]
str r8, [r3, #3004]
-.L2162:
- ldr r0, .L2198+8
+.L2299:
+ ldr r0, .L2335+8
str r3, [sp, #4]
bl allocate_new_data_superblock
ldr r3, [sp, #4]
ldr r2, [r3, #3004]
- ldr r3, .L2198+20
+ ldr r3, .L2335+20
cmp r2, #0
movne r6, r3
- b .L2163
-.L2161:
+ b .L2300
+.L2298:
str r1, [r3, #3004]
- ldr r3, .L2198+24
+ ldr r3, .L2335+24
ldrh r3, [r8, r3]
cmp r3, #0
movne r6, r2
- bne .L2163
+ bne .L2300
mov r0, r6
bl allocate_new_data_superblock
-.L2163:
+.L2300:
ldrh r3, [r6, #4]
cmp r3, #0
- bne .L2164
+ bne .L2301
mov r0, r6
bl allocate_new_data_superblock
-.L2164:
- ldr r3, .L2198
+.L2301:
+ ldr r3, .L2335
str r6, [r3, #440]
-.L2160:
- ldr r2, .L2198
+.L2297:
+ ldr r2, .L2335
mov r8, r6
ldrh r3, [r6, #4]
ldr r1, [r2, #-976]
@@ -18991,29 +20550,29 @@ ftl_write.part.22:
str r3, [sp, #52]
mov r3, #0
str r3, [sp, #28]
- b .L2165
-.L2181:
+ b .L2302
+.L2318:
ldrh r3, [r8, #4]
cmp r3, #0
- beq .L2166
+ beq .L2303
ldr r6, [sp, #36]
rsb r2, r6, r5
ldr r6, [sp, #24]
rsbs r3, r2, #0
adc r3, r3, r2
tst r3, r6
- beq .L2167
+ beq .L2304
ldr r6, [sp, #28]
cmp r6, #0
- beq .L2167
+ beq .L2304
movw lr, #3922
ldr r6, [sp, #32]
ldrh r2, [r4, lr]
add r1, r6, r7
mls r1, r2, r5, r1
cmp r1, r2
- bne .L2166
-.L2167:
+ bne .L2303
+.L2304:
add r1, sp, #56
mov r2, #0
mov r0, r5
@@ -19026,7 +20585,7 @@ ftl_write.part.22:
movw r2, #3928
mov ip, #36
ldrh r2, [r4, r2]
- ldr r6, .L2198
+ ldr r6, .L2335
mla r1, ip, lr, r1
mul lr, lr, r2
ldr r6, [r6, #-928]
@@ -19041,7 +20600,7 @@ ftl_write.part.22:
ldrh lr, [r4, r0]
ldr r0, [r4, #3968]
mul lr, r0, lr
- ldr r0, .L2198
+ ldr r0, .L2335
bic lr, lr, #3
str lr, [sp, #12]
ldr lr, [r0, #-948]
@@ -19060,10 +20619,10 @@ ftl_write.part.22:
ldr r3, [sp, #4]
str r1, [sp, #12]
orrs r1, r1, r3
- beq .L2168
+ beq .L2305
ldr r2, [sp, #12]
cmp r2, #0
- beq .L2169
+ beq .L2306
movw r3, #3922
mov r0, r7
ldrh fp, [r4, r3]
@@ -19074,10 +20633,10 @@ ftl_write.part.22:
str r1, [sp, #40]
cmp fp, r3
movcs fp, r3
- b .L2170
-.L2169:
+ b .L2307
+.L2306:
cmp r3, #0
- beq .L2170
+ beq .L2307
ldr r3, [sp, #32]
movw lr, #3922
add fp, r3, r7
@@ -19086,11 +20645,11 @@ ftl_write.part.22:
ldr r3, [sp, #12]
str r3, [sp, #40]
uxth fp, fp
-.L2170:
+.L2307:
movw lr, #3922
ldrh r3, [r4, lr]
cmp fp, r3
- bne .L2171
+ bne .L2308
ldr r3, [sp, #12]
ldr r0, [sl, #3968]
cmp r3, #0
@@ -19104,16 +20663,16 @@ ftl_write.part.22:
mov r3, #36
mla r3, r3, r0, r2
strne r1, [r3, #8]
- bne .L2174
+ bne .L2311
ldr r0, [r3, #8]
movw r3, #3926
ldrh r2, [sl, r3]
- b .L2196
-.L2171:
+ b .L2333
+.L2308:
ldr r2, [sp, #56]
mov r3, #36
cmn r2, #1
- beq .L2175
+ beq .L2312
ldr r1, [r4, #3968]
add r0, sp, #60
str r2, [sp, #64]
@@ -19129,23 +20688,23 @@ ftl_write.part.22:
bl FlashReadPages
ldr r3, [sp, #60]
cmn r3, #1
- ldr r3, .L2198
+ ldr r3, .L2335
ldreq r2, [r3, #-1636]
addeq r2, r2, #1
streq r2, [r3, #-1636]
- beq .L2177
+ beq .L2314
ldr r2, [r6, #8]
cmp r2, r5
- beq .L2177
+ beq .L2314
ldr r2, [r3, #-1636]
- ldr r0, .L2198+28
+ ldr r0, .L2335+28
add r2, r2, #1
str r2, [r3, #-1636]
mov r2, r5
ldr r1, [r6, #8]
bl printk
- b .L2177
-.L2175:
+ b .L2314
+.L2312:
ldr r1, [r4, #3968]
ldr r2, [r4, #3972]
mla r3, r3, r1, r2
@@ -19154,7 +20713,7 @@ ftl_write.part.22:
movw r3, #3926
ldrh r2, [r4, r3]
bl ftl_memset
-.L2177:
+.L2314:
ldr r3, [sp, #12]
ldr r1, [r4, #3968]
cmp r3, #0
@@ -19172,22 +20731,22 @@ ftl_write.part.22:
ldreq r0, [r3, #8]
addne r0, r0, r3, asl #9
addeq r1, r9, r1, asl #9
- b .L2196
-.L2168:
+ b .L2333
+.L2305:
ldr r3, [sp, #24]
ldr r2, [r4, #3968]
cmp r3, #0
ldr r3, [r4, #3972]
mla ip, ip, r2, r3
- beq .L2179
+ beq .L2316
movw lr, #3922
ldrh r3, [r4, lr]
mul r3, r3, r5
rsb r3, r7, r3
add r3, r9, r3, asl #9
str r3, [ip, #8]
- b .L2174
-.L2179:
+ b .L2311
+.L2316:
movw r0, #3922
movw r3, #3926
ldrh r1, [r4, r0]
@@ -19196,14 +20755,14 @@ ftl_write.part.22:
mul r1, r1, r5
rsb r1, r7, r1
add r1, r9, r1, asl #9
-.L2196:
+.L2333:
bl memcpy
-.L2174:
- ldr r3, .L2198+32
+.L2311:
+ ldr r3, .L2335+32
ldr r0, [sp, #48]
ldr lr, [sp, #44]
strh r3, [r0, lr] @ movhi
- ldr r3, .L2198
+ ldr r3, .L2335
str r5, [r6, #8]
add r5, r5, #1
ldr r2, [r3, #-1800]
@@ -19223,30 +20782,30 @@ ftl_write.part.22:
ldr r3, [sp, #28]
add r3, r3, #1
str r3, [sp, #28]
-.L2165:
+.L2302:
ldr r6, [sp, #28]
ldr r3, [sp, #52]
cmp r6, r3
- bne .L2181
-.L2166:
+ bne .L2318
+.L2303:
ldr r3, [sp, #20]
mov r6, r8
ldr lr, [sp, #28]
ldr r2, [r4, #3968]
rsb r3, lr, r3
str r3, [sp, #20]
- ldr r3, .L2198
+ ldr r3, .L2335
ldr r0, [sp, #24]
ldr r3, [r3, #-976]
cmp r2, r3
orrcs r0, r0, #1
uxtb r3, r0
cmp r3, #0
- bne .L2182
+ bne .L2319
ldrh r2, [r8, #4]
cmp r2, #0
- bne .L2192
-.L2182:
+ bne .L2329
+.L2319:
bl FtlCacheWriteBack
ldr lr, [sp, #20]
mov r3, #0
@@ -19254,44 +20813,45 @@ ftl_write.part.22:
cmp lr, #1
ldr r3, [sp, #24]
movls r3, #0
-.L2192:
+.L2329:
str r3, [sp, #24]
-.L2195:
+.L2332:
ldr r3, [sp, #20]
- ldr r8, .L2198
+ ldr r8, .L2335
cmp r3, #0
- bne .L2184
+ bne .L2321
mov r0, r3
ldr r6, [sp, #36]
ldr r3, [sp, #16]
rsb r1, r3, r6
bl ftl_do_gc
- ldr r3, .L2198+36
+ ldr r3, .L2335+36
ldrh r3, [r8, r3]
cmp r3, #31
- bhi .L2157
- ldr r2, .L2198+40
+ bhi .L2294
+ ldr r2, .L2335+40
mov r3, #128
+ ldr r5, .L2335+4
mov r4, #16
strh r3, [r8, r2] @ movhi
sub r2, r2, #2
strh r3, [r8, r2] @ movhi
-.L2185:
+.L2322:
mov r0, #0
mov r1, #1
bl ftl_do_gc
- ldr r3, [r8, #-2088]
+ ldr r3, [r5, #4040]
cmp r3, #0
- bne .L2157
+ bne .L2294
subs r4, r4, #1
- bne .L2185
-.L2157:
+ bne .L2322
+.L2294:
mov r0, #0
add sp, sp, #100
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2199:
+.L2336:
.align 2
-.L2198:
+.L2335:
.word .LANCHOR2
.word .LANCHOR0
.word .LANCHOR2-1996
@@ -19299,12 +20859,12 @@ ftl_write.part.22:
.word -1944
.word .LANCHOR2-1948
.word -1992
- .word .LC139
+ .word .LC157
.word -3947
.word -2000
.word -1194
.fnend
- .size ftl_write.part.22, .-ftl_write.part.22
+ .size ftl_write.part.24, .-ftl_write.part.24
.align 2
.global ftl_write
.type ftl_write, %function
@@ -19312,34 +20872,35 @@ ftl_write:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- @ link register save eliminated.
mov ip, r0
mov r0, r1
mov r1, r2
mov r2, r3
- ldr r3, .L2205
- ldr r3, [r3, #-2088]
- cmp r3, #0
+ ldr r3, .L2342
+ stmfd sp!, {r4, lr}
+ .save {r4, lr}
+ ldr r4, [r3, #4040]
+ cmp r4, #0
movne r0, #0
- bxne lr
+ ldmnefd sp!, {r4, pc}
cmp ip, #16
- bne .L2202
+ bne .L2339
add r0, r0, #256
+ ldmfd sp!, {r4, lr}
b FtlVendorPartWrite
-.L2202:
- ldr r3, .L2205+4
- add ip, r1, r0
+.L2339:
ldr r3, [r3, #3956]
+ add ip, r1, r0
cmp ip, r3
- bhi .L2204
- b ftl_write.part.22
-.L2204:
+ bhi .L2341
+ ldmfd sp!, {r4, lr}
+ b ftl_write.part.24
+.L2341:
mvn r0, #0
- bx lr
-.L2206:
+ ldmfd sp!, {r4, pc}
+.L2343:
.align 2
-.L2205:
- .word .LANCHOR2
+.L2342:
.word .LANCHOR0
.fnend
.size ftl_write, .-ftl_write
@@ -19449,24 +21010,24 @@ ftl_read:
mov r4, r1
mov r8, r3
str r2, [sp, #28]
- bne .L2213
+ bne .L2350
add r0, r1, #256
mov r1, r2
mov r2, r3
bl FtlVendorPartRead
str r0, [sp, #16]
- b .L2214
-.L2213:
+ b .L2351
+.L2350:
ldr r3, [sp, #28]
add r3, r3, r1
str r3, [sp, #20]
- ldr r3, .L2243
+ ldr r3, .L2380
ldr r1, [sp, #20]
ldr r2, [r3, #3956]
cmp r1, r2
mvnhi r3, #0
strhi r3, [sp, #16]
- bhi .L2214
+ bhi .L2351
movw r2, #3922
mov r0, r4
ldrh r5, [r3, r2]
@@ -19482,7 +21043,7 @@ ftl_read:
ldr r1, [sp, #28]
add r3, r3, r0
str r3, [sp, #8]
- ldr r3, .L2243+4
+ ldr r3, .L2380+4
mov fp, r0
ldr r0, [sp, #12]
ldr r2, [r3, #-1808]
@@ -19495,32 +21056,32 @@ ftl_read:
str r2, [r3, #-1836]
bl FtlCacheMetchLpa
cmp r0, #0
- beq .L2215
+ beq .L2352
bl FtlCacheWriteBack
-.L2215:
+.L2352:
mov r9, #0
ldr r6, [sp, #12]
str r9, [sp, #32]
mov r5, r9
str r9, [sp, #16]
- ldr r7, .L2243
- b .L2238
-.L2232:
+ ldr r7, .L2380
+ b .L2375
+.L2369:
mov r2, #0
mov r0, r6
add r1, sp, #60
bl log2phys
ldr r2, [sp, #60]
cmn r2, #1
- bne .L2239
- b .L2242
-.L2220:
+ bne .L2376
+ b .L2379
+.L2357:
mla r0, r0, r6, sl
cmp r0, r4
- bcc .L2219
+ bcc .L2356
ldr r2, [sp, #20]
cmp r0, r2
- bcs .L2219
+ bcs .L2356
rsb r0, r4, r0
mov r1, #0
mov r2, #512
@@ -19528,19 +21089,19 @@ ftl_read:
add r0, r8, r0, asl #9
bl ftl_memset
ldr r3, [sp, #4]
-.L2219:
+.L2356:
add sl, sl, #1
- b .L2217
-.L2242:
+ b .L2354
+.L2379:
mov sl, #0
movw r3, #3922
-.L2217:
+.L2354:
ldrh r0, [r7, r3]
cmp sl, r0
- bcc .L2220
- b .L2221
-.L2239:
- ldr r3, .L2243+4
+ bcc .L2357
+ b .L2358
+.L2376:
+ ldr r3, .L2380+4
mov sl, #36
ldr r1, [r3, #-972]
mla sl, sl, r5, r1
@@ -19548,7 +21109,7 @@ ftl_read:
cmp r6, r1
str r2, [sl, #4]
movw r2, #3922
- bne .L2222
+ bne .L2359
ldr r3, [r3, #-944]
mov r0, r4
str r3, [sl, #8]
@@ -19565,12 +21126,12 @@ ftl_read:
str r1, [sp, #32]
cmp r1, r3
streq r8, [sl, #8]
- b .L2223
-.L2222:
+ b .L2360
+.L2359:
cmp r6, fp
ldrneh r3, [r7, r2]
mulne r3, r3, r6
- bne .L2240
+ bne .L2377
ldr r3, [r3, #-940]
ldrh r2, [r7, r2]
ldr r1, [sp, #20]
@@ -19578,14 +21139,14 @@ ftl_read:
mul r3, r2, r6
rsb r9, r3, r1
cmp r9, r2
- bne .L2223
-.L2240:
+ bne .L2360
+.L2377:
rsb r3, r4, r3
add r3, r8, r3, asl #9
str r3, [sl, #8]
-.L2223:
+.L2360:
movw r3, #3928
- ldr r2, .L2243+4
+ ldr r2, .L2380+4
ldrh r3, [r7, r3]
str r6, [sl, #16]
ldr r2, [r2, #-932]
@@ -19594,20 +21155,20 @@ ftl_read:
bic r3, r3, #3
add r3, r2, r3
str r3, [sl, #12]
-.L2221:
+.L2358:
ldr r3, [sp, #8]
add r6, r6, #1
subs r3, r3, #1
str r3, [sp, #8]
- beq .L2225
+ beq .L2362
movw r3, #3848
ldrh r3, [r7, r3]
cmp r5, r3, asl #3
- bne .L2238
-.L2225:
+ bne .L2375
+.L2362:
cmp r5, #0
- beq .L2238
- ldr sl, .L2243+4
+ beq .L2375
+ ldr sl, .L2380+4
mov r1, r5
mov r2, #0
ldr r0, [sl, #-972]
@@ -19624,7 +21185,7 @@ ftl_read:
str r3, [sp, #48]
mov r3, #0
str r3, [sp, #24]
-.L2231:
+.L2368:
ldr r3, [sp, #24]
mov r5, #36
ldr r1, [sp, #12]
@@ -19633,32 +21194,32 @@ ftl_read:
add r3, r3, r5
ldr r2, [r3, #16]
cmp r2, r1
- bne .L2227
+ bne .L2364
ldr r1, [r3, #8]
ldr r3, [sl, #-944]
cmp r1, r3
- bne .L2228
+ bne .L2365
ldr r3, [sp, #40]
mov r0, r8
ldr r2, [sp, #44]
add r1, r1, r3
- b .L2241
-.L2227:
+ b .L2378
+.L2364:
cmp r2, fp
- bne .L2228
+ bne .L2365
ldr r1, [r3, #8]
ldr r3, [sl, #-940]
cmp r1, r3
- bne .L2228
+ bne .L2365
movw r2, #3922
ldrh r0, [r7, r2]
ldr r2, [sp, #48]
mul r0, r0, fp
rsb r0, r4, r0
add r0, r8, r0, asl #9
-.L2241:
+.L2378:
bl memcpy
-.L2228:
+.L2365:
ldr r3, [sl, #-972]
add r0, r3, r5
ldr r2, [r3, r5]
@@ -19669,38 +21230,38 @@ ftl_read:
streq r1, [sl, #-1636]
ldr r3, [r3, r5]
cmp r3, #256
- bne .L2230
+ bne .L2367
ldr r0, [r0, #4]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L2230:
+.L2367:
ldr r3, [sp, #24]
add r3, r3, #1
str r3, [sp, #24]
cmp r3, r6
- bne .L2231
+ bne .L2368
ldr r6, [sp, #52]
mov r5, #0
-.L2238:
+.L2375:
ldr r3, [sp, #8]
cmp r3, #0
- bne .L2232
- ldr r3, .L2243+8
- ldr r2, .L2243+4
+ bne .L2369
+ ldr r3, .L2380+8
+ ldr r2, .L2380+4
ldrh r3, [r2, r3]
cmp r3, #0
- beq .L2214
+ beq .L2351
ldr r0, [sp, #8]
mov r1, #1
bl ftl_do_gc
-.L2214:
+.L2351:
ldr r0, [sp, #16]
add sp, sp, #68
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2244:
+.L2381:
.align 2
-.L2243:
+.L2380:
.word .LANCHOR0
.word .LANCHOR2
.word -1138
@@ -19802,8 +21363,8 @@ FlashBootVendorRead:
.fnend
.size FlashBootVendorRead, .-FlashBootVendorRead
.align 2
- .type rk_ftl_vendor_ops.constprop.26, %function
-rk_ftl_vendor_ops.constprop.26:
+ .type rk_ftl_vendor_ops.constprop.28, %function
+rk_ftl_vendor_ops.constprop.28:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@@ -19813,843 +21374,144 @@ rk_ftl_vendor_ops.constprop.26:
mov r2, r3
mov r0, r1
mov r1, #128
- beq .L2251
+ beq .L2388
b FlashBootVendorWrite
-.L2251:
+.L2388:
b FlashBootVendorRead
.fnend
- .size rk_ftl_vendor_ops.constprop.26, .-rk_ftl_vendor_ops.constprop.26
+ .size rk_ftl_vendor_ops.constprop.28, .-rk_ftl_vendor_ops.constprop.28
.align 2
- .global FlashLoadFactorBbt
- .type FlashLoadFactorBbt, %function
-FlashLoadFactorBbt:
+ .global FtlCheckVpc
+ .type FtlCheckVpc, %function
+FtlCheckVpc:
.fnstart
- @ args = 0, pretend = 0, frame = 48
+ @ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- .save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- movw r2, #3062
- ldr r9, .L2261
- movw r3, #3060
- ldr r4, .L2261+4
- .pad #52
- sub sp, sp, #52
- mov r1, #0
- mvn r7, #0
- ldrh r3, [r9, r3]
- add r0, r4, #232
- ldrh r8, [r9, r2]
- mov r2, #16
- mov r6, #0
- mul r8, r8, r3
- bl ftl_memset
- ldr r3, [r4, #228]
- str r6, [sp, #20]
- mov r4, r6
- str r3, [sp, #24]
- uxth r8, r8
- add r3, r8, r7
- uxth r3, r3
- str r3, [sp, #4]
- b .L2253
-.L2259:
- ldr r5, [sp, #4]
- sub r3, r8, #12
- mul fp, r8, r4
- ldr sl, .L2261+4
- b .L2254
-.L2257:
- add r2, fp, r5
- mov r1, #1
- add r0, sp, #12
- str r3, [sp, #0]
- mov r2, r2, asl #10
- str r2, [sp, #16]
- mov r2, r1
- bl FlashReadPages
- ldr r2, [sp, #12]
- ldr r3, [sp, #0]
- cmn r2, #1
- beq .L2255
- ldr r2, [sl, #228]
- ldrh r1, [r2, #0]
- movw r2, #61664
- cmp r1, r2
- bne .L2255
- ldr r0, .L2261+8
- mov r1, r4
- mov r2, r5
- add r6, r6, #1
+ stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr}
+ .save {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr}
+ mov r4, #0
+ ldr r1, .L2400
+ ldr r0, .L2400+4
bl printk
- ldr r3, .L2261+4
- uxth r6, r6
- add r3, r3, r4, asl #1
- strh r5, [r3, #232] @ movhi
- b .L2256
-.L2255:
- sub r5, r5, #1
- uxth r5, r5
-.L2254:
- cmp r5, r3
- bgt .L2257
-.L2256:
- ldrb r3, [r9, #3762] @ zero_extendqisi2
- add r4, r4, #1
- cmp r3, r6
- uxtb r4, r4
- moveq r7, #0
-.L2253:
- ldrb r3, [r9, #3762] @ zero_extendqisi2
- cmp r3, r4
- bhi .L2259
- mov r0, r7
- add sp, sp, #52
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2262:
- .align 2
-.L2261:
- .word .LANCHOR0
- .word .LANCHOR2
- .word .LC140
- .fnend
- .size FlashLoadFactorBbt, .-FlashLoadFactorBbt
- .align 2
- .global FlashReadFacBbtData
- .type FlashReadFacBbtData, %function
-FlashReadFacBbtData:
- .fnstart
- @ args = 0, pretend = 0, frame = 40
- @ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2273
- stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- .save {r4, r5, r6, r7, r8, r9, sl, lr}
- mov r6, r1
- mov r9, r2
- movw r1, #3062
- movw r2, #3060
- ldrh r8, [r3, r1]
- ldrh r2, [r3, r2]
- .pad #40
- sub sp, sp, #40
- ldr r7, .L2273+4
- mov r4, r0
- mul r8, r8, r2
- ldr r3, [r7, #148]
- str r3, [sp, #12]
- ldr r3, [r7, #228]
- uxth r8, r8
- sub r5, r8, #1
- mul sl, r8, r6
- str r3, [sp, #16]
- uxth r5, r5
- sub r8, r8, #16
- b .L2264
-.L2270:
- mov r1, #1
- add r3, r5, sl
- add r0, sp, #4
- mov r2, r1
- mov r3, r3, asl #10
- str r3, [sp, #8]
- bl FlashReadPages
- ldr r3, [sp, #4]
- cmn r3, #1
- beq .L2265
- ldr r3, [r7, #228]
- ldrh r2, [r3, #0]
- movw r3, #61664
- cmp r2, r3
- bne .L2265
- cmp r4, #0
- moveq r0, r4
- beq .L2266
- cmp r6, #0
- ldreq r3, .L2273+4
- moveq r0, #1
- beq .L2267
- b .L2268
-.L2269:
- ldr r2, [r3, #148]
- ubfx r1, r6, #5, #16
- and lr, r6, #31
- add r6, r6, #1
- ldr ip, [r2, r1, asl #2]
- uxth r6, r6
- orr ip, ip, r0, asl lr
- str ip, [r2, r1, asl #2]
-.L2267:
- ldr r2, [r3, #156]
- cmp r6, r2
- bcc .L2269
-.L2268:
- ldr r3, .L2273+4
- mov r2, r9
+ ldr r0, .L2400+8
+ mov r1, #8192
+ ldr r6, .L2400+12
+ bl __memzero
+ ldr r5, .L2400+16
+ b .L2390
+.L2392:
mov r0, r4
- ldr r1, [r3, #148]
- bl memcpy
- mov r2, #4
- ldr r0, .L2273+8
- mov r1, r4
- mov r3, r2
- bl rknand_print_hex
- mov r0, #0
- b .L2266
-.L2265:
- sub r5, r5, #1
- uxth r5, r5
-.L2264:
- cmp r5, r8
- bgt .L2270
- mvn r0, #0
-.L2266:
- add sp, sp, #40
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L2274:
- .align 2
-.L2273:
- .word .LANCHOR0
- .word .LANCHOR2
- .word .LC141
- .fnend
- .size FlashReadFacBbtData, .-FlashReadFacBbtData
- .align 2
- .global FlashGetBadBlockList
- .type FlashGetBadBlockList, %function
-FlashGetBadBlockList:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2282
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
- .save {r4, r5, r6, r7, r8, lr}
- mov r5, r0
- ldr r3, [r3, #3624]
- ldr r6, .L2282+4
- ldrb r2, [r3, #13] @ zero_extendqisi2
- ldrh r4, [r3, #14]
- ldr r0, [r6, #136]
- mul r4, r4, r2
- uxth r4, r4
- add r2, r4, #7
- mov r2, r2, lsr #3
- bl FlashReadFacBbtData
- cmn r0, #1
- beq .L2281
+ add r1, sp, #4
mov r2, #0
- mov r0, r4, lsr #4
- mov r3, r2
- sub r4, r4, #1
- mov r1, #1
- b .L2277
-.L2279:
- ldr ip, [r6, #136]
- mov r8, r2, lsr #5
- and r7, r2, #31
- ldr ip, [ip, r8, asl #2]
- ands ip, ip, r1, asl r7
- movne ip, r3, asl #1
- addne r3, r3, #1
- uxthne r3, r3
- strneh r2, [r5, ip] @ movhi
- cmp r3, r0
- bcs .L2281
- add r2, r2, #1
- uxth r2, r2
-.L2277:
- cmp r2, r4
- blt .L2279
- b .L2276
-.L2281:
- mov r3, #0
-.L2276:
- mov r3, r3, asl #1
- mvn r2, #0
- mov r0, #0
- strh r2, [r5, r3] @ movhi
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L2283:
- .align 2
-.L2282:
- .word .LANCHOR0
- .word .LANCHOR2
- .fnend
- .size FlashGetBadBlockList, .-FlashGetBadBlockList
- .align 2
- .global FtlMakeBbt
- .type FtlMakeBbt, %function
-FtlMakeBbt:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
- .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
- ldr r4, .L2302
- ldr r5, [r4, #-2088]
- cmp r5, #0
- bne .L2285
- ldr r7, .L2302+4
- bl FtlBbtMemInit
- ldr r6, .L2302+8
- bl FtlLoadFactoryBbt
- add sl, r7, #12
- b .L2286
-.L2292:
- ldrh r3, [sl], #2
- movw r2, #65535
- ldr r0, [r4, #-960]
- movw fp, #3912
- ldr r9, [r4, #-936]
- cmp r3, r2
- str r0, [r4, #188]
- str r9, [r4, #192]
- beq .L2287
- ldrh r8, [r6, fp]
- mov r1, #1
- mov r2, r1
- ldr r0, .L2302+12
- mla r8, r8, r5, r3
- mov r3, r8, asl #10
- str r3, [r4, #184]
- bl FlashReadPages
- ldrh r2, [r6, fp]
- ldr r0, [r7, #28]
- add r2, r2, #7
- ldr r1, [r4, #188]
- mov r2, r2, lsr #3
- bl memcpy
- b .L2288
-.L2287:
- mov r1, r5
- bl FlashGetBadBlockList
- ldr r0, [r4, #188]
- ldr r1, [r7, #28]
- bl FtlBbt2Bitmap
- ldrh fp, [r6, fp]
-.L2290:
- sub fp, fp, #1
- uxth fp, fp
-.L2301:
- movw r8, #3912
- ldrh r0, [r6, r8]
- mla r0, r0, r5, fp
- uxth r0, r0
- bl FtlBbmIsBadBlock
- cmp r0, #1
- beq .L2290
- mov r1, #0
- mov r2, #16
- strh fp, [sl, #-2] @ movhi
- ldr r0, [r4, #-936]
- bl ftl_memset
- ldr r3, .L2302+16
- strh r3, [r9, #0] @ movhi
- mov r3, #0
- str r3, [r9, #4]
- ldrh r3, [sl, #-2]
- ldrh r8, [r6, r8]
- strh r3, [r9, #2] @ movhi
- ldrh r3, [sl, #-2]
- ldr r1, [r7, #28]
- ldr r0, [r4, #188]
- mla r8, r8, r5, r3
- mov r3, r8, asl #10
- str r3, [r4, #184]
- ldr r3, .L2302+20
- ldrh r2, [r4, r3]
- mov r2, r2, asl #2
- bl memcpy
- mov r1, #1
- mov r2, r1
- ldr r0, .L2302+12
- bl FlashEraseBlocks
- mov r1, #1
- mov r3, r1
- ldr r0, .L2302+12
- mov r2, r1
- bl FlashProgPages
- ldr r3, [r4, #180]
- cmn r3, #1
- bne .L2288
- uxth r0, r8
- bl FtlBbmMapBadBlock
- b .L2301
-.L2288:
- uxth r0, r8
- add r5, r5, #1
- bl FtlBbmMapBadBlock
- add r7, r7, #4
-.L2286:
- movw r3, #3870
- ldrh r3, [r6, r3]
- cmp r5, r3
- bcc .L2292
+ bl log2phys
+ ldr r0, [sp, #4]
+ cmn r0, #1
+ beq .L2391
+ ubfx r0, r0, #10, #16
+ bl P2V_block_in_plane
+ add r0, r5, r0, asl #1
+ add r0, r0, #460
+ ldrh r3, [r0, #0]
+ add r3, r3, #1
+ strh r3, [r0, #0] @ movhi
+.L2391:
+ add r4, r4, #1
+.L2390:
+ ldr r3, [r6, #3976]
+ ldr r7, .L2400+12
+ cmp r4, r3
+ bcc .L2392
+ ldr r5, .L2400+16
+ mov r6, #3856
+ ldr r0, .L2400+20
+ mov r2, #2
+ ldrh r3, [r7, r6]
mov r4, #0
- ldr r7, .L2302+8
- movw r6, #3930
- b .L2293
-.L2294:
- mov r0, r4
+ ldr r1, [r5, #-2016]
+ bl rknand_print_hex
+ ldr r0, .L2400+24
+ add r1, r5, #460
+ mov r2, #2
+ ldrh r3, [r7, r6]
+ bl rknand_print_hex
+ b .L2393
+.L2395:
+ ldr r2, [r5, #-2016]
+ mov r3, r4, asl #1
+ ldrh r2, [r2, r3]
+ add r3, r5, r3
+ add r3, r3, #460
+ ldrh r3, [r3, #0]
+ cmp r2, r3
+ beq .L2394
+ ldr r0, .L2400+28
+ mov r1, r4
+ bl printk
+.L2394:
add r4, r4, #1
- bl FtlBbmMapBadBlock
uxth r4, r4
-.L2293:
+.L2393:
ldrh r3, [r7, r6]
- ldr r5, .L2302+8
cmp r3, r4
- bhi .L2294
- movw r7, #3992
- movw r6, #3980
- ldrh r4, [r5, r7]
- sub r4, r4, #1
- uxth r4, r4
- b .L2295
-.L2300:
- mov r0, r4
- bl FtlBbmIsBadBlock
- cmp r0, #1
- beq .L2296
- mov r0, r4
- bl FlashTestBlk
- cmp r0, #0
- beq .L2297
- mov r0, r4
- bl FtlBbmMapBadBlock
- b .L2296
-.L2297:
- ldrh r2, [r5, r6]
- movw r3, #65535
- cmp r2, r3
- streqh r4, [r5, r6] @ movhi
-.L2298:
- ldrne r2, .L2302+8
- movne r3, #3984
- strneh r4, [r2, r3] @ movhi
- bne .L2299
-.L2296:
- sub r4, r4, #1
+ ldr r3, .L2400+16
+ bhi .L2395
+ ldr r2, [r3, #-2004]
+ cmp r2, #0
+ beq .L2389
+ ldr r4, [r3, #-2024]
+ mov r6, #0
+ ldr r1, .L2400+32
+ mov r5, r3
+ rsb r2, r4, r2
+ ldr r4, .L2400+36
+ mov r8, #6
+ movw sl, #65535
+ mov r2, r2, asr #1
+ ldrh r7, [r3, r1]
+ mul r4, r4, r2
uxth r4, r4
-.L2295:
- ldrh r3, [r5, r7]
- sub r3, r3, #48
- cmp r4, r3
- bgt .L2300
-.L2299:
- ldr r4, .L2302+8
- movw r6, #3980
- ldr r3, .L2302
- mov r5, #3984
- mov r7, #0
- movw r8, #3982
- str r7, [r4, #3988]
- mov r2, #2
- ldr r0, [r3, #-2084]
- mov r1, #1
- ldrh r3, [r4, r6]
- strh r7, [r4, r8] @ movhi
- mov r3, r3, asl #10
- str r3, [r0, #4]
- ldrh r3, [r4, r5]
- mov r3, r3, asl #10
- str r3, [r0, #40]
- bl FlashEraseBlocks
- ldrh r0, [r4, r6]
- bl FtlBbmMapBadBlock
- ldrh r0, [r4, r5]
- bl FtlBbmMapBadBlock
- bl FtlBbmTblFlush
- ldr r3, [r4, #3988]
- ldrh r2, [r4, r5]
- add r3, r3, #1
- str r3, [r4, #3988]
- ldrh r3, [r4, r6]
- strh r7, [r4, r8] @ movhi
- strh r2, [r4, r6] @ movhi
- strh r3, [r4, r5] @ movhi
- bl FtlBbmTblFlush
-.L2285:
- mov r0, #0
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2303:
- .align 2
-.L2302:
- .word .LANCHOR2
- .word .LANCHOR0+3980
- .word .LANCHOR0
- .word .LANCHOR2+180
- .word -3872
- .word -1028
- .fnend
- .size FtlMakeBbt, .-FtlMakeBbt
- .align 2
- .type FtlLowFormat.part.24, %function
-FtlLowFormat.part.24:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
- .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
- mov r6, #3952
- ldr r5, .L2325
- mov r1, #0
- ldr r4, .L2325+4
- ldrh r2, [r5, r6]
- ldr r0, [r4, #-900]
- mov r2, r2, asl #2
- bl ftl_memset
- ldrh r2, [r5, r6]
- mov r1, #0
- ldr r0, [r4, #-1032]
- mov r2, r2, asl #2
- bl ftl_memset
- ldr r0, [r5, #3852]
- mov r3, #0
- str r3, [r4, #-1804]
- str r3, [r4, #-1800]
- uxth r0, r0
- bl FtlFreeSysBlkQueueInit
- bl FtlLoadBbt
- cmp r0, #0
- beq .L2305
- bl FtlMakeBbt
-.L2305:
- mov r3, #0
- ldr ip, .L2325
- movw r0, #3922
- ldr r2, .L2325+4
- ldr r1, .L2325+8
- b .L2306
-.L2307:
- ldr lr, [r2, #-944]
- mvn r4, r3
- orr r4, r3, r4, asl #16
- str r4, [lr, r3, asl #2]
- ldr lr, [r2, #-940]
- str r1, [lr, r3, asl #2]
- add r3, r3, #1
- uxth r3, r3
-.L2306:
- ldrh lr, [ip, r0]
- ldr r8, .L2325
- cmp r3, lr, asl #7
- blt .L2307
- mov r3, #3856
- mov r5, #0
- ldrh r6, [r8, r3]
- movw r7, #3858
- b .L2308
-.L2309:
- mov r0, r6
- mov r1, #1
- bl FtlLowFormatEraseBlock
- add r6, r6, #1
- uxth r6, r6
- add r5, r5, r0
- uxth r5, r5
-.L2308:
- ldrh r3, [r8, r7]
- ldr r4, .L2325
- cmp r3, r6
- bhi .L2309
- movw r3, #3848
- ldrh r1, [r4, r3]
- sub r3, r5, #3
- cmp r3, r1, asl #1
- blt .L2310
- mov r0, r5
- movw r6, #3858
- bl __aeabi_uidiv
- ldr r3, [r4, #3948]
- add r0, r0, r3
- uxth r0, r0
- bl FtlSysBlkNumInit
- ldr r0, [r4, #3852]
- uxth r0, r0
- bl FtlFreeSysBlkQueueInit
- mov r3, #3856
- ldrh r5, [r4, r3]
- b .L2311
-.L2312:
- mov r0, r5
- mov r1, #1
- bl FtlLowFormatEraseBlock
- add r5, r5, #1
- uxth r5, r5
-.L2311:
- ldrh r3, [r4, r6]
- cmp r3, r5
- bhi .L2312
-.L2310:
- mov r4, #0
- ldr r8, .L2325
- mov r6, r4
- mov r7, #3856
- b .L2313
-.L2314:
- mov r0, r6
- mov r1, #0
- bl FtlLowFormatEraseBlock
+ b .L2397
+.L2399:
+ ldr r2, [r5, #-2016]
+ mov r3, r4, asl #1
+ ldrh r2, [r2, r3]
+ cmp r2, #0
+ beq .L2398
+ add r3, r5, r3
+ ldr r0, .L2400+40
+ add r3, r3, #460
+ mov r1, r4
+ ldrh r3, [r3, #0]
+ bl printk
+.L2398:
+ mul r4, r8, r4
+ ldr r3, [r5, #-2024]
+ ldrh r4, [r3, r4]
+ cmp r4, sl
+ beq .L2389
add r6, r6, #1
uxth r6, r6
- add r4, r4, r0
- uxth r4, r4
-.L2313:
- ldrh r3, [r8, r7]
- ldr r5, .L2325
- cmp r3, r6
- bhi .L2314
- movw r3, #3858
- ldr r8, .L2325+4
- ldrh r3, [r5, r3]
- ldr fp, [r5, #3860]
- ldr r9, .L2325+12
- str r3, [r8, #-984]
- movw r3, #3848
- ldrh r6, [r5, r3]
- mov r0, fp
- mov r1, r6
- bl __aeabi_uidiv
- ubfx sl, r0, #5, #16
- mov r7, r0
- add r3, sl, #36
- strh r3, [r8, r9] @ movhi
- mov r3, #24
- str r0, [r5, #3976]
- mul r3, r3, r6
- cmp r4, r3
- ble .L2315
- rsb r0, r4, fp
- mov r1, r6
- bl __aeabi_uidiv
- str r0, [r5, #3976]
- mov r0, r0, lsr #5
- add r0, r0, #24
- strh r0, [r8, r9] @ movhi
-.L2315:
- ldr r3, .L2325
- ldr r3, [r3, #3840]
- cmp r3, #1
- bne .L2316
- mov r0, r4
- mov r1, r6
- bl __aeabi_uidiv
- ldr r8, .L2325+4
- ldr r5, .L2325+12
- ldrh r9, [r8, r5]
- uxtah r0, r9, r0
- add r9, r9, r0, lsr #2
- strh r9, [r8, r5] @ movhi
-.L2316:
- ldr r3, .L2325
- ldrb r3, [r3, #928] @ zero_extendqisi2
- cmp r3, #0
- beq .L2317
- mov r0, r4
- mov r1, r6
- bl __aeabi_uidiv
- ldr r8, .L2325+4
- ldr r5, .L2325+12
- ldrh r9, [r8, r5]
- uxtah r0, r9, r0
- add r9, r9, r0, lsr #2
- strh r9, [r8, r5] @ movhi
-.L2317:
- ldr r0, .L2325
- movw r3, #3908
- ldrh r3, [r0, r3]
- cmp r3, #0
- beq .L2318
- ldr r1, .L2325+4
- ldr r2, .L2325+12
- ldrh ip, [r1, r2]
- add ip, ip, r3, lsr #1
- strh ip, [r1, r2] @ movhi
- mul ip, r6, r3
- cmp ip, r4
- strgt r7, [r0, #3976]
- addgt r3, r3, #32
- addgt sl, sl, r3
- strgth sl, [r1, r2] @ movhi
-.L2318:
- ldr r4, .L2325+4
- ldr r5, .L2325
- ldr r3, .L2325+12
- ldr r7, .L2325+16
- ldr r2, [r5, #3976]
- ldrh r3, [r4, r3]
- rsb r3, r3, r2
- mul r6, r6, r3
- movw r3, #3916
- ldrh r3, [r5, r3]
- str r6, [r4, #216]
- mul r6, r3, r6
- movw r3, #3922
- ldrh r3, [r5, r3]
- str r6, [r5, #3976]
- mul r6, r3, r6
- str r6, [r5, #3956]
- mvn r6, #0
- bl FtlBbmTblFlush
- movw r3, #3858
- ldrh r2, [r5, r3]
- mov r1, #0
- ldr r0, [r4, #-2016]
- mov r2, r2, asl #1
- bl ftl_memset
- ldr r1, .L2325+20
- mov r3, #0
- ldr r2, .L2325+24
- str r3, [r4, #-1844]
- strh r3, [r4, r1] @ movhi
- sub r1, r1, #236
- strb r3, [r4, #-1754]
- strh r3, [r4, r1] @ movhi
- mov r1, #255
- strb r3, [r4, #-1752]
- strb r3, [r4, #-1990]
- strh r3, [r4, r7] @ movhi
- mov r3, #1
- strb r3, [r4, #-1988]
- mov r3, #3856
- strh r6, [r4, r2] @ movhi
- ldrh r2, [r5, r3]
- ldr r0, [r4, #-1840]
- mov r2, r2, lsr #3
- bl ftl_memset
-.L2319:
- ldr r0, .L2325+28
- bl make_superblock
- ldrb r3, [r4, #-1989] @ zero_extendqisi2
- ldr r5, .L2325+4
- cmp r3, #0
- ldr r3, .L2325+16
- bne .L2320
- ldrh r3, [r4, r7]
- ldr r2, [r4, #-2016]
- mov r3, r3, asl #1
- strh r6, [r2, r3] @ movhi
- ldrh r3, [r4, r7]
- add r3, r3, #1
- strh r3, [r4, r7] @ movhi
- b .L2319
-.L2320:
- ldr r2, [r5, #-1804]
- mvn r7, #0
- ldr r1, [r5, #-2016]
- ldr r6, .L2325+32
- str r2, [r5, #-1984]
- add r2, r2, #1
- str r2, [r5, #-1804]
- ldr r2, .L2325+36
- ldrh r0, [r5, r2]
- ldrh r2, [r5, r3]
- mov r2, r2, asl #1
- strh r0, [r1, r2] @ movhi
- mov r2, #0
- ldr r0, .L2325+40
- ldrh r3, [r5, r3]
- strb r2, [r5, #-1942]
- add r3, r3, #1
- strh r2, [r5, r0] @ movhi
- strh r3, [r5, r6] @ movhi
- mov r3, #1
- strb r3, [r5, #-1940]
-.L2321:
- ldr r0, .L2325+44
- bl make_superblock
- ldrb r3, [r5, #-1941] @ zero_extendqisi2
- ldr r4, .L2325+4
- cmp r3, #0
- bne .L2322
- ldrh r3, [r5, r6]
- ldr r2, [r5, #-2016]
- mov r3, r3, asl #1
- strh r7, [r2, r3] @ movhi
- ldrh r3, [r5, r6]
- add r3, r3, #1
- strh r3, [r5, r6] @ movhi
- b .L2321
-.L2322:
- ldr r3, [r4, #-1804]
- mvn r5, #0
- ldr r2, [r4, #-2016]
- str r3, [r4, #-1936]
- add r3, r3, #1
- str r3, [r4, #-1804]
- ldr r3, .L2325+48
- ldrh r1, [r4, r3]
- sub r3, r3, #4
- ldrh r3, [r4, r3]
- mov r3, r3, asl #1
- strh r1, [r2, r3] @ movhi
- ldr r3, .L2325+52
- strh r5, [r4, r3] @ movhi
- bl FtlFreeSysBlkQueueOut
- ldr r3, .L2325+56
- mov r2, #0
- strh r0, [r4, r3] @ movhi
- add r3, r3, #2
- strh r2, [r4, r3] @ movhi
- add r3, r3, #2
- ldr r2, [r4, #216]
- strh r5, [r4, r3] @ movhi
- add r3, r3, #2
- strh r2, [r4, r3] @ movhi
- ldr r3, [r4, #-1804]
- str r3, [r4, #-1764]
- add r3, r3, #1
- str r3, [r4, #-1804]
- bl FtlVpcTblFlush
- bl FtlSysBlkInit
- cmp r0, #0
- ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
- ldr r3, .L2325+60
- mov r2, #1
- str r2, [r3, #2996]
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2326:
+.L2397:
+ cmp r6, r7
+ bne .L2399
+.L2389:
+ ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, sl, pc}
+.L2401:
.align 2
-.L2325:
+.L2400:
+ .word .LANCHOR3+77
+ .word .LC101
+ .word .LANCHOR2+460
.word .LANCHOR0
.word .LANCHOR2
- .word 168778952
- .word -1776
- .word -1996
- .word -1758
- .word -1760
- .word .LANCHOR2-1996
- .word -1948
- .word -1992
- .word -1946
- .word .LANCHOR2-1948
- .word -1944
- .word -1900
- .word -1772
- .word .LANCHOR1
- .fnend
- .size FtlLowFormat.part.24, .-FtlLowFormat.part.24
- .align 2
- .global FtlLowFormat
- .type FtlLowFormat, %function
-FtlLowFormat:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, lr}
- .save {r3, lr}
- ldr r3, .L2329
- ldr r3, [r3, #-2088]
- cmp r3, #0
- bne .L2328
- bl FtlLowFormat.part.24
-.L2328:
- mov r0, #0
- ldmfd sp!, {r3, pc}
-.L2330:
- .align 2
-.L2329:
- .word .LANCHOR2
+ .word .LC158
+ .word .LC159
+ .word .LC160
+ .word -2000
+ .word -1431655765
+ .word .LC161
.fnend
- .size FtlLowFormat, .-FtlLowFormat
+ .size FtlCheckVpc, .-FtlCheckVpc
.align 2
.global HynixGetReadRetryDefault
.type HynixGetReadRetryDefault, %function
@@ -20657,7 +21519,7 @@ HynixGetReadRetryDefault:
.fnstart
@ args = 0, pretend = 0, frame = 64
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2416
+ ldr r3, .L2487
mvn r2, #83
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
@@ -20673,16 +21535,16 @@ HynixGetReadRetryDefault:
strb r0, [r3, #5]
strb r1, [r3, #6]
strb r2, [r3, #7]
- bne .L2332
+ bne .L2403
mvn r2, #88
strb r2, [r3, #4]
- ldr r3, .L2416+4
+ ldr r3, .L2487+4
mvn r2, #8
strb r2, [r3, #3025]
- b .L2388
-.L2332:
+ b .L2459
+.L2403:
cmp r4, #3
- bne .L2334
+ bne .L2405
mvn r2, #79
strb r2, [r3, #4]
mvn r2, #78
@@ -20698,10 +21560,10 @@ HynixGetReadRetryDefault:
mvn r2, #73
strb r2, [r3, #10]
mvn r2, #72
- b .L2411
-.L2334:
+ b .L2482
+.L2405:
cmp r4, #4
- bne .L2335
+ bne .L2406
mvn ip, #51
strb r0, [r3, #9]
strb ip, [r3, #4]
@@ -20714,14 +21576,14 @@ HynixGetReadRetryDefault:
strb ip, [r3, #7]
mvn ip, #50
strb ip, [r3, #8]
-.L2411:
+.L2482:
mov r6, #8
strb r2, [r3, #11]
mov r5, r6
- b .L2333
-.L2335:
+ b .L2404
+.L2406:
cmp r4, #5
- bne .L2336
+ bne .L2407
mov r2, #56
mov r6, #8
strb r2, [r3, #4]
@@ -20731,10 +21593,10 @@ HynixGetReadRetryDefault:
strb r2, [r3, #6]
mov r2, #59
strb r2, [r3, #7]
- b .L2410
-.L2336:
+ b .L2481
+.L2407:
cmp r4, #6
- bne .L2337
+ bne .L2408
mov r2, #14
mov r6, #12
strb r2, [r3, #4]
@@ -20744,10 +21606,10 @@ HynixGetReadRetryDefault:
strb r2, [r3, #6]
mov r2, #17
strb r2, [r3, #7]
- b .L2410
-.L2337:
+ b .L2481
+.L2408:
cmp r4, #7
- bne .L2388
+ bne .L2459
mvn r2, #79
mov r6, #12
strb r2, [r3, #4]
@@ -20770,17 +21632,17 @@ HynixGetReadRetryDefault:
strb r2, [r3, #12]
mvn r2, #42
strb r2, [r3, #13]
- b .L2333
-.L2388:
+ b .L2404
+.L2459:
mov r6, #7
-.L2410:
+.L2481:
mov r5, #4
-.L2333:
+.L2404:
sub r3, r4, #1
cmp r3, #1
- bhi .L2406
- b .L2414
-.L2344:
+ bhi .L2477
+ b .L2485
+.L2415:
add r2, fp, r8
add r4, fp, #20
mov r7, #0
@@ -20792,7 +21654,7 @@ HynixGetReadRetryDefault:
ldr r1, [r2, #864]
add sl, sl, #8
add sl, r1, sl, asl #8
-.L2340:
+.L2411:
add r2, fp, r7
str r5, [sl, #8]
mov r0, #80
@@ -20806,26 +21668,26 @@ HynixGetReadRetryDefault:
ldr r3, [sp, #12]
uxtb r2, r7
cmp r2, r6
- bcc .L2340
+ bcc .L2411
mov r2, #0
- b .L2341
-.L2342:
+ b .L2412
+.L2413:
ldrb r7, [r0, r1, asl #2] @ zero_extendqisi2
ldrb r5, [r4, r2] @ zero_extendqisi2
add r5, r7, r5
strb r5, [ip, r1, asl #3]
add r1, r1, #1
cmp r1, #7
- bne .L2342
+ bne .L2413
add r2, r2, #1
cmp r2, #4
- beq .L2343
-.L2341:
+ beq .L2414
+.L2412:
mov r1, #1
add ip, r4, r2
add r0, r2, r9
- b .L2342
-.L2343:
+ b .L2413
+.L2414:
add r8, r8, #1
mov r2, #0
strb r2, [r4, #16]
@@ -20836,24 +21698,24 @@ HynixGetReadRetryDefault:
strb r2, [r4, #48]
strb r2, [r4, #41]
strb r2, [r4, #49]
- b .L2338
-.L2414:
- ldr r9, .L2416+8
+ b .L2409
+.L2485:
+ ldr r9, .L2487+8
mov r3, r6
mov r8, #0
mov r6, r5
-.L2338:
- ldr fp, .L2416
+.L2409:
+ ldr fp, .L2487
ldrb r2, [fp, #3762] @ zero_extendqisi2
cmp r2, r8
- bhi .L2344
+ bhi .L2415
mov r5, r6
mov r6, r3
- b .L2345
-.L2406:
+ b .L2416
+.L2477:
sub r3, r4, #3
cmp r3, #4
- bhi .L2345
+ bhi .L2416
mul r3, r6, r5
mov sl, #0
mov r7, sl
@@ -20862,8 +21724,8 @@ HynixGetReadRetryDefault:
mov r3, r3, asl #4
str r2, [sp, #24]
str r3, [sp, #52]
- b .L2346
-.L2387:
+ b .L2417
+.L2458:
add r3, r1, sl
ldrb r6, [r3, #3764] @ zero_extendqisi2
add r3, r1, r6, asl #3
@@ -20888,30 +21750,30 @@ HynixGetReadRetryDefault:
cmp r4, #4
mov r3, #54
str r3, [r8, #8]
- bne .L2349
+ bne .L2420
mov r3, #255
str r3, [r8, #4]
mov r3, #64
str r3, [r9, fp, asl #8]
mov r3, #204
- b .L2412
-.L2349:
+ b .L2483
+.L2420:
sub r3, r4, #5
cmp r3, #1
- ldrls r3, .L2416
+ ldrls r3, .L2487
ldrlsb r3, [r3, #4] @ zero_extendqisi2
strls r3, [r8, #4]
movls r3, #82
- bls .L2413
-.L2351:
+ bls .L2484
+.L2422:
mov r3, #174
str r3, [r8, #4]
mov r3, #176
str r7, [r9, fp, asl #8]
-.L2412:
+.L2483:
str r3, [r8, #4]
mov r3, #77
-.L2413:
+.L2484:
cmp r4, #6
str r3, [r9, fp, asl #8]
mov r0, r6
@@ -20939,77 +21801,77 @@ HynixGetReadRetryDefault:
cmp r3, #1
str r3, [sp, #36]
movls r1, #16
- bls .L2355
+ bls .L2426
cmp r4, #7
moveq r1, #32
movne r1, #2
-.L2355:
- ldr r3, .L2416+12
+.L2426:
+ ldr r3, .L2487+12
ldr r2, [r3, #148]
mov r3, #0
-.L2356:
+.L2427:
ldr r0, [r8, #0]
strb r0, [r2, r3]
add r3, r3, #1
uxtb r0, r3
cmp r0, r1
- bcc .L2356
+ bcc .L2427
cmp r4, #7
- bne .L2357
+ bne .L2428
mov r3, #0
-.L2359:
+.L2430:
ldrb r1, [r2, #0] @ zero_extendqisi2
cmp r1, #12
- beq .L2358
+ beq .L2429
ldrb r1, [r2, #1] @ zero_extendqisi2
cmp r1, #10
- beq .L2358
+ beq .L2429
add r3, r3, #1
add r2, r2, #4
uxtb r3, r3
cmp r3, #8
- bne .L2359
- b .L2360
-.L2358:
+ bne .L2430
+ b .L2431
+.L2429:
cmp r3, #6
- bls .L2361
-.L2360:
- ldr r0, .L2416+16
+ bls .L2432
+.L2431:
+ ldr r0, .L2487+16
mov r1, #0
bl printk
-.L2362:
- b .L2362
-.L2357:
+.L2433:
+ b .L2433
+.L2428:
cmp r4, #6
- bne .L2361
+ bne .L2432
mov r1, #8
-.L2363:
+.L2434:
ldrb r3, [r2], #1 @ zero_extendqisi2
cmp r3, #12
- beq .L2361
+ beq .L2432
ldrb r3, [r2, #7] @ zero_extendqisi2
cmp r3, #4
- beq .L2361
+ beq .L2432
sub r1, r1, #1
uxtb r1, r1
cmp r1, #0
- bne .L2363
- b .L2415
-.L2365:
- b .L2365
-.L2361:
- ldr r3, .L2416+12
+ bne .L2434
+ b .L2486
+.L2436:
+ b .L2436
+.L2432:
+ ldr r3, .L2487+12
mov r2, #0
ldr ip, [r3, #148]
str ip, [sp, #40]
-.L2366:
+.L2437:
ldr r1, [r8, #0]
ldr lr, [sp, #40]
ldr ip, [sp, #52]
strb r1, [lr, r2]
add r2, r2, #1
cmp r2, ip
- blt .L2366
+ blt .L2437
ldr r2, [sp, #24]
ldr r1, [r3, #148]
mov r3, #8
@@ -21017,10 +21879,10 @@ HynixGetReadRetryDefault:
mov lr, r2, asl #3
add r1, r1, ip
str ip, [sp, #32]
-.L2368:
+.L2439:
mov r2, #0
mov r0, r2
-.L2367:
+.L2438:
ldr ip, [r1, r2]
add r0, r0, #1
mvn ip, ip
@@ -21028,14 +21890,14 @@ HynixGetReadRetryDefault:
ldr ip, [sp, #24]
add r2, r2, #4
cmp r0, ip
- blt .L2367
+ blt .L2438
subs r3, r3, #1
add r1, r1, lr
- bne .L2368
+ bne .L2439
str r3, [sp, #16]
str sl, [sp, #60]
- b .L2369
-.L2373:
+ b .L2440
+.L2444:
mov lr, #1
mov r0, #0
mov ip, lr, asl r2
@@ -21043,7 +21905,7 @@ HynixGetReadRetryDefault:
mov sl, #16
str r3, [sp, #4]
str sl, [sp, #20]
-.L2371:
+.L2442:
ldr r3, [sp, #56]
ldr r3, [r3, r0]
and sl, ip, r3
@@ -21054,13 +21916,13 @@ HynixGetReadRetryDefault:
subs r3, r3, #1
add r0, r0, sl
str r3, [sp, #20]
- bne .L2371
+ bne .L2442
cmp lr, #8
add r2, r2, #1
orrhi r1, r1, ip
cmp r2, #32
ldr r3, [sp, #4]
- bne .L2373
+ bne .L2444
ldr ip, [sp, #16]
ldr r2, [sp, #24]
add ip, ip, #1
@@ -21069,50 +21931,50 @@ HynixGetReadRetryDefault:
str ip, [sp, #16]
str r1, [sl, r3]
add r3, r3, #4
- bge .L2374
-.L2369:
- ldr sl, .L2416+12
+ bge .L2445
+.L2440:
+ ldr sl, .L2487+12
mov r1, #0
mov r2, r1
ldr sl, [sl, #148]
add ip, sl, r3
str ip, [sp, #56]
str sl, [sp, #44]
- b .L2373
-.L2374:
- ldr r3, .L2416+12
+ b .L2444
+.L2445:
+ ldr r3, .L2487+12
ldr sl, [sp, #60]
ldr r1, [r3, #148]
mov r3, #0
mov r2, r3
-.L2376:
+.L2447:
ldr r0, [r1, r3]
add r3, r3, #4
cmp r0, #0
addeq r2, r2, #1
cmp r3, #32
- bne .L2376
+ bne .L2447
cmp r2, #7
- ble .L2377
- ldr r0, .L2416+20
+ ble .L2448
+ ldr r0, .L2487+20
mov r2, #1
mov r3, #1024
bl rknand_print_hex
- ldr r0, .L2416+16
+ ldr r0, .L2487+16
mov r1, #0
bl printk
-.L2378:
- b .L2378
-.L2377:
+.L2449:
+ b .L2449
+.L2448:
cmp r4, #6
moveq r0, #4
streq r0, [sp, #16]
- beq .L2379
+ beq .L2450
cmp r4, #7
moveq lr, #10
movne lr, #8
str lr, [sp, #16]
-.L2379:
+.L2450:
cmp r5, #0
ldr r0, [sp, #40]
subne r3, r5, #1
@@ -21123,14 +21985,14 @@ HynixGetReadRetryDefault:
ldr r1, [sp, #28]
addne r3, r3, #1
strne r3, [sp, #20]
- b .L2382
-.L2383:
+ b .L2453
+.L2454:
ldrb lr, [ip], #1 @ zero_extendqisi2
strb lr, [r1, r3]
add r3, r3, #1
uxtb lr, r3
cmp lr, r5
- bcc .L2383
+ bcc .L2454
ldr r3, [sp, #20]
add r2, r2, #1
ldr ip, [sp, #16]
@@ -21138,12 +22000,12 @@ HynixGetReadRetryDefault:
ldr r3, [sp, #48]
add r1, r1, ip
cmp r2, r3
- bge .L2384
-.L2382:
+ bge .L2455
+.L2453:
mov ip, r0
mov r3, #0
- b .L2383
-.L2384:
+ b .L2454
+.L2455:
mov r3, #255
mov r0, r6
str r3, [r8, #8]
@@ -21152,10 +22014,10 @@ HynixGetReadRetryDefault:
cmp ip, #1
movhi r3, #56
strhi r3, [r8, #8]
- bhi .L2386
+ bhi .L2457
mov r3, #54
str r3, [r8, #8]
- ldr r3, .L2416
+ ldr r3, .L2487
mov r0, sl
mvn r1, #0
ldrb r3, [r3, #4] @ zero_extendqisi2
@@ -21164,36 +22026,36 @@ HynixGetReadRetryDefault:
str r7, [r9, fp, asl #8]
str r3, [r8, #8]
bl FlashReadCmd
-.L2386:
+.L2457:
mov r0, r6
add sl, sl, #1
bl NandcWaitFlashReady
uxtb sl, sl
-.L2346:
- ldr r1, .L2416
+.L2417:
+ ldr r1, .L2487
ldrb r3, [r1, #3762] @ zero_extendqisi2
cmp r3, sl
- bhi .L2387
+ bhi .L2458
ldr r6, [sp, #48]
-.L2345:
- ldr r3, .L2416
+.L2416:
+ ldr r3, .L2487
strb r5, [r3, #1]
strb r6, [r3, #2]
add sp, sp, #68
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2415:
- ldr r0, .L2416+16
+.L2486:
+ ldr r0, .L2487+16
bl printk
- b .L2365
-.L2417:
+ b .L2436
+.L2488:
.align 2
-.L2416:
+.L2487:
.word .LANCHOR0
.word .LANCHOR1
.word .LANCHOR1+3008
.word .LANCHOR2
- .word .LC142
- .word .LC143
+ .word .LC162
+ .word .LC163
.fnend
.size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault
.align 2
@@ -21209,15 +22071,15 @@ FlashGetReadRetryDefault:
ldmeqfd sp!, {r3, pc}
sub r2, r3, #1
cmp r2, #6
- bhi .L2420
+ bhi .L2491
ldmfd sp!, {r3, lr}
b HynixGetReadRetryDefault
-.L2420:
+.L2491:
cmp r3, #49
- bne .L2421
- ldr r0, .L2422
+ bne .L2492
+ ldr r0, .L2493
mov r2, #64
- ldr r1, .L2422+4
+ ldr r1, .L2493+4
strb r3, [r0, #0]
mov r3, #4
strb r3, [r0, #1]
@@ -21226,12 +22088,12 @@ FlashGetReadRetryDefault:
add r0, r0, #4
bl memcpy
ldmfd sp!, {r3, pc}
-.L2421:
+.L2492:
ldmfd sp!, {r3, lr}
- b FlashGetReadRetryDefault.part.25
-.L2423:
+ b FlashGetReadRetryDefault.part.27
+.L2494:
.align 2
-.L2422:
+.L2493:
.word .LANCHOR0
.word .LANCHOR1+2924
.fnend
@@ -21247,9 +22109,9 @@ FlashInit:
.save {r4, r5, r6, r7, r8, lr}
mov r7, r0
mov r0, #32768
- ldr r5, .L2475
+ ldr r5, .L2546
bl ftl_malloc
- ldr r6, .L2475+4
+ ldr r6, .L2546+4
mov r4, #0
str r0, [r5, #148]
mov r0, #32768
@@ -21277,161 +22139,161 @@ FlashInit:
str r0, [r5, #224]
mov r0, r7
bl NandcInit
- ldr r5, .L2475+8
+ ldr r5, .L2546+8
mov r7, #44
-.L2428:
+.L2499:
uxtb r0, r4
mov r1, r5
bl FlashReadIDRaw
cmp r4, #0
- bne .L2425
+ bne .L2496
ldrb r3, [r6, #2980] @ zero_extendqisi2
sub r3, r3, #1
uxtb r3, r3
cmp r3, #253
- bhi .L2466
+ bhi .L2537
ldrb r3, [r6, #2981] @ zero_extendqisi2
cmp r3, #255
- beq .L2467
-.L2425:
+ beq .L2538
+.L2496:
ldrb r3, [r5, #0] @ zero_extendqisi2
add r4, r4, #1
cmp r3, #181
streqb r7, [r5, #0]
cmp r4, #4
add r5, r5, #8
- bne .L2428
- ldr r4, .L2475+4
+ bne .L2499
+ ldr r4, .L2546+4
ldrb r3, [r4, #2980] @ zero_extendqisi2
cmp r3, #173
- beq .L2429
+ beq .L2500
ldr r0, [r4, #3784]
bl NandcSetDdrMode
-.L2429:
- ldr r5, .L2475+4
+.L2500:
+ ldr r5, .L2546+4
mov r1, #0
mov r2, #852
mov r0, r5
bl ftl_memset
- ldr r3, .L2475+12
+ ldr r3, .L2546+12
str r3, [r4, #3624]
mov r3, #0
strb r3, [r4, #860]
ldrb r3, [r4, #2981] @ zero_extendqisi2
cmp r3, #161
cmpne r3, #241
- beq .L2430
+ beq .L2501
cmp r3, #218
- beq .L2430
+ beq .L2501
cmp r3, #209
- beq .L2430
+ beq .L2501
cmp r3, #220
- bne .L2431
+ bne .L2502
ldrb r2, [r5, #2983] @ zero_extendqisi2
cmp r2, #149
- bne .L2431
-.L2430:
- ldr r2, .L2475+4
+ bne .L2502
+.L2501:
+ ldr r2, .L2546+4
mov r1, #1
mov r0, #16
- ldr ip, .L2475+16
+ ldr ip, .L2546+16
strb r1, [r2, #852]
- ldr r1, .L2475
+ ldr r1, .L2546
strb r0, [r2, #853]
strb r3, [ip, #3038]
strb r0, [r1, #152]
ldrb r0, [r2, #2980] @ zero_extendqisi2
cmp r0, #152
strb r0, [ip, #3037]
- bne .L2432
+ bne .L2503
ldrb r0, [r2, #2984] @ zero_extendqisi2
sxtb r0, r0
cmp r0, #0
movge r0, #24
strgeb r0, [r1, #152]
-.L2432:
+.L2503:
ldr r1, [r2, #3776]
- ldr r2, .L2475+20
+ ldr r2, .L2546+20
cmp r1, r2
- ldreq r2, .L2475
+ ldreq r2, .L2546
moveq r1, #16
streqb r1, [r2, #152]
cmp r3, #218
- bne .L2434
- ldr r3, .L2475+16
+ bne .L2505
+ ldr r3, .L2546+16
movw r2, #3050
mov r1, #2048
strh r1, [r3, r2] @ movhi
mvn r2, #37
- b .L2472
-.L2434:
+ b .L2543
+.L2505:
cmp r3, #220
- bne .L2435
- ldr r3, .L2475+16
+ bne .L2506
+ ldr r3, .L2546+16
movw r2, #3050
mov r1, #4096
strh r1, [r3, r2] @ movhi
mvn r2, #35
-.L2472:
+.L2543:
strb r2, [r3, #3038]
-.L2435:
- ldr r1, .L2475+24
+.L2506:
+ ldr r1, .L2546+24
mov r2, #32
- ldr r0, .L2475+28
+ ldr r0, .L2546+28
bl memcpy
- ldr r0, .L2475+12
+ ldr r0, .L2546+12
mov r2, #32
add r1, r0, #144
bl memcpy
-.L2431:
- ldr r4, .L2475+4
+.L2502:
+ ldr r4, .L2546+4
ldrb r3, [r4, #852] @ zero_extendqisi2
cmp r3, #0
- bne .L2436
+ bne .L2507
bl FlashLoadPhyInfoInRam
cmp r0, #0
- bne .L2437
+ bne .L2508
ldr r3, [r4, #3624]
ldrh r0, [r3, #16]
ubfx r0, r0, #8, #3
strb r0, [r4, #3772]
tst r0, #1
- bne .L2437
+ bne .L2508
mov r3, #1
strb r3, [r4, #3780]
bl FlashSetInterfaceMode
ldrb r0, [r4, #3772] @ zero_extendqisi2
bl NandcSetMode
-.L2437:
- ldr r4, .L2475+4
+.L2508:
+ ldr r4, .L2546+4
ldr r3, [r4, #3624]
ldrb r3, [r3, #26] @ zero_extendqisi2
strb r3, [r4, #928]
bl FlashLoadPhyInfo
cmp r0, #0
- beq .L2436
+ beq .L2507
ldr r3, [r4, #3784]
cmp r3, #0
- beq .L2439
+ beq .L2510
mov r0, #1
bl FlashSetInterfaceMode
mov r0, #1
- b .L2473
-.L2439:
+ b .L2544
+.L2510:
ldrb r0, [r4, #3772] @ zero_extendqisi2
bl FlashSetInterfaceMode
ldrb r0, [r4, #3772] @ zero_extendqisi2
-.L2473:
+.L2544:
bl NandcSetMode
bl FlashLoadPhyInfo
cmp r0, #0
- beq .L2436
- ldr r4, .L2475+4
+ beq .L2507
+ ldr r4, .L2546+4
mov r0, #1
bl FlashSetInterfaceMode
mov r0, #1
bl NandcSetMode
- ldr r0, .L2475+32
+ ldr r0, .L2546+32
ldr r3, [r4, #3624]
ldrh r1, [r3, #14]
bl printk
@@ -21442,38 +22304,38 @@ FlashInit:
ldr r3, [r4, #3624]
ldrb r0, [r3, #19] @ zero_extendqisi2
bl FlashGetReadRetryDefault
- ldr r1, .L2475+36
- ldr r0, .L2475
+ ldr r1, .L2546+36
+ ldr r0, .L2546
ldr r3, [r4, #3624]
ldrh r1, [r0, r1]
ldrb r2, [r3, #9] @ zero_extendqisi2
add r1, r1, #4080
add r1, r1, #15
cmp r2, r1, lsr #12
- blt .L2442
+ blt .L2513
ldrh r1, [r3, #14]
add r1, r1, #255
cmp r2, r1, lsr #8
- bge .L2443
-.L2442:
+ bge .L2514
+.L2513:
ldrh r2, [r3, #14]
bic r2, r2, #255
strh r2, [r3, #14] @ movhi
-.L2443:
- ldr r3, .L2475+4
+.L2514:
+ ldr r3, .L2546+4
ldrb r3, [r3, #3772] @ zero_extendqisi2
tst r3, #6
- beq .L2444
+ beq .L2515
bl FlashSavePhyInfo
- ldr r3, .L2475
+ ldr r3, .L2546
mov r0, #0
ldr r1, [r3, #160]
bl FlashDdrParaScan
-.L2444:
+.L2515:
bl FlashSavePhyInfo
-.L2436:
- ldr r4, .L2475+4
- ldr r5, .L2475
+.L2507:
+ ldr r4, .L2546+4
+ ldr r5, .L2546
ldr r3, [r4, #3624]
ldrb r2, [r3, #26] @ zero_extendqisi2
ldrh r0, [r3, #10]
@@ -21499,7 +22361,7 @@ FlashInit:
ldr r3, [r4, #3624]
ldrh r2, [r3, #16]
tst r2, #64
- beq .L2445
+ beq .L2516
ldrb r0, [r3, #19] @ zero_extendqisi2
ldrb r3, [r4, #1] @ zero_extendqisi2
strb r0, [r4, #3761]
@@ -21509,77 +22371,77 @@ FlashInit:
sub r3, r0, #1
uxtb r3, r3
cmp r3, #6
- bhi .L2446
- ldr r3, .L2475+40
+ bhi .L2517
+ ldr r3, .L2546+40
str r3, [r5, #172]
sub r3, r0, #5
uxtb r3, r3
cmp r3, #1
movls r3, #1
strls r3, [r4, #3828]
- bls .L2448
+ bls .L2519
cmp r0, #7
addeq r4, r4, #28
- beq .L2449
-.L2448:
- ldr r4, .L2475+44
-.L2449:
+ beq .L2520
+.L2519:
+ ldr r4, .L2546+44
+.L2520:
mov r3, #0
mov r2, r3
-.L2451:
+.L2522:
ldrsb r1, [r4, r2]
add r2, r2, #1
cmp r1, #0
addeq r3, r3, #1
cmp r2, #32
- bne .L2451
+ bne .L2522
cmp r3, #27
- bls .L2445
+ bls .L2516
bl FlashGetReadRetryDefault
bl FlashSavePhyInfo
- b .L2445
-.L2446:
+ b .L2516
+.L2517:
sub r3, r0, #17
uxtb r3, r3
cmp r3, #2
- bhi .L2452
- ldr r3, .L2475+48
+ bhi .L2523
+ ldr r3, .L2546+48
cmp r0, #19
str r3, [r5, #172]
mov r3, #7
strb r3, [r5, #140]
moveq r3, #15
streqb r3, [r5, #140]
- b .L2445
-.L2452:
+ b .L2516
+.L2523:
cmp r0, #33
cmpne r0, #65
- beq .L2453
+ beq .L2524
cmp r0, #66
- bne .L2454
-.L2453:
- ldr r3, .L2475
+ bne .L2525
+.L2524:
+ ldr r3, .L2546
mov r1, #4
- ldr r2, .L2475+52
+ ldr r2, .L2546+52
str r2, [r3, #172]
- ldr r2, .L2475+4
+ ldr r2, .L2546+4
strb r1, [r2, #3760]
mov r2, #7
strb r2, [r3, #140]
- b .L2445
-.L2454:
+ b .L2516
+.L2525:
cmp r0, #67
cmpne r0, #34
- beq .L2455
+ beq .L2526
cmp r0, #35
- beq .L2455
+ beq .L2526
cmp r0, #68
- bne .L2456
-.L2455:
- ldr r3, .L2475
+ bne .L2527
+.L2526:
+ ldr r3, .L2546
cmp r0, #35
cmpne r0, #68
- ldr r2, .L2475+52
+ ldr r2, .L2546+52
sub r0, r0, #67
uxtb r0, r0
str r2, [r3, #172]
@@ -21588,68 +22450,68 @@ FlashInit:
moveq r2, #17
streqb r2, [r3, #140]
cmp r0, #1
- ldr r3, .L2475+4
+ ldr r3, .L2546+4
movls r2, #4
movhi r2, #5
strb r2, [r3, #3760]
- b .L2445
-.L2456:
+ b .L2516
+.L2527:
cmp r0, #49
- ldreq r3, .L2475+56
+ ldreq r3, .L2546+56
streq r3, [r5, #172]
-.L2445:
- ldr r2, .L2475+4
- ldr r3, .L2475+20
+.L2516:
+ ldr r2, .L2546+4
+ ldr r3, .L2546+20
ldr r1, [r2, #3776]
cmp r1, r3
- bne .L2459
+ bne .L2530
ldrb r3, [r2, #928] @ zero_extendqisi2
cmp r3, #0
ldrne r3, [r2, #3624]
movne r1, #0
strneb r1, [r3, #18]
-.L2459:
+.L2530:
ldrb r2, [r2, #2980] @ zero_extendqisi2
- ldr r3, .L2475+4
+ ldr r3, .L2546+4
cmp r2, #44
- bne .L2460
+ bne .L2531
ldrb r2, [r3, #3780] @ zero_extendqisi2
cmp r2, #0
- beq .L2460
+ beq .L2531
ldr r1, [r3, #3776]
- ldr r2, .L2475+20
+ ldr r2, .L2546+20
cmp r1, r2
- bne .L2461
+ bne .L2532
ldrb r3, [r3, #928] @ zero_extendqisi2
cmp r3, #0
- bne .L2460
-.L2461:
- ldr r3, .L2475+4
+ bne .L2531
+.L2532:
+ ldr r3, .L2546+4
mov r2, #0
mov r0, #1
strb r2, [r3, #3780]
bl FlashSetInterfaceMode
mov r0, #1
bl NandcSetMode
-.L2460:
+.L2531:
mov r0, #0
bl flash_enter_slc_mode
- ldr r2, .L2475+4
+ ldr r2, .L2546+4
ldrb r3, [r2, #3772] @ zero_extendqisi2
tst r3, #6
- beq .L2462
+ beq .L2533
ldrb r2, [r2, #3780] @ zero_extendqisi2
cmp r2, #0
- bne .L2463
+ bne .L2534
tst r3, #1
- bne .L2462
-.L2463:
- ldr r3, .L2475
+ bne .L2533
+.L2534:
+ ldr r3, .L2546
mov r0, #0
ldr r1, [r3, #160]
bl FlashDdrParaScan
-.L2462:
- ldr r4, .L2475+4
+.L2533:
+ ldr r4, .L2546+4
mov r0, #0
bl flash_exit_slc_mode
mov r8, #16
@@ -21659,7 +22521,7 @@ FlashInit:
bl FlashBchSel
add r0, r4, #932
bl FlashReadIdbDataRaw
- ldr r0, .L2475+60
+ ldr r0, .L2546+60
strb r8, [r4, #853]
bl FlashTimingCfg
ldr r5, [r4, #3624]
@@ -21703,7 +22565,7 @@ FlashInit:
ldrb lr, [r4, #852] @ zero_extendqisi2
strh r1, [r4, r2] @ movhi
cmp lr, #1
- bne .L2465
+ bne .L2536
mov r7, r7, lsr #1
mov ip, ip, asl #1
mov r1, r1, asl #1
@@ -21713,21 +22575,21 @@ FlashInit:
strh r7, [r4, r6] @ movhi
strh ip, [r4, r0] @ movhi
strh r2, [r4, r3] @ movhi
-.L2465:
+.L2536:
ldrb r0, [r5, #20] @ zero_extendqisi2
bl FlashBchSel
bl ftl_flash_suspend
mov r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L2466:
+.L2537:
mvn r0, #1
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L2467:
+.L2538:
mvn r0, #1
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L2476:
+.L2547:
.align 2
-.L2475:
+.L2546:
.word .LANCHOR2
.word .LANCHOR0
.word .LANCHOR0+2980
@@ -21736,7 +22598,7 @@ FlashInit:
.word 1446522928
.word .LANCHOR1+2796
.word .LANCHOR0+896
- .word .LC144
+ .word .LC164
.word -894
.word HynixReadRetrial
.word .LANCHOR0+20
@@ -21753,46 +22615,48 @@ rk_ftl_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, lr}
- .save {r3, r4, r5, lr}
+ stmfd sp!, {r4, r5, r6, lr}
+ .save {r4, r5, r6, lr}
mov r0, #2048
bl ftl_malloc
- ldr r4, .L2481
+ ldr r4, .L2552
+ ldr r6, .L2552+4
mov r5, #0
- add r1, r4, #464
- str r5, [r4, #132]
- str r5, [r4, #464]
- str r0, [r4, #460]
- add r0, r4, #132
+ mov r1, r6
+ str r5, [r1, #472]!
+ str r0, [r6, #468]
+ mov r0, r4
+ str r5, [r0, #132]!
bl rknand_get_reg_addr
ldr r3, [r4, #132]
cmp r3, r5
mvneq r4, #0
- beq .L2478
+ beq .L2549
bl rk_nandc_irq_init
- ldr r0, [r4, #460]
mov r1, r5
mov r2, r5
mov r3, #2048
+ ldr r0, [r6, #468]
bl FlashSramLoadStore
bl rknand_flash_cs_init
ldr r0, [r4, #132]
bl FlashInit
subs r4, r0, #0
- bne .L2479
+ bne .L2550
bl FtlInit
-.L2479:
- ldr r0, .L2481+4
+.L2550:
+ ldr r0, .L2552+8
mov r1, r4
bl printk
-.L2478:
+.L2549:
mov r0, r4
- ldmfd sp!, {r3, r4, r5, pc}
-.L2482:
+ ldmfd sp!, {r4, r5, r6, pc}
+.L2553:
.align 2
-.L2481:
+.L2552:
.word .LANCHOR2
- .word .LC145
+ .word .LANCHOR4
+ .word .LC165
.fnend
.size rk_ftl_init, .-rk_ftl_init
.align 2
@@ -21802,7 +22666,7 @@ FtlReInitForSDUpdata:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2508
+ ldr r3, .L2579
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
.pad #20
@@ -21810,22 +22674,22 @@ FtlReInitForSDUpdata:
ldrb r4, [r3, #928] @ zero_extendqisi2
cmp r4, #0
movne r0, #0
- bne .L2484
- ldr r5, .L2508+4
+ bne .L2555
+ ldr r5, .L2579+4
ldr r0, [r5, #132]
bl FlashInit
cmp r0, #0
movne r0, r4
- bne .L2484
+ bne .L2555
bl FlashLoadFactorBbt
cmp r0, #0
- beq .L2485
+ beq .L2556
bl FlashMakeFactorBbt
-.L2485:
+.L2556:
ldr r0, [r5, #136]
bl FlashReadIdbDataRaw
cmp r0, #0
- beq .L2486
+ beq .L2557
mov r1, #0
mov r2, #16
mov r0, sp
@@ -21834,73 +22698,73 @@ FtlReInitForSDUpdata:
mov r3, #0
mov r0, #1
mov r2, r3
-.L2488:
+.L2559:
ands ip, r1, r0, asl r2
add r2, r2, #1
addne r3, r3, #1
cmp r2, #16
- bne .L2488
+ bne .L2559
cmp r3, #6
- ldrls r3, .L2508
- bls .L2504
+ ldrls r3, .L2579
+ bls .L2575
mov r2, #0
mov r0, #1
-.L2489:
+.L2560:
ands ip, r1, r0, asl r2
add r2, r2, #1
addne r3, r3, #1
cmp r2, #24
- bne .L2489
+ bne .L2560
cmp r3, #17
- ldr r3, .L2508
+ ldr r3, .L2579
movhi r2, #36
-.L2504:
+.L2575:
strb r2, [r3, #853]
movw r2, #3074
- ldr r3, .L2508
+ ldr r3, .L2579
ldrb r1, [r3, #853] @ zero_extendqisi2
strh r1, [r3, r2] @ movhi
-.L2486:
- ldr r1, .L2508+8
+.L2557:
+ ldr r1, .L2579+8
mov r4, #1
- ldr r0, .L2508+12
+ ldr r0, .L2579+12
bl printk
- ldr r0, .L2508+16
+ ldr r0, .L2579+16
bl FtlConstantsInit
bl FtlVariablesInit
- ldr r3, .L2508
+ ldr r3, .L2579
ldr r0, [r3, #3852]
uxth r0, r0
bl FtlFreeSysBlkQueueInit
- b .L2493
-.L2495:
+ b .L2564
+.L2566:
add r4, r4, #1
-.L2493:
+.L2564:
bl FtlLoadBbt
cmp r0, #0
- bne .L2506
-.L2494:
+ bne .L2577
+.L2565:
bl FtlSysBlkInit
cmp r0, #0
- beq .L2496
-.L2506:
+ beq .L2567
+.L2577:
bl FtlLowFormat
cmp r4, #3
- bls .L2495
- b .L2507
-.L2496:
- ldr r3, .L2508+20
+ bls .L2566
+ b .L2578
+.L2567:
+ ldr r3, .L2579+20
mov r2, #1
str r2, [r3, #2996]
- b .L2484
-.L2507:
+ b .L2555
+.L2578:
mvn r0, #0
-.L2484:
+.L2555:
add sp, sp, #20
ldmfd sp!, {r4, r5, pc}
-.L2509:
+.L2580:
.align 2
-.L2508:
+.L2579:
.word .LANCHOR0
.word .LANCHOR2
.word .LC79
@@ -21917,15 +22781,15 @@ flash_boot_enter_slc_mode:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L2512
+ ldr r3, .L2583
ldr r2, [r3, #3776]
- ldr r3, .L2512+4
+ ldr r3, .L2583+4
cmp r2, r3
bxne lr
b flash_enter_slc_mode
-.L2513:
+.L2584:
.align 2
-.L2512:
+.L2583:
.word .LANCHOR0
.word 1446522928
.fnend
@@ -21938,15 +22802,15 @@ flash_boot_exit_slc_mode:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L2516
+ ldr r3, .L2587
ldr r2, [r3, #3776]
- ldr r3, .L2516+4
+ ldr r3, .L2587+4
cmp r2, r3
bxne lr
b flash_exit_slc_mode
-.L2517:
+.L2588:
.align 2
-.L2516:
+.L2587:
.word .LANCHOR0
.word 1446522928
.fnend
@@ -21960,13 +22824,13 @@ IdBlockReadData:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r4, r0
- ldr r5, .L2522
+ ldr r5, .L2593
mov fp, r1
.pad #28
sub sp, sp, #28
mov r1, r4
mov sl, r2
- ldr r0, .L2522+4
+ ldr r0, .L2593+4
ldr r3, [r5, #3624]
mov r2, fp
mov r9, r5
@@ -21984,8 +22848,8 @@ IdBlockReadData:
mul r2, r7, r8
str r1, [sp, #16]
ubfx r2, r2, #2, #2
- b .L2519
-.L2521:
+ b .L2590
+.L2592:
add r1, r6, r8
ldrb r0, [r5, #928] @ zero_extendqisi2
ubfx r1, r1, #2, #16
@@ -21996,12 +22860,12 @@ IdBlockReadData:
add r3, r3, #3072
add r3, r3, #4
ldrh r3, [r3, #0]
- beq .L2520
+ beq .L2591
ldr r0, [r5, #3776]
- ldr lr, .L2522+8
+ ldr lr, .L2593+8
cmp r0, lr
moveq r3, r1
-.L2520:
+.L2591:
ldr r1, [sp, #16]
add r2, r2, r1
mla r2, r7, r3, r2
@@ -22009,7 +22873,7 @@ IdBlockReadData:
ldrb r1, [r3, #9] @ zero_extendqisi2
ldrb r3, [r9, #3836] @ zero_extendqisi2
str r3, [sp, #20]
- ldr r3, .L2522+12
+ ldr r3, .L2593+12
ldrb r0, [r3, #152] @ zero_extendqisi2
str ip, [sp, #4]
str r1, [sp, #8]
@@ -22035,25 +22899,25 @@ IdBlockReadData:
add r6, ip, r6
add sl, sl, ip, asl #9
uxth r6, r6
-.L2519:
+.L2590:
cmp r6, fp
- bcc .L2521
+ bcc .L2592
mov r1, r4
mov r2, fp
mov r3, #0
- ldr r0, .L2522+16
+ ldr r0, .L2593+16
bl printk
mov r0, #0
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2523:
+.L2594:
.align 2
-.L2522:
+.L2593:
.word .LANCHOR0
- .word .LC146
+ .word .LC166
.word 1446522928
.word .LANCHOR2
- .word .LC147
+ .word .LC167
.fnend
.size IdBlockReadData, .-IdBlockReadData
.section .text.unlikely
@@ -22063,7 +22927,7 @@ IDBlockWriteData:
.fnstart
@ args = 0, pretend = 0, frame = 88
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2532
+ ldr r3, .L2603
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r5, r0
@@ -22073,7 +22937,7 @@ IDBlockWriteData:
sub sp, sp, #92
mov r1, r5
mov sl, r2
- ldr r0, .L2532+4
+ ldr r0, .L2603+4
ldrb r6, [r3, #9] @ zero_extendqisi2
mov r2, fp
ldrh r7, [r3, #10]
@@ -22091,14 +22955,14 @@ IDBlockWriteData:
bl FlashEraseBlock
cmp fp, r7
movls r8, #1
- bls .L2525
+ bls .L2596
mov r0, #0
add r1, r7, r5
mov r2, r0
mov r8, #2
bl FlashEraseBlock
-.L2525:
- ldr r4, .L2532
+.L2596:
+ ldr r4, .L2603
mov r0, #0
bl flash_boot_exit_slc_mode
ldr r3, [r4, #3624]
@@ -22118,12 +22982,12 @@ IDBlockWriteData:
rsb r1, r1, r5
mov r7, ip
str r1, [sp, #12]
- b .L2526
-.L2530:
+ b .L2597
+.L2601:
add r3, r8, r7
ubfx r3, r3, #2, #16
cmp r3, #0
- beq .L2527
+ beq .L2598
add r1, r3, #1
ldrb r0, [r4, #928] @ zero_extendqisi2
add r2, r4, r1, asl #1
@@ -22131,16 +22995,16 @@ IDBlockWriteData:
add r2, r2, #3072
add r2, r2, #4
ldrh r2, [r2, #0]
- beq .L2528
+ beq .L2599
ldr r0, [r4, #3776]
- ldr ip, .L2532+8
+ ldr ip, .L2603+8
cmp r0, ip
moveq r2, r1
-.L2528:
+.L2599:
sub r2, r2, #-1073741823
mov r2, r2, asl #2
str r2, [sp, #24]
-.L2527:
+.L2598:
movw r2, #61424
str r2, [sp, #28]
add r2, r4, r3, asl #1
@@ -22148,15 +23012,15 @@ IDBlockWriteData:
ldrh r5, [r2, #4]
ldrb r2, [r4, #928] @ zero_extendqisi2
cmp r2, #0
- beq .L2529
+ beq .L2600
ldr r2, [r4, #3776]
- ldr r1, .L2532+8
+ ldr r1, .L2603+8
cmp r2, r1
moveq r5, r3
-.L2529:
+.L2600:
ldr ip, [sp, #12]
add r8, r8, #4
- ldr r2, .L2532+12
+ ldr r2, .L2603+12
uxth r8, r8
mla r3, r6, r5, ip
ldrb ip, [r9, #3836] @ zero_extendqisi2
@@ -22190,27 +23054,27 @@ IDBlockWriteData:
mov r1, r0
mov r0, #0
bl FlashPageProgMsbFFData
-.L2526:
+.L2597:
ldr ip, [sp, #16]
cmp r8, ip
- bcc .L2530
+ bcc .L2601
ldr r5, [sp, #20]
mov r2, fp
mov r3, #0
- ldr r0, .L2532+16
+ ldr r0, .L2603+16
mov r1, r5
bl printk
mov r0, #0
add sp, sp, #92
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2533:
+.L2604:
.align 2
-.L2532:
+.L2603:
.word .LANCHOR0
- .word .LC148
+ .word .LC168
.word 1446522928
.word .LANCHOR2
- .word .LC149
+ .word .LC169
.fnend
.size IDBlockWriteData, .-IDBlockWriteData
.text
@@ -22221,7 +23085,7 @@ write_idblock:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2558
+ ldr r3, .L2629
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r5, r0
@@ -22232,24 +23096,24 @@ write_idblock:
mov r6, r1
mov r7, r2
ldrb r4, [r3, #9] @ zero_extendqisi2
- ldrh r8, [r3, #10]
+ ldrh sl, [r3, #10]
bl ftl_malloc
- subs sl, r0, #0
- beq .L2552
+ subs r9, r0, #0
+ beq .L2623
add r5, r5, #508
add r5, r5, #3
mov r5, r5, lsr #9
cmp r5, #8
movls r5, #8
- bls .L2536
+ bls .L2607
cmp r5, #500
- bhi .L2552
-.L2536:
- mul r4, r8, r4
- mov r0, r5
- uxth r4, r4
- str r4, [sp, #12]
- mov r1, r4
+ bhi .L2623
+.L2607:
+ mul sl, sl, r4
+ uxth sl, sl
+ sub r0, sl, #1
+ add r0, r0, r5
+ mov r1, sl
bl __aeabi_uidiv
mov r3, #0
movw r2, #63999
@@ -22257,10 +23121,10 @@ write_idblock:
str r0, [sp, #20]
add r0, r6, #254976
add r0, r0, #1020
-.L2541:
+.L2612:
ldr r1, [r0], #-4
cmp r1, #0
- bne .L2537
+ bne .L2608
ldr r1, [r6, r3, asl #2]
add r3, r3, #1
cmp r3, ip
@@ -22268,29 +23132,29 @@ write_idblock:
movcs r3, #0
cmp r2, #4096
str r1, [r0, #4]
- bne .L2541
- b .L2540
-.L2537:
- ldr r0, .L2558+4
+ bne .L2612
+ b .L2611
+.L2608:
+ ldr r0, .L2629+4
bl printk
-.L2540:
- ldr r4, .L2558
+.L2611:
+ ldr r4, .L2629
mov r1, r7
mov r3, #5
- ldr r0, .L2558+8
+ ldr r0, .L2629+8
mov r2, #4
mov r8, r5
bl rknand_print_hex
ldrb r2, [r4, #853] @ zero_extendqisi2
ldr r1, [r6, #512]
- ldr r0, .L2558+12
+ ldr r0, .L2629+12
bl printk
- ldr r2, .L2558+16
+ ldr r2, .L2629+16
movw r3, #3074
mov r1, r5
ldrh r3, [r4, r3]
ldr r2, [r2, #156]
- ldr r0, .L2558+20
+ ldr r0, .L2629+20
str r2, [sp, #0]
mov r2, r5
bl printk
@@ -22300,54 +23164,53 @@ write_idblock:
mov r7, r6
mov r1, r5, asl #7
cmp r2, r3
+ str r1, [sp, #24]
mov r2, #0
- mov r9, r2
strhi r3, [r6, #512]
- str r1, [sp, #24]
str r2, [sp, #16]
-.L2549:
- ldr r1, .L2558
+ str r2, [sp, #12]
+.L2620:
+ ldr r1, .L2629
ldr r3, [r4], #4
ldrb r2, [r1, #853] @ zero_extendqisi2
cmp r3, r2
- bcs .L2543
- ldr r1, .L2558+16
+ bcs .L2614
+ ldr r1, .L2629+16
ldr r2, [r1, #156]
cmp r3, r2
- bcc .L2543
+ bcc .L2614
ldr r2, [sp, #20]
- ldr r1, [sp, #20]
+ ldr r1, [sp, #12]
cmp r2, #1
movls r2, #0
movhi r2, #1
- cmp r9, #0
- cmpne r1, #1
str r2, [sp, #28]
- bls .L2544
+ ldr r2, [sp, #20]
+ cmp r1, #0
+ cmpne r2, #1
+ bls .L2615
ldr r2, [r4, #-8]
add r2, r2, #1
cmp r3, r2
- beq .L2543
-.L2544:
- mov r0, sl
+ beq .L2614
+.L2615:
+ mov r0, r9
mov r1, #512
bl __memzero
- ldr r2, [sp, #12]
ldr r0, [r4, #-4]
mov r1, r8
- mov r6, #0
- mul r0, r0, r2
mov r2, r7
+ mov r6, #0
+ mul r0, r0, sl
bl IDBlockWriteData
- ldr r3, [sp, #12]
ldr r0, [r4, #-4]
- mov r2, sl
+ mov r2, r9
mov r1, r8
- mul r0, r0, r3
+ mul r0, r0, sl
bl IdBlockReadData
- mov r2, sl
+ mov r2, r9
mov r3, r7
-.L2548:
+.L2619:
mov fp, r2
mov r5, r3
ldr r0, [fp, #0]
@@ -22355,13 +23218,13 @@ write_idblock:
ldr r1, [r5, #0]
add r3, r3, #4
cmp r0, r1
- beq .L2545
- mov r0, sl
+ beq .L2616
+ mov r0, r9
mov r1, #512
bl __memzero
ldr r3, [fp, #0]
- mov r1, r9
- ldr r0, .L2558+24
+ ldr r1, [sp, #12]
+ ldr r0, .L2629+24
str r3, [sp, #0]
ldr r3, [r5, #0]
bic r5, r6, #255
@@ -22370,82 +23233,82 @@ write_idblock:
mov r3, r6
ldr r2, [r4, #-4]
bl printk
- ldr r0, .L2558+28
+ ldr r0, .L2629+28
add r1, r7, r5
mov r2, #4
mov r3, #256
bl rknand_print_hex
mov r3, #256
- add r1, sl, r5
+ add r1, r9, r5
mov r2, #4
- ldr r0, .L2558+32
+ ldr r0, .L2629+32
bl rknand_print_hex
mov r0, #0
bl flash_boot_enter_slc_mode
- ldr r2, [sp, #12]
ldr r1, [r4, #-4]
mov r0, #0
- mul r1, r1, r2
mov r2, r0
+ mul r1, r1, sl
bl FlashEraseBlock
ldr r3, [sp, #28]
cmp r3, #0
- beq .L2546
+ beq .L2617
ldr r1, [r4, #-4]
mov r0, #0
- ldr r2, [sp, #12]
- add r1, r1, #1
- mul r1, r2, r1
mov r2, r0
+ add r1, r1, #1
+ mul r1, sl, r1
bl FlashEraseBlock
-.L2546:
+.L2617:
mov r0, #0
bl flash_boot_exit_slc_mode
- ldr r0, .L2558+36
ldr r1, [r4, #-4]
+ ldr r0, .L2629+36
bl printk
- ldr r3, [sp, #24]
- cmp r6, r3
- bcc .L2543
- b .L2547
-.L2545:
+ ldr r1, [sp, #24]
+ cmp r6, r1
+ bcc .L2614
+ b .L2618
+.L2616:
ldr r1, [sp, #24]
add r6, r6, #1
cmp r6, r1
- bne .L2548
-.L2547:
+ bne .L2619
+.L2618:
ldr r2, [sp, #16]
add r2, r2, #1
str r2, [sp, #16]
-.L2543:
- add r9, r9, #1
- cmp r9, #5
- bne .L2549
- mov r0, sl
+.L2614:
+ ldr r3, [sp, #12]
+ add r3, r3, #1
+ str r3, [sp, #12]
+ cmp r3, #5
+ bne .L2620
+ mov r0, r9
bl ftl_free
- ldr r3, [sp, #16]
- cmp r3, #0
+ ldr r1, [sp, #16]
+ cmp r1, #0
mvneq r0, #0
movne r0, #0
- b .L2535
-.L2552:
+ b .L2606
+.L2623:
mvn r0, #0
-.L2535:
+.L2606:
add sp, sp, #36
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2559:
+.L2630:
.align 2
-.L2558:
+.L2629:
.word .LANCHOR0
- .word .LC150
- .word .LC151
- .word .LC152
+ .word .LC170
+ .word .LC171
+ .word .LC172
.word .LANCHOR2
- .word .LC153
- .word .LC154
- .word .LC155
- .word .LC156
- .word .LC157
+ .word .LC173
+ .word .LC174
+ .word .LC175
+ .word .LC176
+ .word .LC177
.fnend
.size write_idblock, .-write_idblock
.align 2
@@ -22460,22 +23323,22 @@ CRC_32:
stmfd sp!, {r4, lr}
.save {r4, lr}
mov r2, r0
- ldr ip, .L2563
- b .L2561
-.L2562:
+ ldr ip, .L2634
+ b .L2632
+.L2633:
ldrb r4, [r3, r2] @ zero_extendqisi2
add r2, r2, #1
eor r4, r4, r0, lsr #24
add r4, ip, r4, asl #2
ldr r4, [r4, #3068]
eor r0, r4, r0, asl #8
-.L2561:
+.L2632:
cmp r2, r1
- bne .L2562
+ bne .L2633
ldmfd sp!, {r4, pc}
-.L2564:
+.L2635:
.align 2
-.L2563:
+.L2634:
.word .LANCHOR1
.fnend
.size CRC_32, .-CRC_32
@@ -22486,7 +23349,7 @@ rknand_sys_storage_ioctl:
.fnstart
@ args = 0, pretend = 0, frame = 528
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2681
+ ldr r3, .L2752
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
cmp r1, r3
@@ -22494,102 +23357,102 @@ rknand_sys_storage_ioctl:
sub sp, sp, #528
mov r5, r1
mov r4, r2
- beq .L2574
- bhi .L2583
- ldr r3, .L2681+4
+ beq .L2645
+ bhi .L2654
+ ldr r3, .L2752+4
cmp r1, r3
- beq .L2571
- bhi .L2584
+ beq .L2642
+ bhi .L2655
sub r3, r3, #125
cmp r1, r3
- beq .L2568
- bhi .L2585
+ beq .L2639
+ bhi .L2656
sub r3, r3, #237
cmp r1, r3
- bne .L2627
- b .L2677
-.L2585:
- ldr r3, .L2681+8
+ bne .L2698
+ b .L2748
+.L2656:
+ ldr r3, .L2752+8
cmp r1, r3
- beq .L2569
+ beq .L2640
add r3, r3, #1
cmp r1, r3
- bne .L2627
- b .L2678
-.L2584:
- ldr r3, .L2681+12
+ bne .L2698
+ b .L2749
+.L2655:
+ ldr r3, .L2752+12
cmp r1, r3
- beq .L2573
- bhi .L2586
- ldr r3, .L2681+16
+ beq .L2644
+ bhi .L2657
+ ldr r3, .L2752+16
cmp r1, r3
- bne .L2627
- b .L2679
-.L2586:
- ldr r3, .L2681+20
+ bne .L2698
+ b .L2750
+.L2657:
+ ldr r3, .L2752+20
cmp r1, r3
- beq .L2573
+ beq .L2644
add r3, r3, #10
cmp r1, r3
- bne .L2627
- b .L2573
-.L2583:
- ldr r3, .L2681+24
+ bne .L2698
+ b .L2644
+.L2654:
+ ldr r3, .L2752+24
cmp r1, r3
- beq .L2579
- bhi .L2587
+ beq .L2650
+ bhi .L2658
sub r3, r3, #78
cmp r1, r3
- beq .L2576
- bcc .L2575
+ beq .L2647
+ bcc .L2646
add r3, r3, #21
cmp r1, r3
- beq .L2577
+ beq .L2648
add r3, r3, #56
cmp r1, r3
- bne .L2627
- b .L2680
-.L2587:
- ldr r3, .L2681+28
+ bne .L2698
+ b .L2751
+.L2658:
+ ldr r3, .L2752+28
cmp r1, r3
- beq .L2582
- bhi .L2588
+ beq .L2653
+ bhi .L2659
sub r3, r3, #956
sub r3, r3, #1
cmp r1, r3
- beq .L2580
+ beq .L2651
add r3, r3, #956
cmp r1, r3
- bne .L2627
- b .L2581
-.L2588:
- ldr r3, .L2681+32
+ bne .L2698
+ b .L2652
+.L2659:
+ ldr r3, .L2752+32
cmp r1, r3
- beq .L2581
+ beq .L2652
add r3, r3, #1
cmp r1, r3
- bne .L2627
- b .L2582
-.L2575:
- ldr r0, .L2681+36
+ bne .L2698
+ b .L2653
+.L2646:
+ ldr r0, .L2752+36
bl printk
mov r0, #4096
bl ftl_malloc
subs r5, r0, #0
- beq .L2634
+ beq .L2705
mov r1, r4
mov r2, #512
bl rk_copy_from_user
cmp r0, #0
- bne .L2676
-.L2589:
- ldr r0, .L2681+40
+ bne .L2747
+.L2660:
+ ldr r0, .L2752+40
ldmia r5, {r1, r2}
bl printk
ldr r3, [r5, #4]
cmp r3, #8
str r3, [sp, #4]
- bhi .L2598
+ bhi .L2669
bl rknand_device_lock
ldr r1, [sp, #4]
mov r2, r5
@@ -22602,137 +23465,137 @@ rknand_sys_storage_ioctl:
mov r2, r2, asl #9
bl rk_copy_to_user
cmp r0, #0
- beq .L2662
- ldr r0, .L2681+44
-.L2675:
+ beq .L2733
+ ldr r0, .L2752+44
+.L2746:
bl printk
- b .L2598
-.L2576:
- ldr r0, .L2681+48
+ b .L2669
+.L2647:
+ ldr r0, .L2752+48
bl printk
mov r0, #4096
bl ftl_malloc
subs r5, r0, #0
- beq .L2634
+ beq .L2705
mov r1, r4
mov r2, #4096
bl rk_copy_from_user
cmp r0, #0
- bne .L2676
-.L2593:
- ldr r4, .L2681+52
- ldr r0, .L2681+56
+ bne .L2747
+.L2664:
+ ldr r4, .L2752+52
+ ldr r0, .L2752+56
ldmia r5, {r1, r2}
bl printk
- ldr r3, [r4, #468]
+ ldr r3, [r4, #476]
cmp r3, #0
- bne .L2594
+ bne .L2665
mov r0, #260096
bl ftl_malloc
cmp r0, #0
- str r0, [r4, #468]
- beq .L2598
-.L2595:
+ str r0, [r4, #476]
+ beq .L2669
+.L2666:
mov r1, #260096
bl __memzero
-.L2594:
+.L2665:
ldr r2, [r5, #4]
movw r3, #4088
cmp r2, r3
- bhi .L2598
+ bhi .L2669
ldr r3, [r5, #0]
cmp r3, #251904
- bhi .L2598
- ldr r1, .L2681+52
- ldr r0, [r1, #468]
+ bhi .L2669
+ ldr r1, .L2752+52
+ ldr r0, [r1, #476]
add r1, r5, #8
add r0, r0, r3
bl memcpy
-.L2662:
+.L2733:
mov r0, r5
bl ftl_free
-.L2663:
+.L2734:
mov r4, #0
- b .L2592
-.L2680:
- ldr r0, .L2681+60
+ b .L2663
+.L2751:
+ ldr r0, .L2752+60
bl printk
mov r0, #4096
bl ftl_malloc
subs r5, r0, #0
- beq .L2634
+ beq .L2705
mov r1, r4
mov r2, #28
bl rk_copy_from_user
cmp r0, #0
- beq .L2597
-.L2676:
- ldr r0, .L2681+64
- b .L2675
-.L2597:
+ beq .L2668
+.L2747:
+ ldr r0, .L2752+64
+ b .L2746
+.L2668:
ldmia r5, {r1, r2}
- ldr r0, .L2681+68
+ ldr r0, .L2752+68
bl printk
ldr r1, [r5, #0]
cmp r1, #256000
- bhi .L2598
- ldr r4, .L2681+52
- ldr r0, [r4, #468]
+ bhi .L2669
+ ldr r4, .L2752+52
+ ldr r0, [r4, #476]
cmp r0, #0
- beq .L2598
-.L2599:
+ beq .L2669
+.L2670:
bl CRC_32
ldr r3, [r5, #4]
cmp r3, r0
- beq .L2600
+ beq .L2671
mov r0, r5
bl ftl_free
- b .L2640
-.L2600:
+ b .L2711
+.L2671:
bl rknand_device_lock
- ldr r1, [r4, #468]
+ ldr r1, [r4, #476]
add r2, r5, #8
ldr r0, [r5, #0]
bl write_idblock
mov r6, #0
bl rknand_device_unlock
- ldr r0, [r4, #468]
+ ldr r0, [r4, #476]
bl ftl_free
- str r6, [r4, #468]
+ str r6, [r4, #476]
mov r0, r5
mov r4, r6
bl ftl_free
- b .L2592
-.L2598:
+ b .L2663
+.L2669:
mov r0, r5
- b .L2666
-.L2577:
- ldr r0, .L2681+72
+ b .L2737
+.L2648:
+ ldr r0, .L2752+72
bl printk
mov r0, #4096
bl ftl_malloc
subs r5, r0, #0
- beq .L2634
+ beq .L2705
bl ftl_read_flash_info
mov r0, r4
mov r1, r5
mov r2, #11
- b .L2671
-.L2574:
- ldr r0, .L2681+76
+ b .L2742
+.L2645:
+ ldr r0, .L2752+76
bl printk
bl nand_blk_add_whole_disk
mov r0, #4096
bl ftl_malloc
subs r5, r0, #0
- beq .L2634
+ beq .L2705
bl rknand_device_lock
mov r1, #0
mov r2, #64
mov r0, r5
bl FlashReadFacBbtData
bl rknand_device_unlock
- ldr r0, .L2681+80
+ ldr r0, .L2752+80
mov r1, r5
mov r2, #4
mov r3, #8
@@ -22740,25 +23603,25 @@ rknand_sys_storage_ioctl:
mov r0, r4
mov r1, r5
mov r2, #64
- b .L2671
-.L2579:
- ldr r0, .L2681+84
+ b .L2742
+.L2650:
+ ldr r0, .L2752+84
bl printk
- ldr r3, .L2681+52
+ ldr r3, .L2752+52
add r1, sp, #528
mov r0, r4
mov r2, #4
- ldr r3, [r3, #472]
+ ldr r3, [r3, #480]
ldr r3, [r3, #20]
str r3, [r1, #-524]!
- b .L2667
-.L2580:
- ldr r0, .L2681+88
+ b .L2738
+.L2651:
+ ldr r0, .L2752+88
bl printk
mov r0, #4096
bl ftl_malloc
subs r5, r0, #0
- beq .L2634
+ beq .L2705
bl rknand_device_lock
mov r1, #264
mov r2, #2
@@ -22769,259 +23632,259 @@ rknand_sys_storage_ioctl:
mov r0, r4
mov r1, r5
mov r2, #1024
-.L2671:
+.L2742:
bl rk_copy_to_user
subs r4, r0, #0
mov r0, r5
- beq .L2603
-.L2666:
+ beq .L2674
+.L2737:
bl ftl_free
- b .L2657
-.L2603:
+ b .L2728
+.L2674:
bl ftl_free
- b .L2592
-.L2568:
- ldr r0, .L2681+92
+ b .L2663
+.L2639:
+ ldr r0, .L2752+92
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
subs r5, r0, #0
- bne .L2668
-.L2604:
+ bne .L2739
+.L2675:
ldr r2, [sp, #8]
- ldr r3, .L2681+96
+ ldr r3, .L2752+96
cmp r2, r3
- bne .L2659
+ bne .L2730
ldr r3, [sp, #12]
cmp r3, #512
- bhi .L2659
- ldr r6, .L2681+52
+ bhi .L2730
+ ldr r6, .L2752+52
mov r2, #512
add r0, sp, #8
- ldr r1, [r6, #472]
+ ldr r1, [r6, #480]
bl memcpy
- ldr r2, [r6, #476]
- ldr r3, .L2681+100
+ ldr r2, [r6, #484]
+ ldr r3, .L2752+100
cmp r2, r3
- beq .L2605
+ beq .L2676
add r0, sp, #72
mov r1, #128
str r5, [sp, #16]
str r5, [sp, #20]
bl __memzero
-.L2605:
+.L2676:
add r0, sp, #264
mov r1, #256
mov r3, #0
str r3, [sp, #24]
bl __memzero
- b .L2674
-.L2569:
- ldr r0, .L2681+104
+ b .L2745
+.L2640:
+ ldr r0, .L2752+104
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
cmp r0, #0
- bne .L2668
-.L2606:
+ bne .L2739
+.L2677:
ldr r2, [sp, #8]
- ldr r3, .L2681+96
+ ldr r3, .L2752+96
cmp r2, r3
- bne .L2659
+ bne .L2730
ldr r3, [sp, #12]
cmp r3, #512
- bhi .L2659
- ldr r4, .L2681+52
- ldr r3, .L2681+100
- ldr r2, [r4, #476]
+ bhi .L2730
+ ldr r4, .L2752+52
+ ldr r3, .L2752+100
+ ldr r2, [r4, #484]
cmp r2, r3
- bne .L2640
+ bne .L2711
ldr r3, [sp, #20]
sub r2, r3, #1
cmp r2, #127
mvnhi r4, #2
- bhi .L2566
- ldr r0, [r4, #472]
+ bhi .L2637
+ ldr r0, [r4, #480]
add r1, sp, #72
str r3, [r0, #12]
add r0, r0, #64
ldr r2, [sp, #20]
bl memcpy
mov r0, #1
- ldr r1, [r4, #472]
- b .L2664
-.L2679:
- ldr r0, .L2681+108
+ ldr r1, [r4, #480]
+ b .L2735
+.L2750:
+ ldr r0, .L2752+108
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
cmp r0, #0
- bne .L2668
-.L2607:
+ bne .L2739
+.L2678:
ldr r2, [sp, #8]
- ldr r3, .L2681+112
+ ldr r3, .L2752+112
cmp r2, r3
- bne .L2659
+ bne .L2730
ldr r3, [sp, #12]
cmp r3, #512
- bhi .L2659
- ldr r5, .L2681+52
- ldr r4, [r5, #480]
+ bhi .L2730
+ ldr r5, .L2752+52
+ ldr r4, [r5, #488]
cmp r4, #0
- beq .L2566
- ldr r3, [r5, #484]
- ldr r2, .L2681+116
+ beq .L2637
+ ldr r3, [r5, #492]
+ ldr r2, .L2752+116
ldr r1, [r3, #0]
cmp r1, r2
- beq .L2608
+ beq .L2679
str r2, [r3, #0]
mov r2, #504
- ldr r3, [r5, #484]
+ ldr r3, [r5, #492]
str r2, [r3, #4]
mov r2, #0
str r2, [r3, #8]
str r2, [r3, #12]
-.L2608:
- ldr r1, [r5, #484]
+.L2679:
+ ldr r1, [r5, #492]
mov r4, #0
mov r0, r4
str r4, [r1, #16]
bl StorageSysDataStore
- ldr r3, [r5, #472]
- ldr r2, .L2681+96
- ldr r5, .L2681+52
+ ldr r3, [r5, #480]
+ ldr r2, .L2752+96
+ ldr r5, .L2752+52
ldr r1, [r3, #0]
cmp r1, r2
strne r2, [r3, #0]
- ldr r0, [r5, #472]
+ ldr r0, [r5, #480]
mov r1, #128
- ldrne r3, .L2681+52
+ ldrne r3, .L2752+52
movne r2, #504
- ldrne r3, [r3, #472]
+ ldrne r3, [r3, #480]
stmneib r3, {r2, r4}
mov r4, #0
str r4, [r0, #12]
add r0, r0, #64
bl __memzero
mov r0, #1
- ldr r1, [r5, #472]
+ ldr r1, [r5, #480]
bl StorageSysDataStore
- str r4, [r5, #480]
- str r4, [r5, #476]
- b .L2592
-.L2571:
- ldr r0, .L2681+120
+ str r4, [r5, #488]
+ str r4, [r5, #484]
+ b .L2663
+.L2642:
+ ldr r0, .L2752+120
bl printk
mov r1, r4
add r0, sp, #8
mov r2, #520
bl rk_copy_from_user
subs r4, r0, #0
- bne .L2668
-.L2610:
+ bne .L2739
+.L2681:
ldr r2, [sp, #8]
- ldr r3, .L2681+124
+ ldr r3, .L2752+124
cmp r2, r3
- bne .L2659
+ bne .L2730
ldr r3, [sp, #12]
cmp r3, #512
- bhi .L2659
- ldr r5, .L2681+52
- ldr r3, [r5, #480]
+ bhi .L2730
+ ldr r5, .L2752+52
+ ldr r3, [r5, #488]
cmp r3, #1
- beq .L2566
- ldr r3, [r5, #484]
+ beq .L2637
+ ldr r3, [r5, #492]
mov r0, #0
- ldr r2, .L2681+116
+ ldr r2, .L2752+116
ldr r1, [r3, #0]
cmp r1, r2
strne r2, [r3, #0]
- ldr r1, [r5, #484]
- ldrne r3, [r5, #484]
+ ldr r1, [r5, #492]
+ ldrne r3, [r5, #492]
movne r2, #504
strne r4, [r3, #12]
stmneib r3, {r2, r4}
mov r3, #1
str r3, [r1, #16]
bl StorageSysDataStore
- ldr r3, [r5, #472]
- ldr r2, .L2681+96
+ ldr r3, [r5, #480]
+ ldr r2, .L2752+96
ldr r1, [r3, #0]
cmp r1, r2
- beq .L2612
+ beq .L2683
str r2, [r3, #0]
mov r1, #504
- ldr r3, .L2681+52
+ ldr r3, .L2752+52
mov r2, #0
- ldr r3, [r3, #472]
+ ldr r3, [r3, #480]
stmib r3, {r1, r2}
-.L2612:
- ldr r5, .L2681+52
+.L2683:
+ ldr r5, .L2752+52
mov r1, #128
mov r4, #0
- ldr r0, [r5, #472]
+ ldr r0, [r5, #480]
str r4, [r0, #12]
add r0, r0, #64
bl __memzero
mov r0, #1
- ldr r1, [r5, #472]
+ ldr r1, [r5, #480]
bl StorageSysDataStore
mov r3, #1
- str r3, [r5, #480]
- b .L2592
-.L2678:
- ldr r0, .L2681+128
+ str r3, [r5, #488]
+ b .L2663
+.L2749:
+ ldr r0, .L2752+128
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
cmp r0, #0
- bne .L2668
-.L2613:
+ bne .L2739
+.L2684:
ldr r2, [sp, #8]
- ldr r3, .L2681+132
+ ldr r3, .L2752+132
cmp r2, r3
- bne .L2659
+ bne .L2730
ldr r2, [sp, #12]
cmp r2, #512
addls r0, sp, #16
- ldrls r1, .L2681+136
- bls .L2673
- b .L2659
-.L2573:
- ldr r3, .L2681+20
+ ldrls r1, .L2752+136
+ bls .L2744
+ b .L2730
+.L2644:
+ ldr r3, .L2752+20
cmp r5, r3
- ldreq r0, .L2681+140
- beq .L2660
- ldr r3, .L2681+144
+ ldreq r0, .L2752+140
+ beq .L2731
+ ldr r3, .L2752+144
cmp r5, r3
- ldreq r0, .L2681+148
- ldrne r0, .L2681+152
-.L2660:
+ ldreq r0, .L2752+148
+ ldrne r0, .L2752+152
+.L2731:
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
cmp r0, #0
- bne .L2668
-.L2617:
+ bne .L2739
+.L2688:
ldr r2, [sp, #8]
- ldr r3, .L2681+156
+ ldr r3, .L2752+156
cmp r2, r3
- bne .L2657
- ldr r3, .L2681+144
- ldr r6, .L2681+52
+ bne .L2728
+ ldr r3, .L2752+144
+ ldr r6, .L2752+52
cmp r5, r3
- bne .L2618
- ldr r3, [r6, #472]
+ bne .L2689
+ ldr r3, [r6, #480]
mov r0, r4
add r1, sp, #8
mov r2, #16
@@ -23032,29 +23895,29 @@ rknand_sys_storage_ioctl:
cmp r0, #0
moveq r4, r0
mvnne r4, #13
- b .L2566
-.L2618:
- ldr r3, [r6, #1000]
+ b .L2637
+.L2689:
+ ldr r3, [r6, #1008]
cmp r3, #10
- bhi .L2657
- ldr r3, [r6, #472]
+ bhi .L2728
+ ldr r3, [r6, #480]
ldr r1, [sp, #12]
ldr r2, [r3, #24]
cmp r2, r1
- beq .L2619
+ beq .L2690
cmp r2, #0
- beq .L2619
- ldr r0, .L2681+160
+ beq .L2690
+ ldr r0, .L2752+160
bl printk
- ldr r3, [r6, #1000]
+ ldr r3, [r6, #1008]
add r3, r3, #1
- str r3, [r6, #1000]
- b .L2657
-.L2619:
- ldr r0, .L2681+52
+ str r3, [r6, #1008]
+ b .L2728
+.L2690:
+ ldr r0, .L2752+52
mov r2, #0
- str r2, [r0, #1000]
- ldr r0, .L2681+20
+ str r2, [r0, #1008]
+ ldr r0, .L2752+20
cmp r5, r0
mov r0, #1
strne r1, [r3, #24]
@@ -23067,112 +23930,112 @@ rknand_sys_storage_ioctl:
cmn r0, #1
mvneq r4, #1
movne r4, #0
- b .L2592
-.L2581:
- ldr r0, .L2681+164
+ b .L2663
+.L2652:
+ ldr r0, .L2752+164
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
cmp r0, #0
- bne .L2668
-.L2622:
+ bne .L2739
+.L2693:
ldr r2, [sp, #8]
- ldr r3, .L2681+168
+ ldr r3, .L2752+168
cmp r2, r3
- bne .L2659
+ bne .L2730
ldr r2, [sp, #12]
cmp r2, #504
- bhi .L2659
- ldr r3, .L2681+172
+ bhi .L2730
+ ldr r3, .L2752+172
add r0, sp, #16
cmp r5, r3
- ldr r3, .L2681+52
- ldreq r1, [r3, #1004]
- ldrne r1, [r3, #1008]
+ ldr r3, .L2752+52
+ ldreq r1, [r3, #1012]
+ ldrne r1, [r3, #1016]
add r1, r1, #8
-.L2673:
+.L2744:
bl memcpy
-.L2674:
+.L2745:
add r1, sp, #8
mov r0, r4
mov r2, #520
-.L2667:
+.L2738:
bl rk_copy_to_user
subs r4, r0, #0
- bne .L2657
- b .L2592
-.L2582:
- ldr r0, .L2681+176
+ bne .L2728
+ b .L2663
+.L2653:
+ ldr r0, .L2752+176
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
cmp r0, #0
- beq .L2625
-.L2668:
- ldr r0, .L2681+64
+ beq .L2696
+.L2739:
+ ldr r0, .L2752+64
bl printk
- b .L2657
-.L2625:
+ b .L2728
+.L2696:
ldr r2, [sp, #8]
- ldr r3, .L2681+168
+ ldr r3, .L2752+168
cmp r2, r3
- bne .L2659
+ bne .L2730
ldr r2, [sp, #12]
cmp r2, #504
- bhi .L2659
- ldr r3, .L2681+28
+ bhi .L2730
+ ldr r3, .L2752+28
add r2, r2, #8
- ldr r4, .L2681+52
+ ldr r4, .L2752+52
cmp r5, r3
- bne .L2626
+ bne .L2697
add r1, sp, #8
- ldr r0, [r4, #1004]
+ ldr r0, [r4, #1012]
bl memcpy
- ldr r1, [r4, #1004]
+ ldr r1, [r4, #1012]
mov r0, #2
-.L2664:
+.L2735:
bl StorageSysDataStore
mov r4, r0
- b .L2592
-.L2626:
+ b .L2663
+.L2697:
add r1, sp, #8
- ldr r0, [r4, #1008]
+ ldr r0, [r4, #1016]
bl memcpy
mov r0, #3
- ldr r1, [r4, #1008]
- b .L2664
-.L2677:
+ ldr r1, [r4, #1016]
+ b .L2735
+.L2748:
bl rknand_dev_flush
- b .L2663
-.L2659:
+ b .L2734
+.L2730:
mvn r4, #0
-.L2592:
+.L2663:
mov r1, r4
- ldr r0, .L2681+180
+ ldr r0, .L2752+180
bl printk
- b .L2566
-.L2627:
+ b .L2637
+.L2698:
mvn r4, #21
- b .L2566
-.L2634:
+ b .L2637
+.L2705:
mvn r4, #11
- b .L2566
-.L2640:
+ b .L2637
+.L2711:
mvn r4, #1
- b .L2566
-.L2657:
+ b .L2637
+.L2728:
mvn r4, #13
-.L2566:
+.L2637:
mov r0, r4
add sp, sp, #528
ldmfd sp!, {r4, r5, r6, pc}
-.L2682:
+.L2753:
.align 2
-.L2681:
+.L2752:
.word 1074033155
.word 1074029694
.word 1074029570
@@ -23182,43 +24045,43 @@ rknand_sys_storage_ioctl:
.word 1074033235
.word 1074034193
.word 1074034194
- .word .LC158
- .word .LC160
- .word .LC161
- .word .LC162
- .word .LANCHOR2
- .word .LC163
- .word .LC164
- .word .LC159
- .word .LC165
- .word .LC166
- .word .LC167
- .word .LC168
- .word .LC169
- .word .LC170
- .word .LC171
+ .word .LC178
+ .word .LC180
+ .word .LC181
+ .word .LC182
+ .word .LANCHOR4
+ .word .LC183
+ .word .LC184
+ .word .LC179
+ .word .LC185
+ .word .LC186
+ .word .LC187
+ .word .LC188
+ .word .LC189
+ .word .LC190
+ .word .LC191
.word 1263358532
.word -1067903959
- .word .LC172
- .word .LC173
+ .word .LC192
+ .word .LC193
.word 1112753220
.word 1146313043
- .word .LC174
+ .word .LC194
.word 1112755781
- .word .LC175
+ .word .LC195
.word 1094995539
- .word .LANCHOR2+488
- .word .LC176
+ .word .LANCHOR4+496
+ .word .LC196
.word 1074031676
- .word .LC177
- .word .LC178
+ .word .LC197
+ .word .LC198
.word 1280262987
- .word .LC179
- .word .LC180
+ .word .LC199
+ .word .LC200
.word 1145980246
.word 1074034192
- .word .LC181
- .word .LC182
+ .word .LC201
+ .word .LC202
.fnend
.size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl
.align 2
@@ -23231,55 +24094,55 @@ rk_ftl_storage_sys_init:
stmfd sp!, {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mov r2, #512
- ldr r4, .L2686
+ ldr r4, .L2757
mov r6, #0
- add r0, r4, #488
- ldr r5, [r4, #460]
- str r6, [r4, #468]
+ add r0, r4, #496
+ ldr r5, [r4, #468]
+ str r6, [r4, #476]
add r1, r5, #1536
add r3, r5, #512
- str r5, [r4, #484]
- str r3, [r4, #472]
+ str r5, [r4, #492]
+ str r3, [r4, #480]
add r3, r5, #1024
- str r1, [r4, #1008]
- str r3, [r4, #1004]
+ str r1, [r4, #1016]
+ str r3, [r4, #1012]
bl memcpy
ldr r7, [r5, #508]
ldr r3, [r5, #16]
cmp r7, r6
- str r6, [r4, #476]
- str r6, [r4, #1000]
- str r3, [r4, #480]
- beq .L2684
+ str r6, [r4, #484]
+ str r6, [r4, #1008]
+ str r3, [r4, #488]
+ beq .L2755
mov r0, r5
mov r1, #508
bl JSHash
cmp r7, r0
- beq .L2684
+ beq .L2755
str r6, [r5, #16]
- ldr r0, .L2686+4
- str r6, [r4, #480]
+ ldr r0, .L2757+4
+ str r6, [r4, #488]
bl printk
-.L2684:
- ldr r3, [r4, #480]
+.L2755:
+ ldr r3, [r4, #488]
mov r0, #2
- ldr r4, .L2686
+ ldr r4, .L2757
cmp r3, #0
- ldrne r2, .L2686+8
- ldrne r3, .L2686
- ldr r1, [r4, #1004]
- strne r2, [r3, #476]
+ ldrne r2, .L2757+8
+ ldrne r3, .L2757
+ ldr r1, [r4, #1012]
+ strne r2, [r3, #484]
bl StorageSysDataLoad
- ldr r1, [r4, #1008]
+ ldr r1, [r4, #1016]
mov r0, #3
bl StorageSysDataLoad
ldmfd sp!, {r3, r4, r5, r6, r7, lr}
b rknand_sys_storage_init
-.L2687:
+.L2758:
.align 2
-.L2686:
- .word .LANCHOR2
- .word .LC183
+.L2757:
+ .word .LANCHOR4
+ .word .LC203
.word -1067903959
.fnend
.size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init
@@ -23306,83 +24169,83 @@ rk_ftl_vendor_storage_init:
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r0, #65536
bl ftl_malloc
- ldr r7, .L2697
+ ldr r7, .L2768
cmp r0, #0
- str r0, [r7, #1012]
- beq .L2695
- ldr sl, .L2697+4
+ str r0, [r7, #1020]
+ beq .L2766
+ ldr sl, .L2768+4
mov r6, #0
mov r4, r6
mov r5, r6
movw r8, #65532
-.L2693:
- ldr r0, [r7, #1012]
+.L2764:
+ ldr r0, [r7, #1020]
mov r1, r5, asl #7
mov r2, #0
- bl rk_ftl_vendor_ops.constprop.26
+ bl rk_ftl_vendor_ops.constprop.28
cmp r0, #0
- bne .L2691
- ldr r3, [r7, #1012]
- ldr r0, .L2697+8
+ bne .L2762
+ ldr r3, [r7, #1020]
+ ldr r0, .L2768+8
ldr r1, [r3, #0]
ldr r2, [r3, r8]
ldr r3, [r3, #4]
bl printk
- ldr r0, [r7, #1012]
+ ldr r0, [r7, #1020]
ldr r3, [r0, #0]
cmp r3, sl
- bne .L2692
+ bne .L2763
ldr r3, [r0, r8]
ldr r2, [r0, #4]
cmp r3, r2
- bne .L2692
+ bne .L2763
cmp r4, r3
movcc r6, r5
movcc r4, r3
-.L2692:
+.L2763:
add r5, r5, #1
cmp r5, #2
- bne .L2693
+ bne .L2764
cmp r4, #0
- beq .L2694
+ beq .L2765
mov r1, r6, asl #7
mov r2, #0
- bl rk_ftl_vendor_ops.constprop.26
+ bl rk_ftl_vendor_ops.constprop.28
cmp r0, #0
ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
- b .L2691
-.L2694:
+ b .L2762
+.L2765:
mov r1, #65536
bl __memzero
- ldr r3, .L2697
- ldr r1, .L2697+4
+ ldr r3, .L2768
+ ldr r1, .L2768+4
mov r2, #1
mov r0, r4
- ldr r3, [r3, #1012]
+ ldr r3, [r3, #1020]
stmia r3, {r1, r2}
movw r1, #65532
str r2, [r3, r1]
- ldr r2, .L2697+12
+ ldr r2, .L2768+12
strh r4, [r3, #12] @ movhi
strh r2, [r3, #14] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L2691:
- ldr r4, .L2697
- ldr r0, [r4, #1012]
+.L2762:
+ ldr r4, .L2768
+ ldr r0, [r4, #1020]
bl kfree
mov r3, #0
mvn r0, #0
- str r3, [r4, #1012]
+ str r3, [r4, #1020]
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L2695:
+.L2766:
mvn r0, #11
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L2698:
+.L2769:
.align 2
-.L2697:
- .word .LANCHOR2
+.L2768:
+ .word .LANCHOR4
.word 1380668996
- .word .LC184
+ .word .LC204
.word -1032
.fnend
.size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init
@@ -23395,21 +24258,21 @@ rk_ftl_vendor_read:
@ frame_needed = 0, uses_anonymous_args = 0
mov r3, r0
mov r0, r1
- ldr r1, .L2706
+ ldr r1, .L2777
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- ldr ip, [r1, #1012]
+ ldr ip, [r1, #1020]
cmp ip, #0
ldrneh r4, [ip, #10]
movne r5, ip
movne r1, #0
- bne .L2701
- b .L2705
-.L2703:
+ bne .L2772
+ b .L2776
+.L2774:
ldrh r6, [r5, #16]
add r5, r5, #8
cmp r6, r3
- bne .L2702
+ bne .L2773
add r1, r1, #2
add r1, ip, r1, asl #3
ldrh r4, [r1, #4]
@@ -23422,20 +24285,20 @@ rk_ftl_vendor_read:
bl memcpy
mov r0, r4
ldmfd sp!, {r4, r5, r6, pc}
-.L2702:
+.L2773:
add r1, r1, #1
-.L2701:
+.L2772:
cmp r1, r4
- bcc .L2703
+ bcc .L2774
mvn r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L2705:
+.L2776:
mvn r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L2707:
+.L2778:
.align 2
-.L2706:
- .word .LANCHOR2
+.L2777:
+ .word .LANCHOR4
.fnend
.size rk_ftl_vendor_read, .-rk_ftl_vendor_read
.align 2
@@ -23445,46 +24308,46 @@ rk_ftl_vendor_write:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2725
+ ldr r3, .L2796
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov sl, r0
- ldr r4, [r3, #1012]
+ ldr r4, [r3, #1020]
.pad #20
sub sp, sp, #20
mov r9, r1
mov r5, r2
cmp r4, #0
- beq .L2721
+ beq .L2792
add r8, r2, #63
ldrh r2, [r4, #8]
ldrh r3, [r4, #10]
bic r8, r8, #63
mov r7, #0
str r2, [sp, #8]
- b .L2710
-.L2717:
+ b .L2781
+.L2788:
add r2, r7, #2
mov r2, r2, asl #3
add r6, r4, r2
ldrh r2, [r4, r2]
cmp r2, sl
- bne .L2711
+ bne .L2782
ldrh r2, [r6, #4]
add r2, r2, #63
bic r2, r2, #63
str r2, [sp, #12]
cmp r5, r2
- bls .L2712
+ bls .L2783
ldrh r2, [r4, #14]
cmp r2, r8
- bcc .L2721
+ bcc .L2792
sub r3, r3, #1
mov fp, r8
ldrh r6, [r6, #2]
mov r8, r3
- b .L2713
-.L2714:
+ b .L2784
+.L2785:
add r7, r7, #1
mov r2, r2, asl #3
add r0, r7, #2
@@ -23509,10 +24372,10 @@ rk_ftl_vendor_write:
bl memcpy
ldr r3, [sp, #4]
add r6, r6, r3
-.L2713:
+.L2784:
cmp r7, r8
add r2, r7, #2
- bcc .L2714
+ bcc .L2785
mov r2, r2, asl #3
uxth r6, r6
add r3, r4, r2
@@ -23532,8 +24395,8 @@ rk_ftl_vendor_write:
add r3, r2, r3
rsb r8, r8, r3
strh r8, [r4, #14] @ movhi
- b .L2724
-.L2712:
+ b .L2795
+.L2783:
ldrh r0, [r6, #2]
mov r1, r9
mov r2, r5
@@ -23541,15 +24404,15 @@ rk_ftl_vendor_write:
add r0, r4, r0
bl memcpy
strh r5, [r6, #4] @ movhi
- b .L2724
-.L2711:
+ b .L2795
+.L2782:
add r7, r7, #1
-.L2710:
+.L2781:
cmp r7, r3
- bcc .L2717
+ bcc .L2788
ldrh r2, [r4, #14]
cmp r2, r8
- bcc .L2721
+ bcc .L2792
add r3, r3, #2
uxth r8, r8
mov r1, r9
@@ -23573,7 +24436,7 @@ rk_ftl_vendor_write:
ldrh r3, [r4, #10]
add r3, r3, #1
strh r3, [r4, #10] @ movhi
-.L2724:
+.L2795:
ldr r3, [r4, #4]
movw r2, #65532
mov r0, r4
@@ -23590,18 +24453,18 @@ rk_ftl_vendor_write:
strhih r3, [r4, #8] @ movhi
ldr r3, [sp, #8]
mov r1, r3, asl #7
- bl rk_ftl_vendor_ops.constprop.26
+ bl rk_ftl_vendor_ops.constprop.28
mov r0, #0
- b .L2709
-.L2721:
+ b .L2780
+.L2792:
mvn r0, #0
-.L2709:
+.L2780:
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2726:
+.L2797:
.align 2
-.L2725:
- .word .LANCHOR2
+.L2796:
+ .word .LANCHOR4
.fnend
.size rk_ftl_vendor_write, .-rk_ftl_vendor_write
.align 2
@@ -23619,30 +24482,30 @@ rk_ftl_vendor_storage_ioctl:
bl ftl_malloc
subs r4, r0, #0
mvneq r5, #0
- beq .L2728
- ldr r3, .L2744
+ beq .L2799
+ ldr r3, .L2815
cmp r6, r3
- beq .L2730
+ beq .L2801
add r3, r3, #1
cmp r6, r3
- bne .L2741
- b .L2743
-.L2730:
+ bne .L2812
+ b .L2814
+.L2801:
mov r1, r5
mov r2, #8
bl rk_copy_from_user
cmp r0, #0
- bne .L2741
+ bne .L2812
ldr r2, [r4, #0]
- ldr r3, .L2744+4
+ ldr r3, .L2815+4
cmp r2, r3
- bne .L2740
+ bne .L2811
ldrh r0, [r4, #4]
add r1, r4, #8
ldrh r2, [r4, #6]
bl rk_ftl_vendor_read
cmn r0, #1
- beq .L2736
+ beq .L2807
uxth r2, r0
mov r1, r4
strh r2, [r4, #6] @ movhi
@@ -23652,48 +24515,48 @@ rk_ftl_vendor_storage_ioctl:
cmp r0, #0
moveq r5, r0
mvnne r5, #13
- b .L2729
-.L2743:
+ b .L2800
+.L2814:
mov r1, r5
mov r2, #8
bl rk_copy_from_user
cmp r0, #0
- bne .L2741
+ bne .L2812
ldr r2, [r4, #0]
- ldr r3, .L2744+4
+ ldr r3, .L2815+4
cmp r2, r3
- bne .L2740
+ bne .L2811
ldrh r2, [r4, #6]
movw r3, #4087
cmp r2, r3
- bhi .L2740
+ bhi .L2811
mov r0, r4
mov r1, r5
add r2, r2, #8
bl rk_copy_from_user
cmp r0, #0
- bne .L2741
+ bne .L2812
ldrh r0, [r4, #4]
add r1, r4, #8
ldrh r2, [r4, #6]
bl rk_ftl_vendor_write
-.L2736:
+.L2807:
mov r5, r0
- b .L2729
-.L2740:
+ b .L2800
+.L2811:
mvn r5, #0
- b .L2729
-.L2741:
+ b .L2800
+.L2812:
mvn r5, #13
-.L2729:
+.L2800:
mov r0, r4
bl kfree
-.L2728:
+.L2799:
mov r0, r5
ldmfd sp!, {r4, r5, r6, pc}
-.L2745:
+.L2816:
.align 2
-.L2744:
+.L2815:
.word 1074034177
.word 1448232273
.fnend
@@ -23712,6 +24575,7 @@ rk_ftl_vendor_storage_ioctl:
.global RK29_NANDC1_REG_BASE
.global RK29_NANDC_REG_BASE
.global gc_ink_free_return_value
+ .global check_valid_page_count_table
.global FtlUpdateVaildLpnCount
.global g_ect_tbl_power_up_flush
.global last_cache_match_count
@@ -23939,23 +24803,35 @@ rk_ftl_vendor_storage_ioctl:
.global read_retry_cur_offset
.section .rodata
.set .LANCHOR3,. + 0
- .type __func__.14459, %object
- .size __func__.14459, 11
-__func__.14459:
+ .type __func__.14466, %object
+ .size __func__.14466, 11
+__func__.14466:
.ascii "FtlMemInit\000"
.LC0:
.byte 60
.byte 40
.byte 24
.byte 16
- .type __func__.15408, %object
- .size __func__.15408, 21
-__func__.15408:
+ .type __func__.15268, %object
+ .size __func__.15268, 16
+__func__.15268:
+ .ascii "FtlScanAllBlock\000"
+ .type __func__.15249, %object
+ .size __func__.15249, 17
+__func__.15249:
+ .ascii "FtlDumpBlockInfo\000"
+ .type __func__.15516, %object
+ .size __func__.15516, 21
+__func__.15516:
.ascii "FtlVpcCheckAndModify\000"
- .type __func__.14532, %object
- .size __func__.14532, 8
-__func__.14532:
+ .type __func__.14539, %object
+ .size __func__.14539, 8
+__func__.14539:
.ascii "FtlInit\000"
+ .type __func__.15213, %object
+ .size __func__.15213, 12
+__func__.15213:
+ .ascii "FtlCheckVpc\000"
.section .rodata.str1.1,"aMS",%progbits,1
.LC1:
.ascii "FlashEraseBlocks pageAddr error %x\012\000"
@@ -24092,9 +24968,9 @@ __func__.14532:
.LC66:
.ascii "WR_CHK = 0x%x %x %x %x\012\000"
.LC67:
- .ascii "Read Err Cnt = 0x%x\012\000"
+ .ascii "Read Err = 0x%x\012\000"
.LC68:
- .ascii "Prog Err Cnt = 0x%x\012\000"
+ .ascii "Prog Err = 0x%x\012\000"
.LC69:
.ascii "gc_free_blk_th= 0x%x\012\000"
.LC70:
@@ -24116,7 +24992,7 @@ __func__.14532:
.LC78:
.ascii "%s\012\000"
.LC79:
- .ascii "FTL version: 5.0.48 20180528\000"
+ .ascii "FTL version: 5.0.48 20180703\000"
.LC80:
.ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
.ascii "\012\000"
@@ -24162,174 +25038,220 @@ __func__.14532:
.LC100:
.ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
.LC101:
- .ascii "prog error: = %x\012\000"
+ .ascii "...%s enter...\012\000"
.LC102:
- .ascii "prog read error: = %x\012\000"
+ .ascii "blk = %x vpc=%x mode = %x\012\000"
.LC103:
- .ascii "prog read s error: = %x %x %x\012\000"
+ .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
+ .ascii "%x\012\000"
.LC104:
- .ascii "prog read d error: = %x %x %x\012\000"
+ .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
+ .ascii "%x\012\000"
.LC105:
- .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
+ .ascii "superBlkID = %x vpc=%x\012\000"
.LC106:
- .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
+ .ascii "flashmode = %x pagenum = %x %x\012\000"
.LC107:
- .ascii "FtlBbmTblFlush error:%x\012\000"
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012"
+ .ascii "\000"
.LC108:
- .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
+ .ascii "prog error: = %x\012\000"
.LC109:
- .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
+ .ascii "prog read error: = %x\012\000"
.LC110:
- .ascii "decrement_vpc_count %x = %d\012\000"
+ .ascii "prog read s error: = %x %x %x\012\000"
.LC111:
- .ascii "FlashMakeFactorBbt %d\012\000"
+ .ascii "prog read d error: = %x %x %x\012\000"
.LC112:
- .ascii "bad block:%d %d\012\000"
+ .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
.LC113:
- .ascii "FMFB:%d %d\012\000"
+ .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
.LC114:
- .ascii "E:bad block:%d\012\000"
+ .ascii "FtlBbmTblFlush error:%x\012\000"
.LC115:
- .ascii "FMFB:Save %d %d\012\000"
+ .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
.LC116:
- .ascii "ftl_map_blk_gc blk info: %x %x %x\012\000"
+ .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
.LC117:
- .ascii "page map lost: %x %x\012\000"
+ .ascii "decrement_vpc_count %x = %d\012\000"
.LC118:
- .ascii "FtlMapWritePage error = %x\012\000"
+ .ascii "FlashMakeFactorBbt %d\012\000"
.LC119:
- .ascii "FtlMapWritePage error = %x error count = %d\012\000"
+ .ascii "bad block:%d %d\012\000"
.LC120:
- .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
+ .ascii "FMFB:%d %d\012\000"
.LC121:
- .ascii "slc mode\000"
+ .ascii "E:bad block:%d\012\000"
.LC122:
- .ascii "no ect\000"
+ .ascii "FMFB:Save %d %d\012\000"
.LC123:
- .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
+ .ascii "ftl_map_blk_gc blk info: %x %x %x\012\000"
.LC124:
- .ascii "page map lost %x %x %x %x\012\000"
+ .ascii "page map lost: %x %x\012\000"
.LC125:
- .ascii "RSB refresh addr %x\012\000"
+ .ascii "FtlMapWritePage error = %x\012\000"
.LC126:
- .ascii "spuer block %x vpn is 0\012 \000"
+ .ascii "FtlMapWritePage error = %x error count = %d\012\000"
.LC127:
- .ascii "g_recovery_ppa %x ver %x\012 \000"
+ .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
.LC128:
- .ascii "...%s enter...\012\000"
+ .ascii "slc mode\000"
.LC129:
- .ascii "FtlCheckVpc %x = %x %x\012\000"
+ .ascii "no ect\000"
.LC130:
- .ascii "%d GC datablk = %x vpc %x %x\012\000"
+ .ascii "FLFB:%d %d\012\000"
.LC131:
- .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
+ .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
+ .ascii "\000"
.LC132:
- .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
+ .ascii "Mblk:\000"
.LC133:
- .ascii "GC des block %x done\012\000"
+ .ascii "L2P:\000"
.LC134:
- .ascii "rk_ftl_de_init %x\012\000"
+ .ascii "L2PC:\000"
.LC135:
- .ascii "fix power lost blk = %x vpc=%x\012\000"
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012"
+ .ascii "\000"
.LC136:
- .ascii "erase power lost blk = %x vpc=%x\012\000"
+ .ascii ":\000"
.LC137:
- .ascii "...%s: no bad block mapping table, format device\012"
- .ascii "\000"
+ .ascii "BBT:\000"
.LC138:
- .ascii "...%s FtlSysBlkInit error ,format device!\012\000"
+ .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
.LC139:
- .ascii "FtlWrite: lpa error:%x %x\012\000"
+ .ascii "region_id = %x phyAddr = %x\012\000"
.LC140:
- .ascii "FLFB:%d %d\012\000"
+ .ascii "map_ppn:\000"
.LC141:
- .ascii "BBT:\000"
+ .ascii "Ftlscanalldata = %x\012\000"
.LC142:
- .ascii "otp error! %d\000"
+ .ascii "scan lpa = %x ppa= %x\012\000"
.LC143:
- .ascii "rr\000"
+ .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
+ .ascii "\000"
.LC144:
- .ascii "FlashLoadPhyInfo fail %x!!\012\000"
+ .ascii "RSB refresh addr %x\012\000"
.LC145:
- .ascii "FtlInit %x\012\000"
+ .ascii "spuer block %x vpn is 0\012 \000"
.LC146:
- .ascii "IdBlockReadData %x %x\012\000"
+ .ascii "g_recovery_ppa %x ver %x\012 \000"
.LC147:
- .ascii "IdBlockReadData %x %x ret= %x\012\000"
+ .ascii "FtlCheckVpc %x = %x %x\012\000"
.LC148:
- .ascii "IDBlockWriteData %x %x\012\000"
+ .ascii "GC des block %x done\012\000"
.LC149:
- .ascii "IDBlockWriteData %x %x ret= %x\012\000"
+ .ascii "%d GC datablk = %x vpc %x %x\012\000"
.LC150:
- .ascii "write_idblock fix data %x %x\012\000"
+ .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
.LC151:
- .ascii "idblk:\000"
+ .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
.LC152:
- .ascii "idb reverse %x %x\012\000"
+ .ascii "rk_ftl_de_init %x\012\000"
.LC153:
- .ascii "write_idblock totle_sec %x %x %x %x\012\000"
+ .ascii "fix power lost blk = %x vpc=%x\012\000"
.LC154:
+ .ascii "erase power lost blk = %x vpc=%x\012\000"
+.LC155:
+ .ascii "...%s: no bad block mapping table, format device\012"
+ .ascii "\000"
+.LC156:
+ .ascii "...%s FtlSysBlkInit error ,format device!\012\000"
+.LC157:
+ .ascii "FtlWrite: lpa error:%x %x\012\000"
+.LC158:
+ .ascii "vpc1\000"
+.LC159:
+ .ascii "vpc2\000"
+.LC160:
+ .ascii "FtlCheckVpc2 %x = %x %x\012\000"
+.LC161:
+ .ascii "free blk vpc error %x = %x %x\012\000"
+.LC162:
+ .ascii "otp error! %d\000"
+.LC163:
+ .ascii "rr\000"
+.LC164:
+ .ascii "FlashLoadPhyInfo fail %x!!\012\000"
+.LC165:
+ .ascii "FtlInit %x\012\000"
+.LC166:
+ .ascii "IdBlockReadData %x %x\012\000"
+.LC167:
+ .ascii "IdBlockReadData %x %x ret= %x\012\000"
+.LC168:
+ .ascii "IDBlockWriteData %x %x\012\000"
+.LC169:
+ .ascii "IDBlockWriteData %x %x ret= %x\012\000"
+.LC170:
+ .ascii "write_idblock fix data %x %x\012\000"
+.LC171:
+ .ascii "idblk:\000"
+.LC172:
+ .ascii "idb reverse %x %x\012\000"
+.LC173:
+ .ascii "write_idblock totle_sec %x %x %x %x\012\000"
+.LC174:
.ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x"
.ascii "\012\000"
-.LC155:
+.LC175:
.ascii "write\000"
-.LC156:
+.LC176:
.ascii "read\000"
-.LC157:
+.LC177:
.ascii "write_idblock error %d\012\000"
-.LC158:
+.LC178:
.ascii "READ_SECTOR_IO\012\000"
-.LC159:
+.LC179:
.ascii "rk_copy_from_user error\012\000"
-.LC160:
+.LC180:
.ascii "READ_SECTOR_IO %x %x\012\000"
-.LC161:
+.LC181:
.ascii "rk_copy_to_user error\012\000"
-.LC162:
+.LC182:
.ascii "WRITE_SECTOR_IO\012\000"
-.LC163:
+.LC183:
.ascii "WRITE_SECTOR_IO %x %x\012\000"
-.LC164:
+.LC184:
.ascii "END_WRITE_SECTOR_IO\012\000"
-.LC165:
+.LC185:
.ascii "END_WRITE_SECTOR_IO %x %x\012\000"
-.LC166:
+.LC186:
.ascii "GET_FLASH_INFO_IO\012\000"
-.LC167:
+.LC187:
.ascii "GET_BAD_BLOCK_IO\012\000"
-.LC168:
+.LC188:
.ascii "bbt:\000"
-.LC169:
+.LC189:
.ascii "GET_LOCK_FLAG_IO\012\000"
-.LC170:
+.LC190:
.ascii "GET_PUBLIC_KEY_IO\012\000"
-.LC171:
+.LC191:
.ascii "RKNAND_GET_DRM_KEY\012\000"
-.LC172:
+.LC192:
.ascii "RKNAND_STORE_DRM_KEY\012\000"
-.LC173:
+.LC193:
.ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000"
-.LC174:
+.LC194:
.ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000"
-.LC175:
+.LC195:
.ascii "RKNAND_GET_SN_SECTOR\012\000"
-.LC176:
+.LC196:
.ascii "RKNAND_LOADER_UNLOCK\012\000"
-.LC177:
+.LC197:
.ascii "RKNAND_LOADER_STATUS\012\000"
-.LC178:
+.LC198:
.ascii "RKNAND_LOADER_LOCK\012\000"
-.LC179:
+.LC199:
.ascii "LockKey not match %d\012\000"
-.LC180:
+.LC200:
.ascii "RKNAND_GET_VENDOR_SECTOR\012\000"
-.LC181:
+.LC201:
.ascii "RKNAND_STORE_VENDOR_SECTOR\012\000"
-.LC182:
+.LC202:
.ascii "return ret = %lx\012\000"
-.LC183:
+.LC203:
.ascii "secureBootEn check error\012\000"
-.LC184:
+.LC204:
.ascii "\0013vendor storage %x,%x,%x\012\000"
.data
.align 2
@@ -27056,6 +27978,7 @@ gTable_Crc32:
.align 2
.set .LANCHOR0,. + 0
.set .LANCHOR2,. + 8184
+ .set .LANCHOR4,. + 16368
.type gReadRetryInfo, %object
.size gReadRetryInfo, 852
gReadRetryInfo:
@@ -27393,10 +28316,6 @@ g_MaxLpn:
.size gBbtInfo, 60
gBbtInfo:
.space 60
- .type gSysFreeQueue, %object
- .size gSysFreeQueue, 2056
-gSysFreeQueue:
- .space 2056
.type g_flash_read_only_en, %object
.size g_flash_read_only_en, 4
g_flash_read_only_en:
@@ -27413,6 +28332,10 @@ p_erase_count_table:
.size g_totle_sys_slc_erase_count, 4
g_totle_sys_slc_erase_count:
.space 4
+ .type gSysFreeQueue, %object
+ .size gSysFreeQueue, 2056
+gSysFreeQueue:
+ .space 2056
.type g_sys_save_data, %object
.size g_sys_save_data, 48
g_sys_save_data:
@@ -27943,14 +28866,14 @@ g_gc_cur_blk_max_valid_pages:
.size gp_last_act_superblock, 4
gp_last_act_superblock:
.space 4
- .type gc_discard_updated, %object
- .size gc_discard_updated, 4
-gc_discard_updated:
- .space 4
.type g_LowFormat, %object
.size g_LowFormat, 4
g_LowFormat:
.space 4
+ .type gc_discard_updated, %object
+ .size gc_discard_updated, 4
+gc_discard_updated:
+ .space 4
.type g_ftl_nand_free_count, %object
.size g_ftl_nand_free_count, 4
g_ftl_nand_free_count:
@@ -27959,6 +28882,10 @@ g_ftl_nand_free_count:
.size last_cache_match_count, 4
last_cache_match_count:
.space 4
+ .type check_valid_page_count_table, %object
+ .size check_valid_page_count_table, 8192
+check_valid_page_count_table:
+ .space 8192
.type gLoaderBootInfo, %object
.size gLoaderBootInfo, 4
gLoaderBootInfo:
diff --git a/drivers/rk_nand/rk_ftlv5_arm64.S b/drivers/rk_nand/rk_ftlv5_arm64.S
index 3b00f1785f9a..379404130efd 100644
--- a/drivers/rk_nand/rk_ftlv5_arm64.S
+++ b/drivers/rk_nand/rk_ftlv5_arm64.S
@@ -5,7 +5,7 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- * date: 2018-06-15
+ * date: 2018-07-03
* function: rk ftl v5 for rockchip soc base on arm v8 to support MLC NAND.
*/
.cpu generic+fp+simd
@@ -1857,6 +1857,40 @@ SandiskSetRRPara:
ret
.size SandiskSetRRPara, .-SandiskSetRRPara
.align 2
+ .global micron_auto_read_calibration_config
+ .type micron_auto_read_calibration_config, %function
+micron_auto_read_calibration_config:
+ stp x29, x30, [sp, -48]!
+ add x29, sp, 0
+ str x19, [sp,16]
+ uxtb w19, w0
+ mov w0, w19
+ sbfiz x19, x19, 4, 32
+ str x1, [x29,40]
+ bl NandcWaitFlashReady
+ adrp x3, .LANCHOR0
+ add x3, x3, :lo12:.LANCHOR0
+ add x3, x3, 40
+ add x0, x3, x19
+ ldr x19, [x3,x19]
+ ldrb w2, [x0,8]
+ mov w0, 239
+ add x19, x19, x2, lsl 8
+ str w0, [x19,2056]
+ mov w0, 150
+ str w0, [x19,2052]
+ mov w0, 200
+ bl NandcDelayns
+ ldr x1, [x29,40]
+ str w1, [x19,2048]
+ str wzr, [x19,2048]
+ str wzr, [x19,2048]
+ str wzr, [x19,2048]
+ ldr x19, [sp,16]
+ ldp x29, x30, [sp], 48
+ ret
+ .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config
+ .align 2
.global FlashEraseSLc2KBlocks
.type FlashEraseSLc2KBlocks, %function
FlashEraseSLc2KBlocks:
@@ -1874,9 +1908,9 @@ FlashEraseSLc2KBlocks:
mov w22, 0
add x25, x21, 1720
add x23, x23, :lo12:.LC1
-.L260:
+.L261:
cmp w22, w24
- beq .L269
+ beq .L270
add x2, x29, 88
sub w4, w24, w22
mov x0, x20
@@ -1886,11 +1920,11 @@ FlashEraseSLc2KBlocks:
ldr w2, [x29,92]
ldrb w0, [x21,1676]
cmp w2, w0
- bcc .L261
+ bcc .L262
mov w0, -1
str w0, [x20]
- b .L262
-.L261:
+ b .L263
+.L262:
uxtw x2, w2
add x0, x21, x2
ldrb w19, [x0,1680]
@@ -1923,24 +1957,24 @@ FlashEraseSLc2KBlocks:
ldr w1, [x29,88]
mov w0, w19
bl FlashReadStatus
- tbz x0, 0, .L263
+ tbz x0, 0, .L264
mov w0, -1
str w0, [x20]
-.L263:
+.L264:
ldr w0, [x20]
cmn w0, #1
- bne .L264
+ bne .L265
ldr w1, [x29,88]
mov x0, x23
bl printk
-.L264:
+.L265:
mov w0, w19
bl NandcFlashDeCs
-.L262:
+.L263:
add w22, w22, 1
add x20, x20, 56
- b .L260
-.L269:
+ b .L261
+.L270:
mov w0, 0
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -1974,16 +2008,16 @@ HynixGetReadRetryDefault:
mov w0, -81
strb w3, [x1,6]
strb w0, [x1,7]
- bne .L271
+ bne .L272
mov w0, -89
strb w0, [x1,4]
adrp x0, .LANCHOR1+3017
mov w1, -9
strb w1, [x0,#:lo12:.LANCHOR1+3017]
- b .L326
-.L271:
+ b .L327
+.L272:
cmp w26, 3
- bne .L273
+ bne .L274
mov w0, -80
strb w0, [x1,4]
mov w0, -79
@@ -1999,10 +2033,10 @@ HynixGetReadRetryDefault:
mov w0, -74
strb w0, [x1,10]
mov w0, -73
- b .L359
-.L273:
+ b .L360
+.L274:
cmp w26, 4
- bne .L274
+ bne .L275
mov w5, -52
strb w5, [x1,4]
mov w5, -65
@@ -2015,14 +2049,14 @@ HynixGetReadRetryDefault:
mov w5, -51
strb w3, [x1,10]
strb w5, [x1,8]
-.L359:
+.L360:
mov w27, 8
strb w0, [x1,11]
mov w28, w27
- b .L272
-.L274:
+ b .L273
+.L275:
cmp w26, 5
- bne .L275
+ bne .L276
mov w0, 56
strb w0, [x1,4]
mov w0, 57
@@ -2032,10 +2066,10 @@ HynixGetReadRetryDefault:
strb w0, [x1,6]
mov w0, 59
strb w0, [x1,7]
- b .L358
-.L275:
+ b .L359
+.L276:
cmp w26, 6
- bne .L276
+ bne .L277
mov w0, 14
strb w0, [x1,4]
mov w0, 15
@@ -2045,10 +2079,10 @@ HynixGetReadRetryDefault:
strb w0, [x1,6]
mov w0, 17
strb w0, [x1,7]
- b .L358
-.L276:
+ b .L359
+.L277:
cmp w26, 7
- bne .L326
+ bne .L327
mov w0, -80
strb w0, [x1,4]
mov w0, -79
@@ -2071,15 +2105,15 @@ HynixGetReadRetryDefault:
mov w28, 10
mov w0, -43
strb w0, [x1,13]
- b .L272
-.L326:
+ b .L273
+.L327:
mov w27, 7
-.L358:
+.L359:
mov w28, 4
-.L272:
+.L273:
sub w0, w26, #1
cmp w0, 1
- bhi .L355
+ bhi .L356
adrp x22, .LANCHOR1
add x25, x20, :lo12:.LANCHOR0
add x22, x22, :lo12:.LANCHOR1
@@ -2087,10 +2121,10 @@ HynixGetReadRetryDefault:
add x26, x25, 4056
add x3, x25, 40
add x22, x22, 3000
-.L277:
+.L278:
ldrb w0, [x25,1676]
cmp w0, w21
- bls .L284
+ bls .L285
add x0, x25, x21, sxtw
ldrb w0, [x0,1680]
mov x23, 0
@@ -2102,7 +2136,7 @@ HynixGetReadRetryDefault:
ldrb w0, [x1,8]
mov w1, 55
add x24, x24, x0, lsl 8
-.L279:
+.L280:
add x0, x26, x23
str w1, [x24,2056]
str x3, [x29,128]
@@ -2117,12 +2151,12 @@ HynixGetReadRetryDefault:
ldr x1, [x29,136]
cmp w28, w23, uxtb
ldr x3, [x29,128]
- bhi .L279
+ bhi .L280
mov x0, 0
-.L280:
+.L281:
add w2, w0, 8
mov x1, 0
-.L281:
+.L282:
add x5, x1, x0
add x1, x1, 4
add x5, x22, x5
@@ -2132,10 +2166,10 @@ HynixGetReadRetryDefault:
add w5, w6, w5
strb w5, [x19,w2,sxtw]
add w2, w2, 8
- bne .L281
+ bne .L282
add x0, x0, 1
cmp x0, 4
- bne .L280
+ bne .L281
add w21, w21, 1
strb wzr, [x19,16]
strb wzr, [x19,24]
@@ -2145,11 +2179,11 @@ HynixGetReadRetryDefault:
strb wzr, [x19,48]
strb wzr, [x19,41]
strb wzr, [x19,49]
- b .L277
-.L355:
+ b .L278
+.L356:
sub w0, w26, #3
cmp w0, 4
- bhi .L284
+ bhi .L285
mul w25, w28, w27
sub w23, w28, #1
mov w21, 0
@@ -2165,11 +2199,11 @@ HynixGetReadRetryDefault:
str x0, [x29,128]
sub w0, w26, #5
str w0, [x29,136]
-.L285:
+.L286:
ldrb w0, [x25,1676]
cmp w0, w21
- bhi .L325
-.L284:
+ bhi .L326
+.L285:
add x20, x20, :lo12:.LANCHOR0
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -2180,7 +2214,7 @@ HynixGetReadRetryDefault:
ldp x27, x28, [sp,80]
ldp x29, x30, [sp], 144
ret
-.L325:
+.L326:
add x0, x25, x21, sxtw
ldrb w1, [x0,1680]
str x1, [x29,112]
@@ -2198,42 +2232,42 @@ HynixGetReadRetryDefault:
cmp w26, 7
add x6, x25, 4056
ldr x1, [x29,112]
- beq .L286
+ beq .L287
add x1, x6, x1, lsl 6
add x6, x1, 20
- b .L287
-.L286:
+ b .L288
+.L287:
mov x0, 160
madd x1, x1, x0, x6
add x6, x1, 28
-.L287:
+.L288:
mov w0, 54
cmp w26, 4
str w0, [x19,2056]
- bne .L288
+ bne .L289
mov w0, 255
str w0, [x19,2052]
mov w0, 64
str w0, [x19,2048]
mov w0, 204
- b .L360
-.L288:
+ b .L361
+.L289:
ldr w0, [x29,136]
cmp w0, 1
- bhi .L290
+ bhi .L291
ldrb w0, [x25,4060]
str w0, [x19,2052]
mov w0, 82
- b .L361
-.L290:
+ b .L362
+.L291:
mov w0, 174
str w0, [x19,2052]
str wzr, [x19,2048]
mov w0, 176
-.L360:
+.L361:
str w0, [x19,2052]
mov w0, 77
-.L361:
+.L362:
str w0, [x19,2048]
mov w0, 22
str w0, [x19,2056]
@@ -2247,13 +2281,13 @@ HynixGetReadRetryDefault:
str wzr, [x19,2056]
str wzr, [x19,2052]
str wzr, [x19,2052]
- bne .L291
+ bne .L292
mov w0, 31
str w0, [x19,2052]
- b .L292
-.L291:
- str wzr, [x19,2052]
+ b .L293
.L292:
+ str wzr, [x19,2052]
+.L293:
mov w7, 2
str w7, [x19,2052]
str wzr, [x19,2052]
@@ -2267,85 +2301,85 @@ HynixGetReadRetryDefault:
mov w1, 16
ldr x6, [x29,104]
cmp w0, 1
- bls .L294
+ bls .L295
ldr x7, [x29,112]
cmp w26, 7
mov w1, 32
csel w1, w1, w7, eq
-.L294:
+.L295:
ldr x0, [x25]
mov x7, 0
-.L295:
+.L296:
ldr w8, [x19,2048]
strb w8, [x0,x7]
add x7, x7, 1
cmp w1, w7, uxtb
- bhi .L295
+ bhi .L296
cmp w26, 7
- bne .L296
+ bne .L297
mov w1, 0
-.L298:
+.L299:
ldrb w7, [x0]
cmp w7, 12
- beq .L297
+ beq .L298
ldrb w7, [x0,1]
cmp w7, 10
- beq .L297
+ beq .L298
add w1, w1, 1
add x0, x0, 4
uxtb w1, w1
cmp w1, 8
- bne .L298
- b .L299
-.L297:
+ bne .L299
+ b .L300
+.L298:
cmp w1, 7
- bne .L300
-.L299:
+ bne .L301
+.L300:
adrp x0, .LC2
mov w1, 0
add x0, x0, :lo12:.LC2
bl printk
-.L301:
- b .L301
-.L296:
+.L302:
+ b .L302
+.L297:
cmp w26, 6
- bne .L300
+ bne .L301
mov x1, 0
-.L302:
+.L303:
ldrb w7, [x0,x1]
cmp w7, 12
- beq .L300
+ beq .L301
add x7, x0, x1
ldrb w7, [x7,8]
cmp w7, 4
- beq .L300
+ beq .L301
add x1, x1, 1
cmp x1, 8
- bne .L302
+ bne .L303
adrp x0, .LC2
mov w1, 0
add x0, x0, :lo12:.LC2
bl printk
-.L304:
- b .L304
-.L300:
+.L305:
+ b .L305
+.L301:
ldr x9, [x25]
mov x0, 0
-.L305:
+.L306:
ldr w1, [x29,124]
cmp w1, w0
- ble .L362
+ ble .L363
ldr w1, [x19,2048]
strb w1, [x9,x0]
add x0, x0, 1
- b .L305
-.L362:
+ b .L306
+.L363:
ldr x11, [x25]
mov w8, w22
mov w7, 8
-.L308:
+.L309:
mov w0, 0
-.L307:
+.L308:
add w1, w0, w8
add w0, w0, 1
sbfiz x1, x1, 2, 32
@@ -2353,52 +2387,52 @@ HynixGetReadRetryDefault:
ldr w10, [x11,x1]
mvn w10, w10
str w10, [x11,x1]
- bne .L307
+ bne .L308
ldr w0, [x29,120]
subs w7, w7, #1
add w8, w8, w0
- bne .L308
+ bne .L309
mov x7, 0
mov w15, 1
-.L309:
+.L310:
mov w1, 0
ldr x14, [x25]
mov w10, w1
-.L313:
+.L314:
lsl w8, w15, w10
mov w12, w7
mov w0, 16
mov w11, 0
-.L311:
+.L312:
ldr w13, [x14,w12,sxtw 2]
add w12, w12, w22
and w13, w8, w13
cmp w13, w8
csinc w11, w11, w11, ne
subs w0, w0, #1
- bne .L311
+ bne .L312
cmp w11, 9
orr w8, w1, w8
add w10, w10, 1
csel w1, w8, w1, cs
cmp w10, 32
- bne .L313
+ bne .L314
str w1, [x14,x7,lsl 2]
add x7, x7, 1
cmp w22, w7
- bgt .L309
+ bgt .L310
mov x7, 0
ldr x1, [x25]
mov w8, w7
-.L316:
+.L317:
ldr w10, [x1,x7]
add x7, x7, 4
cmp w10, wzr
csinc w8, w8, w8, ne
cmp x7, 32
- bne .L316
+ bne .L317
cmp w8, 7
- ble .L317
+ ble .L318
adrp x0, .LC3
mov w2, 1
add x0, x0, :lo12:.LC3
@@ -2408,39 +2442,39 @@ HynixGetReadRetryDefault:
mov w1, 0
add x0, x0, :lo12:.LC2
bl printk
+.L319:
+ b .L319
.L318:
- b .L318
-.L317:
cmp w26, 6
mov w7, 4
- beq .L319
+ beq .L320
cmp w26, 7
mov w7, 10
mov w1, 8
csel w7, w1, w7, ne
-.L319:
- mov w8, 0
.L320:
- mov x1, 0
+ mov w8, 0
.L321:
+ mov x1, 0
+.L322:
add w10, w0, w1
ldrb w11, [x9,x1]
add x1, x1, 1
cmp w28, w1, uxtb
strb w11, [x6,w10,sxtw]
- bhi .L321
+ bhi .L322
add w8, w8, 1
add x9, x9, x23
cmp w8, w27
add w0, w0, w7
- blt .L320
+ blt .L321
mov w0, 255
str w0, [x19,2056]
mov w0, w24
bl NandcWaitFlashReady
ldr w0, [x29,136]
cmp w0, 1
- bhi .L323
+ bhi .L324
mov w0, 54
str w0, [x19,2056]
adrp x0, .LANCHOR0+4060
@@ -2452,16 +2486,16 @@ HynixGetReadRetryDefault:
str w0, [x19,2056]
mov w0, w21
bl FlashReadCmd
- b .L324
-.L323:
+ b .L325
+.L324:
mov w0, 56
str w0, [x19,2056]
-.L324:
+.L325:
mov w0, w24
add w21, w21, 1
bl NandcWaitFlashReady
uxtb w21, w21
- b .L285
+ b .L286
.size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault
.align 2
.global FlashGetReadRetryDefault
@@ -2470,15 +2504,15 @@ FlashGetReadRetryDefault:
stp x29, x30, [sp, -16]!
mov w1, w0
add x29, sp, 0
- cbz w0, .L363
+ cbz w0, .L364
sub w2, w0, #1
cmp w2, 6
- bhi .L365
+ bhi .L366
bl HynixGetReadRetryDefault
- b .L363
-.L365:
+ b .L364
+.L366:
cmp w0, 49
- bne .L366
+ bne .L367
adrp x0, .LANCHOR0
mov w2, 64
add x0, x0, :lo12:.LANCHOR0
@@ -2491,30 +2525,30 @@ FlashGetReadRetryDefault:
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
add x1, x1, 2936
- b .L381
-.L366:
+ b .L382
+.L367:
sub w0, w0, #65
cmp w0, 1
- bls .L372
+ bls .L373
cmp w1, 33
- bne .L367
-.L372:
+ bne .L368
+.L373:
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
strb w1, [x0,4056]
mov w1, 4
- b .L382
-.L367:
+ b .L383
+.L368:
cmp w1, 67
- beq .L373
+ beq .L374
cmp w1, 34
- bne .L369
-.L373:
+ bne .L370
+.L374:
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
strb w1, [x0,4056]
mov w1, 5
-.L382:
+.L383:
strb w1, [x0,4057]
mov w1, 7
strb w1, [x0,4058]
@@ -2523,13 +2557,13 @@ FlashGetReadRetryDefault:
add x0, x0, 4060
add x1, x1, 2784
mov w2, 45
- b .L381
-.L369:
+ b .L382
+.L370:
cmp w1, 68
- beq .L374
+ beq .L375
cmp w1, 35
- bne .L363
-.L374:
+ bne .L364
+.L375:
adrp x0, .LANCHOR0
mov w2, 95
add x0, x0, :lo12:.LANCHOR0
@@ -2542,9 +2576,9 @@ FlashGetReadRetryDefault:
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
add x1, x1, 2832
-.L381:
+.L382:
bl ftl_memcpy
-.L363:
+.L364:
ldp x29, x30, [sp], 16
ret
.size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault
@@ -2574,7 +2608,7 @@ FlashReadDpCmd:
cmp w0, 1
and w5, w1, 255
lsr w0, w1, 16
- bne .L384
+ bne .L385
add x19, x6, x19, lsl 8
ldrb w2, [x3,8]
str x1, [x29,72]
@@ -2597,8 +2631,8 @@ FlashReadDpCmd:
str w20, [x19,2052]
str w0, [x19,2056]
ldr x1, [x29,72]
- b .L385
-.L384:
+ b .L386
+.L385:
add x19, x6, x19, lsl 8
ldrb w2, [x3,8]
str w2, [x19,2056]
@@ -2612,7 +2646,7 @@ FlashReadDpCmd:
str w22, [x19,2052]
str w20, [x19,2052]
str w0, [x19,2056]
-.L385:
+.L386:
mov w0, w21
bl FlashSetRandomizer
ldr x23, [sp,48]
@@ -2637,21 +2671,21 @@ ftl_flash_de_init:
mov w0, 12336
movk w0, 0x5638, lsl 16
cmp w1, w0
- bne .L387
+ bne .L388
mov w0, 0
bl flash_enter_slc_mode
-.L387:
+.L388:
add x19, x19, :lo12:.LANCHOR2
ldrb w0, [x19,572]
- cbz w0, .L388
+ cbz w0, .L389
ldrb w0, [x19,564]
- tbz x0, 0, .L388
+ tbz x0, 0, .L389
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
bl NandcSetMode
strb wzr, [x19,572]
-.L388:
+.L389:
adrp x0, .LANCHOR0+40
ldr x0, [x0,#:lo12:.LANCHOR0+40]
str wzr, [x0,336]
@@ -2688,37 +2722,37 @@ NandcTimeCfg:
add x1, x1, :lo12:.LANCHOR0
sdiv w0, w0, w2
cmp w0, 250
- ble .L397
+ ble .L398
ldr x0, [x1,3976]
mov w1, 8354
- b .L404
-.L397:
+ b .L405
+.L398:
cmp w0, 220
- ble .L399
+ ble .L400
ldr x0, [x1,3976]
- b .L405
-.L399:
+ b .L406
+.L400:
cmp w0, 185
- ble .L400
+ ble .L401
ldr x0, [x1,3976]
mov w1, 4226
- b .L404
-.L400:
+ b .L405
+.L401:
cmp w0, 160
ldr x0, [x1,3976]
- ble .L401
+ ble .L402
mov w1, 4194
- b .L404
-.L401:
+ b .L405
+.L402:
cmp w19, 35
mov w1, 4193
- bls .L404
+ bls .L405
cmp w19, 99
mov w1, 4225
- bls .L404
-.L405:
+ bls .L405
+.L406:
mov w1, 8322
-.L404:
+.L405:
str w1, [x0,4]
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -2734,15 +2768,15 @@ FlashTimingCfg:
and w1, w1, -33
cmp w1, 1
add x29, sp, 0
- bls .L407
+ bls .L408
mov w1, 8322
cmp w0, w1
- bne .L408
-.L407:
+ bne .L409
+.L408:
adrp x1, .LANCHOR0+3976
ldr x1, [x1,#:lo12:.LANCHOR0+3976]
str w0, [x1,4]
-.L408:
+.L409:
adrp x0, .LANCHOR1+277
ldrb w0, [x0,#:lo12:.LANCHOR1+277]
bl NandcTimeCfg
@@ -2784,10 +2818,10 @@ NandcInit:
ldr w4, [x0,352]
str w4, [x3,568]
cmp w4, 2049
- bne .L410
+ bne .L411
mov w1, 8
str w1, [x3,580]
-.L410:
+.L411:
add x20, x20, :lo12:.LANCHOR0
str w2, [x0]
ldr x0, [x20,3976]
@@ -2849,21 +2883,21 @@ NandcBchSel:
adrp x1, .LANCHOR2+644
str w0, [x1,#:lo12:.LANCHOR2+644]
mov w1, 4096
- bne .L413
-.L416:
+ bne .L414
+.L417:
and w1, w1, -17
- b .L414
-.L413:
+ b .L415
+.L414:
cmp w0, 24
- bne .L415
+ bne .L416
orr w1, w1, 16
- b .L414
-.L415:
+ b .L415
+.L416:
cmp w0, 40
orr w1, w1, 262144
orr w1, w1, 16
- beq .L416
-.L414:
+ beq .L417
+.L415:
orr w1, w1, 1
str w1, [x2,12]
ret
@@ -2914,23 +2948,23 @@ ftl_flash_resume:
str w3, [x2,336]
ldr w1, [x1,4012]
str w1, [x2,344]
-.L423:
+.L424:
lsl x0, x19, 3
ldrb w1, [x0,x20]
sub w1, w1, #1
uxtb w1, w1
cmp w1, 253
- bhi .L422
+ bhi .L423
mov w0, w19
bl FlashReset
-.L422:
+.L423:
add x19, x19, 1
cmp x19, 4
- bne .L423
+ bne .L424
adrp x19, .LANCHOR2
add x19, x19, :lo12:.LANCHOR2
ldrb w0, [x19,572]
- cbz w0, .L424
+ cbz w0, .L425
mov w0, 1
bl NandcSetMode
ldrb w0, [x19,564]
@@ -2939,7 +2973,7 @@ ftl_flash_resume:
bl NandcSetMode
lsr w0, w21, 8
bl NandcSetDdrPara
-.L424:
+.L425:
add x0, x22, :lo12:.LANCHOR0
ldr x0, [x0,1912]
ldrb w0, [x0,20]
@@ -2972,18 +3006,18 @@ NandcIqrWaitFlashReady:
orr w0, w0, 2
str w0, [x19,364]
ldr w0, [x19]
- tbnz x0, 9, .L431
+ tbnz x0, 9, .L432
mov x0, x19
bl wait_for_nand_flash_ready
- b .L430
-.L431:
+ b .L431
+.L432:
ldr w0, [x19,368]
orr w0, w0, 2
str w0, [x19,368]
ldr w0, [x19,364]
and w0, w0, -3
str w0, [x19,364]
-.L430:
+.L431:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -3007,17 +3041,17 @@ FlashEraseBlocks:
mov x24, x0
ldrb w2, [x20,24]
mov w19, 0
- cbz w2, .L434
+ cbz w2, .L435
mov w1, w23
bl FlashEraseSLc2KBlocks
- b .L435
-.L434:
+ b .L436
+.L435:
mov w27, 56
adrp x28, .LANCHOR2
add x25, x20, 1720
-.L465:
+.L466:
cmp w19, w23
- bcs .L466
+ bcs .L467
umull x5, w19, w27
mov w1, 0
sub w4, w23, w19
@@ -3032,11 +3066,11 @@ FlashEraseBlocks:
ldr w0, [x29,124]
ldr x5, [x29,96]
cmp w0, w1
- bcc .L436
+ bcc .L437
mov w0, -1
str w0, [x24,x5]
- b .L437
-.L436:
+ b .L438
+.L437:
add x1, x28, :lo12:.LANCHOR2
mov x2, 24
ldrb w1, [x1,648]
@@ -3045,9 +3079,9 @@ FlashEraseBlocks:
csel w22, w22, wzr, ne
madd x1, x1, x2, x25
ldr x1, [x1,8]
- cbz x1, .L439
+ cbz x1, .L440
bl FlashWaitCmdDone
-.L439:
+.L440:
ldr w1, [x29,124]
mov x0, 24
ldr w2, [x29,120]
@@ -3055,12 +3089,12 @@ FlashEraseBlocks:
str x21, [x0,8]
str xzr, [x0,16]
str w2, [x0,4]
- cbz w22, .L440
+ cbz w22, .L441
add w2, w19, 1
umull x2, w2, w27
add x2, x24, x2
str x2, [x0,16]
-.L440:
+.L441:
add x0, x20, x1
ldrb w21, [x0,1680]
mov x0, 24
@@ -3069,16 +3103,16 @@ FlashEraseBlocks:
strb w21, [x25,x1]
bl NandcFlashCs
cmp w26, 1
- bne .L441
+ bne .L442
ldrb w0, [x20,136]
- cbz w0, .L441
+ cbz w0, .L442
mov w0, w21
bl flash_enter_slc_mode
- b .L442
-.L441:
+ b .L443
+.L442:
mov w0, w21
bl flash_exit_slc_mode
-.L442:
+.L443:
ldr w1, [x29,124]
add x0, x20, 1688
add w19, w19, w22
@@ -3094,54 +3128,54 @@ FlashEraseBlocks:
bl FlashEraseCmd
mov w0, w21
bl NandcFlashDeCs
-.L437:
+.L438:
add w19, w19, 1
- b .L465
-.L466:
+ b .L466
+.L467:
ldr x0, [x29,104]
mov x20, 0
mov x21, 24
add x19, x0, :lo12:.LANCHOR0
ldr x0, [x19,3976]
bl NandcIqrWaitFlashReady
-.L444:
+.L445:
ldrb w0, [x19,1676]
cmp w0, w20
- bls .L467
+ bls .L468
mov w0, w20
bl FlashWaitCmdDone
cmp w26, 1
- bne .L445
+ bne .L446
ldrb w0, [x19,136]
- cbz w0, .L445
+ cbz w0, .L446
madd x0, x20, x21, x19
ldrb w0, [x0,1720]
bl flash_exit_slc_mode
-.L445:
+.L446:
add x20, x20, 1
- b .L444
-.L467:
+ b .L445
+.L468:
adrp x0, .LANCHOR2+652
ldr w0, [x0,#:lo12:.LANCHOR2+652]
- cbnz w0, .L447
-.L449:
+ cbnz w0, .L448
+.L450:
mov w0, 0
- b .L435
-.L447:
+ b .L436
+.L448:
adrp x0, IDByte
ldrb w0, [x0,#:lo12:IDByte]
cmp w0, 69
- bne .L449
+ bne .L450
mov x0, 0
mov x1, 56
-.L448:
+.L449:
cmp w23, w0
- bls .L449
+ bls .L450
mul x2, x0, x1
add x0, x0, 1
str wzr, [x24,x2]
- b .L448
-.L435:
+ b .L449
+.L436:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -3179,11 +3213,11 @@ NandcSendDumpDataStart:
.type NandcSendDumpDataDone, %function
NandcSendDumpDataDone:
sub sp, sp, #16
-.L470:
+.L471:
ldr w1, [x0,8]
str w1, [sp,8]
ldr w1, [sp,8]
- tbz x1, 20, .L470
+ tbz x1, 20, .L471
add sp, sp, 16
ret
.size NandcSendDumpDataDone, .-NandcSendDumpDataDone
@@ -3224,7 +3258,7 @@ NandcXferStart:
ldr w0, [x0,580]
bfi w20, w3, 4, 1
cmp w0, 3
- bls .L474
+ bls .L475
ldr w0, [x21,16]
cmp x5, xzr
str w0, [x29,88]
@@ -3232,11 +3266,11 @@ NandcXferStart:
ldr w0, [x29,88]
and w0, w0, -5
str w0, [x29,88]
- cbnz w7, .L488
- cbz x22, .L475
-.L488:
- cbnz w25, .L477
-.L485:
+ cbnz w7, .L489
+ cbz x22, .L476
+.L489:
+ cbnz w25, .L478
+.L486:
mov x0, x21
add w23, w23, 1
asr w23, w23, 1
@@ -3249,11 +3283,11 @@ NandcXferStart:
orr w0, w0, 1
str w0, [x21,364]
mov x0, x22
- cbnz x22, .L479
+ cbnz x22, .L480
add x0, x19, :lo12:.LANCHOR2
ldr x0, [x0,592]
- b .L479
-.L477:
+ b .L480
+.L478:
add x1, x19, :lo12:.LANCHOR2
mov w4, 128
mov w2, 0
@@ -3264,26 +3298,26 @@ NandcXferStart:
cmp w0, 25
mov w0, 64
csel w4, w0, w4, cc
-.L481:
+.L482:
cmp w3, w8
- bcs .L485
+ bcs .L486
lsr w0, w2, 2
ubfiz x0, x0, 2, 30
- cbz w7, .L482
+ cbz w7, .L483
ldrh w6, [x5,2]
ldr x10, [x1,600]
ldrh w11, [x5],4
orr w6, w11, w6, lsl 16
str w6, [x10,x0]
- b .L483
-.L482:
+ b .L484
+.L483:
ldr x6, [x1,600]
str w9, [x6,x0]
-.L483:
+.L484:
add w3, w3, 1
add w2, w2, w4
- b .L481
-.L479:
+ b .L482
+.L480:
add x19, x19, :lo12:.LANCHOR2
ubfx x23, x20, 22, 5
mov w2, w25
@@ -3313,12 +3347,12 @@ NandcXferStart:
ldr w0, [x29,88]
orr w0, w0, 448
str w0, [x29,88]
- cbnz x22, .L486
+ cbnz x22, .L487
ldr w0, [x29,88]
mov w1, 2
bfi w0, w1, 3, 3
str w0, [x29,88]
-.L486:
+.L487:
ldr w0, [x29,88]
cmp w25, wzr
cset w1, eq
@@ -3330,10 +3364,10 @@ NandcXferStart:
ldr w0, [x29,88]
orr w0, w0, 1
str w0, [x29,88]
-.L475:
+.L476:
ldr w0, [x29,88]
str w0, [x21,16]
-.L474:
+.L475:
str w24, [x21,12]
str w20, [x21,8]
orr w20, w20, 4
@@ -3363,36 +3397,36 @@ NandcXferComp:
add x0, x20, :lo12:.LANCHOR2
ldr w0, [x0,580]
cmp w0, 3
- bls .L523
+ bls .L524
ldr w0, [x19,16]
- tbz x0, 2, .L523
+ tbz x0, 2, .L524
mov x0, x19
bl wait_for_nandc_xfer_completed
ldr w21, [x19,16]
ldr w0, [x19,8]
ubfx x21, x21, 1, 1
str w0, [x29,64]
- cbz w21, .L494
+ cbz w21, .L495
adrp x22, .LC4
adrp x23, .LC5
mov w21, 0
add x22, x22, :lo12:.LC4
add x23, x23, :lo12:.LC5
-.L495:
+.L496:
ldr w2, [x19,28]
ldr w1, [x29,64]
ubfx x2, x2, 16, 5
ubfx x1, x1, 22, 6
cmp w2, w1
- bge .L503
+ bge .L504
add x0, x20, :lo12:.LANCHOR2
ldr w0, [x0,580]
cmp w0, 5
- bhi .L496
-.L499:
+ bhi .L497
+.L500:
add w21, w21, 1
and w0, w21, 16777215
- cbnz w0, .L495
+ cbnz w0, .L496
ldr w2, [x19,28]
mov w1, w21
ldr w3, [x29,64]
@@ -3405,19 +3439,19 @@ NandcXferComp:
mov w2, 4
mov w3, 512
bl rknand_print_hex
- b .L495
-.L496:
+ b .L496
+.L497:
ldr w0, [x19]
str w0, [x29,72]
ldr w0, [x29,72]
- tbz x0, 13, .L499
+ tbz x0, 13, .L500
ldr w0, [x29,72]
- tbz x0, 17, .L499
-.L503:
+ tbz x0, 17, .L500
+.L504:
add x19, x20, :lo12:.LANCHOR2
add x19, x19, 592
ldr w0, [x19,40]
- cbz w0, .L504
+ cbz w0, .L505
ldr w1, [x29,64]
mov w2, 0
ldr w0, [x19,32]
@@ -3430,20 +3464,20 @@ NandcXferComp:
ubfx x1, x1, 22, 5
lsl w1, w1, 7
bl rknand_dma_unmap_single
- b .L504
-.L494:
+ b .L505
+.L495:
adrp x22, .LC6
adrp x23, .LC5
add x22, x22, :lo12:.LC6
add x23, x23, :lo12:.LC5
-.L505:
+.L506:
ldr w0, [x29,64]
- tbnz x0, 20, .L531
+ tbnz x0, 20, .L532
ldr w0, [x19,8]
add w21, w21, 1
str w0, [x29,64]
and w0, w21, 16777215
- cbnz w0, .L505
+ cbnz w0, .L506
ldr w2, [x29,64]
mov w1, w21
ldr w3, [x19,28]
@@ -3455,18 +3489,18 @@ NandcXferComp:
mov w2, 4
mov w3, 512
bl rknand_print_hex
- b .L505
-.L531:
+ b .L506
+.L532:
add x0, x20, :lo12:.LANCHOR2
ldr w0, [x0,640]
- cbz w0, .L508
+ cbz w0, .L509
mov x0, x19
bl NandcSendDumpDataStart
-.L508:
+.L509:
add x21, x20, :lo12:.LANCHOR2
add x21, x21, 592
ldr w0, [x21,40]
- cbz w0, .L509
+ cbz w0, .L510
ldr w1, [x29,64]
mov w2, 1
ldr w0, [x21,32]
@@ -3479,22 +3513,22 @@ NandcXferComp:
ubfx x1, x1, 22, 5
lsl w1, w1, 7
bl rknand_dma_unmap_single
-.L509:
+.L510:
add x0, x20, :lo12:.LANCHOR2
ldr w0, [x0,640]
- cbz w0, .L504
+ cbz w0, .L505
mov x0, x19
bl NandcSendDumpDataDone
-.L504:
+.L505:
add x20, x20, :lo12:.LANCHOR2
str wzr, [x20,632]
- b .L492
-.L523:
+ b .L493
+.L524:
ldr w0, [x19,8]
str w0, [x29,64]
ldr w0, [x29,64]
- tbz x0, 20, .L523
-.L492:
+ tbz x0, 20, .L524
+.L493:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -3517,14 +3551,14 @@ NandcCopy1KB:
add x4, x0, 4096
add x21, x0, 512
add x2, x4, x2
- bne .L533
- cbz x3, .L534
+ bne .L534
+ cbz x3, .L535
mov x0, x2
mov x1, x3
mov w2, 1024
bl ftl_memcpy
-.L534:
- cbz x20, .L532
+.L535:
+ cbz x20, .L533
mov w0, 48
lsr w19, w19, 1
ldrb w1, [x20,1]
@@ -3538,15 +3572,15 @@ NandcCopy1KB:
ldrb w1, [x20,3]
orr w0, w0, w1, lsl 24
str w0, [x21,w19,sxtw 2]
- b .L532
-.L533:
- cbz x3, .L537
+ b .L533
+.L534:
+ cbz x3, .L538
mov x1, x2
mov x0, x3
mov w2, 1024
bl ftl_memcpy
-.L537:
- cbz x20, .L532
+.L538:
+ cbz x20, .L533
mov w0, 48
lsr w19, w19, 1
mul w19, w19, w0
@@ -3559,7 +3593,7 @@ NandcCopy1KB:
lsr w0, w0, 24
strb w1, [x20,2]
strb w0, [x20,3]
-.L532:
+.L533:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -3586,14 +3620,14 @@ NandcXferData:
uxtb w23, w2
mov x25, x3
mov x21, x4
- cbnz x0, .L549
- cbnz x4, .L550
+ cbnz x0, .L550
+ cbnz x4, .L551
add x0, x29, 112
mov w1, 255
mov w2, 64
add x21, x29, 112
bl ftl_memset
-.L550:
+.L551:
mov w0, w24
mov w1, w20
mov w2, w23
@@ -3604,7 +3638,7 @@ NandcXferData:
bl NandcXferStart
mov w0, w24
bl NandcXferComp
- cbnz w20, .L551
+ cbnz w20, .L552
adrp x0, .LANCHOR2
ubfx x3, x23, 1, 7
add x2, x0, :lo12:.LANCHOR2
@@ -3615,10 +3649,10 @@ NandcXferData:
mov w1, 64
csel w4, w1, w4, cc
mov w1, w20
-.L553:
+.L554:
cmp x21, x3
add w5, w1, w4
- beq .L595
+ beq .L596
ldr x6, [x2,600]
and x1, x1, 4294967292
add x21, x21, 4
@@ -3631,29 +3665,29 @@ NandcXferData:
lsr w1, w1, 24
strb w1, [x21,-1]
mov w1, w5
- b .L553
-.L595:
+ b .L554
+.L596:
add x0, x0, :lo12:.LANCHOR2
lsr w23, w23, 2
ldr w4, [x0,644]
ldr w5, [x0,580]
mov w0, 0
mov w22, w0
-.L555:
+.L556:
cmp w0, w23
- bcs .L551
- cbz w4, .L551
+ bcs .L552
+ cbz w4, .L552
uxtw x1, w0
add x1, x1, 8
ldr w1, [x19,x1,lsl 2]
str w1, [x29,104]
ldr w1, [x29,104]
- tbnz x1, 2, .L579
+ tbnz x1, 2, .L580
ldr w3, [x29,104]
ubfx x3, x3, 15, 1
- cbnz w3, .L579
+ cbnz w3, .L580
cmp w5, 5
- bls .L557
+ bls .L558
ldr w2, [x29,104]
ubfx x6, x2, 3, 5
ldr w2, [x29,104]
@@ -3666,20 +3700,20 @@ NandcXferData:
orr w1, w3, w1, lsl 5
ldr w3, [x29,104]
cmp w2, w1
- bls .L558
+ bls .L559
ldr w1, [x29,104]
ubfx x3, x3, 3, 5
ubfx x1, x1, 27, 1
orr w3, w3, w1, lsl 5
- b .L559
-.L558:
+ b .L560
+.L559:
ubfx x1, x3, 16, 5
ldr w3, [x29,104]
ubfx x3, x3, 29, 1
- b .L594
-.L557:
+ b .L595
+.L558:
cmp w5, 3
- bls .L559
+ bls .L560
ldr w2, [x29,104]
ubfx x6, x2, 3, 5
ldr w2, [x29,104]
@@ -3692,43 +3726,43 @@ NandcXferData:
orr w1, w3, w1, lsl 5
ldr w3, [x29,104]
cmp w2, w1
- bls .L560
+ bls .L561
ubfx x1, x3, 3, 5
ldr w3, [x29,104]
ubfx x3, x3, 28, 1
- b .L594
-.L560:
+ b .L595
+.L561:
ubfx x1, x3, 16, 5
ldr w3, [x29,104]
ubfx x3, x3, 30, 1
-.L594:
+.L595:
orr w3, w1, w3, lsl 5
-.L559:
+.L560:
cmp w22, w3
csel w22, w22, w3, cs
- b .L556
-.L579:
+ b .L557
+.L580:
mov w22, -1
-.L556:
+.L557:
add w0, w0, 1
- b .L555
-.L551:
+ b .L556
+.L552:
str wzr, [x19,16]
- b .L562
-.L549:
+ b .L563
+.L550:
cmp w20, 1
- bne .L593
+ bne .L594
mov w22, 0
mov w27, 2
-.L563:
+.L564:
cmp w22, w23
- bcs .L596
+ bcs .L597
and w26, w22, 3
mov x3, x25
- cbz x25, .L565
+ cbz x25, .L566
ubfiz x0, x22, 9, 23
add x3, x25, x0
-.L565:
+.L566:
cmp x21, xzr
mov x0, x19
csel w4, w27, wzr, ne
@@ -3747,11 +3781,11 @@ NandcXferData:
bl NandcXferStart
mov w0, w24
bl NandcXferComp
- b .L563
-.L596:
+ b .L564
+.L597:
mov w22, 0
- b .L562
-.L593:
+ b .L563
+.L594:
mov w1, 0
mov x4, 0
mov w26, 0
@@ -3762,16 +3796,16 @@ NandcXferData:
mov w22, w26
mov w27, 2
bl NandcXferStart
-.L568:
+.L569:
cmp w26, w23
- bcs .L562
+ bcs .L563
mov w0, w24
add w28, w26, 2
bl NandcXferComp
ldr w0, [x19,32]
cmp w28, w23
str w0, [x29,104]
- bcs .L569
+ bcs .L570
mov x4, 0
mov w0, w24
mov w1, 0
@@ -3779,9 +3813,9 @@ NandcXferData:
and w3, w28, 3
mov x5, x4
bl NandcXferStart
-.L569:
+.L570:
ldr w0, [x29,104]
- tbnz x0, 2, .L584
+ tbnz x0, 2, .L585
ldr w0, [x29,104]
ubfx x1, x0, 3, 5
ldr w0, [x29,104]
@@ -3789,16 +3823,16 @@ NandcXferData:
orr w0, w1, w0, lsl 5
cmp w22, w0
csel w22, w22, w0, cs
- b .L570
-.L584:
+ b .L571
+.L585:
mov w22, -1
-.L570:
+.L571:
and w2, w26, 3
mov x3, x25
- cbz x25, .L571
+ cbz x25, .L572
ubfiz x3, x26, 9, 23
add x3, x25, x3
-.L571:
+.L572:
cmp x21, xzr
mov x0, x19
csel w4, w27, wzr, ne
@@ -3807,23 +3841,23 @@ NandcXferData:
mov w26, w28
add x4, x21, x4
bl NandcCopy1KB
- b .L568
-.L562:
- cbnz w20, .L574
+ b .L569
+.L563:
+ cbnz w20, .L575
adrp x0, .LANCHOR2+580
ldr w0, [x0,#:lo12:.LANCHOR2+580]
cmp w0, 5
- bls .L574
+ bls .L575
ldr w0, [x19]
mov w1, 8192
movk w1, 0x2, lsl 16
and w1, w0, w1
cmp w1, 139264
- bne .L574
+ bne .L575
orr w0, w0, 131072
mov w22, -1
str w0, [x19]
-.L574:
+.L575:
mov w0, w22
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -3846,7 +3880,7 @@ FlashReadRawPage:
str x21, [sp,32]
mov x21, x2
ldrb w20, [x0,#:lo12:.LANCHOR1+265]
- cbnz w19, .L598
+ cbnz w19, .L599
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
ldrb w5, [x0,25]
@@ -3855,7 +3889,7 @@ FlashReadRawPage:
cmp w1, w0
mov w0, 4
csel w20, w20, w0, cs
-.L598:
+.L599:
mov w0, w19
str x4, [x29,48]
str x1, [x29,56]
@@ -3911,7 +3945,7 @@ FlashDdrTunningRead:
cmp w0, 8
mov w0, 12
csel w22, w22, w0, cc
- cbz w4, .L601
+ cbz w4, .L602
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
@@ -3929,41 +3963,41 @@ FlashDdrTunningRead:
ldrb w0, [x27,564]
bl NandcSetMode
cmn w21, #1
- bne .L602
-.L611:
+ bne .L603
+.L612:
mov w21, -1
- b .L603
-.L602:
+ b .L604
+.L603:
adrp x0, .LC7
mov w1, w25
add x0, x0, :lo12:.LC7
mov w2, w21
bl printk
cmp w21, 9
- bhi .L604
+ bhi .L605
add x20, x20, x24, sxtw 4
ldr x0, [x20,40]
ldr w1, [x0,3840]
ldr w1, [x0]
orr w1, w1, 131072
str w1, [x0]
-.L604:
+.L605:
add x19, x19, :lo12:.LANCHOR2
ldr w0, [x19,656]
add w0, w0, 1
str w0, [x19,656]
cmp w0, 2047
- bls .L603
+ bls .L604
mov x23, 0
str wzr, [x19,656]
mov x28, x23
-.L601:
+.L602:
mov w19, 0
mov w27, -1
mov w5, w19
mov w6, w19
mov w20, w19
-.L609:
+.L610:
mov w0, w22
str x5, [x29,104]
str x6, [x29,112]
@@ -3977,63 +4011,63 @@ FlashDdrTunningRead:
ldr x6, [x29,112]
cmp w0, w1
ldr x5, [x29,104]
- bhi .L605
+ bhi .L606
cmp w0, 2
- bhi .L615
+ bhi .L616
add w20, w20, 1
cmp w20, 9
- bls .L615
+ bls .L616
sub w19, w22, w20
mov w21, w0
mov w27, 0
- b .L607
-.L605:
+ b .L608
+.L606:
cmp w6, w20
- bcs .L616
+ bcs .L617
cmp w20, 7
sub w5, w19, w20
- bhi .L617
+ bhi .L618
mov w6, w20
- b .L616
-.L615:
+ b .L617
+.L616:
mov x23, 0
mov w19, w22
mov w21, w0
mov w27, 0
mov x28, x23
- b .L606
-.L616:
+ b .L607
+.L617:
mov w20, 0
-.L606:
+.L607:
add w22, w22, 2
cmp w22, 69
- bls .L609
-.L607:
+ bls .L610
+.L608:
cmp w6, w20
csel w19, w19, w5, cc
- b .L608
-.L617:
+ b .L609
+.L618:
mov w19, w5
-.L608:
- cbz w19, .L610
+.L609:
+ cbz w19, .L611
adrp x0, .LC8
mov w1, w19
add x0, x0, :lo12:.LC8
bl printk
mov w0, w19
bl NandcSetDdrPara
-.L610:
- cbz w27, .L603
+.L611:
+ cbz w27, .L604
adrp x0, .LC9
mov w1, w24
add x0, x0, :lo12:.LC9
mov w2, w25
bl printk
- cbz w26, .L611
+ cbz w26, .L612
ldr w0, [x29,124]
lsr w0, w0, 8
bl NandcSetDdrPara
-.L603:
+.L604:
mov w0, w21
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -4063,17 +4097,17 @@ FlashReadPage:
cmn w0, #1
mov w19, w0
adrp x23, .LANCHOR2
- bne .L627
+ bne .L628
adrp x21, .LANCHOR0
add x26, x21, :lo12:.LANCHOR0
ldrb w27, [x26,32]
- cbnz w27, .L628
-.L630:
+ cbnz w27, .L629
+.L631:
add x0, x23, :lo12:.LANCHOR2
ldrb w0, [x0,572]
- cbz w0, .L627
- b .L648
-.L628:
+ cbz w0, .L628
+ b .L649
+.L629:
mov w0, w20
mov w1, w22
mov x2, x25
@@ -4082,10 +4116,10 @@ FlashReadPage:
bl FlashReadRawPage
strb w27, [x26,32]
cmn w0, #1
- beq .L630
+ beq .L631
mov w19, w0
- b .L627
-.L648:
+ b .L628
+.L649:
add x21, x21, :lo12:.LANCHOR0
mov w1, w22
mov x2, x25
@@ -4097,19 +4131,19 @@ FlashReadPage:
bl FlashDdrTunningRead
cmn w0, #1
mov w19, w0
- beq .L631
+ beq .L632
ldrb w0, [x21,4044]
cmp w19, w0, lsr 1
- bls .L627
-.L631:
+ bls .L628
+.L632:
lsr w0, w26, 8
bl NandcSetDdrPara
-.L627:
+.L628:
add x21, x23, :lo12:.LANCHOR2
cmn w19, #1
ldr x4, [x21,664]
- bne .L632
- cbz x4, .L632
+ bne .L633
+ cbz x4, .L633
mov w1, w22
mov x2, x25
mov x3, x24
@@ -4123,10 +4157,10 @@ FlashReadPage:
mov w3, w22
bl printk
cmn w19, #1
- bne .L632
+ bne .L633
adrp x0, .LANCHOR0+136
ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L632
+ cbz w0, .L633
mov w0, w20
bl flash_enter_slc_mode
ldr x4, [x21,664]
@@ -4138,7 +4172,7 @@ FlashReadPage:
mov w19, w0
mov w0, w20
bl flash_exit_slc_mode
-.L632:
+.L633:
mov w0, w19
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -4177,24 +4211,24 @@ FlashDdrParaScan:
mov x3, x2
bl FlashReadRawPage
cmn w0, #1
- beq .L653
+ beq .L654
cmn w22, #1
- bne .L650
-.L653:
+ bne .L651
+.L654:
add x20, x19, :lo12:.LANCHOR2
ldrb w0, [x20,564]
- tbz x0, 0, .L650
+ tbz x0, 0, .L651
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
bl NandcSetMode
strb wzr, [x20,572]
- b .L652
-.L650:
+ b .L653
+.L651:
add x19, x19, :lo12:.LANCHOR2
mov w0, 1
strb w0, [x19,572]
-.L652:
+.L653:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -4235,10 +4269,10 @@ FlashLoadPhyInfo:
mov w24, -1
ldrh w28, [x21,10]
bl flash_enter_slc_mode
-.L661:
+.L662:
add w26, w20, 1
mov x22, 0
-.L663:
+.L664:
add x0, x29, 104
ldrb w0, [x22,x0]
bl FlashBchSel
@@ -4248,32 +4282,32 @@ FlashLoadPhyInfo:
mov x3, 0
bl FlashReadRawPage
cmn w0, #1
- bne .L662
+ bne .L663
ldr x2, [x19,#:lo12:.LANCHOR0]
mov w0, 0
mov w1, w26
mov x3, 0
bl FlashReadRawPage
cmn w0, #1
- bne .L662
+ bne .L663
add x22, x22, 1
cmp x22, 4
- beq .L664
- b .L663
-.L665:
+ beq .L665
+ b .L664
+.L666:
mov w1, 2036
add x0, x26, 12
mov w24, -1
bl JSHash
ldr w1, [x26,8]
cmp w1, w0
- beq .L675
-.L664:
+ beq .L676
+.L665:
subs w27, w27, #1
add w20, w20, w28
- bne .L661
+ bne .L662
mov w0, w27
-.L674:
+.L675:
bl flash_exit_slc_mode
mov w0, w24
ldp x19, x20, [sp,16]
@@ -4283,15 +4317,15 @@ FlashLoadPhyInfo:
ldp x27, x28, [sp,80]
ldp x29, x30, [sp], 112
ret
-.L662:
+.L663:
add x22, x25, :lo12:.LANCHOR2
mov w0, 20036
movk w0, 0x4e41, lsl 16
ldr x26, [x22,672]
ldr w1, [x26]
cmp w1, w0
- bne .L664
- cbnz w24, .L665
+ bne .L665
+ cbnz w24, .L666
add x23, x23, :lo12:.LANCHOR1
add x19, x19, :lo12:.LANCHOR0
ldrh w0, [x23,266]
@@ -4299,8 +4333,8 @@ FlashLoadPhyInfo:
mov w0, w24
add w20, w20, 1
str w20, [x19,8]
- b .L674
-.L675:
+ b .L675
+.L676:
add x1, x26, 160
mov w2, 32
mov x0, x21
@@ -4323,18 +4357,18 @@ FlashLoadPhyInfo:
ldrh w0, [x21,10]
udiv w0, w20, w0
add w2, w0, 1
- cbz w0, .L667
+ cbz w0, .L668
str w2, [x24,8]
- b .L668
-.L667:
+ b .L669
+.L668:
mov w0, 2
str w0, [x24,8]
-.L668:
+.L669:
add x0, x25, :lo12:.LANCHOR2
ldrh w1, [x1,14]
mov w24, 0
strb w1, [x0,684]
- b .L664
+ b .L665
.size FlashLoadPhyInfo, .-FlashLoadPhyInfo
.align 2
.global ToshibaReadRetrial
@@ -4371,21 +4405,21 @@ ToshibaReadRetrial:
sub w0, w0, #67
uxtb w0, w0
cmp w0, 1
- bls .L677
+ bls .L678
adrp x0, .LANCHOR2+572
ldrb w0, [x0,#:lo12:.LANCHOR2+572]
- cbz w0, .L678
+ cbz w0, .L679
mov w0, w22
mov w22, 1
bl NandcSetDdrMode
-.L678:
+.L679:
ubfiz x0, x28, 8, 8
mov w2, 92
add x0, x24, x0
str w2, [x0,2056]
mov w2, 197
str w2, [x0,2056]
-.L677:
+.L678:
adrp x0, g_maxRetryCount
mov w21, 1
add x0, x0, :lo12:g_maxRetryCount
@@ -4397,44 +4431,44 @@ ToshibaReadRetrial:
str x0, [x29,104]
ubfiz x0, x28, 8, 8
str x0, [x29,96]
-.L679:
+.L680:
adrp x0, g_maxRetryCount
ldrb w0, [x0,#:lo12:g_maxRetryCount]
add w0, w0, 1
cmp w21, w0
- bcs .L704
+ bcs .L705
ldrb w0, [x20,#:lo12:g_retryMode]
mov w1, w21
sub w0, w0, #67
uxtb w0, w0
cmp w0, 1
mov x0, x19
- bhi .L680
+ bhi .L681
bl SandiskSetRRPara
- b .L681
-.L680:
- bl ToshibaSetRRPara
+ b .L682
.L681:
+ bl ToshibaSetRRPara
+.L682:
ldrb w0, [x20,#:lo12:g_retryMode]
cmp w0, 34
- bne .L682
+ bne .L683
ldr x0, [x29,112]
ldrb w0, [x0]
sub w0, w0, #3
cmp w21, w0
- bne .L682
+ bne .L683
ldr x0, [x29,104]
mov w1, 179
add x0, x24, x0
str w1, [x0,8]
-.L682:
+.L683:
ldr x0, [x29,96]
mov w1, 38
add x0, x24, x0
str w1, [x0,2056]
mov w1, 93
str w1, [x0,2056]
- cbz w22, .L683
+ cbz w22, .L684
mov w0, 4
bl NandcSetDdrMode
ldr w1, [x29,132]
@@ -4445,17 +4479,17 @@ ToshibaReadRetrial:
mov w28, w0
mov w0, 0
bl NandcSetDdrMode
- b .L684
-.L683:
+ b .L685
+.L684:
ldr w1, [x29,132]
mov w0, w23
mov x2, x27
mov x3, x26
bl FlashReadRawPage
mov w28, w0
-.L684:
+.L685:
cmn w28, #1
- beq .L685
+ beq .L686
ldr x0, [x29,120]
cmn w25, #1
csel w25, w25, w28, ne
@@ -4463,27 +4497,27 @@ ToshibaReadRetrial:
ldrb w0, [x0,4044]
add w0, w0, w0, lsl 1
cmp w28, w0, lsr 2
- bcc .L687
+ bcc .L688
mov x26, 0
mov x27, x26
-.L685:
+.L686:
add w21, w21, 1
- b .L679
-.L704:
+ b .L680
+.L705:
mov w28, w25
-.L687:
+.L688:
ldrb w0, [x20,#:lo12:g_retryMode]
mov w1, 0
sub w0, w0, #67
uxtb w0, w0
cmp w0, 1
mov x0, x19
- bhi .L689
+ bhi .L690
bl SandiskSetRRPara
- b .L690
-.L689:
- bl ToshibaSetRRPara
+ b .L691
.L690:
+ bl ToshibaSetRRPara
+.L691:
ldr x0, [x29,136]
add x0, x0, 8
add x24, x24, x0, lsl 8
@@ -4494,17 +4528,17 @@ ToshibaReadRetrial:
ldrb w0, [x0,4044]
add w0, w0, w0, lsl 1
cmp w28, w0, lsr 2
- bcc .L691
+ bcc .L692
cmn w28, #1
mov w0, 256
csel w28, w28, w0, eq
-.L691:
+.L692:
mov w0, w23
bl NandcWaitFlashReady
- cbz w22, .L692
+ cbz w22, .L693
mov w0, 4
bl NandcSetDdrMode
-.L692:
+.L693:
mov w0, w28
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -4544,11 +4578,11 @@ SamsungReadRetrial:
ldrb w21, [x2,8]
add x21, x21, 8
add x21, x0, x21, lsl 8
-.L706:
+.L707:
ldrb w0, [x27]
add w0, w0, 1
cmp w26, w0
- bcs .L709
+ bcs .L710
mov x0, x21
mov w1, w26
bl SamsungSetRRPara
@@ -4558,22 +4592,22 @@ SamsungReadRetrial:
mov x3, x23
bl FlashReadRawPage
cmn w0, #1
- beq .L707
+ beq .L708
add x1, x20, :lo12:.LANCHOR0
cmn w19, #1
csel w19, w19, w0, ne
ldrb w1, [x1,4044]
add w1, w1, w1, lsl 1
cmp w0, w1, lsr 2
- bcc .L712
+ bcc .L713
mov x23, 0
mov x24, x23
-.L707:
+.L708:
add w26, w26, 1
- b .L706
-.L712:
+ b .L707
+.L713:
mov w19, w0
-.L709:
+.L710:
mov x0, x21
mov w1, 0
add x20, x20, :lo12:.LANCHOR0
@@ -4581,11 +4615,11 @@ SamsungReadRetrial:
ldrb w0, [x20,4044]
add w0, w0, w0, lsl 1
cmp w19, w0, lsr 2
- bcc .L711
+ bcc .L712
cmn w19, #1
mov w0, 256
csel w19, w19, w0, eq
-.L711:
+.L712:
mov w0, w19
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -4599,125 +4633,163 @@ SamsungReadRetrial:
.global MicronReadRetrial
.type MicronReadRetrial, %function
MicronReadRetrial:
- stp x29, x30, [sp, -144]!
- adrp x4, .LANCHOR0
+ stp x29, x30, [sp, -160]!
add x29, sp, 0
- stp x21, x22, [sp,32]
- uxtb w22, w0
- add x0, x4, :lo12:.LANCHOR0
- stp x23, x24, [sp,48]
stp x19, x20, [sp,16]
+ adrp x20, .LANCHOR0
+ stp x21, x22, [sp,32]
+ uxtb w21, w0
+ add x0, x20, :lo12:.LANCHOR0
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- mov w24, w1
- mov x25, x2
- ldrb w20, [x0,4044]
- mov x23, x3
+ stp x23, x24, [sp,48]
+ mov w28, w1
+ mov x26, x2
+ ldrb w19, [x0,4044]
+ mov x22, x3
ldrb w0, [x0,136]
- mov x19, x4
- cbnz w0, .L719
- add w20, w20, w20, lsl 1
- ubfx x20, x20, 2, 8
- b .L720
-.L719:
- mov w0, 3
- sdiv w20, w20, w0
+ cbnz w0, .L720
+ add w19, w19, w19, lsl 1
+ ubfx x19, x19, 2, 8
+ b .L721
.L720:
- mov w0, w22
- adrp x28, g_maxRetryCount
- mov w27, 0
- add x28, x28, :lo12:g_maxRetryCount
- bl NandcWaitFlashReady
- add x4, x19, :lo12:.LANCHOR0
- sbfiz x0, x22, 4, 32
- add x4, x4, 40
- mov w19, -1
- add x1, x4, x0
- mov w7, 239
- mov w8, 137
- ldr x4, [x4,x0]
- ldrb w21, [x1,8]
- lsl x6, x21, 8
+ mov w0, 3
+ sdiv w19, w19, w0
.L721:
- ldrb w0, [x28]
- cmp w27, w0
- bcs .L724
- add x26, x4, x6
+ adrp x0, g_maxRetryCount
+ adrp x27, .LC11
+ add x0, x0, :lo12:g_maxRetryCount
+ mov w25, 0
+ str x0, [x29,152]
+ add x0, x27, :lo12:.LC11
+ str x0, [x29,144]
+ add x20, x20, :lo12:.LANCHOR0
+ add x23, x20, 40
+ add x23, x23, x21, sxtw 4
+.L732:
+ mov w0, w21
+ mov w24, 0
+ mov w27, -1
+ bl NandcWaitFlashReady
+ ldrb w4, [x23,8]
+ mov w9, 239
+ ldr x6, [x23]
+ mov w10, 137
+ lsl x8, x4, 8
+.L722:
+ ldr x0, [x29,152]
+ ldrb w0, [x0]
+ cmp w24, w0
+ bcs .L725
+ add x2, x6, x8
mov w0, 200
- str x6, [x29,104]
- str x4, [x29,112]
- str w7, [x26,2056]
- str w8, [x26,2052]
- str x7, [x29,120]
- str x8, [x29,128]
+ str x4, [x29,96]
+ str x8, [x29,104]
+ str w9, [x2,2056]
+ str w10, [x2,2052]
+ str x6, [x29,112]
+ str x9, [x29,120]
+ str x10, [x29,128]
+ str x2, [x29,136]
bl NandcDelayns
- add w5, w27, 1
- str w5, [x26,2048]
- str wzr, [x26,2048]
- mov w0, w22
- str wzr, [x26,2048]
- mov w1, w24
- str wzr, [x26,2048]
- mov x2, x25
- mov x3, x23
- str x5, [x29,136]
+ ldr x2, [x29,136]
+ add w7, w24, 1
+ mov w0, w21
+ mov w1, w28
+ mov x3, x22
+ str x7, [x29,136]
+ str w7, [x2,2048]
+ str wzr, [x2,2048]
+ str wzr, [x2,2048]
+ str wzr, [x2,2048]
+ mov x2, x26
bl FlashReadRawPage
cmn w0, #1
- ldr x5, [x29,136]
- ldr x8, [x29,128]
- ldr x7, [x29,120]
- ldr x4, [x29,112]
- ldr x6, [x29,104]
- beq .L722
- cmn w19, #1
- csel w19, w19, w0, ne
- cmp w0, w20
- bcc .L729
- mov x23, 0
- mov x25, x23
-.L722:
- mov w27, w5
- b .L721
-.L729:
- mov w19, w0
-.L724:
- add x21, x4, x21, lsl 8
+ ldr x7, [x29,136]
+ ldr x10, [x29,128]
+ ldr x9, [x29,120]
+ ldr x6, [x29,112]
+ ldr x8, [x29,104]
+ ldr x4, [x29,96]
+ beq .L723
+ cmn w27, #1
+ csel w27, w27, w0, ne
+ cmp w0, w19
+ bcc .L734
+ mov x22, 0
+ mov x26, x22
+.L723:
+ mov w24, w7
+ b .L722
+.L734:
+ mov x22, 0
+ mov w27, w0
+ mov x26, x22
+.L725:
+ add x1, x6, x4, lsl 8
mov w0, 239
- str w0, [x21,2056]
+ str x1, [x29,136]
+ str w0, [x1,2056]
mov w0, 137
- str w0, [x21,2052]
+ str w0, [x1,2052]
mov w0, 200
bl NandcDelayns
- str wzr, [x21,2048]
- str wzr, [x21,2048]
- cmp w19, w20
- str wzr, [x21,2048]
- str wzr, [x21,2048]
- bcc .L726
- cmn w19, #1
+ ldr x1, [x29,136]
+ cmp w27, w19
+ str wzr, [x1,2048]
+ str wzr, [x1,2048]
+ str wzr, [x1,2048]
+ str wzr, [x1,2048]
+ bcc .L727
+ cmn w27, #1
mov w0, 256
- csel w19, w19, w0, eq
-.L726:
- cmn w19, #1
- beq .L730
- cmp w19, 256
- bne .L727
-.L730:
- adrp x0, .LC11
- mov w1, w27
- add x0, x0, :lo12:.LC11
- mov w2, w24
- mov w3, w27
- mov w4, w19
- bl printk
+ csel w27, w27, w0, eq
.L727:
- mov w0, w19
+ cmn w27, #1
+ cset w6, eq
+ cbnz w6, .L736
+ cmp w27, 256
+ cset w1, eq
+ cbz w1, .L728
+.L736:
+ ldr x0, [x29,144]
+ mov w1, w24
+ mov w2, w28
+ mov w3, w24
+ mov w4, w27
+ str x6, [x29,136]
+ bl printk
+ cbnz w25, .L730
+ ldr x6, [x29,136]
+ cbz w6, .L741
+ ldrb w0, [x20,136]
+ cbz w0, .L741
+ mov w0, w21
+ mov w1, 3
+ mov w25, 1
+ bl micron_auto_read_calibration_config
+ b .L732
+.L730:
+ mov w0, w21
+ mov w1, 0
+ bl micron_auto_read_calibration_config
+ cmn w27, #1
+ mov w0, 256
+ csel w27, w27, w0, eq
+ b .L741
+.L728:
+ cbz w25, .L741
+ mov w0, w21
+ mov w27, 256
+ bl micron_auto_read_calibration_config
+.L741:
+ mov w0, w27
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 144
+ ldp x29, x30, [sp], 160
ret
.size MicronReadRetrial, .-MicronReadRetrial
.align 2
@@ -4745,18 +4817,18 @@ HynixReadRetrial:
ldrb w19, [x0,12]
ldrb w1, [x1,19]
cmp w1, 7
- bne .L740
+ bne .L750
ldrb w19, [x0,20]
-.L740:
+.L750:
mov w0, w23
mov w28, 0
mov w20, -1
bl NandcWaitFlashReady
add x4, x21, :lo12:.LANCHOR0
add x5, x4, 4060
-.L741:
+.L751:
cmp w28, w25
- bcs .L745
+ bcs .L755
add w19, w19, 1
ldrb w1, [x4,4057]
mov x2, x5
@@ -4776,42 +4848,42 @@ HynixReadRetrial:
cmn w0, #1
ldr x5, [x29,104]
ldr x4, [x29,96]
- beq .L743
+ beq .L753
ldrb w1, [x4,4044]
cmn w20, #1
csel w20, w20, w0, ne
add w1, w1, w1, lsl 1
cmp w0, w1, lsr 2
- bcc .L750
+ bcc .L760
mov x24, 0
mov x26, x24
-.L743:
+.L753:
add w28, w28, 1
- b .L741
-.L750:
+ b .L751
+.L760:
mov w20, w0
-.L745:
+.L755:
add x0, x21, :lo12:.LANCHOR0
ldr x1, [x0,1912]
add x0, x0, 4056
add x0, x0, x22
ldrb w1, [x1,19]
cmp w1, 7
- bne .L747
+ bne .L757
strb w19, [x0,20]
- b .L748
-.L747:
+ b .L758
+.L757:
strb w19, [x0,12]
-.L748:
+.L758:
add x21, x21, :lo12:.LANCHOR0
ldrb w0, [x21,4044]
add w0, w0, w0, lsl 1
cmp w20, w0, lsr 2
- bcc .L749
+ bcc .L759
cmn w20, #1
mov w0, 256
csel w20, w20, w0, eq
-.L749:
+.L759:
mov w0, w20
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -4835,21 +4907,21 @@ FlashProgPage:
mov w20, w1
mov x22, x2
ldrb w21, [x0,#:lo12:.LANCHOR1+265]
- cbnz w19, .L757
+ cbnz w19, .L767
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
ldrb w1, [x0,25]
ldr w2, [x0,28]
mul w1, w1, w2
cmp w20, w1
- bcs .L757
+ bcs .L767
ldrb w0, [x0,24]
- cbnz w0, .L758
+ cbnz w0, .L768
sub w21, w21, #2
- b .L757
-.L758:
+ b .L767
+.L768:
mov w21, 4
-.L757:
+.L767:
mov w0, w19
str x4, [x29,56]
bl NandcWaitFlashReady
@@ -4959,7 +5031,7 @@ FlashSavePhyInfo:
mov w0, 0
mov w19, w21
bl flash_enter_slc_mode
-.L762:
+.L772:
add x20, x22, :lo12:.LANCHOR0
mov w2, 0
mov w0, 0
@@ -4988,34 +5060,34 @@ FlashSavePhyInfo:
mul w1, w19, w1
bl FlashReadRawPage
cmn w0, #1
- beq .L760
+ beq .L770
ldr x25, [x24,672]
mov w0, 20036
movk w0, 0x4e41, lsl 16
ldr w1, [x25]
cmp w1, w0
- bne .L760
+ bne .L770
mov w1, 2036
add x0, x25, 12
bl JSHash
ldr w1, [x25,8]
cmp w1, w0
- bne .L760
+ bne .L770
ldr w0, [x20,28]
cmp w21, 1
str w26, [x20,8]
mul w19, w19, w0
str w19, [x24,680]
- beq .L763
+ beq .L773
mov w21, 1
-.L760:
+.L770:
cmp w26, 4
mov w19, w26
- bne .L762
- b .L761
-.L763:
+ bne .L772
+ b .L771
+.L773:
mov w21, 2
-.L761:
+.L771:
mov w0, 0
bl flash_exit_slc_mode
cmp w21, wzr
@@ -5056,10 +5128,10 @@ FlashReadIdbDataRaw:
mov w0, 12336
movk w0, 0x5638, lsl 16
cmp w1, w0
- bne .L769
+ bne .L779
mov w0, 0
bl flash_enter_slc_mode
-.L769:
+.L779:
adrp x25, .LC12
mov x0, x27
mov w1, 0
@@ -5068,13 +5140,13 @@ FlashReadIdbDataRaw:
mov w20, 2
add x25, x25, :lo12:.LC12
bl ftl_memset
-.L770:
+.L780:
add x0, x21, :lo12:.LANCHOR0
ldrb w0, [x0,25]
cmp w20, w0
- bcs .L774
+ bcs .L784
mov x23, 0
-.L772:
+.L782:
add x0, x29, 104
add x19, x21, :lo12:.LANCHOR0
ldrb w26, [x23,x0]
@@ -5087,18 +5159,18 @@ FlashReadIdbDataRaw:
mul w1, w20, w1
bl FlashReadRawPage
cmn w0, #1
- bne .L771
+ bne .L781
add x23, x23, 1
cmp x23, 4
- bne .L772
- b .L773
-.L771:
+ bne .L782
+ b .L783
+.L781:
ldr x0, [x19]
ldr w1, [x0]
mov w0, 35899
movk w0, 0xfcdc, lsl 16
cmp w1, w0
- bne .L773
+ bne .L783
mov w1, w26
mov x0, x25
bl printk
@@ -5111,16 +5183,16 @@ FlashReadIdbDataRaw:
strb w0, [x19,25]
ldr w0, [x19,8]
cmp w0, w20
- bls .L777
+ bls .L787
mov w24, 0
str w20, [x19,8]
bl FlashSavePhyInfo
-.L773:
+.L783:
add w20, w20, 1
- b .L770
-.L777:
+ b .L780
+.L787:
mov w24, 0
-.L774:
+.L784:
mov w0, w28
add x22, x22, :lo12:.LANCHOR2
bl FlashBchSel
@@ -5128,10 +5200,10 @@ FlashReadIdbDataRaw:
mov w0, 12336
movk w0, 0x5638, lsl 16
cmp w1, w0
- bne .L779
+ bne .L789
mov w0, 0
bl flash_exit_slc_mode
-.L779:
+.L789:
mov w0, w24
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -5194,7 +5266,7 @@ FlashInit:
add x0, x25, :lo12:.LC13
mov x26, x21
str x0, [x29,104]
-.L786:
+.L796:
uxtb w25, w27
mov w0, w25
bl FlashReset
@@ -5229,7 +5301,7 @@ FlashInit:
sub w0, w2, #1
uxtb w0, w0
cmp w0, 253
- bhi .L782
+ bhi .L792
ldr x0, [x29,104]
add w1, w27, 1
ldrb w3, [x21,1]
@@ -5238,35 +5310,35 @@ FlashInit:
ldrb w6, [x21,4]
ldrb w7, [x21,5]
bl printk
-.L782:
- cbnz w27, .L783
+.L792:
+ cbnz w27, .L793
ldrb w0, [x26]
sub w0, w0, #1
uxtb w0, w0
cmp w0, 253
- bhi .L830
+ bhi .L840
ldrb w0, [x26,1]
cmp w0, 255
- beq .L830
+ beq .L840
bl FlashCs123Init
-.L783:
+.L793:
ldrb w0, [x21]
cmp w0, 181
- bne .L785
+ bne .L795
strb w28, [x21]
-.L785:
+.L795:
add w27, w27, 1
add x24, x24, 16
cmp w27, 4
add x21, x21, 8
- bne .L786
+ bne .L796
ldrb w0, [x23,#:lo12:IDByte]
cmp w0, 173
- beq .L787
+ beq .L797
add x0, x20, :lo12:.LANCHOR2
ldr w0, [x0,576]
bl NandcSetDdrMode
-.L787:
+.L797:
add x21, x19, :lo12:.LANCHOR0
mov w1, 0
mov w2, 852
@@ -5284,16 +5356,16 @@ FlashInit:
cmp w0, 161
cset w2, eq
orr w2, w3, w2
- cbnz w2, .L788
+ cbnz w2, .L798
and w2, w0, -33
cmp w2, 209
- beq .L788
+ beq .L798
cmp w0, 220
- bne .L789
+ bne .L799
ldrb w2, [x4,3]
cmp w2, 149
- bne .L789
-.L788:
+ bne .L799
+.L798:
add x2, x19, :lo12:.LANCHOR0
mov w4, 1
mov w5, 16
@@ -5307,37 +5379,37 @@ FlashInit:
strb w5, [x2,3033]
strb w0, [x2,3034]
cmp w5, 152
- bne .L790
+ bne .L800
ldrsb w2, [x6,4]
- tbnz w2, #31, .L790
+ tbnz w2, #31, .L800
mov w2, 24
strb w2, [x4,685]
-.L790:
+.L800:
add x2, x20, :lo12:.LANCHOR2
mov w4, 12336
movk w4, 0x5638, lsl 16
ldr w5, [x2,568]
cmp w5, w4
- bne .L791
+ bne .L801
mov w4, 16
strb w4, [x2,685]
-.L791:
- cbz w3, .L792
+.L801:
+ cbz w3, .L802
add x0, x1, :lo12:.LANCHOR1
mov w2, 2048
strh w2, [x0,3046]
mov w2, -38
- b .L861
-.L792:
+ b .L871
+.L802:
cmp w0, 220
- bne .L793
+ bne .L803
add x0, x1, :lo12:.LANCHOR1
mov w2, 4096
strh w2, [x0,3046]
mov w2, -36
-.L861:
+.L871:
strb w2, [x0,3034]
-.L793:
+.L803:
add x21, x1, :lo12:.LANCHOR1
add x0, x19, :lo12:.LANCHOR0
add x1, x21, 2688
@@ -5348,45 +5420,45 @@ FlashInit:
add x1, x21, 3032
mov w2, 32
bl ftl_memcpy
-.L789:
+.L799:
add x21, x19, :lo12:.LANCHOR0
ldrb w0, [x21,24]
- cbnz w0, .L794
+ cbnz w0, .L804
bl FlashLoadPhyInfoInRam
- cbnz w0, .L796
+ cbnz w0, .L806
ldr x0, [x21,1912]
add x21, x20, :lo12:.LANCHOR2
ldrb w1, [x0,17]
and w0, w1, 7
strb w0, [x21,564]
- tbnz x1, 0, .L796
+ tbnz x1, 0, .L806
mov w1, 1
strb w1, [x21,572]
bl FlashSetInterfaceMode
ldrb w0, [x21,564]
bl NandcSetMode
-.L796:
+.L806:
add x0, x19, :lo12:.LANCHOR0
ldr x1, [x0,1912]
ldrb w1, [x1,26]
strb w1, [x0,136]
bl FlashLoadPhyInfo
- cbz w0, .L794
+ cbz w0, .L804
add x21, x20, :lo12:.LANCHOR2
ldr w0, [x21,576]
- cbz w0, .L799
+ cbz w0, .L809
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
- b .L862
-.L799:
+ b .L872
+.L809:
ldrb w0, [x21,564]
bl FlashSetInterfaceMode
ldrb w0, [x21,564]
-.L862:
+.L872:
bl NandcSetMode
bl FlashLoadPhyInfo
- cbz w0, .L794
+ cbz w0, .L804
mov w0, 1
add x21, x19, :lo12:.LANCHOR0
bl FlashSetInterfaceMode
@@ -5399,7 +5471,7 @@ FlashInit:
bl printk
bl FlashLoadPhyInfoInRam
cmn w0, #1
- beq .L784
+ beq .L794
bl FlashDieInfoInit
ldr x0, [x21,1912]
ldrb w0, [x0,19]
@@ -5409,27 +5481,27 @@ FlashInit:
ldrb w2, [x0,9]
add w1, w1, 4095
cmp w2, w1, lsr 12
- blt .L801
+ blt .L811
ldrh w1, [x0,14]
add w1, w1, 255
cmp w2, w1, lsr 8
- bge .L802
-.L801:
+ bge .L812
+.L811:
ldrh w1, [x0,14]
and w1, w1, -256
strh w1, [x0,14]
-.L802:
+.L812:
add x21, x20, :lo12:.LANCHOR2
ldrb w0, [x21,564]
tst w0, 6
- beq .L803
+ beq .L813
bl FlashSavePhyInfo
ldr w1, [x21,680]
mov w0, 0
bl FlashDdrParaScan
-.L803:
+.L813:
bl FlashSavePhyInfo
-.L794:
+.L804:
add x21, x19, :lo12:.LANCHOR0
add x22, x20, :lo12:.LANCHOR2
ldr x2, [x21,1912]
@@ -5453,7 +5525,7 @@ FlashInit:
bl FlashDieInfoInit
ldr x0, [x21,1912]
ldrh w1, [x0,16]
- tbz x1, 6, .L805
+ tbz x1, 6, .L815
adrp x1, g_retryMode
adrp x3, g_maxRegNum
ldrb w0, [x0,19]
@@ -5468,64 +5540,64 @@ FlashInit:
uxtb w2, w2
cmp w2, 6
mov x2, x1
- bhi .L806
+ bhi .L816
adrp x1, HynixReadRetrial
add x1, x1, :lo12:HynixReadRetrial
str x1, [x22,664]
sub w1, w0, #5
uxtb w1, w1
cmp w1, 1
- bhi .L807
+ bhi .L817
mov w1, 1
str w1, [x22,640]
- b .L808
-.L807:
+ b .L818
+.L817:
cmp w0, 7
add x21, x21, 4084
- beq .L809
-.L808:
+ beq .L819
+.L818:
add x21, x19, :lo12:.LANCHOR0
add x21, x21, 4076
-.L809:
+.L819:
mov x1, 0
mov w2, w1
-.L811:
+.L821:
ldrsb w3, [x21,x1]
add x1, x1, 1
cmp w3, wzr
csinc w2, w2, w2, ne
cmp x1, 32
- bne .L811
+ bne .L821
cmp w2, 27
- bls .L805
+ bls .L815
bl FlashGetReadRetryDefault
bl FlashSavePhyInfo
- b .L805
-.L806:
+ b .L815
+.L816:
sub w3, w0, #17
uxtb w3, w3
cmp w3, 2
- bhi .L813
+ bhi .L823
adrp x2, MicronReadRetrial
cmp w0, 19
add x2, x2, :lo12:MicronReadRetrial
str x2, [x22,664]
- beq .L814
+ beq .L824
mov w0, 7
- b .L864
-.L814:
+ b .L874
+.L824:
mov w0, 15
-.L864:
+.L874:
strb w0, [x1,#:lo12:g_maxRetryCount]
- b .L805
-.L813:
+ b .L815
+.L823:
sub w1, w0, #65
uxtb w1, w1
cmp w1, 1
- bls .L832
+ bls .L842
cmp w0, 33
- bne .L815
-.L832:
+ bne .L825
+.L842:
add x0, x20, :lo12:.LANCHOR2
adrp x1, ToshibaReadRetrial
add x1, x1, :lo12:ToshibaReadRetrial
@@ -5534,8 +5606,8 @@ FlashInit:
strb w0, [x5,#:lo12:g_maxRegNum]
mov w0, 7
strb w0, [x2,#:lo12:g_maxRetryCount]
- b .L805
-.L815:
+ b .L815
+.L825:
sub w1, w0, #67
uxtb w1, w1
cmp w1, 1
@@ -5543,84 +5615,84 @@ FlashInit:
cset w4, ls
uxtb w1, w1
cmp w1, 1
- bls .L833
- cbz w4, .L817
-.L833:
+ bls .L843
+ cbz w4, .L827
+.L843:
add x1, x20, :lo12:.LANCHOR2
adrp x3, ToshibaReadRetrial
add x3, x3, :lo12:ToshibaReadRetrial
cmp w0, 35
str x3, [x1,664]
- beq .L819
+ beq .L829
cmp w0, 68
- beq .L819
+ beq .L829
mov w0, 7
- b .L863
-.L819:
+ b .L873
+.L829:
mov w0, 17
-.L863:
+.L873:
strb w0, [x2,#:lo12:g_maxRetryCount]
mov w0, 4
- cbnz w4, .L865
+ cbnz w4, .L875
mov w0, 5
-.L865:
+.L875:
strb w0, [x5,#:lo12:g_maxRegNum]
- b .L805
-.L817:
+ b .L815
+.L827:
cmp w0, 49
- bne .L805
+ bne .L815
adrp x0, SamsungReadRetrial
add x0, x0, :lo12:SamsungReadRetrial
str x0, [x22,664]
-.L805:
+.L815:
add x0, x20, :lo12:.LANCHOR2
ldr w1, [x0,568]
mov w0, 12336
movk w0, 0x5638, lsl 16
cmp w1, w0
- bne .L822
+ bne .L832
add x0, x19, :lo12:.LANCHOR0
ldrb w2, [x0,136]
- cbz w2, .L822
+ cbz w2, .L832
ldr x0, [x0,1912]
strb wzr, [x0,18]
-.L822:
+.L832:
ldrb w0, [x23,#:lo12:IDByte]
cmp w0, 44
- bne .L823
+ bne .L833
add x0, x20, :lo12:.LANCHOR2
ldrb w0, [x0,572]
- cbz w0, .L823
+ cbz w0, .L833
mov w0, 12336
movk w0, 0x5638, lsl 16
cmp w1, w0
- bne .L824
+ bne .L834
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbnz w0, .L823
-.L824:
+ cbnz w0, .L833
+.L834:
add x0, x20, :lo12:.LANCHOR2
strb wzr, [x0,572]
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
bl NandcSetMode
-.L823:
+.L833:
mov w0, 0
bl flash_enter_slc_mode
add x1, x20, :lo12:.LANCHOR2
ldrb w0, [x1,564]
tst w0, 6
- beq .L825
+ beq .L835
ldrb w1, [x1,572]
- cbnz w1, .L826
- tbnz x0, 0, .L825
-.L826:
+ cbnz w1, .L836
+ tbnz x0, 0, .L835
+.L836:
add x20, x20, :lo12:.LANCHOR2
mov w0, 0
ldr w1, [x20,680]
bl FlashDdrParaScan
-.L825:
+.L835:
add x19, x19, :lo12:.LANCHOR0
mov w0, 0
mov w20, 16
@@ -5667,7 +5739,7 @@ FlashInit:
ldrb w5, [x19,24]
strh w2, [x19,4038]
cmp w5, 1
- bne .L828
+ bne .L838
lsl w2, w2, 1
lsr w4, w4, 1
lsl w3, w3, 1
@@ -5677,15 +5749,15 @@ FlashInit:
strh w4, [x19,4030]
strh w3, [x19,4036]
strh w2, [x19,4042]
-.L828:
+.L838:
ldrb w0, [x1,20]
bl FlashBchSel
bl ftl_flash_suspend
mov w0, 0
- b .L784
-.L830:
+ b .L794
+.L840:
mov w0, -2
-.L784:
+.L794:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -5711,38 +5783,38 @@ FlashPageProgMsbFFData:
ldr x2, [x0,1912]
ldrb w0, [x0,136]
ldrb w3, [x2,19]
- cbz w0, .L867
+ cbz w0, .L877
adrp x0, .LANCHOR2+568
ldr w2, [x0,#:lo12:.LANCHOR2+568]
mov w0, 12336
movk w0, 0x5638, lsl 16
cmp w2, w0
- beq .L866
-.L867:
+ beq .L876
+.L877:
sub w0, w3, #5
uxtb w0, w0
cmp w0, 2
- bls .L868
+ bls .L878
cmp w3, 68
- beq .L868
+ beq .L878
sub w3, w3, #19
and w3, w3, -17
uxtb w3, w3
- cbnz w3, .L866
-.L868:
+ cbnz w3, .L876
+.L878:
add x20, x20, :lo12:.LANCHOR0
mov w21, w1
add x24, x20, 652
mov w25, 65535
adrp x26, .LANCHOR2
-.L870:
+.L880:
ldr x0, [x20,1912]
ldrh w0, [x0,10]
cmp w0, w19
- bls .L866
+ bls .L876
ldrh w0, [x24,w19,sxtw 1]
cmp w0, w25
- bne .L866
+ bne .L876
add x23, x26, :lo12:.LANCHOR2
mov w1, 255
mov w2, 32768
@@ -5755,8 +5827,8 @@ FlashPageProgMsbFFData:
add w19, w19, 1
bl FlashProgPage
uxth w19, w19
- b .L870
-.L866:
+ b .L880
+.L876:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -5787,9 +5859,9 @@ FlashReadSlc2KPages:
add x21, x21, :lo12:.LANCHOR0
add x23, x23, :lo12:.LC15
add x24, x24, :lo12:.LC17
-.L876:
+.L886:
cmp w22, w25
- beq .L910
+ beq .L920
mov w1, w27
sub w4, w25, w22
mov x0, x19
@@ -5800,11 +5872,11 @@ FlashReadSlc2KPages:
adrp x5, .LANCHOR0
ldrb w1, [x21,1676]
cmp w0, w1
- bcc .L877
+ bcc .L887
mov w0, -1
str w0, [x19]
- b .L878
-.L877:
+ b .L888
+.L887:
add x0, x21, x0, uxtw
ldrb w28, [x0,1680]
str x5, [x29,96]
@@ -5853,58 +5925,58 @@ FlashReadSlc2KPages:
ldrb w0, [x0,4044]
add w0, w0, w0, lsl 1
cmp w3, w0, lsr 2
- bls .L881
+ bls .L891
cmn w3, #1
mov w0, 256
csel w3, w3, w0, eq
-.L881:
+.L891:
cmp w3, 256
- beq .L892
+ beq .L902
cmn w3, #1
- bne .L882
-.L892:
+ bne .L892
+.L902:
str w3, [x19]
- b .L884
-.L882:
+ b .L894
+.L892:
str wzr, [x19]
-.L884:
+.L894:
ldr x0, [x19,16]
- cbz x0, .L885
+ cbz x0, .L895
ldr w1, [x0,8]
cmn w1, #1
- bne .L885
+ bne .L895
ldr w0, [x0]
cmn w0, #1
- beq .L885
+ beq .L895
str w1, [x19]
-.L885:
+.L895:
ldr w3, [x19]
cmn w3, #1
- bne .L878
+ bne .L888
add x5, x5, :lo12:.LANCHOR0
ldr w1, [x19,4]
mov x0, x23
ldrb w2, [x5,4044]
bl printk
ldr x1, [x19,8]
- cbz x1, .L887
+ cbz x1, .L897
adrp x0, .LC16
mov w2, 4
add x0, x0, :lo12:.LC16
mov w3, 8
bl rknand_print_hex
-.L887:
+.L897:
ldr x1, [x19,16]
- cbz x1, .L878
+ cbz x1, .L888
mov w2, 4
mov x0, x24
mov w3, w2
bl rknand_print_hex
-.L878:
+.L888:
add w22, w22, 1
add x19, x19, 56
- b .L876
-.L910:
+ b .L886
+.L920:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -5936,10 +6008,10 @@ FlashReadPages:
ldrb w23, [x3,24]
str w2, [x29,140]
str w4, [x29,136]
- cbz w23, .L951
+ cbz w23, .L961
bl FlashReadSlc2KPages
- b .L1000
-.L951:
+ b .L1010
+.L961:
adrp x0, .LC15
mov w25, w23
add x0, x0, :lo12:.LC15
@@ -5950,10 +6022,10 @@ FlashReadPages:
adrp x0, .LC18
add x0, x0, :lo12:.LC18
str x0, [x29,112]
-.L912:
+.L922:
ldr w0, [x29,144]
cmp w25, w0
- bcs .L1002
+ bcs .L1012
mov w27, 56
ldr w0, [x29,144]
ldr w1, [x29,140]
@@ -5970,11 +6042,11 @@ FlashReadPages:
ldr w0, [x29,168]
ldrb w2, [x1,1676]
cmp w0, w2
- bcc .L914
+ bcc .L924
mov w0, -1
str w0, [x26,x27]
- b .L915
-.L914:
+ b .L925
+.L924:
add x0, x1, x0, uxtw
adrp x24, .LANCHOR2
ldrb w19, [x0,1680]
@@ -5991,26 +6063,26 @@ FlashReadPages:
sub w0, w2, #1
uxtb w0, w0
cmp w0, 6
- bhi .L917
+ bhi .L927
add x1, x1, 4056
sxtw x0, w19
add x1, x1, x0
cmp w2, 7
ldrb w3, [x1,12]
- bne .L918
+ bne .L928
ldrb w3, [x1,20]
-.L918:
+.L928:
add x1, x24, :lo12:.LANCHOR2
add x0, x1, x0
ldrb w0, [x0,560]
cmp w0, w3
- beq .L917
+ beq .L927
add x2, x22, :lo12:.LANCHOR0
mov w0, w19
add x2, x2, 4060
ldrb w1, [x2,-3]
bl HynixSetRRPara
-.L917:
+.L927:
mov w0, w19
bl NandcFlashCs
ldr w0, [x29,140]
@@ -6018,38 +6090,38 @@ FlashReadPages:
cset w0, eq
orr w0, w0, w28, lsr 31
str w0, [x29,152]
- cbz w0, .L919
+ cbz w0, .L929
add x0, x22, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbz w0, .L919
+ cbz w0, .L929
mov w0, w19
bl flash_enter_slc_mode
- b .L920
-.L919:
+ b .L930
+.L929:
mov w0, w19
bl flash_exit_slc_mode
-.L920:
+.L930:
cmp w19, 255
ldr w1, [x29,172]
- bne .L958
+ bne .L968
cmn w1, #1
cset w0, ne
- cbz w0, .L952
-.L958:
- cbz w20, .L924
+ cbz w0, .L962
+.L968:
+ cbz w20, .L934
add x0, x22, :lo12:.LANCHOR0
ldr w2, [x0,28]
mov w0, w19
add w2, w1, w2
bl FlashReadDpCmd
- b .L925
-.L924:
+ b .L935
+.L934:
mov w0, w19
bl FlashReadCmd
- b .L925
-.L952:
+ b .L935
+.L962:
mov w20, w0
-.L922:
+.L932:
ldrb w2, [x29,148]
mov w0, w19
ldr x3, [x21,8]
@@ -6058,15 +6130,15 @@ FlashReadPages:
bl NandcXferData
cmn w0, #1
mov w28, w0
- bne .L926
+ bne .L936
add x0, x22, :lo12:.LANCHOR0
ldrb w1, [x0,32]
- cbz w1, .L926
+ cbz w1, .L936
strb wzr, [x0,32]
mov w20, 0
- b .L920
-.L926:
- cbz w20, .L927
+ b .L930
+.L936:
+ cbz w20, .L937
add x0, x22, :lo12:.LANCHOR0
ldr w1, [x29,172]
ldr w2, [x0,28]
@@ -6086,23 +6158,23 @@ FlashReadPages:
cmn w0, #1
mov w23, w0
csel w20, w20, wzr, ne
-.L927:
+.L937:
mov w0, w19
bl NandcFlashDeCs
add x6, x22, :lo12:.LANCHOR0
ldrb w0, [x29,136]
cmn w28, #1
strb w0, [x6,32]
- bne .L934
+ bne .L944
add x0, x24, :lo12:.LANCHOR2
ldrb w0, [x0,572]
- cbnz w0, .L929
-.L933:
+ cbnz w0, .L939
+.L943:
add x0, x24, :lo12:.LANCHOR2
ldr x20, [x0,664]
- cbnz x20, .L930
- b .L1003
-.L929:
+ cbnz x20, .L940
+ b .L1013
+.L939:
ldr x0, [x6,3976]
mov w4, 1
ldr w1, [x29,172]
@@ -6114,18 +6186,18 @@ FlashReadPages:
bl FlashDdrTunningRead
cmn w0, #1
mov w28, w0
- beq .L932
+ beq .L942
ldr x6, [x29,104]
ldrb w0, [x6,4044]
cmp w28, w0, lsr 1
- bls .L954
-.L932:
+ bls .L964
+.L942:
lsr w0, w20, 8
bl NandcSetDdrPara
cmn w28, #1
- beq .L933
- b .L954
-.L930:
+ beq .L943
+ b .L964
+.L940:
ldr w1, [x29,172]
mov w0, w19
ldr x2, [x21,8]
@@ -6134,20 +6206,20 @@ FlashReadPages:
cmn w0, #1
mov w28, w0
mov w20, 0
- bne .L935
+ bne .L945
add x2, x22, :lo12:.LANCHOR0
ldr x0, [x2,1912]
ldrb w0, [x0,19]
sub w0, w0, #1
uxtb w0, w0
cmp w0, 6
- bhi .L936
+ bhi .L946
ldrb w1, [x2,4057]
mov w0, w19
add x2, x2, 4060
mov w3, w20
bl HynixSetRRPara
-.L936:
+.L946:
ldr w1, [x29,172]
mov w0, w19
ldr x2, [x21,8]
@@ -6164,18 +6236,18 @@ FlashReadPages:
bl printk
cmn w28, #1
ldr x4, [x29,104]
- bne .L935
+ bne .L945
ldrb w0, [x4,136]
- cbz w0, .L935
+ cbz w0, .L945
ldr w0, [x29,152]
- cbz w0, .L937
+ cbz w0, .L947
mov w0, w19
bl flash_enter_slc_mode
- b .L938
-.L937:
+ b .L948
+.L947:
mov w0, w19
bl flash_exit_slc_mode
-.L938:
+.L948:
add x0, x24, :lo12:.LANCHOR2
ldr w1, [x29,172]
ldr x2, [x21,8]
@@ -6185,102 +6257,102 @@ FlashReadPages:
mov w0, w19
blr x4
mov w28, w0
- b .L935
-.L1003:
+ b .L945
+.L1013:
ldr w1, [x29,172]
mov w0, w19
ldr x2, [x21,8]
ldr x3, [x21,16]
bl FlashReadRawPage
mov w28, w0
- b .L935
-.L954:
+ b .L945
+.L964:
mov w20, 0
-.L934:
+.L944:
add x0, x22, :lo12:.LANCHOR0
ldrb w0, [x0,4044]
add w0, w0, w0, lsl 1
cmp w28, w0, lsr 2
- bls .L935
+ bls .L945
add x0, x24, :lo12:.LANCHOR2
ldr x0, [x0,664]
cmp x0, xzr
mov w0, 256
csel w28, w28, w0, ne
-.L935:
+.L945:
cmp w28, 256
- beq .L959
+ beq .L969
cmn w28, #1
- bne .L939
-.L959:
+ bne .L949
+.L969:
str w28, [x26,x27]
- b .L941
-.L939:
+ b .L951
+.L949:
str wzr, [x26,x27]
-.L941:
+.L951:
ldr w3, [x26,x27]
cmn w3, #1
- bne .L943
+ bne .L953
add x2, x22, :lo12:.LANCHOR0
ldr w1, [x21,4]
ldr x0, [x29,128]
ldrb w2, [x2,4044]
bl printk
ldr x1, [x21,16]
- cbz x1, .L943
+ cbz x1, .L953
mov w2, 4
ldr x0, [x29,120]
mov w3, w2
bl rknand_print_hex
-.L943:
- cbz w20, .L945
+.L953:
+ cbz w20, .L955
add x0, x22, :lo12:.LANCHOR0
ldrb w0, [x0,4044]
add w0, w0, w0, lsl 1
cmp w23, w0, lsr 2
- bls .L946
+ bls .L956
add x24, x24, :lo12:.LANCHOR2
ldr x0, [x24,664]
cmp x0, xzr
mov w0, 256
csel w23, w23, w0, ne
-.L946:
+.L956:
add w0, w25, 1
mov w1, 56
cmp w23, 256
umull x0, w0, w1
- beq .L960
+ beq .L970
cmn w23, #1
- bne .L947
-.L960:
+ bne .L957
+.L970:
str w23, [x26,x0]
- b .L945
-.L947:
+ b .L955
+.L957:
str wzr, [x26,x0]
-.L945:
+.L955:
ldr w0, [x29,152]
add w25, w25, w20
- cbz w0, .L915
+ cbz w0, .L925
add x0, x22, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbz w0, .L915
+ cbz w0, .L925
mov w0, w19
bl flash_exit_slc_mode
-.L915:
+.L925:
add w25, w25, 1
- b .L912
-.L1002:
+ b .L922
+.L1012:
mov w0, 0
- b .L1000
-.L925:
+ b .L1010
+.L935:
mov w0, w19
bl NandcWaitFlashReady
- cbz w20, .L922
+ cbz w20, .L932
ldr w1, [x29,172]
mov w0, w19
bl FlashReadDpDataOutCmd
- b .L922
-.L1000:
+ b .L932
+.L1010:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -6324,18 +6396,18 @@ FlashLoadFactorBbt:
str xzr, [x29,144]
uxth w25, w25
str w0, [x29,124]
-.L1005:
+.L1015:
add x1, x22, :lo12:.LANCHOR0
ldrb w1, [x1,1676]
cmp w1, w19
- bls .L1015
+ bls .L1025
mul w3, w19, w21
mov w20, w25
mov w4, 61664
-.L1006:
+.L1016:
ldr w0, [x29,124]
cmp w20, w0
- ble .L1008
+ ble .L1018
add w1, w3, w20
add x0, x29, 136
lsl w1, w1, 10
@@ -6349,12 +6421,12 @@ FlashLoadFactorBbt:
ldr x3, [x29,112]
cmn w0, #1
ldr x4, [x29,104]
- beq .L1007
+ beq .L1017
add x24, x23, :lo12:.LANCHOR2
ldr x0, [x24,696]
ldrh w0, [x0]
cmp w0, w4
- bne .L1007
+ bne .L1017
add x24, x24, 728
mov x0, x26
mov w1, w19
@@ -6363,20 +6435,20 @@ FlashLoadFactorBbt:
bl printk
strh w20, [x24,w19,sxtw 1]
uxth w28, w28
- b .L1008
-.L1007:
+ b .L1018
+.L1017:
sub w20, w20, #1
uxth w20, w20
- b .L1006
-.L1008:
+ b .L1016
+.L1018:
add x1, x22, :lo12:.LANCHOR0
add w19, w19, 1
uxtb w19, w19
ldrb w1, [x1,1676]
cmp w1, w28
csel w27, w27, wzr, ne
- b .L1005
-.L1015:
+ b .L1015
+.L1025:
mov w0, w27
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -6417,9 +6489,9 @@ FlashReadFacBbtData:
sub w19, w3, #16
mul w24, w23, w3
uxth w20, w20
-.L1017:
+.L1027:
cmp w20, w19
- ble .L1025
+ ble .L1035
add w0, w20, w24
mov w1, 1
lsl w0, w0, 10
@@ -6429,26 +6501,26 @@ FlashReadFacBbtData:
bl FlashReadPages
ldr w0, [x29,88]
cmn w0, #1
- beq .L1018
+ beq .L1028
add x0, x21, :lo12:.LANCHOR2
ldr x0, [x0,696]
ldrh w0, [x0]
cmp w0, w26
- bne .L1018
+ bne .L1028
mov w0, w22
- cbz x22, .L1019
+ cbz x22, .L1029
mov x0, x22
mov w1, w23
mov w2, w25
bl FlashReadFacBbtData.part.6
- b .L1019
-.L1018:
+ b .L1029
+.L1028:
sub w20, w20, #1
uxth w20, w20
- b .L1017
-.L1025:
+ b .L1027
+.L1035:
mov w0, -1
-.L1019:
+.L1029:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -6478,37 +6550,37 @@ FlashGetBadBlockList:
lsr w2, w2, 3
bl FlashReadFacBbtData
cmn w0, #1
- bne .L1027
-.L1031:
+ bne .L1037
+.L1041:
mov w1, 0
- b .L1028
-.L1027:
+ b .L1038
+.L1037:
mov w2, 0
lsr w0, w19, 4
mov w1, w2
sub w19, w19, #1
mov w5, 1
-.L1029:
+.L1039:
cmp w2, w19
- bge .L1028
+ bge .L1038
add x3, x20, :lo12:.LANCHOR2
ubfx x4, x2, 5, 11
ldr x6, [x3,688]
lsl w3, w5, w2
ldr w4, [x6,x4,lsl 2]
tst w3, w4
- beq .L1030
+ beq .L1040
add w3, w1, 1
ubfiz x1, x1, 1, 16
strh w2, [x21,x1]
uxth w1, w3
-.L1030:
+.L1040:
cmp w1, w0
- bcs .L1031
+ bcs .L1041
add w2, w2, 1
uxth w2, w2
- b .L1029
-.L1028:
+ b .L1039
+.L1038:
ubfiz x1, x1, 1, 16
mov w0, -1
ldp x19, x20, [sp,16]
@@ -6540,9 +6612,9 @@ FlashProgSlc2KPages:
mov w25, 0
add x22, x22, :lo12:.LANCHOR0
mov w28, -1
-.L1037:
+.L1047:
cmp w25, w23
- beq .L1066
+ beq .L1076
mov w1, w24
sub w4, w23, w25
mov x0, x21
@@ -6552,10 +6624,10 @@ FlashProgSlc2KPages:
ldr w0, [x29,100]
ldrb w1, [x22,1676]
cmp w0, w1
- bcc .L1038
+ bcc .L1048
str w28, [x21]
- b .L1039
-.L1038:
+ b .L1049
+.L1048:
add x0, x22, x0, uxtw
ldrb w20, [x0,1680]
mov w0, w20
@@ -6610,36 +6682,36 @@ FlashProgSlc2KPages:
ldr w1, [x29,96]
mov w0, w20
bl FlashReadStatus
- tbz x0, 0, .L1042
+ tbz x0, 0, .L1052
str w28, [x21]
-.L1042:
+.L1052:
mov w0, w20
bl NandcFlashDeCs
-.L1039:
+.L1049:
add w25, w25, 1
add x21, x21, 56
- b .L1037
-.L1066:
+ b .L1047
+.L1076:
mov w21, 0
- cbz w27, .L1064
+ cbz w27, .L1074
adrp x25, .LC23
adrp x26, .LC22
adrp x27, .LC21
add x25, x25, :lo12:.LC23
add x26, x26, :lo12:.LC22
add x27, x27, :lo12:.LC21
-.L1065:
+.L1075:
cmp w21, w23
- beq .L1064
+ beq .L1074
ldr w0, [x19]
cmn w0, #1
- bne .L1045
+ bne .L1055
adrp x0, .LC20
ldr w1, [x19,4]
add x0, x0, :lo12:.LC20
bl printk
- b .L1046
-.L1045:
+ b .L1056
+.L1055:
adrp x20, .LANCHOR2
sub w4, w23, w21
add x22, x20, :lo12:.LANCHOR2
@@ -6666,44 +6738,44 @@ FlashProgSlc2KPages:
bl FlashReadPages
ldr w22, [x29,104]
cmn w22, #1
- bne .L1047
+ bne .L1057
ldr w1, [x19,4]
mov x0, x27
bl printk
str w22, [x19]
-.L1047:
+.L1057:
ldr x0, [x19,16]
- cbz x0, .L1048
+ cbz x0, .L1058
ldr w2, [x0]
add x0, x20, :lo12:.LANCHOR2
ldr x0, [x0,712]
ldr w3, [x0]
cmp w2, w3
- beq .L1048
+ beq .L1058
ldr w1, [x19,4]
mov x0, x26
bl printk
mov w0, -1
str w0, [x19]
-.L1048:
+.L1058:
ldr x0, [x19,8]
- cbz x0, .L1046
+ cbz x0, .L1056
add x20, x20, :lo12:.LANCHOR2
ldr w2, [x0]
ldr x0, [x20,704]
ldr w3, [x0]
cmp w2, w3
- beq .L1046
+ beq .L1056
ldr w1, [x19,4]
mov x0, x25
bl printk
mov w0, -1
str w0, [x19]
-.L1046:
+.L1056:
add w21, w21, 1
add x19, x19, 56
- b .L1065
-.L1064:
+ b .L1075
+.L1074:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -6736,18 +6808,18 @@ FlashProgPages:
ldrb w4, [x4,24]
ldrb w27, [x6,#:lo12:.LANCHOR1+265]
ldrb w5, [x5,19]
- cbz w4, .L1068
+ cbz w4, .L1078
bl FlashProgSlc2KPages
- b .L1069
-.L1068:
+ b .L1079
+.L1078:
sub w0, w5, #1
adrp x28, .LANCHOR2
str w0, [x29,120]
add x0, x28, :lo12:.LANCHOR2
str x0, [x29,112]
-.L1120:
+.L1130:
cmp w22, w25
- bcs .L1121
+ bcs .L1131
mov w20, 56
mov w1, w23
add x2, x29, 128
@@ -6762,11 +6834,11 @@ FlashProgPages:
ldr w0, [x29,132]
ldrb w2, [x1,1676]
cmp w0, w2
- bcc .L1070
+ bcc .L1080
mov w0, -1
str w0, [x19,x20]
- b .L1071
-.L1070:
+ b .L1081
+.L1080:
add x3, x28, :lo12:.LANCHOR2
uxtw x0, w0
ldrb w3, [x3,648]
@@ -6775,15 +6847,15 @@ FlashProgPages:
csel w24, w24, wzr, ne
madd x0, x0, x3, x1
ldr x0, [x0,1728]
- cbz x0, .L1073
+ cbz x0, .L1083
cmp w2, 1
- bne .L1074
+ bne .L1084
ldr x0, [x1,3976]
bl NandcIqrWaitFlashReady
-.L1074:
+.L1084:
ldrb w0, [x29,132]
bl FlashWaitCmdDone
-.L1073:
+.L1083:
add x0, x21, :lo12:.LANCHOR0
ldr w2, [x29,132]
mov x1, 24
@@ -6793,13 +6865,13 @@ FlashProgPages:
str x26, [x0,8]
str xzr, [x0,16]
str w1, [x0,4]
- cbz w24, .L1075
+ cbz w24, .L1085
add w1, w22, 1
mov w3, 56
umull x1, w1, w3
add x1, x19, x1
str x1, [x0,16]
-.L1075:
+.L1085:
add x1, x21, :lo12:.LANCHOR0
add x0, x1, x2
ldrb w20, [x0,1680]
@@ -6808,11 +6880,11 @@ FlashProgPages:
ldrb w0, [x1,1676]
strb w20, [x2,1720]
cmp w0, 1
- bne .L1076
+ bne .L1086
mov w0, w20
bl NandcWaitFlashReady
- b .L1077
-.L1076:
+ b .L1087
+.L1086:
mov w0, w20
str x1, [x29,104]
bl NandcFlashCs
@@ -6827,35 +6899,35 @@ FlashProgPages:
bl FlashWaitReadyEN
mov w0, w20
bl NandcFlashDeCs
-.L1077:
+.L1087:
ldr w0, [x29,120]
cmp w0, 6
- bhi .L1078
+ bhi .L1088
ldr x0, [x29,112]
add x0, x0, x20, sxtw
ldrb w0, [x0,560]
- cbz w0, .L1078
+ cbz w0, .L1088
add x2, x21, :lo12:.LANCHOR0
mov w0, w20
add x2, x2, 4060
mov w3, 0
ldrb w1, [x2,-3]
bl HynixSetRRPara
-.L1078:
+.L1088:
mov w0, w20
bl NandcFlashCs
cmp w23, 1
- bne .L1079
+ bne .L1089
add x0, x21, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbz w0, .L1079
+ cbz w0, .L1089
mov w0, w20
bl flash_enter_slc_mode
- b .L1080
-.L1079:
+ b .L1090
+.L1089:
mov w0, w20
bl flash_exit_slc_mode
-.L1080:
+.L1090:
ldr w1, [x29,128]
mov w0, w20
bl FlashProgFirstCmd
@@ -6865,7 +6937,7 @@ FlashProgPages:
mov w1, 1
mov w2, w27
bl NandcXferData
- cbz w24, .L1081
+ cbz w24, .L1091
ldr w1, [x29,128]
mov w0, w20
add x26, x21, :lo12:.LANCHOR0
@@ -6893,45 +6965,45 @@ FlashProgPages:
ldr x3, [x4,8]
ldr x4, [x4,16]
bl NandcXferData
-.L1081:
+.L1091:
ldr w1, [x29,128]
mov w0, w20
add w22, w22, w24
bl FlashProgSecondCmd
mov w0, w20
bl NandcFlashDeCs
-.L1071:
+.L1081:
add w22, w22, 1
- b .L1120
-.L1121:
+ b .L1130
+.L1131:
add x21, x21, :lo12:.LANCHOR0
mov x20, 0
mov x22, 24
ldr x0, [x21,3976]
bl NandcIqrWaitFlashReady
-.L1083:
+.L1093:
ldrb w0, [x21,1676]
cmp w0, w20
- bls .L1122
+ bls .L1132
mov w0, w20
bl FlashWaitCmdDone
cmp w23, 1
- bne .L1084
+ bne .L1094
ldrb w0, [x21,136]
- cbz w0, .L1084
+ cbz w0, .L1094
madd x0, x20, x22, x21
ldrb w0, [x0,1720]
bl flash_exit_slc_mode
-.L1084:
+.L1094:
add x20, x20, 1
- b .L1083
-.L1122:
+ b .L1093
+.L1132:
ldr w0, [x29,124]
- cbnz w0, .L1086
-.L1094:
+ cbnz w0, .L1096
+.L1104:
mov w0, 0
- b .L1069
-.L1086:
+ b .L1079
+.L1096:
adrp x24, .LC23
adrp x26, .LC22
adrp x27, .LC21
@@ -6939,18 +7011,18 @@ FlashProgPages:
add x24, x24, :lo12:.LC23
add x26, x26, :lo12:.LC22
add x27, x27, :lo12:.LC21
-.L1087:
+.L1097:
cmp w21, w25
- beq .L1094
+ beq .L1104
ldr w0, [x19]
cmn w0, #1
- bne .L1088
+ bne .L1098
adrp x0, .LC20
ldr w1, [x19,4]
add x0, x0, :lo12:.LC20
bl printk
- b .L1089
-.L1088:
+ b .L1099
+.L1098:
adrp x20, .LANCHOR2
sub w4, w25, w21
add x22, x20, :lo12:.LANCHOR2
@@ -6977,44 +7049,44 @@ FlashProgPages:
bl FlashReadPages
ldr w22, [x29,136]
cmn w22, #1
- bne .L1090
+ bne .L1100
ldr w1, [x19,4]
mov x0, x27
bl printk
str w22, [x19]
-.L1090:
+.L1100:
ldr x0, [x19,16]
- cbz x0, .L1091
+ cbz x0, .L1101
ldr w2, [x0]
add x0, x20, :lo12:.LANCHOR2
ldr x0, [x0,712]
ldr w3, [x0]
cmp w2, w3
- beq .L1091
+ beq .L1101
ldr w1, [x19,4]
mov x0, x26
bl printk
mov w0, -1
str w0, [x19]
-.L1091:
+.L1101:
ldr x0, [x19,8]
- cbz x0, .L1089
+ cbz x0, .L1099
add x20, x20, :lo12:.LANCHOR2
ldr w2, [x0]
ldr x0, [x20,704]
ldr w3, [x0]
cmp w2, w3
- beq .L1089
+ beq .L1099
ldr w1, [x19,4]
mov x0, x24
bl printk
mov w0, -1
str w0, [x19]
-.L1089:
+.L1099:
add w21, w21, 1
add x19, x19, 56
- b .L1087
-.L1069:
+ b .L1097
+.L1079:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -7077,10 +7149,10 @@ FlashTestBlk:
ldr w2, [x0,#:lo12:.LANCHOR0+8]
mov w0, 0
cmp w1, w2
- bcc .L1125
+ bcc .L1135
mov w0, w1
bl FlashTestBlk.part.7
-.L1125:
+.L1135:
ldp x29, x30, [sp], 16
ret
.size FlashTestBlk, .-FlashTestBlk
@@ -7137,17 +7209,17 @@ FlashMakeFactorBbt:
sub w0, w22, #1
uxth w0, w0
str w0, [x29,132]
-.L1129:
+.L1139:
add x23, x19, :lo12:.LANCHOR0
ldrb w0, [x23,1676]
cmp w0, w20
- bls .L1180
+ bls .L1190
ldr x0, [x29,136]
sxtw x24, w20
add x0, x0, :lo12:.LANCHOR2
add x0, x0, 728
ldrh w21, [x0,w20,sxtw 1]
- cbnz w21, .L1159
+ cbnz w21, .L1169
ldrh w2, [x23,4036]
mov w1, w21
ldr x0, [x19,#:lo12:.LANCHOR0]
@@ -7161,15 +7233,15 @@ FlashMakeFactorBbt:
and w0, w0, 4
uxtb w0, w0
str w0, [x29,128]
-.L1131:
+.L1141:
uxth w28, w26
cmp w28, w22
- bcs .L1141
+ bcs .L1151
mov w0, -1
strb w0, [x29,166]
strb w0, [x29,167]
ldr w0, [x29,124]
- cbz w0, .L1133
+ cbz w0, .L1143
add x4, x19, :lo12:.LANCHOR0
add x2, x29, 166
add x0, x4, 1688
@@ -7184,7 +7256,7 @@ FlashMakeFactorBbt:
ldr x3, [x29,112]
ldrb w0, [x4,24]
cmp w0, 1
- bne .L1133
+ bne .L1143
ldr w1, [x4,28]
mov w0, w27
add x2, x29, 167
@@ -7194,9 +7266,9 @@ FlashMakeFactorBbt:
ldrb w1, [x29,167]
and w0, w1, w0
strb w0, [x29,166]
-.L1133:
+.L1143:
ldr w0, [x29,120]
- cbz w0, .L1135
+ cbz w0, .L1145
add x0, x19, :lo12:.LANCHOR0
add x2, x29, 167
add x0, x0, 1688
@@ -7208,40 +7280,40 @@ FlashMakeFactorBbt:
mov w0, w27
add w1, w1, w21
bl FlashReadSpare
-.L1135:
+.L1145:
add x0, x19, :lo12:.LANCHOR0
ldrb w1, [x29,166]
ldr x0, [x0,1912]
ldrb w0, [x0,7]
cmp w0, 8
- beq .L1160
+ beq .L1170
cmp w0, 1
- bne .L1136
-.L1160:
+ bne .L1146
+.L1170:
mov w0, 1
- cbz w1, .L1138
+ cbz w1, .L1148
ldrb w0, [x29,167]
cmp w0, wzr
cset w0, eq
- b .L1138
-.L1136:
+ b .L1148
+.L1146:
cmp w1, 255
mov w0, 1
- bne .L1138
+ bne .L1148
ldrb w0, [x29,167]
cmp w0, 255
cset w0, ne
-.L1138:
+.L1148:
ldr w1, [x29,128]
- cbz w1, .L1139
+ cbz w1, .L1149
add x0, x19, :lo12:.LANCHOR0
add x0, x0, 1688
ldr w1, [x0,x24,lsl 2]
mov w0, w27
add w1, w21, w1
bl SandiskProgTestBadBlock
-.L1139:
- cbz w0, .L1140
+.L1149:
+ cbz w0, .L1150
adrp x0, .LC25
mov w1, w20
mov w2, w26
@@ -7262,12 +7334,12 @@ FlashMakeFactorBbt:
ldrb w0, [x2,1676]
mul w0, w1, w0
cmp w23, w0
- bgt .L1141
-.L1140:
+ bgt .L1151
+.L1150:
add w26, w26, 1
add w21, w21, w25
- b .L1131
-.L1141:
+ b .L1141
+.L1151:
adrp x0, .LC26
mov w1, w20
mov w2, w23
@@ -7278,28 +7350,28 @@ FlashMakeFactorBbt:
ldrb w0, [x1,1676]
mul w0, w2, w0
cmp w23, w0
- blt .L1143
+ blt .L1153
ldrh w2, [x1,4036]
mov w1, 0
ldr x0, [x19,#:lo12:.LANCHOR0]
lsl w2, w2, 9
bl ftl_memset
-.L1143:
- cbnz w20, .L1145
+.L1153:
+ cbnz w20, .L1155
add x0, x19, :lo12:.LANCHOR0
adrp x26, .LC27
mov w21, w20
add x26, x26, :lo12:.LC27
mov w23, 1
ldrh w27, [x0,8]
-.L1146:
+.L1156:
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,25]
cmp w0, w27
- bls .L1181
+ bls .L1191
mov w0, w27
bl FlashTestBlk
- cbz w0, .L1147
+ cbz w0, .L1157
mov w1, w27
mov x0, x26
add w21, w21, 1
@@ -7312,22 +7384,22 @@ FlashMakeFactorBbt:
ldr w3, [x2,x1]
orr w0, w3, w0
str w0, [x2,x1]
-.L1147:
+.L1157:
add w27, w27, 1
uxth w27, w27
- b .L1146
-.L1181:
+ b .L1156
+.L1191:
adrp x26, .LC27
ldr w28, [x29,132]
sub w27, w22, #50
add x26, x26, :lo12:.LC27
mov w23, 1
-.L1149:
+.L1159:
cmp w28, w27
- ble .L1182
+ ble .L1192
mov w0, w28
bl FlashTestBlk
- cbz w0, .L1150
+ cbz w0, .L1160
mov w1, w28
mov x0, x26
bl printk
@@ -7338,23 +7410,23 @@ FlashMakeFactorBbt:
ldr w3, [x2,x1]
orr w0, w3, w0
str w0, [x2,x1]
-.L1150:
+.L1160:
sub w28, w28, #1
uxth w28, w28
- b .L1149
-.L1182:
+ b .L1159
+.L1192:
add x0, x19, :lo12:.LANCHOR0
ldrb w1, [x0,25]
ldr w2, [x0,8]
sub w1, w1, w2
cmp w21, w1
- bcc .L1145
+ bcc .L1155
ldrh w2, [x0,4036]
mov w1, 0
ldr x0, [x19,#:lo12:.LANCHOR0]
lsl w2, w2, 9
bl ftl_memset
-.L1145:
+.L1155:
ldr x0, [x29,136]
adrp x23, .LC28
ldr w27, [x29,132]
@@ -7362,22 +7434,22 @@ FlashMakeFactorBbt:
mul w26, w20, w22
add x28, x0, :lo12:.LANCHOR2
mov w21, -3872
-.L1153:
+.L1163:
mov w2, w27
mov x0, x23
mov w1, w20
bl printk
ldr x2, [x19,#:lo12:.LANCHOR0]
-.L1154:
+.L1164:
ubfx x0, x27, 5, 11
ldr w0, [x2,x0,lsl 2]
lsr w0, w0, w27
and w1, w0, 1
- tbz x0, 0, .L1183
+ tbz x0, 0, .L1193
sub w27, w27, #1
uxth w27, w27
- b .L1154
-.L1183:
+ b .L1164
+.L1193:
add x0, x28, 728
strh w27, [x0,x24,lsl 1]
ldr x0, [x29,152]
@@ -7401,15 +7473,15 @@ FlashMakeFactorBbt:
mov w3, w1
bl FlashProgPages
ldr w0, [x29,168]
- cbz w0, .L1159
+ cbz w0, .L1169
sub w27, w27, #1
uxth w27, w27
- b .L1153
-.L1159:
+ b .L1163
+.L1169:
add w20, w20, 1
uxtb w20, w20
- b .L1129
-.L1180:
+ b .L1139
+.L1190:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -7424,14 +7496,14 @@ FlashMakeFactorBbt:
Ftl_log2:
mov w2, 1
mov w1, 0
-.L1185:
+.L1195:
cmp w2, w0
- bhi .L1187
+ bhi .L1197
add w1, w1, 1
lsl w2, w2, 1
uxth w1, w1
- b .L1185
-.L1187:
+ b .L1195
+.L1197:
sub w0, w1, #1
ret
.size Ftl_log2, .-Ftl_log2
@@ -7487,30 +7559,30 @@ FtlConstantsInit:
strh w2, [x0,770]
strh w1, [x0,772]
strh w4, [x0,758]
-.L1192:
+.L1202:
add x5, x0, 776
strb w3, [x3,x5]
add x3, x3, 1
cmp x3, 32
- bne .L1192
+ bne .L1202
ldrh w3, [x24,20]
ldrb w0, [x24,15]
cmp w3, w0
- bcs .L1193
+ bcs .L1203
uxtb w8, w1
mov w3, 0
mul w11, w1, w2
ubfiz w10, w8, 1, 7
add x12, x19, :lo12:.LANCHOR2
-.L1194:
+.L1204:
cmp w3, w1
- bcs .L1196
+ bcs .L1206
uxtb w0, w3
mov w5, w3
mov w7, 0
-.L1197:
+.L1207:
cmp w7, w2
- bcs .L1219
+ bcs .L1229
add x9, x12, 776
add w13, w5, w11
add w14, w0, w8
@@ -7520,35 +7592,35 @@ FtlConstantsInit:
strb w14, [x9,x13]
add w5, w5, w1
uxtb w0, w0
- b .L1197
-.L1219:
+ b .L1207
+.L1229:
add w3, w3, 1
- b .L1194
-.L1196:
+ b .L1204
+.L1206:
add x0, x19, :lo12:.LANCHOR2
lsl w2, w2, 1
lsr w4, w4, 1
strh w2, [x0,770]
strh w4, [x0,758]
-.L1193:
+.L1203:
add x0, x19, :lo12:.LANCHOR2
mov w2, 5
cmp w6, 1
strh w2, [x0,808]
strh wzr, [x0,810]
- bne .L1198
+ bne .L1208
strh w6, [x0,808]
-.L1198:
+.L1208:
add x0, x19, :lo12:.LANCHOR2
mov w2, 4352
adrp x22, .LANCHOR0
strh w2, [x0,812]
add x2, x22, :lo12:.LANCHOR0
ldrb w27, [x2,24]
- cbz w27, .L1199
+ cbz w27, .L1209
mov w2, 384
strh w2, [x0,812]
-.L1199:
+.L1209:
add x21, x19, :lo12:.LANCHOR2
ldrh w20, [x21,758]
ldrh w23, [x21,770]
@@ -7582,10 +7654,10 @@ FtlConstantsInit:
mul w0, w23, w20
strh w2, [x21,830]
str w0, [x21,764]
- bls .L1200
+ bls .L1210
and w0, w20, 255
strh w0, [x21,810]
-.L1200:
+.L1210:
add x2, x19, :lo12:.LANCHOR2
mul w0, w25, w28
ldrh w1, [x2,810]
@@ -7600,15 +7672,15 @@ FtlConstantsInit:
sdiv w0, w1, w0
uxth w0, w0
cmp w0, 4
- bhi .L1216
+ bhi .L1226
mov w0, 4
-.L1216:
+.L1226:
strh w0, [x2,840]
- cbz w27, .L1203
+ cbz w27, .L1213
add x0, x19, :lo12:.LANCHOR2
mov w1, 640
strh w1, [x0,812]
-.L1203:
+.L1213:
add x1, x19, :lo12:.LANCHOR2
lsl w20, w20, 6
cmp w23, 1
@@ -7626,9 +7698,9 @@ FtlConstantsInit:
ldrh w0, [x1,840]
udiv w0, w0, w23
add w20, w20, w0
- bne .L1217
+ bne .L1227
add w20, w20, 4
-.L1217:
+.L1227:
str w20, [x1,744]
add x20, x19, :lo12:.LANCHOR2
add x22, x22, :lo12:.LANCHOR0
@@ -7658,18 +7730,18 @@ FtlConstantsInit:
ldr w1, [x20,848]
add w4, w1, 3
str w4, [x20,848]
- cbz w5, .L1206
+ cbz w5, .L1216
add w2, w2, 4
add w1, w1, 5
strh w2, [x20,840]
- b .L1218
-.L1206:
+ b .L1228
+.L1216:
cmp w4, 7
- bhi .L1207
+ bhi .L1217
mov w1, 8
-.L1218:
+.L1228:
str w1, [x20,848]
-.L1207:
+.L1217:
add x19, x19, :lo12:.LANCHOR2
ldrh w1, [x19,756]
strh wzr, [x19,860]
@@ -7678,10 +7750,10 @@ FtlConstantsInit:
add w1, w1, 52
add w0, w1, w0, lsl 2
cmp w0, w3, lsl 9
- bcs .L1208
+ bcs .L1218
mov w0, 1
strh w0, [x19,860]
-.L1208:
+.L1218:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -7743,9 +7815,9 @@ FtlMemInit:
strh wzr, [x0,962]
str w2, [x0,964]
cmp w2, w1
- bls .L1221
+ bls .L1231
str w1, [x0,964]
-.L1221:
+.L1231:
add x19, x20, :lo12:.LANCHOR2
mov w22, 56
ldrh w0, [x19,822]
@@ -7929,106 +8001,106 @@ FtlMemInit:
ldrh w5, [x19,770]
mov w0, 1
mov w2, w4
-.L1222:
+.L1232:
cmp w0, w5
add x1, x1, 8
- bcs .L1322
+ bcs .L1332
ldr x3, [x19,1328]
add w0, w0, 1
add x3, x3, x2, uxtw 2
add w2, w2, w4
str x3, [x1,32]
- b .L1222
-.L1322:
+ b .L1232
+.L1332:
add x1, x20, :lo12:.LANCHOR2
-.L1224:
+.L1234:
cmp w0, 8
- beq .L1323
+ beq .L1333
add x2, x1, x0, uxtw 3
add w0, w0, 1
str xzr, [x2,1328]
- b .L1224
-.L1323:
+ b .L1234
+.L1333:
add x0, x20, :lo12:.LANCHOR2
ldr x1, [x0,1192]
- cbnz x1, .L1226
-.L1228:
+ cbnz x1, .L1236
+.L1238:
adrp x0, .LC29
adrp x1, .LANCHOR3
add x0, x0, :lo12:.LC29
add x1, x1, :lo12:.LANCHOR3
bl printk
mov w0, -1
- b .L1227
-.L1226:
+ b .L1237
+.L1236:
ldr x1, [x0,1200]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1240]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1256]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1264]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1272]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1280]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1328]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x0, [x0,1184]
- cbz x0, .L1228
+ cbz x0, .L1238
add x0, x20, :lo12:.LANCHOR2
ldr x1, [x0,976]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,984]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,992]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1008]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1016]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1024]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1000]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1048]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1056]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x0, [x0,1064]
- cbz x0, .L1228
+ cbz x0, .L1238
add x0, x20, :lo12:.LANCHOR2
ldr x1, [x0,1072]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1088]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1096]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1104]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1112]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1120]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1128]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1168]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1152]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x0, [x0,1208]
- cbz x0, .L1228
+ cbz x0, .L1238
adrp x0, .LANCHOR2
add x0, x0, :lo12:.LANCHOR2
ldr x1, [x0,1216]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x1, [x0,1224]
- cbz x1, .L1228
+ cbz x1, .L1238
ldr x0, [x0,1232]
- cbz x0, .L1228
+ cbz x0, .L1238
mov w0, 0
-.L1227:
+.L1237:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -8044,23 +8116,23 @@ IsBlkInVendorPart:
add x1, x1, :lo12:.LANCHOR2
mov w0, 0
ldrh w2, [x1,1392]
- cbz w2, .L1325
+ cbz w2, .L1335
ldrh w2, [x1,840]
ldr x3, [x1,1208]
mov x1, 0
-.L1326:
+.L1336:
cmp w2, w1, uxth
- bls .L1331
+ bls .L1341
add x1, x1, 1
add x0, x3, x1, lsl 1
ldrh w0, [x0,-2]
cmp w0, w4
- bne .L1326
+ bne .L1336
mov w0, 1
- b .L1325
-.L1331:
+ b .L1335
+.L1341:
mov w0, 0
-.L1325:
+.L1335:
ret
.size IsBlkInVendorPart, .-IsBlkInVendorPart
.align 2
@@ -8072,25 +8144,25 @@ FtlCacheMetchLpa:
add x2, x2, :lo12:.LANCHOR2
mov w0, 0
ldr w3, [x2,968]
- cbz w3, .L1333
+ cbz w3, .L1343
ldr x5, [x2,1032]
mov x0, 56
mov x2, 0
-.L1334:
+.L1344:
cmp w3, w2
- bls .L1343
+ bls .L1353
madd x4, x2, x0, x5
add x2, x2, 1
ldr w4, [x4,24]
cmp w4, w6
- bcc .L1334
+ bcc .L1344
cmp w4, w1
- bhi .L1334
+ bhi .L1344
mov w0, 1
- b .L1333
-.L1343:
+ b .L1343
+.L1353:
mov w0, 0
-.L1333:
+.L1343:
ret
.size FtlCacheMetchLpa, .-FtlCacheMetchLpa
.align 2
@@ -8195,10 +8267,10 @@ FtlBbt2Bitmap:
mov x3, 0
mov w0, 65535
mov w5, 1
-.L1352:
+.L1362:
ldrh w2, [x20,x3]
cmp w2, w0
- beq .L1350
+ beq .L1360
ubfx x4, x2, 5, 11
add x3, x3, 2
lsl x4, x4, 2
@@ -8207,8 +8279,8 @@ FtlBbt2Bitmap:
ldr w1, [x19,x4]
orr w2, w1, w2
str w2, [x19,x4]
- bne .L1352
-.L1350:
+ bne .L1362
+.L1360:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -8226,7 +8298,7 @@ FtlBbmTblFlush:
stp x23, x24, [sp,48]
ldr w1, [x19,1400]
stp x25, x26, [sp,64]
- cbnz w1, .L1357
+ cbnz w1, .L1367
ldr x0, [x19,1048]
mov x22, 0
ldr x3, [x19,1112]
@@ -8235,13 +8307,13 @@ FtlBbmTblFlush:
str x0, [x19,1416]
str x3, [x19,1424]
bl ftl_memset
-.L1358:
+.L1368:
ldrh w1, [x19,770]
mov w0, w22
add x20, x19, 1408
add x22, x22, 1
cmp w0, w1
- bge .L1366
+ bge .L1376
add x1, x21, x22, lsl 3
ldrh w2, [x19,1288]
ldr x3, [x20,8]
@@ -8250,8 +8322,8 @@ FtlBbmTblFlush:
add x0, x3, x0, sxtw 2
lsl w2, w2, 2
bl ftl_memcpy
- b .L1358
-.L1366:
+ b .L1368
+.L1376:
ldr x25, [x20,16]
mov w1, 255
mov w2, 16
@@ -8275,7 +8347,7 @@ FtlBbmTblFlush:
strh w0, [x25,10]
ldr w0, [x19,744]
strh w0, [x25,12]
-.L1360:
+.L1370:
ldr x0, [x19,1048]
str x0, [x20,8]
ldrh w1, [x19,1296]
@@ -8298,7 +8370,7 @@ FtlBbmTblFlush:
ldrh w0, [x19,1298]
sub w1, w1, #1
cmp w0, w1
- blt .L1361
+ blt .L1371
ldr w1, [x19,1304]
ldrh w0, [x19,1296]
add w1, w1, 1
@@ -8322,20 +8394,20 @@ FtlBbmTblFlush:
mov w2, w1
mov w3, w1
bl FlashProgPages
-.L1361:
+.L1371:
ldrh w1, [x19,1298]
ldr w0, [x20]
add w1, w1, 1
strh w1, [x19,1298]
cmn w0, #1
- bne .L1362
+ bne .L1372
ldr w1, [x20,4]
mov x0, x24
add w26, w26, 1
bl printk
uxth w26, w26
cmp w26, 3
- bls .L1360
+ bls .L1370
adrp x0, .LC33
ldr w1, [x20,4]
add x0, x0, :lo12:.LC33
@@ -8343,12 +8415,12 @@ FtlBbmTblFlush:
bl printk
mov w0, 1
str w0, [x19,1400]
- b .L1357
-.L1362:
- cbnz w23, .L1357
+ b .L1367
+.L1372:
+ cbnz w23, .L1367
mov w23, 1
- b .L1360
-.L1357:
+ b .L1370
+.L1367:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -8379,19 +8451,19 @@ FtlLoadFactoryBbt:
mov w25, -1
str x24, [x21,16]
mov w26, 61664
-.L1368:
+.L1378:
ldrh w0, [x19,770]
cmp w22, w0
- bcs .L1377
+ bcs .L1387
ldrh w20, [x19,814]
strh w25, [x23,12]
-.L1370:
+.L1380:
sub w20, w20, #1
ldrh w0, [x19,814]
uxth w20, w20
sub w1, w0, #16
cmp w20, w1
- ble .L1371
+ ble .L1381
madd w0, w22, w0, w20
mov w1, 1
lsl w0, w0, 10
@@ -8401,16 +8473,16 @@ FtlLoadFactoryBbt:
bl FlashReadPages
ldr w0, [x21]
cmn w0, #1
- beq .L1370
+ beq .L1380
ldrh w0, [x24]
cmp w0, w26
- bne .L1370
+ bne .L1380
strh w20, [x23,12]
-.L1371:
+.L1381:
add w22, w22, 1
add x23, x23, 2
- b .L1368
-.L1377:
+ b .L1378
+.L1387:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -8452,19 +8524,19 @@ FtlBbtCalcTotleCnt:
ldrh w1, [x0,814]
ldrh w21, [x0,770]
mul w21, w1, w21
-.L1380:
+.L1390:
cmp w20, w21
- bge .L1386
+ bge .L1396
mov w0, w20
bl FtlBbmIsBadBlock
- cbz w0, .L1381
+ cbz w0, .L1391
add w19, w19, 1
uxth w19, w19
-.L1381:
+.L1391:
add w20, w20, 1
uxth w20, w20
- b .L1380
-.L1386:
+ b .L1390
+.L1396:
mov w0, w19
ldr x21, [sp,32]
ldp x19, x20, [sp,16]
@@ -8486,7 +8558,7 @@ FtlMakeBbt:
stp x27, x28, [sp,80]
mov x21, x19
ldr w22, [x20,1400]
- cbnz w22, .L1388
+ cbnz w22, .L1398
add x24, x20, 1296
mov x19, x20
mov x25, x24
@@ -8494,10 +8566,10 @@ FtlMakeBbt:
mov w28, -3872
bl FtlBbtMemInit
bl FtlLoadFactoryBbt
-.L1389:
+.L1399:
ldrh w0, [x19,770]
cmp w22, w0
- bcs .L1407
+ bcs .L1417
ldrh w4, [x25,12]
mov w1, 65535
ldr x0, [x19,1048]
@@ -8505,7 +8577,7 @@ FtlMakeBbt:
cmp w4, w1
str x0, [x20,8]
str x26, [x20,16]
- beq .L1390
+ beq .L1400
ldrh w0, [x19,814]
mov w1, 1
mov w2, w1
@@ -8520,23 +8592,23 @@ FtlMakeBbt:
ldr x1, [x20,8]
lsr w2, w2, 3
bl ftl_memcpy
- b .L1391
-.L1390:
+ b .L1401
+.L1400:
mov w1, w22
bl FlashGetBadBlockList
ldr x0, [x20,8]
ldr x1, [x24,32]
bl FtlBbt2Bitmap
ldrh w23, [x19,814]
-.L1393:
+.L1403:
sub w23, w23, #1
uxth w23, w23
-.L1392:
+.L1402:
ldrh w0, [x19,814]
madd w0, w22, w0, w23
bl FtlBbmIsBadBlock
cmp w0, 1
- beq .L1393
+ beq .L1403
ldr x0, [x19,1112]
mov w1, 0
mov w2, 16
@@ -8567,64 +8639,64 @@ FtlMakeBbt:
bl FlashProgPages
ldr w0, [x20]
cmn w0, #1
- bne .L1391
+ bne .L1401
mov w0, w27
bl FtlBbmMapBadBlock
- b .L1392
-.L1391:
+ b .L1402
+.L1401:
mov w0, w27
add w22, w22, 1
add x24, x24, 8
add x25, x25, 2
bl FtlBbmMapBadBlock
- b .L1389
-.L1407:
+ b .L1399
+.L1417:
mov w19, 0
-.L1396:
+.L1406:
add x20, x21, :lo12:.LANCHOR2
ldrh w0, [x20,832]
cmp w0, w19
- bls .L1408
+ bls .L1418
mov w0, w19
add w19, w19, 1
bl FtlBbmMapBadBlock
uxth w19, w19
- b .L1396
-.L1408:
+ b .L1406
+.L1418:
ldrh w19, [x20,1308]
mov w23, 65535
sub w19, w19, #1
uxth w19, w19
-.L1398:
+.L1408:
add x22, x20, 1296
ldrh w0, [x22,12]
sub w0, w0, #48
cmp w19, w0
- ble .L1402
+ ble .L1412
mov w0, w19
bl FtlBbmIsBadBlock
cmp w0, 1
- beq .L1399
+ beq .L1409
mov w0, w19
bl FlashTestBlk
- cbz w0, .L1400
+ cbz w0, .L1410
mov w0, w19
bl FtlBbmMapBadBlock
- b .L1399
-.L1400:
+ b .L1409
+.L1410:
ldrh w0, [x20,1296]
cmp w0, w23
- bne .L1401
+ bne .L1411
strh w19, [x20,1296]
- b .L1399
-.L1401:
+ b .L1409
+.L1411:
strh w19, [x22,4]
- b .L1402
-.L1399:
+ b .L1412
+.L1409:
sub w19, w19, #1
uxth w19, w19
- b .L1398
-.L1402:
+ b .L1408
+.L1412:
add x19, x21, :lo12:.LANCHOR2
mov w2, 2
ldr x1, [x19,1016]
@@ -8653,7 +8725,7 @@ FtlMakeBbt:
strh w0, [x19,1300]
strh w1, [x19,1296]
bl FtlBbmTblFlush
-.L1388:
+.L1398:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -8715,16 +8787,16 @@ P2V_block_in_plane:
ftl_cmp_data_ver:
cmp w0, w1
mov w2, -2147483648
- bls .L1413
+ bls .L1423
sub w1, w0, w1
cmp w1, w2
cset w0, ls
- b .L1414
-.L1413:
+ b .L1424
+.L1423:
sub w1, w1, w0
cmp w1, w2
cset w0, hi
-.L1414:
+.L1424:
ret
.size ftl_cmp_data_ver, .-ftl_cmp_data_ver
.align 2
@@ -8741,12 +8813,12 @@ FtlGetLastWrittenPage:
str x25, [sp,64]
mov w23, w1
add x3, x3, :lo12:.LANCHOR2
- bne .L1416
+ bne .L1426
ldrh w19, [x3,820]
- b .L1417
-.L1416:
+ b .L1427
+.L1426:
ldrh w19, [x3,818]
-.L1417:
+.L1427:
sub w19, w19, #1
lsl w21, w0, 10
mov w1, 1
@@ -8761,12 +8833,12 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr w0, [x29,144]
cmn w0, #1
- bne .L1418
+ bne .L1428
mov w22, 0
mov w25, 2
-.L1419:
+.L1429:
cmp w22, w19
- bgt .L1418
+ bgt .L1428
add w3, w22, w19
mov w1, 1
mov w2, w23
@@ -8778,21 +8850,21 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr w0, [x24]
cmn w0, #1
- bne .L1420
+ bne .L1430
ldr w0, [x24,4]
cmn w0, #1
- bne .L1420
+ bne .L1430
ldr w0, [x29,88]
cmn w0, #1
- beq .L1420
+ beq .L1430
sub w19, w20, #1
sxth w19, w19
- b .L1419
-.L1420:
+ b .L1429
+.L1430:
add w20, w20, 1
sxth w22, w20
- b .L1419
-.L1418:
+ b .L1429
+.L1428:
mov w0, w19
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -8822,11 +8894,11 @@ FtlLoadBbt:
ldrh w20, [x23,814]
sub w20, w20, #1
uxth w20, w20
-.L1427:
+.L1437:
ldrh w0, [x23,814]
sub w0, w0, #48
cmp w20, w0
- ble .L1430
+ ble .L1440
lsl w0, w20, 10
mov w1, 1
str w0, [x21,4]
@@ -8835,7 +8907,7 @@ FtlLoadBbt:
bl FlashReadPages
ldr w0, [x21]
cmn w0, #1
- bne .L1428
+ bne .L1438
ldr w0, [x21,4]
mov w1, 1
mov w2, w1
@@ -8843,33 +8915,33 @@ FtlLoadBbt:
str w0, [x21,4]
mov x0, x21
bl FlashReadPages
-.L1428:
+.L1438:
ldr w0, [x21]
cmn w0, #1
- beq .L1429
+ beq .L1439
ldrh w0, [x22]
cmp w0, w24
- bne .L1429
+ bne .L1439
ldr w1, [x22,4]
str w1, [x23,1304]
strh w20, [x23,1296]
ldrh w1, [x22,8]
strh w1, [x23,1300]
- b .L1430
-.L1429:
+ b .L1440
+.L1439:
sub w20, w20, #1
uxth w20, w20
- b .L1427
-.L1430:
+ b .L1437
+.L1440:
add x21, x19, :lo12:.LANCHOR2
mov w2, 65535
mov w0, -1
ldrh w1, [x21,1296]
cmp w1, w2
- beq .L1432
+ beq .L1442
ldrh w1, [x21,1300]
cmp w1, w2
- beq .L1434
+ beq .L1444
add x0, x21, 1408
lsl w1, w1, 10
str w1, [x0,4]
@@ -8878,21 +8950,21 @@ FtlLoadBbt:
bl FlashReadPages
ldr w0, [x21,1408]
cmn w0, #1
- beq .L1434
+ beq .L1444
ldrh w1, [x22]
mov w0, 61649
cmp w1, w0
- bne .L1434
+ bne .L1444
ldr w0, [x22,4]
ldr w1, [x21,1304]
cmp w0, w1
- bls .L1434
+ bls .L1444
str w0, [x21,1304]
ldrh w1, [x21,1300]
ldrh w0, [x22,8]
strh w1, [x21,1296]
strh w0, [x21,1300]
-.L1434:
+.L1444:
add x20, x19, :lo12:.LANCHOR2
mov w1, 1
add x23, x20, 1408
@@ -8902,8 +8974,8 @@ FtlLoadBbt:
sxth w21, w0
add w0, w0, 1
strh w0, [x20,1298]
-.L1436:
- tbnz w21, #31, .L1441
+.L1446:
+ tbnz w21, #31, .L1451
ldrh w0, [x20,1296]
mov w1, 1
mov w2, w1
@@ -8915,44 +8987,44 @@ FtlLoadBbt:
bl FlashReadPages
ldr w0, [x23]
cmn w0, #1
- beq .L1437
+ beq .L1447
ldrh w0, [x22]
cmp w0, w24
- bne .L1437
-.L1441:
+ bne .L1447
+.L1451:
add x1, x19, :lo12:.LANCHOR2
ldrh w0, [x22,10]
mov w2, 65535
strh w0, [x1,1302]
ldrh w0, [x22,12]
cmp w0, w2
- bne .L1438
- b .L1439
-.L1437:
+ bne .L1448
+ b .L1449
+.L1447:
sub w21, w21, #1
sxth w21, w21
- b .L1436
-.L1438:
+ b .L1446
+.L1448:
ldr w2, [x1,744]
cmp w0, w2
- beq .L1439
+ beq .L1449
ldrh w1, [x1,758]
lsr w1, w1, 2
cmp w0, w1
- bcs .L1439
+ bcs .L1449
cmp w2, w1
- bcs .L1439
+ bcs .L1449
bl FtlSysBlkNumInit
-.L1439:
+.L1449:
add x19, x19, :lo12:.LANCHOR2
mov x20, 0
add x21, x19, 1296
-.L1442:
+.L1452:
ldrh w0, [x19,770]
mov w1, w20
add x20, x20, 1
cmp w1, w0
- bcs .L1460
+ bcs .L1470
ldrh w2, [x19,1288]
add x0, x21, x20, lsl 3
ldr x3, [x19,1416]
@@ -8961,10 +9033,10 @@ FtlLoadBbt:
lsl w2, w2, 2
add x1, x3, x1, lsl 2
bl ftl_memcpy
- b .L1442
-.L1460:
+ b .L1452
+.L1470:
mov w0, 0
-.L1432:
+.L1442:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -9016,39 +9088,43 @@ FtlFreeSysBlkQueueFull:
.type FtlFreeSysBlkQueueIn, %function
FtlFreeSysBlkQueueIn:
stp x29, x30, [sp, -48]!
- adrp x2, .LANCHOR2
uxth w1, w1
add x29, sp, 0
+ stp x21, x22, [sp,32]
stp x19, x20, [sp,16]
+ uxth w21, w0
+ mov w0, 65533
+ sub w2, w21, #1
+ cmp w0, w2, uxth
+ bcc .L1474
+ adrp x2, .LANCHOR2
add x20, x2, :lo12:.LANCHOR2
mov x19, x2
- stp x21, x22, [sp,32]
- uxth w22, w0
ldrh w0, [x20,1470]
cmp w0, 1024
- beq .L1464
- cbz w1, .L1466
+ beq .L1474
+ cbz w1, .L1476
ldr w0, [x20,1400]
- cbnz w0, .L1466
- mov w0, w22
+ cbnz w0, .L1476
+ mov w0, w21
bl P2V_block_in_plane
- uxth w21, w0
+ uxth w22, w0
ldr x0, [x20,1016]
- lsl w1, w22, 10
+ lsl w1, w21, 10
str w1, [x0,4]
mov w1, 1
mov w2, w1
ldr x0, [x20,1016]
bl FlashEraseBlocks
- ubfiz x1, x21, 1, 16
+ ubfiz x0, x22, 1, 16
ldr x2, [x20,1168]
- ldrh w0, [x2,x1]
- add w0, w0, 1
- strh w0, [x2,x1]
+ ldrh w1, [x2,x0]
+ add w1, w1, 1
+ strh w1, [x2,x0]
ldr w0, [x20,912]
add w0, w0, 1
str w0, [x20,912]
-.L1466:
+.L1476:
add x1, x19, :lo12:.LANCHOR2
add x1, x1, 1464
ldrh w0, [x1,6]
@@ -9058,9 +9134,9 @@ FtlFreeSysBlkQueueIn:
add x0, x1, x2, sxtw 1
add w2, w2, 1
and w2, w2, 1023
- strh w22, [x0,8]
+ strh w21, [x0,8]
strh w2, [x1,4]
-.L1464:
+.L1474:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
@@ -9085,7 +9161,7 @@ FtlLowFormatEraseBlock:
ldr w2, [x3,1400]
str w0, [x29,120]
mov w0, 0
- cbnz w2, .L1474
+ cbnz w2, .L1484
adrp x28, .LANCHOR0
str w25, [x3,944]
add x0, x28, :lo12:.LANCHOR0
@@ -9096,10 +9172,10 @@ FtlLowFormatEraseBlock:
mov w23, 56
ldrb w0, [x0,136]
str w0, [x29,124]
-.L1475:
+.L1485:
ldrh w0, [x26,748]
cmp w0, w27
- bls .L1519
+ bls .L1529
umull x0, w27, w23
ldr x1, [x26,1016]
str wzr, [x1,x0]
@@ -9109,15 +9185,15 @@ FtlLowFormatEraseBlock:
bl V2P_block
uxth w22, w0
mov w1, w22
- cbz w24, .L1476
+ cbz w24, .L1486
str x1, [x29,112]
bl IsBlkInVendorPart
ldr x1, [x29,112]
- cbnz w0, .L1477
-.L1476:
+ cbnz w0, .L1487
+.L1486:
mov w0, w1
bl FtlBbmIsBadBlock
- cbnz w0, .L1478
+ cbnz w0, .L1488
umull x0, w20, w23
ldr x1, [x26,1016]
lsl w22, w22, 10
@@ -9135,16 +9211,16 @@ FtlLowFormatEraseBlock:
uxth w20, w20
add x0, x4, x0, sxtw 2
str x0, [x1,16]
- b .L1477
-.L1478:
+ b .L1487
+.L1488:
add w19, w19, 1
uxth w19, w19
-.L1477:
+.L1487:
add w2, w27, 1
uxth w27, w2
- b .L1475
-.L1519:
- cbz w20, .L1498
+ b .L1485
+.L1529:
+ cbz w20, .L1508
ldr w0, [x29,124]
mov w2, w20
strb wzr, [x26,648]
@@ -9157,55 +9233,55 @@ FtlLowFormatEraseBlock:
ldrb w0, [x29,120]
strb w0, [x26,648]
mov x26, 56
-.L1481:
+.L1491:
cmp w20, w23, uxth
- bls .L1520
+ bls .L1530
add x1, x21, :lo12:.LANCHOR2
mul x0, x23, x26
ldr x1, [x1,1016]
add x2, x1, x0
ldr w0, [x1,x0]
cmn w0, #1
- bne .L1482
+ bne .L1492
ldr w0, [x2,4]
add w19, w19, 1
lsr w0, w0, 10
uxth w19, w19
bl FtlBbmMapBadBlock
-.L1482:
+.L1492:
add x23, x23, 1
- b .L1481
-.L1520:
- cbnz w24, .L1484
+ b .L1491
+.L1530:
+ cbnz w24, .L1494
mov w0, 1
uxth w22, w22
mov w27, 6
str w0, [x29,124]
- b .L1485
-.L1484:
+ b .L1495
+.L1494:
add x0, x21, :lo12:.LANCHOR2
add x28, x28, :lo12:.LANCHOR0
ldrh w0, [x0,820]
str w0, [x29,124]
ldrb w0, [x28,136]
- cbnz w0, .L1501
+ cbnz w0, .L1511
ldr w0, [x29,124]
mov w22, 1
lsr w27, w0, 2
- b .L1485
-.L1501:
+ b .L1495
+.L1511:
mov w22, 1
mov w27, w22
-.L1485:
+.L1495:
mov w23, 0
add x28, x21, :lo12:.LANCHOR2
-.L1494:
+.L1504:
mov w26, 0
mov w20, w26
-.L1486:
+.L1496:
ldrh w0, [x28,748]
cmp w0, w26
- bls .L1521
+ bls .L1531
mov w0, 56
ldr x1, [x28,1016]
umull x0, w26, w0
@@ -9217,15 +9293,15 @@ FtlLowFormatEraseBlock:
uxth w2, w0
str w2, [x29,112]
mov w1, w2
- cbz w24, .L1487
+ cbz w24, .L1497
str x1, [x29,104]
bl IsBlkInVendorPart
ldr x1, [x29,104]
- cbnz w0, .L1488
-.L1487:
+ cbnz w0, .L1498
+.L1497:
mov w0, w1
bl FtlBbmIsBadBlock
- cbnz w0, .L1488
+ cbnz w0, .L1498
mov w0, 56
ldr x1, [x28,1016]
ldr w2, [x29,112]
@@ -9246,12 +9322,12 @@ FtlLowFormatEraseBlock:
ldr x2, [x28,1096]
add x0, x2, x0, sxtw 2
str x0, [x1,16]
-.L1488:
+.L1498:
add w3, w26, 1
uxth w26, w3
- b .L1486
-.L1521:
- cbz w20, .L1498
+ b .L1496
+.L1531:
+ cbz w20, .L1508
ldr x0, [x28,1016]
mov w1, w20
mov w2, w22
@@ -9261,15 +9337,15 @@ FtlLowFormatEraseBlock:
ldrb w0, [x29,120]
mov x1, 0
strb w0, [x28,648]
-.L1491:
+.L1501:
cmp w20, w1, uxth
- bls .L1522
+ bls .L1532
mov x0, 56
ldr x2, [x28,1016]
mul x0, x1, x0
add x3, x2, x0
ldr w0, [x2,x0]
- cbz w0, .L1492
+ cbz w0, .L1502
ldr w0, [x3,4]
add w19, w19, 1
str x1, [x29,112]
@@ -9277,47 +9353,47 @@ FtlLowFormatEraseBlock:
uxth w19, w19
bl FtlBbmMapBadBlock
ldr x1, [x29,112]
-.L1492:
+.L1502:
add x1, x1, 1
- b .L1491
-.L1522:
+ b .L1501
+.L1532:
add w23, w23, w27
ldr w0, [x29,124]
uxth w23, w23
cmp w23, w0
- bcc .L1494
+ bcc .L1504
mov x23, 0
mov x26, 56
-.L1495:
+.L1505:
cmp w20, w23, uxth
- bls .L1523
- cbz w24, .L1496
+ bls .L1533
+ cbz w24, .L1506
add x1, x21, :lo12:.LANCHOR2
mul x0, x23, x26
ldr x1, [x1,1016]
add x2, x1, x0
ldr w0, [x1,x0]
- cbnz w0, .L1496
+ cbnz w0, .L1506
ldr w0, [x2,4]
mov w1, 1
lsr w0, w0, 10
bl FtlFreeSysBlkQueueIn
-.L1496:
+.L1506:
add x23, x23, 1
- b .L1495
-.L1523:
+ b .L1505
+.L1533:
cmp w25, 63
- bls .L1502
- cbz w24, .L1498
-.L1502:
+ bls .L1512
+ cbz w24, .L1508
+.L1512:
add x21, x21, :lo12:.LANCHOR2
mov w1, w22
mov w2, w20
ldr x0, [x21,1016]
bl FlashEraseBlocks
-.L1498:
+.L1508:
mov w0, w19
-.L1474:
+.L1484:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -9330,21 +9406,23 @@ FtlLowFormatEraseBlock:
.global FtlFreeSysBLkSort
.type FtlFreeSysBLkSort, %function
FtlFreeSysBLkSort:
- adrp x0, .LANCHOR2
+ adrp x1, .LANCHOR2
+ add x0, x1, :lo12:.LANCHOR2
+ add x0, x0, 1464
+ ldrh w6, [x0,2084]
+ ldrh w2, [x0,6]
+ cbz w2, .L1534
mov w5, 0
- add x1, x0, :lo12:.LANCHOR2
+ ldrh w3, [x0,2]
+ ldrh w2, [x0,4]
mov w4, w5
- add x1, x1, 1464
- ldrh w6, [x1,2084]
and w6, w6, 31
- ldrh w3, [x1,2]
- ldrh w2, [x1,4]
-.L1525:
+.L1536:
cmp w4, w6
- bge .L1532
- add x5, x1, x3, sxtw 1
+ bge .L1544
+ add x5, x0, x3, sxtw 1
ldrh w7, [x5,8]
- add x5, x1, x2, sxtw 1
+ add x5, x0, x2, sxtw 1
add w4, w4, 1
strh w7, [x5,8]
mov w5, 1
@@ -9353,13 +9431,13 @@ FtlFreeSysBLkSort:
uxth w4, w4
and w3, w3, 1023
and w2, w2, 1023
- b .L1525
-.L1532:
- cbz w5, .L1524
- add x0, x0, :lo12:.LANCHOR2
+ b .L1536
+.L1544:
+ cbz w5, .L1534
+ add x0, x1, :lo12:.LANCHOR2
strh w3, [x0,1466]
strh w2, [x0,1468]
-.L1524:
+.L1534:
ret
.size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
.align 2
@@ -9375,18 +9453,18 @@ remove_from_free_sys_Queue:
add x20, x20, :lo12:.LANCHOR2
add x20, x20, 1464
ldrh w3, [x20,6]
- cbz w3, .L1534
+ cbz w3, .L1546
ldrh w4, [x20,2]
mov w19, w0
-.L1535:
+.L1547:
cmp w19, w3
- bcs .L1540
+ bcs .L1552
add w2, w19, w4
ubfiz x2, x2, 1, 10
add x2, x20, x2
ldrh w0, [x2,8]
cmp w0, w1
- bne .L1536
+ bne .L1548
adrp x0, .LC34
add x0, x0, :lo12:.LC34
bl printk
@@ -9404,13 +9482,13 @@ remove_from_free_sys_Queue:
strh w1, [x19,8]
strh w0, [x20,6]
mov w0, 1
- b .L1534
-.L1536:
+ b .L1546
+.L1548:
add w19, w19, 1
- b .L1535
-.L1540:
+ b .L1547
+.L1552:
mov w0, 0
-.L1534:
+.L1546:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -9431,10 +9509,10 @@ FtlFreeSysBlkQueueOut:
add x21, x19, 1464
adrp x24, .LANCHOR0
add x23, x23, :lo12:.LC36
-.L1542:
+.L1554:
ldrh w1, [x21,6]
adrp x22, .LANCHOR2
- cbz w1, .L1543
+ cbz w1, .L1555
ldrh w2, [x21,2]
sub w1, w1, #1
add x0, x21, x2, sxtw 1
@@ -9444,7 +9522,7 @@ FtlFreeSysBlkQueueOut:
and w2, w2, 1023
strh w2, [x21,2]
ldrh w20, [x0,8]
- cbnz w1, .L1544
+ cbnz w1, .L1556
mov w0, w20
str x1, [x29,88]
bl P2V_block_in_plane
@@ -9455,11 +9533,11 @@ FtlFreeSysBlkQueueOut:
str w2, [x0,4]
add x0, x24, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbz w0, .L1545
+ cbz w0, .L1557
ldr x0, [x19,1016]
mov w2, 1
bl FlashEraseBlocks
-.L1545:
+.L1557:
add x25, x22, :lo12:.LANCHOR2
mov w1, 1
mov w2, w1
@@ -9473,22 +9551,25 @@ FtlFreeSysBlkQueueOut:
ldr w0, [x25,912]
add w0, w0, 1
str w0, [x25,912]
- b .L1544
-.L1543:
+ b .L1556
+.L1555:
adrp x0, .LC35
add x0, x0, :lo12:.LC35
bl printk
-.L1546:
- b .L1546
-.L1544:
- cbnz w20, .L1547
+.L1558:
+ b .L1558
+.L1556:
+ sub w0, w20, #1
+ mov w1, 65533
+ cmp w1, w0, uxth
+ bcs .L1559
add x22, x22, :lo12:.LANCHOR2
mov x0, x23
mov w1, w20
ldrh w2, [x22,1470]
bl printk
- b .L1542
-.L1547:
+ b .L1554
+.L1559:
mov w0, w20
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -9507,7 +9588,7 @@ insert_data_list:
mov x4, x2
ldrh w1, [x3,756]
cmp w1, w0
- bls .L1553
+ bls .L1565
mov w7, 6
ldr x11, [x3,1280]
mov w1, -1
@@ -9516,10 +9597,10 @@ insert_data_list:
strh w1, [x5,2]
strh w1, [x11,x10]
ldr x1, [x3,3568]
- cbnz x1, .L1554
+ cbnz x1, .L1566
str x5, [x3,3568]
- b .L1553
-.L1554:
+ b .L1565
+.L1566:
ubfiz x8, x0, 1, 16
ldr x13, [x3,1184]
ldrh w2, [x5,4]
@@ -9539,13 +9620,13 @@ insert_data_list:
add x9, x14, x8
mov w8, w7
uxth w2, w2
-.L1562:
+.L1574:
add w3, w3, 1
cmp w0, w2
uxth w3, w3
- beq .L1553
+ beq .L1565
cmp w3, w17
- bhi .L1553
+ bhi .L1565
ubfiz x15, x2, 1, 16
ldrh w16, [x1,4]
cmp w16, wzr
@@ -9553,47 +9634,47 @@ insert_data_list:
mul w7, w7, w16
csinv w7, w7, wzr, ne
cmp w7, w6
- bne .L1558
+ bne .L1570
ldrh w15, [x14,x15]
ldrh w7, [x9]
cmp w15, w7
- bcc .L1560
- b .L1559
-.L1558:
- bhi .L1559
-.L1560:
+ bcc .L1572
+ b .L1571
+.L1570:
+ bhi .L1571
+.L1572:
ldrh w7, [x1]
cmp w7, w18
- bne .L1561
+ bne .L1573
strh w2, [x5,2]
add x2, x4, :lo12:.LANCHOR2
strh w0, [x1]
str x5, [x2,3576]
- b .L1553
-.L1561:
+ b .L1565
+.L1573:
umull x1, w7, w8
mov w2, w7
add x1, x12, x1
- b .L1562
-.L1559:
+ b .L1574
+.L1571:
strh w2, [x11,x10]
ldrh w2, [x1,2]
strh w2, [x5,2]
add x2, x4, :lo12:.LANCHOR2
ldr x3, [x2,3568]
cmp x1, x3
- bne .L1563
+ bne .L1575
strh w0, [x1,2]
str x5, [x2,3568]
- b .L1553
-.L1563:
+ b .L1565
+.L1575:
ldrh w3, [x1,2]
mov w4, 6
ldr x2, [x2,1280]
umull x3, w3, w4
strh w0, [x2,x3]
strh w0, [x1,2]
-.L1553:
+.L1565:
mov w0, 0
ret
.size insert_data_list, .-insert_data_list
@@ -9619,7 +9700,7 @@ insert_free_list:
uxth w0, w0
mov w7, 65535
cmp w0, w7
- beq .L1568
+ beq .L1580
adrp x2, .LANCHOR2
mov w6, 6
add x5, x2, :lo12:.LANCHOR2
@@ -9631,10 +9712,10 @@ insert_free_list:
strh w1, [x4,2]
strh w1, [x9,x8]
ldr x1, [x5,3592]
- cbnz x1, .L1569
+ cbnz x1, .L1581
str x4, [x5,3592]
- b .L1568
-.L1569:
+ b .L1580
+.L1581:
ldr x11, [x5,1168]
ubfiz x2, x0, 1, 16
ldr x10, [x5,1280]
@@ -9644,41 +9725,41 @@ insert_free_list:
asr x2, x2, 1
madd x2, x5, x2, x2
uxth w2, w2
-.L1572:
+.L1584:
ubfiz x5, x2, 1, 16
ldrh w5, [x11,x5]
cmp w5, w12
- bcs .L1570
+ bcs .L1582
ldrh w5, [x1]
cmp w5, w7
- bne .L1571
+ bne .L1583
strh w2, [x4,2]
strh w0, [x1]
- b .L1568
-.L1571:
+ b .L1580
+.L1583:
umull x1, w5, w6
mov w2, w5
add x1, x10, x1
- b .L1572
-.L1570:
+ b .L1584
+.L1582:
ldrh w5, [x1,2]
strh w5, [x4,2]
strh w2, [x9,x8]
add x2, x3, :lo12:.LANCHOR2
ldr x3, [x2,3592]
cmp x1, x3
- bne .L1573
+ bne .L1585
strh w0, [x1,2]
str x4, [x2,3592]
- b .L1568
-.L1573:
+ b .L1580
+.L1585:
ldrh w3, [x1,2]
mov w4, 6
ldr x2, [x2,1280]
umull x3, w3, w4
strh w0, [x2,x3]
strh w0, [x1,2]
-.L1568:
+.L1580:
mov w0, 0
ret
.size insert_free_list, .-insert_free_list
@@ -9711,31 +9792,31 @@ List_remove_node:
ldr x2, [x6,1280]
add x4, x2, x1
cmp x4, x3
- bne .L1576
+ bne .L1588
ldrh w3, [x2,x1]
cmp w3, w7
- bne .L1577
+ bne .L1589
str xzr, [x0]
- b .L1578
-.L1577:
+ b .L1590
+.L1589:
umull x3, w3, w5
add x3, x2, x3
str x3, [x0]
mov w0, -1
strh w0, [x3,2]
- b .L1578
-.L1576:
+ b .L1590
+.L1588:
ldrh w0, [x2,x1]
ldrh w3, [x4,2]
cmp w0, w7
- bne .L1579
+ bne .L1591
cmp w3, w0
- beq .L1578
+ beq .L1590
umull x3, w3, w5
mov w0, -1
strh w0, [x2,x3]
- b .L1578
-.L1579:
+ b .L1590
+.L1591:
umull x0, w0, w5
add x0, x2, x0
strh w3, [x0,2]
@@ -9744,7 +9825,7 @@ List_remove_node:
ldrh w7, [x2,x1]
umull x3, w3, w5
strh w7, [x0,x3]
-.L1578:
+.L1590:
mov w0, -1
strh w0, [x2,x1]
strh w0, [x4,2]
@@ -9761,14 +9842,14 @@ List_pop_index_node:
str x19, [sp,16]
mov w19, 65535
ldr x2, [x0]
- cbz x2, .L1581
+ cbz x2, .L1593
adrp x3, .LANCHOR2+1280
mov w5, w19
mov w6, 6
ldr x4, [x3,#:lo12:.LANCHOR2+1280]
-.L1582:
- cbnz w1, .L1583
-.L1585:
+.L1594:
+ cbnz w1, .L1595
+.L1597:
sub x2, x2, x4
mov x1, -6148914691236517206
asr x2, x2, 1
@@ -9776,17 +9857,17 @@ List_pop_index_node:
uxth w19, w2
mov w1, w19
bl List_remove_node
- b .L1581
-.L1583:
+ b .L1593
+.L1595:
ldrh w3, [x2]
cmp w3, w5
- beq .L1585
+ beq .L1597
umull x3, w3, w6
sub w1, w1, #1
add x2, x4, x3
uxth w1, w1
- b .L1582
-.L1581:
+ b .L1594
+.L1593:
mov w0, w19
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -9801,26 +9882,26 @@ List_get_gc_head_node:
add x2, x2, :lo12:.LANCHOR2
mov w0, 65535
ldr x1, [x2,3568]
- cbz x1, .L1593
+ cbz x1, .L1605
ldr x4, [x2,1280]
mov w5, 6
-.L1589:
- cbz w3, .L1590
+.L1601:
+ cbz w3, .L1602
ldrh w2, [x1]
cmp w2, w0
- beq .L1593
+ beq .L1605
umull x2, w2, w5
sub w3, w3, #1
add x1, x4, x2
uxth w3, w3
- b .L1589
-.L1590:
+ b .L1601
+.L1602:
sub x1, x1, x4
mov x0, -6148914691236517206
asr x1, x1, 1
madd x1, x0, x1, x1
uxth w0, w1
-.L1593:
+.L1605:
ret
.size List_get_gc_head_node, .-List_get_gc_head_node
.align 2
@@ -9835,20 +9916,20 @@ List_update_data_list:
add x0, x19, :lo12:.LANCHOR2
ldrh w1, [x0,3608]
cmp w1, w20
- beq .L1595
+ beq .L1607
ldrh w1, [x0,3656]
cmp w1, w20
- beq .L1595
+ beq .L1607
ldrh w1, [x0,3704]
cmp w1, w20
- beq .L1595
+ beq .L1607
mov w3, 6
ldr x4, [x0,1280]
ldr x2, [x0,3568]
umull x3, w20, w3
add x1, x4, x3
cmp x1, x2
- beq .L1595
+ beq .L1607
ldr x5, [x0,1184]
ubfiz x0, x20, 1, 16
ldrh w2, [x5,x0]
@@ -9859,11 +9940,11 @@ List_update_data_list:
mov w0, 65535
csinv w2, w2, wzr, ne
cmp w1, w0
- bne .L1597
+ bne .L1609
ldrh w0, [x4,x3]
cmp w0, w1
- beq .L1595
-.L1597:
+ beq .L1607
+.L1609:
mov w0, 6
mov x3, -6148914691236517206
umull x1, w1, w0
@@ -9876,7 +9957,7 @@ List_update_data_list:
mul w0, w0, w1
csinv w0, w0, wzr, ne
cmp w2, w0
- bcs .L1595
+ bcs .L1607
add x19, x19, :lo12:.LANCHOR2
mov w1, w20
add x0, x19, 3568
@@ -9886,7 +9967,7 @@ List_update_data_list:
strh w0, [x19,3584]
mov w0, w20
bl INSERT_DATA_LIST
-.L1595:
+.L1607:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
@@ -9913,74 +9994,74 @@ ftl_free_no_use_map_blk:
mov x0, x21
bl ftl_memset
mov w0, 0
-.L1602:
+.L1614:
ldrh w1, [x19,6]
cmp w1, w0
- bls .L1615
+ bls .L1627
ubfiz x1, x0, 2, 16
ldr w2, [x20,x1]
mov w1, 0
ubfx x2, x2, 10, 16
-.L1603:
+.L1615:
ldrh w3, [x19,10]
cmp w3, w1
- bls .L1616
+ bls .L1628
ubfiz x3, x1, 1, 16
ldrh w4, [x25,x3]
cmp w4, w2
- bne .L1604
+ bne .L1616
ldrh w4, [x21,x3]
add w4, w4, 1
strh w4, [x21,x3]
-.L1604:
+.L1616:
add w1, w1, 1
uxth w1, w1
- b .L1603
-.L1616:
+ b .L1615
+.L1628:
add w0, w0, 1
uxth w0, w0
- b .L1602
-.L1615:
+ b .L1614
+.L1627:
mov w24, 0
ldrh w26, [x21]
mov w20, w24
adrp x27, .LANCHOR2
-.L1607:
+.L1619:
ldrh w0, [x19,10]
cmp w0, w20
- bls .L1617
+ bls .L1629
ldrh w0, [x19]
uxtw x22, w20
cmp w0, w20
- bne .L1608
+ bne .L1620
add x0, x27, :lo12:.LANCHOR2
ldrh w1, [x19,2]
ldrh w0, [x0,820]
cmp w1, w0
- bcs .L1608
+ bcs .L1620
strh w0, [x21,x22,lsl 1]
-.L1608:
+.L1620:
lsl x22, x22, 1
ldrh w23, [x21,x22]
cmp w26, w23
- bls .L1609
+ bls .L1621
mov w24, w20
mov w26, w23
-.L1609:
- cbnz w23, .L1610
+.L1621:
+ cbnz w23, .L1622
ldrh w0, [x25,x22]
- cbz w0, .L1610
+ cbz w0, .L1622
mov w1, 1
bl FtlFreeSysBlkQueueIn
strh w23, [x25,x22]
ldrh w0, [x19,8]
sub w0, w0, #1
strh w0, [x19,8]
-.L1610:
+.L1622:
add w20, w20, 1
uxth w20, w20
- b .L1607
-.L1617:
+ b .L1619
+.L1629:
mov w0, w24
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -10001,12 +10082,12 @@ ftl_map_blk_alloc_new_blk:
mov w20, 0
ldrh w2, [x0,10]
ldr x1, [x0,16]
-.L1619:
+.L1631:
cmp w20, w2
- beq .L1623
+ beq .L1635
mov x22, x1
ldrh w21, [x1],2
- cbnz w21, .L1620
+ cbnz w21, .L1632
mov x19, x0
bl FtlFreeSysBlkQueueOut
strh w0, [x22]
@@ -10014,15 +10095,15 @@ ftl_map_blk_alloc_new_blk:
sub w2, w1, #1
mov w0, 65533
cmp w0, w2, uxth
- bcs .L1621
+ bcs .L1633
adrp x2, .LANCHOR2+1470
adrp x0, .LC37
add x0, x0, :lo12:.LC37
ldrh w2, [x2,#:lo12:.LANCHOR2+1470]
bl printk
-.L1622:
- b .L1622
-.L1621:
+.L1634:
+ b .L1634
+.L1633:
ldr w0, [x19,48]
strh w21, [x19,2]
add w0, w0, 1
@@ -10031,12 +10112,12 @@ ftl_map_blk_alloc_new_blk:
strh w20, [x19]
add w0, w0, 1
strh w0, [x19,8]
- b .L1623
-.L1620:
+ b .L1635
+.L1632:
add w20, w20, 1
uxth w20, w20
- b .L1619
-.L1623:
+ b .L1631
+.L1635:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -10047,127 +10128,130 @@ ftl_map_blk_alloc_new_blk:
.global FtlMapWritePage
.type FtlMapWritePage, %function
FtlMapWritePage:
- stp x29, x30, [sp, -96]!
+ stp x29, x30, [sp, -112]!
add x29, sp, 0
- stp x19, x20, [sp,16]
- adrp x20, .LANCHOR2
- mov x19, x0
- stp x21, x22, [sp,32]
- add x22, x20, :lo12:.LANCHOR2
- stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
- ldr w21, [x22,1400]
- mov w24, w1
+ adrp x25, .LANCHOR2
+ mov x26, x2
+ stp x23, x24, [sp,48]
stp x27, x28, [sp,80]
- mov x25, x2
- cbnz w21, .L1626
adrp x23, .LC38
- mov w26, 65535
- add x28, x22, 1408
- add x23, x23, :lo12:.LC38
-.L1627:
- ldr w1, [x22,896]
+ add x28, x25, :lo12:.LANCHOR2
+ stp x21, x22, [sp,32]
+ stp x19, x20, [sp,16]
+ mov w24, w1
+ mov x19, x0
+ mov w22, 0
+ add x0, x23, :lo12:.LC38
+ mov w27, 65535
+ add x21, x28, 1408
+ str x0, [x29,104]
+.L1638:
+ add x0, x25, :lo12:.LANCHOR2
+ adrp x20, .LANCHOR2
+ ldr w1, [x0,896]
add w1, w1, 1
- str w1, [x22,896]
- ldrh w1, [x22,820]
- ldrh w0, [x19,2]
- sub w1, w1, #1
- cmp w0, w1
- bge .L1628
+ str w1, [x0,896]
+ ldrh w0, [x0,820]
+ ldrh w1, [x19,2]
+ sub w0, w0, #1
+ cmp w1, w0
+ bge .L1639
ldrh w0, [x19]
- cmp w0, w26
- bne .L1629
-.L1628:
+ cmp w0, w27
+ bne .L1640
+.L1639:
mov x0, x19
bl Ftl_write_map_blk_to_last_page
-.L1629:
- ldrh w1, [x19]
- mov w2, 16
+.L1640:
+ ldr w1, [x28,1400]
+ cbnz w1, .L1641
+ ldrh w2, [x19]
ldr x0, [x19,16]
- ldrh w27, [x0,x1,lsl 1]
- ldrh w1, [x19,2]
- ldr x0, [x22,1112]
- orr w1, w1, w27, lsl 10
- str w1, [x28,4]
- mov w1, 0
- str x25, [x28,8]
- str x0, [x28,16]
+ ldrh w23, [x0,x2,lsl 1]
+ mov w2, 16
+ ldrh w0, [x19,2]
+ str x26, [x21,8]
+ orr w0, w0, w23, lsl 10
+ str w0, [x21,4]
+ ldr x0, [x28,1112]
+ str x0, [x21,16]
bl ftl_memset
- ldr x1, [x28,16]
- ldr w0, [x19,48]
- str w0, [x1,4]
- strh w24, [x1,8]
- ldrh w0, [x19,4]
- strh w0, [x1]
- mov x0, x28
- strh w27, [x1,2]
+ ldr x0, [x21,16]
+ ldr w1, [x19,48]
+ str w1, [x0,4]
+ strh w24, [x0,8]
+ ldrh w1, [x19,4]
+ strh w1, [x0]
mov w1, 1
+ strh w23, [x0,2]
mov w3, w1
+ mov x0, x21
mov w2, w1
bl FlashProgPages
ldrh w3, [x19,2]
add w3, w3, 1
uxth w3, w3
strh w3, [x19,2]
- ldr w1, [x28]
- cmn w1, #1
- bne .L1630
- ldr w1, [x28,4]
- mov x0, x23
- add w21, w21, 1
+ ldr w0, [x21]
+ cmn w0, #1
+ bne .L1642
+ ldr x0, [x29,104]
+ add w22, w22, 1
+ ldr w1, [x21,4]
+ uxth w22, w22
bl printk
- uxth w21, w21
ldrh w0, [x19,2]
cmp w0, 2
- bhi .L1631
- ldrh w1, [x22,820]
- sub w1, w1, #1
- strh w1, [x19,2]
-.L1631:
- cmp w21, 3
- bls .L1627
+ bhi .L1643
+ ldrh w0, [x28,820]
+ sub w0, w0, #1
+ strh w0, [x19,2]
+.L1643:
+ cmp w22, 3
+ bls .L1638
add x20, x20, :lo12:.LANCHOR2
adrp x0, .LC39
add x0, x0, :lo12:.LC39
- mov w2, w21
+ mov w2, w22
ldr w1, [x20,1412]
bl printk
mov w0, 1
str w0, [x20,1400]
- b .L1626
-.L1630:
- cbz w1, .L1633
- strh w27, [x19,60]
-.L1633:
+ b .L1641
+.L1642:
+ cbz w0, .L1645
+ strh w23, [x19,60]
+.L1645:
cmp w3, 1
- beq .L1627
- cmp w1, 256
- beq .L1627
+ beq .L1638
+ cmp w0, 256
+ beq .L1638
add x20, x20, :lo12:.LANCHOR2
ldr x0, [x19,40]
ldr w1, [x20,1412]
str w1, [x0,w24,uxtw 2]
-.L1626:
+.L1641:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 96
+ ldp x29, x30, [sp], 112
ret
.size FtlMapWritePage, .-FtlMapWritePage
.align 2
.global ftl_map_blk_gc
.type ftl_map_blk_gc, %function
ftl_map_blk_gc:
- stp x29, x30, [sp, -112]!
+ stp x29, x30, [sp, -96]!
add x29, sp, 0
stp x19, x20, [sp,16]
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
- stp x27, x28, [sp,80]
+ str x27, [sp,80]
mov x19, x0
adrp x20, .LANCHOR2
ldr x22, [x0,16]
@@ -10177,39 +10261,39 @@ ftl_map_blk_gc:
ldrh w2, [x19,8]
sub w1, w4, #4
cmp w2, w1
- bge .L1638
+ bge .L1650
ldrh w2, [x19,60]
mov w1, 65535
cmp w2, w1
- beq .L1640
+ beq .L1652
add x1, x20, :lo12:.LANCHOR2
ldrh w2, [x19,2]
ldrh w1, [x1,820]
cmp w2, w1
- bcc .L1640
-.L1638:
+ bcc .L1652
+.L1650:
ldrh w1, [x19,60]
uxth w21, w0
mov w0, 65535
cmp w1, w0
- beq .L1642
+ beq .L1654
add x0, x20, :lo12:.LANCHOR2
ldrh w3, [x19,2]
ldrh w0, [x0,820]
cmp w0, w3
- bhi .L1642
+ bhi .L1654
mov x2, 0
-.L1643:
+.L1655:
uxth w0, w2
cmp w0, w4
- bcs .L1644
+ bcs .L1656
add x2, x2, 1
add x5, x22, x2, lsl 1
ldrh w5, [x5,-2]
cmp w5, w1
- bne .L1643
+ bne .L1655
mov w21, w0
-.L1644:
+.L1656:
ubfiz x2, x0, 1, 16
adrp x0, .LC40
add x0, x0, :lo12:.LC40
@@ -10217,12 +10301,12 @@ ftl_map_blk_gc:
bl printk
mov w0, -1
strh w0, [x19,60]
-.L1642:
+.L1654:
ubfiz x21, x21, 1, 16
- ldrh w25, [x22,x21]
- cbz w25, .L1640
+ ldrh w24, [x22,x21]
+ cbz w24, .L1652
ldr w0, [x19,52]
- cbnz w0, .L1640
+ cbnz w0, .L1652
mov w1, 1
str w1, [x19,52]
strh w0, [x22,x21]
@@ -10233,76 +10317,79 @@ ftl_map_blk_gc:
add x0, x20, :lo12:.LANCHOR2
ldrh w0, [x0,820]
cmp w1, w0
- bcc .L1646
+ bcc .L1658
mov x0, x19
bl ftl_map_blk_alloc_new_blk
-.L1646:
- add x24, x20, :lo12:.LANCHOR2
- adrp x26, .LC41
+.L1658:
+ add x25, x20, :lo12:.LANCHOR2
mov w21, 0
- add x22, x24, 1408
- mov w27, 1
- add x26, x26, :lo12:.LC41
-.L1647:
+ add x22, x25, 1408
+.L1659:
ldrh w0, [x19,6]
cmp w0, w21
- bls .L1657
- ubfiz x28, x21, 2, 16
- ldr w0, [x23,x28]
- cmp w25, w0, lsr 10
- bne .L1648
- ldr x3, [x24,1112]
+ bls .L1670
+ ubfiz x0, x21, 2, 16
+ add x27, x23, x0
+ ldr w1, [x23,x0]
+ cmp w24, w1, lsr 10
+ bne .L1660
+ ldr x1, [x25,1056]
+ ldr x26, [x25,1112]
+ str x1, [x22,8]
mov w1, 1
- ldr x0, [x24,1056]
+ str x26, [x22,16]
mov w2, w1
- str x3, [x22,16]
- str x0, [x22,8]
- str x3, [x29,104]
- ldr w0, [x23,x28]
+ ldr w0, [x23,x0]
str w0, [x22,4]
mov x0, x22
bl FlashReadPages
ldr w0, [x22]
- ldr x3, [x29,104]
cmn w0, #1
- bne .L1649
- str wzr, [x23,x28]
- mov x0, x26
- ldr w1, [x22,4]
- ldrh w2, [x3,8]
+ bne .L1661
+.L1663:
+ add x20, x20, :lo12:.LANCHOR2
+ str wzr, [x27]
+ adrp x0, .LC41
+ ldrh w2, [x26,8]
+ add x0, x0, :lo12:.LC41
+ ldr w1, [x20,1412]
bl printk
- str w27, [x24,1400]
- b .L1648
-.L1649:
+ mov w0, 1
+ str w0, [x20,1400]
+ b .L1662
+.L1661:
+ ldrh w0, [x26,8]
+ cmp w0, w21
+ bne .L1663
ldr x2, [x22,8]
mov x0, x19
mov w1, w21
bl FtlMapWritePage
-.L1648:
+.L1660:
add w21, w21, 1
uxth w21, w21
- b .L1647
-.L1657:
- mov w0, w25
+ b .L1659
+.L1670:
+ mov w0, w24
mov w1, 1
bl FtlFreeSysBlkQueueIn
str wzr, [x19,52]
-.L1640:
+.L1652:
add x20, x20, :lo12:.LANCHOR2
ldrh w1, [x19,2]
ldrh w0, [x20,820]
cmp w1, w0
- bcc .L1651
+ bcc .L1662
mov x0, x19
bl ftl_map_blk_alloc_new_blk
-.L1651:
+.L1662:
mov w0, 0
+ ldr x27, [sp,80]
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
- ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 112
+ ldp x29, x30, [sp], 96
ret
.size ftl_map_blk_gc, .-ftl_map_blk_gc
.align 2
@@ -10319,12 +10406,12 @@ Ftl_write_map_blk_to_last_page:
ldr w20, [x1,1400]
ldr x22, [x0,16]
ldr x23, [x0,40]
- cbnz w20, .L1659
+ cbnz w20, .L1672
mov x19, x0
ldrh w0, [x0]
mov w2, 65535
cmp w0, w2
- bne .L1660
+ bne .L1673
ldrh w0, [x19,8]
add w0, w0, 1
strh w0, [x19,8]
@@ -10335,8 +10422,8 @@ Ftl_write_map_blk_to_last_page:
strh w20, [x19]
add w0, w0, 1
str w0, [x19,48]
- b .L1659
-.L1660:
+ b .L1672
+.L1673:
ubfiz x0, x0, 1, 16
ldr w2, [x19,48]
ldrh w22, [x22,x0]
@@ -10359,14 +10446,14 @@ Ftl_write_map_blk_to_last_page:
lsl w2, w2, 3
bl ftl_memset
mov w0, w20
-.L1661:
+.L1674:
ldrh w1, [x19,6]
cmp w1, w0
- bls .L1664
+ bls .L1677
ubfiz x3, x0, 2, 32
ldr w1, [x23,x3]
cmp w22, w1, lsr 10
- bne .L1662
+ bne .L1675
add x2, x21, :lo12:.LANCHOR2
add w20, w20, 1
uxth w20, w20
@@ -10377,11 +10464,11 @@ Ftl_write_map_blk_to_last_page:
ldr w3, [x23,x3]
add x1, x2, x1
str w3, [x1,4]
-.L1662:
+.L1675:
add w0, w0, 1
uxth w0, w0
- b .L1661
-.L1664:
+ b .L1674
+.L1677:
mov w1, 1
add x0, x21, :lo12:.LANCHOR2
add x0, x0, 1408
@@ -10393,7 +10480,7 @@ Ftl_write_map_blk_to_last_page:
strh w0, [x19,2]
mov x0, x19
bl ftl_map_blk_gc
-.L1659:
+.L1672:
mov w0, 0
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -10438,209 +10525,241 @@ select_l2p_ram_region:
mov w5, 65535
ldrh w2, [x1,858]
ldr x1, [x1,1264]
-.L1667:
+.L1680:
uxth w0, w4
cmp w0, w2
- bcs .L1683
+ bcs .L1696
add x4, x4, 1
add x6, x1, x4, lsl 4
ldrh w6, [x6,-16]
cmp w6, w5
- bne .L1667
- b .L1668
-.L1683:
+ bne .L1680
+ b .L1681
+.L1696:
mov w0, w2
mov x4, 0
mov w7, -2147483648
-.L1670:
+.L1683:
uxth w6, w4
cmp w6, w2
- bcs .L1684
+ bcs .L1697
add x5, x1, x4, lsl 4
ldr w5, [x5,4]
- tbnz w5, #31, .L1679
+ tbnz w5, #31, .L1692
cmp w5, w7
- bcc .L1671
-.L1679:
+ bcc .L1684
+.L1692:
mov w5, w7
mov w6, w0
-.L1671:
+.L1684:
add x4, x4, 1
mov w7, w5
mov w0, w6
- b .L1670
-.L1684:
+ b .L1683
+.L1697:
cmp w0, w2
- bcc .L1668
+ bcc .L1681
add x0, x3, :lo12:.LANCHOR2
add x1, x1, 4
mov w4, -1
mov w3, 0
ldrh w5, [x0,3816]
mov w0, w2
-.L1674:
+.L1687:
cmp w3, w2
- beq .L1668
+ beq .L1681
ldr w7, [x1]
cmp w7, w4
- bcs .L1675
+ bcs .L1688
ldrh w6, [x1,-4]
cmp w6, w5
csel w4, w4, w7, eq
cmp w6, w5
csel w0, w0, w3, eq
-.L1675:
+.L1688:
add w3, w3, 1
add x1, x1, 16
uxth w3, w3
- b .L1674
-.L1668:
+ b .L1687
+.L1681:
ret
.size select_l2p_ram_region, .-select_l2p_ram_region
.align 2
.global log2phys
.type log2phys, %function
log2phys:
- stp x29, x30, [sp, -96]!
+ stp x29, x30, [sp, -112]!
add x29, sp, 0
- stp x21, x22, [sp,32]
- adrp x21, .LANCHOR2
- add x3, x21, :lo12:.LANCHOR2
+ stp x19, x20, [sp,16]
+ adrp x19, .LANCHOR2
+ add x3, x19, :lo12:.LANCHOR2
+ stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- stp x23, x24, [sp,48]
- stp x19, x20, [sp,16]
- mov x26, x1
- mov w27, w2
+ stp x21, x22, [sp,32]
+ mov x25, x1
+ mov w26, w2
ldrh w1, [x3,826]
mov x2, 1
- ldr x20, [x3,1264]
+ ldr x21, [x3,1264]
add w1, w1, 7
lsr w28, w0, w1
lsl x1, x2, x1
sub w1, w1, #1
and w23, w1, w0
ldrh w1, [x3,858]
- uxth w25, w28
+ uxth w24, w28
mov x0, 0
uxth x23, w23
-.L1686:
- uxth x19, w0
- cmp w19, w1
- bcs .L1700
+.L1699:
+ uxth x20, w0
+ cmp w20, w1
+ bcs .L1714
add x0, x0, 1
- add x2, x20, x0, lsl 4
+ add x2, x21, x0, lsl 4
ldrh w2, [x2,-16]
- cmp w2, w25
- bne .L1686
-.L1687:
- cbnz w27, .L1688
- add x0, x21, :lo12:.LANCHOR2
+ cmp w2, w24
+ bne .L1699
+.L1700:
+ cbnz w26, .L1701
+ add x0, x19, :lo12:.LANCHOR2
ldr x1, [x0,1264]
- add x1, x1, x19, lsl 4
+ add x1, x1, x20, lsl 4
ldr x0, [x1,8]
ldr w0, [x0,x23,lsl 2]
- str w0, [x26]
- b .L1689
-.L1688:
- add x1, x21, :lo12:.LANCHOR2
- lsl x0, x19, 4
- ldr w3, [x26]
+ str w0, [x25]
+ b .L1702
+.L1701:
+ add x1, x19, :lo12:.LANCHOR2
+ lsl x0, x20, 4
+ ldr w3, [x25]
ldr x2, [x1,1264]
add x2, x2, x0
ldr x2, [x2,8]
str w3, [x2,x23,lsl 2]
- strh w25, [x1,3816]
+ strh w24, [x1,3816]
ldr x2, [x1,1264]
add x0, x2, x0
ldr w2, [x0,4]
orr w2, w2, -2147483648
str w2, [x0,4]
-.L1689:
- add x21, x21, :lo12:.LANCHOR2
- ldr x0, [x21,1264]
- add x19, x0, x19, lsl 4
- ldr w0, [x19,4]
+.L1702:
+ add x19, x19, :lo12:.LANCHOR2
+ ldr x0, [x19,1264]
+ add x20, x0, x20, lsl 4
+ ldr w0, [x20,4]
cmn w0, #1
- beq .L1697
+ beq .L1711
add w0, w0, 1
- str w0, [x19,4]
- b .L1697
-.L1700:
+ str w0, [x20,4]
+ b .L1711
+.L1714:
bl select_l2p_ram_region
- uxth x19, w0
- ubfiz x22, x19, 4, 16
+ uxth x20, w0
+ ubfiz x22, x20, 4, 16
mov w2, 65535
- add x1, x20, x22
- ldrh w3, [x20,x22]
+ add x1, x21, x22
+ ldrh w3, [x21,x22]
cmp w3, w2
- beq .L1692
+ beq .L1705
ldr w1, [x1,4]
- tbz w1, #31, .L1692
+ tbz w1, #31, .L1705
bl flush_l2p_region
-.L1692:
- add x20, x21, :lo12:.LANCHOR2
- ubfiz x0, x25, 2, 16
- ldr x1, [x20,1240]
- ldr w24, [x1,x0]
- cbnz w24, .L1693
- ldr x0, [x20,1264]
+.L1705:
+ add x21, x19, :lo12:.LANCHOR2
+ ubfiz x0, x24, 2, 16
+ ldr x1, [x21,1240]
+ ldr w27, [x1,x0]
+ cbnz w27, .L1706
+ ldr x0, [x21,1264]
mov w1, 255
- ldrh w2, [x20,828]
+ ldrh w2, [x21,828]
add x0, x0, x22
ldr x0, [x0,8]
bl ftl_memset
- ldr x0, [x20,1264]
- strh w25, [x0,x22]
- ldr x0, [x20,1264]
+ ldr x0, [x21,1264]
+ strh w24, [x0,x22]
+ ldr x0, [x21,1264]
add x22, x0, x22
- str w24, [x22,4]
- b .L1687
-.L1693:
- ldr x1, [x20,1264]
- add x0, x20, 1408
- str w24, [x0,4]
- add x1, x1, x22
- ldr x1, [x1,8]
- str x1, [x0,8]
- ldr x1, [x20,1112]
- str x1, [x0,16]
+ str w27, [x22,4]
+ b .L1700
+.L1706:
+ ldr x0, [x21,1264]
+ add x3, x21, 1408
mov w1, 1
+ str x3, [x29,104]
+ add x0, x0, x22
mov w2, w1
+ str w27, [x21,1412]
+ ldr x0, [x0,8]
+ str x0, [x21,1416]
+ ldr x0, [x21,1112]
+ str x0, [x21,1424]
+ mov x0, x3
bl FlashReadPages
- ldr w0, [x20,1408]
+ ldr w0, [x21,1408]
+ ldr x3, [x29,104]
cmp w0, 256
- bne .L1694
- and w28, w28, 65535
+ ldr x4, [x3,16]
+ bne .L1707
+ and w3, w28, 65535
adrp x0, .LC42
- mov w2, w24
- mov w1, w28
+ mov w1, w3
+ mov w2, w27
add x0, x0, :lo12:.LC42
- lsr w24, w24, 10
+ str x4, [x29,96]
+ str x3, [x29,104]
bl printk
- strh w24, [x20,3812]
- add x0, x20, 3752
- ldr x2, [x20,1264]
- mov w1, w28
+ add x0, x21, 3752
+ ldr x2, [x21,1264]
+ lsr w1, w27, 10
+ ldr x3, [x29,104]
add x2, x2, x22
+ strh w1, [x0,60]
+ mov w1, w3
ldr x2, [x2,8]
bl FtlMapWritePage
-.L1694:
- add x1, x21, :lo12:.LANCHOR2
+ ldr x4, [x29,96]
+.L1707:
+ ldrh w0, [x4,8]
+ cmp w0, w24
+ beq .L1708
+ adrp x0, .LC43
+ add x21, x19, :lo12:.LANCHOR2
+ uxth w1, w28
+ mov w2, w27
+ add x0, x0, :lo12:.LC43
+ bl printk
+ mov w2, 4
+ ldr x1, [x21,1424]
+ adrp x0, .LC17
+ mov w3, w2
+ add x0, x0, :lo12:.LC17
+ bl rknand_print_hex
+ adrp x0, .LC44
+ ldr x1, [x21,1240]
+ ldrh w3, [x21,856]
+ add x0, x0, :lo12:.LC44
+ mov w2, 4
+ bl rknand_print_hex
+ mov w0, 1
+ str w0, [x21,1400]
+.L1708:
+ add x1, x19, :lo12:.LANCHOR2
ldr x0, [x1,1264]
add x0, x0, x22
str wzr, [x0,4]
ldr x0, [x1,1264]
- strh w25, [x0,x22]
- b .L1687
-.L1697:
+ strh w24, [x0,x22]
+ b .L1700
+.L1711:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 96
+ ldp x29, x30, [sp], 112
ret
.size log2phys, .-log2phys
.align 2
@@ -10664,12 +10783,12 @@ FtlVendorPartWrite:
mov x24, x2
ldrh w23, [x19,826]
mov w21, -1
- bhi .L1702
+ bhi .L1716
lsr w23, w25, w23
mov w21, 0
add x27, x19, 3824
-.L1703:
- cbz w22, .L1702
+.L1717:
+ cbz w22, .L1716
ldrh w1, [x19,824]
ldr x0, [x19,1232]
udiv w26, w25, w1
@@ -10681,8 +10800,8 @@ FtlVendorPartWrite:
cmp w20, w22
csel w20, w0, w20, hi
cmp w20, w1
- beq .L1705
- cbz w2, .L1705
+ beq .L1719
+ cbz w2, .L1719
ldr x0, [x19,1064]
mov w1, 1
str w2, [x29,108]
@@ -10691,13 +10810,13 @@ FtlVendorPartWrite:
add x0, x29, 104
str xzr, [x29,120]
bl FlashReadPages
- b .L1706
-.L1705:
+ b .L1720
+.L1719:
ldr x0, [x19,1064]
mov w1, 0
ldrh w2, [x19,828]
bl ftl_memset
-.L1706:
+.L1720:
ldr x0, [x19,1064]
lsl w28, w20, 9
ubfiz x26, x26, 9, 16
@@ -10715,8 +10834,8 @@ FtlVendorPartWrite:
bl FtlMapWritePage
cmn w0, #1
csinv w21, w21, wzr, ne
- b .L1703
-.L1702:
+ b .L1717
+.L1716:
mov w0, w21
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -10747,16 +10866,16 @@ FtlVendorPartRead:
ldrh w20, [x3,826]
cmp w2, w1
mov w0, -1
- bhi .L1717
- adrp x26, .LC43
+ bhi .L1731
+ adrp x26, .LC45
add x0, x3, 3824
lsr w20, w23, w20
mov w21, 0
mov x28, x3
- add x26, x26, :lo12:.LC43
+ add x26, x26, :lo12:.LC45
str x0, [x29,104]
-.L1718:
- cbz w22, .L1726
+.L1732:
+ cbz w22, .L1740
ldrh w19, [x28,824]
ldr x0, [x28,1232]
udiv w24, w23, w19
@@ -10768,7 +10887,7 @@ FtlVendorPartRead:
cmp w19, w22
csel w19, w0, w19, hi
lsl w27, w19, 9
- cbz w4, .L1720
+ cbz w4, .L1734
ldr x0, [x28,1064]
mov w1, 1
str x0, [x29,128]
@@ -10784,7 +10903,7 @@ FtlVendorPartRead:
ldr w0, [x28,1408]
csinv w21, w21, wzr, ne
cmp w0, 256
- bne .L1722
+ bne .L1736
mov w1, w20
mov w2, w4
mov x0, x26
@@ -10793,28 +10912,28 @@ FtlVendorPartRead:
mov w1, w20
ldr x2, [x28,1064]
bl FtlMapWritePage
-.L1722:
+.L1736:
ldr x1, [x28,1064]
ubfiz x24, x24, 9, 16
mov x0, x25
mov w2, w27
add x1, x1, x24
bl ftl_memcpy
- b .L1723
-.L1720:
+ b .L1737
+.L1734:
mov x0, x25
mov w1, w4
mov w2, w27
bl ftl_memset
-.L1723:
+.L1737:
add w20, w20, 1
sub w22, w22, w19
add w23, w23, w19
add x25, x25, x27, sxtw
- b .L1718
-.L1726:
+ b .L1732
+.L1740:
mov w0, w21
-.L1717:
+.L1731:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -10852,13 +10971,13 @@ FtlUpdateVaildLpn:
adrp x1, .LANCHOR2
add x3, x1, :lo12:.LANCHOR2
ldrh w2, [x3,3888]
- cbnz w0, .L1730
+ cbnz w0, .L1744
cmp w2, 4
- bhi .L1730
+ bhi .L1744
add w2, w2, 1
strh w2, [x3,3888]
- b .L1729
-.L1730:
+ b .L1743
+.L1744:
add x0, x1, :lo12:.LANCHOR2
mov w7, 65535
strh wzr, [x0,3888]
@@ -10866,20 +10985,20 @@ FtlUpdateVaildLpn:
ldrh w5, [x0,756]
ldr x6, [x0,1184]
mov x0, 0
-.L1731:
+.L1745:
cmp w5, w0, uxth
- bls .L1729
+ bls .L1743
ldrh w4, [x6,x0,lsl 1]
cmp w4, w7
- beq .L1732
+ beq .L1746
add x3, x1, :lo12:.LANCHOR2
ldr w2, [x3,3892]
add w2, w4, w2
str w2, [x3,3892]
-.L1732:
+.L1746:
add x0, x0, 1
- b .L1731
-.L1729:
+ b .L1745
+.L1743:
ret
.size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
.align 2
@@ -10893,13 +11012,13 @@ FtlMapBlkWriteDumpData:
ldr w1, [x0,56]
ldrh w19, [x0,6]
ldr x4, [x0,40]
- cbz w1, .L1735
+ cbz w1, .L1749
adrp x1, .LANCHOR2
str wzr, [x0,56]
add x2, x1, :lo12:.LANCHOR2
mov x21, x1
ldr w3, [x2,1400]
- cbnz w3, .L1735
+ cbnz w3, .L1749
mov x20, x0
sub w19, w19, #1
add x0, x2, 1408
@@ -10911,23 +11030,23 @@ FtlMapBlkWriteDumpData:
str x1, [x0,8]
ldr w3, [x4,x3]
str w3, [x0,4]
- cbz w3, .L1739
+ cbz w3, .L1753
mov w1, 1
mov w2, w1
bl FlashReadPages
- b .L1740
-.L1739:
+ b .L1754
+.L1753:
ldrh w2, [x2,828]
mov x0, x1
mov w1, 255
bl ftl_memset
-.L1740:
+.L1754:
add x2, x21, :lo12:.LANCHOR2
mov x0, x20
mov w1, w19
ldr x2, [x2,1416]
bl FtlMapWritePage
-.L1735:
+.L1749:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -10946,7 +11065,7 @@ FtlVpcTblFlush:
add x19, x22, :lo12:.LANCHOR2
stp x23, x24, [sp,48]
ldr w0, [x19,1400]
- cbnz w0, .L1743
+ cbnz w0, .L1757
ldr x21, [x19,1112]
add x20, x19, 3520
ldr x1, [x19,1048]
@@ -11026,7 +11145,7 @@ FtlVpcTblFlush:
ldr x1, [x1,#:lo12:.LANCHOR0+16]
bl ftl_memcpy
ldrh w0, [x19,860]
- cbz w0, .L1744
+ cbz w0, .L1758
ldrh w0, [x19,756]
ldrh w2, [x19,856]
lsr w1, w0, 3
@@ -11038,14 +11157,14 @@ FtlVpcTblFlush:
add x0, x1, x0
ldr x1, [x19,1240]
bl ftl_memcpy
-.L1744:
+.L1758:
add x19, x22, :lo12:.LANCHOR2
mov w0, 0
mov w23, 0
mov w25, 65535
add x20, x19, 1408
bl FtlUpdateVaildLpn
-.L1745:
+.L1759:
ldr x0, [x19,1048]
str x0, [x20,8]
ldr x0, [x19,1112]
@@ -11063,7 +11182,7 @@ FtlVpcTblFlush:
ldrh w1, [x19,3898]
sub w0, w0, #1
cmp w1, w0
- blt .L1746
+ blt .L1760
ldrh w0, [x19,3896]
ldrh w25, [x19,3900]
strh wzr, [x19,3898]
@@ -11083,45 +11202,45 @@ FtlVpcTblFlush:
mov w3, w1
mov x0, x20
bl FlashProgPages
-.L1746:
+.L1760:
ldrh w1, [x19,3898]
ldr w2, [x20]
add w1, w1, 1
cmn w2, #1
uxth w1, w1
strh w1, [x19,3898]
- bne .L1747
+ bne .L1761
cmp w1, 1
- bne .L1748
+ bne .L1762
ldrh w1, [x19,820]
sub w1, w1, #1
strh w1, [x19,3898]
-.L1748:
+.L1762:
add w23, w23, 1
uxth w23, w23
cmp w23, 3
- bls .L1745
+ bls .L1759
add x22, x22, :lo12:.LANCHOR2
- adrp x0, .LC44
- add x0, x0, :lo12:.LC44
+ adrp x0, .LC46
+ add x0, x0, :lo12:.LC46
mov w2, w23
ldr w1, [x22,1412]
bl printk
mov w0, 1
str w0, [x22,1400]
- b .L1743
-.L1747:
+ b .L1757
+.L1761:
cmp w1, 1
- beq .L1745
+ beq .L1759
cmp w2, 256
- beq .L1745
+ beq .L1759
mov w0, 65535
cmp w25, w0
- beq .L1743
+ beq .L1757
mov w0, w25
mov w1, 1
bl FtlFreeSysBlkQueueIn
-.L1743:
+.L1757:
mov w0, 0
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -11172,19 +11291,19 @@ FtlScanSysBlk:
mov w2, 12
bl ftl_memset
ldrh w21, [x20,756]
-.L1755:
+.L1769:
add x1, x19, :lo12:.LANCHOR2
ldrh w0, [x1,758]
cmp w0, w21
- bls .L1796
+ bls .L1810
mov x27, 0
ldrh w3, [x1,748]
ldrh w2, [x1,830]
mov w20, w27
mov x23, x1
-.L1797:
+.L1811:
cmp w3, w27, uxth
- bls .L1830
+ bls .L1844
add x0, x23, 776
mov w1, w21
str x2, [x29,112]
@@ -11195,7 +11314,7 @@ FtlScanSysBlk:
bl FtlBbmIsBadBlock
ldr x3, [x29,120]
ldr x2, [x29,112]
- cbnz w0, .L1756
+ cbnz w0, .L1770
mov w0, 56
ldr x1, [x23,992]
lsl w28, w28, 10
@@ -11214,11 +11333,11 @@ FtlScanSysBlk:
ldr x4, [x23,1128]
add x1, x4, x1, sxtw 2
str x1, [x0,16]
-.L1756:
+.L1770:
add x27, x27, 1
- b .L1797
-.L1830:
- cbz w20, .L1759
+ b .L1811
+.L1844:
+ cbz w20, .L1773
add x0, x19, :lo12:.LANCHOR2
mov w1, w20
mov w2, 1
@@ -11227,9 +11346,9 @@ FtlScanSysBlk:
adrp x28, .LANCHOR0
ldr x0, [x0,992]
bl FlashReadPages
-.L1760:
+.L1774:
cmp w20, w23, uxth
- bls .L1759
+ bls .L1773
add x0, x19, :lo12:.LANCHOR2
mul x5, x23, x26
ldr x0, [x0,992]
@@ -11239,9 +11358,9 @@ FtlScanSysBlk:
cmn w0, #1
ldr x25, [x1,16]
ubfx x24, x4, 10, 16
- bne .L1762
+ bne .L1776
mov w6, 16
-.L1761:
+.L1775:
add x7, x19, :lo12:.LANCHOR2
str x6, [x29,104]
str x7, [x29,112]
@@ -11262,44 +11381,44 @@ FtlScanSysBlk:
ldr x5, [x29,120]
ldr x6, [x29,104]
ldr x0, [x7,992]
- bne .L1763
+ bne .L1777
str w27, [x0,x5]
- b .L1762
-.L1763:
+ b .L1776
+.L1777:
ldr w0, [x0,x5]
cmn w0, #1
- bne .L1762
+ bne .L1776
sub w6, w6, #1
uxth w6, w6
- cbnz w6, .L1761
-.L1762:
+ cbnz w6, .L1775
+.L1776:
add x0, x19, :lo12:.LANCHOR2
ldr x1, [x0,992]
ldr w1, [x1,x5]
cmn w1, #1
- beq .L1765
+ beq .L1779
ldr w0, [x0,872]
cmn w0, #1
- beq .L1766
+ beq .L1780
ldr w1, [x25,4]
cmp w0, w1
- bhi .L1767
-.L1766:
+ bhi .L1781
+.L1780:
ldr w0, [x25,4]
cmn w0, #1
- beq .L1767
+ beq .L1781
add x1, x19, :lo12:.LANCHOR2
add w0, w0, 1
str w0, [x1,872]
-.L1767:
+.L1781:
ldrh w0, [x25]
mov w1, 61604
cmp w0, w1
- beq .L1769
- bhi .L1770
+ beq .L1783
+ bhi .L1784
mov w1, 61574
cmp w0, w1
- bne .L1768
+ bne .L1782
add x5, x19, :lo12:.LANCHOR2
ldrh w6, [x5,840]
ldrh w0, [x5,1392]
@@ -11307,16 +11426,16 @@ FtlScanSysBlk:
ldr x5, [x5,1224]
sxth x1, w2
sub w2, w2, w0
- b .L1783
-.L1770:
+ b .L1797
+.L1784:
mov w1, 61634
cmp w0, w1
- beq .L1772
+ beq .L1786
cmp w0, w22
- bne .L1768
+ bne .L1782
mov w0, w24
- b .L1829
-.L1772:
+ b .L1843
+.L1786:
add x5, x19, :lo12:.LANCHOR2
ldr w6, [x5,848]
ldrh w0, [x5,3908]
@@ -11327,27 +11446,27 @@ FtlScanSysBlk:
sub w2, w2, #1
sxth x1, w1
sxth w2, w2
-.L1774:
+.L1788:
cmp w1, w2
- ble .L1831
+ ble .L1845
sbfiz x7, x1, 2, 32
ldr w10, [x25,4]
sxth x8, w1
ldr w9, [x5,x7]
cmp w10, w9
- bls .L1775
+ bls .L1789
ldr w2, [x5]
- cbnz w2, .L1776
+ cbnz w2, .L1790
cmp w0, w6
- beq .L1776
+ beq .L1790
add x2, x19, :lo12:.LANCHOR2
add w0, w0, 1
strh w0, [x2,3908]
-.L1776:
+.L1790:
mov w0, 0
-.L1777:
+.L1791:
cmp w0, w1
- beq .L1832
+ beq .L1846
add x5, x19, :lo12:.LANCHOR2
sxtw x2, w0
lsl x6, x2, 2
@@ -11362,31 +11481,31 @@ FtlScanSysBlk:
add x6, x5, x2
ldrh w6, [x6,2]
strh w6, [x5,x2]
- b .L1777
-.L1832:
+ b .L1791
+.L1846:
add x2, x19, :lo12:.LANCHOR2
ldr w5, [x25,4]
ldr x0, [x2,1256]
str w5, [x0,x7]
ldr x0, [x2,1192]
strh w24, [x0,x8,lsl 1]
- tbz w1, #31, .L1779
- b .L1768
-.L1775:
+ tbz w1, #31, .L1793
+ b .L1782
+.L1789:
sub w1, w1, #1
sxth x1, w1
- b .L1774
-.L1831:
- tbz w1, #31, .L1812
- b .L1768
-.L1779:
+ b .L1788
+.L1845:
+ tbz w1, #31, .L1826
+ b .L1782
+.L1793:
ldrh w0, [x2,3908]
ldr w2, [x2,848]
sub w2, w2, w0
sub w2, w2, #1
cmp w1, w2, sxth
- bgt .L1768
-.L1812:
+ bgt .L1782
+.L1826:
add x2, x19, :lo12:.LANCHOR2
add w0, w0, 1
ldr w3, [x25,4]
@@ -11394,33 +11513,33 @@ FtlScanSysBlk:
ldr x0, [x2,1256]
str w3, [x0,x1,lsl 2]
ldr x0, [x2,1192]
- b .L1828
-.L1789:
+ b .L1842
+.L1803:
sbfiz x7, x1, 2, 32
ldr w10, [x25,4]
sxth x8, w1
ldr w9, [x5,x7]
cmp w10, w9
- bhi .L1833
+ bhi .L1847
sub w1, w1, #1
sxth x1, w1
-.L1783:
+.L1797:
cmp w1, w2
- bgt .L1789
- b .L1788
-.L1833:
+ bgt .L1803
+ b .L1802
+.L1847:
ldr w2, [x5]
- cbnz w2, .L1785
+ cbnz w2, .L1799
cmp w0, w6
- beq .L1785
+ beq .L1799
add x2, x19, :lo12:.LANCHOR2
add w0, w0, 1
strh w0, [x2,1392]
-.L1785:
+.L1799:
mov w0, 0
-.L1786:
+.L1800:
cmp w0, w1
- beq .L1834
+ beq .L1848
add x5, x19, :lo12:.LANCHOR2
sxtw x2, w0
lsl x6, x2, 2
@@ -11435,105 +11554,105 @@ FtlScanSysBlk:
add x6, x5, x2
ldrh w6, [x6,2]
strh w6, [x5,x2]
- b .L1786
-.L1834:
+ b .L1800
+.L1848:
add x0, x19, :lo12:.LANCHOR2
ldr w5, [x25,4]
ldr x2, [x0,1224]
str w5, [x2,x7]
ldr x0, [x0,1208]
strh w24, [x0,x8,lsl 1]
-.L1788:
- tbnz w1, #31, .L1768
+.L1802:
+ tbnz w1, #31, .L1782
add x0, x19, :lo12:.LANCHOR2
ldrh w2, [x0,840]
ldrh w5, [x0,1392]
sub w2, w2, #1
sub w2, w2, w5
cmp w1, w2, sxth
- bgt .L1768
+ bgt .L1782
ldr x2, [x0,1224]
add w5, w5, 1
ldr w3, [x25,4]
strh w5, [x0,1392]
str w3, [x2,x1,lsl 2]
ldr x0, [x0,1208]
-.L1828:
+.L1842:
strh w24, [x0,x1,lsl 1]
- b .L1768
-.L1769:
+ b .L1782
+.L1783:
add x0, x19, :lo12:.LANCHOR2
add x1, x0, 3896
ldrh w2, [x0,3896]
cmp w2, w22
- bne .L1790
+ bne .L1804
strh w24, [x0,3896]
ldr w0, [x25,4]
str w0, [x1,8]
- b .L1768
-.L1790:
+ b .L1782
+.L1804:
ldrh w0, [x1,4]
cmp w0, w22
- beq .L1791
+ beq .L1805
mov w1, 1
bl FtlFreeSysBlkQueueIn
-.L1791:
+.L1805:
add x1, x19, :lo12:.LANCHOR2
ldr w2, [x25,4]
add x0, x1, 3896
ldr w5, [x0,8]
cmp w5, w2
- bcs .L1792
+ bcs .L1806
ldrh w2, [x1,3896]
strh w2, [x0,4]
strh w24, [x1,3896]
ldr w1, [x25,4]
str w1, [x0,8]
- b .L1768
-.L1792:
+ b .L1782
+.L1806:
strh w24, [x0,4]
- b .L1768
-.L1765:
+ b .L1782
+.L1779:
add x0, x28, :lo12:.LANCHOR0
ldrb w1, [x0,136]
mov w0, w24
- cbz w1, .L1793
-.L1829:
+ cbz w1, .L1807
+.L1843:
mov w1, 0
-.L1793:
+.L1807:
bl FtlFreeSysBlkQueueIn
-.L1768:
+.L1782:
add x23, x23, 1
- b .L1760
-.L1759:
+ b .L1774
+.L1773:
add w21, w21, 1
uxth w21, w21
- b .L1755
-.L1796:
+ b .L1769
+.L1810:
ldr x2, [x1,1192]
ldrh w0, [x2]
- cbz w0, .L1798
-.L1801:
+ cbz w0, .L1812
+.L1815:
add x1, x19, :lo12:.LANCHOR2
ldr x2, [x1,1208]
ldrh w0, [x2]
- cbz w0, .L1799
- b .L1822
-.L1798:
+ cbz w0, .L1813
+ b .L1836
+.L1812:
ldrh w3, [x1,3908]
- cbz w3, .L1801
+ cbz w3, .L1815
ldr w1, [x1,848]
-.L1802:
+.L1816:
cmp w0, w1
- bcs .L1801
+ bcs .L1815
ldrh w3, [x2,w0,sxtw 1]
- cbz w3, .L1803
+ cbz w3, .L1817
mov w6, w0
-.L1804:
+.L1818:
add x1, x19, :lo12:.LANCHOR2
ldr w2, [x1,848]
cmp w0, w2
- bcs .L1801
+ bcs .L1815
sxtw x5, w0
sub w2, w0, w6
ldr x4, [x1,1192]
@@ -11548,26 +11667,26 @@ FtlScanSysBlk:
str w5, [x4,x2,lsl 2]
ldr x1, [x1,1192]
strh wzr, [x1,x3]
- b .L1804
-.L1803:
+ b .L1818
+.L1817:
add w0, w0, 1
sxth w0, w0
- b .L1802
-.L1799:
+ b .L1816
+.L1813:
ldrh w3, [x1,1392]
- cbz w3, .L1822
+ cbz w3, .L1836
ldrh w1, [x1,840]
-.L1807:
+.L1821:
cmp w0, w1
mov w6, w0
- bge .L1822
+ bge .L1836
ldrh w3, [x2,w0,sxtw 1]
- cbz w3, .L1808
-.L1809:
+ cbz w3, .L1822
+.L1823:
add x1, x19, :lo12:.LANCHOR2
ldrh w2, [x1,840]
cmp w0, w2
- bge .L1822
+ bge .L1836
sxtw x5, w0
sub w2, w0, w6
ldr x4, [x1,1208]
@@ -11582,12 +11701,12 @@ FtlScanSysBlk:
str w5, [x4,x2,lsl 2]
ldr x1, [x1,1208]
strh wzr, [x1,x3]
- b .L1809
-.L1808:
+ b .L1823
+.L1822:
add w0, w0, 1
sxth w0, w0
- b .L1807
-.L1822:
+ b .L1821
+.L1836:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -11615,18 +11734,18 @@ FtlLoadEctTbl:
mov w0, 17221
movk w0, 0x4254, lsl 16
cmp w1, w0
- beq .L1836
- adrp x0, .LC45
- adrp x1, .LC46
- add x1, x1, :lo12:.LC46
- add x0, x0, :lo12:.LC45
+ beq .L1850
+ adrp x0, .LC47
+ adrp x1, .LC48
+ add x1, x1, :lo12:.LC48
+ add x0, x0, :lo12:.LC47
bl printk
ldrh w2, [x19,1144]
mov w1, 0
ldr x0, [x19,1160]
lsl w2, w2, 9
bl ftl_memset
-.L1836:
+.L1850:
mov w0, 0
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -11639,10 +11758,10 @@ ftl_set_blk_mode:
stp x29, x30, [sp, -16]!
uxth w0, w0
add x29, sp, 0
- cbz w1, .L1838
+ cbz w1, .L1852
bl ftl_set_blk_mode.part.17
- b .L1837
-.L1838:
+ b .L1851
+.L1852:
adrp x1, .LANCHOR0+16
ubfx x2, x0, 5, 11
lsl x2, x2, 2
@@ -11652,7 +11771,7 @@ ftl_set_blk_mode:
ldr w1, [x3,x2]
bic w0, w1, w0
str w0, [x3,x2]
-.L1837:
+.L1851:
ldp x29, x30, [sp], 16
ret
.size ftl_set_blk_mode, .-ftl_set_blk_mode
@@ -11670,6 +11789,455 @@ ftl_get_blk_mode:
ret
.size ftl_get_blk_mode, .-ftl_get_blk_mode
.align 2
+ .global FtlCheckVpc
+ .type FtlCheckVpc, %function
+FtlCheckVpc:
+ stp x29, x30, [sp, -96]!
+ adrp x1, .LANCHOR3
+ adrp x0, .LC49
+ add x1, x1, :lo12:.LANCHOR3
+ add x29, sp, 0
+ add x1, x1, 16
+ add x0, x0, :lo12:.LC49
+ str x25, [sp,64]
+ stp x19, x20, [sp,16]
+ adrp x19, .LANCHOR2
+ mov w20, 0
+ stp x21, x22, [sp,32]
+ stp x23, x24, [sp,48]
+ add x19, x19, :lo12:.LANCHOR2
+ bl printk
+ add x0, x19, 3912
+ mov w1, 0
+ mov x2, 8192
+ bl memset
+.L1856:
+ ldr w0, [x19,1396]
+ cmp w20, w0
+ bcs .L1873
+ mov w0, w20
+ add x1, x29, 92
+ mov w2, 0
+ bl log2phys
+ ldr w0, [x29,92]
+ cmn w0, #1
+ beq .L1857
+ lsr w0, w0, 10
+ bl P2V_block_in_plane
+ uxth w0, w0
+ add x2, x19, 3912
+ ldrh w1, [x2,w0,sxtw 1]
+ add w1, w1, 1
+ strh w1, [x2,w0,sxtw 1]
+.L1857:
+ add w20, w20, 1
+ b .L1856
+.L1873:
+ ldr x1, [x19,1184]
+ adrp x0, .LC50
+ ldrh w3, [x19,756]
+ add x0, x0, :lo12:.LC50
+ mov w2, 2
+ adrp x21, .LC52
+ mov w20, 0
+ add x21, x21, :lo12:.LC52
+ bl rknand_print_hex
+ adrp x0, .LC51
+ ldrh w3, [x19,756]
+ add x0, x0, :lo12:.LC51
+ add x1, x19, 3912
+ mov w2, 2
+ bl rknand_print_hex
+.L1859:
+ ldrh w0, [x19,756]
+ cmp w0, w20
+ bls .L1874
+ ubfiz x0, x20, 1, 16
+ ldr x1, [x19,1184]
+ ldrh w2, [x1,x0]
+ add x0, x19, 3912
+ ldrh w3, [x0,w20,sxtw 1]
+ cmp w2, w3
+ beq .L1860
+ mov x0, x21
+ mov w1, w20
+ bl printk
+.L1860:
+ add w20, w20, 1
+ uxth w20, w20
+ b .L1859
+.L1874:
+ ldr x0, [x19,3592]
+ cbz x0, .L1855
+ ldr x20, [x19,1280]
+ adrp x22, .LC53
+ ldrh w23, [x19,3600]
+ mov w21, 0
+ sub x20, x0, x20
+ mov x0, -6148914691236517206
+ asr x20, x20, 1
+ add x22, x22, :lo12:.LC53
+ mov w24, 6
+ mov w25, 65535
+ madd x20, x0, x20, x20
+ uxth w20, w20
+.L1863:
+ cmp w21, w23
+ beq .L1855
+ ubfiz x0, x20, 1, 16
+ ldr x1, [x19,1184]
+ ldrh w2, [x1,x0]
+ cbz w2, .L1864
+ add x3, x19, 3912
+ mov x0, x22
+ mov w1, w20
+ ldrh w3, [x3,w20,sxtw 1]
+ bl printk
+.L1864:
+ umull x20, w20, w24
+ ldr x0, [x19,1280]
+ ldrh w20, [x0,x20]
+ cmp w20, w25
+ beq .L1855
+ add w21, w21, 1
+ uxth w21, w21
+ b .L1863
+.L1855:
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldp x23, x24, [sp,48]
+ ldr x25, [sp,64]
+ ldp x29, x30, [sp], 96
+ ret
+ .size FtlCheckVpc, .-FtlCheckVpc
+ .align 2
+ .global FtlDumpSysBlock
+ .type FtlDumpSysBlock, %function
+FtlDumpSysBlock:
+ sub sp, sp, #96
+ adrp x2, .LANCHOR2
+ add x2, x2, :lo12:.LANCHOR2
+ stp x29, x30, [sp,16]
+ add x29, sp, 16
+ stp x19, x20, [sp,32]
+ stp x21, x22, [sp,48]
+ stp x23, x24, [sp,64]
+ str x25, [sp,80]
+ add x19, x2, 1408
+ uxth w23, w0
+ adrp x22, .LC54
+ ldr x0, [x2,1048]
+ adrp x25, .LC55
+ str x0, [x19,8]
+ lsl w24, w23, 10
+ ldr x0, [x2,1112]
+ mov w20, 0
+ str x0, [x19,16]
+ mov x21, x2
+ add x22, x22, :lo12:.LC54
+ add x25, x25, :lo12:.LC55
+.L1876:
+ ldrh w0, [x21,820]
+ cmp w20, w0
+ bge .L1882
+ mov w1, 1
+ orr w0, w20, w24
+ mov w2, w1
+ str w0, [x19,4]
+ mov x0, x19
+ bl FlashReadPages
+ ldr x0, [x19,8]
+ mov w1, w23
+ ldr x7, [x19,16]
+ ldr w0, [x0]
+ str w0, [sp]
+ mov x0, x22
+ ldr w4, [x7]
+ ldr w5, [x7,4]
+ ldr w6, [x7,8]
+ ldr w2, [x19]
+ ldr w3, [x19,4]
+ ldr w7, [x7,12]
+ bl printk
+ ldr x0, [x19,16]
+ ldr w0, [x0]
+ cmn w0, #1
+ beq .L1877
+ ldr x1, [x21,1048]
+ mov x0, x25
+ mov w2, 4
+ mov w3, 768
+ bl rknand_print_hex
+.L1877:
+ add w20, w20, 1
+ sxth w20, w20
+ b .L1876
+.L1882:
+ sub sp, x29, #16
+ ldp x19, x20, [sp,32]
+ ldp x21, x22, [sp,48]
+ ldp x23, x24, [sp,64]
+ ldr x25, [sp,80]
+ ldp x29, x30, [sp,16]
+ add sp, sp, 96
+ ret
+ .size FtlDumpSysBlock, .-FtlDumpSysBlock
+ .align 2
+ .global Ftlscanalldata
+ .type Ftlscanalldata, %function
+Ftlscanalldata:
+ sub sp, sp, #96
+ adrp x0, .LC56
+ add x0, x0, :lo12:.LC56
+ mov w1, 0
+ stp x29, x30, [sp,16]
+ add x29, sp, 16
+ stp x23, x24, [sp,64]
+ adrp x23, .LANCHOR2
+ stp x21, x22, [sp,48]
+ adrp x21, .LC57
+ add x22, x23, :lo12:.LANCHOR2
+ stp x19, x20, [sp,32]
+ add x21, x21, :lo12:.LC57
+ mov w20, 0
+ add x19, x22, 1408
+ bl printk
+.L1884:
+ add x0, x23, :lo12:.LANCHOR2
+ ldr w0, [x0,1396]
+ cmp w20, w0
+ bcs .L1891
+ mov w0, w20
+ add x1, x29, 76
+ mov w2, 0
+ bl log2phys
+ and w0, w20, 2047
+ cbnz w0, .L1885
+ ldr w2, [x29,76]
+ mov x0, x21
+ mov w1, w20
+ bl printk
+.L1885:
+ ldr w0, [x29,76]
+ cmn w0, #1
+ beq .L1887
+ str w0, [x19,4]
+ mov w1, 1
+ ldr x0, [x22,1048]
+ mov w2, 0
+ str x0, [x19,8]
+ mov x0, x19
+ ldr x24, [x22,1112]
+ str w20, [x19,24]
+ str x24, [x19,16]
+ str wzr, [x19]
+ bl FlashReadPages
+ ldr w0, [x19]
+ cmn w0, #1
+ beq .L1888
+ cmp w0, 256
+ beq .L1888
+ ldr w0, [x24,8]
+ cmp w0, w20
+ beq .L1887
+.L1888:
+ ldr x7, [x19,8]
+ mov w1, w20
+ ldr x6, [x19,16]
+ ldr w0, [x7,4]
+ str w0, [sp]
+ adrp x0, .LC58
+ add x0, x0, :lo12:.LC58
+ ldr w3, [x6]
+ ldr w4, [x6,4]
+ ldr w5, [x6,8]
+ ldr w2, [x19,4]
+ ldr w6, [x6,12]
+ ldr w7, [x7]
+ bl printk
+.L1887:
+ add w20, w20, 1
+ b .L1884
+.L1891:
+ sub sp, x29, #16
+ ldp x19, x20, [sp,32]
+ ldp x21, x22, [sp,48]
+ ldp x23, x24, [sp,64]
+ ldp x29, x30, [sp,16]
+ add sp, sp, 96
+ ret
+ .size Ftlscanalldata, .-Ftlscanalldata
+ .align 2
+ .global dump_map_info
+ .type dump_map_info, %function
+dump_map_info:
+ sub sp, sp, #128
+ stp x29, x30, [sp,16]
+ add x29, sp, 16
+ stp x21, x22, [sp,48]
+ adrp x22, .LANCHOR2
+ add x0, x22, :lo12:.LANCHOR2
+ stp x25, x26, [sp,80]
+ stp x23, x24, [sp,64]
+ stp x27, x28, [sp,96]
+ stp x19, x20, [sp,32]
+ adrp x24, .LC59
+ mov w25, 56
+ ldrh w21, [x0,756]
+ mov w26, 4
+ mov x27, 56
+ add x24, x24, :lo12:.LC59
+.L1893:
+ add x19, x22, :lo12:.LANCHOR2
+ ldrh w0, [x19,758]
+ cmp w0, w21
+ bls .L1906
+ mov x23, 0
+ ldrh w3, [x19,748]
+ ldrh w2, [x19,830]
+ mov w20, w23
+.L1902:
+ cmp w3, w23, uxth
+ bls .L1907
+ add x0, x19, 776
+ mov w1, w21
+ str x2, [x29,96]
+ str x3, [x29,104]
+ ldrb w0, [x0,x23]
+ bl V2P_block
+ uxth w28, w0
+ bl FtlBbmIsBadBlock
+ ldr x3, [x29,104]
+ ldr x2, [x29,96]
+ cbnz w0, .L1894
+ umull x0, w20, w25
+ ldr x1, [x19,992]
+ lsl w28, w28, 10
+ add x1, x1, x0
+ str w28, [x1,4]
+ ldr x1, [x19,992]
+ ldr x4, [x19,1128]
+ add x0, x1, x0
+ ldr x1, [x19,1072]
+ str x1, [x0,8]
+ mul w1, w20, w2
+ add w20, w20, 1
+ sdiv w1, w1, w26
+ uxth w20, w20
+ add x1, x4, x1, sxtw 2
+ str x1, [x0,16]
+.L1894:
+ add x23, x23, 1
+ b .L1902
+.L1907:
+ cbz w20, .L1897
+ add x0, x22, :lo12:.LANCHOR2
+ mov w1, w20
+ mov w2, 1
+ mov x19, 0
+ ldr x0, [x0,992]
+ bl FlashReadPages
+.L1898:
+ cmp w20, w19, uxth
+ bls .L1897
+ add x0, x22, :lo12:.LANCHOR2
+ ldr x0, [x0,992]
+ madd x0, x19, x27, x0
+ add x19, x19, 1
+ ldr x7, [x0,8]
+ ldr x6, [x0,16]
+ ldr w2, [x0,4]
+ ldr w0, [x7,4]
+ str w0, [sp]
+ ubfx x1, x2, 10, 16
+ mov x0, x24
+ ldr w3, [x6]
+ ldr w4, [x6,4]
+ ldr w5, [x6,8]
+ ldr w7, [x7]
+ ldr w6, [x6,12]
+ bl printk
+ b .L1898
+.L1897:
+ add w21, w21, 1
+ uxth w21, w21
+ b .L1893
+.L1906:
+ adrp x23, .LC60
+ mov w21, 0
+ add x22, x19, 1408
+ add x23, x23, :lo12:.LC60
+.L1901:
+ ldrh w0, [x19,3908]
+ cmp w21, w0
+ bge .L1904
+ sbfiz x24, x21, 1, 32
+ mov w20, 0
+.L1905:
+ ldrh w0, [x19,820]
+ cmp w20, w0
+ bge .L1908
+ ldr x0, [x19,1192]
+ mov w1, 1
+ mov w2, w1
+ ldrh w0, [x0,x24]
+ orr w0, w20, w0, lsl 10
+ str w0, [x22,4]
+ mov x0, x22
+ add w20, w20, 1
+ bl FlashReadPages
+ sxth w20, w20
+ ldr x0, [x22,8]
+ ldr x1, [x19,1192]
+ ldr x7, [x22,16]
+ ldr w2, [x0]
+ ldrh w1, [x1,x24]
+ str w2, [sp]
+ ldr w0, [x0,4]
+ str w0, [sp,8]
+ mov x0, x23
+ ldr w4, [x7]
+ ldr w5, [x7,4]
+ ldr w6, [x7,8]
+ ldr w2, [x22]
+ ldr w3, [x22,4]
+ ldr w7, [x7,12]
+ bl printk
+ b .L1905
+.L1908:
+ add w21, w21, 1
+ sxth w21, w21
+ b .L1901
+.L1904:
+ ldr x1, [x19,1192]
+ adrp x0, .LC61
+ ldr w3, [x19,848]
+ add x0, x0, :lo12:.LC61
+ mov w2, 2
+ bl rknand_print_hex
+ ldr x1, [x19,1240]
+ adrp x0, .LC62
+ ldrh w3, [x19,856]
+ add x0, x0, :lo12:.LC62
+ mov w2, 4
+ bl rknand_print_hex
+ ldr x1, [x19,1248]
+ adrp x0, .LC63
+ ldrh w3, [x19,856]
+ add x0, x0, :lo12:.LC63
+ mov w2, 4
+ bl rknand_print_hex
+ sub sp, x29, #16
+ ldp x19, x20, [sp,32]
+ ldp x21, x22, [sp,48]
+ ldp x23, x24, [sp,64]
+ ldp x25, x26, [sp,80]
+ ldp x27, x28, [sp,96]
+ ldp x29, x30, [sp,16]
+ add sp, sp, 128
+ ret
+ .size dump_map_info, .-dump_map_info
+ .align 2
.global FtlMapTblRecovery
.type FtlMapTblRecovery, %function
FtlMapTblRecovery:
@@ -11677,294 +12245,189 @@ FtlMapTblRecovery:
mov w1, 0
add x29, sp, 0
stp x19, x20, [sp,16]
+ mov x19, x0
+ adrp x20, .LANCHOR2
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- mov x19, x0
- adrp x21, .LANCHOR2
- ldr x0, [x0,40]
- mov w26, 0
- str x0, [x29,120]
ldrh w23, [x19,6]
- ldrh w0, [x19,8]
- str w0, [x29,116]
+ mov w27, 0
+ ldr x0, [x0,40]
lsl w2, w23, 2
- ldr x0, [x29,120]
+ ldrh w24, [x19,8]
+ str x0, [x29,120]
ldr x22, [x19,16]
ldr x25, [x19,24]
bl ftl_memset
+ add x5, x20, :lo12:.LANCHOR2
+ str x20, [x29,112]
+ add x4, x5, 1408
str wzr, [x19,52]
- add x1, x21, :lo12:.LANCHOR2
str wzr, [x19,48]
- add x6, x1, 1408
- mov x27, x1
- mov x24, x6
- ldr x0, [x1,1048]
- ldr x20, [x1,1112]
- str x0, [x1,1416]
+ mov x26, x5
+ ldr x0, [x5,1048]
+ mov x20, x4
+ ldr x21, [x5,1112]
+ str x0, [x5,1416]
mov w0, -1
- str x20, [x1,1424]
+ str x21, [x5,1424]
strh w0, [x19]
strh w0, [x19,2]
mov w0, 1
str w0, [x19,56]
- ldr w0, [x29,116]
- sub w0, w0, #1
- str w0, [x29,112]
-.L1842:
- ldr w0, [x29,116]
- cmp w26, w0
- bge .L1859
- ldr w0, [x29,112]
- sxtw x28, w26
- cmp w26, w0
- bne .L1843
+ sub w0, w24, #1
+ str w0, [x29,108]
+.L1910:
+ cmp w27, w24
+ bge .L1927
+ ldr w0, [x29,108]
+ sxtw x28, w27
+ cmp w27, w0
+ bne .L1911
lsl x0, x28, 1
mov w1, 1
add x24, x22, x0
ldrh w0, [x22,x0]
+ mov w22, 0
bl FtlGetLastWrittenPage
- strh w26, [x19]
- sxth w27, w0
+ strh w27, [x19]
+ sxth w26, w0
add w0, w0, 1
strh w0, [x19,2]
- add x26, x21, :lo12:.LANCHOR2
- add w27, w27, 1
- add x26, x26, 1408
+ add w26, w26, 1
ldr w0, [x25,x28,lsl 2]
- mov w25, 0
str w0, [x19,48]
-.L1844:
- cmp w25, w27
- bge .L1859
+ ldr x0, [x29,112]
+ add x25, x0, :lo12:.LANCHOR2
+ add x25, x25, 1408
+.L1912:
+ cmp w22, w26
+ bge .L1927
ldrh w0, [x24]
mov w1, 1
mov w2, w1
- orr w0, w25, w0, lsl 10
- str w0, [x26,4]
- mov x0, x26
+ orr w0, w22, w0, lsl 10
+ str w0, [x25,4]
+ mov x0, x25
bl FlashReadPages
- ldr w0, [x26]
+ ldr w0, [x25]
cmn w0, #1
- beq .L1845
- ldrh w0, [x20,8]
+ beq .L1913
+ ldrh w0, [x21,8]
cmp w0, w23
- bcs .L1846
- ldrh w2, [x20]
+ bcs .L1914
+ ldrh w2, [x21]
ldrh w1, [x19,4]
cmp w2, w1
- bne .L1846
+ bne .L1914
ubfiz x0, x0, 2, 16
ldr x2, [x29,120]
- ldr w1, [x26,4]
+ ldr w1, [x25,4]
str w1, [x2,x0]
- b .L1846
-.L1845:
+ b .L1914
+.L1913:
ldrh w0, [x24]
strh w0, [x19,60]
-.L1846:
- add w25, w25, 1
- sxth w25, w25
- b .L1844
-.L1859:
- add x20, x21, :lo12:.LANCHOR2
- add x0, x20, 3752
- cmp x19, x0
- bne .L1849
- b .L1886
-.L1843:
- ldr x0, [x27,1048]
- lsl x1, x28, 1
- str x0, [x24,8]
- add x28, x22, x1
- ldrh w0, [x27,820]
- ldrh w1, [x22,x1]
+.L1914:
+ add w22, w22, 1
+ sxth w22, w22
+ b .L1912
+.L1927:
+ mov x0, x19
+ bl ftl_free_no_use_map_blk
+ ldr x0, [x29,112]
+ ldrh w1, [x19,2]
+ add x20, x0, :lo12:.LANCHOR2
+ ldrh w0, [x20,820]
+ cmp w1, w0
+ bne .L1917
+ mov x0, x19
+ bl ftl_map_blk_alloc_new_blk
+ b .L1917
+.L1911:
+ ldr x0, [x26,1048]
+ str x0, [x20,8]
+ lsl x0, x28, 1
+ add x28, x22, x0
+ ldrh w1, [x22,x0]
+ ldrh w0, [x26,820]
sub w0, w0, #1
orr w0, w0, w1, lsl 10
mov w1, 1
- str w0, [x24,4]
+ str w0, [x20,4]
mov w2, w1
- mov x0, x24
+ mov x0, x20
bl FlashReadPages
- ldr w0, [x24]
+ ldr w0, [x20]
cmn w0, #1
- beq .L1873
- ldrh w1, [x20]
+ beq .L1928
+ ldrh w1, [x21]
mov w3, 0
ldrh w0, [x19,4]
cmp w1, w0
- bne .L1883
- ldrh w0, [x20,8]
+ bne .L1934
+ ldrh w0, [x21,8]
mov w1, 64245
cmp w0, w1
- bne .L1883
-.L1851:
- ldrh w0, [x27,820]
+ bne .L1934
+.L1919:
+ ldrh w0, [x26,820]
sub w0, w0, #1
cmp w3, w0
- bge .L1854
- ldr x0, [x27,1048]
- sbfiz x2, x3, 3, 32
- ldrh w1, [x0,x2]
- cmp w1, w23
- bcs .L1852
- add x2, x0, x2
- ubfiz x1, x1, 2, 16
- ldr w0, [x2,4]
+ bge .L1922
+ ldr x2, [x26,1048]
+ sbfiz x1, x3, 3, 32
+ ldrh w0, [x2,x1]
+ cmp w0, w23
+ bcs .L1920
+ add x1, x2, x1
+ ubfiz x0, x0, 2, 16
ldr x2, [x29,120]
- str w0, [x2,x1]
-.L1852:
+ ldr w1, [x1,4]
+ str w1, [x2,x0]
+.L1920:
add w3, w3, 1
sxth w3, w3
- b .L1851
-.L1873:
+ b .L1919
+.L1928:
mov w3, 0
-.L1883:
- ldrh w0, [x27,820]
+.L1934:
+ ldrh w0, [x26,820]
cmp w3, w0
- bge .L1854
+ bge .L1922
ldrh w0, [x28]
mov w1, 1
mov w2, w1
- str x3, [x29,104]
+ str x3, [x29,96]
orr w0, w3, w0, lsl 10
- str w0, [x24,4]
- mov x0, x24
+ str w0, [x20,4]
+ mov x0, x20
bl FlashReadPages
- ldr w0, [x24]
- ldr x3, [x29,104]
+ ldr w0, [x20]
+ ldr x3, [x29,96]
cmn w0, #1
- beq .L1855
- ldrh w1, [x20,8]
- cmp w1, w23
- bcs .L1855
- ldrh w2, [x20]
- ldrh w0, [x19,4]
- cmp w2, w0
- bne .L1855
- ubfiz x1, x1, 2, 16
+ beq .L1923
+ ldrh w0, [x21,8]
+ cmp w0, w23
+ bcs .L1923
+ ldrh w2, [x21]
+ ldrh w1, [x19,4]
+ cmp w2, w1
+ bne .L1923
+ ubfiz x0, x0, 2, 16
ldr x2, [x29,120]
- ldr w0, [x24,4]
- str w0, [x2,x1]
-.L1855:
+ ldr w1, [x20,4]
+ str w1, [x2,x0]
+.L1923:
add w3, w3, 1
sxth w3, w3
- b .L1883
-.L1854:
- add w4, w26, 1
- sxth w26, w4
- b .L1842
-.L1871:
- ubfiz x23, x24, 2, 32
- ldr x0, [x20,1248]
- ldr w1, [x0,x23]
- sub w2, w1, #1
- cmn w2, #3
- bls .L1887
-.L1864:
- add w24, w24, 1
-.L1862:
- ldrh w0, [x20,856]
- cmp w24, w0
- bcc .L1871
-.L1849:
- mov x0, x19
- add x21, x21, :lo12:.LANCHOR2
- bl ftl_free_no_use_map_blk
- ldrh w1, [x19,2]
- ldrh w0, [x21,820]
- cmp w1, w0
- bne .L1861
- mov x0, x19
- bl ftl_map_blk_alloc_new_blk
- b .L1861
-.L1886:
- ldrh w0, [x20,860]
- cbz w0, .L1849
- adrp x25, .LC47
- mov w24, 0
- add x27, x20, 1408
- add x25, x25, :lo12:.LC47
- b .L1862
-.L1887:
- ldr x2, [x20,1240]
- ldr w2, [x2,x23]
- cmp w1, w2
- beq .L1864
- ldr x1, [x20,1048]
- ldr x26, [x20,1112]
- str x1, [x27,8]
- mov w1, 1
- str x26, [x27,16]
- mov w2, w1
- ldr w0, [x0,x23]
- str w0, [x27,4]
- mov x0, x27
- bl FlashReadPages
- ldr w0, [x27]
- cmn w0, #1
- beq .L1864
- ldrh w1, [x26]
- ldrh w0, [x20,3756]
- cmp w1, w0
- bne .L1864
- ldr x0, [x20,1240]
- ldr w3, [x26,4]
- ldr w1, [x0,x23]
- str w1, [x27,4]
- ldr w0, [x0,x23]
- cbnz w0, .L1866
- str w0, [x26,4]
- b .L1867
-.L1866:
- mov w1, 1
- mov x0, x27
- mov w2, w1
- str x3, [x29,120]
- bl FlashReadPages
- ldr x3, [x29,120]
-.L1867:
- ldr w4, [x26,4]
- cmp w3, w4
- bls .L1864
- ldr x1, [x20,1248]
- mov x0, x25
- ldr x2, [x20,1240]
- ldr w1, [x1,x23]
- ldr w2, [x2,x23]
- bl printk
- ldr x0, [x20,1248]
- ldr w1, [x0,x23]
- ldr x0, [x20,1240]
- str w1, [x0,x23]
- mov w1, 0
- ldr x0, [x20,1248]
- ldrh w3, [x20,3908]
- ldr w2, [x0,x23]
- ubfx x2, x2, 10, 16
-.L1868:
- cmp w1, w3
- bge .L1888
- ldrh w0, [x22,w1,sxtw 1]
- cmp w0, w2
- beq .L1864
- add w1, w1, 1
- sxth w1, w1
- b .L1868
-.L1888:
- ldr w0, [x20,848]
- cmp w3, w0
- bcs .L1864
- ubfiz x3, x3, 1, 16
- strh w2, [x22,x3]
- ldrh w0, [x20,3908]
- add w0, w0, 1
- strh w0, [x20,3908]
- mov w0, w2
- bl remove_from_free_sys_Queue
- b .L1864
-.L1861:
+ b .L1934
+.L1922:
+ add w6, w27, 1
+ sxth w27, w6
+ b .L1910
+.L1917:
mov x0, x19
bl ftl_map_blk_gc
mov x0, x19
@@ -12032,11 +12495,11 @@ FtlL2PDataInit:
bl ftl_memset
mov w2, 0
mov w4, -1
-.L1891:
+.L1937:
add x0, x20, :lo12:.LANCHOR2
ldrh w1, [x0,858]
cmp w1, w2
- bls .L1893
+ bls .L1939
ldr x3, [x0,1264]
ubfiz x1, x2, 4, 16
add x3, x3, x1
@@ -12054,8 +12517,8 @@ FtlL2PDataInit:
and x1, x1, -4
add x0, x0, x1
str x0, [x3,8]
- b .L1891
-.L1893:
+ b .L1937
+.L1939:
ldr w3, [x0,848]
add x1, x0, 3752
strh w3, [x0,3762]
@@ -12107,41 +12570,41 @@ ftl_sb_update_avl_pages:
strh wzr, [x0,4]
mov w6, 65535
ldrh w4, [x4,748]
-.L1896:
+.L1942:
cmp w2, w4
- bcs .L1902
+ bcs .L1948
add x5, x0, x2, sxtw 1
ldrh w5, [x5,16]
cmp w5, w6
- beq .L1897
+ beq .L1943
ldrh w5, [x0,4]
add w5, w5, 1
strh w5, [x0,4]
-.L1897:
+.L1943:
add w2, w2, 1
uxth w2, w2
- b .L1896
-.L1902:
+ b .L1942
+.L1948:
add x3, x3, :lo12:.LANCHOR2
mov w6, 65535
add x4, x0, x4, uxth 1
ldrh w5, [x3,818]
mov x3, x0
-.L1899:
+.L1945:
cmp x3, x4
- beq .L1903
+ beq .L1949
ldrh w2, [x3,16]
cmp w2, w6
- beq .L1900
+ beq .L1946
ldrh w2, [x0,4]
add w2, w5, w2
sub w2, w2, #1
sub w2, w2, w1
strh w2, [x0,4]
-.L1900:
+.L1946:
add x3, x3, 2
- b .L1899
-.L1903:
+ b .L1945
+.L1949:
ret
.size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
.align 2
@@ -12162,9 +12625,9 @@ FtlReUsePrevPpa:
ubfiz x22, x0, 1, 16
ldr x3, [x2,1184]
ldrh w1, [x3,x22]
- cbnz w1, .L1905
+ cbnz w1, .L1951
ldr x19, [x2,3592]
- cbz x19, .L1906
+ cbz x19, .L1952
ldrh w3, [x2,3600]
mov x4, -6148914691236517206
ldr x2, [x2,1280]
@@ -12174,11 +12637,11 @@ FtlReUsePrevPpa:
madd x19, x4, x19, x19
mov w4, 6
uxth w19, w19
-.L1907:
+.L1953:
cmp w1, w3
- beq .L1906
+ beq .L1952
cmp w19, w0
- bne .L1908
+ bne .L1954
add x21, x21, :lo12:.LANCHOR2
mov w1, w19
add x0, x21, 3592
@@ -12192,19 +12655,19 @@ FtlReUsePrevPpa:
ldrh w0, [x1,x22]
add w0, w0, 1
strh w0, [x1,x22]
- b .L1906
-.L1908:
+ b .L1952
+.L1954:
umull x19, w19, w4
ldrh w19, [x2,x19]
cmp w19, w5
- beq .L1906
+ beq .L1952
add w1, w1, 1
uxth w1, w1
- b .L1907
-.L1905:
+ b .L1953
+.L1951:
add w1, w1, 1
strh w1, [x3,x22]
-.L1906:
+.L1952:
add x1, x29, 60
mov w0, w20
mov w2, 1
@@ -12235,9 +12698,9 @@ make_superblock:
mov x23, x1
mov w25, -1
ldrh w24, [x1,748]
-.L1914:
+.L1960:
cmp w24, w21, uxth
- bls .L1925
+ bls .L1971
add x0, x23, 776
ldrh w1, [x19]
ldrb w0, [x0,x21]
@@ -12245,16 +12708,16 @@ make_superblock:
strh w25, [x22]
mov w26, w0
bl FtlBbmIsBadBlock
- cbnz w0, .L1915
+ cbnz w0, .L1961
strh w26, [x22]
ldrb w0, [x19,7]
add w0, w0, 1
strb w0, [x19,7]
-.L1915:
+.L1961:
add x21, x21, 1
add x22, x22, 2
- b .L1914
-.L1925:
+ b .L1960
+.L1971:
add x0, x20, :lo12:.LANCHOR2
ldrb w1, [x19,7]
strb wzr, [x19,9]
@@ -12262,21 +12725,21 @@ make_superblock:
mul w1, w1, w2
strh w1, [x19,4]
ldr w1, [x0,652]
- cbz w1, .L1917
+ cbz w1, .L1963
ldrh w1, [x19]
ldr x0, [x0,1168]
ldrh w0, [x0,x1,lsl 1]
cmp w0, 59
- bhi .L1917
+ bhi .L1963
mov w0, 1
strb w0, [x19,9]
-.L1917:
+.L1963:
adrp x0, .LANCHOR0+24
ldrb w0, [x0,#:lo12:.LANCHOR0+24]
- cbz w0, .L1918
+ cbz w0, .L1964
mov w0, 1
strb w0, [x19,9]
-.L1918:
+.L1964:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -12309,19 +12772,19 @@ FtlLoadSysInfo:
ldrh w0, [x20,3896]
mov w1, 65535
cmp w0, w1
- bne .L1927
-.L1935:
+ bne .L1973
+.L1981:
mov w19, -1
- b .L1928
-.L1927:
+ b .L1974
+.L1973:
mov w1, 1
bl FtlGetLastWrittenPage
sxth w22, w0
add w0, w0, 1
strh w0, [x23,2]
mov w23, 61604
-.L1929:
- tbnz w22, #31, .L1934
+.L1975:
+ tbnz w22, #31, .L1980
ldrh w0, [x20,3896]
mov w1, 1
mov w2, w1
@@ -12333,18 +12796,18 @@ FtlLoadSysInfo:
bl FlashReadPages
ldr w0, [x21]
cmn w0, #1
- beq .L1930
+ beq .L1976
ldr x0, [x20,1048]
ldr w1, [x0]
mov w0, 19539
movk w0, 0x4654, lsl 16
cmp w1, w0
- bne .L1930
+ bne .L1976
ldr x0, [x20,1112]
ldrh w0, [x0]
cmp w0, w23
- bne .L1930
-.L1934:
+ bne .L1976
+.L1980:
add x20, x19, :lo12:.LANCHOR2
mov w2, 48
add x22, x20, 1408
@@ -12370,7 +12833,7 @@ FtlLoadSysInfo:
add x1, x3, x1, lsl 2
bl ftl_memcpy
ldrh w0, [x20,860]
- cbz w0, .L1932
+ cbz w0, .L1978
ldrh w0, [x20,756]
ldr x3, [x22,8]
lsr w1, w0, 3
@@ -12382,55 +12845,57 @@ FtlLoadSysInfo:
and x1, x1, 65532
add x1, x3, x1
bl ftl_memcpy
- b .L1932
-.L1930:
+ b .L1978
+.L1976:
sub w22, w22, #1
sxth w22, w22
- b .L1929
-.L1932:
+ b .L1975
+.L1978:
add x0, x19, :lo12:.LANCHOR2
mov w2, 19539
movk w2, 0x4654, lsl 16
ldr w3, [x0,3520]
cmp w3, w2
- bne .L1935
+ bne .L1981
ldrb w3, [x0,3530]
ldrh w2, [x0,770]
- ldrh w4, [x0,3528]
- strh w4, [x0,3902]
+ ldrh w6, [x0,3528]
+ strh w6, [x0,3902]
cmp w3, w2
- bne .L1935
+ bne .L1981
ldrh w3, [x0,818]
add x21, x21, :lo12:.LANCHOR0
ldrh w2, [x0,824]
- str w4, [x0,3912]
- mul w3, w3, w4
+ adrp x4, .LANCHOR4
+ add x5, x4, :lo12:.LANCHOR4
+ mov x20, x4
+ mul w3, w3, w6
str w3, [x0,1396]
- strh wzr, [x0,3922]
+ str w6, [x5,3400]
mul w3, w3, w2
str w3, [x21,4048]
ldrh w2, [x0,1302]
ldr w3, [x0,760]
- strb wzr, [x0,3926]
+ strh wzr, [x5,3410]
sub w2, w3, w2
ldrh w3, [x0,748]
- sub w2, w2, w4
- ldrh w4, [x0,3534]
- strh w4, [x0,3608]
+ sub w2, w2, w6
+ strb wzr, [x5,3414]
+ strb wzr, [x5,3416]
udiv w2, w2, w3
ldrh w3, [x0,3536]
- strh w2, [x0,3916]
- lsr w5, w3, 6
+ strh w2, [x5,3404]
+ lsr w7, w3, 6
and w3, w3, 63
strb w3, [x0,3614]
ldrb w3, [x0,3531]
strb w3, [x0,3616]
mov w3, -1
- strh w3, [x0,3920]
+ strh w3, [x5,3408]
ldrh w3, [x0,3538]
strh w3, [x0,3656]
ldrh w3, [x0,3540]
- strh w5, [x0,3610]
+ ldrh w6, [x0,3534]
lsr w5, w3, 6
and w3, w3, 63
strb w3, [x0,3662]
@@ -12442,8 +12907,9 @@ FtlLoadSysInfo:
strh w5, [x0,3658]
lsr w5, w3, 6
and w3, w3, 63
- strb wzr, [x0,3928]
+ strh w6, [x0,3608]
strb w3, [x0,3710]
+ strh w7, [x0,3610]
strh w5, [x0,3706]
ldrb w3, [x0,3533]
strb w3, [x0,3712]
@@ -12459,48 +12925,48 @@ FtlLoadSysInfo:
str wzr, [x0,908]
str wzr, [x0,916]
str wzr, [x0,892]
- bls .L1936
+ bls .L1982
str w1, [x0,872]
-.L1936:
+.L1982:
add x0, x19, :lo12:.LANCHOR2
ldr w1, [x0,3556]
ldr w2, [x0,876]
cmp w1, w2
- bls .L1937
+ bls .L1983
str w1, [x0,876]
-.L1937:
+.L1983:
mov w0, 65535
- cmp w4, w0
- beq .L1938
+ cmp w6, w0
+ beq .L1984
add x0, x19, :lo12:.LANCHOR2
add x0, x0, 3608
bl make_superblock
-.L1938:
+.L1984:
add x1, x19, :lo12:.LANCHOR2
add x0, x1, 3656
ldrh w2, [x1,3656]
mov w1, 65535
cmp w2, w1
- beq .L1939
+ beq .L1985
bl make_superblock
-.L1939:
- add x1, x19, :lo12:.LANCHOR2
- add x0, x1, 3704
- ldrh w2, [x1,3704]
+.L1985:
+ add x19, x19, :lo12:.LANCHOR2
mov w1, 65535
+ add x0, x19, 3704
+ ldrh w2, [x19,3704]
cmp w2, w1
- beq .L1940
+ beq .L1986
bl make_superblock
-.L1940:
- add x19, x19, :lo12:.LANCHOR2
- mov w1, 65535
- add x0, x19, 3920
- ldrh w2, [x19,3920]
+.L1986:
+ add x1, x20, :lo12:.LANCHOR4
mov w19, 0
+ add x0, x1, 3408
+ ldrh w2, [x1,3408]
+ mov w1, 65535
cmp w2, w1
- beq .L1928
+ beq .L1974
bl make_superblock
-.L1928:
+.L1974:
mov w0, w19
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -12509,6 +12975,316 @@ FtlLoadSysInfo:
ret
.size FtlLoadSysInfo, .-FtlLoadSysInfo
.align 2
+ .global FtlDumpBlockInfo
+ .type FtlDumpBlockInfo, %function
+FtlDumpBlockInfo:
+ sub sp, sp, #176
+ lsr x0, x0, 10
+ stp x29, x30, [sp,16]
+ add x29, sp, 16
+ stp x19, x20, [sp,32]
+ stp x21, x22, [sp,48]
+ stp x23, x24, [sp,64]
+ stp x25, x26, [sp,80]
+ stp x27, x28, [sp,96]
+ uxtb w24, w1
+ bl P2V_block_in_plane
+ adrp x2, .LANCHOR3
+ adrp x20, .LANCHOR2
+ uxth w22, w0
+ add x1, x2, :lo12:.LANCHOR3
+ add x19, x20, :lo12:.LANCHOR2
+ adrp x0, .LC49
+ add x1, x1, 32
+ add x0, x0, :lo12:.LC49
+ ldrh w23, [x19,818]
+ bl printk
+ ldr x3, [x19,1184]
+ ubfiz x2, x22, 1, 16
+ adrp x0, .LC64
+ mov w1, w22
+ add x0, x0, :lo12:.LC64
+ ldrh w2, [x3,x2]
+ bl printk
+ strh w22, [x29,112]
+ add x0, x29, 112
+ bl make_superblock
+ cbnz w24, .L2000
+ adrp x0, .LANCHOR0+136
+ ldrb w0, [x0,#:lo12:.LANCHOR0+136]
+ cbz w0, .L2000
+ mov w0, w22
+ bl ftl_get_blk_mode
+ cmp w0, 1
+ mov w22, w0
+ bne .L1992
+ ldrh w23, [x19,820]
+ b .L1992
+.L2000:
+ mov w22, 0
+.L1992:
+ add x3, x20, :lo12:.LANCHOR2
+ adrp x0, .LC65
+ adrp x24, .LC60
+ add x0, x0, :lo12:.LC65
+ mov w1, w22
+ mov w2, w23
+ ldrh w3, [x3,818]
+ mov w21, 0
+ mov w26, 65535
+ mov w27, 56
+ mov w25, 4
+ add x24, x24, :lo12:.LC60
+ bl printk
+.L1993:
+ add x0, x20, :lo12:.LANCHOR2
+ mov x3, 0
+ mov w19, w3
+ ldrh w5, [x0,748]
+ ldrh w6, [x0,828]
+ ldrh w7, [x0,830]
+.L1994:
+ cmp w5, w3, uxth
+ bls .L2008
+ add x0, x29, 112
+ add x0, x0, x3, lsl 1
+ ldrh w1, [x0,16]
+ cmp w1, w26
+ beq .L1995
+ add x2, x20, :lo12:.LANCHOR2
+ orr w1, w21, w1, lsl 10
+ umull x0, w19, w27
+ ldr x4, [x2,992]
+ add x4, x4, x0
+ str w1, [x4,4]
+ ldr x1, [x2,992]
+ ldr x4, [x2,1072]
+ add x0, x1, x0
+ ldr x2, [x2,1128]
+ mul w1, w19, w6
+ sdiv w1, w1, w25
+ add x1, x4, x1, sxtw 2
+ str x1, [x0,8]
+ mul w1, w19, w7
+ add w19, w19, 1
+ uxth w19, w19
+ sdiv w1, w1, w25
+ add x1, x2, x1, sxtw 2
+ str x1, [x0,16]
+.L1995:
+ add x3, x3, 1
+ b .L1994
+.L2008:
+ add x0, x20, :lo12:.LANCHOR2
+ mov w1, w19
+ mov w2, w22
+ mov x28, 0
+ ldr x0, [x0,992]
+ bl FlashReadPages
+ mov x8, 56
+.L1997:
+ cmp w19, w28, uxth
+ bls .L2009
+ add x0, x20, :lo12:.LANCHOR2
+ ldrh w1, [x29,112]
+ mul x2, x28, x8
+ str x8, [x29,104]
+ add x28, x28, 1
+ ldr x4, [x0,992]
+ add x3, x4, x2
+ ldr x0, [x3,8]
+ ldr x7, [x3,16]
+ ldr w5, [x0]
+ str w5, [sp]
+ ldr w0, [x0,4]
+ str w0, [sp,8]
+ mov x0, x24
+ ldr w2, [x4,x2]
+ ldr w5, [x7,4]
+ ldr w4, [x7]
+ ldr w6, [x7,8]
+ ldr w3, [x3,4]
+ ldr w7, [x7,12]
+ bl printk
+ ldr x8, [x29,104]
+ b .L1997
+.L2009:
+ add w21, w21, 1
+ uxth w21, w21
+ cmp w21, w23
+ bne .L1993
+.L1999:
+ sub sp, x29, #16
+ mov w0, 0
+ ldp x19, x20, [sp,32]
+ ldp x21, x22, [sp,48]
+ ldp x23, x24, [sp,64]
+ ldp x25, x26, [sp,80]
+ ldp x27, x28, [sp,96]
+ ldp x29, x30, [sp,16]
+ add sp, sp, 176
+ ret
+ .size FtlDumpBlockInfo, .-FtlDumpBlockInfo
+ .align 2
+ .global FtlScanAllBlock
+ .type FtlScanAllBlock, %function
+FtlScanAllBlock:
+ sub sp, sp, #144
+ adrp x1, .LANCHOR3
+ adrp x0, .LC49
+ add x1, x1, :lo12:.LANCHOR3
+ add x0, x0, :lo12:.LC49
+ add x1, x1, 56
+ stp x29, x30, [sp,16]
+ add x29, sp, 16
+ stp x23, x24, [sp,64]
+ stp x21, x22, [sp,48]
+ adrp x23, .LC67
+ adrp x22, .LC66
+ adrp x24, .LC68
+ add x22, x22, :lo12:.LC66
+ stp x19, x20, [sp,32]
+ add x23, x23, :lo12:.LC67
+ mov w20, 0
+ add x24, x24, :lo12:.LC68
+ stp x25, x26, [sp,80]
+ bl printk
+.L2011:
+ adrp x21, .LANCHOR2
+ add x19, x21, :lo12:.LANCHOR2
+ ldrh w0, [x19,758]
+ cmp w0, w20
+ bls .L2020
+ mov w0, w20
+ strh w20, [x29,80]
+ bl ftl_get_blk_mode
+ mov w3, w0
+ ldr x4, [x19,1184]
+ ubfiz x2, x20, 1, 16
+ mov w1, w20
+ mov x0, x22
+ ldrh w2, [x4,x2]
+ bl printk
+ add x0, x29, 80
+ bl make_superblock
+ mov x1, 0
+ ldrh w6, [x19,748]
+ ldrh w7, [x19,828]
+ mov w9, 65535
+ ldrh w8, [x19,830]
+ mov w10, 56
+ mov w19, w1
+ mov w5, 4
+.L2012:
+ cmp w6, w1, uxth
+ bls .L2021
+ add x0, x29, 80
+ add x0, x0, x1, lsl 1
+ ldrh w0, [x0,16]
+ cmp w0, w9
+ beq .L2013
+ add x3, x21, :lo12:.LANCHOR2
+ lsl w0, w0, 10
+ umull x2, w19, w10
+ ldr x4, [x3,992]
+ add x4, x4, x2
+ str w0, [x4,4]
+ ldr x0, [x3,992]
+ ldr x4, [x3,1072]
+ add x2, x0, x2
+ ldr x3, [x3,1128]
+ mul w0, w19, w7
+ sdiv w0, w0, w5
+ add x0, x4, x0, sxtw 2
+ str x0, [x2,8]
+ mul w0, w19, w8
+ add w19, w19, 1
+ uxth w19, w19
+ sdiv w0, w0, w5
+ add x0, x3, x0, sxtw 2
+ str x0, [x2,16]
+.L2013:
+ add x1, x1, 1
+ b .L2012
+.L2021:
+ add x0, x21, :lo12:.LANCHOR2
+ mov w1, w19
+ mov w2, 0
+ mov x25, 0
+ mov x26, 56
+ ldr x0, [x0,992]
+ bl FlashReadPages
+.L2015:
+ add x0, x21, :lo12:.LANCHOR2
+ cmp w19, w25, uxth
+ bls .L2022
+ ldr x4, [x0,992]
+ mul x2, x25, x26
+ ldrh w1, [x29,80]
+ add x25, x25, 1
+ add x3, x4, x2
+ ldr x0, [x3,8]
+ ldr x7, [x3,16]
+ ldr w5, [x0]
+ str w5, [sp]
+ ldr w0, [x0,4]
+ str w0, [sp,8]
+ mov x0, x23
+ ldr w2, [x4,x2]
+ ldr w5, [x7,4]
+ ldr w4, [x7]
+ ldr w6, [x7,8]
+ ldr w3, [x3,4]
+ ldr w7, [x7,12]
+ bl printk
+ b .L2015
+.L2022:
+ ldr x0, [x0,992]
+ mov w1, w19
+ mov w2, 1
+ mov x25, 0
+ mov x26, 56
+ bl FlashReadPages
+.L2017:
+ cmp w19, w25, uxth
+ bls .L2023
+ add x0, x21, :lo12:.LANCHOR2
+ ldrh w1, [x29,80]
+ mul x2, x25, x26
+ add x25, x25, 1
+ ldr x4, [x0,992]
+ add x3, x4, x2
+ ldr x0, [x3,8]
+ ldr x7, [x3,16]
+ ldr w5, [x0]
+ str w5, [sp]
+ ldr w0, [x0,4]
+ str w0, [sp,8]
+ mov x0, x24
+ ldr w2, [x4,x2]
+ ldr w5, [x7,4]
+ ldr w4, [x7]
+ ldr w6, [x7,8]
+ ldr w3, [x3,4]
+ ldr w7, [x7,12]
+ bl printk
+ b .L2017
+.L2023:
+ add w20, w20, 1
+ uxth w20, w20
+ b .L2011
+.L2020:
+ sub sp, x29, #16
+ mov w0, 0
+ ldp x19, x20, [sp,32]
+ ldp x21, x22, [sp,48]
+ ldp x23, x24, [sp,64]
+ ldp x25, x26, [sp,80]
+ ldp x29, x30, [sp,16]
+ add sp, sp, 144
+ ret
+ .size FtlScanAllBlock, .-FtlScanAllBlock
+ .align 2
.global SupperBlkListInit
.type SupperBlkListInit, %function
SupperBlkListInit:
@@ -12538,19 +13314,19 @@ SupperBlkListInit:
strh wzr, [x19,3600]
strh wzr, [x19,862]
mov w19, w27
-.L1946:
+.L2025:
add x0, x21, :lo12:.LANCHOR2
ldrh w1, [x0,756]
cmp w19, w1
- bge .L1953
+ bge .L2032
mov w20, 0
ldrh w3, [x0,748]
ldrh w2, [x0,818]
mov w28, w20
mov x26, x0
-.L1954:
+.L2033:
cmp w28, w3
- bge .L1955
+ bge .L2034
add x0, x26, 776
mov w1, w19
str x2, [x29,96]
@@ -12560,54 +13336,54 @@ SupperBlkListInit:
bl FtlBbmIsBadBlock
ldr x3, [x29,104]
ldr x2, [x29,96]
- cbnz w0, .L1947
+ cbnz w0, .L2026
add w20, w2, w20
sxth w20, w20
-.L1947:
+.L2026:
add w28, w28, 1
sxth w28, w28
- b .L1954
-.L1955:
- cbz w20, .L1949
+ b .L2033
+.L2034:
+ cbz w20, .L2028
sdiv w20, w25, w20
sxth w20, w20
- b .L1950
-.L1949:
+ b .L2029
+.L2028:
add x0, x21, :lo12:.LANCHOR2
ldr x0, [x0,1184]
strh w24, [x0,w19,sxtw 1]
-.L1950:
+.L2029:
add x0, x21, :lo12:.LANCHOR2
ldr x1, [x0,1280]
smaddl x1, w19, w23, x1
strh w20, [x1,4]
ldrh w1, [x0,3608]
cmp w19, w1
- beq .L1951
+ beq .L2030
ldrh w1, [x0,3656]
cmp w19, w1
- beq .L1951
+ beq .L2030
ldrh w1, [x0,3704]
cmp w19, w1
- beq .L1951
+ beq .L2030
ldr x0, [x0,1184]
ldrh w0, [x0,w19,sxtw 1]
- cbnz w0, .L1952
+ cbnz w0, .L2031
add w27, w27, 1
mov w0, w19
uxth w27, w27
bl INSERT_FREE_LIST
- b .L1951
-.L1952:
+ b .L2030
+.L2031:
add w22, w22, 1
mov w0, w19
uxth w22, w22
bl INSERT_DATA_LIST
-.L1951:
+.L2030:
add w19, w19, 1
sxth w19, w19
- b .L1946
-.L1953:
+ b .L2025
+.L2032:
strh w22, [x0,3584]
strh w27, [x0,3600]
mov w0, 0
@@ -12623,24 +13399,25 @@ SupperBlkListInit:
.global Ftl_save_ext_data
.type Ftl_save_ext_data, %function
Ftl_save_ext_data:
- adrp x0, .LANCHOR2
+ adrp x0, .LANCHOR4
mov w1, 19539
- add x0, x0, :lo12:.LANCHOR2
+ add x0, x0, :lo12:.LANCHOR4
movk w1, 0x4654, lsl 16
stp x29, x30, [sp, -16]!
- add x2, x0, 3968
+ add x2, x0, 3456
add x29, sp, 0
- ldr w3, [x0,3968]
+ ldr w3, [x0,3456]
cmp w3, w1
- bne .L1956
+ bne .L2035
mov w1, 72
movk w1, 0x5000, lsl 16
str w1, [x2,4]
- adrp x1, .LANCHOR4
- add x1, x1, :lo12:.LANCHOR4
- ldr w3, [x1,128]
- ldr w1, [x1,132]
- str w1, [x2,92]
+ ldr w1, [x0,3968]
+ ldr w0, [x0,3972]
+ str w0, [x2,92]
+ adrp x0, .LANCHOR2
+ add x0, x0, :lo12:.LANCHOR2
+ str w1, [x2,88]
ldr w1, [x0,880]
str w1, [x2,8]
ldr w1, [x0,884]
@@ -12667,9 +13444,8 @@ Ftl_save_ext_data:
mov w1, 1
str w0, [x2,64]
mov w0, 0
- str w3, [x2,88]
bl FtlVendorPartWrite
-.L1956:
+.L2035:
ldp x29, x30, [sp], 16
ret
.size Ftl_save_ext_data, .-Ftl_save_ext_data
@@ -12683,30 +13459,30 @@ FtlEctTblFlush:
stp x29, x30, [sp, -16]!
add x29, sp, 0
ldr w4, [x3,652]
- cbz w4, .L1959
+ cbz w4, .L2038
ldr w3, [x3,920]
cmp w3, 29
mov w3, 4
csel w1, w1, w3, hi
-.L1959:
+.L2038:
adrp x3, .LANCHOR4
add x3, x3, :lo12:.LANCHOR4
- ldrh w4, [x3,136]
+ ldrh w4, [x3,3976]
cmp w4, 31
- bhi .L1960
+ bhi .L2039
add w4, w4, 1
mov w1, 1
- strh w4, [x3,136]
-.L1960:
- cbnz w0, .L1961
+ strh w4, [x3,3976]
+.L2039:
+ cbnz w0, .L2040
add x0, x2, :lo12:.LANCHOR2
ldr x3, [x0,1160]
ldr w0, [x3,20]
add w1, w1, w0
ldr w0, [x3,16]
cmp w0, w1
- bcc .L1962
-.L1961:
+ bcc .L2041
+.L2040:
add x2, x2, :lo12:.LANCHOR2
ldr x0, [x2,1160]
ldr w1, [x0,16]
@@ -12726,7 +13502,7 @@ FtlEctTblFlush:
mov w0, 64
bl FtlVendorPartWrite
bl Ftl_save_ext_data
-.L1962:
+.L2041:
mov w0, 0
ldp x29, x30, [sp], 16
ret
@@ -12740,86 +13516,88 @@ Ftl_load_ext_data:
mov w0, 0
add x29, sp, 0
stp x19, x20, [sp,16]
- adrp x19, .LANCHOR2
+ adrp x19, .LANCHOR4
str x21, [sp,32]
- add x20, x19, :lo12:.LANCHOR2
- add x21, x20, 3968
+ add x20, x19, :lo12:.LANCHOR4
+ add x21, x20, 3456
mov x2, x21
bl FtlVendorPartRead
- ldr w1, [x20,3968]
+ ldr w1, [x20,3456]
mov w0, 19539
movk w0, 0x4654, lsl 16
cmp w1, w0
- beq .L1967
+ beq .L2046
mov x0, x21
mov w1, 0
mov w2, 512
bl ftl_memset
mov w0, 19539
movk w0, 0x4654, lsl 16
- str w0, [x20,3968]
-.L1967:
- add x0, x19, :lo12:.LANCHOR2
+ str w0, [x20,3456]
+.L2046:
+ add x1, x19, :lo12:.LANCHOR4
mov w2, 19539
movk w2, 0x4654, lsl 16
- adrp x20, .LANCHOR4
- ldr w3, [x0,3968]
+ add x0, x1, 3456
+ adrp x20, .LANCHOR2
+ ldr w3, [x1,3456]
cmp w3, w2
- bne .L1968
- add x2, x20, :lo12:.LANCHOR4
- ldr w3, [x0,4056]
- ldr w1, [x0,4028]
- str w1, [x0,868]
- str w3, [x2,128]
- ldr w3, [x0,4060]
- str w3, [x2,132]
- ldr w2, [x0,3976]
- str w2, [x0,880]
- ldr w2, [x0,3980]
- str w2, [x0,884]
- ldr w2, [x0,3984]
- str w2, [x0,900]
- ldr w2, [x0,3988]
- str w2, [x0,896]
- ldr w2, [x0,3996]
- str w2, [x0,908]
- ldr w2, [x0,4000]
- str w2, [x0,912]
- ldr w2, [x0,4004]
- str w2, [x0,888]
- ldr w2, [x0,4008]
- str w2, [x0,892]
- ldr w2, [x0,4012]
- str w2, [x0,916]
- ldr w2, [x0,4016]
- str w2, [x0,920]
-.L1968:
- add x0, x19, :lo12:.LANCHOR2
+ bne .L2047
+ ldr w2, [x1,3544]
+ str w2, [x1,3968]
+ ldr w2, [x1,3548]
+ str w2, [x1,3972]
+ add x1, x20, :lo12:.LANCHOR2
+ ldr w2, [x0,8]
+ str w2, [x1,880]
+ ldr w2, [x0,12]
+ str w2, [x1,884]
+ ldr w2, [x0,16]
+ str w2, [x1,900]
+ ldr w2, [x0,20]
+ str w2, [x1,896]
+ ldr w2, [x0,28]
+ str w2, [x1,908]
+ ldr w2, [x0,32]
+ str w2, [x1,912]
+ ldr w2, [x0,36]
+ str w2, [x1,888]
+ ldr w2, [x0,40]
+ str w2, [x1,892]
+ ldr w2, [x0,44]
+ str w2, [x1,916]
+ ldr w2, [x0,48]
+ ldr w0, [x0,60]
+ str w2, [x1,920]
+ str w0, [x1,868]
+.L2047:
+ add x1, x19, :lo12:.LANCHOR4
+ add x0, x20, :lo12:.LANCHOR2
+ ldr w2, [x1,3524]
mov w1, 34661
movk w1, 0x1234, lsl 16
- ldr w2, [x0,4036]
str wzr, [x0,864]
cmp w2, w1
- bne .L1969
+ bne .L2048
mov w1, 1
str w1, [x0,652]
- adrp x0, .LC45
- adrp x1, .LC48
- add x0, x0, :lo12:.LC45
- add x1, x1, :lo12:.LC48
+ adrp x0, .LC47
+ adrp x1, .LC69
+ add x0, x0, :lo12:.LC47
+ add x1, x1, :lo12:.LC69
bl printk
-.L1969:
- add x0, x19, :lo12:.LANCHOR2
- add x20, x20, :lo12:.LANCHOR4
+.L2048:
+ add x0, x20, :lo12:.LANCHOR2
+ add x19, x19, :lo12:.LANCHOR4
+ ldr x21, [sp,32]
ldrh w2, [x0,808]
ldr w3, [x0,904]
ldr w1, [x0,908]
ldrh w0, [x0,756]
madd w1, w2, w3, w1
udiv w0, w1, w0
- str w0, [x20,140]
+ str w0, [x19,3980]
ldp x19, x20, [sp,16]
- ldr x21, [sp,32]
ldp x29, x30, [sp], 48
ret
.size Ftl_load_ext_data, .-Ftl_load_ext_data
@@ -12842,25 +13620,25 @@ update_multiplier_value:
mov w19, w22
ldrh w25, [x1,818]
mov x23, x1
-.L1971:
+.L2050:
cmp w24, w22, uxth
- bls .L1978
+ bls .L2057
add x0, x23, 776
mov w1, w20
ldrb w0, [x0,x22]
bl V2P_block
bl FtlBbmIsBadBlock
- cbnz w0, .L1972
+ cbnz w0, .L2051
add w19, w19, w25
uxth w19, w19
-.L1972:
+.L2051:
add x22, x22, 1
- b .L1971
-.L1978:
- cbz w19, .L1974
+ b .L2050
+.L2057:
+ cbz w19, .L2053
mov w0, 32768
sdiv w19, w0, w19
-.L1974:
+.L2053:
add x0, x21, :lo12:.LANCHOR2
mov w1, 6
umull x20, w20, w1
@@ -12883,7 +13661,7 @@ GetFreeBlockMinEraseCount:
add x2, x2, :lo12:.LANCHOR2
ldr x1, [x2,3592]
mov w0, w1
- cbz x1, .L1980
+ cbz x1, .L2059
ldr x0, [x2,1280]
sub x1, x1, x0
mov x0, -6148914691236517206
@@ -12892,7 +13670,7 @@ GetFreeBlockMinEraseCount:
ldr x0, [x2,1168]
and x1, x1, 65535
ldrh w0, [x0,x1,lsl 1]
-.L1980:
+.L2059:
ret
.size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
.align 2
@@ -12904,7 +13682,7 @@ GetFreeBlockMaxEraseCount:
add x5, x2, :lo12:.LANCHOR2
ldr x1, [x5,3592]
mov w0, w1
- cbz x1, .L1983
+ cbz x1, .L2062
ldrh w3, [x5,3600]
mov w0, 7
mov w6, 6
@@ -12920,25 +13698,25 @@ GetFreeBlockMaxEraseCount:
madd x1, x3, x1, x1
mov w3, 0
uxth w1, w1
-.L1985:
+.L2064:
cmp w3, w4
- beq .L1988
+ beq .L2067
umull x5, w1, w6
ldrh w5, [x0,x5]
cmp w5, w7
- bne .L1986
-.L1988:
+ bne .L2065
+.L2067:
add x2, x2, :lo12:.LANCHOR2
ubfiz x1, x1, 1, 16
ldr x0, [x2,1168]
ldrh w0, [x0,x1]
- b .L1983
-.L1986:
+ b .L2062
+.L2065:
add w3, w3, 1
mov w1, w5
uxth w3, w3
- b .L1985
-.L1983:
+ b .L2064
+.L2062:
ret
.size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
.align 2
@@ -12946,11 +13724,11 @@ GetFreeBlockMaxEraseCount:
.type FtlPrintInfo2buf, %function
FtlPrintInfo2buf:
stp x29, x30, [sp, -112]!
- adrp x1, .LC49
+ adrp x1, .LC70
add x29, sp, 0
stp x25, x26, [sp,64]
adrp x25, .LANCHOR0
- add x1, x1, :lo12:.LC49
+ add x1, x1, :lo12:.LC70
add x25, x25, :lo12:.LANCHOR0
str x27, [sp,80]
stp x23, x24, [sp,48]
@@ -12960,459 +13738,459 @@ FtlPrintInfo2buf:
bl strcpy
add x20, x23, 12
ldr w2, [x25,4016]
- adrp x1, .LC50
+ adrp x1, .LC71
adrp x24, .LANCHOR2
mov x0, x20
- add x1, x1, :lo12:.LC50
+ add x1, x1, :lo12:.LC71
add x22, x24, :lo12:.LANCHOR2
bl sprintf
add x20, x20, x0, sxtw
- adrp x1, .LC51
+ adrp x1, .LC72
mov x0, x20
ldr w2, [x22,836]
- add x1, x1, :lo12:.LC51
+ add x1, x1, :lo12:.LC72
bl sprintf
add x20, x20, x0, sxtw
adrp x0, .LANCHOR1+3064
ldr w0, [x0,#:lo12:.LANCHOR1+3064]
cmp w0, 1
- beq .L1991
+ beq .L2070
sub w0, w20, w23
- b .L1992
-.L1991:
+ b .L2071
+.L2070:
add x0, x29, 96
add x1, x29, 100
add x2, x29, 104
add x3, x29, 108
- adrp x19, .LANCHOR4
bl NandcGetTimeCfg
- add x19, x19, :lo12:.LANCHOR4
ldr w4, [x29,104]
- adrp x1, .LC52
+ adrp x1, .LC73
ldr w5, [x29,108]
- add x1, x1, :lo12:.LC52
- ldr w3, [x29,100]
mov x0, x20
+ ldr w3, [x29,100]
+ add x1, x1, :lo12:.LC73
ldr w2, [x29,96]
bl sprintf
add x21, x20, x0, sxtw
- adrp x1, .LC53
+ adrp x1, .LC74
mov x0, x21
- add x1, x1, :lo12:.LC53
+ add x1, x1, :lo12:.LC74
add x21, x21, 10
+ adrp x20, .LANCHOR4
bl strcpy
+ add x20, x20, :lo12:.LANCHOR4
ldr w2, [x22,1396]
- adrp x1, .LC54
+ adrp x1, .LC75
mov x0, x21
- add x1, x1, :lo12:.LC54
+ add x1, x1, :lo12:.LC75
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,3892]
- adrp x1, .LC55
+ adrp x1, .LC76
mov x0, x21
- add x1, x1, :lo12:.LC55
+ add x1, x1, :lo12:.LC76
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,900]
- adrp x1, .LC56
+ adrp x1, .LC77
mov x0, x21
- add x1, x1, :lo12:.LC56
+ add x1, x1, :lo12:.LC77
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,888]
- adrp x1, .LC57
+ adrp x1, .LC78
mov x0, x21
- add x1, x1, :lo12:.LC57
+ add x1, x1, :lo12:.LC78
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,884]
- adrp x1, .LC58
+ adrp x1, .LC79
mov x0, x21
- add x1, x1, :lo12:.LC58
+ add x1, x1, :lo12:.LC79
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,892]
- adrp x1, .LC59
+ adrp x1, .LC80
mov x0, x21
- add x1, x1, :lo12:.LC59
+ add x1, x1, :lo12:.LC80
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,896]
- adrp x1, .LC60
+ adrp x1, .LC81
mov x0, x21
- add x1, x1, :lo12:.LC60
+ add x1, x1, :lo12:.LC81
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,880]
- adrp x1, .LC61
+ adrp x1, .LC82
mov x0, x21
- add x1, x1, :lo12:.LC61
+ add x1, x1, :lo12:.LC82
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x19,128]
- adrp x1, .LC62
+ ldr w2, [x20,3968]
+ adrp x1, .LC83
mov x0, x21
- add x1, x1, :lo12:.LC62
+ add x1, x1, :lo12:.LC83
lsr w2, w2, 11
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x19,132]
- adrp x1, .LC63
+ ldr w2, [x20,3972]
+ adrp x1, .LC84
mov x0, x21
- add x1, x1, :lo12:.LC63
+ add x1, x1, :lo12:.LC84
lsr w2, w2, 11
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,872]
- adrp x1, .LC64
+ adrp x1, .LC85
mov x0, x21
- add x1, x1, :lo12:.LC64
+ add x1, x1, :lo12:.LC85
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,876]
- adrp x1, .LC65
- add x1, x1, :lo12:.LC65
+ adrp x1, .LC86
+ add x1, x1, :lo12:.LC86
mov x0, x21
bl sprintf
add x21, x21, x0, sxtw
bl FtlBbtCalcTotleCnt
uxth w3, w0
ldrh w2, [x22,1302]
- adrp x1, .LC66
+ adrp x1, .LC87
mov x0, x21
- add x1, x1, :lo12:.LC66
+ add x1, x1, :lo12:.LC87
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3600]
- adrp x1, .LC67
+ adrp x1, .LC88
mov x0, x21
- add x1, x1, :lo12:.LC67
+ add x1, x1, :lo12:.LC88
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,904]
- adrp x1, .LC68
+ adrp x1, .LC89
mov x0, x21
- add x1, x1, :lo12:.LC68
+ add x1, x1, :lo12:.LC89
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,908]
- adrp x1, .LC69
+ adrp x1, .LC90
mov x0, x21
- add x1, x1, :lo12:.LC69
+ add x1, x1, :lo12:.LC90
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x19,140]
- adrp x1, .LC70
+ ldr w2, [x20,3980]
+ adrp x1, .LC91
mov x0, x21
- add x1, x1, :lo12:.LC70
+ add x1, x1, :lo12:.LC91
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,912]
- adrp x1, .LC71
+ adrp x1, .LC92
mov x0, x21
- add x1, x1, :lo12:.LC71
+ add x1, x1, :lo12:.LC92
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,916]
- adrp x1, .LC72
+ adrp x1, .LC93
mov x0, x21
- add x1, x1, :lo12:.LC72
+ add x1, x1, :lo12:.LC93
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,920]
- adrp x1, .LC73
+ adrp x1, .LC94
mov x0, x21
- add x1, x1, :lo12:.LC73
+ add x1, x1, :lo12:.LC94
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3550]
- adrp x1, .LC74
+ adrp x1, .LC95
mov x0, x21
- add x1, x1, :lo12:.LC74
+ add x1, x1, :lo12:.LC95
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3548]
- adrp x1, .LC75
+ adrp x1, .LC96
mov x0, x21
- add x1, x1, :lo12:.LC75
+ add x1, x1, :lo12:.LC96
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x25,4048]
- adrp x1, .LC76
+ adrp x1, .LC97
mov x0, x21
- add x1, x1, :lo12:.LC76
+ add x1, x1, :lo12:.LC97
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,852]
- adrp x1, .LC77
+ adrp x1, .LC98
mov x0, x21
- add x1, x1, :lo12:.LC77
+ add x1, x1, :lo12:.LC98
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,744]
- adrp x1, .LC78
+ adrp x1, .LC99
mov x0, x21
- add x1, x1, :lo12:.LC78
+ add x1, x1, :lo12:.LC99
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,1470]
- adrp x1, .LC79
+ adrp x1, .LC100
mov x0, x21
- add x1, x1, :lo12:.LC79
+ add x1, x1, :lo12:.LC100
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,756]
- adrp x1, .LC80
+ adrp x1, .LC101
mov x0, x21
- add x1, x1, :lo12:.LC80
+ add x1, x1, :lo12:.LC101
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3916]
- adrp x1, .LC81
+ ldrh w2, [x20,3404]
+ adrp x1, .LC102
mov x0, x21
- add x1, x1, :lo12:.LC81
+ add x1, x1, :lo12:.LC102
bl sprintf
add x21, x21, x0, sxtw
ldr w2, [x22,760]
- adrp x1, .LC82
+ adrp x1, .LC103
mov x0, x21
- add x1, x1, :lo12:.LC82
+ add x1, x1, :lo12:.LC103
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3896]
- adrp x1, .LC83
+ adrp x1, .LC104
mov x0, x21
- add x1, x1, :lo12:.LC83
+ add x1, x1, :lo12:.LC104
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,1296]
- adrp x1, .LC84
+ adrp x1, .LC105
mov x0, x21
- add x1, x1, :lo12:.LC84
+ add x1, x1, :lo12:.LC105
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3610]
- adrp x1, .LC85
+ adrp x1, .LC106
mov x0, x21
- add x1, x1, :lo12:.LC85
+ add x1, x1, :lo12:.LC106
bl sprintf
add x21, x21, x0, sxtw
ldrb w2, [x22,3614]
- adrp x1, .LC86
+ adrp x1, .LC107
mov x0, x21
- add x1, x1, :lo12:.LC86
+ add x1, x1, :lo12:.LC107
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3608]
- adrp x1, .LC87
+ adrp x1, .LC108
mov x0, x21
- add x1, x1, :lo12:.LC87
+ add x1, x1, :lo12:.LC108
bl sprintf
add x21, x21, x0, sxtw
ldrb w2, [x22,3616]
- adrp x1, .LC88
+ adrp x1, .LC109
mov x0, x21
- add x1, x1, :lo12:.LC88
+ add x1, x1, :lo12:.LC109
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3612]
- adrp x1, .LC89
+ adrp x1, .LC110
mov x0, x21
- add x1, x1, :lo12:.LC89
+ add x1, x1, :lo12:.LC110
bl sprintf
add x21, x21, x0, sxtw
ldrh w3, [x22,3608]
- adrp x1, .LC90
+ adrp x1, .LC111
ldr x2, [x22,1184]
mov x0, x21
- add x1, x1, :lo12:.LC90
+ add x1, x1, :lo12:.LC111
ldrh w2, [x2,x3,lsl 1]
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3658]
- adrp x1, .LC91
+ adrp x1, .LC112
mov x0, x21
- add x1, x1, :lo12:.LC91
+ add x1, x1, :lo12:.LC112
bl sprintf
add x21, x21, x0, sxtw
ldrb w2, [x22,3662]
- adrp x1, .LC92
+ adrp x1, .LC113
mov x0, x21
- add x1, x1, :lo12:.LC92
+ add x1, x1, :lo12:.LC113
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3656]
- adrp x1, .LC93
+ adrp x1, .LC114
mov x0, x21
- add x1, x1, :lo12:.LC93
+ add x1, x1, :lo12:.LC114
bl sprintf
add x21, x21, x0, sxtw
ldrb w2, [x22,3664]
- adrp x1, .LC94
+ adrp x1, .LC115
mov x0, x21
- add x1, x1, :lo12:.LC94
+ add x1, x1, :lo12:.LC115
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3660]
- adrp x1, .LC95
+ adrp x1, .LC116
mov x0, x21
- add x1, x1, :lo12:.LC95
+ add x1, x1, :lo12:.LC116
bl sprintf
add x21, x21, x0, sxtw
ldrh w3, [x22,3656]
- adrp x1, .LC96
+ adrp x1, .LC117
ldr x2, [x22,1184]
mov x0, x21
- add x1, x1, :lo12:.LC96
+ add x1, x1, :lo12:.LC117
ldrh w2, [x2,x3,lsl 1]
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3706]
- adrp x1, .LC97
+ adrp x1, .LC118
mov x0, x21
- add x1, x1, :lo12:.LC97
+ add x1, x1, :lo12:.LC118
bl sprintf
add x21, x21, x0, sxtw
ldrb w2, [x22,3710]
- adrp x1, .LC98
+ adrp x1, .LC119
mov x0, x21
- add x1, x1, :lo12:.LC98
+ add x1, x1, :lo12:.LC119
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3704]
- adrp x1, .LC99
+ adrp x1, .LC120
mov x0, x21
- add x1, x1, :lo12:.LC99
+ add x1, x1, :lo12:.LC120
bl sprintf
add x21, x21, x0, sxtw
ldrb w2, [x22,3712]
- adrp x1, .LC100
+ adrp x1, .LC121
mov x0, x21
- add x1, x1, :lo12:.LC100
+ add x1, x1, :lo12:.LC121
bl sprintf
add x21, x21, x0, sxtw
ldrh w2, [x22,3708]
- adrp x1, .LC101
+ adrp x1, .LC122
mov x0, x21
- add x1, x1, :lo12:.LC101
+ add x1, x1, :lo12:.LC122
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3922]
- adrp x1, .LC102
+ ldrh w2, [x20,3410]
+ adrp x1, .LC123
mov x0, x21
- add x1, x1, :lo12:.LC102
+ add x1, x1, :lo12:.LC123
bl sprintf
add x21, x21, x0, sxtw
- ldrb w2, [x22,3926]
- adrp x1, .LC103
+ ldrb w2, [x20,3414]
+ adrp x1, .LC124
mov x0, x21
- add x1, x1, :lo12:.LC103
+ add x1, x1, :lo12:.LC124
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3920]
- adrp x1, .LC104
+ ldrh w2, [x20,3408]
+ adrp x1, .LC125
mov x0, x21
- add x1, x1, :lo12:.LC104
+ add x1, x1, :lo12:.LC125
bl sprintf
add x21, x21, x0, sxtw
- ldrb w2, [x22,3928]
- adrp x1, .LC105
+ ldrb w2, [x20,3416]
+ adrp x1, .LC126
mov x0, x21
- add x1, x1, :lo12:.LC105
+ add x1, x1, :lo12:.LC126
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3924]
- adrp x1, .LC106
+ ldrh w2, [x20,3412]
+ adrp x1, .LC127
mov x0, x21
- add x1, x1, :lo12:.LC106
+ add x1, x1, :lo12:.LC127
bl sprintf
add x21, x21, x0, sxtw
ldr w3, [x22,868]
- adrp x1, .LC107
+ adrp x1, .LC128
ldr w2, [x22,652]
- add x1, x1, :lo12:.LC107
- ldr w4, [x22,4052]
+ add x1, x1, :lo12:.LC128
+ ldr w4, [x20,3540]
mov x0, x21
- ldr w5, [x22,4044]
+ ldr w5, [x20,3532]
orr w2, w2, w3, lsl 8
- ldr w3, [x22,4048]
+ ldr w3, [x20,3536]
bl sprintf
add x19, x21, x0, sxtw
- ldr w2, [x22,4040]
- adrp x1, .LC108
+ ldr w2, [x20,3528]
+ adrp x1, .LC129
mov x0, x19
- add x1, x1, :lo12:.LC108
+ add x1, x1, :lo12:.LC129
bl sprintf
add x19, x19, x0, sxtw
- ldr w2, [x22,4064]
- adrp x1, .LC109
+ ldr w2, [x20,3552]
+ adrp x1, .LC130
mov x0, x19
- add x1, x1, :lo12:.LC109
+ add x1, x1, :lo12:.LC130
bl sprintf
add x19, x19, x0, sxtw
ldrh w2, [x22,952]
- adrp x1, .LC110
+ adrp x1, .LC131
mov x0, x19
- add x1, x1, :lo12:.LC110
+ add x1, x1, :lo12:.LC131
bl sprintf
add x19, x19, x0, sxtw
ldrh w2, [x22,954]
- adrp x1, .LC111
+ adrp x1, .LC132
mov x0, x19
- add x1, x1, :lo12:.LC111
+ add x1, x1, :lo12:.LC132
bl sprintf
add x19, x19, x0, sxtw
ldr w2, [x22,940]
- adrp x1, .LC112
+ adrp x1, .LC133
mov x0, x19
- add x1, x1, :lo12:.LC112
+ add x1, x1, :lo12:.LC133
bl sprintf
add x19, x19, x0, sxtw
ldrh w2, [x22,956]
- adrp x1, .LC113
- add x1, x1, :lo12:.LC113
+ adrp x1, .LC134
+ add x1, x1, :lo12:.LC134
mov x0, x19
bl sprintf
add x19, x19, x0, sxtw
bl GetFreeBlockMinEraseCount
uxth w2, w0
- adrp x1, .LC114
+ adrp x1, .LC135
mov x0, x19
- add x1, x1, :lo12:.LC114
+ add x1, x1, :lo12:.LC135
bl sprintf
add x19, x19, x0, sxtw
ldrh w0, [x22,3600]
bl GetFreeBlockMaxEraseCount
uxth w2, w0
- adrp x1, .LC115
+ adrp x1, .LC136
mov x0, x19
- add x1, x1, :lo12:.LC115
+ add x1, x1, :lo12:.LC136
bl sprintf
add x19, x19, x0, sxtw
- ldrh w0, [x22,3920]
+ ldrh w0, [x20,3408]
mov w1, 65535
cmp w0, w1
- beq .L1993
+ beq .L2072
ubfiz x2, x0, 1, 16
ldr x3, [x22,1184]
- adrp x1, .LC116
+ adrp x1, .LC137
mov x0, x19
- add x1, x1, :lo12:.LC116
+ add x1, x1, :lo12:.LC137
ldrh w2, [x3,x2]
bl sprintf
add x19, x19, x0, sxtw
-.L1993:
+.L2072:
mov w0, 0
- adrp x22, .LC117
+ adrp x22, .LC138
mov w20, 0
mov w27, 65535
bl List_get_gc_head_node
mov w26, 6
uxth w3, w0
- add x22, x22, :lo12:.LC117
-.L1995:
+ add x22, x22, :lo12:.LC138
+.L2074:
cmp w3, w27
- beq .L1994
+ beq .L2073
add x21, x24, :lo12:.LANCHOR2
ubfiz x6, x3, 1, 16
umull x25, w3, w26
@@ -13432,14 +14210,14 @@ FtlPrintInfo2buf:
ldr x0, [x21,1280]
cmp w20, 16
ldrh w3, [x0,x25]
- bne .L1995
-.L1994:
+ bne .L2074
+.L2073:
add x1, x24, :lo12:.LANCHOR2
- adrp x22, .LC118
+ adrp x22, .LC139
mov w20, 0
mov w27, 65535
mov w26, 6
- add x22, x22, :lo12:.LC118
+ add x22, x22, :lo12:.LC139
ldr x0, [x1,3592]
ldr x3, [x1,1280]
sub x3, x0, x3
@@ -13447,9 +14225,9 @@ FtlPrintInfo2buf:
asr x3, x3, 1
madd x3, x0, x3, x3
uxth w3, w3
-.L1997:
+.L2076:
cmp w3, w27
- beq .L1996
+ beq .L2075
add x21, x24, :lo12:.LANCHOR2
ubfiz x5, x3, 1, 16
umull x25, w3, w26
@@ -13467,10 +14245,10 @@ FtlPrintInfo2buf:
ldr x0, [x21,1280]
cmp w20, 4
ldrh w3, [x0,x25]
- bne .L1997
-.L1996:
+ bne .L2076
+.L2075:
sub w0, w19, w23
-.L1992:
+.L2071:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -13484,11 +14262,11 @@ FtlPrintInfo2buf:
.type ftl_proc_ftl_read, %function
ftl_proc_ftl_read:
stp x29, x30, [sp, -32]!
- adrp x1, .LC45
- adrp x2, .LC119
+ adrp x1, .LC47
+ adrp x2, .LC140
add x29, sp, 0
- add x1, x1, :lo12:.LC45
- add x2, x2, :lo12:.LC119
+ add x1, x1, :lo12:.LC47
+ add x2, x2, :lo12:.LC140
stp x19, x20, [sp,16]
mov x20, x0
bl sprintf
@@ -13514,76 +14292,76 @@ GetSwlReplaceBlock:
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
adrp x19, .LANCHOR2
- ldr w3, [x1,140]
+ ldr w3, [x1,3980]
add x1, x19, :lo12:.LANCHOR2
ldr w2, [x1,920]
cmp w3, w2
- bcs .L2002
+ bcs .L2081
str wzr, [x1,904]
ldrh w3, [x1,756]
ldr x5, [x1,1168]
mov x1, 0
-.L2003:
+.L2082:
cmp w3, w1
- bls .L2035
+ bls .L2114
add x4, x19, :lo12:.LANCHOR2
ldrh w6, [x5,x1,lsl 1]
add x1, x1, 1
ldr w2, [x4,904]
add w2, w6, w2
str w2, [x4,904]
- b .L2003
-.L2035:
+ b .L2082
+.L2114:
add x2, x19, :lo12:.LANCHOR2
add x4, x0, :lo12:.LANCHOR4
ldr w1, [x2,904]
udiv w3, w1, w3
- str w3, [x4,140]
+ str w3, [x4,3980]
ldr w3, [x2,908]
sub w1, w1, w3
ldrh w3, [x2,808]
udiv w1, w1, w3
str w1, [x2,904]
- b .L2005
-.L2002:
+ b .L2084
+.L2081:
ldr w2, [x1,916]
cmp w3, w2
- bls .L2005
+ bls .L2084
add w2, w2, 1
str w2, [x1,916]
mov w1, 0
-.L2007:
+.L2086:
add x2, x19, :lo12:.LANCHOR2
ldrh w3, [x2,756]
cmp w1, w3
- bcs .L2005
+ bcs .L2084
ubfiz x3, x1, 1, 32
ldr x4, [x2,1168]
add w1, w1, 1
ldrh w2, [x4,x3]
add w2, w2, 1
strh w2, [x4,x3]
- b .L2007
-.L2005:
+ b .L2086
+.L2084:
add x1, x19, :lo12:.LANCHOR2
add x0, x0, :lo12:.LANCHOR4
ldr w21, [x1,920]
- ldr w23, [x0,140]
+ ldr w23, [x0,3980]
add w0, w21, 256
cmp w0, w23
- bls .L2010
+ bls .L2089
ldr w2, [x1,916]
add w0, w21, 768
cmp w0, w2
- bls .L2010
+ bls .L2089
ldr w0, [x1,652]
- cbz w0, .L2013
+ cbz w0, .L2092
cmp w21, 30
- bls .L2010
-.L2013:
+ bls .L2089
+.L2092:
mov w0, 65535
- b .L2012
-.L2010:
+ b .L2091
+.L2089:
add x0, x19, :lo12:.LANCHOR2
ldrh w0, [x0,3600]
add w0, w0, w0, lsl 1
@@ -13592,13 +14370,13 @@ GetSwlReplaceBlock:
uxth w6, w0
add w0, w21, 64
cmp w6, w0
- bcs .L2022
+ bcs .L2101
cmp w21, 30
- bhi .L2013
-.L2022:
+ bhi .L2092
+.L2101:
add x1, x19, :lo12:.LANCHOR2
ldr x3, [x1,3568]
- cbz x3, .L2013
+ cbz x3, .L2092
mov w26, 65535
mov x0, -6148914691236517206
ldrh w9, [x1,756]
@@ -13609,16 +14387,16 @@ GetSwlReplaceBlock:
add x0, x0, 1
mov w1, 0
mov w10, 6
-.L2015:
+.L2094:
ldrh w5, [x3]
cmp w5, w8
- beq .L2017
+ beq .L2096
add w1, w1, 1
uxth w1, w1
cmp w1, w9
- bhi .L2013
+ bhi .L2092
ldrh w2, [x3,4]
- cbz w2, .L2016
+ cbz w2, .L2095
sub x4, x3, x7
asr x4, x4, 1
mul x4, x4, x0
@@ -13626,51 +14404,51 @@ GetSwlReplaceBlock:
and x4, x4, 65535
ldrh w2, [x25,x4,lsl 1]
cmp w2, w21
- bls .L2021
+ bls .L2100
cmp w2, w26
- bcs .L2016
+ bcs .L2095
mov w26, w2
mov w20, w3
-.L2016:
+.L2095:
umull x3, w5, w10
add x3, x7, x3
- b .L2015
-.L2021:
+ b .L2094
+.L2100:
mov w20, w3
-.L2017:
+.L2096:
mov w0, 65535
cmp w20, w0
- beq .L2013
+ beq .L2092
ubfiz x24, x20, 1, 16
ldrh w22, [x25,x24]
cmp w22, w21
- bls .L2019
+ bls .L2098
str x6, [x29,88]
bl GetFreeBlockMinEraseCount
ldr x6, [x29,88]
cmp w21, w0, uxth
- bcs .L2019
+ bcs .L2098
add x0, x19, :lo12:.LANCHOR2
str w26, [x0,920]
-.L2019:
+.L2098:
cmp w22, w23
- bcs .L2013
+ bcs .L2092
add w0, w22, 128
cmp w6, w0
- ble .L2013
+ ble .L2092
add w0, w22, 256
cmp w0, w23
- bcc .L2020
+ bcc .L2099
add x0, x19, :lo12:.LANCHOR2
add w22, w22, 768
ldr w0, [x0,916]
cmp w22, w0
- bcs .L2013
-.L2020:
+ bcs .L2092
+.L2099:
add x19, x19, :lo12:.LANCHOR2
- adrp x0, .LC120
+ adrp x0, .LC141
ldrh w5, [x25,x24]
- add x0, x0, :lo12:.LC120
+ add x0, x0, :lo12:.LC141
mov w1, w20
mov w2, w23
ldr x4, [x19,1184]
@@ -13680,7 +14458,7 @@ GetSwlReplaceBlock:
mov w0, 1
str w0, [x19,928]
mov w0, w20
-.L2012:
+.L2091:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -13697,13 +14475,13 @@ free_data_superblock:
mov w1, 65535
cmp w0, w1
add x29, sp, 0
- beq .L2037
+ beq .L2116
adrp x2, .LANCHOR2+1184
ubfiz x1, x0, 1, 16
ldr x2, [x2,#:lo12:.LANCHOR2+1184]
strh wzr, [x2,x1]
bl INSERT_FREE_LIST
-.L2037:
+.L2116:
mov w0, 0
ldp x29, x30, [sp], 16
ret
@@ -13722,15 +14500,15 @@ allocate_data_superblock:
stp x25, x26, [sp,64]
ldr w1, [x19,1400]
stp x27, x28, [sp,80]
- cbnz w1, .L2039
+ cbnz w1, .L2118
mov x20, x0
add x23, x19, 3704
adrp x22, .LANCHOR0
mov w24, 7
add x25, x19, 3592
-.L2040:
+.L2119:
cmp x20, x23
- bne .L2041
+ bne .L2120
ldrh w2, [x19,3600]
ldr w4, [x19,928]
lsr w3, w2, 1
@@ -13739,43 +14517,43 @@ allocate_data_superblock:
add w1, w1, w0, lsr 2
ldr w0, [x19,652]
uxth w1, w1
- cbz w0, .L2042
+ cbz w0, .L2121
ldr w0, [x19,920]
cmp w0, 29
- bhi .L2042
+ bhi .L2121
cmp w0, 2
mov w1, 0
- bls .L2043
- tbz x2, 0, .L2070
- cbz w4, .L2043
-.L2070:
+ bls .L2122
+ tbz x2, 0, .L2149
+ cbz w4, .L2122
+.L2149:
mov w1, w3
- b .L2042
-.L2041:
+ b .L2121
+.L2120:
ldrb w0, [x20,8]
mov w1, 0
cmp w0, 1
- bne .L2043
+ bne .L2122
ldrh w0, [x19,768]
cmp w0, 1
- beq .L2043
+ beq .L2122
add x0, x22, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbnz w0, .L2043
+ cbnz w0, .L2122
ldr w2, [x19,652]
ldrh w0, [x19,3600]
lsr w1, w0, 3
- cbz w2, .L2042
+ cbz w2, .L2121
ldr w2, [x19,920]
cmp w2, 1
- bhi .L2042
+ bhi .L2121
mul w1, w0, w24
lsr w1, w1, 3
-.L2042:
- cbz w1, .L2043
+.L2121:
+ cbz w1, .L2122
sub w1, w1, #1
uxth w1, w1
-.L2043:
+.L2122:
ldrb w2, [x20,8]
mov x0, x25
bl List_pop_index_node
@@ -13787,20 +14565,20 @@ allocate_data_superblock:
mov x0, x20
bl make_superblock
ldrb w0, [x20,7]
- cbz w0, .L2045
+ cbz w0, .L2124
mov x0, 0
ldrh w5, [x19,748]
mov w26, w0
mov x3, 56
mov w6, 65535
- b .L2046
-.L2045:
+ b .L2125
+.L2124:
ubfiz x27, x27, 1, 16
ldr x0, [x19,1184]
mov w1, -1
strh w1, [x0,x27]
- b .L2040
-.L2049:
+ b .L2119
+.L2128:
ldr x4, [x19,1016]
madd x1, x0, x3, x4
str xzr, [x1,16]
@@ -13808,40 +14586,40 @@ allocate_data_superblock:
add x1, x20, x0, lsl 1
ldrh w1, [x1,16]
cmp w1, w6
- beq .L2048
+ beq .L2127
umull x2, w26, w3
add w26, w26, 1
lsl w1, w1, 10
add x2, x4, x2
uxth w26, w26
str w1, [x2,4]
-.L2048:
+.L2127:
add x0, x0, 1
-.L2046:
+.L2125:
cmp w5, w0, uxth
- bhi .L2049
+ bhi .L2128
add x0, x19, 3608
uxtw x28, w27
cmp x20, x0
- bne .L2050
+ bne .L2129
ldr w1, [x19,652]
- cbz w1, .L2050
+ cbz w1, .L2129
ldr x1, [x19,1168]
ldrh w1, [x1,x28,lsl 1]
cmp w1, 30
- bls .L2050
+ bls .L2129
strb wzr, [x19,3616]
-.L2050:
+.L2129:
ldrb w0, [x20,8]
- cbnz w0, .L2051
+ cbnz w0, .L2130
lsl x0, x28, 1
ldr x1, [x19,1168]
mov w2, 2
ldrh w3, [x1,x0]
- cbz w3, .L2095
+ cbz w3, .L2174
ldrh w2, [x19,808]
add w2, w3, w2
-.L2095:
+.L2174:
strh w2, [x1,x0]
mov w1, 0
ldr w0, [x19,904]
@@ -13849,8 +14627,8 @@ allocate_data_superblock:
str w0, [x19,904]
mov w0, w27
bl ftl_set_blk_mode
- b .L2054
-.L2051:
+ b .L2133
+.L2130:
lsl x0, x28, 1
ldr x2, [x19,1168]
ldrh w1, [x2,x0]
@@ -13861,15 +14639,15 @@ allocate_data_superblock:
str w0, [x19,908]
mov w0, w27
bl ftl_set_blk_mode.part.17
-.L2054:
+.L2133:
lsl x28, x28, 1
ldr x0, [x19,1168]
ldr w1, [x19,916]
ldrh w0, [x0,x28]
cmp w0, w1
- bls .L2055
+ bls .L2134
str w0, [x19,916]
-.L2055:
+.L2134:
ldrh w1, [x19,808]
mov x3, 56
ldr w2, [x19,904]
@@ -13877,39 +14655,39 @@ allocate_data_superblock:
madd w0, w1, w2, w0
ldrh w1, [x19,756]
udiv w0, w0, w1
- adrp x1, .LANCHOR4+140
- str w0, [x1,#:lo12:.LANCHOR4+140]
+ adrp x1, .LANCHOR4+3980
+ str w0, [x1,#:lo12:.LANCHOR4+3980]
ldr x1, [x19,1160]
ldr w0, [x1,16]
add w0, w0, 1
str w0, [x1,16]
mov x0, 0
-.L2056:
+.L2135:
cmp w26, w0, uxth
- bls .L2097
+ bls .L2176
ldr x1, [x19,1016]
madd x1, x0, x3, x1
add x0, x0, 1
ldr w2, [x1,4]
and w2, w2, -1024
str w2, [x1,4]
- b .L2056
-.L2097:
+ b .L2135
+.L2176:
add x0, x22, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbz w0, .L2058
+ cbz w0, .L2137
ldrb w0, [x20,8]
cmp w0, 1
ldr x0, [x19,1016]
- bne .L2059
+ bne .L2138
mov w1, 0
- b .L2096
-.L2059:
+ b .L2175
+.L2138:
mov w1, 1
-.L2096:
+.L2175:
mov w2, w26
bl FlashEraseBlocks
-.L2058:
+.L2137:
ldrb w1, [x20,8]
mov w2, w26
ldr x0, [x19,1016]
@@ -13917,15 +14695,15 @@ allocate_data_superblock:
mov x1, 0
mov x4, 56
mov w2, w1
-.L2060:
+.L2139:
cmp w26, w1, uxth
- bls .L2098
+ bls .L2177
mul x0, x1, x4
ldr x3, [x19,1016]
add x5, x3, x0
ldr w3, [x3,x0]
cmn w3, #1
- bne .L2061
+ bne .L2140
ldr w0, [x5,4]
add w2, w2, 1
str x4, [x29,104]
@@ -13944,22 +14722,22 @@ allocate_data_superblock:
ldrb w0, [x20,7]
sub w0, w0, #1
strb w0, [x20,7]
-.L2061:
+.L2140:
add x1, x1, 1
- b .L2060
-.L2098:
- cbz w2, .L2063
+ b .L2139
+.L2177:
+ cbz w2, .L2142
mov w0, w27
bl update_multiplier_value
bl FtlBbmTblFlush
-.L2063:
+.L2142:
ldrb w0, [x20,7]
- cbnz w0, .L2064
+ cbnz w0, .L2143
ldr x0, [x19,1184]
mov w1, -1
strh w1, [x0,x28]
- b .L2040
-.L2064:
+ b .L2119
+.L2143:
add x21, x21, :lo12:.LANCHOR2
strh wzr, [x20,2]
strb wzr, [x20,6]
@@ -13975,7 +14753,7 @@ allocate_data_superblock:
ldr x1, [x21,1184]
ldrh w2, [x20]
strh w0, [x1,x2,lsl 1]
-.L2039:
+.L2118:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -13989,20 +14767,20 @@ allocate_data_superblock:
.global FtlGcBufInit
.type FtlGcBufInit, %function
FtlGcBufInit:
- adrp x0, .LANCHOR4+144
+ adrp x0, .LANCHOR4+3984
mov w1, 0
adrp x7, .LANCHOR2
mov w8, 24
mov w9, 1
mov w4, 4
- str wzr, [x0,#:lo12:.LANCHOR4+144]
+ str wzr, [x0,#:lo12:.LANCHOR4+3984]
mov w10, 56
-.L2100:
+.L2179:
add x2, x7, :lo12:.LANCHOR2
adrp x6, .LANCHOR2
ldrh w0, [x2,748]
cmp w1, w0
- bcs .L2104
+ bcs .L2183
umull x3, w1, w8
ldr x5, [x2,1104]
ldr x6, [x2,1072]
@@ -14030,15 +14808,15 @@ FtlGcBufInit:
str x2, [x0,8]
ldr x2, [x5,8]
str x2, [x0,16]
- b .L2100
-.L2104:
+ b .L2179
+.L2183:
mov w7, 24
mov w4, 4
-.L2102:
+.L2181:
add x1, x6, :lo12:.LANCHOR2
ldr w2, [x1,1040]
cmp w0, w2
- bcs .L2105
+ bcs .L2184
umull x3, w0, w7
ldr x5, [x1,1104]
ldr x8, [x1,1072]
@@ -14059,8 +14837,8 @@ FtlGcBufInit:
uxth w0, w0
add x1, x1, x2, sxtw 2
str x1, [x3,8]
- b .L2102
-.L2105:
+ b .L2181
+.L2184:
ret
.size FtlGcBufInit, .-FtlGcBufInit
.align 2
@@ -14068,23 +14846,23 @@ FtlGcBufInit:
.type FtlVariablesInit, %function
FtlVariablesInit:
stp x29, x30, [sp, -32]!
- adrp x0, .LANCHOR4
- mov w1, -1
+ mov w0, -1
+ mov w1, 0
add x29, sp, 0
- str x19, [sp,16]
+ stp x19, x20, [sp,16]
+ adrp x20, .LANCHOR4
adrp x19, .LANCHOR2
add x19, x19, :lo12:.LANCHOR2
- add x0, x0, :lo12:.LANCHOR4
+ add x20, x20, :lo12:.LANCHOR4
ldrh w2, [x19,840]
- strh w1, [x0,160]
- mov w1, -1
- str xzr, [x0,152]
+ strh w0, [x20,4000]
+ mov w0, -1
+ str w0, [x20,4012]
lsl w2, w2, 1
- str w1, [x0,172]
- mov w1, 0
- str wzr, [x0,164]
- str wzr, [x0,168]
ldr x0, [x19,1208]
+ str xzr, [x20,3992]
+ str wzr, [x20,4004]
+ str wzr, [x20,4008]
str wzr, [x19,652]
strh wzr, [x19,1392]
bl ftl_memset
@@ -14104,12 +14882,12 @@ FtlVariablesInit:
bl ftl_memset
mov w1, 0
mov w2, 512
- add x0, x19, 3968
+ add x0, x20, 3456
bl ftl_memset
bl FtlGcBufInit
bl FtlL2PDataInit
- ldr x19, [sp,16]
mov w0, 0
+ ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
.size FtlVariablesInit, .-FtlVariablesInit
@@ -14124,32 +14902,32 @@ FtlGcBufFree:
mov w9, 24
ldr w8, [x2,1040]
ldr x5, [x2,1104]
-.L2108:
+.L2187:
cmp w3, w1
- bcs .L2107
+ bcs .L2186
umull x4, w3, w7
mov w2, 0
add x4, x0, x4
-.L2113:
+.L2192:
cmp w2, w8
- bcs .L2110
+ bcs .L2189
umull x6, w2, w9
add x10, x5, x6
ldr x11, [x5,x6]
ldr x6, [x4,8]
cmp x11, x6
- bne .L2109
+ bne .L2188
str wzr, [x10,16]
- b .L2110
-.L2109:
+ b .L2189
+.L2188:
add w2, w2, 1
uxth w2, w2
- b .L2113
-.L2110:
+ b .L2192
+.L2189:
add w3, w3, 1
uxth w3, w3
- b .L2108
-.L2107:
+ b .L2187
+.L2186:
ret
.size FtlGcBufFree, .-FtlGcBufFree
.align 2
@@ -14164,17 +14942,17 @@ FtlGcBufAlloc:
ldr w5, [x2,1040]
ldr x6, [x2,1104]
mov w2, 0
-.L2115:
+.L2194:
cmp w2, w1
- bcs .L2121
+ bcs .L2200
mov w3, 0
-.L2119:
+.L2198:
cmp w3, w5
- bcs .L2117
+ bcs .L2196
umull x4, w3, w7
add x4, x6, x4
ldr w10, [x4,16]
- cbnz w10, .L2116
+ cbnz w10, .L2195
umull x3, w2, w9
str w8, [x4,16]
add x3, x0, x3
@@ -14182,41 +14960,41 @@ FtlGcBufAlloc:
str x10, [x3,8]
ldr x4, [x4,8]
str x4, [x3,16]
- b .L2117
-.L2116:
+ b .L2196
+.L2195:
add w3, w3, 1
uxth w3, w3
- b .L2119
-.L2117:
+ b .L2198
+.L2196:
add w2, w2, 1
uxth w2, w2
- b .L2115
-.L2121:
+ b .L2194
+.L2200:
ret
.size FtlGcBufAlloc, .-FtlGcBufAlloc
.align 2
.global IsBlkInGcList
.type IsBlkInGcList, %function
IsBlkInGcList:
- adrp x1, .LANCHOR4+176
+ adrp x1, .LANCHOR4+4016
uxth w0, w0
- ldrh w2, [x1,#:lo12:.LANCHOR4+176]
+ ldrh w2, [x1,#:lo12:.LANCHOR4+4016]
adrp x1, .LANCHOR2+976
ldr x3, [x1,#:lo12:.LANCHOR2+976]
mov x1, 0
-.L2123:
+.L2202:
cmp w2, w1, uxth
- bls .L2127
+ bls .L2206
add x1, x1, 1
add x4, x3, x1, lsl 1
ldrh w4, [x4,-2]
cmp w4, w0
- bne .L2123
+ bne .L2202
mov w0, 1
- b .L2124
-.L2127:
+ b .L2203
+.L2206:
mov w0, 0
-.L2124:
+.L2203:
ret
.size IsBlkInGcList, .-IsBlkInGcList
.align 2
@@ -14237,33 +15015,33 @@ FtlGcUpdatePage:
ldr x1, [x29,32]
uxth w9, w0
mov x6, 0
- ldrh w8, [x4,176]
+ ldrh w8, [x4,4016]
adrp x4, .LANCHOR2
add x5, x4, :lo12:.LANCHOR2
ldr x7, [x5,976]
-.L2129:
+.L2208:
uxth w5, w6
cmp w5, w8
- bcs .L2133
+ bcs .L2212
add x6, x6, 1
add x10, x7, x6, lsl 1
ldrh w10, [x10,-2]
cmp w10, w9
- bne .L2129
-.L2133:
+ bne .L2208
+.L2212:
cmp w5, w8
- bne .L2131
+ bne .L2210
ubfiz x5, x5, 1, 16
strh w0, [x7,x5]
add x0, x3, :lo12:.LANCHOR4
- ldrh w5, [x0,176]
+ ldrh w5, [x0,4016]
add w5, w5, 1
- strh w5, [x0,176]
-.L2131:
+ strh w5, [x0,4016]
+.L2210:
add x3, x3, :lo12:.LANCHOR4
add x4, x4, :lo12:.LANCHOR2
mov w0, 12
- ldrh w5, [x3,178]
+ ldrh w5, [x3,4018]
ldr x6, [x4,984]
umull x5, w5, w0
add x6, x6, x5
@@ -14272,9 +15050,9 @@ FtlGcUpdatePage:
add x0, x1, x5
str w2, [x0,8]
str w19, [x1,x5]
- ldrh w0, [x3,178]
+ ldrh w0, [x3,4018]
add w0, w0, 1
- strh w0, [x3,178]
+ strh w0, [x3,4018]
ldr x19, [sp,16]
ldp x29, x30, [sp], 48
ret
@@ -14292,8 +15070,8 @@ FtlGcPageVarInit:
add x19, x19, :lo12:.LANCHOR2
add x0, x0, :lo12:.LANCHOR4
ldrh w2, [x19,822]
- strh wzr, [x0,176]
- strh wzr, [x0,178]
+ strh wzr, [x0,4016]
+ strh wzr, [x0,4018]
lsl w2, w2, 1
ldr x0, [x19,976]
bl ftl_memset
@@ -14327,49 +15105,49 @@ FtlGcScanTempBlk:
ldrh w26, [x0,3068]
mov w0, 65535
cmp w26, w0
- beq .L2158
- cbnz w26, .L2137
- b .L2138
-.L2158:
+ beq .L2237
+ cbnz w26, .L2216
+ b .L2217
+.L2237:
mov w26, 0
-.L2137:
+.L2216:
adrp x0, .LANCHOR2+818
ldr w1, [x29,152]
ldrh w0, [x0,#:lo12:.LANCHOR2+818]
cmp w1, w0
- bne .L2139
-.L2138:
+ bne .L2218
+.L2217:
bl FtlGcPageVarInit
-.L2139:
+.L2218:
mov w0, -1
adrp x25, .LANCHOR2
str w0, [x29,156]
- adrp x0, .LC121
- add x0, x0, :lo12:.LC121
+ adrp x0, .LC142
+ add x0, x0, :lo12:.LC142
mov w22, 0
mov w23, 65535
mov x21, x25
mov x24, x25
str x0, [x29,128]
-.L2152:
+.L2231:
ldrh w0, [x19]
strb wzr, [x19,8]
cmp w0, w23
- beq .L2159
-.L2141:
-.L2155:
+ beq .L2238
+.L2220:
+.L2234:
add x0, x25, :lo12:.LANCHOR2
mov x2, x19
mov w20, 0
ldrh w5, [x0,748]
ldrh w8, [x0,830]
add x5, x19, x5, lsl 1
-.L2142:
+.L2221:
cmp x2, x5
- beq .L2167
+ beq .L2246
ldrh w1, [x2,16]
cmp w1, w23
- beq .L2143
+ beq .L2222
add x6, x21, :lo12:.LANCHOR2
mov w0, 56
orr w1, w26, w1, lsl 10
@@ -14388,19 +15166,19 @@ FtlGcScanTempBlk:
sdiv w1, w1, w3
add x1, x6, x1, sxtw 2
str x1, [x0,16]
-.L2143:
+.L2222:
add x2, x2, 2
- b .L2142
-.L2167:
+ b .L2221
+.L2246:
add x0, x21, :lo12:.LANCHOR2
mov w1, w20
mov w2, 0
mov x27, 0
ldr x0, [x0,992]
bl FlashReadPages
-.L2145:
+.L2224:
cmp w20, w27, uxth
- bls .L2168
+ bls .L2247
mov x0, 56
mul x28, x27, x0
add x0, x21, :lo12:.LANCHOR2
@@ -14417,53 +15195,53 @@ FtlGcScanTempBlk:
ldr x8, [x29,104]
ldr x2, [x29,120]
ldr w0, [x8,x28]
- cbnz w0, .L2146
+ cbnz w0, .L2225
ldr x1, [x29,112]
add x27, x27, 1
ldr x5, [x1,16]
ldrh w0, [x5]
cmp w0, w23
- bne .L2147
- adrp x0, .LANCHOR4+168
+ bne .L2226
+ adrp x0, .LANCHOR4+4008
mov w1, 1
- str w1, [x0,#:lo12:.LANCHOR4+168]
- b .L2140
-.L2147:
+ str w1, [x0,#:lo12:.LANCHOR4+4008]
+ b .L2219
+.L2226:
mov w1, w2
ldr w0, [x5,12]
ldr w2, [x5,8]
bl FtlGcUpdatePage
- b .L2145
-.L2146:
+ b .L2224
+.L2225:
ldr x0, [x29,128]
ldrh w1, [x19]
bl printk
ldr x0, [x29,144]
ldr w0, [x0,652]
- cbnz w0, .L2148
+ cbnz w0, .L2227
adrp x0, .LANCHOR0+136
ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L2149
-.L2148:
+ cbz w0, .L2228
+.L2227:
add x0, x24, :lo12:.LANCHOR2
ldrh w1, [x19]
ldr x0, [x0,1168]
ldrh w0, [x0,x1,lsl 1]
cmp w0, 119
- bls .L2150
-.L2149:
+ bls .L2229
+.L2228:
add x0, x24, :lo12:.LANCHOR2
ldr x0, [x0,992]
ldr w0, [x0,x28]
cmn w0, #1
- bne .L2151
-.L2150:
+ bne .L2230
+.L2229:
add x0, x24, :lo12:.LANCHOR2
ldr x0, [x0,992]
add x5, x0, x28
ldr w0, [x5,4]
str w0, [x29,156]
-.L2151:
+.L2230:
add x0, x24, :lo12:.LANCHOR2
ldrh w1, [x19]
mov w26, 0
@@ -14474,36 +15252,36 @@ FtlGcScanTempBlk:
mov w0, -1
strh w0, [x19]
bl FtlGcPageVarInit
- b .L2152
-.L2168:
+ b .L2231
+.L2247:
ldr w0, [x29,152]
add w22, w22, 1
add w3, w26, 1
cmp w22, w0
uxth w26, w3
- bcs .L2154
-.L2156:
+ bcs .L2233
+.L2235:
add x0, x21, :lo12:.LANCHOR2
ldrh w0, [x0,818]
cmp w0, w26
- bhi .L2155
- b .L2159
-.L2154:
+ bhi .L2234
+ b .L2238
+.L2233:
ldr x0, [x29,136]
add x1, x0, :lo12:.LANCHOR1
ldrh w0, [x1,3068]
cmp w0, w23
- beq .L2156
+ beq .L2235
add w0, w0, w22
strh w0, [x1,3068]
add x0, x21, :lo12:.LANCHOR2
ldrh w0, [x0,818]
cmp w0, w26
- bls .L2156
- b .L2157
-.L2159:
+ bls .L2235
+ b .L2236
+.L2238:
mov w6, 0
-.L2140:
+.L2219:
ldr x0, [x29,136]
mov w1, w26
strh w26, [x19,2]
@@ -14514,7 +15292,7 @@ FtlGcScanTempBlk:
strh w0, [x20,3068]
mov x0, x19
bl ftl_sb_update_avl_pages
-.L2157:
+.L2236:
ldr w0, [x29,156]
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -14532,28 +15310,28 @@ FtlGcRefreshOpenBlock:
add x29, sp, 0
str x19, [sp,16]
uxth w19, w0
- adrp x0, .LC122
+ adrp x0, .LC143
mov w1, w19
- add x0, x0, :lo12:.LC122
+ add x0, x0, :lo12:.LC143
bl printk
adrp x2, .LANCHOR2
add x2, x2, :lo12:.LANCHOR2
ldrh w3, [x2,948]
cmp w3, w19
- beq .L2170
+ beq .L2249
ldrh w1, [x2,950]
cmp w1, w19
- beq .L2170
+ beq .L2249
mov w0, 65535
cmp w3, w0
- bne .L2171
+ bne .L2250
strh w19, [x2,948]
- b .L2170
-.L2171:
+ b .L2249
+.L2250:
cmp w1, w0
- bne .L2170
+ bne .L2249
strh w19, [x2,950]
-.L2170:
+.L2249:
mov w0, 0
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -14567,28 +15345,28 @@ FtlGcRefreshBlock:
add x29, sp, 0
str x19, [sp,16]
uxth w19, w0
- adrp x0, .LC122
+ adrp x0, .LC143
mov w1, w19
- add x0, x0, :lo12:.LC122
+ add x0, x0, :lo12:.LC143
bl printk
adrp x2, .LANCHOR2
add x2, x2, :lo12:.LANCHOR2
ldrh w3, [x2,948]
cmp w3, w19
- beq .L2173
+ beq .L2252
ldrh w1, [x2,950]
cmp w1, w19
- beq .L2173
+ beq .L2252
mov w0, 65535
cmp w3, w0
- bne .L2174
+ bne .L2253
strh w19, [x2,948]
- b .L2173
-.L2174:
+ b .L2252
+.L2253:
cmp w1, w0
- bne .L2173
+ bne .L2252
strh w19, [x2,950]
-.L2173:
+.L2252:
mov w0, 0
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -14610,48 +15388,48 @@ FtlGcMarkBadPhyBlk:
bl P2V_block_in_plane
uxth w21, w0
ldrh w1, [x22,958]
- adrp x0, .LC123
+ adrp x0, .LC144
mov w2, w20
- add x0, x0, :lo12:.LC123
+ add x0, x0, :lo12:.LC144
bl printk
mov w0, w21
bl FtlGcRefreshBlock
ldr w0, [x22,652]
- cbz w0, .L2176
+ cbz w0, .L2255
ubfiz x0, x21, 1, 16
ldr x2, [x22,1168]
ldrh w1, [x2,x0]
cmp w1, 29
- bls .L2176
+ bls .L2255
sub w1, w1, #30
strh w1, [x2,x0]
-.L2176:
+.L2255:
add x0, x19, :lo12:.LANCHOR2
adrp x1, .LANCHOR4
add x1, x1, :lo12:.LANCHOR4
- add x1, x1, 184
+ add x1, x1, 4024
ldrh w3, [x0,958]
mov x0, 0
-.L2177:
+.L2256:
cmp w3, w0, uxth
- bls .L2183
+ bls .L2262
add x0, x0, 1
add x2, x1, x0, lsl 1
ldrh w2, [x2,-2]
cmp w2, w20
- bne .L2177
- b .L2178
-.L2183:
+ bne .L2256
+ b .L2257
+.L2262:
cmp w3, 15
- bhi .L2178
+ bhi .L2257
adrp x1, .LANCHOR4
add x19, x19, :lo12:.LANCHOR2
add x1, x1, :lo12:.LANCHOR4
add w0, w3, 1
- add x1, x1, 184
+ add x1, x1, 4024
strh w0, [x19,958]
strh w20, [x1,w3,sxtw 1]
-.L2178:
+.L2257:
mov w0, 0
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -14669,20 +15447,20 @@ FtlGcReFreshBadBlk:
adrp x19, .LANCHOR2
add x0, x19, :lo12:.LANCHOR2
ldrh w1, [x0,958]
- cbz w1, .L2185
+ cbz w1, .L2264
ldrh w3, [x0,948]
mov w2, 65535
cmp w3, w2
- bne .L2185
+ bne .L2264
ldrh w2, [x0,962]
cmp w2, w1
- bcc .L2186
+ bcc .L2265
strh wzr, [x0,962]
-.L2186:
+.L2265:
add x19, x19, :lo12:.LANCHOR2
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
- add x0, x0, 184
+ add x0, x0, 4024
ldrh w1, [x19,962]
ldrh w0, [x0,w1,sxtw 1]
bl P2V_block_in_plane
@@ -14690,7 +15468,7 @@ FtlGcReFreshBadBlk:
ldrh w0, [x19,962]
add w0, w0, 1
strh w0, [x19,962]
-.L2185:
+.L2264:
mov w0, 0
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -14712,15 +15490,15 @@ FtlGcFreeBadSuperBlk:
stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
mov w21, 0
- cbz w0, .L2192
+ cbz w0, .L2271
adrp x24, .LANCHOR4
- adrp x22, .LC124
- add x22, x22, :lo12:.LC124
+ adrp x22, .LC145
+ add x22, x22, :lo12:.LC145
add x25, x24, :lo12:.LANCHOR4
-.L2200:
+.L2279:
ldrh w0, [x19,748]
cmp w0, w21
- bls .L2201
+ bls .L2280
add x0, x19, 776
mov w1, w23
mov w20, 0
@@ -14728,14 +15506,14 @@ FtlGcFreeBadSuperBlk:
ldrb w0, [x0,w21,sxtw]
bl V2P_block
uxth w26, w0
-.L2193:
+.L2272:
ldrh w0, [x19,958]
cmp w0, w20
- bls .L2202
- add x0, x27, 184
+ bls .L2281
+ add x0, x27, 4024
ldrh w0, [x0,w20,sxtw 1]
cmp w0, w26
- bne .L2194
+ bne .L2273
mov w1, w26
mov x0, x22
bl printk
@@ -14744,29 +15522,29 @@ FtlGcFreeBadSuperBlk:
bl FtlBbmTblFlush
ldrh w2, [x19,958]
mov w3, w20
-.L2195:
+.L2274:
cmp w3, w2
- bcs .L2203
- add x4, x25, 184
+ bcs .L2282
+ add x4, x25, 4024
add w0, w3, 1
ldrh w1, [x4,w0,sxtw 1]
strh w1, [x4,w3,sxtw 1]
uxth w3, w0
- b .L2195
-.L2203:
+ b .L2274
+.L2282:
sub w2, w2, #1
strh w2, [x19,958]
-.L2194:
+.L2273:
add w20, w20, 1
uxth w20, w20
- b .L2193
-.L2202:
+ b .L2272
+.L2281:
add w21, w21, 1
uxth w21, w21
- b .L2200
-.L2201:
+ b .L2279
+.L2280:
bl FtlGcReFreshBadBlk
-.L2192:
+.L2271:
mov w0, 0
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -14785,29 +15563,31 @@ update_vpc_list:
stp x19, x20, [sp,16]
adrp x20, .LANCHOR2
uxth w19, w0
- add x1, x20, :lo12:.LANCHOR2
+ add x2, x20, :lo12:.LANCHOR2
ubfiz x0, x19, 1, 16
- ldr x2, [x1,1184]
- ldrh w2, [x2,x0]
- cbnz w2, .L2205
- ldrh w0, [x1,3920]
- cmp w0, w19
- bne .L2206
- mov w0, -1
- strh w0, [x1,3920]
- b .L2207
-.L2206:
- ldrh w3, [x1,3608]
- mov w0, w2
+ ldr x1, [x2,1184]
+ ldrh w1, [x1,x0]
+ cbnz w1, .L2284
+ adrp x0, .LANCHOR4
+ add x0, x0, :lo12:.LANCHOR4
+ ldrh w3, [x0,3408]
cmp w3, w19
- beq .L2208
- ldrh w3, [x1,3656]
+ bne .L2285
+ mov w1, -1
+ strh w1, [x0,3408]
+ b .L2286
+.L2285:
+ ldrh w3, [x2,3608]
+ mov w0, w1
cmp w3, w19
- beq .L2208
- ldrh w1, [x1,3704]
- cmp w1, w19
- beq .L2208
-.L2207:
+ beq .L2287
+ ldrh w3, [x2,3656]
+ cmp w3, w19
+ beq .L2287
+ ldrh w2, [x2,3704]
+ cmp w2, w19
+ beq .L2287
+.L2286:
add x20, x20, :lo12:.LANCHOR2
mov w1, w19
add x0, x20, 3568
@@ -14820,12 +15600,12 @@ update_vpc_list:
mov w0, w19
bl FtlGcFreeBadSuperBlk
mov w0, 1
- b .L2208
-.L2205:
+ b .L2287
+.L2284:
mov w0, w19
bl List_update_data_list
mov w0, 0
-.L2208:
+.L2287:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -14840,43 +15620,43 @@ decrement_vpc_count:
add x29, sp, 0
str x19, [sp,16]
cmp w1, w0
- beq .L2213
+ beq .L2292
adrp x2, .LANCHOR2+1184
ubfiz x0, x1, 1, 16
ldr x2, [x2,#:lo12:.LANCHOR2+1184]
ldrh w19, [x2,x0]
- cbnz w19, .L2214
- adrp x0, .LC125
+ cbnz w19, .L2293
+ adrp x0, .LC146
mov w2, w19
- add x0, x0, :lo12:.LC125
+ add x0, x0, :lo12:.LC146
bl printk
- b .L2218
-.L2214:
+ b .L2297
+.L2293:
sub w19, w19, #1
strh w19, [x2,x0]
-.L2213:
+.L2292:
adrp x19, .LANCHOR4
mov w0, 65535
add x19, x19, :lo12:.LANCHOR4
- ldrh w2, [x19,160]
+ ldrh w2, [x19,4000]
cmp w2, w0
- bne .L2216
- strh w1, [x19,160]
-.L2218:
+ bne .L2295
+ strh w1, [x19,4000]
+.L2297:
mov w0, 0
- b .L2215
-.L2216:
+ b .L2294
+.L2295:
cmp w2, w1
str x1, [x29,40]
mov w0, 0
- beq .L2215
+ beq .L2294
mov w0, w2
bl update_vpc_list
cmp w0, wzr
ldr x1, [x29,40]
cset w0, ne
- strh w1, [x19,160]
-.L2215:
+ strh w1, [x19,4000]
+.L2294:
ldr x19, [sp,16]
ldp x29, x30, [sp], 48
ret
@@ -14896,7 +15676,7 @@ FtlRecoverySuperblock:
mov x19, x0
ldrh w0, [x0]
cmp w0, w2
- beq .L2377
+ beq .L2456
ldrh w0, [x19,2]
adrp x20, .LANCHOR2
str w0, [x29,188]
@@ -14905,44 +15685,44 @@ FtlRecoverySuperblock:
ldr w1, [x29,188]
ldrh w0, [x0,818]
cmp w0, w1
- bne .L2222
+ bne .L2301
strh wzr, [x19,4]
- b .L2383
-.L2222:
+ b .L2462
+.L2301:
ldrh w0, [x19,16]
mov w1, 0
-.L2223:
+.L2302:
cmp w0, w2
- bne .L2386
+ bne .L2465
add w1, w1, 1
uxth w1, w1
add x0, x19, x1, sxtw 1
ldrh w0, [x0,16]
- b .L2223
-.L2386:
+ b .L2302
+.L2465:
ldrb w1, [x19,8]
cmp w1, 1
- bne .L2225
+ bne .L2304
bl FtlGetLastWrittenPage
cmn w0, #1
mov w21, w0
- beq .L2226
+ beq .L2305
adrp x0, .LANCHOR0
mov w23, w21
add x0, x0, :lo12:.LANCHOR0
ldrb w1, [x0,136]
- cbnz w1, .L2300
+ cbnz w1, .L2379
add x0, x0, 140
ldrh w23, [x0,w21,sxtw 1]
- b .L2300
-.L2225:
+ b .L2379
+.L2304:
mov w1, 0
bl FtlGetLastWrittenPage
cmn w0, #1
mov w21, w0
- beq .L2226
+ beq .L2305
mov w23, w0
-.L2300:
+.L2379:
add x0, x20, :lo12:.LANCHOR2
mov x2, x19
mov w25, 0
@@ -14952,16 +15732,16 @@ FtlRecoverySuperblock:
ldrh w4, [x0,748]
ldrh w7, [x0,830]
add x4, x19, x4, lsl 1
- b .L2228
-.L2226:
+ b .L2307
+.L2305:
strh wzr, [x19,2]
-.L2383:
+.L2462:
strb wzr, [x19,6]
- b .L2377
-.L2230:
+ b .L2456
+.L2309:
ldrh w1, [x2,16]
cmp w1, w8
- beq .L2229
+ beq .L2308
add x5, x20, :lo12:.LANCHOR2
orr w1, w23, w1, lsl 10
umull x0, w25, w9
@@ -14978,21 +15758,21 @@ FtlRecoverySuperblock:
sdiv w1, w1, w10
add x1, x5, x1, sxtw 2
str x1, [x0,16]
-.L2229:
+.L2308:
add x2, x2, 2
-.L2228:
+.L2307:
cmp x2, x4
- bne .L2230
+ bne .L2309
ldrb w0, [x19,8]
str wzr, [x29,184]
cmp w0, 1
- bne .L2231
+ bne .L2310
adrp x0, .LANCHOR0+136
ldrb w0, [x0,#:lo12:.LANCHOR0+136]
cmp w0, wzr
cset w0, ne
str w0, [x29,184]
-.L2231:
+.L2310:
add x22, x20, :lo12:.LANCHOR2
ldr w2, [x29,184]
mov w1, w25
@@ -15002,26 +15782,26 @@ FtlRecoverySuperblock:
ldr x0, [x22,992]
bl FlashReadPages
ldr w0, [x22,876]
- adrp x22, .LC126
+ adrp x22, .LC147
str w0, [x29,176]
- add x22, x22, :lo12:.LC126
+ add x22, x22, :lo12:.LC147
uxth w0, w23
str w0, [x29,168]
-.L2232:
+.L2311:
uxth w2, w26
cmp w2, w25
- bcs .L2239
+ bcs .L2318
add x6, x20, :lo12:.LANCHOR2
mov x0, 56
mul x0, x26, x0
ldr x4, [x6,992]
add x1, x4, x0
ldr w0, [x4,x0]
- cbnz w0, .L2233
+ cbnz w0, .L2312
ldr x7, [x1,16]
ldr w4, [x7,4]
cmn w4, #1
- beq .L2234
+ beq .L2313
ldr w1, [x6,876]
mov w0, w4
str x7, [x29,136]
@@ -15033,34 +15813,34 @@ FtlRecoverySuperblock:
ldr x4, [x29,152]
ldr x2, [x29,144]
ldr x7, [x29,136]
- cbz w0, .L2234
+ cbz w0, .L2313
add w4, w4, 1
str w4, [x6,876]
-.L2234:
+.L2313:
ldr w0, [x7]
cmn w0, #1
- bne .L2235
-.L2239:
+ bne .L2314
+.L2318:
cmp w2, w25
- bne .L2378
+ bne .L2457
add x0, x20, :lo12:.LANCHOR2
add w21, w21, 1
uxth w21, w21
ldr x0, [x0,992]
ldr w0, [x0,4]
- b .L2379
-.L2233:
+ b .L2458
+.L2312:
ldr w1, [x1,4]
mov x0, x22
bl printk
ldr w24, [x29,168]
add x0, x27, :lo12:.LANCHOR4
ldrh w1, [x19]
- strh w1, [x0,218]
-.L2235:
+ strh w1, [x0,4058]
+.L2314:
add x26, x26, 1
- b .L2232
-.L2378:
+ b .L2311
+.L2457:
add x0, x20, :lo12:.LANCHOR2
mov w1, 56
uxth w21, w21
@@ -15068,83 +15848,83 @@ FtlRecoverySuperblock:
ldr x0, [x0,992]
add x2, x0, x2
ldr w0, [x2,4]
-.L2379:
+.L2458:
lsr x0, x0, 10
bl P2V_plane
uxth w26, w0
ldrb w1, [x19,8]
cmp w1, 1
- bne .L2241
+ bne .L2320
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
ldrb w2, [x0,136]
- cbnz w2, .L2241
+ cbnz w2, .L2320
add x0, x0, 140
ldrh w21, [x0,w21,sxtw 1]
-.L2241:
+.L2320:
add x0, x20, :lo12:.LANCHOR2
ldrh w0, [x0,818]
cmp w0, w21
- bne .L2242
+ bne .L2321
strh w21, [x19,2]
strb wzr, [x19,6]
strh wzr, [x19,4]
-.L2242:
+.L2321:
uxth w0, w28
str w0, [x29,152]
ldr w0, [x29,188]
cmp w21, w0
- bne .L2243
+ bne .L2322
ldr w0, [x29,152]
cmp w26, w0
- beq .L2384
-.L2243:
+ beq .L2463
+.L2322:
ldr w0, [x29,176]
adrp x25, .LANCHOR4
sub w22, w0, #1
mov w0, 65535
cmp w24, w0
- bne .L2244
- cbnz w1, .L2245
-.L2244:
+ bne .L2323
+ cbnz w1, .L2324
+.L2323:
add x0, x25, :lo12:.LANCHOR4
uxth w6, w23
- ldr w1, [x0,172]
+ ldr w1, [x0,4012]
cmn w1, #1
- bne .L2246
- str w22, [x0,172]
-.L2246:
+ bne .L2325
+ str w22, [x0,4012]
+.L2325:
add x0, x25, :lo12:.LANCHOR4
ldr w24, [x29,188]
- ldr w3, [x0,172]
+ ldr w3, [x0,4012]
ldr w0, [x29,188]
add w0, w0, 7
cmp w0, w23, uxth
- bge .L2247
+ bge .L2326
sub w24, w6, #7
uxth w24, w24
-.L2247:
+.L2326:
adrp x7, .LANCHOR0
mov w28, -1
add x5, x7, :lo12:.LANCHOR0
mov w27, w28
mov w4, 65535
add x5, x5, 652
-.L2248:
+.L2327:
cmp w24, w6
- bhi .L2261
+ bhi .L2340
add x0, x20, :lo12:.LANCHOR2
mov w23, 0
mov w10, 56
ldrh w2, [x0,748]
mov x0, x19
add x2, x19, x2, lsl 1
-.L2262:
+.L2341:
cmp x0, x2
- beq .L2387
+ beq .L2466
ldrh w1, [x0,16]
cmp w1, w4
- beq .L2249
+ beq .L2328
add x9, x20, :lo12:.LANCHOR2
orr w1, w24, w1, lsl 10
umull x8, w23, w10
@@ -15153,10 +15933,10 @@ FtlRecoverySuperblock:
uxth w23, w23
add x8, x9, x8
str w1, [x8,4]
-.L2249:
+.L2328:
add x0, x0, 2
- b .L2262
-.L2387:
+ b .L2341
+.L2466:
add x8, x20, :lo12:.LANCHOR2
ldr w2, [x29,184]
mov w1, w23
@@ -15180,99 +15960,99 @@ FtlRecoverySuperblock:
ldr x0, [x8,992]
ldr x5, [x29,128]
add x0, x0, 16
-.L2251:
+.L2330:
cmp w1, w23
- beq .L2388
+ beq .L2467
ldr w2, [x0,-16]
- cbnz w2, .L2252
+ cbnz w2, .L2331
ldr x2, [x0]
ldrh w8, [x2]
cmp w8, w4
- beq .L2253
+ beq .L2332
ldr w8, [x2,4]
cmn w8, #1
- beq .L2253
+ beq .L2332
add x2, x25, :lo12:.LANCHOR4
cmn w28, #1
- ldr w27, [x2,172]
- str w8, [x2,172]
- bne .L2253
+ ldr w27, [x2,4012]
+ str w8, [x2,4012]
+ bne .L2332
ldrh w2, [x5,x10,lsl 1]
cmp w2, w4
- bne .L2254
- cbz w9, .L2253
-.L2254:
+ bne .L2333
+ cbz w9, .L2332
+.L2333:
cmp w27, w22
csinv w28, w27, wzr, ne
- b .L2253
-.L2252:
+ b .L2332
+.L2331:
add x0, x25, :lo12:.LANCHOR4
ldrh w1, [x19]
- strh w1, [x0,218]
+ strh w1, [x0,4058]
ldrb w1, [x19,8]
- cbnz w1, .L2245
+ cbnz w1, .L2324
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
add x1, x1, 652
ldrh w2, [x1,w24,sxtw 1]
mov w1, 65535
cmp w2, w1
- bne .L2256
+ bne .L2335
cmn w28, #1
- beq .L2257
- str w28, [x0,172]
- b .L2245
-.L2257:
+ beq .L2336
+ str w28, [x0,4012]
+ b .L2324
+.L2336:
cmp w3, w22
- beq .L2258
- str w3, [x0,172]
- b .L2245
-.L2258:
- ldr w1, [x0,172]
- b .L2385
-.L2256:
+ beq .L2337
+ str w3, [x0,4012]
+ b .L2324
+.L2337:
+ ldr w1, [x0,4012]
+ b .L2464
+.L2335:
cmp w27, w22
- beq .L2259
+ beq .L2338
cmn w27, #1
- beq .L2245
- str w27, [x0,172]
- b .L2245
-.L2259:
- ldr w1, [x0,172]
+ beq .L2324
+ str w27, [x0,4012]
+ b .L2324
+.L2338:
+ ldr w1, [x0,4012]
cmp w1, w22
- beq .L2245
-.L2385:
+ beq .L2324
+.L2464:
sub w1, w1, #1
- b .L2380
-.L2253:
+ b .L2459
+.L2332:
add w1, w1, 1
add x0, x0, 56
uxth w1, w1
- b .L2251
-.L2388:
+ b .L2330
+.L2467:
add w24, w24, 1
uxth w24, w24
- b .L2248
-.L2261:
+ b .L2327
+.L2340:
add x0, x25, :lo12:.LANCHOR4
mov w1, -1
-.L2380:
- str w1, [x0,172]
-.L2245:
+.L2459:
+ str w1, [x0,4012]
+.L2324:
add x0, x25, :lo12:.LANCHOR4
mov w1, 1
- strh w1, [x0,220]
+ strh w1, [x0,4060]
add x0, x20, :lo12:.LANCHOR2
add x0, x0, 3752
bl FtlMapBlkWriteDumpData
ldr w23, [x29,188]
- adrp x0, .LC128
- add x0, x0, :lo12:.LC128
+ adrp x0, .LC149
+ add x0, x0, :lo12:.LC149
str x0, [x29,128]
- adrp x0, .LC127
- add x0, x0, :lo12:.LC127
+ adrp x0, .LC148
+ add x0, x0, :lo12:.LC148
str x0, [x29,120]
-.L2263:
+.L2342:
add x0, x20, :lo12:.LANCHOR2
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
@@ -15283,12 +16063,12 @@ FtlRecoverySuperblock:
ldrb w6, [x1,136]
mov x1, x19
add x3, x19, x3, lsl 1
-.L2264:
+.L2343:
cmp x1, x3
- beq .L2389
+ beq .L2468
ldrh w2, [x1,16]
cmp w2, w7
- beq .L2265
+ beq .L2344
ldr w0, [x29,176]
add x5, x20, :lo12:.LANCHOR2
orr w2, w23, w2, lsl 10
@@ -15298,33 +16078,33 @@ FtlRecoverySuperblock:
str w2, [x4,4]
ldrb w2, [x19,8]
cmp w2, 1
- bne .L2266
- cbz w6, .L2266
+ bne .L2345
+ cbz w6, .L2345
ldr x2, [x5,992]
add x0, x2, x0
ldr w2, [x0,4]
orr w2, w2, -2147483648
str w2, [x0,4]
-.L2266:
+.L2345:
ldr w0, [x29,176]
add w0, w0, 1
uxth w0, w0
str w0, [x29,176]
-.L2265:
+.L2344:
add x1, x1, 2
- b .L2264
-.L2389:
+ b .L2343
+.L2468:
add x0, x20, :lo12:.LANCHOR2
ldr w1, [x29,176]
ldr w2, [x29,184]
ldr x0, [x0,992]
bl FlashReadPages
str xzr, [x29,160]
-.L2268:
+.L2347:
ldrh w0, [x29,160]
ldr w1, [x29,176]
cmp w1, w0, uxth
- bls .L2390
+ bls .L2469
ldr x0, [x29,160]
mov x24, 56
mul x24, x0, x24
@@ -15340,38 +16120,38 @@ FtlRecoverySuperblock:
ldr w1, [x29,188]
cmp w23, w1
ldr x1, [x29,168]
- bcc .L2269
+ bcc .L2348
ldr w2, [x29,152]
cmp w0, w2
- bcs .L2304
+ bcs .L2383
ldr w2, [x29,188]
cmp w23, w2
- beq .L2269
-.L2304:
+ beq .L2348
+.L2383:
cmp w0, w26
- bne .L2305
+ bne .L2384
cmp w23, w21
- beq .L2271
-.L2305:
+ beq .L2350
+.L2384:
ldr w0, [x28,x24]
cmn w0, #1
- beq .L2273
+ beq .L2352
ldr x28, [x27,16]
mov w0, 61589
ldrh w1, [x28]
cmp w1, w0
- bne .L2280
+ bne .L2359
ldr w22, [x28,4]
cmn w22, #1
- beq .L2275
+ beq .L2354
add x27, x20, :lo12:.LANCHOR2
mov w0, w22
ldr w1, [x27,876]
bl ftl_cmp_data_ver
- cbz w0, .L2275
+ cbz w0, .L2354
add w0, w22, 1
str w0, [x27,876]
-.L2275:
+.L2354:
ldr w27, [x28,8]
add x1, x29, 200
ldr w0, [x28,12]
@@ -15381,15 +16161,15 @@ FtlRecoverySuperblock:
bl log2phys
add x0, x25, :lo12:.LANCHOR4
str x0, [x29,136]
- ldr w1, [x0,172]
+ ldr w1, [x0,4012]
cmn w1, #1
- beq .L2276
+ beq .L2355
mov w0, w22
bl ftl_cmp_data_ver
- cbz w0, .L2276
+ cbz w0, .L2355
ldr w1, [x29,196]
cmn w1, #1
- beq .L2277
+ beq .L2356
add x3, x20, :lo12:.LANCHOR2
str x3, [x29,112]
ldr x0, [x3,992]
@@ -15410,45 +16190,45 @@ FtlRecoverySuperblock:
add x4, x2, x24
ldr w0, [x2,x24]
cmn w0, #1
- bne .L2278
- b .L2279
-.L2277:
+ bne .L2357
+ b .L2358
+.L2356:
ldr w0, [x29,204]
ldr w1, [x29,200]
cmp w1, w0
- bne .L2280
+ bne .L2359
mov w0, w27
add x1, x29, 196
mov w2, 1
bl log2phys
-.L2280:
+.L2359:
ldrh w0, [x19]
- b .L2382
-.L2278:
+ b .L2461
+.L2357:
ldr x0, [x29,168]
ldr w28, [x0,8]
cmp w28, w27
- bne .L2279
+ bne .L2358
ldr x0, [x29,136]
ldr w1, [x29,144]
str x2, [x29,96]
- ldr w0, [x0,172]
+ ldr w0, [x0,4012]
str x3, [x29,104]
str x4, [x29,112]
bl ftl_cmp_data_ver
ldr x4, [x29,112]
ldr x3, [x29,104]
ldr x2, [x29,96]
- cbz w0, .L2279
+ cbz w0, .L2358
ldr w0, [x29,200]
ldr w1, [x29,204]
cmp w0, w1
- beq .L2285
+ beq .L2364
ldr w1, [x29,196]
cmp w0, w1
- beq .L2279
+ beq .L2358
cmn w0, #1
- beq .L2283
+ beq .L2362
str w0, [x4,4]
mov w2, 0
ldr x1, [x4,16]
@@ -15457,65 +16237,65 @@ FtlRecoverySuperblock:
mov w1, 1
add x0, x0, x24
bl FlashReadPages
- b .L2284
-.L2283:
+ b .L2363
+.L2362:
str w0, [x2,x24]
-.L2284:
+.L2363:
adrp x0, .LANCHOR2+992
ldr x0, [x0,#:lo12:.LANCHOR2+992]
ldr w0, [x0,x24]
cmn w0, #1
- beq .L2285
+ beq .L2364
ldr x0, [x29,168]
ldr w24, [x0,4]
add x0, x25, :lo12:.LANCHOR4
mov w1, w24
- ldr w0, [x0,172]
+ ldr w0, [x0,4012]
bl ftl_cmp_data_ver
- cbz w0, .L2285
+ cbz w0, .L2364
ldr w0, [x29,144]
mov w1, w24
bl ftl_cmp_data_ver
- cbz w0, .L2279
-.L2285:
+ cbz w0, .L2358
+.L2364:
ldr w1, [x29,196]
mov w0, w28
bl FtlReUsePrevPpa
-.L2279:
+.L2358:
mov w0, -1
str w0, [x29,196]
ldrh w0, [x19]
bl decrement_vpc_count
- b .L2287
-.L2276:
+ b .L2366
+.L2355:
ldr w0, [x29,204]
ldr w1, [x29,200]
cmp w1, w0
- beq .L2287
+ beq .L2366
mov w0, w27
add x1, x29, 204
mov w2, 1
bl log2phys
ldr w24, [x29,200]
cmn w24, #1
- beq .L2287
+ beq .L2366
ldr w0, [x29,196]
cmp w24, w0
- beq .L2287
+ beq .L2366
lsr x0, x24, 10
bl P2V_block_in_plane
uxth w0, w0
add x1, x20, :lo12:.LANCHOR2
ldrh w2, [x1,3608]
cmp w2, w0
- beq .L2290
+ beq .L2369
ldrh w2, [x1,3656]
cmp w2, w0
- beq .L2290
+ beq .L2369
ldrh w1, [x1,3704]
cmp w1, w0
- bne .L2287
-.L2290:
+ bne .L2366
+.L2369:
add x28, x20, :lo12:.LANCHOR2
mov w1, 1
mov w2, 0
@@ -15530,18 +16310,18 @@ FtlRecoverySuperblock:
ldr w0, [x0]
ldr w1, [x3,4]
cmn w0, #1
- beq .L2287
+ beq .L2366
mov w0, w22
bl ftl_cmp_data_ver
- cbnz w0, .L2287
+ cbnz w0, .L2366
mov w0, w27
add x1, x29, 200
mov w2, 1
bl log2phys
-.L2287:
+.L2366:
ldr w0, [x29,196]
cmn w0, #1
- beq .L2269
+ beq .L2348
lsr x0, x0, 10
bl P2V_block_in_plane
uxth w1, w0
@@ -15549,91 +16329,91 @@ FtlRecoverySuperblock:
ubfiz x3, x1, 1, 16
ldr x2, [x2,1184]
ldrh w2, [x2,x3]
- cbz w2, .L2291
-.L2382:
+ cbz w2, .L2370
+.L2461:
bl decrement_vpc_count
- b .L2269
-.L2291:
+ b .L2348
+.L2370:
ldr x0, [x29,120]
bl printk
- b .L2269
-.L2273:
+ b .L2348
+.L2352:
add x24, x25, :lo12:.LANCHOR4
ldrh w0, [x19]
mov w2, w22
- strh w0, [x24,218]
+ strh w0, [x24,4058]
ldr x0, [x29,128]
bl printk
- ldr w0, [x24,224]
+ ldr w0, [x24,4064]
cmp w0, 31
- bhi .L2292
- add x1, x24, 232
+ bhi .L2371
+ add x1, x24, 4072
ldr w2, [x29,204]
str w2, [x1,w0,uxtw 2]
add w0, w0, 1
- str w0, [x24,224]
-.L2292:
+ str w0, [x24,4064]
+.L2371:
ldrh w0, [x19]
bl decrement_vpc_count
add x0, x25, :lo12:.LANCHOR4
- ldr w1, [x0,172]
+ ldr w1, [x0,4012]
cmn w1, #1
- beq .L2381
+ beq .L2460
cmp w1, w22
- bls .L2269
-.L2381:
- str w22, [x0,172]
-.L2269:
+ bls .L2348
+.L2460:
+ str w22, [x0,4012]
+.L2348:
ldr x0, [x29,160]
add x0, x0, 1
str x0, [x29,160]
- b .L2268
-.L2390:
+ b .L2347
+.L2469:
ldrb w0, [x19,8]
add w23, w23, 1
cmp w0, 1
uxth w23, w23
- bne .L2295
+ bne .L2374
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbz w0, .L2295
+ cbz w0, .L2374
cmp w21, w23
- bne .L2295
+ bne .L2374
add x0, x20, :lo12:.LANCHOR2
ldrh w0, [x0,820]
cmp w0, w23
- beq .L2271
-.L2295:
+ beq .L2350
+.L2374:
add x0, x20, :lo12:.LANCHOR2
ldrh w1, [x0,818]
cmp w23, w1
- bne .L2263
+ bne .L2342
ldrh w2, [x0,748]
mov w3, 65535
strh w23, [x19,2]
mov x0, 0
strh wzr, [x19,4]
-.L2297:
+.L2376:
uxth w1, w0
cmp w1, w2
- bcs .L2377
+ bcs .L2456
add x0, x0, 1
add x4, x19, x0, lsl 1
ldrh w4, [x4,14]
cmp w4, w3
- beq .L2297
+ beq .L2376
strb w1, [x19,6]
- b .L2377
-.L2271:
+ b .L2456
+.L2350:
strb w26, [x19,6]
strh w21, [x19,2]
-.L2384:
+.L2463:
mov x0, x19
mov w1, w21
mov w2, w26
bl ftl_sb_update_avl_pages
-.L2377:
+.L2456:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -15653,11 +16433,11 @@ FtlSlcSuperblockCheck:
stp x21, x22, [sp,32]
str x23, [sp,48]
ldrh w1, [x0,4]
- cbz w1, .L2391
+ cbz w1, .L2470
ldrh w1, [x0]
mov w20, 65535
cmp w1, w20
- beq .L2391
+ beq .L2470
mov x19, x0
ldrb w0, [x0,6]
adrp x21, .LANCHOR0
@@ -15666,10 +16446,10 @@ FtlSlcSuperblockCheck:
add x21, x21, :lo12:.LANCHOR0
add x22, x21, 652
ldrh w0, [x19,x0,lsl 1]
-.L2395:
+.L2474:
cmp w0, w20
- bne .L2402
-.L2397:
+ bne .L2481
+.L2476:
ldrb w0, [x19,6]
add x1, x23, :lo12:.LANCHOR2
add w0, w0, 1
@@ -15677,51 +16457,51 @@ FtlSlcSuperblockCheck:
uxtb w0, w0
strb w0, [x19,6]
cmp w1, w0
- bne .L2396
+ bne .L2475
ldrh w0, [x19,2]
strb wzr, [x19,6]
add w0, w0, 1
strh w0, [x19,2]
-.L2396:
+.L2475:
ldrb w0, [x19,6]
add x0, x0, 8
ldrh w0, [x19,x0,lsl 1]
- b .L2395
-.L2402:
+ b .L2474
+.L2481:
ldrb w1, [x19,8]
cmp w1, 1
- bne .L2398
+ bne .L2477
ldrb w0, [x21,136]
- cbnz w0, .L2398
+ cbnz w0, .L2477
ldrh w0, [x19,2]
ldrh w0, [x22,w0,sxtw 1]
cmp w0, w20
- bne .L2398
+ bne .L2477
ldrh w0, [x19,4]
sub w0, w0, #1
strh w0, [x19,4]
ldrh w0, [x19]
bl decrement_vpc_count
ldrh w1, [x19,4]
- cbnz w1, .L2397
+ cbnz w1, .L2476
ldrh w0, [x19,2]
strb w1, [x19,6]
add w0, w0, 1
strh w0, [x19,2]
- b .L2391
-.L2398:
+ b .L2470
+.L2477:
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbz w0, .L2391
+ cbz w0, .L2470
cmp w1, 1
- bne .L2391
+ bne .L2470
adrp x0, .LANCHOR2
ldrh w2, [x19,2]
add x0, x0, :lo12:.LANCHOR2
ldrh w1, [x0,820]
cmp w2, w1
- bcc .L2391
+ bcc .L2470
ldrh w1, [x19]
ldr x3, [x0,1184]
lsl x1, x1, 1
@@ -15733,7 +16513,7 @@ FtlSlcSuperblockCheck:
ldrh w0, [x0,818]
strh w0, [x19,2]
strb wzr, [x19,6]
-.L2391:
+.L2470:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -15760,11 +16540,11 @@ get_new_active_ppa:
add x0, x0, 8
add x24, x20, 652
ldrh w0, [x19,x0,lsl 1]
-.L2404:
+.L2483:
cmp w0, w22
adrp x21, .LANCHOR2
- bne .L2419
-.L2405:
+ bne .L2498
+.L2484:
ldrb w0, [x19,6]
add x1, x23, :lo12:.LANCHOR2
add w0, w0, 1
@@ -15772,33 +16552,33 @@ get_new_active_ppa:
uxtb w0, w0
strb w0, [x19,6]
cmp w1, w0
- bne .L2406
+ bne .L2485
ldrh w0, [x19,2]
strb wzr, [x19,6]
add w0, w0, 1
strh w0, [x19,2]
-.L2406:
+.L2485:
ldrb w0, [x19,6]
add x0, x0, 8
ldrh w0, [x19,x0,lsl 1]
- b .L2404
-.L2419:
+ b .L2483
+.L2498:
ldrb w1, [x19,8]
cmp w1, 1
- bne .L2407
+ bne .L2486
ldrb w1, [x20,136]
- cbnz w1, .L2407
+ cbnz w1, .L2486
ldrh w1, [x19,2]
ldrh w1, [x24,w1,sxtw 1]
cmp w1, w22
- bne .L2407
+ bne .L2486
ldrh w0, [x19,4]
sub w0, w0, #1
strh w0, [x19,4]
ldrh w0, [x19]
bl decrement_vpc_count
- b .L2405
-.L2407:
+ b .L2484
+.L2486:
ldrh w1, [x19,4]
adrp x20, .LANCHOR0
ldrh w22, [x19,2]
@@ -15809,51 +16589,51 @@ get_new_active_ppa:
strh w1, [x19,4]
mov w24, w23
add x25, x20, 652
-.L2408:
+.L2487:
add x0, x21, :lo12:.LANCHOR2
ldrb w1, [x19,6]
ldrh w2, [x0,748]
-.L2410:
+.L2489:
add w1, w1, 1
uxtb w1, w1
cmp w1, w2
- bne .L2409
+ bne .L2488
ldrh w1, [x19,2]
add w1, w1, 1
strh w1, [x19,2]
mov w1, 0
-.L2409:
+.L2488:
add x0, x19, x1, sxtw 1
ldrh w0, [x0,16]
cmp w0, w23
- beq .L2410
+ beq .L2489
ldrb w0, [x19,8]
strb w1, [x19,6]
cmp w0, 1
- bne .L2415
+ bne .L2494
ldrb w0, [x20,136]
- cbnz w0, .L2412
+ cbnz w0, .L2491
ldrh w0, [x19,2]
ldrh w0, [x25,w0,sxtw 1]
cmp w0, w24
- bne .L2412
+ bne .L2491
ldrh w1, [x19,4]
- cbz w1, .L2412
+ cbz w1, .L2491
ldrh w0, [x19]
sub w1, w1, #1
strh w1, [x19,4]
bl decrement_vpc_count
- b .L2408
-.L2412:
+ b .L2487
+.L2491:
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
ldrb w0, [x1,136]
- cbz w0, .L2415
+ cbz w0, .L2494
add x2, x21, :lo12:.LANCHOR2
ldrh w1, [x19,2]
ldrh w0, [x2,820]
cmp w1, w0
- bcc .L2415
+ bcc .L2494
ldrh w1, [x19]
ldr x0, [x2,1184]
lsl x1, x1, 1
@@ -15865,7 +16645,7 @@ get_new_active_ppa:
ldrh w0, [x2,818]
strh w0, [x19,2]
strb wzr, [x19,6]
-.L2415:
+.L2494:
mov w0, w22
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -15887,20 +16667,20 @@ FtlWriteDumpData:
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
ldr w0, [x20,1400]
- cbnz w0, .L2420
+ cbnz w0, .L2499
ldrh w2, [x20,3612]
- cbz w2, .L2422
+ cbz w2, .L2501
ldrb w1, [x20,3616]
- cbnz w1, .L2422
+ cbnz w1, .L2501
ldrb w1, [x20,3615]
ldrh w3, [x20,818]
mul w1, w1, w3
cmp w2, w1
- beq .L2422
+ beq .L2501
ldrb w23, [x20,3618]
ldr w22, [x20,1396]
ldrh w24, [x20,748]
- cbnz w23, .L2420
+ cbnz w23, .L2499
sub w22, w22, #1
add x1, x29, 84
mov w0, w22
@@ -15915,29 +16695,29 @@ FtlWriteDumpData:
str x1, [x29,96]
str x21, [x29,104]
str w23, [x21,4]
- beq .L2424
+ beq .L2503
add x0, x29, 88
mov w1, 1
mov w2, w23
bl FlashReadPages
- b .L2425
-.L2424:
+ b .L2504
+.L2503:
ldr x0, [x20,1048]
mov w1, 255
ldrh w2, [x20,828]
bl ftl_memset
-.L2425:
+.L2504:
add x25, x19, :lo12:.LANCHOR2
mov w0, -3947
lsl w24, w24, 2
strh w0, [x21]
mov w23, 0
add x20, x25, 3608
-.L2426:
+.L2505:
cmp w23, w24
- beq .L2427
+ beq .L2506
ldrh w0, [x20,4]
- cbz w0, .L2427
+ cbz w0, .L2506
ldr w0, [x29,92]
add w23, w23, 1
str w0, [x21,12]
@@ -15960,16 +16740,16 @@ FtlWriteDumpData:
bl FlashProgPages
ldrh w0, [x20]
bl decrement_vpc_count
- b .L2426
-.L2427:
+ b .L2505
+.L2506:
add x19, x19, :lo12:.LANCHOR2
mov w0, 1
strb w0, [x19,3618]
- b .L2420
-.L2422:
+ b .L2499
+.L2501:
add x19, x19, :lo12:.LANCHOR2
strb wzr, [x19,3618]
-.L2420:
+.L2499:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -15987,23 +16767,23 @@ l2p_flush:
mov w19, 0
adrp x20, .LANCHOR2
bl FtlWriteDumpData
-.L2438:
+.L2517:
add x1, x20, :lo12:.LANCHOR2
ldrh w0, [x1,858]
cmp w0, w19
- bls .L2441
+ bls .L2520
ldr x1, [x1,1264]
ubfiz x0, x19, 4, 16
add x0, x1, x0
ldr w0, [x0,4]
- tbz w0, #31, .L2439
+ tbz w0, #31, .L2518
mov w0, w19
bl flush_l2p_region
-.L2439:
+.L2518:
add w19, w19, 1
uxth w19, w19
- b .L2438
-.L2441:
+ b .L2517
+.L2520:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
@@ -16016,64 +16796,62 @@ FtlSuperblockPowerLostFix:
stp x29, x30, [sp, -128]!
add x29, sp, 0
stp x19, x20, [sp,16]
- mov x19, x0
- adrp x0, .LANCHOR0+136
- stp x21, x22, [sp,32]
+ adrp x20, .LANCHOR2
str x23, [sp,48]
- ldrb w20, [x0,#:lo12:.LANCHOR0+136]
- cbz w20, .L2456
- ldrb w20, [x19,8]
- cmp w20, 1
- bne .L2451
- ldrh w21, [x19,4]
- b .L2443
-.L2451:
- mov w20, 0
-.L2456:
- mov w21, 12
-.L2443:
- adrp x23, .LANCHOR2
- mov w22, -1
-.L2444:
- sub w21, w21, #1
- cmn w21, #1
- beq .L2446
+ add x1, x20, :lo12:.LANCHOR2
+ stp x21, x22, [sp,32]
+ ldr w1, [x1,1400]
+ cbnz w1, .L2521
+ adrp x2, .LANCHOR0+136
+ ldrb w21, [x2,#:lo12:.LANCHOR0+136]
+ cbz w21, .L2535
+ ldrb w21, [x0,8]
+ cmp w21, 1
+ bne .L2531
+ ldrh w22, [x0,4]
+ b .L2523
+.L2531:
+ mov w21, w1
+.L2535:
+ mov w22, 12
+.L2523:
+ mov x19, x0
+ mov w23, -1
+.L2524:
+ sub w22, w22, #1
+ cmn w22, #1
+ beq .L2526
ldrh w0, [x19,4]
- cbnz w0, .L2445
-.L2446:
- adrp x0, .LANCHOR2
- ldrh w1, [x19]
- add x0, x0, :lo12:.LANCHOR2
- ldrh w4, [x19,4]
- lsl x1, x1, 1
- ldr x3, [x0,1184]
- ldrh w2, [x3,x1]
- sub w2, w2, w4
- strh w2, [x3,x1]
+ cbnz w0, .L2525
+.L2526:
+ add x20, x20, :lo12:.LANCHOR2
+ ldrh w0, [x19]
+ ldrh w3, [x19,4]
+ lsl x0, x0, 1
+ ldr x2, [x20,1184]
+ ldrh w1, [x2,x0]
+ sub w1, w1, w3
+ strh w1, [x2,x0]
strb wzr, [x19,6]
- ldrh w0, [x0,818]
+ ldrh w0, [x20,818]
strh w0, [x19,2]
strh wzr, [x19,4]
- ldp x21, x22, [sp,32]
- ldp x19, x20, [sp,16]
- ldr x23, [sp,48]
- ldp x29, x30, [sp], 128
- ret
-.L2445:
+ b .L2521
+.L2525:
mov x0, x19
bl get_new_active_ppa
str w0, [x29,76]
cmn w0, #1
- beq .L2446
- add x2, x23, :lo12:.LANCHOR2
- str w22, [x29,96]
+ beq .L2526
+ add x2, x20, :lo12:.LANCHOR2
+ str w23, [x29,96]
mov w3, 0
ldr x1, [x2,1112]
ldr x0, [x2,1048]
str x0, [x29,80]
str x1, [x29,88]
- str w22, [x1,8]
- str w22, [x1,12]
+ str w23, [x1,8]
+ str w23, [x1,12]
ldrh w0, [x19]
strh w0, [x1,2]
strh wzr, [x1]
@@ -16085,11 +16863,17 @@ FtlSuperblockPowerLostFix:
csel w0, w0, wzr, ne
str w0, [x2,876]
add x0, x29, 72
- mov w2, w20
+ mov w2, w21
bl FlashProgPages
ldrh w0, [x19]
bl decrement_vpc_count
- b .L2444
+ b .L2524
+.L2521:
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldr x23, [sp,48]
+ ldp x29, x30, [sp], 128
+ ret
.size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
.align 2
.global FtlVpcCheckAndModify
@@ -16097,11 +16881,11 @@ FtlSuperblockPowerLostFix:
FtlVpcCheckAndModify:
stp x29, x30, [sp, -80]!
adrp x1, .LANCHOR3
- adrp x0, .LC129
+ adrp x0, .LC49
add x1, x1, :lo12:.LANCHOR3
add x29, sp, 0
- add x1, x1, 16
- add x0, x0, :lo12:.LC129
+ add x1, x1, 72
+ add x0, x0, :lo12:.LC49
stp x19, x20, [sp,16]
stp x21, x22, [sp,32]
adrp x19, .LANCHOR2
@@ -16115,18 +16899,18 @@ FtlVpcCheckAndModify:
ldr x0, [x0,1176]
lsl w2, w2, 1
bl ftl_memset
-.L2458:
+.L2537:
add x19, x21, :lo12:.LANCHOR2
ldr w0, [x19,1396]
cmp w20, w0
- bcs .L2473
+ bcs .L2552
mov w0, w20
add x1, x29, 76
mov w2, 0
bl log2phys
ldr w0, [x29,76]
cmn w0, #1
- beq .L2459
+ beq .L2538
lsr x0, x0, 10
bl P2V_block_in_plane
ubfiz x0, x0, 1, 16
@@ -16134,39 +16918,39 @@ FtlVpcCheckAndModify:
ldrh w1, [x2,x0]
add w1, w1, 1
strh w1, [x2,x0]
-.L2459:
+.L2538:
add w20, w20, 1
- b .L2458
-.L2473:
- adrp x22, .LC130
+ b .L2537
+.L2552:
+ adrp x22, .LC150
mov w20, 0
mov w23, 65535
- add x22, x22, :lo12:.LC130
-.L2461:
+ add x22, x22, :lo12:.LC150
+.L2540:
ldrh w0, [x19,756]
cmp w0, w20
- bls .L2474
+ bls .L2553
ubfiz x21, x20, 1, 16
ldr x0, [x19,1184]
ldrh w2, [x0,x21]
ldr x0, [x19,1176]
ldrh w3, [x0,x21]
cmp w2, w3
- beq .L2464
+ beq .L2543
cmp w2, w23
- beq .L2464
+ beq .L2543
mov x0, x22
mov w1, w20
bl printk
ldrh w0, [x19,3608]
cmp w0, w20
- beq .L2464
+ beq .L2543
ldrh w0, [x19,3704]
cmp w0, w20
- beq .L2464
+ beq .L2543
ldrh w0, [x19,3656]
cmp w0, w20
- beq .L2464
+ beq .L2543
ldr x0, [x19,1176]
ldrh w1, [x0,x21]
ldr x0, [x19,1184]
@@ -16175,11 +16959,11 @@ FtlVpcCheckAndModify:
bl update_vpc_list
bl l2p_flush
bl FtlVpcTblFlush
-.L2464:
+.L2543:
add w20, w20, 1
uxth w20, w20
- b .L2461
-.L2474:
+ b .L2540
+.L2553:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -16198,89 +16982,89 @@ allocate_new_data_superblock:
stp x21, x22, [sp,32]
ldr w1, [x2,1400]
ldrh w22, [x0]
- cbnz w1, .L2476
+ cbnz w1, .L2555
mov x21, x0
mov w0, 65535
cmp w22, w0
- beq .L2477
+ beq .L2556
ubfiz x1, x22, 1, 16
ldr x0, [x2,1184]
ldrh w0, [x0,x1]
- cbz w0, .L2478
+ cbz w0, .L2557
mov w0, w22
bl INSERT_DATA_LIST
- b .L2477
-.L2478:
+ b .L2556
+.L2557:
mov w0, w22
bl INSERT_FREE_LIST
-.L2477:
+.L2556:
add x1, x19, :lo12:.LANCHOR2
strb wzr, [x21,8]
add x0, x1, 3656
cmp x21, x0
- beq .L2479
+ beq .L2558
ldrh w2, [x1,768]
cmp w2, 1
- beq .L2479
+ beq .L2558
adrp x0, .LANCHOR0+136
ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L2480
-.L2479:
+ cbz w0, .L2559
+.L2558:
mov w0, 1
strb w0, [x21,8]
- b .L2481
-.L2480:
+ b .L2560
+.L2559:
add x0, x1, 3608
cmp x21, x0
- bne .L2481
+ bne .L2560
cmp w2, 3
- beq .L2483
+ beq .L2562
ldr w0, [x1,868]
cmp w0, 1
- bne .L2484
-.L2483:
+ bne .L2563
+.L2562:
add x1, x19, :lo12:.LANCHOR2
mov w0, 1
strb w0, [x1,3616]
-.L2484:
+.L2563:
add x1, x19, :lo12:.LANCHOR2
ldr w0, [x1,652]
- cbz w0, .L2481
+ cbz w0, .L2560
ldr w0, [x1,920]
cmp w0, 29
- bhi .L2481
+ bhi .L2560
mov w0, 1
strb w0, [x1,3616]
-.L2481:
+.L2560:
adrp x1, .LANCHOR4
add x0, x1, :lo12:.LANCHOR4
mov x20, x1
- ldrh w2, [x0,160]
+ ldrh w2, [x0,4000]
mov w0, 65535
cmp w2, w0
- beq .L2486
+ beq .L2565
cmp w22, w2
- bne .L2487
+ bne .L2566
add x19, x19, :lo12:.LANCHOR2
ubfiz x1, x2, 1, 16
ldr x0, [x19,1184]
ldrh w0, [x0,x1]
- cbz w0, .L2488
-.L2487:
+ cbz w0, .L2567
+.L2566:
mov w0, w2
bl update_vpc_list
-.L2488:
+.L2567:
add x1, x20, :lo12:.LANCHOR4
mov w0, -1
- strh w0, [x1,160]
-.L2486:
+ strh w0, [x1,4000]
+.L2565:
mov x0, x21
bl allocate_data_superblock
bl l2p_flush
mov w0, 0
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L2476:
+.L2555:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -16292,34 +17076,37 @@ allocate_new_data_superblock:
.type FtlReadRefresh, %function
FtlReadRefresh:
stp x29, x30, [sp, -112]!
- adrp x1, .LANCHOR2
- add x0, x1, :lo12:.LANCHOR2
+ adrp x1, .LANCHOR4
+ add x2, x1, :lo12:.LANCHOR4
add x29, sp, 0
- add x2, x0, 3968
+ add x0, x2, 3456
stp x19, x20, [sp,16]
- str x21, [sp,32]
- ldr w3, [x2,80]
- cbz w3, .L2502
- ldr w3, [x2,84]
- ldr w1, [x0,1396]
- cmp w3, w1
- bcs .L2503
- mov w20, 2048
- mov x19, x0
-.L2508:
- ldr w0, [x19,4052]
- ldr w1, [x19,1396]
+ stp x21, x22, [sp,32]
+ adrp x19, .LANCHOR2
+ ldr w3, [x0,80]
+ cbz w3, .L2581
+ add x1, x19, :lo12:.LANCHOR2
+ ldr w4, [x0,84]
+ ldr w3, [x1,1396]
+ cmp w4, w3
+ bcs .L2582
+ mov w21, 2048
+ mov x20, x2
+.L2587:
+ add x1, x19, :lo12:.LANCHOR2
+ ldr w0, [x20,3540]
+ ldr w1, [x1,1396]
cmp w0, w1
- bcs .L2505
+ bcs .L2584
add x1, x29, 52
mov w2, 0
bl log2phys
- ldr w0, [x19,4052]
+ ldr w0, [x20,3540]
ldr w1, [x29,52]
add w0, w0, 1
- str w0, [x19,4052]
+ str w0, [x20,3540]
cmn w1, #1
- beq .L2506
+ beq .L2585
str w1, [x29,60]
mov w2, 0
str w0, [x29,80]
@@ -16331,58 +17118,60 @@ FtlReadRefresh:
bl FlashReadPages
ldr w0, [x29,56]
cmp w0, 256
- bne .L2505
+ bne .L2584
ldr w0, [x29,52]
lsr x0, x0, 10
bl P2V_block_in_plane
bl FtlGcRefreshBlock
- b .L2505
-.L2506:
- subs w20, w20, #1
- bne .L2508
-.L2505:
+ b .L2584
+.L2585:
+ subs w21, w21, #1
+ bne .L2587
+.L2584:
mov w0, -1
- b .L2510
-.L2503:
- ldr w0, [x0,900]
- str wzr, [x2,80]
- str wzr, [x2,84]
- str w0, [x2,76]
- b .L2516
-.L2502:
+ b .L2589
+.L2582:
+ ldr w1, [x1,900]
+ str wzr, [x0,80]
+ str wzr, [x0,84]
+ str w1, [x0,76]
+ b .L2595
+.L2581:
+ add x2, x19, :lo12:.LANCHOR2
+ ldr w0, [x2,916]
+ ldr w3, [x2,652]
adrp x2, .LANCHOR0+136
- ldr w3, [x0,916]
- ldr w0, [x0,652]
ldrb w4, [x2,#:lo12:.LANCHOR0+136]
mov w2, 4194304
- cbnz w4, .L2511
- add w0, w0, w3, lsr 10
+ cbnz w4, .L2590
+ add w0, w3, w0, lsr 10
mov w3, 33554432
asr w2, w3, w0
-.L2511:
- add x4, x1, :lo12:.LANCHOR2
- ldr w3, [x4,900]
- ldr w0, [x4,4044]
- add w5, w3, 1048576
- cmp w0, w5
- bhi .L2512
+.L2590:
+ add x19, x19, :lo12:.LANCHOR2
+ add x0, x1, :lo12:.LANCHOR4
+ ldr w3, [x19,900]
+ ldr w0, [x0,3532]
+ add w4, w3, 1048576
+ cmp w0, w4
+ bhi .L2591
add w0, w2, w0
cmp w0, w3
- bcc .L2512
- ldrb w2, [x4,3548]
+ bcc .L2591
+ ldrb w2, [x19,3548]
mov w0, 0
- cbnz w2, .L2510
-.L2512:
- add x0, x1, :lo12:.LANCHOR2
+ cbnz w2, .L2589
+.L2591:
+ add x0, x1, :lo12:.LANCHOR4
mov w1, 1
- str wzr, [x0,4052]
- str w1, [x0,4048]
- str w3, [x0,4044]
-.L2516:
+ str wzr, [x0,3540]
+ str w1, [x0,3536]
+ str w3, [x0,3532]
+.L2595:
mov w0, 0
-.L2510:
+.L2589:
ldp x19, x20, [sp,16]
- ldr x21, [sp,32]
+ ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 112
ret
.size FtlReadRefresh, .-FtlReadRefresh
@@ -16401,293 +17190,302 @@ ftl_do_gc:
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
ldr w4, [x3,1400]
- cbnz w4, .L2662
+ cbnz w4, .L2741
ldr w4, [x3,924]
- cbnz w4, .L2662
+ cbnz w4, .L2741
ldrh w4, [x3,3584]
cmp w4, 47
- bls .L2662
- mov w23, w0
+ bls .L2741
+ str w0, [x29,124]
adrp x0, .LANCHOR1+3068
mov w24, w1
ldrh w1, [x0,#:lo12:.LANCHOR1+3068]
mov w0, 65535
cmp w1, w0
- bne .L2519
-.L2522:
+ bne .L2598
+.L2601:
add x0, x19, :lo12:.LANCHOR2
mov w2, 65535
ldrh w1, [x0,950]
cmp w1, w2
- bne .L2520
- b .L2521
-.L2519:
+ bne .L2599
+ b .L2600
+.L2598:
ldrh w1, [x3,3704]
cmp w1, w0
- beq .L2522
+ beq .L2601
mov w0, 1
bl FtlGcFreeTempBlock
mov w2, 1
- cbz w0, .L2522
- b .L2662
-.L2520:
+ cbz w0, .L2601
+ b .L2741
+.L2599:
ldrh w3, [x0,948]
cmp w3, w2
- bne .L2521
+ bne .L2600
strh w1, [x0,948]
mov w1, -1
strh w1, [x0,950]
-.L2521:
+.L2600:
add x1, x19, :lo12:.LANCHOR2
- cmp w23, 1
+ ldr w2, [x29,124]
+ adrp x22, .LANCHOR4
+ cmp w2, 1
ldr w0, [x1,940]
add w0, w0, 1
- add w0, w0, w23, lsl 7
+ add w0, w0, w2, lsl 7
str w0, [x1,940]
- bne .L2533
+ bne .L2612
ldr w1, [x1,652]
- cbnz w1, .L2524
+ cbnz w1, .L2603
adrp x1, .LANCHOR0+136
ldrb w1, [x1,#:lo12:.LANCHOR0+136]
- cbz w1, .L2533
-.L2524:
+ cbz w1, .L2612
+.L2603:
add x20, x19, :lo12:.LANCHOR2
ldr w1, [x20,920]
cmp w1, 29
- bhi .L2533
- adrp x21, .LANCHOR4
- add x1, x21, :lo12:.LANCHOR4
- ldrh w1, [x1,360]
+ bhi .L2612
+ adrp x21, .LANCHOR5
+ add x1, x21, :lo12:.LANCHOR5
+ ldrh w1, [x1,-152]
add w0, w0, w1
str w0, [x20,940]
bl FtlGcReFreshBadBlk
- ldrh w0, [x20,3920]
+ add x0, x22, :lo12:.LANCHOR4
mov w1, 65535
+ ldrh w0, [x0,3408]
cmp w0, w1
- bne .L2533
+ bne .L2612
ldrh w1, [x20,948]
cmp w1, w0
- bne .L2533
+ bne .L2612
ldr w0, [x20,940]
cmp w0, 1024
- bhi .L2525
+ bhi .L2604
ldrh w0, [x20,3600]
cmp w0, 63
- bhi .L2533
-.L2525:
+ bhi .L2612
+.L2604:
add x0, x19, :lo12:.LANCHOR2
- add x1, x21, :lo12:.LANCHOR4
+ add x1, x21, :lo12:.LANCHOR5
ldrh w2, [x0,954]
ldrh w3, [x0,3600]
add w2, w2, 64
- strh wzr, [x1,360]
+ strh wzr, [x1,-152]
cmp w3, w2
- bgt .L2533
+ bgt .L2612
str wzr, [x0,940]
ldr w0, [x0,920]
- cbnz w0, .L2526
+ cbnz w0, .L2605
mov w0, 6
- b .L2684
-.L2526:
+ b .L2763
+.L2605:
cmp w0, 5
- bhi .L2527
+ bhi .L2606
mov w0, 18
-.L2684:
- strh w0, [x1,360]
-.L2527:
+.L2763:
+ strh w0, [x1,-152]
+.L2606:
mov w0, 32
mov w27, 65535
bl List_get_gc_head_node
uxth w25, w0
cmp w25, w27
- beq .L2532
- add x22, x19, :lo12:.LANCHOR2
- ldrh w0, [x22,956]
- cbz w0, .L2529
- ldrh w1, [x22,820]
+ beq .L2611
+ add x23, x19, :lo12:.LANCHOR2
+ ldrh w0, [x23,956]
+ cbz w0, .L2608
+ ldrh w1, [x23,820]
ubfiz x25, x25, 1, 16
- ldrh w3, [x22,748]
- ldr x26, [x22,1184]
+ ldrh w3, [x23,748]
+ ldr x26, [x23,1184]
mul w1, w1, w3
ldrh w2, [x26,x25]
add w1, w1, 1
cmp w2, w1
- bgt .L2532
+ bgt .L2611
add w1, w0, 1
- str wzr, [x22,928]
+ str wzr, [x23,928]
uxth w1, w1
- strh w1, [x22,956]
- str x1, [x29,120]
+ strh w1, [x23,956]
+ str x1, [x29,112]
bl List_get_gc_head_node
uxth w20, w0
cmp w20, w27
- ldr x1, [x29,120]
- beq .L2532
+ ldr x1, [x29,112]
+ beq .L2611
ubfiz x27, x20, 1, 16
- adrp x0, .LC131
+ adrp x0, .LC151
ldrh w4, [x26,x25]
- add x0, x0, :lo12:.LC131
+ add x0, x0, :lo12:.LC151
mov w2, w20
ldrh w3, [x26,x27]
bl printk
- ldrh w0, [x22,956]
+ ldrh w0, [x23,956]
cmp w0, 40
- bls .L2530
- ldr x0, [x22,1184]
+ bls .L2609
+ ldr x0, [x23,1184]
ldrh w0, [x0,x27]
cmp w0, 32
- bls .L2530
- strh wzr, [x22,956]
-.L2530:
- add x21, x21, :lo12:.LANCHOR4
+ bls .L2609
+ strh wzr, [x23,956]
+.L2609:
+ add x21, x21, :lo12:.LANCHOR5
mov w0, 6
- strh w0, [x21,360]
- b .L2534
-.L2529:
+ strh w0, [x21,-152]
+ b .L2613
+.L2608:
mov w0, 1
- strh w0, [x22,956]
-.L2532:
+ strh w0, [x23,956]
+.L2611:
bl GetSwlReplaceBlock
uxth w20, w0
mov w0, 65535
cmp w20, w0
- bne .L2534
- add x21, x21, :lo12:.LANCHOR4
- strh wzr, [x21,360]
-.L2533:
- add x22, x19, :lo12:.LANCHOR2
+ bne .L2613
+ add x21, x21, :lo12:.LANCHOR5
+ strh wzr, [x21,-152]
+.L2612:
+ add x0, x22, :lo12:.LANCHOR4
+ ldrh w20, [x0,3408]
mov w0, 65535
- ldrh w20, [x22,3920]
cmp w20, w0
- bne .L2690
- ldrh w0, [x22,3704]
+ bne .L2769
+ add x23, x19, :lo12:.LANCHOR2
+ ldrh w0, [x23,3704]
cmp w0, w20
- beq .L2691
-.L2534:
+ beq .L2770
+.L2613:
mov w0, 65535
cmp w20, w0
cset w1, eq
- cbz w1, .L2547
- cbnz w23, .L2547
+ cbz w1, .L2626
+ ldr w0, [x29,124]
+ cbnz w0, .L2626
add x0, x19, :lo12:.LANCHOR2
- mov w21, 1
+ mov w23, 1
ldrh w1, [x0,3600]
cmp w1, 24
- bhi .L2548
+ bhi .L2627
cmp w1, 16
- ldrh w21, [x0,818]
- bls .L2549
- lsr w21, w21, 5
- b .L2548
-.L2549:
+ ldrh w23, [x0,818]
+ bls .L2628
+ lsr w23, w23, 5
+ b .L2627
+.L2628:
cmp w1, 12
- bls .L2550
- lsr w21, w21, 4
- b .L2548
-.L2550:
- lsr w0, w21, 2
+ bls .L2629
+ lsr w23, w23, 4
+ b .L2627
+.L2629:
+ lsr w0, w23, 2
cmp w1, 9
- csel w21, w0, w21, cs
-.L2548:
+ csel w23, w0, w23, cs
+.L2627:
add x0, x19, :lo12:.LANCHOR2
ldrh w2, [x0,952]
cmp w2, w1
- bcs .L2552
+ bcs .L2631
ldrh w1, [x0,3704]
mov w2, 65535
cmp w1, w2
- bne .L2553
+ bne .L2632
ldrh w2, [x0,948]
cmp w2, w1
- bne .L2553
- adrp x1, .LANCHOR4+360
- ldrh w2, [x1,#:lo12:.LANCHOR4+360]
- cbnz w2, .L2554
+ bne .L2632
+ adrp x1, .LANCHOR5-152
+ ldrh w2, [x1,#:lo12:.LANCHOR5-152]
+ cbnz w2, .L2633
ldr w1, [x0,1396]
ldr w3, [x0,3892]
add w1, w1, w1, lsl 1
cmp w3, w1, lsr 2
- bcs .L2555
-.L2554:
+ bcs .L2634
+.L2633:
+ add x22, x22, :lo12:.LANCHOR4
add x1, x19, :lo12:.LANCHOR2
- ldrh w0, [x1,3916]
+ ldrh w0, [x22,3404]
add w0, w0, w0, lsl 1
asr w0, w0, 2
strh w0, [x1,952]
- b .L2556
-.L2555:
+ b .L2635
+.L2634:
mov w1, 18
strh w1, [x0,952]
-.L2556:
+.L2635:
add x19, x19, :lo12:.LANCHOR2
str wzr, [x19,928]
- b .L2662
-.L2553:
+ b .L2741
+.L2632:
+ add x0, x22, :lo12:.LANCHOR4
add x1, x19, :lo12:.LANCHOR2
- ldrh w0, [x1,3916]
+ ldrh w0, [x0,3404]
add w0, w0, w0, lsl 1
asr w0, w0, 2
strh w0, [x1,952]
-.L2552:
+.L2631:
cmp w24, 2
- bhi .L2617
+ bhi .L2696
add x0, x19, :lo12:.LANCHOR2
ldr w0, [x0,652]
- cbz w0, .L2617
- add w21, w21, 1
- uxth w21, w21
- b .L2617
-.L2547:
+ cbz w0, .L2696
+ add w23, w23, 1
+ uxth w23, w23
+ b .L2696
+.L2626:
add x21, x19, :lo12:.LANCHOR2
mov w2, 65535
ldrh w0, [x21,3704]
cmp w0, w2
- bne .L2559
- cbz w1, .L2559
+ bne .L2638
+ cbz w1, .L2638
ldrh w1, [x21,948]
cmp w1, w0
- bne .L2559
- ldrh w1, [x21,3920]
- cmp w1, w0
- beq .L2560
-.L2565:
+ bne .L2638
+ add x1, x22, :lo12:.LANCHOR4
+ ldrh w2, [x1,3408]
+ cmp w2, w0
+ beq .L2639
+.L2644:
mov w20, 65535
- b .L2559
-.L2560:
+ b .L2638
+.L2639:
ldrh w24, [x21,3600]
- adrp x20, .LANCHOR4
+ adrp x20, .LANCHOR5
ldrh w0, [x21,952]
str wzr, [x21,928]
cmp w0, w24
- bcs .L2561
- add x0, x20, :lo12:.LANCHOR4
- ldrh w0, [x0,360]
- cbnz w0, .L2562
+ bcs .L2640
+ add x0, x20, :lo12:.LANCHOR5
+ ldrh w0, [x0,-152]
+ cbnz w0, .L2641
ldr w0, [x21,1396]
ldr w1, [x21,3892]
add w0, w0, w0, lsl 1
cmp w1, w0, lsr 2
- bcs .L2563
-.L2562:
+ bcs .L2642
+.L2641:
+ add x22, x22, :lo12:.LANCHOR4
add x19, x19, :lo12:.LANCHOR2
- ldrh w0, [x19,3916]
+ ldrh w0, [x22,3404]
add w0, w0, w0, lsl 1
asr w0, w0, 2
strh w0, [x19,952]
- b .L2564
-.L2563:
+ b .L2643
+.L2642:
mov w0, 18
strh w0, [x21,952]
-.L2564:
- add x20, x20, :lo12:.LANCHOR4
+.L2643:
+ add x20, x20, :lo12:.LANCHOR5
bl FtlReadRefresh
- ldrh w2, [x20,360]
- b .L2662
-.L2561:
- add x22, x20, :lo12:.LANCHOR4
- ldrh w0, [x22,360]
- cbnz w0, .L2565
- ldrh w20, [x21,3916]
+ ldrh w2, [x20,-152]
+ b .L2741
+.L2640:
+ add x23, x20, :lo12:.LANCHOR5
+ ldrh w0, [x23,-152]
+ cbnz w0, .L2644
+ ldrh w20, [x1,3404]
add w1, w20, w20, lsl 1
asr w1, w1, 2
strh w1, [x21,952]
@@ -16701,456 +17499,468 @@ ftl_do_gc:
mov w2, 2
sdiv w0, w0, w2
cmp w1, w0
- ble .L2566
+ ble .L2645
sub w20, w20, #1
cmp w24, w20
- blt .L2566
+ blt .L2645
bl FtlReadRefresh
- b .L2688
-.L2566:
- cbnz w1, .L2565
+ b .L2767
+.L2645:
+ cbnz w1, .L2644
mov w0, -1
add x19, x19, :lo12:.LANCHOR2
bl decrement_vpc_count
ldrh w2, [x19,3600]
add w2, w2, 1
- b .L2662
-.L2559:
+ b .L2741
+.L2638:
add x0, x19, :lo12:.LANCHOR2
- mov w21, 2
+ mov w23, 2
ldr w0, [x0,652]
cmp w0, wzr
- csinc w21, w21, wzr, ne
- b .L2558
-.L2617:
+ csinc w23, w23, wzr, ne
+ b .L2637
+.L2696:
mov w20, 65535
-.L2558:
- add x0, x19, :lo12:.LANCHOR2
+.L2637:
+ add x0, x22, :lo12:.LANCHOR4
mov w2, 65535
- ldrh w1, [x0,3920]
+ ldrh w1, [x0,3408]
cmp w1, w2
- bne .L2568
+ bne .L2647
cmp w20, w1
- beq .L2569
- strh w20, [x0,3920]
- b .L2570
-.L2569:
- ldrh w1, [x0,948]
- cmp w1, w20
- beq .L2570
- ubfiz x1, x1, 1, 16
- ldr x2, [x0,1184]
- ldrh w1, [x2,x1]
- cbnz w1, .L2571
- mov w1, -1
- strh w1, [x0,948]
-.L2571:
- add x0, x19, :lo12:.LANCHOR2
- ldrh w1, [x0,948]
- strh w1, [x0,3920]
- mov w1, -1
- strh w1, [x0,948]
-.L2570:
- add x22, x19, :lo12:.LANCHOR2
+ beq .L2648
+ strh w20, [x0,3408]
+ b .L2649
+.L2648:
+ add x1, x19, :lo12:.LANCHOR2
+ ldrh w0, [x1,948]
+ cmp w0, w20
+ beq .L2649
+ ubfiz x0, x0, 1, 16
+ ldr x2, [x1,1184]
+ ldrh w0, [x2,x0]
+ cbnz w0, .L2650
+ mov w0, -1
+ strh w0, [x1,948]
+.L2650:
+ add x1, x19, :lo12:.LANCHOR2
+ add x0, x22, :lo12:.LANCHOR4
+ ldrh w2, [x1,948]
+ strh w2, [x0,3408]
+ mov w0, -1
+ strh w0, [x1,948]
+.L2649:
+ add x21, x22, :lo12:.LANCHOR4
mov w1, 65535
- ldrh w0, [x22,3920]
- strb wzr, [x22,3928]
+ ldrh w0, [x21,3408]
+ strb wzr, [x21,3416]
cmp w0, w1
- beq .L2568
+ beq .L2647
bl IsBlkInGcList
- cbz w0, .L2573
+ cbz w0, .L2652
mov w0, -1
- strh w0, [x22,3920]
-.L2573:
+ strh w0, [x21,3408]
+.L2652:
adrp x0, .LANCHOR0+136
ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L2574
- add x0, x19, :lo12:.LANCHOR2
- add x22, x0, 3920
- ldrh w0, [x0,3920]
+ cbz w0, .L2653
+ add x0, x22, :lo12:.LANCHOR4
+ add x21, x0, 3408
+ ldrh w0, [x0,3408]
bl ftl_get_blk_mode
- strb w0, [x22,8]
-.L2574:
- add x22, x19, :lo12:.LANCHOR2
+ strb w0, [x21,8]
+.L2653:
+ add x21, x22, :lo12:.LANCHOR4
mov w0, 65535
- add x24, x22, 3920
- ldrh w1, [x22,3920]
+ add x24, x21, 3408
+ ldrh w1, [x21,3408]
cmp w1, w0
- beq .L2568
+ beq .L2647
mov x0, x24
bl make_superblock
- strh wzr, [x22,3922]
- adrp x0, .LANCHOR4
- ldrh w2, [x22,3920]
- add x0, x0, :lo12:.LANCHOR4
- ldr x1, [x22,1184]
- strb wzr, [x22,3926]
- strh wzr, [x0,362]
+ strh wzr, [x21,3410]
+ adrp x0, .LANCHOR5
+ add x1, x19, :lo12:.LANCHOR2
+ add x0, x0, :lo12:.LANCHOR5
+ ldrh w2, [x21,3408]
+ strb wzr, [x21,3414]
+ ldr x1, [x1,1184]
+ strh wzr, [x0,-150]
ldrh w1, [x1,x2,lsl 1]
- strh w1, [x0,364]
-.L2568:
- add x3, x19, :lo12:.LANCHOR2
- ldrh w0, [x3,3920]
- ldrh w1, [x3,3608]
- cmp w1, w0
- beq .L2575
- ldrh w1, [x3,3656]
+ strh w1, [x0,-148]
+.L2647:
+ add x21, x22, :lo12:.LANCHOR4
+ add x1, x19, :lo12:.LANCHOR2
+ ldrh w0, [x21,3408]
+ ldrh w2, [x1,3608]
+ cmp w2, w0
+ beq .L2654
+ ldrh w1, [x1,3656]
cmp w1, w0
- beq .L2575
-.L2576:
- mov x28, x3
- mov w24, 65535
- b .L2577
-.L2575:
- add x19, x19, :lo12:.LANCHOR2
+ bne .L2656
+.L2655:
+.L2654:
+ add x22, x22, :lo12:.LANCHOR4
mov w0, -1
- strh w0, [x19,3920]
- b .L2689
-.L2598:
- ldrh w0, [x28,3922]
- add w21, w21, w0
- uxth w21, w21
- strh w21, [x28,3922]
- cmp w21, w25
- bcs .L2692
-.L2600:
- ldrh w0, [x28,3600]
+ strh w0, [x22,3408]
+ b .L2768
+.L2677:
+ ldrh w0, [x21,3410]
+ add w23, w23, w0
+ uxth w23, w23
+ strh w23, [x21,3410]
+ cmp w23, w26
+ bcs .L2771
+.L2679:
+ add x1, x19, :lo12:.LANCHOR2
+ ldrh w0, [x1,3600]
cmp w0, 2
- bhi .L2603
- ldrh w21, [x28,818]
-.L2577:
- ldrh w0, [x28,3920]
- cmp w0, w24
- bne .L2578
- str wzr, [x28,928]
- adrp x25, .LANCHOR4
-.L2579:
- ldrh w22, [x28,956]
- mov w0, w22
+ bhi .L2682
+ ldrh w23, [x1,818]
+.L2656:
+ ldrh w0, [x21,3408]
+ mov w1, 65535
+ cmp w0, w1
+ bne .L2657
+ add x0, x19, :lo12:.LANCHOR2
+ str wzr, [x0,928]
+.L2658:
+ add x26, x19, :lo12:.LANCHOR2
+ ldrh w24, [x26,956]
+ mov w0, w24
bl List_get_gc_head_node
- uxth w26, w0
- cmp w26, w24
- strh w26, [x28,3920]
- bne .L2580
- strh wzr, [x28,956]
+ uxth w27, w0
+ mov w0, 65535
+ strh w27, [x21,3408]
+ cmp w27, w0
+ bne .L2659
+ strh wzr, [x26,956]
mov w2, 8
- b .L2662
-.L2580:
- mov w0, w26
- add w22, w22, 1
+ b .L2741
+.L2659:
+ mov w0, w27
+ add w24, w24, 1
bl IsBlkInGcList
- cbz w0, .L2581
- strh w22, [x28,956]
- b .L2579
-.L2581:
- ldrh w5, [x28,748]
- ubfiz x1, x26, 1, 16
- ldrh w0, [x28,818]
- uxth w22, w22
- ldr x2, [x28,1184]
- mov w3, 2
- strh w22, [x28,956]
- mul w0, w0, w5
- ldrh w4, [x2,x1]
- sdiv w5, w0, w3
- cmp w4, w5
- bgt .L2583
- cmp w4, 8
- bls .L2584
- cmp w22, 48
- bls .L2584
- add x4, x25, :lo12:.LANCHOR4
- ldrh w4, [x4,176]
- cmp w4, 35
- bhi .L2584
-.L2583:
- strh wzr, [x28,956]
-.L2584:
+ cbz w0, .L2660
+ strh w24, [x26,956]
+ b .L2658
+.L2660:
+ ldrh w4, [x26,748]
+ ubfiz x1, x27, 1, 16
+ ldrh w0, [x26,818]
+ uxth w24, w24
+ ldr x2, [x26,1184]
+ strh w24, [x26,956]
+ mul w0, w0, w4
+ mov w4, 2
+ ldrh w3, [x2,x1]
+ sdiv w4, w0, w4
+ cmp w3, w4
+ bgt .L2662
+ cmp w3, 8
+ bls .L2663
+ cmp w24, 48
+ bls .L2663
+ ldrh w3, [x21,4016]
+ cmp w3, 35
+ bhi .L2663
+.L2662:
+ add x3, x19, :lo12:.LANCHOR2
+ strh wzr, [x3,956]
+.L2663:
ldrh w1, [x2,x1]
cmp w1, w0
- blt .L2585
- cmp w20, w24
- bne .L2585
+ blt .L2664
+ mov w0, 65535
+ cmp w20, w0
+ bne .L2664
+ add x22, x22, :lo12:.LANCHOR4
add x19, x19, :lo12:.LANCHOR2
mov w0, -1
strh wzr, [x19,956]
- strh w0, [x19,3920]
-.L2689:
- adrp x0, .LANCHOR4+360
- ldrh w2, [x0,#:lo12:.LANCHOR4+360]
- b .L2662
-.L2585:
- cbnz w1, .L2586
+ strh w0, [x22,3408]
+.L2768:
+ adrp x0, .LANCHOR5-152
+ ldrh w2, [x0,#:lo12:.LANCHOR5-152]
+ b .L2741
+.L2664:
+ cbnz w1, .L2665
mov w0, -1
bl decrement_vpc_count
- ldrh w0, [x28,956]
+ add x1, x19, :lo12:.LANCHOR2
+ ldrh w0, [x1,956]
add w0, w0, 1
- strh w0, [x28,956]
- b .L2579
-.L2586:
+ strh w0, [x1,956]
+ b .L2658
+.L2665:
adrp x0, .LANCHOR0
- strb wzr, [x28,3928]
+ strb wzr, [x21,3416]
add x0, x0, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbz w0, .L2587
- mov w0, w26
+ cbz w0, .L2666
+ mov w0, w27
bl ftl_get_blk_mode
- strb w0, [x28,3928]
-.L2587:
- add x22, x28, 3920
- mov x0, x22
+ strb w0, [x21,3416]
+.L2666:
+ add x24, x21, 3408
+ mov x0, x24
bl make_superblock
- adrp x1, .LANCHOR4
- ldrh w2, [x28,3920]
- add x1, x1, :lo12:.LANCHOR4
- ldr x0, [x28,1184]
- strh wzr, [x1,362]
+ adrp x1, .LANCHOR5
+ add x0, x19, :lo12:.LANCHOR2
+ add x1, x1, :lo12:.LANCHOR5
+ ldrh w2, [x21,3408]
+ ldr x0, [x0,1184]
+ strh wzr, [x1,-150]
ldrh w0, [x0,x2,lsl 1]
- strh w0, [x1,364]
- strh wzr, [x28,3922]
- strb wzr, [x28,3926]
-.L2578:
- cmp w23, 1
- bne .L2588
- bl FtlReadRefresh
-.L2588:
- mov w0, 1
- str w0, [x28,924]
- adrp x0, .LANCHOR0
- ldrh w25, [x28,818]
- add x0, x0, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbz w0, .L2589
- ldrb w0, [x28,3928]
+ strh w0, [x1,-148]
+ strh wzr, [x21,3410]
+ strb wzr, [x21,3414]
+.L2657:
+ ldr w0, [x29,124]
cmp w0, 1
- bne .L2589
- ldrh w25, [x28,820]
-.L2589:
- ldrh w0, [x28,3922]
- add w1, w0, w21
- cmp w1, w25
- ble .L2590
- sub w21, w25, w0
- uxth w21, w21
-.L2590:
- mov w26, 0
-.L2591:
- cmp w21, w26, uxth
- bls .L2598
- add x1, x28, 3920
- ldrh w4, [x1,2]
+ bne .L2667
+ bl FtlReadRefresh
+.L2667:
+ add x0, x19, :lo12:.LANCHOR2
+ mov w1, 1
+ str w1, [x0,924]
+ adrp x1, .LANCHOR0
+ add x1, x1, :lo12:.LANCHOR0
+ ldrh w26, [x0,818]
+ ldrb w1, [x1,136]
+ cbz w1, .L2668
+ ldrb w1, [x21,3416]
+ cmp w1, 1
+ bne .L2668
+ ldrh w26, [x0,820]
+.L2668:
+ ldrh w0, [x21,3410]
+ add w1, w0, w23
+ cmp w1, w26
+ ble .L2669
+ sub w23, w26, w0
+ uxth w23, w23
+.L2669:
+ mov w27, 0
+.L2670:
+ cmp w23, w27, uxth
+ bls .L2677
+ add x1, x21, 3408
+ add x0, x19, :lo12:.LANCHOR2
+ ldrh w3, [x1,2]
+ ldrh w6, [x0,748]
mov x0, 0
- ldrh w6, [x28,748]
- add w4, w4, w26
- mov w22, w0
-.L2599:
+ add w3, w3, w27
+ mov w24, w0
+.L2678:
cmp w6, w0, uxth
- bls .L2693
+ bls .L2772
add x2, x1, x0, lsl 1
+ mov w4, 65535
ldrh w2, [x2,16]
- cmp w2, w24
- beq .L2592
- mov w3, 56
- ldr x7, [x28,1024]
- orr w2, w4, w2, lsl 10
- umull x5, w22, w3
- add w22, w22, 1
- add x5, x7, x5
- uxth w22, w22
- str w2, [x5,4]
-.L2592:
+ cmp w2, w4
+ beq .L2671
+ add x5, x19, :lo12:.LANCHOR2
+ mov w4, 56
+ orr w2, w3, w2, lsl 10
+ umull x4, w24, w4
+ ldr x5, [x5,1024]
+ add w24, w24, 1
+ add x4, x5, x4
+ uxth w24, w24
+ str w2, [x4,4]
+.L2671:
add x0, x0, 1
- b .L2599
-.L2693:
- ldr x0, [x28,1024]
- mov w1, w22
- ldrb w2, [x28,3928]
- mov x27, 0
+ b .L2678
+.L2772:
+ add x25, x19, :lo12:.LANCHOR2
+ ldrb w2, [x21,3416]
+ mov w1, w24
+ mov x28, 0
+ ldr x0, [x25,1024]
bl FlashReadPages
-.L2594:
- cmp w22, w27, uxth
- bls .L2694
+.L2673:
+ cmp w24, w28, uxth
+ bls .L2773
mov x0, 56
- mul x5, x27, x0
- ldr x0, [x28,1024]
+ mul x5, x28, x0
+ ldr x0, [x25,1024]
add x1, x0, x5
ldr w0, [x0,x5]
cmn w0, #1
ldr x4, [x1,16]
- beq .L2619
+ beq .L2698
ldrh w0, [x4]
mov w1, 61589
cmp w0, w1
- bne .L2619
+ bne .L2698
ldr w0, [x4,8]
add x1, x29, 140
mov w2, 0
- str x5, [x29,112]
- str x4, [x29,120]
+ str x5, [x29,104]
+ str x4, [x29,112]
bl log2phys
- ldr x6, [x28,1024]
- ldr x5, [x29,112]
+ ldr x2, [x25,1024]
+ ldr x5, [x29,104]
ldr w0, [x29,140]
- add x6, x6, x5
- ldr x4, [x29,120]
+ add x2, x2, x5
+ ldr x4, [x29,112]
and w0, w0, 2147483647
- ldr w1, [x6,4]
+ ldr w1, [x2,4]
cmp w0, w1
- bne .L2619
- adrp x0, .LANCHOR4
- ldr x1, [x28,1000]
- add x2, x0, :lo12:.LANCHOR4
- str x2, [x29,112]
+ bne .L2698
+ adrp x0, .LANCHOR5
+ mov x3, 56
+ add x1, x0, :lo12:.LANCHOR5
str x5, [x29,96]
str x4, [x29,104]
- ldrh w0, [x2,362]
+ ldrh w0, [x1,-150]
add w0, w0, 1
- strh w0, [x2,362]
- ldr w0, [x2,144]
- mov x2, 56
- madd x1, x0, x2, x1
- ldr w0, [x6,24]
- str x1, [x29,120]
+ strh w0, [x1,-150]
+ ldr w0, [x21,3984]
+ ldr x1, [x25,1000]
+ madd x1, x0, x3, x1
+ ldr w0, [x2,24]
+ str x1, [x29,112]
str w0, [x1,24]
bl Ftl_get_new_temp_ppa
- ldr x1, [x29,120]
- mov x3, 56
- ldr x2, [x29,112]
+ ldr x1, [x29,112]
+ mov x2, 56
ldr x5, [x29,96]
- str w0, [x1,4]
- ldr w0, [x2,144]
- ldr x1, [x28,1000]
ldr x4, [x29,104]
- str x2, [x29,120]
- madd x0, x0, x3, x1
- ldr x1, [x28,1024]
+ str w0, [x1,4]
+ ldr w0, [x21,3984]
+ ldr x1, [x25,1000]
+ madd x0, x0, x2, x1
+ ldr x1, [x25,1024]
add x1, x1, x5
- ldr x6, [x1,8]
- str x6, [x0,8]
- add x6, x28, 3704
- str x6, [x29,112]
+ ldr x2, [x1,8]
+ str x2, [x0,8]
+ add x2, x25, 3704
+ str x2, [x29,112]
ldr x1, [x1,16]
str x1, [x0,16]
mov w1, 1
ldr w0, [x29,140]
str w0, [x4,12]
- ldrh w0, [x28,3704]
+ ldrh w0, [x25,3704]
strh w0, [x4,2]
- ldr w0, [x28,876]
+ ldr w0, [x25,876]
str w0, [x4,4]
- ldr w0, [x2,144]
+ ldr w0, [x21,3984]
add w0, w0, 1
- str w0, [x2,144]
- ldr x0, [x28,1024]
+ str w0, [x21,3984]
+ ldr x0, [x25,1024]
add x0, x0, x5
bl FtlGcBufAlloc
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbnz w0, .L2596
- ldr x6, [x29,112]
- ldr x2, [x29,120]
- ldrb w0, [x6,7]
- ldr w1, [x2,144]
+ cbnz w0, .L2675
+ ldr x2, [x29,112]
+ ldr w1, [x21,3984]
+ ldrb w0, [x2,7]
cmp w1, w0
- beq .L2596
- ldrh w0, [x6,4]
- cbnz w0, .L2619
-.L2596:
+ beq .L2675
+ ldrh w0, [x2,4]
+ cbnz w0, .L2698
+.L2675:
bl Ftl_gc_temp_data_write_back
- cbz w0, .L2619
- adrp x0, .LANCHOR4
+ cbz w0, .L2698
+ adrp x0, .LANCHOR5
add x19, x19, :lo12:.LANCHOR2
- add x0, x0, :lo12:.LANCHOR4
+ add x0, x0, :lo12:.LANCHOR5
str wzr, [x19,924]
- ldrh w2, [x0,360]
- b .L2662
-.L2619:
- add x27, x27, 1
- b .L2594
-.L2694:
- add w26, w26, 1
- b .L2591
-.L2692:
- adrp x0, .LANCHOR4
- add x22, x0, :lo12:.LANCHOR4
- mov x21, x0
- ldr w1, [x22,144]
- cbz w1, .L2601
+ ldrh w2, [x0,-152]
+ b .L2741
+.L2698:
+ add x28, x28, 1
+ b .L2673
+.L2773:
+ add w27, w27, 1
+ b .L2670
+.L2771:
+ ldr w0, [x21,3984]
+ adrp x23, .LANCHOR5
+ cbz w0, .L2680
bl Ftl_gc_temp_data_write_back
- cbz w0, .L2601
- str wzr, [x28,924]
-.L2688:
- ldrh w2, [x22,360]
- b .L2662
-.L2601:
- add x0, x21, :lo12:.LANCHOR4
- ldrh w2, [x0,362]
- cbnz w2, .L2602
- ldrh w0, [x28,3920]
- ldr x1, [x28,1184]
+ cbz w0, .L2680
+ add x19, x19, :lo12:.LANCHOR2
+ add x23, x23, :lo12:.LANCHOR5
+ str wzr, [x19,924]
+.L2767:
+ ldrh w2, [x23,-152]
+ b .L2741
+.L2680:
+ add x23, x23, :lo12:.LANCHOR5
+ ldrh w2, [x23,-150]
+ cbnz w2, .L2681
+ add x1, x19, :lo12:.LANCHOR2
+ ldrh w0, [x21,3408]
lsl x0, x0, 1
- ldrh w4, [x1,x0]
- cbz w4, .L2602
+ ldr x1, [x1,1184]
+ ldrh w3, [x1,x0]
+ cbz w3, .L2681
strh w2, [x1,x0]
- ldrh w0, [x28,3920]
+ ldrh w0, [x21,3408]
bl update_vpc_list
bl FtlCacheWriteBack
bl l2p_flush
bl FtlVpcTblFlush
-.L2602:
+.L2681:
mov w0, -1
- strh w0, [x28,3920]
- b .L2600
-.L2603:
- adrp x1, .LANCHOR4+360
- str wzr, [x28,924]
- ldrh w2, [x1,#:lo12:.LANCHOR4+360]
+ strh w0, [x21,3408]
+ b .L2679
+.L2682:
+ str wzr, [x1,924]
+ adrp x1, .LANCHOR5-152
+ ldrh w2, [x1,#:lo12:.LANCHOR5-152]
cmp w2, wzr
csinc w2, w2, w0, ne
- b .L2662
-.L2691:
- ldrh w25, [x22,948]
+ b .L2741
+.L2770:
+ ldrh w25, [x23,948]
cmp w25, w20
- bne .L2534
- ldrh w0, [x22,3600]
+ bne .L2613
+ ldrh w0, [x23,3600]
mov w2, 1024
- ldr w1, [x22,940]
+ ldr w1, [x23,940]
cmp w0, 24
mov w0, 5120
csel w0, w0, w2, cc
cmp w1, w0
- bls .L2534
- adrp x0, .LANCHOR4+360
- str wzr, [x22,940]
- strh wzr, [x0,#:lo12:.LANCHOR4+360]
+ bls .L2613
+ adrp x0, .LANCHOR5-152
+ str wzr, [x23,940]
+ strh wzr, [x0,#:lo12:.LANCHOR5-152]
bl GetSwlReplaceBlock
uxth w20, w0
cmp w20, w25
- bne .L2536
- ldrh w1, [x22,3600]
- ldrh w0, [x22,954]
+ bne .L2615
+ ldrh w1, [x23,3600]
+ ldrh w0, [x23,954]
cmp w1, w0
- bcs .L2537
+ bcs .L2616
mov w0, 64
bl List_get_gc_head_node
uxth w0, w0
cmp w0, w20
- beq .L2546
- ldr w2, [x22,864]
+ beq .L2625
+ ldr w2, [x23,864]
uxtw x1, w0
- cbnz w2, .L2539
- ldrh w0, [x22,768]
+ cbnz w2, .L2618
+ ldrh w0, [x23,768]
cmp w0, 3
- beq .L2539
- ldr w0, [x22,868]
- cbnz w0, .L2539
- ldr w0, [x22,652]
- cbnz w0, .L2539
+ beq .L2618
+ ldr w0, [x23,868]
+ cbnz w0, .L2618
+ ldr w0, [x23,652]
+ cbnz w0, .L2618
adrp x0, .LANCHOR0+136
ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L2540
-.L2539:
+ cbz w0, .L2619
+.L2618:
add x2, x19, :lo12:.LANCHOR2
ldr x0, [x2,1184]
ldrh w4, [x0,x1,lsl 1]
@@ -17164,7 +17974,7 @@ ftl_do_gc:
csel w0, w1, w0, eq
add w0, w3, w0
cmp w4, w0
- bgt .L2542
+ bgt .L2621
mov w0, 0
bl List_get_gc_head_node
uxth w20, w0
@@ -17173,45 +17983,45 @@ ftl_do_gc:
ldr w2, [x0,3892]
add w1, w1, w1, lsl 1
cmp w2, w1, lsr 2
- bhi .L2686
+ bhi .L2765
mov w1, 160
- b .L2685
-.L2542:
+ b .L2764
+.L2621:
add x0, x19, :lo12:.LANCHOR2
mov w1, 128
- b .L2687
-.L2540:
- ldr x2, [x22,1184]
+ b .L2766
+.L2619:
+ ldr x2, [x23,1184]
ldrh w1, [x2,x1,lsl 1]
cmp w1, 7
- bhi .L2545
+ bhi .L2624
bl List_get_gc_head_node
uxth w20, w0
add x0, x19, :lo12:.LANCHOR2
-.L2686:
+.L2765:
mov w1, 128
-.L2685:
+.L2764:
strh w1, [x0,954]
mov w0, 65535
cmp w20, w0
- beq .L2546
- b .L2536
-.L2545:
+ beq .L2625
+ b .L2615
+.L2624:
add x0, x19, :lo12:.LANCHOR2
mov w1, 64
-.L2687:
+.L2766:
strh w1, [x0,954]
- b .L2546
-.L2537:
+ b .L2625
+.L2616:
mov w0, 80
- strh w0, [x22,954]
- b .L2546
-.L2536:
+ strh w0, [x23,954]
+ b .L2625
+.L2615:
add x5, x19, :lo12:.LANCHOR2
ubfiz x4, x20, 1, 32
- adrp x0, .LC132
+ adrp x0, .LC152
mov w1, w20
- add x0, x0, :lo12:.LC132
+ add x0, x0, :lo12:.LC152
ldr x3, [x5,1184]
ldr x6, [x5,1168]
ldrh w2, [x5,3600]
@@ -17219,13 +18029,13 @@ ftl_do_gc:
ldrh w5, [x5,952]
ldrh w4, [x6,x4]
bl printk
-.L2546:
+.L2625:
bl FtlGcReFreshBadBlk
- b .L2534
-.L2690:
+ b .L2613
+.L2769:
mov w20, w0
- b .L2534
-.L2662:
+ b .L2613
+.L2741:
mov w0, w2
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -17240,142 +18050,145 @@ ftl_do_gc:
.type FtlCacheWriteBack, %function
FtlCacheWriteBack:
stp x29, x30, [sp, -112]!
- adrp x0, .LANCHOR4+368
+ adrp x0, .LANCHOR5-144
add x29, sp, 0
stp x19, x20, [sp,16]
adrp x19, .LANCHOR2
- ldr x20, [x0,#:lo12:.LANCHOR4+368]
+ ldr x20, [x0,#:lo12:.LANCHOR5-144]
add x0, x19, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
ldr w22, [x0,1400]
- cbnz w22, .L2697
+ cbnz w22, .L2776
ldr w1, [x0,968]
- cbz w1, .L2697
+ cbz w1, .L2776
adrp x0, .LANCHOR0+136
ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L2699
+ cbz w0, .L2778
ldrb w0, [x20,8]
cmp w0, 1
cset w22, eq
-.L2699:
+.L2778:
add x0, x19, :lo12:.LANCHOR2
ldrb w3, [x20,9]
- adrp x25, .LC133
+ adrp x24, .LC153
mov w2, w22
mov w23, 0
- mov w26, 56
+ mov w25, 56
ldr x0, [x0,1032]
- add x25, x25, :lo12:.LC133
+ add x24, x24, :lo12:.LC153
bl FlashProgPages
-.L2700:
+.L2779:
add x0, x19, :lo12:.LANCHOR2
ldr w1, [x0,968]
cmp w23, w1
- bcs .L2718
- umull x21, w23, w26
+ bcs .L2797
+ umull x21, w23, w25
ldr x1, [x0,1032]
add x0, x1, x21
- ldr w24, [x1,x21]
- cmn w24, #1
- beq .L2721
+ ldr w1, [x1,x21]
+ cmn w1, #1
+ beq .L2800
ldr w1, [x0,4]
- cbz w22, .L2735
+ cbz w22, .L2814
orr w1, w1, -2147483648
-.L2735:
+.L2814:
ldr w0, [x0,24]
mov w2, 1
str w1, [x29,108]
- add x24, x19, :lo12:.LANCHOR2
+ add x26, x19, :lo12:.LANCHOR2
add x1, x29, 108
bl log2phys
- ldr x0, [x24,1032]
+ ldr x0, [x26,1032]
add x21, x0, x21
ldr x0, [x21,16]
ldr w0, [x0,12]
cmn w0, #1
- beq .L2704
+ beq .L2783
lsr x0, x0, 10
bl P2V_block_in_plane
uxth w1, w0
ubfiz x0, x1, 1, 16
- ldr x2, [x24,1184]
+ ldr x2, [x26,1184]
mov w21, w1
ldrh w2, [x2,x0]
- cbnz w2, .L2705
- mov x0, x25
+ cbnz w2, .L2784
+ mov x0, x24
bl printk
-.L2705:
+.L2784:
mov w0, w21
bl decrement_vpc_count
-.L2704:
+.L2783:
add w23, w23, 1
- b .L2700
-.L2737:
+ b .L2779
+.L2816:
mov w20, 16386
-.L2717:
+.L2796:
add x0, x19, :lo12:.LANCHOR2
ldrh w0, [x0,958]
- cbz w0, .L2718
+ cbz w0, .L2797
mov w0, 1
mov w1, w0
bl ftl_do_gc
subs w20, w20, #1
- bne .L2717
-.L2718:
+ bne .L2796
+.L2797:
add x19, x19, :lo12:.LANCHOR2
str wzr, [x19,968]
- b .L2697
-.L2721:
- adrp x25, .LC133
- mov w23, 0
- mov w26, 56
- mov w27, 1
- add x25, x25, :lo12:.LC133
-.L2701:
+ b .L2776
+.L2800:
+ adrp x25, .LANCHOR4
+ adrp x26, .LC153
+ mov w24, 0
+ mov w27, 56
+ add x25, x25, :lo12:.LANCHOR4
+ add x26, x26, :lo12:.LC153
+.L2780:
add x0, x19, :lo12:.LANCHOR2
ldr w1, [x0,968]
- cmp w23, w1
- bcs .L2737
- umull x21, w23, w26
+ cmp w24, w1
+ bcs .L2816
+ umull x21, w24, w27
ldr x0, [x0,1032]
- str w24, [x0,x21]
-.L2707:
- add x28, x19, :lo12:.LANCHOR2
- ldr x0, [x28,1032]
+ mov w1, -1
+ mov w28, 1
+ str w1, [x0,x21]
+.L2786:
+ add x23, x19, :lo12:.LANCHOR2
+ ldr x0, [x23,1032]
add x1, x0, x21
ldr w0, [x0,x21]
cmn w0, #1
ldr w0, [x1,4]
- bne .L2738
+ bne .L2817
lsr x0, x0, 10
bl P2V_block_in_plane
ldrh w1, [x20]
cmp w1, w0, uxth
- bne .L2708
- ldr x2, [x28,1184]
+ bne .L2787
+ ldr x2, [x23,1184]
ubfiz x1, x1, 1, 16
ldrh w3, [x20,4]
ldrh w0, [x2,x1]
sub w0, w0, w3
strh w0, [x2,x1]
strb wzr, [x20,6]
- ldrh w0, [x28,818]
+ ldrh w0, [x23,818]
strh w0, [x20,2]
strh wzr, [x20,4]
-.L2708:
+.L2787:
ldrh w0, [x20,4]
- cbnz w0, .L2709
+ cbnz w0, .L2788
mov x0, x20
bl allocate_new_data_superblock
-.L2709:
- add x28, x19, :lo12:.LANCHOR2
- ldr w0, [x28,4064]
+.L2788:
+ add x23, x19, :lo12:.LANCHOR2
+ ldr w0, [x25,3552]
add w0, w0, 1
- str w0, [x28,4064]
- ldr x0, [x28,1032]
+ str w0, [x25,3552]
+ ldr x0, [x23,1032]
add x0, x0, x21
ldr w0, [x0,4]
lsr x0, x0, 10
@@ -17383,58 +18196,58 @@ FtlCacheWriteBack:
mov x0, x20
bl get_new_active_ppa
str w0, [x29,108]
- ldr x1, [x28,1032]
+ ldr x1, [x23,1032]
mov w2, w22
add x1, x1, x21
str w0, [x1,4]
mov w1, 1
- ldr x0, [x28,1032]
+ ldr x0, [x23,1032]
ldrb w3, [x20,9]
add x0, x0, x21
bl FlashProgPages
- ldr x0, [x28,1032]
+ ldr x0, [x23,1032]
ldr w0, [x0,x21]
cmn w0, #1
- bne .L2710
- str w27, [x28,1400]
-.L2710:
+ bne .L2789
+ str w28, [x23,1400]
+.L2789:
add x0, x19, :lo12:.LANCHOR2
ldr w0, [x0,1400]
- cbz w0, .L2707
- b .L2697
-.L2738:
- cbz w22, .L2736
+ cbz w0, .L2786
+ b .L2776
+.L2817:
+ cbz w22, .L2815
orr w0, w0, -2147483648
-.L2736:
+.L2815:
str w0, [x29,108]
mov w2, 1
ldr w0, [x1,24]
- add x28, x19, :lo12:.LANCHOR2
+ add x23, x19, :lo12:.LANCHOR2
add x1, x29, 108
bl log2phys
- ldr x0, [x28,1032]
+ ldr x0, [x23,1032]
add x21, x0, x21
ldr x0, [x21,16]
ldr w0, [x0,12]
cmn w0, #1
- beq .L2714
+ beq .L2793
lsr x0, x0, 10
bl P2V_block_in_plane
uxth w1, w0
ubfiz x0, x1, 1, 16
- ldr x2, [x28,1184]
+ ldr x2, [x23,1184]
mov w21, w1
ldrh w2, [x2,x0]
- cbnz w2, .L2715
- mov x0, x25
+ cbnz w2, .L2794
+ mov x0, x26
bl printk
-.L2715:
+.L2794:
mov w0, w21
bl decrement_vpc_count
-.L2714:
- add w23, w23, 1
- b .L2701
-.L2697:
+.L2793:
+ add w24, w24, 1
+ b .L2780
+.L2776:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -17452,13 +18265,13 @@ FtlSysFlush:
stp x29, x30, [sp, -16]!
add x29, sp, 0
ldr w0, [x0,#:lo12:.LANCHOR2+1400]
- cbnz w0, .L2740
+ cbnz w0, .L2819
bl FtlCacheWriteBack
bl l2p_flush
mov w0, 1
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L2740:
+.L2819:
mov w0, 0
ldp x29, x30, [sp], 16
ret
@@ -17472,9 +18285,9 @@ FtlDeInit:
add x29, sp, 0
ldr w0, [x0,#:lo12:.LANCHOR1+3064]
cmp w0, 1
- bne .L2742
+ bne .L2821
bl FtlSysFlush
-.L2742:
+.L2821:
mov w0, 0
ldp x29, x30, [sp], 16
ret
@@ -17517,45 +18330,45 @@ ftl_discard:
ldr w1, [x0,#:lo12:.LANCHOR0+4048]
mov w0, -1
cmp w2, w1
- bhi .L2746
+ bhi .L2825
cmp w19, 31
- bls .L2760
+ bls .L2839
adrp x22, .LANCHOR2
add x21, x22, :lo12:.LANCHOR2
ldr w0, [x21,1400]
- cbnz w0, .L2760
+ cbnz w0, .L2839
bl FtlCacheWriteBack
ldrh w1, [x21,824]
udiv w21, w20, w1
msub w20, w1, w21, w20
uxth w20, w20
- cbz w20, .L2749
+ cbz w20, .L2828
sub w1, w1, w20
add w21, w21, 1
cmp w1, w19
csel w1, w1, w19, ls
sub w19, w19, w1, uxth
-.L2749:
+.L2828:
mov w0, -1
- adrp x23, .LANCHOR4
+ adrp x23, .LANCHOR5
str w0, [x29,76]
-.L2750:
+.L2829:
add x20, x22, :lo12:.LANCHOR2
ldrh w0, [x20,824]
cmp w19, w0
- bcc .L2761
+ bcc .L2840
mov w0, w21
add x1, x29, 72
mov w2, 0
bl log2phys
ldr w0, [x29,72]
cmn w0, #1
- beq .L2751
- add x1, x23, :lo12:.LANCHOR4
+ beq .L2830
+ add x1, x23, :lo12:.LANCHOR5
mov w2, 1
- ldr w0, [x1,376]
+ ldr w0, [x1,-136]
add w0, w0, 1
- str w0, [x1,376]
+ str w0, [x1,-136]
ldr w0, [x20,888]
add x1, x29, 76
add w0, w0, 1
@@ -17566,24 +18379,24 @@ ftl_discard:
lsr x0, x0, 10
bl P2V_block_in_plane
bl decrement_vpc_count
-.L2751:
+.L2830:
add x0, x22, :lo12:.LANCHOR2
add w21, w21, 1
ldrh w0, [x0,824]
sub w19, w19, w0
- b .L2750
-.L2761:
- adrp x0, .LANCHOR4
- add x0, x0, :lo12:.LANCHOR4
- ldr w1, [x0,376]
+ b .L2829
+.L2840:
+ adrp x0, .LANCHOR5
+ add x0, x0, :lo12:.LANCHOR5
+ ldr w1, [x0,-136]
cmp w1, 32
- bls .L2760
- str wzr, [x0,376]
+ bls .L2839
+ str wzr, [x0,-136]
bl l2p_flush
bl FtlVpcTblFlush
-.L2760:
+.L2839:
mov w0, 0
-.L2746:
+.L2825:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -17604,95 +18417,94 @@ FtlGcFreeTempBlock:
stp x25, x26, [sp,64]
ldr w3, [x2,1400]
ldrh w1, [x2,818]
- cbnz w3, .L2797
+ cbnz w3, .L2876
ldrh w20, [x2,3704]
mov w4, 65535
cmp w20, w4
- bne .L2765
-.L2774:
- add x20, x19, :lo12:.LANCHOR2
- adrp x21, .LANCHOR4
- add x22, x21, :lo12:.LANCHOR4
+ bne .L2844
+.L2853:
+ add x21, x19, :lo12:.LANCHOR2
+ adrp x20, .LANCHOR4
+ add x22, x20, :lo12:.LANCHOR4
mov w0, 65535
- add x23, x20, 3704
- ldrh w1, [x20,3704]
- str wzr, [x22,168]
+ add x23, x21, 3704
+ ldrh w1, [x21,3704]
+ str wzr, [x22,4008]
cmp w1, w0
- beq .L2797
+ beq .L2876
bl FtlCacheWriteBack
mov w26, 12
ldrb w0, [x23,7]
- ldrh w3, [x20,818]
- ldr x1, [x20,1184]
- ldrh w2, [x20,3704]
+ ldrh w3, [x21,818]
+ ldr x1, [x21,1184]
+ ldrh w2, [x21,3704]
mul w0, w0, w3
strh w0, [x1,x2,lsl 1]
- ldrh w1, [x22,178]
+ ldrh w1, [x22,4018]
mov w22, 0
- ldr w0, [x20,880]
+ ldr w0, [x21,880]
add w0, w1, w0
- str w0, [x20,880]
- b .L2775
-.L2765:
- cbz w0, .L2768
+ str w0, [x21,880]
+ b .L2854
+.L2844:
+ cbz w0, .L2847
adrp x0, .LANCHOR1
add x0, x0, :lo12:.LANCHOR1
ldrh w5, [x0,3068]
cmp w5, w4
- beq .L2769
-.L2770:
+ beq .L2848
+.L2849:
mov w1, 2
- b .L2768
-.L2769:
+ b .L2847
+.L2848:
strh w3, [x0,3068]
ldrh w0, [x2,3600]
cmp w0, 17
- bhi .L2770
-.L2768:
+ bhi .L2849
+.L2847:
add x21, x19, :lo12:.LANCHOR2
add x0, x21, 3704
bl FtlGcScanTempBlk
str w0, [x29,92]
cmn w0, #1
- beq .L2771
+ beq .L2850
ubfiz x20, x20, 1, 16
ldr x1, [x21,1168]
ldrh w0, [x1,x20]
cmp w0, 4
- bls .L2772
+ bls .L2851
sub w0, w0, #5
strh w0, [x1,x20]
mov w0, 1
bl FtlEctTblFlush
-.L2772:
+.L2851:
adrp x0, .LANCHOR4
add x1, x0, :lo12:.LANCHOR4
- mov x20, x0
- ldr w1, [x1,168]
- cbnz w1, .L2773
- add x19, x19, :lo12:.LANCHOR2
- ldr w0, [x19,4064]
+ mov x19, x0
+ ldr w2, [x1,4008]
+ cbnz w2, .L2852
+ ldr w0, [x1,3552]
add w0, w0, 1
- str w0, [x19,4064]
+ str w0, [x1,3552]
ldr w0, [x29,92]
lsr w0, w0, 10
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
-.L2773:
- add x0, x20, :lo12:.LANCHOR4
- str wzr, [x0,168]
+.L2852:
+ add x0, x19, :lo12:.LANCHOR4
+ str wzr, [x0,4008]
mov w0, 1
- b .L2764
-.L2771:
+ b .L2843
+.L2850:
adrp x0, .LANCHOR1+3068
mov w1, 65535
ldrh w2, [x0,#:lo12:.LANCHOR1+3068]
mov w0, 1
cmp w2, w1
- bne .L2764
- b .L2774
-.L2778:
- ldr x25, [x20,984]
+ bne .L2843
+ b .L2853
+.L2857:
+ ldr x25, [x21,984]
add x1, x29, 92
umull x24, w22, w26
mov w2, 0
@@ -17702,7 +18514,7 @@ FtlGcFreeTempBlock:
ldr w0, [x29,92]
ldr w1, [x25,x24]
cmp w0, w1
- bne .L2776
+ bne .L2855
lsr x0, x0, 10
bl P2V_block_in_plane
mov w24, w0
@@ -17711,92 +18523,93 @@ FtlGcFreeTempBlock:
mov w2, 1
bl log2phys
mov w0, w24
-.L2796:
+.L2875:
bl decrement_vpc_count
-.L2777:
+.L2856:
add w22, w22, 1
uxth w22, w22
-.L2775:
- add x0, x21, :lo12:.LANCHOR4
- ldrh w0, [x0,178]
+.L2854:
+ add x0, x20, :lo12:.LANCHOR4
+ ldrh w0, [x0,4018]
cmp w0, w22
- bhi .L2778
- b .L2798
-.L2776:
+ bhi .L2857
+ b .L2877
+.L2855:
ldr w1, [x23,4]
cmp w0, w1
- beq .L2777
- ldrh w0, [x20,3704]
- b .L2796
-.L2798:
+ beq .L2856
+ ldrh w0, [x21,3704]
+ b .L2875
+.L2877:
mov w0, -1
- adrp x20, .LANCHOR0
+ adrp x21, .LANCHOR0
bl decrement_vpc_count
- add x0, x20, :lo12:.LANCHOR0
+ add x0, x21, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbz w0, .L2779
+ cbz w0, .L2858
add x1, x19, :lo12:.LANCHOR2
- adrp x0, .LC134
- add x0, x0, :lo12:.LC134
+ adrp x0, .LC154
+ add x0, x0, :lo12:.LC154
ldrh w1, [x1,3704]
bl printk
-.L2779:
+.L2858:
add x1, x19, :lo12:.LANCHOR2
ldrh w0, [x1,3704]
ldr x1, [x1,1184]
ubfiz x2, x0, 1, 16
ldrh w1, [x1,x2]
- cbz w1, .L2780
+ cbz w1, .L2859
bl INSERT_DATA_LIST
- b .L2781
-.L2780:
+ b .L2860
+.L2859:
bl INSERT_FREE_LIST
-.L2781:
+.L2860:
add x22, x19, :lo12:.LANCHOR2
- add x21, x21, :lo12:.LANCHOR4
+ add x23, x20, :lo12:.LANCHOR4
mov w0, -1
- strh wzr, [x21,178]
+ strh wzr, [x23,4018]
strh w0, [x22,3704]
- strh wzr, [x21,176]
+ strh wzr, [x23,4016]
bl l2p_flush
bl FtlVpcTblFlush
ldr w0, [x22,652]
- cbz w0, .L2782
+ cbz w0, .L2861
ldr w0, [x22,920]
cmp w0, 29
- bhi .L2782
- ldrh w0, [x22,3916]
+ bhi .L2861
+ ldrh w0, [x23,3404]
ldrh w1, [x22,3600]
cmp w1, w0
- bcs .L2783
+ bcs .L2862
lsl w0, w0, 1
strh w0, [x22,952]
-.L2783:
- add x19, x19, :lo12:.LANCHOR2
+.L2862:
+ add x20, x20, :lo12:.LANCHOR4
mov w0, -1
- strh w0, [x19,3920]
-.L2797:
+ strh w0, [x20,3408]
+.L2876:
mov w0, 0
- b .L2764
-.L2782:
+ b .L2843
+.L2861:
+ add x20, x20, :lo12:.LANCHOR4
add x19, x19, :lo12:.LANCHOR2
- ldrh w1, [x19,3916]
+ ldrh w1, [x20,3404]
ldrh w0, [x19,3600]
add w2, w1, w1, lsl 1
cmp w0, w2, lsr 2
- ble .L2797
- add x20, x20, :lo12:.LANCHOR0
+ ble .L2876
+ add x21, x21, :lo12:.LANCHOR0
mov w0, -1
- strh w0, [x19,3920]
- ldrb w0, [x20,136]
- cbz w0, .L2784
+ strh w0, [x20,3408]
+ ldrb w0, [x21,136]
+ cbz w0, .L2863
sub w1, w1, #2
strh w1, [x19,952]
- b .L2797
-.L2784:
+ b .L2876
+.L2863:
mov w1, 20
strh w1, [x19,952]
-.L2764:
+.L2843:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -17820,14 +18633,14 @@ FtlGcPageRecovery:
ldrh w1, [x19,3706]
ldrh w0, [x19,818]
cmp w1, w0
- bcc .L2799
+ bcc .L2878
add x0, x19, 3752
bl FtlMapBlkWriteDumpData
mov w0, 0
bl FtlGcFreeTempBlock
- adrp x0, .LANCHOR4+168
- str wzr, [x0,#:lo12:.LANCHOR4+168]
-.L2799:
+ adrp x0, .LANCHOR4+4008
+ str wzr, [x0,#:lo12:.LANCHOR4+4008]
+.L2878:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -17837,11 +18650,11 @@ FtlGcPageRecovery:
.type FtlPowerLostRecovery, %function
FtlPowerLostRecovery:
stp x29, x30, [sp, -32]!
- adrp x0, .LANCHOR4+224
+ adrp x0, .LANCHOR4+4064
add x29, sp, 0
stp x19, x20, [sp,16]
adrp x19, .LANCHOR2
- str wzr, [x0,#:lo12:.LANCHOR4+224]
+ str wzr, [x0,#:lo12:.LANCHOR4+4064]
add x19, x19, :lo12:.LANCHOR2
add x20, x19, 3608
add x19, x19, 3656
@@ -17875,22 +18688,22 @@ FtlSysBlkInit:
add x0, x19, :lo12:.LANCHOR4
add x21, x20, :lo12:.LANCHOR2
str x23, [sp,48]
- strh w1, [x0,218]
- strh wzr, [x0,220]
+ strh w1, [x0,4058]
+ strh wzr, [x0,4060]
ldrh w0, [x21,752]
bl FtlFreeSysBlkQueueInit
bl FtlScanSysBlk
ldrh w1, [x21,3896]
mov w0, 65535
cmp w1, w0
- bne .L2803
-.L2805:
+ bne .L2882
+.L2884:
mov w23, -1
- b .L2804
-.L2803:
+ b .L2883
+.L2882:
bl FtlLoadSysInfo
mov w23, w0
- cbnz w0, .L2805
+ cbnz w0, .L2884
bl FtlLoadMapInfo
bl FtlLoadVonderInfo
bl Ftl_load_ext_data
@@ -17903,25 +18716,25 @@ FtlSysBlkInit:
ldrh w2, [x21,858]
mov x1, 0
ldr x0, [x21,1264]
-.L2806:
+.L2885:
cmp w1, w2
mov w3, w1
- bge .L2810
+ bge .L2889
add x4, x0, x1, lsl 4
add x1, x1, 1
ldr w4, [x4,4]
- tbz w4, #31, .L2806
-.L2810:
+ tbz w4, #31, .L2885
+.L2889:
add x0, x20, :lo12:.LANCHOR2
cmp w3, w2
ldrh w1, [x0,3548]
add w1, w1, 1
strh w1, [x0,3548]
- blt .L2807
+ blt .L2886
add x19, x19, :lo12:.LANCHOR4
- ldrh w0, [x19,220]
- cbz w0, .L2811
-.L2807:
+ ldrh w0, [x19,4060]
+ cbz w0, .L2890
+.L2886:
add x19, x20, :lo12:.LANCHOR2
add x22, x19, 3608
add x21, x19, 3656
@@ -17961,18 +18774,18 @@ FtlSysBlkInit:
bl l2p_flush
bl FtlVpcTblFlush
bl FtlVpcTblFlush
-.L2811:
+.L2890:
add x19, x20, :lo12:.LANCHOR2
mov w0, 65535
add x22, x19, 3608
ldrh w1, [x19,3608]
cmp w1, w0
- beq .L2812
+ beq .L2891
ldrh w0, [x19,3612]
- cbnz w0, .L2812
+ cbnz w0, .L2891
ldrh w0, [x19,3660]
add x21, x19, 3656
- cbnz w0, .L2812
+ cbnz w0, .L2891
bl FtlVpcTblFlush
ldrh w0, [x19,3608]
bl FtlGcRefreshOpenBlock
@@ -17984,13 +18797,13 @@ FtlSysBlkInit:
bl allocate_new_data_superblock
add x0, x19, 3824
bl FtlMapBlkWriteDumpData
-.L2812:
+.L2891:
add x20, x20, :lo12:.LANCHOR2
ldrh w0, [x20,3548]
and w0, w0, 31
- cbnz w0, .L2804
+ cbnz w0, .L2883
bl FtlVpcCheckAndModify
-.L2804:
+.L2883:
mov w0, w23
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -18002,14 +18815,15 @@ FtlSysBlkInit:
.global FtlLowFormat
.type FtlLowFormat, %function
FtlLowFormat:
- stp x29, x30, [sp, -48]!
+ stp x29, x30, [sp, -64]!
add x29, sp, 0
stp x19, x20, [sp,16]
adrp x19, .LANCHOR2
+ str x23, [sp,48]
add x20, x19, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
ldr w21, [x20,1400]
- cbnz w21, .L2820
+ cbnz w21, .L2899
ldrh w2, [x20,856]
mov w1, w21
ldr x0, [x20,1248]
@@ -18025,15 +18839,15 @@ FtlLowFormat:
str w21, [x20,876]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbz w0, .L2821
+ cbz w0, .L2900
bl FtlMakeBbt
-.L2821:
+.L2900:
mov w0, 0
-.L2822:
+.L2901:
add x1, x19, :lo12:.LANCHOR2
ldrh w2, [x1,824]
cmp w0, w2, lsl 7
- bge .L2849
+ bge .L2928
ubfiz x3, x0, 2, 16
ldr x4, [x1,1088]
mvn w2, w0
@@ -18045,15 +18859,15 @@ FtlLowFormat:
movk w1, 0xa0f, lsl 16
uxth w0, w0
str w1, [x2,x3]
- b .L2822
-.L2849:
+ b .L2901
+.L2928:
ldrh w21, [x1,756]
mov w20, 0
-.L2824:
+.L2903:
add x22, x19, :lo12:.LANCHOR2
ldrh w0, [x22,758]
cmp w0, w21
- bls .L2850
+ bls .L2929
mov w0, w21
mov w1, 1
add w21, w21, 1
@@ -18061,17 +18875,17 @@ FtlLowFormat:
add w0, w20, w0
uxth w21, w21
uxth w20, w0
- b .L2824
-.L2850:
+ b .L2903
+.L2929:
ldrh w0, [x22,748]
sub w1, w20, #3
cmp w1, w0, lsl 1
- bge .L2826
-.L2830:
+ bge .L2905
+.L2909:
mov w20, 0
mov w21, w20
- b .L2827
-.L2826:
+ b .L2906
+.L2905:
udiv w20, w20, w0
ldr w0, [x22,852]
add w0, w20, w0
@@ -18079,22 +18893,22 @@ FtlLowFormat:
ldrh w0, [x22,752]
bl FtlFreeSysBlkQueueInit
ldrh w20, [x22,756]
-.L2828:
+.L2907:
add x0, x19, :lo12:.LANCHOR2
ldrh w0, [x0,758]
cmp w0, w20
- bls .L2830
+ bls .L2909
mov w0, w20
mov w1, 1
add w20, w20, 1
bl FtlLowFormatEraseBlock
uxth w20, w20
- b .L2828
-.L2827:
- add x2, x19, :lo12:.LANCHOR2
- ldrh w0, [x2,756]
- cmp w0, w21
- bls .L2851
+ b .L2907
+.L2906:
+ add x0, x19, :lo12:.LANCHOR2
+ ldrh w1, [x0,756]
+ cmp w1, w21
+ bls .L2930
mov w0, w21
mov w1, 0
add w21, w21, 1
@@ -18102,114 +18916,119 @@ FtlLowFormat:
add w0, w20, w0
uxth w21, w21
uxth w20, w0
- b .L2827
-.L2851:
- ldrh w3, [x2,748]
- ldr w1, [x2,760]
- ldrh w0, [x2,758]
- str w0, [x2,944]
- udiv w4, w1, w3
- str w4, [x2,1396]
- ubfx x5, x4, 5, 16
- add w0, w5, 36
- strh w0, [x2,3916]
- mov w0, 24
- mul w0, w3, w0
- cmp w20, w0
- ble .L2832
+ b .L2906
+.L2930:
+ ldrh w1, [x0,758]
+ adrp x21, .LANCHOR4
+ ldrh w2, [x0,748]
+ add x6, x21, :lo12:.LANCHOR4
+ str w1, [x0,944]
+ ldr w1, [x0,760]
+ udiv w3, w1, w2
+ str w3, [x0,1396]
+ ubfx x5, x3, 5, 16
+ add w4, w5, 36
+ strh w4, [x6,3404]
+ mov w4, 24
+ mul w4, w2, w4
+ cmp w20, w4
+ ble .L2911
sub w1, w1, w20
- udiv w1, w1, w3
- str w1, [x2,1396]
+ udiv w1, w1, w2
+ str w1, [x0,1396]
lsr w1, w1, 5
add w1, w1, 24
- strh w1, [x2,3916]
-.L2832:
- add x2, x19, :lo12:.LANCHOR2
- ldr w0, [x2,652]
+ strh w1, [x6,3404]
+.L2911:
+ add x0, x19, :lo12:.LANCHOR2
+ ldr w0, [x0,652]
cmp w0, 1
- bne .L2833
- ldrh w1, [x2,3916]
- udiv w0, w20, w3
- add w0, w1, w0
- add w0, w1, w0, asr 2
- strh w0, [x2,3916]
-.L2833:
- adrp x21, .LANCHOR0
- add x0, x21, :lo12:.LANCHOR0
+ bne .L2912
+ add x1, x21, :lo12:.LANCHOR4
+ udiv w0, w20, w2
+ ldrh w4, [x1,3404]
+ add w0, w4, w0
+ add w0, w4, w0, asr 2
+ strh w0, [x1,3404]
+.L2912:
+ adrp x22, .LANCHOR0
+ add x0, x22, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbz w0, .L2834
- add x1, x19, :lo12:.LANCHOR2
- udiv w0, w20, w3
- ldrh w2, [x1,3916]
- add w0, w2, w0
- add w0, w2, w0, asr 2
- strh w0, [x1,3916]
-.L2834:
- add x0, x19, :lo12:.LANCHOR2
- ldrh w1, [x0,810]
- cbz w1, .L2836
- ldrh w2, [x0,3916]
- add w2, w2, w1, lsr 1
- strh w2, [x0,3916]
- mul w2, w1, w3
- cmp w2, w20
- ble .L2836
+ cbz w0, .L2913
+ add x1, x21, :lo12:.LANCHOR4
+ udiv w0, w20, w2
+ ldrh w4, [x1,3404]
+ add w0, w4, w0
+ add w0, w4, w0, asr 2
+ strh w0, [x1,3404]
+.L2913:
+ add x6, x19, :lo12:.LANCHOR2
+ ldrh w1, [x6,810]
+ cbz w1, .L2915
+ add x0, x21, :lo12:.LANCHOR4
+ ldrh w4, [x0,3404]
+ add w4, w4, w1, lsr 1
+ strh w4, [x0,3404]
+ mul w4, w1, w2
+ cmp w4, w20
+ ble .L2915
add w1, w1, 32
- str w4, [x0,1396]
+ str w3, [x6,1396]
add w1, w5, w1
- strh w1, [x0,3916]
-.L2836:
+ strh w1, [x0,3404]
+.L2915:
add x19, x19, :lo12:.LANCHOR2
- add x21, x21, :lo12:.LANCHOR0
- add x20, x19, 3608
- mov w22, -1
+ add x20, x21, :lo12:.LANCHOR4
+ add x22, x22, :lo12:.LANCHOR0
+ mov w23, -1
+ ldrh w0, [x20,3404]
ldr w1, [x19,1396]
- ldrh w0, [x19,3916]
sub w0, w1, w0
ldrh w1, [x19,818]
- mul w0, w0, w3
- str w0, [x19,3912]
+ mul w0, w0, w2
+ str w0, [x20,3400]
mul w0, w0, w1
ldrh w1, [x19,824]
str w0, [x19,1396]
mul w0, w0, w1
- str w0, [x21,4048]
+ str w0, [x22,4048]
bl FtlBbmTblFlush
ldrh w2, [x19,758]
mov w1, 0
ldr x0, [x19,1184]
lsl w2, w2, 1
bl ftl_memset
- str wzr, [x19,3892]
+ strh w23, [x20,3408]
+ strh wzr, [x20,3410]
mov w0, 1
+ strb wzr, [x20,3414]
+ mov w1, 255
+ strb wzr, [x20,3416]
+ add x20, x19, 3608
ldrh w2, [x19,756]
strb w0, [x20,8]
- mov w1, 255
- ldr x0, [x21,16]
+ ldr x0, [x22,16]
lsr w2, w2, 3
- strh w22, [x19,3920]
- strh wzr, [x19,3922]
- strb wzr, [x19,3926]
- strb wzr, [x19,3928]
+ str wzr, [x19,3892]
strh wzr, [x20,2]
strb wzr, [x20,6]
strh wzr, [x19,3608]
bl ftl_memset
-.L2838:
+.L2917:
mov x0, x20
bl make_superblock
ldrb w0, [x20,7]
- cbnz w0, .L2839
+ cbnz w0, .L2918
ldrh w1, [x20]
ldr x0, [x19,1184]
- strh w22, [x0,x1,lsl 1]
+ strh w23, [x0,x1,lsl 1]
ldrh w0, [x20]
add w0, w0, 1
strh w0, [x20]
- b .L2838
-.L2839:
+ b .L2917
+.L2918:
ldr w0, [x19,872]
- mov w21, -1
+ mov w22, -1
str w0, [x20,12]
add w0, w0, 1
ldrh w1, [x20]
@@ -18226,20 +19045,21 @@ FtlLowFormat:
strh w1, [x19,3656]
mov w1, 1
strb w1, [x19,3664]
-.L2840:
+.L2919:
mov x0, x20
bl make_superblock
ldrb w0, [x20,7]
- cbnz w0, .L2841
+ cbnz w0, .L2920
ldrh w1, [x20]
ldr x0, [x19,1184]
- strh w21, [x0,x1,lsl 1]
+ strh w22, [x0,x1,lsl 1]
ldrh w0, [x20]
add w0, w0, 1
strh w0, [x20]
- b .L2840
-.L2841:
+ b .L2919
+.L2920:
ldr w0, [x19,872]
+ add x21, x21, :lo12:.LANCHOR4
str w0, [x20,12]
add w0, w0, 1
ldrh w1, [x20]
@@ -18251,7 +19071,7 @@ FtlLowFormat:
strh w20, [x19,3704]
bl FtlFreeSysBlkQueueOut
strh w0, [x19,3896]
- ldr w0, [x19,3912]
+ ldr w0, [x21,3400]
strh w0, [x19,3902]
ldr w0, [x19,872]
str w0, [x19,3904]
@@ -18261,15 +19081,16 @@ FtlLowFormat:
str w0, [x19,872]
bl FtlVpcTblFlush
bl FtlSysBlkInit
- cbnz w0, .L2820
+ cbnz w0, .L2899
adrp x0, .LANCHOR1+3064
mov w1, 1
str w1, [x0,#:lo12:.LANCHOR1+3064]
-.L2820:
+.L2899:
mov w0, 0
+ ldr x23, [sp,48]
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
- ldp x29, x30, [sp], 48
+ ldp x29, x30, [sp], 64
ret
.size FtlLowFormat, .-FtlLowFormat
.align 2
@@ -18282,24 +19103,24 @@ FtlReInitForSDUpdata:
adrp x19, .LANCHOR0
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,136]
- cbz w0, .L2853
-.L2855:
+ cbz w0, .L2932
+.L2934:
mov w0, 0
- b .L2854
-.L2853:
+ b .L2933
+.L2932:
adrp x0, RK29_NANDC_REG_BASE
ldr x0, [x0,#:lo12:RK29_NANDC_REG_BASE]
bl FlashInit
- cbnz w0, .L2855
+ cbnz w0, .L2934
bl FlashLoadFactorBbt
- cbz w0, .L2856
+ cbz w0, .L2935
bl FlashMakeFactorBbt
-.L2856:
+.L2935:
adrp x20, .LANCHOR2
add x0, x20, :lo12:.LANCHOR2
ldr x0, [x0,688]
bl FlashReadIdbDataRaw
- cbz w0, .L2857
+ cbz w0, .L2936
mov w1, 0
mov w2, 16
add x0, x29, 32
@@ -18308,43 +19129,43 @@ FtlReInitForSDUpdata:
ldr w2, [x29,32]
mov w1, w0
mov w4, 1
-.L2859:
+.L2938:
lsl w3, w4, w1
add w1, w1, 1
tst w3, w2
cset w3, ne
cmp w1, 16
add w0, w0, w3
- bne .L2859
+ bne .L2938
cmp w0, 6
- bhi .L2860
+ bhi .L2939
add x0, x19, :lo12:.LANCHOR0
- b .L2882
-.L2860:
+ b .L2961
+.L2939:
mov w1, 0
mov w4, 1
-.L2863:
+.L2942:
lsl w3, w4, w1
add w1, w1, 1
tst w3, w2
cset w3, ne
cmp w1, 24
add w0, w0, w3
- bne .L2863
+ bne .L2942
cmp w0, 17
add x0, x19, :lo12:.LANCHOR0
- bls .L2882
+ bls .L2961
mov w1, 36
-.L2882:
+.L2961:
strb w1, [x0,25]
add x0, x19, :lo12:.LANCHOR0
ldrb w1, [x0,25]
strh w1, [x0,4042]
-.L2857:
- adrp x0, .LC45
- adrp x1, .LC119
- add x1, x1, :lo12:.LC119
- add x0, x0, :lo12:.LC45
+.L2936:
+ adrp x0, .LC47
+ adrp x1, .LC140
+ add x1, x1, :lo12:.LC140
+ add x0, x0, :lo12:.LC47
add x20, x20, :lo12:.LANCHOR2
bl printk
add x0, x19, :lo12:.LANCHOR0
@@ -18354,25 +19175,25 @@ FtlReInitForSDUpdata:
bl FtlVariablesInit
ldrh w0, [x20,752]
bl FtlFreeSysBlkQueueInit
-.L2865:
+.L2944:
bl FtlLoadBbt
- cbz w0, .L2866
-.L2884:
+ cbz w0, .L2945
+.L2963:
bl FtlLowFormat
cmp w19, 3
- bhi .L2885
+ bhi .L2964
add w19, w19, 1
- b .L2865
-.L2885:
+ b .L2944
+.L2964:
mov w0, -1
- b .L2854
-.L2866:
+ b .L2933
+.L2945:
bl FtlSysBlkInit
- cbnz w0, .L2884
+ cbnz w0, .L2963
adrp x1, .LANCHOR1+3064
mov w2, 1
str w2, [x1,#:lo12:.LANCHOR1+3064]
-.L2854:
+.L2933:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 48
ret
@@ -18381,83 +19202,86 @@ FtlReInitForSDUpdata:
.global Ftl_gc_temp_data_write_back
.type Ftl_gc_temp_data_write_back, %function
Ftl_gc_temp_data_write_back:
- adrp x0, .LANCHOR0+136
stp x29, x30, [sp, -64]!
add x29, sp, 0
- ldrb w0, [x0,#:lo12:.LANCHOR0+136]
stp x19, x20, [sp,16]
- stp x21, x22, [sp,32]
- str x23, [sp,48]
- adrp x21, .LANCHOR4
adrp x19, .LANCHOR2
- cbz w0, .L2887
- add x0, x21, :lo12:.LANCHOR4
- ldr w0, [x0,144]
- tbz x0, 0, .L2887
+ str x23, [sp,48]
add x0, x19, :lo12:.LANCHOR2
- ldrh w0, [x0,3708]
- cbz w0, .L2887
-.L2892:
+ stp x21, x22, [sp,32]
+ ldr w1, [x0,1400]
+ cbz w1, .L2966
+.L2969:
mov w0, 0
- b .L2888
-.L2887:
+ b .L2967
+.L2966:
+ adrp x1, .LANCHOR0+136
+ adrp x22, .LANCHOR4
+ ldrb w1, [x1,#:lo12:.LANCHOR0+136]
+ cbz w1, .L2968
+ add x1, x22, :lo12:.LANCHOR4
+ ldr w1, [x1,3984]
+ tbz x1, 0, .L2968
+ ldrh w0, [x0,3708]
+ cbnz w0, .L2969
+.L2968:
add x0, x19, :lo12:.LANCHOR2
- add x1, x21, :lo12:.LANCHOR4
+ add x1, x22, :lo12:.LANCHOR4
mov w2, 0
- mov w20, 0
+ mov w21, 0
mov w3, w2
mov w23, 56
ldr x0, [x0,1000]
- ldr w1, [x1,144]
+ ldr w1, [x1,3984]
bl FlashProgPages
-.L2889:
- add x22, x21, :lo12:.LANCHOR4
- ldr w1, [x22,144]
- cmp w20, w1
- bcs .L2903
- add x0, x19, :lo12:.LANCHOR2
- umull x1, w20, w23
- ldr x2, [x0,1000]
- add x3, x2, x1
- ldr w2, [x2,x1]
+.L2970:
+ add x20, x22, :lo12:.LANCHOR4
+ ldr w1, [x20,3984]
+ cmp w21, w1
+ bcs .L2980
+ add x1, x19, :lo12:.LANCHOR2
+ umull x0, w21, w23
+ ldr x2, [x1,1000]
+ add x3, x2, x0
+ ldr w2, [x2,x0]
cmn w2, #1
- bne .L2890
- ldrh w4, [x0,3704]
- ldr x3, [x0,1184]
+ bne .L2971
+ ldrh w4, [x1,3704]
+ ldr x3, [x1,1184]
strh wzr, [x3,x4,lsl 1]
- strh w2, [x0,3704]
- ldr w2, [x0,4064]
+ strh w2, [x1,3704]
+ ldr x1, [x1,1000]
+ ldr w2, [x20,3552]
+ add x0, x1, x0
add w2, w2, 1
- str w2, [x0,4064]
- ldr x0, [x0,1000]
- add x1, x0, x1
- ldr w0, [x1,4]
+ str w2, [x20,3552]
+ ldr w0, [x0,4]
lsr w0, w0, 10
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
bl FtlGcPageVarInit
- b .L2902
-.L2890:
+ b .L2979
+.L2971:
ldr x2, [x3,16]
- add w20, w20, 1
+ add w21, w21, 1
ldr w1, [x3,4]
- uxth w20, w20
+ uxth w21, w21
ldr w0, [x2,12]
ldr w2, [x2,8]
bl FtlGcUpdatePage
- b .L2889
-.L2903:
+ b .L2970
+.L2980:
add x19, x19, :lo12:.LANCHOR2
ldr x0, [x19,1000]
bl FtlGcBufFree
- str wzr, [x22,144]
+ str wzr, [x20,3984]
ldrh w0, [x19,3708]
- cbnz w0, .L2892
+ cbnz w0, .L2969
mov w0, 1
bl FtlGcFreeTempBlock
-.L2902:
+.L2979:
mov w0, 1
-.L2888:
+.L2967:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -18477,10 +19301,10 @@ Ftl_get_new_temp_ppa:
ldrh w2, [x0,3704]
mov w0, 65535
cmp w2, w0
- beq .L2905
+ beq .L2982
ldrh w0, [x1,4]
- cbnz w0, .L2906
-.L2905:
+ cbnz w0, .L2983
+.L2982:
bl FtlCacheWriteBack
mov w0, 0
bl FtlGcFreeTempBlock
@@ -18490,13 +19314,13 @@ Ftl_get_new_temp_ppa:
bl allocate_data_superblock
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
- strh wzr, [x0,176]
- strh wzr, [x0,178]
+ strh wzr, [x0,4016]
+ strh wzr, [x0,4018]
bl l2p_flush
mov w0, 0
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L2906:
+.L2983:
add x0, x19, :lo12:.LANCHOR2
add x0, x0, 3704
bl get_new_active_ppa
@@ -18508,7 +19332,7 @@ Ftl_get_new_temp_ppa:
.global ftl_read
.type ftl_read, %function
ftl_read:
- stp x29, x30, [sp, -176]!
+ stp x29, x30, [sp, -192]!
cmp w0, 16
add x29, sp, 0
stp x19, x20, [sp,16]
@@ -18519,81 +19343,86 @@ ftl_read:
mov w20, w1
mov w28, w2
mov x25, x3
- bne .L2908
+ bne .L2985
add w0, w1, 256
mov w1, w2
mov x2, x3
bl FtlVendorPartRead
- b .L2909
-.L2908:
+ b .L2986
+.L2985:
add w0, w1, w2
- str w0, [x29,156]
+ str w0, [x29,172]
adrp x0, .LANCHOR0+4048
- ldr w2, [x29,156]
+ ldr w2, [x29,172]
ldr w1, [x0,#:lo12:.LANCHOR0+4048]
mov w0, -1
cmp w2, w1
- bhi .L2909
+ bhi .L2986
adrp x19, .LANCHOR2
+ adrp x21, .LANCHOR4
+ add x0, x19, :lo12:.LANCHOR2
sub w24, w2, #1
- add x1, x19, :lo12:.LANCHOR2
- ldrh w0, [x1,824]
- udiv w27, w20, w0
- udiv w24, w24, w0
- adrp x0, .LANCHOR4
- add x0, x0, :lo12:.LANCHOR4
+ add x2, x21, :lo12:.LANCHOR4
+ ldrh w1, [x0,824]
+ udiv w27, w20, w1
+ udiv w24, w24, w1
+ ldr w1, [x2,3972]
+ add w1, w28, w1
sub w23, w24, w27
+ str w1, [x2,3972]
add w23, w23, 1
- ldr w2, [x0,132]
- add w2, w28, w2
- str w2, [x0,132]
- ldr w0, [x1,900]
- add w0, w23, w0
- str w0, [x1,900]
- mov w0, w27
+ ldr w1, [x0,900]
+ add w1, w23, w1
+ str w1, [x0,900]
mov w1, w24
+ mov w0, w27
bl FtlCacheMetchLpa
- cbz w0, .L2910
+ mov x1, x21
+ cbz w0, .L2987
+ str x21, [x29,160]
bl FtlCacheWriteBack
-.L2910:
+ ldr x1, [x29,160]
+.L2987:
mov w26, 0
+ add x0, x1, :lo12:.LANCHOR4
mov w21, w27
- str w26, [x29,152]
+ str w26, [x29,168]
mov w22, w26
- str w26, [x29,140]
-.L2911:
- cbz w23, .L2952
+ str w26, [x29,156]
+ str x0, [x29,112]
+.L2988:
+ cbz w23, .L3029
mov w0, w21
- add x1, x29, 172
+ add x1, x29, 188
mov w2, 0
bl log2phys
- ldr w3, [x29,172]
+ ldr w3, [x29,188]
cmn w3, #1
- bne .L2950
+ bne .L3027
mov w3, 0
-.L2912:
+.L2989:
add x0, x19, :lo12:.LANCHOR2
ldrh w0, [x0,824]
cmp w3, w0
- bcs .L2916
+ bcs .L2993
madd w0, w21, w0, w3
cmp w0, w20
- bcc .L2914
- ldr w1, [x29,156]
+ bcc .L2991
+ ldr w1, [x29,172]
cmp w0, w1
- bcs .L2914
+ bcs .L2991
sub w0, w0, w20
mov w1, 0
ubfiz x0, x0, 9, 23
mov w2, 512
add x0, x25, x0
- str x3, [x29,144]
+ str x3, [x29,160]
bl ftl_memset
- ldr x3, [x29,144]
-.L2914:
+ ldr x3, [x29,160]
+.L2991:
add w3, w3, 1
- b .L2912
-.L2950:
+ b .L2989
+.L3027:
add x2, x19, :lo12:.LANCHOR2
mov w0, 56
cmp w21, w27
@@ -18602,40 +19431,40 @@ ftl_read:
add x0, x0, x1
str w3, [x0,4]
ldrh w0, [x2,824]
- bne .L2917
+ bne .L2994
ldr x3, [x2,992]
ldr x2, [x2,1088]
add x3, x3, x1
str x2, [x3,8]
udiv w2, w20, w0
msub w2, w2, w0, w20
- str w2, [x29,112]
+ str w2, [x29,128]
sub w2, w0, w2
cmp w2, w28
csel w2, w2, w28, ls
- str w2, [x29,152]
+ str w2, [x29,168]
cmp w2, w0
- bne .L2918
+ bne .L2995
str x25, [x3,8]
- b .L2918
-.L2917:
+ b .L2995
+.L2994:
cmp w21, w24
- bne .L2919
+ bne .L2996
ldr x3, [x2,992]
ldr x2, [x2,1096]
add x3, x3, x1
- ldr w4, [x29,156]
+ ldr w4, [x29,172]
str x2, [x3,8]
mul w2, w21, w0
sub w26, w4, w2
cmp w26, w0
- bne .L2918
+ bne .L2995
sub w2, w2, w20
ubfiz x2, x2, 9, 23
add x2, x25, x2
str x2, [x3,8]
- b .L2918
-.L2919:
+ b .L2995
+.L2996:
ldr x2, [x2,992]
mul w0, w21, w0
add x2, x2, x1
@@ -18643,7 +19472,7 @@ ftl_read:
ubfiz x0, x0, 9, 23
add x0, x25, x0
str x0, [x2,8]
-.L2918:
+.L2995:
add x2, x19, :lo12:.LANCHOR2
ldr x0, [x2,992]
add x1, x0, x1
@@ -18655,35 +19484,35 @@ ftl_read:
and x0, x0, 4294967292
add x0, x2, x0
str x0, [x1,16]
-.L2916:
+.L2993:
subs w23, w23, #1
add w21, w21, 1
- beq .L2920
+ beq .L2997
add x0, x19, :lo12:.LANCHOR2
ldrh w0, [x0,748]
cmp w22, w0, lsl 3
- bne .L2911
-.L2920:
- cbz w22, .L2911
+ bne .L2988
+.L2997:
+ cbz w22, .L2988
add x0, x19, :lo12:.LANCHOR2
mov w1, w22
mov w2, 0
ldr x0, [x0,992]
bl FlashReadPages
- str xzr, [x29,144]
- ldr x0, [x29,112]
+ str xzr, [x29,160]
+ ldr x0, [x29,128]
ubfiz x0, x0, 9, 23
- str x0, [x29,128]
- ldr w0, [x29,152]
+ str x0, [x29,144]
+ ldr w0, [x29,168]
lsl w0, w0, 9
- str w0, [x29,136]
+ str w0, [x29,152]
lsl w0, w26, 9
- str w0, [x29,108]
-.L2922:
- ldr w0, [x29,144]
+ str w0, [x29,124]
+.L2999:
+ ldr w0, [x29,160]
cmp w22, w0
- bls .L2953
- ldr x0, [x29,144]
+ bls .L3030
+ ldr x0, [x29,160]
add x2, x19, :lo12:.LANCHOR2
mov x1, 56
mul x3, x0, x1
@@ -18691,77 +19520,79 @@ ftl_read:
add x0, x0, x3
ldr w1, [x0,24]
cmp w1, w27
- bne .L2923
+ bne .L3000
ldr x1, [x0,8]
ldr x0, [x2,1088]
cmp x1, x0
- bne .L2924
- ldr x2, [x29,128]
+ bne .L3001
+ ldr x2, [x29,144]
mov x0, x25
- str x3, [x29,96]
+ str x3, [x29,104]
add x1, x1, x2
- ldr w2, [x29,136]
- b .L2951
-.L2923:
+ ldr w2, [x29,152]
+ b .L3028
+.L3000:
cmp w1, w24
- bne .L2924
+ bne .L3001
ldr x1, [x0,8]
ldr x0, [x2,1096]
cmp x1, x0
- bne .L2924
+ bne .L3001
ldrh w0, [x2,824]
- ldr w2, [x29,108]
- str x3, [x29,96]
+ ldr w2, [x29,124]
+ str x3, [x29,104]
mul w0, w24, w0
sub w0, w0, w20
ubfiz x0, x0, 9, 23
add x0, x25, x0
-.L2951:
+.L3028:
bl ftl_memcpy
- ldr x3, [x29,96]
-.L2924:
+ ldr x3, [x29,104]
+.L3001:
add x0, x19, :lo12:.LANCHOR2
- ldr x1, [x0,992]
- add x5, x1, x3
- ldr w4, [x1,x3]
- cmn w4, #1
- bne .L2925
- ldr w2, [x0,4040]
- str w4, [x29,140]
- add w2, w2, 1
- str w2, [x0,4040]
-.L2925:
- ldr w0, [x1,x3]
+ ldr x0, [x0,992]
+ add x5, x0, x3
+ ldr w2, [x0,x3]
+ cmn w2, #1
+ bne .L3002
+ ldr x1, [x29,112]
+ str w2, [x29,156]
+ add x4, x1, 3456
+ ldr w1, [x1,3528]
+ add w1, w1, 1
+ str w1, [x4,72]
+.L3002:
+ ldr w0, [x0,x3]
cmp w0, 256
- bne .L2926
+ bne .L3003
ldr w0, [x5,4]
lsr x0, x0, 10
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L2926:
- ldr x0, [x29,144]
+.L3003:
+ ldr x0, [x29,160]
add x0, x0, 1
- str x0, [x29,144]
- b .L2922
-.L2953:
+ str x0, [x29,160]
+ b .L2999
+.L3030:
mov w22, 0
- b .L2911
-.L2952:
+ b .L2988
+.L3029:
add x19, x19, :lo12:.LANCHOR2
ldrh w0, [x19,958]
- cbz w0, .L2929
+ cbz w0, .L3006
mov w0, w23
mov w1, 1
bl ftl_do_gc
-.L2929:
- ldr w0, [x29,140]
-.L2909:
+.L3006:
+ ldr w0, [x29,156]
+.L2986:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 176
+ ldp x29, x30, [sp], 192
ret
.size ftl_read, .-ftl_read
.align 2
@@ -18770,22 +19601,22 @@ ftl_read:
FtlInit:
stp x29, x30, [sp, -48]!
mov w0, -1
- adrp x1, .LC119
+ adrp x1, .LC140
add x29, sp, 0
str x21, [sp,32]
adrp x21, .LANCHOR1
add x21, x21, :lo12:.LANCHOR1
- add x1, x1, :lo12:.LC119
+ add x1, x1, :lo12:.LC140
stp x19, x20, [sp,16]
adrp x19, .LANCHOR2
adrp x20, .LANCHOR0
str w0, [x21,3064]
- adrp x0, .LANCHOR4+380
+ adrp x0, .LANCHOR5-132
add x19, x19, :lo12:.LANCHOR2
add x20, x20, :lo12:.LANCHOR0
- str wzr, [x0,#:lo12:.LANCHOR4+380]
- adrp x0, .LC45
- add x0, x0, :lo12:.LC45
+ str wzr, [x0,#:lo12:.LANCHOR5-132]
+ adrp x0, .LC47
+ add x0, x0, :lo12:.LC47
str wzr, [x19,1400]
bl printk
add x0, x20, 4016
@@ -18795,47 +19626,47 @@ FtlInit:
ldrh w0, [x19,752]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbz w0, .L2955
- adrp x0, .LC135
- add x0, x0, :lo12:.LC135
- b .L2967
-.L2955:
+ cbz w0, .L3032
+ adrp x0, .LC155
+ add x0, x0, :lo12:.LC155
+ b .L3044
+.L3032:
bl FtlSysBlkInit
- cbz w0, .L2957
- adrp x0, .LC136
- add x0, x0, :lo12:.LC136
-.L2967:
+ cbz w0, .L3034
+ adrp x0, .LC156
+ add x0, x0, :lo12:.LC156
+.L3044:
adrp x1, .LANCHOR3
add x1, x1, :lo12:.LANCHOR3
- add x1, x1, 40
+ add x1, x1, 96
bl printk
- b .L2956
-.L2957:
+ b .L3033
+.L3034:
mov w1, 1
str w1, [x21,3064]
bl ftl_do_gc
ldrh w0, [x19,3600]
cmp w0, 15
- bhi .L2958
+ bhi .L3035
mov w19, 1024
-.L2959:
+.L3036:
mov w0, 1
mov w1, w0
bl ftl_do_gc
subs w19, w19, #1
- bne .L2959
- b .L2956
-.L2958:
+ bne .L3036
+ b .L3033
+.L3035:
ldrb w0, [x20,136]
- cbz w0, .L2956
+ cbz w0, .L3033
mov w19, 128
-.L2961:
+.L3038:
mov w0, 1
mov w1, w0
bl ftl_do_gc
subs w19, w19, #1
- bne .L2961
-.L2956:
+ bne .L3038
+.L3033:
mov w0, 0
ldr x21, [sp,32]
ldp x19, x20, [sp,16]
@@ -18862,31 +19693,33 @@ ftl_write:
mov x22, x3
str x1, [x29,152]
ldr w3, [x2,1400]
- cbnz w3, .L2969
+ cbnz w3, .L3046
cmp w4, 16
- bne .L2970
+ bne .L3047
add w0, w20, 256
mov w1, w21
mov x2, x22
bl FtlVendorPartWrite
- b .L2969
-.L2970:
+ b .L3046
+.L3047:
adrp x0, .LANCHOR0+4048
add w24, w20, w21
ldr w1, [x0,#:lo12:.LANCHOR0+4048]
mov w0, -1
cmp w24, w1
- bhi .L2969
- adrp x4, .LANCHOR4
+ bhi .L3046
+ adrp x5, .LANCHOR5
ldrh w1, [x2,824]
- add x26, x4, :lo12:.LANCHOR4
+ add x26, x5, :lo12:.LANCHOR5
sub w24, w24, #1
mov w0, 2048
- ldr w3, [x2,968]
+ adrp x4, .LANCHOR4
udiv w23, w20, w1
+ add x3, x4, :lo12:.LANCHOR4
+ str w0, [x26,-128]
cmp w21, w1, lsl 1
- str w0, [x26,384]
- str x4, [x29,144]
+ str x5, [x29,144]
+ str x4, [x29,112]
udiv w0, w24, w1
str w0, [x29,200]
sub w28, w0, w23
@@ -18894,12 +19727,13 @@ ftl_write:
ldr w0, [x2,884]
add w0, w25, w0
str w0, [x2,884]
- ldr w0, [x26,128]
+ ldr w0, [x3,3968]
add w0, w21, w0
- str w0, [x26,128]
+ str w0, [x3,3968]
+ ldr w3, [x2,968]
cset w0, cs
str w0, [x29,204]
- cbz w3, .L2972
+ cbz w3, .L3049
mov w0, 56
sub w3, w3, #1
umull x3, w3, w0
@@ -18907,13 +19741,13 @@ ftl_write:
add x3, x0, x3
ldr w0, [x3,24]
cmp w23, w0
- bne .L2973
+ bne .L3050
ldr w0, [x2,892]
add w0, w0, 1
str w0, [x2,892]
- ldr w0, [x26,388]
+ ldr w0, [x26,-124]
add w0, w0, 1
- str w0, [x26,388]
+ str w0, [x26,-124]
msub w0, w23, w1, w20
sub w1, w1, w0
ubfiz x0, x0, 9, 23
@@ -18925,84 +19759,84 @@ ftl_write:
mov w2, w25
mov x1, x22
bl ftl_memcpy
- cbnz w28, .L2974
- ldr w0, [x26,388]
+ cbnz w28, .L3051
+ ldr w0, [x26,-124]
cmp w0, 2
- bgt .L2974
-.L3007:
+ bgt .L3051
+.L3084:
mov w0, 0
- b .L2969
-.L2974:
+ b .L3046
+.L3051:
add x22, x22, x25
sub w21, w21, w19
add w20, w20, w19
add w23, w23, 1
mov w25, w28
-.L2973:
+.L3050:
ldr x0, [x29,144]
- add x0, x0, :lo12:.LANCHOR4
- str wzr, [x0,388]
-.L2972:
+ add x0, x0, :lo12:.LANCHOR5
+ str wzr, [x0,-124]
+.L3049:
ldr w1, [x29,200]
mov w0, w23
bl FtlCacheMetchLpa
- cbz w0, .L2975
+ cbz w0, .L3052
bl FtlCacheWriteBack
-.L2975:
+.L3052:
ldr x0, [x29,144]
ldr x1, [x29,152]
- add x0, x0, :lo12:.LANCHOR4
+ add x0, x0, :lo12:.LANCHOR5
str w23, [x29,192]
add x3, x1, :lo12:.LANCHOR2
add x19, x3, 3608
mov x24, x3
- str x19, [x0,368]
- adrp x0, .LC137
- add x0, x0, :lo12:.LC137
+ str x19, [x0,-144]
+ adrp x0, .LC157
+ add x0, x0, :lo12:.LC157
str x19, [x29,176]
- str x0, [x29,104]
-.L2976:
- cbz w25, .L3036
+ str x0, [x29,96]
+.L3053:
+ cbz w25, .L3113
ldrh w0, [x19,4]
- cbnz w0, .L2977
+ cbnz w0, .L3054
ldr x1, [x29,176]
adrp x26, .LANCHOR1
cmp x19, x1
- bne .L2978
+ bne .L3055
add x0, x24, 3656
ldrh w19, [x0,4]
- cbnz w19, .L2979
+ cbnz w19, .L3056
bl allocate_new_data_superblock
add x0, x26, :lo12:.LANCHOR1
str w19, [x0,3072]
-.L2979:
+.L3056:
ldr x0, [x29,176]
add x26, x26, :lo12:.LANCHOR1
add x19, x24, 3656
bl allocate_new_data_superblock
ldr w0, [x26,3072]
- cbnz w0, .L2980
-.L2981:
+ cbnz w0, .L3057
+.L3058:
ldr x19, [x29,176]
- b .L2980
-.L2978:
+ b .L3057
+.L3055:
add x26, x26, :lo12:.LANCHOR1
str w0, [x26,3072]
ldr x0, [x29,176]
ldrh w0, [x0,4]
- cbnz w0, .L2981
+ cbnz w0, .L3058
mov x0, x19
bl allocate_new_data_superblock
-.L2980:
+.L3057:
ldrh w0, [x19,4]
- cbnz w0, .L2982
+ cbnz w0, .L3059
mov x0, x19
bl allocate_new_data_superblock
-.L2982:
+.L3059:
ldr x0, [x29,144]
- add x0, x0, :lo12:.LANCHOR4
- str x19, [x0,368]
-.L2977:
+ add x0, x0, :lo12:.LANCHOR5
+ str x19, [x0,-144]
+.L3054:
ldr w0, [x24,964]
mov x28, 0
ldr w2, [x24,968]
@@ -19015,31 +19849,31 @@ ftl_write:
str w0, [x29,140]
ldr w0, [x29,204]
and w0, w0, 1
- str w0, [x29,116]
+ str w0, [x29,108]
add w0, w21, w20
str w0, [x29,136]
-.L2983:
+.L3060:
ldr w1, [x29,192]
mov w0, w28
add w27, w1, w28
ldr w1, [x29,140]
cmp w28, w1
- bcs .L3037
+ bcs .L3114
ldrh w1, [x19,4]
- cbz w1, .L3013
+ cbz w1, .L3090
ldr w1, [x29,200]
cmp w27, w1
cset w7, eq
- cbz w0, .L2985
- ldr w1, [x29,116]
+ cbz w0, .L3062
+ ldr w1, [x29,108]
tst w7, w1
- beq .L2985
+ beq .L3062
ldrh w1, [x24,824]
ldr w2, [x29,136]
msub w2, w27, w1, w2
cmp w2, w1
- bne .L3013
-.L2985:
+ bne .L3090
+.L3062:
add x1, x29, 212
mov w2, 0
mov w0, w27
@@ -19078,10 +19912,10 @@ ftl_write:
cmp w27, w23
cset w0, eq
str w0, [x29,196]
- cbnz w0, .L3016
+ cbnz w0, .L3093
ldr x7, [x29,160]
ldr x5, [x29,184]
- cbz w7, .L2986
+ cbz w7, .L3063
ldr w0, [x29,136]
ldrh w2, [x24,824]
msub w2, w27, w2, w0
@@ -19089,8 +19923,8 @@ ftl_write:
str w0, [x29,184]
ldr w0, [x29,196]
str w0, [x29,160]
- b .L2989
-.L3016:
+ b .L3066
+.L3093:
ldrh w2, [x24,824]
udiv w0, w20, w2
msub w0, w0, w2, w20
@@ -19099,39 +19933,39 @@ ftl_write:
cmp w2, w21
csel w0, w2, w21, ls
str w0, [x29,184]
-.L2989:
+.L3066:
ldrh w0, [x24,824]
ldr w1, [x29,184]
cmp w1, w0
- bne .L2990
+ bne .L3067
ldr w0, [x29,196]
mov x1, x22
- cbnz w0, .L2991
+ cbnz w0, .L3068
ldr w0, [x29,184]
mul w1, w0, w27
sub w1, w1, w20
ubfiz x1, x1, 9, 23
add x1, x22, x1
-.L2991:
+.L3068:
ldr w2, [x29,204]
mov w0, 56
- cbz w2, .L2992
+ cbz w2, .L3069
ldr w2, [x24,968]
umull x0, w2, w0
ldr x2, [x24,1032]
add x0, x2, x0
- b .L3033
-.L2992:
+ b .L3110
+.L3069:
ldr w2, [x24,968]
umull x0, w2, w0
ldr x2, [x24,1032]
add x0, x2, x0
ldr x0, [x0,8]
- b .L3034
-.L2990:
+ b .L3111
+.L3067:
ldr w0, [x29,212]
cmn w0, #1
- beq .L2994
+ beq .L3071
str w0, [x29,220]
mov w1, 56
ldr w0, [x24,968]
@@ -19149,24 +19983,28 @@ ftl_write:
bl FlashReadPages
ldr w0, [x29,216]
cmn w0, #1
- bne .L2995
- ldr w0, [x24,4040]
- add w0, w0, 1
- str w0, [x24,4040]
- b .L2997
-.L2995:
+ bne .L3072
+ ldr x0, [x29,112]
+ add x0, x0, :lo12:.LANCHOR4
+ ldr w1, [x0,3528]
+ add w1, w1, 1
+ str w1, [x0,3528]
+ b .L3074
+.L3072:
ldr w0, [x26,8]
cmp w0, w27
- beq .L2997
- ldr w0, [x24,4040]
+ beq .L3074
+ ldr x0, [x29,112]
mov w2, w27
- add w0, w0, 1
- str w0, [x24,4040]
- ldr x0, [x29,104]
+ add x0, x0, :lo12:.LANCHOR4
+ ldr w1, [x0,3528]
+ add w1, w1, 1
+ str w1, [x0,3528]
+ ldr x0, [x29,96]
ldr w1, [x26,8]
bl printk
- b .L2997
-.L2994:
+ b .L3074
+.L3071:
ldr w0, [x24,968]
mov w1, 56
ldrh w2, [x24,828]
@@ -19176,12 +20014,12 @@ ftl_write:
mov w1, 0
ldr x0, [x0,8]
bl ftl_memset
-.L2997:
+.L3074:
ldr w1, [x29,184]
mov w0, 56
lsl w2, w1, 9
ldr w1, [x29,196]
- cbz w1, .L2998
+ cbz w1, .L3075
ldr w1, [x24,968]
umull x0, w1, w0
ldr x1, [x24,1032]
@@ -19191,8 +20029,8 @@ ftl_write:
ldr x1, [x1,8]
add x0, x1, x0
mov x1, x22
- b .L3035
-.L2998:
+ b .L3112
+.L3075:
ldr w1, [x24,968]
umull x0, w1, w0
ldr x1, [x24,1032]
@@ -19203,12 +20041,12 @@ ftl_write:
sub w1, w1, w20
ubfiz x1, x1, 9, 23
add x1, x22, x1
- b .L3035
-.L2986:
+ b .L3112
+.L3063:
ldr w0, [x29,204]
ldrh w1, [x24,824]
ldr w2, [x24,968]
- cbz w0, .L2999
+ cbz w0, .L3076
mul w1, w27, w1
umull x0, w2, w5
sub w1, w1, w20
@@ -19216,10 +20054,10 @@ ftl_write:
ubfiz x1, x1, 9, 23
add x0, x2, x0
add x1, x22, x1
-.L3033:
+.L3110:
str x1, [x0,8]
- b .L2993
-.L2999:
+ b .L3070
+.L3076:
umull x0, w2, w5
ldr x2, [x24,1032]
mul w1, w27, w1
@@ -19228,11 +20066,11 @@ ftl_write:
ubfiz x1, x1, 9, 23
ldr x0, [x0,8]
add x1, x22, x1
-.L3034:
+.L3111:
ldrh w2, [x24,828]
-.L3035:
+.L3112:
bl ftl_memcpy
-.L2993:
+.L3070:
ldr x1, [x29,120]
mov w0, -3947
ldr x2, [x29,128]
@@ -19252,33 +20090,33 @@ ftl_write:
ldr w0, [x24,968]
add w0, w0, 1
str w0, [x24,968]
- b .L2983
-.L3037:
+ b .L3060
+.L3114:
str w27, [x29,192]
mov x0, x1
- b .L2984
-.L3013:
+ b .L3061
+.L3090:
str w27, [x29,192]
-.L2984:
+.L3061:
sub w25, w25, w0
ldr w0, [x29,204]
- cbnz w0, .L3003
+ cbnz w0, .L3080
ldr w1, [x24,968]
ldr w0, [x24,964]
cmp w1, w0
- bcs .L3003
+ bcs .L3080
ldrh w0, [x19,4]
- cbz w0, .L3003
-.L3005:
+ cbz w0, .L3080
+.L3082:
str wzr, [x29,204]
- b .L2976
-.L3003:
+ b .L3053
+.L3080:
bl FtlCacheWriteBack
str wzr, [x24,968]
cmp w25, 1
- bhi .L2976
- b .L3005
-.L3036:
+ bhi .L3053
+ b .L3082
+.L3113:
ldr w1, [x29,200]
mov w0, w25
sub w1, w1, w23
@@ -19287,23 +20125,23 @@ ftl_write:
add x0, x0, :lo12:.LANCHOR2
ldrh w1, [x0,3600]
cmp w1, 31
- bhi .L3007
+ bhi .L3084
mov w1, 128
mov w19, 16
strh w1, [x0,954]
strh w1, [x0,952]
-.L3008:
+.L3085:
mov w0, 0
mov w1, 1
bl ftl_do_gc
ldr x0, [x29,152]
add x0, x0, :lo12:.LANCHOR2
ldr w0, [x0,1400]
- cbnz w0, .L3007
+ cbnz w0, .L3084
subs w19, w19, #1
- bne .L3008
- b .L3007
-.L2969:
+ bne .L3085
+ b .L3084
+.L3046:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -19355,16 +20193,16 @@ ftl_fix_nand_power_lost_error:
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
- cbz w0, .L3040
+ cbz w0, .L3117
adrp x21, .LANCHOR4
adrp x19, .LANCHOR2
add x0, x21, :lo12:.LANCHOR4
add x20, x19, :lo12:.LANCHOR2
- adrp x24, .LC138
+ adrp x24, .LC158
add x26, x20, 3608
add x25, x20, 3656
- ldrh w23, [x0,218]
- add x0, x24, :lo12:.LC138
+ ldrh w23, [x0,4058]
+ add x0, x24, :lo12:.LC158
ldr x2, [x20,1184]
ubfiz x22, x23, 1, 16
mov w1, w23
@@ -19379,26 +20217,26 @@ ftl_fix_nand_power_lost_error:
bl allocate_new_data_superblock
mov x0, x25
bl allocate_new_data_superblock
-.L3042:
+.L3119:
subs w20, w20, #1
- beq .L3046
+ beq .L3123
mov w0, 1
mov w1, w0
bl ftl_do_gc
add x0, x19, :lo12:.LANCHOR2
ldr x0, [x0,1184]
ldrh w0, [x0,x22]
- cbnz w0, .L3042
-.L3046:
+ cbnz w0, .L3119
+.L3123:
add x20, x19, :lo12:.LANCHOR2
- add x0, x24, :lo12:.LC138
+ add x0, x24, :lo12:.LC158
mov w1, w23
ldr x2, [x20,1184]
ldrh w2, [x2,x22]
bl printk
ldr x0, [x20,1184]
ldrh w0, [x0,x22]
- cbnz w0, .L3044
+ cbnz w0, .L3121
add x0, x29, 80
strh w23, [x29,80]
bl make_superblock
@@ -19407,14 +20245,14 @@ ftl_fix_nand_power_lost_error:
mov w6, 65535
mov w20, w0
mov w7, 56
-.L3047:
+.L3124:
cmp w5, w0, uxth
- bls .L3054
+ bls .L3131
add x1, x29, 80
add x1, x1, x0, lsl 1
ldrh w2, [x1,16]
cmp w2, w6
- beq .L3048
+ beq .L3125
add x4, x19, :lo12:.LANCHOR2
lsl w2, w2, 10
umull x1, w20, w7
@@ -19427,14 +20265,14 @@ ftl_fix_nand_power_lost_error:
add x1, x2, x1
str xzr, [x1,8]
str xzr, [x1,16]
-.L3048:
+.L3125:
add x0, x0, 1
- b .L3047
-.L3054:
+ b .L3124
+.L3131:
add x19, x19, :lo12:.LANCHOR2
- adrp x0, .LC139
+ adrp x0, .LC159
mov w1, w23
- add x0, x0, :lo12:.LC139
+ add x0, x0, :lo12:.LC159
ldr x2, [x19,1184]
ldrh w2, [x2,x22]
bl printk
@@ -19446,11 +20284,11 @@ ftl_fix_nand_power_lost_error:
mov w1, 1
mov w2, w20
bl FlashEraseBlocks
-.L3044:
+.L3121:
add x21, x21, :lo12:.LANCHOR4
mov w0, -1
- strh w0, [x21,218]
-.L3040:
+ strh w0, [x21,4058]
+.L3117:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -19459,6 +20297,7 @@ ftl_fix_nand_power_lost_error:
ret
.size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error
.global gc_ink_free_return_value
+ .global check_valid_page_count_table
.global FtlUpdateVaildLpnCount
.global g_ect_tbl_power_up_flush
.global last_cache_match_count
@@ -19683,19 +20522,33 @@ ftl_fix_nand_power_lost_error:
.section .rodata
.align 3
.LANCHOR3 = . + 0
- .type __func__.19441, %object
- .size __func__.19441, 11
-__func__.19441:
+ .type __func__.19448, %object
+ .size __func__.19448, 11
+__func__.19448:
.string "FtlMemInit"
.zero 5
- .type __func__.20390, %object
- .size __func__.20390, 21
-__func__.20390:
+ .type __func__.20195, %object
+ .size __func__.20195, 12
+__func__.20195:
+ .string "FtlCheckVpc"
+ .zero 4
+ .type __func__.20228, %object
+ .size __func__.20228, 17
+__func__.20228:
+ .string "FtlDumpBlockInfo"
+ .zero 7
+ .type __func__.20247, %object
+ .size __func__.20247, 16
+__func__.20247:
+ .string "FtlScanAllBlock"
+ .type __func__.20495, %object
+ .size __func__.20495, 21
+__func__.20495:
.string "FtlVpcCheckAndModify"
.zero 3
- .type __func__.19514, %object
- .size __func__.19514, 8
-__func__.19514:
+ .type __func__.19521, %object
+ .size __func__.19521, 8
+__func__.19521:
.string "FtlInit"
.section .rodata.str1.1,"aMS",%progbits,1
.LC0:
@@ -19785,198 +20638,238 @@ __func__.19514:
.LC42:
.string "load_l2p_region refresh = %x phyAddr = %x\n"
.LC43:
- .string "FtlVendorPartRead refresh = %x phyAddr = %x\n"
+ .string "region_id = %x phyAddr = %x\n"
.LC44:
- .string "FtlVpcTblFlush error = %x error count = %d\n"
+ .string "map_ppn:"
.LC45:
- .string "%s\n"
+ .string "FtlVendorPartRead refresh = %x phyAddr = %x\n"
.LC46:
- .string "no ect"
+ .string "FtlVpcTblFlush error = %x error count = %d\n"
.LC47:
- .string "page map lost %x %x %x %x\n"
+ .string "%s\n"
.LC48:
- .string "slc mode"
+ .string "no ect"
.LC49:
- .string "FLASH INFO:\n"
+ .string "...%s enter...\n"
.LC50:
- .string "FLASH ID: %x\n"
+ .string "vpc1"
.LC51:
- .string "Device Capacity: %d MB\n"
+ .string "vpc2"
.LC52:
- .string "FMWAIT: %x %x %x %x\n"
+ .string "FtlCheckVpc2 %x = %x %x\n"
.LC53:
- .string "FTL INFO:\n"
+ .string "free blk vpc error %x = %x %x\n"
.LC54:
- .string "g_MaxLpn = 0x%x\n"
+ .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n"
.LC55:
- .string "g_VaildLpn = 0x%x\n"
+ .string ":"
.LC56:
- .string "read_page_count = 0x%x\n"
+ .string "Ftlscanalldata = %x\n"
.LC57:
- .string "discard_page_count = 0x%x\n"
+ .string "scan lpa = %x ppa= %x\n"
.LC58:
- .string "write_page_count = 0x%x\n"
+ .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
.LC59:
- .string "cache_write_count = 0x%x\n"
+ .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
.LC60:
- .string "l2p_write_count = 0x%x\n"
+ .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n"
.LC61:
- .string "gc_page_count = 0x%x\n"
+ .string "Mblk:"
.LC62:
- .string "totle_write = %d MB\n"
+ .string "L2P:"
.LC63:
- .string "totle_read = %d MB\n"
+ .string "L2PC:"
.LC64:
- .string "GSV = 0x%x\n"
+ .string "superBlkID = %x vpc=%x\n"
.LC65:
- .string "GDV = 0x%x\n"
+ .string "flashmode = %x pagenum = %x %x\n"
.LC66:
- .string "bad blk num = %d %d\n"
+ .string "blk = %x vpc=%x mode = %x\n"
.LC67:
- .string "free_superblocks = 0x%x\n"
+ .string "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n"
.LC68:
- .string "mlc_EC = 0x%x\n"
+ .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n"
.LC69:
- .string "slc_EC = 0x%x\n"
+ .string "slc mode"
.LC70:
- .string "avg_EC = 0x%x\n"
+ .string "FLASH INFO:\n"
.LC71:
- .string "sys_EC = 0x%x\n"
+ .string "FLASH ID: %x\n"
.LC72:
- .string "max_EC = 0x%x\n"
+ .string "Device Capacity: %d MB\n"
.LC73:
- .string "min_EC = 0x%x\n"
+ .string "FMWAIT: %x %x %x %x\n"
.LC74:
- .string "PLT = 0x%x\n"
+ .string "FTL INFO:\n"
.LC75:
- .string "POT = 0x%x\n"
+ .string "g_MaxLpn = 0x%x\n"
.LC76:
- .string "MaxSector = 0x%x\n"
+ .string "g_VaildLpn = 0x%x\n"
.LC77:
- .string "init_sys_blks_pp = 0x%x\n"
+ .string "read_page_count = 0x%x\n"
.LC78:
- .string "sys_blks_pp = 0x%x\n"
+ .string "discard_page_count = 0x%x\n"
.LC79:
- .string "free sysblock = 0x%x\n"
+ .string "write_page_count = 0x%x\n"
.LC80:
- .string "data_blks_pp = 0x%x\n"
+ .string "cache_write_count = 0x%x\n"
.LC81:
- .string "data_op_blks_pp = 0x%x\n"
+ .string "l2p_write_count = 0x%x\n"
.LC82:
- .string "max_data_blks = 0x%x\n"
+ .string "gc_page_count = 0x%x\n"
.LC83:
- .string "Sys.id = 0x%x\n"
+ .string "totle_write = %d MB\n"
.LC84:
- .string "Bbt.id = 0x%x\n"
+ .string "totle_read = %d MB\n"
.LC85:
- .string "ACT.page = 0x%x\n"
+ .string "GSV = 0x%x\n"
.LC86:
- .string "ACT.plane = 0x%x\n"
+ .string "GDV = 0x%x\n"
.LC87:
- .string "ACT.id = 0x%x\n"
+ .string "bad blk num = %d %d\n"
.LC88:
- .string "ACT.mode = 0x%x\n"
+ .string "free_superblocks = 0x%x\n"
.LC89:
- .string "ACT.a_pages = 0x%x\n"
+ .string "mlc_EC = 0x%x\n"
.LC90:
- .string "ACT VPC = 0x%x\n"
+ .string "slc_EC = 0x%x\n"
.LC91:
- .string "BUF.page = 0x%x\n"
+ .string "avg_EC = 0x%x\n"
.LC92:
- .string "BUF.plane = 0x%x\n"
+ .string "sys_EC = 0x%x\n"
.LC93:
- .string "BUF.id = 0x%x\n"
+ .string "max_EC = 0x%x\n"
.LC94:
- .string "BUF.mode = 0x%x\n"
+ .string "min_EC = 0x%x\n"
.LC95:
- .string "BUF.a_pages = 0x%x\n"
+ .string "PLT = 0x%x\n"
.LC96:
- .string "BUF VPC = 0x%x\n"
+ .string "POT = 0x%x\n"
.LC97:
- .string "TMP.page = 0x%x\n"
+ .string "MaxSector = 0x%x\n"
.LC98:
- .string "TMP.plane = 0x%x\n"
+ .string "init_sys_blks_pp = 0x%x\n"
.LC99:
- .string "TMP.id = 0x%x\n"
+ .string "sys_blks_pp = 0x%x\n"
.LC100:
- .string "TMP.mode = 0x%x\n"
+ .string "free sysblock = 0x%x\n"
.LC101:
- .string "TMP.a_pages = 0x%x\n"
+ .string "data_blks_pp = 0x%x\n"
.LC102:
- .string "GC.page = 0x%x\n"
+ .string "data_op_blks_pp = 0x%x\n"
.LC103:
- .string "GC.plane = 0x%x\n"
+ .string "max_data_blks = 0x%x\n"
.LC104:
- .string "GC.id = 0x%x\n"
+ .string "Sys.id = 0x%x\n"
.LC105:
- .string "GC.mode = 0x%x\n"
+ .string "Bbt.id = 0x%x\n"
.LC106:
- .string "GC.a_pages = 0x%x\n"
+ .string "ACT.page = 0x%x\n"
.LC107:
- .string "WR_CHK = 0x%x %x %x %x\n"
+ .string "ACT.plane = 0x%x\n"
.LC108:
- .string "Read Err Cnt = 0x%x\n"
+ .string "ACT.id = 0x%x\n"
.LC109:
- .string "Prog Err Cnt = 0x%x\n"
+ .string "ACT.mode = 0x%x\n"
.LC110:
- .string "gc_free_blk_th= 0x%x\n"
+ .string "ACT.a_pages = 0x%x\n"
.LC111:
- .string "gc_merge_free_blk_th= 0x%x\n"
+ .string "ACT VPC = 0x%x\n"
.LC112:
- .string "gc_skip_write_count= 0x%x\n"
+ .string "BUF.page = 0x%x\n"
.LC113:
- .string "gc_blk_index= 0x%x\n"
+ .string "BUF.plane = 0x%x\n"
.LC114:
- .string "free min EC= 0x%x\n"
+ .string "BUF.id = 0x%x\n"
.LC115:
- .string "free max EC= 0x%x\n"
+ .string "BUF.mode = 0x%x\n"
.LC116:
- .string "GC__SB VPC = 0x%x\n"
+ .string "BUF.a_pages = 0x%x\n"
.LC117:
- .string "%d. [0x%x]=0x%x 0x%x 0x%x\n"
+ .string "BUF VPC = 0x%x\n"
.LC118:
- .string "free %d. [0x%x] 0x%x 0x%x\n"
+ .string "TMP.page = 0x%x\n"
.LC119:
- .string "FTL version: 5.0.48 20180615"
+ .string "TMP.plane = 0x%x\n"
.LC120:
- .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n"
+ .string "TMP.id = 0x%x\n"
.LC121:
- .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n"
+ .string "TMP.mode = 0x%x\n"
.LC122:
- .string "FtlGcRefreshBlock 0x%x\n"
+ .string "TMP.a_pages = 0x%x\n"
.LC123:
- .string "FtlGcMarkBadPhyBlk %d 0x%x\n"
+ .string "GC.page = 0x%x\n"
.LC124:
- .string "FtlGcFreeBadSuperBlk 0x%x\n"
+ .string "GC.plane = 0x%x\n"
.LC125:
- .string "decrement_vpc_count %x = %d\n"
+ .string "GC.id = 0x%x\n"
.LC126:
- .string "RSB refresh addr %x\n"
+ .string "GC.mode = 0x%x\n"
.LC127:
- .string "spuer block %x vpn is 0\n "
+ .string "GC.a_pages = 0x%x\n"
.LC128:
- .string "g_recovery_ppa %x ver %x\n "
+ .string "WR_CHK = 0x%x %x %x %x\n"
.LC129:
- .string "...%s enter...\n"
+ .string "Read Err = 0x%x\n"
.LC130:
- .string "FtlCheckVpc %x = %x %x\n"
+ .string "Prog Err = 0x%x\n"
.LC131:
- .string "%d GC datablk = %x vpc %x %x\n"
+ .string "gc_free_blk_th= 0x%x\n"
.LC132:
- .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n"
+ .string "gc_merge_free_blk_th= 0x%x\n"
.LC133:
- .string "Ftlwrite decrement_vpc_count %x = %d\n"
+ .string "gc_skip_write_count= 0x%x\n"
.LC134:
- .string "GC des block %x done\n"
+ .string "gc_blk_index= 0x%x\n"
.LC135:
- .string "...%s: no bad block mapping table, format device\n"
+ .string "free min EC= 0x%x\n"
.LC136:
- .string "...%s FtlSysBlkInit error ,format device!\n"
+ .string "free max EC= 0x%x\n"
.LC137:
- .string "FtlWrite: lpa error:%x %x\n"
+ .string "GC__SB VPC = 0x%x\n"
.LC138:
- .string "fix power lost blk = %x vpc=%x\n"
+ .string "%d. [0x%x]=0x%x 0x%x 0x%x\n"
.LC139:
+ .string "free %d. [0x%x] 0x%x 0x%x\n"
+.LC140:
+ .string "FTL version: 5.0.48 20180703"
+.LC141:
+ .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n"
+.LC142:
+ .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n"
+.LC143:
+ .string "FtlGcRefreshBlock 0x%x\n"
+.LC144:
+ .string "FtlGcMarkBadPhyBlk %d 0x%x\n"
+.LC145:
+ .string "FtlGcFreeBadSuperBlk 0x%x\n"
+.LC146:
+ .string "decrement_vpc_count %x = %d\n"
+.LC147:
+ .string "RSB refresh addr %x\n"
+.LC148:
+ .string "spuer block %x vpn is 0\n "
+.LC149:
+ .string "g_recovery_ppa %x ver %x\n "
+.LC150:
+ .string "FtlCheckVpc %x = %x %x\n"
+.LC151:
+ .string "%d GC datablk = %x vpc %x %x\n"
+.LC152:
+ .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n"
+.LC153:
+ .string "Ftlwrite decrement_vpc_count %x = %d\n"
+.LC154:
+ .string "GC des block %x done\n"
+.LC155:
+ .string "...%s: no bad block mapping table, format device\n"
+.LC156:
+ .string "...%s FtlSysBlkInit error ,format device!\n"
+.LC157:
+ .string "FtlWrite: lpa error:%x %x\n"
+.LC158:
+ .string "fix power lost blk = %x vpc=%x\n"
+.LC159:
.string "erase power lost blk = %x vpc=%x\n"
.data
.align 3
@@ -22447,7 +23340,8 @@ power_up_flag:
.align 3
.LANCHOR0 = . + 0
.LANCHOR2 = . + 4352
-.LANCHOR4 = . + 8704
+.LANCHOR4 = . + 13056
+.LANCHOR5 = . + 17408
.type gFlashPageBuffer0, %object
.size gFlashPageBuffer0, 8
gFlashPageBuffer0:
@@ -23217,6 +24111,10 @@ gSysInfo:
g_totle_map_block:
.zero 2
.zero 2
+ .type check_valid_page_count_table, %object
+ .size check_valid_page_count_table, 8192
+check_valid_page_count_table:
+ .zero 8192
.type g_MaxLbn, %object
.size g_MaxLbn, 4
g_MaxLbn:
diff --git a/drivers/rk_nand/rk_zftl_arm64.S b/drivers/rk_nand/rk_zftl_arm64.S
index 658e71a57658..efe057763981 100644
--- a/drivers/rk_nand/rk_zftl_arm64.S
+++ b/drivers/rk_nand/rk_zftl_arm64.S
@@ -4202,7 +4202,7 @@ gc_write_completed:
bl printk
adrp x0, .LC0
mov x1, x22
- mov w2, 539
+ mov w2, 544
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
@@ -4241,7 +4241,7 @@ gc_write_completed:
beq .L658
adrp x0, .LC0
mov x1, x22
- mov w2, 546
+ mov w2, 551
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
@@ -5743,7 +5743,7 @@ gc_free_src_blk:
.L946:
adrp x0, .LC0
mov x1, x21
- mov w2, 793
+ mov w2, 798
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
@@ -8437,10 +8437,9 @@ gc_static_wearleveling:
cmp w2, w0
ble .L1315
ldr w0, [x4,x3]
- add w2, w21, 2
ubfx x0, x0, 11, 8
- cmp w0, w2
- ble .L1316
+ cmp w0, w21
+ bls .L1316
cbz w1, .L1315
ldrh w0, [x4,x3]
and w0, w0, 2047
@@ -8476,13 +8475,13 @@ gc_static_wearleveling:
cmp w2, w0
ble .L1315
ldrh w0, [x4,x3]
- add w2, w20, 2
+ add w2, w20, 8
and w0, w0, 2047
cmp w0, w2
ble .L1317
cbz w1, .L1315
ldr w0, [x4,x3]
- add w1, w21, 2
+ add w1, w21, 4
ubfx x0, x0, 11, 8
cmp w0, w1
bgt .L1315
@@ -12918,154 +12917,6 @@ sblk_read_page:
ret
.size sblk_read_page, .-sblk_read_page
.align 2
- .global gc_check_data_one_wl
- .type gc_check_data_one_wl, %function
-gc_check_data_one_wl:
- sub sp, sp, #112
- stp x29, x30, [sp,16]
- add x29, sp, 16
- stp x19, x20, [sp,32]
- adrp x19, .LANCHOR0
- str x27, [sp,96]
- add x20, x19, :lo12:.LANCHOR0
- stp x21, x22, [sp,48]
- stp x23, x24, [sp,64]
- stp x25, x26, [sp,80]
- ldr x0, [x20,2904]
- ldr x23, [x20,608]
- add x20, x20, 2896
- cbnz x0, .L2157
- mov w0, 1
- bl buf_alloc
- str x0, [x20,8]
-.L2157:
- add x0, x19, :lo12:.LANCHOR0
- ldr x20, [x0,2904]
- cbnz x20, .L2158
- adrp x1, .LANCHOR3
- adrp x0, .LC0
- add x1, x1, :lo12:.LANCHOR3
- mov w2, 366
- add x1, x1, 296
- add x0, x0, :lo12:.LC0
- bl printk
- bl dump_stack
-.L2158:
- mov w24, 0
- add x25, x23, 80
- add x21, x19, :lo12:.LANCHOR0
- adrp x26, .LANCHOR4
-.L2159:
- ldrb w0, [x25,9]
- cmp w24, w0
- bge .L2180
- mov w22, 1
- sxtw x27, w24
-.L2168:
- add x0, x21, 2896
- ldrh w1, [x0,20]
- cmp w22, w1
- bgt .L2181
- add x1, x27, 8
- ldrh w2, [x21,3350]
- ldrh w0, [x0,16]
- ldrh w1, [x25,x1,lsl 1]
- mul w1, w1, w2
- ldrb w2, [x21,3257]
- cmp w2, 3
- bne .L2160
- add w1, w1, w0
- orr w1, w1, w22, lsl 24
- b .L2179
-.L2160:
- cmp w2, 2
- bne .L2162
- sub w0, w0, #1
- add w1, w0, w1
- add w1, w1, w22
- orr w1, w1, 33554432
- b .L2179
-.L2162:
- add w1, w1, w0
-.L2179:
- str w1, [x20,40]
- mov x0, x20
- mov w1, 1
- bl sblk_read_page
- ldr w2, [x20,52]
- cmn w2, #1
- beq .L2163
- add x3, x26, :lo12:.LANCHOR4
- ldrh w0, [x21,2918]
- ldr x1, [x20,24]
- lsl x0, x0, 2
- ldr x4, [x3,1136]
- ldr w5, [x4,x0]
- ldr w4, [x1,4]
- cmp w5, w4
- bne .L2163
- ldr x3, [x3,1144]
- ldr w3, [x3,x0]
- ldr w0, [x1,8]
- cmp w3, w0
- beq .L2164
-.L2163:
- add x0, x26, :lo12:.LANCHOR4
- ldrh w4, [x21,2918]
- lsl x4, x4, 2
- ldr x1, [x0,1136]
- ldr w3, [x1,x4]
- cmn w3, #1
- beq .L2164
- adrp x1, .LANCHOR2
- ldr w1, [x1,#:lo12:.LANCHOR2]
- tbz x1, 10, .L2165
- ldr x7, [x20,24]
- ldr x5, [x0,1144]
- ldr w0, [x7,12]
- str w0, [sp]
- adrp x0, .LC161
- add x0, x0, :lo12:.LC161
- ldr w4, [x5,x4]
- ldr w6, [x7,4]
- ldr w5, [x7]
- ldr w1, [x20,40]
- ldr w7, [x7,8]
- bl printk
-.L2165:
- add x19, x19, :lo12:.LANCHOR0
- ldrh w1, [x23,80]
- ldr x0, [x19,600]
- strh wzr, [x0,x1,lsl 1]
- mov w0, -1
- b .L2166
-.L2164:
- ldrh w0, [x21,2918]
- add w22, w22, 1
- add w0, w0, 1
- strh w0, [x21,2918]
- b .L2168
-.L2181:
- add w24, w24, 1
- b .L2159
-.L2180:
- add x19, x19, :lo12:.LANCHOR0
- ldrh w0, [x19,2912]
- add w0, w0, 1
- strh w0, [x19,2912]
- mov w0, 0
-.L2166:
- sub sp, x29, #16
- ldp x19, x20, [sp,32]
- ldp x21, x22, [sp,48]
- ldp x23, x24, [sp,64]
- ldp x25, x26, [sp,80]
- ldr x27, [sp,96]
- ldp x29, x30, [sp,16]
- add sp, sp, 112
- ret
- .size gc_check_data_one_wl, .-gc_check_data_one_wl
- .align 2
.global flash_prog_page
.type flash_prog_page, %function
flash_prog_page:
@@ -13090,24 +12941,24 @@ flash_prog_page:
add x22, x19, x22, lsl 8
and w24, w1, 2097151
ubfx x27, x23, 24, 2
- tbz x0, 4, .L2183
- adrp x0, .LC162
+ tbz x0, 4, .L2157
+ adrp x0, .LC161
mov w2, w27
- add x0, x0, :lo12:.LC162
+ add x0, x0, :lo12:.LC161
bl printk
-.L2183:
+.L2157:
bl nandc_wait_flash_ready
mov w0, w20
bl hynix_reconfig_rr_para
mov w0, w20
bl nandc_cs
mov w0, w20
- cbnz w27, .L2184
+ cbnz w27, .L2158
bl zftl_flash_enter_slc_mode
- b .L2185
-.L2184:
+ b .L2159
+.L2158:
bl zftl_flash_exit_slc_mode
-.L2185:
+.L2159:
ubfiz x4, x20, 8, 8
mov w0, 128
add x19, x19, x4
@@ -13139,16 +12990,16 @@ flash_prog_page:
mov w0, w20
and w19, w21, 4
bl nandc_de_cs
- tbz x21, 2, .L2186
+ tbz x21, 2, .L2160
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2186
- adrp x0, .LC163
+ tbz x0, 12, .L2160
+ adrp x0, .LC162
mov w1, w23
- add x0, x0, :lo12:.LC163
+ add x0, x0, :lo12:.LC162
mov w2, w19
bl printk
-.L2186:
+.L2160:
mov w0, w19
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -13169,13 +13020,13 @@ flash_test_blk:
uxtb w22, w0
uxth w20, w1
adrp x19, .LANCHOR4
- cbnz w22, .L2197
+ cbnz w22, .L2171
add x0, x19, :lo12:.LANCHOR4
ldrb w1, [x0,1266]
mov w0, w22
cmp w1, w20
- bhi .L2198
-.L2197:
+ bhi .L2172
+.L2171:
add x19, x19, :lo12:.LANCHOR4
mov w1, 165
mov w2, 32
@@ -13192,7 +13043,7 @@ flash_test_blk:
mov w1, w21
bl flash_erase_block
cmn w0, #1
- beq .L2203
+ beq .L2177
adrp x20, .LANCHOR2
ldr x2, [x19,1248]
add x20, x20, :lo12:.LANCHOR2
@@ -13203,7 +13054,7 @@ flash_test_blk:
ldrb w4, [x20,9]
bl flash_prog_page
cmn w0, #1
- beq .L2203
+ beq .L2177
ldrb w4, [x20,9]
mov w0, w22
ldr x2, [x19,1248]
@@ -13212,28 +13063,28 @@ flash_test_blk:
bl flash_read_page
cmn w0, #1
mov w20, w0
- beq .L2203
+ beq .L2177
ldr x0, [x19,1248]
ldr w1, [x0]
mov w0, 23130
bfi w0, w0, 16, 16
cmp w1, w0
- bne .L2203
+ bne .L2177
ldr x0, [x19,1256]
ldr w1, [x0]
mov w0, 42405
bfi w0, w0, 16, 16
cmp w1, w0
csinv w20, w20, wzr, eq
- b .L2200
-.L2203:
+ b .L2174
+.L2177:
mov w20, -1
-.L2200:
+.L2174:
mov w0, w22
mov w1, w21
bl flash_erase_block
mov w0, w20
-.L2198:
+.L2172:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
@@ -13295,28 +13146,28 @@ flash_start_tlc_page_prog:
mov x23, x6
cmp w0, w26
mov x19, x4
- bhi .L2213
+ bhi .L2187
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 648
- add x1, x1, 320
+ add x1, x1, 296
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2213:
+.L2187:
add x4, x19, :lo12:.LANCHOR0
add x26, x4, x26, sxtw
ldrb w26, [x26,736]
mov w0, w26
ldr x19, [x4,536]
bl nandc_cs
- cbz w25, .L2214
+ cbz w25, .L2188
sxtw x1, w26
add x1, x1, 8
add x1, x19, x1, lsl 8
str w25, [x1,8]
-.L2214:
+.L2188:
ubfiz x7, x26, 8, 8
mov w0, 128
add x19, x19, x7
@@ -13422,16 +13273,16 @@ sblk_tlc_prog_one_page:
mov x20, x0
ldr x0, [x0]
ldr w21, [x0,40]
-.L2220:
+.L2194:
mov w0, w21
mov w1, 1
bl queue_lun_state
mov w19, w0
- cbz w0, .L2222
+ cbz w0, .L2196
bl queue_wait_first_req_completed
bl queue_remove_completed_req
- b .L2220
-.L2222:
+ b .L2194
+.L2196:
mov x0, x20
bl queue_tlc_prog_cmd
ldr x21, [sp,32]
@@ -13454,17 +13305,17 @@ sblk_xlc_prog_pages:
ldr x0, [x0]
mov w24, w2
ldr w20, [x0,40]
-.L2224:
+.L2198:
mov w0, w20
mov w1, 1
bl queue_lun_state
- cbz w0, .L2228
+ cbz w0, .L2202
bl queue_wait_first_req_completed
bl queue_remove_completed_req
- b .L2224
-.L2228:
+ b .L2198
+.L2202:
cmp w24, 2
- bne .L2226
+ bne .L2200
ldr x6, [x19]
mov w1, 1
ldr x0, [x22]
@@ -13548,11 +13399,11 @@ sblk_xlc_prog_pages:
add x0, x0, :lo12:.LANCHOR0
add x0, x0, 2835
bl buf_add_tail
- b .L2227
-.L2226:
+ b .L2201
+.L2200:
mov x0, x19
bl queue_tlc_prog_cmd
-.L2227:
+.L2201:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -13581,50 +13432,50 @@ flash_start_page_prog:
and w20, w1, 2097151
ubfx x23, x1, 24, 2
cmp w0, w24
- bhi .L2230
+ bhi .L2204
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 699
- add x1, x1, 352
+ add x1, x1, 328
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2230:
+.L2204:
add x28, x22, :lo12:.LANCHOR0
add x0, x28, x24, sxtw
ldrb w21, [x0,736]
ldr x19, [x28,536]
bl nandc_rdy_status
- cbnz w0, .L2231
+ cbnz w0, .L2205
ldrb w0, [x28,633]
cmp w0, 1
- bne .L2232
+ bne .L2206
bl nandc_wait_flash_ready
- b .L2231
-.L2232:
+ b .L2205
+.L2206:
mov w0, w24
mov w1, w20
mov w2, 64
bl flash_wait_device_ready_raw
-.L2231:
+.L2205:
mov w0, w21
bl hynix_reconfig_rr_para
mov w0, w21
bl nandc_cs
- cbnz w23, .L2233
+ cbnz w23, .L2207
mov w0, w20
bl slc_phy_page_address_calc
mov w20, w0
ldrb w0, [x22,#:lo12:.LANCHOR0]
- cbz w0, .L2234
+ cbz w0, .L2208
mov w0, w21
bl zftl_flash_enter_slc_mode
- b .L2234
-.L2233:
+ b .L2208
+.L2207:
mov w0, w21
bl zftl_flash_exit_slc_mode
-.L2234:
+.L2208:
ubfiz x4, x21, 8, 8
mov w0, 128
add x19, x19, x4
@@ -13674,28 +13525,28 @@ queue_prog_cmd:
add x1, x0, :lo12:.LANCHOR0
ldrb w2, [x1,2835]
cmp w2, 255
- beq .L2239
+ beq .L2213
ubfx x4, x4, 21, 3
add x1, x1, 784
-.L2241:
+.L2215:
add x3, x1, x2, lsl 6
ldr w5, [x3,40]
ubfx x5, x5, 21, 3
cmp w4, w5
- bne .L2240
+ bne .L2214
ldrb w5, [x3,58]
add x3, x3, 48
cmp w5, 6
- bne .L2240
+ bne .L2214
mov w1, 3
strb w1, [x3,10]
- b .L2239
-.L2240:
+ b .L2213
+.L2214:
lsl x2, x2, 6
ldrb w2, [x1,x2]
cmp w2, 255
- bne .L2241
-.L2239:
+ bne .L2215
+.L2213:
mov w1, 3
strb w1, [x19,58]
mov w1, 1
@@ -13724,63 +13575,63 @@ sblk_prog_page:
mov x19, x0
uxtb w20, w1
ldrh w0, [x0,50]
- cbz w0, .L2247
+ cbz w0, .L2221
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2247
- adrp x0, .LC164
+ tbz x0, 8, .L2221
+ adrp x0, .LC163
ldr w1, [x19,40]
- add x0, x0, :lo12:.LC164
+ add x0, x0, :lo12:.LC163
mov w2, w20
bl printk
-.L2247:
+.L2221:
adrp x24, .LANCHOR0
adrp x25, .LC0
add x23, x24, :lo12:.LANCHOR0
mov w21, 0
add x27, x23, 784
add x25, x25, :lo12:.LC0
-.L2248:
- cbz w20, .L2278
+.L2222:
+ cbz w20, .L2252
ldrb w26, [x19]
ldr w22, [x19,40]
-.L2249:
+.L2223:
mov w0, w22
mov w1, 1
bl queue_lun_state
- cbz w0, .L2279
+ cbz w0, .L2253
bl queue_wait_first_req_completed
bl queue_remove_completed_req
- b .L2249
-.L2279:
+ b .L2223
+.L2253:
cmp w20, 1
- beq .L2251
+ beq .L2225
add x0, x24, :lo12:.LANCHOR0
ldrb w0, [x0,781]
- cbnz w0, .L2252
-.L2251:
+ cbnz w0, .L2226
+.L2225:
mov x0, x19
bl queue_prog_cmd
- b .L2253
-.L2252:
+ b .L2227
+.L2226:
ldrb w0, [x19]
ubfx x28, x22, 21, 3
cmp w0, 255
- bne .L2254
+ bne .L2228
adrp x1, .LANCHOR3
mov w2, 546
add x1, x1, :lo12:.LANCHOR3
mov x0, x25
- add x1, x1, 376
+ add x1, x1, 352
bl printk
bl dump_stack
-.L2254:
+.L2228:
ldrb w0, [x19]
add x0, x27, x0, lsl 6
ldr w4, [x0,40]
ubfx x0, x4, 21, 3
cmp w28, w0
- bne .L2255
+ bne .L2229
ldrh w3, [x23,3340]
mov w1, 21
ldrb w6, [x23,3338]
@@ -13801,13 +13652,13 @@ sblk_prog_page:
and w0, w1, w5
cmp w0, w3
uxth w2, w2
- beq .L2255
+ beq .L2229
and w22, w2, w22
and w2, w2, w4
cmp w22, w2
- bne .L2255
+ bne .L2229
cmp w21, w6
- beq .L2255
+ beq .L2229
ldr w1, [x19,40]
mov w0, 17
ldr x2, [x19,8]
@@ -13822,20 +13673,20 @@ sblk_prog_page:
strb w0, [x19]
add x0, x23, 2835
bl buf_add_tail
- b .L2253
-.L2255:
+ b .L2227
+.L2229:
mov x0, x19
mov w21, 0
bl queue_prog_cmd
-.L2253:
+.L2227:
subs w20, w20, #1
- beq .L2278
+ beq .L2252
add x19, x24, :lo12:.LANCHOR0
sbfiz x26, x26, 6, 32
add x19, x19, 784
add x19, x19, x26
- b .L2248
-.L2278:
+ b .L2222
+.L2252:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -13857,13 +13708,13 @@ ftl_flush:
mov x19, x2
adrp x20, .LANCHOR4
ldrb w1, [x0,2857]
- cbz w1, .L2281
+ cbz w1, .L2255
add x2, x20, :lo12:.LANCHOR4
add x0, x0, 784
ldrb w2, [x2,1267]
add x0, x0, x2, lsl 6
bl sblk_prog_page
-.L2281:
+.L2255:
add x2, x19, :lo12:.LANCHOR0
add x20, x20, :lo12:.LANCHOR4
mov w0, -1
@@ -13885,15 +13736,15 @@ zftl_cache_flush:
stp x29, x30, [sp, -16]!
add x29, sp, 0
ldrb w0, [x0,#:lo12:.LANCHOR0+2857]
- cbz w0, .L2285
+ cbz w0, .L2259
bl timer_get_time
adrp x1, .LANCHOR4+1268
ldr w1, [x1,#:lo12:.LANCHOR4+1268]
add w1, w1, 100
cmp w0, w1
- bls .L2285
+ bls .L2259
bl ftl_flush
-.L2285:
+.L2259:
ldp x29, x30, [sp], 16
ret
.size zftl_cache_flush, .-zftl_cache_flush
@@ -13920,50 +13771,50 @@ flash_prog_page_en:
cmp w0, w21
ubfx x28, x20, 24, 2
mov x19, x6
- bhi .L2290
+ bhi .L2264
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 473
- add x1, x1, 392
+ add x1, x1, 368
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2290:
+.L2264:
add x0, x19, :lo12:.LANCHOR0
mov w26, w20
add x1, x0, x21, sxtw
ldrb w27, [x1,736]
- cbnz w28, .L2291
+ cbnz w28, .L2265
adrp x1, .LANCHOR0
ldrb w1, [x1,#:lo12:.LANCHOR0]
- cbz w1, .L2292
+ cbz w1, .L2266
ldrb w0, [x0,1]
- cbz w0, .L2291
-.L2292:
+ cbz w0, .L2265
+.L2266:
add x6, x19, :lo12:.LANCHOR0
ldrh w26, [x6,2]
ldrb w1, [x6,1]
udiv w2, w20, w26
mul w26, w2, w26
sub w0, w20, w26
- cbz w1, .L2293
+ cbz w1, .L2267
add w26, w26, w0, lsl 1
- b .L2291
-.L2293:
+ b .L2265
+.L2267:
add x6, x6, 4
ldrh w0, [x6,w0,uxtw 1]
add w26, w0, w26
-.L2291:
+.L2265:
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 4, .L2294
- adrp x0, .LC165
+ tbz x0, 4, .L2268
+ adrp x0, .LC164
mov w1, w27
- add x0, x0, :lo12:.LC165
+ add x0, x0, :lo12:.LC164
mov w2, w20
bl printk
-.L2294:
+.L2268:
mov w1, w26
mov w0, w27
mov x2, x23
@@ -13971,7 +13822,7 @@ flash_prog_page_en:
mov w4, w24
bl flash_prog_page
mov w26, w0
- cbz w25, .L2295
+ cbz w25, .L2269
adrp x19, .LANCHOR4
mov w0, w21
add x25, x19, :lo12:.LANCHOR4
@@ -13981,53 +13832,53 @@ flash_prog_page_en:
ldr x3, [x25,1256]
bl flash_read_page_en
cmp w0, 512
- beq .L2296
+ beq .L2270
cmn w0, #1
- beq .L2296
+ beq .L2270
ldr x0, [x25,1248]
ldr w1, [x23]
ldr w0, [x0]
cmp w1, w0
- bne .L2296
+ bne .L2270
ldr x0, [x25,1256]
ldr w1, [x22]
ldr w0, [x0]
cmp w1, w0
- beq .L2295
-.L2296:
+ beq .L2269
+.L2270:
add x19, x19, :lo12:.LANCHOR4
mov w2, 4
- adrp x0, .LC166
+ adrp x0, .LC165
mov w3, w2
- add x0, x0, :lo12:.LC166
+ add x0, x0, :lo12:.LC165
ldr x1, [x19,1256]
bl rknand_print_hex
mov w2, 4
- adrp x0, .LC167
+ adrp x0, .LC166
ldr x1, [x19,1248]
- add x0, x0, :lo12:.LC167
+ add x0, x0, :lo12:.LC166
mov w3, w2
bl rknand_print_hex
- b .L2297
-.L2295:
+ b .L2271
+.L2269:
cmn w26, #1
mov w0, w26
- bne .L2298
-.L2297:
- adrp x0, .LC168
+ bne .L2272
+.L2271:
+ adrp x0, .LC167
mov w1, w20
- add x0, x0, :lo12:.LC168
+ add x0, x0, :lo12:.LC167
bl printk
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 499
- add x1, x1, 392
+ add x1, x1, 368
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
mov w0, -1
-.L2298:
+.L2272:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -14058,20 +13909,20 @@ ftl_prog_page:
bl flash_prog_page_en
cmn w0, #1
mov w19, w0
- bne .L2312
+ bne .L2286
adrp x2, .LANCHOR3
adrp x0, .LC0
add x1, x2, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC0
- add x1, x1, 416
+ add x1, x1, 392
mov w2, 2151
bl printk
bl dump_stack
- adrp x0, .LC168
+ adrp x0, .LC167
mov w1, w20
- add x0, x0, :lo12:.LC168
+ add x0, x0, :lo12:.LC167
bl printk
-.L2312:
+.L2286:
mov w0, w19
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 64
@@ -14096,15 +13947,15 @@ ftl_info_flush:
adrp x23, .LANCHOR3
add x19, x22, :lo12:.LANCHOR4
ldrb w2, [x0,2832]
- adrp x24, .LC169
+ adrp x24, .LC168
add x23, x23, :lo12:.LANCHOR3
add x0, x19, 1280
lsl w2, w2, 1
mov w25, 0
- add x24, x24, :lo12:.LC169
- add x23, x23, 432
+ add x24, x24, :lo12:.LC168
+ add x23, x23, 408
bl ftl_memset
-.L2314:
+.L2288:
add x0, x21, :lo12:.LANCHOR0
ldrb w27, [x19,1536]
ldrh w20, [x19,1538]
@@ -14119,29 +13970,29 @@ ftl_info_flush:
str w0, [x19,1284]
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2315
+ tbz x0, 12, .L2289
ldr w3, [x3,4]
mov x0, x24
mov w1, w27
mov w2, w20
bl printk
-.L2315:
+.L2289:
add x1, x21, :lo12:.LANCHOR0
ldrh w0, [x19,1538]
ldrh w1, [x1,3300]
cmp w1, w0
- bhi .L2316
+ bhi .L2290
adrp x20, .LC0
add x20, x20, :lo12:.LC0
-.L2321:
+.L2295:
ldrb w1, [x19,1537]
add w1, w1, 1
uxtb w1, w1
strb w1, [x19,1537]
cmp w1, 7
- bls .L2317
+ bls .L2291
mov x1, 0
-.L2320:
+.L2294:
add x0, x21, :lo12:.LANCHOR0
uxth w25, w1
ldr x2, [x0,728]
@@ -14151,24 +14002,24 @@ ftl_info_flush:
add w0, w2, 127
uxtb w0, w0
cmp w0, 125
- bhi .L2318
+ bhi .L2292
mov x1, x23
mov w2, 742
mov x0, x20
bl printk
bl dump_stack
- b .L2319
-.L2318:
+ b .L2293
+.L2292:
cmp w2, 255
- bne .L2319
+ bne .L2293
add x1, x1, 1
cmp x1, 8
- bne .L2320
+ bne .L2294
mov w25, w1
-.L2319:
+.L2293:
strb w25, [x19,1537]
mov w25, 1
-.L2317:
+.L2291:
add x27, x21, :lo12:.LANCHOR0
ldrb w1, [x19,1537]
ldr x0, [x27,728]
@@ -14176,7 +14027,7 @@ ftl_info_flush:
ldrb w2, [x1,40]
strb w2, [x19,1536]
cmp w2, 255
- beq .L2321
+ beq .L2295
ldrh w20, [x27,3350]
mov w0, 0
mul w20, w2, w20
@@ -14191,13 +14042,13 @@ ftl_info_flush:
bl ftl_prog_page
mov w0, 1
strh w0, [x19,1538]
- b .L2322
-.L2316:
+ b .L2296
+.L2290:
madd w20, w27, w28, w20
- cbnz w0, .L2322
+ cbnz w0, .L2296
mov w1, w20
bl flash_erase_block
-.L2322:
+.L2296:
add x4, x21, :lo12:.LANCHOR0
mov w1, w20
mov w0, 0
@@ -14210,41 +14061,41 @@ ftl_info_flush:
adrp x0, .LANCHOR5
add w1, w1, 1
strh w1, [x19,1538]
- beq .L2323
+ beq .L2297
add x1, x0, :lo12:.LANCHOR5
ldrb w1, [x1,576]
- cbz w1, .L2324
-.L2323:
+ cbz w1, .L2298
+.L2297:
add x0, x0, :lo12:.LANCHOR5
strb wzr, [x0,576]
- b .L2314
-.L2324:
- cbnz w25, .L2325
-.L2333:
+ b .L2288
+.L2298:
+ cbnz w25, .L2299
+.L2307:
add x22, x22, :lo12:.LANCHOR4
ldrb w0, [x22,1536]
cmp w0, 255
- bne .L2327
+ bne .L2301
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 778
- add x1, x1, 432
+ add x1, x1, 408
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
- b .L2327
-.L2325:
+ b .L2301
+.L2299:
ldrb w19, [x19,1537]
adrp x20, .LANCHOR3
adrp x23, .LC0
add x20, x20, :lo12:.LANCHOR3
add w19, w19, 1
add x23, x23, :lo12:.LC0
- add x20, x20, 432
-.L2328:
+ add x20, x20, 408
+.L2302:
cmp w19, 7
- bhi .L2333
+ bhi .L2307
add x0, x21, :lo12:.LANCHOR0
ldr x1, [x0,728]
add w0, w19, 8
@@ -14253,27 +14104,27 @@ ftl_info_flush:
add w0, w24, 127
uxtb w0, w0
cmp w0, 125
- bhi .L2329
+ bhi .L2303
mov x1, x20
mov w2, 771
mov x0, x23
bl printk
bl dump_stack
- b .L2330
-.L2329:
+ b .L2304
+.L2303:
cmp w24, 255
- beq .L2331
-.L2330:
+ beq .L2305
+.L2304:
add x0, x21, :lo12:.LANCHOR0
ldrh w1, [x0,3350]
mov w0, 0
mul w1, w24, w1
bl flash_erase_block
-.L2331:
+.L2305:
add w19, w19, 1
uxth w19, w19
- b .L2328
-.L2327:
+ b .L2302
+.L2301:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -14312,10 +14163,10 @@ ftl_info_blk_init:
str x1, [x23,2864]
mov w1, 0
str x24, [x23,584]
- adrp x26, .LC170
+ adrp x26, .LC169
adrp x27, .LANCHOR2
bl ftl_memset
- add x26, x26, :lo12:.LC170
+ add x26, x26, :lo12:.LC169
add x0, x20, 640
mov w1, 0
mov w2, 16384
@@ -14327,7 +14178,7 @@ ftl_info_blk_init:
strh wzr, [x22,1538]
ldrb w0, [x0,40]
strb w0, [x22,1536]
-.L2351:
+.L2325:
add x5, x19, :lo12:.LANCHOR0
add w0, w20, 8
sxth w25, w20
@@ -14335,7 +14186,7 @@ ftl_info_blk_init:
add x0, x1, x0, sxtw
ldrb w1, [x0,32]
cmp w1, 255
- beq .L2347
+ beq .L2321
ldrh w22, [x5,3350]
mov w0, 0
ldrb w4, [x5,2832]
@@ -14348,7 +14199,7 @@ ftl_info_blk_init:
cmn w0, #1
mov w28, w0
ldr x5, [x29,104]
- bne .L2348
+ bne .L2322
ldrb w4, [x5,2832]
mov w0, 0
add w1, w22, 1
@@ -14356,9 +14207,9 @@ ftl_info_blk_init:
mov x3, x23
bl ftl_read_page
mov w28, w0
-.L2348:
+.L2322:
ldr w0, [x27,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2349
+ tbz x0, 12, .L2323
add x0, x19, :lo12:.LANCHOR0
mov w1, w20
mov w2, w28
@@ -14367,39 +14218,39 @@ ftl_info_blk_init:
mov x0, x26
ldr w4, [x4]
bl printk
-.L2349:
+.L2323:
cmn w28, #1
- beq .L2347
+ beq .L2321
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,2864]
ldr w1, [x0]
mov w0, 21574
movk w0, 0x494c, lsl 16
cmp w1, w0
- beq .L2359
-.L2347:
+ beq .L2333
+.L2321:
sub w20, w20, #1
cmn w20, #1
- bne .L2351
+ bne .L2325
mov w25, 0
- b .L2350
-.L2359:
+ b .L2324
+.L2333:
mov w20, w25
-.L2350:
+.L2324:
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2352
+ tbz x0, 12, .L2326
add x0, x19, :lo12:.LANCHOR0
mov w1, w20
mov w2, 4800
ldr x3, [x0,2864]
- adrp x0, .LC171
- add x0, x0, :lo12:.LC171
+ adrp x0, .LC170
+ add x0, x0, :lo12:.LC170
ldr w3, [x3]
bl printk
-.L2352:
+.L2326:
cmn w20, #1
- bne .L2353
+ bne .L2327
add x0, x21, :lo12:.LANCHOR4
mov w1, 0
add x19, x19, :lo12:.LANCHOR0
@@ -14410,13 +14261,13 @@ ftl_info_blk_init:
mov w0, 21574
movk w0, 0x494c, lsl 16
str w0, [x1]
- mov w0, 8
+ mov w0, 9
movk w0, 0x6, lsl 16
ldr x1, [x19,2864]
str w0, [x1,12]
mov w0, w20
- b .L2354
-.L2353:
+ b .L2328
+.L2327:
add x26, x19, :lo12:.LANCHOR0
add x23, x21, :lo12:.LANCHOR4
add w0, w25, 8
@@ -14438,8 +14289,8 @@ ftl_info_blk_init:
ldrb w0, [x23,1536]
ldrh w23, [x26,3350]
mul w23, w0, w23
-.L2355:
- tbnz w22, #31, .L2358
+.L2329:
+ tbnz w22, #31, .L2332
add x26, x19, :lo12:.LANCHOR0
mov w0, 0
add w1, w22, w23
@@ -14448,14 +14299,14 @@ ftl_info_blk_init:
ldrb w4, [x26,2832]
bl ftl_read_page
cmn w0, #1
- beq .L2356
+ beq .L2330
ldr x0, [x26,2864]
ldr w1, [x0]
mov w0, 21574
movk w0, 0x494c, lsl 16
cmp w1, w0
- bne .L2356
-.L2358:
+ bne .L2330
+.L2332:
add x21, x21, :lo12:.LANCHOR4
add x19, x19, :lo12:.LANCHOR0
strh w20, [x21,1538]
@@ -14469,12 +14320,12 @@ ftl_info_blk_init:
mov w0, 0
bl ftl_info_flush
mov w0, 0
- b .L2354
-.L2356:
+ b .L2328
+.L2330:
sub w22, w22, #1
sxth w22, w22
- b .L2355
-.L2354:
+ b .L2329
+.L2328:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -14501,30 +14352,30 @@ ftl_ext_info_flush:
ldr x1, [x1,608]
ldr w3, [x1,520]
cmp w0, w3
- bls .L2377
+ bls .L2351
ldr w2, [x1,12]
sub w2, w2, w3
add w2, w2, w0
str w2, [x1,12]
- b .L2390
-.L2377:
- bcs .L2378
-.L2390:
+ b .L2364
+.L2351:
+ bcs .L2352
+.L2364:
str w0, [x1,520]
-.L2378:
+.L2352:
adrp x23, .LANCHOR3
adrp x19, .LANCHOR4
add x23, x23, :lo12:.LANCHOR3
add x19, x19, :lo12:.LANCHOR4
mov w0, 0
- add x23, x23, 448
+ add x23, x23, 424
add x19, x19, 1280
bl ftl_total_vpn_update
-.L2379:
+.L2353:
adrp x24, .LANCHOR5
add x24, x24, :lo12:.LANCHOR5
add x25, x24, 640
-.L2382:
+.L2356:
add x2, x22, :lo12:.LANCHOR0
ldr x0, [x2,2864]
ldr w1, [x0,56]
@@ -14533,22 +14384,22 @@ ftl_ext_info_flush:
ldrh w1, [x0,140]
ldrh w0, [x2,3300]
cmp w1, w0
- bcc .L2380
+ bcc .L2354
bl ftl_ext_alloc_new_blk
-.L2380:
+.L2354:
add x0, x22, :lo12:.LANCHOR0
ldr x0, [x0,2864]
ldrh w1, [x0,130]
mov w0, 65535
cmp w1, w0
- bne .L2381
+ bne .L2355
adrp x0, .LC0
mov x1, x23
mov w2, 1747
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2381:
+.L2355:
add x21, x22, :lo12:.LANCHOR0
mov w0, 21
mov w1, 1
@@ -14585,17 +14436,17 @@ ftl_ext_info_flush:
uxth w1, w1
strh w1, [x2,140]
cmp w1, 1
- beq .L2382
+ beq .L2356
cmn w0, #1
- beq .L2383
+ beq .L2357
ldrb w0, [x24,578]
- cbz w0, .L2384
-.L2383:
+ cbz w0, .L2358
+.L2357:
adrp x0, .LANCHOR5
add x0, x0, :lo12:.LANCHOR5
strb wzr, [x0,578]
- b .L2379
-.L2384:
+ b .L2353
+.L2358:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -14642,26 +14493,26 @@ ftl_ext_info_init:
adrp x0, .LANCHOR2
mov w23, w24
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2392
+ tbz x0, 12, .L2366
ldr x5, [x26,2864]
adrp x1, .LANCHOR3
- adrp x0, .LC172
+ adrp x0, .LC171
add x1, x1, :lo12:.LANCHOR3
- add x0, x0, :lo12:.LC172
- add x1, x1, 472
+ add x0, x0, :lo12:.LC171
+ add x1, x1, 448
ldrh w5, [x5,130]
mov w2, 1791
mov w3, w24
uxth w4, w27
bl printk
-.L2392:
+.L2366:
add x20, x20, :lo12:.LANCHOR5
add x21, x21, :lo12:.LANCHOR4
mov w26, w24
add x20, x20, 640
add x21, x21, 1280
-.L2393:
- tbnz w26, #31, .L2398
+.L2367:
+ tbnz w26, #31, .L2372
add x27, x19, :lo12:.LANCHOR0
mov w0, w25
mov x2, x20
@@ -14671,31 +14522,31 @@ ftl_ext_info_init:
madd w1, w22, w1, w26
bl flash_read_page_en
cmp w0, 512
- beq .L2394
+ beq .L2368
cmn w0, #1
- beq .L2394
+ beq .L2368
ldr x0, [x27,608]
ldr w1, [x0]
mov w0, 20038
movk w0, 0x4549, lsl 16
cmp w1, w0
- bne .L2394
-.L2398:
+ bne .L2368
+.L2372:
bl zftl_sblk_list_init
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,2864]
ldrh w1, [x0,140]
cmp w1, w24
- bgt .L2396
+ bgt .L2370
add w23, w23, 1
strh w23, [x0,140]
bl ftl_ext_info_flush
- b .L2396
-.L2394:
+ b .L2370
+.L2368:
sub w26, w26, #1
sxth w26, w26
- b .L2393
-.L2396:
+ b .L2367
+.L2370:
add x19, x19, :lo12:.LANCHOR0
ldr x20, [x19,608]
bl timer_get_time
@@ -14756,13 +14607,13 @@ ftl_write_last_log_page:
ldrh w24, [x0,12]
cmp w1, 1
ldr x22, [x19,3872]
- bne .L2410
+ bne .L2384
mov x20, x0
bl ftl_get_new_free_page
cmn w0, #1
mov w23, w0
mov w21, 0
- beq .L2410
+ beq .L2384
ldrh w0, [x20]
add x22, x22, x24, uxth 2
bl ftl_vpn_decrement
@@ -14787,7 +14638,7 @@ ftl_write_last_log_page:
str w21, [x2,8]
str w21, [x2,12]
bl ftl_prog_ppa_page
-.L2410:
+.L2384:
mov w0, w21
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -14810,34 +14661,34 @@ ftl_open_sblk_recovery:
stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
mov x27, x1
- tbz x0, 12, .L2415
- adrp x0, .LC173
+ tbz x0, 12, .L2389
+ adrp x0, .LC172
ldrh w1, [x19,2]
- add x0, x0, :lo12:.LC173
+ add x0, x0, :lo12:.LC172
bl printk
-.L2415:
+.L2389:
ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2416
- adrp x0, .LC174
+ tbz x0, 12, .L2390
+ adrp x0, .LC173
ldrb w1, [x19,5]
- add x0, x0, :lo12:.LC174
+ add x0, x0, :lo12:.LC173
bl printk
-.L2416:
+.L2390:
ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2417
- adrp x0, .LC175
+ tbz x0, 12, .L2391
+ adrp x0, .LC174
ldrh w1, [x19]
- add x0, x0, :lo12:.LC175
+ add x0, x0, :lo12:.LC174
bl printk
-.L2417:
+.L2391:
ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2418
- adrp x0, .LC176
+ tbz x0, 12, .L2392
+ adrp x0, .LC175
ldrh w1, [x19,16]
ldrh w2, [x19,18]
- add x0, x0, :lo12:.LC176
+ add x0, x0, :lo12:.LC175
bl printk
-.L2418:
+.L2392:
ldrh w0, [x19,10]
adrp x21, .LANCHOR0
strh w0, [x19,14]
@@ -14845,7 +14696,7 @@ ftl_open_sblk_recovery:
ldrh w1, [x19]
ldrh w0, [x0,576]
cmp w1, w0
- bcs .L2414
+ bcs .L2388
mov w0, 1
adrp x25, .LANCHOR4
adrp x26, .LANCHOR3
@@ -14855,25 +14706,25 @@ ftl_open_sblk_recovery:
ldrb w22, [x19,5]
mov x20, x0
ldrh w23, [x19,2]
- add x0, x26, 496
+ add x0, x26, 472
mov w28, 0
add x25, x25, 1280
str x0, [x29,120]
-.L2421:
+.L2395:
add x0, x21, :lo12:.LANCHOR0
ldrh w0, [x0,3300]
cmp w0, w23
- bls .L2424
+ bls .L2398
ldrb w22, [x19,5]
-.L2422:
+.L2396:
ldrb w0, [x19,9]
cmp w0, w22
- bls .L2498
+ bls .L2472
add x0, x19, x22, sxtw 1
ldrh w0, [x0,16]
mov w1, 65535
cmp w0, w1
- beq .L2423
+ beq .L2397
add x3, x21, :lo12:.LANCHOR0
ldr x2, [x20,24]
ldrh w1, [x3,3350]
@@ -14883,21 +14734,21 @@ ftl_open_sblk_recovery:
bl ftl_read_ppa_page
cmp w0, 512
mov w26, w0
- beq .L2424
+ beq .L2398
cmn w0, #1
- beq .L2425
+ beq .L2399
ldr x0, [x20,24]
ldr w1, [x0]
cmn w1, #1
- bne .L2425
+ bne .L2399
ldr w0, [x0,4]
cmn w0, #1
- bne .L2425
+ bne .L2399
ldr x0, [x20,8]
ldr w0, [x0]
cmn w0, #1
- beq .L2424
-.L2425:
+ beq .L2398
+.L2399:
adrp x0, .LANCHOR5+577
mov w1, 1
strb w1, [x0,#:lo12:.LANCHOR5+577]
@@ -14905,14 +14756,14 @@ ftl_open_sblk_recovery:
ldrh w1, [x19,10]
madd w0, w23, w0, w22
cmp w1, w0
- beq .L2426
+ beq .L2400
adrp x0, .LC0
ldr x1, [x29,120]
mov w2, 1396
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2426:
+.L2400:
ldrh w0, [x19,10]
ldrh w1, [x19,6]
ldrb w2, [x19,9]
@@ -14921,28 +14772,28 @@ ftl_open_sblk_recovery:
ldrh w0, [x0,3300]
mul w0, w0, w2
cmp w1, w0
- beq .L2427
+ beq .L2401
adrp x0, .LC0
ldr x1, [x29,120]
mov w2, 1397
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2427:
+.L2401:
cmn w26, #1
- beq .L2431
+ beq .L2405
ldr x0, [x20,24]
ldr w0, [x0,4]
cmn w0, #1
- beq .L2431
+ beq .L2405
bl lpa_hash_get_ppa
- cbz x27, .L2429
+ cbz x27, .L2403
ldr x2, [x20,24]
ldr w3, [x2,8]
cmp w0, w3
- beq .L2429
+ beq .L2403
cmn w0, #1
- beq .L2429
+ beq .L2403
add x4, x21, :lo12:.LANCHOR0
mov w5, 21
mov w28, 1
@@ -14956,7 +14807,7 @@ ftl_open_sblk_recovery:
udiv w3, w3, w1
ldrh w1, [x27]
cmp w1, w3, uxth
- bne .L2429
+ bne .L2403
ldr w6, [x2]
mov x2, x25
ldrb w3, [x4,2832]
@@ -14970,11 +14821,11 @@ ftl_open_sblk_recovery:
ldr x4, [x29,112]
cmp w0, w6
ldr x5, [x29,96]
- bcc .L2429
+ bcc .L2403
ldr x0, [x20,24]
ldr w1, [x0,8]
cmn w1, #1
- beq .L2431
+ beq .L2405
ldrh w0, [x4,3340]
sub w5, w5, w0
lsr w1, w1, w0
@@ -14984,22 +14835,22 @@ ftl_open_sblk_recovery:
and w1, w28, w1
udiv w0, w1, w0
bl ftl_vpn_decrement
- b .L2431
-.L2429:
+ b .L2405
+.L2403:
ldr x2, [x20,24]
add x1, x21, :lo12:.LANCHOR0
ldr w3, [x2,4]
ldr w0, [x1,2840]
cmp w3, w0
- bcs .L2431
+ bcs .L2405
ldrb w0, [x19,9]
ldrh w4, [x1,3300]
ldrh w3, [x19,10]
mul w0, w0, w4
sub w0, w0, #1
cmp w3, w0
- blt .L2499
-.L2431:
+ blt .L2473
+.L2405:
ldrh w0, [x19,6]
mov w28, 1
sub w0, w0, #1
@@ -15007,16 +14858,16 @@ ftl_open_sblk_recovery:
ldrh w0, [x19,10]
add w0, w0, 1
strh w0, [x19,10]
-.L2423:
+.L2397:
add w22, w22, 1
uxth w22, w22
- b .L2422
-.L2498:
+ b .L2396
+.L2472:
add w23, w23, 1
strb wzr, [x19,5]
uxth w23, w23
- b .L2421
-.L2424:
+ b .L2395
+.L2398:
add x2, x21, :lo12:.LANCHOR0
ldrh w0, [x19,10]
ldrh w1, [x19,6]
@@ -15027,35 +14878,35 @@ ftl_open_sblk_recovery:
strb w22, [x19,5]
mul w0, w0, w2
cmp w1, w0
- beq .L2435
+ beq .L2409
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 1473
- add x1, x1, 496
+ add x1, x1, 472
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2435:
+.L2409:
add x0, x21, :lo12:.LANCHOR0
ldrh w3, [x19,10]
ldr x4, [x0,3872]
mov w0, 0
mov w2, w0
-.L2436:
+.L2410:
cmp w2, w3
- bcs .L2500
+ bcs .L2474
ldrh w1, [x19,12]
add w1, w2, w1
ldr w1, [x4,x1,lsl 2]
cmn w1, #1
- beq .L2437
+ beq .L2411
add w1, w0, 1
uxth w0, w1
-.L2437:
+.L2411:
add w2, w2, 1
- b .L2436
-.L2500:
+ b .L2410
+.L2474:
add x2, x21, :lo12:.LANCHOR0
ldrb w1, [x19,9]
sub w0, w0, w3
@@ -15063,44 +14914,44 @@ ftl_open_sblk_recovery:
madd w0, w1, w22, w0
uxth w22, w0
ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2439
+ tbz x0, 12, .L2413
ldrh w1, [x19]
- adrp x0, .LC177
+ adrp x0, .LC176
ldr x4, [x2,600]
- add x0, x0, :lo12:.LC177
+ add x0, x0, :lo12:.LC176
ubfiz x3, x1, 1, 16
mov w2, w22
ldrh w3, [x4,x3]
bl printk
-.L2439:
+.L2413:
add x0, x21, :lo12:.LANCHOR0
ldrh w1, [x19]
- adrp x23, .LC178
+ adrp x23, .LC177
mov w25, -1
- add x23, x23, :lo12:.LC178
+ add x23, x23, :lo12:.LC177
ldr x0, [x0,600]
strh w22, [x0,x1,lsl 1]
mov x0, x20
mov w22, 0
bl buf_free
-.L2440:
+.L2414:
add x2, x21, :lo12:.LANCHOR0
ldrb w0, [x2,3276]
cmp w22, w0, lsl 1
- bcs .L2501
- cbz w28, .L2441
+ bcs .L2475
+ cbz w28, .L2415
ldrh w0, [x19,6]
cmp w0, 1
- bls .L2441
+ bls .L2415
mov x0, x19
bl ftl_get_new_free_page
mov w26, w0
ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2442
+ tbz x0, 12, .L2416
mov x0, x23
mov w1, w26
bl printk
-.L2442:
+.L2416:
add x3, x21, :lo12:.LANCHOR0
ldr x0, [x20,24]
ldr x1, [x3,2864]
@@ -15121,10 +14972,10 @@ ftl_open_sblk_recovery:
bl ftl_prog_ppa_page
ldrh w0, [x19]
bl ftl_vpn_decrement
-.L2441:
+.L2415:
add w22, w22, 1
- b .L2440
-.L2501:
+ b .L2414
+.L2475:
ldrh w1, [x2,3300]
ldrh w0, [x19,12]
ldrb w3, [x19,9]
@@ -15134,30 +14985,30 @@ ftl_open_sblk_recovery:
ldr x1, [x2,3872]
ldr w0, [x1,x0]
cmn w0, #1
- beq .L2444
+ beq .L2418
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 1503
- add x1, x1, 496
+ add x1, x1, 472
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2444:
+.L2418:
ldrh w0, [x19,6]
cmp w0, 1
- bne .L2414
+ bne .L2388
mov x0, x19
bl ftl_write_last_log_page
- b .L2414
-.L2499:
+ b .L2388
+.L2473:
ldr x0, [x1,2864]
ldr w2, [x2]
ldr w1, [x0,8]
cmp w2, w1
- bls .L2432
+ bls .L2406
str w2, [x0,8]
-.L2432:
+.L2406:
ldr x1, [x20,24]
ldrh w0, [x19,10]
ldrh w2, [x19,12]
@@ -15165,8 +15016,8 @@ ftl_open_sblk_recovery:
ldr w0, [x1,4]
ldr w1, [x1,8]
bl lpa_hash_update_ppa
- b .L2431
-.L2414:
+ b .L2405
+.L2388:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -15193,8 +15044,8 @@ pm_write_page:
mov x24, x1
adrp x25, .LANCHOR0
add x23, x23, :lo12:.LC0
- add x22, x22, 520
-.L2503:
+ add x22, x22, 496
+.L2477:
add x2, x25, :lo12:.LANCHOR0
adrp x19, .LANCHOR0
ldr x0, [x2,2864]
@@ -15204,28 +15055,28 @@ pm_write_page:
str w1, [x0,48]
ldrh w1, [x2,3300]
cmp w3, w1
- bcs .L2504
+ bcs .L2478
ldrh w1, [x0,692]
mov w0, 65535
cmp w1, w0
- bne .L2505
-.L2504:
+ bne .L2479
+.L2478:
bl pm_alloc_new_blk
mov w0, 0
bl ftl_info_flush
-.L2505:
+.L2479:
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,2864]
ldrh w1, [x0,692]
mov w0, 65535
cmp w1, w0
- bne .L2506
+ bne .L2480
mov x1, x22
mov w2, 230
mov x0, x23
bl printk
bl dump_stack
-.L2506:
+.L2480:
add x19, x19, :lo12:.LANCHOR0
adrp x20, .LANCHOR7
add x27, x20, :lo12:.LANCHOR7
@@ -15257,28 +15108,28 @@ pm_write_page:
uxth w2, w2
strh w2, [x1,696]
cmp w2, 1
- beq .L2507
+ beq .L2481
ldrb w2, [x27,-120]
- cbz w2, .L2508
-.L2507:
+ cbz w2, .L2482
+.L2481:
add x20, x20, :lo12:.LANCHOR7
strb wzr, [x20,-120]
- b .L2503
-.L2508:
+ b .L2477
+.L2482:
cmn w0, #1
- bne .L2510
- adrp x0, .LC179
+ bne .L2484
+ adrp x0, .LC178
mov w1, w26
- add x0, x0, :lo12:.LC179
+ add x0, x0, :lo12:.LC178
bl printk
- b .L2503
-.L2510:
+ b .L2477
+.L2484:
ldrh w0, [x1,698]
cmp w21, w0
- bcs .L2511
+ bcs .L2485
add x21, x1, x21, uxtw 2
str w26, [x21,704]
-.L2511:
+.L2485:
mov w0, 0
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -15301,31 +15152,31 @@ flash_info_flush:
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- tbz x0, 12, .L2516
+ tbz x0, 12, .L2490
adrp x2, .LANCHOR3
adrp x0, .LC127
add x2, x2, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC127
mov w1, 251
- add x2, x2, 536
+ add x2, x2, 512
bl printk
-.L2516:
+.L2490:
adrp x22, .LANCHOR4
adrp x23, .LANCHOR0
add x0, x22, :lo12:.LANCHOR4
mov w1, 0
mov w2, 64
add x19, x23, :lo12:.LANCHOR0
- adrp x24, .LC181
- adrp x25, .LC182
+ adrp x24, .LC180
+ adrp x25, .LC181
ldr x0, [x0,1232]
mov w26, 0
- add x24, x24, :lo12:.LC181
- add x25, x25, :lo12:.LC182
+ add x24, x24, :lo12:.LC180
+ add x25, x25, :lo12:.LC181
bl ftl_memset
ldr x1, [x19,728]
- adrp x0, .LC180
- add x0, x0, :lo12:.LC180
+ adrp x0, .LC179
+ add x0, x0, :lo12:.LC179
mov w2, 4
mov w3, 16
bl rknand_print_hex
@@ -15334,7 +15185,7 @@ flash_info_flush:
ldr w1, [x19,8]
bl js_hash
str w0, [x19,12]
-.L2517:
+.L2491:
add x21, x22, :lo12:.LANCHOR4
add x27, x23, :lo12:.LANCHOR0
mov x0, x24
@@ -15348,7 +15199,7 @@ flash_info_flush:
ldrh w0, [x21,1242]
sub w1, w1, #1
cmp w0, w1
- blt .L2518
+ blt .L2492
ldr x1, [x27,728]
ldrb w19, [x21,1241]
strh wzr, [x21,1242]
@@ -15369,14 +15220,14 @@ flash_info_flush:
ldrh w0, [x27,2]
mul w19, w19, w0
mov w0, 0
- b .L2526
-.L2518:
+ b .L2500
+.L2492:
madd w19, w20, w28, w19
- cbnz w0, .L2519
-.L2526:
+ cbnz w0, .L2493
+.L2500:
mov w1, w19
bl flash_erase_block
-.L2519:
+.L2493:
add x2, x23, :lo12:.LANCHOR0
add x20, x22, :lo12:.LANCHOR4
mov w4, 4
@@ -15398,16 +15249,16 @@ flash_info_flush:
ldrh w1, [x20,1242]
add w1, w1, 1
strh w1, [x20,1242]
- bne .L2520
+ bne .L2494
mov x0, x25
mov w1, w19
bl printk
- b .L2517
-.L2520:
- cbnz w26, .L2527
+ b .L2491
+.L2494:
+ cbnz w26, .L2501
mov w26, 1
- b .L2517
-.L2527:
+ b .L2491
+.L2501:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -15431,15 +15282,15 @@ nand_flash_init:
ldr w0, [x20,#:lo12:.LANCHOR2]
stp x25, x26, [sp,64]
str x27, [sp,80]
- tbz x0, 12, .L2529
+ tbz x0, 12, .L2503
adrp x2, .LANCHOR3
adrp x0, .LC127
add x2, x2, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC127
mov w1, 2209
- add x2, x2, 560
+ add x2, x2, 536
bl printk
-.L2529:
+.L2503:
mov x0, x19
adrp x19, .LANCHOR0
add x22, x19, :lo12:.LANCHOR0
@@ -15464,71 +15315,71 @@ nand_flash_init:
mov w2, 32
mov w27, 44
bl ftl_memset
-.L2535:
+.L2509:
mov w0, w23
mov x1, x24
bl flash_read_id
add x0, x22, 744
strb w26, [x23,x0]
- cbnz x23, .L2530
+ cbnz x23, .L2504
ldrb w0, [x25]
sub w0, w0, #1
uxtb w0, w0
cmp w0, 253
- bls .L2531
-.L2533:
+ bls .L2505
+.L2507:
mov w22, -2
- b .L2597
-.L2531:
+ b .L2571
+.L2505:
ldrb w0, [x25,1]
cmp w0, 255
- beq .L2533
-.L2530:
+ beq .L2507
+.L2504:
ldrb w0, [x24]
cmp w0, 181
- bne .L2534
+ bne .L2508
strb w27, [x24]
-.L2534:
+.L2508:
add x23, x23, 1
add x24, x24, 8
cmp x23, 4
- bne .L2535
+ bne .L2509
add x23, x20, :lo12:.LANCHOR2
add x24, x19, :lo12:.LANCHOR0
add x23, x23, 440
mov w22, 0
add x24, x24, 748
-.L2538:
+.L2512:
ldrb w2, [x23]
add x0, x23, 1
mov x1, x24
bl flash_mem_cmp8
- cbnz w0, .L2536
+ cbnz w0, .L2510
add x1, x20, :lo12:.LANCHOR2
ubfiz x22, x22, 5, 32
add x0, x1, 440
adds x22, x0, x22
- beq .L2533
+ beq .L2507
ldrb w3, [x22,22]
mov x0, 0
- b .L2540
-.L2536:
+ b .L2514
+.L2510:
add w22, w22, 1
add x23, x23, 32
cmp w22, 30
- bne .L2538
- b .L2533
-.L2540:
+ bne .L2512
+ b .L2507
+.L2514:
add x4, x1, x0, lsl 5
mov w2, w0
ldrb w4, [x4,1400]
cmp w4, w3
- beq .L2539
+ beq .L2513
add x0, x0, 1
cmp x0, 4
- bne .L2540
+ bne .L2514
mov w2, w0
-.L2539:
+.L2513:
add x23, x20, :lo12:.LANCHOR2
add x24, x19, :lo12:.LANCHOR0
add x1, x23, 1400
@@ -15544,30 +15395,30 @@ nand_flash_init:
bl ftl_memcpy
ldrb w0, [x24,516]
cmp w0, 8
- bhi .L2541
+ bhi .L2515
ldrb w1, [x23,20]
cmp w1, 60
- bls .L2542
+ bls .L2516
mov w1, 60
strb w1, [x23,20]
-.L2542:
+.L2516:
cmp w0, 8
- bne .L2541
+ bne .L2515
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,748]
cmp w0, 44
- beq .L2603
-.L2541:
+ beq .L2577
+.L2515:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2543
+ tbz x0, 12, .L2517
adrp x2, .LANCHOR3
adrp x0, .LC127
add x2, x2, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC127
mov w1, 2233
- add x2, x2, 560
+ add x2, x2, 536
bl printk
-.L2543:
+.L2517:
add x23, x21, :lo12:.LANCHOR4
mov w0, 16384
add x22, x19, :lo12:.LANCHOR0
@@ -15616,10 +15467,10 @@ nand_flash_init:
strb w2, [x22,3348]
strb w0, [x19,#:lo12:.LANCHOR0]
cmp w1, 9
- bne .L2544
+ bne .L2518
mov w1, 70
strb w1, [x22,632]
-.L2544:
+.L2518:
add x2, x20, :lo12:.LANCHOR2
add x1, x21, :lo12:.LANCHOR4
add x2, x2, 376
@@ -15628,26 +15479,26 @@ nand_flash_init:
ldrb w0, [x2,19]
ldrh w2, [x2,16]
strb w0, [x3,725]
- tbz x2, 6, .L2546
+ tbz x2, 6, .L2520
sub w2, w0, #17
uxtb w2, w2
cmp w2, 2
- bhi .L2547
+ bhi .L2521
adrp x2, micron_read_retrial
cmp w0, 19
add x2, x2, :lo12:micron_read_retrial
str x2, [x1,1224]
- bne .L2599
+ bne .L2573
mov w0, 15
- b .L2600
-.L2547:
+ b .L2574
+.L2521:
sub w2, w0, #65
uxtb w2, w2
cmp w2, 1
- bls .L2568
+ bls .L2542
cmp w0, 33
- bne .L2550
-.L2568:
+ bne .L2524
+.L2542:
add x0, x21, :lo12:.LANCHOR4
adrp x1, toshiba_read_retrial
add x1, x1, :lo12:toshiba_read_retrial
@@ -15657,8 +15508,8 @@ nand_flash_init:
strb w2, [x1,726]
mov w1, 7
strb w1, [x0,1216]
- b .L2546
-.L2550:
+ b .L2520
+.L2524:
sub w2, w0, #67
uxtb w2, w2
cmp w2, 1
@@ -15666,106 +15517,106 @@ nand_flash_init:
cset w3, ls
uxtb w2, w2
cmp w2, 1
- bls .L2569
- cbz w3, .L2552
-.L2569:
+ bls .L2543
+ cbz w3, .L2526
+.L2543:
add x2, x21, :lo12:.LANCHOR4
adrp x1, toshiba_read_retrial
add x1, x1, :lo12:toshiba_read_retrial
cmp w0, 35
str x1, [x2,1224]
- beq .L2554
+ beq .L2528
cmp w0, 68
- beq .L2554
+ beq .L2528
mov w0, 7
strb w0, [x2,1216]
- b .L2555
-.L2554:
+ b .L2529
+.L2528:
add x0, x21, :lo12:.LANCHOR4
mov w1, 17
strb w1, [x0,1216]
-.L2555:
+.L2529:
add x0, x19, :lo12:.LANCHOR0
mov w1, 4
- cbnz w3, .L2601
+ cbnz w3, .L2575
mov w1, 5
-.L2601:
+.L2575:
strb w1, [x0,726]
- b .L2546
-.L2552:
+ b .L2520
+.L2526:
sub w0, w0, #36
uxtb w0, w0
cmp w0, 1
- bhi .L2546
+ bhi .L2520
adrp x0, toshiba_3d_read_retrial
add x0, x0, :lo12:toshiba_3d_read_retrial
str x0, [x1,1224]
-.L2599:
+.L2573:
mov w0, 7
-.L2600:
+.L2574:
strb w0, [x1,1216]
-.L2546:
+.L2520:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2557
+ tbz x0, 12, .L2531
adrp x2, .LANCHOR3
adrp x0, .LC127
add x2, x2, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC127
mov w1, 2281
- add x2, x2, 560
+ add x2, x2, 536
bl printk
-.L2557:
+.L2531:
add x0, x19, :lo12:.LANCHOR0
strb wzr, [x0,672]
ldrb w0, [x0,780]
- tbz x0, 0, .L2558
+ tbz x0, 0, .L2532
mov w0, 4
bl nandc_set_if_mode
mov w0, 1
bl flash_set_interface_mode
mov w0, 1
- b .L2602
-.L2558:
+ b .L2576
+.L2532:
mov w0, 4
-.L2602:
+.L2576:
bl nandc_set_if_mode
bl flash_info_blk_init
cmn w0, #1
mov w22, w0
- bne .L2560
+ bne .L2534
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2561
+ tbz x0, 12, .L2535
adrp x2, .LANCHOR3
adrp x0, .LC127
add x2, x2, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC127
mov w1, 2301
- add x2, x2, 560
+ add x2, x2, 536
bl printk
-.L2561:
+.L2535:
add x19, x19, :lo12:.LANCHOR0
mov w1, 17
ldr x0, [x19,728]
strb w1, [x0,32]
- b .L2597
-.L2560:
+ b .L2571
+.L2534:
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,725]
sub w0, w0, #1
uxtb w0, w0
cmp w0, 6
- bhi .L2562
+ bhi .L2536
add x0, x21, :lo12:.LANCHOR4
adrp x1, hynix_read_retrial
add x1, x1, :lo12:hynix_read_retrial
str x1, [x0,1224]
-.L2562:
+.L2536:
add x19, x19, :lo12:.LANCHOR0
ldrb w0, [x19,780]
- tbz x0, 2, .L2564
+ tbz x0, 2, .L2538
ldr x0, [x19,728]
ldrb w0, [x0,19]
- cbz w0, .L2564
+ cbz w0, .L2538
add x21, x21, :lo12:.LANCHOR4
ldrh w1, [x19,2]
mov w0, 0
@@ -15773,33 +15624,33 @@ nand_flash_init:
mul w1, w2, w1
bl flash_ddr_para_scan
ldrb w0, [x19,672]
- cbnz w0, .L2564
+ cbnz w0, .L2538
ldr x1, [x19,728]
strb w0, [x1,19]
bl flash_info_flush
-.L2564:
+.L2538:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2566
+ tbz x0, 12, .L2540
adrp x2, .LANCHOR3
adrp x0, .LC127
add x2, x2, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC127
mov w1, 2356
- add x2, x2, 560
+ add x2, x2, 536
bl printk
-.L2566:
+.L2540:
bl nand_flash_print_info
mov w22, 0
- b .L2597
-.L2603:
+ b .L2571
+.L2577:
add x0, x20, :lo12:.LANCHOR2
add x0, x0, 376
ldrb w1, [x0,28]
cmp w1, 3
- bne .L2541
+ bne .L2515
strb wzr, [x0,28]
- b .L2541
-.L2597:
+ b .L2515
+.L2571:
mov w0, w22
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -15826,19 +15677,19 @@ ftl_sysblk_dump:
bl buf_alloc
ldr x24, [x0,8]
mov w20, 0
- adrp x22, .LC183
- adrp x23, .LC184
+ adrp x22, .LC182
+ adrp x23, .LC183
mov x27, x0
mov w19, w20
adrp x28, .LANCHOR0
- add x22, x22, :lo12:.LC183
- add x23, x23, :lo12:.LC184
+ add x22, x22, :lo12:.LC182
+ add x23, x23, :lo12:.LC183
add x24, x24, 704
-.L2605:
+.L2579:
add x3, x28, :lo12:.LANCHOR0
ldrh w1, [x3,3300]
cmp w1, w19
- bls .L2617
+ bls .L2591
ldrh w21, [x3,3350]
ldr x1, [x27,8]
ldr x2, [x27,24]
@@ -15874,28 +15725,28 @@ ftl_sysblk_dump:
mov w3, 32
bl rknand_print_hex
cmp w26, 512
- beq .L2610
+ beq .L2584
cmn w26, #1
- bne .L2606
-.L2610:
+ bne .L2580
+.L2584:
mov w20, 1
-.L2606:
+.L2580:
add w19, w19, 1
uxth w19, w19
- b .L2605
-.L2617:
+ b .L2579
+.L2591:
mov x0, x27
bl buf_free
- cbz w20, .L2609
+ cbz w20, .L2583
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 1339
- add x1, x1, 576
+ add x1, x1, 552
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2609:
+.L2583:
sub sp, x29, #48
mov w0, w20
ldp x19, x20, [sp,64]
@@ -15912,31 +15763,31 @@ ftl_sysblk_dump:
.type dump_ftl_info, %function
dump_ftl_info:
stp x29, x30, [sp, -32]!
- adrp x0, .LC185
+ adrp x0, .LC184
add x29, sp, 0
str x19, [sp,16]
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
- add x0, x0, :lo12:.LC185
+ add x0, x0, :lo12:.LC184
ldrb w1, [x19,2834]
bl printk
adrp x3, .LANCHOR4
- adrp x0, .LC186
+ adrp x0, .LC185
add x3, x3, :lo12:.LANCHOR4
- add x0, x0, :lo12:.LC186
+ add x0, x0, :lo12:.LC185
ldrb w1, [x3,1536]
ldrb w2, [x3,1537]
ldrh w3, [x3,1538]
bl printk
ldr x2, [x19,2864]
- adrp x0, .LC187
- add x0, x0, :lo12:.LC187
+ adrp x0, .LC186
+ add x0, x0, :lo12:.LC186
ldrh w1, [x2,130]
ldrh w2, [x2,140]
bl printk
ldr x1, [x19,608]
- adrp x0, .LC188
- add x0, x0, :lo12:.LC188
+ adrp x0, .LC187
+ add x0, x0, :lo12:.LC187
add x5, x1, 16
ldrh w1, [x1,16]
ldrh w2, [x5,2]
@@ -15945,8 +15796,8 @@ dump_ftl_info:
ldrh w5, [x5,10]
bl printk
ldr x1, [x19,608]
- adrp x0, .LC189
- add x0, x0, :lo12:.LC189
+ adrp x0, .LC188
+ add x0, x0, :lo12:.LC188
add x5, x1, 48
ldrh w1, [x1,48]
ldrh w2, [x5,2]
@@ -15955,8 +15806,8 @@ dump_ftl_info:
ldrh w5, [x5,10]
bl printk
ldr x1, [x19,608]
- adrp x0, .LC190
- add x0, x0, :lo12:.LC190
+ adrp x0, .LC189
+ add x0, x0, :lo12:.LC189
add x5, x1, 80
ldrh w1, [x1,80]
ldrh w4, [x5,6]
@@ -15969,32 +15820,32 @@ dump_ftl_info:
ldrb w3, [x19,3276]
ldr x1, [x19,3872]
mul w3, w0, w3
- adrp x0, .LC191
- add x0, x0, :lo12:.LC191
+ adrp x0, .LC190
+ add x0, x0, :lo12:.LC190
lsl w3, w3, 1
bl rknand_print_hex
ldr x1, [x19,600]
- adrp x0, .LC192
+ adrp x0, .LC191
ldrh w3, [x19,576]
- add x0, x0, :lo12:.LC192
+ add x0, x0, :lo12:.LC191
mov w2, 2
bl rknand_print_hex
ldr x3, [x19,2864]
- adrp x0, .LC184
- add x0, x0, :lo12:.LC184
+ adrp x0, .LC183
+ add x0, x0, :lo12:.LC183
mov w2, 4
add x1, x3, 704
ldrh w3, [x3,698]
bl rknand_print_hex
ldr x1, [x19,584]
- adrp x0, .LC193
+ adrp x0, .LC192
ldrh w3, [x19,576]
- add x0, x0, :lo12:.LC193
+ add x0, x0, :lo12:.LC192
mov w2, 4
bl rknand_print_hex
- adrp x0, .LC194
+ adrp x0, .LC193
add x1, x19, 3360
- add x0, x0, :lo12:.LC194
+ add x0, x0, :lo12:.LC193
mov w2, 2
mov w3, 256
bl rknand_print_hex
@@ -16003,8 +15854,8 @@ dump_ftl_info:
ldrb w3, [x19,3276]
ldr x1, [x19,3880]
mul w3, w0, w3
- adrp x0, .LC195
- add x0, x0, :lo12:.LC195
+ adrp x0, .LC194
+ add x0, x0, :lo12:.LC194
lsl w3, w3, 1
bl rknand_print_hex
ldr x19, [sp,16]
@@ -16035,19 +15886,19 @@ pm_ppa_update_check:
ubfx x3, x3, 5, 3
cmp w3, 7
cset w4, eq
- cbnz w4, .L2623
+ cbnz w4, .L2597
cmp w3, w7
- bne .L2620
-.L2623:
+ bne .L2594
+.L2597:
mov w3, w2
mov w2, w1
mov x1, x0
- adrp x0, .LC196
- add x0, x0, :lo12:.LC196
+ adrp x0, .LC195
+ add x0, x0, :lo12:.LC195
bl printk
bl dump_ftl_info
mov w4, -1
-.L2620:
+.L2594:
mov w0, w4
ldp x29, x30, [sp], 16
ret
@@ -16063,26 +15914,26 @@ load_l2p_region:
stp x19, x20, [sp,16]
cmp w22, 31
uxth w20, w0
- bls .L2626
+ bls .L2600
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 31
- add x1, x1, 592
+ add x1, x1, 568
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2626:
+.L2600:
adrp x21, .LANCHOR0
adrp x19, .LANCHOR7
add x21, x21, :lo12:.LANCHOR0
ldr x0, [x21,2864]
ldrh w2, [x0,698]
cmp w20, w2
- bls .L2627
- adrp x0, .LC197
+ bls .L2601
+ adrp x0, .LC196
mov w1, w20
- add x0, x0, :lo12:.LC197
+ add x0, x0, :lo12:.LC196
add x19, x19, :lo12:.LANCHOR7
bl printk
mov x0, 0
@@ -16093,15 +15944,15 @@ load_l2p_region:
ldr x0, [x21,2864]
ldrh w0, [x0,698]
cmp w0, w20
- bcs .L2629
+ bcs .L2603
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC0
- add x1, x1, 592
+ add x1, x1, 568
mov w2, 35
- b .L2633
-.L2627:
+ b .L2607
+.L2601:
add x0, x0, x20, sxtw 2
sbfiz x22, x22, 4, 32
ldr w4, [x0,704]
@@ -16109,19 +15960,19 @@ load_l2p_region:
add x23, x0, x22
strh w20, [x0,x22]
strh wzr, [x23,2]
- cbnz w4, .L2630
- adrp x0, .LC198
+ cbnz w4, .L2604
+ adrp x0, .LC197
mov w1, w20
mov w2, w4
add x19, x19, :lo12:.LANCHOR7
- add x0, x0, :lo12:.LC198
+ add x0, x0, :lo12:.LC197
bl printk
ldr x0, [x23,8]
mov w1, 255
ldrh w2, [x19,-118]
bl ftl_memset
- b .L2629
-.L2630:
+ b .L2603
+.L2604:
add x22, x19, :lo12:.LANCHOR7
ldrb w3, [x21,2832]
ldr x1, [x23,8]
@@ -16134,47 +15985,47 @@ load_l2p_region:
ldr x4, [x29,72]
ldr w2, [x0]
cmp w2, w20
- beq .L2631
- adrp x0, .LC199
+ beq .L2605
+ adrp x0, .LC198
mov w1, w20
- add x0, x0, :lo12:.LC199
+ add x0, x0, :lo12:.LC198
bl printk
ldr x3, [x21,2864]
- adrp x0, .LC200
- add x0, x0, :lo12:.LC200
+ adrp x0, .LC199
+ add x0, x0, :lo12:.LC199
mov w2, 4
add x1, x3, 704
ldrh w3, [x3,698]
bl rknand_print_hex
ldrb w3, [x21,2832]
- adrp x0, .LC201
+ adrp x0, .LC200
ldr x1, [x23,8]
- add x0, x0, :lo12:.LC201
+ add x0, x0, :lo12:.LC200
mov w2, 4
lsl w3, w3, 7
bl rknand_print_hex
- adrp x0, .LC202
+ adrp x0, .LC201
ldr x1, [x22,-128]
- add x0, x0, :lo12:.LC202
+ add x0, x0, :lo12:.LC201
mov w2, 4
mov w3, 16
bl rknand_print_hex
-.L2631:
+.L2605:
add x19, x19, :lo12:.LANCHOR7
ldr x0, [x19,-128]
ldr w0, [x0]
cmp w0, w20
- beq .L2629
+ beq .L2603
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC0
- add x1, x1, 592
+ add x1, x1, 568
mov w2, 59
-.L2633:
+.L2607:
bl printk
bl dump_stack
-.L2629:
+.L2603:
mov w0, 0
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -16201,24 +16052,24 @@ pm_gc:
ldrh w0, [x19,1164]
sub w0, w0, #1
cmp w1, w0
- blt .L2636
+ blt .L2610
bl pm_free_sblk
ldr x2, [x20,2864]
ldrh w1, [x19,1164]
ldrh w3, [x2,688]
sub w1, w1, #1
cmp w3, w1
- blt .L2636
+ blt .L2610
add x0, x2, x0, uxth 1
ldrh w21, [x0,416]
mov w0, 65535
cmp w21, w0
- bne .L2638
+ bne .L2612
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 131
- add x1, x1, 608
+ add x1, x1, 584
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
@@ -16226,7 +16077,7 @@ pm_gc:
ldr x1, [x20,2864]
add x0, x1, x0, uxth 1
ldrh w21, [x0,416]
-.L2638:
+.L2612:
bl pm_select_ram_region
uxth x20, w0
add x0, x23, :lo12:.LANCHOR0
@@ -16237,27 +16088,27 @@ pm_gc:
ldrh w0, [x0,x1]
mov w1, 65535
cmp w0, w1
- beq .L2639
+ beq .L2613
ldr x1, [x19,8]
- cbz x1, .L2639
+ cbz x1, .L2613
ldrsh w2, [x19,2]
- tbz w2, #31, .L2639
+ tbz w2, #31, .L2613
bl pm_write_page
ldrh w0, [x19,2]
and w0, w0, 32767
strh w0, [x19,2]
-.L2639:
+.L2613:
add x23, x23, :lo12:.LANCHOR0
mov w19, 0
add x0, x23, 3904
mov w24, 21
mov w25, 1
add x20, x0, x20, lsl 4
-.L2640:
+.L2614:
ldr x0, [x23,2864]
ldrh w1, [x0,698]
cmp w1, w19
- bls .L2646
+ bls .L2620
ldrh w1, [x23,3340]
add x0, x0, x19, sxtw 2
ldr w0, [x0,704]
@@ -16269,7 +16120,7 @@ pm_gc:
ldrb w0, [x23,3338]
udiv w1, w1, w0
cmp w21, w1, uxth
- bne .L2641
+ bne .L2615
mov w1, w22
mov w0, w19
bl load_l2p_region
@@ -16278,13 +16129,13 @@ pm_gc:
bl pm_write_page
mov w0, -1
strh w0, [x20]
-.L2641:
+.L2615:
add w19, w19, 1
uxth w19, w19
- b .L2640
-.L2646:
+ b .L2614
+.L2620:
bl pm_free_sblk
-.L2636:
+.L2610:
mov w0, 0
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -16312,10 +16163,10 @@ pm_flush_id:
and w0, w0, 32767
strh w0, [x20,2]
ldr w0, [x19,3896]
- cbz w0, .L2648
+ cbz w0, .L2622
bl pm_gc
str wzr, [x19,3896]
-.L2648:
+.L2622:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
@@ -16332,16 +16183,16 @@ pm_flush:
mov x19, 0
add x20, x20, :lo12:.LANCHOR0
add x20, x20, 3904
-.L2654:
+.L2628:
add x1, x20, x19, lsl 4
uxth w0, w19
ldrsh w1, [x1,2]
- tbz w1, #31, .L2653
+ tbz w1, #31, .L2627
bl pm_flush_id
-.L2653:
+.L2627:
add x19, x19, 1
cmp x19, 32
- bne .L2654
+ bne .L2628
mov w0, 0
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
@@ -16398,19 +16249,19 @@ pm_init:
mov w24, -1
str x0, [x22,-128]
add x22, x20, 512
-.L2660:
+.L2634:
strh w24, [x20]
strh wzr, [x20,2]
- cbz w23, .L2659
+ cbz w23, .L2633
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,2832]
lsl w0, w0, 9
bl ftl_malloc
str x0, [x20,8]
-.L2659:
+.L2633:
add x20, x20, 16
cmp x20, x22
- bne .L2660
+ bne .L2634
add x20, x19, :lo12:.LANCHOR0
add x21, x21, :lo12:.LANCHOR7
mov w4, 4
@@ -16427,20 +16278,20 @@ pm_init:
mov w24, w21
ldrh w2, [x1,696]
cmp w2, w21
- bgt .L2661
- adrp x0, .LC203
+ bgt .L2635
+ adrp x0, .LC202
ldrh w1, [x1,692]
mov w3, w21
- add x0, x0, :lo12:.LC203
- adrp x26, .LC204
+ add x0, x0, :lo12:.LC202
+ adrp x26, .LC203
add w21, w21, 1
bl printk
- add x26, x26, :lo12:.LC204
+ add x26, x26, :lo12:.LC203
ldr x0, [x20,2864]
ldrsh w20, [x0,696]
-.L2662:
+.L2636:
cmp w20, w21
- bge .L2675
+ bge .L2649
add x27, x19, :lo12:.LANCHOR0
mov x2, x23
mov x3, x25
@@ -16463,21 +16314,21 @@ pm_init:
ldr w1, [x25]
bl printk
cmp w28, 512
- beq .L2663
+ beq .L2637
cmn w28, #1
- beq .L2663
+ beq .L2637
ldr x1, [x27,2864]
ldr w0, [x25]
ldrh w2, [x1,698]
cmp w0, w2
- bcs .L2663
+ bcs .L2637
add x0, x1, x0, uxtw 2
str w22, [x0,704]
-.L2663:
+.L2637:
add w20, w20, 1
sxth w20, w20
- b .L2662
-.L2675:
+ b .L2636
+.L2649:
add x19, x19, :lo12:.LANCHOR0
adrp x0, .LANCHOR5+577
mov w1, 1
@@ -16492,7 +16343,7 @@ pm_init:
ldr x1, [x19,3912]
mov w0, -1
bl pm_write_page
-.L2661:
+.L2635:
bl pm_free_sblk
bl pm_gc
mov w0, 0
@@ -16530,28 +16381,28 @@ pm_log2phys:
uxth w25, w20
msub w24, w25, w24, w0
uxth x24, w24
- bcc .L2688
- adrp x0, .LC205
+ bcc .L2662
+ adrp x0, .LC204
mov w1, w5
- add x0, x0, :lo12:.LC205
+ add x0, x0, :lo12:.LC204
bl printk
mov w0, -1
- b .L2678
-.L2692:
+ b .L2652
+.L2666:
ldrh w0, [x3]
cmp w0, w25
- beq .L2680
-.L2679:
+ beq .L2654
+.L2653:
add w19, w19, 1
add x3, x3, 16
uxth x19, w19
cmp w19, 32
- beq .L2691
-.L2688:
+ beq .L2665
+.L2662:
ldr x0, [x3,8]
- cbnz x0, .L2692
- b .L2679
-.L2691:
+ cbnz x0, .L2666
+ b .L2653
+.L2665:
bl pm_select_ram_region
uxth x19, w0
add x2, x21, :lo12:.LANCHOR0
@@ -16562,21 +16413,21 @@ pm_log2phys:
ldrh w3, [x2,x3]
mov w2, 65535
cmp w3, w2
- bne .L2693
-.L2684:
+ bne .L2667
+.L2658:
adrp x0, .LANCHOR7-116
strb w19, [x0,#:lo12:.LANCHOR7-116]
mov w0, w25
bl load_l2p_region
-.L2680:
- cbnz w23, .L2681
+.L2654:
+ cbnz w23, .L2655
add x0, x21, :lo12:.LANCHOR0
add x0, x0, x19, lsl 4
ldr x0, [x0,3912]
ldr w0, [x0,x24,lsl 2]
str w0, [x22]
- b .L2682
-.L2681:
+ b .L2656
+.L2655:
add x0, x21, :lo12:.LANCHOR0
ldr w2, [x22]
add x0, x0, 3904
@@ -16588,7 +16439,7 @@ pm_log2phys:
strh w1, [x0,2]
adrp x0, .LANCHOR4+64
strb w20, [x0,#:lo12:.LANCHOR4+64]
-.L2682:
+.L2656:
add x21, x21, :lo12:.LANCHOR0
mov w2, 32767
add x21, x21, 3904
@@ -16597,18 +16448,18 @@ pm_log2phys:
ldrh w1, [x19,2]
and w3, w1, 32767
cmp w3, w2
- beq .L2678
+ beq .L2652
add w1, w1, 1
strh w1, [x19,2]
- b .L2678
-.L2693:
+ b .L2652
+.L2667:
ldrsh w2, [x4,2]
- tbz w2, #31, .L2684
+ tbz w2, #31, .L2658
str x1, [x29,88]
bl pm_flush_id
ldr x1, [x29,88]
- b .L2684
-.L2678:
+ b .L2658
+.L2652:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -16642,7 +16493,7 @@ gc_recovery:
add x22, x21, 80
cmp w1, w0
ldr x0, [x24,608]
- beq .L2695
+ beq .L2669
mov w1, -1
strh w1, [x0,130]
mov w0, 1
@@ -16657,37 +16508,37 @@ gc_recovery:
ldrb w1, [x24,3257]
str w0, [x29,152]
cmp w1, 3
- bne .L2696
+ bne .L2670
ldrh w1, [x24,3300]
sub w1, w1, #1
add w0, w1, w0
orr w0, w0, 50331648
- b .L2739
-.L2696:
+ b .L2713
+.L2670:
cmp w1, 2
- bne .L2697
+ bne .L2671
ldrh w1, [x24,3300]
add w0, w0, w1, lsl 1
sub w0, w0, #1
orr w0, w0, 33554432
-.L2739:
+.L2713:
str w0, [x19,40]
-.L2697:
+.L2671:
mov x0, x19
mov w1, 1
bl sblk_read_page
ldr w0, [x19,52]
cmp w0, 512
- beq .L2698
+ beq .L2672
cmn w0, #1
- beq .L2698
+ beq .L2672
ldr x0, [x19,24]
ldr w1, [x0]
mov w0, 15555
movk w0, 0xf55f, lsl 16
cmp w1, w0
- beq .L2699
-.L2698:
+ beq .L2673
+.L2672:
mov x0, x19
bl buf_free
ldr x7, [x19,24]
@@ -16698,8 +16549,8 @@ gc_recovery:
str w0, [sp,8]
ldr w0, [x7,12]
str w0, [sp,16]
- adrp x0, .LC206
- add x0, x0, :lo12:.LC206
+ adrp x0, .LC205
+ add x0, x0, :lo12:.LC205
ldr w3, [x6]
ldr w4, [x6,4]
ldr w5, [x6,8]
@@ -16708,8 +16559,8 @@ gc_recovery:
ldr w6, [x6,12]
ldr w7, [x7]
bl printk
- b .L2742
-.L2699:
+ b .L2716
+.L2673:
add x24, x20, :lo12:.LANCHOR0
ldr x0, [x29,136]
ldr x1, [x19,8]
@@ -16731,28 +16582,28 @@ gc_recovery:
ldrb w26, [x24,3257]
ldrh w25, [x24,3300]
cmp w26, 2
- bne .L2701
+ bne .L2675
lsl w25, w25, 1
mov w26, 1
-.L2701:
+.L2675:
mov w23, 0
- adrp x24, .LC207
- add x0, x24, :lo12:.LC207
+ adrp x24, .LC206
+ add x0, x24, :lo12:.LC206
mov w27, w23
str x0, [x29,112]
- b .L2702
-.L2744:
+ b .L2676
+.L2718:
ldr x0, [x0,1144]
ldr w1, [x0,x12]
ldr w0, [x7,8]
cmp w1, w0
- bne .L2706
-.L2729:
+ bne .L2680
+.L2703:
add w27, w27, 1
add w28, w28, 1
-.L2710:
+.L2684:
cmp w28, w26
- bhi .L2743
+ bhi .L2717
ldr x0, [x29,128]
add x1, x20, :lo12:.LANCHOR0
add x0, x0, 8
@@ -16762,10 +16613,10 @@ gc_recovery:
cmp w1, 3
mul w0, w0, w2
str w0, [x29,152]
- bne .L2703
+ bne .L2677
add w0, w0, w23
orr w0, w0, w28, lsl 24
-.L2740:
+.L2714:
str w0, [x19,40]
mov w1, 1
mov x0, x19
@@ -16778,8 +16629,8 @@ gc_recovery:
ldr x1, [x0,1136]
ldr w3, [x1,x12]
cmp w3, w6
- beq .L2744
-.L2706:
+ beq .L2718
+.L2680:
ldr x0, [x29,136]
str x12, [x29,104]
add x13, x0, :lo12:.LANCHOR4
@@ -16799,10 +16650,10 @@ gc_recovery:
ldr x0, [x13,1136]
ldr w0, [x0,x12]
cmn w0, #1
- beq .L2729
+ beq .L2703
mov x0, x19
bl buf_free
-.L2742:
+.L2716:
add x0, x20, :lo12:.LANCHOR0
ldrh w2, [x21,80]
mov w28, 0
@@ -16811,38 +16662,38 @@ gc_recovery:
ldr x0, [x0,608]
ldrh w1, [x21,80]
strh w1, [x0,130]
- b .L2700
-.L2709:
+ b .L2674
+.L2683:
add w23, w23, 1
-.L2702:
+.L2676:
cmp w23, w25
- beq .L2711
+ beq .L2685
sub w0, w23, #1
mov w24, 0
str w0, [x29,124]
-.L2712:
+.L2686:
ldrb w0, [x22,9]
cmp w24, w0
- bge .L2709
+ bge .L2683
sxtw x0, w24
mov w28, 1
str x0, [x29,128]
- b .L2710
-.L2703:
+ b .L2684
+.L2677:
cmp w1, 2
- bne .L2705
+ bne .L2679
ldr w1, [x29,124]
add w0, w0, w1
add w0, w0, w28
orr w0, w0, 33554432
- b .L2740
-.L2705:
+ b .L2714
+.L2679:
add w0, w0, w23
- b .L2740
-.L2743:
+ b .L2714
+.L2717:
add w24, w24, 1
- b .L2712
-.L2711:
+ b .L2686
+.L2685:
mov x0, x19
mov w28, 0
mov w27, w28
@@ -16855,22 +16706,22 @@ gc_recovery:
ldrh w0, [x0,3274]
mul w0, w1, w0
strh w0, [x2,x3,lsl 1]
-.L2713:
+.L2687:
cmp w27, w25
- beq .L2724
+ beq .L2698
sub w0, w27, #1
mov w24, 0
str w0, [x29,104]
-.L2725:
+.L2699:
ldrb w0, [x22,9]
cmp w24, w0
- bge .L2722
+ bge .L2696
sxtw x0, w24
mov w23, 1
str x0, [x29,112]
-.L2723:
+.L2697:
cmp w23, w26
- bhi .L2745
+ bhi .L2719
ldr x1, [x29,136]
ldr w0, [x29,128]
add x1, x1, :lo12:.LANCHOR4
@@ -16878,7 +16729,7 @@ gc_recovery:
ldr x2, [x1,1136]
ldr w6, [x2,x0]
cmn w6, #1
- beq .L2714
+ beq .L2688
ldr x1, [x1,1144]
str x6, [x29,96]
ldr w0, [x1,x0]
@@ -16888,13 +16739,13 @@ gc_recovery:
str w0, [x29,156]
cmn w0, #1
ldr x6, [x29,96]
- bne .L2715
+ bne .L2689
mov w0, w6
add x1, x29, 156
mov w2, 0
bl pm_log2phys
ldr x6, [x29,96]
-.L2715:
+.L2689:
ldr x0, [x29,112]
add x0, x0, 8
ldrh w1, [x22,x0,lsl 1]
@@ -16903,21 +16754,21 @@ gc_recovery:
ldrb w0, [x0,3257]
cmp w0, 3
mul w1, w1, w2
- bne .L2716
+ bne .L2690
add w1, w1, w27
orr w1, w1, w23, lsl 24
- b .L2741
-.L2716:
+ b .L2715
+.L2690:
cmp w0, 2
- bne .L2718
+ bne .L2692
ldr w0, [x29,104]
add w1, w1, w0
add w1, w1, w23
orr w1, w1, 33554432
- b .L2741
-.L2718:
+ b .L2715
+.L2692:
add w1, w1, w27
-.L2741:
+.L2715:
add x0, x20, :lo12:.LANCHOR0
ldr w2, [x29,124]
str w1, [x29,152]
@@ -16935,19 +16786,19 @@ gc_recovery:
ldr w1, [x29,124]
cmp w0, w1
uxth x19, w19
- bne .L2719
+ bne .L2693
mov w0, w6
add x1, x29, 152
add w28, w28, 1
bl pm_log2phys
mov w0, w19
bl ftl_vpn_decrement
- b .L2720
-.L2719:
+ b .L2694
+.L2693:
ldr w1, [x29,152]
cmp w0, w1
csinc w28, w28, w28, ne
-.L2720:
+.L2694:
ldr w0, [x29,128]
add x1, x20, :lo12:.LANCHOR0
add w0, w0, 1
@@ -16956,31 +16807,31 @@ gc_recovery:
add x0, x0, x19, lsl 2
ldrb w0, [x0,2]
ands w0, w0, 224
- bne .L2714
+ bne .L2688
lsl x19, x19, 1
ldr x1, [x1,600]
ldrh w2, [x1,x19]
- cbz w2, .L2714
+ cbz w2, .L2688
strh w0, [x1,x19]
-.L2714:
+.L2688:
add w23, w23, 1
- b .L2723
-.L2745:
+ b .L2697
+.L2719:
add w24, w24, 1
- b .L2725
-.L2722:
+ b .L2699
+.L2696:
add w27, w27, 1
- b .L2713
-.L2724:
+ b .L2687
+.L2698:
add x0, x20, :lo12:.LANCHOR0
ldrh w1, [x21,80]
ldr x0, [x0,600]
strh w28, [x0,x1,lsl 1]
-.L2700:
+.L2674:
ldrh w1, [x21,80]
- adrp x0, .LC208
+ adrp x0, .LC207
mov w2, w28
- add x0, x0, :lo12:.LC208
+ add x0, x0, :lo12:.LC207
bl printk
mov w0, -1
strh w0, [x21,80]
@@ -16991,9 +16842,9 @@ gc_recovery:
ldr x0, [x0,608]
ldrh w0, [x0,130]
cmp w0, w1
- beq .L2726
+ beq .L2700
bl ftl_free_sblk
-.L2726:
+.L2700:
add x20, x20, :lo12:.LANCHOR0
mov w0, -1
ldr x1, [x20,2864]
@@ -17002,15 +16853,15 @@ gc_recovery:
strh w0, [x1,130]
mov w0, 0
bl ftl_info_flush
- b .L2694
-.L2695:
+ b .L2668
+.L2669:
ldrh w0, [x0,130]
cmp w0, w1
- beq .L2694
+ beq .L2668
ldr x1, [x24,2864]
ldrh w1, [x1,126]
cmp w1, w0
- bne .L2728
+ bne .L2702
bl pm_flush
ldr x0, [x24,608]
ldrh w0, [x0,130]
@@ -17020,12 +16871,12 @@ gc_recovery:
strh w1, [x0,126]
mov w0, 0
bl ftl_info_flush
-.L2728:
+.L2702:
add x20, x20, :lo12:.LANCHOR0
mov w1, -1
ldr x0, [x20,608]
strh w1, [x0,130]
-.L2694:
+.L2668:
sub sp, x29, #32
ldp x19, x20, [sp,48]
ldp x21, x22, [sp,64]
@@ -17091,14 +16942,14 @@ zftl_init:
strh w7, [x20,576]
mov x20, x11
strh w10, [x23,-118]
-.L2747:
+.L2721:
cmp w2, w4
- bhi .L2813
+ bhi .L2787
add w1, w1, 1
lsl w2, w2, 1
uxth w1, w1
- b .L2747
-.L2813:
+ b .L2721
+.L2787:
mul w3, w0, w3
add x2, x19, :lo12:.LANCHOR0
sub w1, w1, #1
@@ -17107,14 +16958,14 @@ zftl_init:
mov w1, 1
lsr w4, w5, 21
mov w2, 0
-.L2749:
+.L2723:
cmp w1, w4
- bhi .L2814
+ bhi .L2788
add w2, w2, 1
lsl w1, w1, 1
uxth w2, w2
- b .L2749
-.L2814:
+ b .L2723
+.L2788:
mov w1, 57344
mov w4, 1
movk w1, 0x1c, lsl 16
@@ -17151,10 +17002,10 @@ zftl_init:
lsr w0, w7, 4
strh w0, [x4,3306]
cmp w0, 79
- bhi .L2751
+ bhi .L2725
mov w0, 80
strh w0, [x4,3306]
-.L2751:
+.L2725:
add x0, x19, :lo12:.LANCHOR0
mov w2, 2000
mov w3, 256
@@ -17168,10 +17019,10 @@ zftl_init:
strh w3, [x2,1162]
mov w2, 32
strh w2, [x0,592]
- beq .L2752
+ beq .L2726
ldrb w0, [x0,3272]
- cbz w0, .L2753
-.L2752:
+ cbz w0, .L2727
+.L2726:
add x0, x19, :lo12:.LANCHOR0
mov w2, 150
mov w3, 64
@@ -17181,84 +17032,84 @@ zftl_init:
mov w3, 12
strh w3, [x0,592]
ldrb w3, [x19,#:lo12:.LANCHOR0]
- cbnz w3, .L2753
+ cbnz w3, .L2727
mov w3, 4
strh w3, [x0,592]
mov w3, 600
strh w3, [x0,3346]
mov w0, 128
strh w0, [x2,1160]
-.L2753:
+.L2727:
+ ldr w0, [x20,#:lo12:.LANCHOR2]
+ tbz x0, 12, .L2729
+ adrp x0, .LC208
+ add x0, x0, :lo12:.LC208
+ bl printk
+.L2729:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2755
+ tbz x0, 12, .L2730
+ add x1, x19, :lo12:.LANCHOR0
adrp x0, .LC209
add x0, x0, :lo12:.LC209
+ ldr w1, [x1,2836]
bl printk
-.L2755:
+.L2730:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2756
+ tbz x0, 12, .L2731
add x1, x19, :lo12:.LANCHOR0
adrp x0, .LC210
add x0, x0, :lo12:.LC210
- ldr w1, [x1,2836]
+ ldr w1, [x1,2840]
bl printk
-.L2756:
+.L2731:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2757
- add x1, x19, :lo12:.LANCHOR0
+ tbz x0, 12, .L2732
+ add x1, x21, :lo12:.LANCHOR7
adrp x0, .LC211
add x0, x0, :lo12:.LC211
- ldr w1, [x1,2840]
+ ldr w1, [x1,-108]
bl printk
-.L2757:
+.L2732:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2758
+ tbz x0, 12, .L2733
add x1, x21, :lo12:.LANCHOR7
adrp x0, .LC212
add x0, x0, :lo12:.LC212
- ldr w1, [x1,-108]
+ ldrh w1, [x1,-104]
bl printk
-.L2758:
+.L2733:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2759
+ tbz x0, 12, .L2734
add x1, x21, :lo12:.LANCHOR7
adrp x0, .LC213
add x0, x0, :lo12:.LC213
- ldrh w1, [x1,-104]
+ ldrh w1, [x1,-118]
bl printk
-.L2759:
+.L2734:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2760
- add x1, x21, :lo12:.LANCHOR7
+ tbz x0, 12, .L2735
+ add x22, x22, :lo12:.LANCHOR4
adrp x0, .LC214
add x0, x0, :lo12:.LC214
- ldrh w1, [x1,-118]
+ ldrh w1, [x22,1164]
bl printk
-.L2760:
+.L2735:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2761
- add x22, x22, :lo12:.LANCHOR4
+ tbz x0, 12, .L2736
+ add x1, x19, :lo12:.LANCHOR0
adrp x0, .LC215
add x0, x0, :lo12:.LC215
- ldrh w1, [x22,1164]
+ ldrh w1, [x1,3306]
bl printk
-.L2761:
+.L2736:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2762
+ tbz x0, 12, .L2737
add x1, x19, :lo12:.LANCHOR0
adrp x0, .LC216
add x0, x0, :lo12:.LC216
- ldrh w1, [x1,3306]
- bl printk
-.L2762:
- ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2763
- add x1, x19, :lo12:.LANCHOR0
- adrp x0, .LC217
- add x0, x0, :lo12:.LC217
ldrh w1, [x1,3308]
bl printk
-.L2763:
+.L2737:
add x22, x19, :lo12:.LANCHOR0
bl buf_init
mov w0, 6
@@ -17287,11 +17138,11 @@ zftl_init:
ldr w0, [x20,#:lo12:.LANCHOR2]
add x1, x2, x1, sxtw 2
str x1, [x22,608]
- tbz x0, 12, .L2764
- adrp x0, .LC218
- add x0, x0, :lo12:.LC218
+ tbz x0, 12, .L2738
+ adrp x0, .LC217
+ add x0, x0, :lo12:.LC217
bl printk
-.L2764:
+.L2738:
add x2, x19, :lo12:.LANCHOR0
add x3, x21, :lo12:.LANCHOR7
ldrh w0, [x2,3300]
@@ -17306,28 +17157,28 @@ zftl_init:
add w24, w24, 704
lsl w22, w22, 1
add w22, w22, 632
- tbz x0, 12, .L2765
- adrp x0, .LC219
+ tbz x0, 12, .L2739
+ adrp x0, .LC218
ldrh w3, [x3,-118]
- add x0, x0, :lo12:.LC219
+ add x0, x0, :lo12:.LC218
mov w1, w22
mov w2, w24
bl printk
-.L2765:
+.L2739:
add x21, x21, :lo12:.LANCHOR7
ldrh w0, [x21,-118]
cmp w22, w0
- bhi .L2767
+ bhi .L2741
cmp w24, w0
- bls .L2766
-.L2767:
-.L2768:
- b .L2768
-.L2766:
+ bls .L2740
+.L2741:
+.L2742:
+ b .L2742
+.L2740:
bl sblk_init
bl ftl_info_blk_init
cmn w0, #1
- beq .L2769
+ beq .L2743
bl ftl_ext_info_init
add x19, x19, :lo12:.LANCHOR0
mov w0, 1
@@ -17360,18 +17211,18 @@ zftl_init:
mov w0, 1
bl ftl_total_vpn_update
ldrb w0, [x23,577]
- cbz w0, .L2770
+ cbz w0, .L2744
ldr x1, [x19,2864]
ldr w0, [x1,68]
add w0, w0, 1
str w0, [x1,68]
-.L2770:
+.L2744:
bl ftl_ext_info_flush
mov w0, 0
bl ftl_info_flush
bl print_ftl_debug_info
mov w0, 0
-.L2769:
+.L2743:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -17397,11 +17248,11 @@ rk_ftl_init:
strb wzr, [x21,-102]
bl ftl_malloc
str x0, [x19,1176]
- cbnz x0, .L2816
-.L2818:
+ cbnz x0, .L2790
+.L2792:
mov w0, -1
- b .L2817
-.L2816:
+ b .L2791
+.L2790:
mov w0, 2048
bl ftl_malloc
str x0, [x21,-96]
@@ -17411,7 +17262,7 @@ rk_ftl_init:
str xzr, [x1,-88]!
bl rknand_get_reg_addr
ldr x0, [x19,1184]
- cbz x0, .L2818
+ cbz x0, .L2792
bl rk_nandc_irq_init
mov w1, 0
ldr x0, [x21,-96]
@@ -17471,14 +17322,14 @@ rk_ftl_init:
ldr x0, [x19,1184]
bl nand_flash_init
mov w22, w0
- cbnz w0, .L2819
+ cbnz w0, .L2793
bl zftl_init
mov w19, w0
bl zftl_proc_debug_init
mov w0, 1
strb w0, [x21,-102]
- b .L2820
-.L2819:
+ b .L2794
+.L2793:
ldr x1, [x19,1176]
adrp x2, ftl_read_flash_info
add x2, x2, :lo12:ftl_read_flash_info
@@ -17533,7 +17384,7 @@ rk_ftl_init:
bl FlashInit
mov w19, w0
cmn w22, #2
- bne .L2821
+ bne .L2795
add x22, x21, :lo12:.LANCHOR2
adrp x1, gNandParaInfo
add x22, x22, 376
@@ -17543,22 +17394,22 @@ rk_ftl_init:
bl ftl_memcpy
ldrb w0, [x22,18]
bl flash_lsb_page_tbl_build
-.L2821:
+.L2795:
adrp x0, g_nandc_version_data
ldr w1, [x0,#:lo12:g_nandc_version_data]
mov w0, 12336
movk w0, 0x5638, lsl 16
cmp w1, w0
adrp x1, .LANCHOR0
- bne .L2822
+ bne .L2796
adrp x0, gFlashSlcMode
ldrb w0, [x0,#:lo12:gFlashSlcMode]
- cbnz w0, .L2823
-.L2822:
+ cbnz w0, .L2797
+.L2796:
add x0, x20, :lo12:.LANCHOR4
strb wzr, [x1,#:lo12:.LANCHOR0]
strb wzr, [x0,1264]
-.L2823:
+.L2797:
adrp x2, gNandFlashIDBEccBits
add x0, x1, :lo12:.LANCHOR0
add x21, x21, :lo12:.LANCHOR2
@@ -17572,28 +17423,28 @@ rk_ftl_init:
strb w2, [x0,724]
mov w2, 1
mov w0, 0
-.L2824:
+.L2798:
cmp w2, w3
- bhi .L2829
+ bhi .L2803
add w0, w0, 1
lsl w2, w2, 1
uxth w0, w0
- b .L2824
-.L2829:
+ b .L2798
+.L2803:
add x1, x1, :lo12:.LANCHOR0
sub w0, w0, #1
strb wzr, [x1,672]
strh w0, [x1,3340]
- cbnz w19, .L2820
+ cbnz w19, .L2794
bl FtlInit
mov w19, w0
-.L2820:
- adrp x0, .LC220
+.L2794:
+ adrp x0, .LC219
mov w1, w19
- add x0, x0, :lo12:.LC220
+ add x0, x0, :lo12:.LC219
bl printk
mov w0, w19
-.L2817:
+.L2791:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
@@ -17621,12 +17472,12 @@ gc_update_l2p_map_new:
mul w24, w24, w0
bl timer_get_time
ldr w0, [x22,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2831
- adrp x0, .LC221
+ tbz x0, 8, .L2805
+ adrp x0, .LC220
ldrh w1, [x20,80]
- add x0, x0, :lo12:.LC221
+ add x0, x0, :lo12:.LC220
bl printk
-.L2831:
+.L2805:
add x0, x19, :lo12:.LANCHOR0
ldrh w1, [x20,80]
sub w2, w24, #1
@@ -17635,21 +17486,21 @@ gc_update_l2p_map_new:
adrp x27, .LANCHOR4
ldr x0, [x0,600]
strh w2, [x0,x1,lsl 1]
- adrp x0, .LC223
- add x0, x0, :lo12:.LC223
- str x0, [x29,120]
adrp x0, .LC222
add x0, x0, :lo12:.LC222
+ str x0, [x29,120]
+ adrp x0, .LC221
+ add x0, x0, :lo12:.LC221
str x0, [x29,112]
-.L2832:
+.L2806:
cmp w23, w24
- beq .L2864
+ beq .L2838
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
ldr x0, [x0,1136]
ldr w2, [x0,w23,sxtw 2]
cmn w2, #1
- beq .L2833
+ beq .L2807
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,2832]
lsl w0, w0, 7
@@ -17657,27 +17508,27 @@ gc_update_l2p_map_new:
and w0, w0, 65535
str w0, [x29,140]
ldr w0, [x22,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2834
+ tbz x0, 8, .L2808
ldr x0, [x29,112]
mov w3, w23
ldr w1, [x29,140]
bl printk
-.L2834:
+.L2808:
mov w25, w23
-.L2840:
+.L2814:
add x1, x27, :lo12:.LANCHOR4
sbfiz x26, x25, 2, 32
ldr x0, [x1,1136]
ldr w4, [x0,x26]
cmn w4, #1
- beq .L2835
+ beq .L2809
add x0, x19, :lo12:.LANCHOR0
ldr w2, [x29,140]
ldrb w0, [x0,2832]
lsl w0, w0, 7
udiv w0, w4, w0
cmp w2, w0, uxth
- bne .L2835
+ bne .L2809
ldr x0, [x1,1144]
str x4, [x29,104]
ldr w28, [x0,x26]
@@ -17686,16 +17537,16 @@ gc_update_l2p_map_new:
str w0, [x29,156]
cmn w0, #1
ldr x4, [x29,104]
- bne .L2836
+ bne .L2810
mov w0, w4
add x1, x29, 156
mov w2, 0
bl pm_log2phys
ldr x4, [x29,104]
-.L2836:
+.L2810:
ldr w3, [x29,156]
cmp w3, w28
- bne .L2837
+ bne .L2811
add x0, x27, :lo12:.LANCHOR4
add x1, x29, 152
mov w2, 1
@@ -17716,60 +17567,60 @@ gc_update_l2p_map_new:
and w28, w0, w28
ldrb w0, [x2,3338]
udiv w0, w28, w0
- b .L2863
-.L2837:
+ b .L2837
+.L2811:
ldr w0, [x22,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2839
+ tbz x0, 8, .L2813
ldr x0, [x29,120]
mov w1, w4
mov w2, w28
bl printk
-.L2839:
+.L2813:
ldr x0, [x29,128]
ldrh w0, [x0]
-.L2863:
+.L2837:
bl ftl_vpn_decrement
add x0, x27, :lo12:.LANCHOR4
mov w1, -1
ldr x0, [x0,1136]
str w1, [x0,x26]
bl timer_get_time
-.L2835:
+.L2809:
add w25, w25, 1
cmp w25, w24
- bne .L2840
-.L2833:
+ bne .L2814
+.L2807:
add w23, w23, 1
- b .L2832
-.L2864:
+ b .L2806
+.L2838:
ldr w0, [x22,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2842
+ tbz x0, 8, .L2816
add x0, x19, :lo12:.LANCHOR0
ldrh w3, [x20,80]
ldr x1, [x0,608]
ldr x2, [x0,600]
- adrp x0, .LC224
- add x0, x0, :lo12:.LC224
+ adrp x0, .LC223
+ add x0, x0, :lo12:.LC223
ldrh w1, [x1,80]
ldrh w2, [x2,x3,lsl 1]
mov w3, w21
bl printk
-.L2842:
+.L2816:
add x0, x19, :lo12:.LANCHOR0
ldrh w1, [x20,80]
ldr x0, [x0,600]
ldrh w0, [x0,x1,lsl 1]
cmp w0, w21
- beq .L2843
+ beq .L2817
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 483
- add x1, x1, 616
+ mov w2, 488
+ add x1, x1, 592
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2843:
+.L2817:
add x19, x19, :lo12:.LANCHOR0
ldrh w1, [x20,80]
ldr x0, [x19,600]
@@ -17804,48 +17655,48 @@ gc_scan_src_blk_one_page:
ldrb w7, [x3,3276]
ldrh w1, [x1,40]
ldrh w3, [x2,2]
-.L2866:
+.L2840:
cmp w1, w6
- bne .L2908
+ bne .L2882
add w0, w0, 1
uxtb w0, w0
cmp w0, w7
- bne .L2867
+ bne .L2841
add w3, w3, 1
mov w4, 1
mov w0, 0
uxth w3, w3
-.L2867:
+.L2841:
add x1, x2, x0, sxtw 1
mov w5, 1
ldrh w1, [x1,40]
- b .L2866
-.L2908:
- cbz w5, .L2869
+ b .L2840
+.L2882:
+ cbz w5, .L2843
add x2, x19, :lo12:.LANCHOR0
strb w0, [x2,2900]
-.L2869:
- cbz w4, .L2870
+.L2843:
+ cbz w4, .L2844
add x0, x19, :lo12:.LANCHOR0
strh w3, [x0,2898]
-.L2870:
+.L2844:
add x0, x19, :lo12:.LANCHOR0
ldrb w2, [x0,3257]
ldrh w20, [x0,3350]
cmp w2, 2
mul w1, w1, w20
- bne .L2871
+ bne .L2845
ldrb w2, [x0,2902]
add x0, x0, 2896
- cbnz w2, .L2871
+ cbnz w2, .L2845
ldrh w20, [x0,2]
add w20, w1, w20, lsl 1
- b .L2872
-.L2871:
+ b .L2846
+.L2845:
add x0, x19, :lo12:.LANCHOR0
ldrh w20, [x0,2898]
add w20, w1, w20
-.L2872:
+.L2846:
add x2, x19, :lo12:.LANCHOR0
add x1, x2, 2896
ldrb w0, [x2,2900]
@@ -17854,26 +17705,26 @@ gc_scan_src_blk_one_page:
strb w0, [x2,2900]
ldrb w2, [x2,3276]
cmp w2, w0
- bne .L2873
+ bne .L2847
ldrh w0, [x1,2]
strb wzr, [x1,4]
add w0, w0, 1
strh w0, [x1,2]
-.L2873:
+.L2847:
mov w0, 1
mov w21, 0
add x19, x19, :lo12:.LANCHOR0
bl buf_alloc
mov x22, x0
-.L2884:
+.L2858:
ldrb w0, [x19,2902]
- cbnz w21, .L2886
+ cbnz w21, .L2860
cmp w0, 3
- beq .L2874
-.L2886:
+ beq .L2848
+.L2860:
cmp w0, w21
- bgt .L2876
-.L2885:
+ bgt .L2850
+.L2859:
mov x0, x22
bl buf_free
ldr x23, [sp,48]
@@ -17881,56 +17732,56 @@ gc_scan_src_blk_one_page:
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 80
ret
-.L2876:
+.L2850:
ldrb w1, [x19,3257]
cmp w1, 2
- bne .L2877
- cbnz w0, .L2877
+ bne .L2851
+ cbnz w0, .L2851
add w0, w21, w20
orr w0, w0, 33554432
- b .L2907
-.L2877:
+ b .L2881
+.L2851:
orr w0, w20, w21, lsl 24
-.L2907:
+.L2881:
str w0, [x22,40]
mov w1, 1
mov x0, x22
bl sblk_read_page
ldr w0, [x22,52]
cmp w0, 512
- beq .L2881
+ beq .L2855
cmn w0, #1
- beq .L2881
+ beq .L2855
ldr x0, [x22,24]
ldr w23, [x0,4]
mov w0, w23
bl lpa_hash_get_ppa
str w0, [x29,76]
cmn w0, #1
- bne .L2882
+ bne .L2856
mov w0, w23
add x1, x29, 76
mov w2, 0
bl pm_log2phys
-.L2882:
+.L2856:
ldr w0, [x29,76]
cmp w20, w0
- bne .L2881
+ bne .L2855
ldrh w2, [x19,2920]
ldr x1, [x19,3248]
str w20, [x1,x2,lsl 2]
ldrh w1, [x19,2920]
add w1, w1, 1
strh w1, [x19,2920]
-.L2881:
+.L2855:
ldrh w0, [x19,2922]
add w0, w0, 1
strh w0, [x19,2922]
-.L2874:
+.L2848:
add w21, w21, 1
cmp w21, 4
- bne .L2884
- b .L2885
+ bne .L2858
+ b .L2859
.size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page
.align 2
.global gc_scan_src_blk
@@ -17947,32 +17798,32 @@ gc_scan_src_blk:
ldrh w1, [x0,2896]
mov w0, 65535
cmp w1, w0
- bne .L2910
+ bne .L2884
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 920
- add x1, x1, 640
+ mov w2, 925
+ add x1, x1, 616
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2910:
+.L2884:
add x2, x19, :lo12:.LANCHOR0
mov w3, 65535
mov w0, 0
ldrh w1, [x2,2896]
cmp w1, w3
- beq .L2911
+ beq .L2885
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2912
+ tbz x0, 8, .L2886
ubfiz x3, x1, 1, 16
ldr x2, [x2,600]
- adrp x0, .LC225
- add x0, x0, :lo12:.LC225
+ adrp x0, .LC224
+ add x0, x0, :lo12:.LC224
ldrh w2, [x2,x3]
bl printk
-.L2912:
+.L2886:
add x20, x19, :lo12:.LANCHOR0
bl timer_get_time
add x21, x20, 2896
@@ -17981,74 +17832,74 @@ gc_scan_src_blk:
bl ftl_get_blk_list_in_sblk
uxtb w1, w0
strb w1, [x21,5]
- cbnz w1, .L2913
+ cbnz w1, .L2887
mov w0, -1
strh w0, [x20,2896]
- b .L2939
-.L2913:
+ b .L2913
+.L2887:
ldrh w3, [x20,2896]
ldr x2, [x20,584]
add x2, x2, x3, lsl 2
ldrb w2, [x2,2]
tst w2, 192
and w4, w2, 224
- beq .L2914
+ beq .L2888
cmp w4, 224
- beq .L2914
+ beq .L2888
ldr x2, [x20,608]
ldrh w5, [x2,16]
cmp w5, w3
- beq .L2914
+ beq .L2888
ldrh w5, [x2,48]
cmp w5, w3
- beq .L2914
+ beq .L2888
ldrh w2, [x2,80]
cmp w2, w3
- bne .L2915
-.L2914:
- cbnz w4, .L2916
+ bne .L2889
+.L2888:
+ cbnz w4, .L2890
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,600]
ldrh w0, [x0,x3,lsl 1]
- cbz w0, .L2917
+ cbz w0, .L2891
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 940
- add x1, x1, 640
+ mov w2, 945
+ add x1, x1, 616
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2917:
+.L2891:
add x0, x19, :lo12:.LANCHOR0
ldrh w1, [x0,2896]
ldr x0, [x0,600]
strh wzr, [x0,x1,lsl 1]
-.L2916:
+.L2890:
add x19, x19, :lo12:.LANCHOR0
mov w0, -1
strh wzr, [x19,2920]
strh w0, [x19,2896]
-.L2939:
+.L2913:
mov w0, 0
- b .L2911
-.L2915:
+ b .L2885
+.L2889:
and w0, w0, 255
sub w0, w0, #1
add x0, x21, x0, sxtw 1
ldrh w20, [x0,40]
mov w0, 65535
cmp w20, w0
- bne .L2918
+ bne .L2892
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 948
- add x1, x1, 640
+ mov w2, 953
+ add x1, x1, 616
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2918:
+.L2892:
add x2, x19, :lo12:.LANCHOR0
mov w24, 1
ldrh w3, [x2,2896]
@@ -18062,16 +17913,16 @@ gc_scan_src_blk:
mul w1, w20, w1
and w3, w3, 224
cmp w3, 160
- bne .L2919
+ bne .L2893
ldrb w3, [x2,3257]
cmp w3, 2
uxth w24, w3
orr w1, w1, w3, lsl 24
- bne .L2919
+ bne .L2893
ldrh w0, [x2,3274]
sub w0, w0, #1
uxth w0, w0
-.L2919:
+.L2893:
add x20, x19, :lo12:.LANCHOR0
orr w23, w0, w1
mov w0, 1
@@ -18094,29 +17945,29 @@ gc_scan_src_blk:
strh wzr, [x20,2920]
ldr w0, [x21,52]
cmp w0, 512
- beq .L2940
+ beq .L2914
cmn w0, #1
- beq .L2940
+ beq .L2914
ldr x0, [x21,24]
ldr w1, [x0]
mov w0, 15555
movk w0, 0xf55f, lsl 16
cmp w1, w0
- beq .L2922
+ beq .L2896
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 980
- add x1, x1, 640
+ mov w2, 985
+ add x1, x1, 616
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2940:
+.L2914:
mov x0, x21
bl buf_free
mov w0, -1
- b .L2911
-.L2922:
+ b .L2885
+.L2896:
ldrb w0, [x20,3276]
mov x26, 0
ldrh w22, [x20,3300]
@@ -18126,21 +17977,21 @@ gc_scan_src_blk:
mul w22, w24, w22
mov w24, 21
uxth w22, w22
-.L2923:
+.L2897:
cmp w22, w26
- ble .L2941
+ ble .L2915
ldr w0, [x23,x26,lsl 2]
cmn w0, #1
- beq .L2925
+ beq .L2899
bl lpa_hash_get_ppa
str w0, [x29,92]
cmn w0, #1
- bne .L2926
+ bne .L2900
ldr w0, [x23,x26,lsl 2]
add x1, x29, 92
mov w2, 0
bl pm_log2phys
-.L2926:
+.L2900:
ldrh w1, [x20,3340]
ldr w2, [x29,92]
sub w0, w24, w1
@@ -18152,18 +18003,18 @@ gc_scan_src_blk:
ldrb w0, [x20,3338]
udiv w1, w1, w0
cmp w1, w3
- bne .L2925
+ bne .L2899
ldrh w3, [x20,2920]
ldr x1, [x20,3248]
str w2, [x1,x3,lsl 2]
ldrh w1, [x20,2920]
add w1, w1, 1
strh w1, [x20,2920]
-.L2925:
+.L2899:
bl timer_get_time
add x26, x26, 1
- b .L2923
-.L2941:
+ b .L2897
+.L2915:
mov x0, x21
bl buf_free
add x0, x19, :lo12:.LANCHOR0
@@ -18173,11 +18024,11 @@ gc_scan_src_blk:
ldrh w2, [x3,x2]
ldrh w3, [x0,2920]
cmp w2, w3
- beq .L2929
- adrp x0, .LC226
- add x0, x0, :lo12:.LC226
+ beq .L2903
+ adrp x0, .LC225
+ add x0, x0, :lo12:.LC225
bl printk
-.L2929:
+.L2903:
add x19, x19, :lo12:.LANCHOR0
ldrh w2, [x19,2896]
ldr x1, [x19,600]
@@ -18185,7 +18036,7 @@ gc_scan_src_blk:
strh w3, [x1,x2,lsl 1]
strh wzr, [x19,2924]
ldrh w0, [x19,2920]
-.L2911:
+.L2885:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -18207,14 +18058,14 @@ gc_scan_static_data:
ldr x0, [x3,608]
ldr w1, [x0,544]
cmn w1, #1
- beq .L2943
+ beq .L2917
adrp x21, .LANCHOR3
adrp x22, .LC0
add x21, x21, :lo12:.LANCHOR3
mov w20, 11
add x22, x22, :lo12:.LC0
- add x21, x21, 656
-.L2944:
+ add x21, x21, 632
+.L2918:
add x24, x19, :lo12:.LANCHOR0
add x1, x29, 76
mov w2, 0
@@ -18223,7 +18074,7 @@ gc_scan_static_data:
bl pm_log2phys
ldr w0, [x29,76]
cmn w0, #1
- beq .L2945
+ beq .L2919
mov w0, 1
bl buf_alloc
mov x23, x0
@@ -18233,7 +18084,7 @@ gc_scan_static_data:
bl sblk_read_page
ldr w0, [x23,52]
cmp w0, 256
- bne .L2946
+ bne .L2920
ldrh w0, [x24,3340]
mov w2, 21
mov w1, 1
@@ -18247,23 +18098,23 @@ gc_scan_static_data:
udiv w0, w2, w0
mov w2, 0
bl gc_add_sblk
-.L2946:
+.L2920:
add x0, x19, :lo12:.LANCHOR0
ldr x1, [x23,24]
ldr x0, [x0,608]
ldr w1, [x1,4]
ldr w0, [x0,544]
cmp w1, w0
- beq .L2947
+ beq .L2921
mov x1, x21
- mov w2, 1419
+ mov w2, 1424
mov x0, x22
bl printk
bl dump_stack
-.L2947:
+.L2921:
mov x0, x23
bl buf_free
-.L2945:
+.L2919:
add x2, x19, :lo12:.LANCHOR0
ldr x1, [x2,608]
ldr w2, [x2,2840]
@@ -18271,7 +18122,7 @@ gc_scan_static_data:
add w0, w0, 1
str w0, [x1,544]
cmp w0, w2
- bcc .L2948
+ bcc .L2922
mov w0, -1
str w0, [x1,544]
ldr w0, [x1,548]
@@ -18282,37 +18133,37 @@ gc_scan_static_data:
bl ftl_ext_info_flush
mov w0, 0
bl ftl_info_flush
- b .L2942
-.L2948:
+ b .L2916
+.L2922:
ldr w0, [x29,76]
cmn w0, #1
- bne .L2942
+ bne .L2916
sub w20, w20, #1
uxth w20, w20
- cbnz w20, .L2944
- b .L2942
-.L2943:
+ cbnz w20, .L2918
+ b .L2916
+.L2917:
ldr w1, [x0,536]
ldr w2, [x0,12]
add w1, w1, 12959744
add w1, w1, 256
cmp w2, w1
- bhi .L2953
+ bhi .L2927
ldr x3, [x3,2864]
ldr w1, [x0,540]
ldr w3, [x3,44]
add w1, w1, 98304
add w1, w1, 1696
cmp w3, w1
- bls .L2942
-.L2953:
+ bls .L2916
+.L2927:
add x19, x19, :lo12:.LANCHOR0
ldr x1, [x19,2864]
ldr w1, [x1,44]
str w1, [x0,540]
str w2, [x0,536]
str wzr, [x0,544]
-.L2942:
+.L2916:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -18336,45 +18187,45 @@ gc_block_vpn_scan:
ldrh w0, [x20,576]
ldr w1, [x1,608]
cmp w1, w0
- bcs .L2958
+ bcs .L2932
bl timer_get_time
ldr x21, [x20,608]
ldr w1, [x21,604]
add w1, w1, 28672
add w1, w1, 1328
cmp w0, w1
- bls .L2958
+ bls .L2932
bl timer_get_time
str w0, [x21,604]
ldr x0, [x20,608]
ldrh w2, [x20,576]
ldr w1, [x0,600]
cmp w1, w2
- bcs .L2962
+ bcs .L2936
ldr x2, [x20,2864]
ldrh w2, [x2,134]
cmp w1, w2
- bcs .L2963
-.L2962:
+ bcs .L2937
+.L2936:
add x1, x19, :lo12:.LANCHOR0
ldr x1, [x1,2864]
ldrh w1, [x1,134]
str w1, [x0,600]
-.L2963:
+.L2937:
ldr w25, [x0,600]
mov w0, 65535
uxth w20, w25
cmp w20, w0
- bne .L2964
+ bne .L2938
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 1712
- add x1, x1, 680
+ mov w2, 1717
+ add x1, x1, 656
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2964:
+.L2938:
add x21, x19, :lo12:.LANCHOR0
ldr x0, [x21,608]
ldr w1, [x0,600]
@@ -18387,47 +18238,47 @@ gc_block_vpn_scan:
mov w0, w20
bl ftl_get_blk_list_in_sblk
uxth w1, w0
- cbz w1, .L2958
+ cbz w1, .L2932
uxtw x22, w20
ldr x24, [x21,584]
add x24, x24, x22, lsl 2
ldrb w1, [x24,2]
tst w1, 192
and w2, w1, 224
- beq .L2965
+ beq .L2939
cmp w2, 224
- beq .L2965
+ beq .L2939
ldr x1, [x21,608]
ldrh w3, [x1,16]
cmp w3, w20
- beq .L2965
+ beq .L2939
ldrh w3, [x1,48]
cmp w3, w20
- beq .L2965
+ beq .L2939
ldrh w1, [x1,80]
cmp w1, w20
- bne .L2966
-.L2965:
- cbnz w2, .L2958
+ bne .L2940
+.L2939:
+ cbnz w2, .L2932
add x0, x19, :lo12:.LANCHOR0
lsl x22, x22, 1
ldr x0, [x0,600]
ldrh w0, [x0,x22]
- cbz w0, .L2967
+ cbz w0, .L2941
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 1728
- add x1, x1, 680
+ mov w2, 1733
+ add x1, x1, 656
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2967:
+.L2941:
add x19, x19, :lo12:.LANCHOR0
ldr x0, [x19,600]
strh wzr, [x0,x22]
- b .L2958
-.L2966:
+ b .L2932
+.L2940:
and w0, w0, 65535
add x1, x29, 144
sub w0, w0, #1
@@ -18435,16 +18286,16 @@ gc_block_vpn_scan:
ldrh w21, [x0,-16]
mov w0, 65535
cmp w21, w0
- bne .L2969
+ bne .L2943
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 1734
- add x1, x1, 680
+ mov w2, 1739
+ add x1, x1, 656
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2969:
+.L2943:
add x2, x19, :lo12:.LANCHOR0
ldrb w3, [x24,2]
mov w26, 1
@@ -18455,16 +18306,16 @@ gc_block_vpn_scan:
sub w0, w0, #1
mul w1, w21, w1
uxth w0, w0
- bne .L2970
+ bne .L2944
ldrb w3, [x2,3257]
cmp w3, 2
uxth w26, w3
orr w1, w1, w3, lsl 24
- bne .L2970
+ bne .L2944
ldrh w0, [x2,3274]
sub w0, w0, #1
uxth w0, w0
-.L2970:
+.L2944:
orr w21, w0, w1
mov w0, 1
bl buf_alloc
@@ -18482,30 +18333,30 @@ gc_block_vpn_scan:
bl ftl_memset
ldr w0, [x23,52]
cmp w0, 512
- beq .L2982
+ beq .L2956
cmn w0, #1
cset w2, eq
- cbz w2, .L2971
-.L2982:
+ cbz w2, .L2945
+.L2956:
mov w0, w20
mov w1, 1
mov w2, 0
- b .L2995
-.L2971:
+ b .L2969
+.L2945:
ldr x0, [x23,24]
ldr w1, [x0]
mov w0, 15555
movk w0, 0xf55f, lsl 16
cmp w1, w0
- beq .L2973
+ beq .L2947
mov w0, w20
mov w1, 1
-.L2995:
+.L2969:
bl gc_add_sblk
mov x0, x23
bl buf_free
- b .L2958
-.L2973:
+ b .L2932
+.L2947:
ldrb w0, [x21,3276]
mov x27, 0
ldrh w1, [x21,3300]
@@ -18516,22 +18367,22 @@ gc_block_vpn_scan:
uxth w0, w26
ldr x26, [x23,8]
str w0, [x29,108]
-.L2974:
+.L2948:
ldr w0, [x29,108]
cmp w0, w27
- ble .L2996
+ ble .L2970
ldr w0, [x26,x27,lsl 2]
cmn w0, #1
- beq .L2975
+ beq .L2949
bl lpa_hash_get_ppa
str w0, [x29,124]
cmn w0, #1
- bne .L2976
+ bne .L2950
ldr w0, [x26,x27,lsl 2]
add x1, x29, 124
mov w2, 0
bl pm_log2phys
-.L2976:
+.L2950:
add x4, x19, :lo12:.LANCHOR0
mov w1, 21
ldrh w0, [x4,3340]
@@ -18545,39 +18396,39 @@ gc_block_vpn_scan:
and w0, w2, w0
udiv w0, w0, w1
cmp w0, w28
- bne .L2975
+ bne .L2949
add w21, w21, 1
uxth w21, w21
-.L2975:
+.L2949:
add x27, x27, 1
- b .L2974
-.L2996:
+ b .L2948
+.L2970:
mov x0, x23
bl buf_free
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2978
+ tbz x0, 8, .L2952
add x0, x19, :lo12:.LANCHOR0
ldrb w4, [x24,2]
uxth w1, w25
mov w3, w21
ubfx x4, x4, 5, 3
ldr x2, [x0,600]
- adrp x0, .LC227
- add x0, x0, :lo12:.LC227
+ adrp x0, .LC226
+ add x0, x0, :lo12:.LC226
ldrh w2, [x2,x22,lsl 1]
bl printk
-.L2978:
+.L2952:
add x19, x19, :lo12:.LANCHOR0
cmp w21, 31
ldr x0, [x19,600]
strh w21, [x0,x22,lsl 1]
- bhi .L2958
+ bhi .L2932
mov w0, w20
mov w1, 1
mov w2, 0
bl gc_add_sblk
-.L2958:
+.L2932:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -18609,9 +18460,9 @@ ftl_sblk_dump:
add x1, x0, x25
ldrh w4, [x0,x25]
ldr w5, [x0,x25]
- adrp x0, .LC228
+ adrp x0, .LC227
ldrb w3, [x1,2]
- add x0, x0, :lo12:.LC228
+ add x0, x0, :lo12:.LC227
mov w1, w20
and w4, w4, 2047
ubfx x2, x3, 5, 3
@@ -18621,19 +18472,19 @@ ftl_sblk_dump:
mov w1, 65535
mov w0, 0
cmp w20, w1
- beq .L2998
+ beq .L2972
ldrh w1, [x19,576]
cmp w1, w20
- bls .L2998
+ bls .L2972
ldr x0, [x19,584]
mov w26, 1
add x0, x0, x25
ldrb w0, [x0,2]
and w0, w0, 224
cmp w0, 160
- bne .L2999
+ bne .L2973
ldrb w26, [x19,3257]
-.L2999:
+.L2973:
add x1, x29, 192
mov w0, w20
strh w20, [x29,176]
@@ -18654,8 +18505,8 @@ ftl_sblk_dump:
mul w1, w1, w2
strh w1, [x29,182]
ldr x1, [x0,584]
- adrp x0, .LC229
- add x0, x0, :lo12:.LC229
+ adrp x0, .LC228
+ add x0, x0, :lo12:.LC228
add x1, x1, x25
ldrb w2, [x1,2]
mov w1, w20
@@ -18664,56 +18515,56 @@ ftl_sblk_dump:
mov w0, 1
bl buf_alloc
mov x28, x0
- adrp x0, .LC183
+ adrp x0, .LC182
str w22, [x29,152]
- add x0, x0, :lo12:.LC183
+ add x0, x0, :lo12:.LC182
str x0, [x29,120]
adrp x0, .LANCHOR3
add x0, x0, :lo12:.LANCHOR3
- add x0, x0, 704
+ add x0, x0, 680
str x0, [x29,112]
-.L3000:
+.L2974:
add x21, x23, :lo12:.LANCHOR0
ldrh w0, [x21,3300]
cmp w0, w19
- bls .L3016
+ bls .L2990
lsl w0, w19, 1
str wzr, [x29,156]
sub w0, w0, #1
str w0, [x29,132]
-.L3017:
+.L2991:
ldrb w0, [x29,185]
ldr w1, [x29,156]
cmp w0, w1
- bls .L3014
+ bls .L2988
mov w24, 1
-.L3015:
+.L2989:
cmp w24, w26
ldr w0, [x29,156]
- bhi .L3034
+ bhi .L3008
add x1, x29, 176
add x0, x1, x0, sxtw 1
ldrh w2, [x0,16]
mov w0, 65535
cmp w2, w0
- beq .L3001
+ beq .L2975
add x1, x23, :lo12:.LANCHOR0
cmp w26, 3
ldrh w0, [x1,3350]
mul w0, w2, w0
add w21, w0, w19
- bne .L3002
+ bne .L2976
orr w21, w21, w24, lsl 24
- b .L3003
-.L3002:
+ b .L2977
+.L2976:
cmp w26, 2
- bne .L3003
+ bne .L2977
ldr w3, [x29,132]
ldrb w21, [x1,3257]
add w0, w0, w3
add w0, w0, w24
orr w21, w0, w21, lsl 24
-.L3003:
+.L2977:
mov w1, 1
str w21, [x28,40]
mov x0, x28
@@ -18745,23 +18596,23 @@ ftl_sblk_dump:
bl printk
ldr x9, [x29,104]
cmp w9, 512
- beq .L3021
+ beq .L2995
cmn w9, #1
- bne .L3005
-.L3021:
+ bne .L2979
+.L2995:
mov w0, 1
str w0, [x29,152]
-.L3005:
+.L2979:
add x0, x23, :lo12:.LANCHOR0
ldr x0, [x0,584]
add x0, x0, x25
ldrb w0, [x0,2]
and w0, w0, 224
cmp w0, 32
- beq .L3001
+ beq .L2975
cmp w0, 224
cset w2, eq
- cbnz w2, .L3001
+ cbnz w2, .L2975
ldr x0, [x28,24]
str x2, [x29,104]
ldr w0, [x0,4]
@@ -18769,82 +18620,82 @@ ftl_sblk_dump:
str w0, [x29,172]
cmn w0, #1
ldr x2, [x29,104]
- bne .L3007
+ bne .L2981
ldr x0, [x28,24]
add x1, x29, 172
ldr w0, [x0,4]
bl pm_log2phys
-.L3007:
+.L2981:
ldr w0, [x29,172]
cmp w0, w21
- bne .L3008
+ bne .L2982
ldr x2, [x28,24]
add w22, w22, 1
- adrp x0, .LC230
+ adrp x0, .LC229
mov w1, w21
- add x0, x0, :lo12:.LC230
+ add x0, x0, :lo12:.LC229
mov w3, w22
ldr w2, [x2,4]
bl printk
-.L3008:
+.L2982:
ldr x0, [x29,144]
- cbz x0, .L3010
+ cbz x0, .L2984
ubfiz x21, x27, 2, 32
ldr w2, [x0,x21]
ldr x0, [x28,24]
ldr w0, [x0,4]
cmp w0, w2
- beq .L3011
+ beq .L2985
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L3011
- adrp x0, .LC231
+ tbz x0, 12, .L2985
+ adrp x0, .LC230
mov w1, w27
- add x0, x0, :lo12:.LC231
+ add x0, x0, :lo12:.LC230
bl printk
-.L3011:
+.L2985:
ldr x0, [x29,144]
ldr x1, [x28,24]
ldr w0, [x0,x21]
ldr w1, [x1,4]
cmp w1, w0
- beq .L3010
+ beq .L2984
cmn w0, #1
- beq .L3010
+ beq .L2984
adrp x0, .LC0
ldr x1, [x29,112]
mov w2, 1300
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3010:
+.L2984:
add w27, w27, 1
-.L3001:
+.L2975:
add w24, w24, 1
uxth w24, w24
- b .L3015
-.L3034:
+ b .L2989
+.L3008:
add w0, w0, 1
uxth w0, w0
str w0, [x29,156]
- b .L3017
-.L3014:
+ b .L2991
+.L2988:
add w19, w19, 1
uxth w19, w19
- b .L3000
-.L3016:
+ b .L2974
+.L2990:
mov x0, x28
bl buf_free
ldr x3, [x29,136]
- adrp x0, .LC232
+ adrp x0, .LC231
ldr x2, [x21,600]
- add x0, x0, :lo12:.LC232
+ add x0, x0, :lo12:.LC231
mov w1, w20
ldrh w2, [x2,x3,lsl 1]
mov w3, w22
bl printk
ldr w0, [x29,152]
-.L2998:
+.L2972:
sub sp, x29, #48
ldp x19, x20, [sp,64]
ldp x21, x22, [sp,80]
@@ -18872,30 +18723,30 @@ zftl_read:
stp x27, x28, [sp,80]
mov w25, w2
mov x23, x3
- tbz x0, 12, .L3036
- adrp x0, .LC233
+ tbz x0, 12, .L3010
+ adrp x0, .LC232
mov w1, w19
- add x0, x0, :lo12:.LC233
+ add x0, x0, :lo12:.LC232
mov w2, w22
mov w3, w25
bl printk
-.L3036:
- cbnz w19, .L3037
+.L3010:
+ cbnz w19, .L3011
adrp x0, .LANCHOR0+520
mov w19, 24576
ldr w2, [x0,#:lo12:.LANCHOR0+520]
- b .L3038
-.L3037:
+ b .L3012
+.L3011:
cmp w19, 3
mov w0, -1
- bhi .L3039
+ bhi .L3013
lsl w19, w19, 13
mov w2, 8192
-.L3038:
+.L3012:
add w1, w22, w25
mov w0, -1
cmp w1, w2
- bhi .L3039
+ bhi .L3013
add w22, w19, w22
adrp x19, .LANCHOR0
add x1, x19, :lo12:.LANCHOR0
@@ -18918,10 +18769,10 @@ zftl_read:
str x0, [x29,128]
adrp x0, .LANCHOR3
add x0, x0, :lo12:.LANCHOR3
- add x0, x0, 720
+ add x0, x0, 696
str x0, [x29,120]
-.L3040:
- cbz w24, .L3100
+.L3014:
+ cbz w24, .L3074
add x0, x19, :lo12:.LANCHOR0
ldr w1, [x29,136]
cmp w20, w27
@@ -18930,12 +18781,12 @@ zftl_read:
ldrb w0, [x0,2832]
cset w26, eq
uxth w21, w0
- cbnz w26, .L3070
- cbz w2, .L3041
- b .L3099
-.L3070:
- cbz w2, .L3043
-.L3099:
+ cbnz w26, .L3044
+ cbz w2, .L3015
+ b .L3073
+.L3044:
+ cbz w2, .L3017
+.L3073:
udiv w26, w22, w0
msub w26, w26, w0, w22
uxth w0, w25
@@ -18944,21 +18795,21 @@ zftl_read:
uxth w21, w21
cmp w21, w25
csel w21, w0, w21, hi
- b .L3041
-.L3043:
+ b .L3015
+.L3017:
msub w21, w0, w20, w28
mov w26, w2
uxtb w21, w21
-.L3041:
+.L3015:
add x1, x19, :lo12:.LANCHOR0
mov w0, 0
add x1, x1, 784
-.L3046:
+.L3020:
ldr w2, [x1,36]
cmp w2, w20
- bne .L3044
+ bne .L3018
ldrb w2, [x1,2]
- tbz x2, 3, .L3044
+ tbz x2, 3, .L3018
add x2, x19, :lo12:.LANCHOR0
ubfiz x1, x0, 6, 32
add x0, x2, x1
@@ -18970,48 +18821,48 @@ zftl_read:
add x23, x23, x21
add x1, x1, x26
bl ftl_memcpy
- b .L3045
-.L3044:
+ b .L3019
+.L3018:
add w0, w0, 1
add x1, x1, 64
cmp w0, 32
- bne .L3046
+ bne .L3020
mov w0, w20
bl lpa_hash_get_ppa
str w0, [x29,156]
cmn w0, #1
- bne .L3047
+ bne .L3021
mov w0, w20
add x1, x29, 156
mov w2, 0
bl pm_log2phys
-.L3047:
+.L3021:
ldr w0, [x29,156]
cmn w0, #1
- bne .L3048
+ bne .L3022
mov w21, 0
-.L3049:
+.L3023:
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,2832]
cmp w21, w0
- bcs .L3045
+ bcs .L3019
madd w0, w20, w0, w21
cmp w0, w22
- bcc .L3050
+ bcc .L3024
cmp w0, w28
- bcs .L3050
+ bcs .L3024
mov x0, x23
mov w1, 0
mov w2, 512
add x23, x23, 512
bl ftl_memset
-.L3050:
+.L3024:
add w21, w21, 1
- b .L3049
-.L3048:
+ b .L3023
+.L3022:
mov w0, 0
bl buf_alloc
- cbz x0, .L3052
+ cbz x0, .L3026
add x2, x19, :lo12:.LANCHOR0
ldr x3, [x2,2864]
ldr w2, [x3,40]
@@ -19027,36 +18878,36 @@ zftl_read:
str w20, [x0,36]
strb w26, [x0,57]
bl zftl_add_read_buf
-.L3045:
+.L3019:
add w20, w20, 1
sub w24, w24, #1
-.L3052:
- cbz w24, .L3071
+.L3026:
+ cbz w24, .L3045
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,2834]
cmp w0, 2
- bhi .L3040
-.L3071:
+ bhi .L3014
+.L3045:
add x2, x19, :lo12:.LANCHOR0
ldrb w1, [x2,3894]
- cbz w1, .L3040
+ cbz w1, .L3014
add x0, x2, 784
ldrb w2, [x2,3893]
add x0, x0, x2, lsl 6
bl sblk_read_page
-.L3055:
+.L3029:
add x0, x19, :lo12:.LANCHOR0
ldrb w1, [x0,3894]
- cbz w1, .L3101
+ cbz w1, .L3075
ldrb w0, [x0,3893]
cmp w0, 255
- bne .L3056
+ bne .L3030
ldr x1, [x29,120]
mov w2, 1064
ldr x0, [x29,128]
bl printk
bl dump_stack
-.L3056:
+.L3030:
add x2, x19, :lo12:.LANCHOR0
add x1, x2, 784
ldrb w21, [x2,3893]
@@ -19066,16 +18917,16 @@ zftl_read:
ldr w8, [x26,52]
strb w0, [x2,3893]
cmn w8, #1
- bne .L3057
+ bne .L3031
ldr x1, [x2,608]
str w8, [x29,140]
ldr w0, [x1,552]
add w0, w0, 1
str w0, [x1,552]
- b .L3058
-.L3057:
+ b .L3032
+.L3031:
cmp w8, 256
- bne .L3058
+ bne .L3032
ldrh w0, [x2,3340]
mov w1, 21
mov w5, 1
@@ -19090,8 +18941,8 @@ zftl_read:
ldrb w4, [x2,3338]
ldr w2, [x26,36]
udiv w4, w0, w4
- adrp x0, .LC234
- add x0, x0, :lo12:.LC234
+ adrp x0, .LC233
+ add x0, x0, :lo12:.LC233
str x4, [x29,112]
uxth w1, w4
bl printk
@@ -19102,7 +18953,7 @@ zftl_read:
mov w1, w5
bl gc_add_sblk
ldr x8, [x29,96]
-.L3058:
+.L3032:
add x9, x19, :lo12:.LANCHOR0
add x1, x9, 784
add x1, x1, x21, lsl 6
@@ -19111,7 +18962,7 @@ zftl_read:
ldr w3, [x0,4]
ldr w0, [x1,36]
cmp w3, w0
- beq .L3059
+ beq .L3033
ldr x3, [x9,608]
str x8, [x29,96]
str x9, [x29,104]
@@ -19119,9 +18970,9 @@ zftl_read:
str x10, [x29,112]
add w0, w0, 1
str w0, [x3,552]
- adrp x0, .LC235
+ adrp x0, .LC234
ldr x7, [x1,24]
- add x0, x0, :lo12:.LC235
+ add x0, x0, :lo12:.LC234
ldr w2, [x10,4]
ldr w3, [x10,8]
ldr w4, [x7]
@@ -19146,7 +18997,7 @@ zftl_read:
mov x1, 0
bl ftl_sblk_dump
ldr x8, [x29,96]
-.L3059:
+.L3033:
add x0, x19, :lo12:.LANCHOR0
add x0, x0, 784
add x0, x0, x21, lsl 6
@@ -19154,35 +19005,35 @@ zftl_read:
ldr w0, [x0,36]
ldr w1, [x1,4]
cmp w1, w0
- bne .L3072
+ bne .L3046
cmn w8, #1
- bne .L3060
-.L3072:
+ bne .L3034
+.L3046:
ldr x1, [x29,120]
mov w2, 1085
ldr x0, [x29,128]
bl printk
bl dump_stack
-.L3060:
+.L3034:
add x1, x19, :lo12:.LANCHOR0
add x0, x1, 784
add x21, x0, x21, lsl 6
ldrb w1, [x1,2832]
ldrb w2, [x21,56]
cmp w1, w2
- bls .L3062
+ bls .L3036
ldrb w3, [x21,57]
lsl w2, w2, 9
ldr x1, [x21,8]
ldr x0, [x21,16]
add x1, x1, x3, lsl 9
bl ftl_memcpy
- b .L3063
-.L3062:
+ b .L3037
+.L3036:
ldrb w0, [x21,2]
and w0, w0, -9
strb w0, [x21,2]
-.L3063:
+.L3037:
add x21, x19, :lo12:.LANCHOR0
mov x1, x26
add x0, x21, 3895
@@ -19192,18 +19043,18 @@ zftl_read:
ldrb w0, [x21,3894]
sub w0, w0, #1
strb w0, [x21,3894]
- b .L3055
-.L3101:
+ b .L3029
+.L3075:
mov w2, -1
strb w1, [x0,3894]
strb w2, [x0,3893]
- b .L3040
-.L3100:
+ b .L3014
+.L3074:
bl timer_get_time
adrp x1, .LANCHOR7-80
str w0, [x1,#:lo12:.LANCHOR7-80]
ldr w0, [x29,140]
-.L3039:
+.L3013:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -19258,34 +19109,34 @@ zftl_debug_proc_write:
stp x23, x24, [sp,80]
stp x25, x26, [sp,96]
mov x21, x2
- bhi .L3105
+ bhi .L3079
mov x0, x19
bl rk_copy_from_user
mov x22, x0
mov x0, -14
- cbnz x22, .L3105
- adrp x0, .LC236
+ cbnz x22, .L3079
+ adrp x0, .LC235
mov x1, x19
- add x0, x0, :lo12:.LC236
+ add x0, x0, :lo12:.LC235
strb w22, [x19,x21]
bl printk
- adrp x0, .LC237
+ adrp x0, .LC236
mov x1, x19
- add x0, x0, :lo12:.LC237
+ add x0, x0, :lo12:.LC236
mov w2, 1
mov w3, 16
bl rknand_print_hex
bl rknand_device_lock
- adrp x1, .LC238
+ adrp x1, .LC237
mov x0, x19
- add x1, x1, :lo12:.LC238
+ add x1, x1, :lo12:.LC237
mov x2, 7
bl memcmp
- cbnz w0, .L3106
+ cbnz w0, .L3080
adrp x23, .LANCHOR0
- adrp x0, .LC239
+ adrp x0, .LC238
add x19, x23, :lo12:.LANCHOR0
- add x0, x0, :lo12:.LC239
+ add x0, x0, :lo12:.LC238
mov w2, 4
adrp x20, .LANCHOR4
ldr x3, [x19,2864]
@@ -19294,19 +19145,19 @@ zftl_debug_proc_write:
bl rknand_print_hex
add x3, x20, :lo12:.LANCHOR4
ldr x1, [x19,2864]
- adrp x0, .LC240
+ adrp x0, .LC239
mov w2, 2
- add x0, x0, :lo12:.LC240
+ add x0, x0, :lo12:.LC239
add x1, x1, 416
ldrh w3, [x3,1164]
mov w19, w22
mov w22, 65535
bl rknand_print_hex
-.L3107:
+.L3081:
add x0, x20, :lo12:.LANCHOR4
ldrh w0, [x0,1164]
cmp w19, w0
- bge .L3110
+ bge .L3084
mov w0, 300
bl msleep
add x0, x23, :lo12:.LANCHOR0
@@ -19314,63 +19165,63 @@ zftl_debug_proc_write:
add x0, x0, x19, sxtw 1
ldrh w0, [x0,416]
cmp w0, w22
- beq .L3108
+ beq .L3082
mov x1, 0
bl ftl_sblk_dump
-.L3108:
+.L3082:
add w19, w19, 1
- b .L3107
-.L3106:
- adrp x1, .LC241
+ b .L3081
+.L3080:
+ adrp x1, .LC240
mov x0, x19
- add x1, x1, :lo12:.LC241
+ add x1, x1, :lo12:.LC240
mov x2, 7
bl memcmp
- cbnz w0, .L3111
+ cbnz w0, .L3085
adrp x23, .LANCHOR0
- adrp x0, .LC239
+ adrp x0, .LC238
add x20, x23, :lo12:.LANCHOR0
- add x0, x0, :lo12:.LC239
+ add x0, x0, :lo12:.LC238
mov w2, 4
add x22, x29, 192
- adrp x24, .LC244
+ adrp x24, .LC243
ldr x3, [x20,2864]
- add x24, x24, :lo12:.LC244
+ add x24, x24, :lo12:.LC243
add x1, x3, 704
ldrh w3, [x3,698]
bl rknand_print_hex
adrp x3, .LANCHOR4+1164
ldr x1, [x20,2864]
- adrp x0, .LC240
+ adrp x0, .LC239
mov w2, 2
- add x0, x0, :lo12:.LC240
+ add x0, x0, :lo12:.LC239
add x1, x1, 416
ldrh w3, [x3,#:lo12:.LANCHOR4+1164]
bl rknand_print_hex
- adrp x0, .LC242
+ adrp x0, .LC241
add x1, x19, 7
- add x0, x0, :lo12:.LC242
+ add x0, x0, :lo12:.LC241
str x1, [x22,-88]!
add x19, x20, 3904
mov x20, x23
bl printk
- adrp x23, .LC243
+ adrp x23, .LC242
ldr x0, [x29,104]
mov x1, x22
add x25, x19, 512
- add x23, x23, :lo12:.LC243
+ add x23, x23, :lo12:.LC242
bl rk_simple_strtoull.constprop.31
mov w22, w0
str w0, [x29,100]
uxth w26, w0
-.L3113:
+.L3087:
ldrh w1, [x19]
mov x0, x23
ldrh w2, [x19,2]
bl printk
ldrh w0, [x19]
cmp w0, w26
- bne .L3112
+ bne .L3086
add x0, x20, :lo12:.LANCHOR0
ldr x1, [x19,8]
mov w2, 4
@@ -19378,10 +19229,10 @@ zftl_debug_proc_write:
mov x0, x24
lsl w3, w3, 7
bl rknand_print_hex
-.L3112:
+.L3086:
add x19, x19, 16
cmp x19, x25
- bne .L3113
+ bne .L3087
mov w0, 300
add x20, x20, :lo12:.LANCHOR0
bl msleep
@@ -19404,8 +19255,8 @@ zftl_debug_proc_write:
str w0, [sp,8]
ldr w0, [x7,12]
str w0, [sp,16]
- adrp x0, .LC206
- add x0, x0, :lo12:.LC206
+ adrp x0, .LC205
+ add x0, x0, :lo12:.LC205
ldr w3, [x6]
ldr w2, [x19,52]
ldr w4, [x6,4]
@@ -19414,28 +19265,28 @@ zftl_debug_proc_write:
ldr w6, [x6,12]
bl printk
ldrb w3, [x20,2832]
- adrp x0, .LC245
- add x0, x0, :lo12:.LC245
+ adrp x0, .LC244
+ add x0, x0, :lo12:.LC244
ldr x1, [x19,8]
mov w2, 4
lsl w3, w3, 7
- b .L3128
-.L3111:
- adrp x1, .LC246
+ b .L3102
+.L3085:
+ adrp x1, .LC245
mov x0, x19
- add x1, x1, :lo12:.LC246
+ add x1, x1, :lo12:.LC245
mov x2, 7
bl memcmp
- cbnz w0, .L3114
+ cbnz w0, .L3088
bl dump_ftl_info
- b .L3110
-.L3114:
- adrp x1, .LC247
+ b .L3084
+.L3088:
+ adrp x1, .LC246
mov x0, x19
- add x1, x1, :lo12:.LC247
+ add x1, x1, :lo12:.LC246
mov x2, 9
bl memcmp
- cbnz w0, .L3115
+ cbnz w0, .L3089
add x1, x29, 192
add x0, x19, 9
str x0, [x1,-88]!
@@ -19444,24 +19295,24 @@ zftl_debug_proc_write:
adrp x1, .LANCHOR0+3336
strh w0, [x1,#:lo12:.LANCHOR0+3336]
bl dump_all_list_info
- b .L3110
-.L3115:
- adrp x1, .LC248
+ b .L3084
+.L3089:
+ adrp x1, .LC247
mov x0, x19
- add x1, x1, :lo12:.LC248
+ add x1, x1, :lo12:.LC247
mov x2, 8
bl memcmp
- cbz w0, .L3110
- adrp x1, .LC249
+ cbz w0, .L3084
+ adrp x1, .LC248
mov x0, x19
- add x1, x1, :lo12:.LC249
+ add x1, x1, :lo12:.LC248
mov x2, 8
bl memcmp
- cbnz w0, .L3117
+ cbnz w0, .L3091
add x20, x29, 192
- adrp x0, .LC242
+ adrp x0, .LC241
add x1, x19, 8
- add x0, x0, :lo12:.LC242
+ add x0, x0, :lo12:.LC241
str x1, [x20,-88]!
bl printk
ldr x0, [x29,104]
@@ -19486,8 +19337,8 @@ zftl_debug_proc_write:
str w0, [sp,8]
ldr w0, [x7,12]
str w0, [sp,16]
- adrp x0, .LC206
- add x0, x0, :lo12:.LC206
+ adrp x0, .LC205
+ add x0, x0, :lo12:.LC205
ldr w3, [x6]
ldr w4, [x6,4]
ldr w5, [x6,8]
@@ -19496,34 +19347,34 @@ zftl_debug_proc_write:
ldr w7, [x7]
bl printk
ldrb w3, [x20,2832]
- adrp x0, .LC201
+ adrp x0, .LC200
ldr x1, [x19,8]
- add x0, x0, :lo12:.LC201
+ add x0, x0, :lo12:.LC200
mov w2, 4
lsl w3, w3, 7
bl rknand_print_hex
ldrb w3, [x20,2832]
- adrp x0, .LC202
+ adrp x0, .LC201
ldr x1, [x19,24]
- add x0, x0, :lo12:.LC202
+ add x0, x0, :lo12:.LC201
mov w2, 4
lsl w3, w3, 1
-.L3128:
+.L3102:
bl rknand_print_hex
mov x0, x19
bl buf_free
- b .L3110
-.L3117:
- adrp x1, .LC250
+ b .L3084
+.L3091:
+ adrp x1, .LC249
mov x0, x19
- add x1, x1, :lo12:.LC250
+ add x1, x1, :lo12:.LC249
mov x2, 8
bl memcmp
- cbnz w0, .L3118
+ cbnz w0, .L3092
add x20, x29, 192
- adrp x0, .LC242
+ adrp x0, .LC241
add x1, x19, 8
- add x0, x0, :lo12:.LC242
+ add x0, x0, :lo12:.LC241
str x1, [x20,-88]!
bl printk
ldr x0, [x29,104]
@@ -19532,18 +19383,18 @@ zftl_debug_proc_write:
str w0, [x29,100]
mov x1, x22
bl ftl_sblk_dump
- b .L3110
-.L3118:
- adrp x1, .LC251
+ b .L3084
+.L3092:
+ adrp x1, .LC250
mov x0, x19
- add x1, x1, :lo12:.LC251
+ add x1, x1, :lo12:.LC250
mov x2, 10
bl memcmp
- cbnz w0, .L3119
+ cbnz w0, .L3093
add x20, x29, 192
- adrp x0, .LC242
+ adrp x0, .LC241
add x1, x19, 10
- add x0, x0, :lo12:.LC242
+ add x0, x0, :lo12:.LC241
str x1, [x20,-88]!
bl printk
ldr x0, [x29,104]
@@ -19552,20 +19403,20 @@ zftl_debug_proc_write:
str w0, [x29,100]
adrp x1, .LANCHOR2
str w0, [x1,#:lo12:.LANCHOR2]
- b .L3110
-.L3119:
- adrp x1, .LC252
+ b .L3084
+.L3093:
+ adrp x1, .LC251
mov x2, 8
mov x0, x19
- add x1, x1, :lo12:.LC252
+ add x1, x1, :lo12:.LC251
bl memcmp
mov w2, w0
str x2, [x29,88]
- cbnz w0, .L3120
+ cbnz w0, .L3094
add x1, x19, 8
- adrp x0, .LC242
+ adrp x0, .LC241
add x19, x29, 192
- add x0, x0, :lo12:.LC242
+ add x0, x0, :lo12:.LC241
str x1, [x19,-88]!
bl printk
ldr x0, [x29,104]
@@ -19576,18 +19427,21 @@ zftl_debug_proc_write:
str w0, [x29,100]
cmn w0, #1
ldr x2, [x29,88]
- bne .L3121
+ bne .L3095
mov w0, w19
add x1, x29, 100
bl pm_log2phys
-.L3121:
- adrp x0, .LC253
+.L3095:
+ adrp x0, .LC252
ldr w2, [x29,100]
mov w1, w19
+ add x0, x0, :lo12:.LC252
+ bl printk
+ b .L3084
+.L3094:
+ adrp x0, .LC253
add x0, x0, :lo12:.LC253
bl printk
- b .L3110
-.L3120:
adrp x0, .LC254
add x0, x0, :lo12:.LC254
bl printk
@@ -19612,13 +19466,10 @@ zftl_debug_proc_write:
adrp x0, .LC261
add x0, x0, :lo12:.LC261
bl printk
- adrp x0, .LC262
- add x0, x0, :lo12:.LC262
- bl printk
-.L3110:
+.L3084:
bl rknand_device_unlock
mov x0, x21
-.L3105:
+.L3079:
sub sp, x29, #32
ldp x19, x20, [sp,48]
ldp x21, x22, [sp,64]
@@ -19629,6 +19480,184 @@ zftl_debug_proc_write:
ret
.size zftl_debug_proc_write, .-zftl_debug_proc_write
.align 2
+ .global gc_check_data_one_wl
+ .type gc_check_data_one_wl, %function
+gc_check_data_one_wl:
+ sub sp, sp, #128
+ stp x29, x30, [sp,16]
+ add x29, sp, 16
+ stp x19, x20, [sp,32]
+ adrp x19, .LANCHOR0
+ add x20, x19, :lo12:.LANCHOR0
+ stp x21, x22, [sp,48]
+ stp x23, x24, [sp,64]
+ stp x25, x26, [sp,80]
+ stp x27, x28, [sp,96]
+ ldr x0, [x20,2904]
+ ldr x23, [x20,608]
+ add x20, x20, 2896
+ cbnz x0, .L3104
+ mov w0, 1
+ bl buf_alloc
+ str x0, [x20,8]
+.L3104:
+ add x0, x19, :lo12:.LANCHOR0
+ ldr x20, [x0,2904]
+ cbnz x20, .L3105
+ adrp x1, .LANCHOR3
+ adrp x0, .LC0
+ add x1, x1, :lo12:.LANCHOR3
+ mov w2, 366
+ add x1, x1, 712
+ add x0, x0, :lo12:.LC0
+ bl printk
+ bl dump_stack
+.L3105:
+ mov w24, 0
+ add x25, x23, 80
+ add x21, x19, :lo12:.LANCHOR0
+ adrp x27, .LANCHOR4
+.L3106:
+ ldrb w0, [x25,9]
+ cmp w24, w0
+ bge .L3129
+ mov w22, 1
+ sxtw x28, w24
+.L3115:
+ add x0, x21, 2896
+ ldrh w1, [x0,20]
+ cmp w22, w1
+ bgt .L3130
+ add x1, x28, 8
+ ldrh w2, [x21,3350]
+ ldrh w0, [x0,16]
+ ldrh w1, [x25,x1,lsl 1]
+ mul w1, w1, w2
+ ldrb w2, [x21,3257]
+ cmp w2, 3
+ bne .L3107
+ add w1, w1, w0
+ orr w1, w1, w22, lsl 24
+ b .L3128
+.L3107:
+ cmp w2, 2
+ bne .L3109
+ sub w0, w0, #1
+ add w1, w0, w1
+ add w1, w1, w22
+ orr w1, w1, 33554432
+ b .L3128
+.L3109:
+ add w1, w1, w0
+.L3128:
+ str w1, [x20,40]
+ mov x0, x20
+ mov w1, 1
+ bl sblk_read_page
+ ldr w0, [x20,52]
+ cmn w0, #1
+ beq .L3110
+ add x2, x27, :lo12:.LANCHOR4
+ ldrh w0, [x21,2918]
+ ldr x1, [x20,24]
+ lsl x0, x0, 2
+ ldr x3, [x2,1136]
+ ldr w4, [x3,x0]
+ ldr w3, [x1,4]
+ cmp w4, w3
+ bne .L3110
+ ldr x2, [x2,1144]
+ ldr w2, [x2,x0]
+ ldr w0, [x1,8]
+ cmp w2, w0
+ beq .L3111
+.L3110:
+ add x26, x27, :lo12:.LANCHOR4
+ ldrh w0, [x21,2918]
+ add x4, x21, 2896
+ ldr x1, [x26,1136]
+ ldr w0, [x1,x0,lsl 2]
+ cmn w0, #1
+ beq .L3111
+ ldrb w5, [x25,9]
+ adrp x0, .LC262
+ ldrh w3, [x21,3274]
+ add x0, x0, :lo12:.LC262
+ mov w2, 4
+ str x4, [x29,104]
+ mul w3, w5, w3
+ bl rknand_print_hex
+ ldrb w5, [x25,9]
+ adrp x0, .LC263
+ ldrh w3, [x21,3274]
+ add x0, x0, :lo12:.LC263
+ ldr x1, [x26,1144]
+ mov w2, 4
+ mul w3, w5, w3
+ bl rknand_print_hex
+ adrp x0, .LANCHOR2
+ ldr x4, [x29,104]
+ ldr w0, [x0,#:lo12:.LANCHOR2]
+ tbz x0, 10, .L3112
+ ldr x7, [x20,24]
+ ldrh w4, [x4,22]
+ ldr x5, [x26,1144]
+ ldr w0, [x7,12]
+ lsl x4, x4, 2
+ ldr x3, [x26,1136]
+ str w0, [sp]
+ adrp x0, .LC264
+ add x0, x0, :lo12:.LC264
+ ldr w3, [x3,x4]
+ ldr w6, [x7,4]
+ ldr w4, [x5,x4]
+ ldr w1, [x20,40]
+ ldr w5, [x7]
+ ldr w2, [x20,52]
+ ldr w7, [x7,8]
+ bl printk
+.L3112:
+ add x19, x19, :lo12:.LANCHOR0
+ mov x1, 0
+ ldr x0, [x19,608]
+ ldrh w0, [x0,80]
+ bl ftl_sblk_dump
+ ldr x0, [x19,600]
+ ldrh w1, [x23,80]
+ strh wzr, [x0,x1,lsl 1]
+ mov w0, -1
+ b .L3113
+.L3111:
+ ldrh w0, [x21,2918]
+ add w22, w22, 1
+ add w0, w0, 1
+ strh w0, [x21,2918]
+ b .L3115
+.L3130:
+ add w24, w24, 1
+ b .L3106
+.L3129:
+ add x19, x19, :lo12:.LANCHOR0
+ ldrh w1, [x19,2912]
+ ldrb w3, [x19,3348]
+ add w0, w1, 1
+ strh w0, [x19,2912]
+ mov w0, 0
+ cbz w3, .L3113
+ add w1, w1, 2
+ strh w1, [x19,2912]
+.L3113:
+ sub sp, x29, #16
+ ldp x19, x20, [sp,32]
+ ldp x21, x22, [sp,48]
+ ldp x23, x24, [sp,64]
+ ldp x25, x26, [sp,80]
+ ldp x27, x28, [sp,96]
+ ldp x29, x30, [sp,16]
+ add sp, sp, 128
+ ret
+ .size gc_check_data_one_wl, .-gc_check_data_one_wl
+ .align 2
.global ftl_update_l2p_map
.type ftl_update_l2p_map, %function
ftl_update_l2p_map:
@@ -19651,7 +19680,7 @@ ftl_update_l2p_map:
add x0, x20, x24, sxtw 2
ldr w0, [x0,-4]
cmn w0, #1
- beq .L3130
+ beq .L3132
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
@@ -19660,24 +19689,24 @@ ftl_update_l2p_map:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3130:
- adrp x0, .LC264
+.L3132:
+ adrp x0, .LC266
mov x28, 0
- add x0, x0, :lo12:.LC264
- adrp x27, .LC263
+ add x0, x0, :lo12:.LC266
+ adrp x27, .LC265
str x0, [x29,120]
- adrp x0, .LC265
- add x0, x0, :lo12:.LC265
+ adrp x0, .LC267
+ add x0, x0, :lo12:.LC267
mov w22, w28
str x0, [x29,112]
- add x27, x27, :lo12:.LC263
-.L3131:
+ add x27, x27, :lo12:.LC265
+.L3133:
cmp w28, w24
mov w25, w28
- bge .L3158
+ bge .L3160
ldr w2, [x20,x28,lsl 2]
cmn w2, #1
- beq .L3132
+ beq .L3134
add x0, x19, :lo12:.LANCHOR0
ldrb w21, [x0,2832]
adrp x0, .LANCHOR2
@@ -19685,22 +19714,22 @@ ftl_update_l2p_map:
ldr w0, [x0,#:lo12:.LANCHOR2]
udiv w21, w2, w21
and w21, w21, 65535
- tbz x0, 12, .L3136
+ tbz x0, 12, .L3138
mov x0, x27
mov w1, w21
mov w3, w28
bl printk
-.L3136:
+.L3138:
sbfiz x26, x25, 2, 32
ldr w0, [x20,x26]
cmn w0, #1
- beq .L3134
+ beq .L3136
add x3, x19, :lo12:.LANCHOR0
ldrb w1, [x3,2832]
lsl w1, w1, 7
udiv w0, w0, w1
cmp w21, w0, uxth
- bne .L3134
+ bne .L3136
ldrb w0, [x23,9]
ldrh w2, [x3,3350]
str x3, [x29,104]
@@ -19714,13 +19743,13 @@ ftl_update_l2p_map:
ldr w1, [x20,x26]
bl pm_ppa_update_check
ldr x3, [x29,104]
- cbz w0, .L3135
+ cbz w0, .L3137
ldr x1, [x3,3872]
mov w2, 4
ldr x0, [x29,112]
mov w3, w24
bl rknand_print_hex
-.L3135:
+.L3137:
ldr w0, [x20,x26]
add x1, x29, 140
mov w2, 1
@@ -19729,27 +19758,27 @@ ftl_update_l2p_map:
uxth w22, w22
mov w0, -1
str w0, [x20,x26]
-.L3134:
+.L3136:
add w25, w25, 1
cmp w25, w24
- bne .L3136
-.L3132:
+ bne .L3138
+.L3134:
add x28, x28, 1
- b .L3131
-.L3158:
+ b .L3133
+.L3160:
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L3138
+ tbz x0, 12, .L3140
add x0, x19, :lo12:.LANCHOR0
ldrh w1, [x23]
mov w2, w22
ubfiz x3, x1, 1, 16
ldr x4, [x0,600]
- adrp x0, .LC266
- add x0, x0, :lo12:.LC266
+ adrp x0, .LC268
+ add x0, x0, :lo12:.LC268
ldrh w3, [x4,x3]
bl printk
-.L3138:
+.L3140:
add x19, x19, :lo12:.LANCHOR0
ldrh w1, [x23]
ldr x0, [x19,600]
@@ -19775,9 +19804,9 @@ ftl_alloc_new_data_sblk:
ldrh w0, [x19]
mov w1, 65535
cmp w0, w1
- beq .L3160
+ beq .L3162
bl zftl_insert_data_list
-.L3160:
+.L3162:
adrp x0, .LANCHOR0+608
mov w2, 2
mov w1, 3
@@ -19816,10 +19845,10 @@ ftl_write_commit:
stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
-.L3164:
+.L3166:
ldrb w0, [x24,2856]
adrp x21, .LANCHOR0
- cbz w0, .L3166
+ cbz w0, .L3168
ldrb w1, [x24,2888]
sub w0, w0, #1
ldr x2, [x29,112]
@@ -19832,7 +19861,7 @@ ftl_write_commit:
strb w1, [x24,2888]
ldr w1, [x27,36]
cmp w1, w0
- bcc .L3167
+ bcc .L3169
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
@@ -19841,7 +19870,7 @@ ftl_write_commit:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3167:
+.L3169:
ldr x0, [x29,128]
add x1, x21, :lo12:.LANCHOR0
add x4, x1, 784
@@ -19849,32 +19878,32 @@ ftl_write_commit:
ldr w2, [x1,2840]
ldr w23, [x0,36]
cmp w23, w2
- bcc .L3168
+ bcc .L3170
mov x0, x27
bl buf_free
mov w0, -1
- b .L3222
-.L3168:
+ b .L3224
+.L3170:
ldr x25, [x0,8]
ldr x28, [x0,24]
ldrb w22, [x0,57]
ldrb w20, [x0,56]
ldrb w0, [x1,2857]
- cbz w0, .L3170
+ cbz w0, .L3172
ldr x0, [x29,120]
ldrb w3, [x0,1267]
add x3, x4, x3, lsl 6
-.L3171:
+.L3173:
ldrb w5, [x3]
cmp w5, 255
- beq .L3224
+ beq .L3226
sbfiz x3, x5, 6, 32
add x3, x4, x3
- b .L3171
-.L3224:
+ b .L3173
+.L3226:
ldr w0, [x3,36]
cmp w0, w23
- bne .L3170
+ bne .L3172
ldr x0, [x3,8]
ubfiz x1, x22, 9, 8
lsl w2, w20, 9
@@ -19883,29 +19912,29 @@ ftl_write_commit:
bl ftl_memcpy
mov x0, x27
bl buf_free
- b .L3164
-.L3170:
+ b .L3166
+.L3172:
mov w0, w23
bl lpa_hash_get_ppa
str w0, [x29,156]
cmn w0, #1
- bne .L3174
+ bne .L3176
mov w0, w23
add x1, x29, 156
mov w2, 0
bl pm_log2phys
-.L3174:
+.L3176:
add x4, x21, :lo12:.LANCHOR0
mov w3, 0
add x4, x4, 784
ldr x19, [x4,-176]
add x19, x19, 16
-.L3177:
+.L3179:
ldr w0, [x4,36]
cmp w0, w23
- bne .L3175
+ bne .L3177
ldrb w5, [x4,2]
- tbz x5, 3, .L3175
+ tbz x5, 3, .L3177
add x0, x21, :lo12:.LANCHOR0
ubfiz x3, x3, 6, 32
add x0, x0, 784
@@ -19915,22 +19944,22 @@ ftl_write_commit:
strb w5, [x3,2]
ldr x26, [x3,8]
str w0, [x29,156]
- b .L3176
-.L3175:
+ b .L3178
+.L3177:
add w3, w3, 1
add x4, x4, 64
cmp w3, 32
- bne .L3177
+ bne .L3179
mov x26, 0
-.L3176:
+.L3178:
add x3, x21, :lo12:.LANCHOR0
str wzr, [x29,136]
ldrb w0, [x3,2832]
cmp w20, w0
- bcs .L3178
+ bcs .L3180
add w20, w22, w20
- cbz x26, .L3179
- cbz w22, .L3180
+ cbz x26, .L3181
+ cbz w22, .L3182
mov x0, x25
mov x1, x26
lsl w2, w22, 9
@@ -19939,28 +19968,28 @@ ftl_write_commit:
ldr x3, [x29,136]
ldr x19, [x3,608]
add x19, x19, 48
-.L3180:
+.L3182:
add x0, x21, :lo12:.LANCHOR0
ldrb w2, [x0,2832]
cmp w20, w2
- bcc .L3181
+ bcc .L3183
ldr x19, [x0,608]
add x19, x19, 16
- b .L3223
-.L3181:
+ b .L3225
+.L3183:
ubfiz x1, x20, 9, 9
sub w2, w2, w20
add x0, x25, x1
lsl w2, w2, 9
add x1, x26, x1
bl ftl_memcpy
-.L3223:
+.L3225:
str wzr, [x29,136]
- b .L3178
-.L3179:
+ b .L3180
+.L3181:
ldr w0, [x29,156]
cmn w0, #1
- beq .L3182
+ beq .L3184
mov w0, 1
bl buf_alloc
mov x26, x0
@@ -19975,11 +20004,11 @@ ftl_write_commit:
add w1, w1, 1
str w1, [x29,136]
cmp w0, w23
- bne .L3183
+ bne .L3185
ldr w0, [x26,52]
cmn w0, #1
- bne .L3184
-.L3183:
+ bne .L3186
+.L3185:
add x0, x21, :lo12:.LANCHOR0
ldr w2, [x29,156]
mov w3, w23
@@ -19987,26 +20016,26 @@ ftl_write_commit:
ldr w0, [x1,552]
add w0, w0, 1
str w0, [x1,552]
- adrp x0, .LC267
+ adrp x0, .LC269
ldrb w1, [x26,1]
- add x0, x0, :lo12:.LC267
+ add x0, x0, :lo12:.LC269
ldr w4, [x26,52]
bl printk
- adrp x0, .LC202
+ adrp x0, .LC201
mov w2, 4
ldr x1, [x26,24]
- add x0, x0, :lo12:.LC202
+ add x0, x0, :lo12:.LC201
mov w3, w2
bl rknand_print_hex
-.L3184:
+.L3186:
ldr x0, [x26,24]
ldr w0, [x0,4]
cmp w0, w23
- bne .L3185
+ bne .L3187
ldr w0, [x26,52]
cmn w0, #1
- bne .L3186
-.L3185:
+ bne .L3188
+.L3187:
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
@@ -20015,55 +20044,55 @@ ftl_write_commit:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3186:
- cbz w22, .L3187
+.L3188:
+ cbz w22, .L3189
ldr w0, [x29,156]
lsl w2, w22, 9
cmn w0, #1
- beq .L3188
+ beq .L3190
ldr x1, [x26,8]
mov x0, x25
bl ftl_memcpy
- b .L3189
-.L3182:
- cbz w22, .L3187
+ b .L3191
+.L3184:
+ cbz w22, .L3189
lsl w2, w22, 9
-.L3188:
+.L3190:
mov x0, x25
mov w1, 0
bl ftl_memset
-.L3189:
+.L3191:
add x0, x21, :lo12:.LANCHOR0
ldr x19, [x0,608]
add x19, x19, 48
-.L3187:
+.L3189:
add x0, x21, :lo12:.LANCHOR0
ldrb w2, [x0,2832]
cmp w20, w2
- bcc .L3190
- bls .L3191
+ bcc .L3192
+ bls .L3193
ldr x19, [x0,608]
add x19, x19, 16
- b .L3191
-.L3190:
+ b .L3193
+.L3192:
ldr w0, [x29,156]
sub w2, w2, w20
lsl w2, w2, 9
cmn w0, #1
ubfiz x0, x20, 7, 9
- beq .L3192
+ beq .L3194
ldr x1, [x26,8]
lsl x20, x0, 2
add x0, x25, x20
add x1, x1, x20
bl ftl_memcpy
- b .L3191
-.L3192:
+ b .L3193
+.L3194:
add x0, x25, x0, lsl 2
mov w1, 0
bl ftl_memset
-.L3191:
- cbz x26, .L3178
+.L3193:
+ cbz x26, .L3180
ldrb w0, [x26,2]
mov x1, x26
and w0, w0, -9
@@ -20073,13 +20102,13 @@ ftl_write_commit:
bl buf_remove_buf
mov x0, x26
bl buf_free
-.L3178:
+.L3180:
ldrh w0, [x19,6]
- cbnz w0, .L3193
+ cbnz w0, .L3195
bl ftl_flush
mov x0, x19
bl ftl_alloc_new_data_sblk
-.L3193:
+.L3195:
mov x0, x19
add x20, x21, :lo12:.LANCHOR0
bl ftl_get_new_free_page
@@ -20119,11 +20148,11 @@ ftl_write_commit:
str w0, [x1,1268]
cmp w2, 2
adrp x0, .LANCHOR4
- bhi .L3194
+ bhi .L3196
ldrh w1, [x19,6]
cmp w1, 1
- bne .L3166
-.L3194:
+ bne .L3168
+.L3196:
ldrb w1, [x19,5]
mov w4, 2
add x6, x21, :lo12:.LANCHOR0
@@ -20137,14 +20166,14 @@ ftl_write_commit:
ldrb w5, [x1,1267]
mov w1, 0
mov w3, w5
-.L3198:
+.L3200:
cmp w1, w4
- beq .L3225
+ beq .L3227
ubfiz x3, x3, 6, 8
add w1, w1, 1
ldrb w3, [x6,x3]
- b .L3198
-.L3225:
+ b .L3200
+.L3227:
add x0, x0, :lo12:.LANCHOR4
uxtb w1, w1
sub w2, w2, w1
@@ -20157,20 +20186,20 @@ ftl_write_commit:
bl sblk_prog_page
ldrh w0, [x19,6]
cmp w0, 1
- bne .L3166
+ bne .L3168
bl sblk_wait_write_queue_completed
bl ftl_write_completed
mov x0, x19
bl ftl_write_last_log_page
mov x0, x19
bl ftl_alloc_new_data_sblk
-.L3166:
+.L3168:
add x21, x21, :lo12:.LANCHOR0
ldrb w19, [x21,2856]
- cbnz w19, .L3164
+ cbnz w19, .L3166
bl ftl_write_completed
mov w0, w19
-.L3222:
+.L3224:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -20195,10 +20224,10 @@ gc_do_copy_back:
stp x27, x28, [sp,96]
ldrb w0, [x21,3273]
ldr x22, [x21,608]
- cbnz w0, .L3227
+ cbnz w0, .L3229
bl buf_alloc
mov x20, x0
- cbz x0, .L3226
+ cbz x0, .L3228
ldrh w22, [x21,2922]
mov w0, w22
add w22, w22, 1
@@ -20211,60 +20240,60 @@ gc_do_copy_back:
bl sblk_read_page
ldr w0, [x20,52]
cmp w0, 512
- beq .L3280
+ beq .L3282
cmn w0, #1
- bne .L3229
-.L3280:
+ bne .L3231
+.L3282:
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 595
+ mov w2, 600
add x1, x1, 784
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3229:
+.L3231:
ldr x0, [x20,24]
ldr w21, [x0,4]
mov w0, w21
bl lpa_hash_get_ppa
str w0, [x29,144]
cmn w0, #1
- bne .L3231
+ bne .L3233
mov w0, w21
add x1, x29, 144
mov w2, 0
bl pm_log2phys
-.L3231:
+.L3233:
ldr w22, [x29,144]
cmp w22, w23
- bne .L3232
+ bne .L3234
add x1, x19, :lo12:.LANCHOR0
add x0, x1, 784
add x1, x1, 2832
-.L3235:
+.L3237:
ldr w2, [x0,36]
cmp w2, w21
- bne .L3233
+ bne .L3235
ldrb w2, [x0,2]
- tbz x2, 1, .L3233
+ tbz x2, 1, .L3235
mov x0, x20
bl buf_free
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3226
+ tbz x0, 8, .L3228
add x19, x19, :lo12:.LANCHOR0
- adrp x0, .LC268
+ adrp x0, .LC270
mov w1, w21
mov w2, w22
- add x0, x0, :lo12:.LC268
+ add x0, x0, :lo12:.LC270
ldrh w3, [x19,2922]
bl printk
- b .L3226
-.L3233:
+ b .L3228
+.L3235:
add x0, x0, 64
cmp x0, x1
- bne .L3235
+ bne .L3237
add x23, x19, :lo12:.LANCHOR0
ldrb w1, [x20,2]
str w21, [x20,36]
@@ -20279,20 +20308,20 @@ gc_do_copy_back:
str w0, [x20,32]
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3236
+ tbz x0, 8, .L3238
ldr w2, [x29,144]
mov w0, w21
str x2, [x29,136]
bl lpa_hash_get_ppa
mov w3, w0
ldr x2, [x29,136]
- adrp x0, .LC269
+ adrp x0, .LC271
ldrh w5, [x23,2922]
- add x0, x0, :lo12:.LC269
+ add x0, x0, :lo12:.LC271
mov w1, w21
mov w4, w22
bl printk
-.L3236:
+.L3238:
add x19, x19, :lo12:.LANCHOR0
mov x0, x20
bl ftl_gc_write_buf
@@ -20304,34 +20333,34 @@ gc_do_copy_back:
ldrh w0, [x19,2924]
add w0, w0, 1
strh w0, [x19,2924]
- b .L3226
-.L3232:
+ b .L3228
+.L3234:
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3238
+ tbz x0, 8, .L3240
mov w0, w21
add x19, x19, :lo12:.LANCHOR0
bl lpa_hash_get_ppa
mov w3, w0
ldrh w5, [x19,2922]
- adrp x0, .LC269
- add x0, x0, :lo12:.LC269
+ adrp x0, .LC271
+ add x0, x0, :lo12:.LC271
mov w1, w21
mov w2, w22
mov w4, w23
bl printk
-.L3238:
+.L3240:
mov x0, x20
bl buf_free
- b .L3226
-.L3227:
+ b .L3228
+.L3229:
ldrb w24, [x21,3257]
add x0, x21, 2896
add x22, x22, 80
cmp w24, 3
- bne .L3239
+ bne .L3241
ldrb w1, [x21,3272]
- cbz w1, .L3240
+ cbz w1, .L3242
ldrb w20, [x22,9]
ldrh w21, [x0,314]
str w24, [x29,136]
@@ -20340,8 +20369,8 @@ gc_do_copy_back:
sdiv w23, w21, w23
madd w20, w23, w20, w21
uxth w20, w20
- b .L3242
-.L3240:
+ b .L3244
+.L3242:
ldrh w20, [x0,314]
adrp x0, .LANCHOR2
ldrb w21, [x22,9]
@@ -20358,9 +20387,9 @@ gc_do_copy_back:
cmp w25, 1
add w21, w21, w21, lsl 1
uxth w21, w21
- bne .L3243
- b .L3242
-.L3239:
+ bne .L3245
+ b .L3244
+.L3241:
ldrb w20, [x22,9]
ldrb w1, [x21,3348]
ldrh w21, [x0,314]
@@ -20368,38 +20397,38 @@ gc_do_copy_back:
sdiv w23, w21, w20
msub w20, w23, w20, w21
uxth w20, w20
- cbz w1, .L3321
+ cbz w1, .L3323
mov w0, 2
-.L3321:
+.L3323:
str w0, [x29,136]
-.L3242:
+.L3244:
mov w25, 0
add x24, x19, :lo12:.LANCHOR0
adrp x3, .LANCHOR4
-.L3245:
+.L3247:
ldrb w1, [x22,9]
ldr w0, [x29,136]
mul w0, w0, w1
cmp w25, w0
- bge .L3278
+ bge .L3280
ldrh w0, [x24,3274]
add w26, w21, w25
mul w0, w0, w1
sub w0, w0, #1
cmp w26, w0
- beq .L3278
+ beq .L3280
add x0, x3, :lo12:.LANCHOR4
sbfiz x26, x26, 2, 32
ldr x1, [x0,1144]
ldr w0, [x1,x26]
cmn w0, #1
- bne .L3246
+ bne .L3248
ldrh w27, [x24,2922]
ldrh w0, [x24,2920]
str x3, [x29,120]
str x1, [x29,128]
cmp w0, w27
- bls .L3226
+ bls .L3228
mov w0, w27
add w27, w27, 1
bl gc_get_src_ppa_from_index
@@ -20407,17 +20436,17 @@ gc_do_copy_back:
ldr x1, [x29,128]
ldr x3, [x29,120]
str w0, [x1,x26]
-.L3246:
+.L3248:
add w25, w25, 1
uxth w25, w25
- b .L3245
-.L3278:
+ b .L3247
+.L3280:
mov w25, 1
-.L3243:
+.L3245:
adrp x0, .LANCHOR2
str x0, [x29,120]
ldr w1, [x0,#:lo12:.LANCHOR2]
- tbz x1, 8, .L3248
+ tbz x1, 8, .L3250
adrp x0, .LANCHOR4+1144
add x4, x19, :lo12:.LANCHOR0
ubfiz x5, x21, 2, 16
@@ -20425,13 +20454,13 @@ gc_do_copy_back:
mov w2, w25
mov w3, w20
ldr x6, [x0,#:lo12:.LANCHOR4+1144]
- adrp x0, .LC270
+ adrp x0, .LC272
ldrh w4, [x4,3210]
- add x0, x0, :lo12:.LC270
+ add x0, x0, :lo12:.LC272
ldr w5, [x6,x5]
mov w6, w21
bl printk
-.L3248:
+.L3250:
adrp x0, .LC0
mov w27, 0
add x0, x0, :lo12:.LC0
@@ -20440,12 +20469,12 @@ gc_do_copy_back:
add x0, x0, :lo12:.LANCHOR3
add x0, x0, 784
str x0, [x29,104]
-.L3249:
+.L3251:
ldrb w0, [x22,9]
ldr w1, [x29,136]
mul w0, w1, w0
cmp w27, w0
- bge .L3325
+ bge .L3327
add w26, w21, w27
sxtw x0, w26
str x0, [x29,128]
@@ -20454,11 +20483,11 @@ gc_do_copy_back:
ldr x0, [x0,3264]
ldrb w0, [x0,x1]
cmp w0, 255
- bne .L3250
+ bne .L3252
mov w0, 0
bl buf_alloc
mov x24, x0
- cbnz x0, .L3251
+ cbnz x0, .L3253
bl sblk_wait_write_queue_completed
bl ftl_write_completed
bl gc_write_completed
@@ -20466,8 +20495,8 @@ gc_do_copy_back:
mov w0, w24
bl buf_alloc
mov x24, x0
- cbz x0, .L3226
-.L3251:
+ cbz x0, .L3228
+.L3253:
add x28, x19, :lo12:.LANCHOR0
ldr x2, [x29,128]
ldrb w1, [x24,1]
@@ -20484,7 +20513,7 @@ gc_do_copy_back:
sub w0, w0, #1
cmp w26, w0
adrp x26, .LANCHOR4
- bne .L3252
+ bne .L3254
add x26, x26, :lo12:.LANCHOR4
mov w1, -1
ldr x0, [x26,1136]
@@ -20524,8 +20553,8 @@ gc_do_copy_back:
ldr x1, [x28,608]
ldr x0, [x24,24]
ldr w1, [x1,132]
- b .L3322
-.L3252:
+ b .L3324
+.L3254:
ldr x0, [x29,128]
mov w1, 1
lsl x28, x0, 2
@@ -20537,10 +20566,10 @@ gc_do_copy_back:
bl sblk_read_page
ldr w0, [x24,52]
cmp w0, 512
- beq .L3253
+ beq .L3255
cmn w0, #1
- bne .L3254
-.L3253:
+ bne .L3256
+.L3255:
add x4, x19, :lo12:.LANCHOR0
mov w2, 21
mov w1, 1
@@ -20557,35 +20586,35 @@ gc_do_copy_back:
bl ftl_sblk_dump
ldr w0, [x24,52]
cmp w0, 512
- beq .L3281
+ beq .L3283
cmn w0, #1
- bne .L3254
-.L3281:
+ bne .L3256
+.L3283:
ldr x0, [x24,24]
mov w1, -1
str w1, [x0,4]
-.L3254:
+.L3256:
ldr w0, [x24,52]
cmp w0, 512
- beq .L3282
+ beq .L3284
cmn w0, #1
- bne .L3257
-.L3282:
+ bne .L3259
+.L3284:
ldr x1, [x29,104]
- mov w2, 710
+ mov w2, 715
ldr x0, [x29,112]
bl printk
bl dump_stack
-.L3257:
+.L3259:
ldr x1, [x24,24]
add x0, x19, :lo12:.LANCHOR0
ldr w2, [x1,4]
ldr w0, [x0,2840]
cmp w2, w0
- bcc .L3259
+ bcc .L3261
mov w0, -1
str w0, [x1,4]
-.L3259:
+.L3261:
ldr x0, [x24,24]
add x26, x26, :lo12:.LANCHOR4
ldr w1, [x0,4]
@@ -20593,9 +20622,9 @@ gc_do_copy_back:
str w1, [x0,x28]
ldr x0, [x24,24]
ldr w1, [x24,40]
-.L3322:
+.L3324:
str w1, [x0,8]
-.L3250:
+.L3252:
add x3, x19, :lo12:.LANCHOR0
ldr x2, [x29,128]
add x1, x3, 784
@@ -20611,7 +20640,7 @@ gc_do_copy_back:
cmp w0, 3
strb w25, [x1,61]
adrp x2, .LANCHOR4
- bne .L3260
+ bne .L3262
udiv w0, w27, w0
ldrh w3, [x3,3350]
add x2, x2, :lo12:.LANCHOR4
@@ -20629,30 +20658,30 @@ gc_do_copy_back:
add w0, w0, 1
orr w0, w3, w0, lsl 24
str w0, [x1,x4,lsl 2]
- b .L3261
-.L3260:
+ b .L3263
+.L3262:
cmp w0, 2
- bne .L3262
+ bne .L3264
ldrb w6, [x3,3348]
add x1, x1, 32
ldrh w0, [x3,3350]
- cbnz w6, .L3263
+ cbnz w6, .L3265
add w3, w27, w20
add x3, x22, x3, sxtw 1
ldrh w3, [x3,16]
madd w0, w3, w0, w23
- b .L3324
-.L3263:
+ b .L3326
+.L3265:
add w3, w20, w27, lsr 1
add x3, x22, x3, sxtw 1
ldrh w3, [x3,16]
madd w0, w3, w0, w23
and w3, w27, 1
add w0, w0, w3
-.L3324:
+.L3326:
orr w0, w0, 33554432
str w0, [x1,8]
-.L3262:
+.L3264:
add x0, x19, :lo12:.LANCHOR0
add x2, x2, :lo12:.LANCHOR4
add x0, x0, 784
@@ -20661,10 +20690,10 @@ gc_do_copy_back:
ldrh w1, [x0,48]
ldr x0, [x2,1152]
str w3, [x0,x1,lsl 2]
-.L3261:
+.L3263:
ldr x0, [x29,120]
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3264
+ tbz x0, 8, .L3266
add x0, x29, 144
ldr x1, [x29,128]
mov w2, w25
@@ -20683,57 +20712,57 @@ gc_do_copy_back:
ldr x0, [x5,24]
ldr w0, [x0,4]
str w0, [sp,8]
- adrp x0, .LC271
- add x0, x0, :lo12:.LC271
+ adrp x0, .LC273
+ add x0, x0, :lo12:.LC273
ldr w5, [x5,40]
bl printk
-.L3264:
+.L3266:
add w8, w27, 1
uxth w27, w8
- b .L3249
-.L3325:
+ b .L3251
+.L3327:
add x2, x19, :lo12:.LANCHOR0
mov w1, 0
ldrb w0, [x2,3257]
cmp w0, 3
add x0, x29, 144
- bne .L3308
+ bne .L3310
ldrb w1, [x2,3272]
- cbz w1, .L3267
-.L3270:
+ cbz w1, .L3269
+.L3272:
ldr x1, [x29,144]
strb wzr, [x1,60]
- b .L3268
-.L3267:
+ b .L3270
+.L3269:
cmp w25, 1
mov w2, 9
- beq .L3323
+ beq .L3325
cmp w25, 2
- bne .L3270
+ bne .L3272
mov w2, 13
-.L3323:
+.L3325:
ldr x1, [x29,144]
strb w2, [x1,60]
-.L3268:
+.L3270:
ldrb w2, [x22,9]
add x1, x0, 24
bl sblk_xlc_prog_pages
- b .L3271
-.L3308:
+ b .L3273
+.L3310:
ldrb w2, [x22,9]
ldr w3, [x29,136]
mul w2, w2, w3
sub w2, w2, #1
cmp w1, w2
- bge .L3326
+ bge .L3328
ldr x2, [x0,w1,sxtw 3]
add w1, w1, 1
ldr x3, [x0,w1,sxtw 3]
uxth w1, w1
ldrb w3, [x3,1]
strb w3, [x2]
- b .L3308
-.L3326:
+ b .L3310
+.L3328:
ldr x0, [x0,w2,sxtw 3]
mov w1, -1
strb w1, [x0]
@@ -20741,20 +20770,20 @@ gc_do_copy_back:
ldr x0, [x29,144]
mul w1, w3, w1
bl sblk_prog_page
-.L3271:
+.L3273:
add x1, x19, :lo12:.LANCHOR0
ldrb w2, [x22,9]
ldrb w3, [x1,3272]
- cbz w3, .L3273
+ cbz w3, .L3275
add w0, w2, w2, lsl 1
and w2, w0, 1023
- b .L3274
-.L3273:
+ b .L3276
+.L3275:
ldrb w1, [x1,3348]
ubfiz w0, w2, 1, 8
cmp w1, wzr
csel w2, w0, w2, ne
-.L3274:
+.L3276:
add x19, x19, :lo12:.LANCHOR0
ldr x1, [x19,2864]
ldr w0, [x1,52]
@@ -20768,12 +20797,12 @@ gc_do_copy_back:
ldrb w2, [x22,9]
mul w1, w1, w2
cmp w0, w1
- blt .L3275
+ blt .L3277
ldr x0, [x19,608]
strh wzr, [x0,86]
-.L3275:
+.L3277:
bl gc_write_completed
-.L3226:
+.L3228:
sub sp, x29, #16
ldp x19, x20, [sp,32]
ldp x21, x22, [sp,48]
@@ -20806,63 +20835,63 @@ zftl_do_gc:
add w20, w0, w20
ldrh w22, [x1,2846]
uxth w20, w20
- bne .L3328
+ bne .L3330
adrp x21, .LANCHOR7
add x1, x21, :lo12:.LANCHOR7
ldr w23, [x1,-80]
- cbnz w23, .L3329
+ cbnz w23, .L3331
ldr w1, [x1,-76]
- cbz w1, .L3328
-.L3329:
+ cbz w1, .L3330
+.L3331:
add x1, x19, :lo12:.LANCHOR0
ldrh w2, [x1,3306]
cmp w20, w2, lsr 2
- bls .L3328
+ bls .L3330
ldrh w1, [x1,2872]
cmp w1, w20
- bcs .L3328
+ bcs .L3330
add w23, w23, 20
bl timer_get_time
cmp w23, w0
- bcs .L3330
+ bcs .L3332
add x0, x21, :lo12:.LANCHOR7
str wzr, [x0,-80]
-.L3330:
+.L3332:
add x19, x21, :lo12:.LANCHOR7
ldr w20, [x19,-76]
bl timer_get_time
add w20, w20, 20
cmp w20, w0
- bcs .L3511
+ bcs .L3515
str wzr, [x19,-76]
- b .L3511
-.L3328:
+ b .L3515
+.L3330:
adrp x23, .LANCHOR4
add x1, x23, :lo12:.LANCHOR4
ldrb w2, [x1,1130]
mov w1, 16
cmp w2, 6
- bhi .L3484
- adrp x1, .L3334
- add x1, x1, :lo12:.L3334
+ bhi .L3488
+ adrp x1, .L3336
+ add x1, x1, :lo12:.L3336
ldrh w1, [x1,w2,uxtw #1]
- adr x2, .Lrtx3334
+ adr x2, .Lrtx3336
add x1, x2, w1, sxth #2
br x1
-.Lrtx3334:
+.Lrtx3336:
.section .rodata
.align 0
.align 2
-.L3334:
- .2byte (.L3333 - .Lrtx3334) / 4
- .2byte (.L3335 - .Lrtx3334) / 4
- .2byte (.L3336 - .Lrtx3334) / 4
- .2byte (.L3337 - .Lrtx3334) / 4
- .2byte (.L3338 - .Lrtx3334) / 4
- .2byte (.L3442 - .Lrtx3334) / 4
- .2byte (.L3340 - .Lrtx3334) / 4
+.L3336:
+ .2byte (.L3335 - .Lrtx3336) / 4
+ .2byte (.L3337 - .Lrtx3336) / 4
+ .2byte (.L3338 - .Lrtx3336) / 4
+ .2byte (.L3339 - .Lrtx3336) / 4
+ .2byte (.L3340 - .Lrtx3336) / 4
+ .2byte (.L3446 - .Lrtx3336) / 4
+ .2byte (.L3342 - .Lrtx3336) / 4
.text
-.L3333:
+.L3335:
add x21, x19, :lo12:.LANCHOR0
add w22, w22, w0
ldrh w1, [x24,80]
@@ -20873,12 +20902,12 @@ zftl_do_gc:
mov w0, 65535
cmp w1, w0
uxth w25, w25
- beq .L3341
- cbnz w26, .L3342
+ beq .L3343
+ cbnz w26, .L3344
ldrh w0, [x21,2872]
cmp w20, w0, lsl 1
- bge .L3511
-.L3342:
+ bge .L3515
+.L3344:
add x21, x19, :lo12:.LANCHOR0
mov w1, 5
ldrh w0, [x21,3304]
@@ -20889,7 +20918,7 @@ zftl_do_gc:
uxth w2, w0
mov w1, 65535
cmp w2, w1
- beq .L3344
+ beq .L3346
add x3, x23, :lo12:.LANCHOR4
ubfiz x2, x2, 1, 16
ldr w1, [x3,1132]
@@ -20899,112 +20928,112 @@ zftl_do_gc:
ldrh w2, [x3,x2]
ldrh w3, [x21,3300]
cmp w3, w2
- bcs .L3345
+ bcs .L3347
ldrh w3, [x21,576]
cmp w1, w3, lsr 4
- bls .L3344
+ bls .L3346
ldrh w1, [x21,2874]
cmp w1, w2
- bls .L3344
-.L3345:
+ bls .L3346
+.L3347:
add x2, x19, :lo12:.LANCHOR0
mov w1, 0
ldrb w2, [x2,3273]
bl gc_add_sblk
- cbz w0, .L3346
+ cbz w0, .L3348
add x23, x23, :lo12:.LANCHOR4
mov w0, 1
str wzr, [x23,1132]
strb w0, [x23,1130]
- b .L3511
-.L3344:
+ b .L3515
+.L3346:
add x0, x19, :lo12:.LANCHOR0
strh wzr, [x0,3304]
-.L3346:
+.L3348:
cmp w22, 15
mov w21, 2
- bls .L3347
- cbz w25, .L3444
+ bls .L3349
+ cbz w25, .L3448
add x0, x19, :lo12:.LANCHOR0
mov w21, 1
ldrh w1, [x0,2854]
ldrh w0, [x0,3308]
cmp w1, w0
- bls .L3347
-.L3444:
+ bls .L3349
+.L3448:
mov w21, 2
-.L3347:
+.L3349:
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3348
+ tbz x0, 8, .L3350
add x1, x19, :lo12:.LANCHOR0
mov w3, w20
mov w4, w22
ldr x0, [x1,608]
ldrb w2, [x1,3273]
- mov w1, 1848
+ mov w1, 1853
ldrh w5, [x0,124]
ldrh w6, [x0,120]
ldrh w7, [x0,122]
ldrh w0, [x24,80]
str w0, [sp]
- adrp x0, .LC272
- add x0, x0, :lo12:.LC272
+ adrp x0, .LC274
+ add x0, x0, :lo12:.LC274
bl printk
-.L3348:
+.L3350:
add x19, x19, :lo12:.LANCHOR0
mov w1, w21
mov w2, 1
ldrb w0, [x19,3273]
bl gc_search_src_blk
cmp w0, wzr
- ble .L3349
-.L3350:
+ ble .L3351
+.L3352:
add x23, x23, :lo12:.LANCHOR4
mov w0, 1
- b .L3514
-.L3349:
+ b .L3518
+.L3351:
ldrb w0, [x19,3273]
mov w1, 3
mov w2, 1
bl gc_search_src_blk
cmp w0, wzr
- bgt .L3350
- b .L3511
-.L3341:
+ bgt .L3352
+ b .L3515
+.L3343:
cmp w26, 1
- bne .L3351
+ bne .L3353
bl gc_scan_static_data
ldr x0, [x21,608]
ldrh w0, [x0,122]
- cbz w0, .L3352
-.L3353:
+ cbz w0, .L3354
+.L3355:
add x19, x19, :lo12:.LANCHOR0
mov w0, 1
add x23, x23, :lo12:.LANCHOR4
strb w0, [x19,3273]
- b .L3514
-.L3352:
+ b .L3518
+.L3354:
bl gc_static_wearleveling
- cbnz w0, .L3353
+ cbnz w0, .L3355
bl gc_block_vpn_scan
- cbz w22, .L3445
+ cbz w22, .L3449
cmp w20, w25
- bcs .L3356
+ bcs .L3358
ldrh w0, [x21,3306]
cmp w20, w0, lsl 1
- blt .L3357
-.L3356:
+ blt .L3359
+.L3358:
add x0, x19, :lo12:.LANCHOR0
add w1, w20, w25
ldrh w2, [x0,3306]
cmp w1, w2, lsl 1
- blt .L3357
+ blt .L3359
ldrh w1, [x0,2854]
ldrh w0, [x0,3308]
cmp w1, w0
- bcc .L3445
-.L3357:
+ bcc .L3449
+.L3359:
add x21, x19, :lo12:.LANCHOR0
add x27, x23, :lo12:.LANCHOR4
mov w28, 1
@@ -21014,17 +21043,17 @@ zftl_do_gc:
strb w28, [x21,3273]
str w1, [x27,1132]
cmp w1, w0, lsr 5
- bls .L3359
+ bls .L3361
ldrh w0, [x21,2854]
cmp w0, w22
- bls .L3359
+ bls .L3361
mov w1, 5
mov w0, 0
bl zftl_get_gc_node
uxth w1, w0
mov w0, 65535
cmp w1, w0
- beq .L3445
+ beq .L3449
ubfiz x1, x1, 1, 16
ldr x0, [x21,600]
ldrb w2, [x21,3276]
@@ -21033,47 +21062,47 @@ zftl_do_gc:
ldrh w1, [x21,3300]
mul w1, w1, w2
cmp w0, w1
- bgt .L3355
+ bgt .L3357
str wzr, [x27,1132]
mov w0, w28
mov w1, 2
- b .L3504
-.L3359:
+ b .L3508
+.L3361:
add x0, x19, :lo12:.LANCHOR0
ldrh w2, [x0,2854]
ldrh w1, [x0,3308]
cmp w2, w1
- bcc .L3362
+ bcc .L3364
mov w0, 1
mov w1, 2
mov w2, w0
- b .L3505
-.L3362:
+ b .L3509
+.L3364:
ldrh w24, [x0,2850]
- cbnz w24, .L3363
+ cbnz w24, .L3365
ldrh w0, [x0,2852]
cmp w0, 8
- bls .L3355
-.L3363:
+ bls .L3357
+.L3365:
mov w0, 1
mov w1, w0
-.L3504:
+.L3508:
mov w2, 4
-.L3505:
+.L3509:
bl gc_search_src_blk
uxth w0, w0
- cbnz w0, .L3350
- b .L3445
-.L3351:
+ cbnz w0, .L3352
+ b .L3449
+.L3353:
ldrh w0, [x21,2872]
cmp w0, w20
- bcc .L3511
-.L3445:
+ bcc .L3515
+.L3449:
mov w24, 16
-.L3355:
+.L3357:
add x21, x19, :lo12:.LANCHOR0
ldr w0, [x21,2884]
- cbz w0, .L3364
+ cbz w0, .L3366
mov w0, 1
mov w1, 5
strb w0, [x21,3273]
@@ -21083,105 +21112,105 @@ zftl_do_gc:
uxth w1, w0
mov w2, 65535
cmp w1, w2
- beq .L3365
+ beq .L3367
ubfiz x1, x1, 1, 16
ldr x2, [x21,600]
ldrh w1, [x2,x1]
cmp w1, 8
- bhi .L3365
+ bhi .L3367
mov w2, 1
mov w1, 0
str w2, [x21,2884]
bl gc_add_sblk
- cbnz w0, .L3350
-.L3365:
+ cbnz w0, .L3352
+.L3367:
mov w1, 4
mov w0, 0
bl zftl_get_gc_node
uxth w1, w0
mov w2, 65535
cmp w1, w2
- beq .L3366
+ beq .L3368
add x3, x19, :lo12:.LANCHOR0
ubfiz x1, x1, 1, 16
ldr x2, [x3,600]
ldrh w1, [x2,x1]
cmp w1, 4
- bhi .L3366
+ bhi .L3368
mov w2, 1
mov w1, 0
str w2, [x3,2884]
bl gc_add_sblk
- cbnz w0, .L3350
-.L3366:
+ cbnz w0, .L3352
+.L3368:
mov w0, 0
bl zftl_get_gc_node.part.12
uxth w1, w0
mov w2, 65535
cmp w1, w2
- beq .L3364
+ beq .L3366
add x2, x19, :lo12:.LANCHOR0
ubfiz x1, x1, 1, 16
ldr x3, [x2,600]
ldrh w1, [x3,x1]
cmp w1, 4
- bhi .L3364
+ bhi .L3366
mov w1, 1
str w1, [x2,2884]
mov w2, 0
bl gc_add_sblk
- cbnz w0, .L3350
-.L3364:
+ cbnz w0, .L3352
+.L3366:
add x21, x19, :lo12:.LANCHOR0
mov w0, 1
ldr x7, [x21,608]
strb w0, [x21,3273]
ldrh w5, [x7,124]
- cbz w5, .L3367
+ cbz w5, .L3369
add x23, x23, :lo12:.LANCHOR4
strb wzr, [x21,3273]
strb w0, [x23,1130]
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3368
+ tbz x0, 8, .L3370
ldrh w6, [x7,120]
- adrp x0, .LC273
+ adrp x0, .LC275
ldrh w7, [x7,122]
- mov w1, 1946
+ mov w1, 1951
mov w2, 0
mov w3, w20
mov w4, w22
- add x0, x0, :lo12:.LC273
+ add x0, x0, :lo12:.LC275
bl printk
- b .L3368
-.L3367:
+ b .L3370
+.L3369:
ldrh w2, [x21,2872]
cmp w20, w2
- bcs .L3369
- cbz w22, .L3370
+ bcs .L3371
+ cbz w22, .L3372
cmp w22, 16
- bls .L3371
+ bls .L3373
ldrh w2, [x21,2854]
ldrh w1, [x21,3308]
cmp w2, w1
- bhi .L3371
+ bhi .L3373
mov w1, w0
mov w2, 4
str x5, [x29,104]
bl gc_search_src_blk
uxth w0, w0
ldr x5, [x29,104]
- cbnz w0, .L3372
+ cbnz w0, .L3374
ldrb w0, [x21,3273]
- b .L3513
-.L3372:
+ b .L3517
+.L3374:
mov w1, 5
mov w0, w5
bl zftl_get_gc_node
uxth w2, w0
mov w1, 65535
cmp w2, w1
- beq .L3439
+ beq .L3443
add x3, x23, :lo12:.LANCHOR4
ubfiz x2, x2, 1, 16
ldr w1, [x3,1132]
@@ -21191,14 +21220,14 @@ zftl_do_gc:
ldrh w2, [x3,x2]
ldrh w3, [x21,3300]
cmp w3, w2
- bcs .L3375
+ bcs .L3377
ldrh w3, [x21,576]
cmp w1, w3, lsr 4
- bls .L3439
+ bls .L3443
ldrh w1, [x21,2874]
cmp w1, w2
- bls .L3439
-.L3375:
+ bls .L3443
+.L3377:
add x19, x19, :lo12:.LANCHOR0
mov w1, 0
ldrb w2, [x19,3273]
@@ -21207,71 +21236,71 @@ zftl_do_gc:
str w0, [x19,2884]
add x0, x23, :lo12:.LANCHOR4
str wzr, [x0,1132]
- b .L3439
-.L3371:
+ b .L3443
+.L3373:
mov w0, 1
mov w1, 2
mov w2, w0
bl gc_search_src_blk
uxth w0, w0
- cbnz w0, .L3439
+ cbnz w0, .L3443
add x19, x19, :lo12:.LANCHOR0
-.L3510:
+.L3514:
ldrb w0, [x19,3273]
mov w1, 3
mov w2, 2
-.L3507:
+.L3511:
bl gc_search_src_blk
uxth w0, w0
- b .L3373
-.L3370:
+ b .L3375
+.L3372:
adrp x0, .LANCHOR2
strb w22, [x21,3273]
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3377
- adrp x0, .LC273
+ tbz x0, 8, .L3379
+ adrp x0, .LC275
ldrh w6, [x7,120]
ldrh w7, [x7,122]
- add x0, x0, :lo12:.LC273
- mov w1, 1976
+ add x0, x0, :lo12:.LC275
+ mov w1, 1981
mov w2, w22
mov w3, w20
mov w4, w22
mov w5, w22
bl printk
-.L3377:
+.L3379:
add x19, x19, :lo12:.LANCHOR0
cmp w20, 16
ldrb w0, [x19,3273]
- bls .L3378
-.L3513:
+ bls .L3380
+.L3517:
mov w1, 3
mov w2, 4
- b .L3507
-.L3378:
+ b .L3511
+.L3380:
mov w1, 1
mov w2, w1
bl gc_search_src_blk
uxth w0, w0
- cbnz w0, .L3439
- b .L3510
-.L3369:
+ cbnz w0, .L3443
+ b .L3514
+.L3371:
cmp w26, 1
mov w1, w24
- bne .L3484
+ bne .L3488
cmp w20, w2, lsl 1
- bge .L3379
+ bge .L3381
cmp w25, w22, lsr 1
- bcs .L3380
+ bcs .L3382
ldrh w2, [x21,2854]
ldrh w0, [x21,3308]
cmp w2, w0
- bcs .L3380
+ bcs .L3382
ldrh w0, [x21,3306]
lsr w0, w0, 2
strh w0, [x21,2872]
- b .L3484
-.L3380:
+ b .L3488
+.L3382:
mov w1, 5
mov w0, 0
bl zftl_get_gc_node
@@ -21279,12 +21308,12 @@ zftl_do_gc:
mov w1, 65535
mov w27, w21
cmp w21, w1
- bne .L3381
-.L3386:
+ bne .L3383
+.L3388:
cmp w22, 1
- bhi .L3382
- b .L3383
-.L3381:
+ bhi .L3384
+ b .L3385
+.L3383:
add x26, x23, :lo12:.LANCHOR4
add x2, x19, :lo12:.LANCHOR0
uxtw x21, w21
@@ -21293,94 +21322,94 @@ zftl_do_gc:
add w1, w1, 1
str w1, [x26,1132]
cmp w1, w3, lsr 4
- bls .L3384
+ bls .L3386
ldr x1, [x2,600]
str wzr, [x26,1132]
ldrh w3, [x1,x21,lsl 1]
ldrh w1, [x2,2874]
cmp w3, w1
- bcs .L3384
+ bcs .L3386
mov w1, 0
mov w2, 1
bl gc_add_sblk
- cbz w0, .L3384
+ cbz w0, .L3386
mov w0, 1
strb w0, [x26,1130]
- b .L3368
-.L3384:
+ b .L3370
+.L3386:
add x1, x19, :lo12:.LANCHOR0
ldr x0, [x1,600]
ldrh w2, [x0,x21,lsl 1]
ldrh w0, [x1,3300]
cmp w2, w0, lsr 1
- bhi .L3385
+ bhi .L3387
mov w0, w27
mov w1, 1
mov w2, 0
bl gc_add_sblk
- b .L3439
-.L3385:
+ b .L3443
+.L3387:
ldrh w3, [x1,2850]
ldrh w0, [x1,2852]
add w0, w3, w0
ldrh w3, [x1,3306]
cmp w0, w3, lsl 1
- ble .L3386
+ ble .L3388
ldrh w0, [x1,2874]
cmp w0, w2
- bcc .L3383
- b .L3386
-.L3382:
+ bcc .L3385
+ b .L3388
+.L3384:
add x21, x19, :lo12:.LANCHOR0
mov w0, 1
cmp w22, 16
strb w0, [x21,3273]
- bls .L3387
+ bls .L3389
ldrh w2, [x21,2854]
ldrh w1, [x21,3308]
cmp w2, w1
- bhi .L3387
+ bhi .L3389
mov w1, w0
mov w2, 4
bl gc_search_src_blk
uxth w0, w0
- cbnz w0, .L3388
+ cbnz w0, .L3390
ldrb w0, [x21,3273]
mov w1, 3
mov w2, 4
- b .L3506
-.L3387:
+ b .L3510
+.L3389:
mov w0, 1
mov w1, 2
mov w2, w0
bl gc_search_src_blk
uxth w0, w0
- cbnz w0, .L3388
+ cbnz w0, .L3390
add x0, x19, :lo12:.LANCHOR0
mov w1, 3
mov w2, 2
ldrb w0, [x0,3273]
-.L3506:
+.L3510:
bl gc_search_src_blk
uxth w0, w0
-.L3388:
+.L3390:
add x19, x19, :lo12:.LANCHOR0
cmp w20, w25, lsr 1
ldrh w1, [x19,3306]
- bls .L3508
+ bls .L3512
lsr w1, w1, 2
- b .L3509
-.L3383:
+ b .L3513
+.L3385:
cmp w20, w25
add x19, x19, :lo12:.LANCHOR0
- bcs .L3390
+ bcs .L3392
mov w0, 4
strb wzr, [x19,3273]
bl zftl_get_gc_node.part.12
uxth w0, w0
mov w1, 65535
cmp w0, w1
- beq .L3390
+ beq .L3392
ubfiz x0, x0, 1, 16
ldr x1, [x19,600]
ldrb w2, [x19,3276]
@@ -21388,134 +21417,134 @@ zftl_do_gc:
ldrh w0, [x19,3300]
mul w0, w0, w2
cmp w1, w0, lsr 1
- bgt .L3390
+ bgt .L3392
mov w1, 3
mov w0, 0
mov w2, 4
bl gc_search_src_blk
uxth w0, w0
ldrh w1, [x19,3306]
-.L3508:
+.L3512:
lsr w1, w1, 1
-.L3509:
+.L3513:
strh w1, [x19,2872]
- b .L3373
-.L3390:
+ b .L3375
+.L3392:
ldrh w0, [x19,3306]
lsr w0, w0, 2
strh w0, [x19,2872]
- b .L3368
-.L3379:
+ b .L3370
+.L3381:
ldrh w0, [x21,3306]
mov w24, w5
lsr w0, w0, 2
strh w0, [x21,2872]
- b .L3368
-.L3373:
+ b .L3370
+.L3375:
mov w1, w24
- cbz w0, .L3484
-.L3439:
+ cbz w0, .L3488
+.L3443:
add x23, x23, :lo12:.LANCHOR4
mov w0, 1
strb w0, [x23,1130]
- b .L3368
-.L3335:
+ b .L3370
+.L3337:
add x20, x19, :lo12:.LANCHOR0
mov w0, 65535
ldrh w1, [x20,2896]
cmp w1, w0
- bne .L3393
+ bne .L3395
bl gc_get_src_blk
strh w0, [x20,2896]
-.L3393:
+.L3395:
add x0, x19, :lo12:.LANCHOR0
mov w2, 65535
add x1, x0, 2896
ldrh w3, [x0,2896]
cmp w3, w2
- beq .L3512
+ beq .L3516
ldrh w5, [x1,56]
uxtw x4, w3
ldr x2, [x0,584]
add x2, x2, x4, lsl 2
- cbz w5, .L3396
+ cbz w5, .L3398
mov x0, 0
-.L3395:
+.L3397:
cmp w5, w0, uxth
- bls .L3396
+ bls .L3398
add x0, x0, 1
add x6, x1, x0, lsl 1
ldrh w6, [x6,56]
cmp w6, w3
- bne .L3395
-.L3401:
+ bne .L3397
+.L3403:
add x19, x19, :lo12:.LANCHOR0
mov w0, -1
strh w0, [x19,2896]
- b .L3511
-.L3396:
+ b .L3515
+.L3398:
ldrb w0, [x2,2]
tst w0, 192
- beq .L3452
+ beq .L3456
and w0, w0, 224
cmp w0, 224
- bne .L3398
-.L3452:
+ bne .L3400
+.L3456:
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,600]
ldrh w0, [x0,x4,lsl 1]
- cbz w0, .L3401
+ cbz w0, .L3403
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2209
+ mov w2, 2214
add x1, x1, 800
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
- b .L3401
-.L3398:
+ b .L3403
+.L3400:
add x23, x23, :lo12:.LANCHOR4
mov w0, 2
- b .L3514
-.L3336:
+ b .L3518
+.L3338:
bl gc_scan_src_blk
cmn w0, #1
- bne .L3402
+ bne .L3404
add x23, x23, :lo12:.LANCHOR4
mov w0, 3
-.L3514:
+.L3518:
strb w0, [x23,1130]
- b .L3511
-.L3402:
+ b .L3515
+.L3404:
add x1, x19, :lo12:.LANCHOR0
mov w3, 65535
ldrh w0, [x1,2896]
cmp w0, w3
- beq .L3350
+ beq .L3352
ldrh w3, [x1,2920]
add x23, x23, :lo12:.LANCHOR4
- cbz w3, .L3403
+ cbz w3, .L3405
mov w0, 4
strh wzr, [x1,2922]
strb w0, [x23,1130]
- b .L3511
-.L3403:
+ b .L3515
+.L3405:
ubfiz x0, x0, 1, 16
ldr x1, [x1,600]
mov w2, 1
strb w2, [x23,1130]
ldrh w0, [x1,x0]
- cbz w0, .L3404
+ cbz w0, .L3406
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2237
+ mov w2, 2242
add x1, x1, 800
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3404:
+.L3406:
add x20, x19, :lo12:.LANCHOR0
add x21, x20, 2896
ldrh w0, [x20,2896]
@@ -21527,70 +21556,70 @@ zftl_do_gc:
add w0, w0, 1
uxth w0, w0
cmp w0, 8
- bhi .L3405
+ bhi .L3407
strh w0, [x21,30]
- b .L3401
-.L3405:
+ b .L3403
+.L3407:
strh wzr, [x21,30]
bl ftl_flush
bl pm_flush
bl ftl_ext_info_flush
mov w0, 0
bl ftl_info_flush
- b .L3401
-.L3337:
+ b .L3403
+.L3339:
add x21, x19, :lo12:.LANCHOR0
-.L3485:
+.L3489:
bl gc_scan_src_blk_one_page
ldrh w2, [x21,2898]
add x0, x21, 2896
ldrh w1, [x21,3300]
cmp w2, w1
- bcs .L3407
+ bcs .L3409
cmp w20, 7
- bls .L3485
- b .L3511
-.L3407:
+ bls .L3489
+ b .L3515
+.L3409:
ldrh w3, [x0,24]
adrp x2, .LANCHOR2
- cbz w3, .L3408
+ cbz w3, .L3410
add x23, x23, :lo12:.LANCHOR4
mov w1, 4
strh wzr, [x0,26]
strb w1, [x23,1130]
ldr w1, [x2,#:lo12:.LANCHOR2]
- tbz x1, 8, .L3409
+ tbz x1, 8, .L3411
ldrh w1, [x0]
- adrp x0, .LC274
+ adrp x0, .LC276
ldr x4, [x21,600]
- add x0, x0, :lo12:.LC274
+ add x0, x0, :lo12:.LC276
ubfiz x2, x1, 1, 16
ldrh w2, [x4,x2]
bl printk
-.L3409:
+.L3411:
add x0, x19, :lo12:.LANCHOR0
ldrh w2, [x0,2896]
ldr x1, [x0,600]
ldrh w0, [x0,2920]
ldrh w1, [x1,x2,lsl 1]
cmp w1, w0
- beq .L3410
+ beq .L3412
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2271
+ mov w2, 2276
add x1, x1, 800
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3410:
+.L3412:
add x19, x19, :lo12:.LANCHOR0
ldrh w1, [x19,2896]
ldr x0, [x19,600]
ldrh w2, [x19,2920]
strh w2, [x0,x1,lsl 1]
- b .L3511
-.L3408:
+ b .L3515
+.L3410:
add x23, x23, :lo12:.LANCHOR4
ldrh w1, [x0]
mov w0, 1
@@ -21598,29 +21627,29 @@ zftl_do_gc:
add x20, x20, x1, uxth 2
strb w0, [x23,1130]
ldr w0, [x2,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3411
+ tbz x0, 8, .L3413
ldrb w2, [x20,2]
- adrp x0, .LC275
- add x0, x0, :lo12:.LC275
+ adrp x0, .LC277
+ add x0, x0, :lo12:.LC277
ubfx x2, x2, 5, 3
bl printk
-.L3411:
+.L3413:
ldrb w0, [x20,2]
tst w0, 192
- beq .L3453
+ beq .L3457
and w0, w0, 224
cmp w0, 224
- bne .L3412
-.L3453:
+ bne .L3414
+.L3457:
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2281
+ mov w2, 2286
add x1, x1, 800
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3412:
+.L3414:
add x19, x19, :lo12:.LANCHOR0
add x20, x19, 2896
ldrh w0, [x19,2896]
@@ -21631,59 +21660,59 @@ zftl_do_gc:
add w0, w0, 1
uxth w0, w0
cmp w0, 8
- bhi .L3414
+ bhi .L3416
strh w0, [x20,30]
- b .L3511
-.L3414:
- strh wzr, [x20,30]
b .L3515
-.L3338:
- cbnz w26, .L3415
+.L3416:
+ strh wzr, [x20,30]
+ b .L3519
+.L3340:
+ cbnz w26, .L3417
add x0, x19, :lo12:.LANCHOR0
ldrh w0, [x0,2872]
cmp w0, w20
- bcc .L3511
-.L3415:
+ bcc .L3515
+.L3417:
ldrh w1, [x24,80]
mov w0, 65535
cmp w1, w0
- bne .L3416
+ bne .L3418
add x22, x19, :lo12:.LANCHOR0
ldrb w21, [x22,3273]
cmp w21, 1
- bne .L3416
+ bne .L3418
bl ftl_flush
ldrh w0, [x22,3214]
- cbz w0, .L3417
+ cbz w0, .L3419
mov w0, w21
-.L3417:
+.L3419:
mov w1, 5
bl zftl_gc_get_free_sblk
uxth w20, w0
mov w0, 65535
cmp w20, w0
- beq .L3419
+ beq .L3421
add x0, x19, :lo12:.LANCHOR0
ldr x21, [x0,584]
add x21, x21, x20, uxth 2
ldrb w0, [x21,2]
tst w0, 224
- beq .L3420
+ beq .L3422
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2310
+ mov w2, 2315
add x1, x1, 800
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3420:
+.L3422:
ldrb w0, [x21,2]
mov w1, 5
bfi w0, w1, 5, 3
orr w0, w0, 16
strb w0, [x21,2]
-.L3440:
+.L3444:
mov w0, w20
mov w1, 1
add x19, x19, :lo12:.LANCHOR0
@@ -21740,8 +21769,8 @@ zftl_do_gc:
strh wzr, [x19,3212]
strh wzr, [x19,3216]
bl ftl_info_flush
- b .L3511
-.L3416:
+ b .L3515
+.L3418:
cmp w26, 1
mov w21, 4
csinc w21, w21, wzr, eq
@@ -21749,23 +21778,23 @@ zftl_do_gc:
add w0, w21, 4
add x20, x19, :lo12:.LANCHOR0
csel w21, w0, w21, ls
-.L3423:
+.L3425:
sub w21, w21, #1
uxtb w21, w21
cmp w21, 255
- beq .L3511
+ beq .L3515
bl gc_do_copy_back
ldrb w0, [x20,3273]
- cbnz w0, .L3424
+ cbnz w0, .L3426
ldrb w0, [x20,2834]
cmp w0, 3
- bhi .L3425
+ bhi .L3427
bl ftl_write_commit
-.L3425:
+.L3427:
ldrh w1, [x20,2922]
ldrh w0, [x20,2920]
cmp w1, w0
- bcc .L3423
+ bcc .L3425
add x23, x23, :lo12:.LANCHOR4
mov w0, 1
strb w0, [x23,1130]
@@ -21774,41 +21803,41 @@ zftl_do_gc:
ldrh w1, [x20,2896]
ldr x0, [x20,600]
ldrh w0, [x0,x1,lsl 1]
- cbz w0, .L3427
+ cbz w0, .L3429
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2385
+ mov w2, 2390
add x1, x1, 800
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3427:
+.L3429:
add x1, x19, :lo12:.LANCHOR0
ldrh w0, [x1,2896]
ldr x3, [x1,600]
ubfiz x2, x0, 1, 16
ldrh w4, [x3,x2]
- cbnz w4, .L3428
+ cbnz w4, .L3430
strh w4, [x3,x2]
ldrh w0, [x1,2896]
bl ftl_free_sblk
- b .L3401
-.L3428:
+ b .L3403
+.L3430:
mov w1, 0
mov w2, 1
bl gc_add_sblk
- b .L3401
-.L3424:
+ b .L3403
+.L3426:
add x0, x20, 2896
ldrh w1, [x0,320]
- cbz w1, .L3429
+ cbz w1, .L3431
strh wzr, [x0,320]
ldr w0, [x0,324]
cmn w0, #1
- beq .L3430
+ beq .L3432
bl ftl_mask_bad_block
-.L3430:
+.L3432:
add x20, x19, :lo12:.LANCHOR0
ldr x0, [x20,608]
str wzr, [x20,3220]
@@ -21822,9 +21851,9 @@ zftl_do_gc:
strh w0, [x2,126]
strh w0, [x1,130]
ldr x0, [x20,2904]
- cbz x0, .L3431
+ cbz x0, .L3433
bl buf_free
-.L3431:
+.L3433:
add x19, x19, :lo12:.LANCHOR0
add x23, x23, :lo12:.LANCHOR4
str xzr, [x19,2904]
@@ -21832,21 +21861,21 @@ zftl_do_gc:
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2421
+ mov w2, 2426
add x1, x1, 800
add x0, x0, :lo12:.LC0
strb wzr, [x23,1130]
bl printk
bl dump_stack
- b .L3511
-.L3429:
+ b .L3515
+.L3431:
ldrh w1, [x24,86]
cmp w1, 1
- bls .L3432
+ bls .L3434
ldrh w2, [x0,26]
ldrh w1, [x0,24]
cmp w2, w1
- bcc .L3423
+ bcc .L3425
add x23, x23, :lo12:.LANCHOR4
mov w1, 1
strb w1, [x23,1130]
@@ -21858,15 +21887,15 @@ zftl_do_gc:
strh w2, [x1,58]
mov w1, -1
strh w1, [x0]
- b .L3511
-.L3432:
+ b .L3515
+.L3434:
add x23, x23, :lo12:.LANCHOR4
mov w1, 5
ldrh w2, [x0,26]
strb w1, [x23,1130]
ldrh w1, [x0,24]
cmp w2, w1
- bcc .L3433
+ bcc .L3435
ldrh w1, [x0,56]
add w2, w1, 1
add x1, x0, x1, sxtw 1
@@ -21875,7 +21904,7 @@ zftl_do_gc:
strh w2, [x1,58]
mov w1, -1
strh w1, [x0]
-.L3433:
+.L3435:
add x20, x19, :lo12:.LANCHOR0
bl ftl_flush
bl sblk_wait_write_queue_completed
@@ -21891,21 +21920,23 @@ zftl_do_gc:
strh w1, [x20,2914]
cmp w2, 2
strh w2, [x20,2916]
- bne .L3434
+ bne .L3437
lsl w1, w1, 1
strh w1, [x20,2914]
+ ldrb w1, [x20,3348]
+ cbnz w1, .L3437
mov w1, 1
strh w1, [x20,2916]
-.L3434:
+.L3437:
add x19, x19, :lo12:.LANCHOR0
strh wzr, [x19,2918]
- b .L3511
-.L3442:
+ b .L3515
+.L3446:
mov w21, 0
add x24, x19, :lo12:.LANCHOR0
-.L3339:
+.L3341:
bl gc_check_data_one_wl
- cbz w0, .L3436
+ cbz w0, .L3440
add x19, x19, :lo12:.LANCHOR0
add x23, x23, :lo12:.LANCHOR4
ldr x0, [x19,608]
@@ -21922,32 +21953,32 @@ zftl_do_gc:
bl buf_free
str xzr, [x19,2904]
strb wzr, [x23,1130]
-.L3515:
+.L3519:
bl flt_sys_flush
- b .L3511
-.L3436:
+ b .L3515
+.L3440:
ldrh w1, [x24,2912]
ldrh w0, [x24,2914]
cmp w1, w0
- bcc .L3437
+ bcc .L3441
add x23, x23, :lo12:.LANCHOR4
mov w0, 6
strb w0, [x23,1130]
ldr x0, [x24,2904]
bl buf_free
str xzr, [x24,2904]
- b .L3511
-.L3437:
+ b .L3515
+.L3441:
cmp w20, 15
- bls .L3339
+ bls .L3341
cmp w26, 1
- bne .L3511
+ bne .L3515
add w21, w21, 1
uxtb w21, w21
cmp w21, 4
- bls .L3339
- b .L3511
-.L3340:
+ bls .L3341
+ b .L3515
+.L3342:
bl gc_update_l2p_map_new
mov w20, -1
bl gc_free_src_blk
@@ -21960,26 +21991,26 @@ zftl_do_gc:
strh w20, [x0,126]
mov w0, 0
bl ftl_info_flush
-.L3512:
+.L3516:
add x23, x23, :lo12:.LANCHOR4
strb wzr, [x23,1130]
-.L3511:
+.L3515:
mov w1, 16
- b .L3484
-.L3368:
+ b .L3488
+.L3370:
mov w1, w24
- b .L3484
-.L3419:
+ b .L3488
+.L3421:
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2316
+ mov w2, 2321
add x1, x1, 800
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
- b .L3440
-.L3484:
+ b .L3444
+.L3488:
sub sp, x29, #16
mov w0, w1
ldp x19, x20, [sp,32]
@@ -22008,30 +22039,30 @@ zftl_write:
stp x21, x22, [sp,32]
mov w28, w1
mov x25, x3
- tbz x0, 12, .L3517
- adrp x0, .LC276
+ tbz x0, 12, .L3521
+ adrp x0, .LC278
mov w1, w19
- add x0, x0, :lo12:.LC276
+ add x0, x0, :lo12:.LC278
mov w2, w28
mov w3, w23
bl printk
-.L3517:
- cbnz w19, .L3518
+.L3521:
+ cbnz w19, .L3522
adrp x0, .LANCHOR0+520
mov w19, 24576
ldr w2, [x0,#:lo12:.LANCHOR0+520]
- b .L3519
-.L3518:
+ b .L3523
+.L3522:
cmp w19, 3
mov w0, -1
- bhi .L3520
+ bhi .L3524
lsl w19, w19, 13
mov w2, 8192
-.L3519:
+.L3523:
add w1, w28, w23
mov w0, -1
cmp w1, w2
- bhi .L3520
+ bhi .L3524
add w28, w19, w28
adrp x19, .LANCHOR0
add x0, x19, :lo12:.LANCHOR0
@@ -22044,15 +22075,15 @@ zftl_write:
udiv w22, w22, w0
sub w20, w22, w24
add w20, w20, 1
-.L3521:
- cbz w20, .L3540
+.L3525:
+ cbz w20, .L3544
mov w0, 0
bl buf_alloc
mov x27, x0
- cbnz x0, .L3522
+ cbnz x0, .L3526
bl ftl_write_commit
- b .L3521
-.L3522:
+ b .L3525
+.L3526:
strb wzr, [x0,57]
add x0, x19, :lo12:.LANCHOR0
cmp w21, w24
@@ -22060,12 +22091,12 @@ zftl_write:
cset w0, eq
strb w4, [x27,56]
cmp w21, w22
- beq .L3524
- cbz w0, .L3525
- b .L3534
-.L3524:
- cbz w0, .L3526
-.L3534:
+ beq .L3528
+ cbz w0, .L3529
+ b .L3538
+.L3528:
+ cbz w0, .L3530
+.L3538:
udiv w0, w28, w4
msub w0, w0, w4, w28
uxtb w0, w0
@@ -22074,12 +22105,12 @@ zftl_write:
uxtb w4, w4
cmp w4, w23
csel w4, w23, w4, hi
- b .L3538
-.L3526:
+ b .L3542
+.L3530:
msub w4, w4, w21, w26
-.L3538:
+.L3542:
strb w4, [x27,56]
-.L3525:
+.L3529:
ldrb w1, [x27,57]
sub w20, w20, #1
ldr x0, [x27,8]
@@ -22100,11 +22131,11 @@ zftl_write:
bl ftl_write_buf
ldrb w0, [x27,56]
add x25, x25, x0, lsl 9
- b .L3521
-.L3540:
+ b .L3525
+.L3544:
bl ftl_write_commit
mov w0, w20
-.L3539:
+.L3543:
mov w1, 1
bl zftl_do_gc
add x1, x19, :lo12:.LANCHOR0
@@ -22112,15 +22143,15 @@ zftl_write:
ldrh w0, [x1,2848]
add w0, w2, w0
cmp w0, 7
- bgt .L3541
+ bgt .L3545
mov w0, 0
- b .L3539
-.L3541:
+ b .L3543
+.L3545:
bl timer_get_time
adrp x1, .LANCHOR7-76
str w0, [x1,#:lo12:.LANCHOR7-76]
mov w0, 0
-.L3520:
+.L3524:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -22178,7 +22209,7 @@ zftl_discard:
stp x27, x28, [sp,80]
ldr w1, [x1,520]
cmp w2, w1
- bhi .L3545
+ bhi .L3549
adrp x23, .LANCHOR7
add w24, w0, 24576
add x0, x23, :lo12:.LANCHOR7
@@ -22187,14 +22218,14 @@ zftl_discard:
add w1, w19, w1
str w1, [x0,-72]
ldr w0, [x25,#:lo12:.LANCHOR2]
- tbz x0, 12, .L3546
- adrp x0, .LC277
+ tbz x0, 12, .L3550
+ adrp x0, .LC279
mov w2, w24
- add x0, x0, :lo12:.LC277
+ add x0, x0, :lo12:.LC279
mov w3, w19
mov w4, 0
bl printk
-.L3546:
+.L3550:
add x20, x21, :lo12:.LANCHOR0
ldr x0, [x20,2864]
ldr w26, [x0,8]
@@ -22205,7 +22236,7 @@ zftl_discard:
ldrb w22, [x20,2832]
udiv w20, w24, w22
msub w27, w20, w22, w24
- cbz w27, .L3547
+ cbz w27, .L3551
sub w22, w22, w27
mov w0, w20
cmp w22, w19
@@ -22213,20 +22244,20 @@ zftl_discard:
bl lpa_hash_get_ppa
str w0, [x29,120]
cmn w0, #1
- bne .L3548
+ bne .L3552
mov w0, w20
add x1, x29, 120
mov w2, 0
bl pm_log2phys
-.L3548:
+.L3552:
ldr w0, [x29,120]
and w28, w22, 65535
cmn w0, #1
- beq .L3550
+ beq .L3554
mov w0, 0
bl buf_alloc
mov x3, x0
- cbz x0, .L3550
+ cbz x0, .L3554
strb w27, [x0,57]
ubfiz x27, x27, 9, 25
str w20, [x0,36]
@@ -22247,31 +22278,31 @@ zftl_discard:
ldr w0, [x1,76]
add w0, w0, 1
str w0, [x1,76]
-.L3550:
+.L3554:
add w20, w20, 1
sub w19, w19, w28
-.L3547:
- cbz w19, .L3552
+.L3551:
+ cbz w19, .L3556
bl ftl_flush
-.L3552:
+.L3556:
mov w0, -1
mov w27, 1
str w0, [x29,124]
mov w28, 21
-.L3553:
+.L3557:
add x22, x21, :lo12:.LANCHOR0
ldrb w0, [x22,2832]
cmp w19, w0
- bcc .L3592
+ bcc .L3596
mov w0, w20
bl lpa_hash_get_ppa
str w0, [x29,120]
cmn w0, #1
- beq .L3554
+ beq .L3558
mov w0, 0
bl buf_alloc
mov x3, x0
- cbz x0, .L3556
+ cbz x0, .L3560
ldrb w2, [x22,2832]
mov w1, 0
str w20, [x0,36]
@@ -22286,15 +22317,15 @@ zftl_discard:
mov x0, x3
bl ftl_write_buf
bl ftl_write_commit
- b .L3591
-.L3554:
+ b .L3595
+.L3558:
mov w0, w20
add x1, x29, 120
mov w2, 0
bl pm_log2phys
ldr w0, [x29,120]
cmn w0, #1
- beq .L3556
+ beq .L3560
add x1, x29, 124
mov w2, 1
mov w0, w20
@@ -22309,36 +22340,36 @@ zftl_discard:
and w0, w2, w0
udiv w0, w0, w1
bl ftl_vpn_decrement
-.L3591:
+.L3595:
ldr x1, [x22,2864]
ldr w0, [x1,76]
add w0, w0, 1
str w0, [x1,76]
-.L3556:
+.L3560:
add x0, x21, :lo12:.LANCHOR0
add w20, w20, 1
ldrb w0, [x0,2832]
sub w19, w19, w0
- b .L3553
-.L3592:
- cbz w19, .L3560
+ b .L3557
+.L3596:
+ cbz w19, .L3564
mov w0, w20
bl lpa_hash_get_ppa
str w0, [x29,120]
cmn w0, #1
- bne .L3561
+ bne .L3565
mov w0, w20
add x1, x29, 120
mov w2, 0
bl pm_log2phys
-.L3561:
+.L3565:
ldr w0, [x29,120]
cmn w0, #1
- beq .L3560
+ beq .L3564
mov w0, 0
bl buf_alloc
mov x22, x0
- cbz x0, .L3560
+ cbz x0, .L3564
str w20, [x0,36]
strb wzr, [x0,57]
strb w19, [x0,56]
@@ -22346,7 +22377,7 @@ zftl_discard:
add x0, x21, :lo12:.LANCHOR0
ldrb w0, [x0,2832]
cmp w19, w0
- bcc .L3563
+ bcc .L3567
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
@@ -22355,7 +22386,7 @@ zftl_discard:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3563:
+.L3567:
ldr x0, [x22,8]
mov w1, 0
lsl w2, w19, 9
@@ -22368,20 +22399,20 @@ zftl_discard:
ldr w0, [x1,76]
add w0, w0, 1
str w0, [x1,76]
-.L3560:
+.L3564:
add x0, x23, :lo12:.LANCHOR7
mov w4, 0
ldr w1, [x0,-72]
cmp w1, 8192
- bls .L3545
+ bls .L3549
ldr w0, [x25,#:lo12:.LANCHOR2]
- tbz x0, 12, .L3564
- adrp x0, .LC277
+ tbz x0, 12, .L3568
+ adrp x0, .LC279
mov w2, w24
- add x0, x0, :lo12:.LC277
+ add x0, x0, :lo12:.LC279
mov w3, w19
bl printk
-.L3564:
+.L3568:
add x23, x23, :lo12:.LANCHOR7
add x21, x21, :lo12:.LANCHOR0
str wzr, [x23,-72]
@@ -22389,7 +22420,7 @@ zftl_discard:
mov w0, 1
mov w4, 0
str w0, [x21,2884]
-.L3545:
+.L3549:
mov w0, w4
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -22419,29 +22450,29 @@ id_block_prog_msb_ff_data:
ldrb w2, [x0,19]
add x0, x20, :lo12:.LANCHOR4
ldrb w0, [x0,1264]
- cbnz w0, .L3593
+ cbnz w0, .L3597
sub w0, w2, #5
uxtb w0, w0
cmp w0, 2
- bls .L3595
+ bls .L3599
cmp w2, 68
- beq .L3595
+ beq .L3599
sub w2, w2, #19
and w2, w2, -17
uxtb w2, w2
- cbnz w2, .L3593
-.L3595:
- adrp x24, .LC278
+ cbnz w2, .L3597
+.L3599:
+ adrp x24, .LC280
mov w25, w1
- add x24, x24, :lo12:.LC278
+ add x24, x24, :lo12:.LC280
add x20, x20, :lo12:.LANCHOR4
mov w27, 65535
-.L3597:
+.L3601:
add x28, x21, :lo12:.LANCHOR0
ldr x0, [x28,624]
ldrh w0, [x0,10]
cmp w0, w19
- bls .L3593
+ bls .L3597
add x22, x20, 68
add w26, w19, w25
mov x0, x24
@@ -22451,7 +22482,7 @@ id_block_prog_msb_ff_data:
bl printk
ldrh w0, [x22,w19,sxtw 1]
cmp w0, w27
- bne .L3593
+ bne .L3597
ldr x0, [x20,1192]
mov w1, 255
mov w2, 16384
@@ -22465,8 +22496,8 @@ id_block_prog_msb_ff_data:
ldrb w4, [x4,9]
mov x3, x2
bl flash_prog_page
- b .L3597
-.L3593:
+ b .L3601
+.L3597:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -22499,17 +22530,17 @@ write_idblock:
bl ftl_malloc
mov x23, x0
mov w0, -1
- cbz x23, .L3644
+ cbz x23, .L3648
add w19, w19, 511
lsr w19, w19, 9
cmp w19, 8
- bls .L3630
+ bls .L3634
cmp w19, 500
- bhi .L3644
- b .L3601
-.L3630:
+ bhi .L3648
+ b .L3605
+.L3634:
mov w19, 8
-.L3601:
+.L3605:
mul w20, w20, w21
add x3, x26, 253952
mov w2, 63999
@@ -22520,9 +22551,9 @@ write_idblock:
udiv w0, w19, w0
str w0, [x29,120]
mov w0, 0
-.L3605:
+.L3609:
ldr w1, [x3]
- cbnz w1, .L3602
+ cbnz w1, .L3606
ldr w1, [x26,w0,uxtw 2]
add w0, w0, 1
cmp w0, w4
@@ -22530,56 +22561,56 @@ write_idblock:
csel w0, w0, wzr, cc
str w1, [x3],-4
cmp w2, 4096
- bne .L3605
- b .L3604
-.L3602:
- adrp x0, .LC279
- add x0, x0, :lo12:.LC279
+ bne .L3609
+ b .L3608
+.L3606:
+ adrp x0, .LC281
+ add x0, x0, :lo12:.LC281
bl printk
-.L3604:
+.L3608:
ldr x1, [x29,128]
- adrp x0, .LC280
- add x0, x0, :lo12:.LC280
+ adrp x0, .LC282
+ add x0, x0, :lo12:.LC282
mov w2, 4
mov w3, 5
mov x21, 0
mov w28, w21
bl rknand_print_hex
- adrp x0, .LC281
+ adrp x0, .LC283
mov w1, w19
- add x0, x0, :lo12:.LC281
+ add x0, x0, :lo12:.LC283
mov w2, w19
bl printk
-.L3627:
+.L3631:
adrp x1, .LANCHOR7
add x1, x1, :lo12:.LANCHOR7
ldrb w1, [x1,-102]
- cbnz w1, .L3606
+ cbnz w1, .L3610
ldr x1, [x29,128]
ldr w2, [x29,152]
ldr w1, [x1,x21,lsl 2]
mul w20, w1, w2
- cbz w21, .L3607
+ cbz w21, .L3611
ldr w2, [x29,120]
cmp w2, 1
- bls .L3607
+ bls .L3611
sub w0, w21, #1
ldr x2, [x29,128]
ldr w0, [x2,x0,lsl 2]
add w0, w0, 1
cmp w1, w0
- bne .L3607
- b .L3608
-.L3606:
+ bne .L3611
+ b .L3612
+.L3610:
add x0, x22, :lo12:.LANCHOR0
ldr x0, [x0,728]
add x0, x0, x21, uxtw
ldrb w20, [x0,32]
cmp w20, 255
- beq .L3608
+ beq .L3612
ldr w0, [x29,152]
mul w20, w20, w0
-.L3607:
+.L3611:
mov w2, 512
mov w1, 0
mov x0, x23
@@ -22598,12 +22629,12 @@ write_idblock:
bl flash_erase_block
cmp w19, w24
mov w2, 1
- bls .L3609
+ bls .L3613
mov w0, 0
add w1, w20, w24
bl flash_erase_block
mov w2, 2
-.L3609:
+.L3613:
add x27, x22, :lo12:.LANCHOR0
ldr x1, [x27,624]
ldrh w0, [x1,10]
@@ -22618,10 +22649,10 @@ write_idblock:
sub w0, w20, w0
str w0, [x29,156]
cmp w20, w0
- bne .L3634
+ bne .L3638
ldrb w0, [x27,516]
cmp w0, 9
- bne .L3634
+ bne .L3638
adrp x0, .LANCHOR4
mov w1, 0
add x0, x0, :lo12:.LANCHOR4
@@ -22659,18 +22690,18 @@ write_idblock:
str w0, [x3,8]
sub w0, w19, #4
str w0, [x29,144]
- b .L3610
-.L3634:
+ b .L3614
+.L3638:
str w19, [x29,144]
mov x3, 0
-.L3610:
+.L3614:
str x26, [x29,136]
mov w24, 0
add x27, x22, :lo12:.LANCHOR0
-.L3612:
+.L3616:
ldr w0, [x29,112]
cmp w24, w0
- bcs .L3653
+ bcs .L3657
ldr w0, [x29,124]
adrp x2, .LANCHOR4
add x2, x2, :lo12:.LANCHOR4
@@ -22680,34 +22711,34 @@ write_idblock:
add w1, w4, 1
ldrb w2, [x2,1264]
ldrh w0, [x0,w1,sxtw 1]
- cbz w2, .L3614
+ cbz w2, .L3618
ldrb w6, [x27,1]
lsl w0, w1, 1
cmp w6, wzr
csel w0, w0, w1, ne
-.L3614:
+.L3618:
ldrb w1, [x27,516]
cmp w1, 9
- beq .L3652
+ beq .L3656
sub w0, w0, #1
lsl w0, w0, 2
-.L3652:
+.L3656:
str w0, [x29,160]
mov w0, 61424
str w0, [x29,164]
add x0, x27, 4
ldrh w0, [x0,w4,sxtw 1]
- cbnz w2, .L3618
+ cbnz w2, .L3622
mov w4, w0
- b .L3619
-.L3618:
+ b .L3623
+.L3622:
ldrb w1, [x27,1]
lsl w0, w4, 1
cmp w1, wzr
csel w4, w0, w4, ne
-.L3619:
+.L3623:
mul w0, w4, w25
- cbnz x3, .L3620
+ cbnz x3, .L3624
ldr w1, [x29,156]
add x2, x29, 160
str x4, [x29,104]
@@ -22718,28 +22749,28 @@ write_idblock:
ldr x4, [x29,104]
add x0, x0, :lo12:.LANCHOR4
ldrb w0, [x0,1264]
- cbnz w0, .L3621
+ cbnz w0, .L3625
ldr w1, [x29,156]
add w2, w4, 1
udiv w1, w1, w25
bl id_block_prog_msb_ff_data
-.L3621:
+.L3625:
ldr x0, [x29,136]
add x0, x0, 2048
str x0, [x29,136]
- b .L3622
-.L3620:
+ b .L3626
+.L3624:
ldr w1, [x29,156]
add x2, x29, 160
add w0, w0, w1
mov x1, x3
bl fw_flash_page_prog.constprop.28
-.L3622:
+.L3626:
add w24, w24, 4
mov x3, 0
uxth w24, w24
- b .L3612
-.L3653:
+ b .L3616
+.L3657:
add x0, x22, :lo12:.LANCHOR0
ldrb w1, [x29,116]
mov x2, x23
@@ -22750,15 +22781,15 @@ write_idblock:
ldr w0, [x29,144]
mov x1, 0
lsl w0, w0, 7
-.L3624:
+.L3628:
cmp w0, w1
- bls .L3654
+ bls .L3658
ldr w3, [x23,x1,lsl 2]
add x1, x1, 1
add x2, x26, x1, lsl 2
ldr w2, [x2,-4]
cmp w3, w2
- beq .L3624
+ beq .L3628
mov x0, x23
mov w1, 0
mov w2, 512
@@ -22766,21 +22797,21 @@ write_idblock:
mov w1, w20
mov w0, 0
bl flash_erase_block
- b .L3608
-.L3654:
+ b .L3612
+.L3658:
add w28, w28, 1
cmp w28, 5
- bhi .L3628
-.L3608:
+ bhi .L3632
+.L3612:
add x21, x21, 1
cmp x21, 4
- bne .L3627
-.L3628:
+ bne .L3631
+.L3632:
mov x0, x23
bl ftl_free
cmp w28, wzr
csetm w0, eq
-.L3644:
+.L3648:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -22798,17 +22829,17 @@ CRC_32:
mov x5, x0
add x3, x3, :lo12:.LANCHOR2
mov w0, w2
-.L3656:
+.L3660:
cmp w1, w2
- bls .L3658
+ bls .L3662
ldrb w4, [x5,x2]
add x6, x3, 2296
add x2, x2, 1
eor w4, w4, w0, lsr 24
ldr w4, [x6,w4,uxtw 2]
eor w0, w4, w0, lsl 8
- b .L3656
-.L3658:
+ b .L3660
+.L3662:
ret
.size CRC_32, .-CRC_32
.align 2
@@ -22825,146 +22856,146 @@ rknand_sys_storage_ioctl:
stp x21, x22, [sp,32]
mov w19, w1
mov x20, x2
- beq .L3661
+ beq .L3665
mov w0, 29187
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3662
+ bhi .L3666
mov w0, 25726
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3663
+ beq .L3667
mov w0, 25726
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3664
+ bhi .L3668
mov w0, 25601
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3665
+ beq .L3669
mov w0, 25601
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3666
+ bhi .L3670
mov w0, 25364
movk w0, 0x4004, lsl 16
cmp w1, w0
- bne .L3723
+ bne .L3727
bl rknand_dev_flush
- b .L3757
-.L3666:
+ b .L3761
+.L3670:
mov w0, 25602
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3668
+ beq .L3672
mov w0, 25603
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3669
- b .L3723
-.L3664:
+ beq .L3673
+ b .L3727
+.L3668:
mov w0, 27688
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3670
+ beq .L3674
mov w0, 27688
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3671
+ bhi .L3675
mov w0, 25727
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3672
- b .L3723
-.L3671:
+ beq .L3676
+ b .L3727
+.L3675:
mov w0, 27698
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3670
+ beq .L3674
mov w0, 27708
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3670
- b .L3723
-.L3662:
+ beq .L3674
+ b .L3727
+.L3666:
mov w0, 29267
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3673
+ beq .L3677
mov w0, 29267
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3674
+ bhi .L3678
mov w0, 29189
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3675
+ beq .L3679
mov w0, 29189
movk w0, 0x4004, lsl 16
cmp w1, w0
- bcc .L3676
+ bcc .L3680
mov w0, 29210
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3677
+ beq .L3681
mov w0, 29266
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3678
- b .L3723
-.L3674:
+ beq .L3682
+ b .L3727
+.L3678:
mov w0, 30225
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3679
+ beq .L3683
mov w0, 30225
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3680
+ bhi .L3684
mov w0, 29268
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3681
+ beq .L3685
mov w0, 30224
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3682
- b .L3723
-.L3680:
+ beq .L3686
+ b .L3727
+.L3684:
mov w0, 30226
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3682
+ beq .L3686
mov w0, 30227
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3679
- b .L3723
-.L3676:
- adrp x0, .LC282
- add x0, x0, :lo12:.LC282
+ beq .L3683
+ b .L3727
+.L3680:
+ adrp x0, .LC284
+ add x0, x0, :lo12:.LC284
bl printk
mov w0, 4096
bl ftl_malloc
mov x19, x0
- cbnz x0, .L3683
-.L3688:
+ cbnz x0, .L3687
+.L3692:
mov x0, -12
- b .L3660
-.L3683:
+ b .L3664
+.L3687:
mov x1, x20
mov x2, 512
bl rk_copy_from_user
- cbnz x0, .L3764
- adrp x0, .LC284
+ cbnz x0, .L3768
+ adrp x0, .LC286
ldr w1, [x19]
ldr w2, [x19,4]
- add x0, x0, :lo12:.LC284
+ add x0, x0, :lo12:.LC286
bl printk
ldr w0, [x19,4]
str w0, [x29,52]
cmp w0, 8
- bhi .L3761
+ bhi .L3765
bl rknand_device_lock
ldr w1, [x29,52]
mov x2, x19
@@ -22976,106 +23007,106 @@ rknand_sys_storage_ioctl:
mov x1, x19
ubfiz x2, x2, 9, 23
bl rk_copy_to_user
- cbz x0, .L3767
- adrp x0, .LC285
- add x0, x0, :lo12:.LC285
-.L3759:
+ cbz x0, .L3771
+ adrp x0, .LC287
+ add x0, x0, :lo12:.LC287
+.L3763:
bl printk
-.L3761:
+.L3765:
mov x0, x19
-.L3762:
+.L3766:
bl ftl_free
-.L3760:
+.L3764:
mov x0, -14
- b .L3660
-.L3675:
- adrp x0, .LC286
- add x0, x0, :lo12:.LC286
+ b .L3664
+.L3679:
+ adrp x0, .LC288
+ add x0, x0, :lo12:.LC288
bl printk
mov w0, 4096
bl ftl_malloc
mov x19, x0
- cbz x0, .L3688
+ cbz x0, .L3692
mov x1, x20
mov x2, 4096
bl rk_copy_from_user
- cbnz x0, .L3764
- adrp x0, .LC287
+ cbnz x0, .L3768
+ adrp x0, .LC289
ldr w1, [x19]
ldr w2, [x19,4]
- add x0, x0, :lo12:.LC287
+ add x0, x0, :lo12:.LC289
bl printk
adrp x0, .LANCHOR7
add x22, x0, :lo12:.LANCHOR7
mov x20, x0
ldr x21, [x22,-64]
- cbnz x21, .L3690
+ cbnz x21, .L3694
mov w0, 260096
bl ftl_malloc
str x0, [x22,-64]
- cbz x0, .L3761
+ cbz x0, .L3765
mov w1, w21
mov x2, 260096
bl memset
-.L3690:
+.L3694:
ldr w2, [x19,4]
cmp w2, 4088
- bhi .L3761
+ bhi .L3765
ldr w0, [x19]
mov w1, 55296
movk w1, 0x3, lsl 16
cmp w0, w1
- bhi .L3761
+ bhi .L3765
add x20, x20, :lo12:.LANCHOR7
uxtw x2, w2
ldr x1, [x20,-64]
add x0, x1, x0, uxtw
add x1, x19, 8
bl memcpy
-.L3767:
+.L3771:
mov x0, x19
bl ftl_free
- b .L3757
-.L3678:
- adrp x0, .LC288
- add x0, x0, :lo12:.LC288
+ b .L3761
+.L3682:
+ adrp x0, .LC290
+ add x0, x0, :lo12:.LC290
bl printk
mov w0, 4096
bl ftl_malloc
mov x19, x0
- cbz x0, .L3688
+ cbz x0, .L3692
mov x1, x20
mov x2, 28
bl rk_copy_from_user
- cbz x0, .L3693
-.L3764:
- adrp x0, .LC283
- add x0, x0, :lo12:.LC283
- b .L3759
-.L3693:
+ cbz x0, .L3697
+.L3768:
+ adrp x0, .LC285
+ add x0, x0, :lo12:.LC285
+ b .L3763
+.L3697:
ldr w1, [x19]
- adrp x0, .LC289
+ adrp x0, .LC291
ldr w2, [x19,4]
- add x0, x0, :lo12:.LC289
+ add x0, x0, :lo12:.LC291
bl printk
ldr w1, [x19]
mov w0, 59392
movk w0, 0x3, lsl 16
cmp w1, w0
- bhi .L3761
+ bhi .L3765
adrp x20, .LANCHOR7
add x20, x20, :lo12:.LANCHOR7
ldr x0, [x20,-64]
- cbz x0, .L3761
+ cbz x0, .L3765
bl CRC_32
ldr w1, [x19,4]
cmp w1, w0
- beq .L3696
+ beq .L3700
mov x0, x19
bl ftl_free
mov x0, -2
- b .L3660
-.L3696:
+ b .L3664
+.L3700:
bl rknand_device_lock
ldr x1, [x20,-64]
add x2, x19, 8
@@ -23085,39 +23116,39 @@ rknand_sys_storage_ioctl:
ldr x0, [x20,-64]
bl ftl_free
str xzr, [x20,-64]
- b .L3767
-.L3677:
- adrp x0, .LC290
- add x0, x0, :lo12:.LC290
+ b .L3771
+.L3681:
+ adrp x0, .LC292
+ add x0, x0, :lo12:.LC292
bl printk
mov w0, 4096
bl ftl_malloc
mov x21, x0
- cbz x0, .L3688
+ cbz x0, .L3692
bl ReadFlashInfo
mov x0, x20
mov x1, x21
mov x2, 11
- b .L3769
-.L3661:
- adrp x0, .LC291
- add x0, x0, :lo12:.LC291
+ b .L3773
+.L3665:
+ adrp x0, .LC293
+ add x0, x0, :lo12:.LC293
bl printk
bl nand_blk_add_whole_disk
mov w0, 4096
bl ftl_malloc
mov x21, x0
- cbz x0, .L3688
+ cbz x0, .L3692
mov w1, 0
mov w2, 64
bl ftl_memset
mov x0, x20
mov x1, x21
mov x2, 64
- b .L3769
-.L3673:
- adrp x0, .LC292
- add x0, x0, :lo12:.LC292
+ b .L3773
+.L3677:
+ adrp x0, .LC294
+ add x0, x0, :lo12:.LC294
bl printk
adrp x0, .LANCHOR7-56
add x1, x29, 52
@@ -23126,18 +23157,18 @@ rknand_sys_storage_ioctl:
ldr w0, [x0,20]
str w0, [x29,52]
mov x0, x20
-.L3752:
+.L3756:
bl rk_copy_to_user
- cbnz x0, .L3760
- b .L3757
-.L3681:
- adrp x0, .LC293
- add x0, x0, :lo12:.LC293
+ cbnz x0, .L3764
+ b .L3761
+.L3685:
+ adrp x0, .LC295
+ add x0, x0, :lo12:.LC295
bl printk
mov w0, 4096
bl ftl_malloc
mov x21, x0
- cbz x0, .L3688
+ cbz x0, .L3692
bl rknand_device_lock
mov w1, 264
mov w2, 2
@@ -23148,41 +23179,41 @@ rknand_sys_storage_ioctl:
mov x0, x20
mov x1, x21
mov x2, 1024
-.L3769:
+.L3773:
bl rk_copy_to_user
mov x19, x0
mov x0, x21
- cbnz x19, .L3762
+ cbnz x19, .L3766
bl ftl_free
- b .L3687
-.L3665:
- adrp x0, .LC294
- add x0, x0, :lo12:.LC294
+ b .L3691
+.L3669:
+ adrp x0, .LC296
+ add x0, x0, :lo12:.LC296
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
mov x19, x0
- cbz x0, .L3701
-.L3706:
- adrp x0, .LC283
- add x0, x0, :lo12:.LC283
+ cbz x0, .L3705
+.L3710:
+ adrp x0, .LC285
+ add x0, x0, :lo12:.LC285
bl printk
- b .L3760
-.L3701:
+ b .L3764
+.L3705:
ldr w1, [x29,56]
mov w0, 21060
movk w0, 0x4b4d, lsl 16
cmp w1, w0
- beq .L3702
-.L3703:
+ beq .L3706
+.L3707:
mov x19, -1
- b .L3687
-.L3702:
+ b .L3691
+.L3706:
ldr w0, [x29,60]
cmp w0, 512
- bhi .L3703
+ bhi .L3707
adrp x21, .LANCHOR7
add x0, x29, 56
add x21, x21, :lo12:.LANCHOR7
@@ -23193,37 +23224,37 @@ rknand_sys_storage_ioctl:
mov w0, 5161
movk w0, 0xc059, lsl 16
cmp w1, w0
- beq .L3704
+ beq .L3708
add x0, x29, 120
mov w1, w19
mov x2, 128
str w19, [x29,64]
str w19, [x29,68]
bl memset
-.L3704:
+.L3708:
add x0, x29, 312
mov w1, 0
mov x2, 256
str wzr, [x29,72]
bl memset
- b .L3766
-.L3668:
- adrp x0, .LC295
- add x0, x0, :lo12:.LC295
+ b .L3770
+.L3672:
+ adrp x0, .LC297
+ add x0, x0, :lo12:.LC297
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3706
+ cbnz x0, .L3710
ldr w1, [x29,56]
mov w0, 21060
movk w0, 0x4b4d, lsl 16
cmp w1, w0
- bne .L3703
+ bne .L3707
ldr w0, [x29,60]
cmp w0, 512
- bhi .L3703
+ bhi .L3707
adrp x1, .LANCHOR7
mov w2, 5161
add x1, x1, :lo12:.LANCHOR7
@@ -23231,12 +23262,12 @@ rknand_sys_storage_ioctl:
mov x0, -2
ldr w3, [x1,-48]
cmp w3, w2
- bne .L3660
+ bne .L3664
ldr w2, [x29,68]
mov x0, -3
sub w3, w2, #1
cmp w3, 127
- bhi .L3660
+ bhi .L3664
ldr x19, [x1,-56]
add x1, x29, 120
add x0, x19, 64
@@ -23245,38 +23276,38 @@ rknand_sys_storage_ioctl:
bl memcpy
mov w0, 1
mov x1, x19
- b .L3758
-.L3672:
- adrp x0, .LC296
- add x0, x0, :lo12:.LC296
+ b .L3762
+.L3676:
+ adrp x0, .LC298
+ add x0, x0, :lo12:.LC298
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3706
+ cbnz x0, .L3710
ldr w1, [x29,56]
mov w0, 17476
movk w0, 0x4253, lsl 16
cmp w1, w0
- bne .L3703
+ bne .L3707
ldr w0, [x29,60]
cmp w0, 512
- bhi .L3703
+ bhi .L3707
adrp x19, .LANCHOR7
add x0, x19, :lo12:.LANCHOR7
ldr w1, [x0,-44]
- cbnz w1, .L3707
-.L3710:
+ cbnz w1, .L3711
+.L3714:
mov x0, 0
- b .L3660
-.L3707:
+ b .L3664
+.L3711:
ldr x1, [x0,-40]
mov w2, 22867
movk w2, 0x4453, lsl 16
ldr w3, [x1]
cmp w3, w2
- beq .L3708
+ beq .L3712
mov w2, 22867
movk w2, 0x4453, lsl 16
str w2, [x1]
@@ -23286,7 +23317,7 @@ rknand_sys_storage_ioctl:
ldr x0, [x0,-40]
str wzr, [x0,8]
str wzr, [x0,12]
-.L3708:
+.L3712:
add x20, x19, :lo12:.LANCHOR7
mov w0, 0
ldr x1, [x20,-40]
@@ -23297,7 +23328,7 @@ rknand_sys_storage_ioctl:
movk w1, 0x4b4d, lsl 16
ldr w2, [x0]
cmp w2, w1
- beq .L3709
+ beq .L3713
mov w1, 21060
movk w1, 0x4b4d, lsl 16
str w1, [x0]
@@ -23306,7 +23337,7 @@ rknand_sys_storage_ioctl:
str w1, [x0,4]
ldr x0, [x20,-56]
str wzr, [x0,8]
-.L3709:
+.L3713:
add x19, x19, :lo12:.LANCHOR7
mov w1, 0
mov x2, 128
@@ -23319,35 +23350,35 @@ rknand_sys_storage_ioctl:
bl StorageSysDataStore
str wzr, [x19,-44]
str wzr, [x19,-48]
- b .L3757
-.L3663:
- adrp x0, .LC297
- add x0, x0, :lo12:.LC297
+ b .L3761
+.L3667:
+ adrp x0, .LC299
+ add x0, x0, :lo12:.LC299
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3706
+ cbnz x0, .L3710
ldr w2, [x29,56]
mov w1, 20037
movk w1, 0x4253, lsl 16
cmp w2, w1
- bne .L3703
+ bne .L3707
ldr w1, [x29,60]
cmp w1, 512
- bhi .L3703
+ bhi .L3707
adrp x19, .LANCHOR7
add x1, x19, :lo12:.LANCHOR7
ldr w2, [x1,-44]
cmp w2, 1
- beq .L3710
+ beq .L3714
ldr x2, [x1,-40]
mov w3, 22867
movk w3, 0x4453, lsl 16
ldr w4, [x2]
cmp w4, w3
- beq .L3711
+ beq .L3715
mov w3, 22867
movk w3, 0x4453, lsl 16
str w3, [x2]
@@ -23357,7 +23388,7 @@ rknand_sys_storage_ioctl:
ldr x1, [x1,-40]
str w0, [x1,8]
str w0, [x1,12]
-.L3711:
+.L3715:
add x20, x19, :lo12:.LANCHOR7
mov w0, 1
ldr x1, [x20,-40]
@@ -23369,7 +23400,7 @@ rknand_sys_storage_ioctl:
movk w1, 0x4b4d, lsl 16
ldr w2, [x0]
cmp w2, w1
- beq .L3712
+ beq .L3716
mov w1, 21060
movk w1, 0x4b4d, lsl 16
str w1, [x0]
@@ -23378,7 +23409,7 @@ rknand_sys_storage_ioctl:
str w1, [x0,4]
ldr x0, [x20,-56]
str wzr, [x0,8]
-.L3712:
+.L3716:
add x19, x19, :lo12:.LANCHOR7
mov w1, 0
mov x2, 128
@@ -23391,66 +23422,66 @@ rknand_sys_storage_ioctl:
bl StorageSysDataStore
mov w0, 1
str w0, [x19,-44]
- b .L3757
-.L3669:
- adrp x0, .LC298
- add x0, x0, :lo12:.LC298
+ b .L3761
+.L3673:
+ adrp x0, .LC300
+ add x0, x0, :lo12:.LC300
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3706
+ cbnz x0, .L3710
ldr w1, [x29,56]
mov w0, 20051
movk w0, 0x4144, lsl 16
cmp w1, w0
- bne .L3703
+ bne .L3707
ldr w2, [x29,60]
cmp w2, 512
- bhi .L3703
+ bhi .L3707
adrp x1, .LANCHOR7
add x0, x29, 64
add x1, x1, :lo12:.LANCHOR7
uxtw x2, w2
sub x1, x1, #32
- b .L3765
-.L3670:
+ b .L3769
+.L3674:
mov w0, 27698
movk w0, 0x4004, lsl 16
cmp w19, w0
- bne .L3713
- adrp x0, .LC299
- add x0, x0, :lo12:.LC299
- b .L3755
-.L3713:
+ bne .L3717
+ adrp x0, .LC301
+ add x0, x0, :lo12:.LC301
+ b .L3759
+.L3717:
mov w0, 27708
movk w0, 0x4004, lsl 16
cmp w19, w0
- bne .L3715
- adrp x0, .LC300
- add x0, x0, :lo12:.LC300
- b .L3755
-.L3715:
- adrp x0, .LC301
- add x0, x0, :lo12:.LC301
-.L3755:
+ bne .L3719
+ adrp x0, .LC302
+ add x0, x0, :lo12:.LC302
+ b .L3759
+.L3719:
+ adrp x0, .LC303
+ add x0, x0, :lo12:.LC303
+.L3759:
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3706
+ cbnz x0, .L3710
ldr w1, [x29,56]
mov w0, 17227
movk w0, 0x4c4f, lsl 16
cmp w1, w0
- bne .L3760
+ bne .L3764
mov w0, 27708
movk w0, 0x4004, lsl 16
cmp w19, w0
adrp x0, .LANCHOR7
- bne .L3716
+ bne .L3720
add x0, x0, :lo12:.LANCHOR7
add x1, x29, 56
mov x2, 16
@@ -23460,65 +23491,65 @@ rknand_sys_storage_ioctl:
strb w0, [x29,64]
mov x0, x20
bl rk_copy_to_user
- cbz x0, .L3660
- b .L3760
-.L3716:
+ cbz x0, .L3664
+ b .L3764
+.L3720:
add x20, x0, :lo12:.LANCHOR7
ldr w1, [x20,480]
cmp w1, 10
- bhi .L3760
+ bhi .L3764
ldr x1, [x20,-56]
ldr w2, [x29,60]
ldr w3, [x1,24]
cmp w3, w2
- beq .L3717
- cbz w3, .L3717
- adrp x0, .LC302
+ beq .L3721
+ cbz w3, .L3721
+ adrp x0, .LC304
mov w1, w2
- add x0, x0, :lo12:.LC302
+ add x0, x0, :lo12:.LC304
bl printk
ldr w0, [x20,480]
add w0, w0, 1
str w0, [x20,480]
- b .L3760
-.L3717:
+ b .L3764
+.L3721:
add x0, x0, :lo12:.LANCHOR7
str wzr, [x0,480]
mov w0, 27698
movk w0, 0x4004, lsl 16
cmp w19, w0
- bne .L3718
+ bne .L3722
str wzr, [x1,20]
str wzr, [x1,24]
- b .L3719
-.L3718:
+ b .L3723
+.L3722:
mov w0, 1
str w2, [x1,24]
str w0, [x1,20]
-.L3719:
+.L3723:
mov w0, 1
mov x19, -2
bl StorageSysDataStore
cmn w0, #1
- bne .L3757
- b .L3687
-.L3682:
- adrp x0, .LC303
- add x0, x0, :lo12:.LC303
+ bne .L3761
+ b .L3691
+.L3686:
+ adrp x0, .LC305
+ add x0, x0, :lo12:.LC305
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3706
+ cbnz x0, .L3710
ldr w1, [x29,56]
mov w0, 17750
movk w0, 0x444e, lsl 16
cmp w1, w0
- bne .L3703
+ bne .L3707
ldr w2, [x29,60]
cmp w2, 504
- bhi .L3703
+ bhi .L3707
mov w0, 30224
adrp x1, .LANCHOR7
movk w0, 0x4004, lsl 16
@@ -23526,72 +23557,72 @@ rknand_sys_storage_ioctl:
cmp w19, w0
add x1, x1, :lo12:.LANCHOR7
add x0, x29, 64
- bne .L3720
+ bne .L3724
ldr x1, [x1,488]
- b .L3756
-.L3720:
+ b .L3760
+.L3724:
ldr x1, [x1,496]
-.L3756:
+.L3760:
add x1, x1, 8
-.L3765:
+.L3769:
bl memcpy
-.L3766:
+.L3770:
mov x0, x20
add x1, x29, 56
mov x2, 520
- b .L3752
-.L3679:
- adrp x0, .LC304
- add x0, x0, :lo12:.LC304
+ b .L3756
+.L3683:
+ adrp x0, .LC306
+ add x0, x0, :lo12:.LC306
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3706
+ cbnz x0, .L3710
ldr w1, [x29,56]
mov w0, 17750
movk w0, 0x444e, lsl 16
cmp w1, w0
- bne .L3703
+ bne .L3707
ldr w2, [x29,60]
cmp w2, 504
- bhi .L3703
+ bhi .L3707
mov w0, 30225
add w2, w2, 8
movk w0, 0x4004, lsl 16
cmp w19, w0
adrp x19, .LANCHOR7
add x19, x19, :lo12:.LANCHOR7
- bne .L3722
+ bne .L3726
ldr x0, [x19,488]
add x1, x29, 56
bl memcpy
mov w0, 2
ldr x1, [x19,488]
- b .L3758
-.L3722:
+ b .L3762
+.L3726:
ldr x0, [x19,496]
add x1, x29, 56
bl memcpy
ldr x1, [x19,496]
mov w0, 3
-.L3758:
+.L3762:
bl StorageSysDataStore
uxtw x19, w0
- b .L3687
-.L3757:
+ b .L3691
+.L3761:
mov x19, 0
-.L3687:
- adrp x0, .LC305
+.L3691:
+ adrp x0, .LC307
mov x1, x19
- add x0, x0, :lo12:.LC305
+ add x0, x0, :lo12:.LC307
bl printk
mov x0, x19
- b .L3660
-.L3723:
+ b .L3664
+.L3727:
mov x0, -22
-.L3660:
+.L3664:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
@@ -23626,25 +23657,25 @@ rk_ftl_storage_sys_init:
ldr w0, [x21,16]
ldr w22, [x21,508]
str w0, [x19,-44]
- cbz w22, .L3772
+ cbz w22, .L3776
mov x0, x21
mov w1, 508
bl js_hash
cmp w22, w0
- beq .L3772
- adrp x0, .LC306
+ beq .L3776
+ adrp x0, .LC308
str wzr, [x21,16]
- add x0, x0, :lo12:.LC306
+ add x0, x0, :lo12:.LC308
str wzr, [x19,-44]
bl printk
-.L3772:
+.L3776:
add x0, x20, :lo12:.LANCHOR7
ldr w1, [x0,-44]
- cbz w1, .L3773
+ cbz w1, .L3777
mov w1, 5161
movk w1, 0xc059, lsl 16
str w1, [x0,-48]
-.L3773:
+.L3777:
add x20, x20, :lo12:.LANCHOR7
mov w0, 2
ldr x1, [x20,488]
@@ -23680,19 +23711,19 @@ rk_ftl_vendor_storage_init:
add x1, x21, :lo12:.LANCHOR7
mov w19, -12
str x0, [x1,504]
- cbz x0, .L3782
+ cbz x0, .L3786
mov w23, 0
- adrp x24, .LC307
+ adrp x24, .LC309
mov w19, w23
mov w22, w23
- add x24, x24, :lo12:.LC307
-.L3786:
+ add x24, x24, :lo12:.LC309
+.L3790:
add x20, x21, :lo12:.LANCHOR7
lsl w0, w22, 7
mov w1, 128
ldr x2, [x20,504]
bl FlashBootVendorRead
- cbnz w0, .L3783
+ cbnz w0, .L3787
ldr x3, [x20,504]
mov x0, x24
add x2, x3, 61440
@@ -23705,29 +23736,29 @@ rk_ftl_vendor_storage_init:
movk w0, 0x524b, lsl 16
ldr w1, [x20]
cmp w1, w0
- bne .L3784
+ bne .L3788
ldr w0, [x20,4]
cmp w19, w0
- bcs .L3784
+ bcs .L3788
add x1, x20, 61440
ldr w1, [x1,4092]
cmp w1, w0
csel w23, w23, w22, ne
csel w19, w19, w0, ne
-.L3784:
- cbnz w22, .L3794
+.L3788:
+ cbnz w22, .L3798
mov w22, 1
- b .L3786
-.L3794:
- cbz w19, .L3787
+ b .L3790
+.L3798:
+ cbz w19, .L3791
lsl w0, w23, 7
mov w1, 128
mov x2, x20
bl FlashBootVendorRead
mov w19, w0
- cbz w0, .L3782
- b .L3783
-.L3787:
+ cbz w0, .L3786
+ b .L3787
+.L3791:
mov x0, x20
mov w1, w19
mov x2, 65536
@@ -23741,14 +23772,14 @@ rk_ftl_vendor_storage_init:
mov w0, -1032
strh w19, [x20,12]
strh w0, [x20,14]
- b .L3782
-.L3783:
+ b .L3786
+.L3787:
add x21, x21, :lo12:.LANCHOR7
mov w19, -1
ldr x0, [x21,504]
bl kfree
str xzr, [x21,504]
-.L3782:
+.L3786:
mov w0, w19
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -23766,18 +23797,18 @@ rk_ftl_vendor_read:
ldr x5, [x3,#:lo12:.LANCHOR7+504]
mov w3, -1
str x19, [sp,16]
- cbz x5, .L3796
+ cbz x5, .L3800
ldrh w3, [x5,10]
mov x4, 0
-.L3797:
+.L3801:
cmp w4, w3
mov w6, w4
- bcs .L3801
+ bcs .L3805
add x7, x5, x4, lsl 3
add x4, x4, 1
ldrh w7, [x7,16]
cmp w7, w0
- bne .L3797
+ bne .L3801
add x6, x5, x6, uxtw 3
ldrh w4, [x6,20]
mov x0, x1
@@ -23789,10 +23820,10 @@ rk_ftl_vendor_read:
uxtw x2, w19
bl memcpy
mov w3, w19
- b .L3796
-.L3801:
+ b .L3800
+.L3805:
mov w3, -1
-.L3796:
+.L3800:
mov w0, w3
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -23815,38 +23846,38 @@ rk_ftl_vendor_write:
mov w26, w2
mov x28, x1
mov w2, -1
- cbz x19, .L3803
+ cbz x19, .L3807
add w20, w26, 63
ldrh w3, [x19,10]
ldrh w23, [x19,8]
and w20, w20, -64
mov x2, 0
-.L3804:
+.L3808:
cmp w2, w3
mov w4, w2
- bcs .L3819
+ bcs .L3823
add x0, x19, x2, lsl 3
add x2, x2, 1
ldrh w0, [x0,16]
cmp w0, w6
- bne .L3804
+ bne .L3808
add x21, x19, x4, uxtw 3
ldrh w24, [x21,20]
add x5, x19, 1024
add w24, w24, 63
and w24, w24, -64
cmp w26, w24
- bls .L3805
+ bls .L3809
ldrh w0, [x19,14]
mov w2, -1
cmp w0, w20
- bcc .L3803
+ bcc .L3807
ldrh w21, [x21,18]
add w22, w3, w2
-.L3806:
+.L3810:
cmp w4, w22
uxtw x3, w4
- bcs .L3820
+ bcs .L3824
add x3, x19, x3, lsl 3
add w25, w4, 1
add x1, x19, x25, uxtw 3
@@ -23869,8 +23900,8 @@ rk_ftl_vendor_write:
mov w4, w25
ldr x6, [x29,96]
ldr x5, [x29,104]
- b .L3806
-.L3820:
+ b .L3810
+.L3824:
add x3, x19, x3, lsl 3
uxth w21, w21
mov x1, x28
@@ -23887,20 +23918,20 @@ rk_ftl_vendor_write:
add w24, w24, w0
sub w24, w24, w20
strh w24, [x19,14]
- b .L3818
-.L3805:
+ b .L3822
+.L3809:
ldrh w0, [x21,18]
mov x1, x28
uxtw x2, w26
add x0, x5, x0
bl memcpy
strh w26, [x21,20]
- b .L3818
-.L3819:
+ b .L3822
+.L3823:
ldrh w4, [x19,14]
mov w2, -1
cmp w4, w20
- bcc .L3803
+ bcc .L3807
add x3, x19, x3, uxth 3
strh w6, [x3,16]
uxth w20, w20
@@ -23920,7 +23951,7 @@ rk_ftl_vendor_write:
ldrh w0, [x19,10]
add w0, w0, 1
strh w0, [x19,10]
-.L3818:
+.L3822:
ldr w0, [x19,4]
add x1, x19, 61440
mov x2, x19
@@ -23937,7 +23968,7 @@ rk_ftl_vendor_write:
lsl w0, w23, 7
bl FlashBootVendorWrite
mov w2, 0
-.L3803:
+.L3807:
mov w0, w2
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -23961,37 +23992,37 @@ rk_ftl_vendor_storage_ioctl:
mov x21, x2
bl ftl_malloc
mov x19, x0
- cbz x0, .L3822
+ cbz x0, .L3826
mov w2, 30209
ldr x1, [x29,56]
movk w2, 0x4004, lsl 16
cmp w1, w2
- beq .L3824
+ beq .L3828
mov w2, 30210
movk w2, 0x4004, lsl 16
cmp w1, w2
- beq .L3825
- b .L3836
-.L3824:
+ beq .L3829
+ b .L3840
+.L3828:
mov x1, x21
mov x2, 8
bl rk_copy_from_user
- cbnz x0, .L3836
+ cbnz x0, .L3840
ldr w1, [x19]
mov w0, 17745
movk w0, 0x5652, lsl 16
cmp w1, w0
- beq .L3827
-.L3828:
+ beq .L3831
+.L3832:
mov x20, -1
- b .L3823
-.L3827:
+ b .L3827
+.L3831:
ldrh w0, [x19,4]
add x1, x19, 8
ldrh w2, [x19,6]
bl rk_ftl_vendor_read
cmn w0, #1
- beq .L3828
+ beq .L3832
uxth x2, w0
strh w0, [x19,6]
mov x1, x19
@@ -24001,38 +24032,38 @@ rk_ftl_vendor_storage_ioctl:
bl rk_copy_to_user
cmp x0, xzr
csel x20, xzr, x20, eq
- b .L3823
-.L3825:
+ b .L3827
+.L3829:
mov x1, x21
mov x2, 8
bl rk_copy_from_user
- cbnz x0, .L3836
+ cbnz x0, .L3840
ldr w1, [x19]
mov w0, 17745
movk w0, 0x5652, lsl 16
cmp w1, w0
- bne .L3828
+ bne .L3832
ldrh w3, [x19,6]
cmp w3, 4087
- bhi .L3828
+ bhi .L3832
add w2, w3, 8
mov x0, x19
mov x1, x21
sxtw x2, w2
bl rk_copy_from_user
- cbnz x0, .L3836
+ cbnz x0, .L3840
ldrh w0, [x19,4]
add x1, x19, 8
ldrh w2, [x19,6]
bl rk_ftl_vendor_write
sxtw x20, w0
- b .L3823
-.L3836:
+ b .L3827
+.L3840:
mov x20, -14
-.L3823:
+.L3827:
mov x0, x19
bl kfree
-.L3822:
+.L3826:
mov x0, x20
ldr x21, [sp,32]
ldp x19, x20, [sp,16]
@@ -25105,11 +25136,6 @@ __func__.34426:
__func__.34506:
.string "sblk_read_page"
.zero 1
- .type __func__.33493, %object
- .size __func__.33493, 21
-__func__.33493:
- .string "gc_check_data_one_wl"
- .zero 3
.type __func__.18539, %object
.size __func__.18539, 26
__func__.18539:
@@ -25211,6 +25237,11 @@ __func__.34129:
__func__.33331:
.string "zftl_read"
.zero 6
+ .type __func__.33493, %object
+ .size __func__.33493, 21
+__func__.33493:
+ .string "gc_check_data_one_wl"
+ .zero 3
.type __func__.34219, %object
.size __func__.34219, 19
__func__.34219:
@@ -25240,7 +25271,7 @@ __func__.33362:
.LC1:
.string "%s\n"
.LC2:
- .string "FTL version: 6.0.8 20180615"
+ .string "FTL version: 6.0.9 20180704"
.LC3:
.string "zftl_debug:0x%x\n"
.LC4:
@@ -25558,298 +25589,302 @@ __func__.33362:
.LC160:
.string "set buf %d,status = %x, ppa = %x lun state = %d\n"
.LC161:
- .string "1ppa = %x, status = %x, %x %x spare: %x %x %x %x\n"
-.LC162:
.string "flash_prog_page %x %x %x\n"
-.LC163:
+.LC162:
.string "flash_prog_page page_addr = %x status = %x\n"
-.LC164:
+.LC163:
.string "sblk_prog_page ppa = %x, count = %d\n"
-.LC165:
+.LC164:
.string "flash_prog_page_en:%x %x\n"
-.LC166:
+.LC165:
.string "spare"
-.LC167:
+.LC166:
.string "data"
-.LC168:
+.LC167:
.string "write error: %x\n"
-.LC169:
+.LC168:
.string "g_ftl_info_blk blk = %x, page = %x version = %d\n"
-.LC170:
+.LC169:
.string "%d %x @%d %x\n"
-.LC171:
+.LC170:
.string "ftl_info_blk_init %d %d %x\n"
-.LC172:
+.LC171:
.string "%s %d %d %x %x\n"
-.LC173:
+.LC172:
.string "saved_active_page = %x\n"
-.LC174:
+.LC173:
.string "saved_active_plane = %x\n"
-.LC175:
+.LC174:
.string "sblk = %x\n"
-.LC176:
+.LC175:
.string "phy_blk = %x %x\n"
-.LC177:
+.LC176:
.string "sblk = %x, vpn0 = %d, vpn1 = %d\n"
-.LC178:
+.LC177:
.string "dump write = %x\n"
-.LC179:
+.LC178:
.string "pm_write_page write error: %x\n"
-.LC180:
+.LC179:
.string "finfo:"
-.LC181:
+.LC180:
.string "flash_info_flush id = %x, page = %x\n"
-.LC182:
+.LC181:
.string "sys_info_flush error:%x\n"
-.LC183:
+.LC182:
.string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n"
-.LC184:
+.LC183:
.string "l2p:"
-.LC185:
+.LC184:
.string "free_buf_count: %d\n"
-.LC186:
+.LC185:
.string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n"
-.LC187:
+.LC186:
.string "ftl_ext_info_blk blk:0x%x, page:0x%x\n"
-.LC188:
+.LC187:
.string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n"
-.LC189:
+.LC188:
.string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n"
-.LC190:
+.LC189:
.string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n"
-.LC191:
+.LC190:
.string "lpa:"
-.LC192:
+.LC191:
.string "vpn:"
-.LC193:
+.LC192:
.string "sblk:"
-.LC194:
+.LC193:
.string "lpa_hash:"
-.LC195:
+.LC194:
.string "lpa_hash_index:"
-.LC196:
+.LC195:
.string "%s w error lpn = %x, max ppa = %d\n"
-.LC197:
+.LC196:
.string "region_id = %d, pm_max_region = %d\n"
-.LC198:
+.LC197:
.string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n"
-.LC199:
+.LC198:
.string "load_l2p_region = %x,%x,%x, %x\n"
-.LC200:
+.LC199:
.string "pm_ppa:"
-.LC201:
+.LC200:
.string "data:"
-.LC202:
+.LC201:
.string "spare:"
-.LC203:
+.LC202:
.string "pm_init posr %x %x %x\n"
-.LC204:
+.LC203:
.string "pm_init recovery %x %x %x\n"
-.LC205:
+.LC204:
.string "pm_log2phys lpn = %d, max lpn = %d\n"
-.LC206:
+.LC205:
.string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n"
-.LC207:
+.LC206:
.string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n"
-.LC208:
+.LC207:
.string "gc_recovery: %x vpn = %x\n"
-.LC209:
+.LC208:
.string "_c_user_data_density := %d\n"
-.LC210:
+.LC209:
.string "_c_totle_phy_density := %d\n"
-.LC211:
+.LC210:
.string "_c_totle_log_page := %d\n"
-.LC212:
+.LC211:
.string "_c_totle_data_density := %d\n"
-.LC213:
+.LC212:
.string "_c_ftl_pm_page_num := %d\n"
-.LC214:
+.LC213:
.string "_c_ftl_byte_pre_page := %d\n"
-.LC215:
+.LC214:
.string "_c_max_pm_sblk := %d\n"
-.LC216:
+.LC215:
.string "_min_slc_super_block := %d\n"
-.LC217:
+.LC216:
.string "_max_xlc_super_block := %d\n"
-.LC218:
+.LC217:
.string "gp_ftl_ext_info %p %p %p\n"
-.LC219:
+.LC218:
.string "flash info size: %d %d %d\n"
-.LC220:
+.LC219:
.string "ftl_init %x\n"
-.LC221:
+.LC220:
.string "gc_update_l2p_map_new sblk %x\n"
-.LC222:
+.LC221:
.string "gc_update_l2p_map_new: %x %x %x\n"
-.LC223:
+.LC222:
.string "lpa: %x %x %x\n"
-.LC224:
+.LC223:
.string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n"
-.LC225:
+.LC224:
.string "gc_scan_src_blk = %x, vpn = %d\n"
-.LC226:
+.LC225:
.string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n"
-.LC227:
+.LC226:
.string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n"
-.LC228:
+.LC227:
.string "ftl_sblk_dump = %x %d %d %d %d\n"
-.LC229:
+.LC228:
.string "ftl_sblk_dump = %x %x %x %x\n"
-.LC230:
+.LC229:
.string "page_addr = %x, lpa=%x vpn = %d\n"
-.LC231:
+.LC230:
.string "index= %x, lpa=%x\n"
-.LC232:
+.LC231:
.string "block = %x, vpn=%x check vpn = %d\n"
-.LC233:
+.LC232:
.string "ftl_read %x %x %x\n"
-.LC234:
+.LC233:
.string "ftl_read refresh =%x, lpa = %x, ppa= %x\n"
-.LC235:
+.LC234:
.string "id=%d, lpa = %x, ppa = %x spare = %x %x %x %x\n"
-.LC236:
+.LC235:
.string "zftl debug cmd: %s\n"
-.LC237:
+.LC236:
.string "cmd:"
-.LC238:
+.LC237:
.string "dumpl2p"
-.LC239:
+.LC238:
.string "pm l2p:"
-.LC240:
+.LC239:
.string "pm blk:"
-.LC241:
+.LC240:
.string "dumppm:"
-.LC242:
+.LC241:
.string "p_cmd: %s\n"
-.LC243:
+.LC242:
.string "pm ram = %x, %x\n"
-.LC244:
+.LC243:
.string "ram:"
-.LC245:
+.LC244:
.string "pm:"
-.LC246:
+.LC245:
.string "dumpsys"
-.LC247:
+.LC246:
.string "dumplist:"
-.LC248:
+.LC247:
.string "vpncheck"
-.LC249:
+.LC248:
.string "dumpppa:"
-.LC250:
+.LC249:
.string "dumpblk:"
-.LC251:
+.LC250:
.string "setzdebug:"
-.LC252:
+.LC251:
.string "lpa2ppa:"
-.LC253:
+.LC252:
.string "lpa: %x--> ppa: %x\n"
-.LC254:
+.LC253:
.string "help:\n"
-.LC255:
+.LC254:
.string "1. echo dumpl2p > /proc/zftl_debug\n"
-.LC256:
+.LC255:
.string "2. echo dumppm:x > /proc/zftl_debug\n"
-.LC257:
+.LC256:
.string "3. echo dumpsys > /proc/zftl_debug\n"
-.LC258:
+.LC257:
.string "4. echo dumpppa:x > /proc/zftl_debug\n"
-.LC259:
+.LC258:
.string "5. echo vpncheck > /proc/zftl_debug\n"
-.LC260:
+.LC259:
.string "6. echo setzdebug:x > /proc/zftl_debug\n"
-.LC261:
+.LC260:
.string "7. echo dumplist > /proc/zftl_debug\n"
-.LC262:
+.LC261:
.string "8. echo lpa2ppa:x> /proc/zftl_debug\n"
+.LC262:
+ .string "gc_lpa:"
.LC263:
- .string "ftl_update_l2p_map: %x %x %x\n"
+ .string "gc_ppa:"
.LC264:
- .string "ftl_update_l2p_map"
+ .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n"
.LC265:
- .string "lpa_tbl:"
+ .string "ftl_update_l2p_map: %x %x %x\n"
.LC266:
- .string "sblk %x vpn: %d %d\n"
+ .string "ftl_update_l2p_map"
.LC267:
- .string "%d read error: ppa:%x, lpa:%x, status:%x\n"
+ .string "lpa_tbl:"
.LC268:
- .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n"
+ .string "sblk %x vpn: %d %d\n"
.LC269:
- .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n"
+ .string "%d read error: ppa:%x, lpa:%x, status:%x\n"
.LC270:
- .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n"
+ .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n"
.LC271:
- .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n"
+ .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n"
.LC272:
- .string "gc %d: %d %d %d %d %d %d %d\n"
+ .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n"
.LC273:
- .string "gc %d: %d %d %d %d %d %d\n"
+ .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n"
.LC274:
- .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n"
+ .string "gc %d: %d %d %d %d %d %d %d\n"
.LC275:
- .string "gc free %x, %d\n"
+ .string "gc %d: %d %d %d %d %d %d\n"
.LC276:
- .string "ftlwrite %x %x %x\n"
+ .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n"
.LC277:
- .string "ftl_discard:(%x, %x, %x, %x)\n"
+ .string "gc free %x, %d\n"
.LC278:
- .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n"
+ .string "ftlwrite %x %x %x\n"
.LC279:
- .string "write_idblock fix data %x %x\n"
+ .string "ftl_discard:(%x, %x, %x, %x)\n"
.LC280:
- .string "idblk:"
+ .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n"
.LC281:
- .string "write_idblock totle_sec %x %x\n"
+ .string "write_idblock fix data %x %x\n"
.LC282:
- .string "READ_SECTOR_IO\n"
+ .string "idblk:"
.LC283:
- .string "rk_copy_from_user error\n"
+ .string "write_idblock totle_sec %x %x\n"
.LC284:
- .string "READ_SECTOR_IO %x %x\n"
+ .string "READ_SECTOR_IO\n"
.LC285:
- .string "rk_copy_to_user error\n"
+ .string "rk_copy_from_user error\n"
.LC286:
- .string "WRITE_SECTOR_IO\n"
+ .string "READ_SECTOR_IO %x %x\n"
.LC287:
- .string "WRITE_SECTOR_IO %x %x\n"
+ .string "rk_copy_to_user error\n"
.LC288:
- .string "END_WRITE_SECTOR_IO\n"
+ .string "WRITE_SECTOR_IO\n"
.LC289:
- .string "END_WRITE_SECTOR_IO %x %x\n"
+ .string "WRITE_SECTOR_IO %x %x\n"
.LC290:
- .string "GET_FLASH_INFO_IO\n"
+ .string "END_WRITE_SECTOR_IO\n"
.LC291:
- .string "GET_BAD_BLOCK_IO\n"
+ .string "END_WRITE_SECTOR_IO %x %x\n"
.LC292:
- .string "GET_LOCK_FLAG_IO\n"
+ .string "GET_FLASH_INFO_IO\n"
.LC293:
- .string "GET_PUBLIC_KEY_IO\n"
+ .string "GET_BAD_BLOCK_IO\n"
.LC294:
- .string "RKNAND_GET_DRM_KEY\n"
+ .string "GET_LOCK_FLAG_IO\n"
.LC295:
- .string "RKNAND_STORE_DRM_KEY\n"
+ .string "GET_PUBLIC_KEY_IO\n"
.LC296:
- .string "RKNAND_DIASBLE_SECURE_BOOT\n"
+ .string "RKNAND_GET_DRM_KEY\n"
.LC297:
- .string "RKNAND_ENASBLE_SECURE_BOOT\n"
+ .string "RKNAND_STORE_DRM_KEY\n"
.LC298:
- .string "RKNAND_GET_SN_SECTOR\n"
+ .string "RKNAND_DIASBLE_SECURE_BOOT\n"
.LC299:
- .string "RKNAND_LOADER_UNLOCK\n"
+ .string "RKNAND_ENASBLE_SECURE_BOOT\n"
.LC300:
- .string "RKNAND_LOADER_STATUS\n"
+ .string "RKNAND_GET_SN_SECTOR\n"
.LC301:
- .string "RKNAND_LOADER_LOCK\n"
+ .string "RKNAND_LOADER_UNLOCK\n"
.LC302:
- .string "LockKey not match %d\n"
+ .string "RKNAND_LOADER_STATUS\n"
.LC303:
- .string "RKNAND_GET_VENDOR_SECTOR\n"
+ .string "RKNAND_LOADER_LOCK\n"
.LC304:
- .string "RKNAND_STORE_VENDOR_SECTOR\n"
+ .string "LockKey not match %d\n"
.LC305:
- .string "return ret = %lx\n"
+ .string "RKNAND_GET_VENDOR_SECTOR\n"
.LC306:
- .string "secureBootEn check error\n"
+ .string "RKNAND_STORE_VENDOR_SECTOR\n"
.LC307:
+ .string "return ret = %lx\n"
+.LC308:
+ .string "secureBootEn check error\n"
+.LC309:
.string "\0013vendor storage %x,%x,%x\n"
.data
.align 3