diff options
author | Yifeng Zhao <zyf@rock-chips.com> | 2018-04-23 14:17:40 +0800 |
---|---|---|
committer | Yifeng Zhao <zyf@rock-chips.com> | 2018-05-07 09:31:17 +0800 |
commit | 1780f2afbd10d169cde7ebe9e5d6e4baf3d84176 (patch) | |
tree | 4cbba78cb04fa6ec706ce65058b1b18850649aff /drivers/rk_nand | |
parent | 57da81b29f59b0a7cf347befdf8dba433b589529 (diff) |
drivers: rk_nand: fix SPOR data lost issue
Suddenly power loss test for F2FS file system,data will be
lost and the file system count not mount.
bug:
[ 6.372692] F2FS-fs (rknand_userdata): Found nat_bits in checkpoint
[ 6.563942] F2FS-fs (rknand_userdata): Failed to read root inode
[ 6.607687] F2FS-fs (rknand_userdata): Found nat_bits in checkpoint
[ 6.799042] F2FS-fs (rknand_userdata): Failed to read root inode
Change-Id: Ie3256631eba4388cef9edec31aea12bfd45bf4d4
Signed-off-by: Yifeng Zhao <zyf@rock-chips.com>
Diffstat (limited to 'drivers/rk_nand')
-rw-r--r-- | drivers/rk_nand/rk_ftl_arm_v7.S | 15833 |
1 files changed, 8055 insertions, 7778 deletions
diff --git a/drivers/rk_nand/rk_ftl_arm_v7.S b/drivers/rk_nand/rk_ftl_arm_v7.S index 792634e4b2bc..7768253519a2 100644 --- a/drivers/rk_nand/rk_ftl_arm_v7.S +++ b/drivers/rk_nand/rk_ftl_arm_v7.S @@ -1,11 +1,11 @@ /* - * Copyright (c) 2016-2017, Fuzhou Rockchip Electronics Co., Ltd + * Copyright (c) 2016-2018, Fuzhou Rockchip Electronics Co., Ltd * * This program is free software; you can redistribute it and/or modify * 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: 2017-11-20 + * date: 2018-05-04 */ .arch armv7-a .fpu softvfp @@ -20,8 +20,8 @@ .file "rk_ftl_arm_v7.S" .text .align 2 - .type FlashGetReadRetryDefault.part.27, %function -FlashGetReadRetryDefault.part.27: + .type FlashGetReadRetryDefault.part.25, %function +FlashGetReadRetryDefault.part.25: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -75,7 +75,7 @@ FlashGetReadRetryDefault.part.27: .word .LANCHOR1 .word .LANCHOR1+45 .fnend - .size FlashGetReadRetryDefault.part.27, .-FlashGetReadRetryDefault.part.27 + .size FlashGetReadRetryDefault.part.25, .-FlashGetReadRetryDefault.part.25 .align 2 .global FlashMemCmp8 .type FlashMemCmp8, %function @@ -604,7 +604,7 @@ FlashLoadPhyInfoInRam: b .L87 .L77: add r4, r4, #1 - cmp r4, #72 + cmp r4, #74 bne .L80 mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} @@ -635,21 +635,20 @@ FlashLoadPhyInfoInRam: .L88: .word .LANCHOR1+396 .word .LANCHOR0+2980 - .word .LANCHOR1+2700 + .word .LANCHOR1+2764 .word .LANCHOR0+896 - .word .LANCHOR1+2828 + .word .LANCHOR1+2892 .fnend .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam .align 2 - .global FlashSuspend - .type FlashSuspend, %function -FlashSuspend: + .global ftl_flash_suspend + .type ftl_flash_suspend, %function +ftl_flash_suspend: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. ldr r3, .L91 - mov r0, #0 ldr r2, [r3, #3012] ldr r1, [r2, #0] str r1, [r3, #3016] @@ -673,7 +672,7 @@ FlashSuspend: .L91: .word .LANCHOR0 .fnend - .size FlashSuspend, .-FlashSuspend + .size ftl_flash_suspend, .-ftl_flash_suspend .global __aeabi_uidiv .align 2 .global LogAddr2PhyAddr @@ -884,37 +883,30 @@ NandcSetMode: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. ldr r3, .L124 - stmfd sp!, {r4, lr} - .save {r4, lr} - ldr r3, [r3, #3012] - ldr r4, [r3, #0] - ands r3, r0, #6 - bfieq r4, r3, #13, #1 + ands r1, r0, #6 + ldr r2, [r3, #3012] + ldr r3, [r2, #0] + bfieq r3, r1, #13, #1 beq .L123 - orr r4, r4, #24576 + orr r3, r3, #24576 + movw r1, #16641 + bfc r3, #15, #1 + str r1, [r2, #344] + orr r3, r3, #196608 + ldr r1, .L124+4 tst r0, #4 - bfc r4, #15, #1 - mov r0, #0 - orr r4, r4, #196608 - orrne r4, r4, #32768 - bl rknand_get_clk_rate - ldr r3, .L124 - movw r2, #16641 - ldr r3, [r3, #3012] - str r2, [r3, #344] - ldr r2, .L124+4 - str r2, [r3, #304] - mov r2, #38 - str r2, [r3, #308] - mov r2, #39 - str r2, [r3, #308] + orrne r3, r3, #32768 + str r1, [r2, #304] + mov r1, #38 + str r1, [r2, #308] + mov r1, #39 + str r1, [r2, #308] .L123: - ldr r3, .L124 + str r3, [r2, #0] mov r0, #0 - ldr r3, [r3, #3012] - str r4, [r3, #0] - ldmfd sp!, {r4, pc} + bx lr .L125: .align 2 .L124: @@ -1262,7 +1254,7 @@ SamsungSetRRPara: .L175: .align 2 .L174: - .word .LANCHOR1+2860 + .word .LANCHOR1+2924 .word .LANCHOR0 .fnend .size SamsungSetRRPara, .-SamsungSetRRPara @@ -1298,7 +1290,7 @@ ToshibaSetRRPara: ldreqsb r3, [r7, #0] beq .L182 cmp r3, #35 - addne r3, r9, #2912 + addne r3, r9, #2976 addne r3, r3, #12 ldreqsb r3, [r6, #0] ldrnesb r3, [r3, #0] @@ -1583,7 +1575,7 @@ FlashReadSpare: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r2 - ldrb r2, [r3, #2837] @ zero_extendqisi2 + ldrb r2, [r3, #2901] @ zero_extendqisi2 ldr r3, .L217+4 add r3, r3, r0, asl #3 mov r2, r2, asl #9 @@ -1825,9 +1817,9 @@ FlashSetInterfaceMode: .fnend .size FlashSetInterfaceMode, .-FlashSetInterfaceMode .align 2 - .global FlashDeInit - .type FlashDeInit, %function -FlashDeInit: + .global ftl_flash_de_init + .type ftl_flash_de_init, %function +ftl_flash_de_init: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -1859,7 +1851,7 @@ FlashDeInit: .L245: .word .LANCHOR0 .fnend - .size FlashDeInit, .-FlashDeInit + .size ftl_flash_de_init, .-ftl_flash_de_init .align 2 .global FlashReadDpCmd .type FlashReadDpCmd, %function @@ -2002,10 +1994,12 @@ NandcInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - mov r5, #0 - ldr r4, .L269 + mov r2, #0 + ldr r4, .L270 mov r3, #1 + mov r5, #0 str r0, [r4, #3012] + str r2, [r4, #868] str r0, [r4, #864] str r3, [r4, #876] mov r3, #2 @@ -2014,19 +2008,22 @@ NandcInit: mov r3, #3 str r0, [r4, #880] str r0, [r4, #888] - str r5, [r4, #868] str r3, [r4, #892] ldr r3, [r0, #0] and r3, r3, #253952 - ubfx r2, r3, #13, #1 - str r2, [r4, #3776] + ubfx r1, r3, #13, #1 + bfi r3, r2, #13, #1 ldr r2, [r0, #352] - and r3, r3, #245760 orr r3, r3, #256 + str r1, [r4, #3776] + movw r1, #2049 ubfx r2, r2, #16, #4 str r2, [r4, #3780] ldr r2, [r0, #352] + cmp r2, r1 str r2, [r4, #3784] + moveq r2, #8 + streq r2, [r4, #3780] str r3, [r0, #0] mov r0, #40 ldr r3, [r4, #3012] @@ -2036,7 +2033,7 @@ NandcInit: movw r2, #8322 mov r0, #36864 str r2, [r3, #344] - ldr r2, .L269+4 + ldr r2, .L270+4 str r2, [r3, #304] bl ftl_malloc str r5, [r4, #3816] @@ -2046,9 +2043,9 @@ NandcInit: add r0, r0, #32768 str r0, [r4, #3796] ldmfd sp!, {r3, r4, r5, pc} -.L270: +.L271: .align 2 -.L269: +.L270: .word .LANCHOR0 .word 1710593 .fnend @@ -2066,23 +2063,23 @@ FlashTimingCfg: sub r3, r3, #33 cmp r0, r2 cmpne r3, #1 - bls .L272 + bls .L273 movw r3, #4226 movw r2, #8322 cmp r0, r3 cmpne r0, r2 - bne .L273 -.L272: - ldr r3, .L274 + bne .L274 +.L273: + ldr r3, .L275 ldr r3, [r3, #3012] str r0, [r3, #4] -.L273: - ldr r3, .L274+4 - ldrb r0, [r3, #2849] @ zero_extendqisi2 +.L274: + ldr r3, .L275+4 + ldrb r0, [r3, #2913] @ zero_extendqisi2 b NandcTimeCfg -.L275: +.L276: .align 2 -.L274: +.L275: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -2094,7 +2091,7 @@ NandcGetTimeCfg: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L277 + ldr ip, .L278 stmfd sp!, {r4, lr} .save {r4, lr} ldr r4, [ip, #3012] @@ -2113,9 +2110,9 @@ NandcGetTimeCfg: orr r2, r2, r1, asl #16 str r2, [r3, #0] ldmfd sp!, {r4, pc} -.L278: +.L279: .align 2 -.L277: +.L278: .word .LANCHOR0 .fnend .size NandcGetTimeCfg, .-NandcGetTimeCfg @@ -2127,7 +2124,7 @@ NandcBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L284 + ldr r3, .L285 mov r1, #1 ldr r2, [r3, #3012] str r0, [r3, #3828] @@ -2137,24 +2134,24 @@ NandcBchSel: cmp r0, r1 bfi r3, r1, #8, #8 bfc r3, #18, #1 - beq .L283 -.L280: + beq .L284 +.L281: cmp r0, #24 orreq r3, r3, #16 - beq .L281 + beq .L282 cmp r0, #40 orr r3, r3, #262144 orr r3, r3, #16 - bne .L281 -.L283: + bne .L282 +.L284: bfc r3, #4, #1 -.L281: +.L282: orr r3, r3, #1 str r3, [r2, #12] bx lr -.L285: +.L286: .align 2 -.L284: +.L285: .word .LANCHOR0 .fnend .size NandcBchSel, .-NandcBchSel @@ -2166,29 +2163,30 @@ FlashBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L287 + ldr r3, .L288 strb r0, [r3, #3832] b NandcBchSel -.L288: +.L289: .align 2 -.L287: +.L288: .word .LANCHOR0 .fnend .size FlashBchSel, .-FlashBchSel .align 2 - .global FlashResume - .type FlashResume, %function -FlashResume: + .global ftl_flash_resume + .type ftl_flash_resume, %function +ftl_flash_resume: .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, .L295 + stmfd sp!, {r4, r5, r6, lr} + .save {r4, r5, r6, lr} mov r4, #0 - ldr r3, .L294 - ldr r5, .L294+4 ldr r2, [r3, #3012] ldr r1, [r3, #3016] + ldr r5, [r3, #3032] + ldr r6, .L295+4 str r1, [r2, #0] ldr r1, [r3, #3020] ldr r2, [r3, #3012] @@ -2197,94 +2195,54 @@ FlashResume: str r1, [r2, #8] ldr r1, [r3, #3028] str r1, [r2, #12] - ldr r1, [r3, #3032] - str r1, [r2, #304] ldr r1, [r3, #3036] + str r5, [r2, #304] str r1, [r2, #308] ldr r1, [r3, #3040] ldr r3, [r3, #3044] str r1, [r2, #336] str r3, [r2, #344] -.L291: - ldrb r3, [r5, r4, asl #3] @ zero_extendqisi2 +.L292: + ldrb r3, [r6, r4, asl #3] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L290 + bhi .L291 uxtb r0, r4 bl FlashReset -.L290: +.L291: add r4, r4, #1 cmp r4, #4 - bne .L291 - ldr r4, .L294 + bne .L292 + ldr r4, .L295 ldrb r3, [r4, #3773] @ zero_extendqisi2 cmp r3, #0 - beq .L292 + beq .L293 mov r0, #1 bl NandcSetMode ldrb r0, [r4, #3772] @ zero_extendqisi2 bl FlashSetInterfaceMode ldrb r0, [r4, #3772] @ zero_extendqisi2 bl NandcSetMode - ldrb r0, [r4, #3033] @ zero_extendqisi2 + ubfx r0, r5, #8, #8 bl NandcSetDdrPara -.L292: - ldr r3, .L294 +.L293: + ldr r3, .L295 ldr r3, [r3, #3624] ldrb r0, [r3, #20] @ zero_extendqisi2 - bl FlashBchSel - mov r0, #0 - ldmfd sp!, {r3, r4, r5, pc} -.L295: + ldmfd sp!, {r4, r5, r6, lr} + b FlashBchSel +.L296: .align 2 -.L294: +.L295: .word .LANCHOR0 .word .LANCHOR0+2980 .fnend - .size FlashResume, .-FlashResume + .size ftl_flash_resume, .-ftl_flash_resume .align 2 - .global NandCIrqEnable - .type NandCIrqEnable, %function -NandCIrqEnable: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, [r0, #368] - mov r2, #1 - mov r2, r2, asl r1 - orr r3, r2, r3 - str r3, [r0, #368] - ldr r3, [r0, #364] - orr r2, r2, r3 - str r2, [r0, #364] - bx lr - .fnend - .size NandCIrqEnable, .-NandCIrqEnable - .align 2 - .global NandCIrqDisable - .type NandCIrqDisable, %function -NandCIrqDisable: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, [r0, #368] - mov r2, #1 - mov r2, r2, asl r1 - orr r3, r2, r3 - str r3, [r0, #368] - ldr r3, [r0, #364] - bic r2, r3, r2 - str r2, [r0, #364] - bx lr - .fnend - .size NandCIrqDisable, .-NandCIrqDisable - .align 2 - .global rk_nandc_get_irq_status - .type rk_nandc_get_irq_status, %function -rk_nandc_get_irq_status: + .global ftl_nandc_get_irq_status + .type ftl_nandc_get_irq_status, %function +ftl_nandc_get_irq_status: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -2292,7 +2250,7 @@ rk_nandc_get_irq_status: ldr r0, [r0, #372] bx lr .fnend - .size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status + .size ftl_nandc_get_irq_status, .-ftl_nandc_get_irq_status .align 2 .global rk_nandc_flash_ready .type rk_nandc_flash_ready, %function @@ -2301,8 +2259,13 @@ rk_nandc_flash_ready: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - mov r1, #1 - b NandCIrqDisable + ldr r3, [r0, #368] + orr r3, r3, #2 + str r3, [r0, #368] + ldr r3, [r0, #364] + bic r3, r3, #2 + str r3, [r0, #364] + bx lr .fnend .size rk_nandc_flash_ready, .-rk_nandc_flash_ready .align 2 @@ -2316,22 +2279,29 @@ NandcIqrWaitFlashReady: .save {r4, lr} mov r4, r0 bl rk_nandc_rb_irq_flag_init - mov r0, r4 - mov r1, #1 - bl NandCIrqEnable + ldr r3, [r4, #368] + orr r3, r3, #2 + str r3, [r4, #368] + ldr r3, [r4, #364] + orr r3, r3, #2 + str r3, [r4, #364] ldr r3, [r4, #0] - mov r0, r4 ubfx r3, r3, #8, #8 and r3, r3, #2 uxtb r3, r3 cmp r3, #0 - bne .L301 + bne .L300 + mov r0, r4 ldmfd sp!, {r4, lr} b wait_for_nand_flash_ready -.L301: - mov r1, #1 - ldmfd sp!, {r4, lr} - b NandCIrqDisable +.L300: + ldr r3, [r4, #368] + orr r3, r3, #2 + str r3, [r4, #368] + ldr r3, [r4, #364] + bic r3, r3, #2 + str r3, [r4, #364] + ldmfd sp!, {r4, pc} .fnend .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady .align 2 @@ -2345,18 +2315,18 @@ FlashEraseBlocks: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #28 sub sp, sp, #28 - ldr r5, .L318 + ldr r5, .L321 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 .L302 mov r1, r2 bl FlashEraseSLc2KBlocks - b .L304 -.L312: + b .L303 +.L311: mov r8, #36 rsb r3, r4, r7 mul r8, r8, r4 @@ -2374,17 +2344,17 @@ FlashEraseBlocks: cmp r0, r3 mvncs r3, #0 strcs r3, [r6, r8] - bcs .L306 + bcs .L305 ldrb r3, [r5, #3833] @ zero_extendqisi2 cmp r3, #0 add r3, r9, r0, asl #4 ldr r3, [r3, #3636] moveq sl, #0 cmp r3, #0 - beq .L308 + beq .L307 uxtb r0, r0 bl FlashWaitCmdDone -.L308: +.L307: ldr r2, [sp, #20] mov r1, #0 cmp sl, #0 @@ -2406,15 +2376,15 @@ FlashEraseBlocks: ldr r3, [sp, #12] mov r0, r8 cmp r3, #1 - bne .L310 + bne .L309 ldrb r3, [r5, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L310 + beq .L309 bl flash_enter_slc_mode - b .L311 -.L310: + b .L310 +.L309: bl flash_exit_slc_mode -.L311: +.L310: ldr r3, [sp, #20] mov r0, r8 ldr r1, [sp, #16] @@ -2430,41 +2400,59 @@ FlashEraseBlocks: bl FlashEraseCmd mov r0, r8 bl NandcFlashDeCs -.L306: +.L305: add r4, r4, #1 -.L303: +.L302: cmp r4, r7 - bcc .L312 - ldr r5, .L318 + bcc .L311 + ldr r5, .L321 mov r4, #0 - ldr r6, .L318+4 + ldr r8, .L321+4 ldr r0, [r5, #3012] bl NandcIqrWaitFlashReady - b .L313 -.L315: + b .L312 +.L314: uxtb r0, r4 bl FlashWaitCmdDone ldr r3, [sp, #12] cmp r3, #1 - bne .L314 + bne .L313 ldrb r3, [r5, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L314 - ldrb r0, [r6, r4, asl #4] @ zero_extendqisi2 + beq .L313 + ldrb r0, [r8, r4, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L314: - add r4, r4, #1 .L313: - ldrb r3, [r5, #3762] @ zero_extendqisi2 - cmp r4, r3 - bcc .L315 + add r4, r4, #1 +.L312: + ldrb r2, [r5, #3762] @ zero_extendqisi2 + ldr r3, .L321 + cmp r4, r2 + bcc .L314 + ldr r0, [r3, #3836] + cmp r0, #0 + beq .L303 + ldrb r3, [r3, #2980] @ zero_extendqisi2 + cmp r3, #69 + moveq r3, #0 + moveq r2, r3 + bne .L320 + b .L315 +.L316: + add r3, r3, #1 + str r2, [r6, #-36] +.L315: + cmp r3, r7 + add r6, r6, #36 + bne .L316 +.L320: mov r0, #0 -.L304: +.L303: add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L319: +.L322: .align 2 -.L318: +.L321: .word .LANCHOR0 .word .LANCHOR0+3628 .fnend @@ -2477,8 +2465,13 @@ rk_nandc_flash_xfer_completed: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - mov r1, #0 - b NandCIrqDisable + ldr r3, [r0, #368] + orr r3, r3, #1 + str r3, [r0, #368] + ldr r3, [r0, #364] + bic r3, r3, #1 + str r3, [r0, #364] + bx lr .fnend .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed .align 2 @@ -2492,7 +2485,7 @@ NandcSendDumpDataStart: ldr r2, [r0, #16] .pad #8 sub sp, sp, #8 - ldr r3, .L322 + ldr r3, .L325 str r2, [sp, #4] ldr r2, [sp, #4] bfc r2, #2, #1 @@ -2504,9 +2497,9 @@ NandcSendDumpDataStart: str r3, [r0, #8] add sp, sp, #8 bx lr -.L323: +.L326: .align 2 -.L322: +.L325: .word 538969130 .fnend .size NandcSendDumpDataStart, .-NandcSendDumpDataStart @@ -2520,12 +2513,12 @@ NandcSendDumpDataDone: @ link register save eliminated. .pad #8 sub sp, sp, #8 -.L325: +.L328: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #1048576 - beq .L325 + beq .L328 add sp, sp, #8 bx lr .fnend @@ -2539,89 +2532,92 @@ NandcXferStart: @ 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 r8, r2 - ldr r2, .L340 - mov ip, #16 mov r6, r1 + ldr r1, .L343 + mov r8, r2 mov r4, #0 - add r0, r2, r0, asl #3 .pad #20 sub sp, sp, #20 - ldr r5, [r0, #864] - ldrb r0, [r0, #868] @ zero_extendqisi2 + add r0, r1, r0, asl #3 ldr r9, [sp, #56] + ldr r5, [r0, #864] + ldrb r2, [r0, #868] @ zero_extendqisi2 + mov r0, #16 + ldr ip, [sp, #60] ldr r7, [r5, #12] - ldr r1, [sp, #60] - bfi r7, ip, #8, #8 + bfi r7, r0, #8, #8 bfi r7, r4, #3, #1 bfi r4, r6, #1, #1 orr r4, r4, #8 - bfi r7, r0, #5, #3 - mov r0, #1 - bfi r4, r0, #5, #2 + bfi r7, r2, #5, #3 + mov r2, #1 + bfi r4, r2, #5, #2 orr r4, r4, #536870912 - mov r3, r3, lsr r0 + mov r3, r3, lsr r2 orr r4, r4, #1024 bfi r4, r3, #4, #1 - ldr r3, [r2, #3780] + ldr r3, [r1, #3780] cmp r3, #3 - bls .L328 + bls .L331 ldr r3, [r5, #16] cmp r9, #0 - cmpeq r1, #0 + cmpeq ip, #0 str r3, [sp, #12] ldr r3, [sp, #12] bfc r3, #2, #1 str r3, [sp, #12] - beq .L329 + beq .L332 cmp r6, #0 - beq .L330 - ldr r3, [r2, #3828] - mov ip, r1 + beq .L333 + ldr r3, [r1, #3828] + mov r0, ip cmp r3, #24 movhi r3, #128 movls r3, #64 str r3, [sp, #0] - mov r3, r8, lsr r0 + mov r3, r8, lsr r2 str r3, [sp, #4] mov r3, #0 - mov r0, r3 - b .L332 -.L335: - cmp r1, #0 + mov r2, r3 + b .L335 +.L338: + cmp ip, #0 mov lr, r3, lsr #2 - add r0, r0, #1 - ldrneh fp, [ip, #2] + add r2, r2, #1 + ldrneh fp, [r0, #2] mvneq fp, #0 - ldrneh sl, [ip], #4 - ldreq sl, [r2, #3796] + ldrneh sl, [r0], #4 + ldreq sl, [r1, #3796] orrne sl, sl, fp, asl #16 - ldrne fp, [r2, #3796] + ldrne fp, [r1, #3796] streq fp, [sl, lr, asl #2] strne sl, [fp, lr, asl #2] ldr lr, [sp, #0] add r3, r3, lr -.L332: +.L335: ldr sl, [sp, #4] - cmp r0, sl - bcc .L335 -.L330: + cmp r2, sl + bcc .L338 +.L333: mov r0, r5 add r8, r8, #1 bl rk_nandc_xfer_irq_flag_init - mov r0, r5 - mov r1, #0 + ldr r3, [r5, #368] mov r8, r8, asr #1 - bl NandCIrqEnable - bfi r4, r8, #22, #6 - ldr r8, .L340 cmp r9, #0 + bfi r4, r8, #22, #6 + ldr r8, .L343 + orr r3, r3, #1 + str r3, [r5, #368] + ldr r3, [r5, #364] ubfx sl, r4, #22, #5 - mov r2, r6 - movne r0, r9 ldreq r0, [r8, #3792] - mov r1, sl, asl #10 + movne r0, r9 + orr r3, r3, #1 + str r3, [r5, #364] ldr r3, [r8, #3796] + mov r2, r6 + mov r1, sl, asl #10 str r3, [r8, #3804] str r0, [r8, #3800] bl rknand_dma_map_single @@ -2662,19 +2658,19 @@ NandcXferStart: ldr r3, [sp, #12] orr r3, r3, #1 str r3, [sp, #12] -.L329: +.L332: ldr r3, [sp, #12] str r3, [r5, #16] -.L328: +.L331: 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} -.L341: +.L344: .align 2 -.L340: +.L343: .word .LANCHOR0 .fnend .size NandcXferStart, .-NandcXferStart @@ -2693,14 +2689,14 @@ NandcCopy1KB: mov r4, r0 ldr r6, [sp, #16] add r2, r2, r5, asl #9 - bne .L343 + bne .L346 cmp r3, #0 - beq .L344 + beq .L347 mov r0, r2 mov r1, r3 mov r2, #1024 bl memcpy -.L344: +.L347: cmp r6, #0 ldmeqfd sp!, {r4, r5, r6, pc} ldrb r3, [r6, #2] @ zero_extendqisi2 @@ -2718,14 +2714,14 @@ NandcCopy1KB: add r5, r5, #128 str r3, [r4, r5, asl #2] ldmfd sp!, {r4, r5, r6, pc} -.L343: +.L346: cmp r3, #0 - beq .L346 + beq .L349 mov r1, r2 mov r0, r3 mov r2, #1024 bl memcpy -.L346: +.L349: cmp r6, #0 ldmeqfd sp!, {r4, r5, r6, pc} mov r5, r5, lsr #1 @@ -2754,14 +2750,14 @@ Ftl_log2: @ link register save eliminated. mov r2, #1 mov r3, #0 - b .L348 -.L349: + b .L351 +.L352: add r3, r3, #1 mov r2, r2, asl #1 uxth r3, r3 -.L348: +.L351: cmp r2, r0 - bls .L349 + bls .L352 sub r3, r3, #1 uxth r0, r3 bx lr @@ -2786,27 +2782,27 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L354 - mov r2, #3840 + ldr r3, .L357 + movw r2, #3844 cmp r0, #23 - movw r1, #3850 + movw r1, #3854 ldrh r2, [r3, r2] movls r0, #24 ldrh r1, [r3, r1] - str r0, [r3, #3836] + str r0, [r3, #3840] mul r2, r2, r0 rsb r0, r0, r1 - movw r1, #3848 + movw r1, #3852 strh r0, [r3, r1] @ movhi mov r0, #0 - ldr r1, [r3, #3856] - str r2, [r3, #3844] + ldr r1, [r3, #3860] + str r2, [r3, #3848] rsb r2, r2, r1 - str r2, [r3, #3852] + str r2, [r3, #3856] bx lr -.L355: +.L358: .align 2 -.L354: +.L357: .word .LANCHOR0 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -2819,8 +2815,8 @@ FtlConstantsInit: @ 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, #3860 - ldr r3, .L372 + movw r2, #3864 + ldr r3, .L376 mov r4, r0 ldrh lr, [r0, #8] .pad #20 @@ -2833,20 +2829,20 @@ FtlConstantsInit: strh r1, [r3, r2] @ movhi add r2, r2, #2 strh r0, [r3, r2] @ movhi - movw r2, #3850 + movw r2, #3854 strh r6, [r3, r2] @ movhi mov r3, #0 - ldr r2, .L372+4 -.L357: + ldr r2, .L376+4 +.L360: strb r3, [r3, r2] add r3, r3, #1 cmp r3, #32 - bne .L357 + bne .L360 ldrh r2, [r4, #14] ldrh r3, [r4, #20] cmp r3, r2, lsr #8 - bcs .L358 - ldr r2, .L372+4 + bcs .L361 + ldr r2, .L376+4 sub ip, r1, #1 uxtb r7, r0 mov r3, #0 @@ -2856,22 +2852,22 @@ FtlConstantsInit: mov r8, r7, asl #1 uxtb r8, r8 str ip, [sp, #12] - b .L359 -.L360: + b .L362 +.L363: strb ip, [r9, r2] add fp, ip, r7 add ip, ip, r8 add r5, r5, #1 strb fp, [sl, r2] uxtb ip, ip -.L362: +.L365: cmp r5, r1 add r2, r2, r0 - bcc .L360 + bcc .L363 add r3, r3, #1 -.L359: +.L362: cmp r3, r0 - bcs .L361 + bcs .L364 ldr fp, [sp, #8] mov r2, #0 uxtb ip, r3 @@ -2879,50 +2875,50 @@ FtlConstantsInit: add r9, fp, r3 ldr fp, [sp, #12] add sl, fp, r3 - b .L362 -.L361: - ldr r3, .L372 - movw r2, #3862 + b .L365 +.L364: + ldr r3, .L376 + movw r2, #3866 mov r1, r1, asl #1 mov r6, r6, lsr #1 strh r1, [r3, r2] @ movhi - movw r2, #3850 + movw r2, #3854 strh r6, [r3, r2] @ movhi -.L358: - ldr r3, .L372 - movw r2, #3898 +.L361: + ldr r3, .L376 + movw r2, #3902 cmp lr, #1 mov r1, #5 mov ip, #0 - ldr sl, .L372 + ldr sl, .L376 ldrb r8, [r3, #852] @ zero_extendqisi2 strh r1, [r3, r2] @ movhi - movw r1, #3900 + mov r1, #3904 streqh lr, [r3, r2] @ movhi cmp r8, #0 - movw r2, #3902 + movw r2, #3906 strh ip, [r3, r1] @ movhi mov r1, #4352 strh r1, [r3, r2] @ movhi - ldrne r3, .L372 + ldrne r3, .L376 movne r1, #384 strneh r1, [r3, r2] @ movhi - movw r3, #3862 + movw r3, #3866 ldrh r5, [sl, r3] - mov r3, #3840 + movw r3, #3844 mul r5, r5, r0 uxth r5, r5 strh r5, [sl, r3] @ movhi add r3, r3, #10 ldrh r6, [sl, r3] - mov r3, #3904 + add r3, r3, #54 mul r0, r0, r6 uxth r0, r0 strh r0, [sl, r3] @ movhi bl Ftl_log2 - movw r3, #3906 + movw r3, #3910 ldrh fp, [r4, #18] - movw r2, #3908 + movw r2, #3912 ldrh r9, [r4, #20] strh r0, [sl, r3] @ movhi mov r0, r9 @@ -2937,27 +2933,28 @@ FtlConstantsInit: strh r9, [sl, r2] @ movhi str r3, [sp, #4] bl Ftl_log2 - movw r2, #3916 - movw r1, #3918 + mov r2, #3920 + movw r1, #3922 cmp r6, #1024 strh r0, [sl, r2] @ movhi mov r2, r9, asl #9 mov r7, r0 uxth r2, r2 strh r2, [sl, r1] @ movhi - mov r1, #3920 + add r1, r1, #2 mov r2, r2, lsr #8 strh r2, [sl, r1] @ movhi + movw r2, #3926 ldrh r1, [r4, #26] - movw r2, #3922 mov r4, sl strh r1, [sl, r2] @ movhi uxtbhi r1, r6 mul r2, r6, r5 - str r2, [sl, #3856] - movw r2, #3900 + str r2, [sl, #3860] + movhi r2, #3904 ldr r3, [sp, #4] strhih r1, [sl, r2] @ movhi + mov r2, #3904 ldrh r2, [sl, r2] mul r1, fp, r9 rsb r2, r2, r6 @@ -2966,17 +2963,17 @@ FtlConstantsInit: mul r2, r9, r2 mul r3, r3, r2 mov r3, r3, asr #11 - str r3, [sl, #3924] - movw sl, #3902 + str r3, [sl, #3928] + movw sl, #3906 ldrh r0, [r4, sl] mov r0, r0, asl #3 bl __aeabi_idiv - movw r3, #3928 + movw r3, #3932 uxth r0, r0 strh r0, [r4, r3] @ movhi cmp r0, #4 - ldr r4, .L372 - ldrls r2, .L372 + ldr r4, .L376 + ldrls r2, .L376 movls r1, #4 strlsh r1, [r2, r3] @ movhi cmp r8, #0 @@ -2984,89 +2981,95 @@ FtlConstantsInit: movne r3, #640 strneh r3, [r4, sl] @ movhi ldrh r2, [r4, sl] - movw r3, #3930 + movw r3, #3934 mov r2, r2, asr r7 add r7, r7, #9 mov r6, r6, asr r7 add r2, r2, #2 strh r2, [r4, r3] @ movhi - add r3, r3, #2 + mov r3, #3936 uxth r6, r6 strh r6, [r4, r3] @ movhi mul r3, r5, r6 add r6, r6, #8 - str r3, [r4, #3936] - movw r3, #3928 + str r3, [r4, #3940] + movw r3, #3932 ldrh r0, [r4, r3] bl __aeabi_uidiv cmp r5, #1 - ldreq r3, .L372 + ldreq r3, .L376 uxtah r6, r6, r0 - str r6, [r4, #3836] - ldr r4, .L372 + str r6, [r4, #3840] + ldr r4, .L376 addeq r6, r6, #4 - streq r6, [r3, #3836] - ldr r0, [r4, #3836] + streq r6, [r3, #3840] + ldr r0, [r4, #3840] uxth r0, r0 bl FtlSysBlkNumInit - ldr r3, [r4, #3836] - ldr r6, [r4, #3852] + ldr r3, [r4, #3840] + ldr r6, [r4, #3856] mov r0, #2048 - str r3, [r4, #3940] - movw r3, #3908 + str r3, [r4, #3944] + movw r3, #3912 ldrh r3, [r4, r3] mov r6, r6, asl #2 mul r6, r3, r6 - movw r3, #3916 + mov r3, #3920 ldrh r3, [r4, r3] add r3, r3, #9 mov r6, r6, lsr r3 - movw r3, #3944 + movw r3, #3948 add r6, r6, #2 uxth r6, r6 strh r6, [r4, r3] @ movhi - movw r3, #3914 + movw r3, #3918 ldrh r5, [r4, r3] mov r1, r5 bl __aeabi_idiv - movw r3, #3946 + movw r3, #3950 + ldrb ip, [r4, #928] @ zero_extendqisi2 + ldr r1, [r4, #3940] + cmp ip, #0 strh r0, [r4, r3] @ movhi mov r3, #0 - str r3, [r4, #3948] - movw r3, #3928 - ldrh r1, [r4, r3] - add r2, r1, #3 + str r3, [r4, #3952] + movw r3, #3932 + ldrh r0, [r4, r3] + add r2, r0, #3 strh r2, [r4, r3] @ movhi - ldr r2, [r4, #3936] - add r0, r2, #3 - str r0, [r4, #3936] - ldrb r0, [r4, #928] @ zero_extendqisi2 - cmp r0, #0 - mov r0, #0 - addne r1, r1, #4 - strneh r1, [r4, r3] @ movhi - mov r3, #3952 - addne r2, r2, #5 - strne r2, [r4, #3936] + add r2, r1, #3 + str r2, [r4, #3940] + addne r0, r0, #4 + addne r1, r1, #5 + strneh r0, [r4, r3] @ movhi + strne r1, [r4, #3940] + bne .L373 +.L372: + cmp r2, #7 + movls r3, #8 + strls r3, [r4, #3940] +.L373: + movw r3, #3956 mov r2, #0 strh r2, [r4, r3] @ movhi - movw r2, #3848 + movw r2, #3852 ldrh r2, [r4, r2] + mov r0, #0 mov r1, r2, lsr #3 add r2, r1, r2, asl #1 add r2, r2, #52 add r6, r2, r6, asl #2 cmp r6, r5, asl #9 - ldrcc r2, .L372 + ldrcc r2, .L376 movcc r1, #1 strcch r1, [r2, r3] @ movhi add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L373: +.L377: .align 2 -.L372: +.L376: .word .LANCHOR0 - .word .LANCHOR0+3866 + .word .LANCHOR0+3870 .fnend .size FtlConstantsInit, .-FtlConstantsInit .align 2 @@ -3077,36 +3080,36 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L381 - movw r2, #3954 + ldr r3, .L385 + movw r2, #3958 ldrh r2, [r3, r2] cmp r2, #0 - beq .L379 - movw r2, #3928 + beq .L383 + movw r2, #3932 ldrh r1, [r3, r2] - ldr r2, [r3, #3956] + ldr r2, [r3, #3960] mov r3, #0 - b .L376 -.L378: + b .L380 +.L382: ldrh ip, [r2], #2 cmp ip, r0 - beq .L380 + beq .L384 add r3, r3, #1 uxth r3, r3 -.L376: +.L380: cmp r3, r1 - bne .L378 + bne .L382 mov r0, #0 bx lr -.L380: +.L384: mov r0, #1 bx lr -.L379: +.L383: mov r0, r2 bx lr -.L382: +.L386: .align 2 -.L381: +.L385: .word .LANCHOR0 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -3117,36 +3120,36 @@ FtlCacheMetchLpa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L391 + ldr r2, .L395 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r3, [r2, #3960] + ldr r3, [r2, #3964] cmp r3, #0 - beq .L388 - ldr ip, [r2, #3964] + beq .L392 + ldr ip, [r2, #3968] mov r2, #0 -.L387: +.L391: ldr r4, [ip, #16] cmp r4, r0 - bcc .L385 + bcc .L389 cmp r4, r1 - bls .L389 -.L385: + bls .L393 +.L389: add r2, r2, #1 add ip, ip, #36 cmp r2, r3 - bne .L387 + bne .L391 mov r0, #0 ldmfd sp!, {r4, pc} -.L389: +.L393: mov r0, #1 ldmfd sp!, {r4, pc} -.L388: +.L392: mov r0, r3 ldmfd sp!, {r4, pc} -.L392: +.L396: .align 2 -.L391: +.L395: .word .LANCHOR0 .fnend .size FtlCacheMetchLpa, .-FtlCacheMetchLpa @@ -3158,32 +3161,32 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L394 - ldr r0, [r3, #3948] + ldr r3, .L398 + ldr r0, [r3, #3952] bx lr -.L395: +.L399: .align 2 -.L394: +.L398: .word .LANCHOR0 .fnend .size FtlGetCap, .-FtlGetCap .align 2 - .global FtlGetCapacity - .type FtlGetCapacity, %function -FtlGetCapacity: + .global ftl_get_density + .type ftl_get_density, %function +ftl_get_density: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L397 - ldr r0, [r3, #3948] + ldr r3, .L401 + ldr r0, [r3, #3952] bx lr -.L398: +.L402: .align 2 -.L397: +.L401: .word .LANCHOR0 .fnend - .size FtlGetCapacity, .-FtlGetCapacity + .size ftl_get_density, .-ftl_get_density .align 2 .global FtlGetLpn .type FtlGetLpn, %function @@ -3192,56 +3195,15 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L400 - ldr r0, [r3, #3968] - bx lr -.L401: - .align 2 -.L400: - .word .LANCHOR0 - .fnend - .size FtlGetLpn, .-FtlGetLpn - .align 2 - .global FtlGetCurEraseBlock - .type FtlGetCurEraseBlock, %function -FtlGetCurEraseBlock: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L403 - mov r2, #3840 - ldrh r2, [r3, r2] + ldr r3, .L404 ldr r0, [r3, #3972] - mul r0, r0, r2 - bx lr -.L404: - .align 2 -.L403: - .word .LANCHOR0 - .fnend - .size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock - .align 2 - .global FtlGetAllBlockNum - .type FtlGetAllBlockNum, %function -FtlGetAllBlockNum: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L406 - mov r1, #3840 - movw r2, #3850 - ldrh r2, [r3, r2] - ldrh r0, [r3, r1] - mul r0, r0, r2 bx lr -.L407: +.L405: .align 2 -.L406: +.L404: .word .LANCHOR0 .fnend - .size FtlGetAllBlockNum, .-FtlGetAllBlockNum + .size FtlGetLpn, .-FtlGetLpn .align 2 .global FtlBbmMapBadBlock .type FtlBbmMapBadBlock, %function @@ -3251,8 +3213,8 @@ FtlBbmMapBadBlock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r0, r1, r4, r5, r6, lr} - mov r3, #3904 - ldr r4, .L409 + movw r3, #3908 + ldr r4, .L407 mov r5, r0 ldrh r6, [r4, r3] mov r1, r6 @@ -3270,7 +3232,7 @@ FtlBbmMapBadBlock: str r1, [r0, ip, asl #2] str r1, [sp, #0] mov r1, r5 - ldr r0, .L409+4 + ldr r0, .L407+4 bl printk movw r3, #3982 ldrh r2, [r4, r3] @@ -3278,9 +3240,9 @@ FtlBbmMapBadBlock: add r2, r2, r6 strh r2, [r4, r3] @ movhi ldmfd sp!, {r2, r3, r4, r5, r6, pc} -.L410: +.L408: .align 2 -.L409: +.L407: .word .LANCHOR0 .word .LC3 .fnend @@ -3295,8 +3257,8 @@ FtlBbmIsBadBlock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - mov r3, #3904 - ldr r5, .L412 + movw r3, #3908 + ldr r5, .L410 mov r7, r0 ldrh r6, [r5, r3] mov r1, r6 @@ -3314,9 +3276,9 @@ FtlBbmIsBadBlock: mov r0, r0, lsr r4 and r0, r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L413: +.L411: .align 2 -.L412: +.L410: .word .LANCHOR0 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -3342,11 +3304,11 @@ FtlBbtCalcTotleCnt: .save {r4, r5, r6, r7, r8, lr} mov r4, #0 mov r5, r4 - ldr r6, .L419 - mov r8, #3904 - movw r7, #3862 - b .L416 -.L418: + ldr r6, .L417 + movw r8, #3908 + movw r7, #3866 + b .L414 +.L416: mov r0, r5 add r5, r5, #1 bl FtlBbmIsBadBlock @@ -3354,17 +3316,17 @@ FtlBbtCalcTotleCnt: cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 -.L416: +.L414: ldrh r3, [r6, r8] ldrh r2, [r6, r7] mul r3, r2, r3 cmp r5, r3 - blt .L418 + blt .L416 mov r0, r4 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L420: +.L418: .align 2 -.L419: +.L417: .word .LANCHOR0 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -3377,14 +3339,14 @@ V2P_block: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - movw r3, #3864 - ldr r5, .L422 + movw r3, #3868 + ldr r5, .L420 mov r7, r1 mov r6, r0 ldrh r4, [r5, r3] mov r1, r4 bl __aeabi_uidiv - mov r3, #3904 + movw r3, #3908 ldrh r5, [r5, r3] mov r1, r4 mul r7, r4, r7 @@ -3394,9 +3356,9 @@ V2P_block: add r1, r5, r1 uxth r0, r1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L423: +.L421: .align 2 -.L422: +.L420: .word .LANCHOR0 .fnend .size V2P_block, .-V2P_block @@ -3407,13 +3369,13 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L425 - movw r2, #3864 + ldr r3, .L423 + movw r2, #3868 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 ldrh r4, [r3, r2] - mov r2, #3904 + add r2, r2, #40 ldrh r1, [r3, r2] bl __aeabi_uidiv mov r1, r4 @@ -3423,9 +3385,9 @@ P2V_plane: add r1, r5, r1 uxth r0, r1 ldmfd sp!, {r4, r5, r6, pc} -.L426: +.L424: .align 2 -.L425: +.L423: .word .LANCHOR0 .fnend .size P2V_plane, .-P2V_plane @@ -3438,85 +3400,23 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - mov r3, #3904 - ldr r4, .L428 + movw r3, #3908 + ldr r4, .L426 ldrh r1, [r4, r3] bl __aeabi_uidivmod - movw r3, #3864 + movw r3, #3868 uxth r0, r1 ldrh r1, [r4, r3] bl __aeabi_uidiv uxth r0, r0 ldmfd sp!, {r4, pc} -.L429: +.L427: .align 2 -.L428: +.L426: .word .LANCHOR0 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane .align 2 - .type FtlFreeSysBlkQueueOut.part.5, %function -FtlFreeSysBlkQueueOut.part.5: - .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} - movw r3, #4038 - ldr r4, .L433 - movw r1, #4036 - ldr r8, .L433+4 - ldrh r2, [r4, r3] - ldr r7, [r8, #-2092] - add r0, r2, #4 - add r2, r2, #1 - cmp r7, #0 - bic r2, r2, #64512 - add r0, r4, r0, asl #1 - ldrh r5, [r0, r1] - add r1, r1, #6 - strh r2, [r4, r3] @ movhi - ldrh r0, [r4, r1] - sub r0, r0, #1 - strh r0, [r4, r1] @ movhi - bne .L431 - mov r0, r5 - bl P2V_block_in_plane - mov r3, r5, asl #10 - mov r6, r0 - ldr r0, [r8, #-2088] - str r3, [r0, #4] - ldrb r3, [r4, #928] @ zero_extendqisi2 - cmp r3, #0 - beq .L432 - mov r1, r7 - mov r2, #1 - bl FlashEraseBlocks -.L432: - ldr r4, .L433+4 - mov r1, #1 - mov r2, r1 - mov r6, r6, asl #1 - ldr r0, [r4, #-2088] - bl FlashEraseBlocks - ldr r3, [r4, #-2084] - ldrh r2, [r3, r6] - add r2, r2, #1 - strh r2, [r3, r6] @ movhi - ldr r3, [r4, #-2080] - add r3, r3, #1 - str r3, [r4, #-2080] -.L431: - mov r0, r5 - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L434: - .align 2 -.L433: - .word .LANCHOR0 - .word .LANCHOR2 - .fnend - .size FtlFreeSysBlkQueueOut.part.5, .-FtlFreeSysBlkQueueOut.part.5 - .align 2 .global ftl_cmp_data_ver .type ftl_cmp_data_ver, %function ftl_cmp_data_ver: @@ -3525,13 +3425,13 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L436 + bls .L429 rsb r0, r1, r0 cmp r0, #-2147483648 movhi r0, #0 movls r0, #1 bx lr -.L436: +.L429: rsb r0, r0, r1 cmp r0, #-2147483648 movls r0, #0 @@ -3547,15 +3447,15 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L439 + ldr r2, .L432 movw r3, #4042 ldrh r0, [r2, r3] rsbs r0, r0, #1 movcc r0, #0 bx lr -.L440: +.L433: .align 2 -.L439: +.L432: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty @@ -3567,16 +3467,16 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L442 + ldr r2, .L435 movw r3, #4042 ldrh r0, [r2, r3] sub r2, r0, #1024 rsbs r0, r2, #0 adc r0, r0, r2 bx lr -.L443: +.L436: .align 2 -.L442: +.L435: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull @@ -3587,7 +3487,7 @@ FtlFreeSysBlkQueueIn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L447 + ldr r2, .L440 movw r3, #4042 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} @@ -3596,11 +3496,11 @@ FtlFreeSysBlkQueueIn: cmp r3, #1024 ldmeqfd sp!, {r4, r5, r6, pc} cmp r1, #0 - beq .L446 - ldr r4, .L447+4 + beq .L439 + ldr r4, .L440+4 ldr r3, [r4, #-2092] cmp r3, #0 - bne .L446 + bne .L439 bl P2V_block_in_plane mov r1, #1 mov r3, r5, asl #10 @@ -3617,8 +3517,8 @@ FtlFreeSysBlkQueueIn: ldr r3, [r4, #-2080] add r3, r3, #1 str r3, [r4, #-2080] -.L446: - ldr r3, .L447 +.L439: + ldr r3, .L440 movw r2, #4042 movw r0, #4036 ldrh r1, [r3, r2] @@ -3633,9 +3533,9 @@ FtlFreeSysBlkQueueIn: strh r5, [ip, r0] @ movhi strh r1, [r3, r2] @ movhi ldmfd sp!, {r4, r5, r6, pc} -.L448: +.L441: .align 2 -.L447: +.L440: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -3647,86 +3547,49 @@ FtlFreeSysBLkSort: .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} - mov r4, #0 - ldr r5, .L459 - movw r8, #4042 - movw r7, #4038 - ldr r6, .L459+4 - b .L450 -.L451: - ldrh r3, [r5, r7] - add r3, r4, r3 - add r3, r5, r3, asl #1 - add r3, r3, #4032 - ldrh r0, [r3, #12] - bl P2V_block_in_plane - ldr r2, [r6, #-2084] - ldr r3, [r6, #-2076] - mov r0, r0, asl #1 - ldrh r2, [r2, r0] - str r2, [r3, r4, asl #2] - add r4, r4, #1 - uxth r4, r4 -.L450: - ldrh r3, [r5, r8] - cmp r3, r4 - bhi .L451 - mov r3, #0 - ldr ip, .L459 - movw r8, #4042 - ldr r4, .L459+4 - movw r7, #4038 - b .L452 -.L457: - add r6, r3, #1 - ldr r1, [r4, #-2076] - mov r2, r3 - uxth r6, r6 - mov r0, r6 - b .L453 -.L455: - ldr r9, [r1, r2, asl #2] - ldr sl, [r1, r0, asl #2] - cmp r9, sl - movhi r2, r0 + ldr r3, .L445 + mov r0, #0 + ldr r2, .L445+4 + ldr r1, .L445+8 + stmfd sp!, {r4, r5, lr} + .save {r4, r5, lr} + ldrh r4, [r2, r3] + movw r3, #4038 + ldrh r2, [r1, r3] + add r3, r3, #2 + and r4, r4, #31 + ldrh r3, [r1, r3] + b .L443 +.L444: + add ip, r1, r2, asl #1 + add r2, r2, #1 + add ip, ip, #4032 add r0, r0, #1 + mov r2, r2, asl #22 + ldrh r5, [ip, #12] + add ip, r1, r3, asl #1 + add r3, r3, #1 + add ip, ip, #4032 + mov r2, r2, lsr #22 uxth r0, r0 -.L453: - cmp r0, r5 - bcc .L455 - cmp r3, r2 - beq .L456 - ldr r5, [r1, r3, asl #2] - ldr r0, [r1, r2, asl #2] - str r5, [r1, r2, asl #2] - ldr r1, [r4, #-2076] - str r0, [r1, r3, asl #2] - ldrh r1, [ip, r7] - add r2, r1, r2 - add r3, r1, r3 - add r2, ip, r2, asl #1 - add r3, ip, r3, asl #1 - add r2, r2, #4032 - add r3, r3, #4032 - ldrh r0, [r2, #12] - ldrh r1, [r3, #12] - strh r1, [r2, #12] @ movhi - strh r0, [r3, #12] @ movhi -.L456: - mov r3, r6 -.L452: - ldrh r5, [ip, r8] - sub r2, r5, #1 - cmp r3, r2 - blt .L457 - ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L460: + mov r3, r3, asl #22 + strh r5, [ip, #12] @ movhi + mov r3, r3, lsr #22 +.L443: + cmp r0, r4 + ldr ip, .L445+8 + blt .L444 + movw r1, #4038 + strh r2, [ip, r1] @ movhi + movw r2, #4040 + strh r3, [ip, r2] @ movhi + ldmfd sp!, {r4, r5, pc} +.L446: .align 2 -.L459: - .word .LANCHOR0 +.L445: + .word -2048 .word .LANCHOR2 + .word .LANCHOR0 .fnend .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 @@ -3736,7 +3599,7 @@ remove_from_free_sys_Queue: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L467 + ldr r3, .L453 movw r2, #4042 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} @@ -3747,10 +3610,10 @@ remove_from_free_sys_Queue: movw r2, #4038 mov r5, #0 ldrh ip, [r3, r2] - b .L463 -.L465: + b .L449 +.L451: add r2, r5, ip - ldr r4, .L467 + ldr r4, .L453 movw r6, #4036 mov r2, r2, asl #22 add r2, r3, r2, lsr #21 @@ -3758,8 +3621,8 @@ remove_from_free_sys_Queue: add r2, r2, #12 ldrh r2, [r2, #0] cmp r2, r1 - bne .L464 - ldr r0, .L467+4 + bne .L450 + ldr r0, .L453+4 bl printk movw r2, #4038 ldrh r3, [r4, r2] @@ -3780,16 +3643,16 @@ remove_from_free_sys_Queue: sub r2, r2, #1 strh r2, [r4, r3] @ movhi ldmfd sp!, {r4, r5, r6, pc} -.L464: +.L450: add r5, r5, #1 -.L463: +.L449: cmp r5, r0 - bcc .L465 + bcc .L451 mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L468: +.L454: .align 2 -.L467: +.L453: .word .LANCHOR0 .word .LC4 .fnend @@ -3801,20 +3664,78 @@ FtlFreeSysBlkQueueOut: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r2, .L471 - movw r3, #4042 - ldrh r3, [r2, r3] + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + .save {r4, r5, r6, r7, r8, r9, sl, lr} + movw r7, #4042 + ldr r4, .L462 + movw r8, #4038 +.L456: + ldrh r1, [r4, r7] + cmp r1, #0 + beq .L457 + ldr r9, .L462+4 + sub r1, r1, #1 + ldrh r2, [r4, r8] + ldr r6, [r9, #-2092] + add r3, r4, r2, asl #1 + add r2, r2, #1 + add r3, r3, #4032 + cmp r6, #0 + bic r2, r2, #64512 + ldrh r5, [r3, #12] + strh r1, [r4, r7] @ movhi + strh r2, [r4, r8] @ movhi + bne .L458 + mov r0, r5 + bl P2V_block_in_plane + mov r3, r5, asl #10 + mov sl, r0 + ldr r0, [r9, #-2088] + str r3, [r0, #4] + ldrb r3, [r4, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L470 - b FtlFreeSysBlkQueueOut.part.5 -.L470: - movw r0, #65535 - bx lr -.L472: + beq .L459 + mov r1, r6 + mov r2, #1 + bl FlashEraseBlocks +.L459: + ldr r6, .L462+4 + mov r1, #1 + mov r2, r1 + mov sl, sl, asl #1 + ldr r0, [r6, #-2088] + bl FlashEraseBlocks + ldr r3, [r6, #-2084] + ldrh r2, [r3, sl] + add r2, r2, #1 + strh r2, [r3, sl] @ movhi + ldr r3, [r6, #-2080] + add r3, r3, #1 + str r3, [r6, #-2080] + b .L458 +.L457: + ldr r0, .L462+8 + bl printk +.L460: + b .L460 +.L458: + cmp r5, #0 + bne .L461 + mov r1, r5 + ldrh r2, [r4, r7] + ldr r0, .L462+12 + bl printk + b .L456 +.L461: + mov r0, r5 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} +.L463: .align 2 -.L471: +.L462: .word .LANCHOR0 + .word .LANCHOR2 + .word .LC5 + .word .LC6 .fnend .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut .align 2 @@ -3824,38 +3745,38 @@ insert_data_list: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L488 - movw r3, #3848 + ldr r2, .L479 + movw r3, #3852 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 ldrh r3, [r2, r3] cmp r3, r0 - bls .L474 - ldr r1, .L488+4 + bls .L465 + ldr r1, .L479+4 mov ip, #6 mul ip, ip, r0 mvn r6, #0 - ldr r4, [r1, #-2072] + ldr r4, [r1, #-2028] mov r5, r1 add r2, r4, ip strh r6, [r2, #2] @ movhi strh r6, [r4, ip] @ movhi - ldr r3, [r1, #-2068] + ldr r3, [r1, #-2024] cmp r3, #0 - beq .L487 -.L475: - ldr r7, [r1, #-2064] + beq .L478 +.L466: + ldr r7, [r1, #-2020] mov r8, r0, asl #1 ldrh r1, [r2, #4] - ldr r9, .L488 + ldr r9, .L479 ldrh sl, [r7, r8] cmp r1, #0 ldr fp, [r5, #-2084] mulne r6, r1, sl - ldr r1, [r5, #-2072] - ldr sl, .L488+8 + ldr r1, [r5, #-2028] + ldr sl, .L479+8 mov r5, #0 add r8, fp, r8 str r8, [sp, #12] @@ -3863,18 +3784,18 @@ insert_data_list: rsb r1, r1, r3 mov r1, r1, asr #1 mul r1, sl, r1 - movw sl, #3848 + movw sl, #3852 ldrh sl, [r9, sl] str sl, [sp, #8] uxth r1, r1 -.L482: +.L473: add r5, r5, #1 ldr r8, [sp, #8] uxth r5, r5 cmp r5, r8 - bhi .L474 + bhi .L465 cmp r0, r1 - beq .L474 + beq .L465 mov r9, r1, asl #1 ldrh r8, [r3, #4] ldrh sl, [r7, r9] @@ -3882,56 +3803,56 @@ insert_data_list: mvneq r8, #0 mulne r8, r8, sl cmp r8, r6 - bne .L478 + bne .L469 ldrh sl, [fp, r9] ldr r9, [sp, #12] ldrh r8, [r9, #0] cmp sl, r8 - bcc .L480 - b .L479 -.L478: - bhi .L479 -.L480: + bcc .L471 + b .L470 +.L469: + bhi .L470 +.L471: ldrh r8, [r3, #0] movw sl, #65535 cmp r8, sl streqh r1, [r2, #2] @ movhi streqh r0, [r3, #0] @ movhi - ldreq r3, .L488+4 - streq r2, [r3, #-2060] - beq .L474 -.L481: + ldreq r3, .L479+4 + streq r2, [r3, #-2016] + beq .L465 +.L472: ldr r9, [sp, #4] mov r1, #6 mla r3, r1, r8, r9 mov r1, r8 - b .L482 -.L479: + b .L473 +.L470: strh r1, [r4, ip] @ movhi ldrh r1, [r3, #2] strh r1, [r2, #2] @ movhi - ldr r1, .L488+4 - ldr ip, [r1, #-2068] + ldr r1, .L479+4 + ldr ip, [r1, #-2024] cmp r3, ip - bne .L483 + bne .L474 strh r0, [r3, #2] @ movhi -.L487: - str r2, [r1, #-2068] - b .L474 -.L483: +.L478: + str r2, [r1, #-2024] + b .L465 +.L474: ldrh r2, [r3, #2] mov ip, #6 - ldr r1, [r1, #-2072] + ldr r1, [r1, #-2028] mul r2, ip, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L474: +.L465: mov r0, #0 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L489: +.L480: .align 2 -.L488: +.L479: .word .LANCHOR0 .word .LANCHOR2 .word -1431655765 @@ -3947,17 +3868,17 @@ INSERT_DATA_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L491 - ldr r3, .L491+4 + ldr r2, .L482 + ldr r3, .L482+4 ldrh r1, [r2, r3] add r1, r1, #1 strh r1, [r2, r3] @ movhi ldmfd sp!, {r3, pc} -.L492: +.L483: .align 2 -.L491: +.L482: .word .LANCHOR2 - .word -2056 + .word -2012 .fnend .size INSERT_DATA_LIST, .-INSERT_DATA_LIST .align 2 @@ -3971,68 +3892,68 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, sl, lr} movw r6, #65535 cmp r0, r6 - beq .L494 - ldr r1, .L501 + beq .L485 + ldr r1, .L492 mov r5, #6 mul ip, r5, r0 mvn r3, #0 - ldr r4, [r1, #-2072] + ldr r4, [r1, #-2028] add r2, r4, ip strh r3, [r2, #2] @ movhi strh r3, [r4, ip] @ movhi - ldr r3, [r1, #-2052] + ldr r3, [r1, #-2008] cmp r3, #0 - beq .L500 -.L495: - ldr sl, [r1, #-2072] + beq .L491 +.L486: + ldr sl, [r1, #-2028] mov r8, r0, asl #1 ldr r7, [r1, #-2084] rsb r1, sl, r3 - ldr r9, .L501+4 + ldr r9, .L492+4 mov r1, r1, asr #1 ldrh r8, [r7, r8] mul r1, r9, r1 mov r9, r5 uxth r1, r1 -.L498: +.L489: mov r5, r1, asl #1 ldrh r5, [r7, r5] cmp r5, r8 - bcs .L496 + bcs .L487 ldrh r5, [r3, #0] cmp r5, r6 streqh r1, [r2, #2] @ movhi streqh r0, [r3, #0] @ movhi - beq .L494 -.L497: + beq .L485 +.L488: mla r3, r9, r5, sl mov r1, r5 - b .L498 -.L496: + b .L489 +.L487: ldrh r5, [r3, #2] strh r5, [r2, #2] @ movhi strh r1, [r4, ip] @ movhi - ldr r1, .L501 - ldr ip, [r1, #-2052] + ldr r1, .L492 + ldr ip, [r1, #-2008] cmp r3, ip - bne .L499 + bne .L490 strh r0, [r3, #2] @ movhi -.L500: - str r2, [r1, #-2052] - b .L494 -.L499: +.L491: + str r2, [r1, #-2008] + b .L485 +.L490: ldrh r2, [r3, #2] mov ip, #6 - ldr r1, [r1, #-2072] + ldr r1, [r1, #-2028] mul r2, ip, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L494: +.L485: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L502: +.L493: .align 2 -.L501: +.L492: .word .LANCHOR2 .word -1431655765 .fnend @@ -4047,17 +3968,17 @@ INSERT_FREE_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L504 - ldr r3, .L504+4 + ldr r2, .L495 + ldr r3, .L495+4 ldrh r1, [r2, r3] add r1, r1, #1 strh r1, [r2, r3] @ movhi ldmfd sp!, {r3, pc} -.L505: +.L496: .align 2 -.L504: +.L495: .word .LANCHOR2 - .word -2048 + .word -2004 .fnend .size INSERT_FREE_LIST, .-INSERT_FREE_LIST .align 2 @@ -4067,10 +3988,10 @@ List_remove_node: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L511 + ldr ip, .L502 mov r2, #6 mul r1, r2, r1 - ldr r3, [ip, #-2072] + ldr r3, [ip, #-2028] stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} add r5, r3, r1 @@ -4078,7 +3999,7 @@ List_remove_node: movw r6, #65535 cmp r5, r4 ldrh r4, [r3, r1] - bne .L507 + bne .L498 cmp r4, r6 mlane r2, r2, r4, r3 moveq r2, #0 @@ -4086,33 +4007,33 @@ List_remove_node: strne r2, [r0, #0] mvnne r0, #0 strneh r0, [r2, #2] @ movhi - b .L509 -.L507: + b .L500 +.L498: cmp r4, r6 ldrh r0, [r5, #2] - bne .L510 + bne .L501 cmp r0, r4 mulne r2, r2, r0 mvnne r0, #0 strneh r0, [r3, r2] @ movhi - b .L509 -.L510: + b .L500 +.L501: mla r4, r2, r4, r3 strh r0, [r4, #2] @ movhi ldrh r6, [r5, #2] ldrh r4, [r3, r1] - ldr r0, [ip, #-2072] + ldr r0, [ip, #-2028] mul r2, r2, r6 strh r4, [r0, r2] @ movhi -.L509: +.L500: mvn r2, #0 mov r0, #0 strh r2, [r3, r1] @ movhi strh r2, [r5, #2] @ movhi ldmfd sp!, {r4, r5, r6, pc} -.L512: +.L503: .align 2 -.L511: +.L502: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -4127,25 +4048,25 @@ List_pop_index_node: .save {r4, lr} ldr r3, [r0, #0] cmp r3, #0 - beq .L518 - ldr r2, .L519 + beq .L509 + ldr r2, .L510 movw lr, #65535 mov ip, #6 - ldr r4, [r2, #-2072] - b .L515 -.L517: + ldr r4, [r2, #-2028] + b .L506 +.L508: mla r3, ip, r2, r4 sub r1, r1, #1 uxth r1, r1 -.L515: +.L506: cmp r1, #0 - beq .L516 + beq .L507 ldrh r2, [r3, #0] cmp r2, lr - bne .L517 -.L516: + bne .L508 +.L507: rsb r4, r4, r3 - ldr r3, .L519+4 + ldr r3, .L510+4 mov r4, r4, asr #1 mul r4, r3, r4 uxth r4, r4 @@ -4153,12 +4074,12 @@ List_pop_index_node: bl List_remove_node mov r0, r4 ldmfd sp!, {r4, pc} -.L518: +.L509: movw r0, #65535 ldmfd sp!, {r4, pc} -.L520: +.L511: .align 2 -.L519: +.L510: .word .LANCHOR2 .word -1431655765 .fnend @@ -4171,39 +4092,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, .L527 - ldr r3, [r2, #-2068] + ldr r2, .L518 + ldr r3, [r2, #-2024] cmp r3, #0 - beq .L526 - ldr r2, [r2, #-2072] + beq .L517 + ldr r2, [r2, #-2028] movw r1, #65535 mov ip, #6 - b .L523 -.L525: + b .L514 +.L516: mla r3, ip, r3, r2 sub r0, r0, #1 uxth r0, r0 -.L523: +.L514: cmp r0, #0 - beq .L524 + beq .L515 ldrh r3, [r3, #0] cmp r3, r1 - bne .L525 + bne .L516 mov r0, r1 bx lr -.L524: +.L515: rsb r3, r2, r3 - ldr r0, .L527+4 + ldr r0, .L518+4 mov r3, r3, asr #1 mul r0, r0, r3 uxth r0, r0 bx lr -.L526: +.L517: movw r0, #65535 bx lr -.L528: +.L519: .align 2 -.L527: +.L518: .word .LANCHOR2 .word -1431655765 .fnend @@ -4218,77 +4139,79 @@ List_update_data_list: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, r0 - ldr r3, .L536 - ldr r2, .L536+4 + ldr r3, .L527 + ldr r2, .L527+4 ldrh r2, [r3, r2] cmp r2, r0 - beq .L530 - ldr r2, .L536+8 + beq .L521 + ldr r2, .L527+8 ldrh r2, [r3, r2] cmp r2, r0 - beq .L530 - ldr r2, .L536+12 + beq .L521 + ldr r2, .L527+12 ldrh r2, [r3, r2] cmp r2, r0 - beq .L530 + beq .L521 mov r5, #6 - ldr r2, [r3, #-2072] + ldr r2, [r3, #-2028] mul r5, r5, r0 - ldr r1, [r3, #-2068] - add r0, r2, r5 - cmp r0, r1 - beq .L530 - ldr ip, [r3, #-2064] + ldr r0, [r3, #-2024] + add r1, r2, r5 + cmp r1, r0 + beq .L521 + ldr ip, [r3, #-2020] mov r3, r4, asl #1 - ldrh r1, [r0, #4] - ldrh r3, [ip, r3] - muls r1, r1, r3 - ldrh r3, [r0, #2] - mvneq r1, #0 - movw r0, #65535 - cmp r3, r0 - bne .L532 - ldrh r0, [r2, r5] - cmp r0, r3 - beq .L530 -.L532: - mov r0, #6 - mla r3, r0, r3, r2 - ldr r0, .L536+16 + ldrh r0, [ip, r3] + ldrh r3, [r1, #4] + cmp r3, #0 + mulne r0, r3, r0 + ldrh r3, [r1, #2] + mvneq r0, #0 + movw r1, #65535 + cmp r3, r1 + bne .L523 + ldrh r1, [r2, r5] + cmp r1, r3 + beq .L521 +.L523: + mov r1, #6 + mla r3, r1, r3, r2 + ldr r1, .L527+16 rsb r2, r2, r3 mov r2, r2, asr #1 ldrh r3, [r3, #4] - mul r2, r0, r2 + mul r2, r1, r2 + cmp r3, #0 + mvneq r3, #0 uxth r2, r2 mov r2, r2, asl #1 ldrh r2, [ip, r2] - muls r3, r3, r2 - mvneq r3, #0 - cmp r1, r3 - bcs .L530 - ldr r0, .L536+20 + mulne r3, r3, r2 + cmp r0, r3 + bcs .L521 + ldr r0, .L527+20 mov r1, r4 bl List_remove_node - ldr r5, .L536 - ldr r3, .L536+24 + ldr r5, .L527 + ldr r3, .L527+24 mov r0, r4 ldrh r2, [r5, r3] sub r2, r2, #1 strh r2, [r5, r3] @ movhi bl INSERT_DATA_LIST -.L530: +.L521: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L537: +.L528: .align 2 -.L536: +.L527: .word .LANCHOR2 - .word -2044 - .word -1996 - .word -1948 + .word -2000 + .word -1952 + .word -1904 .word -1431655765 - .word .LANCHOR2-2068 - .word -2056 + .word .LANCHOR2-2024 + .word -2012 .fnend .size List_update_data_list, .-List_update_data_list .align 2 @@ -4304,17 +4227,29 @@ ftl_map_blk_alloc_new_blk: ldrh r2, [r0, #10] mov r5, #0 ldr r3, [r0, #12] - b .L539 -.L542: + b .L530 +.L535: mov r7, r3 add r3, r3, #2 ldrh r6, [r7, #0] cmp r6, #0 - bne .L540 + bne .L531 bl FtlFreeSysBlkQueueOut - cmp r0, #0 + movw r3, #65533 + sub r2, r0, #1 + mov r1, r0 strh r0, [r7, #0] @ movhi - beq .L541 + uxth r2, r2 + cmp r2, r3 + bls .L532 + ldr r2, .L536 + movw r3, #4042 + ldr r0, .L536+4 + ldrh r2, [r2, r3] + bl printk +.L533: + b .L533 +.L532: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi add r3, r3, #1 @@ -4323,16 +4258,21 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4, #0] @ movhi add r3, r3, #1 strh r3, [r4, #8] @ movhi - b .L541 -.L540: + b .L534 +.L531: add r5, r5, #1 uxth r5, r5 -.L539: +.L530: cmp r5, r2 - bne .L542 -.L541: + bne .L535 +.L534: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} +.L537: + .align 2 +.L536: + .word .LANCHOR0 + .word .LC7 .fnend .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk .align 2 @@ -4342,18 +4282,18 @@ select_l2p_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L555 - movw r3, #3946 + ldr r2, .L550 + movw r3, #3950 stmfd sp!, {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} movw r1, #65535 ldrh r3, [r2, r3] - ldr r2, .L555+4 - ldr ip, [r2, #-1900] + ldr r2, .L550+4 + ldr ip, [r2, #-1856] mov r2, #0 mov r0, r2 - b .L544 -.L546: + b .L539 +.L541: add r2, r2, #12 add r4, ip, r2 ldrh r4, [r4, #-12] @@ -4361,62 +4301,62 @@ select_l2p_ram_region: ldmeqfd sp!, {r4, r5, r6, r7, pc} add r0, r0, #1 uxth r0, r0 -.L544: +.L539: cmp r0, r3 - bne .L546 + bne .L541 mov r1, #0 mov r0, r3 mov r5, #-2147483648 mov r2, r1 - b .L547 -.L549: + b .L542 +.L544: add r4, ip, r1 ldr r4, [r4, #4] cmp r4, #0 - blt .L548 + blt .L543 cmp r4, r5 movcc r5, r4 movcc r0, r2 -.L548: +.L543: add r2, r2, #1 add r1, r1, #12 uxth r2, r2 -.L547: +.L542: cmp r2, r3 - bne .L549 + bne .L544 cmp r0, r3 ldmccfd sp!, {r4, r5, r6, r7, pc} - ldr r2, .L555+8 + ldr r2, .L550+8 mov r0, r3 - ldr r1, .L555+4 + ldr r1, .L550+4 mvn r4, #0 ldrh r6, [r1, r2] mov r2, #0 mov r1, r2 - b .L550 -.L552: + b .L545 +.L547: add r5, ip, r2 ldr r5, [r5, #4] cmp r5, r4 - bcs .L551 + bcs .L546 ldrh r7, [ip, r2] cmp r7, r6 movne r4, r5 movne r0, r1 -.L551: +.L546: add r1, r1, #1 add r2, r2, #12 uxth r1, r1 -.L550: +.L545: cmp r1, r3 - bne .L552 + bne .L547 ldmfd sp!, {r4, r5, r6, r7, pc} -.L556: +.L551: .align 2 -.L555: +.L550: .word .LANCHOR0 .word .LANCHOR2 - .word -1896 + .word -1852 .fnend .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -4426,8 +4366,8 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L563 - ldr r2, .L563+4 + ldr r3, .L558 + ldr r2, .L558+4 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} ldrh r1, [r2, r3] @@ -4435,36 +4375,36 @@ FtlUpdateVaildLpn: add ip, r1, #1 mov r1, r3 strh ip, [r2, r3] @ movhi - bhi .L558 + bhi .L553 cmp r0, #0 ldmeqfd sp!, {r4, r5, pc} -.L558: - ldr r0, .L563+8 +.L553: + ldr r0, .L558+8 mov r3, #0 strh r3, [r2, r1] @ movhi - movw r1, #3848 - str r3, [r2, #-1892] + movw r1, #3852 + str r3, [r2, #-1848] movw ip, #65535 ldrh r4, [r0, r1] - ldr r1, [r2, #-2064] - ldr r2, .L563+4 - b .L560 -.L562: + ldr r1, [r2, #-2020] + ldr r2, .L558+4 + b .L555 +.L557: ldrh r0, [r1], #2 add r3, r3, #1 cmp r0, ip uxth r3, r3 - ldrne r5, [r2, #-1892] + ldrne r5, [r2, #-1848] addne r0, r0, r5 - strne r0, [r2, #-1892] -.L560: + strne r0, [r2, #-1848] +.L555: cmp r3, r4 - bne .L562 + bne .L557 ldmfd sp!, {r4, r5, pc} -.L564: +.L559: .align 2 -.L563: - .word -1894 +.L558: + .word -1850 .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -4477,21 +4417,21 @@ ftl_set_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L569 + ldr r3, .L564 mov r2, r0, lsr #5 cmp r1, #0 and r0, r0, #31 uxth r2, r2 mov ip, #1 - ldr r3, [r3, #-1888] + ldr r3, [r3, #-1844] ldr r1, [r3, r2, asl #2] orrne r0, r1, ip, asl r0 biceq r0, r1, ip, asl r0 str r0, [r3, r2, asl #2] bx lr -.L570: +.L565: .align 2 -.L569: +.L564: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -4503,17 +4443,17 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L572 + ldr r3, .L567 mov r2, r0, lsr #5 and r0, r0, #31 - ldr r3, [r3, #-1888] + ldr r3, [r3, #-1844] ldr r3, [r3, r2, asl #2] mov r0, r3, lsr r0 and r0, r0, #1 bx lr -.L573: +.L568: .align 2 -.L572: +.L567: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -4524,16 +4464,16 @@ ftl_sb_update_avl_pages: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L581 + ldr ip, .L576 mov r3, #0 strh r3, [r0, #4] @ movhi - mov r3, #3840 + movw r3, #3844 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldrh r3, [ip, r3] movw ip, #65535 - b .L575 -.L577: + b .L570 +.L572: add r4, r0, r2, asl #1 add r2, r2, #1 ldrh r4, [r4, #16] @@ -4542,18 +4482,18 @@ ftl_sb_update_avl_pages: ldrneh r4, [r0, #4] addne r4, r4, #1 strneh r4, [r0, #4] @ movhi -.L575: +.L570: cmp r2, r3 - bcc .L577 - ldr ip, .L581 - movw r2, #3908 + bcc .L572 + ldr ip, .L576 + movw r2, #3912 movw r4, #65535 mvn r1, r1 ldrh r5, [ip, r2] mov ip, r0 mov r2, #0 - b .L578 -.L580: + b .L573 +.L575: ldrh r6, [ip, #16] add r2, r2, #1 add ip, ip, #2 @@ -4563,13 +4503,13 @@ ftl_sb_update_avl_pages: addne r6, r5, r6 addne r6, r6, r1 strneh r6, [r0, #4] @ movhi -.L578: +.L573: cmp r2, r3 - bne .L580 + bne .L575 ldmfd sp!, {r4, r5, r6, pc} -.L582: +.L577: .align 2 -.L581: +.L576: .word .LANCHOR0 .fnend .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages @@ -4584,18 +4524,18 @@ make_superblock: .save {r4, r5, r6, r7, r8, r9, sl, lr} mov r4, r0 mov r5, #0 - ldr r6, .L589 + ldr r6, .L584 strh r5, [r0, #4] @ movhi - mov r8, #3840 + movw r8, #3844 strb r5, [r4, #7] mvn r7, #0 - b .L584 -.L586: + b .L579 +.L581: add r3, r6, r5 ldrh r1, [r4, #0] add sl, r5, #8 add r5, r5, #1 - ldrb r0, [r3, #3866] @ zero_extendqisi2 + ldrb r0, [r3, #3870] @ zero_extendqisi2 bl V2P_block mov sl, sl, asl #1 uxth r5, r5 @@ -4607,40 +4547,40 @@ make_superblock: ldreqb r3, [r4, #7] @ zero_extendqisi2 addeq r3, r3, #1 streqb r3, [r4, #7] -.L584: - ldrh r3, [r6, r8] - cmp r3, r5 - bhi .L586 - ldr r1, .L589 - movw r2, #3908 - ldrb r3, [r4, #7] @ zero_extendqisi2 - ldrh r2, [r1, r2] - mul r3, r2, r3 - strh r3, [r4, #4] @ movhi - mov r3, #0 - strb r3, [r4, #9] - ldr r3, .L589+4 - ldr r2, [r3, #-1884] - cmp r2, #0 - beq .L587 - ldrh r1, [r4, #0] - ldr r2, [r3, #-2084] - mov r3, r1, asl #1 +.L579: + ldrh r2, [r6, r8] + ldr r3, .L584 + cmp r2, r5 + bhi .L581 + movw r1, #3912 + ldrb r2, [r4, #7] @ zero_extendqisi2 + ldrh r1, [r3, r1] + ldr r3, [r3, #3836] + mul r2, r1, r2 + strh r2, [r4, #4] @ movhi + mov r2, #0 + cmp r3, r2 + strb r2, [r4, #9] + beq .L582 + ldr r2, .L584+4 + ldrh r3, [r4, #0] + ldr r2, [r2, #-2084] + mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #59 movls r3, #1 strlsb r3, [r4, #9] -.L587: - ldr r3, .L589 +.L582: + ldr r3, .L584 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} -.L590: +.L585: .align 2 -.L589: +.L584: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4657,15 +4597,15 @@ update_multiplier_value: mov r4, #0 mov r7, r0 mov r5, r4 - ldr r6, .L596 - mov sl, #3840 - movw r8, #3908 - b .L592 -.L594: + ldr r6, .L591 + movw sl, #3844 + movw r8, #3912 + b .L587 +.L589: add r3, r6, r5 mov r1, r7 add r5, r5, #1 - ldrb r0, [r3, #3866] @ zero_extendqisi2 + ldrb r0, [r3, #3870] @ zero_extendqisi2 bl V2P_block uxth r5, r5 bl FtlBbmIsBadBlock @@ -4673,27 +4613,27 @@ update_multiplier_value: ldreqh r3, [r6, r8] addeq r4, r4, r3 uxtheq r4, r4 -.L592: +.L587: ldrh r3, [r6, sl] cmp r3, r5 - bhi .L594 + bhi .L589 cmp r4, #0 - beq .L595 + beq .L590 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L595: - ldr r3, .L596+4 +.L590: + ldr r3, .L591+4 mov r2, #6 mov r0, #0 - ldr r3, [r3, #-2072] + ldr r3, [r3, #-2028] mla r7, r2, r7, r3 strh r4, [r7, #4] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L597: +.L592: .align 2 -.L596: +.L591: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4706,13 +4646,13 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L601 - ldr r0, [r3, #-2052] + ldr r3, .L596 + ldr r0, [r3, #-2008] cmp r0, #0 bxeq lr - ldr r2, [r3, #-2072] + ldr r2, [r3, #-2028] rsb r0, r2, r0 - ldr r2, .L601+4 + ldr r2, .L596+4 mov r0, r0, asr #1 mul r0, r2, r0 ldr r2, [r3, #-2084] @@ -4720,9 +4660,9 @@ GetFreeBlockMinEraseCount: mov r3, r0, asl #1 ldrh r0, [r2, r3] bx lr -.L602: +.L597: .align 2 -.L601: +.L596: .word .LANCHOR2 .word -1431655765 .fnend @@ -4734,13 +4674,13 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L610 + ldr r2, .L605 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} - ldr r3, [r2, #-2052] + ldr r3, [r2, #-2008] cmp r3, #0 - beq .L609 - ldr r1, .L610+4 + beq .L604 + ldr r1, .L605+4 mov ip, #7 mov r5, #6 movw r4, #65535 @@ -4749,39 +4689,39 @@ GetFreeBlockMaxEraseCount: mov r1, r1, asr #3 cmp r0, r1 uxthgt r0, r1 - ldr r1, [r2, #-2072] - ldr r2, .L610+8 + ldr r1, [r2, #-2028] + ldr r2, .L605+8 rsb r3, r1, r3 mov r3, r3, asr #1 mul r3, r2, r3 mov r2, #0 uxth r3, r3 - b .L606 -.L608: + b .L601 +.L603: mul ip, r5, r3 ldrh ip, [r1, ip] cmp ip, r4 - beq .L607 + beq .L602 add r2, r2, #1 mov r3, ip uxth r2, r2 -.L606: +.L601: cmp r2, r0 - bne .L608 -.L607: - ldr r2, .L610 + bne .L603 +.L602: + ldr r2, .L605 mov r3, r3, asl #1 ldr r2, [r2, #-2084] ldrh r0, [r2, r3] ldmfd sp!, {r4, r5, pc} -.L609: +.L604: mov r0, r3 ldmfd sp!, {r4, r5, pc} -.L611: +.L606: .align 2 -.L610: +.L605: .word .LANCHOR2 - .word -2048 + .word -2004 .word -1431655765 .fnend .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount @@ -4794,28 +4734,28 @@ FtlPrintInfo2buf: @ 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} - mov r8, r0 - ldr r6, .L622 - add r5, r8, #12 + mov sl, r0 + ldr r5, .L617 + add r4, sl, #12 .pad #32 sub sp, sp, #32 - ldr r1, .L622+4 + ldr r1, .L617+4 bl strcpy - mov r0, r5 - ldr r1, .L622+8 - ldr r2, [r6, #3048] + mov r0, r4 + ldr r1, .L617+8 + ldr r2, [r5, #3048] bl sprintf - ldr r1, .L622+12 - ldr r2, [r6, #3924] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+12 + ldr r2, [r5, #3928] + add r4, r4, r0 + mov r0, r4 bl sprintf - ldr r3, .L622+16 - ldr r3, [r3, #2932] + ldr r3, .L617+16 + ldr r3, [r3, #2996] cmp r3, #1 - add r5, r5, r0 - bne .L618 -.L613: + add r4, r4, r0 + rsbne r0, sl, r4 + bne .L609 add r0, sp, #16 add r1, sp, #20 add r2, sp, #24 @@ -4823,434 +4763,434 @@ FtlPrintInfo2buf: bl NandcGetTimeCfg ldr r3, [sp, #24] ldr r2, [sp, #16] - mov r0, r5 - ldr r1, .L622+20 + mov r0, r4 + ldr r1, .L617+20 str r3, [sp, #0] ldr r3, [sp, #28] - ldr r4, .L622+24 - ldr r7, .L622+28 + ldr r8, .L617+24 str r3, [sp, #4] ldr r3, [sp, #20] bl sprintf - ldr r1, .L622+32 - add r5, r5, r0 - mov r0, r5 - add r5, r5, #10 + ldr r1, .L617+28 + add r6, r4, r0 + ldr r4, .L617+32 + mov r0, r6 + add r6, r6, #10 bl strcpy - ldr r2, [r6, #3968] - mov r0, r5 - ldr r1, .L622+36 + ldr r2, [r5, #3972] + mov r0, r6 + ldr r1, .L617+36 bl sprintf - ldr r1, .L622+40 - ldr r2, [r4, #-1892] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+40 + ldr r2, [r4, #-1848] + add r6, r6, r0 + mov r0, r6 bl sprintf - ldr r1, .L622+44 - ldr r2, [r4, #-1880] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+44 + ldr r2, [r4, #-1840] + add r6, r6, r0 + mov r0, r6 bl sprintf - ldr r1, .L622+48 - ldr r2, [r4, #-1876] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+48 + ldr r2, [r4, #-1836] + add r6, r6, r0 + mov r0, r6 bl sprintf - ldr r1, .L622+52 - ldr r2, [r4, #-1872] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+52 + ldr r2, [r4, #-1832] + add r6, r6, r0 + mov r0, r6 bl sprintf - ldr r1, .L622+56 - ldr r2, [r4, #-1868] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+56 + ldr r2, [r4, #-1828] + add r6, r6, r0 + mov r0, r6 bl sprintf - ldr r1, .L622+60 - ldr r2, [r4, #-1864] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+60 + ldr r2, [r4, #-1824] + add r6, r6, r0 + mov r0, r6 bl sprintf - ldr r1, .L622+64 - ldr r2, [r4, #-1860] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+64 + ldr r2, [r4, #-1820] + add r6, r6, r0 + mov r0, r6 bl sprintf - ldr r2, [r4, #-1856] - ldr r1, .L622+68 + ldr r2, [r4, #-1816] + ldr r1, .L617+68 mov r2, r2, lsr #11 - add r5, r5, r0 - mov r0, r5 + add r6, r6, r0 + mov r0, r6 bl sprintf - ldr r2, [r4, #-1852] - ldr r1, .L622+72 + ldr r2, [r4, #-1812] + ldr r1, .L617+72 mov r2, r2, lsr #11 - add r5, r5, r0 - mov r0, r5 + add r6, r6, r0 + mov r0, r6 bl sprintf - ldr r1, .L622+76 - ldr r2, [r4, #-1848] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+76 + ldr r2, [r4, #-1808] + add r6, r6, r0 + mov r0, r6 bl sprintf - ldr r1, .L622+80 - ldr r2, [r4, #-1844] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+80 + ldr r2, [r4, #-1804] + add r6, r6, r0 + mov r0, r6 bl sprintf - add r5, r5, r0 + add r6, r6, r0 bl FtlBbtCalcTotleCnt movw r2, #3982 - ldr r1, .L622+84 - ldrh r2, [r6, r2] + ldr r1, .L617+84 + ldrh r2, [r5, r2] mov r3, r0 - mov r0, r5 + mov r0, r6 bl sprintf - ldr r1, .L622+88 - ldrh r2, [r4, r7] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+88 + add r7, r6, r0 + ldr r6, .L617+92 + mov r0, r7 + ldrh r2, [r4, r6] bl sprintf - ldr r1, .L622+92 - ldr r2, [r4, #-1840] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+96 + ldr r2, [r4, #-1800] + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+96 - ldr r2, [r4, #-1836] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+100 + ldr r2, [r4, #-1796] + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+100 - ldr r2, [r4, #-1832] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+104 + ldr r2, [r4, #-1792] + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+104 + ldr r1, .L617+108 ldr r2, [r4, #-2080] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+108 - ldr r2, [r4, #-1828] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+112 + ldr r2, [r4, #-1788] + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+112 - ldr r2, [r4, #-1824] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+116 + ldr r2, [r4, #-1784] + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+116 - ldr r1, .L622+120 + ldr r3, .L617+120 + ldr r1, .L617+124 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+124 - ldr r1, .L622+128 + ldr r3, .L617+128 + ldr r1, .L617+132 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r2, [r6, #3948] - ldr r1, .L622+132 - add r5, r5, r0 - mov r0, r5 + ldr r2, [r5, #3952] + ldr r1, .L617+136 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r2, [r6, #3940] - ldr r1, .L622+136 - add r5, r5, r0 - mov r0, r5 + ldr r2, [r5, #3944] + ldr r1, .L617+140 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r2, [r6, #3836] - ldr r1, .L622+140 - add r5, r5, r0 - mov r0, r5 + ldr r2, [r5, #3840] + ldr r1, .L617+144 + add r7, r7, r0 + mov r0, r7 bl sprintf movw r3, #4042 - ldrh r2, [r6, r3] - ldr r1, .L622+144 - add r5, r5, r0 - mov r0, r5 + ldrh r2, [r5, r3] + ldr r1, .L617+148 + add r7, r7, r0 + mov r0, r7 bl sprintf - movw r3, #3848 - ldrh r2, [r6, r3] - ldr r1, .L622+148 - add r5, r5, r0 - mov r0, r5 + movw r3, #3852 + ldrh r2, [r5, r3] + ldr r1, .L617+152 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+152 - ldr r1, .L622+156 + ldr r3, .L617+156 + ldr r1, .L617+160 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r2, [r6, #3852] - ldr r1, .L622+160 - add r5, r5, r0 - mov r0, r5 + ldr r2, [r5, #3856] + ldr r1, .L617+164 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+164 - ldr r1, .L622+168 + ldr r3, .L617+168 + ldr r1, .L617+172 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf movw r3, #3976 - ldrh r2, [r6, r3] - ldr r1, .L622+172 - ldr r6, .L622+176 - add r5, r5, r0 - mov r0, r5 + ldrh r2, [r5, r3] + ldr r1, .L617+176 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+180 - ldr r1, .L622+184 + ldr r3, .L617+180 + ldr r1, .L617+184 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+188 - ldrb r2, [r4, #-2038] @ zero_extendqisi2 - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+188 + ldrb r2, [r4, #-1994] @ zero_extendqisi2 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldrh r2, [r4, r6] - ldr r1, .L622+192 - add r5, r5, r0 - mov r0, r5 + ldrh r2, [r4, r8] + ldr r1, .L617+192 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+196 - ldrb r2, [r4, #-2036] @ zero_extendqisi2 - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+196 + ldrb r2, [r4, #-1992] @ zero_extendqisi2 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+200 - ldr r1, .L622+204 + ldr r3, .L617+200 + ldr r1, .L617+204 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldrh r3, [r4, r6] - ldr r2, [r4, #-2064] - add r6, r6, #48 - ldr r1, .L622+208 + ldrh r3, [r4, r8] + ldr r2, [r4, #-2020] + add r8, r8, #48 + ldr r1, .L617+208 mov r3, r3, asl #1 ldrh r2, [r2, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+212 - ldr r1, .L622+216 + ldr r3, .L617+212 + ldr r1, .L617+216 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+220 - ldrb r2, [r4, #-1990] @ zero_extendqisi2 - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+220 + ldrb r2, [r4, #-1946] @ zero_extendqisi2 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldrh r2, [r4, r6] - ldr r1, .L622+224 - add r5, r5, r0 - mov r0, r5 + ldrh r2, [r4, r8] + ldr r1, .L617+224 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+228 - ldrb r2, [r4, #-1988] @ zero_extendqisi2 - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+228 + ldrb r2, [r4, #-1944] @ zero_extendqisi2 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+232 - ldr r1, .L622+236 + ldr r3, .L617+232 + ldr r1, .L617+236 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldrh r3, [r4, r6] - ldr r2, [r4, #-2064] - add r6, r6, #240 - ldr r1, .L622+240 + ldrh r3, [r4, r8] + ldr r2, [r4, #-2020] + add r8, r8, #188 + ldr r1, .L617+240 mov r3, r3, asl #1 ldrh r2, [r2, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+244 - ldr r1, .L622+248 + ldr r3, .L617+244 + ldr r1, .L617+248 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+252 - ldrb r2, [r4, #-1942] @ zero_extendqisi2 - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+252 + ldrb r2, [r4, #-1898] @ zero_extendqisi2 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+256 - ldr r1, .L622+260 + ldr r3, .L617+256 + ldr r1, .L617+260 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+264 - ldrb r2, [r4, #-1940] @ zero_extendqisi2 - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+264 + ldrb r2, [r4, #-1896] @ zero_extendqisi2 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+268 - ldr r1, .L622+272 + ldr r3, .L617+268 + ldr r1, .L617+272 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+276 - ldr r1, .L622+280 + ldr r3, .L617+276 + ldr r1, .L617+280 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+284 - ldrb r2, [r4, #-1750] @ zero_extendqisi2 - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+284 + ldrb r2, [r4, #-1758] @ zero_extendqisi2 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+288 - ldrh r2, [r4, r6] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+288 + ldrh r2, [r4, r8] + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+292 - ldrb r2, [r4, #-1748] @ zero_extendqisi2 - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+292 + ldrb r2, [r4, #-1756] @ zero_extendqisi2 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r3, .L622+296 - ldr r1, .L622+300 + ldr r3, .L617+296 + ldr r1, .L617+300 ldrh r2, [r4, r3] - add r5, r5, r0 - mov r0, r5 + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, [r4, #-1620] - ldr r3, [r4, #-1884] - ldr r2, [r4, #-1708] - str r1, [sp, #0] ldr r1, [r4, #-1628] + ldr r3, [r5, #3836] + ldr r2, [r4, #-1716] + str r1, [sp, #0] + ldr r1, [r4, #-1636] orr r2, r3, r2, asl #8 str r1, [sp, #4] - ldr r1, .L622+304 - ldr r3, [r4, #-1624] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L617+304 + ldr r3, [r4, #-1632] + add r7, r7, r0 + mov r0, r7 bl sprintf - ldr r1, .L622+308 - ldr r2, [r4, #-1632] - add r5, r5, r0 + ldr r1, .L617+308 + ldr r2, [r4, #-1640] + add r5, r7, r0 mov r0, r5 bl sprintf - ldr r1, .L622+312 - ldr r2, [r4, #-1608] + ldr r1, .L617+312 + ldr r2, [r4, #-1616] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r3, .L622+316 - ldr r1, .L622+320 + ldr r3, .L617+316 + ldr r1, .L617+320 ldrh r2, [r4, r3] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r3, .L622+324 - ldr r1, .L622+328 + ldr r3, .L617+324 + ldr r1, .L617+328 ldrh r2, [r4, r3] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L622+332 - ldr r2, [r4, #-1188] + ldr r1, .L617+332 + ldr r2, [r4, #-1196] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r3, .L622+336 - ldr r1, .L622+340 + ldr r3, .L617+336 + ldr r1, .L617+340 ldrh r2, [r4, r3] add r5, r5, r0 mov r0, r5 bl sprintf add r5, r5, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L622+344 + ldr r1, .L617+344 mov r2, r0 mov r0, r5 bl sprintf add r5, r5, r0 - ldrh r0, [r4, r7] + ldrh r0, [r4, r6] bl GetFreeBlockMaxEraseCount - ldr r1, .L622+348 + ldr r1, .L617+348 mov r2, r0 mov r0, r5 bl sprintf - ldrh r3, [r4, r6] + ldrh r3, [r4, r8] movw r2, #65535 cmp r3, r2 add r5, r5, r0 - beq .L615 - ldr r2, [r4, #-2064] + beq .L610 + ldr r2, [r4, #-2020] mov r3, r3, asl #1 mov r0, r5 - ldr r1, .L622+352 + ldr r1, .L617+352 ldrh r2, [r2, r3] bl sprintf add r5, r5, r0 -.L615: +.L610: mov r0, #0 - ldr r4, .L622+24 + ldr r4, .L617+32 bl List_get_gc_head_node mov r6, #0 - movw sl, #65535 + movw r8, #65535 mov r9, #6 uxth r3, r0 -.L617: - cmp r3, sl - beq .L616 - ldr r1, [r4, #-2064] +.L612: + cmp r3, r8 + beq .L611 + ldr r1, [r4, #-2020] mov r2, r3, asl #1 mul r7, r9, r3 mov r0, r5 ldrh r1, [r1, r2] str r1, [sp, #0] - ldr r1, [r4, #-2072] + ldr r1, [r4, #-2028] add r1, r1, r7 ldrh r1, [r1, #4] str r1, [sp, #4] ldr r1, [r4, #-2084] ldrh r2, [r1, r2] - ldr r1, .L622+356 + ldr r1, .L617+356 str r2, [sp, #8] mov r2, r6 bl sprintf add r6, r6, #1 - ldr r3, [r4, #-2072] + ldr r3, [r4, #-2028] cmp r6, #16 ldrh r3, [r3, r7] add r5, r5, r0 - bne .L617 -.L616: - ldr r6, .L622+24 + bne .L612 +.L611: + ldr r6, .L617+32 mov r4, #0 - movw sl, #65535 + movw r8, #65535 mov r9, #6 - ldr r2, [r6, #-2052] - ldr r3, [r6, #-2072] + ldr r2, [r6, #-2008] + ldr r3, [r6, #-2028] rsb r3, r3, r2 - ldr r2, .L622+360 + ldr r2, .L617+360 mov r3, r3, asr #1 mul r3, r2, r3 uxth r3, r3 -.L619: - cmp r3, sl - beq .L618 +.L614: + cmp r3, r8 + beq .L613 mul r7, r9, r3 - ldr r2, [r6, #-2072] + ldr r2, [r6, #-2028] mov r0, r5 add r2, r2, r7 ldrh r2, [r2, #4] @@ -5258,35 +5198,33 @@ FtlPrintInfo2buf: mov r2, r3, asl #1 ldr r1, [r6, #-2084] ldrh r2, [r1, r2] - ldr r1, .L622+364 + ldr r1, .L617+364 str r2, [sp, #4] mov r2, r4 bl sprintf add r4, r4, #1 - ldr r3, [r6, #-2072] + ldr r3, [r6, #-2028] cmp r4, #4 ldrh r3, [r3, r7] add r5, r5, r0 - bne .L619 -.L618: - rsb r0, r8, r5 + bne .L614 +.L613: + rsb r0, sl, r5 +.L609: add sp, sp, #32 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L623: +.L618: .align 2 -.L622: +.L617: .word .LANCHOR0 - .word .LC5 - .word .LC6 - .word .LC7 - .word .LANCHOR1 .word .LC8 - .word .LANCHOR2 - .word -2048 .word .LC9 .word .LC10 + .word .LANCHOR1 .word .LC11 + .word -2000 .word .LC12 + .word .LANCHOR2 .word .LC13 .word .LC14 .word .LC15 @@ -5301,86 +5239,89 @@ FtlPrintInfo2buf: .word .LC24 .word .LC25 .word .LC26 + .word -2004 .word .LC27 .word .LC28 .word .LC29 - .word -1790 .word .LC30 - .word -1792 .word .LC31 .word .LC32 + .word -2046 .word .LC33 + .word -2048 .word .LC34 .word .LC35 .word .LC36 - .word -1772 .word .LC37 .word .LC38 - .word -1768 .word .LC39 + .word -1780 .word .LC40 - .word -2044 - .word -2042 .word .LC41 + .word -1776 .word .LC42 .word .LC43 + .word -1998 .word .LC44 - .word -2040 .word .LC45 .word .LC46 - .word -1994 .word .LC47 + .word -1996 .word .LC48 .word .LC49 + .word -1950 .word .LC50 - .word -1992 .word .LC51 .word .LC52 - .word -1946 .word .LC53 - .word .LC54 .word -1948 + .word .LC54 .word .LC55 + .word -1902 .word .LC56 - .word -1944 .word .LC57 - .word -1754 + .word -1904 .word .LC58 .word .LC59 + .word -1900 .word .LC60 + .word -1762 .word .LC61 - .word -1752 .word .LC62 .word .LC63 .word .LC64 + .word -1760 .word .LC65 - .word -1192 .word .LC66 - .word -1190 .word .LC67 .word .LC68 - .word -1184 + .word -1200 .word .LC69 + .word -1198 .word .LC70 .word .LC71 + .word -1192 .word .LC72 .word .LC73 - .word -1431655765 .word .LC74 + .word .LC75 + .word .LC76 + .word -1431655765 + .word .LC77 .fnend .size FtlPrintInfo2buf, .-FtlPrintInfo2buf .align 2 - .global rknand_proc_ftlread - .type rknand_proc_ftlread, %function -rknand_proc_ftlread: + .global ftl_proc_ftl_read + .type ftl_proc_ftl_read, %function +ftl_proc_ftl_read: .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, r0 - ldr r1, .L625 - ldr r2, .L625+4 + ldr r1, .L620 + ldr r2, .L620+4 bl sprintf add r5, r4, r0 mov r0, r5 @@ -5388,13 +5329,13 @@ rknand_proc_ftlread: add r0, r5, r0 rsb r0, r4, r0 ldmfd sp!, {r3, r4, r5, pc} -.L626: +.L621: .align 2 -.L625: - .word .LC75 - .word .LC76 +.L620: + .word .LC78 + .word .LC79 .fnend - .size rknand_proc_ftlread, .-rknand_proc_ftlread + .size ftl_proc_ftl_read, .-ftl_proc_ftl_read .align 2 .global GetSwlReplaceBlock .type GetSwlReplaceBlock, %function @@ -5402,84 +5343,85 @@ GetSwlReplaceBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L652 + ldr r3, .L647 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 r1, [r3, #-1832] - ldr r2, [r3, #-1824] + ldr r1, [r3, #-1792] + ldr r2, [r3, #-1784] cmp r1, r2 - bcs .L628 - ldr r0, .L652+4 - movw r1, #3848 + bcs .L623 + ldr r0, .L647+4 + movw r1, #3852 mov r2, #0 - str r2, [r3, #-1840] + str r2, [r3, #-1800] ldrh r1, [r0, r1] ldr r0, [r3, #-2084] - b .L629 -.L630: + b .L624 +.L625: ldrh lr, [r0], #2 add r2, r2, #1 - ldr ip, [r3, #-1840] + ldr ip, [r3, #-1800] add ip, lr, ip - str ip, [r3, #-1840] -.L629: + str ip, [r3, #-1800] +.L624: cmp r2, r1 - ldr r4, .L652 - bcc .L630 - ldr r5, [r4, #-1840] + ldr r4, .L647 + bcc .L625 + ldr r5, [r4, #-1800] mov r0, r5 bl __aeabi_uidiv - ldr r2, .L652+4 - movw r3, #3898 + ldr r2, .L647+4 + movw r3, #3902 ldrh r1, [r2, r3] - str r0, [r4, #-1832] - ldr r0, [r4, #-1836] + str r0, [r4, #-1792] + ldr r0, [r4, #-1796] rsb r0, r0, r5 bl __aeabi_uidiv - str r0, [r4, #-1840] - b .L631 -.L628: - ldr r2, [r3, #-1828] + str r0, [r4, #-1800] + b .L626 +.L623: + ldr r2, [r3, #-1788] cmp r1, r2 - bls .L631 + bls .L626 add r2, r2, #1 - ldr r4, .L652+4 - str r2, [r3, #-1828] - movw ip, #3848 + ldr r4, .L647+4 + str r2, [r3, #-1788] + movw ip, #3852 mov r2, #0 - b .L632 -.L633: + b .L627 +.L628: ldr r0, [r3, #-2084] mov r1, r2, asl #1 add r2, r2, #1 ldrh r5, [r0, r1] add r5, r5, #1 strh r5, [r0, r1] @ movhi -.L632: +.L627: ldrh r1, [r4, ip] cmp r2, r1 - bcc .L633 -.L631: - ldr r3, .L652 - ldr r6, [r3, #-1824] - ldr r5, [r3, #-1832] + bcc .L628 +.L626: + ldr r3, .L647 + ldr r6, [r3, #-1784] + ldr r5, [r3, #-1792] add r2, r6, #256 cmp r2, r5 mov r2, r3 - bls .L634 - ldr r1, [r3, #-1828] - add r0, r6, #768 - cmp r0, r1 - bls .L634 - ldr r3, [r3, #-1884] + bls .L629 + ldr r3, [r3, #-1788] + add r1, r6, #768 + cmp r1, r3 + bls .L629 + ldr r3, .L647+4 + ldr r3, [r3, #3836] cmp r3, #0 - beq .L651 + beq .L646 cmp r6, #30 - bhi .L651 -.L634: - ldr r3, .L652+8 + bhi .L646 +.L629: + ldr r3, .L647+8 ldrh r0, [r2, r3] add r0, r0, r0, asl #1 ubfx r0, r0, #2, #16 @@ -5487,109 +5429,109 @@ GetSwlReplaceBlock: add r3, r6, #64 cmp r0, r3 mov r8, r0 - bcs .L636 + bcs .L631 cmp r6, #30 - bhi .L651 -.L636: - ldr r2, .L652 - ldr r3, [r2, #-2068] + bhi .L646 +.L631: + ldr r2, .L647 + ldr r3, [r2, #-2024] cmp r3, #0 - beq .L651 - ldr r0, .L652+4 - movw r1, #3848 + beq .L646 + ldr r0, .L647+4 + movw r1, #3852 movw r7, #65535 mov r4, r7 mov fp, r7 ldrh sl, [r0, r1] - ldr r0, [r2, #-2072] + ldr r0, [r2, #-2028] ldr r1, [r2, #-2084] mov r2, #0 - b .L637 -.L640: + b .L632 +.L635: add r2, r2, #1 uxth r2, r2 cmp r2, sl - bhi .L651 + bhi .L646 ldrh ip, [r3, #4] cmp ip, #0 - beq .L638 + beq .L633 rsb r3, r0, r3 - ldr ip, .L652+12 + ldr ip, .L647+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 .L648 + bls .L643 cmp ip, r7 movcc r7, ip movcc r4, r3 -.L638: +.L633: mov ip, #6 mla r3, ip, r9, r0 -.L637: +.L632: ldrh r9, [r3, #0] cmp r9, fp - bne .L640 - b .L639 -.L648: + bne .L635 + b .L634 +.L643: mov r4, r3 -.L639: +.L634: movw r3, #65535 cmp r4, r3 - beq .L635 + beq .L630 mov r9, r4, asl #1 ldrh sl, [r1, r9] cmp sl, r6 - bls .L641 + bls .L636 bl GetFreeBlockMinEraseCount cmp r0, r6 - ldrhi r3, .L652 - strhi r7, [r3, #-1824] -.L641: + ldrhi r3, .L647 + strhi r7, [r3, #-1784] +.L636: cmp sl, r5 - bcs .L651 + bcs .L646 add r3, sl, #128 cmp r8, r3 - ble .L651 + ble .L646 add r3, sl, #256 - ldr r6, .L652 + ldr r6, .L647 cmp r3, r5 - bcc .L642 - ldr r3, [r6, #-1828] + bcc .L637 + ldr r3, [r6, #-1788] add sl, sl, #768 cmp sl, r3 - bcs .L651 -.L642: - ldr r3, [r6, #-2064] + bcs .L646 +.L637: + ldr r3, [r6, #-2020] mov r1, r4 - ldr r0, .L652+16 + ldr r0, .L647+16 mov r2, r5 ldrh r3, [r3, r9] str r3, [sp, #0] ldr r3, [r6, #-2084] ldrh r3, [r3, r9] stmib sp, {r3, r8} - ldr r3, [r6, #-1828] + ldr r3, [r6, #-1788] bl printk mov r3, #1 - str r3, [r6, #-1180] - b .L635 -.L651: + str r3, [r6, #-1188] + b .L630 +.L646: movw r4, #65535 -.L635: +.L630: mov r0, r4 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L653: +.L648: .align 2 -.L652: +.L647: .word .LANCHOR2 .word .LANCHOR0 - .word -2048 + .word -2004 .word -1431655765 - .word .LC77 + .word .LC80 .fnend .size GetSwlReplaceBlock, .-GetSwlReplaceBlock .align 2 @@ -5603,19 +5545,19 @@ free_data_superblock: cmp r0, r2 stmfd sp!, {r3, lr} .save {r3, lr} - beq .L655 - ldr r2, .L656 + beq .L650 + ldr r2, .L651 mov r3, r0, asl #1 mov r1, #0 - ldr r2, [r2, #-2064] + ldr r2, [r2, #-2020] strh r1, [r2, r3] @ movhi bl INSERT_FREE_LIST -.L655: +.L650: mov r0, #0 ldmfd sp!, {r3, pc} -.L657: +.L652: .align 2 -.L656: +.L651: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -5626,21 +5568,21 @@ FtlGcBufInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L666 + ldr r2, .L661 mov r3, #0 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} - mov sl, #3840 - str r3, [r2, #-1176] + movw sl, #3844 + str r3, [r2, #-1184] mov r8, #12 - ldr r0, .L666+4 + ldr r0, .L661+4 mov r7, #1 - movw r6, #3918 - mov fp, #3920 - b .L659 -.L660: + movw r6, #3922 + movw fp, #3924 + b .L654 +.L655: mul r1, r8, r3 - ldr r4, [r2, #-1172] + ldr r4, [r2, #-1180] add ip, r4, r1 str r7, [ip, #8] ldrh ip, [r0, r6] @@ -5648,22 +5590,22 @@ FtlGcBufInit: add r5, ip, #3 cmp ip, #0 movlt ip, r5 - ldr r5, [r2, #-1168] + ldr r5, [r2, #-1176] bic ip, ip, #3 add ip, r5, ip str ip, [r4, r1] ldrh ip, [r0, fp] - ldr r9, [r2, #-1172] + ldr r9, [r2, #-1180] mul ip, ip, r3 add r4, r9, r1 add r5, ip, #3 cmp ip, #0 movlt ip, r5 - ldr r5, [r2, #-1164] + ldr r5, [r2, #-1172] bic ip, ip, #3 add ip, r5, ip str ip, [r4, #4] - ldr ip, [r2, #-1160] + ldr ip, [r2, #-1168] mov r5, #36 ldr r1, [r9, r1] mla ip, r5, r3, ip @@ -5672,14 +5614,14 @@ FtlGcBufInit: str r1, [ip, #8] ldr r1, [r4, #4] str r1, [ip, #12] -.L659: +.L654: ldrh r1, [r0, sl] cmp r3, r1 - bcc .L660 - b .L665 -.L662: + bcc .L655 + b .L660 +.L657: mul r2, r8, r1 - ldr r4, [r3, #-1172] + ldr r4, [r3, #-1180] add r0, r4, r2 str r7, [r0, #8] ldrh r0, [ip, r6] @@ -5687,11 +5629,11 @@ FtlGcBufInit: add sl, r0, #3 cmp r0, #0 movlt r0, sl - ldr sl, [r3, #-1168] + ldr sl, [r3, #-1176] bic r0, r0, #3 add r0, sl, r0 str r0, [r4, r2] - ldr r0, [r3, #-1172] + ldr r0, [r3, #-1180] add r0, r0, r2 ldrh r2, [ip, r5] mul r2, r2, r1 @@ -5700,26 +5642,26 @@ FtlGcBufInit: add r4, r2, #3 cmp r2, #0 movlt r2, r4 - ldr r4, [r3, #-1164] + ldr r4, [r3, #-1172] bic r2, r2, #3 add r2, r4, r2 str r2, [r0, #4] - b .L664 -.L665: - ldr r3, .L666 + b .L659 +.L660: + ldr r3, .L661 mov r8, #12 - ldr ip, .L666+4 + ldr ip, .L661+4 mov r7, #0 - movw r6, #3918 - mov r5, #3920 -.L664: - ldr r2, [r3, #-1156] + movw r6, #3922 + movw r5, #3924 +.L659: + ldr r2, [r3, #-1164] cmp r1, r2 - bcc .L662 + bcc .L657 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L667: +.L662: .align 2 -.L666: +.L661: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -5731,42 +5673,42 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L675 + ldr r3, .L670 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r5, #36 - ldr r6, [r3, #-1156] + ldr r6, [r3, #-1164] mov fp, #12 - ldr ip, [r3, #-1172] + ldr ip, [r3, #-1180] mov r3, #0 mov r4, r3 - b .L669 -.L672: + b .L664 +.L667: mul sl, fp, r2 add r8, ip, sl ldr r9, [ip, sl] ldr sl, [r7, #8] cmp r9, sl streq r4, [r8, #8] - beq .L671 -.L670: + beq .L666 +.L665: add r2, r2, #1 uxth r2, r2 -.L674: +.L669: cmp r2, r6 - bcc .L672 -.L671: + bcc .L667 +.L666: add r3, r3, #1 uxth r3, r3 -.L669: +.L664: cmp r3, r1 ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} mla r7, r5, r3, r0 mov r2, #0 - b .L674 -.L676: + b .L669 +.L671: .align 2 -.L675: +.L670: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -5777,47 +5719,47 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L684 + ldr r3, .L679 stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} .save {r4, r5, r6, r7, r8, sl, lr} mov r6, #12 - ldr r8, [r3, #-1156] + ldr r8, [r3, #-1164] mov r5, #1 - ldr r7, [r3, #-1172] + ldr r7, [r3, #-1180] mov r4, #36 mov r3, #0 - b .L678 -.L681: + b .L673 +.L676: mla ip, r6, r2, r7 ldr sl, [ip, #8] cmp sl, #0 - bne .L679 + bne .L674 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 .L680 -.L679: + b .L675 +.L674: add r2, r2, #1 uxth r2, r2 - b .L682 -.L683: + b .L677 +.L678: mov r2, #0 -.L682: +.L677: cmp r2, r8 - bcc .L681 -.L680: + bcc .L676 +.L675: add r3, r3, #1 uxth r3, r3 -.L678: +.L673: cmp r3, r1 - bcc .L683 + bcc .L678 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L685: +.L680: .align 2 -.L684: +.L679: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -5829,31 +5771,31 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L691 - ldr r2, .L691+4 + ldr r3, .L686 + ldr r2, .L686+4 ldrh r1, [r3, r2] - ldr r2, [r3, #-1148] + ldr r2, [r3, #-1156] mov r3, #0 - b .L687 -.L689: + b .L682 +.L684: ldrh ip, [r2], #2 cmp ip, r0 - beq .L690 + beq .L685 add r3, r3, #1 uxth r3, r3 -.L687: +.L682: cmp r3, r1 - bne .L689 + bne .L684 mov r0, #0 bx lr -.L690: +.L685: mov r0, #1 bx lr -.L692: +.L687: .align 2 -.L691: +.L686: .word .LANCHOR2 - .word -1152 + .word -1160 .fnend .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -5870,36 +5812,36 @@ FtlGcUpdatePage: mov r5, r1 mov r6, r2 bl P2V_block_in_plane - ldr r3, .L697 - ldr r2, .L697+4 + ldr r3, .L692 + ldr r2, .L692+4 ldrh ip, [r3, r2] - ldr r2, [r3, #-1148] + ldr r2, [r3, #-1156] mov r3, #0 mov r1, r2 - b .L694 -.L696: + b .L689 +.L691: ldrh r7, [r1], #2 cmp r7, r0 - beq .L695 + beq .L690 add r3, r3, #1 uxth r3, r3 -.L694: +.L689: cmp r3, ip - bne .L696 + bne .L691 mov r3, r3, asl #1 strh r0, [r2, r3] @ movhi - ldr r2, .L697 - ldr r3, .L697+4 + ldr r2, .L692 + ldr r3, .L692+4 ldrh r1, [r2, r3] add r1, r1, #1 strh r1, [r2, r3] @ movhi -.L695: - ldr r3, .L697 +.L690: + ldr r3, .L692 mov r0, #12 - ldr r2, .L697+8 + ldr r2, .L692+8 ldrh r1, [r3, r2] mul r1, r0, r1 - ldr r0, [r3, #-1144] + ldr r0, [r3, #-1152] add ip, r0, r1 stmib ip, {r5, r6} str r4, [r0, r1] @@ -5907,12 +5849,12 @@ FtlGcUpdatePage: add r1, r1, #1 strh r1, [r3, r2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L698: +.L693: .align 2 -.L697: +.L692: .word .LANCHOR2 - .word -1152 - .word -1140 + .word -1160 + .word -1148 .fnend .size FtlGcUpdatePage, .-FtlGcUpdatePage .align 2 @@ -5926,33 +5868,33 @@ FtlGcRefreshOpenBlock: .save {r3, r4, r5, lr} mov r4, r0 mov r1, r4 - ldr r0, .L702 + ldr r0, .L697 bl printk - ldr r3, .L702+4 - ldr ip, .L702+8 + ldr r3, .L697+4 + ldr ip, .L697+8 ldrh r5, [r3, ip] cmp r5, r4 - beq .L700 - ldr r2, .L702+12 + beq .L695 + ldr r2, .L697+12 ldrh r0, [r3, r2] cmp r0, r4 - beq .L700 + beq .L695 movw r1, #65535 cmp r5, r1 streqh r4, [r3, ip] @ movhi - beq .L700 + beq .L695 cmp r0, r1 streqh r4, [r3, r2] @ movhi -.L700: +.L695: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L703: +.L698: .align 2 -.L702: - .word .LC78 +.L697: + .word .LC81 .word .LANCHOR2 - .word -1138 - .word -1136 + .word -1146 + .word -1144 .fnend .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock .align 2 @@ -5966,33 +5908,33 @@ FtlGcRefreshBlock: .save {r3, r4, r5, lr} mov r4, r0 mov r1, r4 - ldr r0, .L707 + ldr r0, .L702 bl printk - ldr r3, .L707+4 - ldr ip, .L707+8 + ldr r3, .L702+4 + ldr ip, .L702+8 ldrh r5, [r3, ip] cmp r5, r4 - beq .L705 - ldr r2, .L707+12 + beq .L700 + ldr r2, .L702+12 ldrh r0, [r3, r2] cmp r0, r4 - beq .L705 + beq .L700 movw r1, #65535 cmp r5, r1 streqh r4, [r3, ip] @ movhi - beq .L705 + beq .L700 cmp r0, r1 streqh r4, [r3, r2] @ movhi -.L705: +.L700: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L708: +.L703: .align 2 -.L707: - .word .LC78 +.L702: + .word .LC81 .word .LANCHOR2 - .word -1138 - .word -1136 + .word -1146 + .word -1144 .fnend .size FtlGcRefreshBlock, .-FtlGcRefreshBlock .align 2 @@ -6006,58 +5948,60 @@ FtlGcMarkBadPhyBlk: .save {r3, r4, r5, r6, r7, lr} mov r4, r0 bl P2V_block_in_plane - ldr r5, .L714 + ldr r7, .L709 mov r2, r4 - ldr r7, .L714+4 - ldrh r1, [r5, r7] - mov r6, r0 - ldr r0, .L714+8 + ldr r6, .L709+4 + ldrh r1, [r7, r6] + mov r5, r0 + ldr r0, .L709+8 bl printk - mov r0, r6 + mov r0, r5 bl FtlGcRefreshBlock - ldr r3, [r5, #-1884] + ldr r3, .L709+12 + ldr r3, [r3, #3836] cmp r3, #0 - beq .L710 - ldr r3, [r5, #-2084] - mov r6, r6, asl #1 - ldrh r2, [r3, r6] + beq .L705 + ldr r3, [r7, #-2084] + mov r5, r5, asl #1 + ldrh r2, [r3, r5] cmp r2, #29 subhi r2, r2, #30 - strhih r2, [r3, r6] @ movhi -.L710: - ldrh r1, [r5, r7] + strhih r2, [r3, r5] @ movhi +.L705: + ldrh r1, [r7, r6] mov r3, #0 - ldr r2, .L714+12 - b .L711 -.L713: + ldr r2, .L709+16 + b .L706 +.L708: ldrh r0, [r2, #2]! cmp r0, r4 - beq .L712 + beq .L707 add r3, r3, #1 uxth r3, r3 -.L711: +.L706: cmp r3, r1 - bne .L713 + bne .L708 cmp r3, #15 - bhi .L712 - ldr r2, .L714 - ldr r1, .L714+16 + bhi .L707 + ldr r2, .L709 + ldr r1, .L709+20 add r0, r2, r3, asl #1 add r3, r3, #1 strh r4, [r0, r1] @ movhi sub r1, r1, #2 strh r3, [r2, r1] @ movhi -.L712: +.L707: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L715: +.L710: .align 2 -.L714: +.L709: .word .LANCHOR2 - .word -1134 - .word .LC79 - .word .LANCHOR2-1134 - .word -1132 + .word -1142 + .word .LC82 + .word .LANCHOR0 + .word .LANCHOR2-1142 + .word -1140 .fnend .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk .align 2 @@ -6069,24 +6013,24 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r2, .L719 - ldr r3, .L719+4 + ldr r2, .L714 + ldr r3, .L714+4 ldrh r2, [r3, r2] cmp r2, #0 - beq .L717 - ldr r1, .L719+8 + beq .L712 + ldr r1, .L714+8 ldrh r0, [r3, r1] movw r1, #65535 cmp r0, r1 - bne .L717 - ldr r4, .L719+12 - ldr r5, .L719+4 + bne .L712 + ldr r4, .L714+12 + ldr r5, .L714+4 ldrh r1, [r3, r4] cmp r1, r2 movcs r2, #0 strcsh r2, [r3, r4] @ movhi ldrh r2, [r5, r4] - ldr r3, .L719+16 + ldr r3, .L714+16 add r2, r5, r2, asl #1 ldrh r0, [r2, r3] bl P2V_block_in_plane @@ -6094,17 +6038,17 @@ FtlGcReFreshBadBlk: ldrh r3, [r5, r4] add r3, r3, #1 strh r3, [r5, r4] @ movhi -.L717: +.L712: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L720: +.L715: .align 2 -.L719: - .word -1134 +.L714: + .word -1142 .word .LANCHOR2 - .word -1138 - .word -1098 - .word -1132 + .word -1146 + .word -1106 + .word -1140 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk .align 2 @@ -6118,9 +6062,9 @@ ftl_memset: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r0 - beq .L722 + beq .L717 bl memset -.L722: +.L717: mov r0, r4 ldmfd sp!, {r4, pc} .fnend @@ -6135,12 +6079,12 @@ FtlGcPageVarInit: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r3, #0 - ldr r4, .L724 - movw r5, #3912 - ldr r2, .L724+4 + ldr r4, .L719 + movw r5, #3916 + ldr r2, .L719+4 mov r1, #255 - ldr r6, .L724+8 - ldr r0, [r4, #-1148] + ldr r6, .L719+8 + ldr r0, [r4, #-1156] strh r3, [r4, r2] @ movhi add r2, r2, #12 strh r3, [r4, r2] @ movhi @@ -6149,17 +6093,17 @@ FtlGcPageVarInit: bl ftl_memset ldrh r3, [r6, r5] mov r2, #12 - ldr r0, [r4, #-1144] + ldr r0, [r4, #-1152] mov r1, #255 mul r2, r2, r3 bl ftl_memset ldmfd sp!, {r4, r5, r6, lr} b FtlGcBufInit -.L725: +.L720: .align 2 -.L724: +.L719: .word .LANCHOR2 - .word -1152 + .word -1160 .word .LANCHOR0 .fnend .size FtlGcPageVarInit, .-FtlGcPageVarInit @@ -6172,32 +6116,32 @@ SupperBlkListInit: @ frame_needed = 0, uses_anonymous_args = 0 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, #3850 - ldr r7, .L736 + movw r3, #3854 + ldr r7, .L731 mov r2, #6 - ldr r4, .L736+4 + ldr r4, .L731+4 mov r1, #0 mov r6, #0 ldrh r3, [r7, r3] mov sl, r6 - ldr r0, [r4, #-2072] + ldr r0, [r4, #-2028] mul r2, r2, r3 bl ftl_memset - ldr r3, .L736+8 - str r6, [r4, #-2052] - str r6, [r4, #-2068] + ldr r3, .L731+8 + str r6, [r4, #-2008] + str r6, [r4, #-2024] strh r6, [r4, r3] @ movhi add r3, r3, #8 - str r6, [r4, #-2060] + str r6, [r4, #-2016] strh r6, [r4, r3] @ movhi - add r3, r3, #952 + add r3, r3, #900 strh r6, [r4, r3] @ movhi mov r4, r6 - b .L727 -.L729: + b .L722 +.L724: add r1, r7, r1 add r9, r9, #1 - ldrb r0, [r1, #3866] @ zero_extendqisi2 + ldrb r0, [r1, #3870] @ zero_extendqisi2 mov r1, r3 stmia sp, {r2, r3} bl V2P_block @@ -6208,90 +6152,90 @@ SupperBlkListInit: ldreqh r1, [r7, r2] addeq r5, r5, r1 uxtheq r5, r5 - b .L734 -.L735: + b .L729 +.L730: mov r5, #0 uxth r3, r4 mov r9, r5 - mov fp, #3840 - movw r2, #3908 -.L734: + movw fp, #3844 + movw r2, #3912 +.L729: ldrh r0, [r7, fp] sxth r1, r9 cmp r1, r0 - blt .L729 + blt .L724 cmp r5, #0 - ldr r9, .L736+4 - beq .L730 + ldr r9, .L731+4 + beq .L725 sxth r1, r5 mov r0, #32768 bl __aeabi_idiv uxth r5, r0 - b .L731 -.L730: + b .L726 +.L725: sxth r3, r4 - ldr r2, [r9, #-2064] + ldr r2, [r9, #-2020] mvn r1, #0 mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi -.L731: +.L726: sxth r1, r4 - ldr r0, [r9, #-2072] - ldr r3, .L736+4 + ldr r0, [r9, #-2028] + ldr r3, .L731+4 mov r2, r1, asl #1 add r1, r2, r1 add r1, r0, r1, asl #1 strh r5, [r1, #4] @ movhi - ldr r1, .L736+12 + ldr r1, .L731+12 ldrh r1, [r9, r1] cmp r8, r1 - beq .L732 - ldr r1, .L736+16 + beq .L727 + ldr r1, .L731+16 ldrh r1, [r3, r1] cmp r8, r1 - beq .L732 - ldr r1, .L736+20 + beq .L727 + ldr r1, .L731+20 ldrh r1, [r3, r1] cmp r8, r1 - beq .L732 - ldr r3, [r3, #-2064] + beq .L727 + ldr r3, [r3, #-2020] uxth r0, r4 ldrh r3, [r3, r2] cmp r3, #0 - bne .L733 + bne .L728 add r6, r6, #1 uxth r6, r6 bl INSERT_FREE_LIST - b .L732 -.L733: + b .L727 +.L728: add sl, sl, #1 uxth sl, sl bl INSERT_DATA_LIST -.L732: +.L727: add r4, r4, #1 uxth r4, r4 -.L727: - movw r2, #3848 +.L722: + movw r2, #3852 sxth r8, r4 ldrh r3, [r7, r2] cmp r8, r3 - blt .L735 - ldr r3, .L736+4 + blt .L730 + ldr r3, .L731+4 mov r0, #0 - ldr r2, .L736+8 + ldr r2, .L731+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} -.L737: +.L732: .align 2 -.L736: +.L731: .word .LANCHOR0 .word .LANCHOR2 - .word -2056 - .word -2044 - .word -1996 - .word -1948 + .word -2012 + .word -2000 + .word -1952 + .word -1904 .fnend .size SupperBlkListInit, .-SupperBlkListInit .align 2 @@ -6304,33 +6248,33 @@ 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, .L741 - movw r6, #3918 - ldr r5, .L741+4 - movw r7, #3946 + ldr r4, .L736 + movw r6, #3922 + ldr r5, .L736+4 + movw r7, #3950 mov r8, #12 - ldr r2, [r4, #3936] - ldr r0, [r5, #-1092] + ldr r2, [r4, #3940] + ldr r0, [r5, #-1100] mov r2, r2, asl #1 bl ftl_memset ldrh r3, [r4, r6] ldrh r2, [r4, r7] mov r1, #255 - ldr r0, [r5, #-1088] + ldr r0, [r5, #-1096] mul r2, r2, r3 bl ftl_memset mov r2, #0 mov ip, r2 mvn r0, #0 - b .L739 -.L740: + b .L734 +.L735: mul r3, r8, r2 - ldr r1, [r5, #-1900] + ldr r1, [r5, #-1856] add sl, r1, r3 str ip, [sl, #4] strh r0, [r1, r3] @ movhi - ldr r1, [r5, #-1900] - ldr sl, [r5, #-1088] + ldr r1, [r5, #-1856] + ldr sl, [r5, #-1096] add r3, r1, r3 ldrh r1, [r4, r6] mul r1, r2, r1 @@ -6339,51 +6283,52 @@ FtlL2PDataInit: bic r1, r1, #3 add r1, sl, r1 str r1, [r3, #8] -.L739: +.L734: ldrh r3, [r4, r7] - ldr r1, .L741 + ldr r1, .L736 cmp r3, r2 - ldr r3, .L741+4 - bhi .L740 - ldr r0, .L741+8 + ldr r3, .L736+4 + bhi .L735 + ldr r0, .L736+8 mvn r2, #0 - ldr ip, [r1, #3936] + ldr ip, [r1, #3940] strh r2, [r3, r0] @ movhi sub r0, r0, #2 strh r2, [r3, r0] @ movhi add r0, r0, #10 strh ip, [r3, r0] @ movhi - sub r0, r0, #6 - ldr ip, .L741+12 + ldr ip, .L736+12 + ldr r0, .L736+16 strh ip, [r3, r0] @ movhi add r0, r0, #40 ldrh ip, [r3, r0] sub r0, r0, #36 strh ip, [r3, r0] @ movhi - movw r0, #3944 + movw r0, #3948 ldrh r0, [r1, r0] - ldr r1, .L741+16 + ldr r1, .L736+20 strh r0, [r3, r1] @ movhi - ldr r1, [r3, #-1036] + ldr r1, [r3, #-1044] + str r1, [r3, #-1080] + ldr r1, [r3, #-1040] + str r1, [r3, #-1076] + ldr r1, [r3, #-1100] str r1, [r3, #-1072] - ldr r1, [r3, #-1032] + ldr r1, [r3, #-1036] str r1, [r3, #-1068] - ldr r1, [r3, #-1092] - str r1, [r3, #-1064] - ldr r1, [r3, #-1028] - str r1, [r3, #-1060] - ldr r1, .L741+20 + ldr r1, .L736+24 strh r2, [r3, r1] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L742: +.L737: .align 2 -.L741: +.L736: .word .LANCHOR0 .word .LANCHOR2 - .word -1082 + .word -1090 .word -3902 - .word -1078 - .word -1044 + .word -1088 + .word -1086 + .word -1052 .fnend .size FtlL2PDataInit, .-FtlL2PDataInit .align 2 @@ -6405,13 +6350,13 @@ ftl_free_no_use_map_blk: mov r0, r5 bl ftl_memset mov r3, #0 - b .L744 -.L748: + b .L739 +.L743: ldr r0, [r7, r3, asl #2] mov r2, #0 ubfx r0, r0, #10, #16 - b .L745 -.L747: + b .L740 +.L742: mov r1, r2, asl #1 add r2, r2, #1 ldrh ip, [r6, r1] @@ -6420,42 +6365,42 @@ ftl_free_no_use_map_blk: ldreqh ip, [r5, r1] addeq ip, ip, #1 streqh ip, [r5, r1] @ movhi -.L745: +.L740: ldrh r1, [r4, #10] cmp r1, r2 - bhi .L747 + bhi .L742 add r3, r3, #1 uxth r3, r3 -.L744: +.L739: ldrh r2, [r4, #6] cmp r2, r3 - bhi .L748 + bhi .L743 mov sl, #0 ldrh fp, [r5, #0] mov r7, sl - ldr r3, .L754 - movw r2, #3910 - b .L749 -.L753: + ldr r3, .L749 + movw r2, #3914 + b .L744 +.L748: ldrh r1, [r4, #0] cmp r1, r7 - bne .L750 + bne .L745 ldrh r0, [r4, #2] ldrh r1, [r3, r2] cmp r0, r1 movcc r0, r7, asl #1 strcch r1, [r5, r0] @ movhi -.L750: +.L745: mov r9, r7, asl #1 ldrh r8, [r5, r9] cmp fp, r8 movhi sl, r7 movhi fp, r8 cmp r8, #0 - bne .L752 + bne .L747 ldrh r0, [r6, r9] cmp r0, #0 - beq .L752 + beq .L747 mov r1, #1 stmia sp, {r2, r3} bl FtlFreeSysBlkQueueIn @@ -6464,18 +6409,18 @@ ftl_free_no_use_map_blk: ldrh r1, [r4, #8] sub r1, r1, #1 strh r1, [r4, #8] @ movhi -.L752: +.L747: add r7, r7, #1 uxth r7, r7 -.L749: +.L744: ldrh r1, [r4, #10] cmp r1, r7 - bhi .L753 + bhi .L748 mov r0, sl ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L755: +.L750: .align 2 -.L754: +.L749: .word .LANCHOR0 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -6486,7 +6431,7 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L757 + ldr r3, .L752 movw r2, #4038 stmfd sp!, {r4, lr} .save {r4, lr} @@ -6500,13 +6445,13 @@ FtlFreeSysBlkQueueInit: movw r2, #4036 strh r0, [r3, r2] @ movhi mov r2, #2048 - ldr r0, .L757+4 + ldr r0, .L752+4 bl ftl_memset mov r0, r4 ldmfd sp!, {r4, pc} -.L758: +.L753: .align 2 -.L757: +.L752: .word .LANCHOR0 .word .LANCHOR0+4044 .fnend @@ -6519,10 +6464,10 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L760 + ldr r3, .L755 movw r2, #3976 mvn r1, #0 - ldr r0, .L760+4 + ldr r0, .L755+4 strh r1, [r3, r2] @ movhi add r2, r2, #6 mov r1, #0 @@ -6530,9 +6475,9 @@ FtlBbtMemInit: mov r1, #255 mov r2, #16 b ftl_memset -.L761: +.L756: .align 2 -.L760: +.L755: .word .LANCHOR0 .word .LANCHOR0+3988 .fnend @@ -6544,8 +6489,8 @@ FtlBbt2Bitmap: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L766 - ldr r2, .L766+4 + ldr r3, .L761 + ldr r2, .L761+4 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 @@ -6558,7 +6503,7 @@ FtlBbt2Bitmap: mov r3, #0 movw ip, #65535 mov r0, #1 -.L764: +.L759: ldrh r2, [r5, r3] cmp r2, ip ldmeqfd sp!, {r4, r5, r6, pc} @@ -6569,12 +6514,12 @@ FtlBbt2Bitmap: ldr r6, [r4, r1, asl #2] orr r2, r6, r0, asl r2 str r2, [r4, r1, asl #2] - bne .L764 + bne .L759 ldmfd sp!, {r4, r5, r6, pc} -.L767: +.L762: .align 2 -.L766: - .word -1024 +.L761: + .word -1032 .word .LANCHOR2 .fnend .size FtlBbt2Bitmap, .-FtlBbt2Bitmap @@ -6588,24 +6533,24 @@ FtlVariablesInit: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mvn r3, #0 - ldr r5, .L769 + ldr r5, .L764 mov r4, #0 - ldr r2, .L769+4 + ldr r2, .L764+4 mov r1, r4 - ldr r6, .L769+8 - movw r7, #3850 - str r3, [r5, #-1004] + ldr r6, .L764+8 + movw r7, #3854 + str r3, [r5, #-1012] strh r3, [r5, r2] @ movhi - movw r3, #3954 + movw r3, #3958 strh r4, [r6, r3] @ movhi - movw r3, #3928 + movw r3, #3932 ldrh r2, [r6, r3] - ldr r0, [r6, #3956] - str r4, [r5, #-1020] + ldr r0, [r6, #3960] + str r4, [r5, #-1028] mov r2, r2, asl #1 - str r4, [r5, #-1012] - str r4, [r5, #-1008] - str r4, [r5, #-1884] + str r4, [r5, #-1020] + str r4, [r5, #-1016] + str r4, [r6, #3836] bl ftl_memset ldrh r2, [r6, r7] mov r1, r4 @@ -6614,29 +6559,28 @@ FtlVariablesInit: bl ftl_memset ldrh r2, [r6, r7] mov r1, r4 - ldr r0, [r5, #-1000] + ldr r0, [r5, #-1008] mov r2, r2, asl #1 bl ftl_memset mov r1, r4 mov r2, #48 - ldr r0, .L769+12 + ldr r0, .L764+12 bl ftl_memset mov r1, r4 mov r2, #512 - ldr r0, .L769+16 + sub r0, r5, #1712 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L770: +.L765: .align 2 -.L769: +.L764: .word .LANCHOR2 - .word -1016 + .word -1024 .word .LANCHOR0 - .word .LANCHOR2-1820 - .word .LANCHOR2-1704 + .word .LANCHOR2-2076 .fnend .size FtlVariablesInit, .-FtlVariablesInit .align 2 @@ -6649,117 +6593,117 @@ 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, .L802 + ldr r4, .L797 mov r0, #1024 - ldr r3, .L802+4 + ldr r3, .L797+4 mov r7, #12 - ldr r2, .L802+8 - mov sl, #3840 - ldr r5, .L802+12 + ldr r2, .L797+8 + movw sl, #3844 + ldr r5, .L797+12 mov r8, #36 strh r6, [r4, r3] @ movhi movw r3, #65535 - str r3, [r4, #-988] + str r3, [r4, #-996] mvn r3, #0 strh r3, [r4, r2] @ movhi add r2, r2, #2 - str r6, [r4, #-996] + str r6, [r4, #-1004] strh r3, [r4, r2] @ movhi mov r2, #32 - ldr r3, .L802+16 - str r6, [r4, #-1708] - str r6, [r4, #-1848] + ldr r3, .L797+16 + str r6, [r4, #-1716] + str r6, [r4, #-1808] strh r2, [r4, r3] @ movhi add r3, r3, #2 mov r2, #128 - str r6, [r4, #-1844] + str r6, [r4, #-1804] strh r2, [r4, r3] @ movhi add r3, r3, #6 - str r6, [r4, #-1860] + str r6, [r4, #-1820] strh r6, [r4, r3] @ movhi add r3, r3, #50 - str r6, [r4, #-1872] + str r6, [r4, #-1832] strh r6, [r4, r3] @ movhi - add r3, r3, #154 - str r6, [r4, #-1876] + add r3, r3, #158 + str r6, [r4, #-1836] strh r6, [r4, r3] @ movhi - sub r3, r3, #118 - str r6, [r4, #-1868] + sub r3, r3, #122 + str r6, [r4, #-1828] strh r6, [r4, r3] @ movhi - movw r3, #3914 + movw r3, #3918 ldrh r1, [r5, r3] - str r6, [r4, #-1864] - str r6, [r4, #-1880] + str r6, [r4, #-1824] str r6, [r4, #-1840] - str r6, [r4, #-1836] + str r6, [r4, #-1800] + str r6, [r4, #-1796] str r6, [r4, #-2080] - str r6, [r4, #-1828] - str r6, [r4, #-1824] - str r6, [r4, #-992] - str r6, [r4, #-1180] - str r6, [r4, #-984] + str r6, [r4, #-1788] + str r6, [r4, #-1784] + str r6, [r4, #-1000] str r6, [r4, #-1188] - str r6, [r5, #3972] + str r6, [r4, #-992] + str r6, [r4, #-1196] + str r6, [r4, #-988] bl __aeabi_idiv - mov r3, #3840 + movw r3, #3844 ldrh r3, [r5, r3] - str r6, [r5, #3960] - movw r6, #3912 + str r6, [r5, #3964] + movw r6, #3916 mov r3, r3, asl #2 cmp r0, r3 - str r0, [r4, #-976] + str r0, [r4, #-980] ldrh r0, [r5, r6] - strhi r3, [r4, #-976] - ldr r4, .L802 + strhi r3, [r4, #-980] + ldr r4, .L797 mov r0, r0, asl #1 bl ftl_malloc - str r0, [r4, #-1148] + str r0, [r4, #-1156] ldrh r0, [r5, r6] mul r0, r7, r0 bl ftl_malloc ldrh r6, [r5, sl] mul r6, r8, r6 mov r9, r6, asl #3 - str r0, [r4, #-1144] + str r0, [r4, #-1152] mov r0, r9 bl ftl_malloc - str r0, [r4, #-972] + str r0, [r4, #-976] mov r0, r6 bl ftl_malloc - str r0, [r4, #-968] + str r0, [r4, #-972] mov r0, r9 bl ftl_malloc - str r0, [r4, #-964] + str r0, [r4, #-968] mov r0, r6 bl ftl_malloc str r0, [r4, #-2088] mov r0, r6 bl ftl_malloc - str r0, [r4, #-1160] - ldr r0, [r4, #-976] + str r0, [r4, #-1168] + ldr r0, [r4, #-980] mul r0, r8, r0 bl ftl_malloc - movw r8, #3918 + movw r8, #3922 ldrh r3, [r5, sl] ldrh r6, [r5, r8] mov r3, r3, asl #1 add r3, r3, #1 - str r3, [r4, #-1156] - str r0, [r5, #3964] + str r3, [r4, #-1164] + str r0, [r5, #3968] mov r0, r6 bl ftl_malloc - str r0, [r4, #-2076] + str r0, [r4, #-964] mov r0, r6 bl ftl_malloc str r0, [r4, #-960] mov r0, r6 bl ftl_malloc str r0, [r4, #-956] - ldr r0, [r4, #-1156] + ldr r0, [r4, #-1164] mul r0, r0, r6 bl ftl_malloc - str r0, [r4, #-1168] - ldr r0, [r4, #-976] + str r0, [r4, #-1176] + ldr r0, [r4, #-980] mul r0, r0, r6 bl ftl_malloc str r0, [r4, #-952] @@ -6768,30 +6712,30 @@ FtlMemInit: str r0, [r4, #-948] mov r0, r6 bl ftl_malloc - mov r6, #3920 + movw r6, #3924 str r0, [r4, #-944] - ldr r0, [r4, #-1156] + ldr r0, [r4, #-1164] mul r0, r7, r0 bl ftl_malloc ldrh r3, [r5, r6] ldrh sl, [r5, sl] mul sl, sl, r3 - str r0, [r4, #-1172] + str r0, [r4, #-1180] mov r0, sl bl ftl_malloc str r0, [r4, #-940] mov r0, sl, asl #3 bl ftl_malloc ldrh r3, [r5, r6] - ldr sl, .L802+20 + ldr sl, .L797+20 str r0, [r4, #-936] - ldr r0, [r4, #-1156] + ldr r0, [r4, #-1164] mul r0, r0, r3 bl ftl_malloc ldrh r3, [r5, r6] - movw r6, #3850 - str r0, [r4, #-1164] - ldr r0, [r4, #-976] + movw r6, #3854 + str r0, [r4, #-1172] + ldr r0, [r4, #-980] mul r0, r0, r3 bl ftl_malloc str r0, [r4, #-932] @@ -6800,7 +6744,7 @@ FtlMemInit: uxth r0, r0 strh r0, [r4, sl] @ movhi bl ftl_malloc - str r0, [r4, #-1000] + str r0, [r4, #-1008] ldrh r0, [r4, sl] add r0, r0, #544 add r0, r0, #3 @@ -6818,25 +6762,25 @@ FtlMemInit: str r0, [r4, #-920] mov r0, sl bl ftl_malloc - ldr sl, [r5, #3936] + ldr sl, [r5, #3940] mov sl, sl, asl #1 - str r0, [r4, #-2064] + str r0, [r4, #-2020] mov r0, sl bl ftl_malloc - str r0, [r4, #-1036] + str r0, [r4, #-1044] mov r0, sl bl ftl_malloc - movw sl, #3928 - str r0, [r4, #-1092] + movw sl, #3932 + str r0, [r4, #-1100] ldrh r0, [r5, r6] mov r0, r0, lsr #3 add r0, r0, #4 bl ftl_malloc - str r0, [r4, #-1888] + str r0, [r4, #-1844] ldrh r0, [r5, sl] mov r0, r0, asl #1 bl ftl_malloc - str r0, [r5, #3956] + str r0, [r5, #3960] ldrh r0, [r5, sl] mov r0, r0, asl #1 bl ftl_malloc @@ -6854,224 +6798,224 @@ FtlMemInit: mov r2, r2, asl #2 str r0, [r4, #-908] bl ftl_memset - movw r3, #3944 + movw r3, #3948 ldrh sl, [r5, r3] mov sl, sl, asl #2 mov r0, sl bl ftl_malloc - str r0, [r4, #-1028] + str r0, [r4, #-1036] mov r0, sl bl ftl_malloc - movw sl, #3946 + movw sl, #3950 str r0, [r4, #-904] - ldr r0, [r5, #3936] + ldr r0, [r5, #3940] mov r0, r0, asl #2 bl ftl_malloc - str r0, [r4, #-1032] + str r0, [r4, #-1040] ldrh r0, [r5, sl] mul r0, r7, r0 bl ftl_malloc ldrh r3, [r5, sl] - movw r7, #3862 - str r0, [r4, #-1900] + movw r7, #3866 + str r0, [r4, #-1856] ldrh r0, [r5, r8] mul r0, r0, r3 bl ftl_malloc ldrh r3, [r5, r6] - ldr r6, .L802+24 - str r0, [r4, #-1088] + ldr r6, .L797+24 + str r0, [r4, #-1096] mov r0, #6 mul r0, r0, r3 bl ftl_malloc - mov r3, #3904 + movw r3, #3908 ldrh r3, [r5, r3] ldrh r2, [r5, r7] add r3, r3, #31 mov r3, r3, lsr #5 strh r3, [r4, r6] @ movhi mul r3, r2, r3 - str r0, [r4, #-2072] + str r0, [r4, #-2028] mov r0, r3, asl #2 bl ftl_malloc ldrh r1, [r4, r6] mov r3, #1 - ldr ip, .L802+12 + ldr ip, .L797+12 mov r1, r1, asl #2 mov r2, r1 str r0, [r5, #4004] ldrh r5, [r5, r7] - ldr r0, .L802+28 - b .L773 -.L774: + ldr r0, .L797+28 + b .L768 +.L769: ldr r4, [ip, #4004] add r3, r3, #1 add r4, r4, r2 add r2, r2, r1 str r4, [r0, #4]! -.L773: +.L768: cmp r3, r5 - bcc .L774 - ldr r0, .L802+32 + bcc .L769 + ldr r0, .L797+32 mov r2, #0 mov r1, r2 add r0, r0, r3, asl #2 - b .L775 -.L776: + b .L770 +.L771: add ip, r0, r2 add r3, r3, #1 add r2, r2, #4 str r1, [ip, #28] -.L775: +.L770: cmp r3, #7 - bls .L776 - ldr r3, .L802 - ldr r2, [r3, #-1036] + bls .L771 + ldr r3, .L797 + ldr r2, [r3, #-1044] cmp r2, #0 - beq .L801 -.L777: - ldr r2, [r3, #-1092] + beq .L796 +.L772: + ldr r2, [r3, #-1100] cmp r2, #0 - beq .L801 -.L779: - ldr r2, [r3, #-1028] + beq .L796 +.L774: + ldr r2, [r3, #-1036] cmp r2, #0 - beq .L801 -.L780: - ldr r2, [r3, #-1032] + beq .L796 +.L775: + ldr r2, [r3, #-1040] cmp r2, #0 - beq .L801 -.L781: - ldr r2, [r3, #-1900] + beq .L796 +.L776: + ldr r2, [r3, #-1856] cmp r2, #0 - beq .L801 -.L782: - ldr r2, [r3, #-1088] + beq .L796 +.L777: + ldr r2, [r3, #-1096] cmp r2, #0 - beq .L801 -.L783: - ldr r2, [r3, #-2072] + beq .L796 +.L778: + ldr r2, [r3, #-2028] cmp r2, #0 - beq .L801 -.L784: - ldr r2, .L802+12 + beq .L796 +.L779: + ldr r2, .L797+12 ldr r2, [r2, #4004] cmp r2, #0 - beq .L801 -.L785: - ldr r3, [r3, #-2064] + beq .L796 +.L780: + ldr r3, [r3, #-2020] cmp r3, #0 - beq .L801 -.L786: - ldr r3, .L802 - ldr r2, [r3, #-1148] + beq .L796 +.L781: + ldr r3, .L797 + ldr r2, [r3, #-1156] cmp r2, #0 - beq .L801 - ldr r2, [r3, #-1144] + beq .L796 + ldr r2, [r3, #-1152] cmp r2, #0 - beq .L801 -.L788: - ldr r2, [r3, #-972] + beq .L796 +.L783: + ldr r2, [r3, #-976] cmp r2, #0 - beq .L801 - ldr r2, [r3, #-964] + beq .L796 + ldr r2, [r3, #-968] cmp r2, #0 - beq .L801 + beq .L796 ldr r2, [r3, #-2088] cmp r2, #0 - beq .L801 - ldr r2, [r3, #-1160] + beq .L796 + ldr r2, [r3, #-1168] cmp r2, #0 - beq .L801 - ldr r2, [r3, #-968] + beq .L796 + ldr r2, [r3, #-972] cmp r2, #0 - beq .L801 -.L790: - ldr r2, [r3, #-2076] + beq .L796 +.L785: + ldr r2, [r3, #-964] cmp r2, #0 - beq .L801 + beq .L796 ldr r2, [r3, #-960] cmp r2, #0 - beq .L801 + beq .L796 ldr r3, [r3, #-956] cmp r3, #0 - beq .L801 - ldr r3, .L802 - ldr r2, [r3, #-1168] + beq .L796 + ldr r3, .L797 + ldr r2, [r3, #-1176] cmp r2, #0 - beq .L801 + beq .L796 ldr r2, [r3, #-948] cmp r2, #0 - beq .L801 + beq .L796 ldr r2, [r3, #-944] cmp r2, #0 - beq .L801 - ldr r2, [r3, #-1172] + beq .L796 + ldr r2, [r3, #-1180] cmp r2, #0 - beq .L801 -.L792: + beq .L796 +.L787: ldr r2, [r3, #-940] cmp r2, #0 - beq .L801 + beq .L796 ldr r2, [r3, #-936] cmp r2, #0 - beq .L801 - ldr r2, [r3, #-1164] + beq .L796 + ldr r2, [r3, #-1172] cmp r2, #0 - beq .L801 -.L794: + beq .L796 +.L789: ldr r2, [r3, #-2084] cmp r2, #0 - beq .L801 - ldr r3, [r3, #-1000] + beq .L796 + ldr r3, [r3, #-1008] cmp r3, #0 - beq .L801 -.L796: - ldr r3, .L802+12 - ldr r3, [r3, #3956] + beq .L796 +.L791: + ldr r3, .L797+12 + ldr r3, [r3, #3960] cmp r3, #0 - beq .L801 -.L797: - ldr r3, .L802 + beq .L796 +.L792: + ldr r3, .L797 ldr r2, [r3, #-916] cmp r2, #0 - beq .L801 -.L798: + beq .L796 +.L793: ldr r2, [r3, #-912] cmp r2, #0 - beq .L801 -.L799: + beq .L796 +.L794: ldr r3, [r3, #-908] cmp r3, #0 - bne .L800 -.L801: - ldr r0, .L802+36 - ldr r1, .L802+40 + bne .L795 +.L796: + ldr r0, .L797+36 + ldr r1, .L797+40 bl printk mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L800: +.L795: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L803: +.L798: .align 2 -.L802: +.L797: .word .LANCHOR2 - .word -1096 - .word -1138 + .word -1104 + .word -1146 .word .LANCHOR0 - .word -1192 + .word -1200 .word -928 - .word -1024 + .word -1032 .word .LANCHOR0+4004 .word .LANCHOR0+3976 - .word .LC80 + .word .LC83 .word .LANCHOR3 .fnend .size FtlMemInit, .-FtlMemInit .align 2 - .global ReadFlashInfo - .type ReadFlashInfo, %function -ReadFlashInfo: + .global ftl_read_flash_info + .type ftl_read_flash_info, %function +ftl_read_flash_info: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -7081,62 +7025,57 @@ ReadFlashInfo: mov r2, #11 mov r4, r0 bl ftl_memset - ldr r3, .L807 - ldr r1, [r3, #3624] - ldr r0, [r3, #856] - ldrb r2, [r1, #9] @ zero_extendqisi2 - mul r2, r0, r2 - mov r0, #0 + ldr r3, .L802 + ldr r2, [r3, #3624] + ldr r1, [r3, #856] + ldrb r2, [r2, #9] @ zero_extendqisi2 + mul r2, r1, r2 + mov r1, #0 uxth r2, r2 strb r2, [r4, #4] - mov ip, r2, lsr #8 - strb ip, [r4, #5] - ldrb ip, [r3, #3832] @ zero_extendqisi2 - strb ip, [r4, #7] - ldrb ip, [r1, #13] @ zero_extendqisi2 - mul r2, r2, ip - ldrh ip, [r1, #14] - ldrb r1, [r1, #8] @ zero_extendqisi2 - mul r2, ip, r2 - mul r2, r1, r2 - ubfx r1, r2, #8, #8 - strb r1, [r4, #1] - ubfx r1, r2, #16, #8 - strb r1, [r4, #2] + mov r2, r2, lsr #8 + strb r2, [r4, #5] + ldrb r2, [r3, #3832] @ zero_extendqisi2 + strb r2, [r4, #7] + ldr r2, [r3, #3952] + ubfx r0, r2, #8, #8 + strb r0, [r4, #1] strb r2, [r4, #0] + ubfx r0, r2, #16, #8 mov r2, r2, lsr #24 + strb r0, [r4, #2] strb r2, [r4, #3] ldr r2, [r3, #3624] - ldrb ip, [r3, #3762] @ zero_extendqisi2 - mov r3, r0 - ldrb r1, [r2, #9] @ zero_extendqisi2 - strb r1, [r4, #6] - mov r1, #32 - strb r1, [r4, #8] + ldrb r0, [r2, #9] @ zero_extendqisi2 + strb r0, [r4, #6] + mov r0, #32 + strb r0, [r4, #8] ldrb r2, [r2, #7] @ zero_extendqisi2 - ldr r1, .L807+4 - strb r0, [r4, #10] + ldrb r0, [r3, #3762] @ zero_extendqisi2 + mov r3, r1 + strb r1, [r4, #10] strb r2, [r4, #9] mov r2, #1 - b .L805 -.L806: + ldr r1, .L802+4 + b .L800 +.L801: ldrb r5, [r3, r1] @ zero_extendqisi2 add r3, r3, #1 - ldrb r0, [r4, #10] @ zero_extendqisi2 - orr r0, r0, r2, asl r5 - strb r0, [r4, #10] -.L805: - uxtb r0, r3 - cmp r0, ip - bcc .L806 + ldrb ip, [r4, #10] @ zero_extendqisi2 + orr ip, ip, r2, asl r5 + strb ip, [r4, #10] +.L800: + uxtb ip, r3 + cmp ip, r0 + bcc .L801 ldmfd sp!, {r3, r4, r5, pc} -.L808: +.L803: .align 2 -.L807: +.L802: .word .LANCHOR0 .word .LANCHOR0+3764 .fnend - .size ReadFlashInfo, .-ReadFlashInfo + .size ftl_read_flash_info, .-ftl_read_flash_info .align 2 .global FlashDieInfoInit .type FlashDieInfoInit, %function @@ -7144,50 +7083,50 @@ FlashDieInfoInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L821 + ldr r1, .L816 mov r2, #0 stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} .save {r3, r4, r5, r6, r7, r8, sl, lr} - ldr r3, .L821+4 + ldr r3, .L816+4 strb r2, [r1, #-900] - ldr r1, .L821+8 + ldr r1, .L816+8 strb r2, [r3, #3762] - movw r2, #2838 + movw r2, #2902 ldrh r2, [r1, r2] cmp r2, #256 str r2, [r3, #856] movhi r2, #512 - bhi .L820 + bhi .L815 cmp r2, #128 - bls .L811 + bls .L806 mov r2, #256 -.L820: +.L815: str r2, [r3, #856] -.L811: +.L806: mov r1, #0 mov r2, #8 - ldr r0, .L821+12 + ldr r0, .L816+12 mov r6, #0 bl ftl_memset mov r1, #0 mov r2, #32 - ldr r0, .L821+16 + ldr r0, .L816+16 bl ftl_memset - ldr r0, .L821+20 + ldr r0, .L816+20 mov r1, #0 mov r2, #128 bl ftl_memset - ldr r7, .L821+24 - ldr r5, .L821+4 + ldr r7, .L816+24 + ldr r5, .L816+4 mov r8, r7 -.L813: +.L808: ldr r4, [r5, #3624] mov r1, r8 add r0, r4, #1 ldrb r2, [r4, #0] @ zero_extendqisi2 bl FlashMemCmp8 cmp r0, #0 - bne .L812 + bne .L807 ldrb r3, [r5, #3762] @ zero_extendqisi2 add r2, r5, r3, asl #2 str r0, [r2, #3588] @@ -7195,28 +7134,28 @@ FlashDieInfoInit: add r3, r3, #1 strb r3, [r5, #3762] strb r6, [r2, #3764] -.L812: +.L807: add r6, r6, #1 add r8, r8, #8 cmp r6, #4 - bne .L813 - ldr r5, .L821+4 - ldr r3, .L821 + bne .L808 + ldr r5, .L816+4 + ldr r3, .L816 ldrb r2, [r5, #3762] @ zero_extendqisi2 strb r2, [r3, #-900] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #2 - bne .L814 + bne .L809 add sl, r4, #1 mov r6, #0 mov r8, r5 -.L817: +.L812: mov r0, sl mov r1, r7 ldrb r2, [r4, #0] @ zero_extendqisi2 bl FlashMemCmp8 cmp r0, #0 - bne .L815 + bne .L810 ldrb r1, [r4, #13] @ zero_extendqisi2 ldr r0, [r5, #856] ldrb r3, [r5, #3762] @ zero_extendqisi2 @@ -7234,25 +7173,25 @@ FlashDieInfoInit: add r3, r3, #1 strb r3, [r8, #3762] strb r6, [r2, #3764] -.L815: +.L810: add r6, r6, #1 add r7, r7, #8 cmp r6, #4 - bne .L817 -.L814: - ldr r3, .L821+4 + bne .L812 +.L809: + ldr r3, .L816+4 ldrb r1, [r4, #13] @ zero_extendqisi2 - ldr r2, .L821 + ldr r2, .L816 ldrb r3, [r3, #3762] @ zero_extendqisi2 mul r1, r1, r3 ldrh r3, [r4, #14] mul r1, r3, r1 - ldr r3, .L821+28 + ldr r3, .L816+28 strh r1, [r2, r3] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L822: +.L817: .align 2 -.L821: +.L816: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR1 @@ -7274,85 +7213,85 @@ BuildFlashLsbPageTable: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r1 - bne .L824 - ldr r3, .L863 -.L825: + bne .L819 + ldr r3, .L858 +.L820: strh r0, [r3, #2]! @ movhi add r0, r0, #1 uxth r0, r0 cmp r0, #256 - bne .L825 - b .L826 -.L824: + bne .L820 + b .L821 +.L819: cmp r0, #1 - bne .L827 - ldr r0, .L863+4 + bne .L822 + ldr r0, .L858+4 mov r2, #0 mov r3, r2 -.L830: +.L825: uxth r1, r3 cmp r1, #3 - bls .L828 + bls .L823 tst r3, #1 moveq r1, #2 movne r1, #3 rsb r1, r1, r2 uxth r1, r1 -.L828: +.L823: add r3, r3, #1 strh r1, [r2, r0] @ movhi cmp r3, #256 add r2, r2, #2 - bne .L830 - b .L826 -.L827: + bne .L825 + b .L821 +.L822: cmp r0, #2 - bne .L831 + bne .L826 mov r3, #0 - ldr r0, .L863 + ldr r0, .L858 movw r2, #65535 mov r1, r3 - b .L862 -.L834: + b .L857 +.L829: cmp r3, #1 movls r1, r3 movhi r1, r2 -.L862: +.L857: add r3, r3, #1 add r2, r2, #2 strh r1, [r0, #2]! @ movhi uxth r3, r3 uxth r2, r2 cmp r3, #256 - bne .L834 - b .L826 -.L831: + bne .L829 + b .L821 +.L826: cmp r0, #3 - bne .L835 - ldr r0, .L863+4 + bne .L830 + ldr r0, .L858+4 mov r2, #0 mov r3, r2 -.L838: +.L833: uxth r1, r3 cmp r1, #5 - bls .L836 + bls .L831 tst r3, #1 moveq r1, #4 movne r1, #5 rsb r1, r1, r2 uxth r1, r1 -.L836: +.L831: add r3, r3, #1 strh r1, [r2, r0] @ movhi cmp r3, #256 add r2, r2, #2 - bne .L838 - b .L826 -.L835: + bne .L833 + b .L821 +.L830: cmp r0, #4 mov r2, #0 - bne .L839 - ldr r3, .L863+8 + bne .L834 + ldr r3, .L858+8 movw r1, #3076 strh r2, [r3, r1] @ movhi movw r2, #3078 @@ -7368,7 +7307,7 @@ BuildFlashLsbPageTable: mov r1, #5 strh r0, [r3, r2] @ movhi add r2, r2, #2 - ldr r0, .L863+12 + ldr r0, .L858+12 strh r1, [r3, r2] @ movhi mov r2, #3088 mov r1, #7 @@ -7378,7 +7317,7 @@ BuildFlashLsbPageTable: strh r1, [r3, r2] @ movhi mov r2, #16 mov r3, r1 -.L841: +.L836: tst r3, #1 add r3, r3, #1 moveq r1, #6 @@ -7388,72 +7327,72 @@ BuildFlashLsbPageTable: add r2, r2, #2 strh r1, [r0, #2]! @ movhi uxth r2, r2 - bne .L841 - b .L826 -.L839: + bne .L836 + b .L821 +.L834: cmp r0, #5 - bne .L842 - ldr r1, .L863 + bne .L837 + ldr r1, .L858 mov r3, r2 -.L843: +.L838: strh r3, [r1, #2]! @ movhi add r3, r3, #1 uxth r3, r3 cmp r3, #16 - bne .L843 - ldr r2, .L863+16 -.L844: + bne .L838 + ldr r2, .L858+16 +.L839: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, #496 - bne .L844 - b .L826 -.L842: + bne .L839 + b .L821 +.L837: cmp r0, #6 - bne .L826 - ldr r0, .L863 + bne .L821 + ldr r0, .L858 mov r3, r2 -.L847: +.L842: uxth r1, r3 cmp r1, #5 - bls .L845 + bls .L840 tst r3, #1 moveq r1, #10 movne r1, #12 rsb r1, r1, r2 uxth r1, r1 -.L845: +.L840: add r3, r3, #1 add r2, r2, #3 cmp r3, #256 strh r1, [r0, #2]! @ movhi uxth r2, r2 - bne .L847 -.L826: + bne .L842 +.L821: mov r2, #1024 - ldr r0, .L863+20 + ldr r0, .L858+20 mov r1, #255 uxth r4, r4 bl ftl_memset - ldr r2, .L863 + ldr r2, .L858 mov r3, #0 - ldr r0, .L863+24 - b .L848 -.L849: + ldr r0, .L858+24 + b .L843 +.L844: ldrh r1, [r2, #2]! add r3, r3, #1 uxth r3, r3 add ip, r0, r1, asl #1 sub ip, ip, #896 strh r1, [ip, #0] @ movhi -.L848: +.L843: cmp r3, r4 - bcc .L849 + bcc .L844 ldmfd sp!, {r4, pc} -.L864: +.L859: .align 2 -.L863: +.L858: .word .LANCHOR0+3074 .word .LANCHOR0+3076 .word .LANCHOR0 @@ -7475,6 +7414,29 @@ ftl_memcpy: .fnend .size ftl_memcpy, .-ftl_memcpy .align 2 + .global ftl_memcpy32 + .type ftl_memcpy32, %function +ftl_memcpy32: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + mov r3, #0 + stmfd sp!, {r4, lr} + .save {r4, lr} + mov ip, r3 + b .L862 +.L863: + ldr r4, [r1, r3] + add ip, ip, #1 + str r4, [r0, r3] + add r3, r3, #4 +.L862: + cmp ip, r2 + bne .L863 + ldmfd sp!, {r4, pc} + .fnend + .size ftl_memcpy32, .-ftl_memcpy32 + .align 2 .global ftl_memcmp .type ftl_memcmp, %function ftl_memcmp: @@ -7486,6 +7448,53 @@ ftl_memcmp: .fnend .size ftl_memcmp, .-ftl_memcmp .align 2 + .global js_hash + .type js_hash, %function +js_hash: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + mov r3, r0 + mov r2, #0 + stmfd sp!, {r4, lr} + .save {r4, lr} + ldr r0, .L868 + b .L866 +.L867: + 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 +.L866: + cmp r2, r1 + bne .L867 + ldmfd sp!, {r4, pc} +.L869: + .align 2 +.L868: + .word 1204201446 + .fnend + .size js_hash, .-js_hash + .align 2 + .global timer_get_time + .type timer_get_time, %function +timer_get_time: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + ldr r3, .L871 + ldr r0, [r3, #0] + b jiffies_to_msecs +.L872: + .align 2 +.L871: + .word jiffies + .fnend + .size timer_get_time, .-timer_get_time + .align 2 .global FlashSramLoadStore .type FlashSramLoadStore, %function FlashSramLoadStore: @@ -7495,7 +7504,7 @@ FlashSramLoadStore: stmfd sp!, {r4, lr} .save {r4, lr} cmp r2, #0 - ldr r4, .L870 + ldr r4, .L876 mov ip, r0 mov r2, r3 ldr r4, [r4, #128] @@ -7505,9 +7514,9 @@ FlashSramLoadStore: movne r1, ip ldmfd sp!, {r4, lr} b memcpy -.L871: +.L877: .align 2 -.L870: +.L876: .word .LANCHOR2 .fnend .size FlashSramLoadStore, .-FlashSramLoadStore @@ -7523,17 +7532,6 @@ FlashCs123Init: .fnend .size FlashCs123Init, .-FlashCs123Init .align 2 - .global rk_nand_de_init - .type rk_nand_de_init, %function -rk_nand_de_init: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - b FlashDeInit - .fnend - .size rk_nand_de_init, .-rk_nand_de_init - .align 2 .global rk_nand_suspend .type rk_nand_suspend, %function rk_nand_suspend: @@ -7541,7 +7539,7 @@ rk_nand_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - b FlashSuspend + b ftl_flash_suspend .fnend .size rk_nand_suspend, .-rk_nand_suspend .align 2 @@ -7552,7 +7550,7 @@ rk_nand_resume: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - b FlashResume + b ftl_flash_resume .fnend .size rk_nand_resume, .-rk_nand_resume .align 2 @@ -7563,16 +7561,50 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L877 - ldr r0, [r3, #3948] + ldr r3, .L882 + ldr r0, [r3, #3952] bx lr -.L878: +.L883: .align 2 -.L877: +.L882: .word .LANCHOR0 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity .align 2 + .global rk_nandc_get_irq_status + .type rk_nandc_get_irq_status, %function +rk_nandc_get_irq_status: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + ldr r0, [r0, #372] + bx lr + .fnend + .size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status + .align 2 + .global rknand_proc_ftlread + .type rknand_proc_ftlread, %function +rknand_proc_ftlread: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + b ftl_proc_ftl_read + .fnend + .size rknand_proc_ftlread, .-rknand_proc_ftlread + .align 2 + .global ReadFlashInfo + .type ReadFlashInfo, %function +ReadFlashInfo: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + b ftl_read_flash_info + .fnend + .size ReadFlashInfo, .-ReadFlashInfo + .align 2 .global rknand_print_hex .type rknand_print_hex, %function rknand_print_hex: @@ -7581,56 +7613,57 @@ rknand_print_hex: @ 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 r8, #0 - mov r6, r0 - mov r4, r1 - mov r5, r2 + mov r5, #0 + mov r8, r0 + mov r6, r1 + mov r7, r2 mov sl, r3 - mov r7, r8 - b .L880 -.L886: - cmp r8, #0 - bne .L881 - ldr r0, .L888 - mov r1, r6 - mov r2, r7 + mov r4, r5 + b .L888 +.L894: + cmp r5, #0 + bne .L889 + ldr r0, .L896 + mov r1, r8 + mov r2, r6 + mov r3, r4 bl printk -.L881: - cmp r5, #4 - ldreq r0, .L888+4 - ldreq r1, [r4, r7, asl #2] - beq .L887 - cmp r5, #2 - moveq r3, r7, asl #1 - ldreq r0, .L888+4 - ldreqsh r1, [r4, r3] - ldrne r0, .L888+4 - ldrneb r1, [r4, r7] @ zero_extendqisi2 -.L887: - add r8, r8, #1 +.L889: + cmp r7, #4 + ldreq r0, .L896+4 + ldreq r1, [r6, r4, asl #2] + beq .L895 + cmp r7, #2 + moveq r3, r4, asl #1 + ldreq r0, .L896+4 + ldreqsh r1, [r6, r3] + ldrne r0, .L896+4 + ldrneb r1, [r6, r4] @ zero_extendqisi2 +.L895: + add r5, r5, #1 bl printk - cmp r8, #15 - bls .L885 - ldr r0, .L888+8 - mov r8, #0 - ldr r1, .L888+12 + cmp r5, #15 + bls .L893 + ldr r0, .L896+8 + mov r5, #0 + ldr r1, .L896+12 bl printk -.L885: - add r7, r7, #1 -.L880: - cmp r7, sl - bne .L886 - ldr r0, .L888+8 - ldr r1, .L888+12 +.L893: + add r4, r4, #1 +.L888: + cmp r4, sl + bne .L894 + ldr r0, .L896+8 + ldr r1, .L896+12 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr} b printk -.L889: +.L897: .align 2 -.L888: - .word .LC81 - .word .LC82 - .word .LC75 - .word .LC83 +.L896: + .word .LC84 + .word .LC85 + .word .LC78 + .word .LC86 .fnend .size rknand_print_hex, .-rknand_print_hex .align 2 @@ -7642,15 +7675,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, .L913 + ldr r6, .L921 add r0, r6, r0, asl #3 ldr r3, [r6, #3780] ldr r4, [r0, #864] cmp r3, #3 - bls .L907 + bls .L915 ldr r3, [r4, #16] tst r3, #4 - beq .L907 + beq .L915 mov r0, r4 bl wait_for_nandc_xfer_completed ldr r5, [r4, #16] @@ -7658,49 +7691,49 @@ NandcXferComp: ands r5, r5, #2 str r3, [sp, #0] movne r5, #0 - bne .L911 - b .L912 -.L897: + bne .L919 + b .L920 +.L905: ldr r3, [r6, #3780] cmp r3, #5 - bls .L894 + bls .L902 ldr r3, [r4, #0] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L894 + beq .L902 ldr r3, [sp, #4] tst r3, #131072 - bne .L895 -.L894: + bne .L903 +.L902: add r5, r5, #1 bic r3, r5, #-16777216 cmp r3, #0 - bne .L911 + bne .L919 ldr r2, [r4, #28] mov r1, r5 ldr r3, [sp, #0] ubfx r2, r2, #16, #5 - ldr r0, .L913+4 + ldr r0, .L921+4 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L913+8 + ldr r0, .L921+8 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex -.L911: +.L919: ldr r2, [r4, #28] ldr r3, [sp, #0] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - blt .L897 -.L895: - ldr r4, .L913 + blt .L905 +.L903: + ldr r4, .L921 ldr r3, [r4, #3816] cmp r3, #0 - beq .L898 + beq .L906 ldr r1, [sp, #0] mov r2, #0 ldr r0, [r4, #3808] @@ -7713,40 +7746,40 @@ NandcXferComp: ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single - b .L898 -.L901: + b .L906 +.L909: ldr r3, [r4, #8] add r5, r5, #1 str r3, [sp, #0] bic r3, r5, #-16777216 cmp r3, #0 - bne .L912 + bne .L920 ldr r2, [sp, #0] mov r1, r5 ldr r3, [r4, #28] - ldr r0, .L913+12 + ldr r0, .L921+12 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L913+8 + ldr r0, .L921+8 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex -.L912: +.L920: ldr r3, [sp, #0] tst r3, #1048576 - beq .L901 - ldr r6, .L913 + beq .L909 + ldr r6, .L921 ldr r3, [r6, #3824] cmp r3, #0 - beq .L902 + beq .L910 mov r0, r4 bl NandcSendDumpDataStart -.L902: +.L910: ldr r3, [r6, #3816] - ldr r5, .L913 + ldr r5, .L921 cmp r3, #0 - beq .L903 + beq .L911 ldr r1, [sp, #0] mov r2, #1 ldr r0, [r5, #3808] @@ -7759,33 +7792,33 @@ NandcXferComp: ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single -.L903: - ldr r3, .L913 +.L911: + ldr r3, .L921 ldr r3, [r3, #3824] cmp r3, #0 - beq .L898 + beq .L906 mov r0, r4 bl NandcSendDumpDataDone -.L898: - ldr r3, .L913 +.L906: + ldr r3, .L921 mov r2, #0 str r2, [r3, #3816] - b .L890 -.L907: + b .L898 +.L915: ldr r3, [r4, #8] str r3, [sp, #0] ldr r3, [sp, #0] tst r3, #1048576 - beq .L907 -.L890: + beq .L915 +.L898: ldmfd sp!, {r2, r3, r4, r5, r6, pc} -.L914: +.L922: .align 2 -.L913: +.L921: .word .LANCHOR0 - .word .LC84 - .word .LC85 - .word .LC86 + .word .LC87 + .word .LC88 + .word .LC89 .fnend .size NandcXferComp, .-NandcXferComp .align 2 @@ -7799,7 +7832,7 @@ NandcXferData: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r4, r3 mov r9, r3 - ldr r3, .L953 + ldr r3, .L961 .pad #92 sub sp, sp, #92 tst r4, #63 @@ -7809,15 +7842,15 @@ NandcXferData: mov sl, r2 ldr r5, [sp, #128] ldr r6, [r3, #864] - bne .L916 + bne .L924 cmp r5, #0 - bne .L917 + bne .L925 add r0, sp, #24 mov r1, #255 mov r2, #64 add r5, sp, #24 bl ftl_memset -.L917: +.L925: mov r0, r7 mov r1, fp mov r2, sl @@ -7828,8 +7861,8 @@ NandcXferData: bl NandcXferComp cmp fp, #0 movne r4, #0 - bne .L918 - ldr r1, .L953 + bne .L926 + ldr r1, .L961 mov r0, sl, lsr #1 mov r3, fp mov r2, fp @@ -7838,8 +7871,8 @@ NandcXferData: cmp ip, #24 movhi ip, #128 movls ip, #64 - b .L920 -.L921: + b .L928 +.L929: ldr r1, [r4, #3796] mov r3, r3, lsr #2 add r2, r2, #1 @@ -7853,29 +7886,29 @@ NandcXferData: strb r3, [r5, #3] add r5, r5, #4 mov r3, r7 -.L920: +.L928: cmp r2, r0 add r7, r3, ip - ldr r1, .L953 - bcc .L921 + ldr r1, .L961 + bcc .L929 mov r3, #0 ldr r0, [r1, #3828] mov sl, sl, lsr #2 ldr r1, [r1, #3780] mov r4, r3 - b .L922 -.L928: + b .L930 +.L936: add r2, r3, #8 ldr r2, [r6, r2, asl #2] str r2, [sp, #20] ldr r2, [sp, #20] tst r2, #4 - bne .L943 + bne .L951 ldr r2, [sp, #20] ands r2, r2, #32768 - bne .L943 + bne .L951 cmp r1, #5 - bls .L924 + bls .L932 ldr r7, [sp, #20] ldr ip, [sp, #20] ldr r5, [sp, #20] @@ -7894,10 +7927,10 @@ NandcXferData: ubfxls ip, ip, #16, #5 ubfxhi r2, r2, #27, #1 ubfxls r2, r2, #29, #1 - b .L951 -.L924: + b .L959 +.L932: cmp r1, #3 - bls .L926 + bls .L934 ldr r7, [sp, #20] ldr ip, [sp, #20] ldr r5, [sp, #20] @@ -7916,31 +7949,31 @@ NandcXferData: ubfxls ip, ip, #16, #5 ubfxhi r2, r2, #28, #1 ubfxls r2, r2, #30, #1 -.L951: +.L959: orr r2, ip, r2, asl #5 -.L926: +.L934: cmp r4, r2 movcc r4, r2 - b .L923 -.L943: + b .L931 +.L951: mvn r4, #0 -.L923: +.L931: add r3, r3, #1 -.L922: +.L930: cmp r3, sl - bcs .L918 + bcs .L926 cmp r0, #0 - bne .L928 -.L918: + bne .L936 +.L926: mov r3, #0 str r3, [r6, #16] - b .L929 -.L916: + b .L937 +.L924: cmp r1, #1 mov r8, #0 - bne .L949 - b .L930 -.L933: + bne .L957 + b .L938 +.L941: cmp r5, #0 and r4, r8, #3 mov r0, r6 @@ -7964,12 +7997,12 @@ NandcXferData: mov r0, r7 bl NandcXferComp add r9, r9, #1024 -.L930: +.L938: cmp r8, sl - bcc .L933 + bcc .L941 mov r4, #0 - b .L929 -.L949: + b .L937 +.L957: mov r1, r8 mov r2, #2 mov r3, r8 @@ -7981,15 +8014,15 @@ NandcXferData: mov ip, r8 mov fp, r6 mov r6, r5 - b .L952 -.L938: + b .L960 +.L946: mov r0, r7 bl NandcXferComp ldr r3, [fp, #32] add ip, r5, #2 cmp ip, sl str r3, [sp, #20] - bcs .L935 + bcs .L943 mov r3, #0 mov r0, r7 str r3, [sp, #0] @@ -8000,11 +8033,11 @@ NandcXferData: str ip, [sp, #8] bl NandcXferStart ldr ip, [sp, #8] -.L935: +.L943: ldr r3, [sp, #20] tst r3, #4 mvnne r4, #0 - bne .L936 + bne .L944 ldr r2, [sp, #20] ldr r3, [sp, #20] ubfx r2, r2, #3, #5 @@ -8012,7 +8045,7 @@ NandcXferData: orr r3, r2, r3, asl #5 cmp r4, r3 movcc r4, r3 -.L936: +.L944: cmp r6, #0 and r2, r8, #3 mov r0, fp @@ -8027,34 +8060,34 @@ NandcXferData: str r5, [sp, #0] bl NandcCopy1KB ldr ip, [sp, #8] -.L952: +.L960: cmp ip, sl mov r5, ip - bcc .L938 + bcc .L946 mov r6, fp ldr fp, [sp, #12] -.L929: - ldr r3, .L953 +.L937: + ldr r3, .L961 rsbs fp, fp, #1 movcc fp, #0 ldr r3, [r3, #3780] cmp r3, #5 movls fp, #0 cmp fp, #0 - beq .L939 + beq .L947 ldr r3, [r6, #0] and r2, r3, #139264 cmp r2, #139264 orreq r3, r3, #131072 streq r3, [r6, #0] mvneq r4, #0 -.L939: +.L947: mov r0, r4 add sp, sp, #92 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L954: +.L962: .align 2 -.L953: +.L961: .word .LANCHOR0 .fnend .size NandcXferData, .-NandcXferData @@ -8068,23 +8101,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, .L958 + ldr r3, .L966 subs r4, r0, #0 mov r5, r1 mov r6, r2 - ldrb r7, [r3, #2837] @ zero_extendqisi2 - bne .L956 - ldr r3, .L958+4 + ldrb r7, [r3, #2901] @ zero_extendqisi2 + bne .L964 + ldr r3, .L966+4 ldrb r2, [r3, #853] @ zero_extendqisi2 ldr r1, [r3, #856] mul r2, r1, r2 cmp r5, r2 - bcs .L956 + bcs .L964 ldrb r3, [r3, #852] @ zero_extendqisi2 cmp r3, #0 subeq r7, r7, #2 movne r7, #4 -.L956: +.L964: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -8111,9 +8144,9 @@ FlashProgPage: bl NandcFlashDeCs and r0, r5, #1 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} -.L959: +.L967: .align 2 -.L958: +.L966: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -8128,29 +8161,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, .L967 + ldr r2, .L975 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 .L961 + beq .L969 ldr r1, [r2, #3784] - ldr r2, .L967+4 + ldr r2, .L975+4 cmp r1, r2 ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L961: +.L969: sub r2, r3, #5 uxtb r2, r2 cmp r3, #68 cmpne r2, #2 - bls .L964 + bls .L972 cmp r3, #35 cmpne r3, #19 - beq .L964 + beq .L972 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L965: +.L973: add r3, r5, r4, asl #1 sub r3, r3, #896 ldrh r3, [r3, #0] @@ -8167,20 +8200,20 @@ FlashPageProgMsbFFData: mov r3, #0 bl FlashProgPage uxth r4, r4 - b .L966 -.L964: - ldr r6, .L967 + b .L974 +.L972: + ldr r6, .L975 movw sl, #65535 - ldr r5, .L967+8 -.L966: + ldr r5, .L975+8 +.L974: ldr r3, [r6, #3624] ldrh r3, [r3, #10] cmp r3, r4 - bhi .L965 + bhi .L973 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L968: +.L976: .align 2 -.L967: +.L975: .word .LANCHOR0 .word 1446522928 .word .LANCHOR2 @@ -8196,19 +8229,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, .L972 + ldr r3, .L980 subs r4, r0, #0 mov r6, r1 mov r5, r2 - ldrb r7, [r3, #2837] @ zero_extendqisi2 - bne .L970 - ldr r3, .L972+4 + ldrb r7, [r3, #2901] @ zero_extendqisi2 + bne .L978 + ldr r3, .L980+4 ldrb r2, [r3, #853] @ zero_extendqisi2 ldr r3, [r3, #856] mul r3, r3, r2 cmp r1, r3 movcc r7, #4 -.L970: +.L978: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -8229,9 +8262,9 @@ FlashReadRawPage: bl NandcFlashDeCs mov r0, r5 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} -.L973: +.L981: .align 2 -.L972: +.L980: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -8246,9 +8279,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, .L988 + ldr r3, .L996 mov sl, r2 - ldr fp, .L988 + ldr fp, .L996 mov r6, r0 add r2, r3, r0 str r1, [sp, #4] @@ -8262,12 +8295,12 @@ HynixReadRetrial: ldreqb r4, [r2, #20] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, fp - b .L976 -.L981: + b .L984 +.L989: add r4, r4, #1 ldrb r1, [fp, #1] @ zero_extendqisi2 mov r0, r6 - ldr r2, .L988+4 + ldr r2, .L996+4 uxtb r4, r4 str ip, [sp, #0] cmp r4, r9 @@ -8281,25 +8314,25 @@ HynixReadRetrial: bl FlashReadRawPage ldr ip, [sp, #0] cmn r0, #1 - beq .L978 + beq .L986 ldrb r3, [ip, #3832] @ zero_extendqisi2 cmn r5, #1 moveq r5, r0 add r3, r3, r3, asl #1 cmp r0, r3, lsr #2 - bcc .L987 + bcc .L995 mov r7, #0 mov sl, r7 -.L978: +.L986: add r8, r8, #1 -.L976: +.L984: cmp r8, r9 - bcc .L981 - b .L980 -.L987: + bcc .L989 + b .L988 +.L995: mov r5, r0 -.L980: - ldr r3, .L988 +.L988: + ldr r3, .L996 add r6, r3, r6 ldr r2, [r3, #3624] ldrb r3, [r3, #3832] @ zero_extendqisi2 @@ -8317,9 +8350,9 @@ HynixReadRetrial: moveq r0, r5 movne r0, #256 ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L989: +.L997: .align 2 -.L988: +.L996: .word .LANCHOR0 .word .LANCHOR0+4 .fnend @@ -8334,7 +8367,7 @@ MicronReadRetrial: 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, .L1003 + ldr r4, .L1011 mov sl, r3 .pad #28 sub sp, sp, #28 @@ -8345,11 +8378,11 @@ MicronReadRetrial: str r2, [sp, #20] addeq r0, r0, r0, asl #1 ubfxeq r0, r0, #2, #8 - beq .L1002 + beq .L1010 mov r1, #3 bl __aeabi_idiv uxtb r0, r0 -.L1002: +.L1010: add r4, r4, r9, asl #3 str r0, [sp, #12] mov r0, r9 @@ -8361,8 +8394,8 @@ MicronReadRetrial: add r7, r7, #8 mvn r4, #0 add r5, r6, r7, asl #8 - b .L993 -.L997: + b .L1001 +.L1005: mov r3, #239 mov r0, #200 str r3, [r5, #8] @@ -8382,25 +8415,25 @@ MicronReadRetrial: bl FlashReadRawPage ldr ip, [sp, #8] cmn r0, #1 - beq .L994 + beq .L1002 cmn r4, #1 ldr r2, [sp, #12] moveq r4, r0 cmp r0, r2 - bcc .L1001 + bcc .L1009 mov sl, #0 str sl, [sp, #20] -.L994: +.L1002: mov r8, ip -.L993: - ldr r2, .L1003+4 +.L1001: + ldr r2, .L1011+4 ldrb r3, [r2, #136] @ zero_extendqisi2 cmp r8, r3 - bcc .L997 - b .L996 -.L1001: + bcc .L1005 + b .L1004 +.L1009: mov r4, r0 -.L996: +.L1004: mov r3, #239 mov r0, #200 str r3, [r5, #8] @@ -8422,23 +8455,23 @@ MicronReadRetrial: movne r4, #256 cmn r4, #1 cmpne r4, #256 - bne .L999 - ldr r0, .L1003+8 + bne .L1007 + ldr r0, .L1011+8 mov r1, r8 ldr r2, [sp, #16] mov r3, r8 str r4, [sp, #0] bl printk -.L999: +.L1007: mov r0, r4 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1004: +.L1012: .align 2 -.L1003: +.L1011: .word .LANCHOR0 .word .LANCHOR2 - .word .LC87 + .word .LC90 .fnend .size MicronReadRetrial, .-MicronReadRetrial .align 2 @@ -8455,17 +8488,17 @@ SamsungReadRetrial: mov r6, r3 mov r9, r1 bl NandcWaitFlashReady - ldr ip, .L1014 + ldr ip, .L1022 mov r5, #1 mvn r4, #0 - ldr fp, .L1014+4 + ldr fp, .L1022+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 .L1006 -.L1010: + b .L1014 +.L1018: mov r0, sl uxtb r1, r5 str ip, [sp, #4] @@ -8477,30 +8510,30 @@ SamsungReadRetrial: bl FlashReadRawPage ldr ip, [sp, #4] cmn r0, #1 - beq .L1007 + beq .L1015 ldrb r3, [ip, #3832] @ zero_extendqisi2 cmn r4, #1 moveq r4, r0 add r3, r3, r3, asl #1 cmp r0, r3, lsr #2 - bcc .L1013 + bcc .L1021 mov r6, #0 mov r7, r6 -.L1007: +.L1015: add r5, r5, #1 -.L1006: +.L1014: ldrb r3, [fp, #136] @ zero_extendqisi2 add r3, r3, #1 cmp r5, r3 - bcc .L1010 - b .L1009 -.L1013: + bcc .L1018 + b .L1017 +.L1021: mov r4, r0 -.L1009: +.L1017: mov r0, sl mov r1, #0 bl SamsungSetRRPara - ldr r3, .L1014 + ldr r3, .L1022 adds r0, r4, #1 ldrb r3, [r3, #3832] @ zero_extendqisi2 movne r0, #1 @@ -8512,9 +8545,9 @@ SamsungReadRetrial: moveq r0, r4 movne r0, #256 ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1015: +.L1023: .align 2 -.L1014: +.L1022: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -8533,7 +8566,7 @@ ToshibaReadRetrial: mov r9, r2 mov r7, r3 bl NandcWaitFlashReady - ldr r3, .L1037 + ldr r3, .L1045 add r2, r3, r8, asl #3 ldr r1, [r2, #864] ldrb r4, [r2, #868] @ zero_extendqisi2 @@ -8544,53 +8577,53 @@ ToshibaReadRetrial: uxtb r2, r2 cmp r2, #1 movls sl, #0 - bls .L1017 + bls .L1025 ldrb sl, [r3, #3773] @ zero_extendqisi2 cmp sl, #0 - beq .L1018 + beq .L1026 mov r0, #0 mov sl, #1 bl NandcSetDdrMode -.L1018: +.L1026: mov r3, #92 str r3, [r4, #8] mov r3, #197 str r3, [r4, #8] -.L1017: +.L1025: mov r6, #1 mvn r5, #0 - ldr fp, .L1037 - b .L1019 -.L1028: + ldr fp, .L1045 + b .L1027 +.L1036: ldrb r3, [fp, #3761] @ zero_extendqisi2 mov r0, r4 uxtb r1, r6 sub r3, r3, #67 uxtb r3, r3 cmp r3, #1 - bhi .L1020 + bhi .L1028 bl SandiskSetRRPara - b .L1021 -.L1020: + b .L1029 +.L1028: bl ToshibaSetRRPara -.L1021: - ldr r2, .L1037 +.L1029: + ldr r2, .L1045 ldrb r3, [r2, #3761] @ zero_extendqisi2 cmp r3, #34 - bne .L1022 - ldr r2, .L1037+4 + bne .L1030 + ldr r2, .L1045+4 ldrb r3, [r2, #136] @ zero_extendqisi2 sub r3, r3, #3 cmp r6, r3 moveq r3, #179 streq r3, [r4, #8] -.L1022: +.L1030: cmp sl, #0 mov r3, #38 str r3, [r4, #8] mov r3, #93 str r3, [r4, #8] - beq .L1023 + beq .L1031 mov r0, #4 bl NandcSetDdrMode ldr r1, [sp, #4] @@ -8603,50 +8636,50 @@ ToshibaReadRetrial: str r3, [sp, #0] bl NandcSetDdrMode ldr r3, [sp, #0] - b .L1024 -.L1023: + b .L1032 +.L1031: mov r3, r7 mov r0, r8 ldr r1, [sp, #4] mov r2, r9 bl FlashReadRawPage mov r3, r0 -.L1024: +.L1032: cmn r3, #1 - beq .L1025 + beq .L1033 ldrb r2, [fp, #3832] @ zero_extendqisi2 cmn r5, #1 moveq r5, r3 add r2, r2, r2, asl #1 cmp r3, r2, lsr #2 - bcc .L1036 + bcc .L1044 mov r7, #0 mov r9, r7 -.L1025: +.L1033: add r6, r6, #1 -.L1019: - ldr r2, .L1037+4 +.L1027: + ldr r2, .L1045+4 ldrb r3, [r2, #136] @ zero_extendqisi2 add r3, r3, #1 cmp r6, r3 - bcc .L1028 - b .L1027 -.L1036: + bcc .L1036 + b .L1035 +.L1044: mov r5, r3 -.L1027: - ldr r6, .L1037 +.L1035: + ldr r6, .L1045 mov r0, r4 mov r1, #0 ldrb r3, [r6, #3761] @ zero_extendqisi2 sub r3, r3, #67 uxtb r3, r3 cmp r3, #1 - bhi .L1029 + bhi .L1037 bl SandiskSetRRPara - b .L1030 -.L1029: + b .L1038 +.L1037: bl ToshibaSetRRPara -.L1030: +.L1038: mov r3, #255 str r3, [r4, #8] ldrb r3, [r6, #3832] @ zero_extendqisi2 @@ -8661,15 +8694,15 @@ ToshibaReadRetrial: movne r5, #256 bl NandcWaitFlashReady cmp sl, #0 - beq .L1032 + beq .L1040 mov r0, #4 bl NandcSetDdrMode -.L1032: +.L1040: mov r0, r5 ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1038: +.L1046: .align 2 -.L1037: +.L1045: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -8684,9 +8717,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, .L1046 - ldr r7, .L1046+4 - ldr r8, .L1046+8 + ldr r5, .L1054 + ldr r7, .L1054+4 + ldr r8, .L1054+8 ldr r3, [r5, #144] ldrb r0, [r5, #148] @ zero_extendqisi2 str r3, [r5, #140] @@ -8696,7 +8729,7 @@ FlashSavePhyInfo: ldr r0, [r5, #144] bl ftl_memset ldr r3, [r5, #140] - ldr r1, .L1046+12 + ldr r1, .L1054+12 mov r2, #32 str r8, [r3, #0] ldr r4, [r5, #140] @@ -8709,15 +8742,15 @@ FlashSavePhyInfo: str r3, [r4, #1076] bl memcpy add r0, r4, #80 - ldr r1, .L1046+16 + ldr r1, .L1054+16 mov r2, #8 bl memcpy add r0, r4, #96 - ldr r1, .L1046+20 + ldr r1, .L1054+20 mov r2, #32 bl memcpy ldr r0, [r5, #140] - ldr r1, .L1046+24 + ldr r1, .L1054+24 mov r2, #32 add r0, r0, #160 bl memcpy @@ -8741,7 +8774,7 @@ FlashSavePhyInfo: mov r0, #0 bl flash_enter_slc_mode mov r4, r6 -.L1042: +.L1050: ldr r1, [r7, #856] mov r0, #0 mov r2, r0 @@ -8767,17 +8800,17 @@ FlashSavePhyInfo: mul r1, r1, r4 bl FlashReadRawPage cmn r0, #1 - beq .L1040 + beq .L1048 ldr sl, [r5, #140] ldr r3, [sl, #0] cmp r3, r8 - bne .L1040 + bne .L1048 add r0, sl, #12 movw r1, #2036 bl JSHash ldr r3, [sl, #8] cmp r3, r0 - bne .L1040 + bne .L1048 add r3, r4, #1 str r3, [r5, #152] ldr r3, [r7, #856] @@ -8785,28 +8818,28 @@ FlashSavePhyInfo: cmp r6, #1 mul r3, r3, r4 str r3, [r5, #156] - bhi .L1041 -.L1040: + bhi .L1049 +.L1048: add r4, r4, #1 cmp r4, #4 - bne .L1042 -.L1041: + bne .L1050 +.L1049: 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} -.L1047: +.L1055: .align 2 -.L1046: +.L1054: .word .LANCHOR2 .word .LANCHOR0 .word 1312902724 .word .LANCHOR0+2980 .word .LANCHOR0+3764 .word .LANCHOR0+3588 - .word .LANCHOR1+2828 + .word .LANCHOR1+2892 .fnend .size FlashSavePhyInfo, .-FlashSavePhyInfo .align 2 @@ -8822,34 +8855,34 @@ FlashReadIdbDataRaw: sub sp, sp, #20 mov r2, #4 mov sl, r0 - ldr r1, .L1059 + ldr r1, .L1067 add r0, sp, #12 bl memcpy - ldr r3, .L1059+4 + ldr r3, .L1067+4 ldrb r2, [r3, #3832] @ zero_extendqisi2 str r2, [sp, #4] ldr r2, [r3, #3784] - ldr r3, .L1059+8 + ldr r3, .L1067+8 cmp r2, r3 - bne .L1049 + bne .L1057 mov r0, #0 bl flash_enter_slc_mode -.L1049: - ldr r7, .L1059+4 +.L1057: + ldr r7, .L1067+4 mov r0, sl mov r1, #0 mov r2, #2048 bl ftl_memset mvn r8, #0 mov r4, #2 - ldr r9, .L1059+12 + ldr r9, .L1067+12 mov fp, r7 - b .L1050 -.L1057: + b .L1058 +.L1065: mov r6, #0 -.L1052: +.L1060: add r3, sp, #12 - ldr r5, .L1059+12 + ldr r5, .L1067+12 ldrb r0, [r3, r6] @ zero_extendqisi2 bl FlashBchSel ldr r1, [r7, #856] @@ -8859,19 +8892,19 @@ FlashReadIdbDataRaw: mul r1, r1, r4 bl FlashReadRawPage cmn r0, #1 - bne .L1051 + bne .L1059 add r6, r6, #1 cmp r6, #4 - bne .L1052 - b .L1053 -.L1051: + bne .L1060 + b .L1061 +.L1059: ldr r3, [r5, #144] ldr r2, [r3, #0] - ldr r3, .L1059+16 + ldr r3, .L1067+16 cmp r2, r3 - bne .L1053 + bne .L1061 add r3, sp, #16 - ldr r0, .L1059+20 + ldr r0, .L1067+20 add r6, r3, r6 ldrb r1, [r6, #-4] @ zero_extendqisi2 bl printk @@ -8884,42 +8917,42 @@ FlashReadIdbDataRaw: strb r3, [fp, #853] ldr r3, [r5, #152] cmp r3, r4 - bls .L1056 + bls .L1064 str r4, [r5, #152] bl FlashSavePhyInfo mov r8, #0 -.L1053: +.L1061: add r4, r4, #1 -.L1050: +.L1058: ldrb r3, [r7, #853] @ zero_extendqisi2 cmp r4, r3 - bcc .L1057 - b .L1054 -.L1056: + bcc .L1065 + b .L1062 +.L1064: mov r8, #0 -.L1054: +.L1062: ldr r0, [sp, #4] bl FlashBchSel - ldr r3, .L1059+4 + ldr r3, .L1067+4 ldr r2, [r3, #3784] - ldr r3, .L1059+8 + ldr r3, .L1067+8 cmp r2, r3 - bne .L1055 + bne .L1063 mov r0, #0 bl flash_exit_slc_mode -.L1055: +.L1063: mov r0, r8 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1060: +.L1068: .align 2 -.L1059: +.L1067: .word .LANCHOR3+11 .word .LANCHOR0 .word 1446522928 .word .LANCHOR2 .word -52655045 - .word .LC88 + .word .LC91 .fnend .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw .align 2 @@ -8932,12 +8965,12 @@ 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, .L1072 + ldr r1, .L1080 add r0, sp, #4 bl memcpy - ldr r5, .L1072+4 - ldr r2, .L1072+8 - movw r3, #2838 + ldr r5, .L1080+4 + ldr r2, .L1080+8 + movw r3, #2902 mov r4, #0 mov r8, #4 mov r0, r4 @@ -8945,11 +8978,11 @@ FlashLoadPhyInfo: ldrh r9, [r2, r3] mvn r6, #0 ldr r3, [r5, #144] - ldr fp, .L1072+12 + ldr fp, .L1080+12 str r3, [r5, #140] bl flash_enter_slc_mode - b .L1062 -.L1064: + b .L1070 +.L1072: add r3, sp, #4 ldrb r0, [r3, r7] @ zero_extendqisi2 bl FlashBchSel @@ -8959,46 +8992,46 @@ FlashLoadPhyInfo: mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L1063 + bne .L1071 mov r0, #0 mov r1, sl ldr r2, [r5, #144] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L1063 + bne .L1071 add r7, r7, #1 cmp r7, #4 - beq .L1065 - b .L1064 -.L1063: + beq .L1073 + b .L1072 +.L1071: ldr r7, [r5, #140] ldr r3, [r7, #0] cmp r3, fp - bne .L1065 + bne .L1073 cmp r6, #0 - bne .L1066 - ldr r2, .L1072+8 - movw r3, #2838 + bne .L1074 + ldr r2, .L1080+8 + movw r3, #2902 mov r0, r4 ldrh r1, [r2, r3] bl __aeabi_uidiv - ldr r3, .L1072+4 + ldr r3, .L1080+4 add r0, r0, #1 str r0, [r3, #152] mov r0, r6 - b .L1071 -.L1066: + b .L1079 +.L1074: add r0, r7, #12 movw r1, #2036 bl JSHash ldr r3, [r7, #8] cmp r3, r0 - bne .L1065 - ldr r6, .L1072+16 + bne .L1073 + ldr r6, .L1080+16 add r1, r7, #160 mov r2, #32 - ldr r0, .L1072+20 + ldr r0, .L1080+20 bl memcpy add r0, r6, #896 add r1, r7, #192 @@ -9009,11 +9042,11 @@ FlashLoadPhyInfo: mov r2, #852 bl memcpy ldr r3, [r7, #1076] - ldr r2, .L1072+8 + ldr r2, .L1080+8 mov r0, r4 str r4, [r5, #156] strb r3, [r6, #3773] - movw r3, #2838 + movw r3, #2902 ldrh r1, [r2, r3] mov r6, #0 bl __aeabi_uidiv @@ -9024,29 +9057,29 @@ FlashLoadPhyInfo: streq r3, [r5, #152] ldrh r3, [r7, #14] strb r3, [r5, #160] -.L1065: +.L1073: subs r8, r8, #1 add r4, r4, r9 - beq .L1069 -.L1062: + beq .L1077 +.L1070: add sl, r4, #1 mov r7, #0 - b .L1064 -.L1069: + b .L1072 +.L1077: mov r0, r8 -.L1071: +.L1079: bl flash_exit_slc_mode mov r0, r6 ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1073: +.L1081: .align 2 -.L1072: +.L1080: .word .LANCHOR3+11 .word .LANCHOR2 .word .LANCHOR1 .word 1312902724 .word .LANCHOR0 - .word .LANCHOR1+2828 + .word .LANCHOR1+2892 .fnend .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 @@ -9059,7 +9092,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, .L1095 + ldr r4, .L1103 .pad #20 sub sp, sp, #20 mov fp, r0 @@ -9075,7 +9108,7 @@ FlashDdrTunningRead: ldr r3, [sp, #56] cmp r3, #0 moveq r8, #1024 - beq .L1076 + beq .L1084 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 @@ -9093,21 +9126,21 @@ FlashDdrTunningRead: ldrb r0, [r4, #3772] @ zero_extendqisi2 bl NandcSetMode cmn r8, #1 - beq .L1077 - ldr r0, .L1095+4 + beq .L1085 + ldr r0, .L1103+4 mov r2, r8 ldr r1, [sp, #0] bl printk cmp r8, #9 - bhi .L1078 + bhi .L1086 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] -.L1078: - ldr r3, .L1095+8 +.L1086: + ldr r3, .L1103+8 ldr r2, [r3, #164] add r2, r2, #1 str r2, [r3, #164] @@ -9115,15 +9148,15 @@ FlashDdrTunningRead: movcs sl, #0 strcs sl, [r3, #164] movcs r9, sl - bcc .L1077 -.L1076: + bcc .L1085 +.L1084: mov r4, #0 str fp, [sp, #4] mov r5, r4 mvn r6, #0 mov fp, r4 str r4, [sp, #8] -.L1083: +.L1091: uxtb r0, r7 bl NandcSetDdrPara mov r3, sl @@ -9133,84 +9166,84 @@ FlashDdrTunningRead: bl FlashReadRawPage add r3, r8, #1 cmp r0, r3 - bhi .L1079 + bhi .L1087 cmp r0, #2 - bhi .L1089 + bhi .L1097 add r5, r5, #1 cmp r5, #9 - bls .L1089 + bls .L1097 mov ip, fp rsb r4, r5, r7 ldr fp, [sp, #4] mov r8, r0 mov r6, #0 - b .L1081 -.L1079: + b .L1089 +.L1087: cmp fp, r5 - bcs .L1090 + bcs .L1098 cmp r5, #7 rsb r3, r5, r4 str r3, [sp, #8] - bhi .L1094 + bhi .L1102 mov fp, r5 - b .L1090 -.L1089: + b .L1098 +.L1097: mov r6, #0 mov r4, r7 mov r8, r0 mov sl, r6 mov r9, r6 - b .L1080 -.L1090: + b .L1088 +.L1098: mov r5, #0 -.L1080: +.L1088: add r7, r7, #2 cmp r7, #69 - bls .L1083 + bls .L1091 mov ip, fp ldr fp, [sp, #4] -.L1081: +.L1089: cmp ip, r5 - bcc .L1084 - b .L1082 -.L1094: + bcc .L1092 + b .L1090 +.L1102: ldr fp, [sp, #4] -.L1082: +.L1090: ldr r4, [sp, #8] -.L1084: +.L1092: cmp r4, #0 - beq .L1085 - ldr r0, .L1095+12 + beq .L1093 + ldr r0, .L1103+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L1085: +.L1093: cmn r6, #1 - bne .L1077 - ldr r0, .L1095+16 + bne .L1085 + ldr r0, .L1103+16 mov r1, fp ldr r2, [sp, #0] bl printk ldr r3, [sp, #56] cmp r3, #0 moveq r8, r6 - beq .L1077 + beq .L1085 ldr r3, [sp, #12] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L1077: +.L1085: mov r0, r8 add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1096: +.L1104: .align 2 -.L1095: +.L1103: .word .LANCHOR0 - .word .LC89 + .word .LC92 .word .LANCHOR2 - .word .LC90 - .word .LC91 + .word .LC93 + .word .LC94 .fnend .size FlashDdrTunningRead, .-FlashDdrTunningRead .align 2 @@ -9223,7 +9256,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, .L1101 + ldr r5, .L1109 mov r4, #0 mov r6, r1 ldrb r0, [r5, #3772] @ zero_extendqisi2 @@ -9243,30 +9276,30 @@ FlashDdrParaScan: mov r0, r7 bl FlashReadRawPage cmn r0, #1 - beq .L1098 + beq .L1106 cmn r8, #1 - bne .L1099 -.L1098: + bne .L1107 +.L1106: ldrb r3, [r5, #3772] @ zero_extendqisi2 tst r3, #1 - beq .L1099 + beq .L1107 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - ldr r3, .L1101 + ldr r3, .L1109 mov r2, #0 strb r2, [r3, #3773] - b .L1100 -.L1099: + b .L1108 +.L1107: mov r3, #1 strb r3, [r5, #3773] -.L1100: +.L1108: mov r0, #0 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} -.L1102: +.L1110: .align 2 -.L1101: +.L1109: .word .LANCHOR0 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -9286,11 +9319,11 @@ FlashReadPage: bl FlashReadRawPage cmn r0, #1 mov r4, r0 - bne .L1104 - ldr r7, .L1109 + bne .L1112 + ldr r7, .L1117 ldrb r9, [r7, #860] @ zero_extendqisi2 cmp r9, #0 - beq .L1105 + beq .L1113 mov r3, #0 mov r0, r5 strb r3, [r7, #860] @@ -9301,12 +9334,12 @@ FlashReadPage: strb r9, [r7, #860] cmn r0, #1 movne r4, r0 - bne .L1104 -.L1105: - ldr r7, .L1109 + bne .L1112 +.L1113: + ldr r7, .L1117 ldrb r3, [r7, #3773] @ zero_extendqisi2 cmp r3, #0 - beq .L1104 + beq .L1112 ldr r3, [r7, #3012] mov r0, r5 mov r1, r6 @@ -9318,22 +9351,22 @@ FlashReadPage: bl FlashDdrTunningRead cmn r0, #1 mov r4, r0 - beq .L1106 + beq .L1114 ldrb r3, [r7, #3832] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1104 -.L1106: + bls .L1112 +.L1114: ubfx r0, r9, #8, #8 bl NandcSetDdrPara -.L1104: - ldr r7, .L1109+4 +.L1112: + ldr r7, .L1117+4 ldr ip, [r7, #168] adds r3, ip, #0 movne r3, #1 cmn r4, #1 movne r3, #0 cmp r3, #0 - beq .L1107 + beq .L1115 mov r1, r6 mov r2, r8 mov r3, sl @@ -9342,15 +9375,15 @@ FlashReadPage: mov r2, r5 mov r3, r6 mov r4, r0 - ldr r0, .L1109+8 + ldr r0, .L1117+8 mov r1, r4 bl printk cmn r4, #1 - bne .L1107 - ldr r3, .L1109 + bne .L1115 + ldr r3, .L1117 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1107 + beq .L1115 mov r0, r5 bl flash_enter_slc_mode ldr ip, [r7, #168] @@ -9362,15 +9395,15 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L1107: +.L1115: mov r0, r4 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc} -.L1110: +.L1118: .align 2 -.L1109: +.L1117: .word .LANCHOR0 .word .LANCHOR2 - .word .LC92 + .word .LC95 .fnend .size FlashReadPage, .-FlashReadPage .align 2 @@ -9380,19 +9413,19 @@ FlashReadSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1124 + ldr r3, .L1132 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r8, r1 .pad #28 sub sp, sp, #28 mov fp, r2 - ldrb sl, [r3, #2837] @ zero_extendqisi2 + ldrb sl, [r3, #2901] @ zero_extendqisi2 mov r4, r0 mov r7, #0 - ldr r6, .L1124+4 - b .L1112 -.L1121: + ldr r6, .L1132+4 + b .L1120 +.L1129: rsb r3, r7, r8 add r2, sp, #20 mov r0, r4 @@ -9406,7 +9439,7 @@ FlashReadSlc2KPages: cmp r3, r2 mvncs r3, #0 strcs r3, [r4, #0] - bcs .L1114 + bcs .L1122 add r3, r6, r3 ldrb r5, [r3, #3764] @ zero_extendqisi2 mov r0, r5 @@ -9465,53 +9498,53 @@ FlashReadSlc2KPages: strne r3, [r4, #0] ldr r3, [r4, #12] cmp r3, #0 - beq .L1119 + beq .L1127 ldr r2, [r3, #8] cmn r2, #1 - bne .L1119 + bne .L1127 ldr r3, [r3, #0] cmn r3, #1 strne r2, [r4, #0] -.L1119: +.L1127: ldr r3, [r4, #0] cmn r3, #1 - bne .L1114 + bne .L1122 ldr r1, [r4, #4] - ldr r0, .L1124+8 + ldr r0, .L1132+8 ldrb r2, [r6, #3832] @ zero_extendqisi2 bl printk ldr r1, [r4, #8] cmp r1, #0 - beq .L1120 - ldr r0, .L1124+12 + beq .L1128 + ldr r0, .L1132+12 mov r2, #4 mov r3, #8 bl rknand_print_hex -.L1120: +.L1128: ldr r1, [r4, #12] cmp r1, #0 - beq .L1114 + beq .L1122 mov r2, #4 - ldr r0, .L1124+16 + ldr r0, .L1132+16 mov r3, r2 bl rknand_print_hex -.L1114: +.L1122: add r7, r7, #1 add r4, r4, #36 -.L1112: +.L1120: cmp r7, r8 - bne .L1121 + bne .L1129 mov r0, #0 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1125: +.L1133: .align 2 -.L1124: +.L1132: .word .LANCHOR1 .word .LANCHOR0 - .word .LC93 - .word .LC94 - .word .LC95 + .word .LC96 + .word .LC97 + .word .LC98 .fnend .size FlashReadSlc2KPages, .-FlashReadSlc2KPages .align 2 @@ -9521,32 +9554,32 @@ FlashReadPages: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1168 + ldr r3, .L1176 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #52 sub sp, sp, #52 - ldrb r3, [r3, #2837] @ zero_extendqisi2 + ldrb r3, [r3, #2901] @ zero_extendqisi2 mov r9, r0 str r1, [sp, #28] str r2, [sp, #32] str r3, [sp, #24] - ldr r3, .L1168+4 + ldr r3, .L1176+4 ldrb r8, [r3, #852] @ zero_extendqisi2 ldrb ip, [r3, #860] @ zero_extendqisi2 cmp r8, #0 str ip, [sp, #36] moveq sl, r8 - beq .L1127 + beq .L1135 bl FlashReadSlc2KPages - b .L1128 -.L1155: + b .L1136 +.L1163: mov r3, #36 ldr ip, [sp, #28] mul r3, r3, sl add r2, sp, #44 ldr r1, [sp, #32] - ldr fp, .L1168+4 + ldr fp, .L1176+4 add r6, r9, r3 str r3, [sp, #16] rsb r3, sl, ip @@ -9563,10 +9596,10 @@ FlashReadPages: mvncs r3, #0 mov r7, r0 strcs r3, [r9, ip] - bcs .L1130 + bcs .L1138 add r3, fp, r3 ldrb r4, [r3, #3764] @ zero_extendqisi2 - ldr r3, .L1168+8 + ldr r3, .L1176+8 mov r0, r4 ldrb r3, [r3, #172] @ zero_extendqisi2 cmp r3, #0 @@ -9577,21 +9610,21 @@ FlashReadPages: sub r3, r2, #1 uxtb r3, r3 cmp r3, #6 - bhi .L1132 + bhi .L1140 add r1, fp, r4 cmp r2, #7 add fp, fp, r4 - ldr r2, .L1168+4 + ldr r2, .L1176+4 ldrb r3, [r1, #12] @ zero_extendqisi2 ldreqb r3, [r1, #20] @ zero_extendqisi2 ldrb r1, [fp, #3756] @ zero_extendqisi2 cmp r1, r3 - beq .L1132 + beq .L1140 ldrb r1, [r2, #1] @ zero_extendqisi2 mov r0, r4 add r2, r2, #4 bl HynixSetRRPara -.L1132: +.L1140: mov r0, r4 mov r5, r5, lsr #31 bl NandcFlashCs @@ -9601,44 +9634,44 @@ FlashReadPages: orreq r5, r5, #1 str r5, [sp, #20] cmp r5, #0 - beq .L1134 - ldr r3, .L1168+4 + beq .L1142 + ldr r3, .L1176+4 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1134 + beq .L1142 bl flash_enter_slc_mode - b .L1135 -.L1134: + b .L1143 +.L1142: bl flash_exit_slc_mode -.L1135: - ldr fp, .L1168+4 -.L1167: +.L1143: + ldr fp, .L1176+4 +.L1175: ldr r1, [sp, #44] cmn r1, #1 cmpeq r4, #255 moveq r3, #0 movne r3, #1 moveq r7, r3 - beq .L1137 + beq .L1145 cmp r7, #0 - beq .L1138 + beq .L1146 ldr r2, [fp, #856] mov r0, r4 add r2, r1, r2 bl FlashReadDpCmd - b .L1139 -.L1138: + b .L1147 +.L1146: mov r0, r4 bl FlashReadCmd -.L1139: +.L1147: mov r0, r4 bl NandcWaitFlashReady cmp r7, #0 - beq .L1137 + beq .L1145 mov r0, r4 ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1137: +.L1145: ldr r3, [r6, #12] mov r0, r4 ldr r2, [sp, #24] @@ -9655,12 +9688,12 @@ FlashReadPages: movne r2, #0 movne r7, #0 strneb r2, [fp, #860] - bne .L1167 -.L1140: + bne .L1175 +.L1148: cmp r7, #0 mov r5, r0 - beq .L1141 - ldr r3, .L1168+4 + beq .L1149 + ldr r3, .L1176+4 mov r0, r4 ldr r1, [r3, #856] ldr r3, [sp, #44] @@ -9681,17 +9714,17 @@ FlashReadPages: cmn r0, #1 mov r8, r0 moveq r7, #0 -.L1141: +.L1149: mov r0, r4 - ldr fp, .L1168+4 + ldr fp, .L1176+4 bl NandcFlashDeCs ldr ip, [sp, #36] cmn r5, #1 strb ip, [fp, #860] - bne .L1145 + bne .L1153 ldrb r3, [fp, #3773] @ zero_extendqisi2 cmp r3, #0 - beq .L1143 + beq .L1151 ldr r3, [fp, #3012] mov r0, r4 ldr r1, [sp, #44] @@ -9703,68 +9736,68 @@ FlashReadPages: bl FlashDdrTunningRead cmn r0, #1 mov r5, r0 - beq .L1144 + beq .L1152 ldrb r3, [fp, #3832] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1161 -.L1144: + bls .L1169 +.L1152: ubfx r0, r7, #8, #8 bl NandcSetDdrPara cmn r5, #1 - bne .L1161 -.L1143: - ldr r3, .L1168+8 + bne .L1169 +.L1151: + ldr r3, .L1176+8 mov r0, r4 ldr r1, [sp, #44] ldr r2, [r6, #8] ldr r7, [r3, #168] ldr r3, [r6, #12] cmp r7, #0 - beq .L1146 + beq .L1154 blx r7 cmn r0, #1 mov r5, r0 - bne .L1163 - ldr r2, .L1168+4 + bne .L1171 + ldr r2, .L1176+4 ldr r3, [r2, #3624] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #6 - bhi .L1148 + bhi .L1156 ldrb r1, [r2, #1] @ zero_extendqisi2 mov r0, r4 add r2, r2, #4 mov r3, #0 bl HynixSetRRPara -.L1148: +.L1156: ldr r1, [sp, #44] mov r0, r4 ldr r2, [r6, #8] ldr r3, [r6, #12] bl FlashReadRawPage - ldr r7, .L1168+4 + ldr r7, .L1176+4 ldr r1, [r6, #4] ldrb r2, [r7, #3832] @ zero_extendqisi2 mov r5, r0 - ldr r0, .L1168+12 + ldr r0, .L1176+12 mov r3, r5 bl printk cmn r5, #1 - bne .L1163 + bne .L1171 ldrb r7, [r7, #928] @ zero_extendqisi2 cmp r7, #0 - beq .L1147 + beq .L1155 ldr ip, [sp, #20] mov r0, r4 cmp ip, #0 - beq .L1149 + beq .L1157 bl flash_enter_slc_mode - b .L1150 -.L1149: + b .L1158 +.L1157: bl flash_exit_slc_mode -.L1150: - ldr r3, .L1168+8 +.L1158: + ldr r3, .L1176+8 mov r0, r4 ldr r1, [sp, #44] ldr r2, [r6, #8] @@ -9772,27 +9805,27 @@ FlashReadPages: ldr r3, [r6, #12] blx ip mov r5, r0 - b .L1163 -.L1146: + b .L1171 +.L1154: bl FlashReadRawPage mov r5, r0 - b .L1147 -.L1161: + b .L1155 +.L1169: mov r7, #0 -.L1145: - ldr r3, .L1168+4 +.L1153: + ldr r3, .L1176+4 ldrb r3, [r3, #3832] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r5, r3, lsr #2 - bls .L1147 - ldr r3, .L1168+8 + bls .L1155 + ldr r3, .L1176+8 ldr r3, [r3, #168] cmp r3, #0 moveq r5, #256 - b .L1147 -.L1163: + b .L1155 +.L1171: mov r7, #0 -.L1147: +.L1155: ldr ip, [sp, #16] cmp r5, #256 cmnne r5, #1 @@ -9802,32 +9835,32 @@ FlashReadPages: ldr ip, [sp, #16] ldr r3, [r9, ip] cmn r3, #1 - bne .L1152 - ldr r2, .L1168+4 + bne .L1160 + ldr r2, .L1176+4 ldr r1, [r6, #4] - ldr r0, .L1168+16 + ldr r0, .L1176+16 ldrb r2, [r2, #3832] @ zero_extendqisi2 bl printk ldr r1, [r6, #12] cmp r1, #0 - beq .L1152 + beq .L1160 mov r2, #4 - ldr r0, .L1168+20 + ldr r0, .L1176+20 mov r3, r2 bl rknand_print_hex -.L1152: +.L1160: cmp r7, #0 - beq .L1153 - ldr r3, .L1168+4 + beq .L1161 + ldr r3, .L1176+4 ldrb r3, [r3, #3832] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r8, r3, lsr #2 - bls .L1154 - ldr r3, .L1168+8 + bls .L1162 + ldr r3, .L1176+8 ldr r3, [r3, #168] cmp r3, #0 moveq r8, #256 -.L1154: +.L1162: add r3, sl, #1 mov r2, #36 cmp r8, #256 @@ -9836,36 +9869,36 @@ FlashReadPages: movne r2, #0 str r8, [r9, r3] strne r2, [r9, r3] -.L1153: +.L1161: ldr ip, [sp, #20] add sl, sl, r7 cmp ip, #0 - beq .L1130 - ldr r3, .L1168+4 + beq .L1138 + ldr r3, .L1176+4 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1130 + beq .L1138 mov r0, r4 bl flash_exit_slc_mode -.L1130: +.L1138: add sl, sl, #1 -.L1127: +.L1135: ldr ip, [sp, #28] cmp sl, ip - bcc .L1155 + bcc .L1163 mov r0, #0 -.L1128: +.L1136: add sp, sp, #52 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1169: +.L1177: .align 2 -.L1168: +.L1176: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 + .word .LC99 .word .LC96 - .word .LC93 - .word .LC95 + .word .LC98 .fnend .size FlashReadPages, .-FlashReadPages .align 2 @@ -9875,8 +9908,8 @@ FtlGcScanTempBlk: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1195 - movw r3, #2936 + ldr r2, .L1203 + movw r3, #3000 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #28 @@ -9886,51 +9919,51 @@ FtlGcScanTempBlk: mov r5, r0 str r1, [sp, #20] cmp r4, r3 - beq .L1191 + beq .L1199 cmp r4, #0 - bne .L1171 - b .L1172 -.L1191: + bne .L1179 + b .L1180 +.L1199: mov r4, #0 -.L1171: - ldr r2, .L1195+4 - movw r3, #3908 +.L1179: + ldr r2, .L1203+4 + movw r3, #3912 ldr fp, [sp, #20] ldrh r3, [r2, r3] cmp fp, r3 - bne .L1173 -.L1172: + bne .L1181 +.L1180: bl FtlGcPageVarInit -.L1173: +.L1181: mov r7, #0 movw r8, #65535 mov sl, r7 mvn r3, #0 str r3, [sp, #16] -.L1186: +.L1194: ldrh r3, [r5, #0] strb sl, [r5, #8] cmp r3, r8 - beq .L1192 -.L1175: -.L1193: - ldr r3, .L1195+4 - mov r2, #3840 + beq .L1200 +.L1183: +.L1201: + ldr r3, .L1203+4 + movw r2, #3844 ldrh r9, [r3, r2] - ldr r2, .L1195+8 - ldr lr, [r2, #-972] - ldr ip, [r2, #-1164] - mov r2, #3920 + ldr r2, .L1203+8 + ldr lr, [r2, #-976] + ldr ip, [r2, #-1172] + movw r2, #3924 ldrh r2, [r3, r2] mov r3, #0 mov r6, r3 str r2, [sp, #12] mov r2, r5 - b .L1176 -.L1178: + b .L1184 +.L1186: ldrh r0, [r2, #16] cmp r0, r8 - beq .L1177 + beq .L1185 mov fp, #36 orr r0, r4, r0, asl #10 mla r1, fp, r6, lr @@ -9945,25 +9978,25 @@ FtlGcScanTempBlk: bic r0, r0, #3 add r0, ip, r0 str r0, [r1, #12] -.L1177: +.L1185: add r3, r3, #1 add r2, r2, #2 uxth r3, r3 -.L1176: +.L1184: cmp r3, r9 - bne .L1178 - ldr r9, .L1195+8 + bne .L1186 + ldr r9, .L1203+8 mov r1, r6 mov r2, #0 - ldr r0, [r9, #-972] + ldr r0, [r9, #-976] bl FlashReadPages mov r3, #36 mul r3, r3, r6 mov r6, #0 str r3, [sp, #12] - b .L1179 -.L1187: - ldr r1, [r9, #-972] + b .L1187 +.L1195: + ldr r1, [r9, #-976] add r3, r1, r6 ldr fp, [r3, #4] stmib sp, {r1, r3} @@ -9974,59 +10007,58 @@ FtlGcScanTempBlk: ldr r1, [r1, r6] cmp r1, #0 mov r2, r0 - bne .L1180 + bne .L1188 ldr r3, [r3, #12] add r6, r6, #36 ldrh r1, [r3, #0] cmp r1, r8 - ldreq r1, .L1195+8 - moveq r3, #1 - streq r3, [r1, #-1008] - beq .L1174 -.L1181: + ldreq r3, .L1203+8 + moveq r1, #1 + streq r1, [r3, #-1016] + beq .L1182 +.L1189: ldr r0, [r3, #12] mov r1, fp ldr r2, [r3, #8] bl FtlGcUpdatePage - b .L1179 -.L1180: + b .L1187 +.L1188: mov r2, fp - ldr r0, .L1195+12 + ldr r0, .L1203+12 ldrh r1, [r5, #0] bl printk - ldr r2, .L1195+8 - ldr r3, [r2, #-1884] - cmp r3, #0 - bne .L1182 - ldr r3, .L1195+4 + ldr r3, .L1203+4 + ldr r2, [r3, #3836] + cmp r2, #0 + bne .L1190 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1183 -.L1182: - ldr r2, .L1195+8 + beq .L1191 +.L1190: + ldr r2, .L1203+8 ldrh r3, [r5, #0] ldr r2, [r2, #-2084] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #119 - bls .L1184 -.L1183: - ldr r3, .L1195+8 - ldr r3, [r3, #-972] + bls .L1192 +.L1191: + ldr r3, .L1203+8 + ldr r3, [r3, #-976] ldr r3, [r3, r6] cmn r3, #1 - bne .L1185 -.L1184: - ldr r3, .L1195+8 - ldr r3, [r3, #-972] + bne .L1193 +.L1192: + ldr r3, .L1203+8 + ldr r3, [r3, #-976] add r6, r3, r6 ldr r6, [r6, #4] str r6, [sp, #16] -.L1185: - ldr r2, .L1195+8 +.L1193: + ldr r2, .L1203+8 mov r4, #0 ldrh r3, [r5, #0] - ldr r2, [r2, #-2064] + ldr r2, [r2, #-2020] mov r3, r3, asl #1 strh sl, [r2, r3] @ movhi ldrh r0, [r5, #0] @@ -10034,40 +10066,40 @@ FtlGcScanTempBlk: mvn r3, #0 strh r3, [r5, #0] @ movhi bl FtlGcPageVarInit - b .L1186 -.L1179: + b .L1194 +.L1187: ldr r3, [sp, #12] cmp r6, r3 - bne .L1187 + bne .L1195 ldr fp, [sp, #20] add r7, r7, #1 add r4, r4, #1 cmp r7, fp uxth r4, r4 - bcc .L1188 - ldr r2, .L1195 - movw r3, #2936 + bcc .L1196 + ldr r2, .L1203 + movw r3, #3000 ldrh r1, [r2, r3] cmp r1, r8 - beq .L1188 + beq .L1196 add r1, r1, r7 strh r1, [r2, r3] @ movhi - ldr r2, .L1195+4 - add r3, r3, #972 + ldr r2, .L1203+4 + add r3, r3, #912 ldrh r3, [r2, r3] cmp r3, r4 - bhi .L1189 -.L1188: - ldr r2, .L1195+4 - movw r3, #3908 + bhi .L1197 +.L1196: + ldr r2, .L1203+4 + movw r3, #3912 ldrh r3, [r2, r3] cmp r3, r4 - bhi .L1193 -.L1192: + bhi .L1201 +.L1200: mov r2, #0 -.L1174: - ldr r1, .L1195 - movw r3, #2936 +.L1182: + ldr r1, .L1203 + movw r3, #3000 mvn r0, #0 strh r4, [r5, #2] @ movhi strb r2, [r5, #6] @@ -10075,17 +10107,17 @@ FtlGcScanTempBlk: mov r0, r5 mov r1, r4 bl ftl_sb_update_avl_pages -.L1189: +.L1197: ldr r0, [sp, #16] add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1196: +.L1204: .align 2 -.L1195: +.L1203: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LC97 + .word .LC100 .fnend .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 2 @@ -10098,24 +10130,24 @@ 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, .L1255 + ldr r5, .L1263 .pad #28 sub sp, sp, #28 - ldr r4, .L1255+4 + ldr r4, .L1263+4 mov r1, r6 - ldr r3, .L1255+8 - movw r7, #3928 - ldr r2, [r5, #3936] - ldr r0, [r4, #-1032] + ldr r3, .L1263+8 + movw r7, #3932 + ldr r2, [r5, #3940] + ldr r0, [r4, #-1040] mov sl, r4 strh r6, [r4, r3] @ movhi - movw r3, #3954 + movw r3, #3958 strh r6, [r5, r3] @ movhi mov r2, r2, asl #2 bl ftl_memset - ldr r2, [r5, #3936] + ldr r2, [r5, #3940] mov r1, r6 - ldr r0, [r4, #-1036] + ldr r0, [r4, #-1044] mov r2, r2, asl #1 bl ftl_memset ldrh r2, [r5, r7] @@ -10125,32 +10157,32 @@ FtlScanSysBlk: bl ftl_memset ldrh r2, [r5, r7] mov r1, r6 - ldr r0, [r5, #3956] + ldr r0, [r5, #3960] mov r2, r2, asl #1 bl ftl_memset - ldr r0, .L1255+12 + sub r0, r4, #1776 mov r1, #255 mov r2, #12 bl ftl_memset - movw r3, #3848 + movw r3, #3852 ldrh r3, [r5, r3] str r3, [sp, #8] - b .L1198 -.L1200: + b .L1206 +.L1208: add r3, r6, r5 ldr r1, [sp, #8] - ldrb r0, [r3, #3866] @ zero_extendqisi2 + ldrb r0, [r3, #3870] @ zero_extendqisi2 bl V2P_block str r0, [sp, #0] bl FtlBbmIsBadBlock ldr r3, [sp, #0] cmp r0, #0 - bne .L1199 - ldr r2, [r4, #-972] + bne .L1207 + ldr r2, [r4, #-976] mov r3, r3, asl #10 mla r2, r9, r7, r2 str r3, [r2, #4] - ldr r3, [r4, #-1168] + ldr r3, [r4, #-1176] str r3, [r2, #8] ldrh r3, [r6, r8] mul r3, r3, r7 @@ -10159,45 +10191,45 @@ FtlScanSysBlk: add r1, r3, #3 cmp r3, #0 movlt r3, r1 - ldr r1, [r4, #-1164] + ldr r1, [r4, #-1172] bic r3, r3, #3 add r3, r1, r3 str r3, [r2, #12] -.L1199: +.L1207: add r5, r5, #1 uxth r5, r5 - b .L1233 -.L1246: + b .L1241 +.L1254: mov r7, #0 - mov fp, #3840 + movw fp, #3844 mov r5, r7 mov r9, #36 - mov r8, #3920 -.L1233: + movw r8, #3924 +.L1241: ldrh r3, [r6, fp] cmp r3, r5 - bhi .L1200 + bhi .L1208 cmp r7, #0 - beq .L1201 - ldr r0, [r4, #-972] + beq .L1209 + ldr r0, [r4, #-976] mov r1, r7 mov r2, #1 mov fp, r7 bl FlashReadPages mov r8, #0 str r8, [sp, #12] -.L1232: - ldr r3, [r4, #-972] +.L1240: + ldr r3, [r4, #-976] add r2, r3, r8 ldr r3, [r3, r8] ldr r6, [r2, #4] cmn r3, #1 ldr r5, [r2, #12] ubfx r6, r6, #10, #16 - bne .L1202 + bne .L1210 mov r7, #16 -.L1204: - ldr r0, [r4, #-972] +.L1212: + ldr r0, [r4, #-976] mov r1, #1 mov r2, r1 add r0, r0, r8 @@ -10208,58 +10240,58 @@ FtlScanSysBlk: ldrh r3, [r5, #0] movw r1, #65535 cmp r3, r1 - ldreq r3, [sl, #-972] + ldreq r3, [sl, #-976] mvneq r2, #0 streq r2, [r3, r8] - beq .L1202 -.L1203: - ldr r3, [r4, #-972] + beq .L1210 +.L1211: + ldr r3, [r4, #-976] ldr r3, [r3, r8] cmn r3, #1 - bne .L1202 + bne .L1210 sub r7, r7, #1 uxth r7, r7 cmp r7, #0 - bne .L1204 -.L1202: - ldr r3, [r4, #-972] + bne .L1212 +.L1210: + ldr r3, [r4, #-976] ldr r3, [r3, r8] cmn r3, #1 - beq .L1205 - ldr r2, [r4, #-1848] + beq .L1213 + ldr r2, [r4, #-1808] ldr r3, [r5, #4] cmn r2, #1 - beq .L1206 + beq .L1214 cmp r2, r3 - bhi .L1207 -.L1206: + bhi .L1215 +.L1214: cmn r3, #1 addne r3, r3, #1 - strne r3, [sl, #-1848] -.L1207: + strne r3, [sl, #-1808] +.L1215: ldrh r3, [r5, #0] movw r2, #61604 cmp r3, r2 - beq .L1210 - bhi .L1213 + beq .L1218 + bhi .L1221 movw r2, #61574 cmp r3, r2 - bne .L1208 - b .L1253 -.L1213: + bne .L1216 + b .L1261 +.L1221: movw r2, #61634 cmp r3, r2 - beq .L1211 + beq .L1219 movw r2, #65535 cmp r3, r2 - bne .L1208 - b .L1254 -.L1211: - ldr r3, .L1255 + bne .L1216 + b .L1262 +.L1219: + ldr r3, .L1263 mov r9, r6 - ldr r1, .L1255+8 - ldr ip, [r4, #-1032] - ldr r0, [r3, #3936] + ldr r1, .L1263+8 + ldr ip, [r4, #-1040] + ldr r0, [r3, #3940] ldrh r1, [r4, r1] uxth r2, r0 sub r3, r2, #1 @@ -10268,29 +10300,29 @@ FtlScanSysBlk: uxth r3, r3 sxth r2, r2 str r2, [sp, #4] - b .L1214 -.L1220: + b .L1222 +.L1228: mov r6, r2, asl #2 ldr r7, [r5, #4] str r6, [sp, #16] ldr r6, [ip, r2, asl #2] cmp r7, r6 - bls .L1215 + bls .L1223 ldr ip, [ip, #0] mov r6, r9 cmp ip, #0 - bne .L1216 + bne .L1224 cmp r1, r0 addne r1, r1, #1 - ldrne r0, .L1255+8 + ldrne r0, .L1263+8 strneh r1, [r4, r0] @ movhi -.L1216: +.L1224: mov r0, #0 sxth r9, r3 str r3, [sp, #4] - b .L1217 -.L1218: - ldr r7, [r4, #-1032] + b .L1225 +.L1226: + ldr r7, [r4, #-1040] add ip, r1, #1 add r0, r0, #1 ldr r3, [r7, ip, asl #2] @@ -10298,56 +10330,56 @@ FtlScanSysBlk: uxth r0, r0 str r3, [r7, r1, asl #2] mov r1, r1, asl #1 - ldr r7, [r4, #-1036] + ldr r7, [r4, #-1044] ldrh ip, [r7, ip] strh ip, [r7, r1] @ movhi -.L1217: +.L1225: sxth r1, r0 cmp r1, r9 - bne .L1218 - ldr r1, [sl, #-1032] + bne .L1226 + ldr r1, [sl, #-1040] mov r2, r2, asl #1 ldr r0, [r5, #4] ldr ip, [sp, #16] ldr r3, [sp, #4] str r0, [r1, ip] - ldr r1, [sl, #-1036] + ldr r1, [sl, #-1044] strh r6, [r1, r2] @ movhi - b .L1219 -.L1215: + b .L1227 +.L1223: sub r3, r3, #1 uxth r3, r3 -.L1214: +.L1222: ldr r6, [sp, #4] sxth r2, r3 cmp r2, r6 - bgt .L1220 + bgt .L1228 mov r6, r9 -.L1219: +.L1227: sxth r3, r3 cmp r3, #0 - blt .L1208 - ldr r2, .L1255+8 - ldr r0, .L1255 + blt .L1216 + ldr r2, .L1263+8 + ldr r0, .L1263 ldrh r1, [r4, r2] - ldr r0, [r0, #3936] + ldr r0, [r0, #3940] rsb r0, r1, r0 sub r0, r0, #1 sxth r0, r0 cmp r3, r0 - bgt .L1208 + bgt .L1216 add r1, r1, #1 strh r1, [r4, r2] @ movhi - ldr r2, [r4, #-1032] + ldr r2, [r4, #-1040] ldr r1, [r5, #4] str r1, [r2, r3, asl #2] mov r3, r3, asl #1 - ldr r2, [r4, #-1036] - b .L1250 -.L1253: - ldr r1, .L1255 - movw r3, #3928 - movw ip, #3954 + ldr r2, [r4, #-1044] + b .L1258 +.L1261: + ldr r1, .L1263 + movw r3, #3932 + movw ip, #3958 mov r9, r6 ldrh r0, [r1, r3] ldrh r1, [r1, ip] @@ -10356,31 +10388,31 @@ FtlScanSysBlk: uxth r3, r2 rsb r2, r1, r2 str r2, [sp, #4] - b .L1221 -.L1227: + b .L1229 +.L1235: mov r6, r2, asl #2 ldr r7, [r5, #4] str r6, [sp, #16] ldr r6, [ip, r2, asl #2] cmp r7, r6 - bls .L1222 + bls .L1230 ldr ip, [ip, #0] mov r6, r9 cmp ip, #0 - bne .L1223 + bne .L1231 cmp r1, r0 addne r1, r1, #1 - ldrne ip, .L1255 - movwne r0, #3954 + ldrne ip, .L1263 + movwne r0, #3958 strneh r1, [ip, r0] @ movhi -.L1223: +.L1231: sxth ip, r3 mov r0, #0 str ip, [sp, #20] - ldr r9, .L1255 + ldr r9, .L1263 str r3, [sp, #4] - b .L1224 -.L1225: + b .L1232 +.L1233: ldr r7, [r4, #-912] add ip, r1, #1 add r0, r0, #1 @@ -10389,142 +10421,142 @@ FtlScanSysBlk: uxth r0, r0 str r3, [r7, r1, asl #2] mov r1, r1, asl #1 - ldr r7, [r9, #3956] + ldr r7, [r9, #3960] ldrh ip, [r7, ip] strh ip, [r7, r1] @ movhi -.L1224: +.L1232: ldr ip, [sp, #20] sxth r1, r0 cmp r1, ip - bne .L1225 + bne .L1233 ldr r1, [sl, #-912] mov r2, r2, asl #1 ldr r0, [r5, #4] ldr ip, [sp, #16] ldr r3, [sp, #4] str r0, [r1, ip] - ldr r1, .L1255 - ldr r1, [r1, #3956] + ldr r1, .L1263 + ldr r1, [r1, #3960] strh r6, [r1, r2] @ movhi - b .L1226 -.L1222: + b .L1234 +.L1230: sub r3, r3, #1 uxth r3, r3 -.L1221: +.L1229: ldr r6, [sp, #4] sxth r2, r3 cmp r2, r6 - bgt .L1227 + bgt .L1235 mov r6, r9 -.L1226: +.L1234: sxth r3, r3 cmp r3, #0 - blt .L1208 - ldr r2, .L1255 - movw ip, #3928 - movw r1, #3954 + blt .L1216 + ldr r2, .L1263 + movw ip, #3932 + movw r1, #3958 ldrh ip, [r2, ip] ldrh r0, [r2, r1] sub ip, ip, #1 rsb ip, r0, ip sxth ip, ip cmp r3, ip - bgt .L1208 + bgt .L1216 add r0, r0, #1 strh r0, [r2, r1] @ movhi ldr r0, [r5, #4] ldr r1, [r4, #-912] str r0, [r1, r3, asl #2] mov r3, r3, asl #1 - ldr r2, [r2, #3956] -.L1250: + ldr r2, [r2, #3960] +.L1258: strh r6, [r2, r3] @ movhi - b .L1208 -.L1210: - ldr r3, .L1255+16 + b .L1216 +.L1218: + ldr r3, .L1263+12 movw ip, #65535 ldrh r2, [r4, r3] cmp r2, ip streqh r6, [r4, r3] @ movhi - beq .L1251 - ldr r3, .L1255+20 + beq .L1259 + ldr r3, .L1263+16 movw r1, #65535 ldrh r0, [r4, r3] cmp r0, r1 - beq .L1229 + beq .L1237 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L1229: +.L1237: ldr r3, [r5, #4] - ldr r2, [sl, #-1760] + ldr r2, [sl, #-1768] cmp r2, r3 - ldr r3, .L1255+20 + ldr r3, .L1263+16 strcsh r6, [r4, r3] @ movhi - bcs .L1208 - ldr r2, .L1255+16 + bcs .L1216 + ldr r2, .L1263+12 ldrh r1, [r4, r2] strh r6, [r4, r2] @ movhi strh r1, [r4, r3] @ movhi -.L1251: +.L1259: ldr r3, [r5, #4] - str r3, [r4, #-1760] - b .L1208 -.L1254: + str r3, [r4, #-1768] + b .L1216 +.L1262: mov r0, r6 - b .L1252 -.L1205: - ldr r3, .L1255 + b .L1260 +.L1213: + ldr r3, .L1263 mov r0, r6 ldrb r1, [r3, #928] @ zero_extendqisi2 cmp r1, #0 - beq .L1231 -.L1252: + beq .L1239 +.L1260: mov r1, #0 -.L1231: +.L1239: bl FtlFreeSysBlkQueueIn -.L1208: +.L1216: ldr r6, [sp, #12] add r8, r8, #36 add r3, r6, #1 uxth r3, r3 str r3, [sp, #12] cmp r3, fp - bne .L1232 -.L1201: + bne .L1240 +.L1209: ldr ip, [sp, #8] add r3, ip, #1 uxth r3, r3 str r3, [sp, #8] -.L1198: - ldr r6, .L1255 - movw r3, #3850 +.L1206: + ldr r6, .L1263 + movw r3, #3854 ldr ip, [sp, #8] ldrh r3, [r6, r3] cmp r3, ip - bhi .L1246 - ldr r1, .L1255+4 - ldr r2, [r1, #-1036] + bhi .L1254 + ldr r1, .L1263+4 + ldr r2, [r1, #-1044] ldrh r3, [r2, #0] cmp r3, #0 - bne .L1234 - ldr r0, .L1255+8 + bne .L1242 + ldr r0, .L1263+8 ldrh r1, [r1, r0] cmp r1, #0 - ldrne r0, [r6, #3936] - bne .L1235 - b .L1234 -.L1239: + ldrne r0, [r6, #3940] + bne .L1243 + b .L1242 +.L1247: mov r1, r1, asl #1 ldrh r1, [r2, r1] cmp r1, #0 - beq .L1236 - ldr r7, .L1255 + beq .L1244 + ldr r7, .L1263 sxth r6, r3 - ldr r1, .L1255+4 + ldr r1, .L1263+4 mov r5, #0 - b .L1237 -.L1238: - ldr ip, [r1, #-1036] + b .L1245 +.L1246: + ldr ip, [r1, #-1044] mov r0, r2, asl #1 rsb r4, r6, r2 add r3, r3, #1 @@ -10532,49 +10564,49 @@ FtlScanSysBlk: mov r8, r4, asl #1 uxth r3, r3 strh sl, [ip, r8] @ movhi - ldr ip, [r1, #-1032] + ldr ip, [r1, #-1040] ldr r2, [ip, r2, asl #2] str r2, [ip, r4, asl #2] - ldr r2, [r1, #-1036] + ldr r2, [r1, #-1044] strh r5, [r2, r0] @ movhi -.L1237: - ldr r0, [r7, #3936] +.L1245: + ldr r0, [r7, #3940] sxth r2, r3 cmp r2, r0 - bcc .L1238 - b .L1234 -.L1236: + bcc .L1246 + b .L1242 +.L1244: add r3, r3, #1 uxth r3, r3 -.L1235: +.L1243: sxth r1, r3 cmp r1, r0 - bcc .L1239 -.L1234: - ldr r2, .L1255 - ldr r1, [r2, #3956] + bcc .L1247 +.L1242: + ldr r2, .L1263 + ldr r1, [r2, #3960] ldrh r3, [r1, #0] cmp r3, #0 - bne .L1240 - movw r0, #3954 + bne .L1248 + movw r0, #3958 ldrh r0, [r2, r0] cmp r0, #0 - movwne r0, #3928 + movwne r0, #3932 ldrneh r2, [r2, r0] - bne .L1241 - b .L1240 -.L1245: + bne .L1249 + b .L1248 +.L1253: mov ip, r0, asl #1 ldrh ip, [r1, ip] cmp ip, #0 - beq .L1242 - ldr r1, .L1255 - movw r8, #3928 - ldr r7, .L1255+4 + beq .L1250 + ldr r1, .L1263 + movw r8, #3932 + ldr r7, .L1263+4 mov r6, #0 - b .L1243 -.L1244: - ldr r4, [r1, #3956] + b .L1251 +.L1252: + ldr r4, [r1, #3960] mov ip, r2, asl #1 rsb r5, r0, r2 add r3, r3, #1 @@ -10585,34 +10617,33 @@ FtlScanSysBlk: ldr r4, [r7, #-912] ldr r2, [r4, r2, asl #2] str r2, [r4, r5, asl #2] - ldr r2, [r1, #3956] + ldr r2, [r1, #3960] strh r6, [r2, ip] @ movhi -.L1243: +.L1251: ldrh ip, [r1, r8] sxth r2, r3 cmp r2, ip - blt .L1244 - b .L1240 -.L1242: + blt .L1252 + b .L1248 +.L1250: add r3, r3, #1 uxth r3, r3 -.L1241: +.L1249: sxth r0, r3 cmp r0, r2 - blt .L1245 -.L1240: + blt .L1253 +.L1248: mov r0, #0 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1256: +.L1264: .align 2 -.L1255: +.L1263: .word .LANCHOR0 .word .LANCHOR2 - .word -1040 - .word .LANCHOR2-1768 - .word -1768 - .word -1764 + .word -1048 + .word -1776 + .word -1772 .fnend .size FtlScanSysBlk, .-FtlScanSysBlk .align 2 @@ -10623,11 +10654,11 @@ FtlGetLastWrittenPage: @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 cmp r1, #1 - ldr r3, .L1268 + ldr r3, .L1276 stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} .save {r4, r5, r6, r7, r8, sl, lr} - movweq r2, #3910 - movwne r2, #3908 + movweq r2, #3914 + movwne r2, #3912 .pad #108 sub sp, sp, #108 ldrh r4, [r3, r2] @@ -10649,9 +10680,9 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L1261 - b .L1266 -.L1264: + bne .L1269 + b .L1274 +.L1272: add r6, r6, r3 mov r0, r7 mov r1, #1 @@ -10664,30 +10695,30 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L1262 + bne .L1270 ldr r3, [sp, #44] cmn r3, #1 - bne .L1262 + bne .L1270 ldr r3, [sp, #4] cmn r3, #1 subne r4, r6, #1 uxthne r4, r4 - bne .L1266 -.L1262: + bne .L1274 +.L1270: add r6, r6, #1 uxth r8, r6 -.L1266: +.L1274: sxth r6, r8 sxth r3, r4 cmp r6, r3 - ble .L1264 -.L1261: + ble .L1272 +.L1269: sxth r0, r4 add sp, sp, #108 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L1269: +.L1277: .align 2 -.L1268: +.L1276: .word .LANCHOR0 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage @@ -10701,89 +10732,90 @@ FtlLoadSysInfo: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r5, #0 - ldr r4, .L1286 + ldr r4, .L1294 mov r1, r5 - ldr r2, .L1286+4 - ldr r7, .L1286+8 + ldr r2, .L1294+4 ldr r3, [r4, #-940] + ldr r0, [r4, #-2020] str r5, [r4, #184] - ldr r0, [r4, #-2064] str r3, [r4, #188] - movw r3, #3848 + movw r3, #3852 ldrh r2, [r2, r3] mov r2, r2, asl #1 bl ftl_memset - ldrh r0, [r4, r7] + ldr r3, .L1294+8 + ldrh r0, [r4, r3] movw r3, #65535 cmp r0, r3 - beq .L1284 + beq .L1292 mov r1, #1 + ldr r7, .L1294+12 bl FtlGetLastWrittenPage - ldr r3, .L1286+12 + ldr r3, .L1294+16 add r2, r0, #1 mov r6, r0 strh r2, [r4, r3] @ movhi - b .L1272 -.L1275: - ldrh r2, [r4, r7] + b .L1280 +.L1283: + ldr r2, .L1294+8 mov r1, #1 - ldr r0, .L1286+16 + ldr r0, .L1294+20 + ldrh r2, [r4, r2] orr r3, r3, r2, asl #10 str r3, [r4, #180] - ldr r3, [r4, #-2076] + ldr r3, [r4, #-964] mov r2, r1 str r3, [r4, #184] bl FlashReadPages ldr r3, [r4, #176] cmn r3, #1 - beq .L1273 - ldr r3, [r4, #-2076] - ldr r2, [r3, #0] - ldr r3, .L1286+20 - cmp r2, r3 - bne .L1273 + beq .L1281 + ldr r3, [r4, #-964] + ldr r3, [r3, #0] + cmp r3, r7 + bne .L1281 ldr r3, [r4, #-940] ldrh r2, [r3, #0] movw r3, #61604 cmp r2, r3 - beq .L1274 -.L1273: + beq .L1282 +.L1281: sub r5, r5, #1 uxth r5, r5 -.L1272: +.L1280: add r3, r5, r6 sxth r3, r3 cmp r3, #0 - bge .L1275 -.L1274: - ldr r4, .L1286 + bge .L1283 +.L1282: + ldr r4, .L1294 mov r2, #48 - ldr r5, .L1286+4 - movw r6, #3848 - ldr r0, .L1286+24 + ldr r5, .L1294+4 + movw r6, #3852 + ldr r0, .L1294+24 ldr r7, [r4, #184] mov r1, r7 bl memcpy ldrh r2, [r5, r6] add r1, r7, #48 - ldr r0, [r4, #-2064] + ldr r0, [r4, #-2020] mov r2, r2, asl #1 bl memcpy ldrh r1, [r5, r6] ldr r3, [r4, #184] - ldr r0, [r4, #-1888] + ldr r0, [r4, #-1844] mov r2, r1, lsr #3 add r1, r1, #24 add r2, r2, #4 mov r1, r1, lsr #1 add r1, r3, r1, asl #2 bl memcpy - mov r3, #3952 + movw r3, #3956 ldrh r3, [r5, r3] cmp r3, #0 - beq .L1276 + beq .L1284 ldrh r3, [r5, r6] - movw r2, #3944 + movw r2, #3948 ldrh r2, [r5, r2] ldr r0, [r4, #-904] mov r1, r3, lsr #3 @@ -10794,167 +10826,168 @@ FtlLoadSysInfo: ubfx r1, r1, #2, #14 add r1, r3, r1, asl #2 bl memcpy -.L1276: - ldr r4, .L1286 - ldr r3, .L1286+20 - ldr r2, [r4, #-1820] +.L1284: + ldr r4, .L1294 + ldr r3, .L1294+12 + ldr r2, [r4, #-2076] cmp r2, r3 - bne .L1284 - ldr r3, .L1286+28 - movw r1, #3862 - ldrb r0, [r4, #-1810] @ zero_extendqisi2 + bne .L1292 + ldr r3, .L1294+28 + movw r1, #3866 + ldrb r0, [r4, #-2066] @ zero_extendqisi2 ldrh r2, [r4, r3] - add r3, r3, #50 + ldr r3, .L1294+32 strh r2, [r4, r3] @ movhi - ldr r3, .L1286+4 + ldr r3, .L1294+4 ldrh r1, [r3, r1] cmp r0, r1 - bne .L1284 - movw r1, #3908 - movw r0, #3914 + bne .L1292 + movw r1, #3912 + movw r0, #3918 ldrh r1, [r3, r1] movw r5, #65535 ldrh r0, [r3, r0] str r2, [r4, #212] mul r1, r2, r1 - str r1, [r3, #3968] + str r1, [r3, #3972] mul r1, r0, r1 - ldr r0, [r3, #3852] - str r1, [r3, #3948] + ldr r0, [r3, #3856] + str r1, [r3, #3952] movw r1, #3982 ldrh r1, [r3, r1] rsb r0, r1, r0 rsb r0, r2, r0 - mov r2, #3840 + movw r2, #3844 ldrh r1, [r3, r2] bl __aeabi_uidiv - ldr r3, .L1286+32 - ldr r1, .L1286+36 + ldr r3, .L1294+36 + ldr r1, .L1294+40 strh r0, [r4, r3] @ movhi - sub r3, r3, #34 + ldr r3, .L1294+44 ldrh r2, [r4, r3] - sub r3, r3, #238 + add r3, r3, #62 strh r2, [r4, r3] @ movhi - add r3, r3, #240 + sub r3, r3, #60 ldrh r3, [r4, r3] mov r0, r3, lsr #6 and r3, r3, #63 - strb r3, [r4, #-2038] - ldrb r3, [r4, #-1809] @ zero_extendqisi2 + strb r3, [r4, #-1994] + ldrb r3, [r4, #-2065] @ zero_extendqisi2 strh r0, [r4, r1] @ movhi mvn r1, #0 - ldr r0, .L1286+40 - strb r3, [r4, #-2036] - ldr r3, .L1286+44 + ldr r0, .L1294+48 + strb r3, [r4, #-1992] + ldr r3, .L1294+52 strh r1, [r4, r3] @ movhi mov r3, #0 - ldr r1, .L1286+48 + ldr r1, .L1294+56 strh r3, [r4, r0] @ movhi - strb r3, [r4, #-1750] + strb r3, [r4, #-1758] ldrh r0, [r4, r1] - sub r1, r1, #194 - strb r3, [r4, #-1748] - str r3, [r4, #-1860] + add r1, r1, #106 + strb r3, [r4, #-1756] + str r3, [r4, #-1820] strh r0, [r4, r1] @ movhi - add r1, r1, #196 - ldr r0, .L1286+52 + sub r1, r1, #104 + ldr r0, .L1294+60 ldrh r1, [r4, r1] mov ip, r1, lsr #6 and r1, r1, #63 - strb r1, [r4, #-1990] - ldrb r1, [r4, #-1808] @ zero_extendqisi2 + strb r1, [r4, #-1946] + ldrb r1, [r4, #-2064] @ zero_extendqisi2 strh ip, [r4, r0] @ movhi - strb r1, [r4, #-1988] - ldr r1, .L1286+56 + strb r1, [r4, #-1944] + ldr r1, .L1294+64 ldrh r0, [r4, r1] - sub r1, r1, #150 + add r1, r1, #150 strh r0, [r4, r1] @ movhi - add r1, r1, #152 - ldr r0, .L1286+60 + sub r1, r1, #148 + ldr r0, .L1294+68 ldrh r1, [r4, r1] mov ip, r1, lsr #6 and r1, r1, #63 - strb r1, [r4, #-1942] - ldrb r1, [r4, #-1807] @ zero_extendqisi2 + strb r1, [r4, #-1898] + ldrb r1, [r4, #-2063] @ zero_extendqisi2 strh ip, [r4, r0] @ movhi - strb r1, [r4, #-1940] - str r3, [r4, #-1872] - ldr r1, [r4, #-1788] - str r3, [r4, #-1880] - str r3, [r4, #-1864] - str r3, [r4, #-1836] + strb r1, [r4, #-1896] + str r3, [r4, #-1832] + ldr r1, [r4, #-2044] + str r3, [r4, #-1840] + str r3, [r4, #-1824] + str r3, [r4, #-1796] + str r3, [r4, #-1788] str r3, [r4, #-1828] - str r3, [r4, #-1868] - ldr r3, [r4, #-1780] - str r1, [r4, #-1840] - ldr r1, [r4, #-1848] + ldr r3, [r4, #-2036] + str r1, [r4, #-1800] + ldr r1, [r4, #-1808] cmp r3, r1 - strhi r3, [r4, #-1848] - ldr r4, .L1286 - ldr r3, [r4, #-1784] - ldr r1, [r4, #-1844] + strhi r3, [r4, #-1808] + ldr r4, .L1294 + ldr r3, [r4, #-2040] + ldr r1, [r4, #-1804] cmp r3, r1 - strhi r3, [r4, #-1844] + strhi r3, [r4, #-1804] cmp r2, r5 - beq .L1279 - ldr r0, .L1286+64 + beq .L1287 + ldr r0, .L1294+72 bl make_superblock -.L1279: - ldr r3, .L1286+68 +.L1287: + ldr r3, .L1294+76 ldrh r3, [r4, r3] cmp r3, r5 - beq .L1280 - ldr r0, .L1286+72 + beq .L1288 + ldr r0, .L1294+80 bl make_superblock -.L1280: - ldr r5, .L1286 - movw r4, #65535 - ldr r3, .L1286+76 - ldrh r3, [r5, r3] - cmp r3, r4 - beq .L1281 - ldr r0, .L1286+80 +.L1288: + ldr r4, .L1294 + movw r5, #65535 + ldr r3, .L1294+84 + ldrh r3, [r4, r3] + cmp r3, r5 + beq .L1289 + sub r0, r4, #1904 bl make_superblock -.L1281: - ldr r3, .L1286+44 - ldrh r3, [r5, r3] - cmp r3, r4 - beq .L1285 - ldr r0, .L1286+84 +.L1289: + ldr r3, .L1294+52 + ldrh r3, [r4, r3] + cmp r3, r5 + beq .L1293 + ldr r0, .L1294+88 bl make_superblock mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1284: +.L1292: mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1285: +.L1293: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1287: +.L1295: .align 2 -.L1286: +.L1294: .word .LANCHOR2 .word .LANCHOR0 - .word -1768 - .word -1766 - .word .LANCHOR2+176 + .word -1776 .word 1179929683 - .word .LANCHOR2-1820 - .word -1812 - .word -1772 - .word -2042 - .word -1754 - .word -1756 - .word -1802 - .word -1994 - .word -1798 - .word -1946 - .word .LANCHOR2-2044 - .word -1996 - .word .LANCHOR2-1996 - .word -1948 - .word .LANCHOR2-1948 - .word .LANCHOR2-1756 + .word -1774 + .word .LANCHOR2+176 + .word .LANCHOR2-2076 + .word -2068 + .word -1770 + .word -1780 + .word -1998 + .word -2062 + .word -1762 + .word -1764 + .word -2058 + .word -1950 + .word -2054 + .word -1902 + .word .LANCHOR2-2000 + .word -1952 + .word .LANCHOR2-1952 + .word -1904 + .word .LANCHOR2-1764 .fnend .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 @@ -10966,45 +10999,45 @@ FtlLoadBbt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - mov r3, #0 - ldr r6, .L1304 - ldr r8, .L1304+4 - ldr r4, [r6, #-940] + ldr r6, .L1312 + ldr r8, .L1312+4 + ldr r3, [r6, #-964] mov r7, r6 + ldr r4, [r6, #-940] str r3, [r6, #184] str r4, [r6, #188] bl FtlBbtMemInit - mov r3, #3904 + movw r3, #3908 ldrh r5, [r8, r3] sub r5, r5, #1 uxth r5, r5 - b .L1289 -.L1293: + b .L1297 +.L1301: mov r1, #1 mov r3, r5, asl #10 - ldr r0, .L1304+8 + ldr r0, .L1312+8 mov r2, r1 str r3, [r6, #180] bl FlashReadPages ldr r3, [r6, #176] cmn r3, #1 - bne .L1290 + bne .L1298 ldr r3, [r6, #180] mov r1, #1 - ldr r0, .L1304+8 + ldr r0, .L1312+8 mov r2, r1 add r3, r3, #1 str r3, [r6, #180] bl FlashReadPages -.L1290: +.L1298: ldr r3, [r7, #176] cmn r3, #1 - beq .L1291 + beq .L1299 ldrh r2, [r4, #0] movw r3, #61649 cmp r2, r3 - bne .L1291 - ldr r3, .L1304+4 + bne .L1299 + ldr r3, .L1312+4 movw r2, #3976 strh r5, [r3, r2] @ movhi ldr r2, [r4, #4] @@ -11012,28 +11045,28 @@ FtlLoadBbt: movw r2, #3980 ldrh r1, [r4, #8] strh r1, [r3, r2] @ movhi - b .L1292 -.L1291: + b .L1300 +.L1299: sub r5, r5, #1 uxth r5, r5 -.L1289: - mov r3, #3904 +.L1297: + movw r3, #3908 ldrh r3, [r8, r3] sub r3, r3, #48 cmp r5, r3 - bgt .L1293 -.L1292: - ldr r5, .L1304+4 + bgt .L1301 +.L1300: + ldr r5, .L1312+4 movw r8, #3976 movw r3, #65535 ldrh r2, [r5, r8] cmp r2, r3 - beq .L1303 + beq .L1311 movw r6, #3980 ldrh r2, [r5, r6] cmp r2, r3 - beq .L1295 - ldr r7, .L1304 + beq .L1303 + ldr r7, .L1312 mov r1, #1 mov r2, r2, asl #10 add r0, r7, #176 @@ -11042,11 +11075,11 @@ FtlLoadBbt: bl FlashReadPages ldr r3, [r7, #176] cmn r3, #1 - beq .L1295 + beq .L1303 ldrh r2, [r4, #0] movw r3, #61649 cmp r2, r3 - bne .L1295 + bne .L1303 ldr r3, [r4, #4] ldr r2, [r5, #3984] cmp r3, r2 @@ -11055,74 +11088,74 @@ FtlLoadBbt: ldrhih r3, [r4, #8] strhih r2, [r5, r8] @ movhi strhih r3, [r5, r6] @ movhi -.L1295: - ldr r8, .L1304+4 +.L1303: + ldr r8, .L1312+4 movw r3, #3976 mov r1, #1 mov r6, #0 - ldr r5, .L1304 + ldr r5, .L1312 ldrh r0, [r8, r3] bl FtlGetLastWrittenPage movw r3, #3978 add r2, r0, #1 mov r7, r0 strh r2, [r8, r3] @ movhi - b .L1296 -.L1299: + b .L1304 +.L1307: movw r2, #3976 mov r1, #1 ldrh r2, [r8, r2] - ldr r0, .L1304+8 + ldr r0, .L1312+8 orr r3, r3, r2, asl #10 str r3, [r5, #180] - ldr r3, [r5, #-2076] + ldr r3, [r5, #-964] mov r2, r1 str r3, [r5, #184] bl FlashReadPages ldr r3, [r5, #176] cmn r3, #1 - beq .L1297 + beq .L1305 ldrh r2, [r4, #0] movw r3, #61649 cmp r2, r3 - beq .L1298 -.L1297: + beq .L1306 +.L1305: sub r6, r6, #1 uxth r6, r6 -.L1296: +.L1304: add r3, r6, r7 sxth r3, r3 cmp r3, #0 - bge .L1299 -.L1298: - ldr r3, .L1304+4 + bge .L1307 +.L1306: + ldr r3, .L1312+4 movw r2, #3982 ldrh r1, [r4, #10] ldrh r0, [r4, #12] strh r1, [r3, r2] @ movhi movw r2, #65535 cmp r0, r2 - beq .L1300 - ldr r2, [r3, #3836] + beq .L1308 + ldr r2, [r3, #3840] cmp r0, r2 - beq .L1300 - movw r1, #3850 + beq .L1308 + movw r1, #3854 ldrh r3, [r3, r1] mov r3, r3, lsr #2 cmp r2, r3 - bcs .L1300 + bcs .L1308 cmp r0, r3 - bcs .L1300 + bcs .L1308 bl FtlSysBlkNumInit -.L1300: - ldr r5, .L1304+12 +.L1308: + ldr r5, .L1312+12 mov r4, #0 - movw r7, #3862 - ldr r6, .L1304 + movw r7, #3866 + ldr r6, .L1312 sub r8, r5, #4000 - b .L1301 -.L1302: - ldr r3, .L1304+16 + b .L1309 +.L1310: + ldr r3, .L1312+16 ldr r1, [r6, #184] ldr r0, [r5, #4]! ldrh r2, [r6, r3] @@ -11130,23 +11163,23 @@ FtlLoadBbt: mla r1, r4, r2, r1 bl memcpy add r4, r4, #1 -.L1301: +.L1309: ldrh r3, [r8, r7] cmp r4, r3 - bcc .L1302 + bcc .L1310 mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1303: +.L1311: mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1305: +.L1313: .align 2 -.L1304: +.L1312: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR2+176 .word .LANCHOR0+4000 - .word -1024 + .word -1032 .fnend .size FtlLoadBbt, .-FtlLoadBbt .align 2 @@ -11159,60 +11192,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, .L1313 - movw fp, #3862 - ldr r7, .L1313+4 - ldr r6, .L1313+8 - ldr r2, [r3, #-2076] + ldr r3, .L1321 + movw fp, #3866 + ldr r7, .L1321+4 + ldr r6, .L1321+8 + ldr r2, [r3, #-964] ldr r8, [r3, #-940] str r2, [r3, #184] str r8, [r3, #188] - b .L1307 -.L1312: + b .L1315 +.L1320: + movw r9, #3908 mvn r3, #0 + ldrh r4, [r6, r9] strh r3, [r7], #2 @ movhi - mov r3, #3904 - ldr sl, .L1313 - ldrh r4, [r6, r3] - movw r9, #61664 - sub r4, r4, #1 + add r4, r4, r3 + ldr sl, .L1321 uxth r4, r4 - b .L1308 -.L1311: + b .L1316 +.L1319: mla r3, r3, r5, r4 mov r1, #1 - ldr r0, .L1313+12 + ldr r0, .L1321+12 mov r2, r1 mov r3, r3, asl #10 str r3, [sl, #180] bl FlashReadPages ldr r3, [sl, #176] cmn r3, #1 - beq .L1309 - ldrh r3, [r8, #0] - cmp r3, r9 + beq .L1317 + ldrh r2, [r8, #0] + movw r3, #61664 + cmp r2, r3 streqh r4, [r7, #-2] @ movhi - beq .L1310 -.L1309: + beq .L1318 +.L1317: sub r4, r4, #1 uxth r4, r4 -.L1308: - mov r3, #3904 - ldrh r3, [r6, r3] +.L1316: + ldrh r3, [r6, r9] sub r2, r3, #16 cmp r4, r2 - bgt .L1311 -.L1310: + bgt .L1319 +.L1318: add r5, r5, #1 -.L1307: +.L1315: ldrh r3, [r6, fp] cmp r5, r3 - bcc .L1312 + bcc .L1320 mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1314: +.L1322: .align 2 -.L1313: +.L1321: .word .LANCHOR2 .word .LANCHOR0+3988 .word .LANCHOR0 @@ -11234,13 +11266,13 @@ FlashProgSlc2KPages: mov r9, r2 str r3, [sp, #12] mov r4, r0 - ldr r3, .L1334 + ldr r3, .L1342 mov r6, r0 mov r8, #0 - ldr r7, .L1334+4 - ldrb fp, [r3, #2837] @ zero_extendqisi2 - b .L1316 -.L1323: + ldr r7, .L1342+4 + ldrb fp, [r3, #2901] @ zero_extendqisi2 + b .L1324 +.L1331: rsb r3, r8, sl add r2, sp, #20 mov r0, r6 @@ -11254,7 +11286,7 @@ FlashProgSlc2KPages: cmp r3, r2 mvncs r3, #0 strcs r3, [r6, #0] - bcs .L1318 + bcs .L1326 add r3, r7, r3 ldrb r5, [r3, #3764] @ zero_extendqisi2 mov r0, r5 @@ -11313,27 +11345,27 @@ FlashProgSlc2KPages: mvnne r3, #0 strne r3, [r6, #0] bl NandcFlashDeCs -.L1318: +.L1326: add r8, r8, #1 add r6, r6, #36 -.L1316: +.L1324: cmp r8, sl - bne .L1323 + bne .L1331 ldr r3, [sp, #12] cmp r3, #0 movne r6, #0 - ldrne r5, .L1334+8 - bne .L1324 - b .L1325 -.L1330: + ldrne r5, .L1342+8 + bne .L1332 + b .L1333 +.L1338: ldr r3, [r4, #0] cmn r3, #1 - bne .L1326 + bne .L1334 ldr r1, [r4, #4] - ldr r0, .L1334+12 + ldr r0, .L1342+12 bl printk - b .L1327 -.L1326: + b .L1335 +.L1334: rsb r3, r6, sl mov r1, r9 add r2, sp, #20 @@ -11365,59 +11397,59 @@ FlashProgSlc2KPages: bl FlashReadPages ldr r7, [sp, #28] cmn r7, #1 - bne .L1328 - ldr r0, .L1334+16 + bne .L1336 + ldr r0, .L1342+16 ldr r1, [r4, #4] bl printk str r7, [r4, #0] -.L1328: +.L1336: ldr r3, [r4, #12] cmp r3, #0 - beq .L1329 + beq .L1337 ldr r2, [r3, #0] ldr r3, [r5, #220] ldr r3, [r3, #0] cmp r2, r3 - beq .L1329 - ldr r0, .L1334+20 + beq .L1337 + ldr r0, .L1342+20 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4, #0] -.L1329: +.L1337: ldr r3, [r4, #8] cmp r3, #0 - beq .L1327 + beq .L1335 ldr r2, [r3, #0] ldr r3, [r5, #216] ldr r3, [r3, #0] cmp r2, r3 - beq .L1327 - ldr r0, .L1334+24 + beq .L1335 + ldr r0, .L1342+24 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4, #0] -.L1327: +.L1335: add r6, r6, #1 add r4, r4, #36 -.L1324: +.L1332: cmp r6, sl - bne .L1330 -.L1325: + bne .L1338 +.L1333: mov r0, #0 add sp, sp, #68 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1335: +.L1343: .align 2 -.L1334: +.L1342: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LC98 - .word .LC99 - .word .LC100 .word .LC101 + .word .LC102 + .word .LC103 + .word .LC104 .fnend .size FlashProgSlc2KPages, .-FlashProgSlc2KPages .align 2 @@ -11431,7 +11463,7 @@ FlashProgPages: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #76 sub sp, sp, #76 - ldr r5, .L1364 + ldr r5, .L1372 mov r9, r0 str r1, [sp, #8] mov sl, r2 @@ -11442,13 +11474,13 @@ FlashProgPages: cmp r6, #0 moveq fp, r5 str ip, [sp, #20] - ldr ip, .L1364+4 - ldrb ip, [ip, #2837] @ zero_extendqisi2 + ldr ip, .L1372+4 + ldrb ip, [ip, #2901] @ zero_extendqisi2 str ip, [sp, #12] - beq .L1337 + beq .L1345 bl FlashProgSlc2KPages - b .L1338 -.L1351: + b .L1346 +.L1359: mov r4, #36 ldr r2, [sp, #8] mul r4, r4, r6 @@ -11467,22 +11499,22 @@ FlashProgPages: mvncs r3, #0 strcs r3, [r9, r4] mov r8, r0 - bcs .L1340 + bcs .L1348 ldrb r1, [r5, #3833] @ zero_extendqisi2 add r2, fp, r2, asl #4 cmp r1, #0 ldr r2, [r2, #3636] moveq r8, #0 cmp r2, #0 - beq .L1342 + beq .L1350 cmp r3, #1 - bne .L1343 + bne .L1351 ldr r0, [r5, #3012] bl NandcIqrWaitFlashReady -.L1343: +.L1351: ldrb r0, [sp, #32] @ zero_extendqisi2 bl FlashWaitCmdDone -.L1342: +.L1350: ldr r2, [sp, #32] mov r1, #0 cmp r8, #0 @@ -11502,10 +11534,10 @@ FlashProgPages: cmp r3, #1 strb r4, [r2, #3628] mov r0, r4 - bne .L1345 + bne .L1353 bl NandcWaitFlashReady - b .L1346 -.L1345: + b .L1354 +.L1353: bl NandcFlashCs ldr r3, [sp, #32] mov r0, r4 @@ -11517,34 +11549,34 @@ FlashProgPages: bl FlashWaitReadyEN mov r0, r4 bl NandcFlashDeCs -.L1346: +.L1354: ldr r2, [sp, #20] sub r3, r2, #1 cmp r3, #6 - bhi .L1347 + bhi .L1355 add r3, r5, r4 ldrb r3, [r3, #3756] @ zero_extendqisi2 cmp r3, #0 - beq .L1347 + beq .L1355 mov r0, r4 ldrb r1, [r5, #1] @ zero_extendqisi2 - ldr r2, .L1364+8 + ldr r2, .L1372+8 mov r3, #0 bl HynixSetRRPara -.L1347: +.L1355: mov r0, r4 bl NandcFlashCs cmp sl, #1 mov r0, r4 - bne .L1348 + bne .L1356 ldrb r3, [r5, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1348 + beq .L1356 bl flash_enter_slc_mode - b .L1349 -.L1348: + b .L1357 +.L1356: bl flash_exit_slc_mode -.L1349: +.L1357: mov r0, r4 ldr r1, [sp, #28] bl FlashProgFirstCmd @@ -11556,7 +11588,7 @@ FlashProgPages: ldr r3, [r7, #8] bl NandcXferData cmp r8, #0 - beq .L1350 + beq .L1358 mov r0, r4 ldr r1, [sp, #28] bl FlashProgDpFirstCmd @@ -11583,58 +11615,58 @@ FlashProgPages: ldr r2, [sp, #12] ldr r3, [r3, #8] bl NandcXferData -.L1350: +.L1358: mov r0, r4 ldr r1, [sp, #28] bl FlashProgSecondCmd mov r0, r4 bl NandcFlashDeCs add r6, r6, r8 -.L1340: +.L1348: add r6, r6, #1 -.L1337: +.L1345: ldr r3, [sp, #8] cmp r6, r3 - bcc .L1351 - ldr r5, .L1364 + bcc .L1359 + ldr r5, .L1372 mov r4, #0 - ldr r6, .L1364+12 + ldr r6, .L1372+12 ldr r0, [r5, #3012] bl NandcIqrWaitFlashReady - b .L1352 -.L1354: + b .L1360 +.L1362: uxtb r0, r4 bl FlashWaitCmdDone cmp sl, #1 - bne .L1353 + bne .L1361 ldrb r3, [r5, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1353 + beq .L1361 ldrb r0, [r6, r4, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L1353: +.L1361: add r4, r4, #1 -.L1352: +.L1360: ldrb r3, [r5, #3762] @ zero_extendqisi2 cmp r4, r3 - bcc .L1354 + bcc .L1362 ldr r2, [sp, #16] cmp r2, #0 ldreq r0, [sp, #16] - beq .L1338 + beq .L1346 mov r5, #0 - ldr r4, .L1364+16 + ldr r4, .L1372+16 ldr r6, [sp, #8] - b .L1355 -.L1360: + b .L1363 +.L1368: ldr r3, [r9, #0] cmn r3, #1 - bne .L1356 + bne .L1364 ldr r1, [r9, #4] - ldr r0, .L1364+20 + ldr r0, .L1372+20 bl printk - b .L1357 -.L1356: + b .L1365 +.L1364: rsb r3, r5, r6 mov r1, sl add r2, sp, #28 @@ -11666,222 +11698,222 @@ FlashProgPages: bl FlashReadPages ldr r7, [sp, #36] cmn r7, #1 - bne .L1358 - ldr r0, .L1364+24 + bne .L1366 + ldr r0, .L1372+24 ldr r1, [r9, #4] bl printk str r7, [r9, #0] -.L1358: +.L1366: ldr r3, [r9, #12] cmp r3, #0 - beq .L1359 + beq .L1367 ldr r2, [r3, #0] ldr r3, [r4, #220] ldr r3, [r3, #0] cmp r2, r3 - beq .L1359 - ldr r0, .L1364+28 + beq .L1367 + ldr r0, .L1372+28 ldr r1, [r9, #4] bl printk mvn r3, #0 str r3, [r9, #0] -.L1359: +.L1367: ldr r3, [r9, #8] cmp r3, #0 - beq .L1357 + beq .L1365 ldr r2, [r3, #0] ldr r3, [r4, #216] ldr r3, [r3, #0] cmp r2, r3 - beq .L1357 - ldr r0, .L1364+32 + beq .L1365 + ldr r0, .L1372+32 ldr r1, [r9, #4] bl printk mvn r3, #0 str r3, [r9, #0] -.L1357: +.L1365: add r5, r5, #1 add r9, r9, #36 -.L1355: +.L1363: cmp r5, r6 - bne .L1360 + bne .L1368 mov r0, #0 -.L1338: +.L1346: add sp, sp, #76 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1365: +.L1373: .align 2 -.L1364: +.L1372: .word .LANCHOR0 .word .LANCHOR1 .word .LANCHOR0+4 .word .LANCHOR0+3628 .word .LANCHOR2 - .word .LC98 - .word .LC99 - .word .LC100 .word .LC101 + .word .LC102 + .word .LC103 + .word .LC104 .fnend .size FlashProgPages, .-FlashProgPages .align 2 - .type FtlVpcTblFlush.part.14, %function -FtlVpcTblFlush.part.14: + .type FtlVpcTblFlush.part.13, %function +FtlVpcTblFlush.part.13: .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, .L1378 - movw r7, #3848 - ldr r6, .L1378+4 - ldr r3, [r4, #-2076] + ldr r4, .L1386 + movw r7, #3852 + ldr r6, .L1386+4 + ldr r3, [r4, #-964] ldr r5, [r4, #-940] str r3, [r4, #184] - ldr r3, .L1378+8 + ldr r3, .L1386+8 str r5, [r4, #188] ldrh r3, [r4, r3] strh r3, [r5, #2] @ movhi - ldr r3, .L1378+12 + ldr r3, .L1386+12 strh r3, [r5, #0] @ movhi - ldr r3, [r4, #-1760] + ldr r3, [r4, #-1768] str r3, [r5, #4] mov r3, #0 str r3, [r5, #8] str r3, [r5, #12] - ldr r3, .L1378+16 - str r3, [r4, #-1820] - ldr r3, .L1378+20 - str r3, [r4, #-1816] - ldr r3, .L1378+24 + ldr r3, .L1386+16 + str r3, [r4, #-2076] + ldr r3, .L1386+20 + str r3, [r4, #-2072] + ldr r3, .L1386+24 ldrh r2, [r4, r3] - sub r3, r3, #50 + ldr r3, .L1386+28 strh r2, [r4, r3] @ movhi - movw r3, #3862 + movw r3, #3866 ldrh r3, [r6, r3] - strb r3, [r4, #-1810] - ldr r3, .L1378+28 + strb r3, [r4, #-2066] + ldr r3, .L1386+32 ldrh r2, [r4, r3] - add r3, r3, #238 + sub r3, r3, #62 strh r2, [r4, r3] @ movhi - sub r3, r3, #236 + add r3, r3, #64 ldrh r2, [r4, r3] - ldrb r3, [r4, #-2038] @ zero_extendqisi2 + ldrb r3, [r4, #-1994] @ zero_extendqisi2 orr r2, r3, r2, asl #6 - ldr r3, .L1378+32 + ldr r3, .L1386+36 strh r2, [r4, r3] @ movhi - ldrb r3, [r4, #-2036] @ zero_extendqisi2 - strb r3, [r4, #-1809] - ldr r3, .L1378+36 + ldrb r3, [r4, #-1992] @ zero_extendqisi2 + strb r3, [r4, #-2065] + ldr r3, .L1386+40 ldrh r2, [r4, r3] - add r3, r3, #194 + sub r3, r3, #106 strh r2, [r4, r3] @ movhi - sub r3, r3, #192 + add r3, r3, #108 ldrh r2, [r4, r3] - ldrb r3, [r4, #-1990] @ zero_extendqisi2 + ldrb r3, [r4, #-1946] @ zero_extendqisi2 orr r2, r3, r2, asl #6 - ldr r3, .L1378+40 + ldr r3, .L1386+44 strh r2, [r4, r3] @ movhi - ldrb r3, [r4, #-1988] @ zero_extendqisi2 - strb r3, [r4, #-1808] - ldr r3, .L1378+44 + ldrb r3, [r4, #-1944] @ zero_extendqisi2 + strb r3, [r4, #-2064] + ldr r3, .L1386+48 ldrh r2, [r4, r3] - add r3, r3, #150 + sub r3, r3, #150 strh r2, [r4, r3] @ movhi - sub r3, r3, #148 + add r3, r3, #152 ldr r0, [r4, #184] ldrh r2, [r4, r3] - ldrb r3, [r4, #-1942] @ zero_extendqisi2 + ldrb r3, [r4, #-1898] @ zero_extendqisi2 orr r2, r3, r2, asl #6 - ldr r3, .L1378+48 + ldr r3, .L1386+52 strh r2, [r4, r3] @ movhi - ldrb r3, [r4, #-1940] @ zero_extendqisi2 - strb r3, [r4, #-1807] - ldr r3, [r4, #-1840] - str r3, [r4, #-1788] - ldr r3, [r4, #-1848] - str r3, [r4, #-1780] - ldr r3, [r4, #-1844] - str r3, [r4, #-1784] - movw r3, #3918 + ldrb r3, [r4, #-1896] @ zero_extendqisi2 + strb r3, [r4, #-2063] + ldr r3, [r4, #-1800] + str r3, [r4, #-2044] + ldr r3, [r4, #-1808] + str r3, [r4, #-2036] + ldr r3, [r4, #-1804] + str r3, [r4, #-2040] + movw r3, #3922 ldrh r2, [r6, r3] bl ftl_memset - ldr r1, .L1378+52 + ldr r1, .L1386+56 mov r2, #48 ldr r0, [r4, #184] bl memcpy ldrh r2, [r6, r7] ldr r0, [r4, #184] - ldr r1, [r4, #-2064] + ldr r1, [r4, #-2020] mov r2, r2, asl #1 add r0, r0, #48 bl memcpy ldrh r2, [r6, r7] ldr r3, [r4, #184] add r0, r2, #24 - ldr r1, [r4, #-1888] + ldr r1, [r4, #-1844] mov r2, r2, lsr #3 mov r0, r0, lsr #1 add r2, r2, #4 add r0, r3, r0, asl #2 bl memcpy - mov r3, #3952 + movw r3, #3956 ldrh r3, [r6, r3] cmp r3, #0 - beq .L1367 + beq .L1375 ldrh r3, [r6, r7] ldr r1, [r4, #184] mov r0, r3, lsr #3 add r0, r0, r3, asl #1 - movw r3, #3944 + movw r3, #3948 add r0, r0, #52 ldrh r2, [r6, r3] ubfx r0, r0, #2, #14 mov r2, r2, asl #2 add r0, r1, r0, asl #2 - ldr r1, [r4, #-1028] + ldr r1, [r4, #-1036] bl memcpy -.L1367: +.L1375: mov r0, #0 - ldr r4, .L1378 + ldr r4, .L1386 bl FtlUpdateVaildLpn - ldr r8, .L1378+8 - mov r6, #0 + ldr r6, .L1386+60 + mov r7, #0 movw sl, #65535 -.L1377: - ldr r3, [r4, #-2076] +.L1385: + ldr r3, [r4, #-964] mov r1, #1 - ldr r7, .L1378+56 - ldrh r2, [r4, r8] + ldr r8, .L1386+8 + ldr r0, .L1386+64 str r3, [r4, #184] ldr r3, [r4, #-940] - ldr r0, .L1378+60 + ldrh r2, [r4, r8] str r3, [r4, #188] - ldrh r3, [r4, r7] + ldrh r3, [r4, r6] orr r3, r3, r2, asl #10 mov r2, r1 str r3, [r4, #180] mov r3, r1 bl FlashProgPages - ldr r1, .L1378+4 - movw r3, #3910 - ldrh r2, [r4, r7] + ldr r1, .L1386+4 + movw r3, #3914 + ldrh r2, [r4, r6] ldrh r3, [r1, r3] sub r3, r3, #1 cmp r2, r3 - blt .L1369 - ldr r3, .L1378+64 + blt .L1377 + ldr r3, .L1386+68 ldrh r2, [r4, r8] ldrh sl, [r4, r3] strh r2, [r4, r3] @ movhi mov r3, #0 - strh r3, [r4, r7] @ movhi + strh r3, [r4, r6] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, [r4, #-1848] + ldr r3, [r4, #-1808] mov r1, #1 add r2, r3, #1 - str r2, [r4, #-1848] - str r3, [r4, #-1760] + str r2, [r4, #-1808] + str r3, [r4, #-1768] mov r2, r0, asl #10 strh r0, [r4, r8] @ movhi str r2, [r4, #180] @@ -11889,40 +11921,39 @@ FtlVpcTblFlush.part.14: str r3, [r5, #4] mov r3, r1 strh r0, [r5, #2] @ movhi - ldr r0, .L1378+60 + ldr r0, .L1386+64 bl FlashProgPages -.L1369: - ldr r2, .L1378+56 - ldr r1, [r4, #176] - ldrh r3, [r4, r2] - cmn r1, #1 +.L1377: + ldrh r3, [r4, r6] + ldr r2, [r4, #176] add r3, r3, #1 + cmn r2, #1 uxth r3, r3 - strh r3, [r4, r2] @ movhi - bne .L1370 + strh r3, [r4, r6] @ movhi + bne .L1378 cmp r3, #1 - add r6, r6, #1 - ldreq r1, .L1378+4 - movweq r3, #3910 - uxth r6, r6 - ldreqh r3, [r1, r3] + add r7, r7, #1 + ldreq r2, .L1386+4 + movweq r3, #3914 + uxth r7, r7 + ldreqh r3, [r2, r3] subeq r3, r3, #1 - streqh r3, [r4, r2] @ movhi - cmp r6, #3 - bls .L1377 - ldr r4, .L1378 - mov r2, r6 - ldr r0, .L1378+68 + streqh r3, [r4, r6] @ movhi + cmp r7, #3 + bls .L1385 + ldr r4, .L1386 + mov r2, r7 + ldr r0, .L1386+72 ldr r1, [r4, #180] bl printk mov r3, #1 str r3, [r4, #-2092] ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L1370: +.L1378: cmp r3, #1 - beq .L1377 - cmp r1, #256 - beq .L1377 + beq .L1385 + cmp r2, #256 + beq .L1385 movw r3, #65535 cmp sl, r3 ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} @@ -11930,29 +11961,30 @@ FtlVpcTblFlush.part.14: mov r1, #1 bl FtlFreeSysBlkQueueIn ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L1379: +.L1387: .align 2 -.L1378: +.L1386: .word .LANCHOR2 .word .LANCHOR0 - .word -1768 + .word -1776 .word -3932 .word 1179929683 - .word 1342177351 - .word -1762 - .word -2044 - .word -1804 - .word -1996 - .word -1800 - .word -1948 - .word -1796 - .word .LANCHOR2-1820 - .word -1766 + .word 1342177352 + .word -1770 + .word -2068 + .word -2000 + .word -2060 + .word -1952 + .word -2056 + .word -1904 + .word -2052 + .word .LANCHOR2-2076 + .word -1774 .word .LANCHOR2+176 - .word -1764 - .word .LC102 + .word -1772 + .word .LC105 .fnend - .size FtlVpcTblFlush.part.14, .-FtlVpcTblFlush.part.14 + .size FtlVpcTblFlush.part.13, .-FtlVpcTblFlush.part.13 .align 2 .global FtlVpcTblFlush .type FtlVpcTblFlush, %function @@ -11962,45 +11994,45 @@ FtlVpcTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L1382 + ldr r3, .L1390 ldr r3, [r3, #-2092] cmp r3, #0 - bne .L1381 - bl FtlVpcTblFlush.part.14 -.L1381: + bne .L1389 + bl FtlVpcTblFlush.part.13 +.L1389: mov r0, #0 ldmfd sp!, {r3, pc} -.L1383: +.L1391: .align 2 -.L1382: +.L1390: .word .LANCHOR2 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush .section .text.unlikely,"ax",%progbits .align 2 - .type FtlBbmTblFlush.part.17, %function -FtlBbmTblFlush.part.17: + .type FtlBbmTblFlush.part.16, %function +FtlBbmTblFlush.part.16: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 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, .L1397 + ldr r7, .L1405 mov r6, #0 - ldr sl, .L1397+4 - movw r9, #3862 + ldr sl, .L1405+4 + movw r9, #3866 ldr r3, [r7, #-940] add r8, sl, #4000 - ldr r0, [r7, #-2076] + ldr r0, [r7, #-964] str r3, [r7, #188] - movw r3, #3918 + movw r3, #3922 str r0, [r7, #184] ldrh r2, [sl, r3] bl ftl_memset - b .L1385 -.L1386: - ldr r3, .L1397+8 + b .L1393 +.L1394: + ldr r3, .L1405+8 ldr r1, [r8, #4]! ldrh r2, [r7, r3] ldr r3, [r7, #184] @@ -12009,12 +12041,12 @@ FtlBbmTblFlush.part.17: add r6, r6, #1 add r0, r3, r0, asl #2 bl memcpy -.L1385: +.L1393: ldrh r3, [sl, r9] - ldr r4, .L1397+4 + ldr r4, .L1405+4 cmp r6, r3 - ldr r5, .L1397 - blt .L1386 + ldr r5, .L1405 + blt .L1394 ldr r6, [r5, #188] mov r1, #255 mov r2, #16 @@ -12022,7 +12054,7 @@ FtlBbmTblFlush.part.17: mov fp, r7 mov r0, r6 bl ftl_memset - ldr r3, .L1397+12 + ldr r3, .L1405+12 strh r3, [r6, #0] @ movhi ldr r3, [r4, #3984] str r3, [r6, #4] @@ -12035,15 +12067,15 @@ FtlBbmTblFlush.part.17: movw r3, #3982 ldrh r3, [r4, r3] strh r3, [r6, #10] @ movhi - ldr r3, [r4, #3836] + ldr r3, [r4, #3840] strh r3, [r6, #12] @ movhi - b .L1395 -.L1392: + b .L1403 +.L1400: mov fp, #1 -.L1395: - ldr r3, [r5, #-2076] +.L1403: + ldr r3, [r5, #-964] movw r8, #3976 - ldr r4, .L1397+4 + ldr r4, .L1405+4 mov r1, #0 movw sl, #3978 str r1, [r5, #176] @@ -12058,19 +12090,19 @@ FtlBbmTblFlush.part.17: str r3, [r5, #180] ldrh r3, [r4, r9] str r0, [sp, #0] - ldr r0, .L1397+16 + ldr r0, .L1405+16 bl printk mov r1, #1 mov r2, r1 mov r3, r1 - ldr r0, .L1397+20 + ldr r0, .L1405+20 bl FlashProgPages - movw r3, #3910 + movw r3, #3914 ldrh r3, [r4, r3] ldrh r2, [r4, sl] sub r3, r3, #1 cmp r2, r3 - blt .L1388 + blt .L1396 ldr r3, [r4, #3984] mov r1, #0 @ movhi ldrh r2, [r4, r8] @@ -12090,52 +12122,52 @@ FtlBbmTblFlush.part.17: str r3, [r0, #4] bl FlashEraseBlocks mov r1, #1 - ldr r0, .L1397+20 + ldr r0, .L1405+20 mov r2, r1 mov r3, r1 bl FlashProgPages -.L1388: - ldr r2, .L1397+4 +.L1396: + ldr r2, .L1405+4 movw r3, #3978 - ldr r4, .L1397 + ldr r4, .L1405 ldrh r1, [r2, r3] add r1, r1, #1 strh r1, [r2, r3] @ movhi ldr r3, [r5, #176] cmn r3, #1 - bne .L1389 + bne .L1397 add r7, r7, #1 - ldr r0, .L1397+24 + ldr r0, .L1405+24 ldr r1, [r5, #180] uxth r7, r7 bl printk cmp r7, #3 - bls .L1395 - ldr r0, .L1397+28 + bls .L1403 + ldr r0, .L1405+28 mov r2, r7 ldr r1, [r4, #180] bl printk mov r3, #1 str r3, [r4, #-2092] - b .L1396 -.L1389: + b .L1404 +.L1397: cmp fp, #0 - beq .L1392 -.L1396: + beq .L1400 +.L1404: ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1398: +.L1406: .align 2 -.L1397: +.L1405: .word .LANCHOR2 .word .LANCHOR0 - .word -1024 + .word -1032 .word -3887 - .word .LC103 + .word .LC106 .word .LANCHOR2+176 - .word .LC104 - .word .LC105 + .word .LC107 + .word .LC108 .fnend - .size FtlBbmTblFlush.part.17, .-FtlBbmTblFlush.part.17 + .size FtlBbmTblFlush.part.16, .-FtlBbmTblFlush.part.16 .text .align 2 .global FtlBbmTblFlush @@ -12146,17 +12178,17 @@ FtlBbmTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L1401 + ldr r3, .L1409 ldr r3, [r3, #-2092] cmp r3, #0 - bne .L1400 - bl FtlBbmTblFlush.part.17 -.L1400: + bne .L1408 + bl FtlBbmTblFlush.part.16 +.L1408: mov r0, #0 ldmfd sp!, {r3, pc} -.L1402: +.L1410: .align 2 -.L1401: +.L1409: .word .LANCHOR2 .fnend .size FtlBbmTblFlush, .-FtlBbmTblFlush @@ -12170,79 +12202,79 @@ 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, .L1413 - ldr r3, .L1413+4 + ldr r4, .L1421 + ldr r3, .L1421+4 ldrh r3, [r4, r3] cmp r3, #0 movne r6, #0 movne sl, r4 - bne .L1404 - b .L1405 -.L1411: + bne .L1412 + b .L1413 +.L1419: add r3, r3, r6 mov r1, r9 mov r5, #0 - ldr r7, .L1413+4 - ldrb r0, [r3, #3866] @ zero_extendqisi2 + ldr r7, .L1421+4 + ldrb r0, [r3, #3870] @ zero_extendqisi2 bl V2P_block mov r8, r0 - b .L1406 -.L1410: + b .L1414 +.L1418: add r3, r4, r5, asl #1 - sub r3, r3, #1120 - sub r3, r3, #12 + sub r3, r3, #1136 + sub r3, r3, #4 ldrh r3, [r3, #0] cmp r3, r8 - bne .L1407 + bne .L1415 mov r1, r8 - ldr r0, .L1413+8 + ldr r0, .L1421+8 bl printk mov r0, r8 bl FtlBbmMapBadBlock bl FtlBbmTblFlush ldrh r1, [r4, r7] mov r3, r5 - b .L1408 -.L1409: + b .L1416 +.L1417: add r0, r3, #1 add r3, r4, r3, asl #1 - sub r3, r3, #1120 + sub r3, r3, #1136 add r2, r4, r0, asl #1 - sub r2, r2, #1120 - sub r2, r2, #12 + sub r2, r2, #1136 + sub r2, r2, #4 ldrh r2, [r2, #0] - strh r2, [r3, #-12] @ movhi + strh r2, [r3, #-4] @ movhi uxth r3, r0 -.L1408: +.L1416: cmp r3, r1 - bcc .L1409 + bcc .L1417 sub r1, r1, #1 strh r1, [sl, r7] @ movhi -.L1407: +.L1415: add r5, r5, #1 uxth r5, r5 -.L1406: +.L1414: ldrh r3, [r4, r7] cmp r3, r5 - bhi .L1410 + bhi .L1418 add r6, r6, #1 uxth r6, r6 -.L1404: - ldr r3, .L1413+12 - mov r2, #3840 +.L1412: + ldr r3, .L1421+12 + movw r2, #3844 ldrh r2, [r3, r2] cmp r2, r6 - bhi .L1411 + bhi .L1419 bl FtlGcReFreshBadBlk -.L1405: +.L1413: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L1414: +.L1422: .align 2 -.L1413: +.L1421: .word .LANCHOR2 - .word -1134 - .word .LC106 + .word -1142 + .word .LC109 .word .LANCHOR0 .fnend .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk @@ -12256,36 +12288,36 @@ update_vpc_list: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r2, r0, asl #1 - ldr r3, .L1423 + ldr r3, .L1431 mov r4, r0 - ldr r1, [r3, #-2064] + ldr r1, [r3, #-2020] ldrh r2, [r1, r2] cmp r2, #0 - bne .L1416 - ldr r1, .L1423+4 + bne .L1424 + ldr r1, .L1431+4 ldrh r0, [r3, r1] cmp r0, r4 mvneq r2, #0 streqh r2, [r3, r1] @ movhi - beq .L1418 - ldr r1, .L1423+8 + beq .L1426 + ldr r1, .L1431+8 ldrh r1, [r3, r1] cmp r1, r4 - beq .L1419 - ldr r1, .L1423+12 + beq .L1427 + ldr r1, .L1431+12 ldrh r1, [r3, r1] cmp r1, r4 - beq .L1419 - ldr r1, .L1423+16 + beq .L1427 + ldr r1, .L1431+16 ldrh r3, [r3, r1] cmp r3, r4 - beq .L1419 -.L1418: + beq .L1427 +.L1426: mov r1, r4 - ldr r0, .L1423+20 + ldr r0, .L1431+20 bl List_remove_node - ldr r5, .L1423 - ldr r3, .L1423+24 + ldr r5, .L1431 + ldr r3, .L1431+24 mov r0, r4 ldrh r2, [r5, r3] sub r2, r2, #1 @@ -12294,23 +12326,23 @@ update_vpc_list: mov r0, r4 bl FtlGcFreeBadSuperBlk mov r2, #1 - b .L1419 -.L1416: + b .L1427 +.L1424: bl List_update_data_list mov r2, #0 -.L1419: +.L1427: mov r0, r2 ldmfd sp!, {r3, r4, r5, pc} -.L1424: +.L1432: .align 2 -.L1423: +.L1431: .word .LANCHOR2 - .word -1756 - .word -2044 - .word -1996 - .word -1948 - .word .LANCHOR2-2068 - .word -2056 + .word -1764 + .word -2000 + .word -1952 + .word -1904 + .word .LANCHOR2-2024 + .word -2012 .fnend .size update_vpc_list, .-update_vpc_list .align 2 @@ -12325,46 +12357,46 @@ decrement_vpc_count: movw r3, #65535 cmp r0, r3 mov r5, r0 - beq .L1426 - ldr r2, .L1431 + beq .L1434 + ldr r2, .L1439 mov r3, r0, asl #1 - ldr r2, [r2, #-2064] + ldr r2, [r2, #-2020] ldrh r4, [r2, r3] cmp r4, #0 subne r4, r4, #1 strneh r4, [r2, r3] @ movhi - bne .L1426 - ldr r0, .L1431+4 + bne .L1434 + ldr r0, .L1439+4 mov r1, r5 mov r2, r4 bl printk mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1426: - ldr r7, .L1431 +.L1434: + ldr r7, .L1439 movw r3, #65535 - ldr r6, .L1431+8 + ldr r6, .L1439+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 .L1430 + beq .L1438 bl update_vpc_list strh r5, [r7, r6] @ movhi adds r0, r0, #0 movne r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1430: +.L1438: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1432: +.L1440: .align 2 -.L1431: +.L1439: .word .LANCHOR2 - .word .LC107 - .word -1016 + .word .LC110 + .word -1024 .fnend .size decrement_vpc_count, .-decrement_vpc_count .align 2 @@ -12381,14 +12413,14 @@ get_new_active_ppa: mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 movw r6, #65535 - ldr r5, .L1445 - ldr r7, .L1445+4 + ldr r5, .L1453 + ldr r7, .L1453+4 add r3, r0, r3, asl #1 ldrh r3, [r3, #16] - b .L1434 -.L1435: + b .L1442 +.L1443: ldrb r3, [r4, #6] @ zero_extendqisi2 - mov r2, #3840 + movw r2, #3844 ldrh r2, [r5, r2] add r3, r3, #1 uxtb r3, r3 @@ -12402,28 +12434,28 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r3, [r3, #16] -.L1434: +.L1442: cmp r3, r6 - beq .L1435 + beq .L1443 ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #1 - bne .L1437 + bne .L1445 ldrb r2, [r5, #928] @ zero_extendqisi2 cmp r2, #0 - bne .L1437 + bne .L1445 ldrh r2, [r4, #2] add r2, r7, r2, asl #1 sub r2, r2, #896 ldrh r2, [r2, #0] cmp r2, r6 - bne .L1437 + bne .L1445 ldrh r3, [r4, #4] ldrh r0, [r4, #0] sub r3, r3, #1 strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L1435 -.L1437: + b .L1443 +.L1445: ldrh r6, [r4, #2] movw r5, #65535 mov r7, r5 @@ -12431,12 +12463,12 @@ get_new_active_ppa: ldrh r3, [r4, #4] sub r3, r3, #1 strh r3, [r4, #4] @ movhi -.L1442: - ldr r2, .L1445 - mov r3, #3840 +.L1450: + ldr r2, .L1453 + movw r3, #3844 ldrh r2, [r2, r3] ldrb r3, [r4, #6] @ zero_extendqisi2 -.L1439: +.L1447: add r3, r3, #1 uxtb r3, r3 cmp r3, r2 @@ -12447,39 +12479,39 @@ get_new_active_ppa: add r1, r4, r3, asl #1 ldrh r1, [r1, #16] cmp r1, r5 - beq .L1439 + beq .L1447 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L1440 - ldr r3, .L1445 + bne .L1448 + ldr r3, .L1453 ldrb r2, [r3, #928] @ zero_extendqisi2 cmp r2, #0 ldrh r2, [r4, #2] - bne .L1443 - ldr r3, .L1445+4 + bne .L1451 + ldr r3, .L1453+4 add r2, r3, r2, asl #1 sub r2, r2, #896 ldrh r3, [r2, #0] cmp r3, r7 - bne .L1440 + bne .L1448 ldrh r3, [r4, #4] cmp r3, #0 - beq .L1440 + beq .L1448 sub r3, r3, #1 ldrh r0, [r4, #0] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L1442 -.L1443: - movw r1, #3910 + b .L1450 +.L1451: + movw r1, #3914 ldrh r1, [r3, r1] cmp r2, r1 - bcc .L1440 - ldr r1, .L1445+4 + bcc .L1448 + ldr r1, .L1453+4 ldrh r2, [r4, #0] ldrh r0, [r4, #4] - ldr r1, [r1, #-2064] + ldr r1, [r1, #-2020] mov r2, r2, asl #1 ldrh ip, [r1, r2] rsb r0, r0, ip @@ -12487,23 +12519,23 @@ get_new_active_ppa: mov r2, #0 strh r2, [r4, #4] @ movhi mov r1, r2 @ movhi - movw r2, #3908 + movw r2, #3912 ldrh r3, [r3, r2] strb r1, [r4, #6] strh r3, [r4, #2] @ movhi -.L1440: +.L1448: mov r0, r6 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1446: +.L1454: .align 2 -.L1445: +.L1453: .word .LANCHOR0 .word .LANCHOR2 .fnend .size get_new_active_ppa, .-get_new_active_ppa .align 2 - .type FtlSlcSuperblockCheck.part.20, %function -FtlSlcSuperblockCheck.part.20: + .type FtlSlcSuperblockCheck.part.19, %function +FtlSlcSuperblockCheck.part.19: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -12512,14 +12544,14 @@ FtlSlcSuperblockCheck.part.20: mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 movw r6, #65535 - ldr r5, .L1453 - ldr r7, .L1453+4 + ldr r5, .L1461 + ldr r7, .L1461+4 add r3, r0, r3, asl #1 ldrh r3, [r3, #16] - b .L1448 -.L1449: + b .L1456 +.L1457: ldrb r3, [r4, #6] @ zero_extendqisi2 - mov r2, #3840 + movw r2, #3844 ldrh r2, [r5, r2] add r3, r3, #1 uxtb r3, r3 @@ -12533,21 +12565,21 @@ FtlSlcSuperblockCheck.part.20: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r3, [r3, #16] -.L1448: +.L1456: cmp r3, r6 - beq .L1449 + beq .L1457 ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #1 - bne .L1451 + bne .L1459 ldrb r3, [r5, #928] @ zero_extendqisi2 cmp r3, #0 - bne .L1451 + bne .L1459 ldrh r3, [r4, #2] add r3, r7, r3, asl #1 sub r3, r3, #896 ldrh r3, [r3, #0] cmp r3, r6 - bne .L1451 + bne .L1459 ldrh r3, [r4, #4] ldrh r0, [r4, #0] sub r3, r3, #1 @@ -12555,28 +12587,28 @@ FtlSlcSuperblockCheck.part.20: bl decrement_vpc_count ldrh r3, [r4, #4] cmp r3, #0 - bne .L1449 + bne .L1457 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} -.L1451: - ldr r3, .L1453 +.L1459: + ldr r3, .L1461 ldrb r1, [r3, #928] @ zero_extendqisi2 cmp r1, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} cmp r2, #1 ldmnefd sp!, {r3, r4, r5, r6, r7, pc} - movw r2, #3910 + movw r2, #3914 ldrh r1, [r4, #2] ldrh r2, [r3, r2] cmp r1, r2 ldmccfd sp!, {r3, r4, r5, r6, r7, pc} - ldr r1, .L1453+4 + ldr r1, .L1461+4 ldrh r2, [r4, #0] ldrh r0, [r4, #4] - ldr r1, [r1, #-2064] + ldr r1, [r1, #-2020] mov r2, r2, asl #1 ldrh ip, [r1, r2] rsb r0, r0, ip @@ -12584,18 +12616,18 @@ FtlSlcSuperblockCheck.part.20: mov r2, #0 strh r2, [r4, #4] @ movhi mov r1, r2 @ movhi - movw r2, #3908 + movw r2, #3912 ldrh r3, [r3, r2] strb r1, [r4, #6] strh r3, [r4, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1454: +.L1462: .align 2 -.L1453: +.L1461: .word .LANCHOR0 .word .LANCHOR2 .fnend - .size FtlSlcSuperblockCheck.part.20, .-FtlSlcSuperblockCheck.part.20 + .size FtlSlcSuperblockCheck.part.19, .-FtlSlcSuperblockCheck.part.19 .align 2 .global FtlSlcSuperblockCheck .type FtlSlcSuperblockCheck, %function @@ -12611,12 +12643,12 @@ FtlSlcSuperblockCheck: movw r3, #65535 cmp r2, r3 bxeq lr - b FtlSlcSuperblockCheck.part.20 + b FtlSlcSuperblockCheck.part.19 .fnend .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck .align 2 - .type allocate_data_superblock.part.21, %function -allocate_data_superblock.part.21: + .type allocate_data_superblock.part.20, %function +allocate_data_superblock.part.20: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 @@ -12624,85 +12656,83 @@ allocate_data_superblock.part.21: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L1493 + ldr r4, .L1501 mov r5, r0 - mov r8, r4 -.L1489: - ldr r3, .L1493+4 + ldr r8, .L1501+4 +.L1497: + ldr r3, .L1501+8 cmp r5, r3 - bne .L1459 - ldr r3, .L1493+8 - ldrh r2, [r4, r3] - ldr r3, [r4, #-1180] + bne .L1467 + ldrh r2, [r4, r8] + ldr r3, [r4, #-1188] mov r1, r2, lsr #1 mul ip, r3, r2 add r0, r1, #1 add r0, r0, ip, lsr #2 - ldr ip, [r4, #-1884] - cmp ip, #0 + ldr ip, .L1501+12 uxth r0, r0 - beq .L1483 - ldr ip, [r4, #-1824] + ldr ip, [ip, #3836] + cmp ip, #0 + beq .L1491 + ldr ip, [r4, #-1784] cmp ip, #29 - bhi .L1483 + bhi .L1491 cmp ip, #2 - bls .L1488 + bls .L1496 tst r2, #1 - beq .L1460 + beq .L1468 cmp r3, #0 moveq r1, r3 - beq .L1461 - b .L1460 -.L1459: + beq .L1469 + b .L1468 +.L1467: ldrb r3, [r5, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L1488 - ldr r3, .L1493+12 - movw r2, #3860 + bne .L1496 + ldr r3, .L1501+12 + movw r2, #3864 ldrh r2, [r3, r2] cmp r2, #1 - beq .L1488 - ldrb r3, [r3, #928] @ zero_extendqisi2 - cmp r3, #0 - bne .L1488 - sub r3, r3, #2048 - ldr r2, [r4, #-1884] - ldrh r3, [r4, r3] + beq .L1496 + ldrb r2, [r3, #928] @ zero_extendqisi2 cmp r2, #0 - mov r1, r3, lsr #3 - beq .L1460 - ldr r2, [r4, #-1824] - cmp r2, #1 + bne .L1496 + ldr r3, [r3, #3836] + ldrh r2, [r4, r8] + cmp r3, #0 + mov r1, r2, lsr #3 + beq .L1468 + ldr r3, [r4, #-1784] + cmp r3, #1 movls r1, #7 - mulls r1, r1, r3 + mulls r1, r1, r2 movls r1, r1, lsr #3 - b .L1460 -.L1483: + b .L1468 +.L1491: mov r1, r0 -.L1460: +.L1468: cmp r1, #0 subne r1, r1, #1 uxthne r1, r1 - b .L1461 -.L1488: + b .L1469 +.L1496: mov r1, #0 -.L1461: +.L1469: ldrb r2, [r5, #8] @ zero_extendqisi2 - ldr r0, .L1493+16 + ldr r0, .L1501+16 bl List_pop_index_node - ldr r3, .L1493+8 - ldrh r2, [r4, r3] - sub r2, r2, #1 - strh r2, [r4, r3] @ movhi + ldrh r3, [r4, r8] + sub r3, r3, #1 + strh r3, [r4, r8] @ movhi uxth r7, r0 mov r0, r5 strh r7, [r5, #0] @ movhi bl make_superblock ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - beq .L1462 - ldr r2, .L1493+12 - mov r3, #3840 + beq .L1470 + ldr r2, .L1501+12 + movw r3, #3844 ldr ip, [r4, #-2088] mov r6, #0 mov sl, r5 @@ -12712,20 +12742,20 @@ allocate_data_superblock.part.21: mov r3, ip mov r2, r6 stmia sp, {r5, ip} - b .L1463 -.L1462: - ldr r3, [r4, #-2064] + b .L1471 +.L1470: + ldr r3, [r4, #-2020] mov r7, r7, asl #1 mvn r2, #0 strh r2, [r3, r7] @ movhi - b .L1489 -.L1466: + b .L1497 +.L1474: str r0, [r3, #8] movw r5, #65535 str r0, [r3, #12] ldrh lr, [r1, #16] cmp lr, r5 - beq .L1465 + beq .L1473 ldr r5, [sp, #4] mov ip, #36 mov lr, lr, asl #10 @@ -12733,95 +12763,97 @@ allocate_data_superblock.part.21: add r6, r6, #1 uxth r6, r6 str lr, [fp, #4] -.L1465: +.L1473: add r2, r2, #1 add r3, r3, #36 add r1, r1, #2 uxth r2, r2 -.L1463: +.L1471: cmp r2, r9 - bne .L1466 - ldr r3, [r4, #-1884] + bne .L1474 + ldr r3, .L1501+12 ldr r5, [sp, #0] + ldr r3, [r3, #3836] cmp r3, #0 - beq .L1467 - ldr r3, .L1493+20 + beq .L1475 + ldr r3, .L1501+20 cmp r5, r3 - bne .L1467 + bne .L1475 ldr r2, [r4, #-2084] mov r3, r7, asl #1 ldrh r3, [r2, r3] cmp r3, #30 movhi r3, #0 - strhib r3, [r4, #-2036] -.L1467: + strhib r3, [r4, #-1992] +.L1475: ldrb r3, [r5, #8] @ zero_extendqisi2 ldr r2, [r4, #-2084] cmp r3, #0 mov r3, r7, asl #1 ldrh r1, [r2, r3] - bne .L1468 + bne .L1476 cmp r1, #0 - ldrne ip, .L1493+12 - movwne r0, #3898 + ldrne ip, .L1501+12 + movwne r0, #3902 moveq r1, #2 ldrneh r0, [ip, r0] addne r1, r1, r0 strh r1, [r2, r3] @ movhi - ldr r3, [r4, #-1840] + ldr r3, [r4, #-1800] mov r0, r7 mov r1, #0 add r3, r3, #1 - str r3, [r4, #-1840] - b .L1491 -.L1468: + str r3, [r4, #-1800] + b .L1499 +.L1476: add r1, r1, #1 strh r1, [r2, r3] @ movhi - ldr r3, [r4, #-1836] + ldr r3, [r4, #-1796] mov r0, r7 mov r1, #1 add r3, r3, #1 - str r3, [r4, #-1836] -.L1491: + str r3, [r4, #-1796] +.L1499: bl ftl_set_blk_mode ldr r3, [r4, #-2084] mov r9, r7, asl #1 - ldr r2, [r4, #-1828] - ldr r0, [r8, #-1840] + ldr r2, [r4, #-1788] + ldr fp, .L1501 ldrh r3, [r3, r9] cmp r3, r2 - movw r2, #3898 - strhi r3, [r4, #-1828] - ldr r3, .L1493+12 + movw r2, #3902 + strhi r3, [r4, #-1788] + ldr r3, .L1501+12 + ldr r0, [fp, #-1800] ldrh r1, [r3, r2] - ldr r2, [r8, #-1836] + ldr r2, [fp, #-1796] mla r0, r0, r1, r2 - movw r2, #3848 + movw r2, #3852 ldrh r1, [r3, r2] bl __aeabi_uidiv - ldr r3, [r8, #-924] + ldr r3, [fp, #-924] ldr r2, [r3, #16] add r2, r2, #1 str r2, [r3, #16] - ldr r3, [r8, #-2088] + ldr r3, [fp, #-2088] mov r2, #0 - str r0, [r8, #-1832] - b .L1473 -.L1474: + str r0, [fp, #-1792] + b .L1481 +.L1482: add r2, r2, #1 ldr r1, [r3, #-32] uxth r2, r2 bic r1, r1, #1020 bic r1, r1, #3 str r1, [r3, #-32] -.L1473: +.L1481: cmp r2, r6 add r3, r3, #36 - bne .L1474 - ldr r3, .L1493+12 + bne .L1482 + ldr r3, .L1501+12 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1475 + beq .L1483 ldrb r3, [r5, #8] @ zero_extendqisi2 mov r2, r6 ldr r0, [r4, #-2088] @@ -12829,7 +12861,7 @@ allocate_data_superblock.part.21: moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L1475: +.L1483: mov r2, r6 ldr r0, [r4, #-2088] ldrb r1, [r5, #8] @ zero_extendqisi2 @@ -12842,13 +12874,13 @@ allocate_data_superblock.part.21: mov r6, fp mov r7, r5 mov r9, r2 - b .L1477 -.L1479: + b .L1485 +.L1487: ldr r1, [r4, #-2088] add r0, r1, fp ldr r5, [r1, fp] cmn r5, #1 - bne .L1478 + bne .L1486 ldr r0, [r0, #4] add r6, r6, #1 str r3, [sp, #12] @@ -12861,60 +12893,61 @@ allocate_data_superblock.part.21: strb r1, [r7, #7] ldr ip, [sp, #8] ldr r3, [sp, #12] -.L1478: +.L1486: add fp, fp, #36 add sl, sl, #2 -.L1477: +.L1485: cmp fp, r9 - bne .L1479 + bne .L1487 cmp r6, #0 mov r5, r7 mov r9, ip mov r7, r3 - beq .L1480 + beq .L1488 mov r0, r3 bl update_multiplier_value bl FtlBbmTblFlush -.L1480: +.L1488: ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, [r8, #-2064] + ldreq r3, .L1501 mvneq r2, #0 + ldreq r3, [r3, #-2020] streqh r2, [r3, r9] @ movhi - beq .L1489 -.L1481: - ldr r1, .L1493+12 - movw r2, #3908 + beq .L1497 +.L1489: + ldr r1, .L1501+12 + movw r2, #3912 ldrh r2, [r1, r2] strh r7, [r5, #0] @ movhi mul r2, r2, r3 mov r3, #0 strh r3, [r5, #2] @ movhi strb r3, [r5, #6] - ldr r3, .L1493 + ldr r3, .L1501 uxth r2, r2 strh r2, [r5, #4] @ movhi - ldr r1, [r3, #-1848] + ldr r1, [r3, #-1808] str r1, [r5, #12] add r1, r1, #1 - str r1, [r3, #-1848] + str r1, [r3, #-1808] ldrh r0, [r5, #0] - ldr r1, [r3, #-2064] + ldr r1, [r3, #-2020] mov r3, r0, asl #1 strh r2, [r1, r3] @ movhi add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1494: +.L1502: .align 2 -.L1493: +.L1501: .word .LANCHOR2 - .word .LANCHOR2-1948 - .word -2048 + .word -2004 + .word .LANCHOR2-1904 .word .LANCHOR0 - .word .LANCHOR2-2052 - .word .LANCHOR2-2044 + .word .LANCHOR2-2008 + .word .LANCHOR2-2000 .fnend - .size allocate_data_superblock.part.21, .-allocate_data_superblock.part.21 + .size allocate_data_superblock.part.20, .-allocate_data_superblock.part.20 .align 2 .global allocate_data_superblock .type allocate_data_superblock, %function @@ -12924,17 +12957,17 @@ allocate_data_superblock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L1497 + ldr r3, .L1505 ldr r3, [r3, #-2092] cmp r3, #0 - bne .L1496 - bl allocate_data_superblock.part.21 -.L1496: + bne .L1504 + bl allocate_data_superblock.part.20 +.L1504: mov r0, #0 ldmfd sp!, {r3, pc} -.L1498: +.L1506: .align 2 -.L1497: +.L1505: .word .LANCHOR2 .fnend .size allocate_data_superblock, .-allocate_data_superblock @@ -12945,7 +12978,7 @@ FtlSuperblockPowerLostFix: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1508 + ldr r3, .L1516 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r4, r0 @@ -12953,30 +12986,30 @@ FtlSuperblockPowerLostFix: .pad #40 sub sp, sp, #40 cmp r7, #0 - beq .L1507 + beq .L1515 ldrb r7, [r0, #8] @ zero_extendqisi2 cmp r7, #1 ldreqh r6, [r0, #4] - beq .L1500 + beq .L1508 mov r7, #0 -.L1507: +.L1515: mov r6, #12 -.L1500: +.L1508: mvn r8, #0 - ldr r5, .L1508+4 - b .L1501 -.L1504: + ldr r5, .L1516+4 + b .L1509 +.L1512: ldrh r3, [r4, #4] cmp r3, #0 - beq .L1502 + beq .L1510 mov r0, r4 bl get_new_active_ppa cmn r0, #1 str r0, [sp, #8] - beq .L1502 + beq .L1510 ldr r2, [r5, #-940] add r0, sp, #4 - ldr r3, [r5, #-2076] + ldr r3, [r5, #-964] sub r6, r6, #1 str r8, [sp, #20] str r2, [sp, #16] @@ -12987,31 +13020,31 @@ FtlSuperblockPowerLostFix: strh r3, [r2, #2] @ movhi mov r3, #0 strh r3, [r2, #0] @ movhi - ldr r1, [r5, #-1844] + ldr r1, [r5, #-1804] cmn r1, #2 str r1, [r2, #4] addne r1, r1, #1 moveq r1, #0 mov r2, r7 - str r1, [r5, #-1844] + str r1, [r5, #-1804] mov r1, #1 bl FlashProgPages ldrh r0, [r4, #0] bl decrement_vpc_count -.L1501: +.L1509: cmp r6, #0 - bne .L1504 -.L1502: - ldr r2, .L1508+4 + bne .L1512 +.L1510: + ldr r2, .L1516+4 ldrh r3, [r4, #0] ldrh r1, [r4, #4] - ldr r2, [r2, #-2064] + ldr r2, [r2, #-2020] mov r3, r3, asl #1 ldrh r0, [r2, r3] rsb r1, r1, r0 strh r1, [r2, r3] @ movhi - ldr r2, .L1508 - movw r3, #3908 + ldr r2, .L1516 + movw r3, #3912 ldrh r3, [r2, r3] strh r3, [r4, #2] @ movhi mov r3, #0 @@ -13019,177 +13052,180 @@ FtlSuperblockPowerLostFix: strh r3, [r4, #4] @ movhi add sp, sp, #40 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1509: +.L1517: .align 2 -.L1508: +.L1516: .word .LANCHOR0 .word .LANCHOR2 .fnend .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .align 2 - .type FtlLowFormatEraseBlock.part.24, %function -FtlLowFormatEraseBlock.part.24: + .global FtlLowFormatEraseBlock + .type FtlLowFormatEraseBlock, %function +FtlLowFormatEraseBlock: .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 r8, .L1540 - mov r6, #0 - mov r9, r0 - mov sl, r1 - mov r4, r6 + .pad #28 + sub sp, sp, #28 + ldr r7, .L1547 + mov r8, r1 + ldr r9, .L1547+4 + str r0, [sp, #12] + ldr r6, [r7, #-2092] + ldrb r0, [r9, #3833] @ zero_extendqisi2 + cmp r6, #0 + str r0, [sp, #16] + movne r4, #0 + bne .L1519 + ldrb r2, [r9, #928] @ zero_extendqisi2 mov r5, r6 - ldrb r2, [r8, #928] @ zero_extendqisi2 + ldr r3, [sp, #12] + mov r4, r6 mov fp, #36 - str r0, [r8, #3972] - ldr r7, .L1540+4 str r2, [sp, #8] - b .L1511 -.L1515: + str r3, [r7, #-988] + b .L1520 +.L1524: mul r3, fp, r6 ldr r2, [r7, #-2088] mov r0, #0 - mov r1, r9 + ldr r1, [sp, #12] str r0, [r2, r3] - add r3, r8, r6 - ldrb r0, [r3, #3866] @ zero_extendqisi2 + add r3, r9, r6 + ldrb r0, [r3, #3870] @ zero_extendqisi2 bl V2P_block - cmp sl, #0 - str r0, [sp, #4] - beq .L1512 + cmp r8, #0 + mov sl, r0 + beq .L1521 bl IsBlkInVendorPart cmp r0, #0 - bne .L1513 -.L1512: - ldr r0, [sp, #4] + bne .L1522 +.L1521: + mov r0, sl bl FtlBbmIsBadBlock cmp r0, #0 - addne r5, r5, #1 - uxthne r5, r5 - bne .L1513 + addne r4, r4, #1 + uxthne r4, r4 + bne .L1522 + movw r1, #3924 ldr r3, [r7, #-2088] - ldr r1, [sp, #4] - mla r3, fp, r4, r3 - mov r2, r1, asl #10 - str r0, [r3, #8] - mov r0, #3920 - str r2, [r3, #4] - ldrh r2, [r8, r0] - mul r2, r2, r4 - add r4, r4, #1 - uxth r4, r4 + ldrh r2, [r9, r1] + mov sl, sl, asl #10 + mla r3, fp, r5, r3 + mul r2, r2, r5 + add r5, r5, #1 + uxth r5, r5 add r1, r2, #3 cmp r2, #0 + str sl, [r3, #4] movlt r2, r1 ldr r1, [r7, #-936] bic r2, r2, #3 + str r0, [r3, #8] add r2, r1, r2 str r2, [r3, #12] -.L1513: +.L1522: add r6, r6, #1 uxth r6, r6 -.L1511: - mov r1, #3840 - ldrh r3, [r8, r1] +.L1520: + movw r2, #3844 + ldr sl, .L1547+4 + ldrh r3, [r9, r2] cmp r3, r6 - bhi .L1515 - cmp r4, #0 - beq .L1517 - ldr r2, [sp, #8] - mov r8, #0 - ldr r7, .L1540+4 - mov fp, r8 - adds r6, r2, #0 - mov r2, r4 + bhi .L1524 + cmp r5, #0 + beq .L1519 + ldr r3, [sp, #8] + mov r7, #0 + ldr r9, .L1547 + mov r2, r5 + adds r6, r3, #0 + strb r7, [sl, #3833] movne r6, #1 - ldr r0, [r7, #-2088] + ldr r0, [r9, #-2088] mov r1, r6 bl FlashEraseBlocks -.L1519: - ldr r3, [r7, #-2088] - add r2, r3, r8 - ldr r3, [r3, r8] + ldr r0, [sp, #16] + strb r0, [sl, #3833] + mov sl, r7 +.L1527: + ldr r3, [r9, #-2088] + add r2, r3, r7 + ldr r3, [r3, r7] cmn r3, #1 - bne .L1518 + bne .L1526 ldr r0, [r2, #4] - add r5, r5, #1 + add r4, r4, #1 ubfx r0, r0, #10, #16 - uxth r5, r5 + uxth r4, r4 bl FtlBbmMapBadBlock -.L1518: - add fp, fp, #1 - add r8, r8, #36 - uxth fp, fp - cmp fp, r4 - bne .L1519 - cmp sl, #0 - beq .L1532 - ldr r3, .L1540 - movw r2, #3910 - ldrh r2, [r3, r2] +.L1526: + add sl, sl, #1 + add r7, r7, #36 + uxth sl, sl + cmp sl, r5 + bne .L1527 + cmp r8, #0 + moveq r2, #6 + moveq sl, #1 + streq r2, [sp, #8] + beq .L1528 + ldr r3, .L1547+4 + movw r2, #3914 + ldrh sl, [r3, r2] ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - str r2, [sp, #4] - moveq r3, r2, lsr #2 - streq r3, [sp, #8] + moveq r1, sl, lsr #2 + streq r1, [sp, #8] moveq r6, #1 - beq .L1520 - b .L1539 -.L1532: - mov r0, #1 - mov r1, #6 - stmib sp, {r0, r1} - b .L1520 -.L1539: - mov r6, #1 - str r6, [sp, #8] -.L1520: - mov r8, #0 - mov r7, r6 + movne r6, #1 + strne r6, [sp, #8] .L1528: - mov r6, #0 - ldr fp, .L1540+4 - mov r4, r6 - b .L1521 -.L1524: + mov r7, #0 +.L1536: + mov r9, #0 + ldr fp, .L1547 + mov r5, r9 + b .L1529 +.L1532: mov r0, #36 ldr r2, [fp, #-2088] - mul r3, r0, r6 + mul r3, r0, r9 mov r1, #0 str r1, [r2, r3] - mov r1, r9 - ldr r2, .L1540 - add r3, r2, r6 - ldrb r0, [r3, #3866] @ zero_extendqisi2 + ldr r2, .L1547+4 + ldr r1, [sp, #12] + add r3, r2, r9 + ldrb r0, [r3, #3870] @ zero_extendqisi2 bl V2P_block - cmp sl, #0 - str r0, [sp, #12] - beq .L1522 + cmp r8, #0 + str r0, [sp, #20] + beq .L1530 bl IsBlkInVendorPart cmp r0, #0 - bne .L1523 -.L1522: - ldr r0, [sp, #12] + bne .L1531 +.L1530: + ldr r0, [sp, #20] bl FtlBbmIsBadBlock cmp r0, #0 - bne .L1523 + bne .L1531 ldr r3, [fp, #-2088] mov r0, #36 - ldr r1, [sp, #12] - mla r3, r0, r4, r3 - add r2, r8, r1, asl #10 - ldr r1, .L1540 - mov r0, #3920 + ldr r1, [sp, #20] + mla r3, r0, r5, r3 + add r2, r7, r1, asl #10 + ldr r1, .L1547+4 + add r0, r0, #3888 str r2, [r3, #4] ldr r2, [fp, #-948] str r2, [r3, #8] ldrh r2, [r1, r0] - mul r2, r2, r4 - add r4, r4, #1 - uxth r4, r4 + mul r2, r2, r5 + add r5, r5, #1 + uxth r5, r5 add r1, r2, #3 cmp r2, #0 movlt r2, r1 @@ -13197,136 +13233,120 @@ FtlLowFormatEraseBlock.part.24: bic r2, r2, #3 add r2, r1, r2 str r2, [r3, #12] -.L1523: - add r6, r6, #1 - uxth r6, r6 -.L1521: - ldr r0, .L1540 - mov r2, #3840 - ldrh r3, [r0, r2] - cmp r3, r6 - bhi .L1524 - cmp r4, #0 - beq .L1517 - ldr r6, .L1540+4 - mov r1, r4 - mov r2, r7 +.L1531: + add r9, r9, #1 + uxth r9, r9 +.L1529: + ldr ip, .L1547+4 + movw r2, #3844 + ldrh r3, [ip, r2] + cmp r3, r9 + bhi .L1532 + cmp r5, #0 + beq .L1519 + ldr r9, .L1547 + mov r3, #0 + mov r1, r5 + strb r3, [ip, #3833] + mov r2, r6 mov r3, #1 + ldr r0, [r9, #-2088] mov fp, #0 - ldr r0, [r6, #-2088] + str ip, [sp, #4] bl FlashProgPages - mov ip, sl - mov sl, r7 - mov r7, r4 - mov r4, fp -.L1527: - ldr r2, [r6, #-2088] + ldr ip, [sp, #4] + mov r3, fp + ldr r0, [sp, #16] + strb r0, [ip, #3833] + mov ip, r8 + mov r8, r6 + mov r6, r5 + mov r5, fp +.L1535: + ldr r2, [r9, #-2088] add r1, r2, fp ldr r2, [r2, fp] cmp r2, #0 - beq .L1526 + beq .L1534 ldr r0, [r1, #4] - add r5, r5, #1 - str ip, [sp, #0] + add r4, r4, #1 + str ip, [sp, #4] ubfx r0, r0, #10, #16 - uxth r5, r5 + uxth r4, r4 bl FtlBbmMapBadBlock - ldr ip, [sp, #0] -.L1526: - add r4, r4, #1 + ldr ip, [sp, #4] +.L1534: + add r5, r5, #1 add fp, fp, #36 - uxth r4, r4 - cmp r4, r7 - bne .L1527 + uxth r5, r5 + cmp r5, r6 + bne .L1535 ldr r1, [sp, #8] - mov r4, r7 - ldr r2, [sp, #4] - mov r7, sl - add r8, r8, r1 - mov sl, ip - uxth r8, r8 - cmp r8, r2 - bcc .L1528 - ldr fp, .L1540+4 - mov r6, r7 + mov r5, r6 + mov r6, r8 + mov r8, ip + add r7, r7, r1 + uxth r7, r7 + cmp r7, sl + bcc .L1536 + ldr r9, .L1547 mov r7, #0 - mov r8, r7 -.L1530: - cmp sl, #0 - beq .L1529 - ldr r3, [fp, #-2088] + mov sl, r7 +.L1538: + cmp r8, #0 + beq .L1537 + ldr r3, [r9, #-2088] add r2, r3, r7 ldr r3, [r3, r7] cmp r3, #0 - bne .L1529 + bne .L1537 ldr r0, [r2, #4] mov r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L1529: - add r8, r8, #1 +.L1537: + add sl, sl, #1 add r7, r7, #36 - uxth r8, r8 - cmp r8, r4 - bne .L1530 - cmp r9, #63 - movhi r9, #0 - movls r9, #1 - cmp sl, #0 - moveq sl, r9 - orrne sl, r9, #1 - cmp sl, #0 - beq .L1517 - ldr r3, .L1540+4 + uxth sl, sl + cmp sl, r5 + bne .L1538 + ldr r2, [sp, #12] + cmp r2, #63 + movhi r3, #0 + movls r3, #1 + cmp r8, #0 + moveq r8, r3 + orrne r8, r3, #1 + cmp r8, #0 + beq .L1519 + ldr r3, .L1547 mov r1, r6 - mov r2, r8 + mov r2, sl ldr r0, [r3, #-2088] bl FlashEraseBlocks -.L1517: - mov r0, r5 - add sp, sp, #20 +.L1519: + mov r0, r4 + add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1541: +.L1548: .align 2 -.L1540: - .word .LANCHOR0 - .word .LANCHOR2 - .fnend - .size FtlLowFormatEraseBlock.part.24, .-FtlLowFormatEraseBlock.part.24 - .align 2 - .global FtlLowFormatEraseBlock - .type FtlLowFormatEraseBlock, %function -FtlLowFormatEraseBlock: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L1544 - ldr r3, [r3, #-2092] - cmp r3, #0 - bne .L1543 - b FtlLowFormatEraseBlock.part.24 -.L1543: - mov r0, #0 - bx lr -.L1545: - .align 2 -.L1544: +.L1547: .word .LANCHOR2 + .word .LANCHOR0 .fnend .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 2 - .type FlashTestBlk.part.25, %function -FlashTestBlk.part.25: + .type FlashTestBlk.part.23, %function +FlashTestBlk.part.23: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 -.L1547: +.L1550: stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} .pad #108 sub sp, sp, #108 - ldr r4, .L1549 + ldr r4, .L1552 mov r5, r0 mov r1, #165 add r0, sp, #40 @@ -13360,12 +13380,12 @@ FlashTestBlk.part.25: mov r0, r4 add sp, sp, #108 ldmfd sp!, {r4, r5, pc} -.L1550: +.L1553: .align 2 -.L1549: +.L1552: .word .LANCHOR2 .fnend - .size FlashTestBlk.part.25, .-FlashTestBlk.part.25 + .size FlashTestBlk.part.23, .-FlashTestBlk.part.23 .align 2 .global FlashTestBlk .type FlashTestBlk, %function @@ -13374,17 +13394,17 @@ FlashTestBlk: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1553 + ldr r3, .L1556 ldr r3, [r3, #152] cmp r0, r3 - bcc .L1552 - b FlashTestBlk.part.25 -.L1552: + bcc .L1555 + b FlashTestBlk.part.23 +.L1555: mov r0, #0 bx lr -.L1554: +.L1557: .align 2 -.L1553: +.L1556: .word .LANCHOR2 .fnend .size FlashTestBlk, .-FlashTestBlk @@ -13395,7 +13415,7 @@ FlashMakeFactorBbt: .fnstart @ args = 0, pretend = 0, frame = 72 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1583 + ldr r3, .L1586 movw r1, #3062 movw r2, #3060 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} @@ -13406,13 +13426,13 @@ FlashMakeFactorBbt: mov r5, #0 ldrh fp, [r3, r1] mov r1, #1 - ldr r4, .L1583+4 + ldr r4, .L1586+4 mul fp, fp, r2 ldr r2, [r3, #3624] ldr r0, [r4, #224] ldrb r2, [r2, #24] @ zero_extendqisi2 str r0, [sp, #28] - ldr r0, .L1583+8 + ldr r0, .L1586+8 uxth fp, fp str r2, [sp, #12] ldr r2, [r3, #856] @@ -13430,17 +13450,17 @@ FlashMakeFactorBbt: bl ftl_memset sub r3, fp, #1 mov r2, fp, lsr #4 - ldr r4, .L1583 + ldr r4, .L1586 uxth r3, r3 str r2, [sp, #20] str r3, [sp, #24] - b .L1557 -.L1579: - ldr r3, .L1583+4 + b .L1560 +.L1582: + ldr r3, .L1586+4 add r2, r3, r5, asl #1 ldrh r6, [r2, #228] cmp r6, #0 - bne .L1558 + bne .L1561 movw r2, #3068 ldr r0, [r3, #144] ldrh r2, [r4, r2] @@ -13452,14 +13472,14 @@ FlashMakeFactorBbt: bl ftl_memset add r3, r4, r5 ldrb r9, [r3, #3764] @ zero_extendqisi2 - b .L1559 -.L1567: + b .L1562 +.L1570: mvn r3, #0 strb r3, [sp, #34] strb r3, [sp, #35] ldr r3, [sp, #12] tst r3, #1 - beq .L1560 + beq .L1563 ldr r3, [sl, #3588] add r2, sp, #34 mov r0, r9 @@ -13470,7 +13490,7 @@ FlashMakeFactorBbt: ldrb r2, [r4, #852] @ zero_extendqisi2 ldr r3, [sp, #4] cmp r2, #1 - bne .L1560 + bne .L1563 ldr r1, [r4, #856] add r2, sp, #35 mov r0, r9 @@ -13480,10 +13500,10 @@ FlashMakeFactorBbt: ldrb r2, [sp, #35] @ zero_extendqisi2 and r3, r2, r3 strb r3, [sp, #34] -.L1560: +.L1563: ldr r0, [sp, #12] tst r0, #2 - beq .L1561 + beq .L1564 ldr r3, [r4, #3624] mov r0, r9 add r2, sp, #35 @@ -13493,42 +13513,42 @@ FlashMakeFactorBbt: add r1, r1, r3 add r1, r1, r6 bl FlashReadSpare -.L1561: +.L1564: ldr r3, [r4, #3624] ldrb r3, [r3, #7] @ zero_extendqisi2 cmp r3, #1 cmpne r3, #8 ldrb r3, [sp, #34] @ zero_extendqisi2 - bne .L1562 + bne .L1565 cmp r3, #0 - beq .L1581 + beq .L1584 ldrb r0, [sp, #35] @ zero_extendqisi2 rsbs r0, r0, #1 movcc r0, #0 - b .L1563 -.L1562: + b .L1566 +.L1565: cmp r3, #255 - bne .L1581 + bne .L1584 ldrb r0, [sp, #35] @ zero_extendqisi2 subs r0, r0, #255 movne r0, #1 - b .L1563 -.L1581: + b .L1566 +.L1584: mov r0, #1 -.L1563: +.L1566: ldr r2, [sp, #12] tst r2, #4 - beq .L1564 + beq .L1567 ldr r1, [sl, #3588] mov r0, r9 add r1, r6, r1 bl SandiskProgTestBadBlock -.L1564: +.L1567: cmp r0, #0 - beq .L1565 + beq .L1568 mov r1, r5 mov r2, r8 - ldr r0, .L1583+12 + ldr r0, .L1586+12 add r7, r7, #1 bl printk ldr r3, [sp, #16] @@ -13536,7 +13556,7 @@ FlashMakeFactorBbt: mov ip, #1 uxth r7, r7 mov r2, r3, lsr #5 - ldr r3, .L1583+4 + ldr r3, .L1586+4 ldr r3, [r3, #144] ldr r1, [r3, r2, asl #2] orr r1, r1, ip, asl r0 @@ -13545,18 +13565,18 @@ FlashMakeFactorBbt: ldrb r3, [r4, #3762] @ zero_extendqisi2 mul r3, r3, r0 cmp r7, r3 - bgt .L1566 -.L1565: + bgt .L1569 +.L1568: ldr r2, [sp, #8] add r8, r8, #1 add r6, r6, r2 -.L1559: +.L1562: uxth r3, r8 str r3, [sp, #16] cmp r3, fp - bcc .L1567 -.L1566: - ldr r0, .L1583+16 + bcc .L1570 +.L1569: + ldr r0, .L1586+16 mov r1, r5 mov r2, r7 bl printk @@ -13564,29 +13584,29 @@ FlashMakeFactorBbt: ldr r0, [sp, #20] mul r3, r3, r0 cmp r7, r3 - blt .L1568 + blt .L1571 movw r3, #3068 mov r1, #0 ldrh r2, [r4, r3] - ldr r3, .L1583+4 + ldr r3, .L1586+4 mov r2, r2, asl #9 ldr r0, [r3, #144] bl ftl_memset -.L1568: +.L1571: cmp r5, #0 - bne .L1569 - ldr sl, .L1583+4 + bne .L1572 + ldr sl, .L1586+4 mov r8, r5 mov r7, r5 ldrh r9, [sl, #152] - b .L1570 -.L1572: + b .L1573 +.L1575: mov r0, r6 bl FlashTestBlk cmp r0, #0 - beq .L1571 + beq .L1574 mov r1, r6 - ldr r0, .L1583+20 + ldr r0, .L1586+20 bl printk ldr r3, [sl, #144] mov r2, r6, lsr #5 @@ -13597,27 +13617,27 @@ FlashMakeFactorBbt: uxth r7, r7 orr r6, r1, r0, asl r6 str r6, [r3, r2, asl #2] -.L1571: +.L1574: add r8, r8, #1 uxth r8, r8 -.L1570: +.L1573: add r6, r8, r9 ldrb r3, [r4, #853] @ zero_extendqisi2 uxth r6, r6 cmp r3, r6 - bhi .L1572 + bhi .L1575 ldr r6, [sp, #24] sub r9, fp, #50 - ldr sl, .L1583+4 + ldr sl, .L1586+4 mov r8, #1 - b .L1573 -.L1575: + b .L1576 +.L1578: mov r0, r6 bl FlashTestBlk cmp r0, #0 - beq .L1574 + beq .L1577 mov r1, r6 - ldr r0, .L1583+20 + ldr r0, .L1586+20 bl printk ldr r3, [sl, #144] mov r2, r6, lsr #5 @@ -13625,48 +13645,48 @@ FlashMakeFactorBbt: ldr r1, [r3, r2, asl #2] orr r1, r1, r8, asl r0 str r1, [r3, r2, asl #2] -.L1574: +.L1577: sub r6, r6, #1 uxth r6, r6 -.L1573: +.L1576: cmp r6, r9 - bgt .L1575 - ldr r3, .L1583+4 + bgt .L1578 + ldr r3, .L1586+4 ldrb r1, [r4, #853] @ zero_extendqisi2 ldr r2, [r3, #152] rsb r2, r2, r1 cmp r7, r2 - bcc .L1569 + bcc .L1572 movw r2, #3068 ldr r0, [r3, #144] ldrh r2, [r4, r2] mov r1, #0 mov r2, r2, asl #9 bl ftl_memset -.L1569: +.L1572: mul r8, fp, r5 - ldr r7, .L1583+4 + ldr r7, .L1586+4 ldr r6, [sp, #24] ldr r9, [sp, #28] add sl, r7, r5, asl #1 -.L1576: - ldr r0, .L1583+24 +.L1579: + ldr r0, .L1586+24 mov r1, r5 mov r2, r6 bl printk ldr r3, [r7, #144] - b .L1577 -.L1578: + b .L1580 +.L1581: sub r6, r6, #1 uxth r6, r6 -.L1577: +.L1580: 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 .L1578 - ldr r3, .L1583+28 + bne .L1581 + ldr r3, .L1586+28 mov r1, #1 strh r6, [sl, #228] @ movhi add r0, sp, #36 @@ -13691,26 +13711,26 @@ FlashMakeFactorBbt: cmp r3, #0 subne r6, r6, #1 uxthne r6, r6 - bne .L1576 -.L1558: + bne .L1579 +.L1561: add r5, r5, #1 uxtb r5, r5 -.L1557: +.L1560: ldrb r3, [r4, #3762] @ zero_extendqisi2 cmp r3, r5 - bhi .L1579 + bhi .L1582 add sp, sp, #76 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1584: +.L1587: .align 2 -.L1583: +.L1586: .word .LANCHOR0 .word .LANCHOR2 - .word .LC108 - .word .LC109 - .word .LC110 .word .LC111 .word .LC112 + .word .LC113 + .word .LC114 + .word .LC115 .word -3872 .fnend .size FlashMakeFactorBbt, .-FlashMakeFactorBbt @@ -13731,88 +13751,88 @@ ftl_map_blk_gc: ldrh r2, [r4, #8] sub r3, ip, #4 cmp r2, r3 - bge .L1586 + bge .L1589 ldrh r2, [r4, #40] movw r3, #65535 cmp r2, r3 - beq .L1587 - ldr r1, .L1599 - movw r3, #3910 + beq .L1590 + ldr r1, .L1602 + movw r3, #3914 ldrh r2, [r4, #2] ldrh r3, [r1, r3] cmp r2, r3 - bcc .L1587 -.L1586: + bcc .L1590 +.L1589: ldrh r1, [r4, #40] movw r3, #65535 uxth r7, r0 cmp r1, r3 - beq .L1588 - ldr r0, .L1599 - movw r2, #3910 + beq .L1591 + ldr r0, .L1602 + movw r2, #3914 ldrh r3, [r4, #2] ldrh r2, [r0, r2] cmp r2, r3 movls r0, r6 movls r2, #0 - bhi .L1588 - b .L1589 -.L1591: + bhi .L1591 + b .L1592 +.L1594: ldrh lr, [r0], #2 cmp lr, r1 - beq .L1598 + beq .L1601 add r2, r2, #1 uxth r2, r2 -.L1589: +.L1592: cmp r2, ip - bne .L1591 - b .L1590 -.L1598: + bne .L1594 + b .L1593 +.L1601: mov r7, r2 -.L1590: +.L1593: mov r2, r2, asl #1 - ldr r0, .L1599+4 + ldr r0, .L1602+4 ldrh r2, [r6, r2] bl printk mvn r3, #0 strh r3, [r4, #40] @ movhi -.L1588: +.L1591: mov r7, r7, asl #1 ldrh r8, [r6, r7] cmp r8, #0 - beq .L1587 + beq .L1590 ldr r3, [r4, #32] cmp r3, #0 - bne .L1587 + bne .L1590 mov r2, #1 - ldr r1, .L1599 + ldr r1, .L1602 str r2, [r4, #32] strh r3, [r6, r7] @ movhi ldrh r3, [r4, #8] ldrh r2, [r4, #2] sub r3, r3, #1 strh r3, [r4, #8] @ movhi - movw r3, #3910 + movw r3, #3914 ldrh r3, [r1, r3] cmp r2, r3 - bcc .L1592 + bcc .L1595 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L1592: +.L1595: mov r7, #0 - ldr r6, .L1599+8 + ldr r6, .L1602+8 mov fp, r7 - b .L1593 -.L1596: + b .L1596 +.L1599: ldr r3, [r5, r7, asl #2] mov r9, r7, asl #2 cmp r8, r3, lsr #10 - bne .L1594 + bne .L1597 ldr r3, [r6, #-960] mov r1, #1 ldr sl, [r6, #-940] mov r2, r1 - ldr r0, .L1599+12 + ldr r0, .L1602+12 str r3, [r6, #184] str sl, [r6, #188] ldr r3, [r5, r7, asl #2] @@ -13820,52 +13840,52 @@ ftl_map_blk_gc: bl FlashReadPages ldr r3, [r6, #176] cmn r3, #1 - bne .L1595 + bne .L1598 str fp, [r5, r9] - ldr r0, .L1599+16 + ldr r0, .L1602+16 ldr r1, [r6, #180] ldrh r2, [sl, #8] bl printk mov r3, #1 str r3, [r6, #-2092] - b .L1594 -.L1595: + b .L1597 +.L1598: mov r0, r4 mov r1, r7 ldr r2, [r6, #184] bl FtlMapWritePage -.L1594: +.L1597: add r7, r7, #1 uxth r7, r7 -.L1593: +.L1596: ldrh r3, [r4, #6] cmp r3, r7 - bhi .L1596 + bhi .L1599 mov r0, r8 mov r1, #1 bl FtlFreeSysBlkQueueIn mov r3, #0 str r3, [r4, #32] -.L1587: - ldr r1, .L1599 - movw r3, #3910 +.L1590: + ldr r1, .L1602 + movw r3, #3914 ldrh r2, [r4, #2] ldrh r3, [r1, r3] cmp r2, r3 - bcc .L1597 + bcc .L1600 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L1597: +.L1600: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1600: +.L1603: .align 2 -.L1599: +.L1602: .word .LANCHOR0 - .word .LC113 + .word .LC116 .word .LANCHOR2 .word .LANCHOR2+176 - .word .LC114 + .word .LC117 .fnend .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 2 @@ -13878,16 +13898,16 @@ Ftl_write_map_blk_to_last_page: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r4, r0 - ldr r5, .L1607 + ldr r5, .L1610 ldr r7, [r0, #12] ldr r8, [r0, #24] ldr r6, [r5, #-2092] cmp r6, #0 - bne .L1602 + bne .L1605 ldrh r3, [r0, #0] movw r2, #65535 cmp r3, r2 - bne .L1603 + bne .L1606 ldrh r3, [r0, #8] add r3, r3, #1 strh r3, [r0, #8] @ movhi @@ -13898,8 +13918,8 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r6, [r4, #0] @ movhi str r3, [r4, #28] - b .L1602 -.L1603: + b .L1605 +.L1606: mov r3, r3, asl #1 ldr r2, [r0, #28] mov r1, #255 @@ -13907,46 +13927,46 @@ Ftl_write_map_blk_to_last_page: ldrh r3, [r0, #2] orr r3, r3, r7, asl #10 str r3, [r5, #180] - ldr r3, [r5, #-2076] + ldr r3, [r5, #-964] str r3, [r5, #184] ldr r3, [r5, #-940] str r3, [r5, #188] str r2, [r3, #4] - ldr r2, .L1607+4 + ldr r2, .L1610+4 strh r2, [r3, #8] @ movhi ldrh r2, [r0, #4] strh r7, [r3, #2] @ movhi strh r2, [r3, #0] @ movhi - movw r3, #3910 - ldr r2, .L1607+8 - ldr r0, [r5, #-2076] + movw r3, #3914 + ldr r2, .L1610+8 + ldr r0, [r5, #-964] ldrh r2, [r2, r3] mov r2, r2, asl #3 bl ftl_memset mov r3, r6 - b .L1604 -.L1606: + b .L1607 +.L1609: ldr r2, [r8, r3, asl #2] cmp r7, r2, lsr #10 - bne .L1605 + bne .L1608 add r6, r6, #1 - ldr r2, [r5, #-2076] + ldr r2, [r5, #-964] uxth r6, r6 str r3, [r2, r6, asl #3] - ldr r2, [r5, #-2076] + ldr r2, [r5, #-964] ldr r1, [r8, r3, asl #2] add r2, r2, r6, asl #3 str r1, [r2, #4] -.L1605: +.L1608: add r3, r3, #1 uxth r3, r3 -.L1604: +.L1607: ldrh r2, [r4, #6] cmp r2, r3 - bhi .L1606 + bhi .L1609 mov r1, #1 mov r3, #0 - ldr r0, .L1607+12 + ldr r0, .L1610+12 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -13954,12 +13974,12 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L1602: +.L1605: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1608: +.L1611: .align 2 -.L1607: +.L1610: .word .LANCHOR2 .word -1291 .word .LANCHOR0 @@ -13967,37 +13987,37 @@ Ftl_write_map_blk_to_last_page: .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 - .type FtlMapWritePage.part.15, %function -FtlMapWritePage.part.15: + .type FtlMapWritePage.part.14, %function +FtlMapWritePage.part.14: .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} mov r4, r0 - ldr r5, .L1622 + ldr r5, .L1625 mov sl, r1 - ldr r8, .L1622+4 + ldr r8, .L1625+4 mov r9, r2 mov r6, #0 -.L1620: - ldr r3, [r5, #-1864] +.L1623: + ldr r3, [r5, #-1824] add r3, r3, #1 - str r3, [r5, #-1864] - movw r3, #3910 + str r3, [r5, #-1824] + movw r3, #3914 ldrh r2, [r4, #2] ldrh r3, [r8, r3] sub r3, r3, #1 cmp r2, r3 - bge .L1611 + bge .L1614 ldrh r2, [r4, #0] movw r3, #65535 cmp r2, r3 - bne .L1612 -.L1611: + bne .L1615 +.L1614: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L1612: +.L1615: ldrh r3, [r4, #0] mov r1, #0 ldr r2, [r4, #12] @@ -14014,7 +14034,7 @@ FtlMapWritePage.part.15: ldr r3, [r5, #188] mov r1, #1 ldr r2, [r4, #28] - ldr r0, .L1622+8 + ldr r0, .L1625+8 strh sl, [r3, #8] @ movhi str r2, [r3, #4] ldrh r2, [r4, #4] @@ -14029,50 +14049,50 @@ FtlMapWritePage.part.15: strh r2, [r4, #2] @ movhi ldr r3, [r5, #176] cmn r3, #1 - bne .L1613 - ldr r0, .L1622+12 + bne .L1616 + ldr r0, .L1625+12 add r6, r6, #1 ldr r1, [r5, #180] bl printk ldrh r3, [r4, #2] uxth r6, r6 cmp r3, #2 - movwls r3, #3910 + movwls r3, #3914 ldrlsh r3, [r8, r3] subls r3, r3, #1 strlsh r3, [r4, #2] @ movhi cmp r6, #3 - bls .L1620 - ldr r4, .L1622 + bls .L1623 + ldr r4, .L1625 mov r2, r6 - ldr r0, .L1622+16 + ldr r0, .L1625+16 ldr r1, [r4, #180] bl printk mov r3, #1 str r3, [r4, #-2092] ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L1613: +.L1616: cmp r3, #0 strneh r7, [r4, #40] @ movhi cmp r2, #1 - beq .L1620 + beq .L1623 cmp r3, #256 - beq .L1620 - ldr r3, .L1622 + beq .L1623 + ldr r3, .L1625 ldr r2, [r3, #180] ldr r3, [r4, #24] str r2, [r3, sl, asl #2] ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L1623: +.L1626: .align 2 -.L1622: +.L1625: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR2+176 - .word .LC115 - .word .LC116 + .word .LC118 + .word .LC119 .fnend - .size FtlMapWritePage.part.15, .-FtlMapWritePage.part.15 + .size FtlMapWritePage.part.14, .-FtlMapWritePage.part.14 .align 2 .global FtlMapWritePage .type FtlMapWritePage, %function @@ -14082,17 +14102,17 @@ FtlMapWritePage: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L1626 + ldr r3, .L1629 ldr r3, [r3, #-2092] cmp r3, #0 - bne .L1625 - bl FtlMapWritePage.part.15 -.L1625: + bne .L1628 + bl FtlMapWritePage.part.14 +.L1628: mov r0, #0 ldmfd sp!, {r3, pc} -.L1627: +.L1630: .align 2 -.L1626: +.L1629: .word .LANCHOR2 .fnend .size FtlMapWritePage, .-FtlMapWritePage @@ -14106,26 +14126,26 @@ flush_l2p_region: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #12 - ldr r5, .L1629 + ldr r5, .L1632 mul r4, r4, r0 - ldr r0, .L1629+4 - ldr r2, [r5, #-1900] + ldr r0, .L1632+4 + ldr r2, [r5, #-1856] add r3, r2, r4 ldrh r1, [r2, r4] ldr r2, [r3, #8] bl FtlMapWritePage - ldr r3, [r5, #-1900] + ldr r3, [r5, #-1856] mov r0, #0 add r4, r3, r4 ldr r3, [r4, #4] bic r3, r3, #-2147483648 str r3, [r4, #4] ldmfd sp!, {r3, r4, r5, pc} -.L1630: +.L1633: .align 2 -.L1629: +.L1632: .word .LANCHOR2 - .word .LANCHOR2-1084 + .word .LANCHOR2-1092 .fnend .size flush_l2p_region, .-flush_l2p_region .align 2 @@ -14145,7 +14165,7 @@ FtlMapBlkWriteDumpData: ldmeqfd sp!, {r3, r4, r5, pc} mov r3, #0 str r3, [r0, #36] - ldr r3, .L1635 + ldr r3, .L1638 ldr r1, [r3, #-2092] cmp r1, #0 ldmnefd sp!, {r3, r4, r5, pc} @@ -14158,28 +14178,28 @@ FtlMapBlkWriteDumpData: ldr r2, [r2, r5, asl #2] cmp r2, #0 str r2, [r3, #180] - beq .L1633 + beq .L1636 mov r1, #1 add r0, r3, #176 mov r2, r1 bl FlashReadPages - b .L1634 -.L1633: - ldr r2, .L1635+4 - movw r3, #3918 + b .L1637 +.L1636: + ldr r2, .L1638+4 + movw r3, #3922 mov r1, #255 ldrh r2, [r2, r3] bl ftl_memset -.L1634: - ldr r3, .L1635 +.L1637: + ldr r3, .L1638 mov r0, r4 mov r1, r5 ldr r2, [r3, #184] ldmfd sp!, {r3, r4, r5, lr} b FtlMapWritePage -.L1636: +.L1639: .align 2 -.L1635: +.L1638: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -14191,14 +14211,14 @@ FtlVendorPartRead: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1648 + ldr r3, .L1651 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r9, r2 - movw r2, #3916 + mov r2, #3920 mov r5, r1 ldrh r7, [r3, r2] - movw r2, #3902 + movw r2, #3906 ldrh r2, [r3, r2] add r1, r1, r0 .pad #52 @@ -14206,20 +14226,20 @@ FtlVendorPartRead: mov r8, r0 cmp r1, r2 mvnhi fp, #0 - bhi .L1638 + bhi .L1641 mov r7, r0, lsr r7 mov fp, #0 - ldr r6, .L1648+4 + ldr r6, .L1651+4 mov r2, r7, asl #2 str r2, [sp, #0] - b .L1639 -.L1645: + b .L1642 +.L1648: ldr r3, [r6, #-908] mov r0, r8 ldr r2, [sp, #0] ldr sl, [r3, r2] - movw r3, #3914 - ldr r2, .L1648 + movw r3, #3918 + ldr r2, .L1651 ldrh r4, [r2, r3] mov r1, r4 bl __aeabi_uidivmod @@ -14230,8 +14250,8 @@ FtlVendorPartRead: cmp r4, r5 uxthhi r4, r5 cmp sl, #0 - beq .L1641 - ldr r2, .L1648+4 + beq .L1644 + ldr r2, .L1651+4 mov r1, #1 add r0, sp, #12 str sl, [sp, #16] @@ -14246,29 +14266,29 @@ FtlVendorPartRead: moveq fp, r3 ldr r3, [r6, #176] cmp r3, #256 - bne .L1643 + bne .L1646 mov r1, r7 mov r2, sl - ldr r0, .L1648+8 + ldr r0, .L1651+8 bl printk - ldr r0, .L1648+12 + ldr r0, .L1651+12 mov r1, r7 ldr r2, [r6, #-956] bl FtlMapWritePage -.L1643: +.L1646: ldr r3, [sp, #4] mov r0, r9 ldr r1, [r6, #-956] mov r2, r4, asl #9 add r1, r1, r3, asl #9 bl memcpy - b .L1644 -.L1641: + b .L1647 +.L1644: mov r0, r9 mov r1, sl mov r2, r4, asl #9 bl ftl_memset -.L1644: +.L1647: ldr r3, [sp, #0] add r7, r7, #1 rsb r5, r4, r5 @@ -14276,19 +14296,19 @@ FtlVendorPartRead: add r9, r9, r4, asl #9 add r3, r3, #4 str r3, [sp, #0] -.L1639: +.L1642: cmp r5, #0 - bne .L1645 -.L1638: + bne .L1648 +.L1641: mov r0, fp add sp, sp, #52 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1649: +.L1652: .align 2 -.L1648: +.L1651: .word .LANCHOR0 .word .LANCHOR2 - .word .LC117 + .word .LC120 .word .LANCHOR2+244 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead @@ -14302,85 +14322,84 @@ Ftl_load_ext_data: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #0 - ldr r5, .L1654 + ldr r4, .L1657 mov r1, #1 - ldr r2, .L1654+4 + ldr r5, .L1657+4 + sub r2, r4, #1712 bl FtlVendorPartRead - ldr r4, .L1654+8 - ldr r3, [r5, #-1704] - cmp r3, r4 - beq .L1651 - ldr r0, .L1654+4 + ldr r3, [r4, #-1712] + cmp r3, r5 + beq .L1654 + sub r0, r4, #1712 mov r1, #0 mov r2, #512 bl ftl_memset - str r4, [r5, #-1704] -.L1651: - ldr r2, [r5, #-1704] - ldr r3, .L1654 - cmp r2, r4 - bne .L1652 - ldr r2, [r3, #-1616] - str r2, [r3, #-1856] - ldr r2, [r3, #-1612] - str r2, [r3, #-1852] + str r5, [r4, #-1712] +.L1654: + ldr r2, [r4, #-1712] + ldr r3, .L1657 + cmp r2, r5 + bne .L1655 + ldr r2, [r3, #-1624] + str r2, [r3, #-1816] + ldr r2, [r3, #-1620] + str r2, [r3, #-1812] + ldr r2, [r3, #-1704] + str r2, [r3, #-1820] + ldr r2, [r3, #-1700] + str r2, [r3, #-1832] ldr r2, [r3, #-1696] - str r2, [r3, #-1860] + str r2, [r3, #-1840] ldr r2, [r3, #-1692] - str r2, [r3, #-1872] - ldr r2, [r3, #-1688] - str r2, [r3, #-1880] + str r2, [r3, #-1824] ldr r2, [r3, #-1684] - str r2, [r3, #-1864] + str r2, [r3, #-1796] + ldr r2, [r3, #-1680] + str r2, [r3, #-2080] ldr r2, [r3, #-1676] str r2, [r3, #-1836] ldr r2, [r3, #-1672] - str r2, [r3, #-2080] + str r2, [r3, #-1828] ldr r2, [r3, #-1668] - str r2, [r3, #-1876] + str r2, [r3, #-1788] ldr r2, [r3, #-1664] - str r2, [r3, #-1868] - ldr r2, [r3, #-1660] - str r2, [r3, #-1828] - ldr r2, [r3, #-1656] - str r2, [r3, #-1824] - ldr r2, [r3, #-1644] - str r2, [r3, #-1708] -.L1652: - ldr r4, .L1654 + str r2, [r3, #-1784] + ldr r2, [r3, #-1652] + str r2, [r3, #-1716] +.L1655: + ldr r4, .L1657 mov r3, #0 - ldr r2, [r4, #-1636] - str r3, [r4, #-996] - ldr r3, .L1654+12 + ldr r5, .L1657+8 + str r3, [r4, #-1004] + ldr r2, [r4, #-1644] + ldr r3, .L1657+12 cmp r2, r3 - bne .L1653 + bne .L1656 mov r3, #1 - ldr r0, .L1654+16 - str r3, [r4, #-1884] - ldr r1, .L1654+20 + ldr r0, .L1657+16 + str r3, [r5, #3836] + ldr r1, .L1657+20 bl printk -.L1653: - ldr r3, .L1654+24 - movw r2, #3898 - ldr r0, [r4, #-1840] - ldrh r1, [r3, r2] - ldr r2, [r4, #-1836] - mla r0, r0, r1, r2 - movw r2, #3848 - ldrh r1, [r3, r2] +.L1656: + movw r3, #3902 + ldr r0, [r4, #-1800] + ldrh r2, [r5, r3] + ldr r3, [r4, #-1796] + mla r0, r0, r2, r3 + movw r3, #3852 + ldrh r1, [r5, r3] bl __aeabi_uidiv - str r0, [r4, #-1832] + str r0, [r4, #-1792] ldmfd sp!, {r3, r4, r5, pc} -.L1655: +.L1658: .align 2 -.L1654: +.L1657: .word .LANCHOR2 - .word .LANCHOR2-1704 .word 1179929683 - .word 305432421 - .word .LC75 - .word .LC118 .word .LANCHOR0 + .word 305432421 + .word .LC78 + .word .LC121 .fnend .size Ftl_load_ext_data, .-Ftl_load_ext_data .align 2 @@ -14393,35 +14412,35 @@ FtlLoadEctTbl: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #64 - ldr r4, .L1658 - ldr r5, .L1658+4 + ldr r4, .L1661 + ldr r5, .L1661+4 ldr r2, [r4, #-924] ldrh r1, [r4, r5] bl FtlVendorPartRead ldr r3, [r4, #-924] ldr r2, [r3, #0] - ldr r3, .L1658+8 + ldr r3, .L1661+8 cmp r2, r3 - beq .L1657 - ldr r1, .L1658+12 - ldr r0, .L1658+16 + beq .L1660 + ldr r1, .L1661+12 + ldr r0, .L1661+16 bl printk ldrh r2, [r4, r5] ldr r0, [r4, #-924] mov r1, #0 mov r2, r2, asl #9 bl ftl_memset -.L1657: +.L1660: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L1659: +.L1662: .align 2 -.L1658: +.L1661: .word .LANCHOR2 .word -928 .word 1112818501 - .word .LC119 - .word .LC75 + .word .LC122 + .word .LC78 .fnend .size FtlLoadEctTbl, .-FtlLoadEctTbl .align 2 @@ -14431,14 +14450,14 @@ FtlVendorPartWrite: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1670 + ldr r3, .L1673 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r9, r2 - movw r2, #3916 + mov r2, #3920 mov r4, r1 ldrh r8, [r3, r2] - movw r2, #3902 + movw r2, #3906 ldrh r2, [r3, r2] add r1, r1, r0 .pad #60 @@ -14446,16 +14465,16 @@ FtlVendorPartWrite: mov r6, r0 cmp r1, r2 mvnhi r7, #0 - bhi .L1661 + bhi .L1664 mov r8, r0, lsr r8 mov r7, #0 - ldr sl, .L1670+4 + ldr sl, .L1673+4 mov ip, r8, asl #2 str ip, [sp, #8] - b .L1662 -.L1667: - ldr r1, .L1670 - movw r2, #3914 + b .L1665 +.L1670: + ldr r1, .L1673 + movw r2, #3918 ldr ip, [sp, #8] mov r0, r6 ldr r3, [sl, #-908] @@ -14465,7 +14484,7 @@ FtlVendorPartWrite: str r3, [sp, #4] bl __aeabi_uidivmod ldr r3, [sp, #4] - ldr r2, .L1670+4 + ldr r2, .L1673+4 uxth r1, r1 str r1, [sp, #12] rsb r5, r1, fp @@ -14473,9 +14492,9 @@ FtlVendorPartWrite: cmp r5, r4 uxthhi r5, r4 cmp r3, #0 - beq .L1664 + beq .L1667 cmp r5, fp - beq .L1664 + beq .L1667 str r3, [sp, #24] mov r1, #1 ldr r3, [r2, #-956] @@ -14485,15 +14504,15 @@ FtlVendorPartWrite: mov r3, #0 str r3, [sp, #32] bl FlashReadPages - b .L1665 -.L1664: - ldr ip, .L1670 - movw r3, #3918 + b .L1668 +.L1667: + ldr ip, .L1673 + movw r3, #3922 ldr r0, [r2, #-956] mov r1, #0 ldrh r2, [ip, r3] bl ftl_memset -.L1665: +.L1668: ldr r3, [sp, #12] mov fp, r5, asl #9 ldr r0, [sl, #-956] @@ -14504,7 +14523,7 @@ FtlVendorPartWrite: add r6, r6, r5 bl memcpy mov r1, r8 - ldr r0, .L1670+8 + ldr r0, .L1673+8 add r8, r8, #1 ldr r2, [sl, #-956] add r9, r9, fp @@ -14514,16 +14533,16 @@ FtlVendorPartWrite: str ip, [sp, #8] cmn r0, #1 moveq r7, r0 -.L1662: +.L1665: cmp r4, #0 - bne .L1667 -.L1661: + bne .L1670 +.L1664: mov r0, r7 add sp, sp, #60 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1671: +.L1674: .align 2 -.L1670: +.L1673: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2+244 @@ -14537,52 +14556,51 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1674 - ldr r2, .L1674+4 - ldr r1, [r3, #-1704] - cmp r1, r2 + ldr r2, .L1677 + ldr r3, .L1677+4 + ldr r1, [r2, #-1712] + cmp r1, r3 bxne lr - ldr r2, .L1674+8 + ldr r3, .L1677+8 mov r0, #0 mov r1, #1 - str r2, [r3, #-1700] - ldr r2, [r3, #-1856] - str r2, [r3, #-1616] - ldr r2, [r3, #-1852] - str r2, [r3, #-1612] - ldr r2, [r3, #-1860] - str r2, [r3, #-1696] - ldr r2, [r3, #-1872] - str r2, [r3, #-1692] - ldr r2, [r3, #-1880] - str r2, [r3, #-1688] - ldr r2, [r3, #-1864] - str r2, [r3, #-1684] - ldr r2, [r3, #-1836] - str r2, [r3, #-1676] - ldr r2, [r3, #-2080] - str r2, [r3, #-1672] - ldr r2, [r3, #-1876] - str r2, [r3, #-1668] - ldr r2, [r3, #-1868] - str r2, [r3, #-1664] - ldr r2, [r3, #-1828] - str r2, [r3, #-1660] - ldr r2, [r3, #-1824] - str r2, [r3, #-1656] - ldr r2, [r3, #-1708] - str r2, [r3, #-1644] - ldr r2, [r3, #-996] - str r2, [r3, #-1640] - ldr r2, .L1674+12 + str r3, [r2, #-1708] + ldr r3, [r2, #-1816] + str r3, [r2, #-1624] + ldr r3, [r2, #-1812] + str r3, [r2, #-1620] + ldr r3, [r2, #-1820] + str r3, [r2, #-1704] + ldr r3, [r2, #-1832] + str r3, [r2, #-1700] + ldr r3, [r2, #-1840] + str r3, [r2, #-1696] + ldr r3, [r2, #-1824] + str r3, [r2, #-1692] + ldr r3, [r2, #-1796] + str r3, [r2, #-1684] + ldr r3, [r2, #-2080] + str r3, [r2, #-1680] + ldr r3, [r2, #-1836] + str r3, [r2, #-1676] + ldr r3, [r2, #-1828] + str r3, [r2, #-1672] + ldr r3, [r2, #-1788] + str r3, [r2, #-1668] + ldr r3, [r2, #-1784] + str r3, [r2, #-1664] + ldr r3, [r2, #-1716] + str r3, [r2, #-1652] + ldr r3, [r2, #-1004] + str r3, [r2, #-1648] + sub r2, r2, #1712 b FtlVendorPartWrite -.L1675: +.L1678: .align 2 -.L1674: +.L1677: .word .LANCHOR2 .word 1179929683 - .word 1342177351 - .word .LANCHOR2-1704 + .word 1342177352 .fnend .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 2 @@ -14592,42 +14610,43 @@ FtlEctTblFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L1683 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, [r1, #-1884] + ldr r3, .L1686 + ldr r1, .L1686+4 + ldr r3, [r3, #3836] cmp r3, #0 moveq r2, #32 - beq .L1677 - ldr r2, [r1, #-1824] + beq .L1680 + ldr r2, [r1, #-1784] cmp r2, #29 movls r2, #4 movhi r2, #32 -.L1677: +.L1680: mov r3, #288 ldrh r1, [r1, r3] cmp r1, #31 addls r1, r1, #1 - ldrls r2, .L1683 + ldrls r2, .L1686+4 strlsh r1, [r2, r3] @ movhi movls r2, #1 cmp r0, #0 - ldr r3, .L1683 - bne .L1679 + ldr r3, .L1686+4 + bne .L1682 ldr r1, [r3, #-924] ldr r0, [r1, #20] ldr r1, [r1, #16] add r2, r2, r0 cmp r1, r2 - bcc .L1680 -.L1679: + bcc .L1683 +.L1682: ldr r2, [r3, #-924] mov r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L1683+4 + ldr r1, .L1686+8 str r1, [r2, #0] - ldr r1, .L1683+8 + ldr r1, .L1686+12 ldr r2, [r3, #-924] ldrh r1, [r3, r1] mov r3, r1, asl #9 @@ -14639,450 +14658,51 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L1680: +.L1683: mov r0, #0 ldmfd sp!, {r3, pc} -.L1684: +.L1687: .align 2 -.L1683: +.L1686: + .word .LANCHOR0 .word .LANCHOR2 .word 1112818501 .word -928 .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 #36 - sub sp, sp, #36 - ldr r3, [r0, #16] - mov r4, r0 - ldrh r8, [r0, #6] - mov r1, #0 - ldr fp, [r0, #24] - mov r7, #0 - str r3, [sp, #24] - ldrh r3, [r0, #8] - mov r2, r8, asl #2 - ldr r9, [r0, #12] - mov r0, fp - mov sl, r8 - str r3, [sp, #16] - bl ftl_memset - ldr r3, .L1721 - str r7, [r4, #32] - str r7, [r4, #28] - ldr r2, [r3, #-2076] - ldr r5, [r3, #-940] - str r2, [r3, #184] - str r5, [r3, #188] - 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, .L1721+4 - b .L1686 -.L1700: - ldr r0, [sp, #20] - cmp r2, r0 - mov r2, r2, asl #1 - bne .L1687 - ldrh r0, [r9, r2] - mov r1, #1 - mov r8, sl - add sl, r9, r2 - bl FtlGetLastWrittenPage - ldr r1, [sp, #20] - ldr r2, [sp, #24] - mov ip, r9 - strh r7, [r4, #0] @ movhi - mov r7, #0 - ldr r6, .L1721 - uxth r0, r0 - add r3, r0, #1 - strh r3, [r4, #2] @ movhi - ldr r3, [r2, r1, asl #2] - str r3, [r4, #28] - sxth r3, r0 - add r3, r3, #1 - mov r9, r3 - b .L1688 -.L1691: - ldrh r1, [sl, #0] - ldr r0, .L1721+8 - orr r2, r2, r1, asl #10 - mov r1, #1 - str r2, [r6, #180] - mov r2, r1 - str ip, [sp, #12] - bl FlashReadPages - ldr r2, [r6, #176] - ldr ip, [sp, #12] - cmn r2, #1 - ldreqh r2, [sl, #0] - streqh r2, [r4, #40] @ movhi - beq .L1690 - ldrh r2, [r5, #8] - cmp r2, r8 - bcs .L1690 - ldrh r1, [r4, #4] - ldrh r0, [r5, #0] - cmp r0, r1 - ldreq r1, [r6, #180] - streq r1, [fp, r2, asl #2] -.L1690: - add r7, r7, #1 - uxth r7, r7 -.L1688: - sxth r2, r7 - cmp r2, r9 - blt .L1691 - mov r9, ip - b .L1692 -.L1687: - ldr r6, .L1721 - movw r8, #3910 - add r0, r9, r2 - str r0, [sp, #28] - add r0, r6, #176 - ldr r1, [r6, #-2076] - str r1, [r6, #184] - ldrh r1, [r9, r2] - ldrh r2, [r3, r8] - sub r2, r2, #1 - orr r2, r2, r1, asl #10 - mov r1, #1 - str r2, [r6, #180] - mov r2, r1 - str r3, [sp, #12] - bl FlashReadPages - ldr r2, [r6, #176] - ldr r3, [sp, #12] - cmn r2, #1 - beq .L1712 - ldrh r1, [r5, #0] - ldrh r2, [r4, #4] - cmp r1, r2 - bne .L1712 - ldrh r1, [r5, #8] - movw r2, #64245 - cmp r1, r2 - bne .L1712 - b .L1713 -.L1696: - ldr r0, [r6, #-2076] - mov ip, r1, asl #3 - add r2, r2, #1 - ldr r1, [r0, r1, asl #3] - uxth r2, r2 - uxth r1, r1 - cmp r1, sl - addcc r0, r0, ip - ldrcc r0, [r0, #4] - strcc r0, [fp, r1, asl #2] - b .L1694 -.L1713: - mov r2, #0 -.L1694: - ldrh r0, [r3, r8] - sxth r1, r2 - sub r0, r0, #1 - cmp r1, r0 - blt .L1696 - b .L1697 -.L1699: - ldr r0, [sp, #28] - ldrh r1, [r0, #0] - ldr r0, .L1721+8 - orr r2, r2, r1, asl #10 - mov r1, #1 - str r2, [r8, #180] - mov r2, r1 - str r3, [sp, #12] - bl FlashReadPages - ldr r2, [r8, #176] - ldr r3, [sp, #12] - cmn r2, #1 - beq .L1698 - ldrh r2, [r5, #8] - cmp r2, sl - bcs .L1698 - ldrh r1, [r4, #4] - ldrh r0, [r5, #0] - cmp r0, r1 - ldreq r1, [r8, #180] - streq r1, [fp, r2, asl #2] -.L1698: - add r6, r6, #1 - uxth r6, r6 - b .L1717 -.L1712: - ldr r8, .L1721 - mov r6, #0 -.L1717: - movw r1, #3910 - sxth r2, r6 - ldrh r1, [r3, r1] - cmp r2, r1 - blt .L1699 -.L1697: - add r7, r7, #1 - uxth r7, r7 -.L1686: - ldr r1, [sp, #16] - sxth r2, r7 - cmp r2, r1 - blt .L1700 -.L1692: - ldr r3, .L1721+12 - cmp r4, r3 - bne .L1701 - ldr fp, .L1721+4 - mov r3, #3952 - ldrh r3, [fp, r3] - cmp r3, #0 - bne .L1714 - b .L1701 -.L1708: - ldr r3, [r5, #-904] - mov r4, r7, asl #2 - ldr r2, [r3, r7, asl #2] - sub r1, r2, #1 - cmn r1, #3 - bhi .L1703 - ldr r1, [r5, #-1028] - ldr r1, [r1, r7, asl #2] - cmp r2, r1 - beq .L1703 - ldr r2, [r5, #-2076] - mov r1, #1 - ldr r6, [r5, #-940] - ldr r0, .L1721+8 - str r2, [r5, #184] - mov r2, r1 - str r6, [r5, #188] - ldr r3, [r3, r4] - str r3, [r5, #180] - bl FlashReadPages - ldr r3, [r5, #176] - cmn r3, #1 - beq .L1716 - ldr r3, .L1721+16 - ldrh r2, [r6, #0] - ldrh r3, [r5, r3] - cmp r2, r3 - ldreq r8, [r6, #4] - beq .L1704 -.L1716: - mov r8, #0 -.L1704: - ldr r3, [r5, #-1028] - mov r1, #1 - mov r2, r1 - ldr r0, .L1721+8 - ldr r3, [r3, r4] - str r3, [r5, #180] - bl FlashReadPages - ldr r1, [r6, #4] - cmp r8, r1 - bls .L1703 - ldr r2, [r5, #-904] - ldr r3, [r5, #-1028] - ldr r0, .L1721+20 - str r1, [sp, #0] - ldr r1, [r2, r4] - ldr r2, [r3, r4] - mov r3, r8 - bl printk - ldr r3, [r5, #-904] - ldr r2, [r3, r4] - ldr r3, [r5, #-1028] - str r2, [r3, r4] - mov r2, #0 - ldr r3, [r5, #-904] - ldr r0, [r3, r4] - ldr r3, .L1721+24 - ubfx r0, r0, #10, #16 - ldrh r3, [r5, r3] - b .L1705 -.L1706: - mov r1, r1, asl #1 - ldrh r1, [r9, r1] - cmp r1, r0 - beq .L1703 - add r2, r2, #1 - uxth r2, r2 -.L1705: - sxth r1, r2 - cmp r1, r3 - blt .L1706 - b .L1719 -.L1720: - mov r3, r3, asl #1 - strh r0, [r9, r3] @ movhi - ldr r3, .L1721+24 - ldrh r2, [r5, r3] - add r2, r2, #1 - strh r2, [r5, r3] @ movhi - bl remove_from_free_sys_Queue -.L1703: - add r7, r7, #1 - b .L1702 -.L1714: - ldr r5, .L1721 - mov r7, #0 - mov sl, r4 -.L1702: - movw r3, #3944 - ldrh r3, [fp, r3] - cmp r7, r3 - bcc .L1708 - mov r4, sl -.L1701: - mov r0, r4 - bl ftl_free_no_use_map_blk - ldr r1, .L1721+4 - movw r3, #3910 - ldrh r2, [r4, #2] - ldrh r3, [r1, r3] - cmp r2, r3 - bne .L1709 - mov r0, r4 - bl ftl_map_blk_alloc_new_blk -.L1709: - 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} -.L1719: - ldr r2, [fp, #3936] - cmp r3, r2 - bcs .L1703 - b .L1720 -.L1722: - .align 2 -.L1721: - .word .LANCHOR2 - .word .LANCHOR0 - .word .LANCHOR2+176 - .word .LANCHOR2-1084 - .word -1080 - .word .LC120 - .word -1040 - .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, .L1724 - bl FtlMapTblRecovery - mov r0, #0 - ldmfd sp!, {r3, pc} -.L1725: - .align 2 -.L1724: - .word .LANCHOR2-1084 - .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} - movw r2, #3928 - ldr r3, .L1727 - ldr r0, .L1727+4 - ldrh r2, [r3, r2] - strh r2, [r0, #254] @ movhi - ldr r2, .L1727+8 - strh r2, [r0, #248] @ movhi - movw r2, #3954 - ldrh r2, [r3, r2] - strh r2, [r0, #252] @ movhi - movw r2, #3930 - ldrh r2, [r3, r2] - ldr r3, [r3, #3956] - strh r2, [r0, #250] @ movhi - mvn r2, #0 - str r3, [r0, #256] - ldr r3, [r0, #-912] - str r3, [r0, #260] - ldr r3, [r0, #-916] - str r3, [r0, #264] - ldr r3, [r0, #-908] - str r3, [r0, #268] - mov r3, #284 - strh r2, [r0, r3] @ movhi - add r0, r0, #244 - bl FtlMapTblRecovery - mov r0, #0 - ldmfd sp!, {r3, pc} -.L1728: - .align 2 -.L1727: - .word .LANCHOR0 - .word .LANCHOR2 - .word -3962 - .fnend - .size FtlLoadVonderInfo, .-FtlLoadVonderInfo - .align 2 - .global load_l2p_region - .type load_l2p_region, %function -load_l2p_region: + .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, .L1733 + ldr r4, .L1692 mov r7, #12 - ldr r3, [r4, #-1028] + ldr r3, [r4, #-1036] ldr r6, [r3, r0, asl #2] cmp r6, #0 - bne .L1730 + bne .L1689 mul r7, r7, r1 - ldr r3, [r4, #-1900] - ldr r2, .L1733+4 + ldr r3, [r4, #-1856] + ldr r2, .L1692+4 mov r1, #255 add r3, r3, r7 ldr r0, [r3, #8] - movw r3, #3918 + movw r3, #3922 ldrh r2, [r2, r3] bl ftl_memset - ldr r3, [r4, #-1900] + ldr r3, [r4, #-1856] strh r5, [r3, r7] @ movhi - ldr r3, [r4, #-1900] + ldr r3, [r4, #-1856] add r7, r3, r7 str r6, [r7, #4] - b .L1731 -.L1730: + b .L1690 +.L1689: mul r7, r7, r1 - ldr r3, [r4, #-1900] + ldr r3, [r4, #-1856] mov r1, #1 add r0, r4, #176 mov r2, r1 @@ -15095,40 +14715,40 @@ load_l2p_region: bl FlashReadPages ldr r3, [r4, #176] cmp r3, #256 - bne .L1732 + bne .L1691 mov r2, r6 mov r1, r5 - ldr r0, .L1733+8 + ldr r0, .L1692+8 mov r6, r6, lsr #10 bl printk - ldr r3, .L1733+12 - ldr r0, .L1733+16 + ldr r3, .L1692+12 + ldr r0, .L1692+16 mov r1, r5 strh r6, [r4, r3] @ movhi - ldr r3, [r4, #-1900] + ldr r3, [r4, #-1856] add r3, r3, r7 ldr r2, [r3, #8] bl FtlMapWritePage -.L1732: - ldr r3, .L1733 +.L1691: + ldr r3, .L1692 mov r1, #0 - ldr r3, [r3, #-1900] + ldr r3, [r3, #-1856] add r2, r3, r7 str r1, [r2, #4] strh r5, [r3, r7] @ movhi -.L1731: +.L1690: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1734: +.L1693: .align 2 -.L1733: +.L1692: .word .LANCHOR2 .word .LANCHOR0 - .word .LC121 - .word -1044 - .word .LANCHOR2-1084 + .word .LC123 + .word -1052 + .word .LANCHOR2-1092 .fnend - .size load_l2p_region, .-load_l2p_region + .size ftl_load_l2p_region, .-ftl_load_l2p_region .align 2 .global log2phys .type log2phys, %function @@ -15139,71 +14759,71 @@ 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, .L1744 - movw r2, #3916 + ldr r3, .L1703 + mov r2, #3920 mov r4, r1 ldrh r7, [r3, r2] mvn r2, #0 add r7, r7, #7 mov r6, r0, lsr r7 bic r7, r0, r2, asl r7 - movw r2, #3946 + movw r2, #3950 ldrh r2, [r3, r2] uxth r6, r6 - ldr r3, .L1744+4 + ldr r3, .L1703+4 uxth r7, r7 - ldr sl, [r3, #-1900] + ldr sl, [r3, #-1856] mov r3, #0 mov r5, r3 - b .L1736 -.L1742: + b .L1695 +.L1701: add r3, r3, #12 add r1, sl, r3 ldrh r1, [r1, #-12] cmp r1, r6 - bne .L1737 -.L1738: + bne .L1696 +.L1697: cmp r8, #0 - ldr r3, .L1744+4 + ldr r3, .L1703+4 mov r2, #12 - bne .L1739 - ldr r3, [r3, #-1900] + bne .L1698 + ldr r3, [r3, #-1856] mla r2, r2, r5, r3 ldr r3, [r2, #8] ldr r3, [r3, r7, asl #2] str r3, [r4, #0] - b .L1740 -.L1739: + b .L1699 +.L1698: mul r2, r2, r5 - ldr r1, [r3, #-1900] + ldr r1, [r3, #-1856] ldr r0, [r4, #0] add r1, r1, r2 ldr r1, [r1, #8] str r0, [r1, r7, asl #2] - ldr r1, [r3, #-1900] + ldr r1, [r3, #-1856] add r2, r1, r2 ldr r1, [r2, #4] orr r1, r1, #-2147483648 str r1, [r2, #4] - ldr r2, .L1744+8 + ldr r2, .L1703+8 strh r6, [r3, r2] @ movhi -.L1740: - ldr r3, .L1744+4 +.L1699: + ldr r3, .L1703+4 mov r2, #12 mov r0, #0 - ldr r3, [r3, #-1900] + ldr r3, [r3, #-1856] mla r5, r2, r5, r3 ldr r3, [r5, #4] cmn r3, #1 addne r3, r3, #1 strne r3, [r5, #4] ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L1737: +.L1696: add r5, r5, #1 uxth r5, r5 -.L1736: +.L1695: cmp r5, r2 - bne .L1742 + bne .L1701 bl select_l2p_ram_region mov r3, #12 mul r3, r3, r0 @@ -15212,22 +14832,22 @@ log2phys: ldrh r1, [sl, r3] movw r3, #65535 cmp r1, r3 - beq .L1743 + beq .L1702 ldr r3, [r2, #4] cmp r3, #0 - bge .L1743 + bge .L1702 bl flush_l2p_region -.L1743: +.L1702: mov r0, r6 mov r1, r5 - bl load_l2p_region - b .L1738 -.L1745: + bl ftl_load_l2p_region + b .L1697 +.L1704: .align 2 -.L1744: +.L1703: .word .LANCHOR0 .word .LANCHOR2 - .word -1896 + .word -1852 .fnend .size log2phys, .-log2phys .align 2 @@ -15243,74 +14863,74 @@ FtlReUsePrevPpa: ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r3, .L1752 - ldr r1, [r3, #-2064] + ldr r3, .L1711 + ldr r1, [r3, #-2020] mov r5, r0, asl #1 ldrh r2, [r1, r5] cmp r2, #0 addne r2, r2, #1 strneh r2, [r1, r5] @ movhi - bne .L1748 - ldr r4, [r3, #-2052] + bne .L1707 + ldr r4, [r3, #-2008] cmp r4, #0 - beq .L1748 - ldr r1, .L1752+4 + beq .L1707 + ldr r1, .L1711+4 mov ip, #6 ldrh lr, [r3, r1] - ldr r3, [r3, #-2072] - ldr r1, .L1752+8 + ldr r3, [r3, #-2028] + ldr r1, .L1711+8 rsb r4, r3, r4 mov r4, r4, asr #1 mul r4, r1, r4 movw r1, #65535 uxth r4, r4 - b .L1749 -.L1751: + b .L1708 +.L1710: cmp r4, r0 - bne .L1750 + bne .L1709 mov r1, r4 - ldr r0, .L1752+12 + ldr r0, .L1711+12 bl List_remove_node - ldr r6, .L1752 - ldr r3, .L1752+4 + ldr r6, .L1711 + ldr r3, .L1711+4 mov r0, r4 ldrh r2, [r6, r3] sub r2, r2, #1 strh r2, [r6, r3] @ movhi bl INSERT_DATA_LIST - ldr r3, [r6, #-2064] + ldr r3, [r6, #-2020] ldrh r2, [r3, r5] add r2, r2, #1 strh r2, [r3, r5] @ movhi - b .L1748 -.L1750: + b .L1707 +.L1709: mul r4, ip, r4 ldrh r4, [r3, r4] cmp r4, r1 - beq .L1748 + beq .L1707 add r2, r2, #1 uxth r2, r2 -.L1749: +.L1708: cmp r2, lr - bne .L1751 -.L1748: + bne .L1710 +.L1707: mov r0, r7 add r1, sp, #4 mov r2, #1 bl log2phys ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, pc} -.L1753: +.L1712: .align 2 -.L1752: +.L1711: .word .LANCHOR2 - .word -2048 + .word -2004 .word -1431655765 - .word .LANCHOR2-2052 + .word .LANCHOR2-2008 .fnend .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 2 - .type FtlReadRefresh.part.16, %function -FtlReadRefresh.part.16: + .type FtlReadRefresh.part.15, %function +FtlReadRefresh.part.15: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 @@ -15318,27 +14938,27 @@ FtlReadRefresh.part.16: .save {r4, r5, r6, lr} .pad #40 sub sp, sp, #40 - ldr r4, .L1762 - ldr r6, .L1762+4 - ldr r2, [r4, #-1620] - ldr r3, [r6, #3968] + ldr r4, .L1721 + ldr r6, .L1721+4 + ldr r2, [r4, #-1628] + ldr r3, [r6, #3972] cmp r2, r3 - bcs .L1755 + bcs .L1714 mov r5, #2048 -.L1758: - ldr r0, [r4, #-1620] - ldr r3, [r6, #3968] +.L1717: + ldr r0, [r4, #-1628] + ldr r3, [r6, #3972] cmp r0, r3 - bcs .L1760 + bcs .L1719 mov r1, sp mov r2, #0 bl log2phys ldr r0, [sp, #0] - ldr r3, [r4, #-1620] + ldr r3, [r4, #-1628] cmn r0, #1 add r3, r3, #1 - str r3, [r4, #-1620] - beq .L1757 + str r3, [r4, #-1628] + beq .L1716 str r0, [sp, #8] add r0, sp, #40 mov r2, #0 @@ -15350,35 +14970,35 @@ FtlReadRefresh.part.16: bl FlashReadPages ldr r3, [sp, #4] cmp r3, #256 - bne .L1760 + bne .L1719 ldr r0, [sp, #0] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock - b .L1760 -.L1757: + b .L1719 +.L1716: subs r5, r5, #1 - bne .L1758 - b .L1756 -.L1755: - ldr r3, [r4, #-1880] + bne .L1717 + b .L1715 +.L1714: + ldr r3, [r4, #-1840] mov r0, #0 - str r0, [r4, #-1624] - str r0, [r4, #-1620] - str r3, [r4, #-1628] - b .L1756 -.L1760: + str r0, [r4, #-1632] + str r0, [r4, #-1628] + str r3, [r4, #-1636] + b .L1715 +.L1719: mvn r0, #0 -.L1756: +.L1715: add sp, sp, #40 ldmfd sp!, {r4, r5, r6, pc} -.L1763: +.L1722: .align 2 -.L1762: +.L1721: .word .LANCHOR2 .word .LANCHOR0 .fnend - .size FtlReadRefresh.part.16, .-FtlReadRefresh.part.16 + .size FtlReadRefresh.part.15, .-FtlReadRefresh.part.15 .align 2 .global FtlReadRefresh .type FtlReadRefresh, %function @@ -15387,51 +15007,451 @@ FtlReadRefresh: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1771 - ldr r2, [r3, #-1624] + ldr r3, .L1730 + ldr r2, [r3, #-1632] cmp r2, #0 - beq .L1765 - b FtlReadRefresh.part.16 -.L1765: - ldr r1, .L1771+4 - ldr r0, [r3, #-1828] - ldr r2, [r3, #-1884] - ldrb r1, [r1, #928] @ zero_extendqisi2 - cmp r1, #0 - addeq r0, r2, r0, lsr #10 - ldr r2, [r3, #-1880] + beq .L1724 + b FtlReadRefresh.part.15 +.L1724: + ldr r2, .L1730+4 + ldr r0, [r3, #-1788] + ldr r1, [r2, #3836] + ldrb r2, [r2, #928] @ zero_extendqisi2 + cmp r2, #0 + ldr r2, [r3, #-1840] + addeq r0, r1, r0, lsr #10 moveq r1, #33554432 movne r0, #4194304 moveq r0, r1, asr r0 - ldr r1, [r3, #-1628] + ldr r1, [r3, #-1636] add r3, r2, #1048576 cmp r1, r3 - bhi .L1767 + bhi .L1726 add r1, r0, r1 cmp r1, r2 - bcc .L1767 - ldr r3, .L1771 - ldrb r3, [r3, #-1792] @ zero_extendqisi2 + bcc .L1726 + ldr r3, .L1730 + ldrb r3, [r3, #-2048] @ zero_extendqisi2 cmp r3, #0 - bne .L1768 -.L1767: - ldr r3, .L1771 + bne .L1727 +.L1726: + ldr r3, .L1730 mov r1, #1 - str r2, [r3, #-1628] - str r1, [r3, #-1624] + str r2, [r3, #-1636] + str r1, [r3, #-1632] mov r1, #0 - str r1, [r3, #-1620] -.L1768: + str r1, [r3, #-1628] +.L1727: mov r0, #0 bx lr -.L1772: +.L1731: .align 2 -.L1771: +.L1730: .word .LANCHOR2 .word .LANCHOR0 .fnend .size FtlReadRefresh, .-FtlReadRefresh .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 #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, .L1767 + mov sl, r7 + str r9, [r4, #32] + str r9, [r4, #28] + ldr r2, [r3, #-964] + ldr r5, [r3, #-940] + str r2, [r3, #184] + str r5, [r3, #188] + 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, .L1767+4 + b .L1733 +.L1747: + ldr r0, [sp, #20] + cmp r2, r0 + mov r2, r2, asl #1 + bne .L1734 + 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, .L1767 + 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 .L1735 +.L1738: + ldr r0, [sp, #16] + mov r1, #1 + ldrh r2, [r0, #0] + ldr r0, .L1767+8 + orr r3, r3, r2, asl #10 + mov r2, r1 + str r3, [r6, #180] + bl FlashReadPages + ldr r3, [r6, #176] + cmn r3, #1 + ldreq r1, [sp, #16] + ldreqh r3, [r1, #0] + streqh r3, [r4, #40] @ movhi + beq .L1737 + ldrh r3, [r5, #8] + cmp r3, r8 + bcs .L1737 + ldrh r2, [r4, #4] + ldrh r1, [r5, #0] + cmp r1, r2 + ldreq r2, [r6, #180] + streq r2, [fp, r3, asl #2] +.L1737: + add sl, sl, #1 + uxth sl, sl +.L1735: + sxth r3, sl + cmp r3, r9 + blt .L1738 + b .L1739 +.L1734: + ldr r6, .L1767 + movw r7, #3914 + add r0, sl, r2 + str r0, [sp, #28] + add r0, r6, #176 + ldr r1, [r6, #-964] + str r1, [r6, #184] + ldrh r1, [sl, r2] + ldrh r2, [r3, r7] + sub r2, r2, #1 + orr r2, r2, r1, asl #10 + mov r1, #1 + str r2, [r6, #180] + mov r2, r1 + str r3, [sp, #12] + bl FlashReadPages + ldr r2, [r6, #176] + ldr r3, [sp, #12] + cmn r2, #1 + beq .L1760 + ldrh r1, [r5, #0] + ldrh r2, [r4, #4] + cmp r1, r2 + bne .L1760 + ldrh r1, [r5, #8] + movw r2, #64245 + cmp r1, r2 + bne .L1760 + b .L1761 +.L1743: + ldr r0, [r6, #-964] + 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, [fp, r1, asl #2] + b .L1741 +.L1761: + mov r2, #0 +.L1741: + ldrh r0, [r3, r7] + sxth r1, r2 + sub r0, r0, #1 + cmp r1, r0 + blt .L1743 + b .L1744 +.L1746: + ldr r0, [sp, #28] + ldrh r1, [r0, #0] + ldr r0, .L1767+8 + orr r2, r2, r1, asl #10 + mov r1, #1 + str r2, [r7, #180] + mov r2, r1 + str r3, [sp, #12] + bl FlashReadPages + ldr r2, [r7, #176] + ldr r3, [sp, #12] + cmn r2, #1 + beq .L1745 + ldrh r2, [r5, #8] + cmp r2, r8 + bcs .L1745 + ldrh r1, [r4, #4] + ldrh r0, [r5, #0] + cmp r0, r1 + ldreq r1, [r7, #180] + streq r1, [fp, r2, asl #2] +.L1745: + add r6, r6, #1 + uxth r6, r6 + b .L1763 +.L1760: + ldr r7, .L1767 + mov r6, #0 +.L1763: + movw r1, #3914 + sxth r2, r6 + ldrh r1, [r3, r1] + cmp r2, r1 + blt .L1746 +.L1744: + add r9, r9, #1 + uxth r9, r9 +.L1733: + ldr r1, [sp, #16] + sxth r2, r9 + cmp r2, r1 + blt .L1747 + mov r7, sl +.L1739: + ldr r3, .L1767+12 + cmp r4, r3 + bne .L1748 + ldr r9, .L1767+4 + movw r3, #3956 + ldrh r3, [r9, r3] + cmp r3, #0 + bne .L1762 + b .L1748 +.L1756: + ldr r3, [r5, #-904] + mov r4, r8, asl #2 + ldr r2, [r3, r8, asl #2] + sub r1, r2, #1 + cmn r1, #3 + bhi .L1750 + ldr r1, [r5, #-1036] + ldr r1, [r1, r8, asl #2] + cmp r2, r1 + beq .L1750 + ldr r2, [r5, #-964] + mov r1, #1 + ldr r6, [r5, #-940] + ldr r0, .L1767+8 + str r2, [r5, #184] + mov r2, r1 + str r6, [r5, #188] + ldr r3, [r3, r4] + str r3, [r5, #180] + bl FlashReadPages + ldr r3, [r5, #176] + cmn r3, #1 + beq .L1750 + ldr r3, .L1767+16 + ldrh r2, [r6, #0] + ldrh r3, [r5, r3] + cmp r2, r3 + bne .L1750 + ldr r3, [r5, #-1036] + ldr fp, [r6, #4] + ldr r2, [r3, r4] + str r2, [r5, #180] + ldr r3, [r3, r4] + cmp r3, #0 + streq r3, [r6, #4] + beq .L1752 + mov r1, #1 + ldr r0, .L1767+8 + mov r2, r1 + bl FlashReadPages +.L1752: + ldr r1, [r6, #4] + cmp fp, r1 + bls .L1750 + ldr r2, [r5, #-904] + ldr r3, [r5, #-1036] + ldr r0, .L1767+20 + str r1, [sp, #0] + ldr r1, [r2, r4] + ldr r2, [r3, r4] + mov r3, fp + bl printk + ldr r3, [r5, #-904] + ldr r2, [r3, r4] + ldr r3, [r5, #-1036] + str r2, [r3, r4] + mov r2, #0 + ldr r3, [r5, #-904] + ldr r0, [r3, r4] + ldr r3, .L1767+24 + ubfx r0, r0, #10, #16 + ldrh r3, [r5, r3] + b .L1753 +.L1754: + mov r1, r1, asl #1 + ldrh r1, [r7, r1] + cmp r1, r0 + beq .L1750 + add r2, r2, #1 + uxth r2, r2 +.L1753: + sxth r1, r2 + cmp r1, r3 + blt .L1754 + b .L1765 +.L1766: + mov r3, r3, asl #1 + strh r0, [r7, r3] @ movhi + ldr r3, .L1767+24 + ldrh r2, [r5, r3] + add r2, r2, #1 + strh r2, [r5, r3] @ movhi + bl remove_from_free_sys_Queue +.L1750: + add r8, r8, #1 + b .L1749 +.L1762: + ldr r5, .L1767 + mov r8, #0 + mov sl, r4 +.L1749: + movw r2, #3948 + ldrh r3, [r9, r2] + cmp r8, r3 + bcc .L1756 + mov r4, sl +.L1748: + mov r0, r4 + bl ftl_free_no_use_map_blk + ldr r1, .L1767+4 + movw r3, #3914 + ldrh r2, [r4, #2] + ldrh r3, [r1, r3] + cmp r2, r3 + bne .L1757 + mov r0, r4 + bl ftl_map_blk_alloc_new_blk +.L1757: + 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} +.L1765: + ldr r2, [r9, #3940] + cmp r3, r2 + bcs .L1750 + b .L1766 +.L1768: + .align 2 +.L1767: + .word .LANCHOR2 + .word .LANCHOR0 + .word .LANCHOR2+176 + .word .LANCHOR2-1092 + .word -1088 + .word .LC124 + .word -1048 + .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, .L1770 + bl FtlMapTblRecovery + mov r0, #0 + ldmfd sp!, {r3, pc} +.L1771: + .align 2 +.L1770: + .word .LANCHOR2-1092 + .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} + movw r2, #3932 + ldr r3, .L1773 + ldr r0, .L1773+4 + ldrh r2, [r3, r2] + strh r2, [r0, #254] @ movhi + ldr r2, .L1773+8 + strh r2, [r0, #248] @ movhi + movw r2, #3958 + ldrh r2, [r3, r2] + strh r2, [r0, #252] @ movhi + movw r2, #3934 + ldrh r2, [r3, r2] + ldr r3, [r3, #3960] + strh r2, [r0, #250] @ movhi + mvn r2, #0 + str r3, [r0, #256] + ldr r3, [r0, #-912] + str r3, [r0, #260] + ldr r3, [r0, #-916] + str r3, [r0, #264] + ldr r3, [r0, #-908] + str r3, [r0, #268] + mov r3, #284 + strh r2, [r0, r3] @ movhi + add r0, r0, #244 + bl FtlMapTblRecovery + mov r0, #0 + ldmfd sp!, {r3, pc} +.L1774: + .align 2 +.L1773: + .word .LANCHOR0 + .word .LANCHOR2 + .word -3962 + .fnend + .size FtlLoadVonderInfo, .-FtlLoadVonderInfo + .align 2 .global FtlRecoverySuperblock .type FtlRecoverySuperblock, %function FtlRecoverySuperblock: @@ -15446,12 +15466,12 @@ FtlRecoverySuperblock: sub sp, sp, #60 mov r4, r0 cmp r3, r2 - beq .L1774 + beq .L1776 ldrh r3, [r0, #2] - ldr r1, .L1863 + ldr r1, .L1865 ldrb fp, [r0, #6] @ zero_extendqisi2 str r3, [sp, #12] - movw r3, #3908 + movw r3, #3912 ldrh r3, [r1, r3] ldr ip, [sp, #12] str fp, [sp, #24] @@ -15460,65 +15480,65 @@ FtlRecoverySuperblock: streqh r3, [r0, #4] @ movhi moveq r2, r3 @ movhi ldrneh r0, [r0, #16] - bne .L1776 - b .L1860 -.L1777: + bne .L1778 + b .L1862 +.L1779: add r3, r3, #1 uxth r3, r3 add r1, r4, r3, asl #1 ldrh r0, [r1, #16] -.L1776: +.L1778: cmp r0, r2 - beq .L1777 + beq .L1779 ldrb r1, [r4, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L1778 + bne .L1780 bl FtlGetLastWrittenPage cmn r0, #1 mov r7, r0 - beq .L1779 - ldr r3, .L1863 + beq .L1781 + ldr r3, .L1865 ldrb r2, [r3, #928] @ zero_extendqisi2 cmp r2, #0 - bne .L1853 + bne .L1855 add r3, r3, r0, asl #1 movw r2, #3076 ldrh r8, [r3, r2] - b .L1845 -.L1778: + b .L1847 +.L1780: mov r1, #0 bl FtlGetLastWrittenPage cmn r0, #1 mov r7, r0 - beq .L1779 -.L1853: + beq .L1781 +.L1855: mov r8, r7 -.L1845: - ldr r3, .L1863 - mov r2, #3840 +.L1847: + ldr r3, .L1865 + movw r2, #3844 mov r5, #0 str r4, [sp, #32] movw ip, #65535 ldrh r9, [r3, r2] - ldr r2, .L1863+4 - ldr sl, [r2, #-972] - ldr r6, [r2, #-1164] - mov r2, #3920 + ldr r2, .L1865+4 + ldr sl, [r2, #-976] + ldr r6, [r2, #-1172] + movw r2, #3924 ldrh lr, [r3, r2] mov r2, r4 mov r3, r5 - b .L1781 -.L1779: + b .L1783 +.L1781: mov r3, #0 strh r3, [r4, #2] @ movhi mov r2, r3 @ movhi -.L1860: +.L1862: strb r2, [r4, #6] - b .L1774 -.L1783: + b .L1776 +.L1785: ldrh r0, [r2, #16] cmp r0, ip - beq .L1782 + beq .L1784 mov fp, #36 orr r0, r8, r0, asl #10 mla r1, fp, r5, sl @@ -15534,100 +15554,100 @@ FtlRecoverySuperblock: bic r0, r0, #3 add r0, r6, r0 str r0, [r1, #12] -.L1782: +.L1784: add r3, r3, #1 add r2, r2, #2 uxth r3, r3 -.L1781: +.L1783: cmp r3, r9 - bne .L1783 + bne .L1785 ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 movne r3, #0 - bne .L1854 - ldr r3, .L1863 + bne .L1856 + ldr r3, .L1865 ldrb r3, [r3, #928] @ zero_extendqisi2 adds r3, r3, #0 movne r3, #1 -.L1854: - ldr r6, .L1863+4 +.L1856: + ldr r6, .L1865+4 mov r1, r5 str r3, [sp, #20] mov sl, #0 ldr r2, [sp, #20] - ldr r0, [r6, #-972] + ldr r0, [r6, #-976] bl FlashReadPages - ldr fp, [r6, #-1844] + ldr fp, [r6, #-1804] movw ip, #65535 str ip, [sp, #4] str fp, [sp, #8] - b .L1785 -.L1790: + b .L1787 +.L1792: mov lr, #36 - ldr r1, [r6, #-972] + ldr r1, [r6, #-976] mul r2, lr, sl add r3, r1, r2 ldr r2, [r1, r2] cmp r2, #0 - bne .L1786 + bne .L1788 ldr r3, [r3, #12] ldr fp, [r3, #4] cmn fp, #1 - beq .L1787 - ldr r1, [r6, #-1844] + beq .L1789 + ldr r1, [r6, #-1804] mov r0, fp str r3, [sp, #0] bl ftl_cmp_data_ver ldr r3, [sp, #0] cmp r0, #0 addne fp, fp, #1 - strne fp, [r6, #-1844] -.L1787: + strne fp, [r6, #-1804] +.L1789: ldr r3, [r3, #0] cmn r3, #1 - bne .L1789 - b .L1788 -.L1786: + bne .L1791 + b .L1790 +.L1788: ldr r1, [r3, #4] movw fp, #290 - ldr r0, .L1863+8 + ldr r0, .L1865+8 bl printk ldrh r3, [r4, #0] uxth r2, r8 str r2, [sp, #4] strh r3, [r6, fp] @ movhi -.L1789: +.L1791: add sl, sl, #1 -.L1785: +.L1787: uxth r9, sl cmp r9, r5 - bcc .L1790 -.L1788: - ldr r3, .L1863+4 + bcc .L1792 +.L1790: + ldr r3, .L1865+4 cmp r9, r5 addeq r7, r7, #1 uxthne r7, r7 movne r2, #36 - ldrne r3, [r3, #-972] + ldrne r3, [r3, #-976] uxtheq r7, r7 - ldreq r3, [r3, #-972] + ldreq r3, [r3, #-976] mlane r9, r2, r9, r3 ldreq r0, [r3, #4] ldrne r0, [r9, #4] ubfx r0, r0, #10, #16 bl P2V_plane ldrb r2, [r4, #8] @ zero_extendqisi2 - ldr r3, .L1863 + ldr r3, .L1865 cmp r2, #1 str r0, [sp, #16] - bne .L1793 + bne .L1795 ldrb r1, [r3, #928] @ zero_extendqisi2 cmp r1, #0 addeq r7, r3, r7, asl #1 movweq r1, #3076 ldreqh r7, [r7, r1] -.L1793: - movw r1, #3908 +.L1795: + movw r1, #3912 ldr ip, [sp, #12] ldrh r3, [r3, r1] ldr fp, [sp, #24] @@ -15639,28 +15659,28 @@ FtlRecoverySuperblock: ldr r3, [sp, #16] cmp r7, ip cmpeq r3, fp - beq .L1861 -.L1795: + beq .L1863 +.L1797: ldr fp, [sp, #4] movw r3, #65535 ldr ip, [sp, #8] cmp fp, r3 sub r6, ip, #1 - bne .L1796 + bne .L1798 cmp r2, #0 - bne .L1797 -.L1796: - ldr r2, .L1863+4 + bne .L1799 +.L1798: + ldr r2, .L1865+4 uxth r3, r8 ldr ip, [sp, #12] mvn fp, #0 mov sl, r3 mov r9, fp - ldr r1, [r2, #-1004] - ldr r8, .L1863+4 + ldr r1, [r2, #-1012] + ldr r8, .L1865+4 cmn r1, #1 - streq r6, [r2, #-1004] - ldr r2, [r2, #-1004] + streq r6, [r2, #-1012] + ldr r2, [r2, #-1012] str r2, [sp, #4] add r2, ip, #7 cmp r3, r2 @@ -15669,12 +15689,12 @@ FtlRecoverySuperblock: ldrle r5, [sp, #12] mov r7, r6 uxthgt r5, r5 - b .L1800 -.L1802: + b .L1802 +.L1804: ldrh r0, [r1, #16] movw lr, #65535 cmp r0, lr - beq .L1801 + beq .L1803 ldr ip, [sp, #8] mov r3, #36 orr r0, r5, r0, asl #10 @@ -15682,114 +15702,114 @@ FtlRecoverySuperblock: add r6, r6, #1 uxth r6, r6 str r0, [lr, #4] -.L1801: +.L1803: add r2, r2, #1 add r1, r1, #2 uxth r2, r2 -.L1813: +.L1815: ldr lr, [sp, #36] cmp r2, lr - bne .L1802 + bne .L1804 ldr r3, [sp, #28] mov r1, r6 - ldr r0, [r8, #-972] + ldr r0, [r8, #-976] ldr r2, [sp, #20] str r3, [sp, #0] bl FlashReadPages - ldr r2, .L1863 + ldr r2, .L1865 add r0, r8, r5, asl #1 mov r1, #0 str r0, [sp, #8] ldr r3, [sp, #0] ldrb ip, [r2, #928] @ zero_extendqisi2 - ldr r2, [r8, #-972] + ldr r2, [r8, #-976] str ip, [sp, #28] - b .L1803 -.L1811: + b .L1805 +.L1813: ldr r0, [r2, #0] cmp r0, #0 - bne .L1804 + bne .L1806 ldr r0, [r2, #12] movw ip, #65535 ldrh lr, [r0, #0] cmp lr, ip - beq .L1805 + beq .L1807 ldr r0, [r0, #4] cmn r0, #1 - beq .L1805 + beq .L1807 cmn fp, #1 - ldr r9, [r8, #-1004] - str r0, [r8, #-1004] - bne .L1805 + ldr r9, [r8, #-1012] + str r0, [r8, #-1012] + bne .L1807 ldr lr, [sp, #8] sub r0, lr, #896 ldrh r0, [r0, #0] cmp r0, ip - bne .L1806 + bne .L1808 ldr r0, [sp, #28] cmp r0, #0 - beq .L1805 -.L1806: + beq .L1807 +.L1808: cmp r9, r7 mvneq fp, #0 movne fp, r9 - b .L1805 -.L1804: + b .L1807 +.L1806: mov r6, r7 ldrh r1, [r4, #0] mov r7, r3 - ldr r3, .L1863+4 + ldr r3, .L1865+4 movw r2, #290 strh r1, [r3, r2] @ movhi ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #0 - bne .L1797 + bne .L1799 add r5, r3, r5, asl #1 movw r2, #65535 sub r5, r5, #896 ldrh r1, [r5, #0] cmp r1, r2 - bne .L1807 + bne .L1809 cmn fp, #1 - bne .L1856 -.L1808: + bne .L1858 +.L1810: ldr fp, [sp, #4] cmp fp, r6 - beq .L1809 -.L1856: - str fp, [r3, #-1004] - b .L1797 + beq .L1811 +.L1858: + str fp, [r3, #-1012] + b .L1799 +.L1811: + ldr r2, [r3, #-1012] + b .L1864 .L1809: - ldr r2, [r3, #-1004] - b .L1862 -.L1807: cmp r9, r6 - beq .L1810 + beq .L1812 cmn r9, #1 - strne r9, [r3, #-1004] - b .L1797 -.L1810: - ldr r2, [r3, #-1004] + strne r9, [r3, #-1012] + b .L1799 +.L1812: + ldr r2, [r3, #-1012] cmp r2, r6 - beq .L1797 -.L1862: + beq .L1799 +.L1864: sub r2, r2, #1 - b .L1857 -.L1805: + b .L1859 +.L1807: add r1, r1, #1 add r2, r2, #36 uxth r1, r1 -.L1803: +.L1805: cmp r1, r6 - bne .L1811 + bne .L1813 add r5, r5, #1 uxth r5, r5 -.L1800: +.L1802: cmp r5, sl - bhi .L1812 - ldr r1, .L1863 - mov r2, #3840 - ldr lr, [r8, #-972] + bhi .L1814 + ldr r1, .L1865 + movw r2, #3844 + ldr lr, [r8, #-976] mov r6, #0 str r3, [sp, #28] ldrh ip, [r1, r2] @@ -15797,69 +15817,69 @@ FtlRecoverySuperblock: str lr, [sp, #8] mov r2, r6 str ip, [sp, #36] - b .L1813 -.L1812: + b .L1815 +.L1814: mov r6, r7 mov r7, r3 - ldr r3, .L1863+4 + ldr r3, .L1865+4 mvn r2, #0 -.L1857: - str r2, [r3, #-1004] -.L1797: - ldr r5, .L1863+4 +.L1859: + str r2, [r3, #-1012] +.L1799: + ldr r5, .L1865+4 mov r3, #292 mov r2, #1 - ldr r0, .L1863+12 + ldr r0, .L1865+12 strh r2, [r5, r3] @ movhi bl FtlMapBlkWriteDumpData ldr r8, [sp, #12] str r7, [sp, #8] -.L1814: - ldr r3, .L1863 - mov r2, #3840 +.L1816: + ldr r3, .L1865 + movw r2, #3844 mov r7, #0 - ldr lr, [r5, #-972] + ldr lr, [r5, #-976] mov fp, #36 ldrh sl, [r3, r2] mov r2, r4 ldrb ip, [r3, #928] @ zero_extendqisi2 mov r3, r7 - b .L1815 -.L1818: + b .L1817 +.L1820: ldrh r0, [r2, #16] movw r1, #65535 cmp r0, r1 - beq .L1816 + beq .L1818 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 .L1817 + bne .L1819 cmp ip, #0 orrne r0, r0, #-2147483648 strne r0, [r1, #4] -.L1817: +.L1819: add r7, r7, #1 uxth r7, r7 -.L1816: +.L1818: add r3, r3, #1 add r2, r2, #2 uxth r3, r3 -.L1815: +.L1817: cmp r3, sl - bne .L1818 + bne .L1820 mov r1, r7 - ldr r0, [r5, #-972] + ldr r0, [r5, #-976] ldr r2, [sp, #20] bl FlashReadPages mov r3, #36 mul r3, r3, r7 mov r7, #0 str r3, [sp, #36] - b .L1819 -.L1840: - ldr r9, [r5, #-972] + b .L1821 +.L1842: + ldr r9, [r5, #-976] add r9, r9, r7 ldr sl, [r9, #4] ubfx r0, sl, #10, #16 @@ -15867,7 +15887,7 @@ FtlRecoverySuperblock: bl P2V_plane ldr r3, [sp, #12] cmp r8, r3 - bcc .L1820 + bcc .L1822 ldr fp, [sp, #24] mov ip, r3 cmp r0, fp @@ -15876,31 +15896,31 @@ FtlRecoverySuperblock: cmp r8, ip movne r3, #0 cmp r3, #0 - bne .L1820 + bne .L1822 ldr r3, [sp, #16] ldr ip, [sp, #8] cmp r0, r3 cmpeq r8, ip - beq .L1852 + beq .L1854 ldr r3, [r9, #0] cmn r3, #1 - beq .L1822 + beq .L1824 ldr sl, [r9, #12] movw r3, #61589 ldrh r2, [sl, #0] cmp r2, r3 - bne .L1829 -.L1823: + bne .L1831 +.L1825: ldr r6, [sl, #4] cmn r6, #1 - beq .L1824 - ldr r1, [r5, #-1844] + beq .L1826 + ldr r1, [r5, #-1804] mov r0, r6 bl ftl_cmp_data_ver cmp r0, #0 addne r3, r6, #1 - strne r3, [r5, #-1844] -.L1824: + strne r3, [r5, #-1804] +.L1826: ldr r9, [sl, #8] add r1, sp, #48 ldr r3, [sl, #12] @@ -15908,17 +15928,17 @@ FtlRecoverySuperblock: mov r0, r9 str r3, [sp, #44] bl log2phys - ldr r1, [r5, #-1004] + ldr r1, [r5, #-1012] cmn r1, #1 - beq .L1825 + beq .L1827 mov r0, r6 bl ftl_cmp_data_ver cmp r0, #0 - beq .L1825 + beq .L1827 ldr r3, [sp, #44] cmn r3, #1 - beq .L1826 - ldr r0, [r5, #-972] + beq .L1828 + ldr r0, [r5, #-976] mov r1, #1 mov r2, #0 add r0, r0, r7 @@ -15926,47 +15946,47 @@ FtlRecoverySuperblock: str r3, [r0, #4] str fp, [sp, #4] bl FlashReadPages - ldr r3, [r5, #-972] + ldr r3, [r5, #-976] ldr ip, [fp, #4] add fp, r3, r7 ldr r3, [r3, r7] str ip, [sp, #28] cmn r3, #1 - bne .L1827 - b .L1828 -.L1826: + bne .L1829 + b .L1830 +.L1828: ldr r3, [sp, #52] ldr r2, [sp, #48] cmp r2, r3 - bne .L1829 + bne .L1831 mov r0, r9 add r1, sp, #44 mov r2, #1 bl log2phys -.L1829: +.L1831: ldrh r0, [r4, #0] - b .L1859 -.L1827: + b .L1861 +.L1829: ldr r3, [sp, #4] ldr sl, [r3, #8] cmp sl, r9 - bne .L1828 - ldr r0, [r5, #-1004] + bne .L1830 + ldr r0, [r5, #-1012] ldr r1, [sp, #28] bl ftl_cmp_data_ver cmp r0, #0 - beq .L1828 + beq .L1830 ldr r3, [sp, #48] ldr r2, [sp, #52] cmp r3, r2 - beq .L1833 -.L1830: + beq .L1835 +.L1832: ldr r2, [sp, #44] cmp r3, r2 - beq .L1828 + beq .L1830 cmn r3, #1 streq r3, [fp, #0] - beq .L1832 + beq .L1834 ldr ip, [fp, #12] mov r0, fp str r3, [fp, #4] @@ -15974,108 +15994,108 @@ FtlRecoverySuperblock: mov r2, #0 str ip, [sp, #4] bl FlashReadPages -.L1832: - ldr r3, [r5, #-972] +.L1834: + ldr r3, [r5, #-976] ldr r3, [r3, r7] cmn r3, #1 - beq .L1833 + beq .L1835 ldr r3, [sp, #4] - ldr r0, [r5, #-1004] + ldr r0, [r5, #-1012] ldr r9, [r3, #4] mov r1, r9 bl ftl_cmp_data_ver cmp r0, #0 - beq .L1833 + beq .L1835 ldr r0, [sp, #28] mov r1, r9 bl ftl_cmp_data_ver cmp r0, #0 - beq .L1828 -.L1833: + beq .L1830 +.L1835: mov r0, sl ldr r1, [sp, #44] bl FtlReUsePrevPpa -.L1828: +.L1830: ldrh r0, [r4, #0] mvn r3, #0 str r3, [sp, #44] bl decrement_vpc_count - b .L1835 -.L1825: + b .L1837 +.L1827: ldr r3, [sp, #52] ldr r2, [sp, #48] cmp r2, r3 - beq .L1835 + beq .L1837 mov r0, r9 add r1, sp, #52 mov r2, #1 bl log2phys ldr fp, [sp, #48] cmn fp, #1 - beq .L1835 + beq .L1837 ldr r3, [sp, #44] cmp fp, r3 - beq .L1835 + beq .L1837 ubfx r0, fp, #10, #16 bl P2V_block_in_plane - ldr r3, .L1863+16 + ldr r3, .L1865+16 ldrh r3, [r5, r3] cmp r3, r0 - beq .L1836 - ldr r3, .L1863+20 + beq .L1838 + ldr r3, .L1865+20 ldrh r3, [r5, r3] cmp r3, r0 - beq .L1836 - ldr r3, .L1863+24 + beq .L1838 + ldr r3, .L1865+24 ldrh r3, [r5, r3] cmp r3, r0 - bne .L1835 -.L1836: - ldr ip, .L1863+4 + bne .L1837 +.L1838: + ldr ip, .L1865+4 mov r1, #1 mov r2, #0 - ldr r0, [ip, #-972] + ldr r0, [ip, #-976] str fp, [r0, #4] ldr sl, [r0, #12] bl FlashReadPages - ldr r0, .L1863+4 + ldr r0, .L1865+4 ldr r1, [sl, #4] - ldr r3, [r0, #-972] + ldr r3, [r0, #-976] ldr r3, [r3, #0] cmn r3, #1 - beq .L1835 + beq .L1837 mov r0, r6 bl ftl_cmp_data_ver cmp r0, #0 - bne .L1835 + bne .L1837 mov r0, r9 add r1, sp, #48 mov r2, #1 bl log2phys -.L1835: +.L1837: ldr r0, [sp, #44] cmn r0, #1 - beq .L1820 + beq .L1822 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r5, #-2064] + ldr r2, [r5, #-2020] mov r3, r0, asl #1 mov r1, r0 ldrh r3, [r2, r3] cmp r3, #0 - beq .L1837 -.L1859: + beq .L1839 +.L1861: bl decrement_vpc_count - b .L1820 -.L1837: - ldr r0, .L1863+28 + b .L1822 +.L1839: + ldr r0, .L1865+28 bl printk - b .L1820 -.L1822: + b .L1822 +.L1824: ldrh r3, [r4, #0] movw r1, #290 mov r2, r6 - ldr r0, .L1863+32 + ldr r0, .L1865+32 strh r3, [r5, r1] @ movhi mov r1, sl bl printk @@ -16088,90 +16108,90 @@ FtlRecoverySuperblock: strls r1, [r2, #300] ldrh r0, [r4, #0] bl decrement_vpc_count - ldr r3, [r5, #-1004] + ldr r3, [r5, #-1012] cmn r3, #1 - beq .L1858 -.L1839: + beq .L1860 +.L1841: cmp r3, r6 - bls .L1820 -.L1858: - str r6, [r5, #-1004] -.L1820: + bls .L1822 +.L1860: + str r6, [r5, #-1012] +.L1822: add r7, r7, #36 -.L1819: +.L1821: ldr r3, [sp, #36] cmp r7, r3 - bne .L1840 + bne .L1842 ldrb r3, [r4, #8] @ zero_extendqisi2 add r8, r8, #1 cmp r3, #1 uxth r8, r8 - bne .L1841 - ldr r3, .L1863 + bne .L1843 + ldr r3, .L1865 ldrb r2, [r3, #928] @ zero_extendqisi2 cmp r2, #0 - beq .L1841 - movw r2, #3910 + beq .L1843 + movw r2, #3914 ldr ip, [sp, #8] ldrh r3, [r3, r2] cmp ip, r8 cmpeq r3, r8 - beq .L1852 -.L1841: - ldr r3, .L1863 - movw r2, #3908 + beq .L1854 +.L1843: + ldr r3, .L1865 + movw r2, #3912 ldrh r2, [r3, r2] cmp r8, r2 - bne .L1814 + bne .L1816 mov r2, #0 - mov r1, #3840 + movw r1, #3844 strh r2, [r4, #4] @ movhi ldrh r1, [r3, r1] mov r3, r2 strh r8, [r4, #2] @ movhi movw r2, #65535 ldr r0, [sp, #32] - b .L1842 -.L1844: + b .L1844 +.L1846: add r0, r0, #2 ldrh ip, [r0, #14] cmp ip, r2 strneb r3, [r4, #6] - bne .L1774 -.L1843: + bne .L1776 +.L1845: add r3, r3, #1 uxth r3, r3 -.L1842: +.L1844: cmp r3, r1 - bne .L1844 - b .L1774 -.L1852: -.L1821: + bne .L1846 + b .L1776 +.L1854: +.L1823: ldr r7, [sp, #8] ldr r3, [sp, #16] strh r7, [r4, #2] @ movhi strb r3, [r4, #6] -.L1861: +.L1863: mov r0, r4 mov r1, r7 mov r2, r3 bl ftl_sb_update_avl_pages -.L1774: +.L1776: mov r0, #0 add sp, sp, #60 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L1864: +.L1866: .align 2 -.L1863: +.L1865: .word .LANCHOR0 .word .LANCHOR2 - .word .LC122 - .word .LANCHOR2-1084 - .word -2044 - .word -1996 - .word -1948 - .word .LC123 - .word .LC124 + .word .LC125 + .word .LANCHOR2-1092 + .word -2000 + .word -1952 + .word -1904 + .word .LC126 + .word .LC127 .fnend .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 2 @@ -16181,42 +16201,42 @@ FtlWriteDumpData: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} - .save {r4, r5, r6, r7, r8, sl, lr} - .pad #44 - sub sp, sp, #44 - ldr r4, .L1874 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + .pad #40 + sub sp, sp, #40 + ldr r4, .L1876 ldr r3, [r4, #-2092] mov r2, r4 cmp r3, #0 - bne .L1865 - ldr r3, .L1874+4 + bne .L1867 + ldr r3, .L1876+4 ldrh r3, [r4, r3] cmp r3, #0 - beq .L1867 - ldrb r1, [r4, #-2036] @ zero_extendqisi2 + beq .L1869 + ldrb r1, [r4, #-1992] @ zero_extendqisi2 cmp r1, #0 - bne .L1867 - ldr r5, .L1874+8 - movw r0, #3908 - ldrb r1, [r4, #-2037] @ zero_extendqisi2 + bne .L1869 + ldr r5, .L1876+8 + movw r0, #3912 + ldrb r1, [r4, #-1993] @ zero_extendqisi2 ldrh r0, [r5, r0] mul r1, r0, r1 cmp r3, r1 - beq .L1867 - ldrb r8, [r4, #-2034] @ zero_extendqisi2 - mov r3, #3840 - ldr r7, [r5, #3968] + beq .L1869 + ldrb r8, [r4, #-1990] @ zero_extendqisi2 + movw r3, #3844 + ldr r7, [r5, #3972] cmp r8, #0 ldrh r6, [r5, r3] - bne .L1865 + bne .L1867 sub r7, r7, #1 mov r1, sp mov r2, r8 mov r0, r7 bl log2phys ldr r3, [sp, #0] - ldr r0, [r4, #-2076] + ldr r0, [r4, #-964] ldr r4, [r4, #-940] cmn r3, #1 str r3, [sp, #8] @@ -16224,38 +16244,38 @@ FtlWriteDumpData: str r0, [sp, #12] str r4, [sp, #16] str r8, [r4, #4] - beq .L1868 + beq .L1870 add r0, sp, #4 mov r1, #1 mov r2, r8 bl FlashReadPages - b .L1869 -.L1868: - movw r3, #3918 + b .L1871 +.L1870: + movw r3, #3922 mov r1, #255 ldrh r2, [r5, r3] bl ftl_memset -.L1869: - ldr r3, .L1874+12 +.L1871: + ldr r3, .L1876+12 mov r6, r6, asl #2 - ldr r5, .L1874 - ldr sl, .L1874+4 + ldr r5, .L1876 + ldr r8, .L1876+4 strh r3, [r4, #0] @ movhi - ldr r8, .L1874+16 - b .L1870 -.L1873: - ldrh r3, [r5, sl] + b .L1872 +.L1875: + ldrh r3, [r5, r8] cmp r3, #0 - beq .L1871 + beq .L1873 ldr r3, [sp, #8] - sub r6, r6, #1 + sub r0, r0, #2000 str r7, [r4, #8] - ldr r0, .L1874+20 + sub r6, r6, #1 str r3, [r4, #12] - ldrh r3, [r5, r8] + ldr r3, .L1876+16 + ldrh r3, [r5, r3] strh r3, [r4, #2] @ movhi bl get_new_active_ppa - ldr r3, [r5, #-1844] + ldr r3, [r5, #-1804] mov r2, #0 mov r1, #1 str r0, [sp, #8] @@ -16263,36 +16283,36 @@ FtlWriteDumpData: str r3, [r4, #4] add r3, r3, #1 cmn r3, #1 - str r3, [r5, #-1844] + str r3, [r5, #-1804] moveq r3, #0 - streq r3, [r5, #-1844] + streq r3, [r5, #-1804] mov r3, r2 bl FlashProgPages - ldrh r0, [r5, r8] + ldr r3, .L1876+16 + ldrh r0, [r5, r3] bl decrement_vpc_count -.L1870: +.L1872: cmp r6, #0 - bne .L1873 -.L1871: - ldr r3, .L1874 - mov r2, #1 - strb r2, [r3, #-2034] - b .L1865 -.L1867: + ldr r0, .L1876 + bne .L1875 +.L1873: + mov r3, #1 + strb r3, [r0, #-1990] + b .L1867 +.L1869: mov r3, #0 - strb r3, [r2, #-2034] -.L1865: - add sp, sp, #44 - ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L1875: + strb r3, [r2, #-1990] +.L1867: + add sp, sp, #40 + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L1877: .align 2 -.L1874: +.L1876: .word .LANCHOR2 - .word -2040 + .word -1996 .word .LANCHOR0 .word -3947 - .word -2044 - .word .LANCHOR2-2044 + .word -2000 .fnend .size FtlWriteDumpData, .-FtlWriteDumpData .align 2 @@ -16306,31 +16326,31 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData mov r4, #0 - ldr r7, .L1880 - movw r6, #3946 - ldr r5, .L1880+4 - b .L1877 -.L1879: - ldr r3, [r5, #-1900] + ldr r7, .L1882 + movw r6, #3950 + ldr r5, .L1882+4 + b .L1879 +.L1881: + ldr r3, [r5, #-1856] mov r2, #12 mla r3, r2, r4, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L1878 + bge .L1880 mov r0, r4 bl flush_l2p_region -.L1878: +.L1880: add r4, r4, #1 uxth r4, r4 -.L1877: +.L1879: ldrh r3, [r7, r6] cmp r3, r4 - bhi .L1879 + bhi .L1881 mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1881: +.L1883: .align 2 -.L1880: +.L1882: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -16345,26 +16365,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, .L1889 - ldr r1, .L1889+4 - ldr r0, .L1889+8 + ldr r6, .L1891 + ldr r1, .L1891+4 + ldr r0, .L1891+8 bl printk - movw r3, #3850 + movw r3, #3854 ldrh r2, [r6, r3] mov r1, #0 - ldr r5, .L1889+12 + ldr r5, .L1891+12 mov r2, r2, asl #1 ldr r0, [r5, #-920] bl ftl_memset - b .L1883 -.L1885: + b .L1885 +.L1887: mov r0, r4 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L1884 + beq .L1886 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r3, [r5, #-920] @@ -16372,70 +16392,70 @@ FtlVpcCheckAndModify: ldrh r2, [r3, r0] add r2, r2, #1 strh r2, [r3, r0] @ movhi -.L1884: +.L1886: add r4, r4, #1 -.L1883: - ldr r3, [r6, #3968] +.L1885: + ldr r3, [r6, #3972] cmp r4, r3 - bcc .L1885 + bcc .L1887 mov r4, #0 - ldr r7, .L1889 - movw r8, #3848 - ldr r5, .L1889+12 - b .L1886 -.L1888: - ldr r3, [r5, #-2064] + ldr r7, .L1891 + movw r8, #3852 + ldr r5, .L1891+12 + b .L1888 +.L1890: + ldr r3, [r5, #-2020] mov r6, r4, asl #1 ldrh r2, [r3, r6] ldr r3, [r5, #-920] ldrh r3, [r3, r6] cmp r2, r3 - beq .L1887 + beq .L1889 movw r1, #65535 cmp r2, r1 - beq .L1887 - ldr r0, .L1889+16 + beq .L1889 + ldr r0, .L1891+16 mov r1, r4 bl printk - ldr r3, .L1889+20 + ldr r3, .L1891+20 ldrh r3, [r5, r3] cmp r3, r4 - beq .L1887 - ldr r3, .L1889+24 + beq .L1889 + ldr r3, .L1891+24 ldrh r3, [r5, r3] cmp r3, r4 - beq .L1887 - ldr r3, .L1889+28 + beq .L1889 + ldr r3, .L1891+28 ldrh r3, [r5, r3] cmp r3, r4 - beq .L1887 + beq .L1889 ldr r3, [r5, #-920] mov r0, r4 ldrh r2, [r3, r6] - ldr r3, [r5, #-2064] + ldr r3, [r5, #-2020] strh r2, [r3, r6] @ movhi bl update_vpc_list bl l2p_flush bl FtlVpcTblFlush -.L1887: +.L1889: add r4, r4, #1 uxth r4, r4 -.L1886: +.L1888: ldrh r3, [r7, r8] cmp r3, r4 - bhi .L1888 + bhi .L1890 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc} -.L1890: +.L1892: .align 2 -.L1889: +.L1891: .word .LANCHOR0 .word .LANCHOR3+15 - .word .LC125 + .word .LC128 .word .LANCHOR2 - .word .LC126 - .word -2044 - .word -1948 - .word -1996 + .word .LC129 + .word -2000 + .word -1904 + .word -1952 .fnend .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 2 @@ -16445,116 +16465,115 @@ allocate_new_data_superblock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1903 + ldr r3, .L1905 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 ldr r2, [r3, #-2092] ldrh r5, [r0, #0] cmp r2, #0 - bne .L1892 + bne .L1894 movw r2, #65535 cmp r5, r2 - beq .L1893 - ldr r2, [r3, #-2064] + beq .L1895 + ldr r2, [r3, #-2020] mov r3, r5, asl #1 mov r0, r5 ldrh r3, [r2, r3] cmp r3, #0 - beq .L1894 + beq .L1896 bl INSERT_DATA_LIST - b .L1893 -.L1894: + b .L1895 +.L1896: bl INSERT_FREE_LIST -.L1893: - mov r3, #0 - strb r3, [r4, #8] - ldr r3, .L1903+4 - cmp r4, r3 - beq .L1895 - ldr r2, .L1903+8 - movw r3, #3860 - ldrh r3, [r2, r3] - cmp r3, #1 - beq .L1895 - ldrb r2, [r2, #928] @ zero_extendqisi2 - cmp r2, #0 - beq .L1896 .L1895: - mov r3, #1 + mov r3, #0 strb r3, [r4, #8] - b .L1897 -.L1896: - ldr r2, .L1903+12 + ldr r3, .L1905 + sub r2, r3, #1952 cmp r4, r2 - bne .L1897 - cmp r3, #3 - ldr r3, .L1903 - beq .L1898 - ldr r2, [r3, #-1708] + beq .L1897 + ldr r1, .L1905+4 + movw r2, #3864 + ldrh r2, [r1, r2] cmp r2, #1 - bne .L1899 + beq .L1897 + ldrb r1, [r1, #928] @ zero_extendqisi2 + cmp r1, #0 + beq .L1898 +.L1897: + mov r3, #1 + strb r3, [r4, #8] + b .L1899 .L1898: + sub r1, r3, #2000 + cmp r4, r1 + bne .L1899 + cmp r2, #3 + beq .L1900 + ldr r2, [r3, #-1716] + cmp r2, #1 + bne .L1901 +.L1900: mov r2, #1 - strb r2, [r3, #-2036] -.L1899: - ldr r3, [r3, #-1884] - ldr r2, .L1903 - cmp r3, #0 - beq .L1897 - ldr r3, [r2, #-1824] + strb r2, [r3, #-1992] +.L1901: + ldr r2, .L1905+4 + ldr r2, [r2, #3836] + cmp r2, #0 + beq .L1899 + ldr r3, [r3, #-1784] cmp r3, #29 - movls r3, #1 - strlsb r3, [r2, #-2036] -.L1897: - ldr r3, .L1903+16 - ldr r6, .L1903 + ldrls r3, .L1905 + movls r2, #1 + strlsb r2, [r3, #-1992] +.L1899: + ldr r3, .L1905+8 + ldr r6, .L1905 ldrh r0, [r6, r3] movw r3, #65535 cmp r0, r3 - beq .L1900 + beq .L1902 cmp r5, r0 - bne .L1901 - ldr r2, [r6, #-2064] + bne .L1903 + ldr r2, [r6, #-2020] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L1902 -.L1901: + beq .L1904 +.L1903: bl update_vpc_list -.L1902: - ldr r3, .L1903+16 +.L1904: + ldr r3, .L1905+8 mvn r2, #0 strh r2, [r6, r3] @ movhi -.L1900: +.L1902: mov r0, r4 bl allocate_data_superblock bl l2p_flush mov r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L1892: +.L1894: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L1904: +.L1906: .align 2 -.L1903: +.L1905: .word .LANCHOR2 - .word .LANCHOR2-1996 .word .LANCHOR0 - .word .LANCHOR2-2044 - .word -1016 + .word -1024 .fnend .size allocate_new_data_superblock, .-allocate_new_data_superblock .align 2 - .type rk_ftl_garbage_collect.part.22, %function -rk_ftl_garbage_collect.part.22: + .type ftl_do_gc.part.21, %function +ftl_do_gc.part.21: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2002 + ldr r3, .L2004 movw ip, #65535 - ldr r2, .L2002+4 + ldr r2, .L2004+4 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #36 @@ -16563,95 +16582,94 @@ rk_ftl_garbage_collect.part.22: str r0, [sp, #16] ldrh r0, [r3, r2] cmp r0, ip - beq .L1906 - ldr r1, .L2002+8 + beq .L1908 + ldr r1, .L2004+8 ldrh r4, [r3, r1] cmp r4, ip streqh r0, [r3, r1] @ movhi mvneq r1, #0 streqh r1, [r3, r2] @ movhi -.L1906: +.L1908: ldr r1, [sp, #16] - ldr r2, [r3, #-1188] + ldr r2, [r3, #-1196] cmp r1, #1 add r2, r2, #1 add r2, r2, r1, asl #7 - str r2, [r3, #-1188] - bne .L1907 - ldr r3, .L2002 - ldr r3, [r3, #-1884] - cmp r3, #0 - bne .L1908 - ldr r3, .L2002+12 + str r2, [r3, #-1196] + bne .L1909 + ldr r3, .L2004+12 + ldr r1, [r3, #3836] + cmp r1, #0 + bne .L1910 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1907 -.L1908: - ldr r4, .L2002 - ldr r3, [r4, #-1824] + beq .L1909 +.L1910: + ldr r4, .L2004 + ldr r3, [r4, #-1784] cmp r3, #29 - bhi .L1907 + bhi .L1909 mov r3, #428 ldrh r3, [r4, r3] add r2, r2, r3 - str r2, [r4, #-1188] + str r2, [r4, #-1196] bl FtlGcReFreshBadBlk - ldr r3, .L2002+16 + ldr r3, .L2004+16 movw r2, #65535 ldrh r3, [r4, r3] cmp r3, r2 - bne .L1907 - ldr r2, .L2002+8 + bne .L1909 + ldr r2, .L2004+8 ldrh r2, [r4, r2] cmp r2, r3 - bne .L1907 - ldr r3, [r4, #-1188] + bne .L1909 + ldr r3, [r4, #-1196] cmp r3, #1024 - bhi .L1909 - ldr r3, .L2002+20 + bhi .L1911 + ldr r3, .L2004+20 ldrh r3, [r4, r3] cmp r3, #63 - bhi .L1907 -.L1909: - ldr r3, .L2002 + bhi .L1909 +.L1911: + ldr r3, .L2004 mov r2, #428 - ldr r0, .L2002+20 + ldr r0, .L2004+20 mov r1, #0 strh r1, [r3, r2] @ movhi ldrh ip, [r3, r0] - ldr r0, .L2002+24 + ldr r0, .L2004+24 ldrh r0, [r3, r0] add r0, r0, #64 cmp ip, r0 - bgt .L1907 - str r1, [r3, #-1188] - ldr r1, [r3, #-1824] + bgt .L1909 + str r1, [r3, #-1196] + ldr r1, [r3, #-1784] cmp r1, #0 moveq r1, #6 - beq .L1998 + beq .L2000 cmp r1, #5 - bhi .L1911 + bhi .L1913 mov r1, #18 -.L1998: +.L2000: strh r1, [r3, r2] @ movhi -.L1911: +.L1913: mov r0, #32 movw r7, #65535 bl List_get_gc_head_node uxth r2, r0 cmp r2, r7 - beq .L1912 - ldr r5, .L2002 - ldr r6, .L2002+28 + beq .L1914 + ldr r5, .L2004 + ldr r6, .L2004+28 ldrh r0, [r5, r6] cmp r0, #0 moveq r3, #1 streqh r3, [r5, r6] @ movhi - beq .L1912 - ldr r3, .L2002+12 - movw ip, #3910 - mov lr, #3840 - ldr r9, [r5, #-2064] + beq .L1914 + ldr r3, .L2004+12 + movw ip, #3914 + movw lr, #3844 + ldr r9, [r5, #-2020] mov r2, r2, asl #1 ldrh ip, [r3, ip] ldrh r3, [r3, lr] @@ -16659,10 +16677,10 @@ rk_ftl_garbage_collect.part.22: mul r3, r3, ip add r3, r3, #1 cmp r1, r3 - bgt .L1912 + bgt .L1914 add fp, r0, #1 mov r8, #0 - str r8, [r5, #-1180] + str r8, [r5, #-1188] uxth fp, fp strh fp, [r5, r6] @ movhi str r2, [sp, #8] @@ -16670,10 +16688,10 @@ rk_ftl_garbage_collect.part.22: ldr r2, [sp, #8] uxth r4, r0 cmp r4, r7 - beq .L1912 + beq .L1914 ldrh r2, [r9, r2] mov r7, r4, asl #1 - ldr r0, .L2002+32 + ldr r0, .L2004+32 mov r1, fp ldrh r3, [r9, r7] str r2, [sp, #0] @@ -16681,99 +16699,100 @@ rk_ftl_garbage_collect.part.22: bl printk ldrh r3, [r5, r6] cmp r3, #40 - bls .L1914 - ldr r3, [r5, #-2064] + bls .L1916 + ldr r3, [r5, #-2020] ldrh r3, [r3, r7] cmp r3, #32 strhih r8, [r5, r6] @ movhi -.L1914: - ldr r2, .L2002 +.L1916: + ldr r2, .L2004 mov r3, #428 mov r1, #6 strh r1, [r2, r3] @ movhi - b .L1916 -.L1912: + b .L1918 +.L1914: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 mov r4, r0 - bne .L1916 - ldr r2, .L2002 + bne .L1918 + ldr r2, .L2004 mov r3, #428 mov r1, #0 strh r1, [r2, r3] @ movhi -.L1907: - ldr r6, .L2002 +.L1909: + ldr r5, .L2004 movw r4, #65535 - ldr r3, .L2002+16 - ldrh r2, [r6, r3] + ldr r3, .L2004+16 + ldrh r2, [r5, r3] cmp r2, r4 - bne .L1916 - sub r3, r3, #192 - ldrh r3, [r6, r3] + bne .L1918 + ldr r3, .L2004+36 + ldrh r3, [r5, r3] cmp r3, r2 movne r4, r2 - bne .L1916 - ldr r2, .L2002+8 - ldrh r7, [r6, r2] + bne .L1918 + ldr r2, .L2004+8 + ldrh r7, [r5, r2] cmp r7, r3 movne r4, r3 - bne .L1916 - ldr r8, .L2002+20 - ldr r2, [r6, #-1188] - ldrh r3, [r6, r8] + bne .L1918 + ldr r8, .L2004+20 + ldr r2, [r5, #-1196] + ldrh r3, [r5, r8] cmp r3, #23 movhi r3, #1024 movls r3, #5120 cmp r2, r3 movls r4, r7 - bls .L1916 + bls .L1918 mov r2, #428 mov r3, #0 - str r3, [r6, #-1188] - strh r3, [r6, r2] @ movhi + str r3, [r5, #-1196] + mov r6, r5 + strh r3, [r5, r2] @ movhi bl GetSwlReplaceBlock cmp r0, r7 mov r4, r0 - bne .L1918 - ldr r3, .L2002+24 - ldrh r1, [r6, r8] - ldrh r2, [r6, r3] + bne .L1920 + ldr r3, .L2004+24 + ldrh r1, [r5, r8] + ldrh r2, [r5, r3] cmp r1, r2 movcs r2, #80 - strcsh r2, [r6, r3] @ movhi - bcs .L1928 + strcsh r2, [r5, r3] @ movhi + bcs .L1930 mov r0, #64 bl List_get_gc_head_node uxth r3, r0 cmp r3, r4 - beq .L1928 - ldr r2, [r6, #-996] + beq .L1930 + ldr r2, [r5, #-1004] cmp r2, #0 - bne .L1921 - ldr r2, .L2002+12 - movw r1, #3860 + bne .L1923 + ldr r2, .L2004+12 + movw r1, #3864 ldrh r1, [r2, r1] cmp r1, #3 - beq .L1921 - ldr r1, [r6, #-1708] + beq .L1923 + ldr r1, [r5, #-1716] cmp r1, #0 - bne .L1921 - ldr r1, [r6, #-1884] + bne .L1923 + ldr r1, [r2, #3836] cmp r1, #0 - bne .L1921 + bne .L1923 ldrb r0, [r2, #928] @ zero_extendqisi2 cmp r0, #0 - beq .L1922 -.L1921: - ldr r1, .L2002 + beq .L1924 +.L1923: + ldr r1, .L2004 mov r3, r3, asl #1 - mov ip, #3840 - movw lr, #3860 - ldr r2, [r1, #-2064] + movw ip, #3844 + movw lr, #3864 + ldr r2, [r1, #-2020] ldrh r0, [r2, r3] - movw r2, #3910 - ldr r3, .L2002+12 + movw r2, #3914 + ldr r3, .L2004+12 ldrh r2, [r3, r2] ldrh ip, [r3, ip] ldrh r3, [r3, lr] @@ -16783,403 +16802,403 @@ rk_ftl_garbage_collect.part.22: movne r3, #0 add r3, ip, r3 cmp r0, r3 - bgt .L1924 + bgt .L1926 mov r0, #0 bl List_get_gc_head_node - ldr r2, .L2002+12 - ldr r3, .L2002 - ldr r2, [r2, #3968] - ldr r1, [r3, #-1892] + ldr r2, .L2004+12 + ldr r3, .L2004 + ldr r2, [r2, #3972] + ldr r1, [r3, #-1848] add r2, r2, r2, asl #1 cmp r1, r2, lsr #2 - ldr r2, .L2002+24 + ldr r2, .L2004+24 movhi r1, #128 movls r1, #160 strh r1, [r3, r2] @ movhi uxth r4, r0 - b .L1926 -.L1924: - ldr r3, .L2002+24 + b .L1928 +.L1926: + ldr r3, .L2004+24 mov r2, #128 strh r2, [r1, r3] @ movhi - b .L1928 -.L1922: - ldr r2, [r6, #-2064] + b .L1930 +.L1924: + ldr r2, [r5, #-2020] mov r3, r3, asl #1 - ldr r6, .L2002 - ldr r5, .L2002+24 + ldr r6, .L2004 + ldr r5, .L2004+24 ldrh r3, [r2, r3] cmp r3, #7 movhi r3, #64 strhih r3, [r6, r5] @ movhi - bhi .L1928 + bhi .L1930 bl List_get_gc_head_node mov r3, #128 strh r3, [r6, r5] @ movhi uxth r4, r0 -.L1926: +.L1928: movw r3, #65535 cmp r4, r3 - beq .L1928 -.L1918: - ldr r1, .L2002 + beq .L1930 +.L1920: + ldr r1, .L2004 mov r0, r4, asl #1 - ldr r3, .L2002+20 + ldr r3, .L2004+20 ldr ip, [r1, #-2084] ldrh r2, [r1, r3] - ldr r3, [r1, #-2064] + ldr r3, [r1, #-2020] ldrh r3, [r3, r0] ldrh r0, [ip, r0] str r0, [sp, #0] - ldr r0, .L2002+36 + ldr r0, .L2004+40 ldrh r1, [r1, r0] - ldr r0, .L2002+40 + ldr r0, .L2004+44 str r1, [sp, #4] mov r1, r4 bl printk -.L1928: +.L1930: bl FtlGcReFreshBadBlk -.L1916: +.L1918: movw r0, #65535 rsb ip, r0, r4 rsbs r1, ip, #0 ldr r3, [sp, #16] adc r1, r1, ip - ldr r5, .L2002 + ldr r5, .L2004 cmp r3, #0 movne r2, #0 andeq r2, r1, #1 cmp r2, #0 - beq .L1929 - ldr r3, .L2002+20 + beq .L1931 + ldr r3, .L2004+20 ldrh r2, [r5, r3] cmp r2, #24 movhi r6, #1 - bhi .L1930 - ldr r1, .L2002+12 - movw r3, #3908 + bhi .L1932 + ldr r1, .L2004+12 + movw r3, #3912 cmp r2, #16 ldrh r6, [r1, r3] movhi r6, r6, lsr #5 - bhi .L1930 + bhi .L1932 cmp r2, #12 movhi r6, r6, lsr #4 - bhi .L1930 + bhi .L1932 cmp r2, #8 movhi r6, r6, lsr #2 -.L1930: - ldr r1, .L2002+36 - ldr r3, .L2002 +.L1932: + ldr r1, .L2004+40 + ldr r3, .L2004 ldrh r0, [r5, r1] cmp r0, r2 - mov r0, r1 - bcs .L1934 - ldr r2, .L2002+44 - movw ip, #65535 + bcs .L1936 + ldr r2, .L2004+36 + movw r0, #65535 ldrh r2, [r3, r2] - cmp r2, ip - bne .L1935 - ldr ip, .L2002+8 - ldrh ip, [r3, ip] - cmp ip, r2 - bne .L1935 + cmp r2, r0 + bne .L1937 + ldr r0, .L2004+8 + ldrh r0, [r3, r0] + cmp r0, r2 + bne .L1937 mov r2, #428 ldrh r0, [r3, r2] cmp r0, #0 - bne .L1936 - ldr r2, .L2002+12 - ldr ip, [r3, #-1892] - ldr r2, [r2, #3968] + bne .L1938 + ldr r2, .L2004+12 + ldr ip, [r3, #-1848] + ldr r2, [r2, #3972] add r2, r2, r2, asl #1 cmp ip, r2, lsr #2 movcs r2, #18 - bcs .L2000 -.L1936: - ldr r3, .L2002 - ldr r2, .L2002+48 - ldr r1, .L2002+36 + bcs .L2002 +.L1938: + ldr r3, .L2004 + ldr r2, .L2004+48 + ldr r1, .L2004+40 ldrh r2, [r3, r2] add r2, r2, r2, asl #1 mov r2, r2, asr #2 -.L2000: +.L2002: strh r2, [r3, r1] @ movhi mov r2, #0 - ldr r3, .L2002 - str r2, [r3, #-1180] - b .L1939 -.L1935: - ldr r3, .L2002 - ldr r2, .L2002+48 + ldr r3, .L2004 + str r2, [r3, #-1188] + b .L1941 +.L1937: + ldr r3, .L2004 + ldr r2, .L2004+48 + ldr r1, .L2004+40 ldrh r2, [r3, r2] add r2, r2, r2, asl #1 mov r2, r2, asr #2 - strh r2, [r3, r0] @ movhi -.L1934: - ldr r3, .L2002 + strh r2, [r3, r1] @ movhi +.L1936: + ldr r3, .L2004+12 cmp sl, #2 movw r4, #65535 movhi sl, #0 movls sl, #1 - ldr r3, [r3, #-1884] + ldr r3, [r3, #3836] cmp r3, #0 moveq sl, #0 cmp sl, #0 addne r6, r6, #1 uxthne r6, r6 - b .L1940 -.L1929: - ldr r3, .L2002+44 + b .L1942 +.L1931: + ldr r3, .L2004+36 ldrh r3, [r5, r3] cmp r3, r0 - bne .L1941 - ldr r0, .L2002+8 + bne .L1943 + ldr r0, .L2004+8 ldrh r0, [r5, r0] cmp r0, r3 movne r1, #0 andeq r1, r1, #1 cmp r1, #0 - beq .L1941 - ldr r1, .L2002+16 + beq .L1943 + ldr r1, .L2004+16 ldrh r4, [r5, r1] cmp r4, r3 movne r4, r3 - bne .L1941 - ldr r3, .L2002+20 + bne .L1943 + ldr r3, .L2004+20 mov r6, #428 - str r2, [r5, #-1180] + str r2, [r5, #-1188] ldrh r7, [r5, r3] - add r3, r3, #856 + add r3, r3, #804 ldrh r2, [r5, r3] cmp r2, r7 - bcs .L1942 + bcs .L1944 ldrh r2, [r5, r6] cmp r2, #0 - bne .L1943 - ldr r2, .L2002+12 - ldr r1, [r5, #-1892] - ldr r2, [r2, #3968] + bne .L1945 + ldr r2, .L2004+12 + ldr r1, [r5, #-1848] + ldr r2, [r2, #3972] add r2, r2, r2, asl #1 cmp r1, r2, lsr #2 movcs r2, #18 strcsh r2, [r5, r3] @ movhi - bcs .L1945 -.L1943: - ldr r3, .L2002 - ldr r2, .L2002+48 - ldr r1, .L2002+36 + bcs .L1947 +.L1945: + ldr r3, .L2004 + ldr r2, .L2004+48 + ldr r1, .L2004+40 ldrh r2, [r3, r2] add r2, r2, r2, asl #1 mov r2, r2, asr #2 strh r2, [r3, r1] @ movhi -.L1945: +.L1947: bl FtlReadRefresh mov r3, #428 - ldr r2, .L2002 - b .L2001 -.L1942: + ldr r2, .L2004 + b .L2003 +.L1944: ldrh r0, [r5, r6] cmp r0, #0 - bne .L1941 - ldr r2, .L2002+48 + bne .L1943 + ldr r2, .L2004+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, #-2064] - ldr r1, .L2002+12 - movw r2, #3910 + ldr r3, [r5, #-2020] + ldr r1, .L2004+12 + movw r2, #3914 ldrh r2, [r1, r2] uxth r0, r0 mov r0, r0, asl #1 ldrh r3, [r3, r0] - mov r0, #3840 + movw r0, #3844 ldrh r1, [r1, r0] mul r2, r1, r2 add r2, r2, r2, lsr #31 cmp r3, r2, asr #1 - ble .L1946 + ble .L1948 sub r4, r4, #1 cmp r7, r4 - blt .L1946 + blt .L1948 bl FtlReadRefresh ldrh r0, [r5, r6] - b .L1939 -.L1946: + b .L1941 +.L1948: cmp r3, #0 movwne r4, #65535 - bne .L1941 + bne .L1943 movw r0, #65535 bl decrement_vpc_count - ldr r3, .L2002+20 - ldr r2, .L2002 + ldr r3, .L2004+20 + ldr r2, .L2004 ldrh r0, [r2, r3] add r0, r0, #1 - b .L1939 -.L1941: - ldr r3, .L2002 - ldr r6, [r3, #-1884] + b .L1941 +.L1943: + ldr r3, .L2004+12 + ldr r6, [r3, #3836] cmp r6, #0 movne r6, #2 moveq r6, #1 -.L1940: - ldr r3, .L2002 +.L1942: + ldr r3, .L2004 movw r0, #65535 - ldr r2, .L2002+16 + ldr r2, .L2004+16 ldrh r1, [r3, r2] cmp r1, r0 - bne .L1947 + bne .L1949 cmp r4, r1 strneh r4, [r3, r2] @ movhi - bne .L1949 - ldr r2, .L2002+8 + bne .L1951 + ldr r2, .L2004+8 ldrh r1, [r3, r2] cmp r1, r4 - beq .L1949 - ldr r0, [r3, #-2064] + beq .L1951 + ldr r0, [r3, #-2020] mov r1, r1, asl #1 ldrh r1, [r0, r1] cmp r1, #0 mvneq r1, #0 streqh r1, [r3, r2] @ movhi - ldr r3, .L2002 - ldr r1, .L2002+16 + ldr r3, .L2004 + ldr r1, .L2004+16 ldrh r0, [r3, r2] strh r0, [r3, r1] @ movhi mvn r1, #0 strh r1, [r3, r2] @ movhi -.L1949: - ldr r5, .L2002 +.L1951: + ldr r5, .L2004 mov r3, #0 - ldr r7, .L2002+16 - strb r3, [r5, #-1748] + ldr r7, .L2004+16 + strb r3, [r5, #-1756] movw r3, #65535 ldrh r0, [r5, r7] cmp r0, r3 - beq .L1947 + beq .L1949 bl IsBlkInGcList cmp r0, #0 mvnne r3, #0 strneh r3, [r5, r7] @ movhi - ldr r3, .L2002+12 - ldr r7, .L2002 + ldr r3, .L2004+12 + ldr r7, .L2004 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1952 - ldr r3, .L2002+16 + beq .L1954 + ldr r3, .L2004+16 ldrh r0, [r7, r3] bl ftl_get_blk_mode - strb r0, [r7, #-1748] -.L1952: - ldr r8, .L2002+16 + strb r0, [r7, #-1756] +.L1954: + ldr r8, .L2004+16 movw r3, #65535 - ldr r5, .L2002 + ldr r5, .L2004 ldrh r2, [r7, r8] cmp r2, r3 - beq .L1947 - ldr r0, .L2002+52 + beq .L1949 + ldr r0, .L2004+52 bl make_superblock - ldr r1, .L2002+56 + ldr r1, .L2004+56 movw r2, #430 mov r3, #0 strh r3, [r5, r2] @ movhi strh r3, [r5, r1] @ movhi - strb r3, [r5, #-1750] + strb r3, [r5, #-1758] ldrh r3, [r5, r8] - ldr r2, [r5, #-2064] + ldr r2, [r5, #-2020] mov r3, r3, asl #1 ldrh r2, [r2, r3] mov r3, #432 strh r2, [r5, r3] @ movhi -.L1947: - ldr r3, .L2002 - ldr r0, .L2002+16 - ldr r2, .L2002+60 +.L1949: + ldr r3, .L2004 + ldr r0, .L2004+16 + ldr r2, .L2004+60 ldrh r1, [r3, r0] ldrh r2, [r3, r2] cmp r2, r1 mov r2, r3 - beq .L1953 - ldr ip, .L2002+64 + beq .L1955 + ldr ip, .L2004+64 ldrh r3, [r3, ip] cmp r3, r1 - strne r4, [sp, #20] - bne .L1997 -.L1954: -.L1953: + movne fp, r4 + bne .L1999 +.L1956: +.L1955: mvn r3, #0 strh r3, [r2, r0] @ movhi mov r3, #428 -.L2001: +.L2003: ldrh r0, [r2, r3] - b .L1939 -.L1997: - ldr r4, .L2002 + b .L1941 +.L1999: + ldr r4, .L2004 movw sl, #65535 - ldr r7, .L2002+16 - ldrh r3, [r4, r7] + ldr r9, .L2004+16 + ldrh r3, [r4, r9] cmp r3, sl - bne .L1956 + bne .L1958 + ldr r5, .L2004+28 mov r3, #0 - str r3, [r4, #-1180] -.L1996: - ldr r8, .L2002+28 - ldrh sl, [r4, r8] - mov r0, sl + str r3, [r4, #-1188] +.L1998: + ldrh r8, [r4, r5] + mov r0, r8 bl List_get_gc_head_node movw r1, #65535 - uxth r5, r0 - strh r5, [r4, r7] @ movhi - cmp r5, r1 - ldreq r3, .L2002 - moveq r2, #0 - moveq r0, #8 - streqh r2, [r3, r8] @ movhi - beq .L1939 -.L1958: - mov r0, r5 + uxth r7, r0 + strh r7, [r4, r9] @ movhi + cmp r7, r1 + bne .L1960 + ldr r3, .L2004+28 + mov r1, #0 + ldr r2, .L2004 + mov r0, #8 + strh r1, [r2, r3] @ movhi + b .L1941 +.L1960: + mov r0, r7 bl IsBlkInGcList cmp r0, #0 - add r0, sl, #1 - strneh r0, [r4, r8] @ movhi - bne .L1996 - ldr ip, .L2002+12 + add r0, r8, #1 + strneh r0, [r4, r5] @ movhi + bne .L1998 + ldr ip, .L2004+12 + movw r8, #3912 + ldr r2, [r4, #-2020] + mov r3, r7, asl #1 uxth r0, r0 - mov sl, #3840 - strh r0, [r4, r8] @ movhi - movw r8, #3908 - ldr r2, [r4, #-2064] - ldrh r8, [ip, r8] - mov r3, r5, asl #1 - ldrh ip, [ip, sl] + strh r0, [r4, r5] @ movhi + ldrh sl, [ip, r8] + movw r8, #3844 + ldrh ip, [ip, r8] ldrh r1, [r2, r3] - mul r8, ip, r8 - add ip, r8, r8, lsr #31 + mul sl, ip, sl + add ip, sl, sl, lsr #31 cmp r1, ip, asr #1 - bgt .L1961 + bgt .L1963 cmp r0, #48 - bls .L1962 + bls .L1964 cmp r1, #8 - bls .L1962 - ldr r1, .L2002+68 + bls .L1964 + ldr r1, .L2004+68 ldrh r1, [r4, r1] cmp r1, #35 - bhi .L1962 -.L1961: - ldr r1, .L2002+28 - mov r0, #0 - strh r0, [r4, r1] @ movhi -.L1962: - ldr sl, [sp, #20] - movw r1, #65535 + bhi .L1964 +.L1963: + mov r1, #0 + strh r1, [r4, r5] @ movhi +.L1964: ldrh r3, [r2, r3] - cmp r3, r8 - cmpge sl, r1 - ldr sl, .L2002 + movw r2, #65535 + cmp r3, sl + cmpge fp, r2 + ldr sl, .L2004 movne r8, #0 moveq r8, #1 - bne .L1963 - ldr r3, .L2002+16 + bne .L1965 + ldr r3, .L2004+16 mvn r2, #0 strh r2, [sl, r3] @ movhi add r3, r3, #572 @@ -17187,74 +17206,74 @@ rk_ftl_garbage_collect.part.22: strh r2, [sl, r3] @ movhi mov r3, #428 ldrh r0, [sl, r3] - b .L1939 -.L1963: + b .L1941 +.L1965: cmp r3, #0 - bne .L1964 + bne .L1966 movw r0, #65535 bl decrement_vpc_count - ldr r3, .L2002+28 - ldrh r2, [r4, r3] - add r2, r2, #1 - strh r2, [r4, r3] @ movhi - b .L1996 -.L1964: - ldr r3, .L2002+12 - strb r8, [sl, #-1748] + ldrh r3, [r4, r5] + add r3, r3, #1 + strh r3, [r4, r5] @ movhi + b .L1998 +.L1966: + ldr r3, .L2004+12 + strb r8, [sl, #-1756] ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L1965 - mov r0, r5 + beq .L1967 + mov r0, r7 bl ftl_get_blk_mode - strb r0, [sl, #-1748] -.L1965: - ldr r4, .L2002 - ldr r0, .L2002+52 + strb r0, [sl, #-1756] +.L1967: + ldr r4, .L2004 + ldr r0, .L2004+52 bl make_superblock movw r1, #430 mov r3, #0 strh r3, [r4, r1] @ movhi - ldr r1, .L2002+16 - ldr r0, [r4, #-2064] + ldr r1, .L2004+16 + ldr r0, [r4, #-2020] ldrh r1, [r4, r1] mov r1, r1, asl #1 ldrh r0, [r0, r1] mov r1, #432 - strb r3, [r4, #-1750] + strb r3, [r4, #-1758] strh r0, [r4, r1] @ movhi - ldr r1, .L2002+56 + ldr r1, .L2004+56 strh r3, [r4, r1] @ movhi -.L1956: +.L1958: ldr sl, [sp, #16] cmp sl, #1 - bne .L1966 + bne .L1968 bl FtlReadRefresh -.L1966: - ldr r3, .L2002 +.L1968: + ldr r3, .L2004 mov r2, #1 - movw r1, #3908 - str r2, [r3, #-992] - ldr r2, .L2002+12 + movw r1, #3912 + str r2, [r3, #-1000] + ldr r2, .L2004+12 ldrh r9, [r2, r1] ldrb r1, [r2, #928] @ zero_extendqisi2 cmp r1, #0 - beq .L1967 - ldrb r1, [r3, #-1748] @ zero_extendqisi2 + beq .L1969 + ldrb r1, [r3, #-1756] @ zero_extendqisi2 cmp r1, #1 - movweq r1, #3910 + movweq r1, #3914 ldreqh r9, [r2, r1] -.L1967: - ldr r2, .L2002+56 +.L1969: + ldr r2, .L2004+56 mov r8, #0 - ldr r4, .L2002 + str fp, [sp, #20] mov fp, r9 + ldr r4, .L2004 ldrh r3, [r3, r2] add r2, r3, r6 cmp r2, r9 rsbgt r6, r3, r9 uxthgt r6, r6 - b .L1969 -.L1971: + b .L1971 +.L1973: ldrh r1, [r2, #2]! movw sl, #65535 add r3, r3, #1 @@ -17265,46 +17284,46 @@ rk_ftl_garbage_collect.part.22: addne r7, r7, #1 uxthne r7, r7 strne r1, [sl, #4] -.L1977: +.L1979: cmp r3, r5 - bne .L1971 - ldr r0, [r4, #-1160] + bne .L1973 + ldr r0, [r4, #-1168] mov r1, r7 - ldrb r2, [r4, #-1748] @ zero_extendqisi2 + ldrb r2, [r4, #-1756] @ zero_extendqisi2 mov r5, #0 bl FlashReadPages mov r9, r5 mov sl, r6 - b .L1972 -.L1975: - ldr r3, [r4, #-1160] + b .L1974 +.L1977: + ldr r3, [r4, #-1168] add r2, r3, r5 ldr r3, [r3, r5] ldr r6, [r2, #12] cmn r3, #1 - beq .L1973 + beq .L1975 ldrh r3, [r6, #0] movw r1, #61589 cmp r3, r1 - bne .L1973 + bne .L1975 add r1, sp, #28 mov r2, #0 ldr r0, [r6, #8] bl log2phys - ldr r1, [r4, #-1160] + ldr r1, [r4, #-1168] ldr r2, [sp, #28] add r1, r1, r5 bic r2, r2, #-2147483648 ldr r3, [r1, #4] cmp r2, r3 - bne .L1973 + bne .L1975 movw r3, #430 - ldr r0, [r4, #-1176] + ldr r0, [r4, #-1184] ldrh r2, [r4, r3] ldr r1, [r1, #16] add r2, r2, #1 strh r2, [r4, r3] @ movhi - ldr r2, [r4, #-968] + ldr r2, [r4, #-972] mov r3, #36 mla r2, r3, r0, r2 str r1, [r2, #16] @@ -17312,12 +17331,12 @@ rk_ftl_garbage_collect.part.22: str r3, [sp, #12] bl Ftl_get_new_temp_ppa ldr r2, [sp, #8] - ldr r1, [r4, #-1176] + ldr r1, [r4, #-1184] str r0, [r2, #4] ldr r3, [sp, #12] - ldr r2, [r4, #-968] + ldr r2, [r4, #-972] mla r3, r3, r1, r2 - ldr r2, [r4, #-1160] + ldr r2, [r4, #-1168] add r2, r2, r5 ldr r1, [r2, #8] str r1, [r3, #8] @@ -17326,204 +17345,205 @@ rk_ftl_garbage_collect.part.22: str r2, [r3, #12] ldr r3, [sp, #28] str r3, [r6, #12] - ldr r3, .L2002+44 + ldr r3, .L2004+36 ldrh r3, [r4, r3] strh r3, [r6, #2] @ movhi - ldr r3, [r4, #-1844] - ldr r0, [r4, #-1160] + ldr r3, [r4, #-1804] + ldr r0, [r4, #-1168] str r3, [r6, #4] add r0, r0, r5 - ldr r3, [r4, #-1176] + ldr r3, [r4, #-1184] add r3, r3, #1 - str r3, [r4, #-1176] + str r3, [r4, #-1184] bl FtlGcBufAlloc - ldr r3, .L2002+12 + ldr r3, .L2004+12 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - bne .L1974 - ldrb r3, [r4, #-1941] @ zero_extendqisi2 - ldr r2, [r4, #-1176] + bne .L1976 + ldrb r3, [r4, #-1897] @ zero_extendqisi2 + ldr r2, [r4, #-1184] cmp r2, r3 - beq .L1974 - ldr r3, .L2002+72 + beq .L1976 + ldr r3, .L2004+72 ldrh r3, [r4, r3] cmp r3, #0 - bne .L1973 -.L1974: + bne .L1975 +.L1976: bl Ftl_gc_temp_data_write_back cmp r0, #0 - ldrne r3, .L2002 + ldrne r3, .L2004 movne r2, #0 - strne r2, [r3, #-992] + strne r2, [r3, #-1000] movne r2, #428 - bne .L2001 -.L1973: + bne .L2003 +.L1975: add r9, r9, #1 add r5, r5, #36 uxth r9, r9 -.L1972: +.L1974: cmp r9, r7 - bne .L1975 + bne .L1977 add r8, r8, #1 mov r6, sl -.L1969: +.L1971: uxth r3, r8 - ldr r7, .L2002 + ldr r7, .L2004 cmp r3, r6 - ldr r3, .L2002+56 - bcs .L1976 - ldr r1, .L2002+12 - mov r2, #3840 + ldr r3, .L2004+56 + bcs .L1978 + ldr r1, .L2004+12 + movw r2, #3844 ldrh ip, [r4, r3] mov r7, #0 - ldr lr, [r4, #-1160] + ldr lr, [r4, #-1168] mov r3, r7 ldrh r5, [r1, r2] add ip, ip, r8 - ldr r2, .L2002+76 + ldr r2, .L2004+76 mov r0, #36 - b .L1977 -.L1976: + b .L1979 +.L1978: ldrh r2, [r7, r3] mov r9, fp + ldr fp, [sp, #20] add r6, r6, r2 uxth r6, r6 strh r6, [r7, r3] @ movhi - cmp r6, fp - bcc .L1978 - ldr r3, [r7, #-1176] + cmp r6, r9 + bcc .L1980 + ldr r3, [r7, #-1184] cmp r3, #0 - beq .L1979 + beq .L1981 bl Ftl_gc_temp_data_write_back cmp r0, #0 movne r3, #0 - strne r3, [r7, #-992] + strne r3, [r7, #-1000] movne r3, #428 ldrneh r0, [r7, r3] - bne .L1939 -.L1979: - ldr r3, .L2002 + bne .L1941 +.L1981: + ldr r3, .L2004 movw r2, #430 ldrh ip, [r3, r2] cmp ip, #0 - bne .L1980 - ldr r2, .L2002+16 - ldr r0, [r3, #-2064] + bne .L1982 + ldr r2, .L2004+16 + ldr r0, [r3, #-2020] ldrh r1, [r3, r2] mov r1, r1, asl #1 ldrh r4, [r0, r1] cmp r4, #0 - beq .L1980 + beq .L1982 strh ip, [r0, r1] @ movhi ldrh r0, [r3, r2] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L1980: - ldr r3, .L2002+16 +.L1982: + ldr r3, .L2004+16 mvn r1, #0 - ldr r2, .L2002 + ldr r2, .L2004 strh r1, [r2, r3] @ movhi -.L1978: - ldr r3, .L2002 - ldr r2, .L2002+20 +.L1980: + ldr r3, .L2004 + ldr r2, .L2004+20 ldrh r2, [r3, r2] cmp r2, #2 - ldrls r2, .L2002+12 - movwls r3, #3908 + ldrls r2, .L2004+12 + movwls r3, #3912 ldrlsh r6, [r2, r3] - bls .L1997 -.L1981: + bls .L1999 +.L1983: mov r1, #0 - str r1, [r3, #-992] + str r1, [r3, #-1000] mov r1, #428 ldrh r0, [r3, r1] cmp r0, #0 addeq r0, r2, #1 -.L1939: +.L1941: add sp, sp, #36 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2003: +.L2005: .align 2 -.L2002: +.L2004: .word .LANCHOR2 - .word -1136 - .word -1138 + .word -1144 + .word -1146 .word .LANCHOR0 - .word -1756 - .word -2048 - .word -1190 - .word -1184 - .word .LC127 + .word -1764 + .word -2004 + .word -1198 .word -1192 - .word .LC128 - .word -1948 - .word -1772 - .word .LANCHOR2-1756 - .word -1754 - .word -2044 - .word -1996 - .word -1152 - .word -1944 - .word .LANCHOR2-1742 + .word .LC130 + .word -1904 + .word -1200 + .word .LC131 + .word -1780 + .word .LANCHOR2-1764 + .word -1762 + .word -2000 + .word -1952 + .word -1160 + .word -1900 + .word .LANCHOR2-1750 .fnend - .size rk_ftl_garbage_collect.part.22, .-rk_ftl_garbage_collect.part.22 + .size ftl_do_gc.part.21, .-ftl_do_gc.part.21 .align 2 - .global rk_ftl_garbage_collect - .type rk_ftl_garbage_collect, %function -rk_ftl_garbage_collect: + .global ftl_do_gc + .type ftl_do_gc, %function +ftl_do_gc: .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, r0 - ldr r3, .L2011 + ldr r3, .L2013 mov r5, r1 ldr r0, [r3, #-2092] cmp r0, #0 movne r0, #0 ldmnefd sp!, {r3, r4, r5, pc} - ldr r2, [r3, #-992] + ldr r2, [r3, #-1000] cmp r2, #0 ldmnefd sp!, {r3, r4, r5, pc} - ldr r1, .L2011+4 + ldr r1, .L2013+4 ldrh r1, [r3, r1] cmp r1, #47 movls r0, r2 ldmlsfd sp!, {r3, r4, r5, pc} - ldr r1, .L2011+8 - movw r2, #2936 + ldr r1, .L2013+8 + movw r2, #3000 ldrh r1, [r1, r2] movw r2, #65535 cmp r1, r2 - beq .L2006 - ldr r1, .L2011+12 + beq .L2008 + ldr r1, .L2013+12 ldrh r3, [r3, r1] cmp r3, r2 - beq .L2006 + beq .L2008 mov r0, #1 bl FtlGcFreeTempBlock cmp r0, #0 - bne .L2010 -.L2006: + bne .L2012 +.L2008: mov r0, r4 mov r1, r5 ldmfd sp!, {r3, r4, r5, lr} - b rk_ftl_garbage_collect.part.22 -.L2010: + b ftl_do_gc.part.21 +.L2012: mov r0, #1 ldmfd sp!, {r3, r4, r5, pc} -.L2012: +.L2014: .align 2 -.L2011: +.L2013: .word .LANCHOR2 - .word -2056 + .word -2012 .word .LANCHOR1 - .word -1948 + .word -1904 .fnend - .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect + .size ftl_do_gc, .-ftl_do_gc .align 2 .global FtlCacheWriteBack .type FtlCacheWriteBack, %function @@ -17531,40 +17551,40 @@ FtlCacheWriteBack: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2035 + ldr r3, .L2037 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, #436] ldr r3, [r3, #-2092] cmp r3, #0 - bne .L2014 - ldr r3, .L2035+4 - ldr r1, [r3, #3960] + bne .L2016 + ldr r3, .L2037+4 + ldr r1, [r3, #3964] cmp r1, #0 - beq .L2014 + beq .L2016 ldrb r8, [r3, #928] @ zero_extendqisi2 cmp r8, #0 - beq .L2015 + beq .L2017 ldrb r8, [r4, #8] @ zero_extendqisi2 sub lr, r8, #1 rsbs r8, lr, #0 adc r8, r8, lr -.L2015: - ldr r0, [r3, #3964] +.L2017: + ldr r0, [r3, #3968] mov r2, r8 ldrb r3, [r4, #9] @ zero_extendqisi2 mov r5, #0 bl FlashProgPages mov r7, r5 - ldr r6, .L2035+4 - ldr r9, .L2035 - b .L2016 -.L2021: - ldr r2, [r6, #3964] + ldr r6, .L2037+4 + ldr r9, .L2037 + b .L2018 +.L2023: + ldr r2, [r6, #3968] add r3, r2, r5 ldr r2, [r2, r5] cmn r2, #1 - beq .L2034 + beq .L2036 ldr r2, [r3, #4] cmp r8, #0 ldr r0, [r3, #16] @@ -17574,48 +17594,48 @@ FtlCacheWriteBack: strne r2, [sp, #4] mov r2, #1 bl log2phys - ldr r3, [r6, #3964] + ldr r3, [r6, #3968] add r3, r3, r5 ldr r3, [r3, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L2019 + beq .L2021 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r9, #-2064] + ldr r2, [r9, #-2020] mov r3, r0, asl #1 mov sl, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L2020 - ldr r0, .L2035+8 + bne .L2022 + ldr r0, .L2037+8 mov r1, sl bl printk -.L2020: +.L2022: mov r0, sl bl decrement_vpc_count -.L2019: +.L2021: add r7, r7, #1 add r5, r5, #36 -.L2016: - ldr r3, [r6, #3960] - cmp r7, r3 - bcc .L2021 - b .L2022 -.L2030: +.L2018: ldr r3, [r6, #3964] + cmp r7, r3 + bcc .L2023 + b .L2024 +.L2032: + ldr r3, [r6, #3968] mvn r2, #0 - movw sl, #3908 + movw sl, #3912 str r2, [r3, r5] - b .L2023 -.L2026: + b .L2025 +.L2028: ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r4, #0] cmp r3, r0 - bne .L2024 - ldr r2, [r7, #-2064] + bne .L2026 + ldr r2, [r7, #-2020] mov r3, r3, asl #1 ldrh r1, [r4, #4] ldrh r0, [r2, r3] @@ -17626,17 +17646,17 @@ FtlCacheWriteBack: mov r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi -.L2024: +.L2026: ldrh r3, [r4, #4] cmp r3, #0 - bne .L2025 + bne .L2027 mov r0, r4 bl allocate_new_data_superblock -.L2025: - ldr r3, [r7, #-1608] +.L2027: + ldr r3, [r7, #-1616] add r3, r3, #1 - str r3, [r7, #-1608] - ldr r3, [r6, #3964] + str r3, [r7, #-1616] + ldr r3, [r6, #3968] add r3, r3, r5 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 @@ -17647,20 +17667,20 @@ FtlCacheWriteBack: mov r2, r8 mov r3, r0 str r0, [sp, #4] - ldr r0, [r6, #3964] + ldr r0, [r6, #3968] add r0, r0, r5 str r3, [r0, #4] ldrb r3, [r4, #9] @ zero_extendqisi2 bl FlashProgPages ldr r3, [r7, #-2092] cmp r3, #0 - bne .L2014 -.L2023: - ldr r2, [r6, #3964] + bne .L2016 +.L2025: + ldr r2, [r6, #3968] add r3, r2, r5 ldr r2, [r2, r5] cmn r2, #1 - beq .L2026 + beq .L2028 ldr r2, [r3, #4] cmp r8, #0 ldr r0, [r3, #16] @@ -17670,81 +17690,70 @@ FtlCacheWriteBack: strne r2, [sp, #4] mov r2, #1 bl log2phys - ldr r3, [r6, #3964] + ldr r3, [r6, #3968] add r3, r3, r5 ldr r3, [r3, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L2028 + beq .L2030 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r7, #-2064] + ldr r2, [r7, #-2020] mov r3, r0, asl #1 mov sl, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L2029 - ldr r0, .L2035+8 + bne .L2031 + ldr r0, .L2037+8 mov r1, sl bl printk -.L2029: +.L2031: mov r0, sl bl decrement_vpc_count -.L2028: +.L2030: add r9, r9, #1 add r5, r5, #36 - b .L2017 -.L2034: - ldr r6, .L2035+4 + b .L2019 +.L2036: + ldr r6, .L2037+4 mov r5, #0 - ldr r7, .L2035 + ldr r7, .L2037 mov r9, r5 -.L2017: - ldr r3, [r6, #3960] +.L2019: + ldr r3, [r6, #3964] cmp r9, r3 - bcc .L2030 + bcc .L2032 movw r4, #16386 - ldr r6, .L2035 - ldr r5, .L2035+12 - b .L2031 -.L2032: + ldr r6, .L2037 + ldr r5, .L2037+12 + b .L2033 +.L2034: mov r0, #1 mov r1, r0 - bl rk_ftl_garbage_collect + bl ftl_do_gc subs r4, r4, #1 - beq .L2022 -.L2031: + beq .L2024 +.L2033: ldrh r3, [r6, r5] cmp r3, #0 - bne .L2032 -.L2022: - ldr r3, .L2035+4 + bne .L2034 +.L2024: + ldr r3, .L2037+4 mov r2, #0 - str r2, [r3, #3960] -.L2014: + str r2, [r3, #3964] +.L2016: mov r0, #0 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc} -.L2036: +.L2038: .align 2 -.L2035: +.L2037: .word .LANCHOR2 .word .LANCHOR0 - .word .LC129 - .word -1134 + .word .LC132 + .word -1142 .fnend .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 2 - .global rk_ftl_cache_write_back - .type rk_ftl_cache_write_back, %function -rk_ftl_cache_write_back: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - b FtlCacheWriteBack - .fnend - .size rk_ftl_cache_write_back, .-rk_ftl_cache_write_back - .align 2 .global FtlGcFreeTempBlock .type FtlGcFreeTempBlock, %function FtlGcFreeTempBlock: @@ -17753,100 +17762,100 @@ FtlGcFreeTempBlock: @ 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, #3908 - ldr r2, .L2061 + movw r3, #3912 + ldr r2, .L2062 ldrh r1, [r2, r3] - ldr r3, .L2061+4 + ldr r3, .L2062+4 ldr r2, [r3, #-2092] cmp r2, #0 - bne .L2059 - ldr ip, .L2061+8 - ldrh r4, [r3, ip] + bne .L2060 + ldr ip, .L2062+8 + ldrh r5, [r3, ip] movw ip, #65535 - cmp r4, ip - beq .L2040 - cmp r0, #0 - beq .L2041 - ldr lr, .L2061+12 - movw r0, #2936 - ldrh r5, [lr, r0] cmp r5, ip + beq .L2041 + cmp r0, #0 + beq .L2042 + ldr lr, .L2062+12 + movw r0, #3000 + ldrh r4, [lr, r0] + cmp r4, ip movne r1, #2 - bne .L2041 + bne .L2042 strh r2, [lr, r0] @ movhi - sub r2, r2, #2048 + ldr r2, .L2062+16 ldrh r3, [r3, r2] cmp r3, #17 movhi r1, #2 -.L2041: - ldr r0, .L2061+16 +.L2042: + ldr r4, .L2062+4 + sub r0, r4, #1904 bl FtlGcScanTempBlk cmn r0, #1 str r0, [sp, #4] - beq .L2042 - ldr r3, .L2061+4 - mov r4, r4, asl #1 - ldr r3, [r3, #-2084] - ldrh r2, [r3, r4] + beq .L2043 + ldr r3, [r4, #-2084] + mov r5, r5, asl #1 + ldrh r2, [r3, r5] cmp r2, #4 - bls .L2043 + bls .L2044 sub r2, r2, #5 mov r0, #1 - strh r2, [r3, r4] @ movhi + strh r2, [r3, r5] @ movhi bl FtlEctTblFlush -.L2043: - ldr r3, .L2061+4 - ldr r2, [r3, #-1008] +.L2044: + ldr r3, .L2062+4 + ldr r2, [r3, #-1016] cmp r2, #0 - bne .L2044 - ldr r2, [r3, #-1608] + bne .L2045 + ldr r2, [r3, #-1616] ldr r0, [sp, #4] add r2, r2, #1 - str r2, [r3, #-1608] + str r2, [r3, #-1616] ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L2044: - ldr r3, .L2061+4 +.L2045: + ldr r3, .L2062+4 mov r2, #0 - str r2, [r3, #-1008] - b .L2057 -.L2042: - ldr r2, .L2061+12 - movw r3, #2936 + str r2, [r3, #-1016] + b .L2058 +.L2043: + ldr r2, .L2062+12 + movw r3, #3000 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L2057 -.L2040: - ldr r6, .L2061+4 + bne .L2058 +.L2041: + ldr r6, .L2062+4 movw r3, #65535 - ldr r5, .L2061+8 + ldr r5, .L2062+8 mov r4, #0 - str r4, [r6, #-1008] + str r4, [r6, #-1016] ldrh r2, [r6, r5] cmp r2, r3 moveq r0, r4 - beq .L2039 + beq .L2040 bl FtlCacheWriteBack - ldr ip, .L2061 - movw r0, #3908 - ldrb r1, [r6, #-1941] @ zero_extendqisi2 + ldr ip, .L2062 + movw r0, #3912 + ldrb r1, [r6, #-1897] @ zero_extendqisi2 ldrh r3, [r6, r5] ldrh r0, [ip, r0] - ldr r2, [r6, #-2064] - ldr sl, .L2061+20 + ldr r2, [r6, #-2020] + ldr sl, .L2062+20 mov r3, r3, asl #1 mul r1, r0, r1 strh r1, [r2, r3] @ movhi - ldr r3, [r6, #-1860] + ldr r3, [r6, #-1820] ldrh r2, [r6, sl] add r3, r2, r3 - str r3, [r6, #-1860] - b .L2045 -.L2048: + str r3, [r6, #-1820] + b .L2046 +.L2049: mov r7, #12 - ldr r8, [r6, #-1144] + ldr r8, [r6, #-1152] mul r7, r7, r4 add r1, sp, #4 mov r2, #0 @@ -17856,7 +17865,7 @@ FtlGcFreeTempBlock: ldr r0, [sp, #4] ldr r3, [r8, r7] cmp r0, r3 - bne .L2046 + bne .L2047 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r1, r5, #4 @@ -17865,119 +17874,118 @@ FtlGcFreeTempBlock: ldr r0, [r5, #8] bl log2phys mov r0, r7 - b .L2060 -.L2046: + b .L2061 +.L2047: ldr r3, [r5, #4] cmp r0, r3 - beq .L2047 - ldr r3, .L2061+8 + beq .L2048 + ldr r3, .L2062+8 ldrh r0, [r6, r3] -.L2060: +.L2061: bl decrement_vpc_count -.L2047: +.L2048: add r4, r4, #1 uxth r4, r4 -.L2045: +.L2046: ldrh r3, [r6, sl] - ldr r5, .L2061+4 + ldr r5, .L2062+4 cmp r3, r4 - bhi .L2048 + bhi .L2049 movw r0, #65535 - ldr r4, .L2061+8 bl decrement_vpc_count - ldr r3, .L2061 + ldr r3, .L2062 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L2049 - ldr r0, .L2061+24 - ldrh r1, [r5, r4] - bl printk -.L2049: - ldrh r0, [r5, r4] - ldr r2, [r5, #-2064] - mov r3, r0, asl #1 - ldrh r3, [r2, r3] - cmp r3, #0 beq .L2050 - bl INSERT_DATA_LIST - b .L2051 + ldr r3, .L2062+8 + ldr r0, .L2062+24 + ldrh r1, [r5, r3] + bl printk .L2050: - bl INSERT_FREE_LIST + ldr r3, .L2062+8 + ldr r1, [r5, #-2020] + ldrh r0, [r5, r3] + mov r5, r3 + mov r2, r0, asl #1 + ldrh r2, [r1, r2] + cmp r2, #0 + beq .L2051 + bl INSERT_DATA_LIST + b .L2052 .L2051: - ldr r4, .L2061+4 - mvn r2, #0 - ldr r3, .L2061+8 - strh r2, [r4, r3] @ movhi + bl INSERT_FREE_LIST +.L2052: + ldr r4, .L2062+4 + mvn r3, #0 + ldr r2, .L2062+20 + strh r3, [r4, r5] @ movhi mov r3, #0 - ldr r2, .L2061+20 strh r3, [r4, r2] @ movhi - ldr r2, .L2061+28 + sub r2, r2, #12 strh r3, [r4, r2] @ movhi bl l2p_flush bl FtlVpcTblFlush - ldr r3, [r4, #-1884] - mov r1, r4 - ldr r2, .L2061+32 + ldr r3, .L2062 + mov r0, r4 + ldr r1, .L2062+16 + ldr r2, .L2062+28 + ldr r3, [r3, #3836] cmp r3, #0 - beq .L2052 - ldr r3, [r4, #-1824] + beq .L2053 + ldr r3, [r4, #-1784] cmp r3, #29 - bhi .L2052 + bhi .L2053 ldrh r3, [r4, r2] - sub r2, r2, #276 + ldrh r2, [r4, r1] mvn r1, #0 - ldrh r2, [r4, r2] cmp r2, r3 movcc r3, r3, asl #1 - ldrcc r2, .L2061+36 + ldrcc r2, .L2062+32 strcch r3, [r4, r2] @ movhi - ldr r3, .L2061+40 - ldr r2, .L2061+4 + ldr r3, .L2062+36 + ldr r2, .L2062+4 strh r1, [r2, r3] @ movhi - b .L2059 -.L2052: - ldrh r2, [r1, r2] - ldr r0, .L2061+44 - ldr r3, .L2061+4 - ldrh r1, [r1, r0] + b .L2060 +.L2053: + ldrh r2, [r0, r2] + ldrh r1, [r0, r1] + ldr r3, .L2062+4 add r0, r2, r2, asl #1 cmp r1, r0, lsr #2 - ble .L2059 - ldr r1, .L2061+40 + ble .L2060 + ldr r1, .L2062+36 mvn r0, #0 strh r0, [r3, r1] @ movhi - ldr r1, .L2061 + ldr r1, .L2062 ldrb r0, [r1, #928] @ zero_extendqisi2 - ldr r1, .L2061+36 + ldr r1, .L2062+32 cmp r0, #0 subne r2, r2, #2 moveq r2, #20 strneh r2, [r3, r1] @ movhi streqh r2, [r3, r1] @ movhi - beq .L2039 - b .L2059 -.L2057: + beq .L2040 + b .L2060 +.L2058: mov r0, #1 - b .L2039 -.L2059: + b .L2040 +.L2060: mov r0, #0 -.L2039: +.L2040: ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, sl, pc} -.L2062: +.L2063: .align 2 -.L2061: +.L2062: .word .LANCHOR0 .word .LANCHOR2 - .word -1948 + .word -1904 .word .LANCHOR1 - .word .LANCHOR2-1948 - .word -1140 - .word .LC130 - .word -1152 - .word -1772 - .word -1192 - .word -1756 - .word -2048 + .word -2004 + .word -1148 + .word .LC133 + .word -1780 + .word -1200 + .word -1764 .fnend .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock .align 2 @@ -17989,54 +17997,54 @@ Ftl_gc_temp_data_write_back: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - ldr r3, .L2072 + ldr r3, .L2073 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - ldr r3, .L2072+4 - beq .L2064 - ldr r2, [r3, #-1176] + ldr r3, .L2073+4 + beq .L2065 + ldr r2, [r3, #-1184] tst r2, #1 - beq .L2064 - ldr r2, .L2072+8 + beq .L2065 + ldr r2, .L2073+8 ldrh r2, [r3, r2] cmp r2, #0 - bne .L2069 -.L2064: + bne .L2070 +.L2065: mov r2, #0 - ldr r0, [r3, #-968] - ldr r1, [r3, #-1176] + ldr r0, [r3, #-972] + ldr r1, [r3, #-1184] mov r3, r2 bl FlashProgPages mov r4, #0 - ldr r5, .L2072+4 + ldr r5, .L2073+4 mov r6, #36 - b .L2066 -.L2068: + b .L2067 +.L2069: mul r3, r6, r4 - ldr r1, [r5, #-968] + ldr r1, [r5, #-972] add r2, r1, r3 ldr r1, [r1, r3] cmn r1, #1 - bne .L2067 - ldr r2, .L2072+12 + bne .L2068 + ldr r2, .L2073+12 mov lr, #0 - ldr ip, [r7, #-2064] + ldr ip, [r7, #-2020] ldrh r0, [r7, r2] mov r0, r0, asl #1 strh lr, [ip, r0] @ movhi strh r1, [r7, r2] @ movhi - ldr r2, [r7, #-1608] + ldr r2, [r7, #-1616] add r2, r2, #1 - str r2, [r7, #-1608] - ldr r2, [r7, #-968] + str r2, [r7, #-1616] + ldr r2, [r7, #-972] add r3, r2, r3 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L2071 -.L2067: + b .L2072 +.L2068: ldr r3, [r2, #12] add r4, r4, #1 ldr r1, [r2, #4] @@ -18044,34 +18052,34 @@ Ftl_gc_temp_data_write_back: ldr r0, [r3, #12] ldr r2, [r3, #8] bl FtlGcUpdatePage -.L2066: - ldr r1, [r5, #-1176] - ldr r7, .L2072+4 +.L2067: + ldr r1, [r5, #-1184] + ldr r7, .L2073+4 cmp r4, r1 - bcc .L2068 - ldr r0, [r7, #-968] + bcc .L2069 + ldr r0, [r7, #-972] bl FtlGcBufFree - ldr r3, .L2072+8 + ldr r3, .L2073+8 mov r0, #0 - str r0, [r7, #-1176] + str r0, [r7, #-1184] ldrh r3, [r7, r3] cmp r3, r0 ldmnefd sp!, {r3, r4, r5, r6, r7, pc} mov r0, #1 bl FtlGcFreeTempBlock -.L2071: +.L2072: mov r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2069: +.L2070: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2073: +.L2074: .align 2 -.L2072: +.L2073: .word .LANCHOR0 .word .LANCHOR2 - .word -1944 - .word -1948 + .word -1900 + .word -1904 .fnend .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .align 2 @@ -18083,32 +18091,31 @@ FtlGcPageRecovery: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - movw r5, #3908 - ldr r6, .L2076 - ldr r0, .L2076+4 - ldr r4, .L2076+8 + movw r5, #3912 + ldr r6, .L2077 + ldr r4, .L2077+4 ldrh r1, [r6, r5] + sub r0, r4, #1904 bl FtlGcScanTempBlk - ldr r3, .L2076+12 + ldr r3, .L2077+8 ldrh r2, [r4, r3] ldrh r3, [r6, r5] cmp r2, r3 ldmccfd sp!, {r4, r5, r6, pc} - ldr r0, .L2076+16 + ldr r0, .L2077+12 bl FtlMapBlkWriteDumpData mov r0, #0 bl FtlGcFreeTempBlock mov r3, #0 - str r3, [r4, #-1008] + str r3, [r4, #-1016] ldmfd sp!, {r4, r5, r6, pc} -.L2077: +.L2078: .align 2 -.L2076: +.L2077: .word .LANCHOR0 - .word .LANCHOR2-1948 .word .LANCHOR2 - .word -1946 - .word .LANCHOR2-1084 + .word -1902 + .word .LANCHOR2-1092 .fnend .size FtlGcPageRecovery, .-FtlGcPageRecovery .align 2 @@ -18118,31 +18125,30 @@ 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, .L2079 - ldr r5, .L2079+4 - str r4, [r3, #296] - mov r0, r5 + stmfd sp!, {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + mov r5, #0 + ldr r4, .L2080 + sub r6, r4, #2000 + str r5, [r4, #296] + sub r4, r4, #1952 + mov r0, r6 bl FtlRecoverySuperblock - mov r0, r5 - add r5, r5, #48 + mov r0, r6 bl FtlSlcSuperblockCheck - mov r0, r5 + mov r0, r4 bl FtlRecoverySuperblock - mov r0, r5 + mov r0, r4 bl FtlSlcSuperblockCheck bl FtlGcPageRecovery movw r0, #65535 bl decrement_vpc_count - mov r0, r4 - ldmfd sp!, {r3, r4, r5, pc} -.L2080: + mov r0, r5 + ldmfd sp!, {r4, r5, r6, pc} +.L2081: .align 2 -.L2079: +.L2080: .word .LANCHOR2 - .word .LANCHOR2-2044 .fnend .size FtlPowerLostRecovery, .-FtlPowerLostRecovery .align 2 @@ -18155,25 +18161,25 @@ FtlSysBlkInit: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r3, #292 - ldr r6, .L2092 + ldr r6, .L2093 mov r2, #0 - ldr r4, .L2092+4 + ldr r4, .L2093+4 mvn r5, #0 - ldr r0, [r6, #3844] + ldr r0, [r6, #3848] strh r2, [r4, r3] @ movhi movw r3, #290 strh r5, [r4, r3] @ movhi uxth r0, r0 bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldr r3, .L2092+8 + ldr r3, .L2093+8 ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - beq .L2082 + beq .L2083 bl FtlLoadSysInfo subs r7, r0, #0 - bne .L2082 + bne .L2083 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -18183,57 +18189,57 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov r0, #1 bl FtlUpdateVaildLpn - movw r3, #3946 + movw r3, #3950 ldrh r2, [r6, r3] mov r3, r7 - ldr r1, [r4, #-1900] - b .L2083 -.L2085: + ldr r1, [r4, #-1856] + b .L2084 +.L2086: add r0, r1, r7 add r7, r7, #12 ldr r0, [r0, #4] cmp r0, #0 - blt .L2084 - add r3, r3, #1 -.L2083: - cmp r3, r2 blt .L2085 + add r3, r3, #1 .L2084: - ldr r4, .L2092+4 cmp r3, r2 - ldr r1, .L2092+12 + blt .L2086 +.L2085: + ldr r4, .L2093+4 + cmp r3, r2 + ldr r1, .L2093+12 ldrh r0, [r4, r1] add r0, r0, #1 strh r0, [r4, r1] @ movhi - blt .L2086 + blt .L2087 mov r3, #292 ldrh r3, [r4, r3] cmp r3, #0 - beq .L2087 -.L2086: - ldr r0, .L2092+16 + beq .L2088 +.L2087: + ldr r0, .L2093+16 bl FtlSuperblockPowerLostFix - ldr r0, .L2092+20 + ldr r0, .L2093+20 bl FtlSuperblockPowerLostFix - ldr r3, .L2092+24 - ldr r1, [r4, #-2064] - ldr r2, .L2092+28 + ldr r3, .L2093+24 + ldr r1, [r4, #-2020] + ldr r2, .L2093+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, .L2092 - movw r1, #3908 - ldr r3, .L2092+32 - ldr lr, [r4, #-2064] + ldr r0, .L2093 + movw r1, #3912 + ldr r3, .L2093+32 + ldr lr, [r4, #-2020] ldrh ip, [r0, r1] strh ip, [r4, r3] @ movhi mov r3, #0 strh r3, [r4, r2] @ movhi add r2, r2, #44 - strb r3, [r4, #-2038] + strb r3, [r4, #-1994] ldrh ip, [r4, r2] add r2, r2, #4 ldrh r5, [r4, r2] @@ -18242,77 +18248,77 @@ FtlSysBlkInit: rsb r5, r5, r6 strh r5, [lr, ip] @ movhi ldrh r0, [r0, r1] - ldr r1, .L2092+36 + ldr r1, .L2093+36 strh r3, [r4, r2] @ movhi - strb r3, [r4, #-1990] + strb r3, [r4, #-1946] strh r0, [r4, r1] @ movhi - ldr r0, .L2092+40 + ldr r0, .L2093+40 bl FtlMapBlkWriteDumpData - ldr r0, .L2092+44 + ldr r0, .L2093+44 bl FtlMapBlkWriteDumpData - ldr r3, .L2092+48 + ldr r3, .L2093+48 ldrh r2, [r4, r3] add r2, r2, #1 strh r2, [r4, r3] @ movhi bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L2087: - ldr r4, .L2092+4 +.L2088: + ldr r4, .L2093+4 movw r3, #65535 - ldr r5, .L2092+24 + ldr r5, .L2093+24 ldrh r2, [r4, r5] cmp r2, r3 - beq .L2088 - ldr r3, .L2092+28 + beq .L2089 + ldr r3, .L2093+28 ldrh r3, [r4, r3] cmp r3, #0 - bne .L2088 - ldr r3, .L2092+52 + bne .L2089 + ldr r3, .L2093+52 ldrh r3, [r4, r3] cmp r3, #0 - bne .L2088 + bne .L2089 bl FtlVpcTblFlush ldrh r0, [r4, r5] bl FtlGcRefreshOpenBlock - ldr r3, .L2092+56 + ldr r3, .L2093+56 ldrh r0, [r4, r3] bl FtlGcRefreshOpenBlock - ldr r0, .L2092+16 + add r0, r4, r5 bl allocate_new_data_superblock - ldr r0, .L2092+20 + sub r0, r4, #1952 bl allocate_new_data_superblock add r0, r4, #244 bl FtlMapBlkWriteDumpData -.L2088: - ldr r3, .L2092+12 - ldr r2, .L2092+4 +.L2089: + ldr r3, .L2093+12 + ldr r2, .L2093+4 ldrh r5, [r2, r3] ands r5, r5, #31 movne r5, #0 - bne .L2082 + bne .L2083 bl FtlVpcCheckAndModify -.L2082: +.L2083: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2093: +.L2094: .align 2 -.L2092: +.L2093: .word .LANCHOR0 .word .LANCHOR2 - .word -1768 - .word -1792 - .word .LANCHOR2-2044 - .word .LANCHOR2-1996 - .word -2044 - .word -2040 - .word -2042 - .word -1994 - .word .LANCHOR2-1084 - .word .LANCHOR2+244 - .word -1790 - .word -1992 + .word -1776 + .word -2048 + .word .LANCHOR2-2000 + .word .LANCHOR2-1952 + .word -2000 .word -1996 + .word -1998 + .word -1950 + .word .LANCHOR2-1092 + .word .LANCHOR2+244 + .word -2046 + .word -1948 + .word -1952 .fnend .size FtlSysBlkInit, .-FtlSysBlkInit .align 2 @@ -18324,25 +18330,25 @@ Ftl_get_new_temp_ppa: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L2097 - ldr r5, .L2097+4 + ldr r3, .L2098 + ldr r5, .L2098+4 ldrh r2, [r5, r3] movw r3, #65535 cmp r2, r3 - beq .L2095 - ldr r3, .L2097+8 + beq .L2096 + ldr r3, .L2098+8 ldrh r3, [r5, r3] cmp r3, #0 - bne .L2096 -.L2095: + bne .L2097 +.L2096: bl FtlCacheWriteBack mov r0, #0 bl FtlGcFreeTempBlock - ldr r0, .L2097+12 + ldr r0, .L2098+12 mov r4, #0 - strb r4, [r5, #-1940] + strb r4, [r5, #-1896] bl allocate_data_superblock - ldr r3, .L2097+16 + ldr r3, .L2098+16 strh r4, [r5, r3] @ movhi add r3, r3, #12 strh r4, [r5, r3] @ movhi @@ -18350,45 +18356,45 @@ Ftl_get_new_temp_ppa: mov r0, r4 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2096: - ldr r0, .L2097+12 +.L2097: + ldr r0, .L2098+12 ldmfd sp!, {r3, r4, r5, lr} b get_new_active_ppa -.L2098: +.L2099: .align 2 -.L2097: - .word -1948 +.L2098: + .word -1904 .word .LANCHOR2 - .word -1944 - .word .LANCHOR2-1948 - .word -1152 + .word -1900 + .word .LANCHOR2-1904 + .word -1160 .fnend .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa .align 2 - .global FtlDiscard - .type FtlDiscard, %function -FtlDiscard: + .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, .L2109 + ldr r5, .L2110 mov r7, r0 mov r4, r1 - ldr r3, [r5, #3948] + ldr r3, [r5, #3952] cmp r2, r3 mvnhi r0, #0 - bhi .L2100 + bhi .L2101 cmp r1, #31 - bls .L2107 - ldr r3, .L2109+4 + bls .L2108 + ldr r3, .L2110+4 ldr r3, [r3, #-2092] cmp r3, #0 - bne .L2107 + bne .L2108 bl FtlCacheWriteBack - movw r3, #3914 + movw r3, #3918 ldrh r6, [r5, r3] mov r0, r7 mov r1, r6 @@ -18397,74 +18403,107 @@ FtlDiscard: mov r5, r0 uxth r7, r7 cmp r7, #0 - beq .L2101 + beq .L2102 rsb r6, r7, r6 add r5, r0, #1 cmp r6, r4 movcs r6, r4 uxth r6, r6 rsb r4, r6, r4 -.L2101: +.L2102: mvn r3, #0 - ldr r7, .L2109 + ldr r7, .L2110 str r3, [sp, #4] - movw r6, #3914 - b .L2102 -.L2104: + movw r6, #3918 + b .L2103 +.L2105: mov r0, r5 mov r1, sp mov r2, #0 bl log2phys ldr r3, [sp, #0] cmn r3, #1 - beq .L2103 - ldr r3, .L2109+4 + beq .L2104 + ldr r3, .L2110+4 add r1, sp, #4 mov r0, r5 ldr r2, [r3, #440] add r2, r2, #1 str r2, [r3, #440] - ldr r2, [r3, #-1876] + ldr r2, [r3, #-1836] add r2, r2, #1 - str r2, [r3, #-1876] + str r2, [r3, #-1836] mov r2, #1 bl log2phys ldr r0, [sp, #0] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L2103: +.L2104: ldrh r3, [r7, r6] add r5, r5, #1 rsb r4, r3, r4 -.L2102: +.L2103: ldrh r3, [r7, r6] cmp r4, r3 - bcs .L2104 - ldr r3, .L2109+4 + bcs .L2105 + ldr r3, .L2110+4 mov r4, #0 ldr r2, [r3, #440] cmp r2, #32 - bls .L2108 + bls .L2109 str r4, [r3, #440] bl l2p_flush bl FtlVpcTblFlush - b .L2108 -.L2107: - mov r0, #0 - b .L2100 + b .L2109 .L2108: + mov r0, #0 + b .L2101 +.L2109: mov r0, r4 -.L2100: +.L2101: ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, pc} -.L2110: +.L2111: .align 2 -.L2109: +.L2110: .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: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + b FtlCacheWriteBack + .fnend + .size ftl_cache_flush, .-ftl_cache_flush + .align 2 + .global rk_ftl_cache_write_back + .type rk_ftl_cache_write_back, %function +rk_ftl_cache_write_back: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + b FtlCacheWriteBack + .fnend + .size rk_ftl_cache_write_back, .-rk_ftl_cache_write_back + .align 2 .global FtlSysFlush .type FtlSysFlush, %function FtlSysFlush: @@ -18473,21 +18512,21 @@ FtlSysFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2113 + ldr r3, .L2117 ldr r3, [r3, #-2092] cmp r3, #0 - bne .L2112 + bne .L2116 bl FtlCacheWriteBack bl l2p_flush mov r0, #1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2112: +.L2116: mov r0, #0 ldmfd sp!, {r3, pc} -.L2114: +.L2118: .align 2 -.L2113: +.L2117: .word .LANCHOR2 .fnend .size FtlSysFlush, .-FtlSysFlush @@ -18500,21 +18539,36 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2117 - ldr r3, [r3, #2932] + ldr r3, .L2121 + ldr r3, [r3, #2996] cmp r3, #1 - bne .L2116 + bne .L2120 bl FtlSysFlush -.L2116: +.L2120: mov r0, #0 ldmfd sp!, {r3, pc} -.L2118: +.L2122: .align 2 -.L2117: +.L2121: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit .align 2 + .global ftl_deinit + .type ftl_deinit, %function +ftl_deinit: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, lr} + .save {r3, lr} + bl ftl_flash_de_init + bl FtlDeInit + ldmfd sp!, {r3, lr} + b ftl_flash_de_init + .fnend + .size ftl_deinit, .-ftl_deinit + .align 2 .global rk_ftl_de_init .type rk_ftl_de_init, %function rk_ftl_de_init: @@ -18523,104 +18577,120 @@ rk_ftl_de_init: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - bl rk_nand_de_init - bl FtlDeInit + mov r1, #0 + ldr r0, .L2125 + bl printk ldmfd sp!, {r3, lr} - b rk_nand_de_init + b ftl_deinit +.L2126: + .align 2 +.L2125: + .word .LC134 .fnend .size rk_ftl_de_init, .-rk_ftl_de_init .align 2 + .global rk_ftl_garbage_collect + .type rk_ftl_garbage_collect, %function +rk_ftl_garbage_collect: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + b ftl_do_gc + .fnend + .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect + .align 2 .global ftl_fix_nand_power_lost_error .type ftl_fix_nand_power_lost_error, %function ftl_fix_nand_power_lost_error: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2129 + ldr r3, .L2137 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 .L2120 - ldr r4, .L2129+4 + beq .L2128 + ldr r4, .L2137+4 movw r3, #290 - ldr r0, .L2129+8 + ldr r0, .L2137+8 movw r7, #4097 ldrh r6, [r4, r3] - ldr r3, [r4, #-2064] + ldr r3, [r4, #-2020] mov r5, r6, asl #1 mov r1, r6 ldrh r2, [r3, r5] bl printk - ldr r3, .L2129+12 + ldr r3, .L2137+12 ldrh r0, [r4, r3] bl FtlGcRefreshOpenBlock - ldr r3, .L2129+16 + ldr r3, .L2137+16 ldrh r0, [r4, r3] bl FtlGcRefreshOpenBlock - ldr r0, .L2129+20 + sub r0, r4, #2000 bl allocate_new_data_superblock - ldr r0, .L2129+24 + sub r0, r4, #1952 bl allocate_new_data_superblock - b .L2122 -.L2124: + b .L2130 +.L2132: mov r0, #1 mov r1, r0 - bl rk_ftl_garbage_collect - ldr r3, [r4, #-2064] + bl ftl_do_gc + ldr r3, [r4, #-2020] ldrh r3, [r3, r5] cmp r3, #0 - beq .L2123 -.L2122: + beq .L2131 +.L2130: subs r7, r7, #1 - bne .L2124 -.L2123: - ldr r7, .L2129+4 + bne .L2132 +.L2131: + ldr r7, .L2137+4 mov r1, r6 - ldr r0, .L2129+8 - ldr r3, [r7, #-2064] + ldr r0, .L2137+8 + ldr r3, [r7, #-2020] ldrh r2, [r3, r5] bl printk - ldr r3, [r7, #-2064] + ldr r3, [r7, #-2020] ldrh r4, [r3, r5] cmp r4, #0 - bne .L2125 + bne .L2133 add r8, sp, #48 mov r0, sp strh r6, [r8, #-48]! @ movhi add r8, r8, #14 bl make_superblock - ldr r2, .L2129 - mov r3, #3840 + ldr r2, .L2137 + movw r3, #3844 ldr r7, [r7, #-2088] movw lr, #65535 mov ip, #36 ldrh sl, [r2, r3] mov r1, r4 mov r3, r4 - b .L2126 -.L2128: + b .L2134 +.L2136: ldrh r0, [r8, #2]! cmp r0, lr - beq .L2127 + beq .L2135 mla r2, ip, r4, r7 add r4, r4, #1 mov r0, r0, asl #10 uxth r4, r4 stmib r2, {r0, r1} str r1, [r2, #12] -.L2127: +.L2135: add r3, r3, #1 uxth r3, r3 -.L2126: +.L2134: cmp r3, sl - bne .L2128 - ldr r7, .L2129+4 + bne .L2136 + ldr r7, .L2137+4 mov r1, r6 - ldr r0, .L2129+28 - ldr r3, [r7, #-2064] + ldr r0, .L2137+20 + ldr r3, [r7, #-2020] ldrh r2, [r3, r5] bl printk mov r1, #0 @@ -18631,25 +18701,23 @@ ftl_fix_nand_power_lost_error: mov r1, #1 mov r2, r4 bl FlashEraseBlocks -.L2125: - ldr r2, .L2129+4 +.L2133: + ldr r2, .L2137+4 movw r3, #290 mvn r1, #0 strh r1, [r2, r3] @ movhi -.L2120: +.L2128: add sp, sp, #52 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} -.L2130: +.L2138: .align 2 -.L2129: +.L2137: .word .LANCHOR0 .word .LANCHOR2 - .word .LC131 - .word -2044 - .word -1996 - .word .LANCHOR2-2044 - .word .LANCHOR2-1996 - .word .LC132 + .word .LC135 + .word -2000 + .word -1952 + .word .LC136 .fnend .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error .align 2 @@ -18659,386 +18727,381 @@ FtlInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 -.L2132: +.L2140: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mvn r3, #0 - ldr r4, .L2142 - mov r5, r0 - ldr r6, .L2142+4 - ldr r1, .L2142+8 - ldr r0, .L2142+12 - str r3, [r6, #2932] + ldr r4, .L2150 + ldr r6, .L2150+4 + ldr r5, .L2150+8 + ldr r1, .L2150+12 + str r3, [r6, #2996] mov r3, #0 + ldr r0, .L2150+16 str r3, [r4, #444] str r3, [r4, #-2092] bl printk - mov r0, r5 - ldr r5, .L2142+16 + ldr r0, .L2150+20 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldr r0, [r5, #3844] + ldr r0, [r5, #3848] uxth r0, r0 bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - ldrne r0, .L2142+20 - bne .L2141 + ldrne r0, .L2150+24 + bne .L2149 bl FtlSysBlkInit cmp r0, #0 - beq .L2135 - ldr r0, .L2142+24 -.L2141: - ldr r1, .L2142+28 + beq .L2143 + ldr r0, .L2150+28 +.L2149: + ldr r1, .L2150+32 bl printk - b .L2134 -.L2135: + b .L2142 +.L2143: mov r1, #1 - str r1, [r6, #2932] - bl rk_ftl_garbage_collect - ldr r3, .L2142+32 + str r1, [r6, #2996] + bl ftl_do_gc + ldr r3, .L2150+36 ldrh r3, [r4, r3] cmp r3, #15 - bhi .L2136 + bhi .L2144 mov r4, #1024 -.L2137: +.L2145: mov r0, #1 mov r1, r0 - bl rk_ftl_garbage_collect + bl ftl_do_gc subs r4, r4, #1 - bne .L2137 - b .L2134 -.L2136: + bne .L2145 + b .L2142 +.L2144: ldrb r3, [r5, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L2134 + beq .L2142 mov r4, #128 -.L2138: +.L2146: mov r0, #1 mov r1, r0 - bl rk_ftl_garbage_collect + bl ftl_do_gc subs r4, r4, #1 - bne .L2138 -.L2134: + bne .L2146 +.L2142: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2143: +.L2151: .align 2 -.L2142: +.L2150: .word .LANCHOR2 .word .LANCHOR1 - .word .LC76 - .word .LC75 .word .LANCHOR0 - .word .LC133 - .word .LC134 + .word .LC79 + .word .LC78 + .word .LANCHOR0+3048 + .word .LC137 + .word .LC138 .word .LANCHOR3+36 - .word -2048 + .word -2004 .fnend .size FtlInit, .-FtlInit .align 2 - .type FtlWrite.part.23, %function -FtlWrite.part.23: + .type ftl_write.part.22, %function +ftl_write.part.22: .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, .L2191 + ldr r4, .L2197 .pad #100 sub sp, sp, #100 - ldr sl, .L2191+4 + ldr r7, .L2197+4 mov r5, r1 - mov r7, r0 - mov r9, r2 + mov r8, r0 + str r2, [sp, #8] str r3, [r4, #448] - movw r3, #3914 - ldrh r8, [sl, r3] - mov r1, r8 + movw r3, #3918 + ldrh r6, [r7, r3] + mov r1, r6 bl __aeabi_uidiv - mov r1, r8 - str r0, [sp, #16] - sub r0, r7, #1 + mov r1, r6 + str r0, [sp, #12] + sub r0, r8, #1 add r0, r0, r5 bl __aeabi_uidiv - ldr r3, [sp, #16] - cmp r5, #8 - rsb fp, r3, r0 - ldr r3, [r4, #-1872] - add r6, fp, #1 - str r6, [sp, #20] - add r3, r6, r3 - str r3, [r4, #-1872] - ldr r3, [r4, #-1856] + ldr r3, [sp, #12] + ldr sl, [r7, #3964] + cmp sl, #0 + rsb r9, r3, r0 str r0, [sp, #36] + add r3, r9, #1 + str r3, [sp, #16] + ldr lr, [sp, #16] + ldr r3, [r4, #-1832] + add r3, lr, r3 + str r3, [r4, #-1832] + ldr r3, [r4, #-1816] add r3, r5, r3 - str r3, [r4, #-1856] - ldr r3, .L2191+8 - add r6, r3, #48 - movhi r6, r3 - ldr r3, [sl, #3960] - cmp r3, #0 - beq .L2179 - ldr r2, [sl, #3964] - sub r3, r3, #1 - mov sl, #36 - ldr r6, [sp, #16] - mla sl, sl, r3, r2 + str r3, [r4, #-1816] + beq .L2185 + ldr r3, [r7, #3968] + sub sl, sl, #1 + mov r2, #36 + ldr r0, [sp, #12] + mla sl, r2, sl, r3 ldr r3, [sl, #16] - cmp r6, r3 - strne r5, [sp, #32] - bne .L2147 - ldr r3, [r4, #-1868] - mov r0, r7 - mov r1, r8 + cmp r0, r3 + strne r5, [sp, #28] + bne .L2154 + ldr r3, [r4, #-1828] + mov r0, r8 + mov r1, r6 add r3, r3, #1 - str r3, [r4, #-1868] + str r3, [r4, #-1828] ldr r3, [r4, #452] add r3, r3, #1 str r3, [r4, #452] bl __aeabi_uidivmod ldr r0, [sl, #8] - rsb r6, r1, r8 + rsb r7, r1, r6 add r0, r0, r1, asl #9 - cmp r6, r5 - movcs r6, r5 - mov r1, r9 - mov r3, r6, asl #9 - str r3, [sp, #4] - mov r2, r3 + cmp r7, r5 + movcs r7, r5 + ldr r1, [sp, #8] + mov fp, r7, asl #9 + mov r2, fp bl memcpy - cmp fp, #0 - ldr r3, [sp, #4] - bne .L2148 - ldr r2, [r4, #452] - cmp r2, #2 - ble .L2149 -.L2148: - add r9, r9, r3 - add r7, r7, r6 - ldr r3, [sp, #16] - rsb lr, r6, r5 - str fp, [sp, #20] + cmp r9, #0 + bne .L2155 + ldr r3, [r4, #452] + cmp r3, #2 + ble .L2156 +.L2155: + rsb r3, r7, r5 + str r3, [sp, #28] + ldr r3, [sp, #8] + add r8, r8, r7 + str r9, [sp, #16] + add r3, r3, fp + str r3, [sp, #8] + ldr r3, [sp, #12] add r3, r3, #1 - str lr, [sp, #32] - str r3, [sp, #16] -.L2147: - ldr r3, .L2191 + str r3, [sp, #12] +.L2154: + ldr r3, .L2197 mov r2, #0 - ldr r6, [r3, #436] str r2, [r3, #452] - b .L2146 -.L2179: - str r5, [sp, #32] -.L2146: - ldr r0, [sp, #16] + b .L2153 +.L2185: + str r5, [sp, #28] +.L2153: + ldr r0, [sp, #12] ldr r1, [sp, #36] bl FtlCacheMetchLpa cmp r0, #0 - beq .L2150 + beq .L2157 bl FtlCacheWriteBack -.L2150: - cmp r5, r8, asl #1 - ldr r4, .L2191+4 +.L2157: + ldr r7, .L2197 + cmp r5, r6, asl #1 + ldr r4, .L2197+4 mov fp, #0 - ldr r5, [sp, #16] movcc r3, #0 movcs r3, #1 - str r3, [sp, #24] - ldr r3, .L2191 + sub r6, r7, #2000 + str r3, [sp, #20] + str r6, [r7, #436] mov sl, r4 + ldr r5, [sp, #12] str fp, [sp, #40] - str r6, [r3, #436] - b .L2188 -.L2176: - ldrh r1, [r6, #4] - cmp r1, #0 - bne .L2152 - ldr r2, .L2191+8 - ldr r3, .L2191+12 - cmp r6, r2 - bne .L2153 - ldr r2, .L2191+16 - ldrh r8, [r8, r2] - cmp r8, #0 - bne .L2154 - ldr r0, .L2191+20 - str r3, [sp, #4] + b .L2194 +.L2183: + ldrh r3, [r6, #4] + cmp r3, #0 + bne .L2159 + ldr lr, .L2197+8 + cmp r6, lr + bne .L2160 + ldr r3, .L2197+12 + ldrh r3, [r7, r3] + cmp r3, #0 + bne .L2161 + sub r0, r9, #1952 + str r3, [sp, #0] bl allocate_new_data_superblock - ldr r3, [sp, #4] - str r8, [r3, #2940] -.L2154: - ldr r0, .L2191+8 - str r3, [sp, #4] + ldr r3, [sp, #0] + ldr r0, .L2197+16 + str r3, [r0, #3004] +.L2161: + ldr r0, .L2197+8 bl allocate_new_data_superblock - ldr r3, [sp, #4] - ldr r2, [r3, #2940] - ldr r3, .L2191+20 + ldr r1, .L2197+16 + ldr r3, .L2197+20 + ldr r2, [r1, #3004] cmp r2, #0 movne r6, r3 - b .L2155 -.L2153: - str r1, [r3, #2940] - ldr r3, .L2191+24 - ldrh r3, [r8, r3] + b .L2162 +.L2160: + ldr r2, .L2197+16 + str r3, [r2, #3004] + ldr r3, .L2197+24 + ldrh r3, [r7, r3] cmp r3, #0 - movne r6, r2 - bne .L2155 + subne r6, r9, #2000 + bne .L2162 mov r0, r6 bl allocate_new_data_superblock -.L2155: +.L2162: ldrh r3, [r6, #4] cmp r3, #0 - bne .L2156 + bne .L2163 mov r0, r6 bl allocate_new_data_superblock -.L2156: - ldr r3, .L2191 - str r6, [r3, #436] -.L2152: - ldr r2, .L2191 - mov r8, r6 +.L2163: + str r6, [r7, #436] +.L2159: + ldr r1, [r7, #-980] + mov r9, r6 + ldr r2, [r4, #3964] ldrh r3, [r6, #4] - ldr r1, [r2, #-976] - ldr r2, [r4, #3960] rsb r2, r2, r1 cmp r3, r2 movcc r2, r3 - ldr r3, [sp, #20] + ldr r3, [sp, #16] cmp r2, r3 movcc r3, r2 str r3, [sp, #52] mov r3, #0 - str r3, [sp, #28] - b .L2157 -.L2173: - ldrh r3, [r8, #4] + str r3, [sp, #24] + b .L2164 +.L2180: + ldrh r3, [r9, #4] cmp r3, #0 - beq .L2158 - ldr r6, [sp, #36] - rsb r2, r6, r5 - ldr r6, [sp, #24] + beq .L2165 + ldr lr, [sp, #36] + ldr r0, [sp, #20] + rsb r2, lr, r5 rsbs r3, r2, #0 adc r3, r3, r2 - tst r3, r6 - beq .L2159 - ldr r6, [sp, #28] - cmp r6, #0 - beq .L2159 - movw lr, #3914 - ldr r6, [sp, #32] + tst r3, r0 + beq .L2166 + ldr r1, [sp, #24] + cmp r1, #0 + beq .L2166 + movw lr, #3918 + ldr r0, [sp, #28] ldrh r2, [r4, lr] - add r1, r6, r7 + add r1, r0, r8 mls r1, r2, r5, r1 cmp r1, r2 - bne .L2158 -.L2159: + bne .L2165 +.L2166: add r1, sp, #56 mov r2, #0 mov r0, r5 - str r3, [sp, #4] + str r3, [sp, #0] bl log2phys - mov r0, r8 + mov r0, r9 bl get_new_active_ppa - ldr lr, [r4, #3960] - ldr r1, [r4, #3964] - mov r2, #3920 + ldr r2, [r4, #3964] + ldr r1, [r4, #3968] mov ip, #36 + ldr lr, [r4, #3964] + mla r1, ip, r2, r1 + movw r2, #3924 ldrh r2, [r4, r2] - ldr r6, .L2191 - mla r1, ip, lr, r1 - mul lr, lr, r2 - ldr r6, [r6, #-932] - bic lr, lr, #3 - str r6, [sp, #48] - str lr, [sp, #44] - add r6, r6, lr str r5, [r1, #16] - str r6, [r1, #12] str r0, [r1, #4] - movw r0, #3918 - ldrh lr, [r4, r0] - ldr r0, [r4, #3960] - mul lr, r0, lr - ldr r0, .L2191 + mul r0, lr, r2 + bic r0, r0, #3 + str r0, [sp, #44] + ldr r0, [r7, #-932] + ldr lr, [sp, #44] + str r0, [sp, #48] + add r6, r0, lr + movw r0, #3922 + ldr lr, [r4, #3964] + ldrh r0, [r4, r0] + str r6, [r1, #12] + mul lr, lr, r0 + ldr r0, [r7, #-952] + str lr, [sp, #32] bic lr, lr, #3 - str lr, [sp, #12] - ldr lr, [r0, #-952] - ldr r0, [sp, #12] - add lr, lr, r0 + add lr, r0, lr mov r0, r6 str lr, [r1, #8] mov r1, #0 - str ip, [sp, #8] + str ip, [sp, #4] bl ftl_memset - ldr r1, [sp, #16] - ldr ip, [sp, #8] - rsb r3, r1, r5 - rsbs r1, r3, #0 - adc r1, r1, r3 - ldr r3, [sp, #4] - str r1, [sp, #12] - orrs r1, r1, r3 - beq .L2160 - ldr r2, [sp, #12] - cmp r2, #0 - beq .L2161 - movw r3, #3914 - mov r0, r7 - ldrh fp, [r4, r3] + ldr r0, [sp, #12] + ldr ip, [sp, #4] + rsb r3, r0, r5 + rsbs r0, r3, #0 + adc r0, r0, r3 + ldr r3, [sp, #0] + str r0, [sp, #32] + orrs r0, r0, r3 + beq .L2167 + ldr r1, [sp, #32] + cmp r1, #0 + beq .L2168 + movw r2, #3918 + mov r0, r8 + ldrh fp, [r4, r2] mov r1, fp bl __aeabi_uidivmod - ldr r3, [sp, #32] + ldr r3, [sp, #28] rsb fp, r1, fp str r1, [sp, #40] cmp fp, r3 movcs fp, r3 - b .L2162 -.L2161: + b .L2169 +.L2168: cmp r3, #0 - beq .L2162 - ldr r3, [sp, #32] - movw lr, #3914 - add fp, r3, r7 + beq .L2169 + ldr r3, [sp, #28] + movw lr, #3918 + add fp, r3, r8 ldrh r3, [r4, lr] mls fp, r3, r5, fp - ldr r3, [sp, #12] + ldr r3, [sp, #32] str r3, [sp, #40] uxth fp, fp -.L2162: - movw lr, #3914 +.L2169: + movw lr, #3918 ldrh r3, [r4, lr] cmp fp, r3 - bne .L2163 - ldr r3, [sp, #12] - ldr r0, [sl, #3960] + bne .L2170 + ldr r3, [sp, #32] + ldr r0, [sl, #3964] cmp r3, #0 - ldr r2, [sl, #3964] - ldr r3, [sp, #24] + ldr r2, [sl, #3968] muleq r1, r5, fp - movne r1, r9 - rsbeq r1, r7, r1 - addeq r1, r9, r1, asl #9 + ldreq r3, [sp, #8] + ldrne r1, [sp, #8] + rsbeq r1, r8, r1 + addeq r1, r3, r1, asl #9 + ldr r3, [sp, #20] cmp r3, #0 mov r3, #36 mla r3, r3, r0, r2 strne r1, [r3, #8] - bne .L2166 + bne .L2173 ldr r0, [r3, #8] - movw r3, #3918 + movw r3, #3922 ldrh r2, [sl, r3] - b .L2189 -.L2163: + b .L2195 +.L2170: ldr r2, [sp, #56] mov r3, #36 cmn r2, #1 - beq .L2167 - ldr r1, [r4, #3960] + beq .L2174 + ldr r1, [r4, #3964] add r0, sp, #60 str r2, [sp, #64] - ldr r2, [r4, #3964] + ldr r2, [r4, #3968] str r5, [sp, #76] mla r3, r3, r1, r2 mov r1, #1 @@ -19050,186 +19113,190 @@ FtlWrite.part.23: bl FlashReadPages ldr r3, [sp, #60] cmn r3, #1 - ldr r3, .L2191 - ldreq r2, [r3, #-1632] - addeq r2, r2, #1 - streq r2, [r3, #-1632] - beq .L2169 - ldr r2, [r6, #8] - cmp r2, r5 - beq .L2169 - ldr r2, [r3, #-1632] - ldr r0, .L2191+28 - add r2, r2, #1 - str r2, [r3, #-1632] + ldreq r3, [r7, #-1640] + addeq r3, r3, #1 + streq r3, [r7, #-1640] + beq .L2176 + ldr r3, [r6, #8] + cmp r3, r5 + beq .L2176 + ldr r3, [r7, #-1640] mov r2, r5 + ldr r0, .L2197+28 + add r3, r3, #1 + str r3, [r7, #-1640] ldr r1, [r6, #8] bl printk - b .L2169 -.L2167: - ldr r1, [r4, #3960] - ldr r2, [r4, #3964] + b .L2176 +.L2174: + ldr r1, [r4, #3964] + ldr r2, [r4, #3968] mla r3, r3, r1, r2 mov r1, #0 ldr r0, [r3, #8] - movw r3, #3918 + movw r3, #3922 ldrh r2, [r4, r3] bl ftl_memset -.L2169: - ldr r3, [sp, #12] - ldr r1, [r4, #3960] +.L2176: + ldr r3, [sp, #32] + ldr r1, [r4, #3964] + ldr r2, [r4, #3968] cmp r3, #0 - ldr r2, [r4, #3964] mov r3, #36 - movweq lr, #3914 mla r3, r3, r1, r2 - ldreqh r1, [r4, lr] - movne r1, r9 - mov r2, fp, asl #9 - muleq r1, r1, r5 ldrne r0, [r3, #8] ldrne r3, [sp, #40] - rsbeq r1, r7, r1 - ldreq r0, [r3, #8] + ldrne r1, [sp, #8] addne r0, r0, r3, asl #9 - addeq r1, r9, r1, asl #9 - b .L2189 -.L2160: - ldr r3, [sp, #24] - ldr r2, [r4, #3960] + bne .L2196 +.L2177: + movw lr, #3918 + ldr r0, [r3, #8] + ldrh r1, [r4, lr] + ldr r3, [sp, #8] + mul r1, r1, r5 + rsb r1, r8, r1 + add r1, r3, r1, asl #9 +.L2196: + mov r2, fp, asl #9 + b .L2195 +.L2167: + ldr r3, [sp, #20] + ldr r2, [r4, #3964] cmp r3, #0 - ldr r3, [r4, #3964] + ldr r3, [r4, #3968] mla ip, ip, r2, r3 - beq .L2171 - movw lr, #3914 + beq .L2178 + movw lr, #3918 + ldr r0, [sp, #8] ldrh r3, [r4, lr] mul r3, r3, r5 - rsb r3, r7, r3 - add r3, r9, r3, asl #9 + rsb r3, r8, r3 + add r3, r0, r3, asl #9 str r3, [ip, #8] - b .L2166 -.L2171: - movw r0, #3914 - movw r3, #3918 - ldrh r1, [r4, r0] - ldrh r2, [r4, r3] + b .L2173 +.L2178: + movw r2, #3918 + ldr r3, [sp, #8] + ldrh r1, [r4, r2] + movw lr, #3922 ldr r0, [ip, #8] + ldrh r2, [r4, lr] mul r1, r1, r5 - rsb r1, r7, r1 - add r1, r9, r1, asl #9 -.L2189: + rsb r1, r8, r1 + add r1, r3, r1, asl #9 +.L2195: bl memcpy -.L2166: - ldr r3, .L2191+32 - ldr r0, [sp, #48] - ldr lr, [sp, #44] - strh r3, [r0, lr] @ movhi - ldr r3, .L2191 +.L2173: + ldr r3, .L2197+32 + ldr r1, [sp, #48] + ldr r0, [sp, #44] + strh r3, [r1, r0] @ movhi + ldr r3, [r7, #-1804] str r5, [r6, #8] add r5, r5, #1 - ldr r2, [r3, #-1844] - str r2, [r6, #4] - add r2, r2, #1 - cmn r2, #1 - str r2, [r3, #-1844] - moveq r2, #0 - streq r2, [r3, #-1844] + str r3, [r6, #4] + add r3, r3, #1 + cmn r3, #1 + str r3, [r7, #-1804] + moveq r3, #0 + streq r3, [r7, #-1804] ldr r3, [sp, #56] str r3, [r6, #12] - ldrh r3, [r8, #0] + ldrh r3, [r9, #0] strh r3, [r6, #2] @ movhi - ldr r3, [r4, #3960] + ldr r3, [r4, #3964] add r3, r3, #1 - str r3, [r4, #3960] - ldr r3, [sp, #28] + str r3, [r4, #3964] + ldr r3, [sp, #24] add r3, r3, #1 - str r3, [sp, #28] -.L2157: - ldr r6, [sp, #28] - ldr r3, [sp, #52] - cmp r6, r3 - bne .L2173 -.L2158: - ldr r3, [sp, #20] - mov r6, r8 - ldr lr, [sp, #28] - ldr r2, [r4, #3960] + str r3, [sp, #24] +.L2164: + ldr r3, [sp, #24] + ldr lr, [sp, #52] + cmp r3, lr + bne .L2180 +.L2165: + ldr r3, [sp, #16] + mov r6, r9 + ldr lr, [sp, #24] + ldr r2, [r4, #3964] rsb r3, lr, r3 - str r3, [sp, #20] - ldr r3, .L2191 - ldr r0, [sp, #24] - ldr r3, [r3, #-976] + ldr r0, [sp, #20] + str r3, [sp, #16] + ldr r3, [r7, #-980] cmp r2, r3 orrcs r0, r0, #1 uxtb r3, r0 cmp r3, #0 - bne .L2174 - ldrh r2, [r8, #4] + bne .L2181 + ldrh r2, [r9, #4] cmp r2, #0 - bne .L2185 -.L2174: + bne .L2191 +.L2181: bl FtlCacheWriteBack - ldr lr, [sp, #20] + ldr lr, [sp, #16] mov r3, #0 - str r3, [sl, #3960] - cmp lr, #3 - ldr r3, [sp, #24] - movls r3, #0 -.L2185: - str r3, [sp, #24] -.L2188: + str r3, [sl, #3964] + cmp lr, #1 ldr r3, [sp, #20] - ldr r8, .L2191 + movls r3, #0 +.L2191: + str r3, [sp, #20] +.L2194: + ldr r3, [sp, #16] + ldr r9, .L2197 cmp r3, #0 - bne .L2176 + bne .L2183 mov r0, r3 - ldr r6, [sp, #36] - ldr r3, [sp, #16] - rsb r1, r3, r6 - bl rk_ftl_garbage_collect - ldr r3, .L2191+36 - ldrh r3, [r8, r3] + ldr lr, [sp, #12] + ldr r3, [sp, #36] + rsb r1, lr, r3 + bl ftl_do_gc + ldr r3, .L2197+36 + ldrh r3, [r9, r3] cmp r3, #31 - bhi .L2149 - ldr r2, .L2191+40 + bhi .L2156 + ldr r2, .L2197+40 mov r3, #128 mov r4, #16 - strh r3, [r8, r2] @ movhi - sub r2, r2, #2 - strh r3, [r8, r2] @ movhi -.L2177: + strh r3, [r9, r2] @ movhi + ldr r2, .L2197+44 + strh r3, [r9, r2] @ movhi +.L2184: mov r0, #0 mov r1, #1 - bl rk_ftl_garbage_collect - ldr r3, [r8, #-2092] + bl ftl_do_gc + ldr r3, [r9, #-2092] cmp r3, #0 - bne .L2149 + bne .L2156 subs r4, r4, #1 - bne .L2177 -.L2149: + bne .L2184 +.L2156: mov r0, #0 add sp, sp, #100 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2192: +.L2198: .align 2 -.L2191: +.L2197: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2-2044 + .word .LANCHOR2-2000 + .word -1948 .word .LANCHOR1 - .word -1992 - .word .LANCHOR2-1996 - .word -2040 - .word .LC135 + .word .LANCHOR2-1952 + .word -1996 + .word .LC139 .word -3947 - .word -2048 - .word -1190 + .word -2004 + .word -1198 + .word -1200 .fnend - .size FtlWrite.part.23, .-FtlWrite.part.23 + .size ftl_write.part.22, .-ftl_write.part.22 .align 2 - .global FtlWrite - .type FtlWrite, %function -FtlWrite: + .global ftl_write + .type ftl_write, %function +ftl_write: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -19238,33 +19305,60 @@ FtlWrite: mov r0, r1 mov r1, r2 mov r2, r3 - ldr r3, .L2198 + ldr r3, .L2204 ldr r3, [r3, #-2092] cmp r3, #0 movne r0, #0 bxne lr cmp ip, #16 - bne .L2195 + bne .L2201 add r0, r0, #256 b FtlVendorPartWrite -.L2195: - ldr r3, .L2198+4 +.L2201: + ldr r3, .L2204+4 add ip, r1, r0 - ldr r3, [r3, #3948] + ldr r3, [r3, #3952] cmp ip, r3 - bhi .L2197 - b FtlWrite.part.23 -.L2197: + bhi .L2203 + b ftl_write.part.22 +.L2203: mvn r0, #0 bx lr -.L2199: +.L2205: .align 2 -.L2198: +.L2204: .word .LANCHOR2 .word .LANCHOR0 .fnend + .size ftl_write, .-ftl_write + .align 2 + .global FtlWrite + .type FtlWrite, %function +FtlWrite: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + b ftl_write + .fnend .size FtlWrite, .-FtlWrite .align 2 + .global ftl_sys_write + .type ftl_sys_write, %function +ftl_sys_write: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + mov ip, r1 + mov r3, r2 + add r1, r0, #256 + mov r2, ip + mov r0, #16 + b ftl_write + .fnend + .size ftl_sys_write, .-ftl_sys_write + .align 2 .global StorageSysDataStore .type StorageSysDataStore, %function StorageSysDataStore: @@ -19276,11 +19370,10 @@ StorageSysDataStore: mov r4, r1 mov r5, r0 bl rknand_device_lock - mov r3, r4 - add r1, r5, #256 - mov r2, #1 - mov r0, #16 - bl FtlWrite + mov r2, r4 + mov r1, #1 + mov r0, r5 + bl ftl_sys_write mov r4, r0 bl rknand_device_unlock mov r0, r4 @@ -19288,9 +19381,51 @@ StorageSysDataStore: .fnend .size StorageSysDataStore, .-StorageSysDataStore .align 2 - .global FtlRead - .type FtlRead, %function -FtlRead: + .global ftl_vendor_write + .type ftl_vendor_write, %function +ftl_vendor_write: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + mov ip, r1 + mov r3, r2 + stmfd sp!, {r4, lr} + .save {r4, lr} + mov r4, r0 + mov r1, r4 + mov r0, #16 + mov r2, ip + ldmfd sp!, {r4, lr} + b ftl_write + .fnend + .size ftl_vendor_write, .-ftl_vendor_write + .align 2 + .global FlashBootVendorWrite + .type FlashBootVendorWrite, %function +FlashBootVendorWrite: + .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, r0 + mov r5, r1 + mov r4, r2 + bl rknand_device_lock + mov r2, r4 + mov r1, r5 + mov r0, r6 + bl ftl_vendor_write + mov r4, r0 + bl rknand_device_unlock + mov r0, r4 + ldmfd sp!, {r4, r5, r6, pc} + .fnend + .size FlashBootVendorWrite, .-FlashBootVendorWrite + .align 2 + .global ftl_read + .type ftl_read, %function +ftl_read: .fnstart @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 @@ -19302,25 +19437,25 @@ FtlRead: mov r4, r1 mov r8, r3 str r2, [sp, #28] - bne .L2202 + bne .L2212 add r0, r1, #256 mov r1, r2 mov r2, r3 bl FtlVendorPartRead str r0, [sp, #16] - b .L2203 -.L2202: + b .L2213 +.L2212: ldr r3, [sp, #28] add r3, r3, r1 str r3, [sp, #20] - ldr r3, .L2232 + ldr r3, .L2242 ldr r1, [sp, #20] - ldr r2, [r3, #3948] + ldr r2, [r3, #3952] cmp r1, r2 mvnhi r3, #0 strhi r3, [sp, #16] - bhi .L2203 - movw r2, #3914 + bhi .L2213 + movw r2, #3918 mov r0, r4 ldrh r5, [r3, r2] mov r1, r5 @@ -19335,45 +19470,45 @@ FtlRead: ldr r1, [sp, #28] add r3, r3, r0 str r3, [sp, #8] - ldr r3, .L2232+4 + ldr r3, .L2242+4 mov fp, r0 ldr r0, [sp, #12] - ldr r2, [r3, #-1852] + ldr r2, [r3, #-1812] add r2, r1, r2 ldr r1, [sp, #8] - str r2, [r3, #-1852] - ldr r2, [r3, #-1880] + str r2, [r3, #-1812] + ldr r2, [r3, #-1840] add r2, r1, r2 mov r1, fp - str r2, [r3, #-1880] + str r2, [r3, #-1840] bl FtlCacheMetchLpa cmp r0, #0 - beq .L2204 + beq .L2214 bl FtlCacheWriteBack -.L2204: +.L2214: mov r9, #0 ldr r6, [sp, #12] str r9, [sp, #32] mov r5, r9 str r9, [sp, #16] - ldr r7, .L2232 - b .L2227 -.L2221: + ldr r7, .L2242 + b .L2237 +.L2231: mov r2, #0 mov r0, r6 add r1, sp, #60 bl log2phys ldr r2, [sp, #60] cmn r2, #1 - bne .L2228 - b .L2231 -.L2209: + bne .L2238 + b .L2241 +.L2219: mla r0, r0, r6, sl cmp r0, r4 - bcc .L2208 + bcc .L2218 ldr r2, [sp, #20] cmp r0, r2 - bcs .L2208 + bcs .L2218 rsb r0, r4, r0 mov r1, #0 mov r2, #512 @@ -19381,27 +19516,27 @@ FtlRead: add r0, r8, r0, asl #9 bl ftl_memset ldr r3, [sp, #4] -.L2208: +.L2218: add sl, sl, #1 - b .L2206 -.L2231: + b .L2216 +.L2241: mov sl, #0 - movw r3, #3914 -.L2206: + movw r3, #3918 +.L2216: ldrh r0, [r7, r3] cmp sl, r0 - bcc .L2209 - b .L2210 -.L2228: - ldr r3, .L2232+4 + bcc .L2219 + b .L2220 +.L2238: + ldr r3, .L2242+4 mov sl, #36 - ldr r1, [r3, #-972] + ldr r1, [r3, #-976] mla sl, sl, r5, r1 ldr r1, [sp, #12] cmp r6, r1 str r2, [sl, #4] - movw r2, #3914 - bne .L2211 + movw r2, #3918 + bne .L2221 ldr r3, [r3, #-948] mov r0, r4 str r3, [sl, #8] @@ -19418,12 +19553,12 @@ FtlRead: str r1, [sp, #32] cmp r1, r3 streq r8, [sl, #8] - b .L2212 -.L2211: + b .L2222 +.L2221: cmp r6, fp ldrneh r3, [r7, r2] mulne r3, r3, r6 - bne .L2229 + bne .L2239 ldr r3, [r3, #-944] ldrh r2, [r7, r2] ldr r1, [sp, #20] @@ -19431,14 +19566,14 @@ FtlRead: mul r3, r2, r6 rsb r9, r3, r1 cmp r9, r2 - bne .L2212 -.L2229: + bne .L2222 +.L2239: rsb r3, r4, r3 add r3, r8, r3, asl #9 str r3, [sl, #8] -.L2212: - mov r3, #3920 - ldr r2, .L2232+4 +.L2222: + movw r3, #3924 + ldr r2, .L2242+4 ldrh r3, [r7, r3] str r6, [sl, #16] ldr r2, [r2, #-936] @@ -19447,23 +19582,23 @@ FtlRead: bic r3, r3, #3 add r3, r2, r3 str r3, [sl, #12] -.L2210: +.L2220: ldr r3, [sp, #8] add r6, r6, #1 subs r3, r3, #1 str r3, [sp, #8] - beq .L2214 - mov r3, #3840 + beq .L2224 + movw r3, #3844 ldrh r3, [r7, r3] cmp r5, r3, asl #3 - bne .L2227 -.L2214: + bne .L2237 +.L2224: cmp r5, #0 - beq .L2227 - ldr sl, .L2232+4 + beq .L2237 + ldr sl, .L2242+4 mov r1, r5 mov r2, #0 - ldr r0, [sl, #-972] + ldr r0, [sl, #-976] bl FlashReadPages ldr r3, [sp, #36] str r6, [sp, #52] @@ -19477,89 +19612,116 @@ FtlRead: str r3, [sp, #48] mov r3, #0 str r3, [sp, #24] -.L2220: +.L2230: ldr r3, [sp, #24] mov r5, #36 ldr r1, [sp, #12] mul r5, r5, r3 - ldr r3, [sl, #-972] + ldr r3, [sl, #-976] add r3, r3, r5 ldr r2, [r3, #16] cmp r2, r1 - bne .L2216 + bne .L2226 ldr r1, [r3, #8] ldr r3, [sl, #-948] cmp r1, r3 - bne .L2217 + bne .L2227 ldr r3, [sp, #40] mov r0, r8 ldr r2, [sp, #44] add r1, r1, r3 - b .L2230 -.L2216: + b .L2240 +.L2226: cmp r2, fp - bne .L2217 + bne .L2227 ldr r1, [r3, #8] ldr r3, [sl, #-944] cmp r1, r3 - bne .L2217 - movw r2, #3914 + bne .L2227 + movw r2, #3918 ldrh r0, [r7, r2] ldr r2, [sp, #48] mul r0, r0, fp rsb r0, r4, r0 add r0, r8, r0, asl #9 -.L2230: +.L2240: bl memcpy -.L2217: - ldr r3, [sl, #-972] +.L2227: + ldr r3, [sl, #-976] add r0, r3, r5 ldr r2, [r3, r5] cmn r2, #1 streq r2, [sp, #16] - ldreq r1, [sl, #-1632] + ldreq r1, [sl, #-1640] addeq r1, r1, #1 - streq r1, [sl, #-1632] + streq r1, [sl, #-1640] ldr r3, [r3, r5] cmp r3, #256 - bne .L2219 + bne .L2229 ldr r0, [r0, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L2219: +.L2229: ldr r3, [sp, #24] add r3, r3, #1 str r3, [sp, #24] cmp r3, r6 - bne .L2220 + bne .L2230 ldr r6, [sp, #52] mov r5, #0 -.L2227: +.L2237: ldr r3, [sp, #8] cmp r3, #0 - bne .L2221 - ldr r3, .L2232+8 - ldr r2, .L2232+4 + bne .L2231 + ldr r3, .L2242+8 + ldr r2, .L2242+4 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2203 + beq .L2213 ldr r0, [sp, #8] mov r1, #1 - bl rk_ftl_garbage_collect -.L2203: + bl ftl_do_gc +.L2213: ldr r0, [sp, #16] add sp, sp, #68 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2233: +.L2243: .align 2 -.L2232: +.L2242: .word .LANCHOR0 .word .LANCHOR2 - .word -1134 + .word -1142 + .fnend + .size ftl_read, .-ftl_read + .align 2 + .global FtlRead + .type FtlRead, %function +FtlRead: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + b ftl_read .fnend .size FtlRead, .-FtlRead .align 2 + .global ftl_sys_read + .type ftl_sys_read, %function +ftl_sys_read: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + mov ip, r1 + mov r3, r2 + add r1, r0, #256 + mov r2, ip + mov r0, #16 + b ftl_read + .fnend + .size ftl_sys_read, .-ftl_sys_read + .align 2 .global StorageSysDataLoad .type StorageSysDataLoad, %function StorageSysDataLoad: @@ -19568,17 +19730,17 @@ StorageSysDataLoad: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} + mov r2, #512 mov r5, r0 mov r4, r1 mov r0, r1 - mov r1, #512 - bl __memzero + mov r1, #0 + bl ftl_memset bl rknand_device_lock - mov r3, r4 - add r1, r5, #256 - mov r2, #1 - mov r0, #16 - bl FtlRead + mov r2, r4 + mov r1, #1 + mov r0, r5 + bl ftl_sys_read mov r4, r0 bl rknand_device_unlock mov r0, r4 @@ -19586,34 +19748,65 @@ StorageSysDataLoad: .fnend .size StorageSysDataLoad, .-StorageSysDataLoad .align 2 - .type rk_ftl_vendor_ops.constprop.28, %function -rk_ftl_vendor_ops.constprop.28: + .global ftl_vendor_read + .type ftl_vendor_read, %function +ftl_vendor_read: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + mov ip, r1 + mov r3, r2 + stmfd sp!, {r4, lr} + .save {r4, lr} + mov r4, r0 + mov r1, r4 + mov r0, #16 + mov r2, ip + ldmfd sp!, {r4, lr} + b ftl_read + .fnend + .size ftl_vendor_read, .-ftl_vendor_read + .align 2 + .global FlashBootVendorRead + .type FlashBootVendorRead, %function +FlashBootVendorRead: .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 r4, r0 - mov r6, r2 + mov r6, r0 mov r5, r1 + mov r4, r2 bl rknand_device_lock - cmp r6, #0 - mov r0, #16 + mov r2, r4 mov r1, r5 - mov r2, #128 - mov r3, r4 - beq .L2236 - bl FtlWrite - b .L2238 -.L2236: - bl FtlRead -.L2238: + mov r0, r6 + bl ftl_vendor_read mov r4, r0 bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} .fnend - .size rk_ftl_vendor_ops.constprop.28, .-rk_ftl_vendor_ops.constprop.28 + .size FlashBootVendorRead, .-FlashBootVendorRead + .align 2 + .type rk_ftl_vendor_ops.constprop.26, %function +rk_ftl_vendor_ops.constprop.26: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + cmp r2, #0 + mov r3, r0 + mov r2, r3 + mov r0, r1 + mov r1, #128 + beq .L2250 + b FlashBootVendorWrite +.L2250: + b FlashBootVendorRead + .fnend + .size rk_ftl_vendor_ops.constprop.26, .-rk_ftl_vendor_ops.constprop.26 .align 2 .global FlashLoadFactorBbt .type FlashLoadFactorBbt, %function @@ -19624,9 +19817,9 @@ FlashLoadFactorBbt: 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, .L2248 + ldr r9, .L2260 movw r3, #3060 - ldr r4, .L2248+4 + ldr r4, .L2260+4 .pad #52 sub sp, sp, #52 mov r1, #0 @@ -19646,14 +19839,14 @@ FlashLoadFactorBbt: add r3, r8, r7 uxth r3, r3 str r3, [sp, #4] - b .L2240 -.L2246: + b .L2252 +.L2258: ldr r5, [sp, #4] sub r3, r8, #12 mul fp, r8, r4 - ldr sl, .L2248+4 - b .L2241 -.L2244: + ldr sl, .L2260+4 + b .L2253 +.L2256: add r2, fp, r5 mov r1, #1 add r0, sp, #12 @@ -19665,47 +19858,47 @@ FlashLoadFactorBbt: ldr r2, [sp, #12] ldr r3, [sp, #0] cmn r2, #1 - beq .L2242 + beq .L2254 ldr r2, [sl, #224] ldrh r1, [r2, #0] movw r2, #61664 cmp r1, r2 - bne .L2242 - ldr r0, .L2248+8 + bne .L2254 + ldr r0, .L2260+8 mov r1, r4 mov r2, r5 add r6, r6, #1 bl printk - ldr r3, .L2248+4 + ldr r3, .L2260+4 uxth r6, r6 add r3, r3, r4, asl #1 strh r5, [r3, #228] @ movhi - b .L2243 -.L2242: + b .L2255 +.L2254: sub r5, r5, #1 uxth r5, r5 -.L2241: +.L2253: cmp r5, r3 - bgt .L2244 -.L2243: + bgt .L2256 +.L2255: ldrb r3, [r9, #3762] @ zero_extendqisi2 add r4, r4, #1 cmp r3, r6 uxtb r4, r4 moveq r7, #0 -.L2240: +.L2252: ldrb r3, [r9, #3762] @ zero_extendqisi2 cmp r3, r4 - bhi .L2246 + bhi .L2258 mov r0, r7 add sp, sp, #52 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2249: +.L2261: .align 2 -.L2248: +.L2260: .word .LANCHOR0 .word .LANCHOR2 - .word .LC136 + .word .LC140 .fnend .size FlashLoadFactorBbt, .-FlashLoadFactorBbt .align 2 @@ -19715,7 +19908,7 @@ FlashReadFacBbtData: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2260 + ldr r3, .L2272 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr} .save {r4, r5, r6, r7, r8, r9, sl, lr} mov r6, r1 @@ -19726,7 +19919,7 @@ FlashReadFacBbtData: ldrh r2, [r3, r2] .pad #40 sub sp, sp, #40 - ldr r7, .L2260+4 + ldr r7, .L2272+4 mov r4, r0 mul r8, r8, r2 ldr r3, [r7, #144] @@ -19738,8 +19931,8 @@ FlashReadFacBbtData: str r3, [sp, #16] uxth r5, r5 sub r8, r8, #16 - b .L2251 -.L2257: + b .L2263 +.L2269: mov r1, #1 add r3, r5, sl add r0, sp, #4 @@ -19749,21 +19942,21 @@ FlashReadFacBbtData: bl FlashReadPages ldr r3, [sp, #4] cmn r3, #1 - beq .L2252 + beq .L2264 ldr r3, [r7, #224] ldrh r2, [r3, #0] movw r3, #61664 cmp r2, r3 - bne .L2252 + bne .L2264 cmp r4, #0 moveq r0, r4 - beq .L2253 + beq .L2265 cmp r6, #0 - ldreq r3, .L2260+4 + ldreq r3, .L2272+4 moveq r0, #1 - beq .L2254 - b .L2255 -.L2256: + beq .L2266 + b .L2267 +.L2268: ldr r2, [r3, #144] ubfx r1, r6, #5, #16 and lr, r6, #31 @@ -19772,39 +19965,39 @@ FlashReadFacBbtData: uxth r6, r6 orr ip, ip, r0, asl lr str ip, [r2, r1, asl #2] -.L2254: +.L2266: ldr r2, [r3, #152] cmp r6, r2 - bcc .L2256 -.L2255: - ldr r3, .L2260+4 + bcc .L2268 +.L2267: + ldr r3, .L2272+4 mov r2, r9 mov r0, r4 ldr r1, [r3, #144] bl memcpy mov r2, #4 - ldr r0, .L2260+8 + ldr r0, .L2272+8 mov r1, r4 mov r3, r2 bl rknand_print_hex mov r0, #0 - b .L2253 -.L2252: + b .L2265 +.L2264: sub r5, r5, #1 uxth r5, r5 -.L2251: +.L2263: cmp r5, r8 - bgt .L2257 + bgt .L2269 mvn r0, #0 -.L2253: +.L2265: add sp, sp, #40 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -.L2261: +.L2273: .align 2 -.L2260: +.L2272: .word .LANCHOR0 .word .LANCHOR2 - .word .LC137 + .word .LC141 .fnend .size FlashReadFacBbtData, .-FlashReadFacBbtData .align 2 @@ -19814,12 +20007,12 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2269 + ldr r3, .L2281 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 ldr r3, [r3, #3624] - ldr r6, .L2269+4 + ldr r6, .L2281+4 ldrb r2, [r3, #13] @ zero_extendqisi2 ldrh r4, [r3, #14] ldr r0, [r6, #132] @@ -19829,14 +20022,14 @@ FlashGetBadBlockList: mov r2, r2, lsr #3 bl FlashReadFacBbtData cmn r0, #1 - beq .L2268 + beq .L2280 mov r2, #0 mov r0, r4, lsr #4 mov r3, r2 sub r4, r4, #1 mov r1, #1 - b .L2264 -.L2266: + b .L2276 +.L2278: ldr ip, [r6, #132] mov r8, r2, lsr #5 and r7, r2, #31 @@ -19847,24 +20040,24 @@ FlashGetBadBlockList: uxthne r3, r3 strneh r2, [r5, ip] @ movhi cmp r3, r0 - bcs .L2268 + bcs .L2280 add r2, r2, #1 uxth r2, r2 -.L2264: +.L2276: cmp r2, r4 - blt .L2266 - b .L2263 -.L2268: + blt .L2278 + b .L2275 +.L2280: mov r3, #0 -.L2263: +.L2275: mov r3, r3, asl #1 mvn r2, #0 mov r0, #0 strh r2, [r5, r3] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2270: +.L2282: .align 2 -.L2269: +.L2281: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -19878,66 +20071,65 @@ FtlMakeBbt: @ 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, .L2289 + ldr r4, .L2301 ldr r5, [r4, #-2092] cmp r5, #0 - bne .L2272 - ldr r7, .L2289+4 + bne .L2284 + ldr r7, .L2301+4 bl FtlBbtMemInit - ldr r6, .L2289+8 + ldr r6, .L2301+8 bl FtlLoadFactoryBbt add sl, r7, #12 - b .L2273 -.L2279: + b .L2285 +.L2291: ldrh r3, [sl], #2 movw r2, #65535 - ldr r0, [r4, #-2076] + ldr r0, [r4, #-964] + movw fp, #3908 ldr r9, [r4, #-940] cmp r3, r2 str r0, [r4, #184] str r9, [r4, #188] - beq .L2274 - mov r9, #3904 + beq .L2286 + ldrh r8, [r6, fp] mov r1, #1 - ldrh r8, [r6, r9] mov r2, r1 - ldr r0, .L2289+12 + ldr r0, .L2301+12 mla r8, r8, r5, r3 mov r3, r8, asl #10 str r3, [r4, #180] bl FlashReadPages - ldrh r2, [r6, r9] + ldrh r2, [r6, fp] ldr r0, [r7, #28] add r2, r2, #7 ldr r1, [r4, #184] mov r2, r2, lsr #3 bl memcpy - b .L2275 -.L2274: + b .L2287 +.L2286: mov r1, r5 bl FlashGetBadBlockList ldr r0, [r4, #184] ldr r1, [r7, #28] bl FtlBbt2Bitmap - mov r3, #3904 - ldrh fp, [r6, r3] -.L2277: + ldrh fp, [r6, fp] +.L2289: sub fp, fp, #1 uxth fp, fp -.L2288: - mov r8, #3904 +.L2300: + movw r8, #3908 ldrh r0, [r6, r8] mla r0, r0, r5, fp uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L2277 + beq .L2289 mov r1, #0 mov r2, #16 strh fp, [sl, #-2] @ movhi ldr r0, [r4, #-940] bl ftl_memset - ldr r3, .L2289+16 + ldr r3, .L2301+16 strh r3, [r9, #0] @ movhi mov r3, #0 str r3, [r9, #4] @@ -19950,89 +20142,89 @@ FtlMakeBbt: mla r8, r8, r5, r3 mov r3, r8, asl #10 str r3, [r4, #180] - ldr r3, .L2289+20 + ldr r3, .L2301+20 ldrh r2, [r4, r3] mov r2, r2, asl #2 bl memcpy mov r1, #1 mov r2, r1 - ldr r0, .L2289+12 + ldr r0, .L2301+12 bl FlashEraseBlocks mov r1, #1 mov r3, r1 - ldr r0, .L2289+12 + ldr r0, .L2301+12 mov r2, r1 bl FlashProgPages ldr r3, [r4, #176] cmn r3, #1 - bne .L2275 + bne .L2287 uxth r0, r8 bl FtlBbmMapBadBlock - b .L2288 -.L2275: + b .L2300 +.L2287: uxth r0, r8 add r5, r5, #1 bl FtlBbmMapBadBlock add r7, r7, #4 -.L2273: - movw r3, #3862 +.L2285: + movw r3, #3866 ldrh r3, [r6, r3] cmp r5, r3 - bcc .L2279 + bcc .L2291 mov r4, #0 - ldr r7, .L2289+8 - movw r6, #3922 - b .L2280 -.L2281: + ldr r7, .L2301+8 + movw r6, #3926 + b .L2292 +.L2293: mov r0, r4 add r4, r4, #1 bl FtlBbmMapBadBlock uxth r4, r4 -.L2280: +.L2292: ldrh r3, [r7, r6] - ldr r5, .L2289+8 + ldr r5, .L2301+8 cmp r3, r4 - bhi .L2281 + bhi .L2293 movw r7, #3988 movw r6, #3976 ldrh r4, [r5, r7] sub r4, r4, #1 uxth r4, r4 - b .L2282 -.L2287: + b .L2294 +.L2299: mov r0, r4 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L2283 + beq .L2295 mov r0, r4 bl FlashTestBlk cmp r0, #0 - beq .L2284 + beq .L2296 mov r0, r4 bl FtlBbmMapBadBlock - b .L2283 -.L2284: + b .L2295 +.L2296: ldrh r2, [r5, r6] movw r3, #65535 cmp r2, r3 streqh r4, [r5, r6] @ movhi -.L2285: - ldrne r2, .L2289+8 +.L2297: + ldrne r2, .L2301+8 movwne r3, #3980 strneh r4, [r2, r3] @ movhi - bne .L2286 -.L2283: + bne .L2298 +.L2295: sub r4, r4, #1 uxth r4, r4 -.L2282: +.L2294: ldrh r3, [r5, r7] sub r3, r3, #48 cmp r4, r3 - bgt .L2287 -.L2286: - ldr r4, .L2289+8 + bgt .L2299 +.L2298: + ldr r4, .L2301+8 movw r6, #3976 - ldr r3, .L2289 + ldr r3, .L2301 movw r5, #3980 mov r7, #0 movw r8, #3978 @@ -20062,48 +20254,59 @@ FtlMakeBbt: strh r2, [r4, r6] @ movhi strh r3, [r4, r5] @ movhi bl FtlBbmTblFlush -.L2272: +.L2284: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2290: +.L2302: .align 2 -.L2289: +.L2301: .word .LANCHOR2 .word .LANCHOR0+3976 .word .LANCHOR0 .word .LANCHOR2+176 .word -3872 - .word -1024 + .word -1032 .fnend .size FtlMakeBbt, .-FtlMakeBbt .align 2 - .type FtlLowFormat.part.26, %function -FtlLowFormat.part.26: + .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 r2, #0 - ldr r3, .L2312 - str r2, [r3, #-1848] - str r2, [r3, #-1844] - ldr r3, .L2312+4 - ldr r0, [r3, #3844] + movw r6, #3948 + ldr r5, .L2324 + mov r1, #0 + ldr r4, .L2324+4 + ldrh r2, [r5, r6] + ldr r0, [r4, #-904] + mov r2, r2, asl #2 + bl ftl_memset + ldrh r2, [r5, r6] + mov r1, #0 + ldr r0, [r4, #-1036] + mov r2, r2, asl #2 + bl ftl_memset + ldr r0, [r5, #3848] + mov r3, #0 + str r3, [r4, #-1808] + str r3, [r4, #-1804] uxth r0, r0 bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - beq .L2292 + beq .L2304 bl FtlMakeBbt -.L2292: +.L2304: mov r3, #0 - ldr ip, .L2312+4 - movw r0, #3914 - ldr r2, .L2312 - ldr r1, .L2312+8 - b .L2293 -.L2294: + ldr ip, .L2324 + movw r0, #3918 + ldr r2, .L2324+4 + ldr r1, .L2324+8 + b .L2305 +.L2306: ldr lr, [r2, #-948] mvn r4, r3 orr r4, r3, r4, asl #16 @@ -20112,17 +20315,17 @@ FtlLowFormat.part.26: str r1, [lr, r3, asl #2] add r3, r3, #1 uxth r3, r3 -.L2293: +.L2305: ldrh lr, [ip, r0] - ldr r8, .L2312+4 + ldr r8, .L2324 cmp r3, lr, asl #7 - blt .L2294 - movw r3, #3848 + blt .L2306 + movw r3, #3852 mov r5, #0 ldrh r6, [r8, r3] - movw r7, #3850 - b .L2295 -.L2296: + movw r7, #3854 + b .L2307 +.L2308: mov r0, r6 mov r1, #1 bl FtlLowFormatEraseBlock @@ -20130,46 +20333,46 @@ FtlLowFormat.part.26: uxth r6, r6 add r5, r5, r0 uxth r5, r5 -.L2295: +.L2307: ldrh r3, [r8, r7] - ldr r4, .L2312+4 + ldr r4, .L2324 cmp r3, r6 - bhi .L2296 - mov r3, #3840 + bhi .L2308 + movw r3, #3844 ldrh r1, [r4, r3] sub r3, r5, #3 cmp r3, r1, asl #1 - blt .L2297 + blt .L2309 mov r0, r5 - movw r6, #3850 + movw r6, #3854 bl __aeabi_uidiv - ldr r3, [r4, #3940] + ldr r3, [r4, #3944] add r0, r0, r3 uxth r0, r0 bl FtlSysBlkNumInit - ldr r0, [r4, #3844] + ldr r0, [r4, #3848] uxth r0, r0 bl FtlFreeSysBlkQueueInit - movw r3, #3848 + movw r3, #3852 ldrh r5, [r4, r3] - b .L2298 -.L2299: + b .L2310 +.L2311: mov r0, r5 mov r1, #1 bl FtlLowFormatEraseBlock add r5, r5, #1 uxth r5, r5 -.L2298: +.L2310: ldrh r3, [r4, r6] cmp r3, r5 - bhi .L2299 -.L2297: + bhi .L2311 +.L2309: mov r4, #0 - ldr r8, .L2312+4 + ldr r8, .L2324 mov r6, r4 - movw r7, #3848 - b .L2300 -.L2301: + movw r7, #3852 + b .L2312 +.L2313: mov r0, r6 mov r1, #0 bl FtlLowFormatEraseBlock @@ -20177,198 +20380,200 @@ FtlLowFormat.part.26: uxth r6, r6 add r4, r4, r0 uxth r4, r4 -.L2300: +.L2312: ldrh r3, [r8, r7] - ldr r5, .L2312+4 + ldr r5, .L2324 cmp r3, r6 - bhi .L2301 - movw r3, #3850 - ldr fp, [r5, #3852] + bhi .L2313 + movw r3, #3854 + ldr r8, .L2324+4 ldrh r3, [r5, r3] - ldr r9, .L2312 - mov r0, fp - ldr sl, .L2312+12 - str r3, [r5, #3972] - mov r3, #3840 + ldr fp, [r5, #3856] + ldr r9, .L2324+12 + str r3, [r8, #-988] + movw r3, #3844 ldrh r6, [r5, r3] + mov r0, fp mov r1, r6 bl __aeabi_uidiv - ubfx r8, r0, #5, #16 + ubfx sl, r0, #5, #16 mov r7, r0 - add r3, r8, #36 - strh r3, [r9, sl] @ movhi + add r3, sl, #36 + strh r3, [r8, r9] @ movhi mov r3, #24 - str r0, [r5, #3968] + str r0, [r5, #3972] mul r3, r3, r6 cmp r4, r3 - ble .L2302 + ble .L2314 rsb r0, r4, fp mov r1, r6 bl __aeabi_uidiv - str r0, [r5, #3968] + str r0, [r5, #3972] mov r0, r0, lsr #5 add r0, r0, #24 - strh r0, [r9, sl] @ movhi -.L2302: - ldr r5, .L2312 - ldr r3, [r5, #-1884] + strh r0, [r8, r9] @ movhi +.L2314: + ldr r3, .L2324 + ldr r3, [r3, #3836] cmp r3, #1 - bne .L2303 + bne .L2315 mov r0, r4 mov r1, r6 bl __aeabi_uidiv - ldr sl, .L2312+12 - ldrh r9, [r5, sl] + ldr r8, .L2324+4 + ldr r5, .L2324+12 + ldrh r9, [r8, r5] uxtah r0, r9, r0 add r9, r9, r0, lsr #2 - strh r9, [r5, sl] @ movhi -.L2303: - ldr r3, .L2312+4 + strh r9, [r8, r5] @ movhi +.L2315: + ldr r3, .L2324 ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L2304 + beq .L2316 mov r0, r4 mov r1, r6 bl __aeabi_uidiv - ldr sl, .L2312 - ldr r5, .L2312+12 - ldrh r9, [sl, r5] + ldr r8, .L2324+4 + ldr r5, .L2324+12 + ldrh r9, [r8, r5] uxtah r0, r9, r0 add r9, r9, r0, lsr #2 - strh r9, [sl, r5] @ movhi -.L2304: - ldr r0, .L2312+4 - movw r3, #3900 + strh r9, [r8, r5] @ movhi +.L2316: + ldr r0, .L2324 + mov r3, #3904 ldrh r3, [r0, r3] cmp r3, #0 - beq .L2305 - ldr r1, .L2312 - ldr r2, .L2312+12 + beq .L2317 + ldr r1, .L2324+4 + ldr r2, .L2324+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, #3968] + strgt r7, [r0, #3972] addgt r3, r3, #32 - addgt r8, r8, r3 - strgth r8, [r1, r2] @ movhi -.L2305: - ldr r4, .L2312 - ldr r5, .L2312+4 - ldr r3, .L2312+12 - ldr r7, .L2312+16 - ldr r2, [r5, #3968] + addgt sl, sl, r3 + strgth sl, [r1, r2] @ movhi +.L2317: + ldr r4, .L2324+4 + ldr r5, .L2324 + ldr r3, .L2324+12 + ldr r2, [r5, #3972] ldrh r3, [r4, r3] rsb r3, r3, r2 mul r6, r6, r3 - movw r3, #3908 + movw r3, #3912 ldrh r3, [r5, r3] str r6, [r4, #212] mul r6, r3, r6 - movw r3, #3914 + movw r3, #3918 ldrh r3, [r5, r3] - str r6, [r5, #3968] + str r6, [r5, #3972] mul r6, r3, r6 - str r6, [r5, #3948] - mvn r6, #0 + str r6, [r5, #3952] bl FtlBbmTblFlush - movw r3, #3850 + movw r3, #3854 ldrh r2, [r5, r3] mov r1, #0 - ldr r0, [r4, #-2064] + ldr r0, [r4, #-2020] + ldr r6, .L2324+16 mov r2, r2, asl #1 bl ftl_memset - ldr r1, .L2312+20 + ldr r2, .L2324+20 + mvn r1, #0 mov r3, #0 - ldr r2, .L2312+24 - str r3, [r4, #-1892] + str r3, [r4, #-1848] + strh r1, [r4, r2] @ movhi + ldr r1, .L2324+24 + strb r3, [r4, #-1758] + strb r3, [r4, #-1756] strh r3, [r4, r1] @ movhi - sub r1, r1, #288 - strb r3, [r4, #-1750] + sub r1, r1, #236 + strb r3, [r4, #-1994] strh r3, [r4, r1] @ movhi mov r1, #255 - strb r3, [r4, #-1748] - strb r3, [r4, #-2038] - strh r3, [r4, r7] @ movhi + strh r3, [r4, r6] @ movhi mov r3, #1 - strb r3, [r4, #-2036] - movw r3, #3848 - strh r6, [r4, r2] @ movhi + strb r3, [r4, #-1992] + movw r3, #3852 ldrh r2, [r5, r3] - ldr r0, [r4, #-1888] + ldr r0, [r4, #-1844] mov r2, r2, lsr #3 bl ftl_memset -.L2306: - ldr r0, .L2312+28 +.L2318: + ldr r5, .L2324+4 + sub r0, r5, #2000 bl make_superblock - ldrb r3, [r4, #-2037] @ zero_extendqisi2 - ldr r5, .L2312 + ldrb r3, [r4, #-1993] @ zero_extendqisi2 cmp r3, #0 - ldr r3, .L2312+16 - bne .L2307 - ldrh r3, [r4, r7] - ldr r2, [r4, #-2064] + bne .L2319 + ldrh r3, [r4, r6] + mvn r1, #0 + ldr r2, [r4, #-2020] mov r3, r3, asl #1 - strh r6, [r2, r3] @ movhi - ldrh r3, [r4, r7] + strh r1, [r2, r3] @ movhi + ldrh r3, [r4, r6] add r3, r3, #1 - strh r3, [r4, r7] @ movhi - b .L2306 -.L2307: - ldr r2, [r5, #-1848] - mvn r7, #0 - ldr r1, [r5, #-2064] - ldr r6, .L2312+32 - str r2, [r5, #-2032] - add r2, r2, #1 - str r2, [r5, #-1848] - ldr r2, .L2312+36 - ldrh r0, [r5, r2] + strh r3, [r4, r6] @ movhi + b .L2318 +.L2319: + ldr r3, [r5, #-1808] + ldr r1, [r5, #-2020] + ldr r6, .L2324+28 + str r3, [r5, #-1988] + add r3, r3, #1 + str r3, [r5, #-1808] + ldr r3, .L2324+32 + ldrh r0, [r5, r3] + ldr r3, .L2324+16 ldrh r2, [r5, r3] mov r2, r2, asl #1 strh r0, [r1, r2] @ movhi mov r2, #0 - ldr r0, .L2312+40 + ldr r0, .L2324+36 ldrh r3, [r5, r3] - strb r2, [r5, #-1990] + strb r2, [r5, #-1946] add r3, r3, #1 strh r2, [r5, r0] @ movhi strh r3, [r5, r6] @ movhi mov r3, #1 - strb r3, [r5, #-1988] -.L2308: - ldr r0, .L2312+44 + strb r3, [r5, #-1944] +.L2320: + ldr r4, .L2324+4 + sub r0, r4, #1952 bl make_superblock - ldrb r3, [r5, #-1989] @ zero_extendqisi2 - ldr r4, .L2312 + ldrb r3, [r5, #-1945] @ zero_extendqisi2 cmp r3, #0 - bne .L2309 + bne .L2321 ldrh r3, [r5, r6] - ldr r2, [r5, #-2064] + mvn r1, #0 + ldr r2, [r5, #-2020] mov r3, r3, asl #1 - strh r7, [r2, r3] @ movhi + strh r1, [r2, r3] @ movhi ldrh r3, [r5, r6] add r3, r3, #1 strh r3, [r5, r6] @ movhi - b .L2308 -.L2309: - ldr r3, [r4, #-1848] + b .L2320 +.L2321: + ldr r3, [r4, #-1808] mvn r5, #0 - ldr r2, [r4, #-2064] - str r3, [r4, #-1984] + ldr r2, [r4, #-2020] + str r3, [r4, #-1940] add r3, r3, #1 - str r3, [r4, #-1848] - ldr r3, .L2312+48 + str r3, [r4, #-1808] + ldr r3, .L2324+40 ldrh r1, [r4, r3] - sub r3, r3, #4 + ldr r3, .L2324+28 ldrh r3, [r4, r3] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi - ldr r3, .L2312+52 + ldr r3, .L2324+44 strh r5, [r4, r3] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, .L2312+56 + ldr r3, .L2324+48 mov r2, #0 strh r0, [r4, r3] @ movhi add r3, r3, #2 @@ -20378,39 +20583,37 @@ FtlLowFormat.part.26: strh r5, [r4, r3] @ movhi add r3, r3, #2 strh r2, [r4, r3] @ movhi - ldr r3, [r4, #-1848] - str r3, [r4, #-1760] + ldr r3, [r4, #-1808] + str r3, [r4, #-1768] add r3, r3, #1 - str r3, [r4, #-1848] + str r3, [r4, #-1808] bl FtlVpcTblFlush bl FtlSysBlkInit cmp r0, #0 ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - ldr r3, .L2312+60 + ldr r3, .L2324+52 mov r2, #1 - str r2, [r3, #2932] + str r2, [r3, #2996] ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2313: +.L2325: .align 2 -.L2312: - .word .LANCHOR2 +.L2324: .word .LANCHOR0 + .word .LANCHOR2 .word 168778952 - .word -1772 - .word -2044 - .word -1754 - .word -1756 - .word .LANCHOR2-2044 + .word -1780 + .word -2000 + .word -1764 + .word -1762 + .word -1952 .word -1996 - .word -2040 - .word -1994 - .word .LANCHOR2-1996 - .word -1992 + .word -1950 .word -1948 - .word -1768 + .word -1904 + .word -1776 .word .LANCHOR1 .fnend - .size FtlLowFormat.part.26, .-FtlLowFormat.part.26 + .size FtlLowFormat.part.24, .-FtlLowFormat.part.24 .align 2 .global FtlLowFormat .type FtlLowFormat, %function @@ -20420,17 +20623,17 @@ FtlLowFormat: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2316 + ldr r3, .L2328 ldr r3, [r3, #-2092] cmp r3, #0 - bne .L2315 - bl FtlLowFormat.part.26 -.L2315: + bne .L2327 + bl FtlLowFormat.part.24 +.L2327: mov r0, #0 ldmfd sp!, {r3, pc} -.L2317: +.L2329: .align 2 -.L2316: +.L2328: .word .LANCHOR2 .fnend .size FtlLowFormat, .-FtlLowFormat @@ -20441,7 +20644,7 @@ HynixGetReadRetryDefault: .fnstart @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2403 + ldr r3, .L2415 mvn r2, #83 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} @@ -20457,16 +20660,16 @@ HynixGetReadRetryDefault: strb r0, [r3, #5] strb r1, [r3, #6] strb r2, [r3, #7] - bne .L2319 + bne .L2331 mvn r2, #88 strb r2, [r3, #4] - ldr r3, .L2403+4 + ldr r3, .L2415+4 mvn r2, #8 - strb r2, [r3, #2961] - b .L2375 -.L2319: + strb r2, [r3, #3025] + b .L2387 +.L2331: cmp r4, #3 - bne .L2321 + bne .L2333 mvn r2, #79 strb r2, [r3, #4] mvn r2, #78 @@ -20482,10 +20685,10 @@ HynixGetReadRetryDefault: mvn r2, #73 strb r2, [r3, #10] mvn r2, #72 - b .L2398 -.L2321: + b .L2410 +.L2333: cmp r4, #4 - bne .L2322 + bne .L2334 mvn ip, #51 strb r0, [r3, #9] strb ip, [r3, #4] @@ -20498,14 +20701,14 @@ HynixGetReadRetryDefault: strb ip, [r3, #7] mvn ip, #50 strb ip, [r3, #8] -.L2398: +.L2410: mov r6, #8 strb r2, [r3, #11] mov r5, r6 - b .L2320 -.L2322: + b .L2332 +.L2334: cmp r4, #5 - bne .L2323 + bne .L2335 mov r2, #56 mov r6, #8 strb r2, [r3, #4] @@ -20515,10 +20718,10 @@ HynixGetReadRetryDefault: strb r2, [r3, #6] mov r2, #59 strb r2, [r3, #7] - b .L2397 -.L2323: + b .L2409 +.L2335: cmp r4, #6 - bne .L2324 + bne .L2336 mov r2, #14 mov r6, #12 strb r2, [r3, #4] @@ -20528,10 +20731,10 @@ HynixGetReadRetryDefault: strb r2, [r3, #6] mov r2, #17 strb r2, [r3, #7] - b .L2397 -.L2324: + b .L2409 +.L2336: cmp r4, #7 - bne .L2375 + bne .L2387 mvn r2, #79 mov r6, #12 strb r2, [r3, #4] @@ -20554,17 +20757,17 @@ HynixGetReadRetryDefault: strb r2, [r3, #12] mvn r2, #42 strb r2, [r3, #13] - b .L2320 -.L2375: + b .L2332 +.L2387: mov r6, #7 -.L2397: +.L2409: mov r5, #4 -.L2320: +.L2332: sub r3, r4, #1 cmp r3, #1 - bhi .L2393 - b .L2401 -.L2331: + bhi .L2405 + b .L2413 +.L2343: add r2, fp, r8 add r4, fp, #20 mov r7, #0 @@ -20576,7 +20779,7 @@ HynixGetReadRetryDefault: ldr r1, [r2, #864] add sl, sl, #8 add sl, r1, sl, asl #8 -.L2327: +.L2339: add r2, fp, r7 str r5, [sl, #8] mov r0, #80 @@ -20590,26 +20793,26 @@ HynixGetReadRetryDefault: ldr r3, [sp, #12] uxtb r2, r7 cmp r2, r6 - bcc .L2327 + bcc .L2339 mov r2, #0 - b .L2328 -.L2329: + b .L2340 +.L2341: 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 .L2329 + bne .L2341 add r2, r2, #1 cmp r2, #4 - beq .L2330 -.L2328: + beq .L2342 +.L2340: mov r1, #1 add ip, r4, r2 add r0, r2, r9 - b .L2329 -.L2330: + b .L2341 +.L2342: add r8, r8, #1 mov r2, #0 strb r2, [r4, #16] @@ -20620,24 +20823,24 @@ HynixGetReadRetryDefault: strb r2, [r4, #48] strb r2, [r4, #41] strb r2, [r4, #49] - b .L2325 -.L2401: - ldr r9, .L2403+8 + b .L2337 +.L2413: + ldr r9, .L2415+8 mov r3, r6 mov r8, #0 mov r6, r5 -.L2325: - ldr fp, .L2403 +.L2337: + ldr fp, .L2415 ldrb r2, [fp, #3762] @ zero_extendqisi2 cmp r2, r8 - bhi .L2331 + bhi .L2343 mov r5, r6 mov r6, r3 - b .L2332 -.L2393: + b .L2344 +.L2405: sub r3, r4, #3 cmp r3, #4 - bhi .L2332 + bhi .L2344 mul r3, r6, r5 mov sl, #0 mov r7, sl @@ -20646,8 +20849,8 @@ HynixGetReadRetryDefault: mov r3, r3, asl #4 str r2, [sp, #24] str r3, [sp, #52] - b .L2333 -.L2374: + b .L2345 +.L2386: add r3, r1, sl ldrb r6, [r3, #3764] @ zero_extendqisi2 add r3, r1, r6, asl #3 @@ -20672,30 +20875,30 @@ HynixGetReadRetryDefault: cmp r4, #4 mov r3, #54 str r3, [r8, #8] - bne .L2336 + bne .L2348 mov r3, #255 str r3, [r8, #4] mov r3, #64 str r3, [r9, fp, asl #8] mov r3, #204 - b .L2399 -.L2336: + b .L2411 +.L2348: sub r3, r4, #5 cmp r3, #1 - ldrls r3, .L2403 + ldrls r3, .L2415 ldrlsb r3, [r3, #4] @ zero_extendqisi2 strls r3, [r8, #4] movls r3, #82 - bls .L2400 -.L2338: + bls .L2412 +.L2350: mov r3, #174 str r3, [r8, #4] mov r3, #176 str r7, [r9, fp, asl #8] -.L2399: +.L2411: str r3, [r8, #4] mov r3, #77 -.L2400: +.L2412: cmp r4, #6 str r3, [r9, fp, asl #8] mov r0, r6 @@ -20723,77 +20926,77 @@ HynixGetReadRetryDefault: cmp r3, #1 str r3, [sp, #36] movls r1, #16 - bls .L2342 + bls .L2354 cmp r4, #7 moveq r1, #32 movne r1, #2 -.L2342: - ldr r3, .L2403+12 +.L2354: + ldr r3, .L2415+12 ldr r2, [r3, #144] mov r3, #0 -.L2343: +.L2355: ldr r0, [r8, #0] strb r0, [r2, r3] add r3, r3, #1 uxtb r0, r3 cmp r0, r1 - bcc .L2343 + bcc .L2355 cmp r4, #7 - bne .L2344 + bne .L2356 mov r3, #0 -.L2346: +.L2358: ldrb r1, [r2, #0] @ zero_extendqisi2 cmp r1, #12 - beq .L2345 + beq .L2357 ldrb r1, [r2, #1] @ zero_extendqisi2 cmp r1, #10 - beq .L2345 + beq .L2357 add r3, r3, #1 add r2, r2, #4 uxtb r3, r3 cmp r3, #8 - bne .L2346 - b .L2347 -.L2345: + bne .L2358 + b .L2359 +.L2357: cmp r3, #6 - bls .L2348 -.L2347: - ldr r0, .L2403+16 + bls .L2360 +.L2359: + ldr r0, .L2415+16 mov r1, #0 bl printk -.L2349: - b .L2349 -.L2344: +.L2361: + b .L2361 +.L2356: cmp r4, #6 - bne .L2348 + bne .L2360 mov r1, #8 -.L2350: +.L2362: ldrb r3, [r2], #1 @ zero_extendqisi2 cmp r3, #12 - beq .L2348 + beq .L2360 ldrb r3, [r2, #7] @ zero_extendqisi2 cmp r3, #4 - beq .L2348 + beq .L2360 sub r1, r1, #1 uxtb r1, r1 cmp r1, #0 - bne .L2350 - b .L2402 -.L2352: - b .L2352 -.L2348: - ldr r3, .L2403+12 + bne .L2362 + b .L2414 +.L2364: + b .L2364 +.L2360: + ldr r3, .L2415+12 mov r2, #0 ldr ip, [r3, #144] str ip, [sp, #40] -.L2353: +.L2365: ldr r1, [r8, #0] ldr lr, [sp, #40] ldr ip, [sp, #52] strb r1, [lr, r2] add r2, r2, #1 cmp r2, ip - blt .L2353 + blt .L2365 ldr r2, [sp, #24] ldr r1, [r3, #144] mov r3, #8 @@ -20801,10 +21004,10 @@ HynixGetReadRetryDefault: mov lr, r2, asl #3 add r1, r1, ip str ip, [sp, #32] -.L2355: +.L2367: mov r2, #0 mov r0, r2 -.L2354: +.L2366: ldr ip, [r1, r2] add r0, r0, #1 mvn ip, ip @@ -20812,14 +21015,14 @@ HynixGetReadRetryDefault: ldr ip, [sp, #24] add r2, r2, #4 cmp r0, ip - blt .L2354 + blt .L2366 subs r3, r3, #1 add r1, r1, lr - bne .L2355 + bne .L2367 str r3, [sp, #16] str sl, [sp, #60] - b .L2356 -.L2360: + b .L2368 +.L2372: mov lr, #1 mov r0, #0 mov ip, lr, asl r2 @@ -20827,7 +21030,7 @@ HynixGetReadRetryDefault: mov sl, #16 str r3, [sp, #4] str sl, [sp, #20] -.L2358: +.L2370: ldr r3, [sp, #56] ldr r3, [r3, r0] and sl, ip, r3 @@ -20838,13 +21041,13 @@ HynixGetReadRetryDefault: subs r3, r3, #1 add r0, r0, sl str r3, [sp, #20] - bne .L2358 + bne .L2370 cmp lr, #8 add r2, r2, #1 orrhi r1, r1, ip cmp r2, #32 ldr r3, [sp, #4] - bne .L2360 + bne .L2372 ldr ip, [sp, #16] ldr r2, [sp, #24] add ip, ip, #1 @@ -20853,50 +21056,50 @@ HynixGetReadRetryDefault: str ip, [sp, #16] str r1, [sl, r3] add r3, r3, #4 - bge .L2361 -.L2356: - ldr sl, .L2403+12 + bge .L2373 +.L2368: + ldr sl, .L2415+12 mov r1, #0 mov r2, r1 ldr sl, [sl, #144] add ip, sl, r3 str ip, [sp, #56] str sl, [sp, #44] - b .L2360 -.L2361: - ldr r3, .L2403+12 + b .L2372 +.L2373: + ldr r3, .L2415+12 ldr sl, [sp, #60] ldr r1, [r3, #144] mov r3, #0 mov r2, r3 -.L2363: +.L2375: ldr r0, [r1, r3] add r3, r3, #4 cmp r0, #0 addeq r2, r2, #1 cmp r3, #32 - bne .L2363 + bne .L2375 cmp r2, #7 - ble .L2364 - ldr r0, .L2403+20 + ble .L2376 + ldr r0, .L2415+20 mov r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L2403+16 + ldr r0, .L2415+16 mov r1, #0 bl printk -.L2365: - b .L2365 -.L2364: +.L2377: + b .L2377 +.L2376: cmp r4, #6 moveq r0, #4 streq r0, [sp, #16] - beq .L2366 + beq .L2378 cmp r4, #7 moveq lr, #10 movne lr, #8 str lr, [sp, #16] -.L2366: +.L2378: cmp r5, #0 ldr r0, [sp, #40] subne r3, r5, #1 @@ -20907,14 +21110,14 @@ HynixGetReadRetryDefault: ldr r1, [sp, #28] addne r3, r3, #1 strne r3, [sp, #20] - b .L2369 -.L2370: + b .L2381 +.L2382: ldrb lr, [ip], #1 @ zero_extendqisi2 strb lr, [r1, r3] add r3, r3, #1 uxtb lr, r3 cmp lr, r5 - bcc .L2370 + bcc .L2382 ldr r3, [sp, #20] add r2, r2, #1 ldr ip, [sp, #16] @@ -20922,12 +21125,12 @@ HynixGetReadRetryDefault: ldr r3, [sp, #48] add r1, r1, ip cmp r2, r3 - bge .L2371 -.L2369: + bge .L2383 +.L2381: mov ip, r0 mov r3, #0 - b .L2370 -.L2371: + b .L2382 +.L2383: mov r3, #255 mov r0, r6 str r3, [r8, #8] @@ -20936,10 +21139,10 @@ HynixGetReadRetryDefault: cmp ip, #1 movhi r3, #56 strhi r3, [r8, #8] - bhi .L2373 + bhi .L2385 mov r3, #54 str r3, [r8, #8] - ldr r3, .L2403 + ldr r3, .L2415 mov r0, sl mvn r1, #0 ldrb r3, [r3, #4] @ zero_extendqisi2 @@ -20948,36 +21151,36 @@ HynixGetReadRetryDefault: str r7, [r9, fp, asl #8] str r3, [r8, #8] bl FlashReadCmd -.L2373: +.L2385: mov r0, r6 add sl, sl, #1 bl NandcWaitFlashReady uxtb sl, sl -.L2333: - ldr r1, .L2403 +.L2345: + ldr r1, .L2415 ldrb r3, [r1, #3762] @ zero_extendqisi2 cmp r3, sl - bhi .L2374 + bhi .L2386 ldr r6, [sp, #48] -.L2332: - ldr r3, .L2403 +.L2344: + ldr r3, .L2415 strb r5, [r3, #1] strb r6, [r3, #2] add sp, sp, #68 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2402: - ldr r0, .L2403+16 +.L2414: + ldr r0, .L2415+16 bl printk - b .L2352 -.L2404: + b .L2364 +.L2416: .align 2 -.L2403: +.L2415: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR1+2944 + .word .LANCHOR1+3008 .word .LANCHOR2 - .word .LC138 - .word .LC139 + .word .LC142 + .word .LC143 .fnend .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 @@ -20993,15 +21196,15 @@ FlashGetReadRetryDefault: ldmeqfd sp!, {r3, pc} sub r2, r3, #1 cmp r2, #6 - bhi .L2407 + bhi .L2419 ldmfd sp!, {r3, lr} b HynixGetReadRetryDefault -.L2407: +.L2419: cmp r3, #49 - bne .L2408 - ldr r0, .L2409 + bne .L2420 + ldr r0, .L2421 mov r2, #64 - ldr r1, .L2409+4 + ldr r1, .L2421+4 strb r3, [r0, #0] mov r3, #4 strb r3, [r0, #1] @@ -21010,14 +21213,14 @@ FlashGetReadRetryDefault: add r0, r0, #4 bl memcpy ldmfd sp!, {r3, pc} -.L2408: +.L2420: ldmfd sp!, {r3, lr} - b FlashGetReadRetryDefault.part.27 -.L2410: + b FlashGetReadRetryDefault.part.25 +.L2422: .align 2 -.L2409: +.L2421: .word .LANCHOR0 - .word .LANCHOR1+2860 + .word .LANCHOR1+2924 .fnend .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault .align 2 @@ -21031,9 +21234,9 @@ FlashInit: .save {r4, r5, r6, r7, r8, lr} mov r7, r0 mov r0, #32768 - ldr r5, .L2459 + ldr r5, .L2474 bl ftl_malloc - ldr r6, .L2459+4 + ldr r6, .L2474+4 mov r4, #0 str r0, [r5, #144] mov r0, #32768 @@ -21061,148 +21264,161 @@ FlashInit: str r0, [r5, #220] mov r0, r7 bl NandcInit - ldr r5, .L2459+8 + ldr r5, .L2474+8 mov r7, #44 -.L2415: +.L2427: uxtb r0, r4 mov r1, r5 bl FlashReadIDRaw cmp r4, #0 - bne .L2412 + bne .L2424 ldrb r3, [r6, #2980] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L2451 + bhi .L2465 ldrb r3, [r6, #2981] @ zero_extendqisi2 cmp r3, #255 - beq .L2452 -.L2412: + beq .L2466 +.L2424: 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 .L2415 - ldr r4, .L2459+4 + bne .L2427 + ldr r4, .L2474+4 ldrb r3, [r4, #2980] @ zero_extendqisi2 cmp r3, #173 - beq .L2416 + beq .L2428 ldr r0, [r4, #3776] bl NandcSetDdrMode -.L2416: +.L2428: + ldr r5, .L2474+4 mov r1, #0 - ldr r0, .L2459+4 mov r2, #852 + mov r0, r5 bl ftl_memset - ldr r3, .L2459+12 + ldr r3, .L2474+12 str r3, [r4, #3624] mov r3, #0 strb r3, [r4, #860] ldrb r3, [r4, #2981] @ zero_extendqisi2 - sub r1, r3, #218 - rsbs lr, r1, #0 - adc lr, lr, r1 - cmp r3, #218 + cmp r3, #161 cmpne r3, #241 - beq .L2417 + beq .L2429 + cmp r3, #218 + beq .L2429 + cmp r3, #209 + beq .L2429 cmp r3, #220 - bne .L2418 -.L2417: - ldr r2, .L2459+4 + bne .L2430 + ldrb r2, [r5, #2983] @ zero_extendqisi2 + cmp r2, #149 + bne .L2430 +.L2429: + ldr r2, .L2474+4 mov r1, #1 - ldr r0, .L2459 - ldrb ip, [r2, #2980] @ zero_extendqisi2 + mov r0, #16 + ldr ip, .L2474+16 strb r1, [r2, #852] - mov r1, #16 - strb r1, [r2, #853] - cmp ip, #152 - strb r1, [r0, #148] - ldr r1, .L2459+16 - strb ip, [r1, #2973] - bne .L2419 - ldrb r2, [r2, #2984] @ zero_extendqisi2 - sxtb r2, r2 - cmp r2, #0 - movge r2, #24 - strgeb r2, [r0, #148] -.L2419: - cmp lr, #0 - beq .L2420 - movw r3, #2986 - mov r2, #2048 - strh r2, [r1, r3] @ movhi - mvn r3, #37 - strb r3, [r1, #2974] - b .L2421 -.L2420: + ldr r1, .L2474 + strb r0, [r2, #853] + strb r3, [ip, #3038] + strb r0, [r1, #148] + ldrb r0, [r2, #2980] @ zero_extendqisi2 + cmp r0, #152 + strb r0, [ip, #3037] + bne .L2431 + ldrb r0, [r2, #2984] @ zero_extendqisi2 + sxtb r0, r0 + cmp r0, #0 + movge r0, #24 + strgeb r0, [r1, #148] +.L2431: + ldr r1, [r2, #3784] + ldr r2, .L2474+20 + cmp r1, r2 + ldreq r2, .L2474 + moveq r1, #16 + streqb r1, [r2, #148] + cmp r3, #218 + bne .L2433 + ldr r3, .L2474+16 + movw r2, #3050 + mov r1, #2048 + strh r1, [r3, r2] @ movhi + mvn r2, #37 + b .L2471 +.L2433: cmp r3, #220 - bne .L2421 - ldr r3, .L2459+16 - movw r2, #2986 + bne .L2434 + ldr r3, .L2474+16 + movw r2, #3050 mov r1, #4096 strh r1, [r3, r2] @ movhi mvn r2, #35 - strb r2, [r3, #2974] -.L2421: - ldr r1, .L2459+20 +.L2471: + strb r2, [r3, #3038] +.L2434: + ldr r1, .L2474+24 mov r2, #32 - ldr r0, .L2459+24 + ldr r0, .L2474+28 bl memcpy - ldr r0, .L2459+12 + ldr r0, .L2474+12 mov r2, #32 add r1, r0, #144 bl memcpy -.L2418: - ldr r4, .L2459+4 +.L2430: + ldr r4, .L2474+4 ldrb r3, [r4, #852] @ zero_extendqisi2 cmp r3, #0 - bne .L2422 + bne .L2435 bl FlashLoadPhyInfoInRam cmp r0, #0 - bne .L2423 + bne .L2436 ldr r3, [r4, #3624] ldrh r0, [r3, #16] ubfx r0, r0, #8, #3 strb r0, [r4, #3772] tst r0, #1 - bne .L2423 + bne .L2436 mov r3, #1 strb r3, [r4, #3773] bl FlashSetInterfaceMode ldrb r0, [r4, #3772] @ zero_extendqisi2 bl NandcSetMode -.L2423: - ldr r4, .L2459+4 +.L2436: + ldr r4, .L2474+4 ldr r3, [r4, #3624] ldrb r3, [r3, #26] @ zero_extendqisi2 strb r3, [r4, #928] bl FlashLoadPhyInfo cmp r0, #0 - beq .L2422 + beq .L2435 ldr r3, [r4, #3776] cmp r3, #0 - beq .L2425 + beq .L2438 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 - b .L2457 -.L2425: + b .L2472 +.L2438: ldrb r0, [r4, #3772] @ zero_extendqisi2 bl FlashSetInterfaceMode ldrb r0, [r4, #3772] @ zero_extendqisi2 -.L2457: +.L2472: bl NandcSetMode bl FlashLoadPhyInfo cmp r0, #0 - beq .L2422 - ldr r4, .L2459+4 + beq .L2435 + ldr r4, .L2474+4 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - ldr r0, .L2459+28 + ldr r0, .L2474+32 ldr r3, [r4, #3624] ldrh r1, [r3, #14] bl printk @@ -21213,38 +21429,38 @@ FlashInit: ldr r3, [r4, #3624] ldrb r0, [r3, #19] @ zero_extendqisi2 bl FlashGetReadRetryDefault - ldr r1, .L2459+32 - ldr r0, .L2459 + ldr r1, .L2474+36 + ldr r0, .L2474 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 .L2428 + blt .L2441 ldrh r1, [r3, #14] add r1, r1, #255 cmp r2, r1, lsr #8 - bge .L2429 -.L2428: + bge .L2442 +.L2441: ldrh r2, [r3, #14] bic r2, r2, #255 strh r2, [r3, #14] @ movhi -.L2429: - ldr r3, .L2459+4 +.L2442: + ldr r3, .L2474+4 ldrb r3, [r3, #3772] @ zero_extendqisi2 tst r3, #6 - beq .L2430 + beq .L2443 bl FlashSavePhyInfo - ldr r3, .L2459 + ldr r3, .L2474 mov r0, #0 ldr r1, [r3, #156] bl FlashDdrParaScan -.L2430: +.L2443: bl FlashSavePhyInfo -.L2422: - ldr r4, .L2459+4 - ldr r5, .L2459 +.L2435: + ldr r4, .L2474+4 + ldr r5, .L2474 ldr r3, [r4, #3624] ldrb r2, [r3, #26] @ zero_extendqisi2 ldrh r0, [r3, #10] @@ -21270,7 +21486,7 @@ FlashInit: ldr r3, [r4, #3624] ldrh r2, [r3, #16] tst r2, #64 - beq .L2431 + beq .L2444 ldrb r0, [r3, #19] @ zero_extendqisi2 ldrb r3, [r4, #1] @ zero_extendqisi2 strb r0, [r4, #3761] @@ -21280,77 +21496,77 @@ FlashInit: sub r3, r0, #1 uxtb r3, r3 cmp r3, #6 - bhi .L2432 - ldr r3, .L2459+36 + bhi .L2445 + ldr r3, .L2474+40 str r3, [r5, #168] sub r3, r0, #5 uxtb r3, r3 cmp r3, #1 movls r3, #1 strls r3, [r4, #3824] - bls .L2434 + bls .L2447 cmp r0, #7 addeq r4, r4, #28 - beq .L2435 -.L2434: - ldr r4, .L2459+40 -.L2435: + beq .L2448 +.L2447: + ldr r4, .L2474+44 +.L2448: mov r3, #0 mov r2, r3 -.L2437: +.L2450: ldrsb r1, [r4, r2] add r2, r2, #1 cmp r1, #0 addeq r3, r3, #1 cmp r2, #32 - bne .L2437 + bne .L2450 cmp r3, #27 - bls .L2431 + bls .L2444 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L2431 -.L2432: + b .L2444 +.L2445: sub r3, r0, #17 uxtb r3, r3 cmp r3, #2 - bhi .L2438 - ldr r3, .L2459+44 + bhi .L2451 + ldr r3, .L2474+48 cmp r0, #19 str r3, [r5, #168] mov r3, #7 strb r3, [r5, #136] moveq r3, #15 streqb r3, [r5, #136] - b .L2431 -.L2438: + b .L2444 +.L2451: cmp r0, #33 cmpne r0, #65 - beq .L2439 + beq .L2452 cmp r0, #66 - bne .L2440 -.L2439: - ldr r3, .L2459 + bne .L2453 +.L2452: + ldr r3, .L2474 mov r1, #4 - ldr r2, .L2459+48 + ldr r2, .L2474+52 str r2, [r3, #168] - ldr r2, .L2459+4 + ldr r2, .L2474+4 strb r1, [r2, #3760] mov r2, #7 strb r2, [r3, #136] - b .L2431 -.L2440: + b .L2444 +.L2453: cmp r0, #67 cmpne r0, #34 - beq .L2441 + beq .L2454 cmp r0, #35 - beq .L2441 + beq .L2454 cmp r0, #68 - bne .L2442 -.L2441: - ldr r3, .L2459 + bne .L2455 +.L2454: + ldr r3, .L2474 cmp r0, #35 cmpne r0, #68 - ldr r2, .L2459+48 + ldr r2, .L2474+52 sub r0, r0, #67 uxtb r0, r0 str r2, [r3, #168] @@ -21359,59 +21575,68 @@ FlashInit: moveq r2, #17 streqb r2, [r3, #136] cmp r0, #1 - ldr r3, .L2459+4 + ldr r3, .L2474+4 movls r2, #4 movhi r2, #5 strb r2, [r3, #3760] - b .L2431 -.L2442: + b .L2444 +.L2455: cmp r0, #49 - ldreq r3, .L2459+52 + ldreq r3, .L2474+56 streq r3, [r5, #168] -.L2431: - ldr r3, .L2459+4 - ldr r2, .L2459+56 +.L2444: + ldr r2, .L2474+4 + ldr r3, .L2474+20 + ldr r1, [r2, #3784] + cmp r1, r3 + bne .L2458 + ldrb r3, [r2, #928] @ zero_extendqisi2 + cmp r3, #0 + ldrne r3, [r2, #3624] + movne r1, #0 + strneb r1, [r3, #18] +.L2458: + ldrb r2, [r2, #2980] @ zero_extendqisi2 + ldr r3, .L2474+4 + cmp r2, #44 + bne .L2459 + ldrb r2, [r3, #3773] @ zero_extendqisi2 + cmp r2, #0 + beq .L2459 ldr r1, [r3, #3784] + ldr r2, .L2474+20 cmp r1, r2 - bne .L2445 - ldrb r2, [r3, #928] @ zero_extendqisi2 - cmp r2, #0 - ldrne r2, [r3, #3624] - movne r1, #0 - strneb r1, [r2, #18] -.L2445: - ldrb r3, [r3, #2980] @ zero_extendqisi2 - ldr r2, .L2459+4 - cmp r3, #44 - bne .L2446 - ldrb r3, [r2, #3773] @ zero_extendqisi2 + bne .L2460 + ldrb r3, [r3, #928] @ zero_extendqisi2 cmp r3, #0 - beq .L2446 - mov r3, #0 + bne .L2459 +.L2460: + ldr r3, .L2474+4 + mov r2, #0 mov r0, #1 - strb r3, [r2, #3773] + strb r2, [r3, #3773] bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode -.L2446: +.L2459: mov r0, #0 bl flash_enter_slc_mode - ldr r2, .L2459+4 + ldr r2, .L2474+4 ldrb r3, [r2, #3772] @ zero_extendqisi2 tst r3, #6 - beq .L2447 + beq .L2461 ldrb r2, [r2, #3773] @ zero_extendqisi2 cmp r2, #0 - bne .L2448 + bne .L2462 tst r3, #1 - bne .L2447 -.L2448: - ldr r3, .L2459 + bne .L2461 +.L2462: + ldr r3, .L2474 mov r0, #0 ldr r1, [r3, #156] bl FlashDdrParaScan -.L2447: - ldr r4, .L2459+4 +.L2461: + ldr r4, .L2474+4 mov r0, #0 bl flash_exit_slc_mode mov r8, #16 @@ -21421,7 +21646,7 @@ FlashInit: bl FlashBchSel add r0, r4, #932 bl FlashReadIdbDataRaw - ldr r0, .L2459+60 + ldr r0, .L2474+60 strb r8, [r4, #853] bl FlashTimingCfg ldr r5, [r4, #3624] @@ -21465,7 +21690,7 @@ FlashInit: ldrb lr, [r4, #852] @ zero_extendqisi2 strh r1, [r4, r2] @ movhi cmp lr, #1 - bne .L2450 + bne .L2464 mov r7, r7, lsr #1 mov ip, ip, asl #1 mov r1, r1, asl #1 @@ -21475,36 +21700,36 @@ FlashInit: strh r7, [r4, r6] @ movhi strh ip, [r4, r0] @ movhi strh r2, [r4, r3] @ movhi -.L2450: +.L2464: ldrb r0, [r5, #20] @ zero_extendqisi2 bl FlashBchSel - bl FlashSuspend + bl ftl_flash_suspend mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2451: +.L2465: mvn r0, #1 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2452: +.L2466: mvn r0, #1 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2460: +.L2475: .align 2 -.L2459: +.L2474: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+2980 - .word .LANCHOR1+2828 + .word .LANCHOR1+2892 .word .LANCHOR1 - .word .LANCHOR1+2732 + .word 1446522928 + .word .LANCHOR1+2796 .word .LANCHOR0+896 - .word .LC140 + .word .LC144 .word -898 .word HynixReadRetrial .word .LANCHOR0+20 .word MicronReadRetrial .word ToshibaReadRetrial .word SamsungReadRetrial - .word 1446522928 .word 150000 .fnend .size FlashInit, .-FlashInit @@ -21519,7 +21744,7 @@ rk_ftl_init: .save {r3, r4, r5, lr} mov r0, #2048 bl ftl_malloc - ldr r4, .L2465 + ldr r4, .L2480 mov r5, #0 add r1, r4, #460 str r5, [r4, #128] @@ -21530,7 +21755,7 @@ rk_ftl_init: ldr r3, [r4, #128] cmp r3, r5 mvneq r4, #0 - beq .L2462 + beq .L2477 bl rk_nandc_irq_init ldr r0, [r4, #456] mov r1, r5 @@ -21541,22 +21766,20 @@ rk_ftl_init: ldr r0, [r4, #128] bl FlashInit subs r4, r0, #0 - bne .L2463 - ldr r0, .L2465+4 + bne .L2478 bl FtlInit -.L2463: - ldr r0, .L2465+8 +.L2478: + ldr r0, .L2480+4 mov r1, r4 bl printk -.L2462: +.L2477: mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L2466: +.L2481: .align 2 -.L2465: +.L2480: .word .LANCHOR2 - .word .LANCHOR0+3048 - .word .LC141 + .word .LC145 .fnend .size rk_ftl_init, .-rk_ftl_init .align 2 @@ -21566,7 +21789,7 @@ FtlReInitForSDUpdata: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2492 + ldr r3, .L2507 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} .pad #20 @@ -21574,22 +21797,22 @@ FtlReInitForSDUpdata: ldrb r4, [r3, #928] @ zero_extendqisi2 cmp r4, #0 movne r0, #0 - bne .L2468 - ldr r5, .L2492+4 + bne .L2483 + ldr r5, .L2507+4 ldr r0, [r5, #128] bl FlashInit cmp r0, #0 movne r0, r4 - bne .L2468 + bne .L2483 bl FlashLoadFactorBbt cmp r0, #0 - beq .L2469 + beq .L2484 bl FlashMakeFactorBbt -.L2469: +.L2484: ldr r0, [r5, #132] bl FlashReadIdbDataRaw cmp r0, #0 - beq .L2470 + beq .L2485 mov r1, #0 mov r2, #16 mov r0, sp @@ -21598,77 +21821,77 @@ FtlReInitForSDUpdata: mov r3, #0 mov r0, #1 mov r2, r3 -.L2472: +.L2487: ands ip, r1, r0, asl r2 add r2, r2, #1 addne r3, r3, #1 cmp r2, #16 - bne .L2472 + bne .L2487 cmp r3, #6 - ldrls r3, .L2492 - bls .L2488 + ldrls r3, .L2507 + bls .L2503 mov r2, #0 mov r0, #1 -.L2473: +.L2488: ands ip, r1, r0, asl r2 add r2, r2, #1 addne r3, r3, #1 cmp r2, #24 - bne .L2473 + bne .L2488 cmp r3, #17 - ldr r3, .L2492 + ldr r3, .L2507 movhi r2, #36 -.L2488: +.L2503: strb r2, [r3, #853] movw r2, #3074 - ldr r3, .L2492 + ldr r3, .L2507 ldrb r1, [r3, #853] @ zero_extendqisi2 strh r1, [r3, r2] @ movhi -.L2470: - ldr r1, .L2492+8 +.L2485: + ldr r1, .L2507+8 mov r4, #1 - ldr r0, .L2492+12 + ldr r0, .L2507+12 bl printk - ldr r0, .L2492+16 + ldr r0, .L2507+16 bl FtlConstantsInit bl FtlVariablesInit - ldr r3, .L2492 - ldr r0, [r3, #3844] + ldr r3, .L2507 + ldr r0, [r3, #3848] uxth r0, r0 bl FtlFreeSysBlkQueueInit - b .L2477 -.L2479: + b .L2492 +.L2494: add r4, r4, #1 -.L2477: +.L2492: bl FtlLoadBbt cmp r0, #0 - bne .L2490 -.L2478: + bne .L2505 +.L2493: bl FtlSysBlkInit cmp r0, #0 - beq .L2480 -.L2490: + beq .L2495 +.L2505: bl FtlLowFormat cmp r4, #3 - bls .L2479 - b .L2491 -.L2480: - ldr r3, .L2492+20 + bls .L2494 + b .L2506 +.L2495: + ldr r3, .L2507+20 mov r2, #1 - str r2, [r3, #2932] - b .L2468 -.L2491: + str r2, [r3, #2996] + b .L2483 +.L2506: mvn r0, #0 -.L2468: +.L2483: add sp, sp, #20 ldmfd sp!, {r4, r5, pc} -.L2493: +.L2508: .align 2 -.L2492: +.L2507: .word .LANCHOR0 .word .LANCHOR2 - .word .LC76 - .word .LC75 + .word .LC79 + .word .LC78 .word .LANCHOR0+3048 .word .LANCHOR1 .fnend @@ -21681,15 +21904,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, .L2496 + ldr r3, .L2511 ldr r2, [r3, #3784] - ldr r3, .L2496+4 + ldr r3, .L2511+4 cmp r2, r3 bxne lr b flash_enter_slc_mode -.L2497: +.L2512: .align 2 -.L2496: +.L2511: .word .LANCHOR0 .word 1446522928 .fnend @@ -21702,15 +21925,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, .L2500 + ldr r3, .L2515 ldr r2, [r3, #3784] - ldr r3, .L2500+4 + ldr r3, .L2515+4 cmp r2, r3 bxne lr b flash_exit_slc_mode -.L2501: +.L2516: .align 2 -.L2500: +.L2515: .word .LANCHOR0 .word 1446522928 .fnend @@ -21726,15 +21949,15 @@ IdBlockReadData: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #28 sub sp, sp, #28 - ldr r4, .L2507 + ldr r4, .L2522 mov r6, r0 str r2, [sp, #20] mov sl, r1 - ldr r0, .L2507+4 + ldr r0, .L2522+4 mov r1, r6 ldr r2, [r4, #3624] ldr r3, [r4, #856] - ldr r8, .L2507+8 + ldr r8, .L2522+8 ldrb r5, [r2, #9] @ zero_extendqisi2 mov r2, sl mul r5, r5, r3 @@ -21751,8 +21974,8 @@ IdBlockReadData: mov r7, r1 str ip, [sp, #12] ubfx r2, r2, #2, #2 - b .L2503 -.L2505: + b .L2518 +.L2520: add r1, r5, r7 rsb r3, r2, #4 ubfx r1, r1, #2, #16 @@ -21764,12 +21987,12 @@ IdBlockReadData: add r3, r3, #3072 add r3, r3, #4 ldrh r3, [r3, #0] - beq .L2504 + beq .L2519 ldr r0, [r4, #3784] - ldr ip, .L2507+12 + ldr ip, .L2522+12 cmp r0, ip moveq r3, r1 -.L2504: +.L2519: ldr ip, [sp, #12] ldrb r0, [r8, #148] @ zero_extendqisi2 add r2, r2, ip @@ -21806,25 +22029,25 @@ IdBlockReadData: mov r2, #0 add r5, ip, r5 uxth r5, r5 -.L2503: +.L2518: cmp r5, sl - bcc .L2505 + bcc .L2520 mov r1, r6 mov r2, sl mov r3, #0 - ldr r0, .L2507+16 + ldr r0, .L2522+16 bl printk mov r0, #0 add sp, sp, #28 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2508: +.L2523: .align 2 -.L2507: +.L2522: .word .LANCHOR0 - .word .LC142 + .word .LC146 .word .LANCHOR2 .word 1446522928 - .word .LC143 + .word .LC147 .fnend .size IdBlockReadData, .-IdBlockReadData .align 2 @@ -21838,16 +22061,16 @@ IDBlockWriteData: .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} .pad #92 sub sp, sp, #92 - ldr r4, .L2516 + ldr r4, .L2531 mov r5, r0 str r2, [sp, #20] mov r8, r1 - ldr r0, .L2516+4 + ldr r0, .L2531+4 mov r1, r5 ldr r2, [r4, #3624] mov r7, r5 ldr r3, [r4, #856] - ldr fp, .L2516+8 + ldr fp, .L2531+8 ldrb r6, [r2, #9] @ zero_extendqisi2 mov r2, r8 mul r6, r6, r3 @@ -21874,12 +22097,12 @@ IDBlockWriteData: mov r9, r1 rsb r1, r1, r5 str r1, [sp, #16] - b .L2510 -.L2514: + b .L2525 +.L2529: add r3, r6, r9 ubfx r3, r3, #2, #16 cmp r3, #0 - beq .L2511 + beq .L2526 add r1, r3, #1 ldrb r0, [r4, #928] @ zero_extendqisi2 add r2, r4, r1, asl #1 @@ -21887,33 +22110,33 @@ IDBlockWriteData: add r2, r2, #3072 add r2, r2, #4 ldrh r2, [r2, #0] - beq .L2512 + beq .L2527 ldr r0, [r4, #3784] cmp r0, fp uxtheq r2, r1 -.L2512: +.L2527: sub r2, r2, #1 mov r2, r2, asl #2 str r2, [sp, #24] mov r2, #0 str r2, [sp, #28] -.L2511: +.L2526: add r2, r4, r3, asl #1 add r2, r2, #3072 ldrh r5, [r2, #4] ldrb r2, [r4, #928] @ zero_extendqisi2 cmp r2, #0 - beq .L2513 + beq .L2528 ldr r2, [r4, #3784] cmp r2, fp moveq r5, r3 -.L2513: +.L2528: ldr r2, [sp, #16] ldr r1, [sp, #20] ldrb ip, [r4, #3832] @ zero_extendqisi2 mla r3, sl, r5, r2 add r2, r1, r6, asl #9 - ldr r1, .L2516+12 + ldr r1, .L2531+12 add r6, r6, #4 uxth r6, r6 ldrb r0, [r1, #148] @ zero_extendqisi2 @@ -21946,26 +22169,26 @@ IDBlockWriteData: mov r1, r0 mov r0, #0 bl FlashPageProgMsbFFData -.L2510: +.L2525: cmp r6, r8 - bcc .L2514 + bcc .L2529 mov r1, r7 mov r2, r8 mov r3, #0 - ldr r0, .L2516+16 + ldr r0, .L2531+16 bl printk mov r5, r7 mov r0, #0 add sp, sp, #92 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2517: +.L2532: .align 2 -.L2516: +.L2531: .word .LANCHOR0 - .word .LC144 + .word .LC148 .word 1446522928 .word .LANCHOR2 - .word .LC145 + .word .LC149 .fnend .size IDBlockWriteData, .-IDBlockWriteData .align 2 @@ -21975,7 +22198,7 @@ write_idblock: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2531 + ldr r3, .L2546 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov r7, r2 @@ -21993,20 +22216,20 @@ write_idblock: bl ftl_malloc subs r5, r0, #0 mvneq r0, #0 - beq .L2519 + beq .L2534 add sl, r6, #508 add sl, sl, #3 mov sl, sl, lsr #9 cmp sl, #255 - bhi .L2520 + bhi .L2535 add r0, r4, sl, asl #9 mov r1, r4 rsb r2, sl, #256 bl memcpy -.L2520: - ldr r8, .L2531 +.L2535: + ldr r8, .L2546 mov r3, #5 - ldr r0, .L2531+4 + ldr r0, .L2546+4 mov r1, r7 mov r2, #4 add sl, sl, #128 @@ -22015,13 +22238,13 @@ write_idblock: ldr r1, [r4, #512] cmp sl, #256 movcs sl, #256 - ldr r0, .L2531+8 + ldr r0, .L2546+8 mov fp, #0 bl printk ldrb r3, [r8, #853] @ zero_extendqisi2 ldr r2, [r4, #512] mov r1, sl - ldr r0, .L2531+12 + ldr r0, .L2546+12 mov r9, fp cmp r2, r3 mov r8, r4 @@ -22031,17 +22254,17 @@ write_idblock: bl printk mov r1, sl, asl #7 str r1, [sp, #12] -.L2526: - ldr r1, .L2531 +.L2541: + ldr r1, .L2546 movw r2, #3074 ldr r3, [r6], #4 ldrh r2, [r1, r2] cmp r3, r2 - bcs .L2522 - ldr r2, .L2531+16 + bcs .L2537 + ldr r2, .L2546+16 ldr r2, [r2, #152] cmp r3, r2 - bcc .L2522 + bcc .L2537 mov r0, r5 mov r1, #512 bl __memzero @@ -22059,29 +22282,29 @@ write_idblock: bl IdBlockReadData mov r3, #0 mov r7, r3 -.L2525: +.L2540: ldr r1, [r5, r3] add r3, r3, #4 add r2, r8, r3 ldr r2, [r2, #-4] cmp r1, r2 - beq .L2523 + beq .L2538 bic r4, r7, #255 stmia sp, {r1, r2} mov r3, r7 mov r1, r9 ldr r2, [r6, #-4] mov r4, r4, asl #2 - ldr r0, .L2531+20 + ldr r0, .L2546+20 bl printk - ldr r0, .L2531+24 + ldr r0, .L2546+24 add r1, r8, r4 mov r2, #4 mov r3, #256 bl rknand_print_hex mov r3, #256 mov r2, #4 - ldr r0, .L2531+28 + ldr r0, .L2546+28 add r1, r5, r4 bl rknand_print_hex mov r0, r5 @@ -22093,43 +22316,43 @@ write_idblock: mul r0, r0, r1 mov r1, #4 bl IDBlockWriteData - ldr r0, .L2531+32 + ldr r0, .L2546+32 bl printk ldr r2, [sp, #12] cmp r7, r2 - bcc .L2522 - b .L2524 -.L2523: + bcc .L2537 + b .L2539 +.L2538: ldr r1, [sp, #12] add r7, r7, #1 cmp r7, r1 - bne .L2525 -.L2524: + bne .L2540 +.L2539: add fp, fp, #1 -.L2522: +.L2537: add r9, r9, #1 cmp r9, #5 - bne .L2526 + bne .L2541 mov r0, r5 bl ftl_free cmp fp, #0 mvneq r0, #0 movne r0, #0 -.L2519: +.L2534: add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2532: +.L2547: .align 2 -.L2531: +.L2546: .word .LANCHOR0 - .word .LC146 - .word .LC147 - .word .LC148 - .word .LANCHOR2 - .word .LC149 .word .LC150 .word .LC151 .word .LC152 + .word .LANCHOR2 + .word .LC153 + .word .LC154 + .word .LC155 + .word .LC156 .fnend .size write_idblock, .-write_idblock .align 2 @@ -22144,22 +22367,22 @@ CRC_32: stmfd sp!, {r4, lr} .save {r4, lr} mov r2, r0 - ldr ip, .L2536 - b .L2534 -.L2535: + ldr ip, .L2551 + b .L2549 +.L2550: 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, #3004] + ldr r4, [r4, #3068] eor r0, r4, r0, asl #8 -.L2534: +.L2549: cmp r2, r1 - bne .L2535 + bne .L2550 ldmfd sp!, {r4, pc} -.L2537: +.L2552: .align 2 -.L2536: +.L2551: .word .LANCHOR1 .fnend .size CRC_32, .-CRC_32 @@ -22170,7 +22393,7 @@ rknand_sys_storage_ioctl: .fnstart @ args = 0, pretend = 0, frame = 528 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2654 + ldr r3, .L2668 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} cmp r1, r3 @@ -22178,102 +22401,102 @@ rknand_sys_storage_ioctl: sub sp, sp, #528 mov r5, r1 mov r4, r2 - beq .L2547 - bhi .L2556 - ldr r3, .L2654+4 + beq .L2562 + bhi .L2571 + ldr r3, .L2668+4 cmp r1, r3 - beq .L2544 - bhi .L2557 + beq .L2559 + bhi .L2572 sub r3, r3, #125 cmp r1, r3 - beq .L2541 - bhi .L2558 + beq .L2556 + bhi .L2573 sub r3, r3, #237 cmp r1, r3 - bne .L2599 - b .L2650 -.L2558: - ldr r3, .L2654+8 + bne .L2614 + b .L2664 +.L2573: + ldr r3, .L2668+8 cmp r1, r3 - beq .L2542 + beq .L2557 add r3, r3, #1 cmp r1, r3 - bne .L2599 - b .L2651 -.L2557: - ldr r3, .L2654+12 + bne .L2614 + b .L2665 +.L2572: + ldr r3, .L2668+12 cmp r1, r3 - beq .L2546 - bhi .L2559 - ldr r3, .L2654+16 + beq .L2561 + bhi .L2574 + ldr r3, .L2668+16 cmp r1, r3 - bne .L2599 - b .L2652 -.L2559: - ldr r3, .L2654+20 + bne .L2614 + b .L2666 +.L2574: + ldr r3, .L2668+20 cmp r1, r3 - beq .L2546 + beq .L2561 add r3, r3, #10 cmp r1, r3 - bne .L2599 - b .L2546 -.L2556: - ldr r3, .L2654+24 + bne .L2614 + b .L2561 +.L2571: + ldr r3, .L2668+24 cmp r1, r3 - beq .L2552 - bhi .L2560 + beq .L2567 + bhi .L2575 sub r3, r3, #78 cmp r1, r3 - beq .L2549 - bcc .L2548 + beq .L2564 + bcc .L2563 add r3, r3, #21 cmp r1, r3 - beq .L2550 + beq .L2565 add r3, r3, #56 cmp r1, r3 - bne .L2599 - b .L2653 -.L2560: - ldr r3, .L2654+28 + bne .L2614 + b .L2667 +.L2575: + ldr r3, .L2668+28 cmp r1, r3 - beq .L2555 - bhi .L2561 + beq .L2570 + bhi .L2576 sub r3, r3, #956 sub r3, r3, #1 cmp r1, r3 - beq .L2553 + beq .L2568 add r3, r3, #956 cmp r1, r3 - bne .L2599 - b .L2554 -.L2561: - ldr r3, .L2654+32 + bne .L2614 + b .L2569 +.L2576: + ldr r3, .L2668+32 cmp r1, r3 - beq .L2554 + beq .L2569 add r3, r3, #1 cmp r1, r3 - bne .L2599 - b .L2555 -.L2548: - ldr r0, .L2654+36 + bne .L2614 + b .L2570 +.L2563: + ldr r0, .L2668+36 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2607 + beq .L2621 mov r1, r4 mov r2, #512 bl rk_copy_from_user cmp r0, #0 - bne .L2649 -.L2562: - ldr r0, .L2654+40 + bne .L2663 +.L2577: + ldr r0, .L2668+40 ldmia r5, {r1, r2} bl printk ldr r3, [r5, #4] cmp r3, #8 str r3, [sp, #4] - bhi .L2570 + bhi .L2585 bl rknand_device_lock ldr r1, [sp, #4] mov r2, r5 @@ -22286,90 +22509,90 @@ rknand_sys_storage_ioctl: mov r2, r2, asl #9 bl rk_copy_to_user cmp r0, #0 - beq .L2635 - ldr r0, .L2654+44 -.L2648: + beq .L2649 + ldr r0, .L2668+44 +.L2662: bl printk - b .L2570 -.L2549: - ldr r0, .L2654+48 + b .L2585 +.L2564: + ldr r0, .L2668+48 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2607 + beq .L2621 mov r1, r4 mov r2, #4096 bl rk_copy_from_user cmp r0, #0 - bne .L2649 -.L2566: - ldr r4, .L2654+52 - ldr r0, .L2654+56 + bne .L2663 +.L2581: + ldr r4, .L2668+52 + ldr r0, .L2668+56 ldmia r5, {r1, r2} bl printk ldr r3, [r4, #464] cmp r3, #0 - bne .L2567 + bne .L2582 mov r0, #260096 bl ftl_malloc cmp r0, #0 str r0, [r4, #464] - beq .L2570 -.L2567: + beq .L2585 +.L2582: ldr r2, [r5, #4] movw r3, #4088 cmp r2, r3 - bhi .L2570 + bhi .L2585 ldr r3, [r5, #0] cmp r3, #251904 - bhi .L2570 - ldr r1, .L2654+52 + bhi .L2585 + ldr r1, .L2668+52 ldr r0, [r1, #464] add r1, r5, #8 add r0, r0, r3 bl memcpy -.L2635: +.L2649: mov r0, r5 bl ftl_free -.L2636: +.L2650: mov r4, #0 - b .L2565 -.L2653: - ldr r0, .L2654+60 + b .L2580 +.L2667: + ldr r0, .L2668+60 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2607 + beq .L2621 mov r1, r4 mov r2, #28 bl rk_copy_from_user cmp r0, #0 - beq .L2569 -.L2649: - ldr r0, .L2654+64 - b .L2648 -.L2569: + beq .L2584 +.L2663: + ldr r0, .L2668+64 + b .L2662 +.L2584: ldmia r5, {r1, r2} - ldr r0, .L2654+68 + ldr r0, .L2668+68 bl printk ldr r1, [r5, #0] cmp r1, #256000 - bhi .L2570 - ldr r4, .L2654+52 + bhi .L2585 + ldr r4, .L2668+52 ldr r0, [r4, #464] cmp r0, #0 - beq .L2570 -.L2571: + beq .L2585 +.L2586: bl CRC_32 ldr r3, [r5, #4] cmp r3, r0 - beq .L2572 + beq .L2587 mov r0, r5 bl ftl_free - b .L2613 -.L2572: + b .L2627 +.L2587: bl rknand_device_lock ldr r1, [r4, #464] add r2, r5, #8 @@ -22383,43 +22606,37 @@ rknand_sys_storage_ioctl: mov r0, r5 mov r4, r6 bl ftl_free - b .L2565 -.L2570: + b .L2580 +.L2585: mov r0, r5 - b .L2639 -.L2550: - ldr r0, .L2654+72 + b .L2653 +.L2565: + ldr r0, .L2668+72 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2607 - bl ReadFlashInfo + beq .L2621 + bl ftl_read_flash_info mov r0, r4 mov r1, r5 mov r2, #11 - b .L2646 -.L2547: - ldr r0, .L2654+76 + b .L2658 +.L2562: + ldr r0, .L2668+76 bl printk - bl rknand_device_lock - bl FtlReInitForSDUpdata - mov r6, r0 - bl rknand_device_unlock - cmp r6, #0 - bne .L2630 bl nand_blk_add_whole_disk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2607 + beq .L2621 bl rknand_device_lock - mov r1, r6 + mov r1, #0 mov r2, #64 mov r0, r5 bl FlashReadFacBbtData bl rknand_device_unlock - ldr r0, .L2654+80 + ldr r0, .L2668+80 mov r1, r5 mov r2, #4 mov r3, #8 @@ -22427,111 +22644,111 @@ rknand_sys_storage_ioctl: mov r0, r4 mov r1, r5 mov r2, #64 - b .L2646 -.L2552: - ldr r0, .L2654+84 + b .L2658 +.L2567: + ldr r0, .L2668+84 bl printk - ldr r3, .L2654+52 + ldr r3, .L2668+52 add r1, sp, #528 mov r0, r4 mov r2, #4 ldr r3, [r3, #468] ldr r3, [r3, #20] str r3, [r1, #-524]! - b .L2643 -.L2553: - ldr r0, .L2654+88 + b .L2654 +.L2568: + ldr r0, .L2668+88 bl printk mov r0, #4096 bl ftl_malloc subs r5, r0, #0 - beq .L2607 + beq .L2621 bl rknand_device_lock mov r1, #264 mov r2, #2 mov r3, r5 mov r0, #16 - bl FtlRead + bl ftl_read bl rknand_device_unlock mov r0, r4 mov r1, r5 mov r2, #1024 -.L2646: +.L2658: bl rk_copy_to_user subs r4, r0, #0 mov r0, r5 - beq .L2575 -.L2639: + beq .L2590 +.L2653: bl ftl_free - b .L2630 -.L2575: + b .L2644 +.L2590: bl ftl_free - b .L2565 -.L2541: - ldr r0, .L2654+92 + b .L2580 +.L2556: + ldr r0, .L2668+92 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user subs r5, r0, #0 - bne .L2640 -.L2576: + bne .L2655 +.L2591: ldr r2, [sp, #8] - ldr r3, .L2654+96 + ldr r3, .L2668+96 cmp r2, r3 - bne .L2632 + bne .L2646 ldr r3, [sp, #12] cmp r3, #512 - bhi .L2632 - ldr r6, .L2654+52 + bhi .L2646 + ldr r6, .L2668+52 mov r2, #512 add r0, sp, #8 ldr r1, [r6, #468] bl memcpy ldr r2, [r6, #472] - ldr r3, .L2654+100 + ldr r3, .L2668+100 cmp r2, r3 - beq .L2577 + beq .L2592 add r0, sp, #72 mov r1, #128 str r5, [sp, #16] str r5, [sp, #20] bl __memzero -.L2577: +.L2592: add r0, sp, #264 mov r1, #256 mov r3, #0 str r3, [sp, #24] bl __memzero - b .L2642 -.L2542: - ldr r0, .L2654+104 + b .L2661 +.L2557: + ldr r0, .L2668+104 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2640 -.L2578: + bne .L2655 +.L2593: ldr r2, [sp, #8] - ldr r3, .L2654+96 + ldr r3, .L2668+96 cmp r2, r3 - bne .L2632 + bne .L2646 ldr r3, [sp, #12] cmp r3, #512 - bhi .L2632 - ldr r4, .L2654+52 - ldr r3, .L2654+100 + bhi .L2646 + ldr r4, .L2668+52 + ldr r3, .L2668+100 ldr r2, [r4, #472] cmp r2, r3 - bne .L2613 + bne .L2627 ldr r3, [sp, #20] sub r2, r3, #1 cmp r2, #127 mvnhi r4, #2 - bhi .L2539 + bhi .L2554 ldr r0, [r4, #468] add r1, sp, #72 str r3, [r0, #12] @@ -22540,33 +22757,33 @@ rknand_sys_storage_ioctl: bl memcpy mov r0, #1 ldr r1, [r4, #468] - b .L2637 -.L2652: - ldr r0, .L2654+108 + b .L2651 +.L2666: + ldr r0, .L2668+108 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2640 -.L2579: + bne .L2655 +.L2594: ldr r2, [sp, #8] - ldr r3, .L2654+112 + ldr r3, .L2668+112 cmp r2, r3 - bne .L2632 + bne .L2646 ldr r3, [sp, #12] cmp r3, #512 - bhi .L2632 - ldr r5, .L2654+52 + bhi .L2646 + ldr r5, .L2668+52 ldr r4, [r5, #476] cmp r4, #0 - beq .L2539 + beq .L2554 ldr r3, [r5, #480] - ldr r2, .L2654+116 + ldr r2, .L2668+116 ldr r1, [r3, #0] cmp r1, r2 - beq .L2580 + beq .L2595 str r2, [r3, #0] mov r2, #504 ldr r3, [r5, #480] @@ -22574,21 +22791,21 @@ rknand_sys_storage_ioctl: mov r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L2580: +.L2595: ldr r1, [r5, #480] mov r4, #0 mov r0, r4 str r4, [r1, #16] bl StorageSysDataStore ldr r3, [r5, #468] - ldr r2, .L2654+96 - ldr r5, .L2654+52 + ldr r2, .L2668+96 + ldr r5, .L2668+52 ldr r1, [r3, #0] cmp r1, r2 strne r2, [r3, #0] ldr r0, [r5, #468] mov r1, #128 - ldrne r3, .L2654+52 + ldrne r3, .L2668+52 movne r2, #504 ldrne r3, [r3, #468] stmneib r3, {r2, r4} @@ -22601,31 +22818,31 @@ rknand_sys_storage_ioctl: bl StorageSysDataStore str r4, [r5, #476] str r4, [r5, #472] - b .L2565 -.L2544: - ldr r0, .L2654+120 + b .L2580 +.L2559: + ldr r0, .L2668+120 bl printk mov r1, r4 add r0, sp, #8 mov r2, #520 bl rk_copy_from_user subs r4, r0, #0 - bne .L2640 -.L2582: + bne .L2655 +.L2597: ldr r2, [sp, #8] - ldr r3, .L2654+124 + ldr r3, .L2668+124 cmp r2, r3 - bne .L2632 + bne .L2646 ldr r3, [sp, #12] cmp r3, #512 - bhi .L2632 - ldr r5, .L2654+52 + bhi .L2646 + ldr r5, .L2668+52 ldr r3, [r5, #476] cmp r3, #1 - beq .L2539 + beq .L2554 ldr r3, [r5, #480] mov r0, #0 - ldr r2, .L2654+116 + ldr r2, .L2668+116 ldr r1, [r3, #0] cmp r1, r2 strne r2, [r3, #0] @@ -22638,18 +22855,18 @@ rknand_sys_storage_ioctl: str r3, [r1, #16] bl StorageSysDataStore ldr r3, [r5, #468] - ldr r2, .L2654+96 + ldr r2, .L2668+96 ldr r1, [r3, #0] cmp r1, r2 - beq .L2584 + beq .L2599 str r2, [r3, #0] - mov r0, #504 - ldr r3, .L2654+52 + mov r1, #504 + ldr r3, .L2668+52 mov r2, #0 ldr r3, [r3, #468] - stmib r3, {r0, r2} -.L2584: - ldr r5, .L2654+52 + stmib r3, {r1, r2} +.L2599: + ldr r5, .L2668+52 mov r1, #128 mov r4, #0 ldr r0, [r5, #468] @@ -22661,53 +22878,53 @@ rknand_sys_storage_ioctl: bl StorageSysDataStore mov r3, #1 str r3, [r5, #476] - b .L2565 -.L2651: - ldr r0, .L2654+128 + b .L2580 +.L2665: + ldr r0, .L2668+128 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2640 -.L2585: + bne .L2655 +.L2600: ldr r2, [sp, #8] - ldr r3, .L2654+132 + ldr r3, .L2668+132 cmp r2, r3 - bne .L2632 + bne .L2646 ldr r2, [sp, #12] cmp r2, #512 addls r0, sp, #16 - ldrls r1, .L2654+136 - bls .L2641 - b .L2632 -.L2546: - ldr r3, .L2654+20 + ldrls r1, .L2668+136 + bls .L2660 + b .L2646 +.L2561: + ldr r3, .L2668+20 cmp r5, r3 - ldreq r0, .L2654+140 - beq .L2633 - ldr r3, .L2654+144 + ldreq r0, .L2668+140 + beq .L2647 + ldr r3, .L2668+144 cmp r5, r3 - ldreq r0, .L2654+148 - ldrne r0, .L2654+152 -.L2633: + ldreq r0, .L2668+148 + ldrne r0, .L2668+152 +.L2647: bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2640 -.L2589: + bne .L2655 +.L2604: ldr r2, [sp, #8] - ldr r3, .L2654+156 + ldr r3, .L2668+156 cmp r2, r3 - bne .L2630 - ldr r3, .L2654+144 - ldr r6, .L2654+52 + bne .L2644 + ldr r3, .L2668+144 + ldr r6, .L2668+52 cmp r5, r3 - bne .L2590 + bne .L2605 ldr r3, [r6, #468] mov r0, r4 add r1, sp, #8 @@ -22719,29 +22936,29 @@ rknand_sys_storage_ioctl: cmp r0, #0 moveq r4, r0 mvnne r4, #13 - b .L2539 -.L2590: + b .L2554 +.L2605: ldr r3, [r6, #996] cmp r3, #10 - bhi .L2630 + bhi .L2644 ldr r3, [r6, #468] ldr r1, [sp, #12] ldr r2, [r3, #24] cmp r2, r1 - beq .L2591 + beq .L2606 cmp r2, #0 - beq .L2591 - ldr r0, .L2654+160 + beq .L2606 + ldr r0, .L2668+160 bl printk ldr r3, [r6, #996] add r3, r3, #1 str r3, [r6, #996] - b .L2630 -.L2591: - ldr r0, .L2654+52 + b .L2644 +.L2606: + ldr r0, .L2668+52 mov r2, #0 str r2, [r0, #996] - ldr r0, .L2654+20 + ldr r0, .L2668+20 cmp r5, r0 mov r0, #1 strne r1, [r3, #24] @@ -22754,112 +22971,112 @@ rknand_sys_storage_ioctl: cmn r0, #1 mvneq r4, #1 movne r4, #0 - b .L2565 -.L2554: - ldr r0, .L2654+164 + b .L2580 +.L2569: + ldr r0, .L2668+164 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - bne .L2640 -.L2594: + bne .L2655 +.L2609: ldr r2, [sp, #8] - ldr r3, .L2654+168 + ldr r3, .L2668+168 cmp r2, r3 - bne .L2632 + bne .L2646 ldr r2, [sp, #12] cmp r2, #504 - bhi .L2632 - ldr r3, .L2654+172 + bhi .L2646 + ldr r3, .L2668+172 add r0, sp, #16 cmp r5, r3 - ldr r3, .L2654+52 + ldr r3, .L2668+52 ldreq r1, [r3, #1000] ldrne r1, [r3, #1004] add r1, r1, #8 -.L2641: +.L2660: bl memcpy -.L2642: +.L2661: add r1, sp, #8 mov r0, r4 mov r2, #520 -.L2643: +.L2654: bl rk_copy_to_user subs r4, r0, #0 - bne .L2630 - b .L2565 -.L2555: - ldr r0, .L2654+176 + bne .L2644 + b .L2580 +.L2570: + ldr r0, .L2668+176 bl printk add r0, sp, #8 mov r1, r4 mov r2, #520 bl rk_copy_from_user cmp r0, #0 - beq .L2597 -.L2640: - ldr r0, .L2654+64 + beq .L2612 +.L2655: + ldr r0, .L2668+64 bl printk - b .L2630 -.L2597: + b .L2644 +.L2612: ldr r2, [sp, #8] - ldr r3, .L2654+168 + ldr r3, .L2668+168 cmp r2, r3 - bne .L2632 + bne .L2646 ldr r2, [sp, #12] cmp r2, #504 - bhi .L2632 - ldr r3, .L2654+28 + bhi .L2646 + ldr r3, .L2668+28 add r2, r2, #8 - ldr r4, .L2654+52 + ldr r4, .L2668+52 cmp r5, r3 - bne .L2598 + bne .L2613 add r1, sp, #8 ldr r0, [r4, #1000] bl memcpy ldr r1, [r4, #1000] mov r0, #2 -.L2637: +.L2651: bl StorageSysDataStore mov r4, r0 - b .L2565 -.L2598: + b .L2580 +.L2613: add r1, sp, #8 ldr r0, [r4, #1004] bl memcpy mov r0, #3 ldr r1, [r4, #1004] - b .L2637 -.L2650: + b .L2651 +.L2664: bl rknand_dev_flush - b .L2636 -.L2632: + b .L2650 +.L2646: mvn r4, #0 -.L2565: +.L2580: mov r1, r4 - ldr r0, .L2654+180 + ldr r0, .L2668+180 bl printk - b .L2539 -.L2599: + b .L2554 +.L2614: mvn r4, #21 - b .L2539 -.L2607: + b .L2554 +.L2621: mvn r4, #11 - b .L2539 -.L2613: + b .L2554 +.L2627: mvn r4, #1 - b .L2539 -.L2630: + b .L2554 +.L2644: mvn r4, #13 -.L2539: +.L2554: mov r0, r4 add sp, sp, #528 ldmfd sp!, {r4, r5, r6, pc} -.L2655: +.L2669: .align 2 -.L2654: +.L2668: .word 1074033155 .word 1074029694 .word 1074029570 @@ -22869,43 +23086,43 @@ rknand_sys_storage_ioctl: .word 1074033235 .word 1074034193 .word 1074034194 - .word .LC153 - .word .LC155 - .word .LC156 .word .LC157 - .word .LANCHOR2 - .word .LC158 .word .LC159 - .word .LC154 .word .LC160 .word .LC161 + .word .LANCHOR2 .word .LC162 .word .LC163 + .word .LC158 .word .LC164 .word .LC165 .word .LC166 - .word 1263358532 - .word -1067903959 .word .LC167 .word .LC168 - .word 1112753220 - .word 1146313043 .word .LC169 - .word 1112755781 .word .LC170 - .word 1094995539 - .word .LANCHOR2+484 + .word 1263358532 + .word -1067903959 .word .LC171 - .word 1074031676 .word .LC172 + .word 1112753220 + .word 1146313043 .word .LC173 - .word 1280262987 + .word 1112755781 .word .LC174 + .word 1094995539 + .word .LANCHOR2+484 .word .LC175 - .word 1145980246 - .word 1074034192 + .word 1074031676 .word .LC176 .word .LC177 + .word 1280262987 + .word .LC178 + .word .LC179 + .word 1145980246 + .word 1074034192 + .word .LC180 + .word .LC181 .fnend .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl .align 2 @@ -22918,7 +23135,7 @@ 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, .L2659 + ldr r4, .L2673 mov r6, #0 add r0, r4, #484 ldr r5, [r4, #456] @@ -22937,23 +23154,23 @@ rk_ftl_storage_sys_init: str r6, [r4, #472] str r6, [r4, #996] str r3, [r4, #476] - beq .L2657 + beq .L2671 mov r0, r5 mov r1, #508 bl JSHash cmp r7, r0 - beq .L2657 + beq .L2671 str r6, [r5, #16] - ldr r0, .L2659+4 + ldr r0, .L2673+4 str r6, [r4, #476] bl printk -.L2657: +.L2671: ldr r3, [r4, #476] mov r0, #2 - ldr r4, .L2659 + ldr r4, .L2673 cmp r3, #0 - ldrne r2, .L2659+8 - ldrne r3, .L2659 + ldrne r2, .L2673+8 + ldrne r3, .L2673 ldr r1, [r4, #1000] strne r2, [r3, #472] bl StorageSysDataLoad @@ -22962,11 +23179,11 @@ rk_ftl_storage_sys_init: bl StorageSysDataLoad ldmfd sp!, {r3, r4, r5, r6, r7, lr} b rknand_sys_storage_init -.L2660: +.L2674: .align 2 -.L2659: +.L2673: .word .LANCHOR2 - .word .LC178 + .word .LC182 .word -1067903959 .fnend .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init @@ -22995,24 +23212,24 @@ rk_ftl_vendor_storage_init: mov r1, #209 mov r2, #4 bl kmalloc_order_trace - ldr r7, .L2670 + ldr r7, .L2684 cmp r0, #0 str r0, [r7, #1008] - beq .L2668 - ldr sl, .L2670+4 + beq .L2682 + ldr sl, .L2684+4 mov r6, #0 mov r4, r6 mov r5, r6 movw r8, #65532 -.L2666: +.L2680: ldr r0, [r7, #1008] mov r1, r5, asl #7 mov r2, #0 - bl rk_ftl_vendor_ops.constprop.28 + bl rk_ftl_vendor_ops.constprop.26 cmp r0, #0 - bne .L2664 + bne .L2678 ldr r3, [r7, #1008] - ldr r0, .L2670+8 + ldr r0, .L2684+8 ldr r1, [r3, #0] ldr r2, [r3, r8] ldr r3, [r3, #4] @@ -23020,58 +23237,58 @@ rk_ftl_vendor_storage_init: ldr r0, [r7, #1008] ldr r3, [r0, #0] cmp r3, sl - bne .L2665 + bne .L2679 ldr r3, [r0, r8] ldr r2, [r0, #4] cmp r3, r2 - bne .L2665 + bne .L2679 cmp r4, r3 movcc r6, r5 movcc r4, r3 -.L2665: +.L2679: add r5, r5, #1 cmp r5, #2 - bne .L2666 + bne .L2680 cmp r4, #0 - beq .L2667 + beq .L2681 mov r1, r6, asl #7 mov r2, #0 - bl rk_ftl_vendor_ops.constprop.28 + bl rk_ftl_vendor_ops.constprop.26 cmp r0, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} - b .L2664 -.L2667: + b .L2678 +.L2681: mov r1, #65536 bl __memzero - ldr r3, .L2670 - ldr r1, .L2670+4 + ldr r3, .L2684 + ldr r1, .L2684+4 mov r2, #1 mov r0, r4 ldr r3, [r3, #1008] stmia r3, {r1, r2} movw r1, #65532 str r2, [r3, r1] - ldr r2, .L2670+12 + ldr r2, .L2684+12 strh r4, [r3, #12] @ movhi strh r2, [r3, #14] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L2664: - ldr r4, .L2670 +.L2678: + ldr r4, .L2684 ldr r0, [r4, #1008] bl kfree mov r3, #0 mvn r0, #0 str r3, [r4, #1008] ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L2668: +.L2682: mvn r0, #11 ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc} -.L2671: +.L2685: .align 2 -.L2670: +.L2684: .word .LANCHOR2 .word 1380668996 - .word .LC179 + .word .LC183 .word -1032 .fnend .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init @@ -23084,7 +23301,7 @@ rk_ftl_vendor_read: @ frame_needed = 0, uses_anonymous_args = 0 mov r3, r0 mov r0, r1 - ldr r1, .L2679 + ldr r1, .L2693 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldr ip, [r1, #1008] @@ -23092,13 +23309,13 @@ rk_ftl_vendor_read: ldrneh r4, [ip, #10] movne r5, ip movne r1, #0 - bne .L2674 - b .L2678 -.L2676: + bne .L2688 + b .L2692 +.L2690: ldrh r6, [r5, #16] add r5, r5, #8 cmp r6, r3 - bne .L2675 + bne .L2689 add r1, r1, #2 add r1, ip, r1, asl #3 ldrh r4, [r1, #4] @@ -23111,19 +23328,19 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L2675: +.L2689: add r1, r1, #1 -.L2674: +.L2688: cmp r1, r4 - bcc .L2676 + bcc .L2690 mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2678: +.L2692: mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2680: +.L2694: .align 2 -.L2679: +.L2693: .word .LANCHOR2 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read @@ -23134,7 +23351,7 @@ rk_ftl_vendor_write: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2698 + ldr r3, .L2712 stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} .save {r4, r5, r6, r7, r8, r9, sl, fp, lr} mov sl, r0 @@ -23144,36 +23361,36 @@ rk_ftl_vendor_write: mov r9, r1 mov r5, r2 cmp r4, #0 - beq .L2694 + beq .L2708 add r8, r2, #63 ldrh r2, [r4, #8] ldrh r3, [r4, #10] bic r8, r8, #63 mov r7, #0 str r2, [sp, #8] - b .L2683 -.L2690: + b .L2697 +.L2704: add r2, r7, #2 mov r2, r2, asl #3 add r6, r4, r2 ldrh r2, [r4, r2] cmp r2, sl - bne .L2684 + bne .L2698 ldrh r2, [r6, #4] add r2, r2, #63 bic r2, r2, #63 str r2, [sp, #12] cmp r5, r2 - bls .L2685 + bls .L2699 ldrh r2, [r4, #14] cmp r2, r8 - bcc .L2694 + bcc .L2708 sub r3, r3, #1 mov fp, r8 ldrh r6, [r6, #2] mov r8, r3 - b .L2686 -.L2687: + b .L2700 +.L2701: add r7, r7, #1 mov r2, r2, asl #3 add r0, r7, #2 @@ -23198,10 +23415,10 @@ rk_ftl_vendor_write: bl memcpy ldr r3, [sp, #4] add r6, r6, r3 -.L2686: +.L2700: cmp r7, r8 add r2, r7, #2 - bcc .L2687 + bcc .L2701 mov r2, r2, asl #3 uxth r6, r6 add r3, r4, r2 @@ -23221,8 +23438,8 @@ rk_ftl_vendor_write: add r3, r2, r3 rsb r8, r8, r3 strh r8, [r4, #14] @ movhi - b .L2697 -.L2685: + b .L2711 +.L2699: ldrh r0, [r6, #2] mov r1, r9 mov r2, r5 @@ -23230,15 +23447,15 @@ rk_ftl_vendor_write: add r0, r4, r0 bl memcpy strh r5, [r6, #4] @ movhi - b .L2697 -.L2684: + b .L2711 +.L2698: add r7, r7, #1 -.L2683: +.L2697: cmp r7, r3 - bcc .L2690 + bcc .L2704 ldrh r2, [r4, #14] cmp r2, r8 - bcc .L2694 + bcc .L2708 add r3, r3, #2 uxth r8, r8 mov r1, r9 @@ -23262,7 +23479,7 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] add r3, r3, #1 strh r3, [r4, #10] @ movhi -.L2697: +.L2711: ldr r3, [r4, #4] movw r2, #65532 mov r0, r4 @@ -23279,17 +23496,17 @@ rk_ftl_vendor_write: strhih r3, [r4, #8] @ movhi ldr r3, [sp, #8] mov r1, r3, asl #7 - bl rk_ftl_vendor_ops.constprop.28 + bl rk_ftl_vendor_ops.constprop.26 mov r0, #0 - b .L2682 -.L2694: + b .L2696 +.L2708: mvn r0, #0 -.L2682: +.L2696: add sp, sp, #20 ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} -.L2699: +.L2713: .align 2 -.L2698: +.L2712: .word .LANCHOR2 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write @@ -23300,7 +23517,7 @@ rk_ftl_vendor_storage_ioctl: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2717 + ldr r3, .L2731 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r2 @@ -23311,30 +23528,30 @@ rk_ftl_vendor_storage_ioctl: bl kmem_cache_alloc_trace subs r4, r0, #0 mvneq r5, #0 - beq .L2701 - ldr r3, .L2717+4 + beq .L2715 + ldr r3, .L2731+4 cmp r6, r3 - beq .L2703 + beq .L2717 add r3, r3, #1 cmp r6, r3 - bne .L2714 - b .L2716 -.L2703: + bne .L2728 + b .L2730 +.L2717: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L2714 + bne .L2728 ldr r2, [r4, #0] - ldr r3, .L2717+8 + ldr r3, .L2731+8 cmp r2, r3 - bne .L2713 + bne .L2727 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read cmn r0, #1 - beq .L2709 + beq .L2723 uxth r2, r0 mov r1, r4 strh r2, [r4, #6] @ movhi @@ -23344,48 +23561,48 @@ rk_ftl_vendor_storage_ioctl: cmp r0, #0 moveq r5, r0 mvnne r5, #13 - b .L2702 -.L2716: + b .L2716 +.L2730: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L2714 + bne .L2728 ldr r2, [r4, #0] - ldr r3, .L2717+8 + ldr r3, .L2731+8 cmp r2, r3 - bne .L2713 + bne .L2727 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L2713 + bhi .L2727 mov r0, r4 mov r1, r5 add r2, r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L2714 + bne .L2728 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write -.L2709: +.L2723: mov r5, r0 - b .L2702 -.L2713: + b .L2716 +.L2727: mvn r5, #0 - b .L2702 -.L2714: + b .L2716 +.L2728: mvn r5, #13 -.L2702: +.L2716: mov r0, r4 bl kfree -.L2701: +.L2715: mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} -.L2718: +.L2732: .align 2 -.L2717: +.L2731: .word kmalloc_caches .word 1074034177 .word 1448232273 @@ -23421,7 +23638,6 @@ rk_ftl_vendor_storage_ioctl: .global random_seed .global gSlcNandParaInfo .global gNandParaInfo - .global NandFlashParaTbl .global g_page_map_check_enable .global g_power_lost_ecc_error_blk .global g_power_lost_recovery_flag @@ -23633,22 +23849,22 @@ rk_ftl_vendor_storage_ioctl: .global read_retry_cur_offset .section .rodata .set .LANCHOR3,. + 0 - .type __func__.14256, %object - .size __func__.14256, 11 -__func__.14256: + .type __func__.14459, %object + .size __func__.14459, 11 +__func__.14459: .ascii "FtlMemInit\000" .LC0: .byte 60 .byte 40 .byte 24 .byte 16 - .type __func__.15186, %object - .size __func__.15186, 21 -__func__.15186: + .type __func__.15408, %object + .size __func__.15408, 21 +__func__.15408: .ascii "FtlVpcCheckAndModify\000" - .type __func__.14327, %object - .size __func__.14327, 8 -__func__.14327: + .type __func__.14532, %object + .size __func__.14532, 8 +__func__.14532: .ascii "FtlInit\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -23661,358 +23877,367 @@ __func__.14327: .LC4: .ascii "remove_from_free_sys_Queue %x\012\000" .LC5: - .ascii "FLASH INFO:\012\000" + .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000" .LC6: - .ascii "FLASH ID: %x\012\000" + .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" + .ascii "\000" .LC7: - .ascii "Device Capacity: %d MB\012\000" + .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" .LC8: - .ascii "FMWAIT: %x %x %x %x\012\000" + .ascii "FLASH INFO:\012\000" .LC9: - .ascii "FTL INFO:\012\000" + .ascii "FLASH ID: %x\012\000" .LC10: - .ascii "g_MaxLpn = 0x%x\012\000" + .ascii "Device Capacity: %d MB\012\000" .LC11: - .ascii "g_VaildLpn = 0x%x\012\000" + .ascii "FMWAIT: %x %x %x %x\012\000" .LC12: - .ascii "read_page_count = 0x%x\012\000" + .ascii "FTL INFO:\012\000" .LC13: - .ascii "discard_page_count = 0x%x\012\000" + .ascii "g_MaxLpn = 0x%x\012\000" .LC14: - .ascii "write_page_count = 0x%x\012\000" + .ascii "g_VaildLpn = 0x%x\012\000" .LC15: - .ascii "cache_write_count = 0x%x\012\000" + .ascii "read_page_count = 0x%x\012\000" .LC16: - .ascii "l2p_write_count = 0x%x\012\000" + .ascii "discard_page_count = 0x%x\012\000" .LC17: - .ascii "gc_page_count = 0x%x\012\000" + .ascii "write_page_count = 0x%x\012\000" .LC18: - .ascii "totle_write = %d MB\012\000" + .ascii "cache_write_count = 0x%x\012\000" .LC19: - .ascii "totle_read = %d MB\012\000" + .ascii "l2p_write_count = 0x%x\012\000" .LC20: - .ascii "GSV = 0x%x\012\000" + .ascii "gc_page_count = 0x%x\012\000" .LC21: - .ascii "GDV = 0x%x\012\000" + .ascii "totle_write = %d MB\012\000" .LC22: - .ascii "bad blk num = %d %d\012\000" + .ascii "totle_read = %d MB\012\000" .LC23: - .ascii "free_superblocks = 0x%x\012\000" + .ascii "GSV = 0x%x\012\000" .LC24: - .ascii "mlc_EC = 0x%x\012\000" + .ascii "GDV = 0x%x\012\000" .LC25: - .ascii "slc_EC = 0x%x\012\000" + .ascii "bad blk num = %d %d\012\000" .LC26: - .ascii "avg_EC = 0x%x\012\000" + .ascii "free_superblocks = 0x%x\012\000" .LC27: - .ascii "sys_EC = 0x%x\012\000" + .ascii "mlc_EC = 0x%x\012\000" .LC28: - .ascii "max_EC = 0x%x\012\000" + .ascii "slc_EC = 0x%x\012\000" .LC29: - .ascii "min_EC = 0x%x\012\000" + .ascii "avg_EC = 0x%x\012\000" .LC30: - .ascii "PLT = 0x%x\012\000" + .ascii "sys_EC = 0x%x\012\000" .LC31: - .ascii "POT = 0x%x\012\000" + .ascii "max_EC = 0x%x\012\000" .LC32: - .ascii "MaxSector = 0x%x\012\000" + .ascii "min_EC = 0x%x\012\000" .LC33: - .ascii "init_sys_blks_pp = 0x%x\012\000" + .ascii "PLT = 0x%x\012\000" .LC34: - .ascii "sys_blks_pp = 0x%x\012\000" + .ascii "POT = 0x%x\012\000" .LC35: - .ascii "free sysblock = 0x%x\012\000" + .ascii "MaxSector = 0x%x\012\000" .LC36: - .ascii "data_blks_pp = 0x%x\012\000" + .ascii "init_sys_blks_pp = 0x%x\012\000" .LC37: - .ascii "data_op_blks_pp = 0x%x\012\000" + .ascii "sys_blks_pp = 0x%x\012\000" .LC38: - .ascii "max_data_blks = 0x%x\012\000" + .ascii "free sysblock = 0x%x\012\000" .LC39: - .ascii "Sys.id = 0x%x\012\000" + .ascii "data_blks_pp = 0x%x\012\000" .LC40: - .ascii "Bbt.id = 0x%x\012\000" + .ascii "data_op_blks_pp = 0x%x\012\000" .LC41: - .ascii "ACT.page = 0x%x\012\000" + .ascii "max_data_blks = 0x%x\012\000" .LC42: - .ascii "ACT.plane = 0x%x\012\000" + .ascii "Sys.id = 0x%x\012\000" .LC43: - .ascii "ACT.id = 0x%x\012\000" + .ascii "Bbt.id = 0x%x\012\000" .LC44: - .ascii "ACT.mode = 0x%x\012\000" + .ascii "ACT.page = 0x%x\012\000" .LC45: - .ascii "ACT.a_pages = 0x%x\012\000" + .ascii "ACT.plane = 0x%x\012\000" .LC46: - .ascii "ACT VPC = 0x%x\012\000" + .ascii "ACT.id = 0x%x\012\000" .LC47: - .ascii "BUF.page = 0x%x\012\000" + .ascii "ACT.mode = 0x%x\012\000" .LC48: - .ascii "BUF.plane = 0x%x\012\000" + .ascii "ACT.a_pages = 0x%x\012\000" .LC49: - .ascii "BUF.id = 0x%x\012\000" + .ascii "ACT VPC = 0x%x\012\000" .LC50: - .ascii "BUF.mode = 0x%x\012\000" + .ascii "BUF.page = 0x%x\012\000" .LC51: - .ascii "BUF.a_pages = 0x%x\012\000" + .ascii "BUF.plane = 0x%x\012\000" .LC52: - .ascii "BUF VPC = 0x%x\012\000" + .ascii "BUF.id = 0x%x\012\000" .LC53: - .ascii "TMP.page = 0x%x\012\000" + .ascii "BUF.mode = 0x%x\012\000" .LC54: - .ascii "TMP.plane = 0x%x\012\000" + .ascii "BUF.a_pages = 0x%x\012\000" .LC55: - .ascii "TMP.id = 0x%x\012\000" + .ascii "BUF VPC = 0x%x\012\000" .LC56: - .ascii "TMP.mode = 0x%x\012\000" + .ascii "TMP.page = 0x%x\012\000" .LC57: - .ascii "TMP.a_pages = 0x%x\012\000" + .ascii "TMP.plane = 0x%x\012\000" .LC58: - .ascii "GC.page = 0x%x\012\000" + .ascii "TMP.id = 0x%x\012\000" .LC59: - .ascii "GC.plane = 0x%x\012\000" + .ascii "TMP.mode = 0x%x\012\000" .LC60: - .ascii "GC.id = 0x%x\012\000" + .ascii "TMP.a_pages = 0x%x\012\000" .LC61: - .ascii "GC.mode = 0x%x\012\000" + .ascii "GC.page = 0x%x\012\000" .LC62: - .ascii "GC.a_pages = 0x%x\012\000" + .ascii "GC.plane = 0x%x\012\000" .LC63: - .ascii "WR_CHK = 0x%x %x %x %x\012\000" + .ascii "GC.id = 0x%x\012\000" .LC64: - .ascii "Read Err Cnt = 0x%x\012\000" + .ascii "GC.mode = 0x%x\012\000" .LC65: - .ascii "Prog Err Cnt = 0x%x\012\000" + .ascii "GC.a_pages = 0x%x\012\000" .LC66: - .ascii "gc_free_blk_th= 0x%x\012\000" + .ascii "WR_CHK = 0x%x %x %x %x\012\000" .LC67: - .ascii "gc_merge_free_blk_th= 0x%x\012\000" + .ascii "Read Err Cnt = 0x%x\012\000" .LC68: - .ascii "gc_skip_write_count= 0x%x\012\000" + .ascii "Prog Err Cnt = 0x%x\012\000" .LC69: - .ascii "gc_blk_index= 0x%x\012\000" + .ascii "gc_free_blk_th= 0x%x\012\000" .LC70: - .ascii "free min EC= 0x%x\012\000" + .ascii "gc_merge_free_blk_th= 0x%x\012\000" .LC71: - .ascii "free max EC= 0x%x\012\000" + .ascii "gc_skip_write_count= 0x%x\012\000" .LC72: - .ascii "GC__SB VPC = 0x%x\012\000" + .ascii "gc_blk_index= 0x%x\012\000" .LC73: - .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000" + .ascii "free min EC= 0x%x\012\000" .LC74: - .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" + .ascii "free max EC= 0x%x\012\000" .LC75: - .ascii "%s\012\000" + .ascii "GC__SB VPC = 0x%x\012\000" .LC76: - .ascii "FTL version: 5.0.47 20171120\000" + .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000" .LC77: - .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" - .ascii "\012\000" + .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" .LC78: - .ascii "FtlGcRefreshBlock 0x%x\012\000" + .ascii "%s\012\000" .LC79: - .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000" + .ascii "FTL version: 5.0.48 20180504\000" .LC80: - .ascii "%s error allocating memory. return -1\012\000" + .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" + .ascii "\012\000" .LC81: - .ascii "%s 0x%x:\000" + .ascii "FtlGcRefreshBlock 0x%x\012\000" .LC82: - .ascii "%x \000" + .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000" .LC83: - .ascii "\000" + .ascii "%s error allocating memory. return -1\012\000" .LC84: - .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012" - .ascii "\000" + .ascii "%s %p:0x%x:\000" .LC85: - .ascii "nandc:\000" + .ascii "%x \000" .LC86: - .ascii "%d flReg.d32=%x %x\012\000" + .ascii "\000" .LC87: - .ascii "micron RR %d row=%x,count %d,status=%d\012\000" + .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012" + .ascii "\000" .LC88: - .ascii "ECC:%d\012\000" + .ascii "nandc:\000" .LC89: - .ascii "sdr read ok %x ecc=%d\012\000" + .ascii "%d flReg.d32=%x %x\012\000" .LC90: - .ascii "sync para %d\012\000" + .ascii "micron RR %d row=%x,count %d,status=%d\012\000" .LC91: - .ascii "TOG mode Read error %x %x\012\000" + .ascii "ECC:%d\012\000" .LC92: - .ascii "read retry status %x %x %x\012\000" + .ascii "sdr read ok %x ecc=%d\012\000" .LC93: - .ascii "Read pageadd=%x ecc=%x err=%x\012\000" + .ascii "sync para %d\012\000" .LC94: - .ascii "data:\000" + .ascii "TOG mode Read error %x %x\012\000" .LC95: - .ascii "spare:\000" + .ascii "read retry status %x %x %x\012\000" .LC96: - .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" + .ascii "Read pageadd=%x ecc=%x err=%x\012\000" .LC97: - .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" + .ascii "data:\000" .LC98: - .ascii "prog error: = %x\012\000" + .ascii "spare:\000" .LC99: - .ascii "prog read error: = %x\012\000" + .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" .LC100: - .ascii "prog read s error: = %x %x %x\012\000" + .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" .LC101: - .ascii "prog read d error: = %x %x %x\012\000" + .ascii "prog error: = %x\012\000" .LC102: - .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" + .ascii "prog read error: = %x\012\000" .LC103: - .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" + .ascii "prog read s error: = %x %x %x\012\000" .LC104: - .ascii "FtlBbmTblFlush error:%x\012\000" + .ascii "prog read d error: = %x %x %x\012\000" .LC105: - .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" + .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" .LC106: - .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" + .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" .LC107: - .ascii "decrement_vpc_count %x = %d\012\000" + .ascii "FtlBbmTblFlush error:%x\012\000" .LC108: - .ascii "FlashMakeFactorBbt %d\012\000" + .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" .LC109: - .ascii "bad block:%d %d\012\000" + .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" .LC110: - .ascii "FMFB:%d %d\012\000" + .ascii "decrement_vpc_count %x = %d\012\000" .LC111: - .ascii "E:bad block:%d\012\000" + .ascii "FlashMakeFactorBbt %d\012\000" .LC112: - .ascii "FMFB:Save %d %d\012\000" + .ascii "bad block:%d %d\012\000" .LC113: - .ascii "ftl_map_blk_gc blk info: %x %x %x\012\000" + .ascii "FMFB:%d %d\012\000" .LC114: - .ascii "page map lost: %x %x\012\000" + .ascii "E:bad block:%d\012\000" .LC115: - .ascii "FtlMapWritePage error = %x\012\000" + .ascii "FMFB:Save %d %d\012\000" .LC116: - .ascii "FtlMapWritePage error = %x error count = %d\012\000" + .ascii "ftl_map_blk_gc blk info: %x %x %x\012\000" .LC117: - .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" + .ascii "page map lost: %x %x\012\000" .LC118: - .ascii "slc mode\000" + .ascii "FtlMapWritePage error = %x\012\000" .LC119: - .ascii "no ect\000" + .ascii "FtlMapWritePage error = %x error count = %d\012\000" .LC120: - .ascii "page map lost %x %x %x %x\012\000" + .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" .LC121: - .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" + .ascii "slc mode\000" .LC122: - .ascii "RSB refresh addr %x\012\000" + .ascii "no ect\000" .LC123: - .ascii "spuer block %x vpn is 0\012 \000" + .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" .LC124: - .ascii "g_recovery_ppa %x ver %x\012 \000" + .ascii "page map lost %x %x %x %x\012\000" .LC125: - .ascii "...%s enter...\012\000" + .ascii "RSB refresh addr %x\012\000" .LC126: - .ascii "FtlCheckVpc %x = %x %x\012\000" + .ascii "spuer block %x vpn is 0\012 \000" .LC127: - .ascii "%d GC datablk = %x vpc %x %x\012\000" + .ascii "g_recovery_ppa %x ver %x\012 \000" .LC128: - .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" + .ascii "...%s enter...\012\000" .LC129: - .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" + .ascii "FtlCheckVpc %x = %x %x\012\000" .LC130: - .ascii "GC des block %x done\012\000" + .ascii "%d GC datablk = %x vpc %x %x\012\000" .LC131: - .ascii "fix power lost blk = %x vpc=%x\012\000" + .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" .LC132: - .ascii "erase power lost blk = %x vpc=%x\012\000" + .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" .LC133: + .ascii "GC des block %x done\012\000" +.LC134: + .ascii "rk_ftl_de_init %x\012\000" +.LC135: + .ascii "fix power lost blk = %x vpc=%x\012\000" +.LC136: + .ascii "erase power lost blk = %x vpc=%x\012\000" +.LC137: .ascii "...%s: no bad block mapping table, format device\012" .ascii "\000" -.LC134: +.LC138: .ascii "...%s FtlSysBlkInit error ,format device!\012\000" -.LC135: +.LC139: .ascii "FtlWrite: lpa error:%x %x\012\000" -.LC136: +.LC140: .ascii "FLFB:%d %d\012\000" -.LC137: +.LC141: .ascii "BBT:\000" -.LC138: +.LC142: .ascii "otp error! %d\000" -.LC139: +.LC143: .ascii "rr\000" -.LC140: +.LC144: .ascii "FlashLoadPhyInfo fail %x!!\012\000" -.LC141: +.LC145: .ascii "FtlInit %x\012\000" -.LC142: +.LC146: .ascii "IdBlockReadData %x %x\012\000" -.LC143: +.LC147: .ascii "IdBlockReadData %x %x ret= %x\012\000" -.LC144: +.LC148: .ascii "IDBlockWriteData %x %x\012\000" -.LC145: +.LC149: .ascii "IDBlockWriteData %x %x ret= %x\012\000" -.LC146: +.LC150: .ascii "idblk:\000" -.LC147: +.LC151: .ascii "idb reverse %x %x\012\000" -.LC148: +.LC152: .ascii "write_idblock totle_sec %x %x\012\000" -.LC149: +.LC153: .ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x" .ascii "\012\000" -.LC150: +.LC154: .ascii "write\000" -.LC151: +.LC155: .ascii "read\000" -.LC152: +.LC156: .ascii "write_idblock error\012\000" -.LC153: +.LC157: .ascii "READ_SECTOR_IO\012\000" -.LC154: +.LC158: .ascii "rk_copy_from_user error\012\000" -.LC155: +.LC159: .ascii "READ_SECTOR_IO %x %x\012\000" -.LC156: +.LC160: .ascii "rk_copy_to_user error\012\000" -.LC157: +.LC161: .ascii "WRITE_SECTOR_IO\012\000" -.LC158: +.LC162: .ascii "WRITE_SECTOR_IO %x %x\012\000" -.LC159: +.LC163: .ascii "END_WRITE_SECTOR_IO\012\000" -.LC160: +.LC164: .ascii "END_WRITE_SECTOR_IO %x %x\012\000" -.LC161: +.LC165: .ascii "GET_FLASH_INFO_IO\012\000" -.LC162: +.LC166: .ascii "GET_BAD_BLOCK_IO\012\000" -.LC163: +.LC167: .ascii "bbt:\000" -.LC164: +.LC168: .ascii "GET_LOCK_FLAG_IO\012\000" -.LC165: +.LC169: .ascii "GET_PUBLIC_KEY_IO\012\000" -.LC166: +.LC170: .ascii "RKNAND_GET_DRM_KEY\012\000" -.LC167: +.LC171: .ascii "RKNAND_STORE_DRM_KEY\012\000" -.LC168: +.LC172: .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000" -.LC169: +.LC173: .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000" -.LC170: +.LC174: .ascii "RKNAND_GET_SN_SECTOR\012\000" -.LC171: +.LC175: .ascii "RKNAND_LOADER_UNLOCK\012\000" -.LC172: +.LC176: .ascii "RKNAND_LOADER_STATUS\012\000" -.LC173: +.LC177: .ascii "RKNAND_LOADER_LOCK\012\000" -.LC174: +.LC178: .ascii "LockKey not match %d\012\000" -.LC175: +.LC179: .ascii "RKNAND_GET_VENDOR_SECTOR\012\000" -.LC176: +.LC180: .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000" -.LC177: +.LC181: .ascii "return ret = %lx\012\000" -.LC178: +.LC182: .ascii "secureBootEn check error\012\000" -.LC179: +.LC183: .ascii "\0013vendor storage %x,%x,%x\012\000" .data .align 2 @@ -24295,7 +24520,7 @@ random_seed: .short 17598 .short 28087 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2304 + .size NandFlashParaTbl, 2368 NandFlashParaTbl: .byte 6 .byte 44 @@ -24793,6 +25018,32 @@ NandFlashParaTbl: .space 4 .byte 5 .byte 44 + .byte -124 + .byte 68 + .byte 50 + .byte -86 + .byte 0 + .byte 4 + .byte 1 + .byte 32 + .short 512 + .byte 2 + .byte 1 + .short 2184 + .short 1479 + .byte 5 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .space 4 + .byte 5 + .byte 44 .byte 100 .byte 68 .byte 50 @@ -24805,7 +25056,7 @@ NandFlashParaTbl: .byte 2 .byte 1 .short 1048 - .short 1503 + .short 1479 .byte 5 .byte 19 .byte 60 @@ -25156,6 +25407,32 @@ NandFlashParaTbl: .byte 0 .space 4 .byte 6 + .byte -83 + .byte -43 + .byte -108 + .byte -102 + .byte 116 + .byte 66 + .byte 2 + .byte 1 + .byte 16 + .short 256 + .byte 2 + .byte 1 + .short 1024 + .short 273 + .byte 1 + .byte 0 + .byte 24 + .byte 32 + .byte 4 + .byte 1 + .byte 3 + .byte 0 + .byte 0 + .byte 0 + .space 4 + .byte 6 .byte -119 .byte 100 .byte 68 @@ -25897,7 +26174,7 @@ NandFlashParaTbl: .byte 2 .byte 2 .short 2106 - .short 1497 + .short 473 .byte 2 .byte 68 .byte 40 @@ -25923,7 +26200,7 @@ NandFlashParaTbl: .byte 2 .byte 2 .short 1074 - .short 1497 + .short 473 .byte 2 .byte 68 .byte 40 @@ -26857,6 +27134,10 @@ gNandFlashEccBits: gMultiPageProgEn: .space 1 .space 2 + .type g_inkDie_check_enable, %object + .size g_inkDie_check_enable, 4 +g_inkDie_check_enable: + .space 4 .type c_ftl_nand_sys_blks_per_plane, %object .size c_ftl_nand_sys_blks_per_plane, 4 c_ftl_nand_sys_blks_per_plane: @@ -27015,10 +27296,6 @@ req_wr_io: .size g_MaxLpn, 4 g_MaxLpn: .space 4 - .type g_cur_erase_blk, %object - .size g_cur_erase_blk, 4 -g_cur_erase_blk: - .space 4 .type gBbtInfo, %object .size gBbtInfo, 60 gBbtInfo: @@ -27043,10 +27320,10 @@ p_erase_count_table: .size g_totle_sys_slc_erase_count, 4 g_totle_sys_slc_erase_count: .space 4 - .type p_sys_data_buf, %object - .size p_sys_data_buf, 4 -p_sys_data_buf: - .space 4 + .type g_sys_save_data, %object + .size g_sys_save_data, 48 +g_sys_save_data: + .space 48 .type p_data_block_list_table, %object .size p_data_block_list_table, 4 p_data_block_list_table: @@ -27109,10 +27386,6 @@ g_VaildLpn: .size p_blk_mode_table, 4 p_blk_mode_table: .space 4 - .type g_inkDie_check_enable, %object - .size g_inkDie_check_enable, 4 -g_inkDie_check_enable: - .space 4 .type g_totle_read_page_count, %object .size g_totle_read_page_count, 4 g_totle_read_page_count: @@ -27173,10 +27446,6 @@ g_max_erase_count: .size g_min_erase_count, 4 g_min_erase_count: .space 4 - .type g_sys_save_data, %object - .size g_sys_save_data, 48 -g_sys_save_data: - .space 48 .type c_ftl_nand_data_op_blks_per_plane, %object .size c_ftl_nand_data_op_blks_per_plane, 2 c_ftl_nand_data_op_blks_per_plane: @@ -27360,6 +27629,10 @@ g_gc_head_data_block: .size g_gc_head_data_block_count, 4 g_gc_head_data_block_count: .space 4 + .type g_cur_erase_blk, %object + .size g_cur_erase_blk, 4 +g_cur_erase_blk: + .space 4 .type g_gc_refresh_block_temp_num, %object .size g_gc_refresh_block_temp_num, 2 g_gc_refresh_block_temp_num: @@ -27381,6 +27654,10 @@ req_gc_dst: .size req_prgm, 4 req_prgm: .space 4 + .type p_sys_data_buf, %object + .size p_sys_data_buf, 4 +p_sys_data_buf: + .space 4 .type p_sys_data_buf_1, %object .size p_sys_data_buf_1, 4 p_sys_data_buf_1: |