diff options
author | Yifeng Zhao <zyf@rock-chips.com> | 2018-07-04 18:12:22 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2018-07-06 15:28:57 +0800 |
commit | 0a0307e95cc8edfc1605415c582ebd060a9e0791 (patch) | |
tree | bf38fb8279af6753162654937be8ec243e70a39d | |
parent | 7afc0c7b4bb60ec50231a54ba31b4a24ef2cb2f4 (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.S | 16131 | ||||
-rw-r--r-- | drivers/rk_nand/rk_ftlv5_arm64.S | 9928 | ||||
-rw-r--r-- | drivers/rk_nand/rk_zftl_arm64.S | 5067 |
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 |