diff options
author | Yifeng Zhao <zyf@rock-chips.com> | 2018-06-13 09:36:49 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2018-06-14 09:31:39 +0800 |
commit | a4125a4a8204f9f36d9f513b7f043ef8e2cf27cb (patch) | |
tree | 67d4332a610690772cd1c57c5e4cebe824937c3c | |
parent | f199655bebd2f554e199053fc8d67381fb85cbf7 (diff) |
drivers: rknand: support rk3308
rk3308 has a new nandc, driver need modify to support.
Change-Id: I1b30f5ac106759873cd0a14b6340b49232f5106c
Signed-off-by: Yifeng Zhao <zyf@rock-chips.com>
-rw-r--r-- | drivers/rk_nand/rk_ftl_arm_v7_thumb.S | 17265 |
1 files changed, 8828 insertions, 8437 deletions
diff --git a/drivers/rk_nand/rk_ftl_arm_v7_thumb.S b/drivers/rk_nand/rk_ftl_arm_v7_thumb.S index 77de7f91b411..d5ed56072374 100644 --- a/drivers/rk_nand/rk_ftl_arm_v7_thumb.S +++ b/drivers/rk_nand/rk_ftl_arm_v7_thumb.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2017-12-13 + * date: 2018-05-28 */ .syntax unified .arch armv7-a @@ -21,6 +21,39 @@ .eabi_attribute 18, 4 .thumb .file "rk_ftl_arm_v7.S" +#APP + .macro it, cond + .endm + .macro itt, cond + .endm + .macro ite, cond + .endm + .macro ittt, cond + .endm + .macro itte, cond + .endm + .macro itet, cond + .endm + .macro itee, cond + .endm + .macro itttt, cond + .endm + .macro ittte, cond + .endm + .macro ittet, cond + .endm + .macro ittee, cond + .endm + .macro itett, cond + .endm + .macro itete, cond + .endm + .macro iteet, cond + .endm + .macro iteee, cond + .endm + + .thumb .text .align 1 .global FlashMemCmp8 @@ -824,17 +857,16 @@ FlashDieInfoInit: .fnend .size FlashDieInfoInit, .-FlashDieInfoInit .align 1 - .global FlashSuspend + .global ftl_flash_suspend .thumb .thumb_func - .type FlashSuspend, %function -FlashSuspend: + .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, .L137 - movs r0, #0 ldr r2, [r3, #1828] ldr r1, [r2] str r1, [r3, #1832] @@ -858,7 +890,7 @@ FlashSuspend: .L137: .word .LANCHOR0 .fnend - .size FlashSuspend, .-FlashSuspend + .size ftl_flash_suspend, .-ftl_flash_suspend .global __aeabi_uidiv .align 1 .global LogAddr2PhyAddr @@ -896,10 +928,10 @@ LogAddr2PhyAddr: uxtheq fp, fp mov r1, r5 bl __aeabi_uidiv + ldr r3, [sp, #4] cmp r10, #1 ubfx r1, r4, #0, #10 uxth r0, r0 - ldr r3, [sp, #4] smulbb r5, r0, r5 sub r3, r3, r5 uxth r3, r3 @@ -939,11 +971,11 @@ LogAddr2PhyAddr: .fnend .size LogAddr2PhyAddr, .-LogAddr2PhyAddr .align 1 - .global ReadFlashInfo + .global ftl_read_flash_info .thumb .thumb_func - .type ReadFlashInfo, %function -ReadFlashInfo: + .type ftl_read_flash_info, %function +ftl_read_flash_info: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -954,21 +986,15 @@ ReadFlashInfo: bl __memzero ldr r3, .L150 movs r5, #1 - ldr r1, [r3, #1788] + ldr r2, [r3, #1788] + ldrb r1, [r2, #9] @ zero_extendqisi2 ldr r2, [r3, #4] addw r3, r3, #1620 - ldrb r0, [r1, #9] @ zero_extendqisi2 - smulbb r2, r0, r2 - ldrb r0, [r3, #272] @ zero_extendqisi2 - strb r0, [r4, #7] - uxth r2, r2 + smulbb r2, r1, r2 strh r2, [r4, #4] @ unaligned - ldrb r0, [r1, #13] @ zero_extendqisi2 - muls r2, r0, r2 - ldrh r0, [r1, #14] - ldrb r1, [r1, #8] @ zero_extendqisi2 - muls r2, r0, r2 - muls r2, r1, r2 + ldrb r2, [r3, #272] @ zero_extendqisi2 + strb r2, [r4, #7] + ldr r2, [r3, #276] str r2, [r4] @ unaligned ldr r2, [r3, #168] ldrb r0, [r3, #-4] @ zero_extendqisi2 @@ -998,7 +1024,7 @@ ReadFlashInfo: .L150: .word .LANCHOR0 .fnend - .size ReadFlashInfo, .-ReadFlashInfo + .size ftl_read_flash_info, .-ftl_read_flash_info .align 1 .global FlashScheduleEnSet .thumb @@ -1010,8 +1036,8 @@ FlashScheduleEnSet: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. ldr r3, .L153 - ldr r2, [r3, #1896] - str r0, [r3, #1896] + ldr r2, [r3, #1900] + str r0, [r3, #1900] mov r0, r2 bx lr .L154: @@ -1156,43 +1182,38 @@ NandcSetMode: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - ldr r5, .L180 - ldr r3, [r5, #1828] - ldr r4, [r3] - ands r3, r0, #6 + @ link register save eliminated. + ldr r3, .L180 + ands r1, r0, #6 + ldr r2, [r3, #1828] + ldr r3, [r2] beq .L174 - orr r4, r4, #24576 - lsls r3, r0, #29 - bfc r4, #15, #1 - mov r0, #0 - orr r4, r4, #196608 + lsls r1, r0, #29 + orr r3, r3, #24576 + movw r1, #16641 + str r1, [r2, #344] + ldr r1, .L180+4 + bfc r3, #15, #1 + orr r3, r3, #196608 it mi - orrmi r4, r4, #32768 - bl rknand_get_clk_rate - ldr r3, [r5, #1828] - movw r2, #8322 - str r2, [r3, #344] - add r2, r2, #1040384 - addw r2, r2, #3969 - str r2, [r3, #304] - movs r2, #38 - str r2, [r3, #308] - movs r2, #39 - str r2, [r3, #308] + orrmi r3, r3, #32768 + str r1, [r2, #304] + movs r1, #38 + str r1, [r2, #308] + movs r1, #39 + str r1, [r2, #308] b .L176 .L174: - bfi r4, r3, #13, #1 + bfi r3, r1, #13, #1 .L176: - ldr r3, [r5, #1828] + str r3, [r2] movs r0, #0 - str r4, [r3] - pop {r3, r4, r5, pc} + bx lr .L181: .align 2 .L180: .word .LANCHOR0 + .word 1710595 .fnend .size NandcSetMode, .-NandcSetMode .align 1 @@ -1289,8 +1310,8 @@ FlashReadStatus: movs r0, #80 add r3, r5, r4, lsl #8 adds r4, r4, #8 - str r2, [r3, #2056] lsls r4, r4, #8 + str r2, [r3, #2056] bl NandcDelayns ldr r0, [r5, r4] pop {r3, r4, r5, pc} @@ -1319,7 +1340,7 @@ ToshibaSetRRPara: add r10, r9, #288 mov r6, r1 .L195: - ldrb r3, [r7, #1901] @ zero_extendqisi2 + ldrb r3, [r7, #1905] @ zero_extendqisi2 cmp r4, r3 bcs .L202 movs r3, #85 @@ -1328,7 +1349,7 @@ ToshibaSetRRPara: movs r0, #200 str r3, [r5, #4] bl NandcDelayns - ldrb r3, [r7, #1900] @ zero_extendqisi2 + ldrb r3, [r7, #1904] @ zero_extendqisi2 cmp r3, #34 bne .L196 add r3, r4, r8 @@ -1381,7 +1402,7 @@ SamsungSetRRPara: mov r7, r3 mov r10, r4 .L206: - ldrb r3, [r8, #1901] @ zero_extendqisi2 + ldrb r3, [r8, #1905] @ zero_extendqisi2 cmp r4, r3 bcs .L208 str r9, [r6, #8] @@ -1420,7 +1441,7 @@ HynixSetRRPara: mov r9, r2 mov r5, r0 mov r8, r1 - addw r4, r6, #1902 + addw r4, r6, #1906 ldr r3, [r6, #1788] ldrb r2, [r3, #19] @ zero_extendqisi2 lsls r3, r0, #3 @@ -1466,8 +1487,8 @@ HynixSetRRPara: str r3, [sp, #4] bl NandcDelayns ldrsb r2, [r4, #1]! - str r2, [r8, #2048] ldr r3, [sp, #4] + str r2, [r8, #2048] b .L215 .L217: add fp, fp, r10 @@ -1476,7 +1497,7 @@ HynixSetRRPara: add r5, r5, r6 str r3, [fp, #2056] bl NandcFlashDeCs - strb r7, [r5, #2756] + strb r7, [r5, #2760] add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} @@ -1511,8 +1532,8 @@ FlashSetReadRetryDefault: ldrb r3, [r2, r4, lsl #3] @ zero_extendqisi2 cmp r3, #173 bne .L222 - ldrb r1, [r5, #1903] @ zero_extendqisi2 - adds r2, r2, #114 + ldrb r1, [r5, #1907] @ zero_extendqisi2 + adds r2, r2, #118 movs r3, #0 bl HynixSetRRPara .L222: @@ -1575,8 +1596,8 @@ FlashReadStatusEN: movs r2, #112 str r2, [r3, #2056] .L233: - movs r0, #80 lsls r4, r4, #8 + movs r0, #80 bl NandcDelayns ldr r0, [r6, r4] uxtb r0, r0 @@ -1786,7 +1807,7 @@ FlashSetInterfaceMode: mov lr, #128 mov ip, #1 mov r8, #35 - ldrb r3, [r5, #2760] @ zero_extendqisi2 + ldrb r3, [r5, #2764] @ zero_extendqisi2 mov r9, #32 mov r10, #5 and r2, r3, #1 @@ -1990,10 +2011,10 @@ SandiskSetRRPara: movs r2, #0 sub r6, r0, #48 .L304: - ldrb r3, [r1, #1901] @ zero_extendqisi2 + ldrb r3, [r1, #1905] @ zero_extendqisi2 cmp r2, r3 bcs .L309 - ldrb r3, [r1, #1900] @ zero_extendqisi2 + ldrb r3, [r1, #1904] @ zero_extendqisi2 cmp r3, #67 add r3, r2, r4 ite eq @@ -2043,8 +2064,8 @@ FlashEraseSLc2KBlocks: str r3, [sp] add r3, sp, #12 bl LogAddr2PhyAddr - ldrb r2, [r8, #1616] @ zero_extendqisi2 ldr r3, [sp, #12] + ldrb r2, [r8, #1616] @ zero_extendqisi2 cmp r3, r2 bcc .L314 mov r3, #-1 @@ -2060,20 +2081,20 @@ FlashEraseSLc2KBlocks: mov r0, r4 bl NandcFlashCs movs r2, #0 - mov r0, r4 ldr r1, [sp, #8] + mov r0, r4 bl FlashEraseCmd mov r0, r4 bl NandcWaitFlashReady - mov r0, r4 ldr r1, [sp, #8] + mov r0, r4 bl FlashReadStatus - movs r2, #0 ldr r3, [sp, #8] + movs r2, #0 sbfx r0, r0, #0, #1 str r0, [r6, r5] - mov r0, r4 ldr r1, [r8, #4] + mov r0, r4 add r1, r1, r3 bl FlashEraseCmd mov r0, r4 @@ -2176,42 +2197,51 @@ FlashReadDpCmd: .fnend .size FlashReadDpCmd, .-FlashReadDpCmd .align 1 - .global FlashDeInit + .global ftl_flash_de_init .thumb .thumb_func - .type FlashDeInit, %function -FlashDeInit: + .type ftl_flash_de_init, %function +ftl_flash_de_init: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, lr} - .save {r4, lr} + push {r3, r4, r5, lr} + .save {r3, r4, r5, lr} movs r0, #0 - ldr r4, .L339 + ldr r4, .L340 bl NandcWaitFlashReady bl FlashSetReadRetryDefault - ldrb r3, [r4, #2761] @ zero_extendqisi2 - cbz r3, .L332 - ldrb r3, [r4, #2760] @ zero_extendqisi2 + ldr r3, .L340+4 + ldr r2, [r4, #2768] + cmp r2, r3 + bne .L332 + movs r0, #0 + bl flash_enter_slc_mode +.L332: + ldrb r3, [r4, #2772] @ zero_extendqisi2 + ldr r5, .L340 + cbz r3, .L333 + ldrb r3, [r5, #2764] @ zero_extendqisi2 lsls r3, r3, #31 - bpl .L332 + bpl .L333 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode movs r3, #0 - strb r3, [r4, #2761] -.L332: + strb r3, [r5, #2772] +.L333: ldr r3, [r4, #12] movs r0, #0 str r0, [r3, #336] - pop {r4, pc} -.L340: + pop {r3, r4, r5, pc} +.L341: .align 2 -.L339: +.L340: .word .LANCHOR0 + .word 1446522928 .fnend - .size FlashDeInit, .-FlashDeInit + .size ftl_flash_de_init, .-ftl_flash_de_init .align 1 .global NandcRandmzSel .thumb @@ -2222,14 +2252,14 @@ NandcRandmzSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L342 + ldr r3, .L343 add r0, r3, r0, lsl #3 ldr r3, [r0, #12] str r1, [r3, #336] bx lr -.L343: +.L344: .align 2 -.L342: +.L343: .word .LANCHOR0 .fnend .size NandcRandmzSel, .-NandcRandmzSel @@ -2248,45 +2278,45 @@ NandcTimeCfg: mov r4, r0 movs r0, #0 bl rknand_get_clk_rate - ldr r1, .L354 + ldr r1, .L355 bl __aeabi_idiv - ldr r3, .L354+4 + ldr r3, .L355+4 ldr r3, [r3, #1828] cmp r0, #250 - ble .L345 + ble .L346 movw r2, #8354 - b .L352 -.L345: + b .L353 +.L346: cmp r0, #220 - bgt .L353 + bgt .L354 cmp r0, #185 - ble .L348 + ble .L349 movw r2, #4226 - b .L352 -.L348: + b .L353 +.L349: cmp r0, #160 - ble .L349 + ble .L350 movw r2, #4194 - b .L352 -.L349: + b .L353 +.L350: cmp r4, #35 - bhi .L350 + bhi .L351 movw r2, #4193 - b .L352 -.L350: + b .L353 +.L351: cmp r4, #99 - bls .L351 -.L353: + bls .L352 +.L354: movw r2, #8322 - b .L352 -.L351: - movw r2, #4225 + b .L353 .L352: + movw r2, #4225 +.L353: str r2, [r3, #4] pop {r4, pc} -.L355: +.L356: .align 2 -.L354: +.L355: .word 1000000 .word .LANCHOR0 .fnend @@ -2304,25 +2334,25 @@ FlashTimingCfg: sub r3, r0, #4192 subs r3, r3, #1 cmp r3, #1 - bls .L357 + bls .L358 sub r3, r0, #4224 subs r3, r3, #1 cmp r3, #1 - bls .L357 + bls .L358 movw r3, #8322 cmp r0, r3 - bne .L358 -.L357: - ldr r3, .L359 + bne .L359 +.L358: + ldr r3, .L360 ldr r3, [r3, #1828] str r0, [r3, #4] -.L358: - ldr r3, .L359+4 +.L359: + ldr r3, .L360+4 ldrb r0, [r3, #277] @ zero_extendqisi2 b NandcTimeCfg -.L360: +.L361: .align 2 -.L359: +.L360: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -2338,32 +2368,39 @@ NandcInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} + movs r1, #0 + ldr r3, .L364 + movs r2, #1 movs r5, #0 - ldr r4, .L362 - movs r3, #1 - str r0, [r4, #1828] - str r0, [r4, #12] - str r3, [r4, #24] - movs r3, #2 - str r0, [r4, #20] - str r3, [r4, #32] - movs r3, #3 - str r0, [r4, #28] - str r0, [r4, #36] - str r5, [r4, #16] - str r3, [r4, #40] - ldr r3, [r0] - and r3, r3, #253952 - ubfx r2, r3, #13, #1 - str r2, [r4, #2764] - ldr r2, [r0, #352] - and r3, r3, #245760 - orr r3, r3, #256 - ubfx r2, r2, #16, #4 - str r2, [r4, #2768] - ldr r2, [r0, #352] - str r2, [r4, #2772] - str r3, [r0] + str r1, [r3, #16] + str r0, [r3, #12] + str r2, [r3, #24] + movs r2, #2 + str r0, [r3, #20] + str r2, [r3, #32] + movs r2, #3 + str r0, [r3, #28] + str r0, [r3, #36] + str r0, [r3, #1828] + str r2, [r3, #40] + ldr r2, [r0] + and r2, r2, #253952 + ubfx r4, r2, #13, #1 + bfi r2, r1, #13, #1 + ldr r1, [r0, #352] + orr r2, r2, #256 + str r4, [r3, #2776] + movw r4, #2049 + ubfx r1, r1, #16, #4 + str r1, [r3, #2780] + ldr r1, [r0, #352] + cmp r1, r4 + mov r4, r3 + str r1, [r3, #2768] + itt eq + moveq r3, #8 + streq r3, [r4, #2780] + str r2, [r0] movs r0, #40 ldr r3, [r4, #1828] str r5, [r3, #336] @@ -2372,21 +2409,21 @@ NandcInit: movw r2, #8322 mov r0, #36864 str r2, [r3, #344] - ldr r2, .L362+4 + ldr r2, .L364+4 str r2, [r3, #304] bl ftl_malloc - str r5, [r4, #2804] str r5, [r4, #2812] - str r0, [r4, #2776] - str r0, [r4, #2780] - add r0, r0, #32768 + str r5, [r4, #2820] str r0, [r4, #2784] + str r0, [r4, #2788] + add r0, r0, #32768 + str r0, [r4, #2792] pop {r3, r4, r5, pc} -.L363: +.L365: .align 2 -.L362: +.L364: .word .LANCHOR0 - .word 1579009 + .word 1710593 .fnend .size NandcInit, .-NandcInit .align 1 @@ -2400,7 +2437,7 @@ NandcGetTimeCfg: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, lr} .save {r4, r5, lr} - ldr r4, .L365 + ldr r4, .L367 ldr r5, [r4, #1828] ldr r5, [r5, #4] str r5, [r0] @@ -2417,9 +2454,9 @@ NandcGetTimeCfg: orr r2, r2, r1, lsl #16 str r2, [r3] pop {r4, r5, pc} -.L366: +.L368: .align 2 -.L365: +.L367: .word .LANCHOR0 .fnend .size NandcGetTimeCfg, .-NandcGetTimeCfg @@ -2433,37 +2470,37 @@ NandcBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L375 + ldr r3, .L377 movs r1, #1 ldr r2, [r3, #1828] - str r0, [r3, #2816] + str r0, [r3, #2824] movs r3, #0 str r1, [r2, #8] movs r1, #16 cmp r0, r1 bfi r3, r1, #8, #8 bfc r3, #18, #1 - bne .L368 -.L371: + bne .L370 +.L373: bfc r3, #4, #1 - b .L369 -.L368: + b .L371 +.L370: cmp r0, #24 - bne .L370 + bne .L372 orr r3, r3, #16 - b .L369 -.L370: + b .L371 +.L372: cmp r0, #40 orr r3, r3, #262144 orr r3, r3, #16 - beq .L371 -.L369: + beq .L373 +.L371: orr r3, r3, #1 str r3, [r2, #12] bx lr -.L376: +.L378: .align 2 -.L375: +.L377: .word .LANCHOR0 .fnend .size NandcBchSel, .-NandcBchSel @@ -2477,32 +2514,33 @@ FlashBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L378 + ldr r3, .L380 strb r0, [r3, #1892] b NandcBchSel -.L379: +.L381: .align 2 -.L378: +.L380: .word .LANCHOR0 .fnend .size FlashBchSel, .-FlashBchSel .align 1 - .global FlashResume + .global ftl_flash_resume .thumb .thumb_func - .type FlashResume, %function -FlashResume: + .type ftl_flash_resume, %function +ftl_flash_resume: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L388 - push {r4, r5, r6, lr} - .save {r4, r5, r6, lr} + push {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} movs r5, #0 + ldr r3, .L390 + add r7, r3, #1792 ldr r2, [r3, #1828] - add r6, r3, #1792 - ldr r1, [r3, #1832] mov r4, r3 + ldr r1, [r3, #1832] + ldr r6, [r3, #1848] str r1, [r2] ldr r1, [r3, #1836] ldr r2, [r3, #1828] @@ -2511,97 +2549,53 @@ FlashResume: str r1, [r2, #8] ldr r1, [r3, #1844] str r1, [r2, #12] - ldr r1, [r3, #1848] - str r1, [r2, #304] ldr r1, [r3, #1852] + str r6, [r2, #304] str r1, [r2, #308] ldr r1, [r3, #1856] str r1, [r2, #336] ldr r1, [r3, #1860] str r1, [r2, #344] -.L382: - ldrb r3, [r6, r5, lsl #3] @ zero_extendqisi2 +.L384: + ldrb r3, [r7, r5, lsl #3] @ zero_extendqisi2 subs r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L381 + bhi .L383 uxtb r0, r5 bl FlashReset -.L381: +.L383: adds r5, r5, #1 cmp r5, #4 - bne .L382 - ldrb r3, [r4, #2761] @ zero_extendqisi2 - ldr r5, .L388 - cbz r3, .L383 + bne .L384 + ldrb r3, [r4, #2772] @ zero_extendqisi2 + ldr r5, .L390 + cbz r3, .L385 movs r0, #1 bl NandcSetMode - ldrb r0, [r5, #2760] @ zero_extendqisi2 + ldrb r0, [r5, #2764] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r5, #2760] @ zero_extendqisi2 + ldrb r0, [r5, #2764] @ zero_extendqisi2 bl NandcSetMode - ldrb r0, [r5, #1849] @ zero_extendqisi2 + ubfx r0, r6, #8, #8 bl NandcSetDdrPara -.L383: +.L385: ldr r3, [r4, #1788] ldrb r0, [r3, #20] @ zero_extendqisi2 - bl FlashBchSel - movs r0, #0 - pop {r4, r5, r6, pc} -.L389: + pop {r3, r4, r5, r6, r7, lr} + b FlashBchSel +.L391: .align 2 -.L388: +.L390: .word .LANCHOR0 .fnend - .size FlashResume, .-FlashResume + .size ftl_flash_resume, .-ftl_flash_resume .align 1 - .global NandCIrqEnable + .global ftl_nandc_get_irq_status .thumb .thumb_func - .type NandCIrqEnable, %function -NandCIrqEnable: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - movs r3, #1 - ldr r2, [r0, #368] - lsls r3, r3, r1 - orrs r2, r2, r3 - str r2, [r0, #368] - ldr r2, [r0, #364] - orrs r3, r3, r2 - str r3, [r0, #364] - bx lr - .fnend - .size NandCIrqEnable, .-NandCIrqEnable - .align 1 - .global NandCIrqDisable - .thumb - .thumb_func - .type NandCIrqDisable, %function -NandCIrqDisable: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - movs r3, #1 - ldr r2, [r0, #368] - lsls r3, r3, r1 - orrs r2, r2, r3 - str r2, [r0, #368] - ldr r2, [r0, #364] - bic r3, r2, r3 - str r3, [r0, #364] - bx lr - .fnend - .size NandCIrqDisable, .-NandCIrqDisable - .align 1 - .global rk_nandc_get_irq_status - .thumb - .thumb_func - .type rk_nandc_get_irq_status, %function -rk_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 @@ -2609,7 +2603,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 1 .global rk_nandc_flash_ready .thumb @@ -2620,8 +2614,13 @@ rk_nandc_flash_ready: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - movs 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 1 @@ -2637,19 +2636,26 @@ NandcIqrWaitFlashReady: .save {r4, lr} mov r4, r0 bl rk_nandc_rb_irq_flag_init - mov r0, r4 - movs 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] - mov r0, r4 lsls r3, r3, #22 bmi .L395 + mov r0, r4 pop {r4, lr} b wait_for_nand_flash_ready .L395: - movs r1, #1 - pop {r4, lr} - b NandCIrqDisable + ldr r3, [r4, #368] + orr r3, r3, #2 + str r3, [r4, #368] + ldr r3, [r4, #364] + bic r3, r3, #2 + str r3, [r4, #364] + pop {r4, pc} .fnend .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady .align 1 @@ -2664,21 +2670,21 @@ FlashEraseBlocks: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r0 - ldr r4, .L425 + ldr r4, .L430 .pad #28 sub sp, sp, #28 mov r10, r1 mov r8, r2 ldrb r5, [r4] @ zero_extendqisi2 - cbz r5, .L410 + cbz r5, .L414 mov r1, r2 bl FlashEraseSLc2KBlocks b .L398 -.L410: +.L414: mov fp, r4 .L397: cmp r5, r8 - bcs .L423 + bcs .L428 movs r3, #36 movs r1, #0 add r2, sp, #16 @@ -2700,7 +2706,7 @@ FlashEraseBlocks: str r3, [r9, r6] b .L400 .L399: - ldrb r3, [fp, #2820] @ zero_extendqisi2 + ldrb r3, [fp, #2828] @ zero_extendqisi2 cmp r3, #0 add r3, r4, r0, lsl #4 it eq @@ -2751,24 +2757,25 @@ FlashEraseBlocks: movne r2, #1 bl FlashWaitReadyEN mov r0, r6 - mov r2, r7 ldr r1, [sp, #16] + mov r2, r7 bl FlashEraseCmd mov r0, r6 bl NandcFlashDeCs .L400: adds r5, r5, #1 b .L397 -.L423: +.L428: ldr r0, [r4, #1828] movs r5, #0 bl NandcIqrWaitFlashReady - ldr r6, .L425 + ldr r6, .L430 addw r7, r6, #1660 .L407: - ldrb r3, [r4, #1616] @ zero_extendqisi2 - cmp r5, r3 - bcs .L424 + ldrb r2, [r4, #1616] @ zero_extendqisi2 + ldr r3, .L430 + cmp r5, r2 + bcs .L429 uxtb r0, r5 bl FlashWaitCmdDone cmp r10, #1 @@ -2781,15 +2788,33 @@ FlashEraseBlocks: .L408: adds r5, r5, #1 b .L407 -.L424: +.L429: + ldr r2, [r3, #2832] + cbnz r2, .L410 +.L412: movs r0, #0 + b .L398 +.L410: + ldrb r3, [r3, #1792] @ zero_extendqisi2 + cmp r3, #69 + bne .L412 + movs r3, #0 + movs r2, #36 + mov r1, r3 +.L411: + cmp r3, r8 + beq .L412 + mul r0, r2, r3 + adds r3, r3, #1 + str r1, [r9, r0] + b .L411 .L398: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L426: +.L431: .align 2 -.L425: +.L430: .word .LANCHOR0 .fnend .size FlashEraseBlocks, .-FlashEraseBlocks @@ -2803,8 +2828,13 @@ rk_nandc_flash_xfer_completed: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - movs 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 1 @@ -2820,7 +2850,7 @@ NandcSendDumpDataStart: ldr r2, [r0, #16] .pad #8 sub sp, sp, #8 - ldr r3, .L429 + ldr r3, .L434 str r2, [sp, #4] ldr r2, [sp, #4] bic r2, r2, #4 @@ -2833,9 +2863,9 @@ NandcSendDumpDataStart: add sp, sp, #8 @ sp needed bx lr -.L430: +.L435: .align 2 -.L429: +.L434: .word 538969130 .fnend .size NandcSendDumpDataStart, .-NandcSendDumpDataStart @@ -2851,12 +2881,12 @@ NandcSendDumpDataDone: @ link register save eliminated. .pad #8 sub sp, sp, #8 -.L432: +.L437: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] lsls r3, r3, #11 - bpl .L432 + bpl .L437 add sp, sp, #8 @ sp needed bx lr @@ -2879,15 +2909,15 @@ NandcXferStart: mov r7, r1 ldr r2, [sp, #60] ldr fp, [sp, #56] - cbnz r2, .L449 + cbnz r2, .L454 adds r2, fp, #0 it ne movne r2, #1 - b .L436 -.L449: + b .L441 +.L454: movs r2, #1 -.L436: - ldr r5, .L454 +.L441: + ldr r5, .L459 movs r4, #0 add r0, r5, r0, lsl #3 ldr r6, [r0, #12] @@ -2905,32 +2935,35 @@ NandcXferStart: orr r4, r4, #536870912 orr r4, r4, #1024 bfi r4, r3, #4, #1 - ldr r3, [r5, #2768] + ldr r3, [r5, #2780] cmp r3, #3 - bls .L437 + bls .L442 ldr r3, [r6, #16] str r3, [sp, #12] ldr r3, [sp, #12] bic r3, r3, #4 str r3, [sp, #12] cmp r2, #0 - beq .L438 - cbnz r7, .L439 -.L447: - add r8, r8, #1 + beq .L443 + cbnz r7, .L444 +.L452: mov r0, r6 + add r8, r8, #1 bl rk_nandc_xfer_irq_flag_init - mov r0, r6 - movs r1, #0 + ldr r3, [r6, #368] asr r8, r8, #1 - bl NandCIrqEnable + orr r3, r3, #1 + str r3, [r6, #368] + ldr r3, [r6, #364] bfi r4, r8, #22, #6 + orr r3, r3, #1 + str r3, [r6, #364] cmp fp, #0 - beq .L440 + beq .L445 mov r0, fp - b .L441 -.L439: - ldr r3, [r5, #2816] + b .L446 +.L444: + ldr r3, [r5, #2824] mov ip, r5 ldr r0, [sp, #60] cmp r3, #25 @@ -2942,53 +2975,53 @@ NandcXferStart: str r3, [sp, #4] movs r3, #0 mov r1, r3 -.L443: +.L448: ldr r2, [sp, #4] cmp r1, r2 - bcs .L447 + bcs .L452 ldr r2, [sp, #60] lsr r10, r3, #2 - cbz r2, .L444 + cbz r2, .L449 ldrh r2, [r0, #2] ldrh lr, [r0], #4 orr lr, lr, r2, lsl #16 - ldr r2, [ip, #2784] + ldr r2, [ip, #2792] str lr, [r2, r10, lsl #2] - b .L445 -.L444: - ldr r2, [ip, #2784] + b .L450 +.L449: + ldr r2, [ip, #2792] mov lr, r2 mov r2, #-1 str r2, [lr, r10, lsl #2] -.L445: +.L450: ldr r2, [sp] adds r1, r1, #1 add r3, r3, r2 - b .L443 -.L440: - ldr r0, [r5, #2780] -.L441: - ldr r3, [r5, #2784] + b .L448 +.L445: + ldr r0, [r5, #2788] +.L446: + ldr r3, [r5, #2792] ubfx r8, r4, #22, #5 mov r2, r7 - str r0, [r5, #2788] + str r0, [r5, #2796] lsl r1, r8, #10 - str r3, [r5, #2792] + str r3, [r5, #2800] bl rknand_dma_map_single mov r2, r7 lsl r1, r8, #7 clz r7, r7 lsrs r7, r7, #5 - str r0, [r5, #2796] - ldr r0, [r5, #2792] + str r0, [r5, #2804] + ldr r0, [r5, #2800] bl rknand_dma_map_single movs r3, #1 - str r3, [r5, #2804] + str r3, [r5, #2812] tst fp, #3 - ldr r3, [r5, #2796] - str r0, [r5, #2800] + ldr r3, [r5, #2804] + str r0, [r5, #2808] str r3, [r6, #20] - ldr r3, [r5, #2800] + ldr r3, [r5, #2808] str r3, [r6, #24] mov r3, #0 str r3, [sp, #12] @@ -3014,10 +3047,10 @@ NandcXferStart: ldr r3, [sp, #12] orr r3, r3, #1 str r3, [sp, #12] -.L438: +.L443: ldr r3, [sp, #12] str r3, [r6, #16] -.L437: +.L442: str r9, [r6, #12] str r4, [r6, #8] orr r4, r4, #4 @@ -3025,9 +3058,9 @@ NandcXferStart: add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L455: +.L460: .align 2 -.L454: +.L459: .word .LANCHOR0 .fnend .size NandcXferStart, .-NandcXferStart @@ -3043,14 +3076,14 @@ Ftl_log2: @ link register save eliminated. movs r1, #0 movs r2, #1 -.L457: +.L462: cmp r2, r0 uxth r3, r1 add r1, r1, #1 - bhi .L459 + bhi .L464 lsls r2, r2, #1 - b .L457 -.L459: + b .L462 +.L464: subs r0, r3, #1 uxth r0, r0 bx lr @@ -3079,25 +3112,25 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L463 + ldr r3, .L468 cmp r0, #23 it ls movls r0, #24 - ldrh r2, [r3, #2828] - ldrh r1, [r3, #2838] - str r0, [r3, #2824] + ldrh r2, [r3, #2840] + ldrh r1, [r3, #2850] + str r0, [r3, #2836] muls r2, r0, r2 subs r0, r1, r0 - ldr r1, [r3, #2844] - strh r0, [r3, #2836] @ movhi + ldr r1, [r3, #2856] + strh r0, [r3, #2848] @ movhi movs r0, #0 - str r2, [r3, #2832] + str r2, [r3, #2844] subs r2, r1, r2 - str r2, [r3, #2840] + str r2, [r3, #2852] bx lr -.L464: +.L469: .align 2 -.L463: +.L468: .word .LANCHOR0 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -3116,29 +3149,29 @@ FtlConstantsInit: ldrh r2, [r5, #14] .pad #20 sub sp, sp, #20 - ldr r4, .L494 + ldr r4, .L498 ldrh lr, [r0, #8] str r2, [sp] - addw r1, r4, #2856 + addw r1, r4, #2868 ldrh r2, [sp] ldrh r3, [r0, #10] ldrh r0, [r0, #12] - strh r2, [r4, #2838] @ movhi + strh r2, [r4, #2850] @ movhi movs r2, #0 - strh lr, [r4, #2848] @ movhi - strh r3, [r4, #2850] @ movhi - strh r0, [r4, #2852] @ movhi -.L466: + strh lr, [r4, #2860] @ movhi + strh r3, [r4, #2862] @ movhi + strh r0, [r4, #2864] @ movhi +.L471: strb r2, [r2, r1] adds r2, r2, #1 cmp r2, #32 - bne .L466 + bne .L471 ldrh r1, [r5, #14] ldrh r2, [r5, #20] cmp r2, r1, lsr #8 - bcs .L467 + bcs .L472 uxtb r10, r0 - ldr r9, .L494+4 + ldr r9, .L498+4 lsl r2, r10, #1 uxtb r2, r2 str r2, [sp, #8] @@ -3146,9 +3179,9 @@ FtlConstantsInit: muls r2, r0, r2 str r2, [sp, #4] movs r2, #0 -.L468: +.L473: cmp r2, r0 - bcs .L470 + bcs .L475 ldr r6, [sp, #4] rsb ip, r0, r2 uxtb r1, r2 @@ -3158,10 +3191,10 @@ FtlConstantsInit: str r6, [sp, #12] movs r6, #0 mov r8, r6 -.L471: +.L476: cmp r8, r3 add r6, r6, r0 - bcs .L493 + bcs .L497 ldr r7, [sp, #12] add fp, r1, r10 strb r1, [ip, r6] @@ -3170,176 +3203,182 @@ FtlConstantsInit: ldr r7, [sp, #8] add r1, r1, r7 uxtb r1, r1 - b .L471 -.L493: + b .L476 +.L497: adds r2, r2, #1 - b .L468 -.L470: + b .L473 +.L475: lsls r3, r3, #1 - strh r3, [r4, #2850] @ movhi + strh r3, [r4, #2862] @ movhi ldr r3, [sp] lsrs r7, r3, #1 - strh r7, [r4, #2838] @ movhi -.L467: + strh r7, [r4, #2850] @ movhi +.L472: cmp lr, #1 mov r3, #5 - strh r3, [r4, #2888] @ movhi + strh r3, [r4, #2900] @ movhi mov r3, #0 - strh r3, [r4, #2890] @ movhi + strh r3, [r4, #2902] @ movhi it eq - ldreq r3, .L494 + ldreq r3, .L498 ldrb r8, [r4] @ zero_extendqisi2 it eq - strheq lr, [r3, #2888] @ movhi + strheq lr, [r3, #2900] @ movhi mov r3, #4352 - strh r3, [r4, #2892] @ movhi + strh r3, [r4, #2904] @ movhi cmp r8, #0 - beq .L473 - ldr r3, .L494 + beq .L478 + ldr r3, .L498 mov r2, #384 - strh r2, [r3, #2892] @ movhi -.L473: - ldrh r6, [r4, #2838] - ldrh r7, [r4, #2850] + strh r2, [r3, #2904] @ movhi +.L478: + ldrh r6, [r4, #2850] + ldrh r7, [r4, #2862] smulbb r7, r7, r0 smulbb r0, r6, r0 uxth r7, r7 - strh r7, [r4, #2828] @ movhi + strh r7, [r4, #2840] @ movhi uxth r0, r0 - strh r0, [r4, #2894] @ movhi + strh r0, [r4, #2906] @ movhi bl Ftl_log2 ldrh r9, [r5, #16] ldrh fp, [r5, #20] ldrh r1, [r5, #18] smulbb r3, r7, r9 - strh r9, [r4, #2898] @ movhi - strh r1, [r4, #2900] @ movhi - strh fp, [r4, #2904] @ movhi - strh r3, [r4, #2902] @ movhi - strh r0, [r4, #2896] @ movhi - mov r0, fp + strh r9, [r4, #2910] @ movhi + strh r1, [r4, #2912] @ movhi str r1, [sp] + strh fp, [r4, #2916] @ movhi + strh r3, [r4, #2914] @ movhi + strh r0, [r4, #2908] @ movhi + mov r0, fp bl Ftl_log2 lsl r3, fp, #9 cmp r6, #1024 + ldr r1, [sp] uxth r3, r3 - strh r3, [r4, #2908] @ movhi + strh r3, [r4, #2920] @ movhi it hi - ldrhi r2, .L494 + ldrhi r2, .L498 lsr r3, r3, #8 - strh r3, [r4, #2910] @ movhi + strh r3, [r4, #2922] @ movhi ldrh r3, [r5, #26] - strh r3, [r4, #2912] @ movhi + mul r1, r1, fp + strh r3, [r4, #2924] @ movhi mul r3, r6, r7 - str r3, [r4, #2844] + str r3, [r4, #2856] itt hi uxtbhi r3, r6 - strhhi r3, [r2, #2890] @ movhi + strhhi r3, [r2, #2902] @ movhi mov r10, r0 - ldrh r5, [r4, #2890] - ldr r1, [sp] + ldrh r5, [r4, #2902] + strh r0, [r4, #2918] @ movhi subs r5, r6, r5 - strh r0, [r4, #2906] @ movhi - ldrh r0, [r4, #2892] + ldrh r0, [r4, #2904] + ldr r3, .L498 muls r5, r7, r5 - ldr r3, .L494 lsls r0, r0, #3 - mul r1, r1, fp str r3, [sp] mul r5, fp, r5 mul r5, r9, r5 asrs r5, r5, #11 - str r5, [r4, #2916] + str r5, [r4, #2928] bl __aeabi_idiv ldr r3, [sp] uxth r0, r0 cmp r0, #4 - itet ls + itee hi + strhhi r0, [r3, #2932] @ movhi movls r2, #4 - strhhi r0, [r3, #2920] @ movhi - strhls r2, [r3, #2920] @ movhi + strhls r2, [r3, #2932] @ movhi cmp r8, #0 - beq .L477 + beq .L482 mov r3, #640 - strh r3, [r4, #2892] @ movhi -.L477: - ldrh r3, [r4, #2892] + strh r3, [r4, #2904] @ movhi +.L482: + ldrh r3, [r4, #2904] lsls r6, r6, #6 mov r1, r7 - ldr r5, .L494 + ldr r5, .L498 asr r3, r3, r10 add r10, r10, #9 asr r6, r6, r10 adds r3, r3, #2 - strh r3, [r4, #2922] @ movhi + strh r3, [r4, #2934] @ movhi uxth r0, r6 - strh r6, [r4, #2924] @ movhi + strh r6, [r4, #2936] @ movhi add r6, r0, #8 mul r3, r7, r0 - ldrh r0, [r4, #2920] - str r3, [r4, #2928] + ldrh r0, [r4, #2932] + str r3, [r4, #2940] bl __aeabi_uidiv cmp r7, #1 - ldr r7, .L494 uxtah r0, r6, r0 + ldr r6, .L498 it eq addeq r0, r0, #4 - str r0, [r5, #2824] - ldrh r0, [r4, #2824] + str r0, [r5, #2836] + ldrh r0, [r4, #2836] bl FtlSysBlkNumInit - ldr r3, [r4, #2824] - ldr r5, [r4, #2840] + ldr r3, [r4, #2836] + ldr r5, [r4, #2852] mov r0, #2048 - ldrh r6, [r4, #2904] - str r3, [r4, #2932] - ldrh r3, [r4, #2898] + ldrh r7, [r4, #2916] + str r3, [r4, #2944] + ldrh r3, [r4, #2910] lsls r5, r5, #2 - mov r1, r6 + mov r1, r7 muls r5, r3, r5 - ldrh r3, [r4, #2906] + ldrh r3, [r4, #2918] adds r3, r3, #9 lsrs r5, r5, r3 adds r5, r5, #2 uxth r5, r5 - strh r5, [r4, #2936] @ movhi + strh r5, [r4, #2948] @ movhi bl __aeabi_idiv - ldrh r2, [r4, #2920] + ldrh r2, [r4, #2932] movs r3, #0 - str r3, [r4, #2940] + str r3, [r4, #1896] adds r3, r2, #3 - strh r3, [r4, #2920] @ movhi - ldr r3, [r4, #2928] + strh r3, [r4, #2932] @ movhi + ldr r3, [r4, #2940] adds r1, r3, #3 - str r1, [r4, #2928] - ldrb r1, [r4, #76] @ zero_extendqisi2 - strh r0, [r4, #2938] @ movhi - cbz r1, .L480 + str r1, [r4, #2940] + strh r0, [r4, #2950] @ movhi + ldrb r0, [r4, #76] @ zero_extendqisi2 + cbz r0, .L485 adds r2, r2, #4 adds r3, r3, #5 - strh r2, [r7, #2920] @ movhi - str r3, [r7, #2928] -.L480: - ldrh r2, [r4, #2836] + strh r2, [r6, #2932] @ movhi + b .L496 +.L485: + cmp r1, #7 + bhi .L486 + movs r3, #8 +.L496: + str r3, [r6, #2940] +.L486: + ldrh r2, [r4, #2848] movs r3, #0 - strh r3, [r4, #2944] @ movhi + strh r3, [r4, #2952] @ movhi movs r0, #0 lsrs r3, r2, #3 add r3, r3, r2, lsl #1 adds r3, r3, #52 add r5, r3, r5, lsl #2 - cmp r5, r6, lsl #9 + cmp r5, r7, lsl #9 ittt cc movcc r2, #1 - ldrcc r3, .L494 - strhcc r2, [r3, #2944] @ movhi + ldrcc r3, .L498 + strhcc r2, [r3, #2952] @ movhi add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L495: +.L499: .align 2 -.L494: +.L498: .word .LANCHOR0 - .word .LANCHOR0+2856 + .word .LANCHOR0+2868 .fnend .size FtlConstantsInit, .-FtlConstantsInit .align 1 @@ -3352,26 +3391,26 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L503 - ldrh r3, [r2, #2946] - cbz r3, .L502 - ldr r3, [r2, #2948] - ldrh r2, [r2, #2920] + ldr r2, .L507 + ldrh r3, [r2, #2954] + cbz r3, .L506 + ldr r3, [r2, #2956] + ldrh r2, [r2, #2932] add r2, r3, r2, lsl #1 -.L498: +.L502: cmp r3, r2 - beq .L502 + beq .L506 ldrh r1, [r3], #2 cmp r1, r0 - bne .L498 + bne .L502 movs r0, #1 bx lr -.L502: +.L506: movs r0, #0 bx lr -.L504: +.L508: .align 2 -.L503: +.L507: .word .LANCHOR0 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -3384,34 +3423,34 @@ FtlCacheMetchLpa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L513 + ldr r2, .L517 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r3, [r2, #2952] - cbz r3, .L512 - ldr r5, [r2, #2956] + ldr r3, [r2, #2960] + cbz r3, .L516 + ldr r5, [r2, #2964] movs r6, #36 movs r2, #0 -.L508: +.L512: mla r4, r6, r2, r5 ldr r4, [r4, #16] cmp r4, r0 - bcc .L507 + bcc .L511 cmp r4, r1 - bls .L510 -.L507: + bls .L514 +.L511: adds r2, r2, #1 cmp r2, r3 - bne .L508 -.L512: + bne .L512 +.L516: movs r0, #0 pop {r4, r5, r6, pc} -.L510: +.L514: movs r0, #1 pop {r4, r5, r6, pc} -.L514: +.L518: .align 2 -.L513: +.L517: .word .LANCHOR0 .fnend .size FtlCacheMetchLpa, .-FtlCacheMetchLpa @@ -3425,34 +3464,34 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L516 - ldr r0, [r3, #2940] + ldr r3, .L520 + ldr r0, [r3, #1896] bx lr -.L517: +.L521: .align 2 -.L516: +.L520: .word .LANCHOR0 .fnend .size FtlGetCap, .-FtlGetCap .align 1 - .global FtlGetCapacity + .global ftl_get_density .thumb .thumb_func - .type FtlGetCapacity, %function -FtlGetCapacity: + .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, .L519 - ldr r0, [r3, #2940] + ldr r3, .L523 + ldr r0, [r3, #1896] bx lr -.L520: +.L524: .align 2 -.L519: +.L523: .word .LANCHOR0 .fnend - .size FtlGetCapacity, .-FtlGetCapacity + .size ftl_get_density, .-ftl_get_density .align 1 .global FtlGetLpn .thumb @@ -3463,57 +3502,15 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L522 - ldr r0, [r3, #2960] + ldr r3, .L526 + ldr r0, [r3, #2968] bx lr -.L523: +.L527: .align 2 -.L522: - .word .LANCHOR0 - .fnend - .size FtlGetLpn, .-FtlGetLpn - .align 1 - .global FtlGetCurEraseBlock - .thumb - .thumb_func - .type FtlGetCurEraseBlock, %function -FtlGetCurEraseBlock: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L525 - ldrh r2, [r3, #2828] - ldr r0, [r3, #2964] - muls r0, r2, r0 - bx lr .L526: - .align 2 -.L525: - .word .LANCHOR0 - .fnend - .size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock - .align 1 - .global FtlGetAllBlockNum - .thumb - .thumb_func - .type FtlGetAllBlockNum, %function -FtlGetAllBlockNum: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L528 - ldrh r2, [r3, #2838] - ldrh r0, [r3, #2828] - muls r0, r2, r0 - bx lr -.L529: - .align 2 -.L528: .word .LANCHOR0 .fnend - .size FtlGetAllBlockNum, .-FtlGetAllBlockNum + .size FtlGetLpn, .-FtlGetLpn .align 1 .global FtlBbmMapBadBlock .thumb @@ -3527,14 +3524,14 @@ FtlBbmMapBadBlock: .save {r4, r5, r6, r7, lr} .pad #12 mov r6, r0 - ldr r5, .L531 - ldrh r4, [r5, #2894] + ldr r5, .L529 + ldrh r4, [r5, #2906] mov r1, r4 bl __aeabi_uidiv uxth r2, r0 smulbb r3, r2, r4 add r1, r5, r2, lsl #2 - ldr r4, [r1, #2996] + ldr r4, [r1, #3000] movs r1, #1 subs r3, r6, r3 uxth r3, r3 @@ -3543,21 +3540,21 @@ FtlBbmMapBadBlock: lsls r1, r1, r0 ldr r0, [r4, r7, lsl #2] orrs r1, r1, r0 - ldr r0, .L531+4 + ldr r0, .L529+4 str r1, [r4, r7, lsl #2] str r1, [sp] mov r1, r6 bl printk - ldrh r3, [r5, #2974] + ldrh r3, [r5, #2978] movs r0, #0 adds r3, r3, #1 - strh r3, [r5, #2974] @ movhi + strh r3, [r5, #2978] @ movhi add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, pc} -.L532: +.L530: .align 2 -.L531: +.L529: .word .LANCHOR0 .word .LC2 .fnend @@ -3575,8 +3572,8 @@ FtlBbmIsBadBlock: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r7, r0 - ldr r5, .L534 - ldrh r6, [r5, #2894] + ldr r5, .L532 + ldrh r6, [r5, #2906] mov r1, r6 bl __aeabi_uidivmod mov r0, r7 @@ -3587,14 +3584,14 @@ FtlBbmIsBadBlock: and r4, r4, #31 uxth r0, r0 add r5, r5, r0, lsl #2 - ldr r3, [r5, #2996] + ldr r3, [r5, #3000] ldr r0, [r3, r2, lsl #2] lsrs r0, r0, r4 and r0, r0, #1 pop {r3, r4, r5, r6, r7, pc} -.L535: +.L533: .align 2 -.L534: +.L532: .word .LANCHOR0 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -3621,18 +3618,18 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L538 + ldr r0, .L536 movw r3, #65535 movs r1, #255 movs r2, #16 - addw r0, r0, #2980 + addw r0, r0, #2984 strh r3, [r0, #-12] @ movhi movs r3, #0 strh r3, [r0, #-6] @ movhi b memset -.L539: +.L537: .align 2 -.L538: +.L536: .word .LANCHOR0 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit @@ -3648,28 +3645,28 @@ FtlBbtCalcTotleCnt: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 - ldr r4, .L548 - ldrh r6, [r4, #2894] - ldrh r3, [r4, #2850] + ldr r4, .L546 + ldrh r6, [r4, #2906] + ldrh r3, [r4, #2862] mov r4, r5 muls r6, r3, r6 -.L541: +.L539: uxth r0, r5 cmp r0, r6 - bge .L547 + bge .L545 bl FtlBbmIsBadBlock - cbz r0, .L542 + cbz r0, .L540 adds r4, r4, #1 uxth r4, r4 -.L542: +.L540: adds r5, r5, #1 - b .L541 -.L547: + b .L539 +.L545: mov r0, r4 pop {r4, r5, r6, pc} -.L549: +.L547: .align 2 -.L548: +.L546: .word .LANCHOR0 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -3685,22 +3682,22 @@ V2P_block: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r4, r1 - ldr r6, .L551 + ldr r6, .L549 mov r7, r0 - ldrh r5, [r6, #2852] + ldrh r5, [r6, #2864] mov r1, r5 bl __aeabi_uidivmod mov r0, r7 smlabb r4, r4, r5, r1 mov r1, r5 bl __aeabi_uidiv - ldrh r3, [r6, #2894] + ldrh r3, [r6, #2906] smlabb r0, r3, r0, r4 uxth r0, r0 pop {r3, r4, r5, r6, r7, pc} -.L552: +.L550: .align 2 -.L551: +.L549: .word .LANCHOR0 .fnend .size V2P_block, .-V2P_block @@ -3713,12 +3710,12 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L554 + ldr r3, .L552 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 - ldrh r1, [r3, #2894] - ldrh r5, [r3, #2852] + ldrh r1, [r3, #2906] + ldrh r5, [r3, #2864] bl __aeabi_uidiv mov r1, r5 smulbb r4, r0, r5 @@ -3727,9 +3724,9 @@ P2V_plane: add r1, r1, r4 uxth r0, r1 pop {r4, r5, r6, pc} -.L555: +.L553: .align 2 -.L554: +.L552: .word .LANCHOR0 .fnend .size P2V_plane, .-P2V_plane @@ -3744,17 +3741,17 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L557 - ldrh r1, [r4, #2894] + ldr r4, .L555 + ldrh r1, [r4, #2906] bl __aeabi_uidivmod uxth r0, r1 - ldrh r1, [r4, #2852] + ldrh r1, [r4, #2864] bl __aeabi_uidiv uxth r0, r0 pop {r4, pc} -.L558: +.L556: .align 2 -.L557: +.L555: .word .LANCHOR0 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane @@ -3769,14 +3766,14 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L560 + bls .L558 subs r0, r0, r1 cmp r0, #-2147483648 ite hi movhi r0, #0 movls r0, #1 bx lr -.L560: +.L558: subs r0, r1, r0 cmp r0, #-2147483648 ite ls @@ -3794,22 +3791,22 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L563 + ldr r3, .L561 mov r1, #2048 push {r4, lr} .save {r4, lr} movs r4, #0 - strh r0, [r3, #3028] @ movhi - addw r0, r3, #3036 - strh r4, [r3, #3030] @ movhi - strh r4, [r3, #3032] @ movhi + strh r0, [r3, #3032] @ movhi + add r0, r3, #3040 strh r4, [r3, #3034] @ movhi + strh r4, [r3, #3036] @ movhi + strh r4, [r3, #3038] @ movhi bl __memzero mov r0, r4 pop {r4, pc} -.L564: +.L562: .align 2 -.L563: +.L561: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit @@ -3823,14 +3820,14 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L566 - ldrh r0, [r3, #3034] + ldr r3, .L564 + ldrh r0, [r3, #3038] clz r0, r0 lsrs r0, r0, #5 bx lr -.L567: +.L565: .align 2 -.L566: +.L564: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty @@ -3844,15 +3841,15 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L569 - ldrh r0, [r3, #3034] + ldr r3, .L567 + ldrh r0, [r3, #3038] sub r3, r0, #1024 rsbs r0, r3, #0 adcs r0, r0, r3 bx lr -.L570: +.L568: .align 2 -.L569: +.L567: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull @@ -3868,44 +3865,44 @@ FtlFreeSysBlkQueueIn: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r6, r0 - ldr r4, .L580 - ldrh r3, [r4, #3034] + ldr r4, .L578 + ldrh r3, [r4, #3038] cmp r3, #1024 - beq .L571 - cbz r1, .L573 - ldr r5, .L580+4 - ldr r3, [r5, #740] - cbnz r3, .L573 + beq .L569 + cbz r1, .L571 + ldr r5, .L578+4 + ldr r3, [r5, #744] + cbnz r3, .L571 bl P2V_block_in_plane movs r1, #1 lsls r3, r6, #10 mov r2, r1 mov r7, r0 - ldr r0, [r5, #744] + ldr r0, [r5, #748] str r3, [r0, #4] bl FlashEraseBlocks - ldr r2, [r5, #748] + ldr r2, [r5, #752] ldrh r3, [r2, r7, lsl #1] adds r3, r3, #1 strh r3, [r2, r7, lsl #1] @ movhi - ldr r3, [r5, #752] + ldr r3, [r5, #756] adds r3, r3, #1 - str r3, [r5, #752] -.L573: - ldrh r3, [r4, #3034] + str r3, [r5, #756] +.L571: + ldrh r3, [r4, #3038] adds r3, r3, #1 - strh r3, [r4, #3034] @ movhi - ldrh r3, [r4, #3032] + strh r3, [r4, #3038] @ movhi + ldrh r3, [r4, #3036] add r2, r4, r3, lsl #1 adds r3, r3, #1 ubfx r3, r3, #0, #10 - strh r3, [r4, #3032] @ movhi - strh r6, [r2, #3036] @ movhi -.L571: + strh r3, [r4, #3036] @ movhi + strh r6, [r2, #3040] @ movhi +.L569: pop {r3, r4, r5, r6, r7, pc} -.L581: +.L579: .align 2 -.L580: +.L578: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -3919,83 +3916,42 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - movs r4, #0 - ldr r5, .L594 - ldr r6, .L594+4 -.L583: - ldrh r3, [r5, #3034] - adds r7, r4, #1 - uxth r4, r4 - ldr r0, .L594 - cmp r3, r4 - bls .L591 - ldrh r3, [r5, #3030] - add r3, r3, r4 - add r3, r5, r3, lsl #1 - ldrh r0, [r3, #3036] - bl P2V_block_in_plane - ldr r2, [r6, #748] - ldr r3, [r6, #756] - ldrh r2, [r2, r0, lsl #1] - str r2, [r3, r4, lsl #2] - mov r4, r7 - b .L583 -.L591: - ldr r5, .L594+4 - movs r1, #0 - mov ip, r5 -.L585: - ldrh r8, [r0, #3034] - add r3, r8, #-1 - cmp r1, r3 - bge .L592 - adds r4, r1, #1 - ldr r2, [r5, #756] - mov r3, r1 - uxth r4, r4 - mov lr, r4 -.L586: - cmp lr, r8 - bcs .L593 - ldr r6, [r2, lr, lsl #2] - ldr r7, [r2, r3, lsl #2] - cmp r7, r6 - it hi - movhi r3, lr - add lr, lr, #1 - uxth lr, lr - b .L586 -.L593: - cmp r1, r3 - beq .L589 - ldr r6, [r2, r1, lsl #2] - ldr r7, [r2, r3, lsl #2] - str r6, [r2, r3, lsl #2] - ldr r2, [ip, #756] - str r7, [r2, r1, lsl #2] - ldrh r2, [r0, #3030] - add r3, r3, r2 - add r2, r2, r1 - adds r3, r3, #4 - adds r2, r2, #4 - add r3, r0, r3, lsl #1 - add r2, r0, r2, lsl #1 - ldrh r7, [r3, #3028] - ldrh r1, [r2, #3028] - strh r1, [r3, #3028] @ movhi - strh r7, [r2, #3028] @ movhi -.L589: - mov r1, r4 - b .L585 -.L592: - pop {r4, r5, r6, r7, r8, pc} -.L595: + ldr r3, .L589 + movs r0, #0 + push {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + mov r6, r0 + ldrh r4, [r3, #788] + ldr r3, .L589+4 + and r4, r4, #31 + ldrh r1, [r3, #3034] + ldrh r2, [r3, #3036] +.L581: + uxth r5, r0 + adds r0, r0, #1 + cmp r5, r4 + bge .L588 + add r5, r3, r1, lsl #1 + adds r1, r1, #1 + ubfx r1, r1, #0, #10 + ldrh r6, [r5, #3040] + add r5, r3, r2, lsl #1 + strh r6, [r5, #3040] @ movhi + movs r6, #1 + add r2, r2, r6 + ubfx r2, r2, #0, #10 + b .L581 +.L588: + cbz r6, .L580 + strh r1, [r3, #3034] @ movhi + strh r2, [r3, #3036] @ movhi +.L580: + pop {r4, r5, r6, pc} +.L590: .align 2 -.L594: - .word .LANCHOR0 +.L589: .word .LANCHOR2 + .word .LANCHOR0 .fnend .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 1 @@ -4007,51 +3963,51 @@ remove_from_free_sys_Queue: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L603 + ldr r3, .L598 mov r1, r0 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldrh r0, [r3, #3034] - cbz r0, .L597 - ldrh r6, [r3, #3030] + ldrh r0, [r3, #3038] + cbz r0, .L592 + ldrh r6, [r3, #3034] movs r4, #0 -.L598: +.L593: cmp r4, r0 - bcs .L602 + bcs .L597 adds r2, r4, r6 - ldr r5, .L603 + ldr r5, .L598 ubfx r2, r2, #0, #10 add r2, r3, r2, lsl #1 - ldrh r2, [r2, #3036] + ldrh r2, [r2, #3040] cmp r2, r1 - bne .L599 - ldr r0, .L603+4 + bne .L594 + ldr r0, .L598+4 bl printk - ldrh r3, [r5, #3030] + ldrh r3, [r5, #3034] movs r0, #1 add r4, r4, r3 add r2, r5, r3, lsl #1 ubfx r4, r4, #0, #10 adds r3, r3, #1 - ldrh r2, [r2, #3036] + ldrh r2, [r2, #3040] add r4, r5, r4, lsl #1 ubfx r3, r3, #0, #10 - strh r3, [r5, #3030] @ movhi - ldrh r3, [r5, #3034] - strh r2, [r4, #3036] @ movhi - subs r3, r3, #1 strh r3, [r5, #3034] @ movhi + ldrh r3, [r5, #3038] + strh r2, [r4, #3040] @ movhi + subs r3, r3, #1 + strh r3, [r5, #3038] @ movhi pop {r4, r5, r6, pc} -.L599: +.L594: adds r4, r4, #1 - b .L598 -.L602: - movs r0, #0 + b .L593 .L597: + movs r0, #0 +.L592: pop {r4, r5, r6, pc} -.L604: +.L599: .align 2 -.L603: +.L598: .word .LANCHOR0 .word .LC3 .fnend @@ -4065,57 +4021,72 @@ FtlFreeSysBlkQueueOut: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - ldr r5, .L612 - ldrh r2, [r5, #3034] - cbz r2, .L608 - ldrh r3, [r5, #3030] - subs r2, r2, #1 - ldr r4, .L612+4 - strh r2, [r5, #3034] @ movhi - add r1, r5, r3, lsl #1 + push {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + ldr r4, .L610 + ldr r6, .L610+4 + mov r7, r4 +.L601: + ldrh r1, [r4, #3038] + cbz r1, .L602 + ldrh r3, [r4, #3034] + subs r1, r1, #1 + ldr r10, [r6, #744] + strh r1, [r4, #3038] @ movhi + add r2, r4, r3, lsl #1 adds r3, r3, #1 - ldr r8, [r4, #740] ubfx r3, r3, #0, #10 - ldrh r6, [r1, #3036] - strh r3, [r5, #3030] @ movhi - cmp r8, #0 - bne .L606 - mov r0, r6 + ldr r8, .L610+4 + ldrh r5, [r2, #3040] + strh r3, [r4, #3034] @ movhi + cmp r10, #0 + bne .L603 + mov r0, r5 bl P2V_block_in_plane - lsls r3, r6, #10 - mov r7, r0 - ldr r0, [r4, #744] + lsls r3, r5, #10 + mov r9, r0 + ldr r0, [r6, #748] str r3, [r0, #4] - ldrb r3, [r5, #76] @ zero_extendqisi2 - cbz r3, .L607 - mov r1, r8 + ldrb r3, [r4, #76] @ zero_extendqisi2 + cbz r3, .L604 + mov r1, r10 movs r2, #1 bl FlashEraseBlocks -.L607: +.L604: movs r1, #1 - ldr r0, [r4, #744] + ldr r0, [r8, #748] mov r2, r1 bl FlashEraseBlocks - ldr r2, [r4, #748] - ldrh r3, [r2, r7, lsl #1] + ldr r2, [r8, #752] + ldrh r3, [r2, r9, lsl #1] adds r3, r3, #1 - strh r3, [r2, r7, lsl #1] @ movhi - ldr r3, [r4, #752] + strh r3, [r2, r9, lsl #1] @ movhi + ldr r3, [r8, #756] adds r3, r3, #1 - str r3, [r4, #752] - b .L606 -.L608: - movw r6, #65535 + str r3, [r8, #756] + b .L603 +.L602: + ldr r0, .L610+8 + bl printk +.L605: + b .L605 +.L603: + cbnz r5, .L606 + mov r1, r5 + ldrh r2, [r7, #3038] + ldr r0, .L610+12 + bl printk + b .L601 .L606: - mov r0, r6 - pop {r4, r5, r6, r7, r8, pc} -.L613: + mov r0, r5 + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L611: .align 2 -.L612: +.L610: .word .LANCHOR0 .word .LANCHOR2 + .word .LC4 + .word .LC5 .fnend .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut .align 1 @@ -4130,113 +4101,113 @@ insert_data_list: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r5, .L630 - ldrh r3, [r5, #2836] + ldr r5, .L628 + ldrh r3, [r5, #2848] cmp r3, r0 - bls .L616 + bls .L614 movs r4, #6 - ldr r2, .L630+4 + ldr r2, .L628+4 movw r3, #65535 muls r4, r0, r4 - ldr lr, [r2, #760] + ldr lr, [r2, #808] mov r7, r2 add r1, lr, r4 strh r3, [r1, #2] @ movhi strh r3, [lr, r4] @ movhi - ldr r3, [r2, #764] + ldr r3, [r2, #812] cmp r3, #0 - beq .L629 - ldr r8, [r2, #768] + beq .L627 + ldr r8, [r2, #816] lsl fp, r0, #1 ldrh r2, [r1, #4] ldrh r6, [r8, r0, lsl #1] - cbz r2, .L627 + cbz r2, .L625 muls r6, r2, r6 - b .L618 -.L627: + b .L616 +.L625: mov r6, #-1 -.L618: - ldr ip, [r7, #760] - ldr r2, .L630+8 +.L616: + ldr ip, [r7, #808] + ldr r2, .L628+8 rsb r9, ip, r3 - ldrh r5, [r5, #2836] + ldrh r5, [r5, #2848] asr r9, r9, #1 str r5, [sp] mul r2, r2, r9 - ldr r9, [r7, #748] + ldr r9, [r7, #752] add r5, r9, fp str r5, [sp, #4] movs r5, #0 uxth r2, r2 -.L625: +.L623: adds r5, r5, #1 ldr r7, [sp] uxth r5, r5 cmp r5, r7 - bhi .L616 + bhi .L614 cmp r0, r2 - beq .L616 + beq .L614 ldrh r7, [r3, #4] lsl r10, r2, #1 ldrh fp, [r8, r2, lsl #1] - cbz r7, .L628 + cbz r7, .L626 mul r7, r7, fp - b .L620 -.L628: + b .L618 +.L626: mov r7, #-1 -.L620: +.L618: cmp r7, r6 - bne .L621 + bne .L619 ldr r7, [sp, #4] ldrh r10, [r9, r10] ldrh r7, [r7] cmp r10, r7 - bcc .L623 - b .L622 + bcc .L621 + b .L620 +.L619: + bhi .L620 .L621: - bhi .L622 -.L623: ldrh r7, [r3] movw r10, #65535 cmp r7, r10 - bne .L624 + bne .L622 strh r2, [r1, #2] @ movhi strh r0, [r3] @ movhi - ldr r3, .L630+4 - str r1, [r3, #772] - b .L616 -.L624: + ldr r3, .L628+4 + str r1, [r3, #820] + b .L614 +.L622: movs r3, #6 mov r2, r7 mla r3, r3, r7, ip - b .L625 -.L622: + b .L623 +.L620: strh r2, [lr, r4] @ movhi ldrh r2, [r3, #2] strh r2, [r1, #2] @ movhi - ldr r2, .L630+4 - ldr r4, [r2, #764] + ldr r2, .L628+4 + ldr r4, [r2, #812] cmp r3, r4 - bne .L626 + bne .L624 strh r0, [r3, #2] @ movhi -.L629: - str r1, [r2, #764] - b .L616 -.L626: +.L627: + str r1, [r2, #812] + b .L614 +.L624: ldrh r4, [r3, #2] - ldr r1, [r2, #760] + ldr r1, [r2, #808] movs r2, #6 muls r2, r4, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L616: +.L614: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L631: +.L629: .align 2 -.L630: +.L628: .word .LANCHOR0 .word .LANCHOR2 .word -1431655765 @@ -4254,14 +4225,14 @@ INSERT_DATA_LIST: push {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L633 - ldrh r3, [r2, #776] + ldr r2, .L631 + ldrh r3, [r2, #824] adds r3, r3, #1 - strh r3, [r2, #776] @ movhi + strh r3, [r2, #824] @ movhi pop {r3, pc} -.L634: +.L632: .align 2 -.L633: +.L631: .word .LANCHOR2 .fnend .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -4278,64 +4249,64 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, r10, lr} movw r5, #65535 cmp r0, r5 - beq .L636 + beq .L634 movs r1, #6 - ldr r2, .L643 + ldr r2, .L641 mul lr, r1, r0 - ldr ip, [r2, #760] + ldr ip, [r2, #808] mov r7, r2 add r6, ip, lr strh r5, [r6, #2] @ movhi strh r5, [ip, lr] @ movhi - ldr r3, [r2, #780] - cbz r3, .L642 - ldr r8, [r2, #760] - ldr r9, [r2, #748] + ldr r3, [r2, #828] + cbz r3, .L640 + ldr r8, [r2, #808] + ldr r9, [r2, #752] rsb r4, r8, r3 - ldr r2, .L643+4 + ldr r2, .L641+4 asrs r4, r4, #1 ldrh r10, [r9, r0, lsl #1] muls r4, r2, r4 uxth r2, r4 -.L640: +.L638: ldrh r4, [r9, r2, lsl #1] cmp r4, r10 - bcs .L638 + bcs .L636 ldrh r4, [r3] cmp r4, r5 - bne .L639 + bne .L637 strh r2, [r6, #2] @ movhi strh r0, [r3] @ movhi - b .L636 -.L639: + b .L634 +.L637: mla r3, r1, r4, r8 mov r2, r4 - b .L640 -.L638: + b .L638 +.L636: ldrh r1, [r3, #2] strh r1, [r6, #2] @ movhi strh r2, [ip, lr] @ movhi - ldr r1, [r7, #780] - ldr r2, .L643 + ldr r1, [r7, #828] + ldr r2, .L641 cmp r3, r1 - bne .L641 + bne .L639 strh r0, [r3, #2] @ movhi -.L642: - str r6, [r2, #780] - b .L636 -.L641: +.L640: + str r6, [r2, #828] + b .L634 +.L639: ldrh r4, [r3, #2] - ldr r1, [r2, #760] + ldr r1, [r2, #808] movs r2, #6 muls r2, r4, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L636: +.L634: movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L644: +.L642: .align 2 -.L643: +.L641: .word .LANCHOR2 .word -1431655765 .fnend @@ -4352,14 +4323,14 @@ INSERT_FREE_LIST: push {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L646 - ldrh r3, [r2, #784] + ldr r2, .L644 + ldrh r3, [r2, #832] adds r3, r3, #1 - strh r3, [r2, #784] @ movhi + strh r3, [r2, #832] @ movhi pop {r3, pc} -.L647: +.L645: .align 2 -.L646: +.L644: .word .LANCHOR2 .fnend .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -4375,15 +4346,15 @@ List_remove_node: push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} movs r4, #6 - ldr r7, .L653 + ldr r7, .L651 movw r6, #65535 muls r1, r4, r1 ldr r3, [r0] - ldr r2, [r7, #760] + ldr r2, [r7, #808] adds r5, r2, r1 cmp r5, r3 ldrh r3, [r2, r1] - bne .L649 + bne .L647 cmp r3, r6 ittee eq moveq r3, #0 @@ -4392,33 +4363,33 @@ List_remove_node: strne r3, [r0] it ne strhne r6, [r3, #2] @ movhi - b .L651 -.L649: + b .L649 +.L647: cmp r3, r6 ldrh r0, [r5, #2] - bne .L652 + bne .L650 cmp r0, r3 - beq .L651 + beq .L649 muls r0, r4, r0 strh r3, [r2, r0] @ movhi - b .L651 -.L652: + b .L649 +.L650: mla r3, r4, r3, r2 strh r0, [r3, #2] @ movhi ldrh r6, [r5, #2] ldrh r0, [r2, r1] - ldr r3, [r7, #760] + ldr r3, [r7, #808] muls r4, r6, r4 strh r0, [r3, r4] @ movhi -.L651: +.L649: movw r3, #65535 movs r0, #0 strh r3, [r2, r1] @ movhi strh r3, [r5, #2] @ movhi pop {r4, r5, r6, r7, pc} -.L654: +.L652: .align 2 -.L653: +.L651: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -4434,16 +4405,16 @@ List_pop_index_node: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldr r3, [r0] - cbz r3, .L661 - ldr r2, .L662 + cbz r3, .L659 + ldr r2, .L660 movs r6, #6 movw r5, #65535 - ldr r4, [r2, #760] -.L657: - cbnz r1, .L658 -.L660: + ldr r4, [r2, #808] +.L655: + cbnz r1, .L656 +.L658: subs r4, r3, r4 - ldr r3, .L662+4 + ldr r3, .L660+4 asrs r4, r4, #1 muls r4, r3, r4 uxth r4, r4 @@ -4451,20 +4422,20 @@ List_pop_index_node: bl List_remove_node mov r0, r4 pop {r4, r5, r6, pc} -.L658: +.L656: ldrh r2, [r3] cmp r2, r5 - beq .L660 + beq .L658 subs r1, r1, #1 mla r3, r6, r2, r4 uxth r1, r1 - b .L657 -.L661: + b .L655 +.L659: movw r0, #65535 pop {r4, r5, r6, pc} -.L663: +.L661: .align 2 -.L662: +.L660: .word .LANCHOR2 .word -1431655765 .fnend @@ -4478,36 +4449,36 @@ List_get_gc_head_node: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L671 + ldr r2, .L669 push {r4, lr} .save {r4, lr} - ldr r3, [r2, #764] - cbz r3, .L669 + ldr r3, [r2, #812] + cbz r3, .L667 movs r4, #6 - ldr r1, [r2, #760] + ldr r1, [r2, #808] movw r2, #65535 -.L666: - cbz r0, .L667 +.L664: + cbz r0, .L665 ldrh r3, [r3] cmp r3, r2 - beq .L669 + beq .L667 subs r0, r0, #1 mla r3, r4, r3, r1 uxth r0, r0 - b .L666 -.L669: + b .L664 +.L667: movw r0, #65535 pop {r4, pc} -.L667: +.L665: subs r3, r3, r1 - ldr r0, .L671+4 + ldr r0, .L669+4 asrs r3, r3, #1 muls r0, r3, r0 uxth r0, r0 pop {r4, pc} -.L672: +.L670: .align 2 -.L671: +.L669: .word .LANCHOR2 .word -1431655765 .fnend @@ -4525,58 +4496,64 @@ List_update_data_list: .save {r3, r4, r5, r6, r7, lr} mov r5, r0 ldr r4, .L678 - ldrh r3, [r4, #788] - cmp r3, r0 - beq .L674 ldrh r3, [r4, #836] cmp r3, r0 - beq .L674 + beq .L672 ldrh r3, [r4, #884] cmp r3, r0 - beq .L674 + beq .L672 + ldrh r3, [r4, #932] + cmp r3, r0 + beq .L672 movs r3, #6 - ldr r0, [r4, #760] - ldr r2, [r4, #764] - muls r3, r5, r3 - adds r1, r0, r3 - cmp r1, r2 - beq .L674 - ldr r6, [r4, #768] - ldrh r7, [r1, #4] - ldrh r1, [r1, #2] - ldrh r2, [r6, r5, lsl #1] + ldr r1, [r4, #808] + ldr r2, [r4, #812] + muls r3, r0, r3 + adds r0, r1, r3 + cmp r0, r2 + beq .L672 + ldr r6, [r4, #816] + ldrh r2, [r0, #4] + ldrh r7, [r6, r5, lsl #1] + cbz r2, .L676 muls r2, r7, r2 - movw r7, #65535 - it eq - moveq r2, #-1 - cmp r1, r7 - bne .L676 - ldrh r3, [r0, r3] - cmp r3, r1 - beq .L674 + b .L673 .L676: + mov r2, #-1 +.L673: + ldrh r0, [r0, #2] + movw r7, #65535 + cmp r0, r7 + bne .L674 + ldrh r3, [r1, r3] + cmp r3, r0 + beq .L672 +.L674: movs r3, #6 - muls r1, r3, r1 - ldr r3, .L678+4 - asrs r7, r1, #1 - add r1, r1, r0 - muls r3, r7, r3 - ldrh r1, [r1, #4] - ldrh r3, [r6, r3, lsl #1] - muls r3, r1, r3 - it eq - moveq r3, #-1 + muls r3, r0, r3 + ldr r0, .L678+4 + asrs r7, r3, #1 + add r3, r3, r1 + muls r0, r7, r0 + ldrh r3, [r3, #4] + ldrh r0, [r6, r0, lsl #1] + cbz r3, .L677 + muls r3, r0, r3 + b .L675 +.L677: + mov r3, #-1 +.L675: cmp r2, r3 - bcs .L674 + bcs .L672 ldr r0, .L678+8 mov r1, r5 bl List_remove_node - ldrh r3, [r4, #776] + ldrh r3, [r4, #824] mov r0, r5 subs r3, r3, #1 - strh r3, [r4, #776] @ movhi + strh r3, [r4, #824] @ movhi bl INSERT_DATA_LIST -.L674: +.L672: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} .L679: @@ -4584,7 +4561,7 @@ List_update_data_list: .L678: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2+764 + .word .LANCHOR2+812 .fnend .size List_update_data_list, .-List_update_data_list .align 1 @@ -4605,7 +4582,7 @@ ftl_map_blk_alloc_new_blk: .L681: uxth r5, r3 cmp r5, r1 - bcs .L683 + bcs .L684 mov r7, r2 adds r3, r3, #1 ldrh r6, [r7] @@ -4613,8 +4590,20 @@ ftl_map_blk_alloc_new_blk: cmp r6, #0 bne .L681 bl FtlFreeSysBlkQueueOut + movw r2, #65533 + subs r3, r0, #1 + mov r1, r0 strh r0, [r7] @ movhi - cbz r0, .L683 + uxth r3, r3 + cmp r3, r2 + bls .L682 + ldr r3, .L687 + ldr r0, .L687+4 + ldrh r2, [r3, #3038] + bl printk +.L683: + b .L683 +.L682: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi adds r3, r3, #1 @@ -4623,9 +4612,14 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4] @ movhi adds r3, r3, #1 strh r3, [r4, #8] @ movhi -.L683: +.L684: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} +.L688: + .align 2 +.L687: + .word .LANCHOR0 + .word .LC6 .fnend .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk .align 1 @@ -4640,70 +4634,70 @@ select_l2p_ram_region: push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} movs r1, #0 - ldr r3, .L701 + ldr r3, .L703 movs r4, #12 - ldr r7, .L701+4 + ldr r7, .L703+4 movw r5, #65535 - ldrh r2, [r3, #2938] - ldr r3, [r7, #932] -.L688: + ldrh r2, [r3, #2950] + ldr r3, [r7, #980] +.L690: uxth r0, r1 cmp r0, r2 - bcs .L699 + bcs .L701 adds r1, r1, #1 mla r6, r4, r1, r3 ldrh r6, [r6, #-12] cmp r6, r5 - bne .L688 - b .L689 -.L699: + bne .L690 + b .L691 +.L701: movs r1, #0 mov r6, #-2147483648 mov lr, #12 mov r0, r2 -.L691: +.L693: uxth r5, r1 cmp r5, r2 - bcs .L700 + bcs .L702 mla r4, lr, r1, r3 ldr r4, [r4, #4] cmp r4, #0 - blt .L692 + blt .L694 cmp r4, r6 itt cc movcc r6, r4 movcc r0, r5 -.L692: +.L694: adds r1, r1, #1 - b .L691 -.L700: + b .L693 +.L702: cmp r0, r2 - bcc .L689 - ldrh r7, [r7, #936] + bcc .L691 + ldrh r7, [r7, #984] movs r1, #0 mov r4, #-1 mov r0, r2 -.L694: +.L696: uxth r5, r1 cmp r5, r2 - bcs .L689 + bcs .L691 ldr r6, [r3, #4] cmp r6, r4 - bcs .L695 + bcs .L697 ldrh lr, [r3] cmp lr, r7 itt ne movne r4, r6 movne r0, r5 -.L695: +.L697: adds r1, r1, #1 adds r3, r3, #12 - b .L694 -.L689: + b .L696 +.L691: pop {r4, r5, r6, r7, pc} -.L702: +.L704: .align 2 -.L701: +.L703: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4717,41 +4711,41 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L710 + ldr r1, .L712 push {r4, r5, lr} .save {r4, r5, lr} - ldrh r2, [r1, #938] + ldrh r2, [r1, #986] mov r3, r1 cmp r2, #4 - bhi .L704 - cbnz r0, .L704 + bhi .L706 + cbnz r0, .L706 adds r2, r2, #1 - strh r2, [r1, #938] @ movhi + strh r2, [r1, #986] @ movhi pop {r4, r5, pc} -.L704: - ldr r1, .L710+4 +.L706: + ldr r1, .L712+4 movs r2, #0 - strh r2, [r3, #938] @ movhi + strh r2, [r3, #986] @ movhi movw r5, #65535 - str r2, [r3, #940] - ldrh r1, [r1, #2836] - ldr r2, [r3, #768] + str r2, [r3, #988] + ldrh r1, [r1, #2848] + ldr r2, [r3, #816] add r1, r2, r1, lsl #1 -.L705: +.L707: cmp r2, r1 - beq .L709 + beq .L711 ldrh r4, [r2], #2 cmp r4, r5 ittt ne - ldrne r0, [r3, #940] + ldrne r0, [r3, #988] addne r0, r0, r4 - strne r0, [r3, #940] - b .L705 -.L709: - pop {r4, r5, pc} + strne r0, [r3, #988] + b .L707 .L711: + pop {r4, r5, pc} +.L713: .align 2 -.L710: +.L712: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -4767,28 +4761,28 @@ ftl_set_blk_mode: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. lsrs r3, r0, #5 - ldr r2, .L715 + ldr r2, .L717 and r0, r0, #31 uxth r3, r3 - cbz r1, .L713 - ldr r1, [r2, #944] + cbz r1, .L715 + ldr r1, [r2, #992] movs r2, #1 lsls r2, r2, r0 ldr r0, [r1, r3, lsl #2] orrs r2, r2, r0 str r2, [r1, r3, lsl #2] bx lr -.L713: - ldr r1, [r2, #944] +.L715: + ldr r1, [r2, #992] movs r2, #1 lsls r2, r2, r0 ldr r0, [r1, r3, lsl #2] bic r0, r0, r2 str r0, [r1, r3, lsl #2] bx lr -.L716: +.L718: .align 2 -.L715: +.L717: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -4802,17 +4796,17 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L718 + ldr r3, .L720 lsrs r1, r0, #5 - ldr r2, [r3, #944] + ldr r2, [r3, #992] and r3, r0, #31 ldr r0, [r2, r1, lsl #2] lsrs r0, r0, r3 and r0, r0, #1 bx lr -.L719: +.L721: .align 2 -.L718: +.L720: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -4827,16 +4821,16 @@ ftl_sb_update_avl_pages: @ frame_needed = 0, uses_anonymous_args = 0 movs r3, #0 strh r3, [r0, #4] @ movhi - ldr r3, .L729 + ldr r3, .L731 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} adds r4, r2, #7 - ldrh r5, [r3, #2828] + ldrh r5, [r3, #2840] movw r7, #65535 add r4, r0, r4, lsl #1 -.L721: +.L723: cmp r2, r5 - bcs .L727 + bcs .L729 ldrh r6, [r4, #2]! adds r2, r2, #1 cmp r6, r7 @@ -4845,16 +4839,16 @@ ftl_sb_update_avl_pages: ldrhne r6, [r0, #4] addne r6, r6, #1 strhne r6, [r0, #4] @ movhi - b .L721 -.L727: - ldrh r6, [r3, #2898] + b .L723 +.L729: + ldrh r6, [r3, #2910] add r4, r0, #14 movs r2, #0 movw r7, #65535 -.L724: +.L726: uxth r3, r2 cmp r3, r5 - bcs .L728 + bcs .L730 ldrh r3, [r4, #2]! adds r2, r2, #1 cmp r3, r7 @@ -4865,12 +4859,12 @@ ftl_sb_update_avl_pages: subne r3, r3, r1 it ne strhne r3, [r0, #4] @ movhi - b .L724 -.L728: - pop {r4, r5, r6, r7, pc} + b .L726 .L730: + pop {r4, r5, r6, r7, pc} +.L732: .align 2 -.L729: +.L731: .word .LANCHOR0 .fnend .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages @@ -4886,62 +4880,62 @@ make_superblock: push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r3, #0 - ldr r6, .L744 + ldr r6, .L746 add r7, r0, #16 mov r4, r0 mov r5, r3 - addw r10, r6, #2856 + addw r10, r6, #2868 movw r9, #65535 - ldrh r8, [r6, #2828] + ldrh r8, [r6, #2840] strh r3, [r0, #4] @ movhi strb r3, [r0, #7] -.L732: +.L734: uxth r3, r5 cmp r3, r8 - bcs .L743 + bcs .L745 ldrb r0, [r10, r5] @ zero_extendqisi2 ldrh r1, [r4] bl V2P_block strh r9, [r7] @ movhi mov fp, r0 bl FtlBbmIsBadBlock - cbnz r0, .L733 + cbnz r0, .L735 strh fp, [r7] @ movhi ldrb r3, [r4, #7] @ zero_extendqisi2 adds r3, r3, #1 strb r3, [r4, #7] -.L733: +.L735: adds r5, r5, #1 adds r7, r7, #2 - b .L732 -.L743: + b .L734 +.L745: ldrb r2, [r4, #7] @ zero_extendqisi2 - ldrh r3, [r6, #2898] + ldrh r3, [r6, #2910] smulbb r3, r2, r3 strh r3, [r4, #4] @ movhi movs r3, #0 strb r3, [r4, #9] - ldr r3, .L744+4 - ldr r2, [r3, #948] - cbz r2, .L735 + ldr r3, [r6, #2832] + cbz r3, .L737 + ldr r3, .L746+4 ldrh r2, [r4] - ldr r3, [r3, #748] + ldr r3, [r3, #752] ldrh r3, [r3, r2, lsl #1] cmp r3, #59 itt ls movls r3, #1 strbls r3, [r4, #9] -.L735: +.L737: ldrb r3, [r6] @ zero_extendqisi2 - cbz r3, .L736 + cbz r3, .L738 movs r3, #1 strb r3, [r4, #9] -.L736: +.L738: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L745: +.L747: .align 2 -.L744: +.L746: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4958,43 +4952,43 @@ update_multiplier_value: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} movs r5, #0 - ldr r3, .L755 + ldr r3, .L757 mov r7, r0 mov r4, r5 - addw r6, r3, #2856 - ldrh r8, [r3, #2828] - ldrh r9, [r3, #2898] -.L747: + addw r6, r3, #2868 + ldrh r8, [r3, #2840] + ldrh r9, [r3, #2910] +.L749: uxth r3, r5 cmp r3, r8 - bcs .L754 + bcs .L756 mov r1, r7 ldrb r0, [r6, r5] @ zero_extendqisi2 bl V2P_block bl FtlBbmIsBadBlock - cbnz r0, .L748 + cbnz r0, .L750 add r4, r4, r9 uxth r4, r4 -.L748: +.L750: adds r5, r5, #1 - b .L747 -.L754: - cbz r4, .L750 + b .L749 +.L756: + cbz r4, .L752 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L750: - ldr r3, .L755+4 +.L752: + ldr r3, .L757+4 movs r2, #6 movs r0, #0 - ldr r3, [r3, #760] + ldr r3, [r3, #808] mla r7, r2, r7, r3 strh r4, [r7, #4] @ movhi pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L756: +.L758: .align 2 -.L755: +.L757: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -5009,22 +5003,22 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L760 - ldr r0, [r2, #780] - cbz r0, .L758 - ldr r3, [r2, #760] + ldr r2, .L762 + ldr r0, [r2, #828] + cbz r0, .L760 + ldr r3, [r2, #808] subs r0, r0, r3 - ldr r3, .L760+4 + ldr r3, .L762+4 asrs r0, r0, #1 muls r0, r3, r0 - ldr r3, [r2, #748] + ldr r3, [r2, #752] uxth r0, r0 ldrh r0, [r3, r0, lsl #1] -.L758: +.L760: bx lr -.L761: +.L763: .align 2 -.L760: +.L762: .word .LANCHOR2 .word -1431655765 .fnend @@ -5038,14 +5032,14 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L770 + ldr r1, .L772 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} - ldr r3, [r1, #780] - cbz r3, .L768 - ldrh r2, [r1, #784] + ldr r3, [r1, #828] + cbz r3, .L770 + ldrh r2, [r1, #832] movs r6, #6 - ldr r4, [r1, #760] + ldr r4, [r1, #808] movw r7, #65535 rsb r2, r2, r2, lsl #3 subs r3, r3, r4 @@ -5054,32 +5048,32 @@ GetFreeBlockMaxEraseCount: cmp r0, r2 it gt uxthgt r0, r2 - ldr r2, .L770+4 + ldr r2, .L772+4 muls r3, r2, r3 movs r2, #0 uxth r3, r3 -.L765: +.L767: uxth r5, r2 cmp r5, r0 - bcs .L767 + bcs .L769 mul r5, r6, r3 adds r2, r2, #1 ldrh r5, [r4, r5] cmp r5, r7 - bne .L769 -.L767: - ldr r2, [r1, #748] + bne .L771 +.L769: + ldr r2, [r1, #752] ldrh r0, [r2, r3, lsl #1] pop {r4, r5, r6, r7, pc} -.L769: +.L771: mov r3, r5 - b .L765 -.L768: + b .L767 +.L770: mov r0, r3 pop {r4, r5, r6, r7, pc} -.L771: +.L773: .align 2 -.L770: +.L772: .word .LANCHOR2 .word -1431655765 .fnend @@ -5096,334 +5090,332 @@ FtlPrintInfo2buf: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r6, r0 - ldr r8, .L782+240 + ldr r8, .L784+240 add r4, r6, #12 - ldr r1, .L782 .pad #32 sub sp, sp, #32 + ldr r1, .L784 bl strcpy mov r0, r4 - ldr r1, .L782+4 + ldr r1, .L784+4 ldr r2, [r8, #1864] bl sprintf - ldr r1, .L782+8 - ldr r2, [r8, #2916] + ldr r1, .L784+8 + ldr r2, [r8, #2928] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L782+12 + ldr r3, .L784+12 ldr r3, [r3, #504] cmp r3, #1 add r4, r4, r0 - bne .L778 + bne .L780 add r0, sp, #16 add r1, sp, #20 add r2, sp, #24 add r3, sp, #28 bl NandcGetTimeCfg - mov r0, r4 - ldr r1, .L782+16 - ldr r7, .L782+20 ldr r3, [sp, #24] ldr r2, [sp, #16] + mov r0, r4 + ldr r1, .L784+16 str r3, [sp] ldr r3, [sp, #28] + ldr r7, .L784+20 str r3, [sp, #4] ldr r3, [sp, #20] bl sprintf - ldr r1, .L782+24 + ldr r1, .L784+24 add r4, r4, r0 add r5, r4, #10 mov r0, r4 bl strcpy mov r0, r5 - ldr r1, .L782+28 - ldr r2, [r8, #2960] + ldr r1, .L784+28 + ldr r2, [r8, #2968] bl sprintf - ldr r1, .L782+32 - ldr r2, [r7, #940] + ldr r1, .L784+32 + ldr r2, [r7, #988] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+36 - ldr r2, [r7, #952] + ldr r1, .L784+36 + ldr r2, [r7, #996] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+40 - ldr r2, [r7, #956] + ldr r1, .L784+40 + ldr r2, [r7, #1000] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+44 - ldr r2, [r7, #960] + ldr r1, .L784+44 + ldr r2, [r7, #1004] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+48 - ldr r2, [r7, #964] + ldr r1, .L784+48 + ldr r2, [r7, #1008] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+52 - ldr r2, [r7, #968] + ldr r1, .L784+52 + ldr r2, [r7, #1012] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+56 - ldr r2, [r7, #972] + ldr r1, .L784+56 + ldr r2, [r7, #1016] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r7, #976] - ldr r1, .L782+60 + ldr r2, [r7, #1020] + ldr r1, .L784+60 lsrs r2, r2, #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r7, #980] - ldr r1, .L782+64 + ldr r2, [r7, #1024] + ldr r1, .L784+64 lsrs r2, r2, #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+68 - ldr r2, [r7, #984] + ldr r1, .L784+68 + ldr r2, [r7, #1028] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+72 - ldr r2, [r7, #988] + ldr r1, .L784+72 + ldr r2, [r7, #1032] add r5, r5, r0 mov r0, r5 bl sprintf add r5, r5, r0 bl FtlBbtCalcTotleCnt - ldr r1, .L782+76 - ldrh r2, [r8, #2974] + ldr r1, .L784+76 + ldrh r2, [r8, #2978] mov r3, r0 mov r0, r5 bl sprintf - ldr r1, .L782+80 - ldrh r2, [r7, #784] + ldr r1, .L784+80 + ldrh r2, [r7, #832] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+84 - ldr r2, [r7, #992] + ldr r1, .L784+84 + ldr r2, [r7, #1036] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+88 - ldr r2, [r7, #996] + ldr r1, .L784+88 + ldr r2, [r7, #1040] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+92 - ldr r2, [r7, #1000] + ldr r1, .L784+92 + ldr r2, [r7, #1044] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+96 - ldr r2, [r7, #752] + ldr r1, .L784+96 + ldr r2, [r7, #756] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+100 - ldr r2, [r7, #1004] + ldr r1, .L784+100 + ldr r2, [r7, #1048] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+104 - ldr r2, [r7, #1008] + ldr r1, .L784+104 + ldr r2, [r7, #1052] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+108 - ldrh r2, [r7, #1042] + ldr r1, .L784+108 + ldrh r2, [r7, #790] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+112 - ldrh r2, [r7, #1040] + ldr r1, .L784+112 + ldrh r2, [r7, #788] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+116 - ldr r2, [r8, #2940] + ldr r1, .L784+116 + ldr r2, [r8, #1896] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+120 - ldr r2, [r8, #2932] + ldr r1, .L784+120 + ldr r2, [r8, #2944] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+124 - ldr r2, [r8, #2824] + ldr r1, .L784+124 + ldr r2, [r8, #2836] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+128 - ldrh r2, [r8, #3034] + ldr r1, .L784+128 + ldrh r2, [r8, #3038] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+132 - ldrh r2, [r8, #2836] + ldr r1, .L784+132 + ldrh r2, [r8, #2848] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+136 - ldrh r2, [r7, #1060] + ldr r1, .L784+136 + ldrh r2, [r7, #1056] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+140 - ldr r2, [r8, #2840] + ldr r1, .L784+140 + ldr r2, [r8, #2852] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+144 - ldrh r2, [r7, #1064] + ldr r1, .L784+144 + ldrh r2, [r7, #1060] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+148 - ldrh r2, [r8, #2968] + ldr r1, .L784+148 + ldrh r2, [r8, #2972] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+152 - ldrh r2, [r7, #790] + ldr r1, .L784+152 + ldrh r2, [r7, #838] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+156 - ldrb r2, [r7, #794] @ zero_extendqisi2 + ldr r1, .L784+156 + ldrb r2, [r7, #842] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+160 - ldrh r2, [r7, #788] + ldr r1, .L784+160 + ldrh r2, [r7, #836] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+164 - ldrb r2, [r7, #796] @ zero_extendqisi2 + ldr r1, .L784+164 + ldrb r2, [r7, #844] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+168 - ldrh r2, [r7, #792] + ldr r1, .L784+168 + ldrh r2, [r7, #840] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r3, [r7, #768] - ldrh r2, [r7, #788] - ldr r1, .L782+172 + ldr r3, [r7, #816] + ldrh r2, [r7, #836] + ldr r1, .L784+172 ldrh r2, [r3, r2, lsl #1] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+176 - ldrh r2, [r7, #838] + ldr r1, .L784+176 + ldrh r2, [r7, #886] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+180 - ldrb r2, [r7, #842] @ zero_extendqisi2 + ldr r1, .L784+180 + ldrb r2, [r7, #890] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+184 - ldrh r2, [r7, #836] + ldr r1, .L784+184 + ldrh r2, [r7, #884] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+188 - ldrb r2, [r7, #844] @ zero_extendqisi2 + ldr r1, .L784+188 + ldrb r2, [r7, #892] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+192 - ldrh r2, [r7, #840] + ldr r1, .L784+192 + ldrh r2, [r7, #888] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r3, [r7, #768] - ldrh r2, [r7, #836] - ldr r1, .L782+196 + ldr r3, [r7, #816] + ldrh r2, [r7, #884] + ldr r1, .L784+196 ldrh r2, [r3, r2, lsl #1] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+200 - ldrh r2, [r7, #886] + ldr r1, .L784+200 + ldrh r2, [r7, #934] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+204 - ldrb r2, [r7, #890] @ zero_extendqisi2 + ldr r1, .L784+204 + ldrb r2, [r7, #938] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+208 - ldrh r2, [r7, #884] + ldr r1, .L784+208 + ldrh r2, [r7, #932] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+212 - ldrb r2, [r7, #892] @ zero_extendqisi2 + ldr r1, .L784+212 + ldrb r2, [r7, #940] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+216 - ldrh r2, [r7, #888] + ldr r1, .L784+216 + ldrh r2, [r7, #936] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+220 - ldrh r2, [r7, #1078] + ldr r1, .L784+220 + ldrh r2, [r7, #1074] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+224 - ldrb r2, [r7, #1082] @ zero_extendqisi2 + ldr r1, .L784+224 + ldrb r2, [r7, #1078] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+228 - ldrh r2, [r7, #1076] + ldr r1, .L784+228 + ldrh r2, [r7, #1072] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+232 - ldrb r2, [r7, #1084] @ zero_extendqisi2 + ldr r1, .L784+232 + ldrb r2, [r7, #1080] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L782+236 - ldrh r2, [r7, #1080] + ldr r1, .L784+236 + ldrh r2, [r7, #1076] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, [r7, #1212] - ldr r3, [r7, #948] - ldr r2, [r7, #1124] - b .L783 -.L784: + ldr r1, [r7, #1208] + ldr r3, [r8, #2832] + ldr r2, [r7, #1120] + str r1, [sp] + b .L785 +.L786: .align 2 -.L782: - .word .LC4 - .word .LC5 - .word .LC6 - .word .LANCHOR1 +.L784: .word .LC7 - .word .LANCHOR2 .word .LC8 .word .LC9 + .word .LANCHOR1 .word .LC10 + .word .LANCHOR2 .word .LC11 .word .LC12 .word .LC13 @@ -5475,145 +5467,144 @@ FtlPrintInfo2buf: .word .LC59 .word .LC60 .word .LC61 + .word .LC62 + .word .LC63 + .word .LC64 .word .LANCHOR0 -.L783: +.L785: + ldr r1, [r7, #1200] orr r2, r3, r2, lsl #8 - str r1, [sp] + str r1, [sp, #4] + ldr r3, [r7, #1204] + ldr r1, .L787 add r5, r5, r0 - ldr r1, [r7, #1204] mov r0, r5 - str r1, [sp, #4] - ldr r3, [r7, #1208] - ldr r1, .L785 bl sprintf - ldr r1, .L785+4 - ldr r2, [r7, #1200] + ldr r1, .L787+4 + ldr r2, [r7, #1196] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L785+8 - ldr r2, [r7, #1224] + ldr r1, .L787+8 + ldr r2, [r7, #1220] adds r4, r5, r0 mov r0, r4 bl sprintf - ldr r1, .L785+12 - ldrh r2, [r7, #1640] + ldr r1, .L787+12 + ldrh r2, [r7, #1636] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L785+16 - ldrh r2, [r7, #1642] + ldr r1, .L787+16 + ldrh r2, [r7, #1638] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L785+20 - ldr r2, [r7, #1644] + ldr r1, .L787+20 + ldr r2, [r7, #1640] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L785+24 - ldrh r2, [r7, #1648] + ldr r1, .L787+24 + ldrh r2, [r7, #1644] add r4, r4, r0 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L785+28 + ldr r1, .L787+28 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 - ldrh r0, [r7, #784] + ldrh r0, [r7, #832] bl GetFreeBlockMaxEraseCount - ldr r1, .L785+32 + ldr r1, .L787+32 mov r2, r0 mov r0, r4 bl sprintf - ldrh r3, [r7, #1076] + ldrh r3, [r7, #1072] movw r2, #65535 cmp r3, r2 add r4, r4, r0 - beq .L775 - ldr r2, [r7, #768] + beq .L777 + ldr r2, [r7, #816] mov r0, r4 - ldr r1, .L785+36 + ldr r1, .L787+36 ldrh r2, [r2, r3, lsl #1] bl sprintf add r4, r4, r0 -.L775: +.L777: movs r0, #0 movs r5, #0 bl List_get_gc_head_node mov r9, #6 movw r10, #65535 uxth r3, r0 -.L777: +.L779: cmp r3, r10 - beq .L776 - ldr r2, [r7, #768] + beq .L778 + ldr r2, [r7, #816] mov r0, r4 mul r8, r9, r3 - ldr r1, .L785+40 + ldr r1, .L787+40 ldrh r2, [r2, r3, lsl #1] str r2, [sp] - ldr r2, [r7, #760] + ldr r2, [r7, #808] add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp, #4] - ldr r2, [r7, #748] + ldr r2, [r7, #752] ldrh r2, [r2, r3, lsl #1] str r2, [sp, #8] mov r2, r5 bl sprintf adds r5, r5, #1 - ldr r3, [r7, #760] + ldr r3, [r7, #808] cmp r5, #16 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L777 -.L776: - ldr r2, [r7, #760] + bne .L779 +.L778: + ldr r2, [r7, #808] movs r5, #0 - ldr r3, [r7, #780] + ldr r3, [r7, #828] mov r9, #6 movw r10, #65535 subs r3, r3, r2 - ldr r2, .L785+44 + ldr r2, .L787+44 asrs r3, r3, #1 muls r3, r2, r3 uxth r3, r3 -.L779: +.L781: cmp r3, r10 - beq .L778 + beq .L780 mul r8, r9, r3 - ldr r2, [r7, #760] + ldr r2, [r7, #808] mov r0, r4 - ldr r1, .L785+48 + ldr r1, .L787+48 add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp] - ldr r2, [r7, #748] + ldr r2, [r7, #752] ldrh r2, [r2, r3, lsl #1] str r2, [sp, #4] mov r2, r5 bl sprintf adds r5, r5, #1 - ldr r3, [r7, #760] + ldr r3, [r7, #808] cmp r5, #4 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L779 -.L778: + bne .L781 +.L780: subs r0, r4, r6 add sp, sp, #32 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L786: +.L788: .align 2 -.L785: - .word .LC62 - .word .LC63 - .word .LC64 +.L787: .word .LC65 .word .LC66 .word .LC67 @@ -5622,24 +5613,27 @@ FtlPrintInfo2buf: .word .LC70 .word .LC71 .word .LC72 - .word -1431655765 .word .LC73 + .word .LC74 + .word .LC75 + .word -1431655765 + .word .LC76 .fnend .size FtlPrintInfo2buf, .-FtlPrintInfo2buf .align 1 - .global rknand_proc_ftlread + .global ftl_proc_ftl_read .thumb .thumb_func - .type rknand_proc_ftlread, %function -rknand_proc_ftlread: + .type ftl_proc_ftl_read, %function +ftl_proc_ftl_read: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r1, .L788 - ldr r2, .L788+4 + ldr r1, .L790 + ldr r2, .L790+4 bl sprintf adds r4, r5, r0 mov r0, r4 @@ -5647,13 +5641,13 @@ rknand_proc_ftlread: add r0, r0, r4 subs r0, r0, r5 pop {r3, r4, r5, pc} -.L789: +.L791: .align 2 -.L788: - .word .LC74 - .word .LC75 +.L790: + .word .LC77 + .word .LC78 .fnend - .size rknand_proc_ftlread, .-rknand_proc_ftlread + .size ftl_proc_ftl_read, .-ftl_proc_ftl_read .align 1 .global GetSwlReplaceBlock .thumb @@ -5667,184 +5661,185 @@ GetSwlReplaceBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r4, .L818 - ldr r2, [r4, #1000] - ldr r3, [r4, #1008] + ldr r4, .L820 + ldr r2, [r4, #1044] + ldr r3, [r4, #1052] cmp r2, r3 - bcs .L791 - ldr r2, .L818+4 + bcs .L793 + ldr r2, .L820+4 movs r3, #0 - ldr r0, [r4, #748] - str r3, [r4, #992] - ldrh r1, [r2, #2836] + ldr r0, [r4, #752] + str r3, [r4, #1036] + ldrh r1, [r2, #2848] mov r5, r2 -.L792: +.L794: cmp r3, r1 - bcs .L817 + bcs .L819 ldrh r6, [r0, r3, lsl #1] adds r3, r3, #1 - ldr r2, [r4, #992] + ldr r2, [r4, #1036] add r2, r2, r6 - str r2, [r4, #992] - b .L792 -.L817: - ldr r6, [r4, #992] + str r2, [r4, #1036] + b .L794 +.L819: + ldr r6, [r4, #1036] mov r0, r6 bl __aeabi_uidiv - ldrh r1, [r5, #2888] - str r0, [r4, #1000] - ldr r0, [r4, #996] + ldrh r1, [r5, #2900] + str r0, [r4, #1044] + ldr r0, [r4, #1040] subs r0, r6, r0 bl __aeabi_uidiv - str r0, [r4, #992] - b .L794 -.L791: - ldr r3, [r4, #1004] + str r0, [r4, #1036] + b .L796 +.L793: + ldr r3, [r4, #1048] cmp r2, r3 - bls .L794 - ldr r0, .L818+4 + bls .L796 + ldr r0, .L820+4 adds r3, r3, #1 - str r3, [r4, #1004] + str r3, [r4, #1048] movs r3, #0 -.L796: - ldrh r2, [r0, #2836] +.L798: + ldrh r2, [r0, #2848] cmp r3, r2 - bcs .L794 - ldr r1, [r4, #748] + bcs .L796 + ldr r1, [r4, #752] ldrh r2, [r1, r3, lsl #1] adds r2, r2, #1 strh r2, [r1, r3, lsl #1] @ movhi adds r3, r3, #1 - b .L796 -.L794: - ldr r6, [r4, #1008] - ldr r8, [r4, #1000] + b .L798 +.L796: + ldr r6, [r4, #1052] + ldr r8, [r4, #1044] add r3, r6, #256 - ldr r2, .L818 cmp r3, r8 - bls .L799 - ldr r1, [r2, #1004] + bls .L801 + ldr r2, .L820 add r3, r6, #768 - cmp r3, r1 - bls .L799 - ldr r3, [r2, #948] - cbnz r3, .L800 -.L802: + ldr r2, [r2, #1048] + cmp r3, r2 + bls .L801 + ldr r3, .L820+4 + ldr r3, [r3, #2832] + cbnz r3, .L802 +.L804: movw r0, #65535 - b .L801 -.L800: + b .L803 +.L802: cmp r6, #30 - bhi .L802 -.L799: - ldrh r0, [r4, #784] + bhi .L804 +.L801: + ldrh r0, [r4, #832] add r0, r0, r0, lsl #1 ubfx r0, r0, #2, #16 bl GetFreeBlockMaxEraseCount add r3, r6, #64 cmp r0, r3 mov r9, r0 - bcs .L803 + bcs .L805 cmp r6, #30 - bhi .L802 -.L803: - ldr r3, [r4, #764] - ldr r2, .L818 + bhi .L804 +.L805: + ldr r3, [r4, #812] + ldr r2, .L820 cmp r3, #0 - beq .L802 - ldr r1, .L818+4 + beq .L804 + ldr r1, .L820+4 movw r7, #65535 - ldr r0, [r2, #760] + ldr r0, [r2, #808] mov ip, #6 - ldr r10, [r2, #748] + ldr r10, [r2, #752] mov r5, r7 - ldrh r1, [r1, #2836] + ldrh r1, [r1, #2848] mov lr, r7 str r1, [sp, #20] movs r1, #0 -.L804: +.L806: ldrh r2, [r3] cmp r2, lr str r2, [sp, #16] - beq .L806 + beq .L808 adds r1, r1, #1 ldr r2, [sp, #20] uxth r1, r1 cmp r1, r2 - bhi .L802 + bhi .L804 ldrh fp, [r3, #4] cmp fp, #0 - beq .L805 + beq .L807 subs r3, r3, r0 - ldr r2, .L818+8 + ldr r2, .L820+8 asrs r3, r3, #1 muls r3, r2, r3 uxth r3, r3 ldrh fp, [r10, r3, lsl #1] cmp fp, r6 - bls .L810 + bls .L812 cmp fp, r7 itt cc movcc r7, fp movcc r5, r3 -.L805: +.L807: ldr r3, [sp, #16] mla r3, ip, r3, r0 - b .L804 -.L810: + b .L806 +.L812: mov r5, r3 -.L806: +.L808: movw r3, #65535 cmp r5, r3 - beq .L802 + beq .L804 ldrh fp, [r10, r5, lsl #1] lsls r3, r5, #1 cmp fp, r6 - bls .L808 + bls .L810 str r3, [sp, #16] bl GetFreeBlockMinEraseCount ldr r3, [sp, #16] cmp r0, r6 it hi - strhi r7, [r4, #1008] -.L808: + strhi r7, [r4, #1052] +.L810: cmp fp, r8 - bcs .L802 + bcs .L804 add r2, fp, #128 cmp r9, r2 - ble .L802 + ble .L804 add r2, fp, #256 cmp r2, r8 - bcc .L809 - ldr r2, [r4, #1004] + bcc .L811 + ldr r2, [r4, #1048] add fp, fp, #768 cmp fp, r2 - bcs .L802 -.L809: - ldr r2, [r4, #768] + bcs .L804 +.L811: + ldr r2, [r4, #816] mov r1, r5 - ldr r0, .L818+12 + ldr r0, .L820+12 ldrh r2, [r2, r3] str r2, [sp] mov r2, r8 ldrh r3, [r10, r3] str r9, [sp, #8] str r3, [sp, #4] - ldr r3, [r4, #1004] + ldr r3, [r4, #1048] bl printk mov r0, r5 movs r3, #1 - str r3, [r4, #1652] -.L801: + str r3, [r4, #1648] +.L803: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L819: +.L821: .align 2 -.L818: +.L820: .word .LANCHOR2 .word .LANCHOR0 .word -1431655765 - .word .LC76 + .word .LC79 .fnend .size GetSwlReplaceBlock, .-GetSwlReplaceBlock .align 1 @@ -5860,18 +5855,18 @@ free_data_superblock: cmp r0, r2 push {r3, lr} .save {r3, lr} - beq .L821 - ldr r2, .L822 + beq .L823 + ldr r2, .L824 movs r1, #0 - ldr r2, [r2, #768] + ldr r2, [r2, #816] strh r1, [r2, r0, lsl #1] @ movhi bl INSERT_FREE_LIST -.L821: +.L823: movs r0, #0 pop {r3, pc} -.L823: +.L825: .align 2 -.L822: +.L824: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -5884,9 +5879,9 @@ FtlGcBufInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L835 + ldr r2, .L837 mov ip, #36 - ldr r0, .L835+4 + ldr r0, .L837+4 movs r3, #0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} @@ -5894,68 +5889,68 @@ FtlGcBufInit: mov lr, #1 mov r6, r0 mov r4, r2 - str r3, [r2, #1656] -.L825: - ldrh r1, [r0, #2828] + str r3, [r2, #1652] +.L827: + ldrh r1, [r0, #2840] adds r5, r3, #1 uxth r3, r3 - ldr r8, .L835+4 + ldr r8, .L837+4 cmp r3, r1 - bcs .L833 + bcs .L835 mul r8, r7, r3 - ldr r9, [r2, #1660] + ldr r9, [r2, #1656] add r1, r9, r8 str lr, [r1, #8] - ldrh r1, [r0, #2908] + ldrh r1, [r0, #2920] muls r1, r3, r1 it mi addmi r1, r1, #3 bic r10, r1, #3 - ldr r1, [r4, #1664] + ldr r1, [r4, #1660] add r1, r1, r10 str r1, [r9, r8] - ldr r10, [r2, #1660] - ldrh r1, [r6, #2910] + ldr r10, [r2, #1656] + ldrh r1, [r6, #2922] muls r1, r3, r1 it mi addmi r1, r1, #3 add r9, r10, r8 bic fp, r1, #3 - ldr r1, [r4, #1668] + ldr r1, [r4, #1664] add r1, r1, fp str r1, [r9, #4] - ldr r1, [r2, #1672] + ldr r1, [r2, #1668] mla r3, ip, r3, r1 ldr r1, [r10, r8] str r1, [r3, #8] ldr r1, [r9, #4] str r1, [r3, #12] mov r3, r5 - b .L825 -.L833: - ldr r0, .L835 + b .L827 +.L835: + ldr r0, .L837 mov lr, #12 movs r5, #0 -.L829: - ldr r3, [r2, #1676] +.L831: + ldr r3, [r2, #1672] cmp r1, r3 - bcs .L834 + bcs .L836 mul r7, lr, r1 - ldr r6, [r0, #1660] - ldr r4, [r0, #1664] + ldr r6, [r0, #1656] + ldr r4, [r0, #1660] adds r3, r6, r7 str r5, [r3, #8] - ldrh r3, [r8, #2908] + ldrh r3, [r8, #2920] muls r3, r1, r3 it mi addmi r3, r3, #3 bic r3, r3, #3 add r3, r3, r4 str r3, [r6, r7] - ldr r3, [r2, #1660] - ldr r6, [r0, #1668] + ldr r3, [r2, #1656] + ldr r6, [r0, #1664] add r7, r7, r3 - ldrh r3, [r8, #2910] + ldrh r3, [r8, #2922] muls r3, r1, r3 add r1, r1, #1 it mi @@ -5964,12 +5959,12 @@ FtlGcBufInit: uxth r1, r1 add r3, r3, r6 str r3, [r7, #4] - b .L829 -.L834: - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} + b .L831 .L836: + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L838: .align 2 -.L835: +.L837: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -5983,41 +5978,41 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L844 + ldr r3, .L846 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} movs r5, #0 - ldr lr, [r3, #1676] + ldr lr, [r3, #1672] mov r10, #36 - ldr r6, [r3, #1660] + ldr r6, [r3, #1656] mov r8, #12 mov ip, r5 -.L838: +.L840: uxth r4, r5 cmp r4, r1 - bcs .L837 + bcs .L839 mla r4, r10, r4, r0 movs r2, #0 -.L839: +.L841: uxth r3, r2 cmp r3, lr - bcs .L840 + bcs .L842 mul r3, r8, r3 ldr r7, [r4, #8] adds r2, r2, #1 add r9, r6, r3 ldr r3, [r6, r3] cmp r3, r7 - bne .L839 + bne .L841 str ip, [r9, #8] -.L840: +.L842: adds r5, r5, #1 - b .L838 -.L837: + b .L840 +.L839: pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L845: +.L847: .align 2 -.L844: +.L846: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -6030,43 +6025,43 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L854 + ldr r3, .L856 mov ip, #1 push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} movs r4, #0 - ldr r5, [r3, #1676] + ldr r5, [r3, #1672] mov lr, #12 - ldr r6, [r3, #1660] + ldr r6, [r3, #1656] mov r8, #36 -.L847: +.L849: uxth r2, r4 cmp r2, r1 - bcs .L853 + bcs .L855 mov r9, #0 -.L848: +.L850: uxth r3, r9 cmp r3, r5 - bcs .L849 + bcs .L851 mla r3, lr, r3, r6 add r9, r9, #1 ldr r7, [r3, #8] cmp r7, #0 - bne .L848 + bne .L850 mla r2, r8, r2, r0 ldr r7, [r3] str ip, [r3, #8] str r7, [r2, #8] ldr r3, [r3, #4] str r3, [r2, #12] -.L849: +.L851: adds r4, r4, #1 - b .L847 -.L853: - pop {r4, r5, r6, r7, r8, r9, pc} + b .L849 .L855: + pop {r4, r5, r6, r7, r8, r9, pc} +.L857: .align 2 -.L854: +.L856: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -6080,24 +6075,24 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L862 - ldr r3, [r2, #1680] - ldrh r2, [r2, #1684] + ldr r2, .L864 + ldr r3, [r2, #1676] + ldrh r2, [r2, #1680] add r2, r3, r2, lsl #1 -.L857: +.L859: cmp r3, r2 - beq .L861 + beq .L863 ldrh r1, [r3], #2 cmp r1, r0 - bne .L857 + bne .L859 movs r0, #1 bx lr -.L861: +.L863: movs r0, #0 bx lr -.L863: +.L865: .align 2 -.L862: +.L864: .word .LANCHOR2 .fnend .size IsBlkInGcList, .-IsBlkInGcList @@ -6117,42 +6112,42 @@ FtlGcUpdatePage: mov r7, r1 mov r8, r2 bl P2V_block_in_plane - ldr r3, .L871 + ldr r3, .L873 movs r4, #0 - ldrh r1, [r3, #1684] - ldr r2, [r3, #1680] -.L865: + ldrh r1, [r3, #1680] + ldr r2, [r3, #1676] +.L867: uxth r5, r4 cmp r5, r1 - bcs .L869 + bcs .L871 adds r4, r4, #1 add lr, r2, r4, lsl #1 ldrh lr, [lr, #-2] cmp lr, r0 - bne .L865 -.L869: - cmp r5, r1 bne .L867 +.L871: + cmp r5, r1 + bne .L869 strh r0, [r2, r5, lsl #1] @ movhi - ldrh r0, [r3, #1684] + ldrh r0, [r3, #1680] adds r0, r0, #1 - strh r0, [r3, #1684] @ movhi -.L867: - ldrh r2, [r3, #1692] + strh r0, [r3, #1680] @ movhi +.L869: + ldrh r2, [r3, #1688] movs r0, #12 muls r0, r2, r0 - ldr r2, [r3, #1688] + ldr r2, [r3, #1684] adds r1, r2, r0 str r7, [r1, #4] str r8, [r1, #8] str r6, [r2, r0] - ldrh r2, [r3, #1692] + ldrh r2, [r3, #1688] adds r2, r2, #1 - strh r2, [r3, #1692] @ movhi + strh r2, [r3, #1688] @ movhi pop {r4, r5, r6, r7, r8, pc} -.L872: +.L874: .align 2 -.L871: +.L873: .word .LANCHOR2 .fnend .size FtlGcUpdatePage, .-FtlGcUpdatePage @@ -6169,31 +6164,31 @@ FtlGcRefreshOpenBlock: .save {r4, lr} mov r4, r0 mov r1, r4 - ldr r0, .L876 + ldr r0, .L878 bl printk - ldr r3, .L876+4 - ldrh r0, [r3, #1694] + ldr r3, .L878+4 + ldrh r0, [r3, #1690] cmp r0, r4 - beq .L874 - ldrh r1, [r3, #1696] + beq .L876 + ldrh r1, [r3, #1692] cmp r1, r4 - beq .L874 + beq .L876 movw r2, #65535 cmp r0, r2 - bne .L875 - strh r4, [r3, #1694] @ movhi - b .L874 -.L875: + bne .L877 + strh r4, [r3, #1690] @ movhi + b .L876 +.L877: cmp r1, r2 it eq - strheq r4, [r3, #1696] @ movhi -.L874: + strheq r4, [r3, #1692] @ movhi +.L876: movs r0, #0 pop {r4, pc} -.L877: +.L879: .align 2 -.L876: - .word .LC77 +.L878: + .word .LC80 .word .LANCHOR2 .fnend .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock @@ -6210,31 +6205,31 @@ FtlGcRefreshBlock: .save {r4, lr} mov r4, r0 mov r1, r4 - ldr r0, .L881 + ldr r0, .L883 bl printk - ldr r3, .L881+4 - ldrh r0, [r3, #1694] + ldr r3, .L883+4 + ldrh r0, [r3, #1690] cmp r0, r4 - beq .L879 - ldrh r1, [r3, #1696] + beq .L881 + ldrh r1, [r3, #1692] cmp r1, r4 - beq .L879 + beq .L881 movw r2, #65535 cmp r0, r2 - bne .L880 - strh r4, [r3, #1694] @ movhi - b .L879 -.L880: + bne .L882 + strh r4, [r3, #1690] @ movhi + b .L881 +.L882: cmp r1, r2 it eq - strheq r4, [r3, #1696] @ movhi -.L879: + strheq r4, [r3, #1692] @ movhi +.L881: movs r0, #0 pop {r4, pc} -.L882: +.L884: .align 2 -.L881: - .word .LC77 +.L883: + .word .LC80 .word .LANCHOR2 .fnend .size FtlGcRefreshBlock, .-FtlGcRefreshBlock @@ -6251,53 +6246,55 @@ FtlGcMarkBadPhyBlk: .save {r4, r5, r6, lr} mov r5, r0 bl P2V_block_in_plane - ldr r4, .L892 + ldr r4, .L894 mov r2, r5 - ldrh r1, [r4, #1698] + ldrh r1, [r4, #1694] mov r6, r0 - ldr r0, .L892+4 + ldr r0, .L894+4 bl printk mov r0, r6 bl FtlGcRefreshBlock - ldr r2, [r4, #948] + ldr r3, .L894+8 + ldr r2, [r3, #2832] mov r3, r4 - cbz r2, .L884 - ldr r1, [r4, #748] + cbz r2, .L886 + ldr r1, [r4, #752] ldrh r2, [r1, r6, lsl #1] cmp r2, #29 itt hi subhi r2, r2, #30 strhhi r2, [r1, r6, lsl #1] @ movhi -.L884: - ldrh r2, [r3, #1698] +.L886: + ldrh r2, [r3, #1694] movs r1, #0 - ldr r4, .L892+8 -.L885: + ldr r4, .L894+12 +.L887: uxth r0, r1 cmp r0, r2 - bcs .L891 + bcs .L893 adds r1, r1, #1 add r0, r4, r1, lsl #1 ldrh r0, [r0, #-2] cmp r0, r5 - bne .L885 - b .L886 -.L891: + bne .L887 + b .L888 +.L893: cmp r2, #15 itttt ls addls r1, r2, #1 - strhls r1, [r3, #1698] @ movhi + strhls r1, [r3, #1694] @ movhi addls r3, r3, r2, lsl #1 - strhls r5, [r3, #1700] @ movhi -.L886: + strhls r5, [r3, #1696] @ movhi +.L888: movs r0, #0 pop {r4, r5, r6, pc} -.L893: +.L895: .align 2 -.L892: +.L894: .word .LANCHOR2 - .word .LC78 - .word .LANCHOR2+1700 + .word .LC81 + .word .LANCHOR0 + .word .LANCHOR2+1696 .fnend .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk .align 1 @@ -6311,32 +6308,32 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L900 - ldrh r3, [r4, #1698] - cbz r3, .L895 - ldrh r1, [r4, #1694] + ldr r4, .L902 + ldrh r3, [r4, #1694] + cbz r3, .L897 + ldrh r1, [r4, #1690] movw r2, #65535 cmp r1, r2 - bne .L895 - ldrh r2, [r4, #1734] + bne .L897 + ldrh r2, [r4, #1730] cmp r2, r3 itt cs movcs r3, #0 - strhcs r3, [r4, #1734] @ movhi - ldrh r3, [r4, #1734] + strhcs r3, [r4, #1730] @ movhi + ldrh r3, [r4, #1730] add r3, r4, r3, lsl #1 - ldrh r0, [r3, #1700] + ldrh r0, [r3, #1696] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh r3, [r4, #1734] + ldrh r3, [r4, #1730] adds r3, r3, #1 - strh r3, [r4, #1734] @ movhi -.L895: + strh r3, [r4, #1730] @ movhi +.L897: movs r0, #0 pop {r4, pc} -.L901: +.L903: .align 2 -.L900: +.L902: .word .LANCHOR2 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk @@ -6352,9 +6349,9 @@ ftl_memset: push {r4, lr} .save {r4, lr} mov r4, r0 - cbz r2, .L903 + cbz r2, .L905 bl memset -.L903: +.L905: mov r0, r4 pop {r4, pc} .fnend @@ -6371,64 +6368,64 @@ FtlMemInit: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r0, #1024 - ldr r4, .L1011 + ldr r4, .L1013 movs r6, #0 - ldr r5, .L1011+4 + ldr r5, .L1013+4 movw r3, #65535 movs r7, #12 mov r8, #36 - strh r6, [r4, #1736] @ movhi - ldrh r1, [r5, #2904] - str r6, [r4, #1740] - str r6, [r4, #1124] - str r6, [r4, #984] - str r6, [r4, #988] - str r6, [r4, #972] - str r6, [r4, #960] - str r6, [r4, #956] - str r6, [r4, #964] - str r6, [r4, #968] - str r6, [r4, #952] - str r6, [r4, #992] - str r6, [r4, #996] - str r6, [r4, #752] + strh r6, [r4, #1732] @ movhi + ldrh r1, [r5, #2916] + str r6, [r4, #1736] + str r6, [r4, #1120] + str r6, [r4, #1028] + str r6, [r4, #1032] + str r6, [r4, #1016] str r6, [r4, #1004] + str r6, [r4, #1000] str r6, [r4, #1008] - str r6, [r4, #1744] - str r6, [r4, #1652] - str r3, [r4, #1748] + str r6, [r4, #1012] + str r6, [r4, #996] + str r6, [r4, #1036] + str r6, [r4, #1040] + str r6, [r4, #756] + str r6, [r4, #1048] + str r6, [r4, #1052] + str r6, [r4, #1740] + str r6, [r4, #1648] + str r3, [r4, #1744] + str r6, [r4, #1748] + str r6, [r4, #1640] str r6, [r4, #1752] - str r6, [r4, #1644] - str r6, [r5, #2964] - strh r3, [r4, #1694] @ movhi - strh r3, [r4, #1696] @ movhi + strh r3, [r4, #1690] @ movhi + strh r3, [r4, #1692] @ movhi movs r3, #32 - strh r6, [r4, #1648] @ movhi - strh r3, [r4, #1640] @ movhi + strh r6, [r4, #1644] @ movhi + strh r3, [r4, #1636] @ movhi movs r3, #128 - strh r6, [r4, #1698] @ movhi - strh r3, [r4, #1642] @ movhi + strh r6, [r4, #1694] @ movhi + strh r3, [r4, #1638] @ movhi strh r6, [r4, #1756] @ movhi - strh r6, [r4, #1734] @ movhi + strh r6, [r4, #1730] @ movhi bl __aeabi_idiv - ldrh r3, [r5, #2828] - str r6, [r5, #2952] + ldrh r3, [r5, #2840] + str r6, [r5, #2960] lsls r3, r3, #2 cmp r0, r3 str r0, [r4, #1760] - ldrh r0, [r5, #2902] + ldrh r0, [r5, #2914] it hi strhi r3, [r4, #1760] lsls r0, r0, #1 bl ftl_malloc - str r0, [r4, #1680] - ldrh r0, [r5, #2902] + str r0, [r4, #1676] + ldrh r0, [r5, #2914] muls r0, r7, r0 bl ftl_malloc - ldrh r6, [r5, #2828] + ldrh r6, [r5, #2840] mul r6, r8, r6 lsl r9, r6, #3 - str r0, [r4, #1688] + str r0, [r4, #1684] mov r0, r9 bl ftl_malloc str r0, [r4, #1764] @@ -6440,303 +6437,303 @@ FtlMemInit: str r0, [r4, #1772] mov r0, r6 bl ftl_malloc - str r0, [r4, #744] + str r0, [r4, #748] mov r0, r6 bl ftl_malloc - str r0, [r4, #1672] + str r0, [r4, #1668] ldr r0, [r4, #1760] mul r0, r8, r0 bl ftl_malloc - ldrh r6, [r5, #2908] - ldrh r3, [r5, #2828] + ldrh r6, [r5, #2920] + ldrh r3, [r5, #2840] lsls r3, r3, #1 adds r3, r3, #1 - str r3, [r4, #1676] - str r0, [r5, #2956] - mov r0, r6 - bl ftl_malloc - str r0, [r4, #756] + str r3, [r4, #1672] + str r0, [r5, #2964] mov r0, r6 bl ftl_malloc str r0, [r4, #1776] mov r0, r6 bl ftl_malloc str r0, [r4, #1780] - ldr r0, [r4, #1676] + mov r0, r6 + bl ftl_malloc + str r0, [r4, #1784] + ldr r0, [r4, #1672] muls r0, r6, r0 bl ftl_malloc - str r0, [r4, #1664] + str r0, [r4, #1660] ldr r0, [r4, #1760] muls r0, r6, r0 bl ftl_malloc - str r0, [r4, #1784] - mov r0, r6 - bl ftl_malloc str r0, [r4, #1788] mov r0, r6 bl ftl_malloc str r0, [r4, #1792] - ldr r0, [r4, #1676] + mov r0, r6 + bl ftl_malloc + str r0, [r4, #1796] + ldr r0, [r4, #1672] muls r0, r7, r0 bl ftl_malloc - ldrh r3, [r5, #2828] - ldrh r6, [r5, #2910] + ldrh r3, [r5, #2840] + ldrh r6, [r5, #2922] muls r6, r3, r6 - str r0, [r4, #1660] + str r0, [r4, #1656] mov r0, r6 bl ftl_malloc - str r0, [r4, #1796] + str r0, [r4, #1800] lsls r0, r6, #3 bl ftl_malloc - ldrh r3, [r5, #2910] - str r0, [r4, #1800] - ldr r0, [r4, #1676] + ldrh r3, [r5, #2922] + str r0, [r4, #1804] + ldr r0, [r4, #1672] muls r0, r3, r0 bl ftl_malloc - ldrh r3, [r5, #2910] - str r0, [r4, #1668] + ldrh r3, [r5, #2922] + str r0, [r4, #1664] ldr r0, [r4, #1760] muls r0, r3, r0 bl ftl_malloc - str r0, [r4, #1804] - ldrh r0, [r5, #2838] + str r0, [r4, #1808] + ldrh r0, [r5, #2850] lsls r0, r0, #1 uxth r0, r0 - strh r0, [r4, #1808] @ movhi + strh r0, [r4, #1812] @ movhi bl ftl_malloc - str r0, [r4, #1812] - ldrh r0, [r4, #1808] + str r0, [r4, #1816] + ldrh r0, [r4, #1812] addw r0, r0, #547 lsrs r0, r0, #9 - strh r0, [r4, #1808] @ movhi + strh r0, [r4, #1812] @ movhi lsls r0, r0, #9 bl ftl_malloc - ldrh r6, [r5, #2838] + ldrh r6, [r5, #2850] lsls r6, r6, #1 - str r0, [r4, #1816] + str r0, [r4, #1820] adds r0, r0, #32 - str r0, [r4, #748] + str r0, [r4, #752] mov r0, r6 bl ftl_malloc - str r0, [r4, #1820] + str r0, [r4, #1824] mov r0, r6 bl ftl_malloc - ldr r6, [r5, #2928] + ldr r6, [r5, #2940] lsls r6, r6, #1 - str r0, [r4, #768] + str r0, [r4, #816] mov r0, r6 bl ftl_malloc - str r0, [r4, #1824] + str r0, [r4, #1828] mov r0, r6 bl ftl_malloc - str r0, [r4, #1828] - ldrh r0, [r5, #2838] + str r0, [r4, #1832] + ldrh r0, [r5, #2850] lsrs r0, r0, #3 adds r0, r0, #4 bl ftl_malloc - str r0, [r4, #944] - ldrh r0, [r5, #2920] + str r0, [r4, #992] + ldrh r0, [r5, #2932] lsls r0, r0, #1 bl ftl_malloc - str r0, [r5, #2948] - ldrh r0, [r5, #2920] + str r0, [r5, #2956] + ldrh r0, [r5, #2932] lsls r0, r0, #1 bl ftl_malloc - str r0, [r4, #1832] - ldrh r0, [r5, #2920] + str r0, [r4, #1836] + ldrh r0, [r5, #2932] lsls r0, r0, #2 bl ftl_malloc - str r0, [r4, #1836] - ldrh r0, [r5, #2922] + str r0, [r4, #1840] + ldrh r0, [r5, #2934] lsls r0, r0, #2 bl ftl_malloc - ldrh r2, [r5, #2922] + ldrh r2, [r5, #2934] movs r1, #0 lsls r2, r2, #2 - str r0, [r4, #1840] + str r0, [r4, #1844] bl ftl_memset - ldrh r6, [r5, #2936] + ldrh r6, [r5, #2948] lsls r6, r6, #2 mov r0, r6 bl ftl_malloc - str r0, [r4, #1844] + str r0, [r4, #1848] mov r0, r6 bl ftl_malloc - ldr r6, .L1011+8 - str r0, [r4, #1848] - ldr r0, [r5, #2928] + ldr r6, .L1013+8 + str r0, [r4, #1852] + ldr r0, [r5, #2940] lsls r0, r0, #2 bl ftl_malloc - str r0, [r4, #1852] - ldrh r0, [r5, #2938] + str r0, [r4, #1856] + ldrh r0, [r5, #2950] muls r0, r7, r0 bl ftl_malloc - ldrh r3, [r5, #2938] - str r0, [r4, #932] - ldrh r0, [r5, #2908] + ldrh r3, [r5, #2950] + str r0, [r4, #980] + ldrh r0, [r5, #2920] muls r0, r3, r0 bl ftl_malloc - ldrh r3, [r5, #2838] - str r0, [r4, #1856] + ldrh r3, [r5, #2850] + str r0, [r4, #1860] movs r0, #6 muls r0, r3, r0 bl ftl_malloc - ldrh r3, [r5, #2894] + ldrh r3, [r5, #2906] adds r3, r3, #31 asrs r3, r3, #5 - strh r3, [r4, #1860] @ movhi - str r0, [r4, #760] - ldrh r0, [r5, #2850] + strh r3, [r4, #1864] @ movhi + str r0, [r4, #808] + ldrh r0, [r5, #2862] muls r0, r3, r0 lsls r0, r0, #2 bl ftl_malloc - ldrh r2, [r4, #1860] - ldrh r7, [r5, #2850] + ldrh r2, [r4, #1864] + ldrh r7, [r5, #2862] movs r3, #1 lsls r2, r2, #2 mov r1, r2 - str r0, [r5, #2996] -.L909: + str r0, [r5, #3000] +.L911: cmp r3, r7 - bcs .L1009 - ldr r0, [r5, #2996] + bcs .L1011 + ldr r0, [r5, #3000] adds r3, r3, #1 add r0, r0, r1 add r1, r1, r2 str r0, [r6, #4]! - b .L909 -.L1009: - ldr r2, .L1011+12 + b .L911 +.L1011: + ldr r2, .L1013+12 movs r1, #0 -.L911: +.L913: cmp r3, #8 - beq .L1010 + beq .L1012 add r0, r2, r3, lsl #2 adds r3, r3, #1 str r1, [r0, #28] - b .L911 -.L1010: - ldr r2, [r4, #1824] - ldr r3, .L1011 - cbnz r2, .L913 -.L915: - ldr r1, .L1011+16 - ldr r0, .L1011+20 + b .L913 +.L1012: + ldr r2, [r4, #1828] + ldr r3, .L1013 + cbnz r2, .L915 +.L917: + ldr r1, .L1013+16 + ldr r0, .L1013+20 bl printk mov r0, #-1 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1012: +.L1014: .align 2 -.L1011: +.L1013: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+2996 - .word .LANCHOR0+2968 + .word .LANCHOR0+3000 + .word .LANCHOR0+2972 .word .LANCHOR3 - .word .LC79 -.L913: - ldr r2, [r3, #1828] + .word .LC82 +.L915: + ldr r2, [r3, #1832] cmp r2, #0 - beq .L915 - ldr r2, [r3, #1844] + beq .L917 + ldr r2, [r3, #1848] cmp r2, #0 - beq .L915 - ldr r2, [r3, #1852] + beq .L917 + ldr r2, [r3, #1856] cmp r2, #0 - beq .L915 - ldr r2, [r3, #932] + beq .L917 + ldr r2, [r3, #980] cmp r2, #0 - beq .L915 - ldr r2, [r3, #1856] + beq .L917 + ldr r2, [r3, #1860] cmp r2, #0 - beq .L915 - ldr r2, [r3, #760] + beq .L917 + ldr r2, [r3, #808] cmp r2, #0 - beq .L915 - ldr r2, [r5, #2996] + beq .L917 + ldr r2, [r5, #3000] cmp r2, #0 - beq .L915 - ldr r3, [r3, #768] + beq .L917 + ldr r3, [r3, #816] cmp r3, #0 - beq .L915 - ldr r2, [r4, #1680] - ldr r3, .L1013 + beq .L917 + ldr r2, [r4, #1676] + ldr r3, .L1015 cmp r2, #0 - beq .L915 - ldr r2, [r3, #1688] + beq .L917 + ldr r2, [r3, #1684] cmp r2, #0 - beq .L915 + beq .L917 ldr r2, [r3, #1764] cmp r2, #0 - beq .L915 + beq .L917 ldr r2, [r3, #1772] cmp r2, #0 - beq .L915 - ldr r2, [r3, #744] + beq .L917 + ldr r2, [r3, #748] cmp r2, #0 - beq .L915 - ldr r2, [r3, #1672] + beq .L917 + ldr r2, [r3, #1668] cmp r2, #0 - beq .L915 + beq .L917 ldr r2, [r3, #1768] cmp r2, #0 - beq .L915 - ldr r2, [r3, #756] - cmp r2, #0 - beq .L915 + beq .L917 ldr r2, [r3, #1776] cmp r2, #0 - beq .L915 - ldr r3, [r3, #1780] - cmp r3, #0 - beq .L915 - ldr r2, [r4, #1664] - ldr r3, .L1013 + beq .L917 + ldr r2, [r3, #1780] cmp r2, #0 - beq .L915 - ldr r2, [r3, #1788] + beq .L917 + ldr r3, [r3, #1784] + cmp r3, #0 + beq .L917 + ldr r2, [r4, #1660] + ldr r3, .L1015 cmp r2, #0 - beq .L915 + beq .L917 ldr r2, [r3, #1792] cmp r2, #0 - beq .L915 - ldr r2, [r3, #1660] - cmp r2, #0 - beq .L915 + beq .L917 ldr r2, [r3, #1796] cmp r2, #0 - beq .L915 + beq .L917 + ldr r2, [r3, #1656] + cmp r2, #0 + beq .L917 ldr r2, [r3, #1800] cmp r2, #0 - beq .L915 - ldr r2, [r3, #1668] + beq .L917 + ldr r2, [r3, #1804] cmp r2, #0 - beq .L915 - ldr r2, [r3, #748] + beq .L917 + ldr r2, [r3, #1664] + cmp r2, #0 + beq .L917 + ldr r2, [r3, #752] cmp r2, #0 - beq .L915 - ldr r3, [r3, #1812] + beq .L917 + ldr r3, [r3, #1816] cmp r3, #0 - beq .L915 - ldr r3, .L1013+4 - ldr r3, [r3, #2948] + beq .L917 + ldr r3, .L1015+4 + ldr r3, [r3, #2956] cmp r3, #0 - beq .L915 - ldr r3, .L1013 - ldr r2, [r3, #1832] - cmp r2, #0 - beq .L915 + beq .L917 + ldr r3, .L1015 ldr r2, [r3, #1836] cmp r2, #0 - beq .L915 - ldr r3, [r3, #1840] + beq .L917 + ldr r2, [r3, #1840] + cmp r2, #0 + beq .L917 + ldr r3, [r3, #1844] cmp r3, #0 - beq .L915 + beq .L917 movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1014: +.L1016: .align 2 -.L1013: +.L1015: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -6753,21 +6750,21 @@ FtlBbt2Bitmap: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r4, r0 - ldr r3, .L1020 + ldr r3, .L1022 mov r0, r1 mov r5, r1 movs r1, #0 movs r6, #1 movw r7, #65535 - ldrh r2, [r3, #1860] + ldrh r2, [r3, #1864] lsls r2, r2, #2 bl ftl_memset subs r2, r4, #2 addw r4, r4, #1022 -.L1017: +.L1019: ldrh r3, [r2, #2]! cmp r3, r7 - beq .L1015 + beq .L1017 lsrs r1, r3, #5 cmp r2, r4 and r3, r3, #31 @@ -6775,12 +6772,12 @@ FtlBbt2Bitmap: lsl r3, r6, r3 orr r3, r3, r0 str r3, [r5, r1, lsl #2] - bne .L1017 -.L1015: + bne .L1019 +.L1017: pop {r3, r4, r5, r6, r7, pc} -.L1021: +.L1023: .align 2 -.L1020: +.L1022: .word .LANCHOR2 .fnend .size FtlBbt2Bitmap, .-FtlBbt2Bitmap @@ -6806,19 +6803,19 @@ ftl_free_no_use_map_blk: mov r0, r6 bl ftl_memset movs r2, #0 -.L1023: +.L1025: ldrh r1, [r4, #6] uxth r3, r2 cmp r1, r3 - bls .L1036 + bls .L1038 ldr r0, [r5, r3, lsl #2] movs r1, #0 ubfx r0, r0, #10, #16 -.L1024: +.L1026: ldrh r7, [r4, #10] uxth r3, r1 cmp r7, r3 - bls .L1037 + bls .L1039 ldrh r7, [r9, r3, lsl #1] adds r1, r1, #1 cmp r7, r0 @@ -6826,57 +6823,57 @@ ftl_free_no_use_map_blk: ldrheq r7, [r6, r3, lsl #1] addeq r7, r7, #1 strheq r7, [r6, r3, lsl #1] @ movhi - b .L1024 -.L1037: + b .L1026 +.L1039: adds r2, r2, #1 - b .L1023 -.L1036: + b .L1025 +.L1038: movs r7, #0 ldrh fp, [r6] - ldr r2, .L1039 + ldr r2, .L1041 mov r10, r7 -.L1028: +.L1030: ldrh r3, [r4, #10] uxth r5, r7 cmp r3, r5 - bls .L1038 + bls .L1040 ldrh r3, [r4] cmp r3, r5 - bne .L1029 - ldrh r3, [r2, #2900] + bne .L1031 + ldrh r3, [r2, #2912] ldrh r1, [r4, #2] cmp r1, r3 it cc strhcc r3, [r6, r5, lsl #1] @ movhi -.L1029: +.L1031: ldrh r8, [r6, r5, lsl #1] cmp fp, r8 itt hi movhi r10, r5 movhi fp, r8 cmp r8, #0 - bne .L1031 + bne .L1033 ldrh r0, [r9, r5, lsl #1] - cbz r0, .L1031 + cbz r0, .L1033 movs r1, #1 str r2, [sp, #4] bl FtlFreeSysBlkQueueIn + ldr r2, [sp, #4] strh r8, [r9, r5, lsl #1] @ movhi ldrh r3, [r4, #8] subs r3, r3, #1 strh r3, [r4, #8] @ movhi - ldr r2, [sp, #4] -.L1031: +.L1033: adds r7, r7, #1 - b .L1028 -.L1038: + b .L1030 +.L1040: mov r0, r10 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1040: +.L1042: .align 2 -.L1039: +.L1041: .word .LANCHOR0 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -6892,72 +6889,72 @@ FtlL2PDataInit: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} movs r1, #0 - ldr r4, .L1045 + ldr r4, .L1047 movs r7, #0 - ldr r5, .L1045+4 + ldr r5, .L1047+4 mov r6, r7 - ldr r2, [r4, #2928] + ldr r2, [r4, #2940] mov r9, r4 - ldr r0, [r5, #1828] + ldr r0, [r5, #1832] lsls r2, r2, #1 bl ftl_memset - ldrh r3, [r4, #2908] - ldrh r2, [r4, #2938] + ldrh r3, [r4, #2920] + ldrh r2, [r4, #2950] movs r1, #255 - ldr r0, [r5, #1856] + ldr r0, [r5, #1860] muls r2, r3, r2 bl ftl_memset mov r3, r5 movs r5, #12 mov r2, r4 movw lr, #65535 -.L1042: - ldrh ip, [r2, #2938] +.L1044: + ldrh ip, [r2, #2950] adds r0, r7, #1 uxth r7, r7 - ldr r1, .L1045 + ldr r1, .L1047 cmp ip, r7 - bls .L1044 + bls .L1046 mul r1, r5, r7 - ldr ip, [r3, #932] + ldr ip, [r3, #980] add r8, ip, r1 str r6, [r8, #4] strh lr, [ip, r1] @ movhi - ldr r4, [r3, #932] + ldr r4, [r3, #980] add ip, r4, r1 - ldrh r1, [r9, #2908] + ldrh r1, [r9, #2920] muls r1, r7, r1 - ldr r7, [r3, #1856] + ldr r7, [r3, #1860] bic r1, r1, #3 add r1, r1, r7 mov r7, r0 str r1, [ip, #8] - b .L1042 -.L1044: - ldr r0, [r1, #2928] + b .L1044 +.L1046: + ldr r0, [r1, #2940] movw r2, #65535 - ldrh r1, [r1, #2936] - strh r2, [r3, #1866] @ movhi - strh r0, [r3, #1874] @ movhi + ldrh r1, [r1, #2948] + strh r2, [r3, #1870] @ movhi + strh r0, [r3, #1878] @ movhi movw r0, #61634 - strh r1, [r3, #1870] @ movhi - ldr r1, [r3, #1824] - strh r0, [r3, #1868] @ movhi - ldrh r0, [r3, #1908] - str r1, [r3, #1876] - ldr r1, [r3, #1852] - strh r2, [r3, #1864] @ movhi + strh r1, [r3, #1874] @ movhi + ldr r1, [r3, #1828] strh r0, [r3, #1872] @ movhi + ldrh r0, [r3, #1912] str r1, [r3, #1880] - ldr r1, [r3, #1828] - strh r2, [r3, #1904] @ movhi + ldr r1, [r3, #1856] + strh r2, [r3, #1868] @ movhi + strh r0, [r3, #1876] @ movhi str r1, [r3, #1884] - ldr r1, [r3, #1844] + ldr r1, [r3, #1832] + strh r2, [r3, #1908] @ movhi str r1, [r3, #1888] + ldr r1, [r3, #1848] + str r1, [r3, #1892] pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1046: +.L1048: .align 2 -.L1045: +.L1047: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -6973,46 +6970,46 @@ FtlVariablesInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - movs r5, #0 - ldr r6, .L1048 + movs r4, #0 + ldr r6, .L1050 movw r3, #65535 - ldr r4, .L1048+4 - mov r1, r5 - ldrh r2, [r6, #2920] - ldr r0, [r6, #2948] - strh r3, [r4, #1916] @ movhi + ldr r5, .L1050+4 + mov r1, r4 + ldrh r2, [r6, #2932] + ldr r0, [r6, #2956] + strh r3, [r5, #1920] @ movhi mov r3, #-1 lsls r2, r2, #1 - str r3, [r4, #1928] - str r5, [r4, #1912] - str r5, [r4, #1920] - str r5, [r4, #1924] - str r5, [r4, #948] - strh r5, [r6, #2946] @ movhi + str r3, [r5, #1932] + str r4, [r5, #1916] + str r4, [r5, #1924] + str r4, [r5, #1928] + str r4, [r6, #2832] + strh r4, [r6, #2954] @ movhi bl ftl_memset - ldrh r2, [r6, #2838] - mov r1, r5 - ldr r0, [r4, #748] + ldrh r2, [r6, #2850] + mov r1, r4 + ldr r0, [r5, #752] lsls r2, r2, #1 bl ftl_memset - ldrh r2, [r6, #2838] - mov r1, r5 - ldr r0, [r4, #1812] + ldrh r2, [r6, #2850] + mov r1, r4 + ldr r0, [r5, #1816] lsls r2, r2, #1 bl ftl_memset - add r0, r4, #1012 + add r0, r5, #760 movs r1, #48 bl __memzero - add r0, r4, #1128 + addw r0, r5, #1124 mov r1, #512 bl __memzero bl FtlGcBufInit bl FtlL2PDataInit - mov r0, r5 + mov r0, r4 pop {r4, r5, r6, pc} -.L1049: +.L1051: .align 2 -.L1048: +.L1050: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7029,110 +7026,110 @@ SupperBlkListInit: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r2, #6 - ldr r6, .L1061 + ldr r6, .L1063 movs r5, #0 - ldr r4, .L1061+4 + ldr r4, .L1063+4 .pad #20 sub sp, sp, #20 movs r1, #0 mov r9, r5 - ldrh r3, [r6, #2838] + ldrh r3, [r6, #2850] mov r10, r5 - ldr r0, [r4, #760] + ldr r0, [r4, #808] mov r8, r6 muls r2, r3, r2 bl ftl_memset - str r5, [r4, #780] - str r5, [r4, #764] - str r5, [r4, #772] - strh r5, [r4, #776] @ movhi - strh r5, [r4, #784] @ movhi - strh r5, [r4, #1736] @ movhi -.L1051: + str r5, [r4, #828] + str r5, [r4, #812] + str r5, [r4, #820] + strh r5, [r4, #824] @ movhi + strh r5, [r4, #832] @ movhi + strh r5, [r4, #1732] @ movhi +.L1053: uxth fp, r5 - ldrh r2, [r8, #2836] + ldrh r2, [r8, #2848] sxth r7, fp cmp r7, r2 - bge .L1058 - ldr r3, .L1061 + bge .L1060 + ldr r3, .L1063 movs r2, #0 mov r6, r2 - ldrh ip, [r3, #2828] - ldrh r3, [r3, #2898] + ldrh ip, [r3, #2840] + ldrh r3, [r3, #2910] str r3, [sp, #4] -.L1059: +.L1061: sxth r1, r2 cmp r1, ip - bge .L1060 + bge .L1062 add r1, r1, r8 str r2, [sp, #12] str ip, [sp, #8] - ldrb r0, [r1, #2856] @ zero_extendqisi2 + ldrb r0, [r1, #2868] @ zero_extendqisi2 mov r1, fp bl V2P_block bl FtlBbmIsBadBlock ldr ip, [sp, #8] ldr r2, [sp, #12] - cbnz r0, .L1052 + cbnz r0, .L1054 ldr r3, [sp, #4] add r6, r6, r3 uxth r6, r6 -.L1052: +.L1054: adds r2, r2, #1 - b .L1059 -.L1060: - cbz r6, .L1054 + b .L1061 +.L1062: + cbz r6, .L1056 sxth r1, r6 mov r0, #32768 bl __aeabi_idiv uxth r6, r0 - b .L1055 -.L1054: - ldr r1, [r4, #768] + b .L1057 +.L1056: + ldr r1, [r4, #816] sxth r2, fp movw r0, #65535 strh r0, [r1, r2, lsl #1] @ movhi -.L1055: +.L1057: add r0, r7, r7, lsl #1 - ldr r1, [r4, #760] - ldr r2, .L1061+4 + ldr r1, [r4, #808] + ldr r2, .L1063+4 add r1, r1, r0, lsl #1 strh r6, [r1, #4] @ movhi - ldrh r1, [r4, #788] + ldrh r1, [r4, #836] cmp r7, r1 - beq .L1056 - ldrh r1, [r2, #836] - cmp r7, r1 - beq .L1056 + beq .L1058 ldrh r1, [r2, #884] cmp r7, r1 - beq .L1056 - ldr r2, [r2, #768] + beq .L1058 + ldrh r1, [r2, #932] + cmp r7, r1 + beq .L1058 + ldr r2, [r2, #816] ldrh r2, [r2, r7, lsl #1] - cbnz r2, .L1057 + cbnz r2, .L1059 add r9, r9, #1 mov r0, fp uxth r9, r9 bl INSERT_FREE_LIST - b .L1056 -.L1057: + b .L1058 +.L1059: add r10, r10, #1 mov r0, fp uxth r10, r10 bl INSERT_DATA_LIST -.L1056: - adds r5, r5, #1 - b .L1051 .L1058: + adds r5, r5, #1 + b .L1053 +.L1060: movs r0, #0 - strh r10, [r4, #776] @ movhi - strh r9, [r4, #784] @ movhi + strh r10, [r4, #824] @ movhi + strh r9, [r4, #832] @ movhi add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1062: +.L1064: .align 2 -.L1061: +.L1063: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7149,26 +7146,26 @@ FtlGcPageVarInit: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r1, #255 - ldr r5, .L1064 + ldr r5, .L1066 movs r3, #0 - ldr r4, .L1064+4 - ldrh r2, [r5, #2902] - ldr r0, [r4, #1680] - strh r3, [r4, #1684] @ movhi + ldr r4, .L1066+4 + ldrh r2, [r5, #2914] + ldr r0, [r4, #1676] + strh r3, [r4, #1680] @ movhi lsls r2, r2, #1 - strh r3, [r4, #1692] @ movhi + strh r3, [r4, #1688] @ movhi bl ftl_memset - ldrh r3, [r5, #2902] + ldrh r3, [r5, #2914] movs r2, #12 - ldr r0, [r4, #1688] + ldr r0, [r4, #1684] movs r1, #255 muls r2, r3, r2 bl ftl_memset pop {r3, r4, r5, lr} b FtlGcBufInit -.L1065: +.L1067: .align 2 -.L1064: +.L1066: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7198,14 +7195,14 @@ FlashReadIdbData: push {r3, lr} .save {r3, lr} mov r2, #2048 - ldr r1, .L1068 + ldr r1, .L1070 bl ftl_memcpy movs r0, #0 pop {r3, pc} -.L1069: +.L1071: .align 2 -.L1068: - .word .LANCHOR2+1932 +.L1070: + .word .LANCHOR2+1936 .fnend .size FlashReadIdbData, .-FlashReadIdbData .align 1 @@ -7220,62 +7217,62 @@ FlashLoadPhyInfoInRam: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r4, #0 - ldr r6, .L1082 -.L1074: + ldr r6, .L1084 +.L1076: mov r0, r6 - ldr r1, .L1082+4 + ldr r1, .L1084+4 ldrb r2, [r6, #-1] @ zero_extendqisi2 bl FlashMemCmp8 mov r5, r0 - cbnz r0, .L1071 - ldr r3, .L1082+8 + cbnz r0, .L1073 + ldr r3, .L1084+8 lsls r4, r4, #5 add r2, r3, #508 adds r6, r2, r4 - beq .L1077 + beq .L1079 add r4, r4, r3 - addw r3, r3, #2812 + addw r3, r3, #2876 ldrb r2, [r4, #530] @ zero_extendqisi2 mov r4, r0 - b .L1076 -.L1071: + b .L1078 +.L1073: adds r4, r4, #1 adds r6, r6, #32 - cmp r4, #72 - bne .L1074 - b .L1077 -.L1081: + cmp r4, #74 + bne .L1076 + b .L1079 +.L1083: adds r4, r4, #1 cmp r4, #4 - beq .L1075 -.L1076: + beq .L1077 +.L1078: lsls r1, r4, #5 ldrb r1, [r1, r3] @ zero_extendqisi2 cmp r1, r2 - bne .L1081 -.L1075: - ldr r1, .L1082+12 + bne .L1083 +.L1077: + ldr r1, .L1084+12 movs r2, #32 - ldr r0, .L1082+16 + ldr r0, .L1084+16 add r1, r1, r4, lsl #5 bl ftl_memcpy mov r1, r6 movs r2, #32 - ldr r0, .L1082+20 + ldr r0, .L1084+20 bl ftl_memcpy - b .L1072 -.L1077: + b .L1074 +.L1079: mov r5, #-1 -.L1072: +.L1074: mov r0, r5 pop {r4, r5, r6, pc} -.L1083: +.L1085: .align 2 -.L1082: +.L1084: .word .LANCHOR1+509 .word .LANCHOR0+1792 .word .LANCHOR1 - .word .LANCHOR1+2812 + .word .LANCHOR1+2876 .word .LANCHOR0+44 .word .LANCHOR1+256 .fnend @@ -7297,14 +7294,14 @@ NandcCopy1KB: ldr r6, [sp, #16] add r5, r0, #512 add r2, r2, r4, lsl #9 - bne .L1085 - cbz r3, .L1086 + bne .L1087 + cbz r3, .L1088 mov r0, r2 mov r1, r3 mov r2, #1024 bl ftl_memcpy -.L1086: - cbz r6, .L1084 +.L1088: + cbz r6, .L1086 ldrb r3, [r6, #2] @ zero_extendqisi2 lsrs r4, r4, #1 ldrb r2, [r6, #1] @ zero_extendqisi2 @@ -7318,14 +7315,14 @@ NandcCopy1KB: orr r3, r3, r2, lsl #24 str r3, [r5, r4, lsl #2] pop {r4, r5, r6, pc} -.L1085: - cbz r3, .L1089 +.L1087: + cbz r3, .L1091 mov r1, r2 mov r0, r3 mov r2, #1024 bl ftl_memcpy -.L1089: - cbz r6, .L1084 +.L1091: + cbz r6, .L1086 lsrs r4, r4, #1 add r4, r4, r4, lsl #1 lsls r4, r4, #2 @@ -7337,11 +7334,34 @@ NandcCopy1KB: lsrs r3, r3, #24 strb r2, [r6, #2] strb r3, [r6, #3] -.L1084: +.L1086: pop {r4, r5, r6, pc} .fnend .size NandcCopy1KB, .-NandcCopy1KB .align 1 + .global ftl_memcpy32 + .thumb + .thumb_func + .type ftl_memcpy32, %function +ftl_memcpy32: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + movs r3, #0 + push {r4, lr} + .save {r4, lr} +.L1103: + cmp r3, r2 + beq .L1105 + ldr r4, [r1, r3, lsl #2] + str r4, [r0, r3, lsl #2] + adds r3, r3, #1 + b .L1103 +.L1105: + pop {r4, pc} + .fnend + .size ftl_memcpy32, .-ftl_memcpy32 + .align 1 .global ftl_memcmp .thumb .thumb_func @@ -7355,6 +7375,56 @@ ftl_memcmp: .fnend .size ftl_memcmp, .-ftl_memcmp .align 1 + .global js_hash + .thumb + .thumb_func + .type js_hash, %function +js_hash: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L1111 + add r1, r1, r0 + push {r4, lr} + .save {r4, lr} +.L1108: + cmp r0, r1 + beq .L1110 + lsls r2, r3, #5 + ldrb r4, [r0], #1 @ zero_extendqisi2 + add r2, r2, r3, lsr #2 + add r2, r2, r4 + eors r3, r3, r2 + b .L1108 +.L1110: + mov r0, r3 + pop {r4, pc} +.L1112: + .align 2 +.L1111: + .word 1204201446 + .fnend + .size js_hash, .-js_hash + .align 1 + .global timer_get_time + .thumb + .thumb_func + .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, .L1114 + ldr r0, [r3] + b jiffies_to_msecs +.L1115: + .align 2 +.L1114: + .word jiffies + .fnend + .size timer_get_time, .-timer_get_time + .align 1 .global FlashSramLoadStore .thumb .thumb_func @@ -7366,20 +7436,20 @@ FlashSramLoadStore: push {r4, r5, lr} .save {r4, r5, lr} mov r5, r0 - ldr r4, .L1104 - ldr r4, [r4, #3980] + ldr r4, .L1119 + ldr r4, [r4, #3984] add r4, r4, #4096 add r1, r1, r4 - cbz r2, .L1103 + cbz r2, .L1118 mov r0, r1 mov r1, r5 -.L1103: +.L1118: mov r2, r3 pop {r4, r5, lr} b ftl_memcpy -.L1105: +.L1120: .align 2 -.L1104: +.L1119: .word .LANCHOR2 .fnend .size FlashSramLoadStore, .-FlashSramLoadStore @@ -7397,19 +7467,6 @@ FlashCs123Init: .fnend .size FlashCs123Init, .-FlashCs123Init .align 1 - .global rk_nand_de_init - .thumb - .thumb_func - .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 1 .global rk_nand_suspend .thumb .thumb_func @@ -7419,7 +7476,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 1 @@ -7432,7 +7489,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 1 @@ -7445,16 +7502,56 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1111 - ldr r0, [r3, #2940] + ldr r3, .L1125 + ldr r0, [r3, #1896] bx lr -.L1112: +.L1126: .align 2 -.L1111: +.L1125: .word .LANCHOR0 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity .align 1 + .global rk_nandc_get_irq_status + .thumb + .thumb_func + .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 1 + .global rknand_proc_ftlread + .thumb + .thumb_func + .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 1 + .global ReadFlashInfo + .thumb + .thumb_func + .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 1 .global rknand_print_hex .thumb .thumb_func @@ -7471,49 +7568,50 @@ rknand_print_hex: mov r7, r2 mov r8, r3 mov r4, r5 -.L1114: +.L1131: cmp r4, r8 - beq .L1122 - cbnz r5, .L1115 - ldr r0, .L1123 + beq .L1139 + cbnz r5, .L1132 + ldr r0, .L1140 mov r1, r9 - mov r2, r4 + mov r2, r6 + mov r3, r4 bl printk -.L1115: +.L1132: cmp r7, #4 - ldr r0, .L1123+4 - bne .L1116 + ldr r0, .L1140+4 + bne .L1133 ldr r1, [r6, r4, lsl #2] - b .L1121 -.L1116: + b .L1138 +.L1133: cmp r7, #2 ite eq ldrsheq r1, [r6, r4, lsl #1] ldrbne r1, [r6, r4] @ zero_extendqisi2 -.L1121: +.L1138: adds r5, r5, #1 bl printk cmp r5, #15 - bls .L1119 - ldr r0, .L1123+8 + bls .L1136 + ldr r0, .L1140+8 movs r5, #0 - ldr r1, .L1123+12 + ldr r1, .L1140+12 bl printk -.L1119: +.L1136: adds r4, r4, #1 - b .L1114 -.L1122: - ldr r0, .L1123+8 - ldr r1, .L1123+12 + b .L1131 +.L1139: + ldr r0, .L1140+8 + ldr r1, .L1140+12 pop {r3, r4, r5, r6, r7, r8, r9, lr} b printk -.L1124: +.L1141: .align 2 -.L1123: - .word .LC80 - .word .LC81 - .word .LC74 - .word .LC82 +.L1140: + .word .LC83 + .word .LC84 + .word .LC77 + .word .LC85 .fnend .size rknand_print_hex, .-rknand_print_hex .align 1 @@ -7528,146 +7626,146 @@ HynixGetReadRetryDefault: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} cmp r0, #2 - ldr r5, .L1217 + ldr r5, .L1234 mov r3, #172 mov r1, #173 mov r2, #174 .pad #44 sub sp, sp, #44 mov r4, r0 - strb r3, [r5, #1906] + strb r3, [r5, #1910] mov r3, #175 - strb r0, [r5, #1902] - strb r1, [r5, #1907] - strb r2, [r5, #1908] - strb r3, [r5, #1909] - bne .L1126 + strb r0, [r5, #1906] + strb r1, [r5, #1911] + strb r2, [r5, #1912] + strb r3, [r5, #1913] + bne .L1143 movs r3, #167 - strb r3, [r5, #1906] - ldr r3, .L1217+4 + strb r3, [r5, #1910] + ldr r3, .L1234+4 movs r2, #247 - strb r2, [r3, #2957] - b .L1179 -.L1126: + strb r2, [r3, #3021] + b .L1196 +.L1143: cmp r0, #3 - bne .L1128 + bne .L1145 movs r3, #176 - strb r3, [r5, #1906] + strb r3, [r5, #1910] movs r3, #177 - strb r3, [r5, #1907] + strb r3, [r5, #1911] movs r3, #178 - strb r3, [r5, #1908] + strb r3, [r5, #1912] movs r3, #179 - strb r3, [r5, #1909] + strb r3, [r5, #1913] movs r3, #180 - strb r3, [r5, #1910] + strb r3, [r5, #1914] movs r3, #181 - strb r3, [r5, #1911] + strb r3, [r5, #1915] movs r3, #182 - strb r3, [r5, #1912] + strb r3, [r5, #1916] movs r3, #183 - b .L1212 -.L1128: + b .L1229 +.L1145: cmp r0, #4 - bne .L1129 + bne .L1146 movs r0, #204 - strb r1, [r5, #1911] - strb r0, [r5, #1906] + strb r1, [r5, #1915] + strb r0, [r5, #1910] movs r0, #191 - strb r2, [r5, #1912] - strb r0, [r5, #1907] + strb r2, [r5, #1916] + strb r0, [r5, #1911] movs r0, #170 - strb r0, [r5, #1908] + strb r0, [r5, #1912] movs r0, #171 - strb r0, [r5, #1909] + strb r0, [r5, #1913] movs r0, #205 - strb r0, [r5, #1910] -.L1212: + strb r0, [r5, #1914] +.L1229: mov fp, #8 - strb r3, [r5, #1913] + strb r3, [r5, #1917] mov r9, fp - b .L1127 -.L1129: + b .L1144 +.L1146: cmp r0, #5 - bne .L1130 + bne .L1147 movs r3, #56 mov fp, #8 - strb r3, [r5, #1906] + strb r3, [r5, #1910] movs r3, #57 - strb r3, [r5, #1907] + strb r3, [r5, #1911] movs r3, #58 - strb r3, [r5, #1908] + strb r3, [r5, #1912] movs r3, #59 - strb r3, [r5, #1909] - b .L1211 -.L1130: + strb r3, [r5, #1913] + b .L1228 +.L1147: cmp r0, #6 - bne .L1131 + bne .L1148 movs r3, #14 mov fp, #12 - strb r3, [r5, #1906] + strb r3, [r5, #1910] movs r3, #15 - strb r3, [r5, #1907] + strb r3, [r5, #1911] movs r3, #16 - strb r3, [r5, #1908] + strb r3, [r5, #1912] movs r3, #17 - strb r3, [r5, #1909] - b .L1211 -.L1131: + strb r3, [r5, #1913] + b .L1228 +.L1148: cmp r0, #7 - bne .L1179 + bne .L1196 movs r3, #176 mov fp, #12 - strb r3, [r5, #1906] + strb r3, [r5, #1910] mov r9, #10 movs r3, #177 - strb r3, [r5, #1907] + strb r3, [r5, #1911] movs r3, #178 - strb r3, [r5, #1908] + strb r3, [r5, #1912] movs r3, #179 - strb r3, [r5, #1909] + strb r3, [r5, #1913] movs r3, #180 - strb r3, [r5, #1910] + strb r3, [r5, #1914] movs r3, #181 - strb r3, [r5, #1911] + strb r3, [r5, #1915] movs r3, #182 - strb r3, [r5, #1912] + strb r3, [r5, #1916] movs r3, #183 - strb r3, [r5, #1913] + strb r3, [r5, #1917] movs r3, #212 - strb r3, [r5, #1914] + strb r3, [r5, #1918] movs r3, #213 - strb r3, [r5, #1915] - b .L1127 -.L1179: + strb r3, [r5, #1919] + b .L1144 +.L1196: mov fp, #7 -.L1211: +.L1228: mov r9, #4 -.L1127: +.L1144: subs r3, r4, #1 cmp r3, #1 - bhi .L1208 - ldr r7, .L1217+8 + bhi .L1225 + ldr r7, .L1234+8 mov r8, #0 -.L1132: +.L1149: ldrb r3, [r5, #1616] @ zero_extendqisi2 uxtb r6, r8 - ldr r2, .L1217 + ldr r2, .L1234 cmp r3, r6 - bls .L1139 + bls .L1156 add r6, r6, r2 ldrb r3, [r6, #1620] @ zero_extendqisi2 add r4, r2, r3, lsl #6 add r3, r2, r3, lsl #3 - addw r4, r4, #1922 - addw r2, r2, #1905 + addw r4, r4, #1926 + addw r2, r2, #1909 ldrb r6, [r3, #16] @ zero_extendqisi2 ldr r1, [r3, #12] mov r10, r4 mov r3, r4 add r6, r1, r6, lsl #8 addw ip, r6, #2056 -.L1134: +.L1151: str r3, [sp, #8] movs r3, #55 str r3, [ip] @@ -7685,23 +7783,23 @@ HynixGetReadRetryDefault: subs r1, r3, r4 uxtb r1, r1 cmp r1, r9 - bcc .L1134 + bcc .L1151 movs r2, #0 -.L1135: +.L1152: movs r3, #1 adds r0, r7, r2 -.L1136: +.L1153: ldrb r6, [r0, r3, lsl #2] @ zero_extendqisi2 ldrb r1, [r10] @ zero_extendqisi2 add r1, r1, r6 strb r1, [r10, r3, lsl #3] adds r3, r3, #1 cmp r3, #7 - bne .L1136 + bne .L1153 adds r2, r2, #1 add r10, r10, #1 cmp r2, #4 - bne .L1135 + bne .L1152 movs r3, #0 add r8, r8, #1 strb r3, [r4, #16] @@ -7711,40 +7809,40 @@ HynixGetReadRetryDefault: strb r3, [r4, #48] strb r3, [r4, #41] strb r3, [r4, #49] - b .L1132 -.L1208: + b .L1149 +.L1225: subs r3, r4, #3 cmp r3, #4 - bhi .L1139 + bhi .L1156 smulbb r2, r9, fp lsls r3, r2, #4 str r3, [sp, #32] and r3, r2, #252 str r3, [sp] movs r3, #0 -.L1215: +.L1232: str r3, [sp, #12] ldrb r3, [sp, #12] @ zero_extendqisi2 str r3, [sp, #8] - ldr r3, .L1217 + ldr r3, .L1234 ldr r2, [sp, #8] ldrb r3, [r3, #1616] @ zero_extendqisi2 cmp r3, r2 - bhi .L1178 -.L1139: - ldr r3, .L1217 - strb r9, [r3, #1903] - strb fp, [r3, #1904] + bhi .L1195 +.L1156: + ldr r3, .L1234 + strb r9, [r3, #1907] + strb fp, [r3, #1908] add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1178: +.L1195: ldr r2, [sp, #8] - ldr r3, .L1217 + ldr r3, .L1234 add r3, r3, r2 movs r2, #255 ldrb r8, [r3, #1620] @ zero_extendqisi2 - ldr r3, .L1217 + ldr r3, .L1234 add r3, r3, r8, lsl #3 mov r0, r8 ldr r10, [r3, #12] @@ -7759,8 +7857,8 @@ HynixGetReadRetryDefault: moveq lr, #160 mov r2, #54 itete eq - ldreq r3, .L1217+12 - ldrne r3, .L1217+12 + ldreq r3, .L1234+12 + ldrne r3, .L1234+12 mlaeq lr, lr, r8, r3 addne lr, r3, r8, lsl #6 ite ne @@ -7771,36 +7869,36 @@ HynixGetReadRetryDefault: cmp r4, #4 add r3, r10, r3, lsl #8 str r2, [r3, #2056] - bne .L1143 + bne .L1160 add r6, r6, r10 movs r3, #255 str r3, [r6, #2052] movs r3, #64 str r3, [r6, #2048] movs r3, #204 - b .L1214 -.L1143: + b .L1231 +.L1160: subs r2, r4, #5 cmp r2, #1 - bhi .L1145 - ldr r2, .L1217 - ldrb r2, [r2, #1906] @ zero_extendqisi2 + bhi .L1162 + ldr r2, .L1234 + ldrb r2, [r2, #1910] @ zero_extendqisi2 str r2, [r3, #2052] movs r2, #82 str r2, [r3, #2048] - b .L1144 -.L1145: + b .L1161 +.L1162: add r6, r6, r10 movs r3, #174 str r3, [r6, #2052] movs r3, #0 str r3, [r6, #2048] movs r3, #176 -.L1214: +.L1231: str r3, [r6, #2052] movs r3, #77 str r3, [r6, #2048] -.L1144: +.L1161: ldr r3, [sp, #4] cmp r4, #6 mov r2, #48 @@ -7832,123 +7930,123 @@ HynixGetReadRetryDefault: subs r3, r4, #5 cmp r3, #1 str r3, [sp, #20] - bls .L1181 + bls .L1198 cmp r4, #7 ite eq moveq r0, #32 movne r0, #2 - b .L1149 -.L1218: + b .L1166 +.L1235: .align 2 -.L1217: +.L1234: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR1+2940 - .word .LANCHOR0+1902 -.L1181: + .word .LANCHOR1+3004 + .word .LANCHOR0+1906 +.L1198: movs r0, #16 -.L1149: - ldr r3, .L1219 - ldr r3, [r3, #3984] +.L1166: + ldr r3, .L1236 + ldr r3, [r3, #3988] mov r1, r3 -.L1150: +.L1167: ldr r2, [r5, #2048] strb r2, [r1], #1 subs r2, r1, r3 uxtb r2, r2 cmp r2, r0 - bcc .L1150 + bcc .L1167 cmp r4, #7 - bne .L1151 + bne .L1168 movs r2, #0 -.L1153: +.L1170: ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2 uxtb r1, r2 cmp r0, #12 - beq .L1152 + beq .L1169 add r0, r3, r2, lsl #2 ldrb r0, [r0, #1] @ zero_extendqisi2 cmp r0, #10 - beq .L1152 + beq .L1169 adds r2, r2, #1 cmp r2, #8 - bne .L1153 - b .L1154 -.L1152: + bne .L1170 + b .L1171 +.L1169: cmp r1, #7 - bne .L1155 -.L1154: - ldr r0, .L1219+4 + bne .L1172 +.L1171: + ldr r0, .L1236+4 movs r1, #0 bl printk -.L1156: - b .L1156 -.L1151: +.L1173: + b .L1173 +.L1168: cmp r4, #6 - bne .L1155 + bne .L1172 subs r2, r3, #1 adds r3, r3, #7 -.L1157: +.L1174: ldrb r1, [r2, #1]! @ zero_extendqisi2 cmp r1, #12 - beq .L1155 + beq .L1172 ldrb r1, [r2, #8] @ zero_extendqisi2 cmp r1, #4 - beq .L1155 + beq .L1172 cmp r2, r3 - bne .L1157 - ldr r0, .L1219+4 + bne .L1174 + ldr r0, .L1236+4 movs r1, #0 bl printk -.L1159: - b .L1159 -.L1155: - ldr r1, .L1219 +.L1176: + b .L1176 +.L1172: + ldr r1, .L1236 ldr r0, [sp, #32] - ldr r2, [r1, #3984] + ldr r2, [r1, #3988] adds r0, r2, r0 mov r3, r2 -.L1160: +.L1177: cmp r3, r0 - beq .L1216 + beq .L1233 ldr r6, [r5, #2048] strb r6, [r3], #1 - b .L1160 -.L1216: + b .L1177 +.L1233: ldr r3, [sp] - ldr r0, [r1, #3984] + ldr r0, [r1, #3988] add r0, r0, r3 movs r3, #8 -.L1163: +.L1180: ldr r1, [sp] adds r6, r0, r1 -.L1162: +.L1179: ldr r1, [r0] mvns r1, r1 str r1, [r0], #4 cmp r0, r6 - bne .L1162 + bne .L1179 ldr r1, [sp] subs r3, r3, #1 add r0, r0, r1 - bne .L1163 -.L1164: - ldr r1, .L1219 + bne .L1180 +.L1181: + ldr r1, .L1236 movs r0, #0 - ldr r1, [r1, #3984] + ldr r1, [r1, #3988] str r1, [sp, #24] mov r1, r0 ldr r6, [sp, #24] add r6, r6, r3 str r6, [sp, #36] -.L1167: +.L1184: movs r6, #1 movs r7, #16 str r7, [sp, #28] lsl lr, r6, r1 movs r6, #0 mov ip, r6 -.L1165: +.L1182: ldr r7, [sp, #36] ldr r7, [r7, r6] and r7, lr, r7 @@ -7960,73 +8058,73 @@ HynixGetReadRetryDefault: ldr r7, [sp, #28] subs r7, r7, #1 str r7, [sp, #28] - bne .L1165 + bne .L1182 cmp ip, #8 add r1, r1, #1 it hi orrhi r0, r0, lr cmp r1, #32 - bne .L1167 + bne .L1184 ldr r1, [sp, #24] str r0, [r1, r3] adds r3, r3, #4 ldr r1, [sp] cmp r3, r1 - bne .L1164 - ldr r3, .L1219 - ldr r1, [r3, #3984] + bne .L1181 + ldr r3, .L1236 + ldr r1, [r3, #3988] movs r3, #0 subs r0, r1, #4 add r6, r1, #28 -.L1169: +.L1186: ldr r7, [r0, #4]! cmp r7, #0 it eq addeq r3, r3, #1 cmp r0, r6 - bne .L1169 + bne .L1186 cmp r3, #7 - ble .L1170 - ldr r0, .L1219+8 + ble .L1187 + ldr r0, .L1236+8 movs r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L1219+4 + ldr r0, .L1236+4 movs r1, #0 bl printk -.L1171: - b .L1171 -.L1170: +.L1188: + b .L1188 +.L1187: cmp r4, #6 - beq .L1183 + beq .L1200 cmp r4, #7 ite ne movne ip, #8 moveq ip, #10 - b .L1172 -.L1183: + b .L1189 +.L1200: mov ip, #4 -.L1172: +.L1189: add r7, r9, #-1 ldr r1, [sp, #16] movs r0, #0 uxtb r7, r7 adds r7, r7, #1 -.L1173: +.L1190: mov lr, r1 mov r3, r2 -.L1174: +.L1191: ldrb r6, [r3], #1 @ zero_extendqisi2 strb r6, [lr], #1 subs r6, r3, r2 uxtb r6, r6 cmp r6, r9 - bcc .L1174 + bcc .L1191 adds r0, r0, #1 add r2, r2, r7 cmp r0, fp add r1, r1, ip - blt .L1173 + blt .L1190 ldr r3, [sp, #4] mov r0, r8 add r6, r10, r3, lsl #8 @@ -8035,35 +8133,35 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr r3, [sp, #20] cmp r3, #1 - bhi .L1176 + bhi .L1193 movs r3, #54 str r3, [r6, #2056] - ldr r3, .L1219+12 + ldr r3, .L1236+12 mov r1, #-1 ldr r0, [sp, #8] - ldrb r3, [r3, #1906] @ zero_extendqisi2 + ldrb r3, [r3, #1910] @ zero_extendqisi2 str r3, [r5, #2052] movs r3, #0 str r3, [r5, #2048] movs r3, #22 str r3, [r6, #2056] bl FlashReadCmd - b .L1177 -.L1176: + b .L1194 +.L1193: movs r3, #56 str r3, [r6, #2056] -.L1177: +.L1194: mov r0, r8 bl NandcWaitFlashReady ldr r3, [sp, #12] adds r3, r3, #1 - b .L1215 -.L1220: + b .L1232 +.L1237: .align 2 -.L1219: +.L1236: .word .LANCHOR2 - .word .LC83 - .word .LC84 + .word .LC86 + .word .LC87 .word .LANCHOR0 .fnend .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault @@ -8079,74 +8177,74 @@ FlashGetReadRetryDefault: @ link register save eliminated. mov r3, r0 cmp r0, #0 - beq .L1221 + beq .L1238 subs r2, r0, #1 cmp r2, #6 - bhi .L1223 + bhi .L1240 b HynixGetReadRetryDefault -.L1223: +.L1240: cmp r0, #49 - bne .L1224 - ldr r0, .L1244 + bne .L1241 + ldr r0, .L1261 movs r2, #64 - ldr r1, .L1244+4 - addw r0, r0, #1906 + ldr r1, .L1261+4 + addw r0, r0, #1910 strb r3, [r0, #-4] movs r3, #4 strb r3, [r0, #-3] movs r3, #15 strb r3, [r0, #-2] - b .L1242 -.L1224: + b .L1259 +.L1241: cmp r0, #33 - beq .L1225 + beq .L1242 sub r2, r0, #65 cmp r2, #1 - bhi .L1226 -.L1225: - ldr r0, .L1244 - strb r3, [r0, #1902] + bhi .L1243 +.L1242: + ldr r0, .L1261 + strb r3, [r0, #1906] movs r3, #4 - b .L1243 -.L1226: + b .L1260 +.L1243: cmp r0, #34 - beq .L1227 + beq .L1244 cmp r0, #67 - bne .L1228 -.L1227: - ldr r0, .L1244 - strb r3, [r0, #1902] + bne .L1245 +.L1244: + ldr r0, .L1261 + strb r3, [r0, #1906] movs r3, #5 -.L1243: - strb r3, [r0, #1903] +.L1260: + strb r3, [r0, #1907] movs r2, #45 movs r3, #7 - addw r0, r0, #1906 + addw r0, r0, #1910 strb r3, [r0, #-2] - ldr r1, .L1244+8 - b .L1242 -.L1228: + ldr r1, .L1261+8 + b .L1259 +.L1245: cmp r0, #35 - beq .L1229 + beq .L1246 cmp r0, #68 - bne .L1221 -.L1229: - ldr r0, .L1244 + bne .L1238 +.L1246: + ldr r0, .L1261 movs r2, #95 - ldr r1, .L1244+12 - addw r0, r0, #1906 + ldr r1, .L1261+12 + addw r0, r0, #1910 strb r3, [r0, #-4] movs r3, #5 strb r3, [r0, #-3] movs r3, #17 strb r3, [r0, #-2] -.L1242: +.L1259: b ftl_memcpy -.L1221: +.L1238: bx lr -.L1245: +.L1262: .align 2 -.L1244: +.L1261: .word .LANCHOR0 .word .LANCHOR1+440 .word .LANCHOR1+288 @@ -8165,15 +8263,15 @@ NandcXferComp: push {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - ldr r5, .L1285 + ldr r5, .L1302 add r0, r5, r0, lsl #3 - ldr r3, [r5, #2768] + ldr r3, [r5, #2780] ldr r4, [r0, #12] cmp r3, #3 - bls .L1277 + bls .L1294 ldr r3, [r4, #16] lsls r6, r3, #29 - bpl .L1277 + bpl .L1294 mov r0, r4 bl wait_for_nandc_xfer_completed ldr r6, [r4, #16] @@ -8181,130 +8279,130 @@ NandcXferComp: ubfx r6, r6, #1, #1 str r3, [sp] cmp r6, #0 - beq .L1259 + beq .L1276 movs r6, #0 -.L1249: +.L1266: ldr r2, [r4, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L1257 - ldr r3, [r5, #2768] + bge .L1274 + ldr r3, [r5, #2780] cmp r3, #5 - bhi .L1250 -.L1253: + bhi .L1267 +.L1270: adds r6, r6, #1 bic r3, r6, #-16777216 cmp r3, #0 - bne .L1249 + bne .L1266 ldr r2, [r4, #28] mov r1, r6 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L1285+4 + ldr r0, .L1302+4 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L1285+8 + ldr r0, .L1302+8 mov r1, r4 movs r2, #4 mov r3, #512 bl rknand_print_hex - b .L1249 -.L1250: + b .L1266 +.L1267: ldr r3, [r4] str r3, [sp, #4] ldr r3, [sp, #4] lsls r0, r3, #18 - bpl .L1253 + bpl .L1270 ldr r3, [sp, #4] lsls r1, r3, #14 - bpl .L1253 -.L1257: - ldr r3, [r5, #2804] - ldr r4, .L1285 + bpl .L1270 +.L1274: + ldr r3, [r5, #2812] + ldr r4, .L1302 cmp r3, #0 - beq .L1258 + beq .L1275 ldr r1, [sp] movs r2, #0 - ldr r0, [r4, #2796] + ldr r0, [r4, #2804] ubfx r1, r1, #22, #5 lsls r1, r1, #10 bl rknand_dma_unmap_single - ldr r0, [r4, #2800] - movs r2, #0 ldr r1, [sp] + ldr r0, [r4, #2808] + movs r2, #0 ubfx r1, r1, #22, #5 lsls r1, r1, #7 bl rknand_dma_unmap_single - b .L1258 -.L1261: + b .L1275 +.L1278: ldr r3, [r4, #8] adds r6, r6, #1 str r3, [sp] bic r3, r6, #-16777216 - cbnz r3, .L1259 + cbnz r3, .L1276 ldr r2, [sp] mov r1, r6 ldr r3, [r4, #28] - ldr r0, .L1285+12 + ldr r0, .L1302+12 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L1285+8 + ldr r0, .L1302+8 mov r1, r4 movs r2, #4 mov r3, #512 bl rknand_print_hex -.L1259: +.L1276: ldr r3, [sp] lsls r2, r3, #11 - bpl .L1261 - ldr r3, [r5, #2812] - cbz r3, .L1262 + bpl .L1278 + ldr r3, [r5, #2820] + cbz r3, .L1279 mov r0, r4 bl NandcSendDumpDataStart -.L1262: - ldr r3, [r5, #2804] - ldr r6, .L1285 - cbz r3, .L1263 +.L1279: + ldr r3, [r5, #2812] + ldr r6, .L1302 + cbz r3, .L1280 ldr r1, [sp] movs r2, #1 - ldr r0, [r6, #2796] + ldr r0, [r6, #2804] ubfx r1, r1, #22, #5 lsls r1, r1, #10 bl rknand_dma_unmap_single - ldr r0, [r6, #2800] - movs r2, #1 ldr r1, [sp] + ldr r0, [r6, #2808] + movs r2, #1 ubfx r1, r1, #22, #5 lsls r1, r1, #7 bl rknand_dma_unmap_single -.L1263: - ldr r3, [r5, #2812] - cbz r3, .L1258 +.L1280: + ldr r3, [r5, #2820] + cbz r3, .L1275 mov r0, r4 bl NandcSendDumpDataDone -.L1258: +.L1275: movs r3, #0 - str r3, [r5, #2804] - b .L1246 -.L1277: + str r3, [r5, #2812] + b .L1263 +.L1294: ldr r3, [r4, #8] str r3, [sp] ldr r3, [sp] lsls r3, r3, #11 - bpl .L1277 -.L1246: + bpl .L1294 +.L1263: add sp, sp, #8 @ sp needed pop {r4, r5, r6, pc} -.L1286: +.L1303: .align 2 -.L1285: +.L1302: .word .LANCHOR0 - .word .LC85 - .word .LC86 - .word .LC87 + .word .LC88 + .word .LC89 + .word .LC90 .fnend .size NandcXferComp, .-NandcXferComp .align 1 @@ -8319,7 +8417,7 @@ NandcXferData: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r3 - ldr r5, .L1331 + ldr r5, .L1348 tst r9, #63 .pad #92 sub sp, sp, #92 @@ -8328,16 +8426,16 @@ NandcXferData: mov r10, r1 mov r6, r2 ldr r7, [r3, #12] - bne .L1288 + bne .L1305 ldr r3, [sp, #128] - cbnz r3, .L1289 + cbnz r3, .L1306 add r0, sp, #24 movs r1, #255 movs r2, #64 bl memset add r3, sp, #24 str r3, [sp, #128] -.L1289: +.L1306: ldr r3, [sp, #128] mov r0, r8 str r9, [sp] @@ -8349,8 +8447,8 @@ NandcXferData: mov r0, r8 bl NandcXferComp cmp r10, #0 - bne .L1315 - ldr r3, [r5, #2816] + bne .L1332 + ldr r3, [r5, #2824] lsrs r4, r6, #1 mov r2, r10 mov r1, r10 @@ -8359,12 +8457,12 @@ NandcXferData: ite cc movcc lr, #64 movcs lr, #128 -.L1292: +.L1309: cmp r1, r4 add r3, r3, #4 add ip, r2, lr - bcs .L1329 - ldr r0, [r5, #2784] + bcs .L1346 + ldr r0, [r5, #2792] lsrs r2, r2, #2 adds r1, r1, #1 ldr r2, [r0, r2, lsl #2] @@ -8376,30 +8474,30 @@ NandcXferData: strb r0, [r3, #-2] strb r2, [r3, #-1] mov r2, ip - b .L1292 -.L1329: + b .L1309 +.L1346: movs r2, #0 - ldr r0, [r5, #2816] - ldr r1, [r5, #2768] + ldr r0, [r5, #2824] + ldr r1, [r5, #2780] lsrs r6, r6, #2 mov fp, r2 -.L1294: +.L1311: cmp r2, r6 - bcs .L1290 + bcs .L1307 cmp r0, #0 - beq .L1290 + beq .L1307 add r3, r2, #8 ldr r3, [r7, r3, lsl #2] str r3, [sp, #20] ldr r3, [sp, #20] lsls r4, r3, #29 - bmi .L1318 + bmi .L1335 ldr r4, [sp, #20] ubfx r4, r4, #15, #1 cmp r4, #0 - bne .L1318 + bne .L1335 cmp r1, #5 - bls .L1296 + bls .L1313 ldr r4, [sp, #20] ldr r3, [sp, #20] ubfx r4, r4, #3, #5 @@ -8420,10 +8518,10 @@ NandcXferData: ite hi ubfxhi r4, r4, #27, #1 ubfxls r4, r4, #29, #1 - b .L1328 -.L1296: + b .L1345 +.L1313: cmp r1, #3 - bls .L1298 + bls .L1315 ldr r4, [sp, #20] ldr r3, [sp, #20] ubfx r4, r4, #3, #5 @@ -8444,40 +8542,40 @@ NandcXferData: ite hi ubfxhi r4, r4, #28, #1 ubfxls r4, r4, #30, #1 -.L1328: +.L1345: orr r4, r3, r4, lsl #5 -.L1298: +.L1315: cmp fp, r4 it cc movcc fp, r4 - b .L1295 -.L1318: + b .L1312 +.L1335: mov fp, #-1 -.L1295: +.L1312: adds r2, r2, #1 - b .L1294 -.L1315: + b .L1311 +.L1332: mov fp, #0 -.L1290: +.L1307: movs r3, #0 str r3, [r7, #16] - b .L1301 -.L1288: + b .L1318 +.L1305: cmp r1, #1 mov r4, #0 - bne .L1327 + bne .L1344 mov fp, r4 -.L1302: +.L1319: cmp r4, r6 - bcs .L1330 + bcs .L1347 and ip, r4, #3 cmp r9, #0 - beq .L1321 + beq .L1338 add r3, r9, r4, lsl #9 - b .L1304 -.L1321: + b .L1321 +.L1338: mov r3, r9 -.L1304: +.L1321: ldr r2, [sp, #128] mov r0, r7 ldr r1, [sp, #128] @@ -8492,21 +8590,21 @@ NandcXferData: str r2, [sp] mov r2, ip bl NandcCopy1KB + ldr ip, [sp, #8] mov r0, r8 movs r1, #1 movs r2, #2 - ldr ip, [sp, #8] str fp, [sp] - str fp, [sp, #4] mov r3, ip + str fp, [sp, #4] bl NandcXferStart mov r0, r8 bl NandcXferComp - b .L1302 -.L1330: + b .L1319 +.L1347: mov fp, #0 - b .L1301 -.L1327: + b .L1318 +.L1344: str r4, [sp] mov r1, r4 str r4, [sp, #4] @@ -8515,16 +8613,16 @@ NandcXferData: mov fp, r4 bl NandcXferStart str r9, [sp, #8] -.L1307: +.L1324: cmp r4, r6 - bcs .L1301 + bcs .L1318 mov r0, r8 bl NandcXferComp ldr r3, [r7, #32] add ip, r4, #2 cmp ip, r6 str r3, [sp, #20] - bcs .L1308 + bcs .L1325 movs r3, #0 mov r0, r8 str r3, [sp] @@ -8535,10 +8633,10 @@ NandcXferData: str ip, [sp, #12] bl NandcXferStart ldr ip, [sp, #12] -.L1308: +.L1325: ldr r3, [sp, #20] lsls r3, r3, #29 - bmi .L1323 + bmi .L1340 ldr r2, [sp, #20] ldr r3, [sp, #20] ubfx r2, r2, #3, #5 @@ -8547,10 +8645,10 @@ NandcXferData: cmp fp, r3 it cc movcc fp, r3 - b .L1309 -.L1323: + b .L1326 +.L1340: mov fp, #-1 -.L1309: +.L1326: ldr r1, [sp, #128] cmp r9, #0 ldr r3, [sp, #8] @@ -8574,13 +8672,13 @@ NandcXferData: mov r4, ip add r3, r3, #1024 str r3, [sp, #8] - b .L1307 -.L1301: - ldr r3, [r5, #2768] + b .L1324 +.L1318: + ldr r3, [r5, #2780] cmp r3, #5 - bls .L1313 + bls .L1330 cmp r10, #0 - bne .L1313 + bne .L1330 ldr r3, [r7] and r2, r3, #139264 cmp r2, #139264 @@ -8588,14 +8686,14 @@ NandcXferData: moveq fp, #-1 orreq r3, r3, #131072 streq r3, [r7] -.L1313: +.L1330: mov r0, fp add sp, sp, #92 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1332: +.L1349: .align 2 -.L1331: +.L1348: .word .LANCHOR0 .fnend .size NandcXferData, .-NandcXferData @@ -8612,20 +8710,20 @@ FlashReadRawPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1335 + ldr r3, .L1352 mov r6, r1 mov r7, r2 mov r4, r0 ldrb r5, [r3, #265] @ zero_extendqisi2 - cbnz r0, .L1334 - ldr r2, .L1335+4 + cbnz r0, .L1351 + ldr r2, .L1352+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r2, [r2, #4] muls r2, r3, r2 cmp r1, r2 it cc movcc r5, #4 -.L1334: +.L1351: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -8638,8 +8736,8 @@ FlashReadRawPage: mov r2, r5 movs r1, #0 mov r3, r7 - mov r0, r4 str r8, [sp] + mov r0, r4 bl NandcXferData mov r5, r0 mov r0, r4 @@ -8648,9 +8746,9 @@ FlashReadRawPage: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1336: +.L1353: .align 2 -.L1335: +.L1352: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -8667,7 +8765,7 @@ FlashDdrTunningRead: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r7, r3 - ldr r4, .L1363 + ldr r4, .L1380 .pad #20 sub sp, sp, #20 mov r10, r0 @@ -8676,14 +8774,14 @@ FlashDdrTunningRead: ldr r3, [r4, #1828] ldr r3, [r3, #304] str r3, [sp, #8] - ldr r3, [r4, #2768] + ldr r3, [r4, #2780] cmp r3, #8 ldr r3, [sp, #56] ite cc movcc r9, #6 movcs r9, #12 cmp r3, #0 - beq .L1351 + beq .L1368 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 @@ -8691,137 +8789,137 @@ FlashDdrTunningRead: mov r0, r10 bl FlashReset mov r3, r7 + ldr r1, [sp] mov r2, fp mov r0, r10 - ldr r1, [sp] bl FlashReadRawPage mov r6, r0 - ldrb r0, [r4, #2760] @ zero_extendqisi2 + ldrb r0, [r4, #2764] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r4, #2760] @ zero_extendqisi2 + ldrb r0, [r4, #2764] @ zero_extendqisi2 bl NandcSetMode adds r3, r6, #1 - bne .L1340 -.L1349: + bne .L1357 +.L1366: mov r6, #-1 - b .L1341 -.L1340: + b .L1358 +.L1357: mov r2, r6 - ldr r0, .L1363+4 + ldr r0, .L1380+4 ldr r1, [sp] bl printk cmp r6, #9 itt ls addls r4, r4, r10, lsl #3 ldrls r3, [r4, #12] - ldr r4, .L1363+8 + ldr r4, .L1380+8 itttt ls ldrls r2, [r3, #3840] ldrls r2, [r3] orrls r2, r2, #131072 strls r2, [r3] - ldr r3, [r4, #3988] + ldr r3, [r4, #3992] adds r3, r3, #1 - str r3, [r4, #3988] + str r3, [r4, #3992] cmp r3, #2048 - bcc .L1341 + bcc .L1358 movs r7, #0 - str r7, [r4, #3988] + str r7, [r4, #3992] mov fp, r7 - b .L1339 -.L1351: + b .L1356 +.L1368: mov r6, #1024 -.L1339: +.L1356: movs r4, #0 mov r8, #-1 str r4, [sp, #4] mov ip, r4 mov r5, r4 -.L1347: +.L1364: uxtb r0, r9 str ip, [sp, #12] bl NandcSetDdrPara mov r3, r7 mov r0, r10 - mov r2, fp ldr r1, [sp] + mov r2, fp bl FlashReadRawPage adds r3, r6, #1 - cmp r0, r3 ldr ip, [sp, #12] - bhi .L1343 + cmp r0, r3 + bhi .L1360 cmp r0, #2 - bhi .L1353 + bhi .L1370 adds r5, r5, #1 cmp r5, #9 - bls .L1353 + bls .L1370 rsb r4, r5, r9 mov r6, r0 mov r8, #0 - b .L1345 -.L1343: + b .L1362 +.L1360: ldr r3, [sp, #4] cmp r3, r5 - bcs .L1354 + bcs .L1371 cmp r5, #7 rsb ip, r5, r4 - bhi .L1355 + bhi .L1372 str r5, [sp, #4] - b .L1354 -.L1353: + b .L1371 +.L1370: mov r8, #0 mov r4, r9 mov r6, r0 mov r7, r8 mov fp, r8 - b .L1344 -.L1354: + b .L1361 +.L1371: movs r5, #0 -.L1344: +.L1361: add r9, r9, #2 cmp r9, #69 - bls .L1347 -.L1345: + bls .L1364 +.L1362: ldr r3, [sp, #4] cmp r3, r5 it cs movcs r4, ip - b .L1346 -.L1355: + b .L1363 +.L1372: mov r4, ip -.L1346: - cbz r4, .L1348 - ldr r0, .L1363+12 +.L1363: + cbz r4, .L1365 + ldr r0, .L1380+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L1348: +.L1365: cmp r8, #0 - beq .L1341 - ldr r0, .L1363+16 + beq .L1358 + ldr r0, .L1380+16 mov r1, r10 ldr r2, [sp] bl printk ldr r3, [sp, #56] cmp r3, #0 - beq .L1349 + beq .L1366 ldr r3, [sp, #8] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L1341: +.L1358: mov r0, r6 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1364: +.L1381: .align 2 -.L1363: +.L1380: .word .LANCHOR0 - .word .LC88 + .word .LC91 .word .LANCHOR2 - .word .LC89 - .word .LC90 + .word .LC92 + .word .LC93 .fnend .size FlashDdrTunningRead, .-FlashDdrTunningRead .align 1 @@ -8843,18 +8941,18 @@ FlashReadPage: bl FlashReadRawPage adds r2, r0, #1 mov r4, r0 - bne .L1366 - ldr r9, .L1385+4 + bne .L1383 + ldr r9, .L1402+4 ldrb fp, [r9, #8] @ zero_extendqisi2 mov r10, r9 cmp fp, #0 - bne .L1367 -.L1369: - ldrb r3, [r10, #2761] @ zero_extendqisi2 - ldr r9, .L1385+4 - cbz r3, .L1366 - b .L1384 -.L1367: + bne .L1384 +.L1386: + ldrb r3, [r10, #2772] @ zero_extendqisi2 + ldr r9, .L1402+4 + cbz r3, .L1383 + b .L1401 +.L1384: movs r3, #0 mov r0, r5 strb r3, [r9, #8] @@ -8864,10 +8962,10 @@ FlashReadPage: bl FlashReadRawPage strb fp, [r9, #8] adds r3, r0, #1 - beq .L1369 + beq .L1386 mov r4, r0 - b .L1366 -.L1384: + b .L1383 +.L1401: ldr r3, [r9, #1828] mov r1, r6 mov r0, r5 @@ -8879,20 +8977,20 @@ FlashReadPage: bl FlashDdrTunningRead adds r1, r0, #1 mov r4, r0 - beq .L1370 + beq .L1387 ldrb r3, [r9, #1892] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1366 -.L1370: + bls .L1383 +.L1387: ubfx r0, r10, #8, #8 bl NandcSetDdrPara -.L1366: - ldr r9, .L1385+8 - ldr ip, [r9, #3992] +.L1383: + ldr r9, .L1402+8 + ldr ip, [r9, #3996] cmp ip, #0 - beq .L1371 + beq .L1388 adds r2, r4, #1 - bne .L1371 + bne .L1388 mov r1, r6 mov r2, r8 mov r3, r7 @@ -8901,17 +8999,17 @@ FlashReadPage: mov r3, r6 mov r2, r5 mov r4, r0 - ldr r0, .L1385 + ldr r0, .L1402 mov r1, r4 bl printk adds r3, r4, #1 - bne .L1371 - ldr r3, .L1385+4 + bne .L1388 + ldr r3, .L1402+4 ldrb r3, [r3, #76] @ zero_extendqisi2 - cbz r3, .L1371 + cbz r3, .L1388 mov r0, r5 bl flash_enter_slc_mode - ldr r4, [r9, #3992] + ldr r4, [r9, #3996] mov r0, r5 mov r1, r6 mov r2, r8 @@ -8920,15 +9018,15 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L1371: +.L1388: mov r0, r4 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1386: +.L1403: .align 2 -.L1385: - .word .LC91 +.L1402: + .word .LC94 .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -8945,19 +9043,19 @@ FlashDdrParaScan: push {r0, r1, r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} .pad #8 + movs r5, #0 + ldr r4, .L1414 mov r7, r0 - ldr r4, .L1397 mov r6, r1 - movs r5, #0 - ldrb r0, [r4, #2760] @ zero_extendqisi2 + ldrb r0, [r4, #2764] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r4, #2760] @ zero_extendqisi2 + ldrb r0, [r4, #2764] @ zero_extendqisi2 bl NandcSetMode mov r1, r6 mov r2, r5 mov r3, r5 - mov r0, r7 str r5, [sp] + mov r0, r7 bl FlashDdrTunningRead mov r1, r6 mov r2, r5 @@ -8966,32 +9064,32 @@ FlashDdrParaScan: mov r0, r7 bl FlashReadRawPage adds r0, r0, #1 - beq .L1388 + beq .L1405 cmp r8, #-1 - bne .L1389 -.L1388: - ldrb r3, [r4, #2760] @ zero_extendqisi2 + bne .L1406 +.L1405: + ldrb r3, [r4, #2764] @ zero_extendqisi2 lsls r3, r3, #31 - bpl .L1389 + bpl .L1406 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode - ldr r3, .L1397 + ldr r3, .L1414 movs r2, #0 - strb r2, [r3, #2761] - b .L1390 -.L1389: + strb r2, [r3, #2772] + b .L1407 +.L1406: movs r3, #1 - strb r3, [r4, #2761] -.L1390: + strb r3, [r4, #2772] +.L1407: movs r0, #0 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1398: +.L1415: .align 2 -.L1397: +.L1414: .word .LANCHOR0 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -9008,119 +9106,119 @@ FlashLoadPhyInfo: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r6, .L1415 + ldr r6, .L1432 movs r4, #0 - ldr r3, .L1415+4 + ldr r3, .L1432+4 mov r9, #4 - ldr r5, .L1415+8 + ldr r5, .L1432+8 mov r7, #-1 mov r8, r6 ldr r0, [r3] @ unaligned ldrh r3, [r6, #266] mov r6, r5 - str r4, [r5, #4000] + str r4, [r5, #4004] str r0, [sp, #12] @ unaligned mov r0, r4 str r3, [sp, #4] - ldr r3, [r5, #3984] - str r3, [r5, #3996] + ldr r3, [r5, #3988] + str r3, [r5, #4000] bl flash_enter_slc_mode -.L1400: +.L1417: add fp, r4, #1 mov r10, #0 -.L1402: +.L1419: add r3, sp, #12 ldrb r0, [r3, r10] @ zero_extendqisi2 bl FlashBchSel movs r0, #0 mov r1, r4 - ldr r2, [r5, #3984] + ldr r2, [r5, #3988] mov r3, r0 bl FlashReadRawPage adds r0, r0, #1 - bne .L1401 + bne .L1418 movs r0, #0 mov r1, fp - ldr r2, [r6, #3984] + ldr r2, [r6, #3988] mov r3, r0 bl FlashReadRawPage adds r0, r0, #1 - bne .L1401 + bne .L1418 add r10, r10, #1 cmp r10, #4 - beq .L1403 - b .L1402 -.L1404: + beq .L1420 + b .L1419 +.L1421: add r0, fp, #12 movw r1, #2036 bl JSHash ldr r3, [fp, #8] cmp r3, r0 - bne .L1410 + bne .L1427 add r1, fp, #160 movs r2, #32 - ldr r0, .L1415+12 + ldr r0, .L1432+12 bl ftl_memcpy - ldr r7, .L1415+16 - ldr r1, [r6, #3996] + ldr r7, .L1432+16 + ldr r1, [r6, #4000] movs r2, #32 add r0, r7, #44 adds r1, r1, #192 bl ftl_memcpy - ldr r1, [r6, #3996] + ldr r1, [r6, #4000] mov r2, #852 - addw r0, r7, #1902 + addw r0, r7, #1906 adds r1, r1, #224 bl ftl_memcpy - ldr fp, [r6, #3996] - str r4, [r6, #4000] + ldr fp, [r6, #4000] + str r4, [r6, #4004] mov r0, r4 ldrh r1, [r8, #266] ldr r3, [fp, #1076] - strb r3, [r7, #2761] + strb r3, [r7, #2772] bl __aeabi_uidiv adds r3, r0, #1 - cbnz r0, .L1413 + cbnz r0, .L1430 movs r3, #2 -.L1413: - str r3, [r6, #4004] +.L1430: + str r3, [r6, #4008] movs r7, #0 ldrh r3, [fp, #14] - strb r3, [r5, #4008] -.L1403: + strb r3, [r5, #4012] +.L1420: ldr r3, [sp, #4] subs r9, r9, #1 add r4, r4, r3 - bne .L1400 + bne .L1417 mov r0, r9 -.L1414: +.L1431: bl flash_exit_slc_mode mov r0, r7 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1401: - ldr fp, [r5, #3996] - ldr r2, .L1415+20 +.L1418: + ldr fp, [r5, #4000] + ldr r2, .L1432+20 ldr r3, [fp] cmp r3, r2 - bne .L1403 + bne .L1420 cmp r7, #0 - bne .L1404 + bne .L1421 mov r0, r4 ldrh r1, [r8, #266] bl __aeabi_uidiv - ldr r3, .L1415+8 + ldr r3, .L1432+8 adds r0, r0, #1 - str r0, [r3, #4004] + str r0, [r3, #4008] mov r0, r7 - b .L1414 -.L1410: + b .L1431 +.L1427: mov r7, #-1 - b .L1403 -.L1416: + b .L1420 +.L1433: .align 2 -.L1415: +.L1432: .word .LANCHOR1 .word .LANCHOR3+11 .word .LANCHOR2 @@ -9142,72 +9240,72 @@ ToshibaReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 + ldr r4, .L1462 mov r9, r0 - mov fp, r3 str r2, [sp, #8] + mov fp, r3 str r1, [sp, #16] bl NandcWaitFlashReady - ldr r4, .L1445 add r3, r4, r9, lsl #3 ldrb r2, [r3, #16] @ zero_extendqisi2 ldr r7, [r3, #12] - ldrb r3, [r4, #1900] @ zero_extendqisi2 + ldrb r3, [r4, #1904] @ zero_extendqisi2 add r6, r2, #8 subs r3, r3, #67 add r6, r7, r6, lsl #8 cmp r3, #1 lsl r3, r2, #8 str r3, [sp, #12] - bls .L1434 - ldrb r5, [r4, #2761] @ zero_extendqisi2 - cbz r5, .L1435 + bls .L1451 + ldrb r5, [r4, #2772] @ zero_extendqisi2 + cbz r5, .L1452 movs r0, #0 str r2, [sp, #20] bl NandcSetDdrMode movs r3, #1 ldr r2, [sp, #20] str r3, [sp, #4] - b .L1419 -.L1435: + b .L1436 +.L1452: str r5, [sp, #4] -.L1419: +.L1436: ldr r3, [sp, #12] movs r1, #92 adds r3, r7, r3 str r1, [r3, #2056] movs r1, #197 str r1, [r3, #2056] - b .L1418 -.L1434: + b .L1435 +.L1451: movs r3, #0 str r3, [sp, #4] -.L1418: +.L1435: mov r8, #1 mov r10, #-1 lsls r3, r2, #8 str r3, [sp, #20] -.L1420: - ldr r3, .L1445+4 - ldrb r3, [r3, #4009] @ zero_extendqisi2 +.L1437: + ldr r3, .L1462+4 + ldrb r3, [r3, #4013] @ zero_extendqisi2 adds r3, r3, #1 cmp r8, r3 - bcs .L1444 - ldrb r3, [r4, #1900] @ zero_extendqisi2 + bcs .L1461 + ldrb r3, [r4, #1904] @ zero_extendqisi2 mov r0, r6 uxtb r1, r8 subs r3, r3, #67 cmp r3, #1 - bhi .L1421 + bhi .L1438 bl SandiskSetRRPara - b .L1422 -.L1421: + b .L1439 +.L1438: bl ToshibaSetRRPara -.L1422: - ldrb r3, [r4, #1900] @ zero_extendqisi2 +.L1439: + ldrb r3, [r4, #1904] @ zero_extendqisi2 cmp r3, #34 - bne .L1423 - ldr r3, .L1445+4 - ldrb r3, [r3, #4009] @ zero_extendqisi2 + bne .L1440 + ldr r3, .L1462+4 + ldrb r3, [r3, #4013] @ zero_extendqisi2 subs r3, r3, #3 cmp r8, r3 itttt eq @@ -9215,7 +9313,7 @@ ToshibaReadRetrial: ldreq r3, [sp, #20] addeq r3, r7, r3 streq r2, [r3, #2056] -.L1423: +.L1440: ldr r3, [sp, #12] movs r2, #38 adds r3, r7, r3 @@ -9223,54 +9321,54 @@ ToshibaReadRetrial: movs r2, #93 str r2, [r3, #2056] ldr r3, [sp, #4] - cbz r3, .L1424 + cbz r3, .L1441 movs r0, #4 bl NandcSetDdrMode mov r0, r9 - mov r3, fp ldr r1, [sp, #16] + mov r3, fp ldr r2, [sp, #8] bl FlashReadRawPage mov r5, r0 movs r0, #0 bl NandcSetDdrMode - b .L1425 -.L1424: + b .L1442 +.L1441: mov r0, r9 ldr r1, [sp, #16] ldr r2, [sp, #8] mov r3, fp bl FlashReadRawPage mov r5, r0 -.L1425: +.L1442: adds r2, r5, #1 - beq .L1426 + beq .L1443 ldrb r2, [r4, #1892] @ zero_extendqisi2 cmp r10, #-1 it eq moveq r10, r5 add r2, r2, r2, lsl #1 cmp r5, r2, asr #2 - bcc .L1428 + bcc .L1445 mov fp, #0 str fp, [sp, #8] -.L1426: +.L1443: add r8, r8, #1 - b .L1420 -.L1444: + b .L1437 +.L1461: mov r5, r10 -.L1428: - ldrb r2, [r4, #1900] @ zero_extendqisi2 +.L1445: + ldrb r2, [r4, #1904] @ zero_extendqisi2 mov r0, r6 movs r1, #0 subs r2, r2, #67 cmp r2, #1 - bhi .L1430 + bhi .L1447 bl SandiskSetRRPara - b .L1431 -.L1430: + b .L1448 +.L1447: bl ToshibaSetRRPara -.L1431: +.L1448: ldr r3, [sp, #12] movs r2, #255 add r7, r7, r3 @@ -9278,25 +9376,25 @@ ToshibaReadRetrial: ldrb r2, [r4, #1892] @ zero_extendqisi2 add r2, r2, r2, lsl #1 cmp r5, r2, asr #2 - bcc .L1432 + bcc .L1449 adds r3, r5, #1 it ne movne r5, #256 -.L1432: +.L1449: mov r0, r9 bl NandcWaitFlashReady ldr r3, [sp, #4] - cbz r3, .L1433 + cbz r3, .L1450 movs r0, #4 bl NandcSetDdrMode -.L1433: +.L1450: mov r0, r5 add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1446: +.L1463: .align 2 -.L1445: +.L1462: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -9313,7 +9411,7 @@ SamsungReadRetrial: push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r0 - ldr r5, .L1460 + ldr r5, .L1477 mov r9, r2 mov r7, r3 mov fp, r1 @@ -9325,12 +9423,12 @@ SamsungReadRetrial: ldr r6, [r2, #12] adds r3, r3, #8 add r6, r6, r3, lsl #8 -.L1448: - ldr r3, .L1460+4 - ldrb r3, [r3, #4009] @ zero_extendqisi2 +.L1465: + ldr r3, .L1477+4 + ldrb r3, [r3, #4013] @ zero_extendqisi2 adds r3, r3, #1 cmp r10, r3 - bcs .L1451 + bcs .L1468 mov r0, r6 uxtb r1, r10 bl SamsungSetRRPara @@ -9340,38 +9438,38 @@ SamsungReadRetrial: mov r3, r7 bl FlashReadRawPage adds r2, r0, #1 - beq .L1449 + beq .L1466 ldrb r3, [r5, #1892] @ zero_extendqisi2 cmp r4, #-1 it eq moveq r4, r0 add r3, r3, r3, lsl #1 cmp r0, r3, asr #2 - bcc .L1454 + bcc .L1471 movs r7, #0 mov r9, r7 -.L1449: +.L1466: add r10, r10, #1 - b .L1448 -.L1454: + b .L1465 +.L1471: mov r4, r0 -.L1451: +.L1468: mov r0, r6 movs r1, #0 bl SamsungSetRRPara ldrb r3, [r5, #1892] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r4, r3, asr #2 - bcc .L1453 + bcc .L1470 adds r3, r4, #1 it ne movne r4, #256 -.L1453: +.L1470: mov r0, r4 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1461: +.L1478: .align 2 -.L1460: +.L1477: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -9388,7 +9486,7 @@ MicronReadRetrial: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r3 - ldr r3, .L1478 + ldr r3, .L1495 mov fp, r2 .pad #28 sub sp, sp, #28 @@ -9397,15 +9495,15 @@ MicronReadRetrial: ldrb r2, [r3, #76] @ zero_extendqisi2 mov r5, r3 ldrb r4, [r3, #1892] @ zero_extendqisi2 - cbnz r2, .L1463 + cbnz r2, .L1480 add r4, r4, r4, lsl #1 ubfx r4, r4, #2, #8 - b .L1464 -.L1463: - ldr r2, .L1478+4 + b .L1481 +.L1480: + ldr r2, .L1495+4 smull r2, r3, r4, r2 uxtb r4, r3 -.L1464: +.L1481: mov r0, r8 movs r7, #0 bl NandcWaitFlashReady @@ -9413,16 +9511,16 @@ MicronReadRetrial: mov r5, #-1 ldr r2, [r3, #12] ldrb r3, [r3, #16] @ zero_extendqisi2 + str r2, [sp, #12] str r3, [sp, #16] mov r3, r2 - str r2, [sp, #12] ldr r2, [sp, #16] add r6, r3, r2, lsl #8 -.L1465: - ldr r3, .L1478+8 - ldrb r3, [r3, #4009] @ zero_extendqisi2 +.L1482: + ldr r3, .L1495+8 + ldrb r3, [r3, #4013] @ zero_extendqisi2 cmp r7, r3 - bcs .L1468 + bcs .L1485 movs r3, #239 movs r0, #200 str r3, [r6, #2056] @@ -9436,28 +9534,28 @@ MicronReadRetrial: mov r0, r8 str ip, [r6, #2048] mov r1, r10 - str ip, [r6, #2048] - str ip, [r6, #2048] str r3, [sp, #8] mov r3, r9 + str ip, [r6, #2048] + str ip, [r6, #2048] str ip, [sp, #20] bl FlashReadRawPage adds r2, r0, #1 - beq .L1466 + beq .L1483 cmp r5, #-1 it eq moveq r5, r0 cmp r0, r4 - bcc .L1472 + bcc .L1489 ldr ip, [sp, #20] mov r9, ip mov fp, ip -.L1466: +.L1483: ldr r7, [sp, #8] - b .L1465 -.L1472: + b .L1482 +.L1489: mov r5, r0 -.L1468: +.L1485: ldr r2, [sp, #16] movs r0, #200 ldr r3, [sp, #12] @@ -9473,9 +9571,9 @@ MicronReadRetrial: str r3, [r6, #2048] str r3, [r6, #2048] str r3, [r6, #2048] - bcc .L1470 + bcc .L1487 adds r3, r5, #1 - ldr r0, .L1478+12 + ldr r0, .L1495+12 it ne movne r5, #256 mov r1, r7 @@ -9483,18 +9581,18 @@ MicronReadRetrial: mov r2, r10 mov r3, r7 bl printk -.L1470: +.L1487: mov r0, r5 add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1479: +.L1496: .align 2 -.L1478: +.L1495: .word .LANCHOR0 .word 1431655766 .word .LANCHOR2 - .word .LC92 + .word .LC95 .fnend .size MicronReadRetrial, .-MicronReadRetrial .align 1 @@ -9510,29 +9608,29 @@ HynixReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r10, r2 - ldr r5, .L1497 + ldr r5, .L1514 mov r8, r3 mov r7, r0 mov fp, r1 adds r3, r5, r0 mov r6, #-1 ldr r2, [r5, #1788] - ldrb r4, [r3, #1914] @ zero_extendqisi2 - ldrb r9, [r5, #1904] @ zero_extendqisi2 + ldrb r4, [r3, #1918] @ zero_extendqisi2 + ldrb r9, [r5, #1908] @ zero_extendqisi2 ldrb r2, [r2, #19] @ zero_extendqisi2 cmp r2, #7 it eq - ldrbeq r4, [r3, #1922] @ zero_extendqisi2 + ldrbeq r4, [r3, #1926] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, #0 -.L1482: +.L1499: cmp ip, r9 - bcs .L1486 + bcs .L1503 adds r4, r4, #1 mov r0, r7 - ldrb r1, [r5, #1903] @ zero_extendqisi2 + ldrb r1, [r5, #1907] @ zero_extendqisi2 uxtb r4, r4 - ldr r2, .L1497+4 + ldr r2, .L1514+4 cmp r4, r9 it cs movcs r4, #0 @@ -9544,48 +9642,48 @@ HynixReadRetrial: mov r1, fp mov r3, r8 bl FlashReadRawPage - adds r2, r0, #1 ldr ip, [sp, #4] - beq .L1484 + adds r2, r0, #1 + beq .L1501 ldrb r3, [r5, #1892] @ zero_extendqisi2 cmp r6, #-1 it eq moveq r6, r0 add r3, r3, r3, lsl #1 cmp r0, r3, asr #2 - bcc .L1491 + bcc .L1508 mov r8, #0 mov r10, r8 -.L1484: +.L1501: add ip, ip, #1 - b .L1482 -.L1491: + b .L1499 +.L1508: mov r6, r0 -.L1486: +.L1503: ldr r3, [r5, #1788] add r7, r7, r5 ldrb r3, [r3, #19] @ zero_extendqisi2 cmp r3, #7 ldrb r3, [r5, #1892] @ zero_extendqisi2 ite eq - strbeq r4, [r7, #1922] - strbne r4, [r7, #1914] + strbeq r4, [r7, #1926] + strbne r4, [r7, #1918] add r3, r3, r3, lsl #1 cmp r6, r3, asr #2 - bcc .L1490 + bcc .L1507 adds r3, r6, #1 it ne movne r6, #256 -.L1490: +.L1507: mov r0, r6 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1498: +.L1515: .align 2 -.L1497: +.L1514: .word .LANCHOR0 - .word .LANCHOR0+1906 + .word .LANCHOR0+1910 .fnend .size HynixReadRetrial, .-HynixReadRetrial .align 1 @@ -9601,25 +9699,25 @@ FlashProgPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1502 + ldr r3, .L1519 mov r5, r1 mov r7, r2 mov r4, r0 ldrb r6, [r3, #265] @ zero_extendqisi2 - cbnz r0, .L1500 - ldr r2, .L1502+4 + cbnz r0, .L1517 + ldr r2, .L1519+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r1, [r2, #4] muls r1, r3, r1 cmp r5, r1 - bcs .L1500 + bcs .L1517 ldrb r3, [r2] @ zero_extendqisi2 - cbnz r3, .L1501 + cbnz r3, .L1518 subs r6, r6, #2 - b .L1500 -.L1501: + b .L1517 +.L1518: movs r6, #4 -.L1500: +.L1517: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -9629,9 +9727,9 @@ FlashProgPage: bl FlashProgFirstCmd uxtb r2, r6 mov r3, r7 + str r8, [sp] mov r0, r4 movs r1, #1 - str r8, [sp] bl NandcXferData mov r1, r5 mov r0, r4 @@ -9648,9 +9746,9 @@ FlashProgPage: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1503: +.L1520: .align 2 -.L1502: +.L1519: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -9667,70 +9765,70 @@ FlashSavePhyInfo: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L1513 - ldr r5, .L1513+4 - ldr r8, .L1513+12 - ldr r3, [r4, #3984] + ldr r4, .L1530 + ldr r5, .L1530+4 + ldr r8, .L1530+12 + ldr r3, [r4, #3988] mov r9, r4 - ldrb r0, [r4, #4010] @ zero_extendqisi2 + ldrb r0, [r4, #4014] @ zero_extendqisi2 mov r10, r5 - str r3, [r4, #3996] + str r3, [r4, #4000] bl FlashBchSel - ldr r0, [r4, #3984] + ldr r0, [r4, #3988] mov r1, #2048 bl __memzero - ldr r3, [r4, #3996] + ldr r3, [r4, #4000] add r1, r5, #1792 movs r2, #32 str r8, [r3] - ldr r0, [r4, #3996] + ldr r0, [r4, #4000] ldrb r3, [r5, #1616] @ zero_extendqisi2 adds r0, r0, #16 strh r3, [r0, #-4] @ movhi ldrb r3, [r5, #1] @ zero_extendqisi2 strh r3, [r0, #-2] @ movhi - ldrb r3, [r5, #2761] @ zero_extendqisi2 + ldrb r3, [r5, #2772] @ zero_extendqisi2 str r3, [r0, #1060] bl ftl_memcpy - ldr r0, [r4, #3996] + ldr r0, [r4, #4000] addw r1, r5, #1620 movs r2, #8 adds r0, r0, #80 bl ftl_memcpy - ldr r0, [r4, #3996] + ldr r0, [r4, #4000] addw r1, r5, #1628 movs r2, #32 adds r0, r0, #96 bl ftl_memcpy - ldr r0, [r4, #3996] - ldr r1, .L1513+8 + ldr r0, [r4, #4000] + ldr r1, .L1530+8 movs r2, #32 adds r0, r0, #160 bl ftl_memcpy - ldr r0, [r4, #3996] + ldr r0, [r4, #4000] add r1, r5, #44 movs r2, #32 adds r0, r0, #192 bl ftl_memcpy - ldr r0, [r4, #3996] + ldr r0, [r4, #4000] mov r2, #852 - addw r1, r5, #1902 + addw r1, r5, #1906 adds r0, r0, #224 bl ftl_memcpy - ldr r6, [r4, #3996] + ldr r6, [r4, #4000] movw r1, #2036 add r0, r6, #12 bl JSHash mov r3, #1592 str r3, [r6, #4] - ldr r3, [r4, #4012] - str r3, [r4, #3996] + ldr r3, [r4, #4016] + str r3, [r4, #4000] str r0, [r6, #8] movs r0, #0 bl flash_enter_slc_mode movs r6, #0 mov r7, r6 -.L1507: +.L1524: ldr r1, [r5, #4] movs r0, #0 mov r2, r0 @@ -9738,53 +9836,53 @@ FlashSavePhyInfo: bl FlashEraseBlock ldr r1, [r5, #4] movs r0, #0 - ldr r2, [r4, #3984] + ldr r2, [r4, #3988] muls r1, r7, r1 mov r3, r0 bl FlashProgPage ldr r1, [r5, #4] movs r0, #0 - ldr r2, [r4, #3984] + ldr r2, [r4, #3988] muls r1, r7, r1 mov r3, r0 adds r1, r1, #1 bl FlashProgPage ldr r1, [r5, #4] movs r0, #0 - ldr r2, [r4, #4012] + ldr r2, [r4, #4016] muls r1, r7, r1 mov r3, r0 bl FlashReadRawPage adds r2, r7, #1 adds r0, r0, #1 - beq .L1505 - ldr fp, [r9, #3996] + beq .L1522 + ldr fp, [r9, #4000] ldr r3, [fp] cmp r3, r8 - bne .L1505 + bne .L1522 add r0, fp, #12 movw r1, #2036 str r2, [sp, #4] bl JSHash ldr r3, [fp, #8] - cmp r3, r0 ldr r2, [sp, #4] - bne .L1505 + cmp r3, r0 + bne .L1522 ldr r3, [r10, #4] cmp r6, #1 - str r2, [r9, #4004] + str r2, [r9, #4008] mul r3, r3, r7 - str r3, [r9, #4000] - beq .L1508 + str r3, [r9, #4004] + beq .L1525 movs r6, #1 -.L1505: +.L1522: cmp r2, #4 mov r7, r2 - bne .L1507 - b .L1506 -.L1508: + bne .L1524 + b .L1523 +.L1525: movs r6, #2 -.L1506: +.L1523: movs r0, #0 bl flash_exit_slc_mode clz r0, r6 @@ -9793,9 +9891,9 @@ FlashSavePhyInfo: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1514: +.L1531: .align 2 -.L1513: +.L1530: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR1+256 @@ -9814,100 +9912,100 @@ FlashReadIdbDataRaw: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r0 - ldr r3, .L1528 + ldr r3, .L1545 .pad #20 sub sp, sp, #20 - ldr r4, .L1528+4 + ldr r4, .L1545+4 ldr r0, [r3] @ unaligned - ldr r2, [r4, #2772] - ldr r3, .L1528+8 + ldr r2, [r4, #2768] + ldr r3, .L1545+8 str r0, [sp, #12] @ unaligned cmp r2, r3 ldrb r10, [r4, #1892] @ zero_extendqisi2 str r3, [sp, #4] - bne .L1516 + bne .L1533 movs r0, #0 bl flash_enter_slc_mode -.L1516: +.L1533: mov r0, r9 mov r1, #2048 bl __memzero mov r8, #-1 movs r5, #2 -.L1517: +.L1534: ldrb r3, [r4, #1] @ zero_extendqisi2 cmp r5, r3 - bcs .L1521 + bcs .L1538 movs r7, #0 -.L1519: +.L1536: add r3, sp, #12 - ldr r6, .L1528+12 + ldr r6, .L1545+12 ldrb fp, [r7, r3] @ zero_extendqisi2 mov r0, fp bl FlashBchSel ldr r1, [r4, #4] movs r0, #0 - ldr r2, [r6, #3984] + ldr r2, [r6, #3988] muls r1, r5, r1 mov r3, r0 bl FlashReadRawPage adds r0, r0, #1 - bne .L1518 + bne .L1535 adds r7, r7, #1 cmp r7, #4 - bne .L1519 - b .L1520 -.L1518: - ldr r3, [r6, #3984] - ldr r2, .L1528+16 + bne .L1536 + b .L1537 +.L1535: + ldr r3, [r6, #3988] + ldr r2, .L1545+16 ldr r3, [r3] cmp r3, r2 - bne .L1520 + bne .L1537 mov r1, fp - ldr r0, .L1528+20 + ldr r0, .L1545+20 bl printk mov r2, #2048 mov r0, r9 - ldr r1, [r6, #3984] + ldr r1, [r6, #3988] bl ftl_memcpy - ldr r3, [r6, #3984] - ldr r2, .L1528+4 + ldr r3, [r6, #3988] + ldr r2, .L1545+4 ldr r3, [r3, #512] strb r3, [r2, #1] - ldr r3, [r6, #4004] + ldr r3, [r6, #4008] cmp r3, r5 - bls .L1524 - str r5, [r6, #4004] + bls .L1541 + str r5, [r6, #4008] bl FlashSavePhyInfo mov r8, #0 -.L1520: +.L1537: adds r5, r5, #1 - b .L1517 -.L1524: + b .L1534 +.L1541: mov r8, #0 -.L1521: +.L1538: mov r0, r10 bl FlashBchSel - ldr r3, [r4, #2772] + ldr r3, [r4, #2768] ldr r2, [sp, #4] cmp r3, r2 - bne .L1526 + bne .L1543 movs r0, #0 bl flash_exit_slc_mode -.L1526: +.L1543: mov r0, r8 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1529: +.L1546: .align 2 -.L1528: +.L1545: .word .LANCHOR3+11 .word .LANCHOR0 .word 1446522928 .word .LANCHOR2 .word -52655045 - .word .LC93 + .word .LC96 .fnend .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw .align 1 @@ -9926,39 +10024,39 @@ FlashInit: sub sp, sp, #28 mov r0, #32768 bl ftl_malloc - ldr r5, .L1626 - ldr r4, .L1626+4 + ldr r5, .L1645 + ldr r4, .L1645+4 movs r7, #0 add r9, r4, #12 mov r10, r4 - str r0, [r5, #3984] + str r0, [r5, #3988] mov r0, #32768 bl ftl_malloc - str r0, [r5, #4012] + str r0, [r5, #4016] mov r0, #4096 bl ftl_malloc - str r0, [r5, #4016] + str r0, [r5, #4020] mov r0, #32768 bl ftl_malloc - str r0, [r5, #4020] + str r0, [r5, #4024] mov r0, #4096 bl ftl_malloc movs r3, #50 - str r7, [r5, #4004] + str r7, [r5, #4008] strb r3, [r4, #1] - strb r3, [r5, #4008] + strb r3, [r5, #4012] movs r3, #128 - strb r7, [r4, #2761] + strb r7, [r4, #2772] str r3, [r4, #4] movs r3, #60 - str r7, [r5, #3988] + str r7, [r5, #3992] strb r7, [r4] - strb r3, [r5, #4010] - str r0, [r5, #4024] + strb r3, [r5, #4014] + str r0, [r5, #4028] mov r0, r6 bl NandcInit add r6, r4, #1792 -.L1535: +.L1552: uxtb fp, r7 mov r0, fp bl FlashReset @@ -9968,9 +10066,9 @@ FlashInit: ldrb r8, [r3, #4] @ zero_extendqisi2 str r2, [sp, #20] bl NandcFlashCs + ldr r2, [sp, #20] movs r3, #144 movs r0, #200 - ldr r2, [sp, #20] add r8, r2, r8, lsl #8 str r3, [r8, #2056] movs r3, #0 @@ -9994,10 +10092,10 @@ FlashInit: subs r3, r2, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1531 + bhi .L1548 ldrb r1, [r6, #2] @ zero_extendqisi2 ldrb r3, [r6, #1] @ zero_extendqisi2 - ldr r0, .L1626+8 + ldr r0, .L1645+8 str r1, [sp] ldrb r1, [r6, #3] @ zero_extendqisi2 str r1, [sp, #4] @@ -10007,17 +10105,17 @@ FlashInit: str r1, [sp, #12] adds r1, r7, #1 bl printk -.L1531: - cbnz r7, .L1532 +.L1548: + cbnz r7, .L1549 ldrb r3, [r4, #1792] @ zero_extendqisi2 subs r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1576 + bhi .L1595 ldrb r3, [r10, #1793] @ zero_extendqisi2 cmp r3, #255 - beq .L1576 -.L1532: + beq .L1595 +.L1549: ldrb r3, [r6] @ zero_extendqisi2 adds r7, r7, #1 adds r6, r6, #8 @@ -10026,124 +10124,146 @@ FlashInit: moveq r3, #44 strbeq r3, [r6, #-8] cmp r7, #4 - bne .L1535 + bne .L1552 ldrb r3, [r4, #1792] @ zero_extendqisi2 cmp r3, #173 - beq .L1536 - ldr r3, .L1626+4 - ldr r0, [r3, #2764] + beq .L1553 + ldr r3, .L1645+4 + ldr r0, [r3, #2776] bl NandcSetDdrMode -.L1536: - ldr r0, .L1626+12 +.L1553: + ldr r6, .L1645+4 mov r1, #852 + addw r0, r6, #1906 bl __memzero - ldr r3, .L1626+16 + ldr r3, .L1645+12 str r3, [r4, #1788] movs r3, #0 strb r3, [r4, #8] ldrb r3, [r4, #1793] @ zero_extendqisi2 cmp r3, #161 - beq .L1537 - cmp r3, #241 - beq .L1537 + beq .L1554 cmp r3, #218 - beq .L1537 + beq .L1554 + and r2, r3, #223 + cmp r2, #209 + beq .L1554 cmp r3, #220 - bne .L1538 -.L1537: + bne .L1555 + ldrb r2, [r6, #1795] @ zero_extendqisi2 + cmp r2, #149 + bne .L1555 +.L1554: ldrb r1, [r4, #1792] @ zero_extendqisi2 movs r2, #1 strb r2, [r4] movs r2, #16 strb r2, [r4, #1] cmp r1, #152 - strb r2, [r5, #4010] - ldr r2, .L1626+20 - strb r1, [r2, #2969] - strb r3, [r2, #2970] - bne .L1539 - ldr r1, .L1626+4 + strb r2, [r5, #4014] + ldr r2, .L1645+16 + strb r1, [r2, #3033] + strb r3, [r2, #3034] + bne .L1556 + ldr r1, .L1645+4 ldrsb r1, [r1, #1796] cmp r1, #0 ittt ge movge r0, #24 - ldrge r1, .L1626 - strbge r0, [r1, #4010] -.L1539: + ldrge r1, .L1645 + strbge r0, [r1, #4014] +.L1556: + ldr r1, .L1645+20 + ldr r0, [r4, #2768] + cmp r0, r1 + itt eq + moveq r1, #16 + strbeq r1, [r5, #4014] cmp r3, #218 - bne .L1540 + bne .L1558 mov r1, #2048 - b .L1622 -.L1540: + b .L1641 +.L1558: cmp r3, #220 - bne .L1541 + bne .L1559 mov r1, #4096 -.L1622: - strh r1, [r2, #2982] @ movhi - strb r3, [r2, #2970] -.L1541: - ldr r1, .L1626+24 +.L1641: + strh r1, [r2, #3046] @ movhi + strb r3, [r2, #3034] +.L1559: + ldr r1, .L1645+24 movs r2, #32 - ldr r0, .L1626+28 + ldr r0, .L1645+28 bl ftl_memcpy - ldr r0, .L1626+16 + ldr r0, .L1645+12 movs r2, #32 - addw r1, r0, #2712 + addw r1, r0, #2776 bl ftl_memcpy -.L1538: +.L1555: ldrb r3, [r4] @ zero_extendqisi2 - ldr r6, .L1626+4 + ldr r6, .L1645+4 cmp r3, #0 - bne .L1542 + bne .L1560 bl FlashLoadPhyInfoInRam - cbnz r0, .L1544 + cbnz r0, .L1562 ldr r3, [r6, #1788] ldrh r3, [r3, #16] lsrs r3, r3, #8 lsls r7, r3, #31 and r0, r3, #7 - strb r0, [r6, #2760] - bmi .L1544 + strb r0, [r6, #2764] + bmi .L1562 movs r3, #1 - strb r3, [r6, #2761] + strb r3, [r6, #2772] bl FlashSetInterfaceMode - ldrb r0, [r6, #2760] @ zero_extendqisi2 + ldrb r0, [r6, #2764] @ zero_extendqisi2 bl NandcSetMode -.L1544: +.L1562: ldr r3, [r4, #1788] - ldr r6, .L1626+4 + ldr r6, .L1645+4 ldrb r3, [r3, #26] @ zero_extendqisi2 strb r3, [r4, #76] bl FlashLoadPhyInfo cmp r0, #0 - beq .L1542 - ldr r3, [r6, #2764] - cbz r3, .L1547 + beq .L1560 + ldr r3, [r6, #2776] + cbz r3, .L1565 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 - b .L1623 -.L1547: - ldrb r0, [r6, #2760] @ zero_extendqisi2 + b .L1642 +.L1646: + .align 2 +.L1645: + .word .LANCHOR2 + .word .LANCHOR0 + .word .LC97 + .word .LANCHOR1+256 + .word .LANCHOR1 + .word 1446522928 + .word .LANCHOR1+2908 + .word .LANCHOR0+44 +.L1565: + ldrb r0, [r6, #2764] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r6, #2760] @ zero_extendqisi2 -.L1623: + ldrb r0, [r6, #2764] @ zero_extendqisi2 +.L1642: bl NandcSetMode bl FlashLoadPhyInfo cmp r0, #0 - beq .L1542 + beq .L1560 movs r0, #1 - ldr r6, .L1626+4 + ldr r6, .L1647 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode ldr r3, [r4, #1788] - ldr r0, .L1626+32 + ldr r0, .L1647+4 ldrh r1, [r3, #14] bl printk bl FlashLoadPhyInfoInRam adds r1, r0, #1 - beq .L1533 + beq .L1550 bl FlashDieInfoInit ldr r3, [r6, #1788] ldrb r0, [r3, #19] @ zero_extendqisi2 @@ -10153,29 +10273,29 @@ FlashInit: ldrb r1, [r3, #9] @ zero_extendqisi2 addw r2, r2, #4095 cmp r1, r2, asr #12 - blt .L1549 + blt .L1567 ldrh r2, [r3, #14] adds r2, r2, #255 cmp r1, r2, asr #8 - bge .L1550 -.L1549: + bge .L1568 +.L1567: ldrh r2, [r3, #14] bic r2, r2, #255 strh r2, [r3, #14] @ movhi -.L1550: - ldrb r3, [r4, #2760] @ zero_extendqisi2 +.L1568: + ldrb r3, [r4, #2764] @ zero_extendqisi2 tst r3, #6 - beq .L1551 + beq .L1569 bl FlashSavePhyInfo movs r0, #0 - ldr r1, [r5, #4000] + ldr r1, [r5, #4004] bl FlashDdrParaScan -.L1551: +.L1569: bl FlashSavePhyInfo -.L1542: +.L1560: ldr r2, [r4, #1788] - ldr r6, .L1626+4 - ldr r7, .L1626 + ldr r6, .L1647 + ldr r7, .L1647+8 ldrb r3, [r2, #26] @ zero_extendqisi2 ldrh r0, [r2, #10] ldrb r8, [r2, #18] @ zero_extendqisi2 @@ -10184,14 +10304,14 @@ FlashInit: ubfx r1, r3, #7, #1 strb r1, [r4, #8] ubfx r1, r3, #3, #1 - strb r1, [r5, #4028] + strb r1, [r5, #4032] ubfx r1, r3, #4, #1 ubfx r3, r3, #8, #3 - strb r1, [r4, #2820] - strb r3, [r4, #2760] + strb r1, [r4, #2828] + strb r3, [r4, #2764] movs r3, #0 ldrb r1, [r2, #12] @ zero_extendqisi2 - str r3, [r5, #3992] + str r3, [r5, #3996] bl __aeabi_idiv mov r1, r0 mov r0, r8 @@ -10200,172 +10320,163 @@ FlashInit: ldr r3, [r4, #1788] ldrh r2, [r3, #16] lsls r2, r2, #25 - bpl .L1553 + bpl .L1571 ldrb r0, [r3, #19] @ zero_extendqisi2 - ldrb r3, [r6, #1903] @ zero_extendqisi2 - strb r0, [r6, #1900] - strb r3, [r6, #1901] - ldrb r3, [r6, #1904] @ zero_extendqisi2 - strb r3, [r7, #4009] + ldrb r3, [r6, #1907] @ zero_extendqisi2 + strb r0, [r6, #1904] + strb r3, [r6, #1905] + ldrb r3, [r6, #1908] @ zero_extendqisi2 + strb r3, [r7, #4013] subs r3, r0, #1 cmp r3, #6 - bhi .L1554 - ldr r3, .L1626+36 - str r3, [r7, #3992] + bhi .L1572 + ldr r3, .L1647+12 + str r3, [r7, #3996] subs r3, r0, #5 cmp r3, #1 - bhi .L1555 + bhi .L1573 movs r3, #1 - str r3, [r6, #2812] - b .L1556 -.L1555: + str r3, [r6, #2820] + b .L1574 +.L1573: cmp r0, #7 - beq .L1577 -.L1556: - ldr r6, .L1626+40 - b .L1557 -.L1627: - .align 2 -.L1626: - .word .LANCHOR2 - .word .LANCHOR0 - .word .LC94 - .word .LANCHOR0+1902 - .word .LANCHOR1+256 - .word .LANCHOR1 - .word .LANCHOR1+2844 - .word .LANCHOR0+44 - .word .LC95 - .word HynixReadRetrial - .word .LANCHOR0+1922 -.L1577: - addw r6, r6, #1930 -.L1557: + beq .L1596 +.L1574: + ldr r6, .L1647+16 + b .L1575 +.L1596: + addw r6, r6, #1934 +.L1575: subs r2, r6, #1 movs r3, #0 adds r6, r6, #31 -.L1558: +.L1576: ldrsb r1, [r2, #1]! cmp r1, #0 it eq addeq r3, r3, #1 cmp r2, r6 - bne .L1558 + bne .L1576 cmp r3, #27 - bls .L1553 + bls .L1571 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L1553 -.L1554: + b .L1571 +.L1572: sub r3, r0, #17 cmp r3, #2 - bhi .L1560 - ldr r3, .L1628 + bhi .L1578 + ldr r3, .L1647+20 cmp r0, #19 - str r3, [r7, #3992] + str r3, [r7, #3996] ite ne movne r3, #7 moveq r3, #15 - strb r3, [r7, #4009] - b .L1553 -.L1560: + strb r3, [r7, #4013] + b .L1571 +.L1578: cmp r0, #33 - beq .L1562 + beq .L1580 sub r3, r0, #65 cmp r3, #1 - bhi .L1563 -.L1562: - ldr r3, .L1628+4 - str r3, [r5, #3992] + bhi .L1581 +.L1580: + ldr r3, .L1647+24 + str r3, [r5, #3996] movs r3, #4 - strb r3, [r4, #1901] + strb r3, [r4, #1905] movs r3, #7 - strb r3, [r5, #4009] - b .L1553 -.L1563: + strb r3, [r5, #4013] + b .L1571 +.L1581: sub r3, r0, #67 uxtb r3, r3 cmp r3, #1 - bls .L1564 + bls .L1582 sub r2, r0, #34 cmp r2, #1 - bhi .L1565 -.L1564: - ldr r2, .L1628+4 + bhi .L1583 +.L1582: + ldr r2, .L1647+24 cmp r0, #35 - str r2, [r5, #3992] - beq .L1566 + str r2, [r5, #3996] + beq .L1584 cmp r0, #68 - beq .L1566 - ldr r2, .L1628+8 + beq .L1584 + ldr r2, .L1647+8 movs r1, #7 - strb r1, [r2, #4009] - b .L1567 -.L1566: + strb r1, [r2, #4013] + b .L1585 +.L1584: movs r2, #17 - strb r2, [r5, #4009] -.L1567: + strb r2, [r5, #4013] +.L1585: cmp r3, #1 ite ls movls r3, #4 movhi r3, #5 - strb r3, [r4, #1901] - b .L1553 -.L1565: + strb r3, [r4, #1905] + b .L1571 +.L1583: cmp r0, #49 itt eq - ldreq r3, .L1628+12 - streq r3, [r7, #3992] -.L1553: - ldr r1, [r4, #2772] - ldr r2, .L1628+16 - ldr r3, .L1628+20 - cmp r1, r2 - bne .L1569 - ldrb r2, [r3, #76] @ zero_extendqisi2 - cbz r2, .L1569 - ldr r3, [r3, #1788] - movs r2, #0 - strb r2, [r3, #18] -.L1569: - ldrb r2, [r4, #1792] @ zero_extendqisi2 - ldr r3, .L1628+20 - cmp r2, #44 - bne .L1570 - ldrb r2, [r3, #2761] @ zero_extendqisi2 - cbz r2, .L1570 + ldreq r3, .L1647+28 + streq r3, [r7, #3996] +.L1571: + ldr r1, [r4, #2768] + ldr r3, .L1647+32 + ldr r2, .L1647 + cmp r1, r3 + bne .L1587 + ldrb r0, [r2, #76] @ zero_extendqisi2 + cbz r0, .L1587 + ldr r2, [r2, #1788] + movs r0, #0 + strb r0, [r2, #18] +.L1587: + ldrb r0, [r4, #1792] @ zero_extendqisi2 + ldr r2, .L1647 + cmp r0, #44 + bne .L1588 + ldrb r0, [r2, #2772] @ zero_extendqisi2 + cbz r0, .L1588 + cmp r1, r3 + bne .L1589 + ldrb r3, [r2, #76] @ zero_extendqisi2 + cbnz r3, .L1588 +.L1589: movs r0, #1 - movs r2, #0 - strb r2, [r3, #2761] + movs r3, #0 + strb r3, [r4, #2772] bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode -.L1570: +.L1588: movs r0, #0 bl flash_enter_slc_mode - ldrb r3, [r4, #2760] @ zero_extendqisi2 + ldrb r3, [r4, #2764] @ zero_extendqisi2 tst r3, #6 - beq .L1571 - ldr r2, .L1628+20 - ldrb r2, [r2, #2761] @ zero_extendqisi2 - cbnz r2, .L1572 + beq .L1590 + ldr r2, .L1647 + ldrb r2, [r2, #2772] @ zero_extendqisi2 + cbnz r2, .L1591 lsls r3, r3, #31 - bmi .L1571 -.L1572: + bmi .L1590 +.L1591: movs r0, #0 - ldr r1, [r5, #4000] + ldr r1, [r5, #4004] bl FlashDdrParaScan -.L1571: +.L1590: movs r0, #0 mov r8, #16 bl flash_exit_slc_mode ldr r3, [r4, #1788] - ldr r6, .L1628+20 + ldr r6, .L1647 ldrb r0, [r3, #20] @ zero_extendqisi2 bl FlashBchSel - ldr r0, .L1628+24 + ldr r0, .L1647+36 bl FlashReadIdbDataRaw - ldr r0, .L1628+28 + ldr r0, .L1647+40 strb r8, [r4, #1] bl FlashTimingCfg ldr r5, [r4, #1788] @@ -10400,7 +10511,7 @@ FlashInit: ldrb r1, [r4] @ zero_extendqisi2 strh r3, [r4, #1886] @ movhi cmp r1, #1 - bne .L1574 + bne .L1593 lsls r3, r3, #1 lsrs r7, r7, #1 lsls r2, r2, #1 @@ -10410,28 +10521,31 @@ FlashInit: strh r7, [r6, #1878] @ movhi strh r2, [r6, #1884] @ movhi strh r3, [r6, #1890] @ movhi -.L1574: +.L1593: ldrb r0, [r5, #20] @ zero_extendqisi2 bl FlashBchSel - bl FlashSuspend + bl ftl_flash_suspend movs r0, #0 - b .L1533 -.L1576: + b .L1550 +.L1595: mvn r0, #1 -.L1533: +.L1550: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1629: +.L1648: .align 2 -.L1628: +.L1647: + .word .LANCHOR0 + .word .LC98 + .word .LANCHOR2 + .word HynixReadRetrial + .word .LANCHOR0+1926 .word MicronReadRetrial .word ToshibaReadRetrial - .word .LANCHOR2 .word SamsungReadRetrial .word 1446522928 - .word .LANCHOR0 - .word .LANCHOR2+1932 + .word .LANCHOR2+1936 .word 150000 .fnend .size FlashInit, .-FlashInit @@ -10447,58 +10561,58 @@ FlashPageProgMsbFFData: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r4, r2 - ldr r2, .L1645 + ldr r2, .L1664 mov r8, r1 mov r7, r0 ldr r3, [r2, #1788] mov r5, r2 ldrb r1, [r2, #76] @ zero_extendqisi2 ldrb r3, [r3, #19] @ zero_extendqisi2 - cbz r1, .L1631 - ldr r1, [r2, #2772] - ldr r2, .L1645+4 + cbz r1, .L1650 + ldr r1, [r2, #2768] + ldr r2, .L1664+4 cmp r1, r2 - beq .L1630 -.L1631: + beq .L1649 +.L1650: subs r2, r3, #5 cmp r2, #2 - bls .L1632 + bls .L1651 cmp r3, #68 - beq .L1632 + beq .L1651 cmp r3, #35 - beq .L1632 + beq .L1651 cmp r3, #19 - bne .L1630 -.L1632: - ldr r9, .L1645 + bne .L1649 +.L1651: + ldr r9, .L1664 movw r10, #65535 - ldr r6, .L1645+8 -.L1634: + ldr r6, .L1664+8 +.L1653: ldr r3, [r5, #1788] ldrh r3, [r3, #10] cmp r3, r4 - bls .L1630 + bls .L1649 add r3, r9, r4, lsl #1 ldrh r3, [r3, #592] cmp r3, r10 - bne .L1630 + bne .L1649 movs r1, #255 mov r2, #32768 - ldr r0, [r6, #4012] + ldr r0, [r6, #4016] bl memset add r1, r4, r8 adds r4, r4, #1 mov r0, r7 - ldr r2, [r6, #4012] + ldr r2, [r6, #4016] movs r3, #0 bl FlashProgPage uxth r4, r4 - b .L1634 -.L1630: + b .L1653 +.L1649: pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L1646: +.L1665: .align 2 -.L1645: +.L1664: .word .LANCHOR0 .word 1446522928 .word .LANCHOR2 @@ -10513,11 +10627,11 @@ FlashReadSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1677 + ldr r3, .L1696 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r6, #0 - ldr r7, .L1677+4 + ldr r7, .L1696+4 .pad #28 sub sp, sp, #28 ldrb r9, [r3, #265] @ zero_extendqisi2 @@ -10525,9 +10639,9 @@ FlashReadSlc2KPages: mov fp, r0 str r2, [sp, #8] mov r10, r7 -.L1648: +.L1667: cmp r6, r8 - beq .L1676 + beq .L1695 rsb r3, r6, r8 add r2, sp, #20 mov r0, fp @@ -10536,22 +10650,22 @@ FlashReadSlc2KPages: str r3, [sp] add r3, sp, #16 bl LogAddr2PhyAddr - ldrb r2, [r7, #1616] @ zero_extendqisi2 ldr r3, [sp, #16] + ldrb r2, [r7, #1616] @ zero_extendqisi2 cmp r3, r2 - bcc .L1649 + bcc .L1668 mov r3, #-1 str r3, [fp] - b .L1650 -.L1649: + b .L1669 +.L1668: add r3, r3, r7 ldrb r4, [r3, #1620] @ zero_extendqisi2 mov r0, r4 bl NandcWaitFlashReady mov r0, r4 bl NandcFlashCs - mov r0, r4 ldr r1, [sp, #20] + mov r0, r4 bl FlashReadCmd mov r0, r4 bl NandcWaitFlashReady @@ -10562,20 +10676,20 @@ FlashReadSlc2KPages: str r3, [sp] ldr r3, [fp, #8] bl NandcXferData - ldr r1, [r7, #4] ldr r3, [sp, #20] + ldr r1, [r7, #4] + add r1, r1, r3 mov r5, r0 mov r0, r4 - add r1, r1, r3 bl FlashReadCmd ldr r3, [fp, #8] - cbz r3, .L1651 + cbz r3, .L1670 add r3, r3, #2048 -.L1651: +.L1670: ldr r2, [fp, #12] - cbz r2, .L1652 + cbz r2, .L1671 adds r2, r2, #8 -.L1652: +.L1671: str r2, [sp] movs r1, #0 mov r2, r9 @@ -10591,63 +10705,63 @@ FlashReadSlc2KPages: ldrb r3, [r10, #1892] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r5, r3, asr #2 - bls .L1653 + bls .L1672 adds r0, r5, #1 it ne movne r5, #256 str r5, [fp] - b .L1655 -.L1653: + b .L1674 +.L1672: movs r3, #0 str r3, [fp] -.L1655: +.L1674: ldr r3, [fp, #12] - cbz r3, .L1656 + cbz r3, .L1675 ldr r2, [r3, #8] adds r1, r2, #1 - bne .L1656 + bne .L1675 ldr r3, [r3] adds r3, r3, #1 it ne strne r2, [fp] -.L1656: +.L1675: ldr r3, [fp] adds r2, r3, #1 - bne .L1650 + bne .L1669 ldr r1, [fp, #4] - ldr r0, .L1677+8 + ldr r0, .L1696+8 ldrb r2, [r10, #1892] @ zero_extendqisi2 bl printk ldr r1, [fp, #8] - cbz r1, .L1658 - ldr r0, .L1677+12 + cbz r1, .L1677 + ldr r0, .L1696+12 movs r2, #4 movs r3, #8 bl rknand_print_hex -.L1658: +.L1677: ldr r1, [fp, #12] - cbz r1, .L1650 + cbz r1, .L1669 movs r2, #4 - ldr r0, .L1677+16 + ldr r0, .L1696+16 mov r3, r2 bl rknand_print_hex -.L1650: +.L1669: adds r6, r6, #1 add fp, fp, #36 - b .L1648 -.L1676: + b .L1667 +.L1695: movs r0, #0 add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1678: +.L1697: .align 2 -.L1677: +.L1696: .word .LANCHOR1 .word .LANCHOR0 - .word .LC96 - .word .LC97 - .word .LC98 + .word .LC99 + .word .LC100 + .word .LC101 .fnend .size FlashReadSlc2KPages, .-FlashReadSlc2KPages .align 1 @@ -10659,31 +10773,31 @@ FlashReadPages: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1778 + ldr r3, .L1797 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 ldrb r3, [r3, #265] @ zero_extendqisi2 mov r10, r0 - ldr r5, .L1778+4 + ldr r5, .L1797+4 str r1, [sp, #28] str r3, [sp, #24] ldrb r3, [r5, #8] @ zero_extendqisi2 str r2, [sp, #16] str r3, [sp, #32] ldrb r3, [r5] @ zero_extendqisi2 - cbz r3, .L1722 + cbz r3, .L1741 bl FlashReadSlc2KPages - b .L1773 -.L1722: + b .L1792 +.L1741: mov r8, r3 str r3, [sp, #12] -.L1680: +.L1699: ldr r3, [sp, #12] ldr r2, [sp, #28] cmp r3, r2 - bcs .L1775 + bcs .L1794 ldr r3, [sp, #12] mov r9, #36 ldr r2, [sp, #12] @@ -10699,84 +10813,84 @@ FlashReadPages: str r3, [sp] add r3, sp, #40 bl LogAddr2PhyAddr - ldrb r2, [r5, #1616] @ zero_extendqisi2 ldr r3, [sp, #40] - mov r6, r0 + ldrb r2, [r5, #1616] @ zero_extendqisi2 cmp r3, r2 - bcc .L1682 + mov r6, r0 + bcc .L1701 mov r3, #-1 str r3, [r10, r9] - b .L1683 -.L1682: + b .L1702 +.L1701: add r3, r3, r5 ldrb r4, [r3, #1620] @ zero_extendqisi2 - ldr r3, .L1778+8 + ldr r3, .L1797+8 mov r0, r4 - ldrb r3, [r3, #4028] @ zero_extendqisi2 + ldrb r3, [r3, #4032] @ zero_extendqisi2 cmp r3, #0 it eq moveq r6, #0 bl NandcWaitFlashReady - ldr r3, .L1778+4 + ldr r3, .L1797+4 ldr r3, [r3, #1788] ldrb r1, [r3, #19] @ zero_extendqisi2 subs r3, r1, #1 cmp r3, #6 - bhi .L1685 + bhi .L1704 adds r2, r5, r4 cmp r1, #7 - ldrb r3, [r2, #1914] @ zero_extendqisi2 + ldrb r3, [r2, #1918] @ zero_extendqisi2 it eq - ldrbeq r3, [r2, #1922] @ zero_extendqisi2 - ldr r2, .L1778+4 + ldrbeq r3, [r2, #1926] @ zero_extendqisi2 + ldr r2, .L1797+4 add r2, r2, r4 - ldrb r2, [r2, #2756] @ zero_extendqisi2 + ldrb r2, [r2, #2760] @ zero_extendqisi2 cmp r2, r3 - beq .L1685 + beq .L1704 mov r0, r4 - ldrb r1, [r5, #1903] @ zero_extendqisi2 - ldr r2, .L1778+12 + ldrb r1, [r5, #1907] @ zero_extendqisi2 + ldr r2, .L1797+12 bl HynixSetRRPara -.L1685: +.L1704: mov r0, r4 and r3, fp, #-2147483648 str r3, [sp, #20] bl NandcFlashCs ldr r3, [sp, #16] cmp r3, #1 - beq .L1687 + beq .L1706 ldr r3, [sp, #20] - cbz r3, .L1688 -.L1687: - ldr r3, .L1778+4 + cbz r3, .L1707 +.L1706: + ldr r3, .L1797+4 ldrb r3, [r3, #76] @ zero_extendqisi2 - cbz r3, .L1688 + cbz r3, .L1707 mov r0, r4 bl flash_enter_slc_mode -.L1690: +.L1709: mov fp, #0 - b .L1689 -.L1688: + b .L1708 +.L1707: mov r0, r4 bl flash_exit_slc_mode - b .L1690 -.L1776: + b .L1709 +.L1795: cmp r4, #255 - beq .L1723 -.L1691: - cbz r6, .L1693 + beq .L1742 +.L1710: + cbz r6, .L1712 ldr r2, [r5, #4] mov r0, r4 add r2, r2, r1 bl FlashReadDpCmd -.L1694: +.L1713: mov r0, r4 bl NandcWaitFlashReady - cbz r6, .L1692 + cbz r6, .L1711 mov r0, r4 ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1692: +.L1711: ldr r3, [r7, #12] mov r0, r4 movs r1, #0 @@ -10786,27 +10900,27 @@ FlashReadPages: bl NandcXferData ldrb r3, [r5, #8] @ zero_extendqisi2 mov ip, r0 - cbz r3, .L1725 + cbz r3, .L1744 cmp r0, #-1 - bne .L1725 + bne .L1744 movs r6, #0 strb fp, [r5, #8] -.L1689: +.L1708: ldr r1, [sp, #44] adds r0, r1, #1 - bne .L1691 - b .L1776 -.L1693: + bne .L1710 + b .L1795 +.L1712: mov r0, r4 bl FlashReadCmd - b .L1694 -.L1723: + b .L1713 +.L1742: movs r6, #0 - b .L1692 -.L1725: + b .L1711 +.L1744: mov fp, ip - cbz r6, .L1696 - ldr r3, .L1778+4 + cbz r6, .L1715 + ldr r3, .L1797+4 mov r0, r4 str ip, [sp, #36] ldr r1, [r3, #4] @@ -10822,12 +10936,12 @@ FlashReadPages: ldr r2, [sp, #24] ldr r3, [r3, #8] bl NandcXferData - cmp r0, #-1 ldr ip, [sp, #36] + cmp r0, #-1 + mov r8, r0 it eq moveq r6, #0 - mov r8, r0 -.L1696: +.L1715: mov r0, r4 str ip, [sp, #36] bl NandcFlashDeCs @@ -10835,15 +10949,15 @@ FlashReadPages: ldrb r3, [sp, #32] @ zero_extendqisi2 cmp ip, #-1 strb r3, [r5, #8] - bne .L1703 - ldrb r3, [r5, #2761] @ zero_extendqisi2 - cbnz r3, .L1698 -.L1702: - ldr r3, .L1778+8 - ldr r6, [r3, #3992] - cbnz r6, .L1699 - b .L1777 -.L1698: + bne .L1722 + ldrb r3, [r5, #2772] @ zero_extendqisi2 + cbnz r3, .L1717 +.L1721: + ldr r3, .L1797+8 + ldr r6, [r3, #3996] + cbnz r6, .L1718 + b .L1796 +.L1717: ldr r3, [r5, #1828] mov r0, r4 ldr r1, [sp, #44] @@ -10855,17 +10969,17 @@ FlashReadPages: bl FlashDdrTunningRead cmp r0, #-1 mov fp, r0 - beq .L1701 + beq .L1720 ldrb r3, [r5, #1892] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1727 -.L1701: + bls .L1746 +.L1720: ubfx r0, r6, #8, #8 bl NandcSetDdrPara cmp fp, #-1 - beq .L1702 - b .L1727 -.L1699: + beq .L1721 + b .L1746 +.L1718: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] @@ -10873,18 +10987,18 @@ FlashReadPages: blx r6 cmp r0, #-1 mov fp, r0 - bne .L1704 + bne .L1723 ldr r3, [r5, #1788] ldrb r3, [r3, #19] @ zero_extendqisi2 subs r3, r3, #1 cmp r3, #6 - bhi .L1705 + bhi .L1724 mov r0, r4 - ldrb r1, [r5, #1903] @ zero_extendqisi2 - ldr r2, .L1778+12 + ldrb r1, [r5, #1907] @ zero_extendqisi2 + ldr r2, .L1797+12 movs r3, #0 bl HynixSetRRPara -.L1705: +.L1724: ldr r1, [sp, #44] mov r0, r4 ldr r2, [r7, #8] @@ -10893,141 +11007,141 @@ FlashReadPages: ldr r1, [r7, #4] ldrb r2, [r5, #1892] @ zero_extendqisi2 mov fp, r0 - ldr r0, .L1778+16 + ldr r0, .L1797+16 mov r3, fp bl printk cmp fp, #-1 - bne .L1704 + bne .L1723 ldrb r6, [r5, #76] @ zero_extendqisi2 - cbz r6, .L1706 + cbz r6, .L1725 ldr r3, [sp, #16] mov r0, r4 cmp r3, #1 - beq .L1707 + beq .L1726 ldr r3, [sp, #20] - cbz r3, .L1708 -.L1707: + cbz r3, .L1727 +.L1726: bl flash_enter_slc_mode - b .L1709 -.L1708: + b .L1728 +.L1727: bl flash_exit_slc_mode -.L1709: - ldr r3, .L1778+8 +.L1728: + ldr r3, .L1797+8 mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] - ldr r6, [r3, #3992] + ldr r6, [r3, #3996] ldr r3, [r7, #12] blx r6 movs r6, #0 mov fp, r0 - b .L1710 -.L1777: + b .L1729 +.L1796: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] ldr r3, [r7, #12] bl FlashReadRawPage mov fp, r0 - b .L1710 -.L1727: + b .L1729 +.L1746: movs r6, #0 -.L1703: +.L1722: ldrb r3, [r5, #1892] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp fp, r3, asr #2 - bls .L1712 - ldr r3, .L1778+8 - ldr r3, [r3, #3992] - cbz r3, .L1729 -.L1710: - cmp fp, #-1 - beq .L1706 - b .L1712 + bls .L1731 + ldr r3, .L1797+8 + ldr r3, [r3, #3996] + cbz r3, .L1748 .L1729: + cmp fp, #-1 + beq .L1725 + b .L1731 +.L1748: mov fp, #256 -.L1706: +.L1725: str fp, [r10, r9] - b .L1713 -.L1779: + b .L1732 +.L1798: .align 2 -.L1778: +.L1797: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+1906 - .word .LC99 -.L1704: + .word .LANCHOR0+1910 + .word .LC102 +.L1723: movs r6, #0 -.L1712: +.L1731: cmp fp, #256 - beq .L1706 + beq .L1725 movs r3, #0 str r3, [r10, r9] -.L1713: +.L1732: ldr r3, [r10, r9] adds r2, r3, #1 - bne .L1715 + bne .L1734 ldr r1, [r7, #4] - ldr r0, .L1780 + ldr r0, .L1799 ldrb r2, [r5, #1892] @ zero_extendqisi2 bl printk ldr r1, [r7, #12] - cbz r1, .L1715 + cbz r1, .L1734 movs r2, #4 - ldr r0, .L1780+4 + ldr r0, .L1799+4 mov r3, r2 bl rknand_print_hex -.L1715: - cbz r6, .L1717 +.L1734: + cbz r6, .L1736 ldrb r3, [r5, #1892] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r8, r3, asr #2 - bls .L1718 - ldr r3, .L1780+8 - ldr r3, [r3, #3992] + bls .L1737 + ldr r3, .L1799+8 + ldr r3, [r3, #3996] cmp r3, #0 it eq moveq r8, #256 -.L1718: +.L1737: add r9, r9, #36 cmp r8, #-1 str r8, [r10, r9] - beq .L1717 + beq .L1736 cmp r8, #256 itt ne movne r3, #0 strne r3, [r10, r9] -.L1717: +.L1736: ldr r3, [sp, #12] add r3, r3, r6 str r3, [sp, #12] ldr r3, [sp, #16] cmp r3, #1 - beq .L1719 + beq .L1738 ldr r3, [sp, #20] - cbz r3, .L1683 -.L1719: + cbz r3, .L1702 +.L1738: ldrb r3, [r5, #76] @ zero_extendqisi2 - cbz r3, .L1683 + cbz r3, .L1702 mov r0, r4 bl flash_exit_slc_mode -.L1683: +.L1702: ldr r3, [sp, #12] adds r3, r3, #1 str r3, [sp, #12] - b .L1680 -.L1775: + b .L1699 +.L1794: movs r0, #0 -.L1773: +.L1792: add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1781: +.L1800: .align 2 -.L1780: - .word .LC96 - .word .LC98 +.L1799: + .word .LC99 + .word .LC101 .word .LANCHOR2 .fnend .size FlashReadPages, .-FlashReadPages @@ -11043,36 +11157,36 @@ FlashLoadFactorBbt: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r1, #16 - ldr r7, .L1794 + ldr r7, .L1813 .pad #52 sub sp, sp, #52 - ldr r4, .L1794+4 + ldr r4, .L1813+4 movs r5, #0 mov fp, #-1 ldrh r3, [r7, #1878] - add r0, r4, #4032 + addw r0, r4, #4036 ldrh r6, [r7, #1876] mov r10, r5 mov r8, r7 mov r9, r4 smulbb r6, r6, r3 bl __memzero - ldr r3, [r4, #4016] - uxth r6, r6 + ldr r3, [r4, #4020] str r5, [sp, #20] str r3, [sp, #24] -.L1783: + uxth r6, r6 +.L1802: ldrb r3, [r8, #1616] @ zero_extendqisi2 uxtb r7, r5 cmp r3, r7 - bls .L1793 + bls .L1812 mul ip, r6, r7 subs r4, r6, #1 sub r3, r6, #12 uxth r4, r4 -.L1784: +.L1803: cmp r4, r3 - ble .L1786 + ble .L1805 add r2, ip, r4 movs r1, #1 add r0, sp, #12 @@ -11086,44 +11200,44 @@ FlashLoadFactorBbt: ldr ip, [sp] adds r2, r2, #1 ldr r3, [sp, #4] - beq .L1785 - ldr r2, [r9, #4016] + beq .L1804 + ldr r2, [r9, #4020] ldrh r1, [r2] movw r2, #61664 cmp r1, r2 - bne .L1785 + bne .L1804 mov r1, r7 - ldr r0, .L1794+8 + ldr r0, .L1813+8 mov r2, r4 add r10, r10, #1 bl printk - ldr r3, .L1794+4 + ldr r3, .L1813+4 uxth r10, r10 add r7, r3, r7, lsl #1 - strh r4, [r7, #4032] @ movhi - b .L1786 -.L1785: + strh r4, [r7, #4036] @ movhi + b .L1805 +.L1804: subs r4, r4, #1 uxth r4, r4 - b .L1784 -.L1786: + b .L1803 +.L1805: ldrb r3, [r8, #1616] @ zero_extendqisi2 adds r5, r5, #1 cmp r3, r10 it eq moveq fp, #0 - b .L1783 -.L1793: + b .L1802 +.L1812: mov r0, fp add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1795: +.L1814: .align 2 -.L1794: +.L1813: .word .LANCHOR0 .word .LANCHOR2 - .word .LC100 + .word .LC103 .fnend .size FlashLoadFactorBbt, .-FlashLoadFactorBbt .align 1 @@ -11139,20 +11253,20 @@ FlashProgSlc2KPages: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 sub sp, sp, #68 - ldr r8, .L1826+20 + ldr r8, .L1845+20 movs r7, #0 str r3, [sp, #12] mov r6, r1 - ldr r3, .L1826 + ldr r3, .L1845 mov r9, r2 mov r4, r0 mov r10, r0 mov fp, r8 ldrb r3, [r3, #265] @ zero_extendqisi2 str r3, [sp, #8] -.L1797: +.L1816: cmp r7, r6 - beq .L1825 + beq .L1844 subs r3, r6, r7 add r2, sp, #20 mov r0, r10 @@ -11161,14 +11275,14 @@ FlashProgSlc2KPages: str r3, [sp] add r3, sp, #24 bl LogAddr2PhyAddr - ldrb r2, [r8, #1616] @ zero_extendqisi2 ldr r3, [sp, #24] + ldrb r2, [r8, #1616] @ zero_extendqisi2 cmp r3, r2 - bcc .L1798 + bcc .L1817 mov r3, #-1 str r3, [r10] - b .L1799 -.L1798: + b .L1818 +.L1817: add r3, r3, r8 ldrb r5, [r3, #1620] @ zero_extendqisi2 mov r0, r5 @@ -11179,43 +11293,43 @@ FlashProgSlc2KPages: ldr r1, [sp, #20] bl FlashProgFirstCmd ldr r3, [r10, #12] + ldr r2, [sp, #8] movs r1, #1 mov r0, r5 - ldr r2, [sp, #8] str r3, [sp] ldr r3, [r10, #8] bl NandcXferData - mov r0, r5 ldr r1, [sp, #20] + mov r0, r5 bl FlashProgSecondCmd mov r0, r5 bl NandcWaitFlashReady - mov r0, r5 ldr r1, [sp, #20] + mov r0, r5 bl FlashReadStatus ldr r3, [sp, #20] sbfx r0, r0, #0, #1 str r0, [r10] - mov r0, r5 ldr r1, [r8, #4] + mov r0, r5 add r1, r1, r3 bl FlashProgFirstCmd ldr r3, [r10, #8] - cbz r3, .L1800 + cbz r3, .L1819 add r3, r3, #2048 -.L1800: +.L1819: ldr r2, [r10, #12] - cbz r2, .L1801 + cbz r2, .L1820 adds r2, r2, #8 -.L1801: +.L1820: str r2, [sp] movs r1, #1 ldr r2, [sp, #8] mov r0, r5 bl NandcXferData + ldr r3, [sp, #20] ldr r1, [fp, #4] mov r0, r5 - ldr r3, [sp, #20] add r1, r1, r3 bl FlashProgSecondCmd mov r0, r5 @@ -11229,28 +11343,28 @@ FlashProgSlc2KPages: movmi r3, #-1 strmi r3, [r10] bl NandcFlashDeCs -.L1799: +.L1818: adds r7, r7, #1 add r10, r10, #36 - b .L1797 -.L1825: + b .L1816 +.L1844: ldr r3, [sp, #12] cmp r3, #0 - beq .L1824 - ldr r8, .L1826+24 + beq .L1843 + ldr r8, .L1845+24 mov r10, #0 mov fp, r8 -.L1804: +.L1823: cmp r10, r6 - beq .L1824 + beq .L1843 ldr r3, [r4] adds r3, r3, #1 - bne .L1805 + bne .L1824 ldr r1, [r4, #4] - ldr r0, .L1826+4 + ldr r0, .L1845+4 bl printk - b .L1806 -.L1805: + b .L1825 +.L1824: rsb r3, r10, r6 mov r1, r9 add r2, sp, #20 @@ -11260,13 +11374,13 @@ FlashProgSlc2KPages: add r3, sp, #24 mov r7, r4 bl LogAddr2PhyAddr - ldr r2, [r8, #4020] + ldr r2, [r8, #4024] movs r3, #0 + add r5, sp, #28 str r3, [r2] - ldr r2, [r8, #4024] + ldr r2, [r8, #4028] str r3, [r2] ldmia r7!, {r0, r1, r2, r3} - add r5, sp, #28 stmia r5!, {r0, r1, r2, r3} ldmia r7!, {r0, r1, r2, r3} stmia r5!, {r0, r1, r2, r3} @@ -11275,61 +11389,61 @@ FlashProgSlc2KPages: movs r1, #1 mov r2, r9 str r3, [r5] - ldr r3, [r8, #4020] - str r3, [sp, #36] ldr r3, [r8, #4024] + str r3, [sp, #36] + ldr r3, [r8, #4028] str r3, [sp, #40] bl FlashReadPages ldr r5, [sp, #28] adds r3, r5, #1 - bne .L1807 - ldr r0, .L1826+8 + bne .L1826 + ldr r0, .L1845+8 ldr r1, [r4, #4] bl printk str r5, [r4] -.L1807: +.L1826: ldr r3, [r4, #12] - cbz r3, .L1808 + cbz r3, .L1827 ldr r2, [r3] - ldr r3, [fp, #4024] + ldr r3, [fp, #4028] ldr r3, [r3] cmp r2, r3 - beq .L1808 - ldr r0, .L1826+12 + beq .L1827 + ldr r0, .L1845+12 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L1808: +.L1827: ldr r3, [r4, #8] - cbz r3, .L1806 + cbz r3, .L1825 ldr r2, [r3] - ldr r3, [fp, #4020] + ldr r3, [fp, #4024] ldr r3, [r3] cmp r2, r3 - beq .L1806 - ldr r0, .L1826+16 + beq .L1825 + ldr r0, .L1845+16 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L1806: +.L1825: add r10, r10, #1 adds r4, r4, #36 - b .L1804 -.L1824: + b .L1823 +.L1843: movs r0, #0 add sp, sp, #68 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1827: +.L1846: .align 2 -.L1826: +.L1845: .word .LANCHOR1 - .word .LC101 - .word .LC102 - .word .LC103 .word .LC104 + .word .LC105 + .word .LC106 + .word .LC107 .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -11346,60 +11460,60 @@ FtlLoadFactoryBbt: push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r6, #0 - ldr r5, .L1839 - ldr r7, .L1839+4 - ldr r3, [r5, #756] - subw r8, r7, #2978 - ldr r9, [r5, #1796] + ldr r5, .L1858 + ldr r7, .L1858+4 + ldr r3, [r5, #1776] + subw r8, r7, #2982 + ldr r9, [r5, #1800] mov r10, r8 - str r3, [r5, #4056] - str r9, [r5, #4060] -.L1829: - ldrh r3, [r8, #2850] + str r3, [r5, #4060] + str r9, [r5, #4064] +.L1848: + ldrh r3, [r8, #2862] cmp r6, r3 - bcs .L1838 - ldrh r4, [r8, #2894] + bcs .L1857 + ldrh r4, [r8, #2906] movw fp, #61664 movw r3, #65535 strh r3, [r7, #2]! @ movhi subs r4, r4, #1 uxth r4, r4 -.L1830: - ldrh r3, [r10, #2894] +.L1849: + ldrh r3, [r10, #2906] sub r2, r3, #16 cmp r4, r2 - ble .L1832 + ble .L1851 mla r3, r3, r6, r4 movs r1, #1 - ldr r0, .L1839+8 + ldr r0, .L1858+8 mov r2, r1 lsls r3, r3, #10 - str r3, [r5, #4052] + str r3, [r5, #4056] bl FlashReadPages - ldr r3, [r5, #4048] + ldr r3, [r5, #4052] adds r3, r3, #1 - beq .L1831 + beq .L1850 ldrh r3, [r9] cmp r3, fp - bne .L1831 + bne .L1850 strh r4, [r7] @ movhi - b .L1832 -.L1831: + b .L1851 +.L1850: subs r4, r4, #1 uxth r4, r4 - b .L1830 -.L1832: + b .L1849 +.L1851: adds r6, r6, #1 - b .L1829 -.L1838: + b .L1848 +.L1857: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1840: +.L1859: .align 2 -.L1839: +.L1858: .word .LANCHOR2 - .word .LANCHOR0+2978 - .word .LANCHOR2+4048 + .word .LANCHOR0+2982 + .word .LANCHOR2+4052 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 1 @@ -11411,17 +11525,17 @@ FtlGetLastWrittenPage: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1852 + ldr r3, .L1871 cmp r1, #1 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} .pad #104 sub sp, sp, #104 it eq - ldrheq r4, [r3, #2900] + ldrheq r4, [r3, #2912] mov r8, r1 it ne - ldrhne r4, [r3, #2898] + ldrhne r4, [r3, #2910] lsls r6, r0, #10 add r3, sp, #40 add r0, sp, #4 @@ -11438,12 +11552,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] adds r3, r3, #1 - bne .L1844 -.L1845: + bne .L1863 +.L1864: sxth r3, r7 sxth r4, r5 cmp r3, r4 - bgt .L1844 + bgt .L1863 add r4, r4, r3 add r0, sp, #4 movs r1, #1 @@ -11456,28 +11570,28 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] adds r3, r3, #1 - bne .L1846 + bne .L1865 ldr r3, [sp, #44] adds r3, r3, #1 - bne .L1846 + bne .L1865 ldr r3, [sp, #4] adds r3, r3, #1 - beq .L1846 + beq .L1865 subs r4, r4, #1 uxth r5, r4 - b .L1845 -.L1846: + b .L1864 +.L1865: adds r3, r4, #1 uxth r7, r3 - b .L1845 -.L1844: + b .L1864 +.L1863: sxth r0, r5 add sp, sp, #104 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1853: +.L1872: .align 2 -.L1852: +.L1871: .word .LANCHOR0 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage @@ -11492,167 +11606,167 @@ FtlLoadBbt: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - movs r3, #0 - ldr r4, .L1883 - ldr r5, .L1883+4 - ldr r7, [r4, #1796] + ldr r4, .L1902 + ldr r7, .L1902+4 + ldr r3, [r4, #1776] mov r8, r4 - str r3, [r4, #4056] - str r7, [r4, #4060] + ldr r6, [r4, #1800] + str r3, [r4, #4060] + str r6, [r4, #4064] bl FtlBbtMemInit - ldrh r6, [r5, #2894] - subs r6, r6, #1 - uxth r6, r6 -.L1855: - ldrh r3, [r5, #2894] + ldrh r5, [r7, #2906] + subs r5, r5, #1 + uxth r5, r5 +.L1874: + ldrh r3, [r7, #2906] subs r3, r3, #48 - cmp r6, r3 - ble .L1858 + cmp r5, r3 + ble .L1877 movs r1, #1 - ldr r0, .L1883+8 - lsls r3, r6, #10 - str r3, [r4, #4052] + ldr r0, .L1902+8 + lsls r3, r5, #10 + str r3, [r4, #4056] mov r2, r1 bl FlashReadPages - ldr r3, [r4, #4048] + ldr r3, [r4, #4052] adds r3, r3, #1 - bne .L1856 + bne .L1875 movs r1, #1 - ldr r3, [r8, #4052] - ldr r0, .L1883+8 + ldr r3, [r8, #4056] + ldr r0, .L1902+8 mov r2, r1 adds r3, r3, #1 - str r3, [r8, #4052] + str r3, [r8, #4056] bl FlashReadPages -.L1856: - ldr r3, [r4, #4048] +.L1875: + ldr r3, [r4, #4052] adds r3, r3, #1 - beq .L1857 - ldrh r2, [r7] + beq .L1876 + ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L1857 - ldr r3, [r7, #4] - strh r6, [r5, #2968] @ movhi - str r3, [r5, #2976] - ldrh r3, [r7, #8] - strh r3, [r5, #2972] @ movhi - b .L1858 -.L1857: - subs r6, r6, #1 - uxth r6, r6 - b .L1855 -.L1858: - ldrh r3, [r5, #2968] + bne .L1876 + ldr r3, [r6, #4] + strh r5, [r7, #2972] @ movhi + str r3, [r7, #2980] + ldrh r3, [r6, #8] + strh r3, [r7, #2976] @ movhi + b .L1877 +.L1876: + subs r5, r5, #1 + uxth r5, r5 + b .L1874 +.L1877: + ldrh r3, [r7, #2972] movw r2, #65535 - ldr r6, .L1883+4 + ldr r5, .L1902+4 cmp r3, r2 - beq .L1872 - ldrh r3, [r6, #2972] + beq .L1891 + ldrh r3, [r5, #2976] cmp r3, r2 - beq .L1862 + beq .L1881 movs r1, #1 - ldr r0, .L1883+8 + ldr r0, .L1902+8 lsls r3, r3, #10 - str r3, [r4, #4052] + str r3, [r4, #4056] mov r2, r1 bl FlashReadPages - ldr r3, [r4, #4048] + ldr r3, [r4, #4052] adds r3, r3, #1 - beq .L1862 - ldrh r2, [r7] + beq .L1881 + ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L1862 - ldr r3, [r7, #4] - ldr r2, [r6, #2976] + bne .L1881 + ldr r3, [r6, #4] + ldr r2, [r5, #2980] cmp r3, r2 itttt hi - strhi r3, [r6, #2976] - ldrhhi r2, [r6, #2972] - ldrhhi r3, [r7, #8] - strhhi r2, [r6, #2968] @ movhi + strhi r3, [r5, #2980] + ldrhhi r2, [r5, #2976] + ldrhhi r3, [r6, #8] + strhhi r2, [r5, #2972] @ movhi it hi - strhhi r3, [r6, #2972] @ movhi -.L1862: - ldrh r0, [r5, #2968] + strhhi r3, [r5, #2976] @ movhi +.L1881: + ldrh r0, [r7, #2972] movs r1, #1 bl FtlGetLastWrittenPage movw r8, #61649 - uxth r6, r0 + uxth r5, r0 adds r0, r0, #1 - strh r0, [r5, #2970] @ movhi -.L1864: - sxth r3, r6 + strh r0, [r7, #2974] @ movhi +.L1883: + sxth r3, r5 cmp r3, #0 - blt .L1869 - ldrh r2, [r5, #2968] + blt .L1888 + ldrh r2, [r7, #2972] movs r1, #1 - ldr r0, .L1883+8 + ldr r0, .L1902+8 orr r3, r3, r2, lsl #10 - str r3, [r4, #4052] - ldr r3, [r4, #756] - mov r2, r1 str r3, [r4, #4056] + ldr r3, [r4, #1776] + mov r2, r1 + str r3, [r4, #4060] bl FlashReadPages - ldr r3, [r4, #4048] + ldr r3, [r4, #4052] adds r3, r3, #1 - beq .L1865 - ldrh r3, [r7] + beq .L1884 + ldrh r3, [r6] cmp r3, r8 - bne .L1865 -.L1869: - ldrh r2, [r7, #10] - ldrh r0, [r7, #12] - ldr r3, .L1883+4 - strh r2, [r5, #2974] @ movhi + bne .L1884 +.L1888: + ldrh r2, [r6, #10] + ldrh r0, [r6, #12] + ldr r3, .L1902+4 + strh r2, [r7, #2978] @ movhi movw r2, #65535 cmp r0, r2 - bne .L1866 - b .L1867 -.L1865: - subs r6, r6, #1 - uxth r6, r6 - b .L1864 -.L1866: - ldr r2, [r3, #2824] + bne .L1885 + b .L1886 +.L1884: + subs r5, r5, #1 + uxth r5, r5 + b .L1883 +.L1885: + ldr r2, [r3, #2836] cmp r0, r2 - beq .L1867 - ldrh r3, [r3, #2838] + beq .L1886 + ldrh r3, [r3, #2850] lsrs r3, r3, #2 cmp r2, r3 - bcs .L1867 + bcs .L1886 cmp r0, r3 - bcs .L1867 + bcs .L1886 bl FtlSysBlkNumInit -.L1867: - ldr r7, .L1883+12 - movs r6, #0 -.L1870: - ldrh r3, [r5, #2850] - cmp r6, r3 - bcs .L1882 - ldrh r2, [r4, #1860] - ldr r1, [r4, #4056] - ldr r0, [r7, #4]! +.L1886: + ldr r6, .L1902+12 + movs r5, #0 +.L1889: + ldrh r3, [r7, #2862] + cmp r5, r3 + bcs .L1901 + ldrh r2, [r4, #1864] + ldr r1, [r4, #4060] + ldr r0, [r6, #4]! lsls r2, r2, #2 - mla r1, r6, r2, r1 + mla r1, r5, r2, r1 bl ftl_memcpy - adds r6, r6, #1 - b .L1870 -.L1882: + adds r5, r5, #1 + b .L1889 +.L1901: movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L1872: +.L1891: mov r0, #-1 pop {r4, r5, r6, r7, r8, pc} -.L1884: +.L1903: .align 2 -.L1883: +.L1902: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+4048 - .word .LANCHOR0+2992 + .word .LANCHOR2+4052 + .word .LANCHOR0+2996 .fnend .size FtlLoadBbt, .-FtlLoadBbt .align 1 @@ -11667,64 +11781,64 @@ FtlScanSysBlk: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r6, #0 - ldr r5, .L1970 + ldr r5, .L1989 .pad #36 sub sp, sp, #36 - ldr r4, .L1970+4 + ldr r4, .L1989+4 mov r1, r6 - ldr r2, [r5, #2928] - ldr r0, [r4, #1852] + ldr r2, [r5, #2940] + ldr r0, [r4, #1856] mov r9, r4 - strh r6, [r5, #2946] @ movhi + strh r6, [r5, #2954] @ movhi lsls r2, r2, #2 - strh r6, [r4, #1908] @ movhi + strh r6, [r4, #1912] @ movhi bl ftl_memset - ldr r2, [r5, #2928] + ldr r2, [r5, #2940] mov r1, r6 - ldr r0, [r4, #1824] + ldr r0, [r4, #1828] lsls r2, r2, #1 bl ftl_memset - ldrh r2, [r5, #2920] + ldrh r2, [r5, #2932] mov r1, r6 - ldr r0, [r4, #1836] + ldr r0, [r4, #1840] lsls r2, r2, #2 bl ftl_memset - ldrh r2, [r5, #2920] - ldr r0, [r5, #2948] + ldrh r2, [r5, #2932] + ldr r0, [r5, #2956] mov r1, r6 lsls r2, r2, #1 bl ftl_memset - add r0, r4, #1064 + addw r0, r4, #1060 movs r1, #255 movs r2, #12 bl memset - ldrh r3, [r5, #2836] + ldrh r3, [r5, #2848] str r5, [sp, #12] mov r5, r4 str r3, [sp, #4] -.L1886: - ldr r6, .L1970 +.L1905: + ldr r6, .L1989 ldr r2, [sp, #4] - ldrh r3, [r6, #2838] + ldrh r3, [r6, #2850] mov r0, r6 cmp r3, r2 - bls .L1928 - ldr r1, [r4, #1668] + bls .L1947 + ldr r1, [r4, #1664] mov r10, #36 - ldrh r8, [r6, #2828] + ldrh r8, [r6, #2840] movs r7, #0 ldr r2, [r4, #1764] str r1, [sp, #8] - ldr r3, [r4, #1664] - ldrh r1, [r6, #2910] + ldr r3, [r4, #1660] + ldrh r1, [r6, #2922] str r7, [sp] str r1, [sp, #16] - addw r1, r6, #2856 + addw r1, r6, #2868 str r1, [sp, #20] -.L1929: +.L1948: uxth r1, r7 cmp r1, r8 - bcs .L1965 + bcs .L1984 str r3, [sp, #28] ldr r3, [sp, #20] ldr r1, [sp, #4] @@ -11735,7 +11849,7 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr r2, [sp, #24] ldr r3, [sp, #28] - cbnz r0, .L1887 + cbnz r0, .L1906 ldr r1, [sp] ldr r6, [sp] mla r0, r10, r1, r2 @@ -11754,25 +11868,25 @@ FtlScanSysBlk: adds r1, r1, #1 uxth r1, r1 str r1, [sp] -.L1887: +.L1906: adds r7, r7, #1 - b .L1929 -.L1965: + b .L1948 +.L1984: ldr r3, [sp] cmp r3, #0 - beq .L1891 + beq .L1910 + ldr r8, .L1989 mov r1, r3 ldr r0, [r4, #1764] movs r2, #1 - ldr r8, .L1970 bl FlashReadPages movs r3, #0 str r3, [sp, #8] -.L1892: +.L1911: ldrh r3, [sp, #8] ldr r2, [sp] cmp r3, r2 - bcs .L1891 + bcs .L1910 ldr r3, [sp, #8] mov r10, #36 mul r10, r10, r3 @@ -11783,10 +11897,10 @@ FtlScanSysBlk: adds r3, r3, #1 ldr r7, [r2, #12] ubfx r6, r6, #10, #16 - bne .L1894 + bne .L1913 mov fp, #16 movw r3, #65535 -.L1893: +.L1912: ldr r0, [r4, #1764] movs r1, #1 str r3, [sp, #16] @@ -11799,69 +11913,69 @@ FtlScanSysBlk: ldrh r2, [r7] ldr r3, [sp, #16] cmp r2, r3 - bne .L1895 + bne .L1914 ldr r3, [r9, #1764] mov r2, #-1 str r2, [r3, r10] - b .L1894 -.L1895: + b .L1913 +.L1914: ldr r2, [r5, #1764] ldr r2, [r2, r10] adds r2, r2, #1 - bne .L1894 + bne .L1913 add fp, fp, #-1 uxth fp, fp cmp fp, #0 - bne .L1893 -.L1894: + bne .L1912 +.L1913: ldr r3, [r5, #1764] ldr r3, [r3, r10] adds r3, r3, #1 - beq .L1897 - ldr r2, [r5, #984] + beq .L1916 + ldr r2, [r5, #1028] ldr r3, [r7, #4] adds r1, r2, #1 - beq .L1898 + beq .L1917 cmp r2, r3 - bhi .L1899 -.L1898: + bhi .L1918 +.L1917: adds r2, r3, #1 itt ne addne r2, r3, #1 - strne r2, [r9, #984] -.L1899: + strne r2, [r9, #1028] +.L1918: ldrh r2, [r7] movw r1, #61604 cmp r2, r1 - beq .L1901 - bhi .L1902 + beq .L1920 + bhi .L1921 movw r3, #61574 cmp r2, r3 - bne .L1900 + bne .L1919 ldr r3, [sp, #12] ldr r2, [sp, #12] - ldrh r10, [r3, #2920] - ldrh r0, [r2, #2946] - ldr r2, [r9, #1836] + ldrh r10, [r3, #2932] + ldrh r0, [r2, #2954] + ldr r2, [r9, #1840] add lr, r10, #-1 uxth r3, lr rsb lr, r0, lr str r2, [sp, #16] - b .L1915 -.L1902: + b .L1934 +.L1921: movw r3, #61634 cmp r2, r3 - beq .L1904 + beq .L1923 movw r3, #65535 cmp r2, r3 - bne .L1900 + bne .L1919 mov r0, r6 - b .L1964 -.L1904: + b .L1983 +.L1923: ldr r3, [sp, #12] - ldrh r0, [r4, #1908] - ldr r2, [r4, #1852] - ldr r1, [r3, #2928] + ldrh r0, [r4, #1912] + ldr r2, [r4, #1856] + ldr r1, [r3, #2940] str r2, [sp, #16] uxth lr, r1 add r3, lr, #-1 @@ -11869,279 +11983,279 @@ FtlScanSysBlk: add lr, lr, #-1 uxth r3, r3 sxth lr, lr -.L1906: +.L1925: sxth ip, r3 cmp ip, lr - ble .L1966 + ble .L1985 ldr r2, [r7, #4] lsl fp, ip, #2 mov r10, r2 ldr r2, [sp, #16] ldr r2, [r2, ip, lsl #2] cmp r10, r2 - bls .L1907 + bls .L1926 ldr r2, [sp, #16] ldr r2, [r2] - cbnz r2, .L1908 + cbnz r2, .L1927 cmp r0, r1 itt ne addne r0, r0, #1 - strhne r0, [r9, #1908] @ movhi -.L1908: + strhne r0, [r9, #1912] @ movhi +.L1927: movs r1, #0 uxth lr, r3 -.L1909: +.L1928: uxth r2, r1 cmp r2, lr - bcs .L1967 - ldr r0, [r5, #1852] + bcs .L1986 + ldr r0, [r5, #1856] sxth r2, r2 adds r1, r1, #1 add r10, r0, r2, lsl #2 ldr r10, [r10, #4] str r10, [r0, r2, lsl #2] - ldr r0, [r5, #1824] + ldr r0, [r5, #1828] add r10, r0, r2, lsl #1 ldrh r10, [r10, #2] strh r10, [r0, r2, lsl #1] @ movhi - b .L1909 -.L1967: + b .L1928 +.L1986: ldr r1, [r7, #4] - ldr r2, [r4, #1852] + ldr r2, [r4, #1856] str r1, [r2, fp] sxth r1, r3 - ldr r2, [r4, #1824] + ldr r2, [r4, #1828] cmp r1, #0 strh r6, [r2, ip, lsl #1] @ movhi - bge .L1911 - b .L1900 -.L1907: + bge .L1930 + b .L1919 +.L1926: subs r3, r3, #1 uxth r3, r3 - b .L1906 -.L1966: + b .L1925 +.L1985: cmp ip, #0 - bge .L1942 - b .L1900 -.L1911: - ldrh r0, [r5, #1908] - ldr r2, [r8, #2928] + bge .L1961 + b .L1919 +.L1930: + ldrh r0, [r5, #1912] + ldr r2, [r8, #2940] subs r2, r2, r0 subs r2, r2, #1 sxth r2, r2 cmp r1, r2 - bgt .L1900 -.L1942: - ldr r2, [r4, #1852] + bgt .L1919 +.L1961: + ldr r2, [r4, #1856] sxth r3, r3 ldr r1, [r7, #4] adds r0, r0, #1 - strh r0, [r4, #1908] @ movhi + strh r0, [r4, #1912] @ movhi str r1, [r2, r3, lsl #2] - ldr r2, [r4, #1824] - b .L1962 -.L1921: + ldr r2, [r4, #1828] + b .L1981 +.L1940: ldr r1, [sp, #16] lsl fp, ip, #2 ldr r2, [r7, #4] ldr r1, [r1, ip, lsl #2] cmp r2, r1 - bhi .L1968 + bhi .L1987 subs r3, r3, #1 uxth r3, r3 -.L1915: +.L1934: sxth ip, r3 cmp ip, lr - bgt .L1921 - b .L1920 -.L1971: + bgt .L1940 + b .L1939 +.L1990: .align 2 -.L1970: +.L1989: .word .LANCHOR0 .word .LANCHOR2 -.L1968: +.L1987: ldr r2, [sp, #16] ldr r2, [r2] - cbnz r2, .L1917 + cbnz r2, .L1936 cmp r0, r10 itt ne addne r0, r0, #1 - strhne r0, [r8, #2946] @ movhi -.L1917: + strhne r0, [r8, #2954] @ movhi +.L1936: movs r1, #0 uxth lr, r3 -.L1918: +.L1937: uxth r2, r1 cmp r2, lr - bcs .L1969 - ldr r0, [r4, #1836] + bcs .L1988 + ldr r0, [r4, #1840] sxth r2, r2 adds r1, r1, #1 add r10, r0, r2, lsl #2 ldr r10, [r10, #4] str r10, [r0, r2, lsl #2] - ldr r0, [r8, #2948] + ldr r0, [r8, #2956] add r10, r0, r2, lsl #1 ldrh r10, [r10, #2] strh r10, [r0, r2, lsl #1] @ movhi - b .L1918 -.L1969: - ldr r2, [r5, #1836] + b .L1937 +.L1988: + ldr r2, [r5, #1840] ldr r1, [r7, #4] str r1, [r2, fp] - ldr r2, .L1972 - ldr r2, [r2, #2948] + ldr r2, .L1991 + ldr r2, [r2, #2956] strh r6, [r2, ip, lsl #1] @ movhi -.L1920: +.L1939: sxth r3, r3 cmp r3, #0 - blt .L1900 - ldrh r2, [r8, #2920] - ldrh r1, [r8, #2946] + blt .L1919 + ldrh r2, [r8, #2932] + ldrh r1, [r8, #2954] subs r2, r2, #1 subs r2, r2, r1 sxth r2, r2 cmp r3, r2 - bgt .L1900 + bgt .L1919 adds r1, r1, #1 - ldr r2, [r9, #1836] - strh r1, [r8, #2946] @ movhi + ldr r2, [r9, #1840] + strh r1, [r8, #2954] @ movhi ldr r1, [r7, #4] str r1, [r2, r3, lsl #2] - ldr r2, [r8, #2948] -.L1962: + ldr r2, [r8, #2956] +.L1981: strh r6, [r2, r3, lsl #1] @ movhi - b .L1900 -.L1901: - ldrh r1, [r9, #1064] + b .L1919 +.L1920: + ldrh r1, [r9, #1060] movw r2, #65535 cmp r1, r2 - bne .L1922 - strh r6, [r5, #1064] @ movhi - b .L1963 -.L1922: - ldrh r0, [r5, #1068] + bne .L1941 + strh r6, [r5, #1060] @ movhi + b .L1982 +.L1941: + ldrh r0, [r5, #1064] cmp r0, r2 - beq .L1923 + beq .L1942 movs r1, #1 bl FtlFreeSysBlkQueueIn -.L1923: - ldr r2, [r9, #1072] +.L1942: + ldr r2, [r9, #1068] ldr r3, [r7, #4] cmp r2, r3 - bcs .L1924 - ldrh r3, [r5, #1064] - strh r6, [r5, #1064] @ movhi - strh r3, [r5, #1068] @ movhi + bcs .L1943 + ldrh r3, [r5, #1060] + strh r6, [r5, #1060] @ movhi + strh r3, [r5, #1064] @ movhi ldr r3, [r7, #4] -.L1963: - str r3, [r5, #1072] - b .L1900 -.L1924: - strh r6, [r5, #1068] @ movhi - b .L1900 -.L1897: +.L1982: + str r3, [r5, #1068] + b .L1919 +.L1943: + strh r6, [r5, #1064] @ movhi + b .L1919 +.L1916: ldrb r1, [r8, #76] @ zero_extendqisi2 mov r0, r6 - cbz r1, .L1925 -.L1964: + cbz r1, .L1944 +.L1983: movs r1, #0 -.L1925: +.L1944: bl FtlFreeSysBlkQueueIn -.L1900: +.L1919: ldr r3, [sp, #8] adds r3, r3, #1 str r3, [sp, #8] - b .L1892 -.L1891: + b .L1911 +.L1910: ldr r6, [sp, #4] adds r6, r6, #1 uxth r3, r6 str r3, [sp, #4] - b .L1886 -.L1928: - ldr r3, .L1972+4 - ldr r5, [r3, #1824] + b .L1905 +.L1947: + ldr r3, .L1991+4 + ldr r5, [r3, #1828] ldrh r2, [r5] - cbz r2, .L1930 -.L1933: - ldr r5, [r0, #2948] - ldr r3, .L1972 + cbz r2, .L1949 +.L1952: + ldr r5, [r0, #2956] + ldr r3, .L1991 ldrh r2, [r5] - cbz r2, .L1931 - b .L1954 -.L1930: - ldrh r3, [r3, #1908] + cbz r2, .L1950 + b .L1973 +.L1949: + ldrh r3, [r3, #1912] cmp r3, #0 - beq .L1933 - ldr r6, [r6, #2928] -.L1934: + beq .L1952 + ldr r6, [r6, #2940] +.L1953: uxth r3, r2 sxth r1, r3 cmp r1, r6 - bcs .L1933 + bcs .L1952 ldrh r7, [r5, r1, lsl #1] adds r2, r2, #1 cmp r7, #0 - beq .L1934 + beq .L1953 mov lr, #0 -.L1935: - ldr r5, [r0, #2928] +.L1954: + ldr r5, [r0, #2940] sxth r2, r3 cmp r2, r5 - bcs .L1933 - ldr r5, [r4, #1824] + bcs .L1952 + ldr r5, [r4, #1828] subs r6, r2, r1 adds r3, r3, #1 ldrh r7, [r5, r2, lsl #1] uxth r3, r3 strh r7, [r5, r6, lsl #1] @ movhi - ldr r5, [r4, #1852] + ldr r5, [r4, #1856] ldr r7, [r5, r2, lsl #2] str r7, [r5, r6, lsl #2] - ldr r5, [r4, #1824] + ldr r5, [r4, #1828] strh lr, [r5, r2, lsl #1] @ movhi - b .L1935 -.L1931: - ldrh r1, [r3, #2946] - cbz r1, .L1954 - ldrh r6, [r3, #2920] -.L1938: + b .L1954 +.L1950: + ldrh r1, [r3, #2954] + cbz r1, .L1973 + ldrh r6, [r3, #2932] +.L1957: uxth r3, r2 sxth r1, r3 cmp r1, r6 - bge .L1954 + bge .L1973 ldrh r7, [r5, r1, lsl #1] adds r2, r2, #1 cmp r7, #0 - beq .L1938 - ldr r5, .L1972 + beq .L1957 + ldr r5, .L1991 mov ip, #0 -.L1939: - ldrh r6, [r0, #2920] +.L1958: + ldrh r6, [r0, #2932] sxth r2, r3 cmp r2, r6 - bge .L1954 - ldr r6, [r5, #2948] + bge .L1973 + ldr r6, [r5, #2956] rsb lr, r1, r2 adds r3, r3, #1 ldrh r7, [r6, r2, lsl #1] uxth r3, r3 strh r7, [r6, lr, lsl #1] @ movhi - ldr r6, [r4, #1836] + ldr r6, [r4, #1840] ldr r7, [r6, r2, lsl #2] str r7, [r6, lr, lsl #2] - ldr r6, [r5, #2948] + ldr r6, [r5, #2956] strh ip, [r6, r2, lsl #1] @ movhi - b .L1939 -.L1954: + b .L1958 +.L1973: movs r0, #0 add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1973: +.L1992: .align 2 -.L1972: +.L1991: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -12158,215 +12272,215 @@ FtlLoadSysInfo: push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} movs r1, #0 - ldr r6, .L1993 - ldr r5, .L1993+4 - ldrh r2, [r6, #2836] - ldr r3, [r5, #1796] - ldr r0, [r5, #768] + ldr r6, .L2012 + ldr r5, .L2012+4 + ldrh r2, [r6, #2848] + ldr r3, [r5, #1800] + ldr r0, [r5, #816] lsls r2, r2, #1 - str r1, [r5, #4056] - str r3, [r5, #4060] + str r1, [r5, #4060] + str r3, [r5, #4064] bl ftl_memset - ldrh r0, [r5, #1064] + ldrh r0, [r5, #1060] movw r2, #65535 cmp r0, r2 - bne .L1975 -.L1983: + bne .L1994 +.L2002: mov r0, #-1 pop {r4, r5, r6, r7, r8, pc} -.L1975: +.L1994: movs r1, #1 - ldr r8, .L1993+12 + ldr r8, .L2012+12 bl FtlGetLastWrittenPage mov r7, r5 uxth r4, r0 adds r0, r0, #1 - strh r0, [r5, #1066] @ movhi -.L1977: + strh r0, [r5, #1062] @ movhi +.L1996: sxth r3, r4 cmp r3, #0 - blt .L1982 - ldrh r2, [r5, #1064] + blt .L2001 + ldrh r2, [r5, #1060] movs r1, #1 - ldr r0, .L1993+8 + ldr r0, .L2012+8 orr r3, r3, r2, lsl #10 - str r3, [r5, #4052] - ldr r3, [r5, #756] - mov r2, r1 str r3, [r5, #4056] + ldr r3, [r5, #1776] + mov r2, r1 + str r3, [r5, #4060] bl FlashReadPages - ldr r3, [r5, #4048] + ldr r3, [r5, #4052] adds r3, r3, #1 - beq .L1978 - ldr r3, [r7, #756] + beq .L1997 + ldr r3, [r7, #1776] ldr r3, [r3] cmp r3, r8 - bne .L1978 - ldr r3, [r7, #1796] + bne .L1997 + ldr r3, [r7, #1800] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - bne .L1978 -.L1982: - ldr r4, .L1993+4 + bne .L1997 +.L2001: + ldr r4, .L2012+4 movs r2, #48 - ldr r1, [r5, #4056] - add r0, r4, #1012 - ldr r7, .L1993 + ldr r1, [r5, #4060] + add r0, r4, #760 + ldr r7, .L2012 bl ftl_memcpy - ldrh r2, [r6, #2836] - ldr r1, [r5, #4056] - ldr r0, [r5, #768] + ldrh r2, [r6, #2848] + ldr r1, [r5, #4060] + ldr r0, [r5, #816] adds r1, r1, #48 lsls r2, r2, #1 bl ftl_memcpy - ldrh r2, [r6, #2836] - ldr r3, [r5, #4056] + ldrh r2, [r6, #2848] + ldr r3, [r5, #4060] add r1, r2, #24 - ldr r0, [r5, #944] + ldr r0, [r5, #992] ubfx r1, r1, #1, #30 lsrs r2, r2, #3 adds r2, r2, #4 add r1, r3, r1, lsl #2 bl ftl_memcpy - ldrh r3, [r6, #2944] - cbz r3, .L1980 - ldrh r2, [r7, #2836] - ldr r1, [r4, #4056] - ldr r0, [r4, #1848] + ldrh r3, [r6, #2952] + cbz r3, .L1999 + ldrh r2, [r7, #2848] + ldr r1, [r4, #4060] + ldr r0, [r4, #1852] lsrs r3, r2, #3 add r3, r3, r2, lsl #1 - ldrh r2, [r7, #2936] + ldrh r2, [r7, #2948] adds r3, r3, #52 ubfx r3, r3, #2, #14 lsls r2, r2, #2 add r1, r1, r3, lsl #2 bl ftl_memcpy - b .L1980 -.L1978: + b .L1999 +.L1997: subs r4, r4, #1 uxth r4, r4 - b .L1977 -.L1980: - ldr r2, [r5, #1012] - ldr r3, .L1993+12 - ldr r4, .L1993+4 + b .L1996 +.L1999: + ldr r2, [r5, #760] + ldr r3, .L2012+12 + ldr r4, .L2012+4 cmp r2, r3 - bne .L1983 - ldrb r0, [r4, #1022] @ zero_extendqisi2 - ldrh r1, [r6, #2850] - ldrh r2, [r4, #1020] + bne .L2002 + ldrb r0, [r4, #770] @ zero_extendqisi2 + ldrh r1, [r6, #2862] + ldrh r2, [r4, #768] cmp r0, r1 - ldr r3, .L1993 - strh r2, [r4, #1070] @ movhi - bne .L1983 - ldrh r1, [r3, #2898] - ldrh r0, [r3, #2904] - str r2, [r4, #4084] + ldr r3, .L2012 + strh r2, [r4, #1066] @ movhi + bne .L2002 + ldrh r1, [r3, #2910] + ldrh r0, [r3, #2916] + str r2, [r4, #4088] muls r1, r2, r1 - str r1, [r3, #2960] + str r1, [r3, #2968] muls r1, r0, r1 - ldrh r0, [r3, #2974] - str r1, [r3, #2940] - ldr r1, [r3, #2840] + ldrh r0, [r3, #2978] + str r1, [r3, #1896] + ldr r1, [r3, #2852] subs r0, r1, r0 - ldrh r1, [r3, #2828] + ldrh r1, [r3, #2840] subs r0, r0, r2 bl __aeabi_uidiv - ldrh r3, [r4, #1028] - ldrh r1, [r4, #1026] + ldrh r3, [r4, #776] + ldrh r1, [r4, #774] lsrs r2, r3, #6 - strh r2, [r4, #790] @ movhi - ldrh r2, [r4, #1030] + strh r2, [r4, #838] @ movhi + ldrh r2, [r4, #778] and r3, r3, #63 - strb r3, [r4, #794] - ldrb r3, [r4, #1023] @ zero_extendqisi2 - strh r2, [r4, #836] @ movhi - ldrh r2, [r4, #1032] - strb r3, [r4, #796] + strb r3, [r4, #842] + ldrb r3, [r4, #771] @ zero_extendqisi2 + strh r2, [r4, #884] @ movhi + ldrh r2, [r4, #780] + strb r3, [r4, #844] movw r3, #65535 - strh r1, [r4, #788] @ movhi - strh r3, [r4, #1076] @ movhi + strh r1, [r4, #836] @ movhi + strh r3, [r4, #1072] @ movhi movs r3, #0 - strh r3, [r4, #1078] @ movhi - strb r3, [r4, #1082] - strb r3, [r4, #1084] - str r3, [r4, #972] - strh r0, [r4, #1060] @ movhi - lsrs r0, r2, #6 - and r2, r2, #63 - strb r2, [r4, #842] - ldrb r2, [r4, #1024] @ zero_extendqisi2 - strh r0, [r4, #838] @ movhi - strb r2, [r4, #844] - ldrh r2, [r4, #1034] - strh r2, [r4, #884] @ movhi - ldrh r2, [r4, #1036] + strh r3, [r4, #1074] @ movhi + strb r3, [r4, #1078] + strb r3, [r4, #1080] + str r3, [r4, #1016] + strh r0, [r4, #1056] @ movhi lsrs r0, r2, #6 and r2, r2, #63 strb r2, [r4, #890] - ldrb r2, [r4, #1025] @ zero_extendqisi2 + ldrb r2, [r4, #772] @ zero_extendqisi2 strh r0, [r4, #886] @ movhi strb r2, [r4, #892] - str r3, [r4, #960] - ldr r2, [r4, #1044] - str r3, [r4, #952] - str r3, [r4, #968] - str r3, [r4, #996] + ldrh r2, [r4, #782] + strh r2, [r4, #932] @ movhi + ldrh r2, [r4, #784] + lsrs r0, r2, #6 + and r2, r2, #63 + strb r2, [r4, #938] + ldrb r2, [r4, #773] @ zero_extendqisi2 + strh r0, [r4, #934] @ movhi + strb r2, [r4, #940] str r3, [r4, #1004] - str r3, [r4, #964] - ldr r3, [r4, #1052] - str r2, [r4, #992] - ldr r2, [r4, #984] + ldr r2, [r4, #792] + str r3, [r4, #996] + str r3, [r4, #1012] + str r3, [r4, #1040] + str r3, [r4, #1048] + str r3, [r4, #1008] + ldr r3, [r4, #800] + str r2, [r4, #1036] + ldr r2, [r4, #1028] cmp r3, r2 - ldr r2, [r5, #988] + ldr r2, [r5, #1032] it hi - strhi r3, [r4, #984] - ldr r3, [r5, #1048] + strhi r3, [r4, #1028] + ldr r3, [r5, #796] cmp r3, r2 itt hi - ldrhi r2, .L1993+4 - strhi r3, [r2, #988] + ldrhi r2, .L2012+4 + strhi r3, [r2, #1032] movw r3, #65535 cmp r1, r3 - beq .L1986 - ldr r0, .L1993+16 + beq .L2005 + ldr r0, .L2012+16 bl make_superblock -.L1986: - ldrh r2, [r5, #836] +.L2005: + ldrh r2, [r5, #884] movw r3, #65535 cmp r2, r3 - beq .L1987 - ldr r0, .L1993+20 + beq .L2006 + ldr r0, .L2012+20 bl make_superblock -.L1987: - ldrh r2, [r5, #884] +.L2006: + ldrh r2, [r5, #932] movw r3, #65535 cmp r2, r3 - beq .L1988 - ldr r0, .L1993+24 + beq .L2007 + ldr r0, .L2012+24 bl make_superblock -.L1988: - ldrh r2, [r5, #1076] +.L2007: + ldrh r2, [r5, #1072] movw r3, #65535 cmp r2, r3 - beq .L1989 - ldr r0, .L1993+28 + beq .L2008 + ldr r0, .L2012+28 bl make_superblock -.L1989: +.L2008: movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L1994: +.L2013: .align 2 -.L1993: +.L2012: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+4048 + .word .LANCHOR2+4052 .word 1179929683 - .word .LANCHOR2+788 .word .LANCHOR2+836 .word .LANCHOR2+884 - .word .LANCHOR2+1076 + .word .LANCHOR2+932 + .word .LANCHOR2+1072 .fnend .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 1 @@ -12378,67 +12492,65 @@ FtlGcScanTempBlk: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2029 + ldr r3, .L2048 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldrh r4, [r3, #3000] + ldrh r4, [r3, #3064] movw r3, #65535 mov r5, r0 str r1, [sp, #12] cmp r4, r3 - beq .L2018 - cbnz r4, .L1996 - b .L1997 -.L2018: + beq .L2037 + cbnz r4, .L2015 + b .L2016 +.L2037: movs r4, #0 -.L1996: - ldr r3, .L2029+4 +.L2015: + ldr r3, .L2048+4 ldr r2, [sp, #12] - ldrh r3, [r3, #2898] + ldrh r3, [r3, #2910] cmp r2, r3 - bne .L1998 -.L1997: + bne .L2017 +.L2016: bl FtlGcPageVarInit -.L1998: - ldr r7, .L2029+8 +.L2017: + ldr r7, .L2048+8 mov r10, #0 mov r3, #-1 str r3, [sp, #4] - mov r9, r7 -.L2012: +.L2031: ldrh r1, [r5] movw r3, #65535 movs r2, #0 strb r2, [r5, #8] cmp r1, r3 - beq .L1999 -.L2000: -.L2015: - ldr r3, .L2029+4 + beq .L2018 +.L2019: + ldr r9, .L2048+4 +.L2034: + ldr r3, [r7, #1664] movs r2, #0 - ldr fp, [r7, #1764] + ldrh r8, [r9, #2840] mov ip, #36 + ldr fp, [r7, #1764] mov r6, r2 - movw lr, #65535 - ldrh r8, [r3, #2828] - ldr r3, [r7, #1668] str r3, [sp, #16] - ldr r3, .L2029+4 - ldrh r3, [r3, #2910] + movw lr, #65535 + ldrh r3, [r9, #2922] str r3, [sp, #20] add r3, r5, #14 str r3, [sp, #8] -.L2001: +.L2020: uxth r3, r2 cmp r3, r8 - bcs .L2027 + bcs .L2046 ldr r1, [sp, #8] ldrh r3, [r1, #2]! cmp r3, lr str r1, [sp, #8] - beq .L2002 + beq .L2021 mla r1, ip, r6, fp orr r3, r4, r3, lsl #10 str r3, [r1, #4] @@ -12455,22 +12567,22 @@ FtlGcScanTempBlk: ldr r3, [sp, #16] add r0, r0, r3 str r0, [r1, #12] -.L2002: +.L2021: adds r2, r2, #1 - b .L2001 -.L2027: + b .L2020 +.L2046: ldr r0, [r7, #1764] mov r1, r6 movs r2, #0 mov fp, #0 bl FlashReadPages -.L2005: +.L2024: uxth r3, fp cmp r3, r6 - bcs .L2028 + bcs .L2047 movs r3, #36 mul r8, r3, fp - ldr r3, .L2029+8 + ldr r3, .L2048+8 ldr ip, [r3, #1764] add r1, ip, r8 str r1, [sp, #16] @@ -12480,111 +12592,110 @@ FtlGcScanTempBlk: str r3, [sp, #8] bl P2V_plane ldr ip, [sp, #20] - mov r2, r0 ldr r3, [sp, #8] + mov r2, r0 ldr r0, [ip, r8] - cbnz r0, .L2006 + cbnz r0, .L2025 ldr r1, [sp, #16] movw r0, #65535 add fp, fp, #1 ldr lr, [r1, #12] ldrh r1, [lr] cmp r1, r0 - bne .L2007 - ldr r3, .L2029+8 + bne .L2026 + ldr r3, .L2048+8 movs r1, #1 - str r1, [r3, #1924] - b .L1999 -.L2007: + str r1, [r3, #1928] + b .L2018 +.L2026: ldr r0, [lr, #12] mov r1, r3 ldr r2, [lr, #8] bl FtlGcUpdatePage - b .L2005 -.L2006: + b .L2024 +.L2025: mov r2, r3 - ldr r0, .L2029+12 ldrh r1, [r5] + ldr r0, .L2048+12 bl printk - ldr r2, [r9, #948] + ldr r2, .L2048+4 ldrh r3, [r5] - cbnz r2, .L2008 - ldr r2, .L2029+4 + ldr r1, [r2, #2832] + cbnz r1, .L2027 ldrb r2, [r2, #76] @ zero_extendqisi2 - cbz r2, .L2009 -.L2008: - ldr r2, [r7, #748] + cbz r2, .L2028 +.L2027: + ldr r2, [r7, #752] ldrh r2, [r2, r3, lsl #1] cmp r2, #119 - bls .L2010 -.L2009: + bls .L2029 +.L2028: ldr r2, [r7, #1764] ldr r2, [r2, r8] adds r2, r2, #1 - bne .L2011 -.L2010: + bne .L2030 +.L2029: ldr r2, [r7, #1764] add r8, r8, r2 ldr r2, [r8, #4] str r2, [sp, #4] -.L2011: - ldr r2, [r9, #768] +.L2030: + ldr r2, .L2048+8 movs r4, #0 + ldr r2, [r2, #816] strh r4, [r2, r3, lsl #1] @ movhi ldrh r0, [r5] bl INSERT_FREE_LIST movw r3, #65535 strh r3, [r5] @ movhi bl FtlGcPageVarInit - b .L2012 -.L2028: + b .L2031 +.L2047: ldr r3, [sp, #12] add r10, r10, #1 adds r4, r4, #1 cmp r10, r3 uxth r4, r4 - bcs .L2014 -.L2016: - ldr r3, .L2029+4 - ldrh r3, [r3, #2898] + bcs .L2033 +.L2035: + ldrh r3, [r9, #2910] cmp r3, r4 - bhi .L2015 + bhi .L2034 movs r2, #0 - b .L1999 -.L2014: - ldr r2, .L2029 + b .L2018 +.L2033: + ldr r2, .L2048 movw r1, #65535 - ldrh r3, [r2, #3000] + ldrh r3, [r2, #3064] cmp r3, r1 - beq .L2016 + beq .L2035 add r3, r3, r10 - strh r3, [r2, #3000] @ movhi - ldr r3, .L2029+4 - ldrh r3, [r3, #2898] + strh r3, [r2, #3064] @ movhi + ldrh r3, [r9, #2910] cmp r3, r4 - bls .L2016 - b .L2017 -.L1999: - ldr r3, .L2029 + bls .L2035 + b .L2036 +.L2018: + ldr r3, .L2048 movw r1, #65535 strh r4, [r5, #2] @ movhi mov r0, r5 strb r2, [r5, #6] - strh r1, [r3, #3000] @ movhi + strh r1, [r3, #3064] @ movhi mov r1, r4 bl ftl_sb_update_avl_pages -.L2017: +.L2036: ldr r0, [sp, #4] add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2030: +.L2049: .align 2 -.L2029: +.L2048: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LC105 + .word .LC108 .fnend .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 1 @@ -12600,7 +12711,7 @@ FlashProgPages: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #76 sub sp, sp, #76 - ldr r5, .L2086 + ldr r5, .L2105 mov r4, r0 str r1, [sp, #8] mov r9, r2 @@ -12609,13 +12720,13 @@ FlashProgPages: ldrb r7, [r5] @ zero_extendqisi2 ldrb r6, [r6, #19] @ zero_extendqisi2 str r6, [sp, #16] - ldr r6, .L2086+4 + ldr r6, .L2105+4 ldrb r6, [r6, #265] @ zero_extendqisi2 str r6, [sp, #12] - cbz r7, .L2032 + cbz r7, .L2051 bl FlashProgSlc2KPages - b .L2033 -.L2046: + b .L2052 +.L2065: movs r3, #36 add r2, sp, #28 mov r1, r9 @@ -12628,37 +12739,37 @@ FlashProgPages: mov r0, fp add r3, sp, #32 bl LogAddr2PhyAddr - ldrb r2, [r5, #1616] @ zero_extendqisi2 ldr r3, [sp, #32] - mov r10, r0 + ldrb r2, [r5, #1616] @ zero_extendqisi2 cmp r3, r2 - bcc .L2034 + mov r10, r0 + bcc .L2053 mov r3, #-1 str r3, [r4, r8] -.L2035: +.L2054: adds r7, r7, #1 -.L2032: +.L2051: ldr r3, [sp, #8] - ldr r6, .L2086 + ldr r6, .L2105 cmp r7, r3 - bcc .L2046 - b .L2084 -.L2034: + bcc .L2065 + b .L2103 +.L2053: add r3, r5, r3, lsl #4 - ldrb r1, [r5, #2820] @ zero_extendqisi2 + ldrb r1, [r5, #2828] @ zero_extendqisi2 ldr r3, [r3, #1668] cmp r1, #0 it eq moveq r10, #0 - cbz r3, .L2037 + cbz r3, .L2056 cmp r2, #1 - bne .L2038 + bne .L2057 ldr r0, [r5, #1828] bl NandcIqrWaitFlashReady -.L2038: +.L2057: ldrb r0, [sp, #32] @ zero_extendqisi2 bl FlashWaitCmdDone -.L2037: +.L2056: ldr r3, [sp, #32] movs r0, #0 add r2, r5, r3, lsl #4 @@ -12668,11 +12779,11 @@ FlashProgPages: str fp, [r2, #1668] str r0, [r2, #1664] cmp r10, #0 - beq .L2039 + beq .L2058 add r2, r8, #36 add r2, r2, r4 str r2, [r1, #4] -.L2039: +.L2058: adds r2, r5, r3 add r3, r5, r3, lsl #4 ldrb r6, [r2, #1620] @ zero_extendqisi2 @@ -12680,13 +12791,13 @@ FlashProgPages: mov r0, r6 ldrb r3, [r5, #1616] @ zero_extendqisi2 cmp r3, #1 - bne .L2040 + bne .L2059 bl NandcWaitFlashReady - b .L2041 -.L2040: + b .L2060 +.L2059: bl NandcFlashCs - mov r0, r6 ldr r3, [sp, #32] + mov r0, r6 ldr r1, [sp, #28] add r3, r5, r3, lsl #2 ldr r2, [r3, #1628] @@ -12696,139 +12807,139 @@ FlashProgPages: bl FlashWaitReadyEN mov r0, r6 bl NandcFlashDeCs -.L2041: +.L2060: ldr r3, [sp, #16] subs r3, r3, #1 cmp r3, #6 - bhi .L2042 + bhi .L2061 adds r3, r5, r6 - ldrb r3, [r3, #2756] @ zero_extendqisi2 - cbz r3, .L2042 + ldrb r3, [r3, #2760] @ zero_extendqisi2 + cbz r3, .L2061 mov r0, r6 - ldrb r1, [r5, #1903] @ zero_extendqisi2 - ldr r2, .L2086+8 + ldrb r1, [r5, #1907] @ zero_extendqisi2 + ldr r2, .L2105+8 movs r3, #0 bl HynixSetRRPara -.L2042: +.L2061: mov r0, r6 bl NandcFlashCs cmp r9, #1 mov r0, r6 - bne .L2043 + bne .L2062 ldrb r3, [r5, #76] @ zero_extendqisi2 - cbz r3, .L2043 + cbz r3, .L2062 bl flash_enter_slc_mode - b .L2044 -.L2043: + b .L2063 +.L2062: bl flash_exit_slc_mode -.L2044: +.L2063: mov r0, r6 ldr r1, [sp, #28] bl FlashProgFirstCmd ldr r3, [fp, #12] mov r0, r6 movs r1, #1 - str r3, [sp] ldr r2, [sp, #12] + str r3, [sp] ldr r3, [fp, #8] bl NandcXferData cmp r10, #0 - beq .L2045 + beq .L2064 mov r0, r6 ldr r1, [sp, #28] bl FlashProgDpFirstCmd - mov r0, r6 - add r8, r8, #36 - add r8, r8, r4 ldr r3, [sp, #32] ldr r1, [sp, #28] + mov r0, r6 + add r8, r8, #36 add r3, r5, r3, lsl #2 + add r8, r8, r4 ldr r2, [r3, #1628] adds r2, r2, #0 it ne movne r2, #1 bl FlashWaitReadyEN + ldr r3, [sp, #28] ldr r1, [r5, #4] mov r0, r6 - ldr r3, [sp, #28] add r1, r1, r3 bl FlashProgDpSecondCmd ldr r3, [r8, #12] mov r0, r6 movs r1, #1 - str r3, [sp] ldr r2, [sp, #12] + str r3, [sp] ldr r3, [r8, #8] bl NandcXferData -.L2045: +.L2064: mov r0, r6 ldr r1, [sp, #28] bl FlashProgSecondCmd mov r0, r6 bl NandcFlashDeCs add r7, r7, r10 - b .L2035 -.L2084: + b .L2054 +.L2103: ldr r0, [r6, #1828] movs r5, #0 bl NandcIqrWaitFlashReady addw r8, r6, #1660 mov r7, r6 -.L2047: +.L2066: ldrb r3, [r6, #1616] @ zero_extendqisi2 cmp r5, r3 - bcs .L2085 + bcs .L2104 uxtb r0, r5 bl FlashWaitCmdDone cmp r9, #1 - bne .L2048 + bne .L2067 ldrb r3, [r7, #76] @ zero_extendqisi2 - cbz r3, .L2048 + cbz r3, .L2067 lsls r3, r5, #4 ldrb r0, [r8, r3] @ zero_extendqisi2 bl flash_exit_slc_mode -.L2048: +.L2067: adds r5, r5, #1 - b .L2047 -.L2085: + b .L2066 +.L2104: ldr r3, [sp, #20] - cbnz r3, .L2050 -.L2058: + cbnz r3, .L2069 +.L2077: movs r0, #0 - b .L2033 -.L2050: - ldr r7, .L2086+12 + b .L2052 +.L2069: + ldr r7, .L2105+12 mov r8, #0 mov r10, r7 -.L2051: +.L2070: ldr r3, [sp, #8] cmp r8, r3 - beq .L2058 + beq .L2077 ldr r3, [r4] adds r3, r3, #1 - bne .L2052 + bne .L2071 ldr r1, [r4, #4] - ldr r0, .L2086+16 + ldr r0, .L2105+16 bl printk - b .L2053 -.L2052: + b .L2072 +.L2071: ldr r3, [sp, #8] mov r1, r9 add r2, sp, #28 mov r0, r4 rsb r3, r8, r3 mov r6, r4 + add r5, sp, #36 uxtb r3, r3 str r3, [sp] add r3, sp, #32 bl LogAddr2PhyAddr - ldr r2, [r7, #4020] + ldr r2, [r7, #4024] movs r3, #0 str r3, [r2] - ldr r2, [r7, #4024] + ldr r2, [r7, #4028] str r3, [r2] ldmia r6!, {r0, r1, r2, r3} - add r5, sp, #36 stmia r5!, {r0, r1, r2, r3} ldmia r6!, {r0, r1, r2, r3} stmia r5!, {r0, r1, r2, r3} @@ -12837,63 +12948,63 @@ FlashProgPages: movs r1, #1 mov r2, r9 str r3, [r5] - ldr r3, [r7, #4020] - str r3, [sp, #44] ldr r3, [r7, #4024] + str r3, [sp, #44] + ldr r3, [r7, #4028] str r3, [sp, #48] bl FlashReadPages ldr r5, [sp, #36] adds r3, r5, #1 - bne .L2054 - ldr r0, .L2086+20 + bne .L2073 + ldr r0, .L2105+20 ldr r1, [r4, #4] bl printk str r5, [r4] -.L2054: +.L2073: ldr r3, [r4, #12] - cbz r3, .L2055 + cbz r3, .L2074 ldr r2, [r3] - ldr r3, [r10, #4024] + ldr r3, [r10, #4028] ldr r3, [r3] cmp r2, r3 - beq .L2055 - ldr r0, .L2086+24 + beq .L2074 + ldr r0, .L2105+24 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L2055: +.L2074: ldr r3, [r4, #8] - cbz r3, .L2053 + cbz r3, .L2072 ldr r2, [r3] - ldr r3, [r10, #4020] + ldr r3, [r10, #4024] ldr r3, [r3] cmp r2, r3 - beq .L2053 - ldr r0, .L2086+28 + beq .L2072 + ldr r0, .L2105+28 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L2053: +.L2072: add r8, r8, #1 adds r4, r4, #36 - b .L2051 -.L2033: + b .L2070 +.L2052: add sp, sp, #76 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2087: +.L2106: .align 2 -.L2086: +.L2105: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR0+1906 + .word .LANCHOR0+1910 .word .LANCHOR2 - .word .LC101 - .word .LC102 - .word .LC103 .word .LC104 + .word .LC105 + .word .LC106 + .word .LC107 .fnend .size FlashProgPages, .-FlashProgPages .align 1 @@ -12905,16 +13016,16 @@ FlashTestBlk: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2091 + ldr r3, .L2110 push {r4, r5, lr} .save {r4, r5, lr} mov r4, r0 - ldr r2, [r3, #4004] + ldr r2, [r3, #4008] .pad #108 sub sp, sp, #108 cmp r0, r2 - bcc .L2090 - ldr r5, [r3, #4012] + bcc .L2109 + ldr r5, [r3, #4016] add r0, sp, #40 movs r1, #165 movs r2, #32 @@ -12927,35 +13038,35 @@ FlashTestBlk: movs r2, #8 bl memset movs r1, #1 - mov r2, r1 add r0, sp, #4 str r4, [sp, #8] + mov r2, r1 bl FlashEraseBlocks movs r1, #1 + add r0, sp, #4 mov r2, r1 mov r3, r1 - add r0, sp, #4 bl FlashProgPages - movs r1, #0 - movs r2, #1 ldr r4, [sp, #4] add r0, sp, #4 + movs r1, #0 adds r4, r4, #0 + mov r2, #1 it ne movne r4, #1 negs r4, r4 bl FlashEraseBlocks - b .L2089 -.L2090: + b .L2108 +.L2109: movs r4, #0 -.L2089: +.L2108: mov r0, r4 add sp, sp, #108 @ sp needed pop {r4, r5, pc} -.L2092: +.L2111: .align 2 -.L2091: +.L2110: .word .LANCHOR2 .fnend .size FlashTestBlk, .-FlashTestBlk @@ -12972,11 +13083,11 @@ FlashMakeFactorBbt: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #84 sub sp, sp, #84 - ldr r5, .L2151 + ldr r5, .L2170 movs r1, #1 - ldr r4, .L2151+4 - ldr r0, .L2151+8 - ldr r3, [r5, #4016] + ldr r4, .L2170+4 + ldr r0, .L2170+8 + ldr r3, [r5, #4020] ldrh r8, [r4, #1876] str r3, [sp, #20] ldrh r3, [r4, #1878] @@ -12988,7 +13099,7 @@ FlashMakeFactorBbt: ldrh r3, [r4, #4] str r3, [sp, #16] ldrb r3, [r4] @ zero_extendqisi2 - ldr r4, .L2151+4 + ldr r4, .L2170+4 cmp r3, #1 itttt eq ldreq r3, [sp, #16] @@ -12996,46 +13107,46 @@ FlashMakeFactorBbt: uxtheq r3, r3 streq r3, [sp, #16] bl printk - ldr r0, [r5, #4016] + ldr r0, [r5, #4020] + ldr r5, .L2170 mov r1, #4096 - ldr r5, .L2151 bl __memzero lsr r3, r8, #4 str r3, [sp, #28] movs r3, #0 str r3, [sp, #8] -.L2095: +.L2114: ldrb r7, [sp, #8] @ zero_extendqisi2 ldrb r3, [r4, #1616] @ zero_extendqisi2 cmp r3, r7 - bls .L2147 + bls .L2166 add r3, r5, r7, lsl #1 - ldrh r6, [r3, #4032] + ldrh r6, [r3, #4036] cmp r6, #0 - bne .L2125 + bne .L2144 ldrh r2, [r4, #1884] mov r1, r6 - ldr r0, [r5, #3984] + ldr r0, [r5, #3988] mov r9, r6 lsls r2, r2, #9 bl ftl_memset adds r3, r4, r7 + str r6, [sp, #4] ldrb r10, [r3, #1620] @ zero_extendqisi2 lsls r3, r7, #2 add fp, r4, r3 - str r6, [sp, #4] str r3, [sp, #32] -.L2097: +.L2116: ldrh r3, [sp, #4] cmp r3, r8 str r3, [sp, #12] - bcs .L2107 + bcs .L2126 movs r3, #255 strb r3, [sp, #42] strb r3, [sp, #43] ldr r3, [sp, #24] lsls r1, r3, #31 - bpl .L2099 + bpl .L2118 ldr r3, [fp, #1628] add r2, sp, #42 mov r0, r10 @@ -13044,9 +13155,9 @@ FlashMakeFactorBbt: mov r1, r3 bl FlashReadSpare ldrb r2, [r4] @ zero_extendqisi2 - cmp r2, #1 ldr r3, [sp, #36] - bne .L2099 + cmp r2, #1 + bne .L2118 ldr r1, [r4, #4] add r2, sp, #43 mov r0, r10 @@ -13056,10 +13167,10 @@ FlashMakeFactorBbt: ldrb r2, [sp, #43] @ zero_extendqisi2 ands r3, r3, r2 strb r3, [sp, #42] -.L2099: +.L2118: ldr r3, [sp, #24] lsls r2, r3, #30 - bpl .L2101 + bpl .L2120 ldr r3, [r4, #1788] mov r0, r10 add r2, sp, #43 @@ -13069,51 +13180,51 @@ FlashMakeFactorBbt: add r1, r1, r3 add r1, r1, r6 bl FlashReadSpare -.L2101: +.L2120: ldr r3, [r4, #1788] ldrb r2, [r3, #7] @ zero_extendqisi2 ldrb r3, [sp, #42] @ zero_extendqisi2 cmp r2, #1 - beq .L2102 + beq .L2121 cmp r2, #8 - bne .L2103 -.L2102: - cbz r3, .L2124 + bne .L2122 +.L2121: + cbz r3, .L2143 ldrb r0, [sp, #43] @ zero_extendqisi2 clz r0, r0 lsrs r0, r0, #5 - b .L2104 -.L2103: + b .L2123 +.L2122: cmp r3, #255 - bne .L2124 + bne .L2143 ldrb r0, [sp, #43] @ zero_extendqisi2 subs r0, r0, #255 it ne movne r0, #1 - b .L2104 -.L2124: + b .L2123 +.L2143: movs r0, #1 -.L2104: +.L2123: ldr r3, [sp, #24] lsls r3, r3, #29 - bpl .L2105 - ldr r3, .L2151+4 + bpl .L2124 + ldr r3, .L2170+4 mov r0, r10 ldr r2, [sp, #32] add r3, r3, r2 ldr r1, [r3, #1628] add r1, r1, r6 bl SandiskProgTestBadBlock -.L2105: - cbz r0, .L2106 +.L2124: + cbz r0, .L2125 mov r1, r7 ldr r2, [sp, #4] - ldr r0, .L2151+12 + ldr r0, .L2170+12 add r9, r9, #1 bl printk - ldr r2, [r5, #3984] - uxth r9, r9 ldr r3, [sp, #12] + ldr r2, [r5, #3988] + uxth r9, r9 and r0, r3, #31 lsrs r1, r3, #5 movs r3, #1 @@ -13125,47 +13236,47 @@ FlashMakeFactorBbt: ldrb r3, [r4, #1616] @ zero_extendqisi2 muls r3, r2, r3 cmp r9, r3 - bgt .L2107 -.L2106: + bgt .L2126 +.L2125: ldr r3, [sp, #4] adds r3, r3, #1 str r3, [sp, #4] ldr r3, [sp, #16] add r6, r6, r3 - b .L2097 -.L2107: + b .L2116 +.L2126: mov r2, r9 - ldr r0, .L2151+16 + ldr r0, .L2170+16 mov r1, r7 bl printk ldrb r3, [r4, #1616] @ zero_extendqisi2 ldr r2, [sp, #28] muls r3, r2, r3 cmp r9, r3 - blt .L2109 + blt .L2128 ldrh r2, [r4, #1884] movs r1, #0 - ldr r0, [r5, #3984] + ldr r0, [r5, #3988] lsls r2, r2, #9 bl ftl_memset -.L2109: +.L2128: cmp r7, #0 - bne .L2111 - ldrh r10, [r5, #4004] + bne .L2130 + ldrh r10, [r5, #4008] mov r9, #1 mov r6, r7 -.L2112: - ldr r3, .L2151+4 +.L2131: + ldr r3, .L2170+4 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, r10 - bls .L2148 + bls .L2167 mov r0, r10 bl FlashTestBlk - cbz r0, .L2113 + cbz r0, .L2132 mov r1, r10 - ldr r0, .L2151+20 + ldr r0, .L2170+20 bl printk - ldr r2, [r5, #3984] + ldr r2, [r5, #3988] lsr r0, r10, #5 adds r6, r6, #1 and r3, r10, #31 @@ -13174,116 +13285,116 @@ FlashMakeFactorBbt: lsl r3, r9, r3 orrs r3, r3, r1 str r3, [r2, r0, lsl #2] -.L2113: +.L2132: add r10, r10, #1 uxth r10, r10 - b .L2112 -.L2148: + b .L2131 +.L2167: add fp, r8, #-1 sub r9, r8, #50 mov r10, #1 uxth fp, fp -.L2115: +.L2134: cmp fp, r9 - ble .L2149 + ble .L2168 mov r0, fp bl FlashTestBlk - cbz r0, .L2116 + cbz r0, .L2135 mov r1, fp - ldr r0, .L2151+20 + ldr r0, .L2170+20 bl printk - ldr r2, [r5, #3984] + ldr r2, [r5, #3988] lsr r0, fp, #5 and r3, fp, #31 lsl r3, r10, r3 ldr r1, [r2, r0, lsl #2] orrs r3, r3, r1 str r3, [r2, r0, lsl #2] -.L2116: +.L2135: add fp, fp, #-1 uxth fp, fp - b .L2115 -.L2149: - ldr r3, .L2151+4 - ldr r2, [r5, #4004] + b .L2134 +.L2168: + ldr r3, .L2170+4 + ldr r2, [r5, #4008] ldrb r3, [r3, #1] @ zero_extendqisi2 subs r3, r3, r2 cmp r6, r3 - bcc .L2111 + bcc .L2130 ldrh r2, [r4, #1884] movs r1, #0 - ldr r0, [r5, #3984] + ldr r0, [r5, #3988] lsls r2, r2, #9 bl ftl_memset -.L2111: +.L2130: ldrb r6, [sp, #8] @ zero_extendqisi2 add r10, r8, #-1 add r9, r5, r7, lsl #1 uxth r10, r10 mul r6, r8, r6 -.L2119: +.L2138: mov r1, r7 - ldr r0, .L2151+24 + ldr r0, .L2170+24 mov r2, r10 bl printk - ldr r1, [r5, #3984] -.L2120: + ldr r1, [r5, #3988] +.L2139: lsr r3, r10, #5 and r2, r10, #31 ldr r3, [r1, r3, lsl #2] lsrs r3, r3, r2 ands r3, r3, #1 - beq .L2150 + beq .L2169 add r10, r10, #-1 uxth r10, r10 - b .L2120 -.L2150: + b .L2139 +.L2169: ldr r1, [sp, #20] movw r2, #61664 - strh r10, [r9, #4032] @ movhi + strh r10, [r9, #4036] @ movhi add r0, sp, #44 strh r2, [r1] @ movhi strh r10, [r1, #2] @ movhi strh r3, [r1, #8] @ movhi movs r1, #1 - ldr r3, [r5, #3984] + ldr r3, [r5, #3988] mov r2, r1 str r3, [sp, #52] - ldr r3, [r5, #4016] + ldr r3, [r5, #4020] str r3, [sp, #56] add r3, r10, r6 lsls r3, r3, #10 str r3, [sp, #48] bl FlashEraseBlocks movs r1, #1 + add r0, sp, #44 mov r3, r1 mov r2, r1 - add r0, sp, #44 bl FlashProgPages ldr r3, [sp, #44] - cbz r3, .L2125 + cbz r3, .L2144 add r10, r10, #-1 uxth r10, r10 - b .L2119 -.L2125: + b .L2138 +.L2144: ldr r3, [sp, #8] adds r3, r3, #1 str r3, [sp, #8] - b .L2095 -.L2147: + b .L2114 +.L2166: add sp, sp, #84 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2152: +.L2171: .align 2 -.L2151: +.L2170: .word .LANCHOR2 .word .LANCHOR0 - .word .LC106 - .word .LC107 - .word .LC108 .word .LC109 .word .LC110 + .word .LC111 + .word .LC112 + .word .LC113 .fnend .size FlashMakeFactorBbt, .-FlashMakeFactorBbt .align 1 @@ -13293,256 +13404,272 @@ FlashMakeFactorBbt: .type FtlLowFormatEraseBlock, %function FtlLowFormatEraseBlock: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #20 - sub sp, sp, #20 - ldr r4, .L2205 - str r0, [sp, #8] - str r1, [sp, #4] - ldr r2, [r4, #740] + .pad #28 + sub sp, sp, #28 + ldr r7, .L2224 + str r0, [sp, #4] + str r1, [sp] + ldrb r3, [r7, #2828] @ zero_extendqisi2 + str r3, [sp, #16] + ldr r3, .L2224+4 + ldr r2, [r3, #744] + mov fp, r3 cmp r2, #0 - bne .L2182 - ldr r3, .L2205+4 - mov r9, #36 - mov r10, r2 + bne .L2201 + ldrb r3, [r7, #76] @ zero_extendqisi2 + mov r8, #36 + mov r9, r2 mov r5, r2 - mov r7, r2 - mov fp, r4 - ldrb r1, [r3, #76] @ zero_extendqisi2 - mov r6, r3 - str r0, [r3, #2964] - str r1, [sp, #12] -.L2155: - ldrh r1, [r6, #2828] - uxth r3, r10 - cmp r1, r3 - bls .L2200 - mul r1, r9, r3 - ldr r0, [r4, #744] - movs r2, #0 - str r2, [r0, r1] - ldr r2, .L2205+4 - ldr r1, [sp, #8] - add r3, r3, r2 - ldrb r0, [r3, #2856] @ zero_extendqisi2 + mov r4, r2 + mov r10, fp + str r3, [sp, #8] + str r0, [fp, #1752] +.L2174: + ldrh r0, [r7, #2840] + uxth r1, r9 + ldr r3, .L2224 + cmp r0, r1 + bls .L2219 + mul r6, r8, r1 + ldr r0, [fp, #748] + movs r3, #0 + str r3, [r0, r6] + ldr r3, .L2224 + add r1, r1, r3 + ldrb r0, [r1, #2868] @ zero_extendqisi2 + ldr r1, [sp, #4] bl V2P_block - ldr r3, [sp, #4] - mov r8, r0 - cbz r3, .L2156 + ldr r3, [sp] + mov r6, r0 + cbz r3, .L2175 bl IsBlkInVendorPart - cbnz r0, .L2157 -.L2156: - mov r0, r8 + cbnz r0, .L2176 +.L2175: + mov r0, r6 bl FtlBbmIsBadBlock - cbnz r0, .L2158 - ldr r1, [r4, #744] - lsl r3, r8, #10 - mla r1, r9, r5, r1 - str r3, [r1, #4] - str r0, [r1, #8] - ldrh r3, [r6, #2910] - muls r3, r5, r3 - ldr r0, [fp, #1800] + cbnz r0, .L2177 + ldr r3, [fp, #748] + lsls r6, r6, #10 + ldrh r1, [r7, #2922] + muls r1, r5, r1 it mi - addmi r3, r3, #3 + addmi r1, r1, #3 + mla lr, r8, r5, r3 adds r5, r5, #1 - bic r3, r3, #3 - add r3, r3, r0 - str r3, [r1, #12] + bic r1, r1, #3 uxth r5, r5 - b .L2157 -.L2158: - adds r7, r7, #1 - uxth r7, r7 -.L2157: - add r10, r10, #1 - b .L2155 -.L2200: - mov r8, r7 - cbnz r5, .L2161 - mov r0, r7 - b .L2154 -.L2161: - ldr r3, [sp, #12] + str r0, [lr, #8] + ldr r0, [r10, #1804] + str r6, [lr, #4] + add r1, r1, r0 + str r1, [lr, #12] + b .L2176 +.L2177: + adds r4, r4, #1 + uxth r4, r4 +.L2176: + add r9, r9, #1 + b .L2174 +.L2219: + cmp r5, #0 + beq .L2200 + ldr r2, [sp, #8] + mov r8, #0 + ldr r0, [fp, #748] + mov r9, #36 + adds r6, r2, #0 mov r2, r5 - ldr r0, [r4, #744] - movs r7, #0 - adds r9, r3, #0 - mov r10, #36 it ne - movne r9, #1 - mov r1, r9 + movne r6, #1 + strb r8, [r3, #2828] + str r3, [sp, #8] + mov r1, r6 bl FlashEraseBlocks -.L2162: - uxth r3, r7 - cmp r3, r5 - bcs .L2201 - mul r3, r10, r7 - ldr r2, [r4, #744] - adds r0, r2, r3 - ldr r3, [r2, r3] - adds r3, r3, #1 - bne .L2163 + ldrb r2, [sp, #16] @ zero_extendqisi2 + ldr r3, [sp, #8] + strb r2, [r3, #2828] +.L2181: + uxth r2, r8 + cmp r2, r5 + bcs .L2220 + mul r2, r9, r8 + ldr r1, [fp, #748] + adds r0, r1, r2 + ldr r2, [r1, r2] + adds r2, r2, #1 + bne .L2182 ldr r0, [r0, #4] - add r8, r8, #1 + adds r4, r4, #1 ubfx r0, r0, #10, #16 - uxth r8, r8 + uxth r4, r4 bl FtlBbmMapBadBlock -.L2163: - adds r7, r7, #1 - b .L2162 -.L2201: - ldr r3, [sp, #4] - cbnz r3, .L2165 +.L2182: + add r8, r8, #1 + b .L2181 +.L2220: + ldr r3, [sp] + cbnz r3, .L2184 movs r3, #6 - uxth r5, r9 + uxth r6, r6 str r3, [sp, #12] - mov fp, #1 - b .L2166 -.L2165: - ldrb r3, [r6, #76] @ zero_extendqisi2 - ldrh fp, [r6, #2900] - cbnz r3, .L2183 - lsr r3, fp, #2 - movs r5, #1 + movs r3, #1 + str r3, [sp, #8] + b .L2185 +.L2184: + ldrh r3, [r7, #2912] + str r3, [sp, #8] + ldrb r3, [r7, #76] @ zero_extendqisi2 + cbnz r3, .L2202 + ldr r3, [sp, #8] + movs r6, #1 + lsrs r3, r3, #2 str r3, [sp, #12] - b .L2166 -.L2183: - movs r5, #1 - str r5, [sp, #12] -.L2166: + b .L2185 +.L2202: + movs r6, #1 + str r6, [sp, #12] +.L2185: + ldr r8, .L2224+4 movs r7, #0 -.L2176: - mov r9, #0 - mov r6, r9 -.L2167: - ldr r3, .L2205+4 - ldrh r2, [r3, #2828] - uxth r3, r9 - cmp r2, r3 - bls .L2202 + mov r10, r8 +.L2195: + mov fp, #0 + mov r5, fp +.L2186: + ldr r9, .L2224 + uxth r3, fp + ldrh r1, [r9, #2840] + cmp r1, r3 + bls .L2221 movs r2, #36 - ldr r1, [r4, #744] - movs r0, #0 - muls r2, r3, r2 - str r0, [r1, r2] - ldr r2, .L2205+4 - ldr r1, [sp, #8] + ldr r0, [r8, #748] + mul r1, r2, r3 + movs r2, #0 + str r2, [r0, r1] + ldr r2, .L2224 + ldr r1, [sp, #4] add r3, r3, r2 - ldrb r0, [r3, #2856] @ zero_extendqisi2 + ldrb r0, [r3, #2868] @ zero_extendqisi2 bl V2P_block - ldr r3, [sp, #4] - mov r10, r0 - cbz r3, .L2168 + ldr r3, [sp] + mov r9, r0 + cbz r3, .L2187 bl IsBlkInVendorPart - cbnz r0, .L2169 -.L2168: - mov r0, r10 + cbnz r0, .L2188 +.L2187: + mov r0, r9 bl FtlBbmIsBadBlock - cbnz r0, .L2169 - ldr r2, [r4, #744] + cbnz r0, .L2188 + ldr r1, [r10, #748] movs r3, #36 - ldr r1, .L2205 - mla r2, r3, r6, r2 - add r3, r7, r10, lsl #10 - ldr r1, [r1, #1792] - str r3, [r2, #4] - ldr r3, [r4, #1788] - str r3, [r2, #8] - ldr r3, .L2205+4 - ldrh r3, [r3, #2910] - muls r3, r6, r3 - add r6, r6, #1 + ldr r0, [r8, #1796] + mla r1, r3, r5, r1 + add r3, r7, r9, lsl #10 + str r3, [r1, #4] + ldr r3, [r10, #1792] + str r3, [r1, #8] + ldr r3, .L2224 + ldrh r3, [r3, #2922] + muls r3, r5, r3 + add r5, r5, #1 it mi addmi r3, r3, #3 bic r3, r3, #3 - uxth r6, r6 - add r3, r3, r1 - str r3, [r2, #12] -.L2169: - add r9, r9, #1 - b .L2167 -.L2202: - cmp r6, #0 - beq .L2181 - ldr r0, [r4, #744] - mov r1, r6 - mov r2, r5 + uxth r5, r5 + add r3, r3, r0 + str r3, [r1, #12] +.L2188: + add fp, fp, #1 + b .L2186 +.L2221: + cmp r5, #0 + beq .L2200 + mov r2, r6 movs r3, #1 + ldr r0, [r8, #748] + mov r1, r5 + mov fp, #0 + strb fp, [r9, #2828] bl FlashProgPages - mov r9, #0 - mov r10, #36 -.L2173: - uxth r3, r9 - cmp r3, r6 - bcs .L2203 - mul r3, r10, r9 - ldr r2, [r4, #744] - adds r0, r2, r3 - ldr r3, [r2, r3] - cbz r3, .L2174 + ldrb r3, [sp, #16] @ zero_extendqisi2 + movs r2, #36 + strb r3, [r9, #2828] + ldr r9, .L2224+4 +.L2192: + uxth r3, fp + cmp r3, r5 + bcs .L2222 + mul r3, r2, fp + ldr r1, [r10, #748] + adds r0, r1, r3 + ldr r3, [r1, r3] + cbz r3, .L2193 ldr r0, [r0, #4] - add r8, r8, #1 + adds r4, r4, #1 + str r2, [sp, #20] ubfx r0, r0, #10, #16 - uxth r8, r8 + uxth r4, r4 bl FtlBbmMapBadBlock -.L2174: - add r9, r9, #1 - b .L2173 -.L2203: + ldr r2, [sp, #20] +.L2193: + add fp, fp, #1 + b .L2192 +.L2222: ldr r3, [sp, #12] add r7, r7, r3 + ldr r3, [sp, #8] uxth r7, r7 - cmp r7, fp - bcc .L2176 + cmp r7, r3 + bcc .L2195 movs r7, #0 - mov r9, #36 -.L2177: + mov r8, #36 +.L2196: uxth r3, r7 - cmp r3, r6 - bcs .L2204 - ldr r3, [sp, #4] - cbz r3, .L2178 - mul r3, r9, r7 - ldr r2, [r4, #744] + cmp r3, r5 + bcs .L2223 + ldr r3, [sp] + cbz r3, .L2197 + mul r3, r8, r7 + ldr r2, [r9, #748] adds r1, r2, r3 ldr r3, [r2, r3] - cbnz r3, .L2178 + cbnz r3, .L2197 ldr r0, [r1, #4] movs r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L2178: +.L2197: adds r7, r7, #1 - b .L2177 -.L2204: - ldr r3, [sp, #8] - cmp r3, #63 - bls .L2180 + b .L2196 +.L2223: ldr r3, [sp, #4] - cbz r3, .L2181 -.L2180: - ldr r0, [r4, #744] - mov r1, r5 - mov r2, r6 + cmp r3, #63 + bls .L2199 + ldr r3, [sp] + cbz r3, .L2200 +.L2199: + ldr r0, [r9, #748] + mov r1, r6 + mov r2, r5 bl FlashEraseBlocks -.L2181: - mov r0, r8 - b .L2154 -.L2182: +.L2200: + mov r0, r4 + b .L2173 +.L2201: movs r0, #0 -.L2154: - add sp, sp, #20 +.L2173: + add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2206: +.L2225: .align 2 -.L2205: - .word .LANCHOR2 +.L2224: .word .LANCHOR0 + .word .LANCHOR2 .fnend .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 1 @@ -13557,144 +13684,144 @@ FtlBbmTblFlush: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L2219 - ldr r5, [r4, #740] + ldr r4, .L2238 + ldr r5, [r4, #744] cmp r5, #0 - bne .L2209 - ldr r7, .L2219+4 + bne .L2228 + ldr r7, .L2238+4 mov r1, r5 - ldr r0, [r4, #756] - ldr r3, [r4, #1796] - add r8, r7, #2992 - ldrh r2, [r7, #2908] - str r0, [r4, #4056] - str r3, [r4, #4060] + ldr r0, [r4, #1776] + ldr r3, [r4, #1800] + addw r8, r7, #2996 + ldrh r2, [r7, #2920] + str r0, [r4, #4060] + str r3, [r4, #4064] bl ftl_memset -.L2210: - ldrh r3, [r7, #2850] - ldr r6, .L2219+4 +.L2229: + ldrh r3, [r7, #2862] + ldr r6, .L2238+4 cmp r5, r3 - bge .L2218 - ldrh r2, [r4, #1860] - ldr r3, [r4, #4056] + bge .L2237 + ldrh r2, [r4, #1864] + ldr r3, [r4, #4060] ldr r1, [r8, #4]! mul r0, r2, r5 lsls r2, r2, #2 adds r5, r5, #1 add r0, r3, r0, lsl #2 bl ftl_memcpy - b .L2210 -.L2218: - ldr r8, [r4, #4060] + b .L2229 +.L2237: + ldr r8, [r4, #4064] movs r1, #255 movs r2, #16 mov r9, #0 - ldr r10, .L2219 + ldr r10, .L2238 mov r5, r6 mov r0, r8 mov fp, r9 bl memset movw r3, #61649 strh r3, [r8] @ movhi - ldr r3, [r6, #2976] + ldr r3, [r6, #2980] str r3, [r8, #4] - ldrh r3, [r6, #2968] - strh r3, [r8, #2] @ movhi ldrh r3, [r6, #2972] + strh r3, [r8, #2] @ movhi + ldrh r3, [r6, #2976] strh r3, [r8, #8] @ movhi - ldrh r3, [r6, #2974] + ldrh r3, [r6, #2978] strh r3, [r8, #10] @ movhi - ldr r3, [r6, #2824] + ldr r3, [r6, #2836] strh r3, [r8, #12] @ movhi -.L2212: - ldr r3, [r4, #756] +.L2231: + ldr r3, [r4, #1776] movs r6, #0 - ldrh r1, [r7, #2968] - ldrh r2, [r7, #2970] - str r3, [r4, #4056] - ldr r3, [r4, #1796] - str r6, [r4, #4048] + ldrh r1, [r7, #2972] + ldrh r2, [r7, #2974] str r3, [r4, #4060] + ldr r3, [r4, #1800] + str r6, [r4, #4052] + str r3, [r4, #4064] orr r3, r2, r1, lsl #10 ldrh r0, [r8, #10] - str r3, [r4, #4052] - ldrh r3, [r7, #2972] + str r3, [r4, #4056] + ldrh r3, [r7, #2976] str r0, [sp] - ldr r0, .L2219+8 + ldr r0, .L2238+8 bl printk movs r1, #1 - ldr r0, .L2219+12 + ldr r0, .L2238+12 mov r2, r1 mov r3, r1 bl FlashProgPages - ldrh r3, [r7, #2900] - ldrh r2, [r7, #2970] + ldrh r3, [r7, #2912] + ldrh r2, [r7, #2974] subs r3, r3, #1 cmp r2, r3 - blt .L2213 - ldr r3, [r5, #2976] + blt .L2232 + ldr r3, [r5, #2980] movs r1, #1 - ldrh r2, [r5, #2968] + ldrh r2, [r5, #2972] adds r3, r3, #1 - ldr r0, [r10, #744] - str r3, [r5, #2976] + ldr r0, [r10, #748] + str r3, [r5, #2980] str r3, [r8, #4] - ldrh r3, [r5, #2972] + ldrh r3, [r5, #2976] strh r2, [r8, #8] @ movhi - strh r2, [r5, #2972] @ movhi + strh r2, [r5, #2976] @ movhi mov r2, r1 - strh r3, [r5, #2968] @ movhi + strh r3, [r5, #2972] @ movhi lsls r3, r3, #10 - str r3, [r10, #4052] + str r3, [r10, #4056] str r3, [r0, #4] - strh r6, [r5, #2970] @ movhi + strh r6, [r5, #2974] @ movhi bl FlashEraseBlocks movs r1, #1 - ldr r0, .L2219+12 + ldr r0, .L2238+12 mov r2, r1 mov r3, r1 bl FlashProgPages -.L2213: - ldrh r3, [r7, #2970] - ldr r6, .L2219 +.L2232: + ldrh r3, [r7, #2974] + ldr r6, .L2238 adds r3, r3, #1 - strh r3, [r7, #2970] @ movhi - ldr r3, [r4, #4048] + strh r3, [r7, #2974] @ movhi + ldr r3, [r4, #4052] adds r3, r3, #1 - bne .L2214 + bne .L2233 add r9, r9, #1 - ldr r0, .L2219+16 - ldr r1, [r10, #4052] + ldr r0, .L2238+16 + ldr r1, [r10, #4056] uxth r9, r9 bl printk cmp r9, #3 - bls .L2212 - ldr r0, .L2219+20 + bls .L2231 + ldr r0, .L2238+20 mov r2, r9 - ldr r1, [r6, #4052] + ldr r1, [r6, #4056] bl printk movs r3, #1 - str r3, [r6, #740] - b .L2209 -.L2214: + str r3, [r6, #744] + b .L2228 +.L2233: cmp fp, #0 - bne .L2209 + bne .L2228 mov fp, #1 - b .L2212 -.L2209: + b .L2231 +.L2228: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2220: +.L2239: .align 2 -.L2219: +.L2238: .word .LANCHOR2 .word .LANCHOR0 - .word .LC111 - .word .LANCHOR2+4048 - .word .LC112 - .word .LC113 + .word .LC114 + .word .LANCHOR2+4052 + .word .LC115 + .word .LC116 .fnend .size FtlBbmTblFlush, .-FtlBbmTblFlush .align 1 @@ -13709,97 +13836,97 @@ allocate_data_superblock: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r5, r0 - ldr r4, .L2277 + ldr r4, .L2296 .pad #20 sub sp, sp, #20 - ldr r3, [r4, #740] + ldr r3, [r4, #744] cmp r3, #0 - bne .L2222 - ldr r10, .L2277+16 - mov r7, r4 -.L2223: - ldr r3, .L2277+4 + bne .L2241 + ldr r10, .L2296+16 + mov r8, r4 +.L2242: + ldr r3, .L2296+4 ldrb r2, [r5, #8] @ zero_extendqisi2 cmp r5, r3 - bne .L2224 - ldrh lr, [r7, #784] - ldr r6, [r7, #1652] - lsr r1, lr, #1 - mul r0, r6, lr + bne .L2243 + ldrh r7, [r8, #832] + ldr r6, [r8, #1648] + lsrs r1, r7, #1 + mul r0, r6, r7 adds r3, r1, #1 add r3, r3, r0, lsr #2 - ldr r0, [r7, #948] + ldr r0, [r10, #2832] uxth r3, r3 - cbz r0, .L2247 - ldr r0, [r7, #1008] + cbz r0, .L2266 + ldr r0, [r8, #1052] cmp r0, #29 - bhi .L2247 + bhi .L2266 cmp r0, #2 - bls .L2252 - tst lr, #1 - beq .L2225 - cbz r6, .L2249 - b .L2225 -.L2224: + bls .L2271 + lsls r3, r7, #31 + bpl .L2244 + cbz r6, .L2268 + b .L2244 +.L2243: cmp r2, #1 - bne .L2252 - ldrh r3, [r10, #2848] + bne .L2271 + ldrh r3, [r10, #2860] cmp r3, #1 - beq .L2252 + beq .L2271 ldrb r3, [r10, #76] @ zero_extendqisi2 - cbnz r3, .L2252 - ldrh r0, [r7, #784] - ldr r3, [r7, #948] + cbnz r3, .L2271 + ldrh r0, [r8, #832] + ldr r3, [r10, #2832] lsrs r1, r0, #3 - cbz r3, .L2225 - ldr r3, [r7, #1008] + cbz r3, .L2244 + ldr r3, [r8, #1052] cmp r3, #1 - bhi .L2225 + bhi .L2244 rsb r0, r0, r0, lsl #3 ubfx r1, r0, #3, #16 - b .L2225 -.L2247: + b .L2244 +.L2266: mov r1, r3 -.L2225: - cbz r1, .L2226 +.L2244: + cbz r1, .L2245 subs r1, r1, #1 uxth r1, r1 - b .L2226 -.L2249: + b .L2245 +.L2268: mov r1, r6 - b .L2226 -.L2252: + b .L2245 +.L2271: movs r1, #0 -.L2226: - ldr r0, .L2277+8 +.L2245: + ldr r0, .L2296+8 bl List_pop_index_node - ldrh r3, [r4, #784] + ldrh r3, [r4, #832] subs r3, r3, #1 - strh r3, [r4, #784] @ movhi + strh r3, [r4, #832] @ movhi uxth r6, r0 mov r0, r5 strh r6, [r5] @ movhi bl make_superblock ldrb r3, [r5, #7] @ zero_extendqisi2 - cbz r3, .L2227 - ldr r0, [r7, #744] + cbz r3, .L2246 + ldr r0, [r8, #748] movs r2, #36 - ldrh ip, [r10, #2828] - mov r8, #0 + ldrh r7, [r10, #2840] add lr, r5, #14 - ldr r9, .L2277+16 + ldr r9, .L2296+16 mov r3, r0 - mla r1, r2, ip, r0 - mov ip, r8 + mla r1, r2, r7, r0 + movs r7, #0 + mov ip, r7 str r1, [sp] - b .L2228 -.L2227: - ldr r3, [r7, #768] - b .L2272 -.L2228: + b .L2247 +.L2246: + ldr r3, [r8, #816] + b .L2291 +.L2247: ldr r1, [sp] cmp r3, r1 - beq .L2274 + beq .L2293 str ip, [r3, #8] movw fp, #65535 str ip, [r3, #12] @@ -13808,122 +13935,122 @@ allocate_data_superblock: cmp r1, fp itttt ne lslne r1, r1, #10 - mlane fp, r2, r8, r0 - addne r8, r8, #1 - uxthne r8, r8 + mlane fp, r2, r7, r0 + addne r7, r7, #1 + uxthne r7, r7 it ne strne r1, [fp, #4] - b .L2228 -.L2274: - ldr r3, [r4, #948] - cbz r3, .L2232 - ldr r3, .L2277+12 + b .L2247 +.L2293: + ldr r3, [r9, #2832] + cbz r3, .L2251 + ldr r3, .L2296+12 cmp r5, r3 - bne .L2232 - ldr r3, [r7, #748] + bne .L2251 + ldr r3, [r8, #752] ldrh r3, [r3, r6, lsl #1] cmp r3, #30 itt hi movhi r3, #0 - strbhi r3, [r7, #796] -.L2232: + strbhi r3, [r8, #844] +.L2251: ldrb r3, [r5, #8] @ zero_extendqisi2 - ldr r2, [r4, #748] - cbnz r3, .L2233 + ldr r2, [r4, #752] + cbnz r3, .L2252 ldrh r1, [r2, r6, lsl #1] - cbz r1, .L2253 - ldrh r3, [r9, #2888] + cbz r1, .L2272 + ldrh r3, [r9, #2900] add r3, r3, r1 uxth r3, r3 - b .L2234 -.L2253: + b .L2253 +.L2272: movs r3, #2 -.L2234: +.L2253: strh r3, [r2, r6, lsl #1] @ movhi mov r0, r6 - ldr r3, [r4, #992] + ldr r3, [r4, #1036] movs r1, #0 adds r3, r3, #1 - str r3, [r4, #992] + str r3, [r4, #1036] bl ftl_set_blk_mode - b .L2235 -.L2233: + b .L2254 +.L2252: ldrh r3, [r2, r6, lsl #1] lsrs r0, r6, #5 and r1, r6, #31 adds r3, r3, #1 strh r3, [r2, r6, lsl #1] @ movhi - ldr r3, [r4, #996] - ldr r2, [r4, #944] + ldr r3, [r4, #1040] + ldr r2, [r4, #992] adds r3, r3, #1 - str r3, [r4, #996] + str r3, [r4, #1040] movs r3, #1 lsls r3, r3, r1 ldr r1, [r2, r0, lsl #2] orrs r3, r3, r1 str r3, [r2, r0, lsl #2] -.L2235: - ldr r3, [r4, #748] - ldr r2, [r4, #1004] - ldr r0, [r4, #992] +.L2254: + ldr r3, [r4, #752] + ldr r2, [r4, #1048] + ldr r0, [r4, #1036] ldrh r3, [r3, r6, lsl #1] - ldrh r1, [r9, #2836] + ldrh r1, [r9, #2848] cmp r3, r2 - ldrh r2, [r9, #2888] + ldrh r2, [r9, #2900] it hi - strhi r3, [r7, #1004] - ldr r3, [r4, #996] + strhi r3, [r8, #1048] + ldr r3, [r4, #1040] mla r0, r0, r2, r3 bl __aeabi_uidiv - ldr r2, [r4, #1816] - ldr r1, [r4, #744] + ldr r2, [r4, #1820] + ldr r1, [r4, #748] ldr r3, [r2, #16] adds r3, r3, #1 str r3, [r2, #16] movs r3, #36 adds r2, r1, #4 - mla r3, r3, r8, r1 + mla r3, r3, r7, r1 adds r3, r3, #40 - str r0, [r4, #1000] -.L2237: + str r0, [r4, #1044] +.L2256: adds r2, r2, #36 cmp r2, r3 - beq .L2275 + beq .L2294 ldr r1, [r2, #-36] bic r1, r1, #1020 bic r1, r1, #3 str r1, [r2, #-36] - b .L2237 -.L2275: + b .L2256 +.L2294: ldrb r3, [r9, #76] @ zero_extendqisi2 - cbz r3, .L2239 + cbz r3, .L2258 ldrb r3, [r5, #8] @ zero_extendqisi2 - mov r2, r8 - ldr r0, [r4, #744] + mov r2, r7 + ldr r0, [r4, #748] cmp r3, #1 ite eq moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L2239: +.L2258: ldrb r1, [r5, #8] @ zero_extendqisi2 - mov r2, r8 - ldr r0, [r4, #744] + mov r2, r7 + ldr r0, [r4, #748] mov fp, #0 bl FlashEraseBlocks add r1, r5, #16 mov ip, #36 mov r2, fp -.L2241: +.L2260: uxth r3, fp - cmp r3, r8 - bcs .L2276 + cmp r3, r7 + bcs .L2295 mul r3, ip, fp - ldr lr, [r4, #744] + ldr lr, [r4, #748] add r0, lr, r3 ldr r3, [lr, r3] cmp r3, #-1 - bne .L2242 + bne .L2261 ldr r0, [r0, #4] adds r2, r2, #1 str ip, [sp, #12] @@ -13940,51 +14067,51 @@ allocate_data_superblock: ldrb r3, [r5, #7] @ zero_extendqisi2 subs r3, r3, #1 strb r3, [r5, #7] -.L2242: +.L2261: add fp, fp, #1 adds r1, r1, #2 - b .L2241 -.L2276: - cbz r2, .L2244 + b .L2260 +.L2295: + cbz r2, .L2263 mov r0, r6 bl update_multiplier_value bl FtlBbmTblFlush -.L2244: +.L2263: ldrb r3, [r5, #7] @ zero_extendqisi2 - cbnz r3, .L2245 - ldr r3, [r4, #768] -.L2272: + cbnz r3, .L2264 + ldr r3, [r4, #816] +.L2291: movw r2, #65535 strh r2, [r3, r6, lsl #1] @ movhi - b .L2223 -.L2245: - ldrh r2, [r9, #2898] + b .L2242 +.L2264: + ldrh r2, [r9, #2910] strh r6, [r5] @ movhi smulbb r3, r2, r3 movs r2, #0 strh r2, [r5, #2] @ movhi strb r2, [r5, #6] - ldr r2, [r4, #984] + ldr r2, [r4, #1028] uxth r3, r3 strh r3, [r5, #4] @ movhi str r2, [r5, #12] adds r2, r2, #1 - str r2, [r4, #984] - ldr r2, [r4, #768] + str r2, [r4, #1028] + ldr r2, [r4, #816] ldrh r1, [r5] strh r3, [r2, r1, lsl #1] @ movhi -.L2222: +.L2241: movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2278: +.L2297: .align 2 -.L2277: +.L2296: .word .LANCHOR2 - .word .LANCHOR2+884 - .word .LANCHOR2+780 - .word .LANCHOR2+788 + .word .LANCHOR2+932 + .word .LANCHOR2+828 + .word .LANCHOR2+836 .word .LANCHOR0 .fnend .size allocate_data_superblock, .-allocate_data_superblock @@ -14000,77 +14127,77 @@ FtlGcFreeBadSuperBlk: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r5, .L2292 + ldr r5, .L2311 str r0, [sp] - ldrh r3, [r5, #1698] + ldrh r3, [r5, #1694] cmp r3, #0 - beq .L2281 - ldr r7, .L2292+4 + beq .L2300 + ldr r7, .L2311+4 mov r10, #0 mov r8, r5 -.L2280: - ldrh r2, [r7, #2828] +.L2299: + ldrh r2, [r7, #2840] uxth r3, r10 cmp r2, r3 - bls .L2289 + bls .L2308 add r3, r3, r7 ldr r1, [sp] mov fp, #0 - ldrb r0, [r3, #2856] @ zero_extendqisi2 + ldrb r0, [r3, #2868] @ zero_extendqisi2 bl V2P_block - ldr r2, .L2292+8 + ldr r2, .L2311+8 mov r9, r0 -.L2282: - ldrh r3, [r5, #1698] +.L2301: + ldrh r3, [r5, #1694] uxth r4, fp cmp r3, r4 - bls .L2290 + bls .L2309 lsls r6, r4, #1 add r3, r8, r6 - ldrh r3, [r3, #1700] + ldrh r3, [r3, #1696] cmp r3, r9 - bne .L2283 + bne .L2302 mov r1, r9 - ldr r0, .L2292+12 + ldr r0, .L2311+12 str r2, [sp, #4] bl printk mov r0, r9 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh r1, [r8, #1698] ldr r2, [sp, #4] + ldrh r1, [r8, #1694] adds r3, r2, r6 -.L2284: +.L2303: cmp r4, r1 - bcs .L2291 + bcs .L2310 ldrh r0, [r3, #2] adds r4, r4, #1 uxth r4, r4 strh r0, [r3], #2 @ movhi - b .L2284 -.L2291: + b .L2303 +.L2310: subs r1, r1, #1 - strh r1, [r5, #1698] @ movhi -.L2283: + strh r1, [r5, #1694] @ movhi +.L2302: add fp, fp, #1 - b .L2282 -.L2290: + b .L2301 +.L2309: add r10, r10, #1 - b .L2280 -.L2289: + b .L2299 +.L2308: bl FtlGcReFreshBadBlk -.L2281: +.L2300: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2293: +.L2312: .align 2 -.L2292: +.L2311: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+1700 - .word .LC114 + .word .LANCHOR2+1696 + .word .LC117 .fnend .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .align 1 @@ -14082,53 +14209,53 @@ update_vpc_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2303 + ldr r2, .L2322 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, r0 - ldr r3, [r2, #768] + ldr r3, [r2, #816] mov r5, r2 ldrh r3, [r3, r0, lsl #1] - cbnz r3, .L2295 - ldrh r1, [r2, #1076] + cbnz r3, .L2314 + ldrh r1, [r2, #1072] cmp r1, r0 - bne .L2296 + bne .L2315 movw r3, #65535 - strh r3, [r2, #1076] @ movhi - b .L2297 -.L2296: - ldrh r1, [r2, #788] - cmp r1, r0 - beq .L2302 + strh r3, [r2, #1072] @ movhi + b .L2316 +.L2315: ldrh r1, [r2, #836] cmp r1, r0 - beq .L2302 - ldrh r2, [r2, #884] + beq .L2321 + ldrh r1, [r2, #884] + cmp r1, r0 + beq .L2321 + ldrh r2, [r2, #932] cmp r2, r0 - beq .L2302 -.L2297: + beq .L2321 +.L2316: mov r1, r4 - ldr r0, .L2303+4 + ldr r0, .L2322+4 bl List_remove_node - ldrh r3, [r5, #776] + ldrh r3, [r5, #824] mov r0, r4 subs r3, r3, #1 - strh r3, [r5, #776] @ movhi + strh r3, [r5, #824] @ movhi bl free_data_superblock mov r0, r4 bl FtlGcFreeBadSuperBlk movs r0, #1 pop {r3, r4, r5, pc} -.L2295: +.L2314: bl List_update_data_list -.L2302: +.L2321: movs r0, #0 pop {r3, r4, r5, pc} -.L2304: +.L2323: .align 2 -.L2303: +.L2322: .word .LANCHOR2 - .word .LANCHOR2+764 + .word .LANCHOR2+812 .fnend .size update_vpc_list, .-update_vpc_list .align 1 @@ -14145,45 +14272,45 @@ decrement_vpc_count: movw r3, #65535 cmp r0, r3 mov r5, r0 - ldr r3, .L2311 - beq .L2306 - ldr r2, [r3, #768] + ldr r3, .L2330 + beq .L2325 + ldr r2, [r3, #816] ldrh r4, [r2, r0, lsl #1] - cbnz r4, .L2307 + cbnz r4, .L2326 mov r1, r5 mov r2, r4 - ldr r0, .L2311+4 + ldr r0, .L2330+4 bl printk mov r0, r4 pop {r3, r4, r5, pc} -.L2307: +.L2326: subs r4, r4, #1 strh r4, [r2, r0, lsl #1] @ movhi -.L2306: - ldrh r0, [r3, #1916] +.L2325: + ldrh r0, [r3, #1920] movw r3, #65535 - ldr r4, .L2311 + ldr r4, .L2330 cmp r0, r3 - bne .L2309 - strh r5, [r4, #1916] @ movhi - b .L2310 -.L2309: + bne .L2328 + strh r5, [r4, #1920] @ movhi + b .L2329 +.L2328: cmp r0, r5 - beq .L2310 + beq .L2329 bl update_vpc_list - strh r5, [r4, #1916] @ movhi + strh r5, [r4, #1920] @ movhi adds r0, r0, #0 it ne movne r0, #1 pop {r3, r4, r5, pc} -.L2310: +.L2329: movs r0, #0 pop {r3, r4, r5, pc} -.L2312: +.L2331: .align 2 -.L2311: +.L2330: .word .LANCHOR2 - .word .LC115 + .word .LC118 .fnend .size decrement_vpc_count, .-decrement_vpc_count .align 1 @@ -14200,22 +14327,22 @@ FtlSlcSuperblockCheck: mov r4, r0 ldrh r3, [r0, #4] cmp r3, #0 - beq .L2313 + beq .L2332 ldrh r3, [r0] movw r5, #65535 cmp r3, r5 - beq .L2313 + beq .L2332 ldrb r3, [r0, #6] @ zero_extendqisi2 movs r7, #0 - ldr r6, .L2325 + ldr r6, .L2344 adds r3, r3, #8 ldrh r3, [r0, r3, lsl #1] -.L2317: +.L2336: cmp r3, r5 - bne .L2324 -.L2319: + bne .L2343 +.L2338: ldrb r3, [r4, #6] @ zero_extendqisi2 - ldrh r2, [r6, #2828] + ldrh r2, [r6, #2840] adds r3, r3, #1 uxtb r3, r3 strb r3, [r4, #6] @@ -14228,18 +14355,18 @@ FtlSlcSuperblockCheck: ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #8 ldrh r3, [r4, r3, lsl #1] - b .L2317 -.L2324: + b .L2336 +.L2343: ldrb r1, [r4, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L2320 + bne .L2339 ldrb r3, [r6, #76] @ zero_extendqisi2 - cbnz r3, .L2320 + cbnz r3, .L2339 ldrh r3, [r4, #2] add r3, r6, r3, lsl #1 ldrh r3, [r3, #592] cmp r3, r5 - bne .L2320 + bne .L2339 ldrh r3, [r4, #4] ldrh r0, [r4] subs r3, r3, #1 @@ -14247,39 +14374,39 @@ FtlSlcSuperblockCheck: bl decrement_vpc_count ldrh r2, [r4, #4] cmp r2, #0 - bne .L2319 + bne .L2338 ldrh r3, [r4, #2] strb r2, [r4, #6] adds r3, r3, #1 strh r3, [r4, #2] @ movhi pop {r3, r4, r5, r6, r7, pc} -.L2320: - ldr r2, .L2325 +.L2339: + ldr r2, .L2344 ldrb r3, [r2, #76] @ zero_extendqisi2 - cbz r3, .L2313 + cbz r3, .L2332 cmp r1, #1 - bne .L2313 + bne .L2332 ldrh r1, [r4, #2] - ldrh r3, [r2, #2900] + ldrh r3, [r2, #2912] cmp r1, r3 - bcc .L2313 - ldr r3, .L2325+4 + bcc .L2332 + ldr r3, .L2344+4 ldrh r0, [r4] ldrh r5, [r4, #4] - ldr r1, [r3, #768] + ldr r1, [r3, #816] ldrh r3, [r1, r0, lsl #1] subs r3, r3, r5 strh r3, [r1, r0, lsl #1] @ movhi - ldrh r2, [r2, #2898] + ldrh r2, [r2, #2910] movs r3, #0 strh r3, [r4, #4] @ movhi strb r3, [r4, #6] strh r2, [r4, #2] @ movhi -.L2313: +.L2332: pop {r3, r4, r5, r6, r7, pc} -.L2326: +.L2345: .align 2 -.L2325: +.L2344: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -14301,15 +14428,15 @@ get_new_active_ppa: strb r6, [r0, #10] movw r8, #65535 adds r3, r3, #8 - ldr r5, .L2344 + ldr r5, .L2363 ldrh r2, [r0, r3, lsl #1] -.L2328: +.L2347: cmp r2, r8 - ldr r7, .L2344 - bne .L2343 -.L2329: + ldr r7, .L2363 + bne .L2362 +.L2348: ldrb r3, [r4, #6] @ zero_extendqisi2 - ldrh r2, [r5, #2828] + ldrh r2, [r5, #2840] adds r3, r3, #1 uxtb r3, r3 strb r3, [r4, #6] @@ -14322,34 +14449,34 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #8 ldrh r2, [r4, r3, lsl #1] - b .L2328 -.L2343: + b .L2347 +.L2362: ldrb r3, [r4, #8] @ zero_extendqisi2 ldrh r1, [r4, #2] cmp r3, #1 ldrh r3, [r4, #4] - bne .L2331 + bne .L2350 ldrb r0, [r5, #76] @ zero_extendqisi2 - cbnz r0, .L2331 + cbnz r0, .L2350 add r0, r5, r1, lsl #1 ldrh r0, [r0, #592] cmp r0, r8 - bne .L2331 + bne .L2350 subs r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2329 -.L2331: + b .L2348 +.L2350: movw r6, #65535 orr r5, r1, r2, lsl #10 mov r8, r6 subs r3, r3, #1 strh r3, [r4, #4] @ movhi -.L2332: +.L2351: ldrb r3, [r4, #6] @ zero_extendqisi2 - ldrh r1, [r7, #2828] -.L2334: + ldrh r1, [r7, #2840] +.L2353: adds r3, r3, #1 uxtb r3, r3 cmp r3, r1 @@ -14361,52 +14488,52 @@ get_new_active_ppa: add r2, r3, #8 ldrh r2, [r4, r2, lsl #1] cmp r2, r6 - beq .L2334 + beq .L2353 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L2339 + bne .L2358 ldrb r3, [r7, #76] @ zero_extendqisi2 - cbnz r3, .L2336 + cbnz r3, .L2355 ldrh r2, [r4, #2] - ldr r3, .L2344 + ldr r3, .L2363 add r3, r3, r2, lsl #1 ldrh r3, [r3, #592] cmp r3, r8 - bne .L2336 + bne .L2355 ldrh r3, [r4, #4] - cbz r3, .L2336 + cbz r3, .L2355 subs r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2332 -.L2336: + b .L2351 +.L2355: ldrb r3, [r7, #76] @ zero_extendqisi2 - ldr r2, .L2344 - cbz r3, .L2339 + ldr r2, .L2363 + cbz r3, .L2358 ldrh r1, [r4, #2] - ldrh r3, [r2, #2900] + ldrh r3, [r2, #2912] cmp r1, r3 - bcc .L2339 - ldr r3, .L2344+4 + bcc .L2358 + ldr r3, .L2363+4 ldrh r0, [r4] ldrh r6, [r4, #4] - ldr r1, [r3, #768] + ldr r1, [r3, #816] ldrh r3, [r1, r0, lsl #1] subs r3, r3, r6 strh r3, [r1, r0, lsl #1] @ movhi - ldrh r2, [r2, #2898] + ldrh r2, [r2, #2910] movs r3, #0 strh r3, [r4, #4] @ movhi strb r3, [r4, #6] strh r2, [r4, #2] @ movhi -.L2339: +.L2358: mov r0, r5 pop {r4, r5, r6, r7, r8, pc} -.L2345: +.L2364: .align 2 -.L2344: +.L2363: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -14422,190 +14549,190 @@ FtlVpcTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - ldr r4, .L2365 - ldr r3, [r4, #740] + ldr r4, .L2384 + ldr r3, [r4, #744] cmp r3, #0 - bne .L2348 - ldr r2, [r4, #756] + bne .L2367 + ldr r2, [r4, #1776] movs r1, #255 - ldr r7, [r4, #1796] - ldr r5, .L2365+4 - str r2, [r4, #4056] - ldrh r2, [r4, #1064] - str r7, [r4, #4060] + ldr r7, [r4, #1800] + ldr r5, .L2384+4 + str r2, [r4, #4060] + ldrh r2, [r4, #1060] + str r7, [r4, #4064] str r3, [r7, #12] strh r2, [r7, #2] @ movhi movw r2, #61604 strh r2, [r7] @ movhi - ldr r2, [r4, #1072] + ldr r2, [r4, #1068] str r3, [r7, #8] - ldr r3, .L2365+8 + ldr r3, .L2384+8 str r2, [r7, #4] - ldrh r2, [r4, #790] - str r3, [r4, #1012] - ldr r3, .L2365+12 - str r3, [r4, #1016] - ldrh r3, [r4, #1070] - strh r3, [r4, #1020] @ movhi - ldrh r3, [r5, #2850] - strb r3, [r4, #1022] - ldrh r3, [r4, #788] - strh r3, [r4, #1026] @ movhi - ldrb r3, [r4, #794] @ zero_extendqisi2 - orr r3, r3, r2, lsl #6 - strh r3, [r4, #1028] @ movhi - ldrb r3, [r4, #796] @ zero_extendqisi2 ldrh r2, [r4, #838] - strb r3, [r4, #1023] + str r3, [r4, #760] + ldr r3, .L2384+12 + str r3, [r4, #764] + ldrh r3, [r4, #1066] + strh r3, [r4, #768] @ movhi + ldrh r3, [r5, #2862] + strb r3, [r4, #770] ldrh r3, [r4, #836] - strh r3, [r4, #1030] @ movhi + strh r3, [r4, #774] @ movhi ldrb r3, [r4, #842] @ zero_extendqisi2 orr r3, r3, r2, lsl #6 - strh r3, [r4, #1032] @ movhi + strh r3, [r4, #776] @ movhi ldrb r3, [r4, #844] @ zero_extendqisi2 - strb r3, [r4, #1024] - ldrh r3, [r4, #884] - strh r3, [r4, #1034] @ movhi ldrh r2, [r4, #886] + strb r3, [r4, #771] + ldrh r3, [r4, #884] + strh r3, [r4, #778] @ movhi ldrb r3, [r4, #890] @ zero_extendqisi2 - ldr r0, [r4, #4056] orr r3, r3, r2, lsl #6 - strh r3, [r4, #1036] @ movhi + strh r3, [r4, #780] @ movhi ldrb r3, [r4, #892] @ zero_extendqisi2 - ldrh r2, [r5, #2908] - strb r3, [r4, #1025] - ldr r3, [r4, #992] - str r3, [r4, #1044] - ldr r3, [r4, #984] - str r3, [r4, #1052] - ldr r3, [r4, #988] - str r3, [r4, #1048] + strb r3, [r4, #772] + ldrh r3, [r4, #932] + strh r3, [r4, #782] @ movhi + ldrh r2, [r4, #934] + ldrb r3, [r4, #938] @ zero_extendqisi2 + ldr r0, [r4, #4060] + orr r3, r3, r2, lsl #6 + strh r3, [r4, #784] @ movhi + ldrb r3, [r4, #940] @ zero_extendqisi2 + ldrh r2, [r5, #2920] + strb r3, [r4, #773] + ldr r3, [r4, #1036] + str r3, [r4, #792] + ldr r3, [r4, #1028] + str r3, [r4, #800] + ldr r3, [r4, #1032] + str r3, [r4, #796] bl ftl_memset - add r1, r4, #1012 + add r1, r4, #760 movs r2, #48 - ldr r0, [r4, #4056] + ldr r0, [r4, #4060] bl ftl_memcpy - ldrh r2, [r5, #2836] - ldr r0, [r4, #4056] - ldr r1, [r4, #768] + ldrh r2, [r5, #2848] + ldr r0, [r4, #4060] + ldr r1, [r4, #816] lsls r2, r2, #1 adds r0, r0, #48 bl ftl_memcpy - ldrh r2, [r5, #2836] - ldr r0, [r4, #4056] + ldrh r2, [r5, #2848] + ldr r0, [r4, #4060] add r3, r2, #24 - ldr r1, [r4, #944] + ldr r1, [r4, #992] ubfx r3, r3, #1, #30 lsrs r2, r2, #3 adds r2, r2, #4 add r0, r0, r3, lsl #2 bl ftl_memcpy - ldrh r3, [r5, #2944] - cbz r3, .L2349 - ldrh r2, [r5, #2836] - ldr r0, [r4, #4056] - ldr r1, [r4, #1844] + ldrh r3, [r5, #2952] + cbz r3, .L2368 + ldrh r2, [r5, #2848] + ldr r0, [r4, #4060] + ldr r1, [r4, #1848] lsrs r3, r2, #3 add r3, r3, r2, lsl #1 - ldrh r2, [r5, #2936] + ldrh r2, [r5, #2948] adds r3, r3, #52 ubfx r3, r3, #2, #14 lsls r2, r2, #2 add r0, r0, r3, lsl #2 bl ftl_memcpy -.L2349: +.L2368: movs r0, #0 - ldr r6, .L2365 + ldr r6, .L2384 bl FtlUpdateVaildLpn mov r8, #0 movw r9, #65535 -.L2350: - ldr r3, [r4, #756] +.L2369: + ldr r3, [r4, #1776] movs r1, #1 - ldrh r2, [r4, #1064] - ldr r0, .L2365+16 - str r3, [r4, #4056] - ldr r3, [r4, #1796] + ldrh r2, [r4, #1060] + ldr r0, .L2384+16 str r3, [r4, #4060] - ldrh r3, [r4, #1066] + ldr r3, [r4, #1800] + str r3, [r4, #4064] + ldrh r3, [r4, #1062] orr r3, r3, r2, lsl #10 mov r2, r1 - str r3, [r4, #4052] + str r3, [r4, #4056] mov r3, r1 bl FlashProgPages - ldrh r3, [r5, #2900] - ldrh r2, [r4, #1066] + ldrh r3, [r5, #2912] + ldrh r2, [r4, #1062] subs r3, r3, #1 cmp r2, r3 - blt .L2351 - ldrh r3, [r6, #1064] - ldrh r9, [r6, #1068] - strh r3, [r6, #1068] @ movhi + blt .L2370 + ldrh r3, [r6, #1060] + ldrh r9, [r6, #1064] + strh r3, [r6, #1064] @ movhi movs r3, #0 - strh r3, [r6, #1066] @ movhi + strh r3, [r6, #1062] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, [r6, #984] + ldr r3, [r6, #1028] movs r1, #1 adds r2, r3, #1 - str r2, [r6, #984] - str r3, [r6, #1072] + str r2, [r6, #1028] + str r3, [r6, #1068] lsls r2, r0, #10 - strh r0, [r6, #1064] @ movhi - str r2, [r6, #4052] + strh r0, [r6, #1060] @ movhi + str r2, [r6, #4056] mov r2, r1 str r3, [r7, #4] mov r3, r1 strh r0, [r7, #2] @ movhi - ldr r0, .L2365+16 + ldr r0, .L2384+16 bl FlashProgPages -.L2351: - ldrh r3, [r4, #1066] - ldr r2, [r4, #4048] +.L2370: + ldrh r3, [r4, #1062] + ldr r2, [r4, #4052] adds r3, r3, #1 adds r1, r2, #1 uxth r3, r3 - strh r3, [r4, #1066] @ movhi - bne .L2352 + strh r3, [r4, #1062] @ movhi + bne .L2371 cmp r3, #1 add r8, r8, #1 it eq - ldrheq r3, [r5, #2900] + ldrheq r3, [r5, #2912] uxth r8, r8 itt eq addeq r3, r3, #-1 - strheq r3, [r6, #1066] @ movhi + strheq r3, [r6, #1062] @ movhi cmp r8, #3 - bls .L2350 - ldr r0, .L2365+20 + bls .L2369 + ldr r0, .L2384+20 mov r2, r8 - ldr r1, [r4, #4052] + ldr r1, [r4, #4056] bl printk movs r3, #1 - str r3, [r4, #740] - b .L2348 -.L2352: + str r3, [r4, #744] + b .L2367 +.L2371: cmp r3, #1 - beq .L2350 + beq .L2369 cmp r2, #256 - beq .L2350 + beq .L2369 movw r3, #65535 cmp r9, r3 - beq .L2348 + beq .L2367 mov r0, r9 movs r1, #1 bl FtlFreeSysBlkQueueIn -.L2348: +.L2367: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L2366: +.L2385: .align 2 -.L2365: +.L2384: .word .LANCHOR2 .word .LANCHOR0 .word 1179929683 - .word 1342177351 - .word .LANCHOR2+4048 - .word .LC116 + .word 1342177352 + .word .LANCHOR2+4052 + .word .LC119 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush .align 1 @@ -14620,37 +14747,37 @@ FtlSuperblockPowerLostFix: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r4, r0 - ldr r7, .L2381 + ldr r7, .L2400 .pad #40 sub sp, sp, #40 ldrb r3, [r7, #76] @ zero_extendqisi2 - cbz r3, .L2376 + cbz r3, .L2395 ldrb r5, [r0, #8] @ zero_extendqisi2 cmp r5, #1 - bne .L2376 + bne .L2395 ldrh r6, [r0, #4] - b .L2368 -.L2376: + b .L2387 +.L2395: movs r5, #0 movs r6, #12 -.L2368: - ldr r10, .L2381+4 +.L2387: + ldr r10, .L2400+4 mov r8, #-1 mov r9, #0 -.L2369: +.L2388: adds r6, r6, #-1 - bcc .L2371 + bcc .L2390 ldrh r3, [r4, #4] - cbnz r3, .L2370 -.L2371: - ldr r3, .L2381+4 + cbnz r3, .L2389 +.L2390: + ldr r3, .L2400+4 ldrh r1, [r4] ldrh r0, [r4, #4] - ldr r2, [r3, #768] + ldr r2, [r3, #816] ldrh r3, [r2, r1, lsl #1] subs r3, r3, r0 strh r3, [r2, r1, lsl #1] @ movhi - ldrh r3, [r7, #2898] + ldrh r3, [r7, #2910] strh r3, [r4, #2] @ movhi movs r3, #0 strb r3, [r4, #6] @@ -14658,16 +14785,16 @@ FtlSuperblockPowerLostFix: add sp, sp, #40 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L2370: +.L2389: mov r0, r4 bl get_new_active_ppa str r0, [sp, #8] adds r0, r0, #1 - beq .L2371 - ldr r2, [r10, #1796] - movs r1, #1 - ldr r3, [r10, #756] + beq .L2390 + ldr r2, [r10, #1800] add r0, sp, #4 + ldr r3, [r10, #1776] + movs r1, #1 str r8, [sp, #20] str r2, [sp, #16] str r3, [sp, #12] @@ -14676,22 +14803,22 @@ FtlSuperblockPowerLostFix: ldrh r3, [r4] strh r9, [r2] @ movhi strh r3, [r2, #2] @ movhi - ldr r3, [r10, #988] + ldr r3, [r10, #1032] str r3, [r2, #4] adds r3, r3, #1 adds r2, r3, #1 mov r2, r5 it eq moveq r3, #0 - str r3, [r10, #988] + str r3, [r10, #1032] movs r3, #0 bl FlashProgPages ldrh r0, [r4] bl decrement_vpc_count - b .L2369 -.L2382: + b .L2388 +.L2401: .align 2 -.L2381: +.L2400: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -14716,49 +14843,49 @@ ftl_map_blk_gc: sub r3, ip, #4 ldrh r1, [r4, #40] cmp r2, r3 - ldr r7, .L2404 - bge .L2384 + ldr r7, .L2423 + bge .L2403 movw r3, #65535 cmp r1, r3 - beq .L2386 + beq .L2405 ldrh r2, [r4, #2] - ldrh r3, [r7, #2900] + ldrh r3, [r7, #2912] cmp r2, r3 - bcc .L2386 -.L2384: + bcc .L2405 +.L2403: movw r3, #65535 cmp r1, r3 uxth r5, r0 - beq .L2388 + beq .L2407 ldrh r3, [r4, #2] - ldrh r2, [r7, #2900] + ldrh r2, [r7, #2912] cmp r2, r3 - bhi .L2388 + bhi .L2407 movs r2, #0 -.L2389: +.L2408: uxth lr, r2 cmp lr, ip - bcs .L2390 + bcs .L2409 adds r2, r2, #1 add r0, r6, r2, lsl #1 ldrh r0, [r0, #-2] cmp r0, r1 - bne .L2389 + bne .L2408 mov r5, lr -.L2390: - ldr r0, .L2404+4 +.L2409: + ldr r0, .L2423+4 ldrh r2, [r6, lr, lsl #1] bl printk movw r3, #65535 strh r3, [r4, #40] @ movhi -.L2388: +.L2407: ldrh r9, [r6, r5, lsl #1] lsls r2, r5, #1 cmp r9, #0 - beq .L2386 + beq .L2405 ldr r3, [r4, #32] cmp r3, #0 - bne .L2386 + bne .L2405 movs r1, #1 str r1, [r4, #32] strh r3, [r6, r2] @ movhi @@ -14766,76 +14893,76 @@ ftl_map_blk_gc: ldrh r2, [r4, #2] subs r3, r3, #1 strh r3, [r4, #8] @ movhi - ldrh r3, [r7, #2900] + ldrh r3, [r7, #2912] cmp r2, r3 - bcc .L2392 + bcc .L2411 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2392: - ldr r5, .L2404+8 +.L2411: + ldr r5, .L2423+8 mov r10, #0 -.L2393: +.L2412: ldrh r3, [r4, #6] uxth r6, r10 cmp r3, r6 - bls .L2403 + bls .L2422 ldr r3, [r8, r6, lsl #2] cmp r9, r3, lsr #10 - bne .L2394 - ldr r3, [r5, #1776] + bne .L2413 + ldr r3, [r5, #1780] movs r1, #1 - ldr fp, [r5, #1796] - ldr r0, .L2404+12 + ldr fp, [r5, #1800] + ldr r0, .L2423+12 mov r2, r1 - str r3, [r5, #4056] - str fp, [r5, #4060] + str r3, [r5, #4060] + str fp, [r5, #4064] ldr r3, [r8, r6, lsl #2] - str r3, [r5, #4052] + str r3, [r5, #4056] bl FlashReadPages - ldr r3, [r5, #4048] + ldr r3, [r5, #4052] adds r3, r3, #1 - bne .L2395 + bne .L2414 movs r3, #0 - ldr r0, .L2404+16 + ldr r0, .L2423+16 str r3, [r8, r6, lsl #2] - ldr r1, [r5, #4052] + ldr r1, [r5, #4056] ldrh r2, [fp, #8] bl printk movs r3, #1 - str r3, [r5, #740] - b .L2394 -.L2395: + str r3, [r5, #744] + b .L2413 +.L2414: mov r0, r4 mov r1, r6 - ldr r2, [r5, #4056] + ldr r2, [r5, #4060] bl FtlMapWritePage -.L2394: +.L2413: add r10, r10, #1 - b .L2393 -.L2403: + b .L2412 +.L2422: mov r0, r9 movs r1, #1 bl FtlFreeSysBlkQueueIn movs r3, #0 str r3, [r4, #32] -.L2386: +.L2405: ldrh r2, [r4, #2] - ldrh r3, [r7, #2900] + ldrh r3, [r7, #2912] cmp r2, r3 - bcc .L2397 + bcc .L2416 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2397: +.L2416: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2405: +.L2424: .align 2 -.L2404: +.L2423: .word .LANCHOR0 - .word .LC117 + .word .LC120 .word .LANCHOR2 - .word .LANCHOR2+4048 - .word .LC118 + .word .LANCHOR2+4052 + .word .LC121 .fnend .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 1 @@ -14850,16 +14977,16 @@ Ftl_write_map_blk_to_last_page: push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r4, r0 - ldr r5, .L2413 + ldr r5, .L2432 ldr r7, [r0, #12] ldr r8, [r0, #24] - ldr r6, [r5, #740] + ldr r6, [r5, #744] cmp r6, #0 - bne .L2407 + bne .L2426 ldrh r3, [r0] movw r2, #65535 cmp r3, r2 - bne .L2408 + bne .L2427 ldrh r3, [r0, #8] adds r3, r3, #1 strh r3, [r0, #8] @ movhi @@ -14870,53 +14997,53 @@ Ftl_write_map_blk_to_last_page: adds r3, r3, #1 strh r6, [r4] @ movhi str r3, [r4, #28] - b .L2407 -.L2408: + b .L2426 +.L2427: ldrh r7, [r7, r3, lsl #1] movs r1, #255 ldrh r3, [r0, #2] ldr r2, [r0, #28] orr r3, r3, r7, lsl #10 - str r3, [r5, #4052] - ldr r3, [r5, #756] str r3, [r5, #4056] - ldr r3, [r5, #1796] + ldr r3, [r5, #1776] str r3, [r5, #4060] + ldr r3, [r5, #1800] + str r3, [r5, #4064] str r2, [r3, #4] movw r2, #64245 strh r2, [r3, #8] @ movhi ldrh r2, [r0, #4] strh r7, [r3, #2] @ movhi strh r2, [r3] @ movhi - ldr r3, .L2413+4 - ldr r0, [r5, #756] - ldrh r2, [r3, #2900] + ldr r3, .L2432+4 + ldr r0, [r5, #1776] + ldrh r2, [r3, #2912] lsls r2, r2, #3 bl ftl_memset mov r3, r6 -.L2409: +.L2428: ldrh r1, [r4, #6] uxth r2, r6 cmp r1, r2 - bls .L2412 + bls .L2431 ldr r1, [r8, r2, lsl #2] cmp r7, r1, lsr #10 - bne .L2410 + bne .L2429 adds r3, r3, #1 - ldr r1, [r5, #756] + ldr r1, [r5, #1776] uxth r3, r3 str r2, [r1, r3, lsl #3] ldr r1, [r8, r2, lsl #2] - ldr r2, [r5, #756] + ldr r2, [r5, #1776] add r2, r2, r3, lsl #3 str r1, [r2, #4] -.L2410: +.L2429: adds r6, r6, #1 - b .L2409 -.L2412: + b .L2428 +.L2431: movs r1, #1 movs r3, #0 - ldr r0, .L2413+8 + ldr r0, .L2432+8 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -14924,15 +15051,15 @@ Ftl_write_map_blk_to_last_page: adds r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L2407: +.L2426: movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L2414: +.L2433: .align 2 -.L2413: +.L2432: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+4048 + .word .LANCHOR2+4052 .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 1 @@ -14948,48 +15075,48 @@ FtlMapWritePage: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r5, r0 - ldr r4, .L2436 + ldr r4, .L2455 mov r7, r1 str r2, [sp, #4] - ldr r6, [r4, #740] + ldr r6, [r4, #744] cmp r6, #0 - bne .L2431 - ldr r8, .L2436+16 + bne .L2450 + ldr r8, .L2455+16 mov fp, r4 mov r10, r8 -.L2417: - ldr r3, [r4, #968] +.L2436: + ldr r3, [r4, #1012] adds r3, r3, #1 - str r3, [r4, #968] - ldrh r3, [r8, #2900] + str r3, [r4, #1012] + ldrh r3, [r8, #2912] ldrh r2, [r5, #2] subs r3, r3, #1 cmp r2, r3 - bge .L2418 + bge .L2437 ldrh r2, [r5] movw r3, #65535 cmp r2, r3 - bne .L2419 -.L2418: + bne .L2438 +.L2437: mov r0, r5 bl Ftl_write_map_blk_to_last_page -.L2419: +.L2438: ldrh r2, [r5] movs r1, #16 ldr r3, [r5, #12] - ldr r0, [r4, #1796] + ldr r0, [r4, #1800] ldrh r9, [r3, r2, lsl #1] ldrh r3, [r5, #2] - str r0, [r4, #4060] + str r0, [r4, #4064] orr r3, r3, r9, lsl #10 - str r3, [r4, #4052] - ldr r3, [sp, #4] str r3, [r4, #4056] + ldr r3, [sp, #4] + str r3, [r4, #4060] bl __memzero - ldr r3, [r4, #4060] + ldr r3, [r4, #4064] movs r1, #1 ldr r2, [r5, #28] - ldr r0, .L2436+4 + ldr r0, .L2455+4 strh r7, [r3, #8] @ movhi str r2, [r3, #4] ldrh r2, [r5, #4] @@ -15002,136 +15129,59 @@ FtlMapWritePage: adds r3, r3, #1 uxth r3, r3 strh r3, [r5, #2] @ movhi - ldr r2, [r4, #4048] + ldr r2, [r4, #4052] adds r1, r2, #1 - bne .L2420 - ldr r0, .L2436+8 + bne .L2439 + ldr r0, .L2455+8 adds r6, r6, #1 - ldr r1, [fp, #4052] + ldr r1, [fp, #4056] bl printk ldrh r3, [r5, #2] uxth r6, r6 cmp r3, #2 ittt ls - ldrhls r3, [r10, #2900] + ldrhls r3, [r10, #2912] addls r3, r3, #-1 strhls r3, [r5, #2] @ movhi cmp r6, #3 - bls .L2417 - ldr r0, .L2436+12 + bls .L2436 + ldr r0, .L2455+12 mov r2, r6 - ldr r1, [r4, #4052] + ldr r1, [r4, #4056] bl printk movs r3, #1 - str r3, [r4, #740] - b .L2431 -.L2420: - cbz r2, .L2423 + str r3, [r4, #744] + b .L2450 +.L2439: + cbz r2, .L2442 cmp r3, #1 strh r9, [r5, #40] @ movhi - beq .L2417 + beq .L2436 cmp r2, #256 - b .L2435 -.L2423: + b .L2454 +.L2442: cmp r3, #1 -.L2435: - beq .L2417 - ldr r2, [r4, #4052] +.L2454: + beq .L2436 + ldr r2, [r4, #4056] ldr r3, [r5, #24] str r2, [r3, r7, lsl #2] -.L2431: +.L2450: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2437: +.L2456: .align 2 -.L2436: +.L2455: .word .LANCHOR2 - .word .LANCHOR2+4048 - .word .LC119 - .word .LC120 + .word .LANCHOR2+4052 + .word .LC122 + .word .LC123 .word .LANCHOR0 .fnend .size FtlMapWritePage, .-FtlMapWritePage .align 1 - .global load_l2p_region - .thumb - .thumb_func - .type load_l2p_region, %function -load_l2p_region: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - mov r7, r0 - ldr r8, .L2442+8 - ldr r3, [r8, #1844] - mov r5, r8 - ldr r6, [r3, r0, lsl #2] - movs r3, #12 - cbnz r6, .L2439 - mul r4, r3, r1 - ldr r3, [r8, #932] - movs r1, #255 - add r3, r3, r4 - ldr r0, [r3, #8] - ldr r3, .L2442 - ldrh r2, [r3, #2908] - bl ftl_memset - ldr r3, [r8, #932] - strh r7, [r3, r4] @ movhi - ldr r3, [r8, #932] - add r4, r4, r3 - str r6, [r4, #4] - b .L2440 -.L2439: - mul r4, r3, r1 - ldr r3, [r8, #932] - movs r1, #1 - add r0, r8, #4048 - str r6, [r8, #4052] - add r3, r3, r4 - mov r2, r1 - ldr r3, [r3, #8] - str r3, [r8, #4056] - ldr r3, [r8, #1796] - str r3, [r8, #4060] - bl FlashReadPages - ldr r3, [r8, #4048] - cmp r3, #256 - bne .L2441 - mov r2, r6 - mov r1, r7 - ldr r0, .L2442+4 - lsrs r6, r6, #10 - bl printk - ldr r3, [r8, #932] - strh r6, [r8, #1904] @ movhi - add r0, r8, #1864 - add r3, r3, r4 - mov r1, r7 - ldr r2, [r3, #8] - bl FtlMapWritePage -.L2441: - ldr r3, [r5, #932] - movs r1, #0 - adds r2, r3, r4 - str r1, [r2, #4] - strh r7, [r3, r4] @ movhi -.L2440: - movs r0, #0 - pop {r4, r5, r6, r7, r8, pc} -.L2443: - .align 2 -.L2442: - .word .LANCHOR0 - .word .LC121 - .word .LANCHOR2 - .fnend - .size load_l2p_region, .-load_l2p_region - .align 1 .global flush_l2p_region .thumb .thumb_func @@ -15143,203 +15193,28 @@ flush_l2p_region: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r4, #12 - ldr r5, .L2445 + ldr r5, .L2458 muls r4, r0, r4 - add r0, r5, #1864 - ldr r3, [r5, #932] + addw r0, r5, #1868 + ldr r3, [r5, #980] adds r2, r3, r4 ldrh r1, [r3, r4] ldr r2, [r2, #8] bl FtlMapWritePage - ldr r3, [r5, #932] + ldr r3, [r5, #980] movs r0, #0 add r4, r4, r3 ldr r3, [r4, #4] bic r3, r3, #-2147483648 str r3, [r4, #4] pop {r3, r4, r5, pc} -.L2446: +.L2459: .align 2 -.L2445: +.L2458: .word .LANCHOR2 .fnend .size flush_l2p_region, .-flush_l2p_region .align 1 - .global log2phys - .thumb - .thumb_func - .type log2phys, %function -log2phys: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - movs r3, #1 - ldr r5, .L2461 - mov r9, r2 - mov r8, r1 - movs r1, #12 - ldrh r4, [r5, #2906] - ldrh r2, [r5, #2938] - adds r4, r4, #7 - lsr r7, r0, r4 - lsls r3, r3, r4 - ldr r4, .L2461+4 - subs r3, r3, #1 - ands r0, r0, r3 - uxth r7, r7 - movs r3, #0 - ldr r10, [r4, #932] - uxth r6, r0 -.L2448: - uxth r5, r3 - cmp r5, r2 - bcs .L2460 - adds r3, r3, #1 - mla r0, r1, r3, r10 - ldrh r0, [r0, #-12] - cmp r0, r7 - bne .L2448 -.L2449: - movs r3, #12 - cmp r9, #0 - bne .L2450 - ldr r2, [r4, #932] - mla r3, r3, r5, r2 - ldr r3, [r3, #8] - ldr r3, [r3, r6, lsl #2] - str r3, [r8] - b .L2451 -.L2450: - muls r3, r5, r3 - ldr r2, [r4, #932] - ldr r1, [r8] - add r2, r2, r3 - ldr r2, [r2, #8] - str r1, [r2, r6, lsl #2] - ldr r2, [r4, #932] - strh r7, [r4, #936] @ movhi - add r3, r3, r2 - ldr r2, [r3, #4] - orr r2, r2, #-2147483648 - str r2, [r3, #4] -.L2451: - ldr r2, [r4, #932] - movs r3, #12 - mla r5, r3, r5, r2 - ldr r3, [r5, #4] - adds r2, r3, #1 - beq .L2457 - adds r3, r3, #1 - str r3, [r5, #4] - b .L2457 -.L2460: - bl select_l2p_ram_region - movs r3, #12 - muls r3, r0, r3 - mov r5, r0 - add r2, r10, r3 - ldrh r1, [r10, r3] - movw r3, #65535 - cmp r1, r3 - beq .L2454 - ldr r3, [r2, #4] - cmp r3, #0 - bge .L2454 - bl flush_l2p_region -.L2454: - mov r0, r7 - mov r1, r5 - bl load_l2p_region - b .L2449 -.L2457: - movs r0, #0 - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L2462: - .align 2 -.L2461: - .word .LANCHOR0 - .word .LANCHOR2 - .fnend - .size log2phys, .-log2phys - .align 1 - .global FtlReUsePrevPpa - .thumb - .thumb_func - .type FtlReUsePrevPpa, %function -FtlReUsePrevPpa: - .fnstart - @ args = 0, pretend = 0, frame = 8 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r0, r1, r2, r4, r5, r6, r7, lr} - .save {r4, r5, r6, r7, lr} - .pad #12 - mov r6, r0 - ubfx r0, r1, #10, #16 - str r1, [sp, #4] - bl P2V_block_in_plane - ldr r5, .L2472 - ldr r4, [r5, #768] - ldrh r3, [r4, r0, lsl #1] - cbnz r3, .L2464 - ldr r4, [r5, #780] - cbz r4, .L2465 - ldr r1, [r5, #760] - mov lr, #6 - ldr r2, .L2472+4 - movw ip, #65535 - subs r4, r4, r1 - ldrh r7, [r5, #784] - asrs r4, r4, #1 - muls r4, r2, r4 - uxth r4, r4 -.L2466: - uxth r2, r3 - cmp r2, r7 - bcs .L2465 - cmp r4, r0 - bne .L2467 - mov r1, r4 - ldr r0, .L2472+8 - bl List_remove_node - ldrh r3, [r5, #784] - mov r0, r4 - subs r3, r3, #1 - strh r3, [r5, #784] @ movhi - bl INSERT_DATA_LIST - ldr r2, [r5, #768] - ldrh r3, [r2, r4, lsl #1] - adds r3, r3, #1 - strh r3, [r2, r4, lsl #1] @ movhi - b .L2465 -.L2467: - mul r4, lr, r4 - adds r3, r3, #1 - ldrh r4, [r1, r4] - cmp r4, ip - bne .L2466 - b .L2465 -.L2464: - adds r3, r3, #1 - strh r3, [r4, r0, lsl #1] @ movhi -.L2465: - mov r0, r6 - add r1, sp, #4 - movs r2, #1 - bl log2phys - add sp, sp, #12 - @ sp needed - pop {r4, r5, r6, r7, pc} -.L2473: - .align 2 -.L2472: - .word .LANCHOR2 - .word -1431655765 - .word .LANCHOR2+780 - .fnend - .size FtlReUsePrevPpa, .-FtlReUsePrevPpa - .align 1 .global FtlMapTblRecovery .thumb .thumb_func @@ -15358,7 +15233,7 @@ FtlMapTblRecovery: movs r1, #0 ldr r10, [r0, #24] movs r6, #0 - ldr r5, .L2520 + ldr r5, .L2508 str r3, [sp, #12] lsl r2, fp, #2 ldrh r3, [r0, #8] @@ -15366,122 +15241,122 @@ FtlMapTblRecovery: mov r0, r10 str r3, [sp, #8] bl ftl_memset - ldr r3, [r5, #756] - ldr r7, [r5, #1796] + ldr r3, [r5, #1776] + ldr r7, [r5, #1800] str r6, [r4, #32] - str r3, [r5, #4056] + str r3, [r5, #4060] movw r3, #65535 - str r7, [r5, #4060] + str r7, [r5, #4064] str r6, [r4, #28] strh r3, [r4] @ movhi strh r3, [r4, #2] @ movhi movs r3, #1 str r3, [r4, #36] -.L2475: +.L2461: uxth ip, r6 ldr r3, [sp, #8] sxth r9, ip cmp r9, r3 - bge .L2492 + bge .L2478 ldr r3, [sp, #8] subs r2, r3, #1 cmp r9, r2 lsl r2, r9, #1 - bne .L2476 + bne .L2462 ldrh r0, [r8, r9, lsl #1] movs r1, #1 str ip, [sp, #8] add r6, r8, r2 bl FtlGetLastWrittenPage - adds r3, r0, #1 ldr ip, [sp, #8] - strh r3, [r4, #2] @ movhi - sxth r0, r0 - ldr r3, [sp, #12] strh ip, [r4] @ movhi mov ip, #0 + adds r3, r0, #1 + strh r3, [r4, #2] @ movhi + ldr r3, [sp, #12] + sxth r0, r0 ldr r3, [r3, r9, lsl #2] add r9, r0, #1 str r3, [r4, #28] - ldr r3, .L2520 -.L2477: + ldr r3, .L2508 +.L2463: sxth r2, ip cmp r2, r9 - bge .L2492 + bge .L2478 ldrh r1, [r6] - ldr r0, .L2520+4 + ldr r0, .L2508+4 str r3, [sp, #12] orr r2, r2, r1, lsl #10 movs r1, #1 - str r2, [r5, #4052] + str r2, [r5, #4056] mov r2, r1 str ip, [sp, #8] bl FlashReadPages - ldr r2, [r5, #4048] - adds r2, r2, #1 + ldr r2, [r5, #4052] ldr ip, [sp, #8] + adds r2, r2, #1 ldr r3, [sp, #12] - beq .L2478 + beq .L2464 ldrh r2, [r7, #8] cmp r2, fp - bcs .L2479 + bcs .L2465 ldrh r0, [r7] ldrh r1, [r4, #4] cmp r0, r1 - bne .L2479 - ldr r1, [r3, #4052] + bne .L2465 + ldr r1, [r3, #4056] str r1, [r10, r2, lsl #2] - b .L2479 -.L2478: + b .L2465 +.L2464: ldrh r2, [r6] strh r2, [r4, #40] @ movhi -.L2479: +.L2465: add ip, ip, #1 - b .L2477 -.L2492: - ldr r3, .L2520+8 - ldr r10, .L2520+12 + b .L2463 +.L2478: + ldr r3, .L2508+8 + ldr r10, .L2508+12 cmp r4, r3 - bne .L2482 - b .L2517 -.L2476: - ldr r1, [r5, #756] + bne .L2468 + b .L2505 +.L2462: + ldr r1, [r5, #1776] add r3, r8, r2 str r3, [sp, #16] - ldr r3, .L2520+12 - str r1, [r5, #4056] + ldr r3, .L2508+12 + str r1, [r5, #4060] ldrh r1, [r8, r9, lsl #1] - ldrh r2, [r3, #2900] - ldr r0, .L2520+4 + ldrh r2, [r3, #2912] + ldr r0, .L2508+4 subs r2, r2, #1 orr r2, r2, r1, lsl #10 movs r1, #1 - str r2, [r5, #4052] + str r2, [r5, #4056] mov r2, r1 bl FlashReadPages - ldr r2, [r5, #4048] + ldr r2, [r5, #4052] adds r2, r2, #1 - beq .L2506 + beq .L2493 ldrh r1, [r7] ldrh r2, [r4, #4] cmp r1, r2 - bne .L2506 + bne .L2493 ldrh r1, [r7, #8] movw r2, #64245 cmp r1, r2 - bne .L2506 + bne .L2493 movs r0, #0 mov ip, #8 mov r9, #4 -.L2484: - ldr r3, .L2520+12 +.L2470: + ldr r3, .L2508+12 uxth r2, r0 sxth lr, r2 - ldrh r1, [r3, #2900] + ldrh r1, [r3, #2912] subs r1, r1, #1 cmp lr, r1 - bge .L2487 - ldr r1, [r5, #756] + bge .L2473 + ldr r1, [r5, #1776] adds r0, r0, #1 ldrh lr, [r1, lr, lsl #3] cmp lr, fp @@ -15489,152 +15364,151 @@ FtlMapTblRecovery: smlabbcc r2, r2, ip, r9 ldrcc r2, [r1, r2] strcc r2, [r10, lr, lsl #2] - b .L2484 -.L2506: - ldr r3, .L2520 + b .L2470 +.L2493: + ldr r3, .L2508 mov r9, #0 -.L2514: - ldr r1, .L2520+12 +.L2502: + ldr r1, .L2508+12 sxth r2, r9 - ldrh r1, [r1, #2900] + ldrh r1, [r1, #2912] cmp r2, r1 - bge .L2487 + bge .L2473 ldr r1, [sp, #16] - ldr r0, .L2520+4 + ldr r0, .L2508+4 str r3, [sp, #20] ldrh r1, [r1] orr r2, r2, r1, lsl #10 movs r1, #1 - str r2, [r3, #4052] + str r2, [r3, #4056] mov r2, r1 bl FlashReadPages ldr r3, [sp, #20] - ldr r2, [r3, #4048] + ldr r2, [r3, #4052] adds r2, r2, #1 - beq .L2488 + beq .L2474 ldrh r2, [r7, #8] cmp r2, fp - bcs .L2488 + bcs .L2474 ldrh r1, [r4, #4] ldrh r0, [r7] cmp r0, r1 itt eq - ldreq r1, [r3, #4052] + ldreq r1, [r3, #4056] streq r1, [r10, r2, lsl #2] -.L2488: +.L2474: add r9, r9, #1 - b .L2514 -.L2487: + b .L2502 +.L2473: adds r6, r6, #1 - b .L2475 -.L2503: - ldr r2, [r5, #1848] + b .L2461 +.L2490: + ldr r3, [r5, #1852] lsl r7, r9, #2 - ldr r3, [r2, r9, lsl #2] - subs r1, r3, #1 + ldr r2, [r3, r9, lsl #2] + subs r1, r2, #1 adds r1, r1, #3 - bls .L2518 -.L2497: + bls .L2506 +.L2483: add r9, r9, #1 -.L2495: - ldrh r3, [r10, #2936] +.L2481: + ldrh r3, [r10, #2948] cmp r9, r3 - bcc .L2503 -.L2482: + bcc .L2490 +.L2468: mov r0, r4 bl ftl_free_no_use_map_blk ldrh r2, [r4, #2] - ldrh r3, [r10, #2900] + ldrh r3, [r10, #2912] cmp r2, r3 - bne .L2494 + bne .L2480 mov r0, r4 bl ftl_map_blk_alloc_new_blk - b .L2494 -.L2517: - ldrh r3, [r10, #2944] + b .L2480 +.L2505: + ldrh r3, [r10, #2952] cmp r3, #0 - beq .L2482 + beq .L2468 mov r9, #0 - sub r6, r4, #1864 - b .L2495 -.L2518: - ldr r1, [r6, #1844] + subw r6, r4, #1868 + b .L2481 +.L2506: + ldr r1, [r6, #1848] ldr r1, [r1, r9, lsl #2] - cmp r3, r1 - beq .L2497 - ldr r3, [r6, #756] + cmp r2, r1 + beq .L2483 + ldr r2, [r6, #1776] movs r1, #1 - ldr r0, .L2520+4 - str r3, [r6, #4056] - ldr r3, [r6, #1796] - str r3, [r6, #4060] - ldr r2, [r2, r7] - str r3, [sp, #8] - str r2, [r6, #4052] + ldr fp, [r6, #1800] + ldr r0, .L2508+4 + str r2, [r6, #4060] mov r2, r1 + str fp, [r6, #4064] + ldr r3, [r3, r7] + str r3, [r6, #4056] bl FlashReadPages - ldr r2, [r6, #4048] - adds r2, r2, #1 - ldr r3, [sp, #8] - beq .L2510 - ldrh r1, [r3] - ldrh r2, [r6, #1868] - cmp r1, r2 - bne .L2510 - ldr fp, [r3, #4] - b .L2499 -.L2510: - mov fp, #0 -.L2499: - ldr r2, [r5, #1844] + ldr r3, [r6, #4052] + adds r3, r3, #1 + beq .L2483 + ldrh r2, [fp] + ldrh r3, [r6, #1872] + cmp r2, r3 + bne .L2483 + ldr r2, [r6, #1848] + ldr r3, [fp, #4] + ldr r1, [r2, r7] + str r1, [r6, #4056] + ldr r2, [r2, r7] + cbnz r2, .L2485 + str r2, [fp, #4] + b .L2486 +.L2485: movs r1, #1 - ldr r0, .L2520+4 + ldr r0, .L2508+4 str r3, [sp, #8] - ldr r2, [r2, r7] - str r2, [r5, #4052] mov r2, r1 bl FlashReadPages ldr r3, [sp, #8] - ldr r1, [r3, #4] - cmp fp, r1 - bls .L2497 - ldr r2, [r6, #1848] - ldr r3, [r6, #1844] - str r1, [sp] - ldr r1, [r2, r7] - ldr r0, .L2520+16 - ldr r2, [r3, r7] - mov r3, fp +.L2486: + ldr r0, [fp, #4] + cmp r3, r0 + bls .L2483 + ldr r1, [r5, #1852] + ldr r2, [r5, #1848] + str r0, [sp] + ldr r1, [r1, r7] + ldr r2, [r2, r7] + ldr r0, .L2508+16 bl printk - ldr r3, [r6, #1848] + ldr r3, [r5, #1852] ldr r2, [r3, r7] - ldr r3, [r6, #1844] + ldr r3, [r5, #1848] str r2, [r3, r7] movs r2, #0 - ldr r3, [r6, #1848] + ldr r3, [r5, #1852] ldr r0, [r3, r7] - ldrh r3, [r6, #1908] + ldrh r3, [r5, #1912] ubfx r0, r0, #10, #16 -.L2500: +.L2487: sxth r1, r2 cmp r1, r3 - bge .L2519 + bge .L2507 ldrh r1, [r8, r1, lsl #1] adds r2, r2, #1 cmp r1, r0 - bne .L2500 - b .L2497 -.L2519: - ldr r2, [r10, #2928] + bne .L2487 + b .L2483 +.L2507: + ldr r2, [r10, #2940] cmp r3, r2 - bcs .L2497 + bcs .L2483 strh r0, [r8, r3, lsl #1] @ movhi - ldrh r3, [r5, #1908] + ldrh r3, [r5, #1912] adds r3, r3, #1 - strh r3, [r5, #1908] @ movhi + strh r3, [r5, #1912] @ movhi bl remove_from_free_sys_Queue - b .L2497 -.L2494: + b .L2483 +.L2480: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -15643,14 +15517,14 @@ FtlMapTblRecovery: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2521: +.L2509: .align 2 -.L2520: +.L2508: .word .LANCHOR2 - .word .LANCHOR2+4048 - .word .LANCHOR2+1864 + .word .LANCHOR2+4052 + .word .LANCHOR2+1868 .word .LANCHOR0 - .word .LC122 + .word .LC124 .fnend .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 1 @@ -15664,40 +15538,42 @@ FtlLoadVonderInfo: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - movw r2, #4098 - ldr r3, .L2523 - ldr r0, .L2523+4 - ldrh r1, [r3, #2920] + movw r2, #4102 + ldr r3, .L2511 + ldr r0, .L2511+4 + ldrh r1, [r3, #2932] strh r1, [r0, r2] @ movhi - movw r2, #61574 - ldrh r1, [r3, #2946] - strh r2, [r0, #4092] @ movhi add r2, r0, #4096 + movw r1, #61574 strh r1, [r2] @ movhi - ldrh r2, [r3, #2922] - strh r2, [r0, #4094] @ movhi - ldr r2, [r3, #2948] - movw r3, #4100 - str r2, [r0, r3] + movw r2, #4100 + ldrh r1, [r3, #2954] + strh r1, [r0, r2] @ movhi + movw r2, #4098 + ldrh r1, [r3, #2934] + strh r1, [r0, r2] @ movhi + ldr r2, [r3, #2956] movw r3, #4104 - ldr r2, [r0, #1836] str r2, [r0, r3] movw r3, #4108 - ldr r2, [r0, #1832] + ldr r2, [r0, #1840] str r2, [r0, r3] movw r3, #4112 - ldr r2, [r0, #1840] + ldr r2, [r0, #1836] str r2, [r0, r3] - add r3, r0, #4128 - addw r0, r0, #4088 + movw r3, #4116 + ldr r2, [r0, #1844] + str r2, [r0, r3] + movw r3, #4132 movw r2, #65535 - strh r2, [r3] @ movhi + strh r2, [r0, r3] @ movhi + addw r0, r0, #4092 bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L2524: +.L2512: .align 2 -.L2523: +.L2511: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -15714,17 +15590,246 @@ FtlLoadMapInfo: push {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L2526 + ldr r0, .L2514 bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L2527: +.L2515: .align 2 -.L2526: - .word .LANCHOR2+1864 +.L2514: + .word .LANCHOR2+1868 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 1 + .global log2phys + .thumb + .thumb_func + .type log2phys, %function +log2phys: + .fnstart + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .pad #12 + mov r8, #1 + str r2, [sp] + mov r10, r1 + ldr r2, .L2532 + movs r3, #0 + ldr r1, .L2532+4 + ldrh r4, [r2, #2918] + str r2, [sp, #4] + mov fp, r1 + adds r4, r4, #7 + lsl r5, r8, r4 + lsr r6, r0, r4 + subs r4, r5, #1 + ands r0, r0, r4 + ldr r4, [r1, #980] + uxth r6, r6 + uxth r7, r0 + ldrh r0, [r2, #2950] + movs r2, #12 +.L2517: + uxth r8, r3 + cmp r8, r0 + bcs .L2531 + adds r3, r3, #1 + mla r1, r2, r3, r4 + ldrh r1, [r1, #-12] + cmp r1, r6 + bne .L2517 +.L2518: + ldr r2, [sp] + movs r3, #12 + cbnz r2, .L2519 + ldr r2, [fp, #980] + mla r3, r3, r8, r2 + ldr r3, [r3, #8] + ldr r3, [r3, r7, lsl #2] + str r3, [r10] + b .L2520 +.L2519: + mul r3, r3, r8 + ldr r2, [fp, #980] + ldr r1, [r10] + add r2, r2, r3 + ldr r2, [r2, #8] + str r1, [r2, r7, lsl #2] + ldr r2, [fp, #980] + strh r6, [fp, #984] @ movhi + add r3, r3, r2 + ldr r2, [r3, #4] + orr r2, r2, #-2147483648 + str r2, [r3, #4] +.L2520: + ldr r2, [fp, #980] + movs r3, #12 + mla r8, r3, r8, r2 + ldr r3, [r8, #4] + adds r2, r3, #1 + beq .L2528 + adds r3, r3, #1 + str r3, [r8, #4] + b .L2528 +.L2531: + bl select_l2p_ram_region + movs r5, #12 + movw r2, #65535 + muls r5, r0, r5 + mov r8, r0 + adds r3, r4, r5 + ldrh r1, [r4, r5] + cmp r1, r2 + beq .L2523 + ldr r3, [r3, #4] + cmp r3, #0 + bge .L2523 + bl flush_l2p_region +.L2523: + ldr r3, [fp, #1848] + ldr r4, .L2532+4 + ldr r9, [r3, r6, lsl #2] + cmp r9, #0 + bne .L2524 + ldr r2, [r4, #980] + movs r1, #255 + ldr r3, [sp, #4] + add r2, r2, r5 + ldr r0, [r2, #8] + ldrh r2, [r3, #2920] + bl ftl_memset + ldr r2, [r4, #980] + strh r6, [r2, r5] @ movhi + ldr r2, [r4, #980] + add r5, r5, r2 + str r9, [r5, #4] + b .L2518 +.L2524: + ldr r2, [r4, #980] + movs r1, #1 + addw r0, r4, #4052 + str r9, [r4, #4056] + add r2, r2, r5 + ldr r2, [r2, #8] + str r2, [r4, #4060] + ldr r2, [r4, #1800] + str r2, [r4, #4064] + mov r2, r1 + bl FlashReadPages + ldr r2, [r4, #4052] + cmp r2, #256 + bne .L2525 + mov r1, r6 + mov r2, r9 + ldr r0, .L2532+8 + bl printk + lsr r3, r9, #10 + strh r3, [r4, #1908] @ movhi + addw r0, r4, #1868 + ldr r3, [r4, #980] + mov r1, r6 + add r3, r3, r5 + ldr r2, [r3, #8] + bl FtlMapWritePage +.L2525: + ldr r3, [fp, #980] + movs r1, #0 + adds r2, r3, r5 + str r1, [r2, #4] + strh r6, [r3, r5] @ movhi + b .L2518 +.L2528: + movs r0, #0 + add sp, sp, #12 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2533: + .align 2 +.L2532: + .word .LANCHOR0 + .word .LANCHOR2 + .word .LC125 + .fnend + .size log2phys, .-log2phys + .align 1 + .global FtlReUsePrevPpa + .thumb + .thumb_func + .type FtlReUsePrevPpa, %function +FtlReUsePrevPpa: + .fnstart + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r0, r1, r2, r4, r5, r6, r7, lr} + .save {r4, r5, r6, r7, lr} + .pad #12 + mov r6, r0 + ubfx r0, r1, #10, #16 + str r1, [sp, #4] + bl P2V_block_in_plane + ldr r5, .L2543 + ldr r4, [r5, #816] + ldrh r3, [r4, r0, lsl #1] + cbnz r3, .L2535 + ldr r4, [r5, #828] + cbz r4, .L2536 + ldr r1, [r5, #808] + mov lr, #6 + ldr r2, .L2543+4 + movw ip, #65535 + subs r4, r4, r1 + ldrh r7, [r5, #832] + asrs r4, r4, #1 + muls r4, r2, r4 + uxth r4, r4 +.L2537: + uxth r2, r3 + cmp r2, r7 + bcs .L2536 + cmp r4, r0 + bne .L2538 + mov r1, r4 + ldr r0, .L2543+8 + bl List_remove_node + ldrh r3, [r5, #832] + mov r0, r4 + subs r3, r3, #1 + strh r3, [r5, #832] @ movhi + bl INSERT_DATA_LIST + ldr r2, [r5, #816] + ldrh r3, [r2, r4, lsl #1] + adds r3, r3, #1 + strh r3, [r2, r4, lsl #1] @ movhi + b .L2536 +.L2538: + mul r4, lr, r4 + adds r3, r3, #1 + ldrh r4, [r1, r4] + cmp r4, ip + bne .L2537 + b .L2536 +.L2535: + adds r3, r3, #1 + strh r3, [r4, r0, lsl #1] @ movhi +.L2536: + mov r0, r6 + add r1, sp, #4 + movs r2, #1 + bl log2phys + add sp, sp, #12 + @ sp needed + pop {r4, r5, r6, r7, pc} +.L2544: + .align 2 +.L2543: + .word .LANCHOR2 + .word -1431655765 + .word .LANCHOR2+828 + .fnend + .size FtlReUsePrevPpa, .-FtlReUsePrevPpa + .align 1 .global FtlReadRefresh .thumb .thumb_func @@ -15733,36 +15838,36 @@ FtlReadRefresh: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2543 + ldr r3, .L2560 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} .pad #44 sub sp, sp, #44 - ldr r2, [r3, #1208] + ldr r2, [r3, #1204] mov r4, r3 - ldr r5, .L2543+4 + ldr r5, .L2560+4 cmp r2, #0 - beq .L2529 - ldr r1, [r3, #1212] - ldr r2, [r5, #2960] + beq .L2546 + ldr r1, [r3, #1208] + ldr r2, [r5, #2968] cmp r1, r2 - bcs .L2530 + bcs .L2547 mov r6, #2048 mov r7, r3 -.L2535: - ldr r0, [r4, #1212] - ldr r3, [r5, #2960] +.L2552: + ldr r0, [r4, #1208] + ldr r3, [r5, #2968] cmp r0, r3 - bcs .L2532 + bcs .L2549 mov r1, sp movs r2, #0 bl log2phys - ldr r3, [r7, #1212] - adds r3, r3, #1 - str r3, [r7, #1212] ldr r2, [sp] + ldr r3, [r7, #1208] adds r1, r2, #1 - beq .L2533 + add r3, r3, #1 + str r3, [r7, #1208] + beq .L2550 add r0, sp, #40 str r2, [sp, #8] movs r1, #1 @@ -15774,64 +15879,64 @@ FtlReadRefresh: bl FlashReadPages ldr r3, [sp, #4] cmp r3, #256 - bne .L2532 + bne .L2549 ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock - b .L2532 -.L2533: + b .L2549 +.L2550: subs r6, r6, #1 - bne .L2535 -.L2532: + bne .L2552 +.L2549: mov r0, #-1 - b .L2537 -.L2530: - ldr r2, [r3, #952] + b .L2554 +.L2547: + ldr r2, [r3, #996] movs r0, #0 + str r0, [r3, #1204] str r0, [r3, #1208] - str r0, [r3, #1212] - str r2, [r3, #1204] - b .L2537 -.L2529: + str r2, [r3, #1200] + b .L2554 +.L2546: ldrb r2, [r5, #76] @ zero_extendqisi2 - ldr r1, [r3, #1004] - ldr r3, [r3, #948] - cbnz r2, .L2540 + ldr r1, [r3, #1048] + ldr r3, [r5, #2832] + cbnz r2, .L2557 mov r2, #33554432 add r3, r3, r1, lsr #10 asrs r2, r2, r3 - b .L2538 -.L2540: + b .L2555 +.L2557: mov r2, #4194304 -.L2538: - ldr r1, [r4, #952] - ldr r3, [r4, #1204] +.L2555: + ldr r1, [r4, #996] + ldr r3, [r4, #1200] add r0, r1, #1048576 cmp r3, r0 - bhi .L2539 + bhi .L2556 add r3, r3, r2 cmp r3, r1 - bcc .L2539 - ldr r3, .L2543 - ldrb r3, [r3, #1040] @ zero_extendqisi2 - cbnz r3, .L2541 -.L2539: + bcc .L2556 + ldr r3, .L2560 + ldrb r3, [r3, #788] @ zero_extendqisi2 + cbnz r3, .L2558 +.L2556: movs r3, #1 movs r0, #0 - str r3, [r4, #1208] - str r0, [r4, #1212] - str r1, [r4, #1204] - b .L2537 -.L2541: + str r3, [r4, #1204] + str r0, [r4, #1208] + str r1, [r4, #1200] + b .L2554 +.L2558: movs r0, #0 -.L2537: +.L2554: add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, pc} -.L2544: +.L2561: .align 2 -.L2543: +.L2560: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -15845,52 +15950,52 @@ FtlVendorPartWrite: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2558 + ldr r3, .L2575 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r5, r0 mov r4, r1 add r0, r0, r1 - ldrh r1, [r3, #2892] + ldrh r1, [r3, #2904] .pad #60 sub sp, sp, #60 mov r10, r2 - ldrh r2, [r3, #2906] + ldrh r2, [r3, #2918] cmp r0, r1 str r3, [sp, #4] - bhi .L2553 - ldr r7, .L2558+4 + bhi .L2570 + ldr r7, .L2575+4 lsr r6, r5, r2 mov fp, #0 lsls r3, r6, #2 str r3, [sp] -.L2547: +.L2564: cmp r4, #0 - beq .L2557 - ldr r3, .L2558+4 + beq .L2574 + ldr r3, .L2575+4 mov r0, r5 ldr r2, [sp] - ldr r3, [r3, #1840] + ldr r3, [r3, #1844] ldr ip, [r3, r2] ldr r3, [sp, #4] str ip, [sp, #12] - ldrh r2, [r3, #2904] + ldrh r2, [r3, #2916] mov r1, r2 str r2, [sp, #8] bl __aeabi_uidivmod ldr r2, [sp, #8] - mov r8, r1 ldr ip, [sp, #12] subs r3, r2, r1 + mov r8, r1 uxth r9, r3 cmp r9, r4 it hi uxthhi r9, r4 cmp ip, #0 - beq .L2549 + beq .L2566 cmp r9, r2 - beq .L2549 - ldr r2, [r7, #1780] + beq .L2566 + ldr r2, [r7, #1784] movs r1, #1 add r0, sp, #20 str ip, [sp, #24] @@ -15899,16 +16004,16 @@ FtlVendorPartWrite: str r2, [sp, #32] mov r2, r1 bl FlashReadPages - b .L2550 -.L2549: + b .L2567 +.L2566: ldr r3, [sp, #4] movs r1, #0 - ldr r0, [r7, #1780] - ldrh r2, [r3, #2908] + ldr r0, [r7, #1784] + ldrh r2, [r3, #2920] bl ftl_memset -.L2550: +.L2567: lsl ip, r9, #9 - ldr r0, [r7, #1780] + ldr r0, [r7, #1784] uxth r8, r8 mov r1, r10 mov r2, ip @@ -15917,35 +16022,35 @@ FtlVendorPartWrite: rsb r4, r9, r4 bl ftl_memcpy mov r1, r6 - ldr r0, .L2558+8 + ldr r0, .L2575+8 adds r6, r6, #1 - ldr r2, [r7, #1780] + ldr r2, [r7, #1784] add r5, r5, r9 bl FtlMapWritePage ldr r3, [sp] - adds r0, r0, #1 ldr ip, [sp, #8] - it eq - moveq fp, #-1 adds r3, r3, #4 str r3, [sp] add r10, r10, ip - b .L2547 -.L2557: + adds r0, r0, #1 + it eq + moveq fp, #-1 + b .L2564 +.L2574: mov r0, fp - b .L2546 -.L2553: + b .L2563 +.L2570: mov r0, #-1 -.L2546: +.L2563: add sp, sp, #60 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2559: +.L2576: .align 2 -.L2558: +.L2575: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+4088 + .word .LANCHOR2+4092 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 1 @@ -15958,53 +16063,53 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2562 - ldr r3, .L2562+4 - ldr r1, [r2, #1128] + ldr r2, .L2579 + ldr r3, .L2579+4 + ldr r1, [r2, #1124] cmp r1, r3 - bne .L2560 - ldr r3, .L2562+8 + bne .L2577 + ldr r3, .L2579+8 movs r0, #0 movs r1, #1 - str r3, [r2, #1132] - ldr r3, [r2, #976] + str r3, [r2, #1128] + ldr r3, [r2, #1020] + str r3, [r2, #1212] + ldr r3, [r2, #1024] str r3, [r2, #1216] - ldr r3, [r2, #980] - str r3, [r2, #1220] - ldr r3, [r2, #972] + ldr r3, [r2, #1016] + str r3, [r2, #1132] + ldr r3, [r2, #1004] str r3, [r2, #1136] - ldr r3, [r2, #960] + ldr r3, [r2, #996] str r3, [r2, #1140] - ldr r3, [r2, #952] + ldr r3, [r2, #1012] str r3, [r2, #1144] - ldr r3, [r2, #968] - str r3, [r2, #1148] - ldr r3, [r2, #996] - str r3, [r2, #1156] - ldr r3, [r2, #752] - add r2, r2, #1128 + ldr r3, [r2, #1040] + str r3, [r2, #1152] + ldr r3, [r2, #756] + addw r2, r2, #1124 str r3, [r2, #32] - ldr r3, [r2, #-172] + ldr r3, [r2, #-124] str r3, [r2, #36] - ldr r3, [r2, #-164] + ldr r3, [r2, #-116] str r3, [r2, #40] - ldr r3, [r2, #-124] + ldr r3, [r2, #-76] str r3, [r2, #44] - ldr r3, [r2, #-120] + ldr r3, [r2, #-72] str r3, [r2, #48] ldr r3, [r2, #-4] str r3, [r2, #60] ldr r3, [r2, #612] str r3, [r2, #64] b FtlVendorPartWrite -.L2560: +.L2577: bx lr -.L2563: +.L2580: .align 2 -.L2562: +.L2579: .word .LANCHOR2 .word 1179929683 - .word 1342177351 + .word 1342177352 .fnend .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 1 @@ -16016,43 +16121,44 @@ FtlEctTblFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2571 + ldr r3, .L2588 push {r4, lr} .save {r4, lr} - ldr r2, [r3, #948] - cbz r2, .L2569 - ldr r2, [r3, #1008] + ldr r2, [r3, #2832] + ldr r3, .L2588+4 + cbz r2, .L2586 + ldr r2, [r3, #1052] cmp r2, #29 ite hi movhi r1, #32 movls r1, #4 - b .L2565 -.L2569: + b .L2582 +.L2586: movs r1, #32 -.L2565: - ldr r4, .L2571+4 - ldrh r2, [r4, #-212] +.L2582: + ldr r4, .L2588+8 + ldrh r2, [r4, #-208] cmp r2, #31 ittt ls addls r2, r2, #1 movls r1, #1 - strhls r2, [r4, #-212] @ movhi - cbnz r0, .L2567 - ldr r0, [r3, #1816] + strhls r2, [r4, #-208] @ movhi + cbnz r0, .L2584 + ldr r0, [r3, #1820] ldr r2, [r0, #20] add r2, r2, r1 ldr r1, [r0, #16] cmp r1, r2 - bcc .L2568 -.L2567: - ldr r2, [r3, #1816] + bcc .L2585 +.L2584: + ldr r2, [r3, #1820] movs r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L2571+8 + ldr r1, .L2588+12 str r1, [r2] - ldr r2, [r3, #1816] - ldrh r1, [r3, #1808] + ldr r2, [r3, #1820] + ldrh r1, [r3, #1812] lsls r3, r1, #9 str r3, [r2, #12] ldr r3, [r2, #8] @@ -16062,12 +16168,13 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2568: +.L2585: movs r0, #0 pop {r4, pc} -.L2572: +.L2589: .align 2 -.L2571: +.L2588: + .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR4 .word 1112818501 @@ -16082,47 +16189,47 @@ FtlVendorPartRead: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2584 + ldr r3, .L2601 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r7, r0 mov r5, r1 add r0, r0, r1 - ldrh r1, [r3, #2892] + ldrh r1, [r3, #2904] .pad #60 sub sp, sp, #60 mov r8, r2 - ldrh r2, [r3, #2906] + ldrh r2, [r3, #2918] cmp r0, r1 str r3, [sp, #8] - bhi .L2582 + bhi .L2599 lsr r6, r7, r2 - ldr r10, .L2584+12 + ldr r10, .L2601+12 movs r3, #0 str r3, [sp] lsl r9, r6, #2 mov fp, r10 -.L2575: +.L2592: cmp r5, #0 - beq .L2583 - ldr r3, [r10, #1840] + beq .L2600 + ldr r3, [r10, #1844] mov r0, r7 ldr ip, [r3, r9] ldr r3, [sp, #8] str ip, [sp, #12] - ldrh r4, [r3, #2904] + ldrh r4, [r3, #2916] mov r1, r4 bl __aeabi_uidivmod - subs r3, r4, r1 ldr ip, [sp, #12] + subs r3, r4, r1 str r1, [sp, #4] uxth r4, r3 cmp r4, r5 it hi uxthhi r4, r5 cmp ip, #0 - beq .L2577 - ldr r2, [fp, #1780] + beq .L2594 + ldr r2, [fp, #1784] movs r1, #1 add r0, sp, #20 str ip, [sp, #24] @@ -16135,56 +16242,56 @@ FtlVendorPartRead: ldr r2, [sp, #20] ldr r3, [sp] adds r2, r2, #1 - ldr r2, [fp, #4048] + ldr r2, [fp, #4052] it eq moveq r3, #-1 ldr ip, [sp, #12] cmp r2, #256 str r3, [sp] - bne .L2579 + bne .L2596 mov r1, r6 mov r2, ip - ldr r0, .L2584+4 + ldr r0, .L2601+4 bl printk - ldr r0, .L2584+8 + ldr r0, .L2601+8 mov r1, r6 - ldr r2, [r10, #1780] + ldr r2, [r10, #1784] bl FtlMapWritePage -.L2579: +.L2596: ldrh r2, [sp, #4] mov r0, r8 - ldr r1, [fp, #1780] + ldr r1, [fp, #1784] add r1, r1, r2, lsl #9 lsls r2, r4, #9 bl ftl_memcpy - b .L2580 -.L2577: + b .L2597 +.L2594: mov r0, r8 mov r1, ip lsls r2, r4, #9 bl ftl_memset -.L2580: +.L2597: adds r6, r6, #1 subs r5, r5, r4 add r7, r7, r4 add r8, r8, r4, lsl #9 add r9, r9, #4 - b .L2575 -.L2583: + b .L2592 +.L2600: ldr r0, [sp] - b .L2574 -.L2582: + b .L2591 +.L2599: mov r0, #-1 -.L2574: +.L2591: add sp, sp, #60 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2585: +.L2602: .align 2 -.L2584: +.L2601: .word .LANCHOR0 - .word .LC123 - .word .LANCHOR2+4088 + .word .LC126 + .word .LANCHOR2+4092 .word .LANCHOR2 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead @@ -16200,33 +16307,33 @@ FtlLoadEctTbl: push {r4, lr} .save {r4, lr} movs r0, #64 - ldr r4, .L2588 - ldr r2, [r4, #1816] - ldrh r1, [r4, #1808] + ldr r4, .L2605 + ldr r2, [r4, #1820] + ldrh r1, [r4, #1812] bl FtlVendorPartRead - ldr r3, [r4, #1816] + ldr r3, [r4, #1820] ldr r2, [r3] - ldr r3, .L2588+4 + ldr r3, .L2605+4 cmp r2, r3 - beq .L2587 - ldr r1, .L2588+8 - ldr r0, .L2588+12 + beq .L2604 + ldr r1, .L2605+8 + ldr r0, .L2605+12 bl printk - ldrh r2, [r4, #1808] - ldr r0, [r4, #1816] + ldrh r2, [r4, #1812] + ldr r0, [r4, #1820] movs r1, #0 lsls r2, r2, #9 bl ftl_memset -.L2587: +.L2604: movs r0, #0 pop {r4, pc} -.L2589: +.L2606: .align 2 -.L2588: +.L2605: .word .LANCHOR2 .word 1112818501 - .word .LC124 - .word .LC74 + .word .LC127 + .word .LC77 .fnend .size FtlLoadEctTbl, .-FtlLoadEctTbl .align 1 @@ -16241,84 +16348,136 @@ Ftl_load_ext_data: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r0, #0 - ldr r4, .L2594 + ldr r4, .L2611 movs r1, #1 - ldr r5, .L2594+4 - add r2, r4, #1128 + ldr r5, .L2611+4 + addw r2, r4, #1124 bl FtlVendorPartRead - ldr r3, [r4, #1128] + ldr r3, [r4, #1124] cmp r3, r5 - beq .L2591 - add r0, r4, #1128 + beq .L2608 + addw r0, r4, #1124 mov r1, #512 bl __memzero - str r5, [r4, #1128] -.L2591: - ldr r2, [r4, #1128] - ldr r3, .L2594 + str r5, [r4, #1124] +.L2608: + ldr r2, [r4, #1124] + ldr r3, .L2611 cmp r2, r5 - bne .L2592 + bne .L2609 + ldr r2, [r3, #1212] + str r2, [r3, #1020] ldr r2, [r3, #1216] - str r2, [r3, #976] - ldr r2, [r3, #1220] - str r2, [r3, #980] + str r2, [r3, #1024] + ldr r2, [r3, #1132] + str r2, [r3, #1016] ldr r2, [r3, #1136] - str r2, [r3, #972] + str r2, [r3, #1004] ldr r2, [r3, #1140] - str r2, [r3, #960] + str r2, [r3, #996] ldr r2, [r3, #1144] - str r2, [r3, #952] - ldr r2, [r3, #1148] - str r2, [r3, #968] + str r2, [r3, #1012] + ldr r2, [r3, #1152] + str r2, [r3, #1040] ldr r2, [r3, #1156] - str r2, [r3, #996] + str r2, [r3, #756] ldr r2, [r3, #1160] - str r2, [r3, #752] + str r2, [r3, #1000] ldr r2, [r3, #1164] - str r2, [r3, #956] + str r2, [r3, #1008] ldr r2, [r3, #1168] - str r2, [r3, #964] + str r2, [r3, #1048] ldr r2, [r3, #1172] - str r2, [r3, #1004] - ldr r2, [r3, #1176] - str r2, [r3, #1008] - ldr r2, [r3, #1188] - str r2, [r3, #1124] -.L2592: + str r2, [r3, #1052] + ldr r2, [r3, #1184] + str r2, [r3, #1120] +.L2609: movs r3, #0 - ldr r2, [r4, #1196] - str r3, [r4, #1740] - ldr r3, .L2594+8 + ldr r2, [r4, #1192] + str r3, [r4, #1736] + ldr r3, .L2611+8 + ldr r5, .L2611+12 cmp r2, r3 - bne .L2593 - ldr r3, .L2594 - movs r2, #1 - ldr r0, .L2594+12 - ldr r1, .L2594+16 - str r2, [r3, #948] + bne .L2610 + ldr r0, .L2611+16 + movs r3, #1 + ldr r1, .L2611+20 + str r3, [r5, #2832] bl printk -.L2593: - ldr r3, .L2594+20 - ldr r2, [r4, #996] - ldr r0, [r4, #992] - ldrh r1, [r3, #2888] - mla r0, r0, r1, r2 - ldrh r1, [r3, #2836] +.L2610: + ldrh r2, [r5, #2900] + ldr r3, [r4, #1040] + ldr r0, [r4, #1036] + ldrh r1, [r5, #2848] + mla r0, r0, r2, r3 bl __aeabi_uidiv - str r0, [r4, #1000] + str r0, [r4, #1044] pop {r3, r4, r5, pc} -.L2595: +.L2612: .align 2 -.L2594: +.L2611: .word .LANCHOR2 .word 1179929683 .word 305432421 - .word .LC74 - .word .LC125 .word .LANCHOR0 + .word .LC77 + .word .LC128 .fnend .size Ftl_load_ext_data, .-Ftl_load_ext_data .align 1 + .global ftl_vendor_read + .thumb + .thumb_func + .type ftl_vendor_read, %function +ftl_vendor_read: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + add r0, r0, #256 + b FtlVendorPartRead + .fnend + .size ftl_vendor_read, .-ftl_vendor_read + .align 1 + .global FlashBootVendorRead + .thumb + .thumb_func + .type FlashBootVendorRead, %function +FlashBootVendorRead: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {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_read + mov r4, r0 + bl rknand_device_unlock + mov r0, r4 + pop {r4, r5, r6, pc} + .fnend + .size FlashBootVendorRead, .-FlashBootVendorRead + .align 1 + .global ftl_sys_read + .thumb + .thumb_func + .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. + add r0, r0, #512 + b FtlVendorPartRead + .fnend + .size ftl_sys_read, .-ftl_sys_read + .align 1 .global StorageSysDataLoad .thumb .thumb_func @@ -16337,8 +16496,8 @@ StorageSysDataLoad: bl rknand_device_lock mov r2, r4 movs r1, #1 - add r0, r5, #512 - bl FtlVendorPartRead + mov r0, r5 + bl ftl_sys_read mov r4, r0 bl rknand_device_unlock mov r0, r4 @@ -16360,42 +16519,42 @@ FtlMapBlkWriteDumpData: ldr r2, [r0, #36] ldrh r5, [r0, #6] ldr r3, [r0, #24] - cbz r2, .L2597 - ldr r4, .L2603 + cbz r2, .L2617 + ldr r4, .L2623 movs r2, #0 str r2, [r0, #36] - ldr r2, [r4, #740] - cbnz r2, .L2597 + ldr r2, [r4, #744] + cbnz r2, .L2617 subs r5, r5, #1 - ldr r0, [r4, #1776] - ldr r2, [r4, #1796] + ldr r0, [r4, #1780] + ldr r2, [r4, #1800] uxth r5, r5 - str r0, [r4, #4056] - str r2, [r4, #4060] + str r0, [r4, #4060] + str r2, [r4, #4064] ldr r3, [r3, r5, lsl #2] - str r3, [r4, #4052] - cbz r3, .L2601 + str r3, [r4, #4056] + cbz r3, .L2621 movs r1, #1 - add r0, r4, #4048 + addw r0, r4, #4052 mov r2, r1 bl FlashReadPages - b .L2602 -.L2601: - ldr r3, .L2603+4 + b .L2622 +.L2621: + ldr r3, .L2623+4 movs r1, #255 - ldrh r2, [r3, #2908] + ldrh r2, [r3, #2920] bl ftl_memset -.L2602: +.L2622: mov r0, r6 mov r1, r5 - ldr r2, [r4, #4056] + ldr r2, [r4, #4060] pop {r4, r5, r6, lr} b FtlMapWritePage -.L2597: +.L2617: pop {r4, r5, r6, pc} -.L2604: +.L2624: .align 2 -.L2603: +.L2623: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -16417,60 +16576,60 @@ FtlRecoverySuperblock: sub sp, sp, #68 mov r4, r0 cmp r3, r7 - beq .L2749 + beq .L2769 ldrh r3, [r0, #2] movs r5, #0 - ldr r6, .L2765 + ldr r6, .L2785 str r3, [sp, #12] ldrb r3, [r0, #6] @ zero_extendqisi2 ldr r2, [sp, #12] str r3, [sp, #28] - ldrh r3, [r6, #2898] + ldrh r3, [r6, #2910] cmp r3, r2 - bne .L2608 + bne .L2628 strh r5, [r0, #4] @ movhi strb r5, [r0, #6] - b .L2749 -.L2608: + b .L2769 +.L2628: ldrh r0, [r0, #16] -.L2609: +.L2629: cmp r0, r7 add r5, r5, #1 - bne .L2760 + bne .L2780 uxth r3, r5 adds r3, r3, #8 ldrh r0, [r4, r3, lsl #1] - b .L2609 -.L2760: + b .L2629 +.L2780: ldrb r1, [r4, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L2611 + bne .L2631 bl FtlGetLastWrittenPage adds r2, r0, #1 mov r5, r0 - beq .L2612 + beq .L2632 ldrb r3, [r6, #76] @ zero_extendqisi2 - cbnz r3, .L2751 - ldr r3, .L2765 + cbnz r3, .L2771 + ldr r3, .L2785 add r3, r3, r0, lsl #1 ldrh r7, [r3, #80] - b .L2686 -.L2611: + b .L2706 +.L2631: movs r1, #0 bl FtlGetLastWrittenPage adds r3, r0, #1 mov r5, r0 - beq .L2612 -.L2751: + beq .L2632 +.L2771: mov r7, r5 -.L2686: - ldr r3, .L2765+4 +.L2706: + ldr r3, .L2785+4 movw r9, #65535 - ldrh ip, [r6, #2828] + ldrh ip, [r6, #2840] mov r10, #36 - ldrh r0, [r6, #2910] + ldrh r0, [r6, #2922] ldr r2, [r3, #1764] - ldr r8, [r3, #1668] + ldr r8, [r3, #1664] add r3, r4, #14 str r3, [sp, #20] str r2, [sp, #4] @@ -16478,16 +16637,16 @@ FtlRecoverySuperblock: mov lr, r3 mov r6, r2 mov fp, r2 - b .L2614 -.L2612: + b .L2634 +.L2632: movs r3, #0 strh r3, [r4, #2] @ movhi strb r3, [r4, #6] - b .L2749 -.L2617: + b .L2769 +.L2637: ldrh r3, [lr, #2]! cmp r3, r9 - beq .L2615 + beq .L2635 ldr r1, [sp, #4] orr r3, r7, r3, lsl #10 mla r1, r10, r6, r1 @@ -16502,105 +16661,105 @@ FtlRecoverySuperblock: bic r3, r3, #3 add r3, r3, r8 str r3, [r1, #12] -.L2615: +.L2635: adds r2, r2, #1 -.L2614: +.L2634: uxth r3, r2 cmp r3, ip - bcc .L2617 + bcc .L2637 ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L2688 - ldr r3, .L2765 + bne .L2708 + ldr r3, .L2785 ldrb r1, [r3, #76] @ zero_extendqisi2 adds r3, r1, #0 it ne movne r3, #1 - b .L2752 -.L2688: + b .L2772 +.L2708: movs r3, #0 -.L2752: - ldr r8, .L2765+4 +.L2772: + ldr r8, .L2785+4 mov r1, r6 str r3, [sp, #24] mov fp, #0 ldr r2, [sp, #24] ldr r0, [r8, #1764] bl FlashReadPages - ldr r3, [r8, #988] - subs r3, r3, #1 + ldr r3, [r8, #1032] str r8, [sp, #8] + subs r3, r3, #1 str r3, [sp, #4] movw r3, #65535 str r3, [sp, #16] -.L2619: +.L2639: uxth r9, fp cmp r9, r6 - bcs .L2626 + bcs .L2646 movs r1, #36 ldr r0, [r8, #1764] mul r1, r1, fp add lr, r0, r1 ldr r1, [r0, r1] - cbnz r1, .L2620 + cbnz r1, .L2640 ldr r3, [lr, #12] ldr r10, [r3, #4] cmp r10, #-1 - beq .L2621 + beq .L2641 mov r0, r10 - ldr r1, [r8, #988] + ldr r1, [r8, #1032] str r3, [sp, #32] bl ftl_cmp_data_ver ldr r3, [sp, #32] - cbz r0, .L2621 + cbz r0, .L2641 add r1, r10, #1 - str r1, [r8, #988] -.L2621: + str r1, [r8, #1032] +.L2641: ldr r1, [r3] adds r1, r1, #1 - bne .L2622 -.L2626: + bne .L2642 +.L2646: cmp r9, r6 - ldr r6, .L2765+4 - bne .L2750 + ldr r6, .L2785+4 + bne .L2770 ldr r3, [r6, #1764] adds r5, r5, #1 uxth r10, r5 ldr r0, [r3, #4] - b .L2753 -.L2620: + b .L2773 +.L2640: ldr r1, [lr, #4] - ldr r0, .L2765+8 + ldr r0, .L2785+8 bl printk uxth r3, r7 ldrh r1, [r4] str r3, [sp, #16] - ldr r3, .L2765+12 - strh r1, [r3, #-210] @ movhi -.L2622: + ldr r3, .L2785+12 + strh r1, [r3, #-206] @ movhi +.L2642: add fp, fp, #1 - b .L2619 -.L2750: + b .L2639 +.L2770: ldr r3, [sp, #8] movs r2, #36 uxth r10, r5 ldr r3, [r3, #1764] mla r9, r2, r9, r3 ldr r0, [r9, #4] -.L2753: +.L2773: ubfx r0, r0, #10, #16 bl P2V_plane ldrb r5, [r4, #8] @ zero_extendqisi2 - ldr r2, .L2765 + ldr r2, .L2785 cmp r5, #1 str r0, [sp, #8] - bne .L2628 + bne .L2648 ldrb r3, [r2, #76] @ zero_extendqisi2 - cbnz r3, .L2628 + cbnz r3, .L2648 add r3, r2, r10, lsl #1 ldrh r10, [r3, #80] -.L2628: - ldrh r3, [r2, #2898] +.L2648: + ldrh r3, [r2, #2910] cmp r3, r10 itttt eq strheq r10, [r4, #2] @ movhi @@ -16611,34 +16770,34 @@ FtlRecoverySuperblock: str r3, [sp, #32] ldr r3, [sp, #12] cmp r10, r3 - bne .L2630 + bne .L2650 ldr r3, [sp, #8] ldr r2, [sp, #32] cmp r3, r2 - bne .L2630 + bne .L2650 mov r0, r4 mov r1, r10 mov r2, r3 - b .L2758 -.L2630: + b .L2778 +.L2650: ldr r2, [sp, #16] movw r3, #65535 cmp r2, r3 - bne .L2631 + bne .L2651 cmp r5, #0 - bne .L2632 -.L2631: - ldr r3, [r6, #1928] + bne .L2652 +.L2651: + ldr r3, [r6, #1932] uxth fp, r7 mov r9, #-1 - ldr r8, .L2765+4 + ldr r8, .L2785+4 adds r3, r3, #1 mov r7, r9 ittt eq - ldreq r3, .L2765+4 + ldreq r3, .L2785+4 ldreq r2, [sp, #4] - streq r2, [r3, #1928] - ldr r3, [r6, #1928] + streq r2, [r3, #1932] + ldr r3, [r6, #1932] str r3, [sp, #16] ldr r3, [sp, #12] adds r3, r3, #7 @@ -16647,24 +16806,24 @@ FtlRecoverySuperblock: subgt r5, fp, #7 ldrle r5, [sp, #12] uxthgt r5, r5 -.L2635: +.L2655: cmp r5, fp - bhi .L2648 - ldr r3, .L2765 + bhi .L2668 + ldr r3, .L2785 ldr r1, [sp, #20] - ldrh ip, [r3, #2828] + ldrh ip, [r3, #2840] ldr r3, [r8, #1764] str r3, [sp, #28] movs r3, #0 mov r6, r3 -.L2649: +.L2669: uxth r2, r3 cmp r2, ip - bcs .L2761 + bcs .L2781 ldrh r2, [r1, #2]! movw r0, #65535 cmp r2, r0 - beq .L2636 + beq .L2656 ldr r0, [sp, #28] mov lr, #36 orr r2, r5, r2, lsl #10 @@ -16672,133 +16831,133 @@ FtlRecoverySuperblock: adds r6, r6, #1 uxth r6, r6 str r2, [r0, #4] -.L2636: +.L2656: adds r3, r3, #1 - b .L2649 -.L2761: + b .L2669 +.L2781: mov r1, r6 ldr r2, [sp, #24] ldr r0, [r8, #1764] bl FlashReadPages - ldr r3, .L2765 + ldr r3, .L2785 movs r2, #36 movw r1, #65535 ldrb r0, [r3, #76] @ zero_extendqisi2 ldr r3, [r8, #1764] mla r6, r2, r6, r3 - ldr r2, .L2765 + ldr r2, .L2785 add lr, r2, r5, lsl #1 -.L2638: +.L2658: cmp r3, r6 - beq .L2762 + beq .L2782 ldr r2, [r3] - cbnz r2, .L2639 + cbnz r2, .L2659 ldr r2, [r3, #12] ldrh ip, [r2] cmp ip, r1 - beq .L2640 + beq .L2660 ldr r2, [r2, #4] cmp r2, #-1 - beq .L2640 + beq .L2660 cmp r9, #-1 - ldr r7, [r8, #1928] - str r2, [r8, #1928] - bne .L2640 + ldr r7, [r8, #1932] + str r2, [r8, #1932] + bne .L2660 ldrh r2, [lr, #592] cmp r2, r1 - bne .L2641 + bne .L2661 cmp r0, #0 - beq .L2640 -.L2641: + beq .L2660 +.L2661: ldr r2, [sp, #4] cmp r7, r2 ite ne movne r9, r7 moveq r9, #-1 - b .L2640 -.L2766: + b .L2660 +.L2786: .align 2 -.L2765: +.L2785: .word .LANCHOR0 .word .LANCHOR2 - .word .LC126 + .word .LC129 .word .LANCHOR4 -.L2639: - ldr r3, .L2767 +.L2659: + ldr r3, .L2787 ldrh r2, [r4] - strh r2, [r3, #-210] @ movhi + strh r2, [r3, #-206] @ movhi ldrb r3, [r4, #8] @ zero_extendqisi2 - cbnz r3, .L2632 - ldr r3, .L2767+4 + cbnz r3, .L2652 + ldr r3, .L2787+4 add r5, r3, r5, lsl #1 movw r3, #65535 ldrh r2, [r5, #592] cmp r2, r3 - ldr r3, .L2767+8 - bne .L2643 + ldr r3, .L2787+8 + bne .L2663 cmp r9, #-1 - beq .L2644 - str r9, [r3, #1928] - b .L2632 -.L2644: + beq .L2664 + str r9, [r3, #1932] + b .L2652 +.L2664: ldr r2, [sp, #16] ldr r1, [sp, #4] cmp r2, r1 - bne .L2754 - ldr r2, [r3, #1928] - b .L2759 -.L2643: + bne .L2774 + ldr r2, [r3, #1932] + b .L2779 +.L2663: ldr r2, [sp, #4] cmp r7, r2 - beq .L2646 + beq .L2666 adds r2, r7, #1 - beq .L2632 - str r7, [r3, #1928] - b .L2632 -.L2646: - ldr r2, [r3, #1928] + beq .L2652 + str r7, [r3, #1932] + b .L2652 +.L2666: + ldr r2, [r3, #1932] ldr r1, [sp, #4] cmp r2, r1 - beq .L2632 -.L2759: + beq .L2652 +.L2779: subs r2, r2, #1 - b .L2754 -.L2640: + b .L2774 +.L2660: adds r3, r3, #36 - b .L2638 -.L2762: + b .L2658 +.L2782: adds r5, r5, #1 uxth r5, r5 - b .L2635 -.L2648: - ldr r3, .L2767+8 + b .L2655 +.L2668: + ldr r3, .L2787+8 mov r2, #-1 -.L2754: - str r2, [r3, #1928] -.L2632: - ldr r3, .L2767 +.L2774: + str r2, [r3, #1932] +.L2652: + ldr r3, .L2787 movs r2, #1 - ldr r0, .L2767+12 - ldr r5, .L2767+8 - strh r2, [r3, #-208] @ movhi + ldr r0, .L2787+12 + ldr r5, .L2787+8 + strh r2, [r3, #-204] @ movhi bl FtlMapBlkWriteDumpData ldr fp, [sp, #12] -.L2650: - ldr r3, .L2767+4 +.L2670: + ldr r3, .L2787+4 movw r9, #65535 ldr r1, [r5, #1764] movs r6, #0 ldr r7, [sp, #20] - ldrh r8, [r3, #2828] + ldrh r8, [r3, #2840] ldrb r0, [r3, #76] @ zero_extendqisi2 str r6, [sp, #16] -.L2651: +.L2671: uxth r3, r6 cmp r3, r8 - bcs .L2763 + bcs .L2783 ldrh r3, [r7, #2]! cmp r3, r9 - beq .L2652 + beq .L2672 ldr r2, [sp, #16] mov lr, #36 orr r3, fp, r3, lsl #10 @@ -16806,30 +16965,30 @@ FtlRecoverySuperblock: str r3, [r2, #4] ldrb lr, [r4, #8] @ zero_extendqisi2 cmp lr, #1 - bne .L2653 - cbz r0, .L2653 + bne .L2673 + cbz r0, .L2673 orr r3, r3, #-2147483648 str r3, [r2, #4] -.L2653: +.L2673: ldr r3, [sp, #16] add ip, r3, #1 uxth r3, ip str r3, [sp, #16] -.L2652: +.L2672: adds r6, r6, #1 - b .L2651 -.L2763: + b .L2671 +.L2783: ldr r0, [r5, #1764] ldr r1, [sp, #16] ldr r2, [sp, #24] bl FlashReadPages movs r3, #0 -.L2757: +.L2777: str r3, [sp, #28] ldr r2, [sp, #16] ldrh r3, [sp, #28] cmp r3, r2 - bcs .L2764 + bcs .L2784 ldr r3, [sp, #28] movs r6, #36 ldr r9, [r5, #1764] @@ -16841,38 +17000,38 @@ FtlRecoverySuperblock: bl P2V_plane ldr r3, [sp, #12] cmp fp, r3 - bcc .L2656 - bne .L2657 + bcc .L2676 + bne .L2677 ldr r3, [sp, #32] cmp r0, r3 - bcc .L2656 -.L2657: + bcc .L2676 +.L2677: cmp fp, r10 - bne .L2658 + bne .L2678 ldr r3, [sp, #8] cmp r0, r3 - beq .L2659 -.L2658: + beq .L2679 +.L2678: ldr r3, [r9, r6] adds r3, r3, #1 - beq .L2660 + beq .L2680 ldr r8, [r8, #12] movw r3, #61589 ldrh r2, [r8] cmp r2, r3 - bne .L2667 + bne .L2687 ldr r3, [r8, #4] adds r7, r3, #1 str r3, [sp, #4] - beq .L2662 + beq .L2682 mov r0, r3 - ldr r1, [r5, #988] + ldr r1, [r5, #1032] bl ftl_cmp_data_ver - cbz r0, .L2662 + cbz r0, .L2682 ldr r3, [sp, #4] adds r3, r3, #1 - str r3, [r5, #988] -.L2662: + str r3, [r5, #1032] +.L2682: ldr r7, [r8, #8] add r1, sp, #56 ldr r3, [r8, #12] @@ -16880,22 +17039,22 @@ FtlRecoverySuperblock: mov r0, r7 str r3, [sp, #52] bl log2phys - ldr r1, [r5, #1928] + ldr r1, [r5, #1932] adds r0, r1, #1 - beq .L2663 + beq .L2683 ldr r0, [sp, #4] bl ftl_cmp_data_ver cmp r0, #0 - beq .L2663 + beq .L2683 ldr r3, [sp, #52] adds r2, r3, #1 - beq .L2664 + beq .L2684 ldr r0, [r5, #1764] movs r2, #0 movs r1, #1 add r0, r0, r6 - str r3, [r0, #4] ldr r9, [r0, #12] + str r3, [r0, #4] bl FlashReadPages ldr r2, [r5, #1764] ldr r3, [r9, #4] @@ -16903,240 +17062,240 @@ FtlRecoverySuperblock: str r3, [sp, #36] ldr r3, [r2, r6] adds r3, r3, #1 - bne .L2665 - b .L2666 -.L2664: + bne .L2685 + b .L2686 +.L2684: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - bne .L2667 + bne .L2687 mov r0, r7 add r1, sp, #52 movs r2, #1 bl log2phys -.L2667: +.L2687: ldrh r0, [r4] - b .L2756 -.L2665: + b .L2776 +.L2685: ldr r8, [r9, #8] cmp r8, r7 - bne .L2666 - ldr r0, [r5, #1928] + bne .L2686 + ldr r0, [r5, #1932] ldr r1, [sp, #36] str r2, [sp, #44] str ip, [sp, #40] bl ftl_cmp_data_ver ldr ip, [sp, #40] ldr r2, [sp, #44] - cbz r0, .L2666 + cbz r0, .L2686 ldr r3, [sp, #56] ldr r1, [sp, #60] cmp r3, r1 - beq .L2672 + beq .L2692 ldr r1, [sp, #52] cmp r3, r1 - beq .L2666 + beq .L2686 adds r0, r3, #1 - beq .L2670 + beq .L2690 str r3, [ip, #4] mov r0, ip movs r1, #1 movs r2, #0 ldr r9, [ip, #12] bl FlashReadPages - b .L2671 -.L2670: + b .L2691 +.L2690: str r3, [r2, r6] -.L2671: +.L2691: ldr r3, [r5, #1764] ldr r3, [r3, r6] adds r3, r3, #1 - beq .L2672 + beq .L2692 ldr r6, [r9, #4] - ldr r0, [r5, #1928] + ldr r0, [r5, #1932] mov r1, r6 bl ftl_cmp_data_ver - cbz r0, .L2672 + cbz r0, .L2692 ldr r0, [sp, #36] mov r1, r6 bl ftl_cmp_data_ver - cbz r0, .L2666 -.L2672: + cbz r0, .L2686 +.L2692: mov r0, r8 ldr r1, [sp, #52] bl FtlReUsePrevPpa -.L2666: +.L2686: ldrh r0, [r4] mov r3, #-1 str r3, [sp, #52] bl decrement_vpc_count - b .L2674 -.L2768: + b .L2694 +.L2788: .align 2 -.L2767: +.L2787: .word .LANCHOR4 .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+1864 -.L2663: + .word .LANCHOR2+1868 +.L2683: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - beq .L2674 + beq .L2694 mov r0, r7 add r1, sp, #60 movs r2, #1 bl log2phys ldr r8, [sp, #56] cmp r8, #-1 - beq .L2674 + beq .L2694 ldr r3, [sp, #52] cmp r8, r3 - beq .L2674 + beq .L2694 ubfx r0, r8, #10, #16 bl P2V_block_in_plane - ldrh r3, [r5, #788] - cmp r3, r0 - beq .L2677 ldrh r3, [r5, #836] cmp r3, r0 - beq .L2677 + beq .L2697 ldrh r3, [r5, #884] cmp r3, r0 - bne .L2674 -.L2677: - ldr r3, .L2769 + beq .L2697 + ldrh r3, [r5, #932] + cmp r3, r0 + bne .L2694 +.L2697: + ldr r3, .L2789 movs r1, #1 movs r2, #0 ldr r0, [r3, #1764] str r8, [r0, #4] ldr r6, [r0, #12] bl FlashReadPages - ldr r3, .L2769 + ldr r3, .L2789 ldr r1, [r6, #4] ldr r3, [r3, #1764] ldr r3, [r3] adds r3, r3, #1 - beq .L2674 + beq .L2694 ldr r0, [sp, #4] bl ftl_cmp_data_ver - cbnz r0, .L2674 + cbnz r0, .L2694 mov r0, r7 add r1, sp, #56 movs r2, #1 bl log2phys -.L2674: +.L2694: ldr r0, [sp, #52] adds r1, r0, #1 - beq .L2656 + beq .L2676 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, [r5, #768] + ldr r3, [r5, #816] ldrh r3, [r3, r0, lsl #1] mov r1, r0 - cbz r3, .L2678 -.L2756: + cbz r3, .L2698 +.L2776: bl decrement_vpc_count - b .L2656 -.L2678: - ldr r0, .L2769+4 + b .L2676 +.L2698: + ldr r0, .L2789+4 bl printk - b .L2656 -.L2660: + b .L2676 +.L2680: ldrh r3, [r4] mov r1, r7 - ldr r2, .L2769+8 - ldr r0, .L2769+12 - strh r3, [r2, #-210] @ movhi + ldr r2, .L2789+8 + ldr r0, .L2789+12 + strh r3, [r2, #-206] @ movhi ldr r2, [sp, #4] bl printk - ldr r3, .L2769+8 - ldr r3, [r3, #-204] + ldr r3, .L2789+8 + ldr r3, [r3, #-200] cmp r3, #31 - bhi .L2679 - ldr r2, .L2769+8 + bhi .L2699 + ldr r2, .L2789+8 ldr r1, [sp, #60] add r2, r2, r3, lsl #2 adds r3, r3, #1 - str r1, [r2, #-200] - ldr r2, .L2769+8 - str r3, [r2, #-204] -.L2679: + str r1, [r2, #-196] + ldr r2, .L2789+8 + str r3, [r2, #-200] +.L2699: ldrh r0, [r4] bl decrement_vpc_count - ldr r3, [r5, #1928] + ldr r3, [r5, #1932] adds r2, r3, #1 - bne .L2680 + bne .L2700 ldr r3, [sp, #4] - b .L2755 -.L2680: + b .L2775 +.L2700: ldr r2, [sp, #4] cmp r3, r2 - bls .L2656 + bls .L2676 mov r3, r2 -.L2755: - str r3, [r5, #1928] -.L2656: +.L2775: + str r3, [r5, #1932] +.L2676: ldr r3, [sp, #28] adds r3, r3, #1 - b .L2757 -.L2764: + b .L2777 +.L2784: ldrb r3, [r4, #8] @ zero_extendqisi2 add fp, fp, #1 cmp r3, #1 uxth fp, fp - ldr r3, .L2769+16 - bne .L2682 + ldr r3, .L2789+16 + bne .L2702 ldrb r2, [r3, #76] @ zero_extendqisi2 - cbz r2, .L2682 - ldrh r2, [r3, #2900] + cbz r2, .L2702 + ldrh r2, [r3, #2912] cmp r2, fp - bne .L2682 + bne .L2702 cmp r10, fp - beq .L2659 -.L2682: - ldrh r3, [r3, #2898] + beq .L2679 +.L2702: + ldrh r3, [r3, #2910] cmp fp, r3 - bne .L2650 - ldr r2, .L2769+16 + bne .L2670 + ldr r2, .L2789+16 movw r0, #65535 movs r3, #0 strh fp, [r4, #2] @ movhi strh r3, [r4, #4] @ movhi - ldrh r1, [r2, #2828] -.L2683: + ldrh r1, [r2, #2840] +.L2703: uxth r2, r3 cmp r2, r1 - bcs .L2749 + bcs .L2769 ldr r6, [sp, #20] adds r3, r3, #1 ldrh r5, [r6, #2]! cmp r5, r0 str r6, [sp, #20] - beq .L2683 + beq .L2703 strb r2, [r4, #6] - b .L2749 -.L2659: + b .L2769 +.L2679: ldrb r3, [sp, #8] @ zero_extendqisi2 mov r0, r4 ldr r2, [sp, #8] mov r1, r10 strh r10, [r4, #2] @ movhi strb r3, [r4, #6] -.L2758: +.L2778: bl ftl_sb_update_avl_pages -.L2749: +.L2769: movs r0, #0 add sp, sp, #68 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2770: +.L2790: .align 2 -.L2769: +.L2789: .word .LANCHOR2 - .word .LC127 + .word .LC130 .word .LANCHOR4 - .word .LC128 + .word .LC131 .word .LANCHOR0 .fnend .size FtlRecoverySuperblock, .-FtlRecoverySuperblock @@ -17153,72 +17312,72 @@ FtlWriteDumpData: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #40 sub sp, sp, #40 - ldr r4, .L2789 - ldr r3, [r4, #740] + ldr r4, .L2809 + ldr r3, [r4, #744] cmp r3, #0 - bne .L2771 - ldrh r2, [r4, #792] + bne .L2791 + ldrh r2, [r4, #840] cmp r2, #0 - beq .L2773 - ldrb r3, [r4, #796] @ zero_extendqisi2 + beq .L2793 + ldrb r3, [r4, #844] @ zero_extendqisi2 cmp r3, #0 - bne .L2773 - ldr r7, .L2789+4 - ldrb r1, [r4, #795] @ zero_extendqisi2 - ldrh r3, [r7, #2898] + bne .L2793 + ldr r7, .L2809+4 + ldrb r1, [r4, #843] @ zero_extendqisi2 + ldrh r3, [r7, #2910] muls r3, r1, r3 cmp r2, r3 - beq .L2773 - ldrb r9, [r4, #798] @ zero_extendqisi2 - ldr r6, [r7, #2960] - ldrh r8, [r7, #2828] + beq .L2793 + ldrb r9, [r4, #846] @ zero_extendqisi2 + ldr r6, [r7, #2968] + ldrh r8, [r7, #2840] cmp r9, #0 - bne .L2771 + bne .L2791 subs r6, r6, #1 mov r1, sp mov r2, r9 mov r0, r6 bl log2phys - ldr r5, [r4, #1796] - ldr r0, [r4, #756] ldr r3, [sp] - str r6, [sp, #20] - str r0, [sp, #12] + ldr r5, [r4, #1800] + ldr r0, [r4, #1776] str r3, [sp, #8] adds r3, r3, #1 + str r6, [sp, #20] + str r0, [sp, #12] str r5, [sp, #16] str r9, [r5, #4] - beq .L2775 + beq .L2795 + add r0, sp, #4 movs r1, #1 mov r2, r9 - add r0, sp, #4 bl FlashReadPages - b .L2776 -.L2775: + b .L2796 +.L2795: movs r1, #255 - ldrh r2, [r7, #2908] + ldrh r2, [r7, #2920] bl ftl_memset -.L2776: +.L2796: movs r7, #0 - ldr r10, .L2789 + ldr r10, .L2809 lsl r8, r8, #2 movw r3, #61589 mov r9, r7 strh r3, [r5] @ movhi -.L2777: +.L2797: cmp r7, r8 - beq .L2778 - ldrh r3, [r4, #792] - cbz r3, .L2778 + beq .L2798 + ldrh r3, [r4, #840] + cbz r3, .L2798 ldr r3, [sp, #8] adds r7, r7, #1 str r6, [r5, #8] - ldr r0, .L2789+8 + ldr r0, .L2809+8 str r3, [r5, #12] - ldrh r3, [r10, #788] + ldrh r3, [r10, #836] strh r3, [r5, #2] @ movhi bl get_new_active_ppa - ldr r3, [r10, #988] + ldr r3, [r10, #1032] movs r1, #1 str r0, [sp, #8] add r0, sp, #4 @@ -17228,29 +17387,29 @@ FtlWriteDumpData: mov r2, #0 it eq moveq r3, r9 - str r3, [r10, #988] + str r3, [r10, #1032] mov r3, r2 bl FlashProgPages - ldrh r0, [r4, #788] + ldrh r0, [r4, #836] bl decrement_vpc_count - b .L2777 -.L2778: + b .L2797 +.L2798: movs r3, #1 - b .L2788 -.L2773: + b .L2808 +.L2793: movs r3, #0 -.L2788: - strb r3, [r4, #798] -.L2771: +.L2808: + strb r3, [r4, #846] +.L2791: add sp, sp, #40 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L2790: +.L2810: .align 2 -.L2789: +.L2809: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+788 + .word .LANCHOR2+836 .fnend .size FtlWriteDumpData, .-FtlWriteDumpData .align 1 @@ -17266,29 +17425,29 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData movs r4, #0 - ldr r5, .L2796 + ldr r5, .L2816 movs r7, #12 - ldr r6, .L2796+4 -.L2792: - ldrh r3, [r5, #2938] + ldr r6, .L2816+4 +.L2812: + ldrh r3, [r5, #2950] uxth r0, r4 cmp r3, r0 - bls .L2795 - ldr r3, [r6, #932] + bls .L2815 + ldr r3, [r6, #980] mla r3, r7, r0, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L2793 + bge .L2813 bl flush_l2p_region -.L2793: +.L2813: adds r4, r4, #1 - b .L2792 -.L2795: + b .L2812 +.L2815: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L2797: +.L2817: .align 2 -.L2796: +.L2816: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -17306,88 +17465,88 @@ FtlVpcCheckAndModify: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 movs r4, #0 - ldr r6, .L2812 - ldr r1, .L2812+4 - ldr r0, .L2812+8 + ldr r6, .L2832 + ldr r1, .L2832+4 + ldr r0, .L2832+8 bl printk - ldr r5, .L2812+12 - ldrh r2, [r6, #2838] + ldr r5, .L2832+12 + ldrh r2, [r6, #2850] movs r1, #0 - ldr r0, [r5, #1820] + ldr r0, [r5, #1824] lsls r2, r2, #1 bl ftl_memset -.L2799: - ldr r3, [r6, #2960] +.L2819: + ldr r3, [r6, #2968] cmp r4, r3 - bcs .L2810 + bcs .L2830 mov r0, r4 add r1, sp, #4 movs r2, #0 bl log2phys ldr r0, [sp, #4] adds r3, r0, #1 - beq .L2800 + beq .L2820 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r5, #1820] + ldr r2, [r5, #1824] ldrh r3, [r2, r0, lsl #1] adds r3, r3, #1 strh r3, [r2, r0, lsl #1] @ movhi -.L2800: +.L2820: adds r4, r4, #1 - b .L2799 -.L2810: - ldr r7, .L2812+12 + b .L2819 +.L2830: + ldr r7, .L2832+12 mov r8, #0 movw r9, #65535 -.L2802: - ldrh r3, [r6, #2836] +.L2822: + ldrh r3, [r6, #2848] uxth r4, r8 cmp r3, r4 - bls .L2811 - ldr r3, [r5, #768] + bls .L2831 + ldr r3, [r5, #816] ldrh r2, [r3, r4, lsl #1] - ldr r3, [r5, #1820] + ldr r3, [r5, #1824] ldrh r3, [r3, r4, lsl #1] cmp r2, r3 - beq .L2804 + beq .L2824 cmp r2, r9 - beq .L2804 - ldr r0, .L2812+16 + beq .L2824 + ldr r0, .L2832+16 mov r1, r4 bl printk - ldrh r3, [r7, #788] + ldrh r3, [r7, #836] cmp r3, r4 - beq .L2804 - ldrh r3, [r7, #884] + beq .L2824 + ldrh r3, [r7, #932] cmp r3, r4 - beq .L2804 - ldrh r3, [r7, #836] + beq .L2824 + ldrh r3, [r7, #884] cmp r3, r4 - beq .L2804 - ldr r3, [r7, #1820] + beq .L2824 + ldr r3, [r7, #1824] mov r0, r4 ldrh r2, [r3, r4, lsl #1] - ldr r3, [r7, #768] + ldr r3, [r7, #816] strh r2, [r3, r4, lsl #1] @ movhi bl update_vpc_list bl l2p_flush bl FtlVpcTblFlush -.L2804: +.L2824: add r8, r8, #1 - b .L2802 -.L2811: + b .L2822 +.L2831: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L2813: +.L2833: .align 2 -.L2812: +.L2832: .word .LANCHOR0 .word .LANCHOR3+16 - .word .LC129 + .word .LC132 .word .LANCHOR2 - .word .LC130 + .word .LC133 .fnend .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 1 @@ -17402,633 +17561,634 @@ allocate_new_data_superblock: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 - ldr r4, .L2840 + ldr r4, .L2860 ldrh r5, [r0] - ldr r3, [r4, #740] + ldr r3, [r4, #744] cmp r3, #0 - bne .L2815 + bne .L2835 movw r3, #65535 cmp r5, r3 - beq .L2816 - ldr r3, [r4, #768] + beq .L2836 + ldr r3, [r4, #816] mov r0, r5 ldrh r3, [r3, r5, lsl #1] - cbz r3, .L2817 + cbz r3, .L2837 bl INSERT_DATA_LIST - b .L2816 -.L2817: + b .L2836 +.L2837: bl INSERT_FREE_LIST -.L2816: +.L2836: + ldr r2, .L2860 movs r3, #0 strb r3, [r6, #8] - ldr r3, .L2840 - add r2, r3, #836 - cmp r6, r2 - beq .L2818 - ldr r1, .L2840+4 - ldrh r2, [r1, #2848] - cmp r2, #1 - beq .L2818 - ldrb r1, [r1, #76] @ zero_extendqisi2 - cbz r1, .L2819 -.L2818: + add r3, r2, #884 + cmp r6, r3 + beq .L2838 + ldr r3, .L2860+4 + ldrh r1, [r3, #2860] + cmp r1, #1 + beq .L2838 + ldrb r0, [r3, #76] @ zero_extendqisi2 + cbz r0, .L2839 +.L2838: movs r3, #1 strb r3, [r6, #8] - b .L2820 -.L2819: - add r1, r3, #788 - cmp r6, r1 - bne .L2820 - cmp r2, #3 - beq .L2822 - ldr r3, [r3, #1124] - cmp r3, #1 - bne .L2823 -.L2822: - movs r3, #1 - strb r3, [r4, #796] -.L2823: - ldr r2, [r4, #948] - ldr r3, .L2840 - cbz r2, .L2820 - ldr r2, [r3, #1008] - cmp r2, #29 - itt ls + b .L2840 +.L2839: + add r0, r2, #836 + cmp r6, r0 + bne .L2840 + cmp r1, #3 + beq .L2842 + ldr r2, [r2, #1120] + cmp r2, #1 + bne .L2843 +.L2842: + movs r2, #1 + strb r2, [r4, #844] +.L2843: + ldr r3, [r3, #2832] + cbz r3, .L2840 + ldr r3, [r4, #1052] + cmp r3, #29 + ittt ls movls r2, #1 - strbls r2, [r3, #796] -.L2820: - ldrh r0, [r4, #1916] + ldrls r3, .L2860 + strbls r2, [r3, #844] +.L2840: + ldrh r0, [r4, #1920] movw r3, #65535 cmp r0, r3 - beq .L2825 + beq .L2845 cmp r5, r0 - bne .L2826 - ldr r3, .L2840 - ldr r3, [r3, #768] + bne .L2846 + ldr r3, .L2860 + ldr r3, [r3, #816] ldrh r3, [r3, r0, lsl #1] - cbz r3, .L2827 -.L2826: + cbz r3, .L2847 +.L2846: bl update_vpc_list -.L2827: +.L2847: movw r3, #65535 - strh r3, [r4, #1916] @ movhi -.L2825: + strh r3, [r4, #1920] @ movhi +.L2845: mov r0, r6 bl allocate_data_superblock bl l2p_flush movs r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2815: +.L2835: movs r0, #0 pop {r4, r5, r6, pc} -.L2841: +.L2861: .align 2 -.L2840: +.L2860: .word .LANCHOR2 .word .LANCHOR0 .fnend .size allocate_new_data_superblock, .-allocate_new_data_superblock .align 1 - .global rk_ftl_garbage_collect + .global ftl_do_gc .thumb .thumb_func - .type rk_ftl_garbage_collect, %function -rk_ftl_garbage_collect: + .type ftl_do_gc, %function +ftl_do_gc: .fnstart @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r0 - ldr r4, .L3010 + ldr r4, .L3030 .pad #44 sub sp, sp, #44 mov r6, r1 - ldr r0, [r4, #740] + ldr r0, [r4, #744] mov r7, r4 cmp r0, #0 - bne .L2936 - ldr r3, [r4, #1744] + bne .L2956 + ldr r3, [r4, #1740] cmp r3, #0 - bne .L2994 - ldrh r2, [r4, #776] + bne .L3014 + ldrh r2, [r4, #824] cmp r2, #47 - bls .L2938 - ldr r3, .L3010+4 - ldrh r2, [r3, #3000] + bls .L2958 + ldr r3, .L3030+4 + ldrh r2, [r3, #3064] movw r3, #65535 cmp r2, r3 - bne .L2844 -.L2847: - ldrh r1, [r7, #1696] + bne .L2864 +.L2867: + ldrh r1, [r7, #1692] movw r0, #65535 - ldr r3, .L3010 + ldr r3, .L3030 cmp r1, r0 - beq .L2846 - ldrh r2, [r3, #1694] + beq .L2866 + ldrh r2, [r3, #1690] cmp r2, r0 itt eq - strheq r1, [r3, #1694] @ movhi - strheq r2, [r3, #1696] @ movhi - b .L2846 -.L2844: - ldrh r2, [r4, #884] + strheq r1, [r3, #1690] @ movhi + strheq r2, [r3, #1692] @ movhi + b .L2866 +.L2864: + ldrh r2, [r4, #932] cmp r2, r3 - beq .L2847 + beq .L2867 movs r0, #1 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L2847 + beq .L2867 movs r0, #1 - b .L2994 -.L2846: - ldr r4, [r7, #1644] + b .L3014 +.L2866: + ldr r4, [r7, #1640] cmp r8, #1 add r4, r4, #1 add r4, r4, r8, lsl #7 - str r4, [r7, #1644] - bne .L2858 - ldr r3, .L3010 - ldr r3, [r3, #948] - cbnz r3, .L2849 - ldr r3, .L3010+8 + str r4, [r7, #1640] + bne .L2878 + ldr r3, .L3030+8 + ldr r2, [r3, #2832] + mov r10, r3 + cbnz r2, .L2869 ldrb r3, [r3, #76] @ zero_extendqisi2 cmp r3, #0 - beq .L2858 -.L2849: - ldr r3, [r7, #1008] - ldr r5, .L3010 + beq .L2878 +.L2869: + ldr r3, [r7, #1052] + ldr r5, .L3030 cmp r3, #29 - bhi .L2858 - ldr r9, .L3010+12 - ldrh r3, [r9, #-72] + bhi .L2878 + ldr r9, .L3030+12 + ldrh r3, [r9, #-68] add r4, r4, r3 - str r4, [r5, #1644] + str r4, [r5, #1640] bl FtlGcReFreshBadBlk - ldrh r3, [r5, #1076] + ldrh r3, [r5, #1072] movw r2, #65535 cmp r3, r2 - bne .L2858 - ldrh r2, [r5, #1694] + bne .L2878 + ldrh r2, [r5, #1690] cmp r2, r3 - bne .L2858 - ldr r3, [r5, #1644] + bne .L2878 + ldr r3, [r5, #1640] cmp r3, #1024 - bhi .L2850 - ldrh r3, [r5, #784] + bhi .L2870 + ldrh r3, [r5, #832] cmp r3, #63 - bhi .L2858 -.L2850: - ldrh r3, [r7, #1642] + bhi .L2878 +.L2870: + ldrh r3, [r7, #1638] movs r0, #0 - ldrh r4, [r7, #784] + ldrh r4, [r7, #832] adds r3, r3, #64 - ldr r2, .L3010+12 + ldr r2, .L3030+12 cmp r4, r3 - strh r0, [r9, #-72] @ movhi - ldr r1, .L3010 - bgt .L2858 - ldr r3, [r1, #1008] - str r0, [r1, #1644] - cbnz r3, .L2851 + strh r0, [r9, #-68] @ movhi + ldr r1, .L3030 + bgt .L2878 + ldr r3, [r1, #1052] + str r0, [r1, #1640] + cbnz r3, .L2871 movs r3, #6 - b .L2995 -.L2851: + b .L3015 +.L2871: cmp r3, #5 - bhi .L2852 + bhi .L2872 movs r3, #18 -.L2995: - strh r3, [r2, #-72] @ movhi -.L2852: +.L3015: + strh r3, [r2, #-68] @ movhi +.L2872: movs r0, #32 bl List_get_gc_head_node movw ip, #65535 uxth r2, r0 cmp r2, ip - beq .L2857 - ldrh r0, [r7, #1648] - ldr r5, .L3010 + beq .L2877 + ldrh r0, [r7, #1644] + ldr r5, .L3030 cmp r0, #0 - beq .L2854 - ldr r3, .L3010+8 - ldr r10, [r5, #768] - ldrh r4, [r3, #2900] - ldrh r3, [r3, #2828] - ldrh r1, [r10, r2, lsl #1] + beq .L2874 + ldrh r4, [r10, #2912] + ldrh r3, [r10, #2840] + ldr fp, [r5, #816] muls r3, r4, r3 + ldrh r1, [fp, r2, lsl #1] adds r3, r3, #1 cmp r1, r3 - bgt .L2857 + bgt .L2877 adds r1, r0, #1 str ip, [sp, #20] str r2, [sp, #16] - mov fp, #0 + mov r10, #0 uxth r1, r1 - str fp, [r5, #1652] - strh r1, [r5, #1648] @ movhi + str r10, [r5, #1648] + strh r1, [r5, #1644] @ movhi str r1, [sp, #12] bl List_get_gc_head_node ldr ip, [sp, #20] - uxth r4, r0 ldr r1, [sp, #12] - cmp r4, ip ldr r2, [sp, #16] - beq .L2857 - ldrh r2, [r10, r2, lsl #1] - ldrh r3, [r10, r4, lsl #1] - ldr r0, .L3010+16 + uxth r4, r0 + cmp r4, ip + beq .L2877 + ldrh r2, [fp, r2, lsl #1] + ldrh r3, [fp, r4, lsl #1] + ldr r0, .L3030+16 str r2, [sp] mov r2, r4 bl printk - ldrh r3, [r5, #1648] + ldrh r3, [r5, #1644] cmp r3, #40 - bls .L2855 - ldr r3, [r5, #768] + bls .L2875 + ldr r3, [r5, #816] ldrh r3, [r3, r4, lsl #1] cmp r3, #32 it hi - strhhi fp, [r5, #1648] @ movhi -.L2855: + strhhi r10, [r5, #1644] @ movhi +.L2875: movs r3, #6 - strh r3, [r9, #-72] @ movhi - b .L2874 -.L2854: + strh r3, [r9, #-68] @ movhi + b .L2894 +.L2874: movs r3, #1 - strh r3, [r5, #1648] @ movhi -.L2857: + strh r3, [r5, #1644] @ movhi +.L2877: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 mov r4, r0 - bne .L2874 + bne .L2894 movs r3, #0 - strh r3, [r9, #-72] @ movhi -.L2858: - ldrh r3, [r7, #1076] + strh r3, [r9, #-68] @ movhi +.L2878: + ldrh r3, [r7, #1072] movw r4, #65535 - ldr r5, .L3010 + ldr r5, .L3030 cmp r3, r4 - bne .L3002 - ldrh r4, [r5, #884] + bne .L3022 + ldrh r4, [r5, #932] cmp r4, r3 - bne .L2859 - ldrh r10, [r5, #1694] + bne .L2879 + ldrh r10, [r5, #1690] cmp r10, r4 - bne .L2860 - ldrh r3, [r5, #784] - ldr r2, [r5, #1644] + bne .L2880 + ldrh r3, [r5, #832] + ldr r2, [r5, #1640] cmp r3, #24 ite cc movcc r3, #5120 movcs r3, #1024 cmp r2, r3 - bls .L2862 - ldr r2, .L3010+12 + bls .L2882 + ldr r2, .L3030+12 movs r3, #0 - str r3, [r7, #1644] + str r3, [r7, #1640] mov r9, r5 - strh r3, [r2, #-72] @ movhi + strh r3, [r2, #-68] @ movhi bl GetSwlReplaceBlock cmp r0, r10 mov r4, r0 - bne .L2863 - ldrh r2, [r5, #784] - ldrh r3, [r5, #1642] + bne .L2883 + ldrh r2, [r5, #832] + ldrh r3, [r5, #1638] cmp r2, r3 - bcs .L2864 + bcs .L2884 movs r0, #64 bl List_get_gc_head_node uxth r3, r0 cmp r3, r4 - bne .L3003 -.L2873: + bne .L3023 +.L2893: bl FtlGcReFreshBadBlk cmp r8, #0 - beq .L3004 -.L2874: - ldrh r2, [r7, #884] + beq .L3024 +.L2894: + ldrh r2, [r7, #932] movw r3, #65535 cmp r2, r3 - bne .L2885 -.L2934: - ldrh r3, [r7, #1694] + bne .L2905 +.L2954: + ldrh r3, [r7, #1690] movw r2, #65535 cmp r3, r2 - bne .L2885 + bne .L2905 cmp r4, r3 - bne .L2885 -.L2935: - ldrh r2, [r7, #1076] + bne .L2905 +.L2955: + ldrh r2, [r7, #1072] movw r3, #65535 - ldr r4, .L3010 + ldr r4, .L3030 cmp r2, r3 - beq .L2886 -.L2890: + beq .L2906 +.L2910: movw r4, #65535 - b .L2885 -.L2886: + b .L2905 +.L2906: movs r3, #0 - ldrh r9, [r4, #784] - str r3, [r4, #1652] - ldrh r3, [r4, #1640] - ldr r5, .L3010+12 + ldrh r9, [r4, #832] + str r3, [r4, #1648] + ldrh r3, [r4, #1636] + ldr r5, .L3030+12 cmp r3, r9 - bcs .L2887 - ldrh r3, [r5, #-72] - cbnz r3, .L2888 - ldr r3, .L3010+8 - ldr r2, [r4, #940] - ldr r3, [r3, #2960] + bcs .L2907 + ldrh r3, [r5, #-68] + cbnz r3, .L2908 + ldr r3, .L3030+8 + ldr r2, [r4, #988] + ldr r3, [r3, #2968] add r3, r3, r3, lsl #1 cmp r2, r3, lsr #2 - bcs .L2946 -.L2888: - ldrh r3, [r7, #1060] + bcs .L2966 +.L2908: + ldrh r3, [r7, #1056] add r3, r3, r3, lsl #1 ubfx r3, r3, #2, #16 - b .L2889 -.L2946: + b .L2909 +.L2966: movs r3, #18 -.L2889: - strh r3, [r7, #1640] @ movhi - b .L2999 -.L2887: - ldrh r0, [r5, #-72] +.L2909: + strh r3, [r7, #1636] @ movhi + b .L3019 +.L2907: + ldrh r0, [r5, #-68] cmp r0, #0 - bne .L2890 - ldrh r6, [r4, #1060] + bne .L2910 + ldrh r6, [r4, #1056] add r3, r6, r6, lsl #1 asrs r3, r3, #2 - strh r3, [r4, #1640] @ movhi + strh r3, [r4, #1636] @ movhi bl List_get_gc_head_node - ldr r2, .L3010+8 - ldr r3, [r4, #768] - ldrh r1, [r2, #2900] - ldrh r4, [r2, #2828] + ldr r2, .L3030+8 + ldr r3, [r4, #816] + ldrh r1, [r2, #2912] + ldrh r4, [r2, #2840] muls r4, r1, r4 add r4, r4, r4, lsr #31 uxth r0, r0 ldrh r3, [r3, r0, lsl #1] cmp r3, r4, asr #1 - ble .L2891 + ble .L2911 subs r6, r6, #1 cmp r9, r6 - blt .L2891 -.L2999: + blt .L2911 +.L3019: bl FtlReadRefresh - b .L3000 -.L2891: + b .L3020 +.L2911: cmp r3, #0 - bne .L2890 + bne .L2910 movw r0, #65535 bl decrement_vpc_count - ldrh r0, [r7, #784] + ldrh r0, [r7, #832] adds r0, r0, #1 - b .L2994 -.L2885: - ldr r3, [r7, #948] + b .L3014 +.L2905: + ldr r3, .L3030+8 + ldr r3, [r3, #2832] cmp r3, #0 ite eq moveq r5, #1 movne r5, #2 - b .L2884 -.L3011: + b .L2904 +.L3031: .align 2 -.L3010: +.L3030: .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR4 - .word .LC131 -.L3004: + .word .LC134 +.L3024: movw r3, #65535 cmp r4, r3 - bne .L2874 -.L2933: - ldrh r4, [r7, #784] + bne .L2894 +.L2953: + ldrh r4, [r7, #832] cmp r4, #24 - bhi .L2942 - ldr r3, .L3012 + bhi .L2962 + ldr r3, .L3032 cmp r4, #16 - ldrh r5, [r3, #2898] - bls .L2876 + ldrh r5, [r3, #2910] + bls .L2896 lsrs r5, r5, #5 -.L2875: - ldrh r3, [r7, #1640] - ldr r2, .L3012+4 +.L2895: + ldrh r3, [r7, #1636] + ldr r2, .L3032+4 cmp r3, r4 - bcc .L3005 -.L2879: - ldr r3, [r7, #948] + bcc .L3025 +.L2899: + ldr r3, .L3032 + ldr r3, [r3, #2832] cmp r3, #0 - bne .L3006 -.L2945: + bne .L3026 +.L2965: movw r4, #65535 -.L2884: - ldrh r2, [r7, #1076] +.L2904: + ldrh r2, [r7, #1072] movw r1, #65535 - ldr r3, .L3012+4 + ldr r3, .L3032+4 cmp r2, r1 - bne .L2893 + bne .L2913 cmp r4, r2 - beq .L2894 - strh r4, [r3, #1076] @ movhi - b .L2895 -.L2894: - ldrh r2, [r3, #1694] + beq .L2914 + strh r4, [r3, #1072] @ movhi + b .L2915 +.L2914: + ldrh r2, [r3, #1690] cmp r2, r4 - beq .L2895 - ldr r1, [r3, #768] + beq .L2915 + ldr r1, [r3, #816] ldrh r2, [r1, r2, lsl #1] - cbnz r2, .L2896 - strh r4, [r3, #1694] @ movhi -.L2896: - ldrh r3, [r7, #1694] - strh r3, [r7, #1076] @ movhi + cbnz r2, .L2916 + strh r4, [r3, #1690] @ movhi +.L2916: + ldrh r3, [r7, #1690] + strh r3, [r7, #1072] @ movhi movw r3, #65535 - strh r3, [r7, #1694] @ movhi -.L2895: - ldrh r0, [r7, #1076] + strh r3, [r7, #1690] @ movhi +.L2915: + ldrh r0, [r7, #1072] movw r6, #65535 movs r3, #0 - strb r3, [r7, #1084] + strb r3, [r7, #1080] cmp r0, r6 - beq .L2893 + beq .L2913 bl IsBlkInGcList - cbz r0, .L2898 - ldr r3, .L3012+4 - strh r6, [r3, #1076] @ movhi -.L2898: - ldr r3, .L3012 + cbz r0, .L2918 + ldr r3, .L3032+4 + strh r6, [r3, #1072] @ movhi +.L2918: + ldr r3, .L3032 ldrb r3, [r3, #76] @ zero_extendqisi2 - cbz r3, .L2899 - ldrh r0, [r7, #1076] + cbz r3, .L2919 + ldrh r0, [r7, #1072] bl ftl_get_blk_mode - strb r0, [r7, #1084] -.L2899: - ldrh r2, [r7, #1076] + strb r0, [r7, #1080] +.L2919: + ldrh r2, [r7, #1072] movw r3, #65535 - ldr r6, .L3012+4 + ldr r6, .L3032+4 cmp r2, r3 - beq .L2893 - addw r0, r6, #1076 + beq .L2913 + add r0, r6, #1072 bl make_superblock - ldr r2, .L3012+8 + ldr r2, .L3032+8 movs r3, #0 - ldrh r1, [r6, #1076] - strh r3, [r6, #1078] @ movhi - strb r3, [r6, #1082] - strh r3, [r2, #-70] @ movhi - ldr r3, [r6, #768] + ldrh r1, [r6, #1072] + strh r3, [r6, #1074] @ movhi + strb r3, [r6, #1078] + strh r3, [r2, #-66] @ movhi + ldr r3, [r6, #816] ldrh r3, [r3, r1, lsl #1] - strh r3, [r2, #-68] @ movhi -.L2893: - ldrh r3, [r7, #1076] - ldrh r2, [r7, #788] + strh r3, [r2, #-64] @ movhi +.L2913: + ldrh r3, [r7, #1072] + ldrh r2, [r7, #836] cmp r2, r3 - beq .L2900 - ldr r2, .L3012+4 - ldrh r2, [r2, #836] + beq .L2920 + ldr r2, .L3032+4 + ldrh r2, [r2, #884] cmp r2, r3 - beq .L2900 -.L2901: - ldr r7, .L3012 - b .L2902 -.L2900: + beq .L2920 +.L2921: + ldr r7, .L3032 + b .L2922 +.L2920: movw r3, #65535 - strh r3, [r7, #1076] @ movhi - b .L3001 -.L2923: - ldrh r3, [r6, #1078] + strh r3, [r7, #1072] @ movhi + b .L3021 +.L2943: + ldrh r3, [r6, #1074] add r5, r5, r3 ldr r3, [sp, #12] uxth r5, r5 - strh r5, [r6, #1078] @ movhi + strh r5, [r6, #1074] @ movhi cmp r5, r3 - bcs .L3007 -.L2925: - ldrh r3, [r6, #784] + bcs .L3027 +.L2945: + ldrh r3, [r6, #832] cmp r3, #2 - bhi .L2928 - ldrh r5, [r7, #2898] -.L2902: - ldr r6, .L3012+4 + bhi .L2948 + ldrh r5, [r7, #2910] +.L2922: + ldr r6, .L3032+4 movw r3, #65535 - ldrh r2, [r6, #1076] + ldrh r2, [r6, #1072] mov fp, r6 cmp r2, r3 - bne .L2903 + bne .L2923 mov r10, r6 movs r3, #0 - str r3, [r6, #1652] -.L2904: - ldrh r9, [fp, #1648] + str r3, [r6, #1648] +.L2924: + ldrh r9, [fp, #1644] mov r0, r9 bl List_get_gc_head_node movw r2, #65535 uxth r3, r0 - strh r3, [fp, #1076] @ movhi + strh r3, [fp, #1072] @ movhi cmp r3, r2 - bne .L2905 - ldr r3, .L3012+4 + bne .L2925 + ldr r3, .L3032+4 movs r2, #0 movs r0, #8 - strh r2, [r3, #1648] @ movhi - b .L2994 -.L2905: + strh r2, [r3, #1644] @ movhi + b .L3014 +.L2925: mov r0, r3 str r3, [sp, #12] bl IsBlkInGcList add r9, r9, #1 ldr r3, [sp, #12] - cbz r0, .L2906 - strh r9, [r10, #1648] @ movhi - b .L2904 -.L2906: - ldrh lr, [r7, #2828] + cbz r0, .L2926 + strh r9, [r10, #1644] @ movhi + b .L2924 +.L2926: + ldrh lr, [r7, #2840] uxth r9, r9 - ldrh r2, [r7, #2898] - ldr r1, [r10, #768] - strh r9, [r10, #1648] @ movhi + ldrh r2, [r7, #2910] + ldr r1, [r10, #816] + strh r9, [r10, #1644] @ movhi mul r2, lr, r2 ldrh r0, [r1, r3, lsl #1] add lr, r2, r2, lsr #31 cmp r0, lr, asr #1 - bgt .L2908 + bgt .L2928 cmp r9, #48 - bls .L2909 + bls .L2929 cmp r0, #8 - bls .L2909 - ldrh r0, [r10, #1684] + bls .L2929 + ldrh r0, [r10, #1680] cmp r0, #35 - bhi .L2909 -.L2908: + bhi .L2929 +.L2928: movs r0, #0 - strh r0, [fp, #1648] @ movhi -.L2909: + strh r0, [fp, #1644] @ movhi +.L2929: ldrh r1, [r1, r3, lsl #1] cmp r1, r2 - blt .L2910 + blt .L2930 movw r2, #65535 cmp r4, r2 - bne .L2910 + bne .L2930 movs r3, #0 - strh r4, [fp, #1076] @ movhi - strh r3, [fp, #1648] @ movhi -.L3001: - ldr r3, .L3012+8 - ldrh r0, [r3, #-72] - b .L2994 -.L2910: - cbnz r1, .L2911 + strh r4, [fp, #1072] @ movhi + strh r3, [fp, #1644] @ movhi +.L3021: + ldr r3, .L3032+8 + ldrh r0, [r3, #-68] + b .L3014 +.L2930: + cbnz r1, .L2931 movw r0, #65535 bl decrement_vpc_count - ldrh r3, [fp, #1648] + ldrh r3, [fp, #1644] adds r3, r3, #1 - strh r3, [fp, #1648] @ movhi - b .L2904 -.L2911: + strh r3, [fp, #1644] @ movhi + b .L2924 +.L2931: movs r2, #0 - strb r2, [r6, #1084] - ldr r2, .L3012 + strb r2, [r6, #1080] + ldr r2, .L3032 ldrb r2, [r2, #76] @ zero_extendqisi2 - cbz r2, .L2912 + cbz r2, .L2932 mov r0, r3 bl ftl_get_blk_mode - ldr r3, .L3012+4 - strb r0, [r3, #1084] -.L2912: - ldr r0, .L3012+12 + ldr r3, .L3032+4 + strb r0, [r3, #1080] +.L2932: + ldr r0, .L3032+12 bl make_superblock - ldr r2, .L3012+8 - ldrh r0, [r6, #1076] + ldr r2, .L3032+8 + ldrh r0, [r6, #1072] movs r3, #0 - ldr r1, [r6, #768] - strh r3, [r2, #-70] @ movhi + ldr r1, [r6, #816] + strh r3, [r2, #-66] @ movhi ldrh r1, [r1, r0, lsl #1] - strh r3, [r6, #1078] @ movhi - strb r3, [r6, #1082] - strh r1, [r2, #-68] @ movhi -.L2903: + strh r3, [r6, #1074] @ movhi + strb r3, [r6, #1078] + strh r1, [r2, #-64] @ movhi +.L2923: cmp r8, #1 - bne .L2913 + bne .L2933 bl FtlReadRefresh -.L2913: +.L2933: movs r3, #1 - str r3, [r6, #1744] - ldrh r3, [r7, #2898] + str r3, [r6, #1740] + ldrh r3, [r7, #2910] str r3, [sp, #12] ldrb r3, [r7, #76] @ zero_extendqisi2 - cbz r3, .L2914 - ldr r3, .L3012+4 - ldrb r3, [r3, #1084] @ zero_extendqisi2 + cbz r3, .L2934 + ldr r3, .L3032+4 + ldrb r3, [r3, #1080] @ zero_extendqisi2 cmp r3, #1 itt eq - ldrheq r3, [r7, #2900] + ldrheq r3, [r7, #2912] streq r3, [sp, #12] -.L2914: - ldrh r3, [r6, #1078] +.L2934: + ldrh r3, [r6, #1074] ldr r1, [sp, #12] adds r2, r3, r5 cmp r2, r1 @@ -18037,29 +18197,29 @@ rk_ftl_garbage_collect: subgt r3, r2, r3 uxthgt r5, r3 movs r3, #0 -.L2998: +.L3018: str r3, [sp, #16] ldrh r3, [sp, #16] - ldr r6, .L3012+4 + ldr r6, .L3032+4 cmp r3, r5 - bcs .L2923 - ldr r3, [r6, #1672] - addw r1, r6, #1090 + bcs .L2943 + ldr r3, [r6, #1668] + addw r1, r6, #1086 ldr r2, [sp, #16] movw lr, #65535 - ldrh r10, [r7, #2828] + ldrh r10, [r7, #2840] str r3, [sp, #20] - ldrh r3, [r6, #1078] + ldrh r3, [r6, #1074] add ip, r3, r2 movs r3, #0 mov r9, r3 -.L2924: +.L2944: uxth r2, r3 cmp r2, r10 - bcs .L3008 + bcs .L3028 ldrh r2, [r1, #2]! cmp r2, lr - beq .L2917 + beq .L2937 ldr r0, [sp, #20] mov fp, #36 orr r2, ip, r2, lsl #10 @@ -18067,74 +18227,74 @@ rk_ftl_garbage_collect: add r9, r9, #1 uxth r9, r9 str r2, [fp, #4] -.L2917: +.L2937: adds r3, r3, #1 - b .L2924 -.L3013: + b .L2944 +.L3033: .align 2 -.L3012: +.L3032: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR4 - .word .LANCHOR2+1076 -.L3008: - ldr r0, [r6, #1672] + .word .LANCHOR2+1072 +.L3028: + ldr r0, [r6, #1668] mov r1, r9 - ldrb r2, [r6, #1084] @ zero_extendqisi2 + ldrb r2, [r6, #1080] @ zero_extendqisi2 mov fp, #0 bl FlashReadPages - ldr r6, .L3014 -.L2919: + ldr r6, .L3034 +.L2939: uxth r3, fp cmp r3, r9 - bcs .L3009 + bcs .L3029 mov ip, #36 - ldr r2, [r6, #1672] + ldr r2, [r6, #1668] mul r10, ip, fp add r3, r2, r10 ldr r2, [r2, r10] ldr r3, [r3, #12] adds r2, r2, #1 - beq .L2948 + beq .L2968 ldrh r1, [r3] movw r2, #61589 cmp r1, r2 - bne .L2948 + bne .L2968 add r1, sp, ip ldr r0, [r3, #8] movs r2, #0 str ip, [sp, #24] str r3, [sp, #20] bl log2phys - ldr r1, [r6, #1672] - add r1, r1, r10 - ldr r0, [r1, #4] + ldr r1, [r6, #1668] ldr r2, [sp, #36] + add r1, r1, r10 ldr r3, [sp, #20] bic r2, r2, #-2147483648 ldr ip, [sp, #24] + ldr r0, [r1, #4] cmp r2, r0 - bne .L2948 + bne .L2968 str r3, [sp, #28] - ldr r3, .L3014+4 - ldr r0, [r6, #1656] + ldr r3, .L3034+4 + ldr r0, [r6, #1652] ldr r1, [r1, #16] - ldrh r2, [r3, #-70] + ldrh r2, [r3, #-66] adds r2, r2, #1 - strh r2, [r3, #-70] @ movhi + strh r2, [r3, #-66] @ movhi ldr r2, [r6, #1768] mla r2, ip, r0, r2 str r1, [r2, #16] str r2, [sp, #20] bl Ftl_get_new_temp_ppa - ldr r1, [r6, #1656] ldr r2, [sp, #20] + ldr r1, [r6, #1652] ldr ip, [sp, #24] ldr r3, [sp, #28] str r0, [r2, #4] ldr r2, [r6, #1768] mla ip, ip, r1, r2 - ldr r2, [r6, #1672] + ldr r2, [r6, #1668] add r2, r2, r10 ldr r1, [r2, #8] str r1, [ip, #8] @@ -18143,245 +18303,245 @@ rk_ftl_garbage_collect: str r2, [ip, #12] ldr r2, [sp, #36] str r2, [r3, #12] - ldrh r2, [r6, #884] + ldrh r2, [r6, #932] strh r2, [r3, #2] @ movhi - ldr r2, [r6, #988] - ldr r0, [r6, #1672] + ldr r2, [r6, #1032] + ldr r0, [r6, #1668] str r2, [r3, #4] add r0, r0, r10 - ldr r3, [r6, #1656] + ldr r3, [r6, #1652] adds r3, r3, #1 - str r3, [r6, #1656] + str r3, [r6, #1652] bl FtlGcBufAlloc ldrb r3, [r7, #76] @ zero_extendqisi2 - cbnz r3, .L2921 - ldrb r3, [r6, #891] @ zero_extendqisi2 - ldr r2, [r6, #1656] + cbnz r3, .L2941 + ldrb r3, [r6, #939] @ zero_extendqisi2 + ldr r2, [r6, #1652] cmp r2, r3 - beq .L2921 - ldrh r3, [r6, #888] - cbnz r3, .L2948 -.L2921: + beq .L2941 + ldrh r3, [r6, #936] + cbnz r3, .L2968 +.L2941: bl Ftl_gc_temp_data_write_back - cbz r0, .L2948 - ldr r3, .L3014 + cbz r0, .L2968 + ldr r3, .L3034 movs r2, #0 - str r2, [r3, #1744] - b .L3001 -.L2948: + str r2, [r3, #1740] + b .L3021 +.L2968: add fp, fp, #1 - b .L2919 -.L3009: + b .L2939 +.L3029: ldr r3, [sp, #16] adds r3, r3, #1 - b .L2998 -.L3007: - ldr r3, [r6, #1656] - ldr r5, .L3014+4 - cbz r3, .L2926 + b .L3018 +.L3027: + ldr r3, [r6, #1652] + ldr r5, .L3034+4 + cbz r3, .L2946 bl Ftl_gc_temp_data_write_back - cbz r0, .L2926 + cbz r0, .L2946 movs r3, #0 - str r3, [r6, #1744] -.L3000: - ldrh r0, [r5, #-72] - b .L2994 -.L2926: - ldrh r1, [r5, #-70] - cbnz r1, .L2927 - ldrh r2, [r6, #1076] - ldr r3, [r6, #768] + str r3, [r6, #1740] +.L3020: + ldrh r0, [r5, #-68] + b .L3014 +.L2946: + ldrh r1, [r5, #-66] + cbnz r1, .L2947 + ldrh r2, [r6, #1072] + ldr r3, [r6, #816] ldrh r0, [r3, r2, lsl #1] - cbz r0, .L2927 + cbz r0, .L2947 strh r1, [r3, r2, lsl #1] @ movhi - ldr r3, .L3014 - ldrh r0, [r3, #1076] + ldr r3, .L3034 + ldrh r0, [r3, #1072] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L2927: +.L2947: movw r3, #65535 - strh r3, [r6, #1076] @ movhi - b .L2925 -.L2928: - ldr r2, .L3014 + strh r3, [r6, #1072] @ movhi + b .L2945 +.L2948: + ldr r2, .L3034 movs r1, #0 - str r1, [r2, #1744] - ldr r2, .L3014+4 - ldrh r0, [r2, #-72] + str r1, [r2, #1740] + ldr r2, .L3034+4 + ldrh r0, [r2, #-68] cmp r0, #0 - bne .L2994 + bne .L3014 adds r0, r3, #1 - b .L2994 -.L2936: + b .L3014 +.L2956: movs r0, #0 - b .L2994 -.L2938: + b .L3014 +.L2958: mov r0, r3 - b .L2994 -.L3003: - ldr r2, [r5, #1740] - ldr r5, .L3014+8 - cbnz r2, .L2866 - ldrh r2, [r5, #2848] + b .L3014 +.L3023: + ldr r2, [r5, #1736] + ldr r5, .L3034+8 + cbnz r2, .L2886 + ldrh r2, [r5, #2860] cmp r2, #3 - beq .L2866 - ldr r2, [r9, #1124] - cbnz r2, .L2866 - ldr r2, [r9, #948] - cbnz r2, .L2866 + beq .L2886 + ldr r2, [r9, #1120] + cbnz r2, .L2886 + ldr r2, [r5, #2832] + cbnz r2, .L2886 ldrb r0, [r5, #76] @ zero_extendqisi2 - cbz r0, .L2867 -.L2866: - ldr r2, [r7, #768] - ldrh r0, [r5, #2848] + cbz r0, .L2887 +.L2886: + ldr r2, [r7, #816] + ldrh r0, [r5, #2860] ldrh r1, [r2, r3, lsl #1] cmp r0, #3 - ldrh r3, [r5, #2900] - ldrh r2, [r5, #2828] + ldrh r3, [r5, #2912] + ldrh r2, [r5, #2840] mul r2, r2, r3 ite eq lsreq r3, r3, #1 movne r3, #0 add r3, r3, r2 cmp r1, r3 - bgt .L2869 + bgt .L2889 movs r0, #0 bl List_get_gc_head_node - ldr r3, [r5, #2960] - ldr r2, .L3014 - ldr r1, [r7, #940] + ldr r3, [r5, #2968] + ldr r2, .L3034 + ldr r1, [r7, #988] add r3, r3, r3, lsl #1 cmp r1, r3, lsr #2 ite hi movhi r3, #128 movls r3, #160 - strh r3, [r2, #1642] @ movhi + strh r3, [r2, #1638] @ movhi uxth r4, r0 - b .L2871 -.L2869: + b .L2891 +.L2889: movs r3, #128 - b .L2997 -.L2867: - ldr r2, [r9, #768] + b .L3017 +.L2887: + ldr r2, [r9, #816] ldrh r3, [r2, r3, lsl #1] cmp r3, #7 - bhi .L2872 + bhi .L2892 bl List_get_gc_head_node movs r3, #128 - strh r3, [r7, #1642] @ movhi + strh r3, [r7, #1638] @ movhi uxth r4, r0 - b .L2871 -.L2872: + b .L2891 +.L2892: movs r3, #64 -.L2997: - strh r3, [r7, #1642] @ movhi - b .L2873 -.L2864: +.L3017: + strh r3, [r7, #1638] @ movhi + b .L2893 +.L2884: movs r3, #80 - strh r3, [r5, #1642] @ movhi - b .L2873 -.L2871: + strh r3, [r5, #1638] @ movhi + b .L2893 +.L2891: movw r3, #65535 cmp r4, r3 - beq .L2873 -.L2863: - ldr r1, [r7, #748] - ldr r3, [r7, #768] - ldrh r2, [r7, #784] + beq .L2893 +.L2883: + ldr r1, [r7, #752] + ldr r3, [r7, #816] + ldrh r2, [r7, #832] ldrh r1, [r1, r4, lsl #1] ldrh r3, [r3, r4, lsl #1] - ldr r0, .L3014+12 + ldr r0, .L3034+12 str r1, [sp] - ldrh r1, [r7, #1640] + ldrh r1, [r7, #1636] str r1, [sp, #4] mov r1, r4 bl printk - b .L2873 -.L2876: + b .L2893 +.L2896: cmp r4, #12 - bls .L2877 + bls .L2897 lsrs r5, r5, #4 - b .L2875 -.L2877: + b .L2895 +.L2897: cmp r4, #8 - bls .L2875 + bls .L2895 lsrs r5, r5, #2 - b .L2875 -.L2942: + b .L2895 +.L2962: movs r5, #1 - b .L2875 -.L3005: - ldrh r3, [r2, #884] + b .L2895 +.L3025: + ldrh r3, [r2, #932] movw r1, #65535 cmp r3, r1 - bne .L2880 - ldrh r1, [r2, #1694] + bne .L2900 + ldrh r1, [r2, #1690] cmp r1, r3 - bne .L2880 - ldr r3, .L3014+4 - ldrh r0, [r3, #-72] - cbnz r0, .L2881 - ldr r3, .L3014+8 - ldr r2, [r2, #940] - ldr r3, [r3, #2960] + bne .L2900 + ldr r3, .L3034+4 + ldrh r0, [r3, #-68] + cbnz r0, .L2901 + ldr r3, .L3034+8 + ldr r2, [r2, #988] + ldr r3, [r3, #2968] add r3, r3, r3, lsl #1 cmp r2, r3, lsr #2 - bcs .L2943 -.L2881: - ldrh r3, [r7, #1060] + bcs .L2963 +.L2901: + ldrh r3, [r7, #1056] add r3, r3, r3, lsl #1 ubfx r3, r3, #2, #16 - b .L2882 -.L2943: + b .L2902 +.L2963: movs r3, #18 -.L2882: - strh r3, [r7, #1640] @ movhi +.L2902: + strh r3, [r7, #1636] @ movhi movs r3, #0 - str r3, [r7, #1652] - b .L2994 -.L2880: - ldrh r3, [r7, #1060] + str r3, [r7, #1648] + b .L3014 +.L2900: + ldrh r3, [r7, #1056] add r3, r3, r3, lsl #1 asrs r3, r3, #2 - strh r3, [r7, #1640] @ movhi - b .L2879 -.L3006: + strh r3, [r7, #1636] @ movhi + b .L2899 +.L3026: cmp r6, #2 - bhi .L2945 + bhi .L2965 adds r5, r5, #1 uxth r5, r5 - b .L2945 -.L3002: + b .L2965 +.L3022: cmp r8, #0 - beq .L2933 - b .L2874 -.L2859: + beq .L2953 + b .L2894 +.L2879: cmp r8, #0 - beq .L2933 - b .L2890 -.L2860: + beq .L2953 + b .L2910 +.L2880: cmp r8, #0 - beq .L2933 - b .L2934 -.L2862: + beq .L2953 + b .L2954 +.L2882: cmp r8, #0 - beq .L2933 - b .L2935 -.L2994: + beq .L2953 + b .L2955 +.L3014: add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3015: +.L3035: .align 2 -.L3014: +.L3034: .word .LANCHOR2 .word .LANCHOR4 .word .LANCHOR0 - .word .LC132 + .word .LC135 .fnend - .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect + .size ftl_do_gc, .-ftl_do_gc .align 1 .global FtlCacheWriteBack .thumb @@ -18394,135 +18554,135 @@ FtlCacheWriteBack: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r3, .L3058 - ldr r6, .L3058+4 - ldr r5, [r3, #-64] - ldr r3, [r6, #740] + ldr r3, .L3078 + ldr r6, .L3078+4 + ldr r5, [r3, #-60] + ldr r3, [r6, #744] cmp r3, #0 - bne .L3018 - ldr r4, .L3058+8 - ldr r1, [r4, #2952] + bne .L3038 + ldr r4, .L3078+8 + ldr r1, [r4, #2960] cmp r1, #0 - beq .L3018 + beq .L3038 ldrb r7, [r4, #76] @ zero_extendqisi2 - cbz r7, .L3020 + cbz r7, .L3040 ldrb r7, [r5, #8] @ zero_extendqisi2 subs r0, r7, #1 rsbs r7, r0, #0 adcs r7, r7, r0 -.L3020: - ldr r0, [r4, #2956] +.L3040: + ldr r0, [r4, #2964] mov r2, r7 ldrb r3, [r5, #9] @ zero_extendqisi2 mov r9, #0 bl FlashProgPages - ldr r10, .L3058+8 + ldr r10, .L3078+8 mov fp, #36 -.L3021: - ldr r3, [r4, #2952] +.L3041: + ldr r3, [r4, #2960] cmp r9, r3 - bcs .L3038 + bcs .L3058 mul r8, fp, r9 - ldr r3, [r10, #2956] + ldr r3, [r10, #2964] add r2, r3, r8 ldr r3, [r3, r8] adds r3, r3, #1 - beq .L3041 + beq .L3061 ldr r3, [r2, #4] - cbz r7, .L3054 + cbz r7, .L3074 orr r3, r3, #-2147483648 -.L3054: +.L3074: ldr r0, [r2, #16] add r1, sp, #4 movs r2, #1 str r3, [sp, #4] bl log2phys - ldr r3, [r4, #2956] + ldr r3, [r4, #2964] add r8, r8, r3 ldr r3, [r8, #12] ldr r0, [r3, #12] adds r2, r0, #1 - beq .L3025 + beq .L3045 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, [r6, #768] + ldr r3, [r6, #816] ldrh r2, [r3, r0, lsl #1] mov r8, r0 - cbnz r2, .L3026 - ldr r0, .L3058+12 + cbnz r2, .L3046 + ldr r0, .L3078+12 mov r1, r8 bl printk -.L3026: +.L3046: mov r0, r8 bl decrement_vpc_count -.L3025: +.L3045: add r9, r9, #1 - b .L3021 -.L3056: + b .L3041 +.L3076: movw r5, #16386 -.L3037: - ldrh r3, [r6, #1698] - cbz r3, .L3038 +.L3057: + ldrh r3, [r6, #1694] + cbz r3, .L3058 movs r0, #1 mov r1, r0 - bl rk_ftl_garbage_collect + bl ftl_do_gc subs r5, r5, #1 - bne .L3037 -.L3038: + bne .L3057 +.L3058: movs r3, #0 - str r3, [r4, #2952] - b .L3018 -.L3041: - ldr r10, .L3058+8 + str r3, [r4, #2960] + b .L3038 +.L3061: + ldr r10, .L3078+8 mov r9, #0 -.L3022: - ldr r3, [r4, #2952] +.L3042: + ldr r3, [r4, #2960] cmp r9, r3 - bcs .L3056 + bcs .L3076 mov r8, #36 - ldr r3, [r10, #2956] + ldr r3, [r10, #2964] mov fp, #0 mov r2, #-1 mul r8, r8, r9 str r2, [r3, r8] -.L3028: - ldr r3, [r4, #2956] +.L3048: + ldr r3, [r4, #2964] add r2, r3, r8 ldr r3, [r3, r8] adds r3, r3, #1 - bne .L3057 + bne .L3077 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r5] cmp r3, r0 - bne .L3029 - ldr r1, [r6, #768] + bne .L3049 + ldr r1, [r6, #816] ldrh r0, [r5, #4] ldrh r2, [r1, r3, lsl #1] subs r2, r2, r0 strh r2, [r1, r3, lsl #1] @ movhi - ldrh r3, [r10, #2898] + ldrh r3, [r10, #2910] strb fp, [r5, #6] strh fp, [r5, #4] @ movhi strh r3, [r5, #2] @ movhi -.L3029: +.L3049: ldrh r3, [r5, #4] - cbnz r3, .L3030 + cbnz r3, .L3050 mov r0, r5 bl allocate_new_data_superblock -.L3030: - ldr r3, [r6, #1224] +.L3050: + ldr r3, [r6, #1220] adds r3, r3, #1 - str r3, [r6, #1224] - ldr r3, [r4, #2956] + str r3, [r6, #1220] + ldr r3, [r4, #2964] add r3, r3, r8 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl FtlGcMarkBadPhyBlk mov r0, r5 bl get_new_active_ppa - ldr r3, [r4, #2956] + ldr r3, [r4, #2964] movs r1, #1 mov r2, r7 add r3, r3, r8 @@ -18531,53 +18691,53 @@ FtlCacheWriteBack: mov r0, r3 ldrb r3, [r5, #9] @ zero_extendqisi2 bl FlashProgPages - ldr r3, [r6, #740] + ldr r3, [r6, #744] cmp r3, #0 - beq .L3028 - b .L3018 -.L3057: + beq .L3048 + b .L3038 +.L3077: ldr r3, [r2, #4] - cbz r7, .L3055 + cbz r7, .L3075 orr r3, r3, #-2147483648 -.L3055: +.L3075: ldr r0, [r2, #16] add r1, sp, #4 movs r2, #1 str r3, [sp, #4] bl log2phys - ldr r3, [r4, #2956] + ldr r3, [r4, #2964] add r8, r8, r3 ldr r3, [r8, #12] ldr r0, [r3, #12] adds r3, r0, #1 - beq .L3034 + beq .L3054 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, [r6, #768] + ldr r3, [r6, #816] ldrh r2, [r3, r0, lsl #1] mov r8, r0 - cbnz r2, .L3035 - ldr r0, .L3058+12 + cbnz r2, .L3055 + ldr r0, .L3078+12 mov r1, r8 bl printk -.L3035: +.L3055: mov r0, r8 bl decrement_vpc_count -.L3034: +.L3054: add r9, r9, #1 - b .L3022 -.L3018: + b .L3042 +.L3038: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3059: +.L3079: .align 2 -.L3058: +.L3078: .word .LANCHOR4 .word .LANCHOR2 .word .LANCHOR0 - .word .LC133 + .word .LC136 .fnend .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 1 @@ -18591,20 +18751,20 @@ FtlSysFlush: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - ldr r3, .L3062 - ldr r3, [r3, #740] - cbnz r3, .L3061 + ldr r3, .L3082 + ldr r3, [r3, #744] + cbnz r3, .L3081 bl FtlCacheWriteBack bl l2p_flush movs r0, #1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3061: +.L3081: movs r0, #0 pop {r3, pc} -.L3063: +.L3083: .align 2 -.L3062: +.L3082: .word .LANCHOR2 .fnend .size FtlSysFlush, .-FtlSysFlush @@ -18619,21 +18779,38 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - ldr r3, .L3066 + ldr r3, .L3086 ldr r3, [r3, #504] cmp r3, #1 - bne .L3065 + bne .L3085 bl FtlSysFlush -.L3065: +.L3085: movs r0, #0 pop {r3, pc} -.L3067: +.L3087: .align 2 -.L3066: +.L3086: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit .align 1 + .global ftl_deinit + .thumb + .thumb_func + .type ftl_deinit, %function +ftl_deinit: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r3, lr} + .save {r3, lr} + bl ftl_flash_de_init + bl FtlDeInit + pop {r3, lr} + b ftl_flash_de_init + .fnend + .size ftl_deinit, .-ftl_deinit + .align 1 .global rk_ftl_de_init .thumb .thumb_func @@ -18644,18 +18821,49 @@ rk_ftl_de_init: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - bl FlashDeInit - bl FtlDeInit + movs r1, #0 + ldr r0, .L3090 + bl printk pop {r3, lr} - b FlashDeInit + b ftl_deinit +.L3091: + .align 2 +.L3090: + .word .LC137 .fnend .size rk_ftl_de_init, .-rk_ftl_de_init .align 1 - .global FtlDiscard + .global ftl_cache_flush .thumb .thumb_func - .type FtlDiscard, %function -FtlDiscard: + .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 1 + .global rk_ftl_cache_write_back + .thumb + .thumb_func + .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 1 + .global ftl_discard + .thumb + .thumb_func + .type ftl_discard, %function +ftl_discard: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 @@ -18663,25 +18871,21 @@ FtlDiscard: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 adds r2, r0, r1 - ldr r7, .L3085 + ldr r7, .L3111 mov r6, r0 mov r5, r1 - ldr r3, [r7, #2940] + ldr r3, [r7, #1896] cmp r2, r3 - bhi .L3077 + bhi .L3101 cmp r1, #31 - bhi .L3071 -.L3072: - movs r0, #0 - b .L3070 -.L3071: - ldr r3, .L3085+4 - ldr r2, [r3, #740] + bls .L3103 + ldr r3, .L3111+4 + ldr r2, [r3, #744] mov r8, r3 cmp r2, #0 - bne .L3072 + bne .L3103 bl FtlCacheWriteBack - ldrh r4, [r7, #2904] + ldrh r4, [r7, #2916] mov r0, r6 mov r1, r4 bl __aeabi_uidiv @@ -18689,7 +18893,7 @@ FtlDiscard: mov r9, r0 subs r6, r6, r3 uxth r6, r6 - cbz r6, .L3073 + cbz r6, .L3096 subs r4, r4, r6 add r9, r0, #1 cmp r4, r5 @@ -18697,63 +18901,79 @@ FtlDiscard: movcs r4, r5 uxth r4, r4 subs r5, r5, r4 -.L3073: - ldr r4, .L3085+8 +.L3096: + ldr r4, .L3111+8 mov r3, #-1 str r3, [sp, #4] -.L3074: - ldrh r3, [r7, #2904] +.L3097: + ldrh r3, [r7, #2916] cmp r5, r3 - bcc .L3084 + bcc .L3110 mov r0, r9 mov r1, sp movs r2, #0 bl log2phys ldr r3, [sp] adds r3, r3, #1 - beq .L3075 - ldr r3, [r4, #-60] + beq .L3098 + ldr r3, [r4, #-56] add r1, sp, #4 movs r2, #1 mov r0, r9 adds r3, r3, #1 - str r3, [r4, #-60] - ldr r3, [r8, #956] + str r3, [r4, #-56] + ldr r3, [r8, #1000] adds r3, r3, #1 - str r3, [r8, #956] + str r3, [r8, #1000] bl log2phys ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L3075: - ldrh r3, [r7, #2904] +.L3098: + ldrh r3, [r7, #2916] add r9, r9, #1 subs r5, r5, r3 - b .L3074 -.L3084: - ldr r3, .L3085+8 - ldr r2, [r3, #-60] + b .L3097 +.L3110: + ldr r3, .L3111+8 + ldr r2, [r3, #-56] cmp r2, #32 - bls .L3072 - movs r4, #0 - str r4, [r3, #-60] + bls .L3103 + movs r2, #0 + str r2, [r3, #-56] bl l2p_flush bl FtlVpcTblFlush - b .L3072 -.L3077: + b .L3103 +.L3101: mov r0, #-1 -.L3070: + b .L3095 +.L3103: + movs r0, #0 +.L3095: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3086: +.L3112: .align 2 -.L3085: +.L3111: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR4 .fnend + .size ftl_discard, .-ftl_discard + .align 1 + .global FtlDiscard + .thumb + .thumb_func + .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 1 .global FtlGcFreeTempBlock @@ -18767,100 +18987,100 @@ FtlGcFreeTempBlock: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L3124 - ldr r6, .L3124+4 - ldr r2, [r4, #740] - ldrh r1, [r6, #2898] + ldr r4, .L3151 + ldr r6, .L3151+4 + ldr r2, [r4, #744] + ldrh r1, [r6, #2910] cmp r2, #0 - bne .L3122 - ldrh r5, [r4, #884] + bne .L3149 + ldrh r5, [r4, #932] movw r7, #65535 cmp r5, r7 - bne .L3090 -.L3099: - ldrh r2, [r4, #884] + bne .L3117 +.L3126: + ldrh r2, [r4, #932] movw r3, #65535 movs r7, #0 - ldr r5, .L3124 + ldr r5, .L3151 cmp r2, r3 - str r7, [r4, #1924] - beq .L3122 + str r7, [r4, #1928] + beq .L3149 bl FtlCacheWriteBack - ldrb r0, [r5, #891] @ zero_extendqisi2 - ldrh r3, [r6, #2898] + ldrb r0, [r5, #939] @ zero_extendqisi2 + ldrh r3, [r6, #2910] mov r10, #12 - ldr r2, [r5, #768] - ldrh r1, [r5, #884] + ldr r2, [r5, #816] + ldrh r1, [r5, #932] smulbb r3, r0, r3 strh r3, [r2, r1, lsl #1] @ movhi - ldr r3, [r5, #972] - ldrh r2, [r5, #1692] + ldr r3, [r5, #1016] + ldrh r2, [r5, #1688] add r3, r3, r2 - str r3, [r5, #972] - b .L3100 -.L3090: - cbz r0, .L3093 - ldr r3, .L3124+8 - ldrh r0, [r3, #3000] + str r3, [r5, #1016] + b .L3127 +.L3117: + cbz r0, .L3120 + ldr r3, .L3151+8 + ldrh r0, [r3, #3064] cmp r0, r7 - beq .L3094 -.L3095: + beq .L3121 +.L3122: movs r1, #2 - b .L3093 -.L3094: - strh r2, [r3, #3000] @ movhi - ldrh r3, [r4, #784] + b .L3120 +.L3121: + strh r2, [r3, #3064] @ movhi + ldrh r3, [r4, #832] cmp r3, #17 - bhi .L3095 -.L3093: - ldr r7, .L3124 - add r0, r7, #884 + bhi .L3122 +.L3120: + ldr r7, .L3151 + add r0, r7, #932 bl FtlGcScanTempBlk str r0, [sp, #4] adds r0, r0, #1 - beq .L3096 - ldr r2, [r7, #748] + beq .L3123 + ldr r2, [r7, #752] ldrh r3, [r2, r5, lsl #1] cmp r3, #4 - bls .L3097 + bls .L3124 subs r3, r3, #5 movs r0, #1 strh r3, [r2, r5, lsl #1] @ movhi bl FtlEctTblFlush -.L3097: - ldr r3, [r4, #1924] - ldr r2, .L3124 - cbnz r3, .L3098 +.L3124: + ldr r3, [r4, #1928] + ldr r2, .L3151 + cbnz r3, .L3125 ldr r0, [sp, #4] - ldr r3, [r2, #1224] + ldr r3, [r2, #1220] ubfx r0, r0, #10, #16 adds r3, r3, #1 - str r3, [r2, #1224] + str r3, [r2, #1220] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L3098: +.L3125: movs r3, #0 - str r3, [r4, #1924] - b .L3110 -.L3096: - ldr r3, .L3124+8 - ldrh r2, [r3, #3000] + str r3, [r4, #1928] + b .L3137 +.L3123: + ldr r3, .L3151+8 + ldrh r2, [r3, #3064] movw r3, #65535 cmp r2, r3 - bne .L3110 - b .L3099 -.L3103: + bne .L3137 + b .L3126 +.L3130: mul r8, r10, r8 - ldr fp, [r5, #1688] + ldr fp, [r5, #1684] add r1, sp, #4 movs r2, #0 add r9, fp, r8 ldr r0, [r9, #8] bl log2phys - ldr r3, [fp, r8] ldr r0, [sp, #4] + ldr r3, [fp, r8] cmp r0, r3 - bne .L3101 + bne .L3128 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r1, r9, #4 @@ -18869,96 +19089,96 @@ FtlGcFreeTempBlock: ldr r0, [r9, #8] bl log2phys mov r0, r8 -.L3121: +.L3148: bl decrement_vpc_count -.L3102: +.L3129: adds r7, r7, #1 -.L3100: - ldrh r3, [r4, #1692] +.L3127: + ldrh r3, [r4, #1688] uxth r8, r7 cmp r3, r8 - bhi .L3103 - b .L3123 -.L3101: + bhi .L3130 + b .L3150 +.L3128: ldr r3, [r9, #4] cmp r0, r3 - beq .L3102 - ldrh r0, [r5, #884] - b .L3121 -.L3123: + beq .L3129 + ldrh r0, [r5, #932] + b .L3148 +.L3150: movw r0, #65535 bl decrement_vpc_count ldrb r3, [r6, #76] @ zero_extendqisi2 - cbz r3, .L3104 - ldr r3, .L3124 - ldr r0, .L3124+12 - ldrh r1, [r3, #884] + cbz r3, .L3131 + ldr r3, .L3151 + ldr r0, .L3151+12 + ldrh r1, [r3, #932] bl printk -.L3104: - ldrh r0, [r4, #884] - ldr r3, [r4, #768] +.L3131: + ldrh r0, [r4, #932] + ldr r3, [r4, #816] ldrh r3, [r3, r0, lsl #1] - cbz r3, .L3105 + cbz r3, .L3132 bl INSERT_DATA_LIST - b .L3106 -.L3105: + b .L3133 +.L3132: bl INSERT_FREE_LIST -.L3106: +.L3133: movw r3, #65535 - strh r3, [r4, #884] @ movhi + strh r3, [r4, #932] @ movhi movs r3, #0 - strh r3, [r4, #1692] @ movhi - strh r3, [r4, #1684] @ movhi + strh r3, [r4, #1688] @ movhi + strh r3, [r4, #1680] @ movhi bl l2p_flush bl FtlVpcTblFlush - ldr r3, [r4, #948] - ldr r5, .L3124 - cbz r3, .L3107 - ldr r3, [r5, #1008] + ldr r3, [r6, #2832] + ldr r5, .L3151 + cbz r3, .L3134 + ldr r3, [r5, #1052] cmp r3, #29 - bhi .L3107 - ldrh r3, [r5, #1060] - ldrh r2, [r5, #784] + bhi .L3134 + ldrh r3, [r5, #1056] + ldrh r2, [r5, #832] cmp r2, r3 itt cc lslcc r3, r3, #1 - strhcc r3, [r5, #1640] @ movhi + strhcc r3, [r5, #1636] @ movhi movw r3, #65535 - strh r3, [r4, #1076] @ movhi - b .L3122 -.L3107: - ldrh r3, [r4, #1060] - ldrh r1, [r4, #784] - ldr r2, .L3124 + strh r3, [r4, #1072] @ movhi + b .L3149 +.L3134: + ldrh r3, [r4, #1056] + ldrh r1, [r4, #832] + ldr r2, .L3151 add r0, r3, r3, lsl #1 cmp r1, r0, asr #2 - ble .L3122 + ble .L3149 ldrb r0, [r6, #76] @ zero_extendqisi2 movw r1, #65535 - strh r1, [r2, #1076] @ movhi - cbz r0, .L3109 + strh r1, [r2, #1072] @ movhi + cbz r0, .L3136 subs r3, r3, #2 - strh r3, [r2, #1640] @ movhi -.L3122: + strh r3, [r2, #1636] @ movhi +.L3149: movs r0, #0 - b .L3089 -.L3109: + b .L3116 +.L3136: movs r3, #20 - strh r3, [r2, #1640] @ movhi - b .L3089 -.L3110: + strh r3, [r2, #1636] @ movhi + b .L3116 +.L3137: movs r0, #1 -.L3089: +.L3116: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3125: +.L3152: .align 2 -.L3124: +.L3151: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR1 - .word .LC134 + .word .LC138 .fnend .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock .align 1 @@ -18970,50 +19190,50 @@ Ftl_gc_temp_data_write_back: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3144 + ldr r3, .L3171 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} ldrb r3, [r3, #76] @ zero_extendqisi2 - ldr r5, .L3144+4 - cbz r3, .L3127 - ldr r3, [r5, #1656] + ldr r5, .L3171+4 + cbz r3, .L3154 + ldr r3, [r5, #1652] lsls r4, r3, #31 - bpl .L3127 - ldrh r3, [r5, #888] - cbz r3, .L3127 -.L3132: + bpl .L3154 + ldrh r3, [r5, #936] + cbz r3, .L3154 +.L3159: movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L3127: +.L3154: movs r2, #0 ldr r0, [r5, #1768] - ldr r1, [r5, #1656] + ldr r1, [r5, #1652] movs r6, #0 mov r3, r2 - ldr r7, .L3144+4 + ldr r7, .L3171+4 bl FlashProgPages mov r8, #36 -.L3129: - ldr r1, [r5, #1656] +.L3156: + ldr r1, [r5, #1652] uxth r3, r6 - ldr r4, .L3144+4 + ldr r4, .L3171+4 cmp r3, r1 - bcs .L3143 + bcs .L3170 mul r3, r8, r3 ldr r1, [r7, #1768] adds r6, r6, #1 adds r2, r1, r3 ldr r1, [r1, r3] adds r0, r1, #1 - bne .L3130 - ldrh r0, [r4, #884] + bne .L3157 + ldrh r0, [r4, #932] movs r5, #0 - ldr r2, [r4, #768] + ldr r2, [r4, #816] strh r5, [r2, r0, lsl #1] @ movhi - ldr r2, [r4, #1224] - strh r1, [r4, #884] @ movhi + ldr r2, [r4, #1220] + strh r1, [r4, #932] @ movhi adds r2, r2, #1 - str r2, [r4, #1224] + str r2, [r4, #1220] ldr r2, [r4, #1768] add r3, r3, r2 ldr r0, [r3, #4] @@ -19021,30 +19241,30 @@ Ftl_gc_temp_data_write_back: bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3142 -.L3130: + b .L3169 +.L3157: ldr r3, [r2, #12] ldr r1, [r2, #4] ldr r0, [r3, #12] ldr r2, [r3, #8] bl FtlGcUpdatePage - b .L3129 -.L3143: + b .L3156 +.L3170: ldr r0, [r4, #1768] bl FtlGcBufFree movs r3, #0 - str r3, [r4, #1656] - ldrh r3, [r4, #888] + str r3, [r4, #1652] + ldrh r3, [r4, #936] cmp r3, #0 - bne .L3132 + bne .L3159 movs r0, #1 bl FtlGcFreeTempBlock -.L3142: +.L3169: movs r0, #1 pop {r4, r5, r6, r7, r8, pc} -.L3145: +.L3172: .align 2 -.L3144: +.L3171: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -19060,26 +19280,26 @@ FtlGcPageRecovery: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r5, .L3148 - ldr r4, .L3148+4 - ldrh r1, [r5, #2898] - add r0, r4, #884 + ldr r5, .L3175 + ldr r4, .L3175+4 + ldrh r1, [r5, #2910] + add r0, r4, #932 bl FtlGcScanTempBlk - ldrh r2, [r4, #886] - ldrh r3, [r5, #2898] + ldrh r2, [r4, #934] + ldrh r3, [r5, #2910] cmp r2, r3 - bcc .L3146 - add r0, r4, #1864 + bcc .L3173 + addw r0, r4, #1868 bl FtlMapBlkWriteDumpData movs r0, #0 bl FtlGcFreeTempBlock movs r3, #0 - str r3, [r4, #1924] -.L3146: + str r3, [r4, #1928] +.L3173: pop {r3, r4, r5, pc} -.L3149: +.L3176: .align 2 -.L3148: +.L3175: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -19096,12 +19316,12 @@ FtlPowerLostRecovery: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 - ldr r4, .L3151 - ldr r3, .L3151+4 - add r6, r4, #788 - add r4, r4, #836 + ldr r4, .L3178 + ldr r3, .L3178+4 + add r6, r4, #836 + add r4, r4, #884 mov r0, r6 - str r5, [r3, #-204] + str r5, [r3, #-200] bl FtlRecoverySuperblock mov r0, r6 bl FtlSlcSuperblockCheck @@ -19114,184 +19334,14 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r5 pop {r4, r5, r6, pc} -.L3152: +.L3179: .align 2 -.L3151: +.L3178: .word .LANCHOR2 .word .LANCHOR4 .fnend .size FtlPowerLostRecovery, .-FtlPowerLostRecovery .align 1 - .global Ftl_get_new_temp_ppa - .thumb - .thumb_func - .type Ftl_get_new_temp_ppa, %function -Ftl_get_new_temp_ppa: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - movw r3, #65535 - ldr r4, .L3156 - ldrh r2, [r4, #884] - cmp r2, r3 - beq .L3154 - ldrh r3, [r4, #888] - cbnz r3, .L3155 -.L3154: - bl FtlCacheWriteBack - movs r0, #0 - movs r5, #0 - bl FtlGcFreeTempBlock - ldr r0, .L3156+4 - strb r5, [r4, #892] - bl allocate_data_superblock - strh r5, [r4, #1684] @ movhi - strh r5, [r4, #1692] @ movhi - bl l2p_flush - mov r0, r5 - bl FtlEctTblFlush - bl FtlVpcTblFlush -.L3155: - ldr r0, .L3156+4 - pop {r3, r4, r5, lr} - b get_new_active_ppa -.L3157: - .align 2 -.L3156: - .word .LANCHOR2 - .word .LANCHOR2+884 - .fnend - .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa - .align 1 - .global rk_ftl_cache_write_back - .thumb - .thumb_func - .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 1 - .global ftl_fix_nand_power_lost_error - .thumb - .thumb_func - .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, .L3174 - push {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - .pad #48 - sub sp, sp, #48 - ldrb r2, [r3, #76] @ zero_extendqisi2 - mov r8, r3 - cmp r2, #0 - beq .L3159 - ldr r4, .L3174+4 - movw r7, #4097 - ldr r6, .L3174+8 - ldr r0, .L3174+12 - ldr r3, [r4, #768] - ldrh r5, [r6, #-210] - mov r1, r5 - ldrh r2, [r3, r5, lsl #1] - bl printk - ldrh r0, [r4, #788] - bl FtlGcRefreshOpenBlock - ldrh r0, [r4, #836] - bl FtlGcRefreshOpenBlock - add r0, r4, #788 - bl allocate_new_data_superblock - add r0, r4, #836 - bl allocate_new_data_superblock - lsl r9, r5, #1 -.L3161: - subs r7, r7, #1 - beq .L3165 - movs r0, #1 - mov r1, r0 - bl rk_ftl_garbage_collect - ldr r3, [r4, #768] - ldrh r3, [r3, r9] - cmp r3, #0 - bne .L3161 -.L3165: - ldr r3, [r4, #768] - mov r1, r5 - ldr r0, .L3174+12 - ldrh r2, [r3, r5, lsl #1] - bl printk - ldr r3, [r4, #768] - ldrh r7, [r3, r5, lsl #1] - cbnz r7, .L3163 - add r0, sp, #48 - mov r10, #36 - movw r9, #65535 - strh r5, [r0, #-48]! @ movhi - bl make_superblock - ldr r3, .L3174+4 - ldrh ip, [r8, #2828] - ldr r8, [r3, #744] - mov r3, r7 - mov lr, r3 - add r0, sp, #14 -.L3166: - uxth r2, r3 - cmp r2, ip - bcs .L3173 - ldrh r2, [r0, #2]! - cmp r2, r9 - beq .L3167 - mla r1, r10, r7, r8 - adds r7, r7, #1 - lsls r2, r2, #10 - uxth r7, r7 - str r2, [r1, #4] - str lr, [r1, #8] - str lr, [r1, #12] -.L3167: - adds r3, r3, #1 - b .L3166 -.L3173: - ldr r3, [r4, #768] - mov r1, r5 - ldr r0, .L3174+16 - ldrh r2, [r3, r5, lsl #1] - bl printk - movs r1, #0 - mov r2, r7 - ldr r0, [r4, #744] - bl FlashEraseBlocks - ldr r0, [r4, #744] - movs r1, #1 - mov r2, r7 - bl FlashEraseBlocks -.L3163: - movw r3, #65535 - strh r3, [r6, #-210] @ movhi -.L3159: - add sp, sp, #48 - @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L3175: - .align 2 -.L3174: - .word .LANCHOR0 - .word .LANCHOR2 - .word .LANCHOR4 - .word .LC135 - .word .LC136 - .fnend - .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error - .align 1 .global FtlSysBlkInit .thumb .thumb_func @@ -19307,22 +19357,22 @@ FtlSysBlkInit: movw r6, #65535 ldr r7, .L3196+4 ldr r4, .L3196+8 - ldrh r0, [r5, #2832] - strh r3, [r7, #-208] @ movhi - strh r6, [r7, #-210] @ movhi + ldrh r0, [r5, #2844] + strh r3, [r7, #-204] @ movhi + strh r6, [r7, #-206] @ movhi bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldrh r3, [r4, #1064] + ldrh r3, [r4, #1060] cmp r3, r6 - bne .L3177 -.L3179: + bne .L3181 +.L3183: mov r6, #-1 - b .L3178 -.L3177: + b .L3182 +.L3181: bl FtlLoadSysInfo mov r6, r0 cmp r0, #0 - bne .L3179 + bne .L3183 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -19332,106 +19382,94 @@ FtlSysBlkInit: bl FtlPowerLostRecovery movs r0, #1 bl FtlUpdateVaildLpn - ldrh r1, [r5, #2938] - ldr r2, [r4, #932] + ldrh r1, [r5, #2950] + ldr r2, [r4, #980] movs r0, #12 mov r3, r6 -.L3180: +.L3184: cmp r3, r1 - bge .L3185 + bge .L3189 mla lr, r0, r3, r2 ldr lr, [lr, #4] cmp lr, #0 - bge .L3181 -.L3185: - ldrh r2, [r4, #1040] + bge .L3185 +.L3189: + ldrh r2, [r4, #788] cmp r3, r1 add r2, r2, #1 - strh r2, [r4, #1040] @ movhi + strh r2, [r4, #788] @ movhi bge .L3195 - b .L3182 -.L3181: + b .L3186 +.L3185: adds r3, r3, #1 - b .L3180 + b .L3184 .L3195: - ldrh r3, [r7, #-208] + ldrh r3, [r7, #-204] cmp r3, #0 - beq .L3186 -.L3182: + beq .L3190 +.L3186: ldr r0, .L3196+12 bl FtlSuperblockPowerLostFix ldr r0, .L3196+16 bl FtlSuperblockPowerLostFix - ldrh r1, [r4, #788] - ldr r2, [r4, #768] - ldrh r0, [r4, #792] + ldrh r1, [r4, #836] + ldr r2, [r4, #816] + ldrh r0, [r4, #840] ldrh r3, [r2, r1, lsl #1] subs r3, r3, r0 strh r3, [r2, r1, lsl #1] @ movhi - ldr r1, [r4, #768] - ldrh r3, [r5, #2898] - ldrh r0, [r4, #836] - ldrh r7, [r4, #840] - strh r3, [r4, #790] @ movhi + ldr r1, [r4, #816] + ldrh r3, [r5, #2910] + ldrh r0, [r4, #884] + ldrh r7, [r4, #888] + strh r3, [r4, #838] @ movhi movs r3, #0 - strb r3, [r4, #794] - strh r3, [r4, #792] @ movhi + strb r3, [r4, #842] + strh r3, [r4, #840] @ movhi ldrh r2, [r1, r0, lsl #1] subs r2, r2, r7 strh r2, [r1, r0, lsl #1] @ movhi - ldrh r2, [r5, #2898] + ldrh r2, [r5, #2910] ldr r0, .L3196+20 - strb r3, [r4, #842] - strh r2, [r4, #838] @ movhi - strh r3, [r4, #840] @ movhi + strb r3, [r4, #890] + strh r2, [r4, #886] @ movhi + strh r3, [r4, #888] @ movhi bl FtlMapBlkWriteDumpData ldr r0, .L3196+24 bl FtlMapBlkWriteDumpData - ldrh r3, [r4, #1042] + ldrh r3, [r4, #790] adds r3, r3, #1 - strh r3, [r4, #1042] @ movhi + strh r3, [r4, #790] @ movhi bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3186: - ldrh r2, [r4, #788] +.L3190: + ldrh r2, [r4, #836] movw r3, #65535 ldr r5, .L3196+8 cmp r2, r3 - bne .L3187 -.L3189: - ldrh r3, [r4, #1040] - lsls r3, r3, #27 - bne .L3178 - bl FtlVpcCheckAndModify - b .L3178 -.L3187: - ldrh r3, [r5, #792] - cmp r3, #0 - bne .L3189 + beq .L3191 ldrh r3, [r5, #840] - cmp r3, #0 - bne .L3189 + cbnz r3, .L3191 + ldrh r3, [r5, #888] + cbnz r3, .L3191 bl FtlVpcTblFlush - ldrh r0, [r5, #788] - bl FtlGcRefreshOpenBlock ldrh r0, [r5, #836] bl FtlGcRefreshOpenBlock - add r0, r5, #788 - bl allocate_new_data_superblock + ldrh r0, [r5, #884] + bl FtlGcRefreshOpenBlock add r0, r5, #836 bl allocate_new_data_superblock - addw r0, r5, #4088 + add r0, r5, #884 + bl allocate_new_data_superblock + addw r0, r5, #4092 bl FtlMapBlkWriteDumpData - mov r5, #4096 -.L3190: - movs r0, #1 - mov r1, r0 - bl rk_ftl_garbage_collect - subs r5, r5, #1 - bne .L3190 - b .L3189 -.L3178: +.L3191: + ldrh r3, [r4, #788] + lsls r3, r3, #27 + bne .L3182 + bl FtlVpcCheckAndModify +.L3182: mov r0, r6 pop {r3, r4, r5, r6, r7, pc} .L3197: @@ -19440,13 +19478,56 @@ FtlSysBlkInit: .word .LANCHOR0 .word .LANCHOR4 .word .LANCHOR2 - .word .LANCHOR2+788 .word .LANCHOR2+836 - .word .LANCHOR2+1864 - .word .LANCHOR2+4088 + .word .LANCHOR2+884 + .word .LANCHOR2+1868 + .word .LANCHOR2+4092 .fnend .size FtlSysBlkInit, .-FtlSysBlkInit .align 1 + .global Ftl_get_new_temp_ppa + .thumb + .thumb_func + .type Ftl_get_new_temp_ppa, %function +Ftl_get_new_temp_ppa: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + movw r3, #65535 + ldr r4, .L3201 + ldrh r2, [r4, #932] + cmp r2, r3 + beq .L3199 + ldrh r3, [r4, #936] + cbnz r3, .L3200 +.L3199: + movs r5, #0 + bl FtlCacheWriteBack + movs r0, #0 + bl FtlGcFreeTempBlock + ldr r0, .L3201+4 + strb r5, [r4, #940] + bl allocate_data_superblock + strh r5, [r4, #1680] @ movhi + strh r5, [r4, #1688] @ movhi + bl l2p_flush + mov r0, r5 + bl FtlEctTblFlush + bl FtlVpcTblFlush +.L3200: + ldr r0, .L3201+4 + pop {r3, r4, r5, lr} + b get_new_active_ppa +.L3202: + .align 2 +.L3201: + .word .LANCHOR2 + .word .LANCHOR2+932 + .fnend + .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa + .align 1 .global FtlInit .thumb .thumb_func @@ -19457,76 +19538,75 @@ FtlInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - mov r4, r0 - ldr r2, .L3212 mov r3, #-1 - ldr r6, .L3212+4 - ldr r5, .L3212+8 - ldr r1, .L3212+12 - ldr r0, .L3212+16 + ldr r2, .L3217 + ldr r6, .L3217+4 + ldr r5, .L3217+8 + ldr r4, .L3217+12 + ldr r1, .L3217+16 + ldr r0, .L3217+20 str r3, [r6, #504] movs r3, #0 - str r3, [r2, #-56] - str r3, [r5, #740] + str r3, [r2, #-52] + str r3, [r5, #744] bl printk - mov r0, r4 - ldr r4, .L3212+20 + add r0, r4, #1864 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldrh r0, [r4, #2832] + ldrh r0, [r4, #2844] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz r0, .L3199 - ldr r0, .L3212+24 - b .L3211 -.L3199: + cbz r0, .L3204 + ldr r0, .L3217+24 + b .L3216 +.L3204: bl FtlSysBlkInit - cbz r0, .L3201 - ldr r0, .L3212+28 -.L3211: - ldr r1, .L3212+32 + cbz r0, .L3206 + ldr r0, .L3217+28 +.L3216: + ldr r1, .L3217+32 bl printk - b .L3200 -.L3201: + b .L3205 +.L3206: movs r1, #1 str r1, [r6, #504] - bl rk_ftl_garbage_collect - ldrh r3, [r5, #784] + bl ftl_do_gc + ldrh r3, [r5, #832] cmp r3, #15 - bhi .L3202 + bhi .L3207 mov r4, #1024 -.L3203: +.L3208: movs r0, #1 mov r1, r0 - bl rk_ftl_garbage_collect + bl ftl_do_gc subs r4, r4, #1 - bne .L3203 - b .L3200 -.L3202: + bne .L3208 + b .L3205 +.L3207: ldrb r3, [r4, #76] @ zero_extendqisi2 - cbz r3, .L3200 + cbz r3, .L3205 movs r4, #128 -.L3205: +.L3210: movs r0, #1 mov r1, r0 - bl rk_ftl_garbage_collect + bl ftl_do_gc subs r4, r4, #1 - bne .L3205 -.L3200: + bne .L3210 +.L3205: movs r0, #0 pop {r4, r5, r6, pc} -.L3213: +.L3218: .align 2 -.L3212: +.L3217: .word .LANCHOR4 .word .LANCHOR1 .word .LANCHOR2 - .word .LC75 - .word .LC74 .word .LANCHOR0 - .word .LC137 - .word .LC138 + .word .LC78 + .word .LC77 + .word .LC139 + .word .LC140 .word .LANCHOR3+40 .fnend .size FtlInit, .-FtlInit @@ -19543,54 +19623,179 @@ rk_ftl_init: .save {r4, r5, r6, lr} mov r0, #2048 bl ftl_malloc - ldr r6, .L3218 - ldr r4, .L3218+4 + ldr r6, .L3223 + ldr r4, .L3223+4 movs r5, #0 mov r1, r6 - str r5, [r1, #-48]! - str r5, [r4, #3980] - str r0, [r6, #-52] - addw r0, r4, #3980 + str r5, [r1, #-44]! + str r5, [r4, #3984] + str r0, [r6, #-48] + add r0, r4, #3984 bl rknand_get_reg_addr - ldr r3, [r4, #3980] - cbz r3, .L3217 + ldr r3, [r4, #3984] + cbz r3, .L3222 bl rk_nandc_irq_init mov r1, r5 mov r2, r5 mov r3, #2048 - ldr r0, [r6, #-52] + ldr r0, [r6, #-48] bl FlashSramLoadStore bl rknand_flash_cs_init - ldr r0, [r4, #3980] + ldr r0, [r4, #3984] bl FlashInit mov r4, r0 - cbnz r0, .L3216 - ldr r0, .L3218+8 + cbnz r0, .L3221 bl FtlInit -.L3216: +.L3221: mov r1, r4 - ldr r0, .L3218+12 + ldr r0, .L3223+8 bl printk mov r0, r4 pop {r4, r5, r6, pc} -.L3217: +.L3222: mov r0, #-1 pop {r4, r5, r6, pc} -.L3219: +.L3224: .align 2 -.L3218: +.L3223: .word .LANCHOR4 .word .LANCHOR2 - .word .LANCHOR0+1864 - .word .LC139 + .word .LC141 .fnend .size rk_ftl_init, .-rk_ftl_init .align 1 - .global FtlRead + .global ftl_fix_nand_power_lost_error .thumb .thumb_func - .type FtlRead, %function -FtlRead: + .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, .L3240 + push {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + .pad #48 + sub sp, sp, #48 + ldrb r2, [r3, #76] @ zero_extendqisi2 + mov r8, r3 + cmp r2, #0 + beq .L3225 + ldr r4, .L3240+4 + movw r7, #4097 + ldr r6, .L3240+8 + ldr r0, .L3240+12 + ldr r3, [r4, #816] + ldrh r5, [r6, #-206] + mov r1, r5 + ldrh r2, [r3, r5, lsl #1] + bl printk + ldrh r0, [r4, #836] + bl FtlGcRefreshOpenBlock + ldrh r0, [r4, #884] + bl FtlGcRefreshOpenBlock + add r0, r4, #836 + bl allocate_new_data_superblock + add r0, r4, #884 + bl allocate_new_data_superblock + lsl r9, r5, #1 +.L3227: + subs r7, r7, #1 + beq .L3231 + movs r0, #1 + mov r1, r0 + bl ftl_do_gc + ldr r3, [r4, #816] + ldrh r3, [r3, r9] + cmp r3, #0 + bne .L3227 +.L3231: + ldr r3, [r4, #816] + mov r1, r5 + ldr r0, .L3240+12 + ldrh r2, [r3, r5, lsl #1] + bl printk + ldr r3, [r4, #816] + ldrh r7, [r3, r5, lsl #1] + cbnz r7, .L3229 + add r0, sp, #48 + mov r10, #36 + movw r9, #65535 + strh r5, [r0, #-48]! @ movhi + bl make_superblock + ldr r3, .L3240+4 + ldrh ip, [r8, #2840] + add r0, sp, #14 + ldr r8, [r3, #748] + mov r3, r7 + mov lr, r3 +.L3232: + uxth r2, r3 + cmp r2, ip + bcs .L3239 + ldrh r2, [r0, #2]! + cmp r2, r9 + beq .L3233 + mla r1, r10, r7, r8 + adds r7, r7, #1 + lsls r2, r2, #10 + uxth r7, r7 + str r2, [r1, #4] + str lr, [r1, #8] + str lr, [r1, #12] +.L3233: + adds r3, r3, #1 + b .L3232 +.L3239: + ldr r3, [r4, #816] + mov r1, r5 + ldr r0, .L3240+16 + ldrh r2, [r3, r5, lsl #1] + bl printk + movs r1, #0 + mov r2, r7 + ldr r0, [r4, #748] + bl FlashEraseBlocks + ldr r0, [r4, #748] + movs r1, #1 + mov r2, r7 + bl FlashEraseBlocks +.L3229: + movw r3, #65535 + strh r3, [r6, #-206] @ movhi +.L3225: + add sp, sp, #48 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L3241: + .align 2 +.L3240: + .word .LANCHOR0 + .word .LANCHOR2 + .word .LANCHOR4 + .word .LC142 + .word .LC143 + .fnend + .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error + .align 1 + .global rk_ftl_garbage_collect + .thumb + .thumb_func + .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 1 + .global ftl_read + .thumb + .thumb_func + .type ftl_read, %function +ftl_read: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 @@ -19602,98 +19807,98 @@ FtlRead: mov r6, r1 mov r7, r3 str r2, [sp, #16] - bne .L3221 + bne .L3244 add r0, r1, #256 mov r1, r2 mov r2, r3 bl FtlVendorPartRead - b .L3222 -.L3221: + b .L3245 +.L3244: ldr r3, [sp, #16] adds r3, r1, r3 str r3, [sp, #12] - ldr r3, .L3261 + ldr r3, .L3284 ldr r1, [sp, #12] - ldr r2, [r3, #2940] + ldr r2, [r3, #1896] cmp r1, r2 - bhi .L3242 - ldrh r4, [r3, #2904] + bhi .L3265 + ldrh r4, [r3, #2916] mov r0, r6 mov r1, r4 bl __aeabi_uidiv - mov r1, r4 ldr r3, [sp, #12] + mov r1, r4 str r0, [sp, #4] subs r0, r3, #1 bl __aeabi_uidiv ldr r3, [sp, #4] ldr r1, [sp, #16] rsb r3, r3, #1 - str r0, [sp, #8] add r3, r3, r0 str r3, [sp] - ldr r3, .L3261+4 + ldr r3, .L3284+4 + str r0, [sp, #8] ldr r0, [sp, #4] - ldr r2, [r3, #980] + ldr r2, [r3, #1024] add r2, r2, r1 ldr r1, [sp] - str r2, [r3, #980] - ldr r2, [r3, #952] + str r2, [r3, #1024] + ldr r2, [r3, #996] add r2, r2, r1 ldr r1, [sp, #8] - str r2, [r3, #952] + str r2, [r3, #996] bl FtlCacheMetchLpa - cbz r0, .L3223 + cbz r0, .L3246 bl FtlCacheWriteBack -.L3223: +.L3246: mov r9, #0 ldr r4, [sp, #4] - ldr r10, .L3261+4 - ldr r8, .L3261 + ldr r10, .L3284+4 + ldr r8, .L3284 mov r5, r9 str r9, [sp, #20] str r9, [sp, #24] -.L3224: +.L3247: ldr r3, [sp] cmp r3, #0 - beq .L3260 + beq .L3283 add r1, sp, #52 movs r2, #0 mov r0, r4 bl log2phys ldr r2, [sp, #52] adds r1, r2, #1 - bne .L3257 + bne .L3280 mov fp, #0 -.L3225: - ldrh r0, [r8, #2904] +.L3248: + ldrh r0, [r8, #2916] cmp fp, r0 - bcs .L3229 + bcs .L3252 mla r0, r0, r4, fp cmp r0, r6 - bcc .L3227 + bcc .L3250 ldr r3, [sp, #12] cmp r0, r3 - bcs .L3227 + bcs .L3250 subs r0, r0, r6 mov r1, #512 add r0, r7, r0, lsl #9 bl __memzero -.L3227: +.L3250: add fp, fp, #1 - b .L3225 -.L3257: + b .L3248 +.L3280: ldr r1, [r10, #1764] mov fp, #36 ldr r3, [sp, #4] mla fp, fp, r5, r1 cmp r4, r3 str r2, [fp, #4] - bne .L3230 - ldr r2, [r10, #1788] + bne .L3253 + ldr r2, [r10, #1792] mov r0, r6 str r2, [fp, #8] - ldrh r2, [r8, #2904] + ldrh r2, [r8, #2916] mov r1, r2 str r2, [sp, #20] bl __aeabi_uidivmod @@ -19707,50 +19912,50 @@ FtlRead: movcs r3, r0 cmp r3, r2 str r3, [sp, #20] - bne .L3231 + bne .L3254 str r7, [fp, #8] - b .L3231 -.L3230: + b .L3254 +.L3253: ldr r3, [sp, #8] cmp r4, r3 - bne .L3232 - ldr r2, [r10, #1792] - ldrh r1, [r8, #2904] + bne .L3255 + ldr r2, [r10, #1796] + ldrh r1, [r8, #2916] ldr r3, [sp, #12] str r2, [fp, #8] mul r2, r1, r4 rsb r9, r2, r3 cmp r9, r1 - bne .L3231 - b .L3258 -.L3232: - ldrh r2, [r8, #2904] + bne .L3254 + b .L3281 +.L3255: + ldrh r2, [r8, #2916] muls r2, r4, r2 -.L3258: +.L3281: subs r2, r2, r6 add r2, r7, r2, lsl #9 str r2, [fp, #8] -.L3231: - ldrh r2, [r8, #2910] - ldr r1, [r10, #1800] +.L3254: + ldrh r2, [r8, #2922] + ldr r1, [r10, #1804] str r4, [fp, #16] muls r2, r5, r2 adds r5, r5, #1 bic r2, r2, #3 add r2, r2, r1 str r2, [fp, #12] -.L3229: +.L3252: ldr r3, [sp] adds r4, r4, #1 subs r3, r3, #1 str r3, [sp] - beq .L3233 - ldrh r2, [r8, #2828] + beq .L3256 + ldrh r2, [r8, #2840] cmp r5, r2, lsl #3 - bne .L3224 -.L3233: + bne .L3247 +.L3256: cmp r5, #0 - beq .L3224 + beq .L3247 ldr r0, [r10, #1764] mov r1, r5 movs r2, #0 @@ -19764,7 +19969,7 @@ FtlRead: str r3, [sp, #36] lsl r3, r9, #9 str r3, [sp, #40] -.L3239: +.L3262: movs r3, #36 ldr r2, [r10, #1764] mul ip, r3, fp @@ -19772,86 +19977,99 @@ FtlRead: add r2, r2, ip ldr r1, [r2, #16] cmp r1, r3 - bne .L3235 + bne .L3258 ldr r1, [r2, #8] - ldr r2, [r10, #1788] + ldr r2, [r10, #1792] cmp r1, r2 - bne .L3236 + bne .L3259 ldr r3, [sp, #32] mov r0, r7 str ip, [sp, #44] add r1, r1, r3 ldr r2, [sp, #36] - b .L3259 -.L3235: + b .L3282 +.L3258: ldr r3, [sp, #8] cmp r1, r3 - bne .L3236 + bne .L3259 ldr r1, [r2, #8] - ldr r2, [r10, #1792] + ldr r2, [r10, #1796] cmp r1, r2 - bne .L3236 - ldrh r0, [r8, #2904] + bne .L3259 + ldrh r0, [r8, #2916] ldr r2, [sp, #40] str ip, [sp, #44] muls r0, r3, r0 subs r0, r0, r6 add r0, r7, r0, lsl #9 -.L3259: +.L3282: bl ftl_memcpy ldr ip, [sp, #44] -.L3236: +.L3259: ldr r2, [r10, #1764] add lr, r2, ip ldr r0, [r2, ip] adds r3, r0, #1 itttt eq streq r0, [sp, #24] - ldreq r1, [r10, #1200] + ldreq r1, [r10, #1196] addeq r1, r1, #1 - streq r1, [r10, #1200] + streq r1, [r10, #1196] ldr r2, [r2, ip] cmp r2, #256 - bne .L3238 + bne .L3261 ldr r0, [lr, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3238: +.L3261: add fp, fp, #1 cmp fp, r5 - bne .L3239 + bne .L3262 movs r5, #0 - b .L3224 -.L3260: - ldr r3, .L3261+4 - ldrh r3, [r3, #1698] - cbz r3, .L3241 + b .L3247 +.L3283: + ldr r3, .L3284+4 + ldrh r3, [r3, #1694] + cbz r3, .L3264 ldr r0, [sp] movs r1, #1 - bl rk_ftl_garbage_collect -.L3241: + bl ftl_do_gc +.L3264: ldr r0, [sp, #24] - b .L3222 -.L3242: + b .L3245 +.L3265: mov r0, #-1 -.L3222: +.L3245: add sp, sp, #60 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3262: +.L3285: .align 2 -.L3261: +.L3284: .word .LANCHOR0 .word .LANCHOR2 .fnend + .size ftl_read, .-ftl_read + .align 1 + .global FtlRead + .thumb + .thumb_func + .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 1 - .global FtlWrite + .global ftl_write .thumb .thumb_func - .type FtlWrite, %function -FtlWrite: + .type ftl_write, %function +ftl_write: .fnstart @ args = 0, pretend = 0, frame = 88 @ frame_needed = 0, uses_anonymous_args = 0 @@ -19859,172 +20077,166 @@ FtlWrite: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #92 sub sp, sp, #92 - ldr r5, .L3334 + ldr r9, .L3356+12 mov r8, r1 str r3, [sp, #8] - mov fp, r2 - ldr r3, [r5, #740] + str r2, [sp, #4] + ldr r3, [r9, #744] cmp r3, #0 - bne .L3305 + bne .L3328 cmp r0, #16 - bne .L3265 + bne .L3289 add r0, r1, #256 mov r1, r2 ldr r2, [sp, #8] bl FtlVendorPartWrite - b .L3264 -.L3265: - ldr r10, .L3334+8 - adds r7, r1, r2 - ldr r3, [r10, #2940] - cmp r7, r3 - bhi .L3306 - ldrh r4, [r10, #2904] + b .L3288 +.L3289: + ldr r7, .L3356 + ldr r3, [sp, #4] + adds r6, r1, r3 + ldr r3, [r7, #1896] + cmp r6, r3 + bhi .L3329 + ldrh r4, [r7, #2916] mov r3, #2048 - ldr r6, .L3334+4 + ldr r5, .L3356+4 mov r0, r1 mov r1, r4 - str r3, [r6, #-44] + str r3, [r5, #-40] bl __aeabi_uidiv mov r1, r4 - str r0, [sp, #4] - subs r0, r7, #1 + mov fp, r0 + subs r0, r6, #1 bl __aeabi_uidiv - cmp fp, r4, lsl #1 - add r7, r5, #788 - ldr r2, [sp, #4] + rsb r6, fp, r0 str r0, [sp, #20] - rsb r9, r2, r0 - add r3, r9, #1 + adds r3, r6, #1 str r3, [sp, #12] ldr r2, [sp, #12] - ldr r3, [r5, #960] + ldr r3, [r9, #1004] + add r3, r3, r2 + ldr r2, [sp, #4] + str r3, [r9, #1004] + ldr r3, [r9, #1020] + cmp r2, r4, lsl #1 add r3, r3, r2 - ldr r2, [r10, #2952] - str r3, [r5, #960] - ldr r3, [r5, #976] - add r3, r3, fp - str r3, [r5, #976] + str r3, [r9, #1020] + mov r3, r2 + ldr r2, [r7, #2960] ite cs movcs r3, #1 movcc r3, #0 str r3, [sp, #28] - add r3, r5, #836 - cmp fp, #8 - it ls - movls r7, r3 cmp r2, #0 - beq .L3268 + beq .L3291 movs r3, #36 - ldr r7, [r10, #2956] + ldr r7, [r7, #2964] muls r3, r2, r3 - ldr r2, [sp, #4] subs r3, r3, #36 add r7, r7, r3 ldr r3, [r7, #16] - cmp r2, r3 - bne .L3269 - ldr r3, [r5, #964] + cmp fp, r3 + bne .L3292 + ldr r3, [r9, #1008] mov r1, r4 mov r0, r8 adds r3, r3, #1 - str r3, [r5, #964] - ldr r3, [r6, #-40] + str r3, [r9, #1008] + ldr r3, [r5, #-36] adds r3, r3, #1 - str r3, [r6, #-40] + str r3, [r5, #-36] bl __aeabi_uidivmod + ldr r3, [sp, #4] ldr r0, [r7, #8] subs r4, r4, r1 add r0, r0, r1, lsl #9 - cmp r4, fp + cmp r4, r3 ldr r1, [sp, #8] it cs - movcs r4, fp - lsls r5, r4, #9 - mov r2, r5 + movcs r4, r3 + lsl r9, r4, #9 + mov r2, r9 bl ftl_memcpy - cmp r9, #0 - bne .L3270 - ldr r3, [r6, #-40] + cbnz r6, .L3293 + ldr r3, [r5, #-36] cmp r3, #2 - ble .L3305 -.L3270: - ldr r3, [sp, #8] - rsb fp, r4, fp - add r8, r8, r4 - str r9, [sp, #12] - add r3, r3, r5 - str r3, [sp, #8] + ble .L3328 +.L3293: ldr r3, [sp, #4] - adds r3, r3, #1 + add r8, r8, r4 + add fp, fp, #1 + str r6, [sp, #12] + subs r3, r3, r4 str r3, [sp, #4] -.L3269: - ldr r3, .L3334+4 - movs r2, #0 - ldr r7, [r3, #-64] - str r2, [r3, #-40] -.L3268: - ldr r0, [sp, #4] + ldr r3, [sp, #8] + add r3, r3, r9 + str r3, [sp, #8] +.L3292: + movs r3, #0 + str r3, [r5, #-36] +.L3291: + mov r0, fp ldr r1, [sp, #20] bl FtlCacheMetchLpa - cbz r0, .L3271 + cbz r0, .L3294 bl FtlCacheWriteBack -.L3271: - ldr r4, .L3334+8 - ldr r3, .L3334+4 - ldr r6, [sp, #4] +.L3294: + ldr r4, .L3356 + mov r6, fp + ldr r7, .L3356+8 mov r10, r4 - str r7, [r3, #-64] -.L3272: + str r7, [r5, #-60] +.L3295: ldr r3, [sp, #12] - ldr r5, .L3334 + ldr r5, .L3356+12 cmp r3, #0 - beq .L3333 + beq .L3355 ldrh r3, [r7, #4] - cbnz r3, .L3273 - add r2, r5, #788 - ldr r9, .L3334+20 + cbnz r3, .L3296 + add r2, r5, #836 + ldr r9, .L3356+24 cmp r7, r2 - bne .L3274 - ldrh r7, [r5, #840] - cbnz r7, .L3275 - add r0, r5, #836 + bne .L3297 + ldrh r7, [r5, #888] + cbnz r7, .L3298 + add r0, r5, #884 bl allocate_new_data_superblock - str r7, [r9, #3004] -.L3275: - ldr r0, .L3334+12 + str r7, [r9, #3068] +.L3298: + ldr r0, .L3356+8 bl allocate_new_data_superblock - ldr r3, [r9, #3004] - cbnz r3, .L3308 -.L3277: - ldr r7, .L3334+12 - b .L3276 -.L3274: - str r3, [r9, #3004] - ldrh r3, [r5, #792] + ldr r3, [r9, #3068] + cbnz r3, .L3330 +.L3300: + ldr r7, .L3356+8 + b .L3299 +.L3297: + str r3, [r9, #3068] + ldrh r3, [r5, #840] cmp r3, #0 - bne .L3277 + bne .L3300 mov r0, r7 bl allocate_new_data_superblock - b .L3276 -.L3308: - ldr r7, .L3334+16 -.L3276: + b .L3299 +.L3330: + ldr r7, .L3356+16 +.L3299: ldrh r3, [r7, #4] - cbnz r3, .L3278 + cbnz r3, .L3301 mov r0, r7 bl allocate_new_data_superblock -.L3278: - ldr r3, .L3334+4 - str r7, [r3, #-64] -.L3273: +.L3301: + ldr r3, .L3356+4 + str r7, [r3, #-60] +.L3296: ldr r2, [r5, #1760] - ldr r3, [r4, #2952] + ldr r3, [r4, #2960] ldrh ip, [r7, #4] subs r3, r2, r3 ldr r2, [sp, #12] cmp ip, r3 - ldr r9, .L3334 + ldr r9, .L3356+12 it cs movcs ip, r3 cmp ip, r2 @@ -20034,27 +20246,28 @@ FtlWrite: str r3, [sp, #44] movs r3, #0 str r3, [sp, #24] -.L3279: +.L3302: ldr r3, [sp, #24] ldr r2, [sp, #44] cmp r3, r2 - beq .L3280 + beq .L3303 ldrh r3, [r7, #4] cmp r3, #0 - beq .L3280 + beq .L3303 ldr r3, [sp, #28] - cbz r3, .L3281 + cbz r3, .L3304 ldr r3, [sp, #20] cmp r6, r3 - bne .L3281 + bne .L3304 ldr r3, [sp, #24] - cbz r3, .L3281 - ldrh r2, [r4, #2904] - add r3, r8, fp + cbz r3, .L3304 + ldr r3, [sp, #4] + ldrh r2, [r4, #2916] + add r3, r8, r3 mls r3, r2, r6, r3 cmp r3, r2 - bne .L3280 -.L3281: + bne .L3303 +.L3304: add r1, sp, #48 movs r2, #0 mov r0, r6 @@ -20062,62 +20275,62 @@ FtlWrite: bl log2phys mov r0, r7 bl get_new_active_ppa - ldr r3, [r4, #2952] - ldr r1, [r4, #2956] - ldrh r2, [r4, #2910] + ldr r3, [r4, #2960] + ldr r1, [r4, #2964] + ldrh r2, [r4, #2922] mla r1, r5, r3, r1 mul ip, r3, r2 str r6, [r1, #16] str r0, [r1, #4] lsr r0, ip, #2 str r0, [sp, #36] - ldr r0, [r9, #1804] + ldr r0, [r9, #1808] mov lr, r0 str r0, [sp, #40] ldr r0, [sp, #36] add r0, lr, r0, lsl #2 - ldrh lr, [r4, #2908] + ldrh lr, [r4, #2920] str r0, [sp, #16] str r0, [r1, #12] mul r3, r3, lr - ldr r0, [r9, #1784] + ldr r0, [r9, #1788] bic r3, r3, #3 add r3, r3, r0 ldr r0, [sp, #16] str r3, [r1, #8] movs r1, #0 bl ftl_memset - ldr r3, [sp, #4] - cmp r6, r3 - beq .L3282 + cmp r6, fp + beq .L3305 ldr r3, [sp, #20] cmp r6, r3 - bne .L3330 - ldrh r3, [r4, #2904] - add r5, r8, fp + bne .L3352 + ldr r3, [sp, #4] + add r5, r8, r3 + ldrh r3, [r4, #2916] smulbb r3, r3, r6 subs r5, r5, r3 movs r3, #0 str r3, [sp, #32] uxth r5, r5 - b .L3285 -.L3282: - ldrh r5, [r4, #2904] + b .L3308 +.L3305: + ldrh r5, [r4, #2916] mov r0, r8 mov r1, r5 bl __aeabi_uidivmod + ldr r3, [sp, #4] subs r5, r5, r1 str r1, [sp, #32] - cmp r5, fp + cmp r5, r3 it cs - movcs r5, fp -.L3285: - ldrh r3, [r4, #2904] + movcs r5, r3 +.L3308: + ldrh r3, [r4, #2916] cmp r5, r3 - bne .L3286 - ldr r3, [sp, #4] + bne .L3309 + cmp r6, fp mov lr, #36 - cmp r6, r3 ittet ne mulne r1, r6, r5 ldrne r3, [sp, #8] @@ -20126,37 +20339,28 @@ FtlWrite: it ne addne r1, r3, r1, lsl #9 ldr r3, [sp, #28] - cbz r3, .L3288 - ldr r2, [r10, #2952] - ldr r5, [r10, #2956] + cbz r3, .L3311 + ldr r2, [r10, #2960] + ldr r5, [r10, #2964] mla r2, lr, r2, r5 str r1, [r2, #8] - b .L3289 -.L3288: - ldr r0, [r10, #2956] - ldr r3, [r10, #2952] - ldrh r2, [r10, #2908] + b .L3312 +.L3311: + ldr r0, [r10, #2964] + ldr r3, [r10, #2960] + ldrh r2, [r10, #2920] mla r3, lr, r3, r0 ldr r0, [r3, #8] - b .L3331 -.L3335: - .align 2 -.L3334: - .word .LANCHOR2 - .word .LANCHOR4 - .word .LANCHOR0 - .word .LANCHOR2+788 - .word .LANCHOR2+836 - .word .LANCHOR1 -.L3286: + b .L3353 +.L3309: ldr r2, [sp, #48] movs r3, #36 adds r1, r2, #1 - beq .L3290 - ldr r1, [r4, #2956] + beq .L3313 + ldr r1, [r4, #2964] add r0, sp, #52 str r2, [sp, #56] - ldr r2, [r4, #2952] + ldr r2, [r4, #2960] str r6, [sp, #68] mla r3, r3, r2, r1 movs r1, #1 @@ -20168,98 +20372,107 @@ FtlWrite: bl FlashReadPages ldr r3, [sp, #52] adds r3, r3, #1 - bne .L3291 - ldr r3, [r9, #1200] + bne .L3314 + ldr r3, [r9, #1196] adds r3, r3, #1 - str r3, [r9, #1200] - b .L3293 -.L3291: + str r3, [r9, #1196] + b .L3316 +.L3314: ldr r3, [sp, #16] ldr r3, [r3, #8] cmp r3, r6 - beq .L3293 - ldr r3, [r9, #1200] + beq .L3316 + ldr r3, [r9, #1196] mov r2, r6 - ldr r0, .L3336 + ldr r0, .L3356+20 adds r3, r3, #1 - str r3, [r9, #1200] + str r3, [r9, #1196] ldr r3, [sp, #16] ldr r1, [r3, #8] bl printk - b .L3293 -.L3290: - ldr r1, [r4, #2956] - ldr r2, [r4, #2952] + b .L3316 +.L3357: + .align 2 +.L3356: + .word .LANCHOR0 + .word .LANCHOR4 + .word .LANCHOR2+836 + .word .LANCHOR2 + .word .LANCHOR2+884 + .word .LC144 + .word .LANCHOR1 +.L3313: + ldr r1, [r4, #2964] + ldr r2, [r4, #2960] mla r2, r3, r2, r1 movs r1, #0 ldr r0, [r2, #8] - ldrh r2, [r4, #2908] + ldrh r2, [r4, #2920] bl ftl_memset -.L3293: - ldr r3, [sp, #4] +.L3316: + cmp r6, fp mov lr, #36 - lsls r2, r5, #9 - cmp r6, r3 - bne .L3294 - ldr r1, [r4, #2952] - ldr r5, [r4, #2956] + lsl r2, r5, #9 + bne .L3317 + ldr r1, [r4, #2960] + ldr r5, [r4, #2964] ldr r3, [sp, #32] mla r1, lr, r1, r5 ldr r0, [r1, #8] ldr r1, [sp, #8] add r0, r0, r3, lsl #9 - b .L3331 -.L3294: - ldr r0, [r4, #2956] - ldr r3, [r4, #2952] - ldrh r1, [r4, #2904] + b .L3353 +.L3317: + ldr r0, [r4, #2964] + ldr r3, [r4, #2960] + ldrh r1, [r4, #2916] mla r3, lr, r3, r0 muls r1, r6, r1 ldr r0, [r3, #8] rsb r1, r8, r1 ldr r3, [sp, #8] add r1, r3, r1, lsl #9 - b .L3331 -.L3330: + b .L3353 +.L3352: ldr r3, [sp, #28] - cbz r3, .L3295 - ldr r3, [r4, #2952] - ldr r2, [r4, #2956] + cbz r3, .L3318 + ldr r3, [r4, #2960] + ldr r2, [r4, #2964] mla r5, r5, r3, r2 - ldrh r3, [r4, #2904] + ldrh r3, [r4, #2916] ldr r2, [sp, #8] muls r3, r6, r3 rsb r3, r8, r3 add r3, r2, r3, lsl #9 str r3, [r5, #8] - b .L3289 -.L3295: - ldr r2, [r4, #2956] - ldr r3, [r4, #2952] - ldrh r1, [r4, #2904] + b .L3312 +.L3318: + ldr r2, [r4, #2964] + ldr r3, [r4, #2960] + ldrh r1, [r4, #2916] mla r3, r5, r3, r2 - ldrh r2, [r4, #2908] + ldrh r2, [r4, #2920] muls r1, r6, r1 ldr r0, [r3, #8] rsb r1, r8, r1 ldr r3, [sp, #8] add r1, r3, r1, lsl #9 -.L3331: +.L3353: bl ftl_memcpy -.L3289: +.L3312: ldr r2, [sp, #40] movw r3, #61589 ldr r1, [sp, #36] strh r3, [r2, r1, lsl #2] @ movhi ldr r2, [sp, #16] - ldr r3, [r9, #988] + ldr r3, [r9, #1032] str r3, [r2, #4] adds r3, r3, #1 adds r2, r3, #1 ldr r2, [sp, #16] it eq moveq r3, #0 - str r3, [r9, #988] + str r3, [r9, #1032] ldr r3, [sp, #16] str r6, [r3, #8] adds r6, r6, #1 @@ -20267,77 +20480,141 @@ FtlWrite: str r3, [r2, #12] ldrh r3, [r7] strh r3, [r2, #2] @ movhi - ldr r3, [r4, #2952] + ldr r3, [r4, #2960] adds r3, r3, #1 - str r3, [r4, #2952] + str r3, [r4, #2960] ldr r3, [sp, #24] adds r3, r3, #1 str r3, [sp, #24] - b .L3279 -.L3280: + b .L3302 +.L3303: ldr r3, [sp, #12] ldr r2, [sp, #24] subs r3, r3, r2 str r3, [sp, #12] - ldr r3, .L3336+4 - ldr r2, [r10, #2952] + ldr r3, .L3358 + ldr r2, [r10, #2960] ldr r3, [r3, #1760] cmp r2, r3 - bcs .L3299 + bcs .L3322 ldr r3, [sp, #28] - cbnz r3, .L3299 + cbnz r3, .L3322 ldrh r3, [r7, #4] - cbz r3, .L3299 -.L3301: + cbz r3, .L3322 +.L3324: movs r3, #0 str r3, [sp, #28] - b .L3272 -.L3299: + b .L3295 +.L3322: bl FtlCacheWriteBack movs r3, #0 - str r3, [r10, #2952] + str r3, [r10, #2960] ldr r3, [sp, #12] - cmp r3, #3 - bls .L3301 - b .L3272 -.L3333: + cmp r3, #1 + bhi .L3295 + b .L3324 +.L3355: mov r0, r3 - ldr r2, [sp, #4] ldr r3, [sp, #20] - subs r1, r3, r2 - bl rk_ftl_garbage_collect - ldrh r3, [r5, #784] + rsb r1, fp, r3 + bl ftl_do_gc + ldrh r3, [r5, #832] cmp r3, #31 - bhi .L3305 + bhi .L3328 movs r4, #16 movs r3, #128 - strh r3, [r5, #1642] @ movhi - strh r3, [r5, #1640] @ movhi -.L3304: + strh r3, [r5, #1638] @ movhi + strh r3, [r5, #1636] @ movhi +.L3327: movs r0, #0 movs r1, #1 - bl rk_ftl_garbage_collect - ldr r3, [r5, #740] - cbnz r3, .L3305 + bl ftl_do_gc + ldr r3, [r5, #744] + cbnz r3, .L3328 subs r4, r4, #1 - bne .L3304 - b .L3305 -.L3306: + bne .L3327 + b .L3328 +.L3329: mov r0, #-1 - b .L3264 -.L3305: + b .L3288 +.L3328: movs r0, #0 -.L3264: +.L3288: add sp, sp, #92 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3337: +.L3359: .align 2 -.L3336: - .word .LC140 +.L3358: .word .LANCHOR2 .fnend - .size FtlWrite, .-FtlWrite + .size ftl_write, .-ftl_write + .align 1 + .global ftl_vendor_write + .thumb + .thumb_func + .type ftl_vendor_write, %function +ftl_vendor_write: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r4, r5, lr} + .save {r4, r5, lr} + mov r5, r0 + mov r4, r1 + mov r3, r2 + mov r1, r5 + mov r2, r4 + movs r0, #16 + pop {r4, r5, lr} + b ftl_write + .fnend + .size ftl_vendor_write, .-ftl_vendor_write + .align 1 + .global FlashBootVendorWrite + .thumb + .thumb_func + .type FlashBootVendorWrite, %function +FlashBootVendorWrite: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {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 + pop {r4, r5, r6, pc} + .fnend + .size FlashBootVendorWrite, .-FlashBootVendorWrite + .align 1 + .global ftl_sys_write + .thumb + .thumb_func + .type ftl_sys_write, %function +ftl_sys_write: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r4, lr} + .save {r4, lr} + mov r4, r1 + mov r3, r2 + add r1, r0, #256 + mov r2, r4 + movs r0, #16 + pop {r4, lr} + b ftl_write + .fnend + .size ftl_sys_write, .-ftl_sys_write .align 1 .global StorageSysDataStore .thumb @@ -20352,11 +20629,10 @@ StorageSysDataStore: mov r4, r1 mov r5, r0 bl rknand_device_lock - mov r3, r4 - add r1, r5, #256 - movs r2, #1 - movs r0, #16 - bl FtlWrite + mov r2, r4 + movs r1, #1 + mov r0, r5 + bl ftl_sys_write mov r4, r0 bl rknand_device_unlock mov r0, r4 @@ -20364,6 +20640,19 @@ StorageSysDataStore: .fnend .size StorageSysDataStore, .-StorageSysDataStore .align 1 + .global FtlWrite + .thumb + .thumb_func + .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 1 .global FlashReadFacBbtData .thumb .thumb_func @@ -20372,7 +20661,7 @@ FlashReadFacBbtData: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3353 + ldr r3, .L3379 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r8, r2 @@ -20383,20 +20672,20 @@ FlashReadFacBbtData: sub sp, sp, #40 mov r5, r0 smulbb r3, r2, r3 - ldr r2, .L3353+4 - ldr r1, [r2, #3984] + ldr r2, .L3379+4 + ldr r1, [r2, #3988] mov r9, r2 uxth r3, r3 subs r6, r3, #1 str r1, [sp, #12] mul r10, r3, r7 - ldr r1, [r2, #4016] + ldr r1, [r2, #4020] uxth r6, r6 sub r4, r3, #16 str r1, [sp, #16] -.L3340: +.L3366: cmp r6, r4 - ble .L3352 + ble .L3378 movs r1, #1 add r3, r6, r10 add r0, sp, #4 @@ -20406,62 +20695,62 @@ FlashReadFacBbtData: bl FlashReadPages ldr r3, [sp, #4] adds r3, r3, #1 - beq .L3341 - ldr r3, [r9, #4016] + beq .L3367 + ldr r3, [r9, #4020] ldrh r2, [r3] movw r3, #61664 cmp r2, r3 - bne .L3341 - cbz r5, .L3347 - cbz r7, .L3348 -.L3345: - ldr r1, [r9, #3984] + bne .L3367 + cbz r5, .L3373 + cbz r7, .L3374 +.L3371: + ldr r1, [r9, #3988] mov r2, r8 mov r0, r5 bl ftl_memcpy movs r2, #4 - ldr r0, .L3353+8 + ldr r0, .L3379+8 mov r1, r5 mov r3, r2 bl rknand_print_hex movs r0, #0 - b .L3342 -.L3348: - ldr r6, .L3353+4 + b .L3368 +.L3374: + ldr r6, .L3379+4 mov lr, #1 -.L3343: - ldr r2, [r9, #4004] +.L3369: + ldr r2, [r9, #4008] uxth r3, r7 adds r7, r7, #1 cmp r3, r2 - bcs .L3345 - ldr r2, [r6, #3984] + bcs .L3371 + ldr r2, [r6, #3988] lsrs r1, r3, #5 and r4, r3, #31 lsl r3, lr, r4 ldr r0, [r2, r1, lsl #2] orrs r3, r3, r0 str r3, [r2, r1, lsl #2] - b .L3343 -.L3341: + b .L3369 +.L3367: subs r6, r6, #1 uxth r6, r6 - b .L3340 -.L3352: + b .L3366 +.L3378: mov r0, #-1 - b .L3342 -.L3347: + b .L3368 +.L3373: mov r0, r5 -.L3342: +.L3368: add sp, sp, #40 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L3354: +.L3380: .align 2 -.L3353: +.L3379: .word .LANCHOR0 .word .LANCHOR2 - .word .LC141 + .word .LC145 .fnend .size FlashReadFacBbtData, .-FlashReadFacBbtData .align 1 @@ -20473,36 +20762,36 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3365 + ldr r3, .L3391 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 ldr r3, [r3, #1788] - ldr r6, .L3365+4 + ldr r6, .L3391+4 ldrb r4, [r3, #13] @ zero_extendqisi2 ldrh r3, [r3, #14] - ldr r0, [r6, #4012] + ldr r0, [r6, #4016] smulbb r4, r4, r3 uxth r4, r4 adds r2, r4, #7 asrs r2, r2, #3 bl FlashReadFacBbtData adds r0, r0, #1 - bne .L3356 -.L3360: + bne .L3382 +.L3386: movs r3, #0 - b .L3357 -.L3356: + b .L3383 +.L3382: movs r1, #0 lsr lr, r4, #4 mov ip, #1 subs r4, r4, #1 mov r3, r1 -.L3358: +.L3384: uxth r2, r1 cmp r2, r4 - bge .L3357 - ldr r7, [r6, #4012] + bge .L3383 + ldr r7, [r6, #4016] lsrs r0, r2, #5 and r8, r2, #31 adds r1, r1, #1 @@ -20514,16 +20803,16 @@ FlashGetBadBlockList: addne r0, r3, #1 uxthne r3, r0 cmp r3, lr - bcc .L3358 - b .L3360 -.L3357: + bcc .L3384 + b .L3386 +.L3383: movw r2, #65535 movs r0, #0 strh r2, [r5, r3, lsl #1] @ movhi pop {r4, r5, r6, r7, r8, pc} -.L3366: +.L3392: .align 2 -.L3365: +.L3391: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -20540,65 +20829,65 @@ FtlMakeBbt: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L3389 - ldr r5, [r4, #740] + ldr r4, .L3415 + ldr r5, [r4, #744] cmp r5, #0 - bne .L3368 + bne .L3394 bl FtlBbtMemInit - ldr r7, .L3389+4 + ldr r7, .L3415+4 bl FtlLoadFactoryBbt mov fp, r4 sub r9, r7, #18 - subw r8, r7, #2996 -.L3369: - ldrh r3, [r8, #2850] - ldr r6, .L3389+8 + subw r8, r7, #3000 +.L3395: + ldrh r3, [r8, #2862] + ldr r6, .L3415+8 cmp r5, r3 - bcs .L3387 + bcs .L3413 ldrh r3, [r9, #2]! movw r2, #65535 - ldr r0, [r4, #756] - ldr r10, [r4, #1796] + ldr r0, [r4, #1776] + ldr r10, [r4, #1800] cmp r3, r2 - str r0, [r4, #4056] - str r10, [r4, #4060] - beq .L3370 - ldrh ip, [r8, #2894] + str r0, [r4, #4060] + str r10, [r4, #4064] + beq .L3396 + ldrh ip, [r8, #2906] movs r1, #1 - ldr r0, .L3389+12 + ldr r0, .L3415+12 mov r2, r1 mla ip, ip, r5, r3 lsl r3, ip, #10 str ip, [sp, #4] - str r3, [fp, #4052] + str r3, [fp, #4056] bl FlashReadPages - ldrh r2, [r8, #2894] + ldrh r2, [r8, #2906] ldr r0, [r7] adds r2, r2, #7 - ldr r1, [fp, #4056] + ldr r1, [fp, #4060] asrs r2, r2, #3 bl ftl_memcpy ldr ip, [sp, #4] - b .L3371 -.L3370: + b .L3397 +.L3396: mov r1, r5 bl FlashGetBadBlockList - ldr r0, [fp, #4056] + ldr r0, [fp, #4060] ldr r1, [r7] bl FtlBbt2Bitmap - ldrh r6, [r8, #2894] -.L3373: + ldrh r6, [r8, #2906] +.L3399: subs r6, r6, #1 uxth r6, r6 -.L3372: - ldr r3, .L3389+8 - ldrh r0, [r3, #2894] +.L3398: + ldr r3, .L3415+8 + ldrh r0, [r3, #2906] smlabb r0, r0, r5, r6 uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L3373 - ldr r0, [r4, #1796] + beq .L3399 + ldr r0, [r4, #1800] movs r1, #16 strh r6, [r9] @ movhi bl __memzero @@ -20607,125 +20896,125 @@ FtlMakeBbt: movs r3, #0 str r3, [r10, #4] ldrh r3, [r9] - ldrh ip, [r8, #2894] - ldrh r2, [r4, #1860] + ldrh ip, [r8, #2906] + ldrh r2, [r4, #1864] strh r3, [r10, #2] @ movhi ldrh r3, [r9] ldr r1, [r7] lsls r2, r2, #2 - ldr r0, [r4, #4056] + ldr r0, [r4, #4060] mla ip, ip, r5, r3 lsl r3, ip, #10 - str r3, [r4, #4052] str ip, [sp, #4] + str r3, [r4, #4056] bl ftl_memcpy movs r1, #1 - ldr r0, .L3389+12 + ldr r0, .L3415+12 mov r2, r1 bl FlashEraseBlocks movs r1, #1 - ldr r0, .L3389+12 + ldr r0, .L3415+12 mov r3, r1 mov r2, r1 bl FlashProgPages - ldr r3, [r4, #4048] - adds r3, r3, #1 + ldr r3, [r4, #4052] ldr ip, [sp, #4] - bne .L3371 + adds r3, r3, #1 + bne .L3397 uxth r0, ip bl FtlBbmMapBadBlock - b .L3372 -.L3371: + b .L3398 +.L3397: uxth r0, ip adds r5, r5, #1 bl FtlBbmMapBadBlock adds r7, r7, #4 - b .L3369 -.L3387: + b .L3395 +.L3413: movs r5, #0 -.L3376: - ldrh r3, [r6, #2912] +.L3402: + ldrh r3, [r6, #2924] uxth r0, r5 - ldr r7, .L3389+8 + ldr r7, .L3415+8 adds r5, r5, #1 cmp r3, r0 - bls .L3388 + bls .L3414 bl FtlBbmMapBadBlock - b .L3376 -.L3388: - ldrh r5, [r7, #2980] + b .L3402 +.L3414: + ldrh r5, [r7, #2984] movw r8, #65535 subs r5, r5, #1 uxth r5, r5 -.L3378: - ldrh r3, [r6, #2980] +.L3404: + ldrh r3, [r6, #2984] subs r3, r3, #48 cmp r5, r3 - ble .L3382 + ble .L3408 mov r0, r5 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L3379 + beq .L3405 mov r0, r5 bl FlashTestBlk - cbz r0, .L3380 + cbz r0, .L3406 mov r0, r5 bl FtlBbmMapBadBlock - b .L3379 -.L3380: - ldrh r3, [r7, #2968] + b .L3405 +.L3406: + ldrh r3, [r7, #2972] cmp r3, r8 - bne .L3381 - strh r5, [r7, #2968] @ movhi - b .L3379 -.L3381: - ldr r3, .L3389+8 - strh r5, [r3, #2972] @ movhi - b .L3382 -.L3379: + bne .L3407 + strh r5, [r7, #2972] @ movhi + b .L3405 +.L3407: + ldr r3, .L3415+8 + strh r5, [r3, #2976] @ movhi + b .L3408 +.L3405: subs r5, r5, #1 uxth r5, r5 - b .L3378 -.L3382: - ldr r0, [r4, #744] + b .L3404 +.L3408: + ldr r0, [r4, #748] movs r5, #0 - ldrh r3, [r6, #2968] + ldrh r3, [r6, #2972] movs r2, #2 - str r5, [r6, #2976] + str r5, [r6, #2980] movs r1, #1 - strh r5, [r6, #2970] @ movhi + strh r5, [r6, #2974] @ movhi lsls r3, r3, #10 str r3, [r0, #4] - ldrh r3, [r6, #2972] + ldrh r3, [r6, #2976] lsls r3, r3, #10 str r3, [r0, #40] bl FlashEraseBlocks - ldrh r0, [r6, #2968] - bl FtlBbmMapBadBlock ldrh r0, [r6, #2972] bl FtlBbmMapBadBlock + ldrh r0, [r6, #2976] + bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldr r3, [r6, #2976] - ldrh r2, [r6, #2972] + ldr r3, [r6, #2980] + ldrh r2, [r6, #2976] adds r3, r3, #1 - str r3, [r6, #2976] - ldrh r3, [r6, #2968] - strh r5, [r6, #2970] @ movhi - strh r2, [r6, #2968] @ movhi - strh r3, [r6, #2972] @ movhi + str r3, [r6, #2980] + ldrh r3, [r6, #2972] + strh r5, [r6, #2974] @ movhi + strh r2, [r6, #2972] @ movhi + strh r3, [r6, #2976] @ movhi bl FtlBbmTblFlush -.L3368: +.L3394: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3390: +.L3416: .align 2 -.L3389: +.L3415: .word .LANCHOR2 - .word .LANCHOR0+2996 + .word .LANCHOR0+3000 .word .LANCHOR0 - .word .LANCHOR2+4048 + .word .LANCHOR2+4052 .fnend .size FtlMakeBbt, .-FtlMakeBbt .align 1 @@ -20739,43 +21028,53 @@ FtlLowFormat: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - ldr r4, .L3425 - ldr r3, [r4, #740] - cmp r3, #0 - bne .L3393 - ldr r5, .L3425+4 - str r3, [r4, #984] - str r3, [r4, #988] - ldrh r0, [r5, #2832] + ldr r4, .L3451 + ldr r6, [r4, #744] + cmp r6, #0 + bne .L3419 + ldr r5, .L3451+4 + mov r1, r6 + ldr r0, [r4, #1852] + ldrh r2, [r5, #2948] + lsls r2, r2, #2 + bl ftl_memset + ldrh r2, [r5, #2948] + mov r1, r6 + ldr r0, [r4, #1848] + lsls r2, r2, #2 + bl ftl_memset + ldrh r0, [r5, #2844] + str r6, [r4, #1028] + str r6, [r4, #1032] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz r0, .L3394 + cbz r0, .L3420 bl FtlMakeBbt -.L3394: - ldr r0, .L3425+8 +.L3420: + ldr r0, .L3451+8 movs r2, #0 -.L3395: - ldrh r1, [r5, #2904] +.L3421: + ldrh r1, [r5, #2916] uxth r3, r2 adds r2, r2, #1 cmp r3, r1, lsl #7 - bge .L3422 - ldr r6, [r4, #1788] + bge .L3448 + ldr r6, [r4, #1792] mvns r1, r3 orr r1, r3, r1, lsl #16 str r1, [r6, r3, lsl #2] - ldr r1, [r4, #1792] + ldr r1, [r4, #1796] str r0, [r1, r3, lsl #2] - b .L3395 -.L3422: - ldr r3, .L3425+4 + b .L3421 +.L3448: + ldr r3, .L3451+4 movs r6, #0 - ldrh r7, [r3, #2836] -.L3397: - ldrh r3, [r5, #2838] - ldr r8, .L3425+4 + ldrh r7, [r3, #2848] +.L3423: + ldrh r3, [r5, #2850] + ldr r8, .L3451+4 cmp r3, r7 - bls .L3423 + bls .L3449 mov r0, r7 movs r1, #1 bl FtlLowFormatEraseBlock @@ -20783,223 +21082,222 @@ FtlLowFormat: uxth r7, r7 add r0, r0, r6 uxth r6, r0 - b .L3397 -.L3423: - ldrh r1, [r8, #2828] + b .L3423 +.L3449: + ldrh r1, [r8, #2840] subs r3, r6, #3 cmp r3, r1, lsl #1 - bge .L3399 -.L3403: + bge .L3425 +.L3429: movs r6, #0 mov r7, r6 - b .L3400 -.L3399: + b .L3426 +.L3425: mov r0, r6 bl __aeabi_uidiv - ldr r3, [r8, #2932] + ldr r3, [r8, #2944] add r0, r0, r3 uxth r0, r0 bl FtlSysBlkNumInit - ldrh r0, [r8, #2832] + ldrh r0, [r8, #2844] bl FtlFreeSysBlkQueueInit - ldrh r6, [r8, #2836] -.L3401: - ldrh r3, [r5, #2838] + ldrh r6, [r8, #2848] +.L3427: + ldrh r3, [r5, #2850] cmp r3, r6 - bls .L3403 + bls .L3429 mov r0, r6 adds r6, r6, #1 movs r1, #1 bl FtlLowFormatEraseBlock uxth r6, r6 - b .L3401 -.L3400: - ldrh r3, [r5, #2836] + b .L3427 +.L3426: + ldrh r3, [r5, #2848] uxth r0, r6 - ldr r10, .L3425+4 + ldr r10, .L3451+4 adds r6, r6, #1 cmp r3, r0 - bls .L3424 + bls .L3450 movs r1, #0 bl FtlLowFormatEraseBlock add r0, r0, r7 uxth r7, r0 - b .L3400 -.L3424: - ldrh r3, [r10, #2838] - ldrh r6, [r10, #2828] - ldr fp, [r10, #2840] - str r3, [r10, #2964] + b .L3426 +.L3450: + ldrh r3, [r10, #2850] + ldrh r6, [r10, #2840] + ldr fp, [r10, #2852] + str r3, [r4, #1752] mov r1, r6 mov r0, fp bl __aeabi_uidiv ubfx r8, r0, #5, #16 mov r9, r0 add r3, r8, #36 - strh r3, [r4, #1060] @ movhi + strh r3, [r4, #1056] @ movhi movs r3, #24 - str r0, [r10, #2960] + str r0, [r10, #2968] muls r3, r6, r3 cmp r7, r3 - ble .L3405 + ble .L3431 rsb r0, r7, fp mov r1, r6 bl __aeabi_uidiv - ldr r3, .L3425 - str r0, [r10, #2960] + ldr r3, .L3451 + str r0, [r10, #2968] lsrs r0, r0, #5 adds r0, r0, #24 - strh r0, [r3, #1060] @ movhi -.L3405: - ldr r3, [r4, #948] - ldr fp, .L3425 + strh r0, [r3, #1056] @ movhi +.L3431: + ldr r3, [r5, #2832] cmp r3, #1 - bne .L3406 + bne .L3432 mov r0, r7 mov r1, r6 bl __aeabi_uidiv - ldrh r10, [fp, #1060] + ldrh r10, [r4, #1056] uxtah r0, r10, r0 add r10, r10, r0, asr #2 - strh r10, [fp, #1060] @ movhi -.L3406: + strh r10, [r4, #1056] @ movhi +.L3432: ldrb r3, [r5, #76] @ zero_extendqisi2 - cbz r3, .L3407 + cbz r3, .L3433 mov r0, r7 mov r1, r6 bl __aeabi_uidiv - ldrh r10, [r4, #1060] + ldrh r10, [r4, #1056] uxtah r0, r10, r0 add r10, r10, r0, asr #2 - strh r10, [r4, #1060] @ movhi -.L3407: - ldrh r3, [r5, #2890] - cbz r3, .L3409 - ldrh r2, [r4, #1060] + strh r10, [r4, #1056] @ movhi +.L3433: + ldrh r3, [r5, #2902] + cbz r3, .L3435 + ldrh r2, [r4, #1056] add r2, r2, r3, lsr #1 - strh r2, [r4, #1060] @ movhi + strh r2, [r4, #1056] @ movhi mul r2, r6, r3 cmp r2, r7 itttt gt addgt r3, r3, #32 - ldrgt r2, .L3425+4 + ldrgt r2, .L3451+4 addgt r3, r3, r8 - strgt r9, [r2, #2960] + strgt r9, [r2, #2968] itt gt - ldrgt r2, .L3425 - strhgt r3, [r2, #1060] @ movhi -.L3409: - ldrh r2, [r4, #1060] - ldr r3, [r5, #2960] - ldr r7, .L3425 + ldrgt r2, .L3451 + strhgt r3, [r2, #1056] @ movhi +.L3435: + ldrh r2, [r4, #1056] + ldr r3, [r5, #2968] + ldr r7, .L3451 subs r3, r3, r2 muls r6, r3, r6 - ldrh r3, [r5, #2898] - str r6, [r4, #4084] + ldrh r3, [r5, #2910] + str r6, [r4, #4088] muls r6, r3, r6 - ldrh r3, [r5, #2904] - str r6, [r5, #2960] + ldrh r3, [r5, #2916] + str r6, [r5, #2968] muls r6, r3, r6 - str r6, [r5, #2940] + str r6, [r5, #1896] bl FtlBbmTblFlush - ldrh r2, [r5, #2838] + ldrh r2, [r5, #2850] movs r1, #0 - ldr r0, [r4, #768] + ldr r0, [r4, #816] movw r6, #65535 lsls r2, r2, #1 bl ftl_memset - ldrh r2, [r5, #2836] - ldr r0, [r4, #944] + ldrh r2, [r5, #2848] + ldr r0, [r4, #992] movs r1, #255 movs r3, #0 - strh r6, [r4, #1076] @ movhi + strh r6, [r4, #1072] @ movhi lsrs r2, r2, #3 - str r3, [r4, #940] - strh r3, [r4, #1078] @ movhi - strb r3, [r4, #1082] - strb r3, [r4, #1084] - strh r3, [r4, #790] @ movhi - strb r3, [r4, #794] - strh r3, [r4, #788] @ movhi + str r3, [r4, #988] + strh r3, [r4, #1074] @ movhi + strb r3, [r4, #1078] + strb r3, [r4, #1080] + strh r3, [r4, #838] @ movhi + strb r3, [r4, #842] + strh r3, [r4, #836] @ movhi movs r3, #1 - strb r3, [r4, #796] + strb r3, [r4, #844] bl ftl_memset -.L3411: - ldr r5, .L3425 - add r0, r5, #788 +.L3437: + ldr r5, .L3451 + add r0, r5, #836 bl make_superblock - ldrb r3, [r4, #795] @ zero_extendqisi2 - ldrh r2, [r4, #788] - cbnz r3, .L3412 - ldr r3, [r7, #768] + ldrb r3, [r4, #843] @ zero_extendqisi2 + ldrh r2, [r4, #836] + cbnz r3, .L3438 + ldr r3, [r7, #816] strh r6, [r3, r2, lsl #1] @ movhi - ldrh r3, [r7, #788] + ldrh r3, [r7, #836] adds r3, r3, #1 - strh r3, [r7, #788] @ movhi - b .L3411 -.L3412: - ldr r3, [r5, #984] + strh r3, [r7, #836] @ movhi + b .L3437 +.L3438: + ldr r3, [r5, #1028] movw r7, #65535 - ldrh r1, [r5, #792] - str r3, [r5, #800] + ldrh r1, [r5, #840] + str r3, [r5, #848] adds r3, r3, #1 - str r3, [r5, #984] - ldr r3, [r5, #768] + str r3, [r5, #1028] + ldr r3, [r5, #816] strh r1, [r3, r2, lsl #1] @ movhi movs r3, #0 - strh r3, [r5, #838] @ movhi - strb r3, [r5, #842] - ldrh r3, [r5, #788] + strh r3, [r5, #886] @ movhi + strb r3, [r5, #890] + ldrh r3, [r5, #836] adds r3, r3, #1 - strh r3, [r5, #836] @ movhi + strh r3, [r5, #884] @ movhi movs r3, #1 - strb r3, [r5, #844] -.L3413: - ldr r6, .L3425 - add r0, r6, #836 + strb r3, [r5, #892] +.L3439: + ldr r6, .L3451 + add r0, r6, #884 bl make_superblock - ldrb r3, [r4, #843] @ zero_extendqisi2 - ldrh r2, [r4, #836] - cbnz r3, .L3414 - ldr r3, [r5, #768] + ldrb r3, [r4, #891] @ zero_extendqisi2 + ldrh r2, [r4, #884] + cbnz r3, .L3440 + ldr r3, [r5, #816] strh r7, [r3, r2, lsl #1] @ movhi - ldrh r3, [r5, #836] + ldrh r3, [r5, #884] adds r3, r3, #1 - strh r3, [r5, #836] @ movhi - b .L3413 -.L3414: - ldr r3, [r6, #984] + strh r3, [r5, #884] @ movhi + b .L3439 +.L3440: + ldr r3, [r6, #1028] movw r4, #65535 - ldrh r1, [r6, #840] - str r3, [r6, #848] + ldrh r1, [r6, #888] + str r3, [r6, #896] adds r3, r3, #1 - str r3, [r6, #984] - ldr r3, [r6, #768] + str r3, [r6, #1028] + ldr r3, [r6, #816] strh r1, [r3, r2, lsl #1] @ movhi - strh r4, [r6, #884] @ movhi + strh r4, [r6, #932] @ movhi bl FtlFreeSysBlkQueueOut movs r3, #0 + strh r3, [r6, #1062] @ movhi + ldr r3, [r6, #4088] + strh r4, [r6, #1064] @ movhi strh r3, [r6, #1066] @ movhi - ldr r3, [r6, #4084] - strh r4, [r6, #1068] @ movhi - strh r3, [r6, #1070] @ movhi - ldr r3, [r6, #984] - str r3, [r6, #1072] + ldr r3, [r6, #1028] + str r3, [r6, #1068] adds r3, r3, #1 - str r3, [r6, #984] - strh r0, [r6, #1064] @ movhi + str r3, [r6, #1028] + strh r0, [r6, #1060] @ movhi bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz r0, .L3393 - ldr r3, .L3425+12 + cbnz r0, .L3419 + ldr r3, .L3451+12 movs r2, #1 str r2, [r3, #504] -.L3393: +.L3419: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3426: +.L3452: .align 2 -.L3425: +.L3451: .word .LANCHOR2 .word .LANCHOR0 .word 168778952 @@ -21018,34 +21316,34 @@ FtlReInitForSDUpdata: push {r0, r1, r2, r3, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #16 - ldr r4, .L3456 + ldr r4, .L3481 ldrb r3, [r4, #76] @ zero_extendqisi2 - cbz r3, .L3428 -.L3430: + cbz r3, .L3454 +.L3456: movs r0, #0 - b .L3429 -.L3428: - ldr r5, .L3456+4 - ldr r0, [r5, #3980] + b .L3455 +.L3454: + ldr r5, .L3481+4 + ldr r0, [r5, #3984] bl FlashInit cmp r0, #0 - bne .L3430 + bne .L3456 bl FlashLoadFactorBbt - cbz r0, .L3431 + cbz r0, .L3457 bl FlashMakeFactorBbt -.L3431: - ldr r0, [r5, #4012] +.L3457: + ldr r0, [r5, #4016] bl FlashReadIdbDataRaw - cbz r0, .L3432 + cbz r0, .L3458 movs r1, #0 movs r2, #16 mov r0, sp movs r6, #1 bl FlashReadFacBbtData movs r3, #0 - mov r2, r3 ldr r1, [sp] -.L3433: + mov r2, r3 +.L3459: lsl r5, r6, r2 adds r0, r3, #1 tst r5, r1 @@ -21053,12 +21351,12 @@ FtlReInitForSDUpdata: it ne movne r3, r0 cmp r2, #16 - bne .L3433 + bne .L3459 cmp r3, #6 - bls .L3452 + bls .L3477 movs r2, #0 movs r6, #1 -.L3436: +.L3462: lsl r5, r6, r2 adds r0, r3, #1 tst r5, r1 @@ -21066,58 +21364,58 @@ FtlReInitForSDUpdata: it ne movne r3, r0 cmp r2, #24 - bne .L3436 + bne .L3462 cmp r3, #17 - bhi .L3437 -.L3452: + bhi .L3463 +.L3477: strb r2, [r4, #1] - b .L3435 -.L3437: + b .L3461 +.L3463: movs r3, #36 strb r3, [r4, #1] -.L3435: +.L3461: ldrb r3, [r4, #1] @ zero_extendqisi2 strh r3, [r4, #1890] @ movhi -.L3432: - ldr r1, .L3456+8 - ldr r0, .L3456+12 +.L3458: + ldr r1, .L3481+8 + ldr r0, .L3481+12 bl printk - ldr r0, .L3456+16 + ldr r0, .L3481+16 bl FtlConstantsInit bl FtlVariablesInit - ldrh r0, [r4, #2832] + ldrh r0, [r4, #2844] bl FtlFreeSysBlkQueueInit movs r4, #1 -.L3438: +.L3464: bl FtlLoadBbt - cbz r0, .L3439 -.L3454: + cbz r0, .L3465 +.L3479: bl FtlLowFormat cmp r4, #3 - bhi .L3455 + bhi .L3480 adds r4, r4, #1 - b .L3438 -.L3455: + b .L3464 +.L3480: mov r0, #-1 - b .L3429 -.L3439: + b .L3455 +.L3465: bl FtlSysBlkInit cmp r0, #0 - bne .L3454 - ldr r3, .L3456+20 + bne .L3479 + ldr r3, .L3481+20 movs r2, #1 str r2, [r3, #504] -.L3429: +.L3455: add sp, sp, #16 @ sp needed pop {r4, r5, r6, pc} -.L3457: +.L3482: .align 2 -.L3456: +.L3481: .word .LANCHOR0 .word .LANCHOR2 - .word .LC75 - .word .LC74 + .word .LC78 + .word .LC77 .word .LANCHOR0+1864 .word .LANCHOR1 .fnend @@ -21132,17 +21430,17 @@ flash_boot_enter_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L3460 - ldr r2, [r3, #2772] - ldr r3, .L3460+4 + ldr r3, .L3485 + ldr r2, [r3, #2768] + ldr r3, .L3485+4 cmp r2, r3 - bne .L3458 + bne .L3483 b flash_enter_slc_mode -.L3458: +.L3483: bx lr -.L3461: +.L3486: .align 2 -.L3460: +.L3485: .word .LANCHOR0 .word 1446522928 .fnend @@ -21157,438 +21455,493 @@ flash_boot_exit_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L3464 - ldr r2, [r3, #2772] - ldr r3, .L3464+4 + ldr r3, .L3489 + ldr r2, [r3, #2768] + ldr r3, .L3489+4 cmp r2, r3 - bne .L3462 + bne .L3487 b flash_exit_slc_mode -.L3462: +.L3487: bx lr -.L3465: +.L3490: .align 2 -.L3464: +.L3489: .word .LANCHOR0 .word 1446522928 .fnend .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode .align 1 - .global IdBlockReadData .thumb .thumb_func .type IdBlockReadData, %function IdBlockReadData: .fnstart - @ args = 0, pretend = 0, frame = 32 + @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #36 - sub sp, sp, #36 - ldr r4, .L3474 mov r6, r0 - str r2, [sp, #12] - mov r7, r1 - ldr r0, .L3474+4 + ldr r4, .L3499 + mov r8, r1 + .pad #20 + sub sp, sp, #20 mov r1, r6 - ldr r2, [r4, #1788] - mov fp, r4 - ldr r3, [r4, #4] - ldrb r5, [r2, #9] @ zero_extendqisi2 - mov r2, r7 - smulbb r5, r5, r3 - bl printk + mov fp, r2 + ldr r0, .L3499+4 ldr r3, [r4, #1788] + mov r2, r8 + movs r7, #0 + ldrb r9, [r3, #9] @ zero_extendqisi2 + ldrh r5, [r3, #10] + bl printk mov r0, r6 - ldrb r10, [r3, #9] @ zero_extendqisi2 + smulbb r5, r5, r9 uxth r5, r5 mov r1, r5 - movs r5, #0 bl __aeabi_uidivmod - mul ip, r10, r1 - mov r8, r1 + mul ip, r9, r1 + mov r10, r1 subs r3, r6, r1 - str r3, [sp, #4] + str r3, [sp] ubfx ip, ip, #2, #2 -.L3467: - cmp r5, r7 - bcs .L3473 - add r9, r5, r8 - rsb r3, ip, #4 - ubfx r9, r9, #2, #16 - ldrb r2, [r4, #76] @ zero_extendqisi2 - uxth r3, r3 - str r3, [sp, #8] - add r3, r4, r9, lsl #1 +.L3492: + cmp r7, r8 + bcs .L3498 + add r2, r7, r10 + ldrb r1, [r4, #76] @ zero_extendqisi2 + ubfx r2, r2, #2, #16 + rsb r5, ip, #4 + add r3, r4, r2, lsl #1 + uxth r5, r5 ldrh r3, [r3, #80] - cbz r2, .L3468 - ldr r2, [r4, #2772] - ldr r1, .L3474+8 - cmp r2, r1 + cbz r1, .L3493 + ldr r1, .L3499 + ldr r0, .L3499+8 + ldr r1, [r1, #2768] + cmp r1, r0 it eq - moveq r3, r9 -.L3468: - ldr r2, [sp, #4] - ldr r9, .L3474+16 + moveq r3, r2 +.L3493: + ldr r2, [sp] + add r7, r7, r5 add r2, ip, r2 - ldr r1, [fp, #1788] - ldrb ip, [fp, #1892] @ zero_extendqisi2 - mla r3, r10, r3, r2 - ldrb r1, [r1, #9] @ zero_extendqisi2 - ldr r2, [r9, #4012] - ldrb r0, [r9, #4010] @ zero_extendqisi2 - str ip, [sp, #16] - str r2, [sp, #24] - str r3, [sp, #28] - str r1, [sp, #20] + ldrb ip, [r4, #1892] @ zero_extendqisi2 + uxth r7, r7 + mla r3, r9, r3, r2 + ldr r2, [r4, #1788] + str ip, [sp, #4] + ldrb r1, [r2, #9] @ zero_extendqisi2 + str r3, [sp, #12] + ldr r3, .L3499+12 + str r1, [sp, #8] + ldrb r0, [r3, #4014] @ zero_extendqisi2 bl FlashBchSel movs r0, #0 bl flash_boot_enter_slc_mode - ldr r3, [sp, #28] - ldr r1, [sp, #20] + ldr r3, [sp, #12] + ldr r1, [sp, #8] mov r0, r3 bl __aeabi_uidiv + mov r2, fp + add fp, fp, r5, lsl #9 mov r1, r0 movs r0, #0 - ldr r2, [sp, #24] mov r3, r0 bl FlashReadPage movs r0, #0 bl flash_boot_exit_slc_mode - ldr ip, [sp, #16] + ldr ip, [sp, #4] mov r0, ip bl FlashBchSel - ldr r1, [r9, #4012] - mov r2, #2048 - ldr r3, [sp, #12] - add r0, r3, r5, lsl #9 - bl ftl_memcpy mov ip, #0 - ldr r3, [sp, #8] - add r3, r3, r5 - uxth r5, r3 - b .L3467 -.L3473: + b .L3492 +.L3498: mov r1, r6 - mov r2, r7 + mov r2, r8 movs r3, #0 - ldr r0, .L3474+12 + ldr r0, .L3499+16 bl printk movs r0, #0 - add sp, sp, #36 + add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3475: +.L3500: .align 2 -.L3474: +.L3499: .word .LANCHOR0 - .word .LC142 + .word .LC146 .word 1446522928 - .word .LC143 .word .LANCHOR2 + .word .LC147 .fnend .size IdBlockReadData, .-IdBlockReadData .align 1 - .global IDBlockWriteData + .global write_idblock .thumb .thumb_func - .type IDBlockWriteData, %function -IDBlockWriteData: + .type write_idblock, %function +write_idblock: .fnstart - @ args = 0, pretend = 0, frame = 88 + @ args = 0, pretend = 0, frame = 112 @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #92 - sub sp, sp, #92 - ldr r4, .L3492 - mov r7, r0 - str r2, [sp, #8] - mov r8, r1 - ldr r0, .L3492+4 - mov r1, r7 - ldr r2, [r4, #1788] - mov fp, r4 - ldr r3, [r4, #4] - ldrb r5, [r2, #9] @ zero_extendqisi2 - mov r2, r8 - smulbb r5, r5, r3 + mov r5, r2 + ldr r7, .L3542 + .pad #124 + sub sp, sp, #124 + mov r4, r0 + mov r0, #256000 + mov r6, r1 + ldr r2, [r7, #1788] + ldrb r10, [r2, #9] @ zero_extendqisi2 + ldrh r8, [r2, #10] + bl ftl_malloc + mov r9, r0 + cmp r0, #0 + beq .L3524 + addw r4, r4, #511 + lsrs r4, r4, #9 + cmp r4, #8 + bls .L3523 + cmp r4, #500 + bhi .L3524 + b .L3503 +.L3523: + movs r4, #8 +.L3503: + smulbb r3, r10, r8 + mov r0, r4 + uxth r3, r3 + str r3, [sp, #8] + mov r1, r3 + bl __aeabi_uidiv + movs r3, #0 + movw r2, #63999 + str r0, [sp, #28] + add r0, r6, #254976 + add r0, r0, #1020 +.L3507: + ldr r1, [r0] + cbnz r1, .L3504 + ldr r1, [r6, r3, lsl #2] + adds r3, r3, #1 + cmp r3, #4096 + add r2, r2, #-1 + it hi + movhi r3, #0 + cmp r2, #4096 + str r1, [r0], #-4 + bne .L3507 + b .L3506 +.L3504: + ldr r0, .L3542+4 + bl printk +.L3506: + mov r1, r5 + movs r3, #5 + ldr r0, .L3542+8 + movs r2, #4 + bl rknand_print_hex + ldrb r2, [r7, #1] @ zero_extendqisi2 + ldr r1, [r6, #512] + subs r5, r5, #4 + ldr r0, .L3542+12 + bl printk + ldr r2, .L3542+16 + ldrh r3, [r7, #1890] + mov r1, r4 + ldr r0, .L3542+20 + ldr r2, [r2, #4008] + str r2, [sp] + mov r2, r4 + bl printk + ldrb r3, [r7, #1] @ zero_extendqisi2 + ldr r7, .L3542 + ldr r2, [r6, #512] + cmp r2, r3 + it hi + strhi r3, [r6, #512] + lsls r3, r4, #7 + str r3, [sp, #32] + movs r3, #0 + str r3, [sp, #16] + str r3, [sp, #12] +.L3521: + ldr r2, [r5, #4] + ldrb r3, [r7, #1] @ zero_extendqisi2 + cmp r2, r3 + bcs .L3509 + ldr r3, .L3542+16 + ldr r3, [r3, #4008] + cmp r2, r3 + bcc .L3509 + ldr r3, [sp, #28] + cmp r3, #1 + bls .L3510 + ldr r3, [sp, #12] + cbz r3, .L3510 + ldr r3, [r5] + adds r3, r3, #1 + cmp r2, r3 + beq .L3509 +.L3510: + mov r0, r9 + mov r1, #512 + bl __memzero + ldr r3, [r5, #4] + ldr r2, [sp, #8] + ldr r0, .L3542+24 + mul r8, r3, r2 + ldr r3, .L3542 + ldr r3, [r3, #1788] + mov r1, r8 + ldrb r2, [r3, #9] @ zero_extendqisi2 + ldrh r10, [r3, #10] + str r2, [sp, #20] + mov r2, r4 + ldrh r3, [sp, #20] + smulbb r10, r10, r3 bl printk movs r0, #0 bl flash_boot_enter_slc_mode - ldrh r1, [r4, #1884] - mov r0, r7 + ldr r1, [sp, #20] + mov r0, r8 bl __aeabi_uidiv - uxth r5, r5 + uxth r10, r10 mov r1, r0 movs r0, #0 mov r2, r0 bl FlashEraseBlock + cmp r4, r10 + bls .L3525 + movs r0, #0 + add r1, r8, r10 + mov fp, #2 + mov r2, r0 + bl FlashEraseBlock + b .L3511 +.L3525: + mov fp, #1 +.L3511: movs r0, #0 bl flash_boot_exit_slc_mode - ldr r3, [r4, #1788] - mov r1, r5 - mov r0, r7 - movs r5, #0 - ldrb r3, [r3, #9] @ zero_extendqisi2 - str r3, [sp] + ldr r3, [r7, #1788] + ldrh r0, [r3, #10] + ldrb r1, [r3, #12] @ zero_extendqisi2 + lsls r0, r0, #2 + mul r0, fp, r0 + bl __aeabi_idiv + mov r1, r10 + mov r10, #0 + str r0, [sp, #44] + mov r0, r8 bl __aeabi_uidivmod - ldr ip, .L3492+16 - rsb r10, r1, r7 - mov r9, r1 -.L3477: - cmp r5, r8 - bcs .L3491 - add r3, r5, r9 - ubfx r3, r3, #2, #16 - cbz r3, .L3478 - adds r1, r3, #1 - ldrb r0, [r4, #76] @ zero_extendqisi2 - add r2, r4, r1, lsl #1 - ldrh r2, [r2, #80] - cbz r0, .L3479 - ldr r0, [fp, #2772] - cmp r0, ip + str r6, [sp, #24] + mov ip, r1 + rsb r3, r1, r8 + str r3, [sp, #36] +.L3512: + ldr r3, [sp, #44] + cmp r10, r3 + bcs .L3541 + add r2, r10, ip + ubfx r2, r2, #2, #16 + cbz r2, .L3513 + adds r3, r2, #1 + add r1, r7, r3, lsl #1 + ldrh fp, [r1, #80] + ldrb r1, [r7, #76] @ zero_extendqisi2 + cbz r1, .L3514 + ldr r1, [r7, #2768] + ldr r0, .L3542+28 + cmp r1, r0 it eq - uxtheq r2, r1 -.L3479: - subs r2, r2, #1 - lsls r2, r2, #2 - str r2, [sp, #24] - movs r2, #0 - str r2, [sp, #28] -.L3478: - add r2, r4, r3, lsl #1 - ldrh r6, [r2, #80] - ldrb r2, [r4, #76] @ zero_extendqisi2 - cbz r2, .L3480 - ldr r2, [fp, #2772] - cmp r2, ip + moveq fp, r3 +.L3514: + add fp, fp, #1073741824 + add fp, fp, #-1 + lsl r3, fp, #2 + str r3, [sp, #56] +.L3513: + movw r3, #61424 + str r3, [sp, #60] + add r3, r7, r2, lsl #1 + ldrh fp, [r3, #80] + ldrb r3, [r7, #76] @ zero_extendqisi2 + cbz r3, .L3515 + ldr r3, [r7, #2768] + ldr r1, .L3542+28 + cmp r3, r1 it eq - moveq r6, r3 -.L3480: - ldr r3, [sp] - str ip, [sp, #20] - mla r1, r3, r6, r10 - ldr r3, [sp, #8] - add r2, r3, r5, lsl #9 - ldrb r3, [r4, #1892] @ zero_extendqisi2 - str r2, [sp, #12] - adds r5, r5, #4 - str r3, [sp, #4] - uxth r5, r5 - ldr r3, .L3492+8 - str r1, [sp, #16] - ldrb r0, [r3, #4010] @ zero_extendqisi2 + moveq fp, r2 +.L3515: + ldr r3, [sp, #20] + add r10, r10, #4 + ldr r2, [sp, #36] + str ip, [sp, #52] + uxth r10, r10 + mla r2, r3, fp, r2 + ldr r3, .L3542 + ldrb r3, [r3, #1892] @ zero_extendqisi2 + str r2, [sp, #48] + str r3, [sp, #40] + ldr r3, .L3542+16 + ldrb r0, [r3, #4014] @ zero_extendqisi2 bl FlashBchSel movs r0, #0 bl flash_boot_enter_slc_mode - ldr r3, [r4, #1788] - ldr r1, [sp, #16] - mov r0, r1 + ldr r3, .L3542 + ldr r2, [sp, #48] + ldr r3, [r3, #1788] + mov r0, r2 ldrb r1, [r3, #9] @ zero_extendqisi2 bl __aeabi_uidiv + add r3, sp, #56 + ldr r2, [sp, #24] mov r1, r0 - ldr r2, [sp, #12] - add r3, sp, #24 movs r0, #0 bl FlashProgPage movs r0, #0 bl flash_boot_exit_slc_mode - ldr r0, [sp, #4] + ldr r0, [sp, #40] bl FlashBchSel - mov r0, r10 - ldr r1, [sp] + ldr r1, [sp, #20] + ldr r0, [sp, #36] bl __aeabi_uidiv - adds r2, r6, #1 + add r2, fp, #1 uxth r2, r2 mov r1, r0 movs r0, #0 bl FlashPageProgMsbFFData - ldr ip, [sp, #20] - b .L3477 -.L3491: - mov r1, r7 - mov r2, r8 - movs r3, #0 - ldr r0, .L3492+12 - bl printk - movs r0, #0 - add sp, sp, #92 - @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3493: + ldr r3, [sp, #24] + ldr ip, [sp, #52] + add r3, r3, #2048 + str r3, [sp, #24] + b .L3512 +.L3543: .align 2 -.L3492: +.L3542: .word .LANCHOR0 - .word .LC144 + .word .LC148 + .word .LC149 + .word .LC150 .word .LANCHOR2 - .word .LC145 + .word .LC151 + .word .LC152 .word 1446522928 - .fnend - .size IDBlockWriteData, .-IDBlockWriteData - .align 1 - .global write_idblock - .thumb - .thumb_func - .type write_idblock, %function -write_idblock: - .fnstart - @ args = 0, pretend = 0, frame = 8 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov fp, r0 - ldr r5, .L3506 - .pad #20 - sub sp, sp, #20 - mov r0, #256000 - mov r8, r1 - mov r9, r2 - ldr r3, [r5, #1788] - ldr r6, [r5, #4] - ldrb r10, [r3, #9] @ zero_extendqisi2 - bl ftl_malloc - mov r7, r0 - cmp r0, #0 - beq .L3503 - addw r4, fp, #511 - lsrs r4, r4, #9 - cmp r4, #255 - bhi .L3496 - add r0, r8, r4, lsl #9 +.L3541: mov r1, r8 - rsb r2, r4, #256 - bl memcpy -.L3496: - adds r4, r4, #128 - movs r3, #5 - cmp r4, #256 - ldr r0, .L3506+4 - mov r1, r9 - mov r2, #4 - it cs - movcs r4, #256 - bl rknand_print_hex - ldrb r2, [r5, #1] @ zero_extendqisi2 - ldr r1, [r8, #512] - ldr r0, .L3506+8 + mov r2, r4 + movs r3, #0 + ldr r0, .L3544 bl printk - ldrb r3, [r5, #1] @ zero_extendqisi2 - ldr r2, [r8, #512] + ldr r0, [r5, #4] + ldr r3, [sp, #8] mov r1, r4 - ldr r0, .L3506+12 - movs r5, #0 + mov r2, r9 + mov r8, #0 + muls r0, r3, r0 + bl IdBlockReadData + mov r0, r9 + mov r1, r6 +.L3520: + mov fp, r0 + mov r10, r1 + ldr r2, [fp] + adds r0, r0, #4 + ldr r3, [r10] + adds r1, r1, #4 cmp r2, r3 - mov r2, fp - it hi - strhi r3, [r8, #512] - mov fp, r5 - bl printk - smulbb r10, r10, r6 - mov r6, r9 - lsls r3, r4, #7 - uxth r10, r10 - str r3, [sp, #8] -.L3502: - ldr r2, .L3506 - ldr r3, [r6] - ldrh r2, [r2, #1890] - cmp r3, r2 - bcs .L3498 - ldr r2, .L3506+16 - ldr r2, [r2, #4004] - cmp r3, r2 - bcc .L3498 - mov r0, r7 + beq .L3517 + mov r0, r9 mov r1, #512 bl __memzero - ldr r0, [r6] - mov r1, r4 - mov r2, r8 - mov r9, #0 - mul r0, r0, r10 - bl IDBlockWriteData - ldr r0, [r6] - mov r1, r4 - mov r2, r7 - mul r0, r0, r10 - bl IdBlockReadData -.L3501: - ldr r2, [r7, r9, lsl #2] - ldr r3, [r8, r9, lsl #2] - cmp r2, r3 - beq .L3499 - stmia sp, {r2, r3} - mov r1, fp - ldr r2, [r6] - mov r3, r9 - ldr r0, .L3506+20 + ldr r3, [fp] + ldr r1, [sp, #12] + ldr r0, .L3544+4 + str r3, [sp] + ldr r3, [r10] + bic r10, r8, #255 + lsl r10, r10, #2 + str r3, [sp, #4] + mov r3, r8 + ldr r2, [r5, #4] bl printk - bic ip, r9, #255 - ldr r0, .L3506+24 + ldr r0, .L3544+8 + add r1, r6, r10 movs r2, #4 - lsl ip, ip, #2 mov r3, #256 - add r1, r8, ip - str ip, [sp, #12] bl rknand_print_hex - mov r3, #256 + add r1, r9, r10 movs r2, #4 - ldr r0, .L3506+28 - ldr ip, [sp, #12] - add r1, r7, ip + mov r3, #256 + ldr r0, .L3544+12 bl rknand_print_hex - mov r0, r7 - mov r1, #512 - bl __memzero - ldr r0, [r6] - movs r1, #4 - mov r2, r7 - mul r0, r0, r10 - bl IDBlockWriteData - ldr r0, .L3506+32 - bl printk + movs r0, #0 + bl flash_boot_enter_slc_mode ldr r3, [sp, #8] - cmp r9, r3 - bcc .L3498 - b .L3500 -.L3499: + ldr r1, [r5, #4] + movs r0, #0 + mov r2, r0 + muls r1, r3, r1 + bl FlashEraseBlock + ldr r3, [sp, #28] + cmp r3, #1 + bls .L3518 + ldr r1, [r5, #4] + movs r0, #0 ldr r3, [sp, #8] - add r9, r9, #1 - cmp r9, r3 - bne .L3501 -.L3500: - adds r5, r5, #1 -.L3498: - add fp, fp, #1 - adds r6, r6, #4 - cmp fp, #5 - bne .L3502 - clz r5, r5 - mov r0, r7 + mov r2, r0 + mla r1, r1, r3, r3 + bl FlashEraseBlock +.L3518: + movs r0, #0 + bl flash_boot_exit_slc_mode + ldr r0, .L3544+16 + ldr r1, [r5, #4] + bl printk + ldr r3, [sp, #32] + cmp r8, r3 + bcc .L3509 + b .L3519 +.L3517: + ldr r3, [sp, #32] + add r8, r8, #1 + cmp r8, r3 + bne .L3520 +.L3519: + ldr r3, [sp, #16] + adds r3, r3, #1 + str r3, [sp, #16] +.L3509: + ldr r3, [sp, #12] + adds r5, r5, #4 + adds r3, r3, #1 + str r3, [sp, #12] + cmp r3, #5 + bne .L3521 + mov r0, r9 bl ftl_free - lsrs r5, r5, #5 - negs r0, r5 - b .L3495 -.L3503: + ldr r3, [sp, #16] + clz r0, r3 + lsrs r0, r0, #5 + negs r0, r0 + b .L3502 +.L3524: mov r0, #-1 -.L3495: - add sp, sp, #20 +.L3502: + add sp, sp, #124 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3507: +.L3545: .align 2 -.L3506: - .word .LANCHOR0 - .word .LC146 - .word .LC147 - .word .LC148 - .word .LANCHOR2 - .word .LC149 - .word .LC150 - .word .LC151 - .word .LC152 +.L3544: + .word .LC153 + .word .LC154 + .word .LC155 + .word .LC156 + .word .LC157 .fnend .size write_idblock, .-write_idblock .align 1 @@ -21603,23 +21956,23 @@ CRC_32: push {r4, lr} .save {r4, lr} add r1, r1, r0 - ldr r4, .L3512 + ldr r4, .L3550 movs r2, #0 -.L3509: +.L3547: cmp r0, r1 - beq .L3511 + beq .L3549 ldrb r3, [r0], #1 @ zero_extendqisi2 eor r3, r3, r2, lsr #24 add r3, r4, r3, lsl #2 - ldr r3, [r3, #3008] + ldr r3, [r3, #3072] eor r2, r3, r2, lsl #8 - b .L3509 -.L3511: + b .L3547 +.L3549: mov r0, r2 pop {r4, pc} -.L3513: +.L3551: .align 2 -.L3512: +.L3550: .word .LANCHOR1 .fnend .size CRC_32, .-CRC_32 @@ -21632,7 +21985,7 @@ rknand_sys_storage_ioctl: .fnstart @ args = 0, pretend = 0, frame = 528 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3619 + ldr r3, .L3660 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} cmp r1, r3 @@ -21640,259 +21993,255 @@ rknand_sys_storage_ioctl: sub sp, sp, #532 mov r4, r1 mov r5, r2 - beq .L3516 - bhi .L3517 + beq .L3554 + bhi .L3555 subw r3, r3, #3461 cmp r1, r3 - beq .L3518 - bhi .L3519 + beq .L3556 + bhi .L3557 subs r3, r3, #125 cmp r1, r3 - beq .L3520 - bhi .L3521 + beq .L3558 + bhi .L3559 subs r3, r3, #237 cmp r1, r3 - bne .L3577 + bne .L3615 bl rknand_dev_flush - b .L3608 -.L3521: - ldr r3, .L3619+4 + b .L3648 +.L3559: + ldr r3, .L3660+4 cmp r1, r3 - beq .L3523 + beq .L3561 adds r3, r3, #1 cmp r1, r3 - beq .L3524 - b .L3577 -.L3519: - ldr r3, .L3619+8 + beq .L3562 + b .L3615 +.L3557: + ldr r3, .L3660+8 cmp r1, r3 - beq .L3525 - bhi .L3526 + beq .L3563 + bhi .L3564 mvn r1, #1960 add r3, r3, r1 cmp r4, r3 - beq .L3527 - b .L3577 -.L3526: - ldr r3, .L3619+12 + beq .L3565 + b .L3615 +.L3564: + ldr r3, .L3660+12 cmp r1, r3 - beq .L3525 + beq .L3563 adds r3, r3, #10 cmp r1, r3 - beq .L3525 - b .L3577 -.L3517: - ldr r3, .L3619+16 + beq .L3563 + b .L3615 +.L3555: + ldr r3, .L3660+16 cmp r1, r3 - beq .L3528 - bhi .L3529 + beq .L3566 + bhi .L3567 subs r3, r3, #78 cmp r1, r3 - beq .L3530 - bcc .L3531 + beq .L3568 + bcc .L3569 adds r3, r3, #21 cmp r1, r3 - beq .L3532 + beq .L3570 adds r3, r3, #56 cmp r1, r3 - beq .L3533 - b .L3577 -.L3529: - ldr r3, .L3619+20 + beq .L3571 + b .L3615 +.L3567: + ldr r3, .L3660+20 cmp r1, r3 mov r6, r3 - beq .L3534 - bhi .L3535 + beq .L3572 + bhi .L3573 mvn r2, #956 add r3, r3, r2 cmp r1, r3 - beq .L3536 + beq .L3574 add r3, r3, #956 cmp r1, r3 - beq .L3537 - b .L3577 -.L3535: - ldr r3, .L3619+24 + beq .L3575 + b .L3615 +.L3573: + ldr r3, .L3660+24 cmp r1, r3 - beq .L3537 + beq .L3575 adds r3, r3, #1 cmp r1, r3 - beq .L3534 - b .L3577 -.L3531: - ldr r0, .L3619+28 + beq .L3572 + b .L3615 +.L3569: + ldr r0, .L3660+28 bl printk mov r0, #4096 bl ftl_malloc mov r4, r0 - cbnz r0, .L3538 -.L3543: + cbnz r0, .L3576 +.L3581: mvn r0, #11 - b .L3515 -.L3538: + b .L3553 +.L3576: mov r1, r5 mov r2, #512 bl rk_copy_from_user - cbnz r0, .L3614 - ldr r0, .L3619+32 + cbnz r0, .L3654 + ldr r0, .L3660+32 ldmia r4, {r1, r2} bl printk ldr r3, [r4, #4] cmp r3, #8 str r3, [sp, #4] - bhi .L3611 + bhi .L3652 bl rknand_device_lock + ldr r1, [sp, #4] mov r2, r4 ldr r0, [r4] - ldr r1, [sp, #4] bl IdBlockReadData bl rknand_device_unlock + ldr r2, [sp, #4] mov r0, r5 mov r1, r4 - ldr r2, [sp, #4] lsls r2, r2, #9 bl rk_copy_to_user cmp r0, #0 - beq .L3607 - ldr r0, .L3619+36 -.L3610: + beq .L3647 + ldr r0, .L3660+36 +.L3650: bl printk -.L3611: +.L3652: mov r0, r4 -.L3612: +.L3653: bl ftl_free -.L3613: +.L3651: mvn r0, #13 - b .L3515 -.L3530: - ldr r0, .L3619+40 + b .L3553 +.L3568: + ldr r0, .L3660+40 bl printk mov r0, #4096 bl ftl_malloc mov r4, r0 cmp r0, #0 - beq .L3543 + beq .L3581 mov r1, r5 mov r2, #4096 bl rk_copy_from_user - cbz r0, .L3544 -.L3614: - ldr r0, .L3619+44 - b .L3610 -.L3544: - ldr r5, .L3619+48 - ldr r0, .L3619+52 + cbz r0, .L3582 +.L3654: + ldr r0, .L3660+44 + b .L3650 +.L3582: + ldr r5, .L3660+48 + ldr r0, .L3660+52 ldmia r4, {r1, r2} bl printk - ldr r3, [r5, #-36] + ldr r3, [r5, #-32] mov r6, r5 - cbnz r3, .L3545 + cbnz r3, .L3583 mov r0, #260096 bl ftl_malloc - str r0, [r5, #-36] + str r0, [r5, #-32] cmp r0, #0 - beq .L3611 -.L3545: + beq .L3652 + mov r1, #260096 + bl __memzero +.L3583: ldr r2, [r4, #4] movw r3, #4088 cmp r2, r3 - bhi .L3611 + bhi .L3652 ldr r3, [r4] cmp r3, #251904 - bhi .L3611 - ldr r0, [r6, #-36] + bhi .L3652 + ldr r0, [r6, #-32] add r1, r4, #8 add r0, r0, r3 bl memcpy -.L3607: +.L3647: mov r0, r4 bl ftl_free -.L3608: +.L3648: movs r4, #0 - b .L3542 -.L3533: - ldr r0, .L3619+56 + b .L3580 +.L3571: + ldr r0, .L3660+56 bl printk mov r0, #4096 bl ftl_malloc mov r6, r0 cmp r0, #0 - beq .L3543 + beq .L3581 mov r1, r5 movs r2, #28 bl rk_copy_from_user - cbz r0, .L3547 - ldr r0, .L3619+44 + cbz r0, .L3586 + ldr r0, .L3660+44 bl printk - b .L3548 -.L3547: + b .L3587 +.L3586: ldmia r6, {r1, r2} - ldr r0, .L3619+60 + ldr r0, .L3660+60 bl printk ldr r1, [r6] cmp r1, #256000 - bhi .L3548 - ldr r5, .L3619+48 - ldr r0, [r5, #-36] - cbz r0, .L3548 + bhi .L3587 + ldr r5, .L3660+48 + ldr r0, [r5, #-32] + cbz r0, .L3587 bl CRC_32 ldr r3, [r6, #4] cmp r3, r0 - beq .L3550 + beq .L3589 mov r0, r6 bl ftl_free - b .L3578 -.L3550: + b .L3616 +.L3589: bl rknand_device_lock - ldr r1, [r5, #-36] + ldr r1, [r5, #-32] add r2, r6, #8 ldr r0, [r6] bl write_idblock movs r4, #0 bl rknand_device_unlock - ldr r0, [r5, #-36] + ldr r0, [r5, #-32] bl ftl_free - str r4, [r5, #-36] + str r4, [r5, #-32] mov r0, r6 - b .L3555 -.L3548: + b .L3593 +.L3587: mov r0, r6 - b .L3612 -.L3532: - ldr r0, .L3619+64 + b .L3653 +.L3570: + ldr r0, .L3660+64 bl printk mov r0, #4096 bl ftl_malloc mov r6, r0 cmp r0, #0 - beq .L3543 - bl ReadFlashInfo + beq .L3581 + bl ftl_read_flash_info mov r0, r5 mov r1, r6 movs r2, #11 - b .L3617 -.L3516: - ldr r0, .L3619+68 + b .L3658 +.L3554: + ldr r0, .L3660+68 bl printk - bl rknand_device_lock - bl FtlReInitForSDUpdata - mov r4, r0 - bl rknand_device_unlock - cmp r4, #0 - bne .L3613 bl nand_blk_add_whole_disk mov r0, #4096 bl ftl_malloc mov r6, r0 cmp r0, #0 - beq .L3543 + beq .L3581 bl rknand_device_lock - mov r1, r4 + movs r1, #0 movs r2, #64 mov r0, r6 bl FlashReadFacBbtData bl rknand_device_unlock - ldr r0, .L3619+72 + ldr r0, .L3660+72 mov r1, r6 movs r2, #4 movs r3, #8 @@ -21900,26 +22249,30 @@ rknand_sys_storage_ioctl: mov r0, r5 mov r1, r6 movs r2, #64 - b .L3617 -.L3528: - ldr r0, .L3619+76 + b .L3658 +.L3566: + ldr r0, .L3660+76 bl printk - ldr r3, .L3619+48 - mov r0, r5 + ldr r3, .L3660+48 + add r1, sp, #4 movs r2, #4 - ldr r3, [r3, #-32] + mov r0, r5 + ldr r3, [r3, #-28] ldr r3, [r3, #20] - add r1, sp, #4 str r3, [sp, #4] - b .L3603 -.L3536: - ldr r0, .L3619+80 +.L3642: + bl rk_copy_to_user + cmp r0, #0 + bne .L3651 + b .L3648 +.L3574: + ldr r0, .L3660+80 bl printk mov r0, #4096 bl ftl_malloc mov r6, r0 cmp r0, #0 - beq .L3543 + beq .L3581 bl rknand_device_lock movs r1, #2 mov r2, r6 @@ -21929,31 +22282,31 @@ rknand_sys_storage_ioctl: mov r2, #1024 mov r0, r5 mov r1, r6 -.L3617: +.L3658: bl rk_copy_to_user mov r4, r0 mov r0, r6 cmp r4, #0 - bne .L3612 -.L3555: + bne .L3653 +.L3593: bl ftl_free - b .L3542 -.L3520: - ldr r0, .L3619+84 + b .L3580 +.L3558: + ldr r0, .L3660+84 bl printk + add r0, sp, #8 mov r1, r5 mov r2, #520 - add r0, sp, #8 bl rk_copy_from_user mov r4, r0 - cbz r0, .L3556 -.L3561: - ldr r0, .L3619+44 + cbz r0, .L3594 +.L3599: + ldr r0, .L3660+44 bl printk - b .L3613 -.L3620: + b .L3651 +.L3661: .align 2 -.L3619: +.L3660: .word 1074033155 .word 1074029570 .word 1074031656 @@ -21961,88 +22314,80 @@ rknand_sys_storage_ioctl: .word 1074033235 .word 1074034193 .word 1074034194 - .word .LC153 - .word .LC155 - .word .LC156 - .word .LC157 - .word .LC154 - .word .LANCHOR4 .word .LC158 - .word .LC159 .word .LC160 .word .LC161 .word .LC162 + .word .LC159 + .word .LANCHOR4 .word .LC163 .word .LC164 .word .LC165 .word .LC166 -.L3556: + .word .LC167 + .word .LC168 + .word .LC169 + .word .LC170 + .word .LC171 +.L3594: ldr r2, [sp, #8] - ldr r3, .L3621 + ldr r3, .L3662 cmp r2, r3 - beq .L3557 -.L3558: + beq .L3595 +.L3596: mov r4, #-1 - b .L3542 -.L3557: + b .L3580 +.L3595: ldr r3, [sp, #12] cmp r3, #512 - bhi .L3558 - ldr r6, .L3621+4 + bhi .L3596 + ldr r6, .L3662+4 mov r2, #512 add r0, sp, #8 - ldr r1, [r6, #-32] + ldr r1, [r6, #-28] bl memcpy - ldr r2, [r6, #-28] - ldr r3, .L3621+8 + ldr r2, [r6, #-24] + ldr r3, .L3662+8 cmp r2, r3 - beq .L3559 + beq .L3597 add r0, sp, #72 movs r1, #128 str r4, [sp, #16] str r4, [sp, #20] bl __memzero -.L3559: +.L3597: add r0, sp, #264 mov r1, #256 movs r3, #0 str r3, [sp, #24] bl __memzero -.L3604: - add r1, sp, #8 - mov r2, #520 - mov r0, r5 -.L3603: - bl rk_copy_to_user - cmp r0, #0 - bne .L3613 - b .L3608 -.L3523: - ldr r0, .L3621+12 + b .L3656 +.L3561: + ldr r0, .L3662+12 bl printk + add r0, sp, #8 mov r1, r5 mov r2, #520 - add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3561 + bne .L3599 ldr r2, [sp, #8] - ldr r3, .L3621 + ldr r3, .L3662 cmp r2, r3 - bne .L3558 + bne .L3596 ldr r3, [sp, #12] cmp r3, #512 - bhi .L3558 - ldr r2, .L3621+4 - ldr r3, .L3621+8 - ldr r1, [r2, #-28] + bhi .L3596 + ldr r2, .L3662+4 + ldr r3, .L3662+8 + ldr r1, [r2, #-24] cmp r1, r3 - bne .L3578 + bne .L3616 ldr r3, [sp, #20] subs r1, r3, #1 cmp r1, #127 - bhi .L3579 - ldr r4, [r2, #-32] + bhi .L3617 + ldr r4, [r2, #-28] add r1, sp, #72 add r0, r4, #64 str r3, [r4, #12] @@ -22050,62 +22395,62 @@ rknand_sys_storage_ioctl: bl memcpy movs r0, #1 mov r1, r4 - b .L3609 -.L3527: - ldr r0, .L3621+16 + b .L3649 +.L3565: + ldr r0, .L3662+16 bl printk + add r0, sp, #8 mov r1, r5 mov r2, #520 - add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3561 + bne .L3599 ldr r2, [sp, #8] - ldr r3, .L3621+20 + ldr r3, .L3662+20 cmp r2, r3 - bne .L3558 + bne .L3596 ldr r3, [sp, #12] cmp r3, #512 - bhi .L3558 - ldr r5, .L3621+4 - ldr r3, [r5, #-24] - cbnz r3, .L3562 -.L3565: - movs r0, #0 - b .L3515 -.L3562: + bhi .L3596 + ldr r5, .L3662+4 ldr r3, [r5, #-20] - ldr r2, .L3621+24 + cbnz r3, .L3600 +.L3603: + movs r0, #0 + b .L3553 +.L3600: + ldr r3, [r5, #-16] + ldr r2, .L3662+24 ldr r1, [r3] cmp r1, r2 - beq .L3563 + beq .L3601 str r2, [r3] mov r2, #504 - ldr r3, [r5, #-20] + ldr r3, [r5, #-16] str r2, [r3, #4] movs r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L3563: - ldr r1, [r5, #-20] +.L3601: + ldr r1, [r5, #-16] movs r4, #0 mov r0, r4 str r4, [r1, #16] bl StorageSysDataStore - ldr r3, [r5, #-32] - ldr r2, .L3621 + ldr r3, [r5, #-28] + ldr r2, .L3662 ldr r1, [r3] cmp r1, r2 it ne strne r2, [r3] - ldr r0, [r5, #-32] + ldr r0, [r5, #-28] itt ne movne r2, #504 - ldrne r3, .L3621+4 + ldrne r3, .L3662+4 mov r1, #128 add r0, r0, #64 itt ne - ldrne r3, [r3, #-32] + ldrne r3, [r3, #-28] strne r4, [r3, #8] mov r4, #0 it ne @@ -22113,41 +22458,41 @@ rknand_sys_storage_ioctl: str r4, [r0, #-52] bl __memzero movs r0, #1 - ldr r1, [r5, #-32] + ldr r1, [r5, #-28] bl StorageSysDataStore + str r4, [r5, #-20] str r4, [r5, #-24] - str r4, [r5, #-28] - b .L3542 -.L3518: - ldr r0, .L3621+28 + b .L3580 +.L3556: + ldr r0, .L3662+28 bl printk + add r0, sp, #8 mov r1, r5 mov r2, #520 - add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3561 + bne .L3599 ldr r2, [sp, #8] - ldr r3, .L3621+32 + ldr r3, .L3662+32 cmp r2, r3 - bne .L3558 + bne .L3596 ldr r3, [sp, #12] cmp r3, #512 - bhi .L3558 - ldr r5, .L3621+4 - ldr r3, [r5, #-24] - cmp r3, #1 - beq .L3565 + bhi .L3596 + ldr r5, .L3662+4 ldr r3, [r5, #-20] - ldr r2, .L3621+24 + cmp r3, #1 + beq .L3603 + ldr r3, [r5, #-16] + ldr r2, .L3662+24 ldr r1, [r3] cmp r1, r2 it ne strne r2, [r3] - ldr r1, [r5, #-20] + ldr r1, [r5, #-16] itttt ne movne r2, #504 - ldrne r3, [r5, #-20] + ldrne r3, [r5, #-16] strne r2, [r3, #4] strne r0, [r3, #8] it ne @@ -22156,80 +22501,80 @@ rknand_sys_storage_ioctl: movs r0, #0 str r3, [r1, #16] bl StorageSysDataStore - ldr r3, [r5, #-32] - ldr r2, .L3621 + ldr r3, [r5, #-28] + ldr r2, .L3662 ldr r1, [r3] cmp r1, r2 - beq .L3567 + beq .L3605 str r2, [r3] mov r2, #504 - ldr r3, .L3621+4 - ldr r3, [r3, #-32] + ldr r3, .L3662+4 + ldr r3, [r3, #-28] str r2, [r3, #4] movs r2, #0 str r2, [r3, #8] -.L3567: - ldr r0, [r5, #-32] +.L3605: + ldr r0, [r5, #-28] movs r1, #128 movs r4, #0 adds r0, r0, #64 str r4, [r0, #-52] bl __memzero movs r0, #1 - ldr r1, [r5, #-32] + ldr r1, [r5, #-28] bl StorageSysDataStore movs r3, #1 - str r3, [r5, #-24] - b .L3542 -.L3524: - ldr r0, .L3621+36 + str r3, [r5, #-20] + b .L3580 +.L3562: + ldr r0, .L3662+36 bl printk + add r0, sp, #8 mov r1, r5 mov r2, #520 - add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3561 + bne .L3599 ldr r2, [sp, #8] - ldr r3, .L3621+40 + ldr r3, .L3662+40 cmp r2, r3 - bne .L3558 + bne .L3596 ldr r2, [sp, #12] cmp r2, #512 - bhi .L3558 + bhi .L3596 add r0, sp, #16 - ldr r1, .L3621+44 - b .L3605 -.L3525: - ldr r0, .L3621+48 + ldr r1, .L3662+44 + b .L3655 +.L3563: + ldr r0, .L3662+48 cmp r4, r0 mov r7, r0 - bne .L3568 - ldr r0, .L3621+52 - b .L3606 -.L3568: - ldr r3, .L3621+56 + bne .L3606 + ldr r0, .L3662+52 + b .L3645 +.L3606: + ldr r3, .L3662+56 cmp r4, r3 ite eq - ldreq r0, .L3621+60 - ldrne r0, .L3621+64 -.L3606: + ldreq r0, .L3662+60 + ldrne r0, .L3662+64 +.L3645: bl printk + add r0, sp, #8 mov r1, r5 mov r2, #520 - add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3561 + bne .L3599 ldr r2, [sp, #8] - ldr r3, .L3621+68 + ldr r3, .L3662+68 cmp r2, r3 - bne .L3613 - ldr r3, .L3621+56 - ldr r6, .L3621+4 + bne .L3651 + ldr r3, .L3662+56 + ldr r6, .L3662+4 cmp r4, r3 - bne .L3571 - ldr r3, [r6, #-32] + bne .L3609 + ldr r3, [r6, #-28] mov r0, r5 add r1, sp, #8 movs r2, #16 @@ -22238,29 +22583,29 @@ rknand_sys_storage_ioctl: strb r3, [sp, #16] bl rk_copy_to_user cmp r0, #0 - beq .L3515 - b .L3613 -.L3571: - ldr r3, [r6, #496] + beq .L3553 + b .L3651 +.L3609: + ldr r3, [r6, #500] cmp r3, #10 - bhi .L3613 - ldr r1, [r6, #-32] + bhi .L3651 + ldr r1, [r6, #-28] ldr r3, [sp, #12] ldr r2, [r1, #24] cmp r2, r3 - beq .L3572 - cbz r2, .L3572 + beq .L3610 + cbz r2, .L3610 mov r1, r3 - ldr r0, .L3621+72 + ldr r0, .L3662+72 bl printk - ldr r3, [r6, #496] + ldr r3, [r6, #500] adds r3, r3, #1 - str r3, [r6, #496] - b .L3613 -.L3572: + str r3, [r6, #500] + b .L3651 +.L3610: movs r2, #0 cmp r4, r7 - str r2, [r6, #496] + str r2, [r6, #500] mov r0, #1 itet eq moveq r3, r2 @@ -22270,120 +22615,124 @@ rknand_sys_storage_ioctl: str r2, [r1, #20] bl StorageSysDataStore adds r0, r0, #1 - bne .L3608 + bne .L3648 mvn r4, #1 - b .L3542 -.L3622: + b .L3580 +.L3663: .align 2 -.L3621: +.L3662: .word 1263358532 .word .LANCHOR4 .word -1067903959 - .word .LC167 - .word .LC168 + .word .LC172 + .word .LC173 .word 1112753220 .word 1146313043 - .word .LC169 + .word .LC174 .word 1112755781 - .word .LC170 + .word .LC175 .word 1094995539 - .word .LANCHOR4-16 + .word .LANCHOR4-12 .word 1074031666 - .word .LC171 + .word .LC176 .word 1074031676 - .word .LC172 - .word .LC173 + .word .LC177 + .word .LC178 .word 1280262987 - .word .LC174 -.L3537: - ldr r0, .L3623 + .word .LC179 +.L3575: + ldr r0, .L3664 bl printk + add r0, sp, #8 mov r1, r5 mov r2, #520 - add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3561 + bne .L3599 ldr r2, [sp, #8] - ldr r3, .L3623+4 + ldr r3, .L3664+4 cmp r2, r3 - bne .L3558 + bne .L3596 ldr r2, [sp, #12] cmp r2, #504 - bhi .L3558 - ldr r3, .L3623+8 + bhi .L3596 + ldr r3, .L3664+8 add r0, sp, #16 cmp r4, r3 - ldr r3, .L3623+12 + ldr r3, .L3664+12 ite eq - ldreq r1, [r3, #500] - ldrne r1, [r3, #504] + ldreq r1, [r3, #504] + ldrne r1, [r3, #508] adds r1, r1, #8 -.L3605: +.L3655: bl memcpy - b .L3604 -.L3534: - ldr r0, .L3623+16 +.L3656: + mov r0, r5 + add r1, sp, #8 + mov r2, #520 + b .L3642 +.L3572: + ldr r0, .L3664+16 bl printk + add r0, sp, #8 mov r1, r5 mov r2, #520 - add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3561 + bne .L3599 ldr r2, [sp, #8] - ldr r3, .L3623+4 + ldr r3, .L3664+4 cmp r2, r3 - bne .L3558 + bne .L3596 ldr r2, [sp, #12] cmp r2, #504 - bhi .L3558 + bhi .L3596 cmp r4, r6 add r2, r2, #8 - ldr r4, .L3623+12 - bne .L3576 + ldr r4, .L3664+12 + bne .L3614 add r1, sp, #8 - ldr r0, [r4, #500] + ldr r0, [r4, #504] bl memcpy movs r0, #2 - ldr r1, [r4, #500] - b .L3609 -.L3576: + ldr r1, [r4, #504] + b .L3649 +.L3614: add r1, sp, #8 - ldr r0, [r4, #504] + ldr r0, [r4, #508] bl memcpy - ldr r1, [r4, #504] + ldr r1, [r4, #508] movs r0, #3 -.L3609: +.L3649: bl StorageSysDataStore mov r4, r0 -.L3542: - ldr r0, .L3623+20 +.L3580: + ldr r0, .L3664+20 mov r1, r4 bl printk mov r0, r4 - b .L3515 -.L3577: + b .L3553 +.L3615: mvn r0, #21 - b .L3515 -.L3578: + b .L3553 +.L3616: mvn r0, #1 - b .L3515 -.L3579: + b .L3553 +.L3617: mvn r0, #2 -.L3515: +.L3553: add sp, sp, #532 @ sp needed pop {r4, r5, r6, r7, pc} -.L3624: +.L3665: .align 2 -.L3623: - .word .LC175 +.L3664: + .word .LC180 .word 1145980246 .word 1074034192 .word .LANCHOR4 - .word .LC176 - .word .LC177 + .word .LC181 + .word .LC182 .fnend .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl .align 1 @@ -22398,55 +22747,55 @@ rk_ftl_storage_sys_init: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r2, #512 - ldr r4, .L3634 + ldr r4, .L3675 movs r5, #0 - sub r0, r4, #16 - ldr r1, [r4, #-52] - str r5, [r4, #-36] + sub r0, r4, #12 + ldr r1, [r4, #-48] + str r5, [r4, #-32] add r3, r1, #512 - str r3, [r4, #-32] - str r1, [r4, #-20] + str r3, [r4, #-28] + str r1, [r4, #-16] add r3, r1, #1024 add r1, r1, #1536 - str r3, [r4, #500] - str r1, [r4, #504] + str r3, [r4, #504] + str r1, [r4, #508] bl ftl_memcpy - ldr r6, [r4, #-20] - str r5, [r4, #-28] - str r5, [r4, #496] + ldr r6, [r4, #-16] + str r5, [r4, #-24] + str r5, [r4, #500] ldr r3, [r6, #16] ldr r7, [r6, #508] - str r3, [r4, #-24] - cbz r7, .L3626 + str r3, [r4, #-20] + cbz r7, .L3667 mov r0, r6 mov r1, #508 bl JSHash cmp r7, r0 - beq .L3626 + beq .L3667 str r5, [r6, #16] - ldr r0, .L3634+4 - str r5, [r4, #-24] + ldr r0, .L3675+4 + str r5, [r4, #-20] bl printk -.L3626: - ldr r3, [r4, #-24] - cbz r3, .L3627 - ldr r2, .L3634+8 - ldr r3, .L3634 - str r2, [r3, #-28] -.L3627: - ldr r1, [r4, #500] +.L3667: + ldr r3, [r4, #-20] + cbz r3, .L3668 + ldr r2, .L3675+8 + ldr r3, .L3675 + str r2, [r3, #-24] +.L3668: + ldr r1, [r4, #504] movs r0, #2 bl StorageSysDataLoad - ldr r1, [r4, #504] + ldr r1, [r4, #508] movs r0, #3 bl StorageSysDataLoad pop {r3, r4, r5, r6, r7, lr} b rknand_sys_storage_init -.L3635: +.L3676: .align 2 -.L3634: +.L3675: .word .LANCHOR4 - .word .LC178 + .word .LC183 .word -1067903959 .fnend .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init @@ -22473,77 +22822,66 @@ rk_ftl_vendor_storage_init: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} + push {r3, r4, r5, r6, r7, r8, r9, lr} + .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r0, #65536 - ldr r1, .L3647 - movs r2, #4 - bl kmalloc_order - ldr r5, .L3647+4 - str r0, [r5, #508] + bl ftl_malloc + ldr r5, .L3687 + str r0, [r5, #512] cmp r0, #0 - beq .L3643 + beq .L3684 movs r7, #0 - ldr r9, .L3647+12 - mov r10, r5 + ldr r8, .L3687+8 + mov r9, r5 mov r4, r7 mov r6, r7 -.L3641: - ldr r8, [r5, #508] - bl rknand_device_lock - adds r0, r6, #2 +.L3682: + lsls r0, r6, #7 movs r1, #128 - mov r2, r8 - lsls r0, r0, #7 - bl FtlVendorPartRead - mov r8, r0 - bl rknand_device_unlock - cmp r8, #0 - bne .L3639 - ldr r3, [r10, #508] - ldr r0, .L3647+8 + ldr r2, [r5, #512] + bl FlashBootVendorRead + cmp r0, #0 + bne .L3680 + ldr r3, [r9, #512] + ldr r0, .L3687+4 add r2, r3, #65280 adds r2, r2, #252 ldr r1, [r3] ldr r3, [r3, #4] ldr r2, [r2] bl printk - ldr r8, [r10, #508] - ldr r3, [r8] - cmp r3, r9 - bne .L3640 - add r3, r8, #65280 - ldr r2, [r8, #4] + ldr r2, [r9, #512] + ldr r3, [r2] + cmp r3, r8 + bne .L3681 + add r3, r2, #65280 + ldr r1, [r2, #4] adds r3, r3, #252 ldr r3, [r3] - cmp r3, r2 - bne .L3640 + cmp r3, r1 + bne .L3681 cmp r4, r3 itt cc movcc r7, r6 movcc r4, r3 -.L3640: - cbnz r6, .L3646 +.L3681: + cbnz r6, .L3686 movs r6, #1 - b .L3641 -.L3646: - cbz r4, .L3642 - bl rknand_device_lock + b .L3682 +.L3686: + cbz r4, .L3683 lsls r0, r7, #7 - add r0, r0, #256 movs r1, #128 - mov r2, r8 - bl FtlVendorPartRead - mov r4, r0 - bl rknand_device_unlock - cbz r4, .L3645 - b .L3639 -.L3642: - mov r0, r8 + bl FlashBootVendorRead + cbnz r0, .L3680 + pop {r3, r4, r5, r6, r7, r8, r9, pc} +.L3683: + mov r0, r2 mov r1, #65536 bl __memzero - ldr r3, [r5, #508] - ldr r2, .L3647+12 + ldr r3, [r5, #512] + ldr r2, .L3687+8 + mov r0, r4 str r6, [r3, #4] str r2, [r3] movw r2, #65532 @@ -22551,25 +22889,22 @@ rk_ftl_vendor_storage_init: movw r2, #64504 strh r4, [r3, #12] @ movhi strh r2, [r3, #14] @ movhi -.L3645: - mov r0, r4 - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L3639: - ldr r0, [r5, #508] + pop {r3, r4, r5, r6, r7, r8, r9, pc} +.L3680: + ldr r0, [r5, #512] bl kfree movs r3, #0 mov r0, #-1 - str r3, [r5, #508] - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L3643: + str r3, [r5, #512] + pop {r3, r4, r5, r6, r7, r8, r9, pc} +.L3684: mvn r0, #11 - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L3648: + pop {r3, r4, r5, r6, r7, r8, r9, pc} +.L3688: .align 2 -.L3647: - .word 37748929 +.L3687: .word .LANCHOR4 - .word .LC179 + .word .LC184 .word 1380668996 .fnend .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init @@ -22584,18 +22919,18 @@ rk_ftl_vendor_read: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - ldr r3, .L3655 - ldr r5, [r3, #508] - cbz r5, .L3654 + ldr r3, .L3695 + ldr r5, [r3, #512] + cbz r5, .L3694 ldrh r7, [r5, #10] movs r3, #0 -.L3651: +.L3691: cmp r3, r7 - bcs .L3654 + bcs .L3694 add r6, r5, r3, lsl #3 ldrh r4, [r6, #16] cmp r4, r0 - bne .L3652 + bne .L3692 ldrh r3, [r6, #20] mov r0, r1 cmp r2, r3 @@ -22608,15 +22943,15 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 pop {r3, r4, r5, r6, r7, pc} -.L3652: +.L3692: adds r3, r3, #1 - b .L3651 -.L3654: + b .L3691 +.L3694: mov r0, #-1 pop {r3, r4, r5, r6, r7, pc} -.L3656: +.L3696: .align 2 -.L3655: +.L3695: .word .LANCHOR4 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read @@ -22632,49 +22967,49 @@ rk_ftl_vendor_write: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r2 - ldr r2, .L3679 + ldr r2, .L3719 .pad #28 sub sp, sp, #28 mov ip, r0 mov r3, r1 - ldr r4, [r2, #508] + ldr r4, [r2, #512] cmp r4, #0 - beq .L3672 - add r6, r9, #63 + beq .L3712 + add r7, r9, #63 ldrh r1, [r4, #8] ldrh r2, [r4, #10] - bic r6, r6, #63 - movs r7, #0 + bic r7, r7, #63 + movs r6, #0 str r1, [sp, #4] -.L3659: - cmp r7, r2 - bcs .L3677 - add r5, r4, r7, lsl #3 +.L3699: + cmp r6, r2 + bcs .L3717 + add r5, r4, r6, lsl #3 ldrh r1, [r5, #16] cmp r1, ip - bne .L3660 + bne .L3700 ldrh r1, [r5, #20] add fp, r4, #1024 adds r1, r1, #63 bic r1, r1, #63 str r1, [sp, #8] cmp r9, r1 - bls .L3661 + bls .L3701 ldrh r1, [r4, #14] - cmp r1, r6 - bcc .L3672 + cmp r1, r7 + bcc .L3712 ldrh r8, [r5, #18] subs r2, r2, #1 str r2, [sp, #12] -.L3662: +.L3702: ldr r2, [sp, #12] adds r5, r5, #8 - cmp r7, r2 - bcs .L3678 + cmp r6, r2 + bcs .L3718 ldrh r2, [r5, #16] add r0, fp, r8 ldrh r1, [r5, #18] - adds r7, r7, #1 + adds r6, r6, #1 strh r8, [r5, #10] @ movhi strh r2, [r5, #8] @ movhi add r1, r1, fp @@ -22689,49 +23024,49 @@ rk_ftl_vendor_write: bl memcpy ldr r3, [sp, #20] ldr ip, [sp, #16] - b .L3662 -.L3678: - add r7, r4, r7, lsl #3 - uxth r5, r8 - add r0, fp, r5 + b .L3702 +.L3718: + add r6, r4, r6, lsl #3 + uxth r8, r8 + add r0, fp, r8 mov r1, r3 - strh r5, [r7, #18] @ movhi + strh r8, [r6, #18] @ movhi mov r2, r9 - strh ip, [r7, #16] @ movhi - uxth r6, r6 - strh r9, [r7, #20] @ movhi - add r5, r5, r6 + strh ip, [r6, #16] @ movhi + uxth r7, r7 + strh r9, [r6, #20] @ movhi + add r8, r8, r7 bl memcpy - ldrh r2, [r4, #14] - strh r5, [r4, #12] @ movhi + ldrh r5, [r4, #14] ldr r3, [sp, #8] - add r3, r3, r2 - subs r6, r3, r6 - strh r6, [r4, #14] @ movhi - b .L3676 -.L3661: + strh r8, [r4, #12] @ movhi + add r3, r3, r5 + subs r7, r3, r7 + strh r7, [r4, #14] @ movhi + b .L3716 +.L3701: ldrh r0, [r5, #18] mov r1, r3 mov r2, r9 add r0, r0, fp bl memcpy strh r9, [r5, #20] @ movhi - b .L3676 -.L3660: - adds r7, r7, #1 - b .L3659 -.L3677: + b .L3716 +.L3700: + adds r6, r6, #1 + b .L3699 +.L3717: ldrh r1, [r4, #14] - cmp r1, r6 - bcc .L3672 + cmp r1, r7 + bcc .L3712 add r2, r4, r2, lsl #3 - uxth r6, r6 - subs r1, r1, r6 + uxth r7, r7 + subs r1, r1, r7 strh ip, [r2, #16] @ movhi ldrh r0, [r4, #12] strh r9, [r2, #20] @ movhi strh r0, [r2, #18] @ movhi - add r0, r0, r6 + add r0, r0, r7 strh r1, [r4, #14] @ movhi mov r1, r3 strh r0, [r4, #12] @ movhi @@ -22743,12 +23078,14 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] adds r3, r3, #1 strh r3, [r4, #10] @ movhi -.L3676: +.L3716: ldr r3, [r4, #4] movw r2, #65532 + movs r1, #128 adds r3, r3, #1 str r3, [r4, #4] str r3, [r4, r2] + mov r2, r4 ldrh r3, [r4, #8] adds r3, r3, #1 uxth r3, r3 @@ -22756,25 +23093,20 @@ rk_ftl_vendor_write: it hi movhi r3, #0 strh r3, [r4, #8] @ movhi - bl rknand_device_lock - movs r2, #128 - movs r0, #16 ldr r3, [sp, #4] - lsls r1, r3, #7 - mov r3, r4 - bl FtlWrite - bl rknand_device_unlock + lsls r0, r3, #7 + bl FlashBootVendorWrite movs r0, #0 - b .L3658 -.L3672: + b .L3698 +.L3712: mov r0, #-1 -.L3658: +.L3698: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3680: +.L3720: .align 2 -.L3679: +.L3719: .word .LANCHOR4 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write @@ -22787,44 +23119,42 @@ rk_ftl_vendor_storage_ioctl: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3697 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} + mov r0, #4096 mov r6, r1 - ldr r0, [r3, #48] mov r5, r2 - ldr r1, .L3697+4 - bl kmem_cache_alloc + bl ftl_malloc mov r4, r0 cmp r0, #0 - beq .L3690 - ldr r3, .L3697+8 + beq .L3730 + ldr r3, .L3737 cmp r6, r3 - beq .L3684 + beq .L3724 adds r3, r3, #1 cmp r6, r3 - beq .L3685 - b .L3696 -.L3684: + beq .L3725 + b .L3736 +.L3724: mov r1, r5 movs r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3696 + bne .L3736 ldr r2, [r4] - ldr r3, .L3697+12 + ldr r3, .L3737+4 cmp r2, r3 - beq .L3687 -.L3688: + beq .L3727 +.L3728: mov r5, #-1 - b .L3683 -.L3687: + b .L3723 +.L3727: ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read adds r3, r0, #1 - beq .L3688 + beq .L3728 uxth r2, r0 strh r0, [r4, #6] @ movhi mov r1, r4 @@ -22835,47 +23165,45 @@ rk_ftl_vendor_storage_ioctl: ite eq moveq r5, #0 mvnne r5, #13 - b .L3683 -.L3685: + b .L3723 +.L3725: mov r1, r5 movs r2, #8 bl rk_copy_from_user - cbnz r0, .L3696 + cbnz r0, .L3736 ldr r2, [r4] - ldr r3, .L3697+12 + ldr r3, .L3737+4 cmp r2, r3 - bne .L3688 + bne .L3728 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L3688 + bhi .L3728 mov r0, r4 mov r1, r5 adds r2, r2, #8 bl rk_copy_from_user - cbnz r0, .L3696 + cbnz r0, .L3736 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write mov r5, r0 - b .L3683 -.L3696: + b .L3723 +.L3736: mvn r5, #13 -.L3683: +.L3723: mov r0, r4 bl kfree - b .L3682 -.L3690: + b .L3722 +.L3730: mov r5, #-1 -.L3682: +.L3722: mov r0, r5 pop {r4, r5, r6, pc} -.L3698: +.L3738: .align 2 -.L3697: - .word kmalloc_caches - .word 37748928 +.L3737: .word 1074034177 .word 1448232273 .fnend @@ -22910,7 +23238,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 @@ -23123,9 +23450,9 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 2 .LANCHOR3 = . + 0 - .type __func__.21081, %object - .size __func__.21081, 11 -__func__.21081: + .type __func__.17344, %object + .size __func__.17344, 11 +__func__.17344: .ascii "FtlMemInit\000" .LC0: .byte 60 @@ -23133,14 +23460,14 @@ __func__.21081: .byte 24 .byte 16 .space 1 - .type __func__.22011, %object - .size __func__.22011, 21 -__func__.22011: + .type __func__.18293, %object + .size __func__.18293, 21 +__func__.18293: .ascii "FtlVpcCheckAndModify\000" .space 3 - .type __func__.21152, %object - .size __func__.21152, 8 -__func__.21152: + .type __func__.17417, %object + .size __func__.17417, 8 +__func__.17417: .ascii "FtlInit\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -23151,360 +23478,371 @@ __func__.21152: .LC3: .ascii "remove_from_free_sys_Queue %x\012\000" .LC4: - .ascii "FLASH INFO:\012\000" + .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000" .LC5: - .ascii "FLASH ID: %x\012\000" + .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" + .ascii "\000" .LC6: - .ascii "Device Capacity: %d MB\012\000" + .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" .LC7: - .ascii "FMWAIT: %x %x %x %x\012\000" + .ascii "FLASH INFO:\012\000" .LC8: - .ascii "FTL INFO:\012\000" + .ascii "FLASH ID: %x\012\000" .LC9: - .ascii "g_MaxLpn = 0x%x\012\000" + .ascii "Device Capacity: %d MB\012\000" .LC10: - .ascii "g_VaildLpn = 0x%x\012\000" + .ascii "FMWAIT: %x %x %x %x\012\000" .LC11: - .ascii "read_page_count = 0x%x\012\000" + .ascii "FTL INFO:\012\000" .LC12: - .ascii "discard_page_count = 0x%x\012\000" + .ascii "g_MaxLpn = 0x%x\012\000" .LC13: - .ascii "write_page_count = 0x%x\012\000" + .ascii "g_VaildLpn = 0x%x\012\000" .LC14: - .ascii "cache_write_count = 0x%x\012\000" + .ascii "read_page_count = 0x%x\012\000" .LC15: - .ascii "l2p_write_count = 0x%x\012\000" + .ascii "discard_page_count = 0x%x\012\000" .LC16: - .ascii "gc_page_count = 0x%x\012\000" + .ascii "write_page_count = 0x%x\012\000" .LC17: - .ascii "totle_write = %d MB\012\000" + .ascii "cache_write_count = 0x%x\012\000" .LC18: - .ascii "totle_read = %d MB\012\000" + .ascii "l2p_write_count = 0x%x\012\000" .LC19: - .ascii "GSV = 0x%x\012\000" + .ascii "gc_page_count = 0x%x\012\000" .LC20: - .ascii "GDV = 0x%x\012\000" + .ascii "totle_write = %d MB\012\000" .LC21: - .ascii "bad blk num = %d %d\012\000" + .ascii "totle_read = %d MB\012\000" .LC22: - .ascii "free_superblocks = 0x%x\012\000" + .ascii "GSV = 0x%x\012\000" .LC23: - .ascii "mlc_EC = 0x%x\012\000" + .ascii "GDV = 0x%x\012\000" .LC24: - .ascii "slc_EC = 0x%x\012\000" + .ascii "bad blk num = %d %d\012\000" .LC25: - .ascii "avg_EC = 0x%x\012\000" + .ascii "free_superblocks = 0x%x\012\000" .LC26: - .ascii "sys_EC = 0x%x\012\000" + .ascii "mlc_EC = 0x%x\012\000" .LC27: - .ascii "max_EC = 0x%x\012\000" + .ascii "slc_EC = 0x%x\012\000" .LC28: - .ascii "min_EC = 0x%x\012\000" + .ascii "avg_EC = 0x%x\012\000" .LC29: - .ascii "PLT = 0x%x\012\000" + .ascii "sys_EC = 0x%x\012\000" .LC30: - .ascii "POT = 0x%x\012\000" + .ascii "max_EC = 0x%x\012\000" .LC31: - .ascii "MaxSector = 0x%x\012\000" + .ascii "min_EC = 0x%x\012\000" .LC32: - .ascii "init_sys_blks_pp = 0x%x\012\000" + .ascii "PLT = 0x%x\012\000" .LC33: - .ascii "sys_blks_pp = 0x%x\012\000" + .ascii "POT = 0x%x\012\000" .LC34: - .ascii "free sysblock = 0x%x\012\000" + .ascii "MaxSector = 0x%x\012\000" .LC35: - .ascii "data_blks_pp = 0x%x\012\000" + .ascii "init_sys_blks_pp = 0x%x\012\000" .LC36: - .ascii "data_op_blks_pp = 0x%x\012\000" + .ascii "sys_blks_pp = 0x%x\012\000" .LC37: - .ascii "max_data_blks = 0x%x\012\000" + .ascii "free sysblock = 0x%x\012\000" .LC38: - .ascii "Sys.id = 0x%x\012\000" + .ascii "data_blks_pp = 0x%x\012\000" .LC39: - .ascii "Bbt.id = 0x%x\012\000" + .ascii "data_op_blks_pp = 0x%x\012\000" .LC40: - .ascii "ACT.page = 0x%x\012\000" + .ascii "max_data_blks = 0x%x\012\000" .LC41: - .ascii "ACT.plane = 0x%x\012\000" + .ascii "Sys.id = 0x%x\012\000" .LC42: - .ascii "ACT.id = 0x%x\012\000" + .ascii "Bbt.id = 0x%x\012\000" .LC43: - .ascii "ACT.mode = 0x%x\012\000" + .ascii "ACT.page = 0x%x\012\000" .LC44: - .ascii "ACT.a_pages = 0x%x\012\000" + .ascii "ACT.plane = 0x%x\012\000" .LC45: - .ascii "ACT VPC = 0x%x\012\000" + .ascii "ACT.id = 0x%x\012\000" .LC46: - .ascii "BUF.page = 0x%x\012\000" + .ascii "ACT.mode = 0x%x\012\000" .LC47: - .ascii "BUF.plane = 0x%x\012\000" + .ascii "ACT.a_pages = 0x%x\012\000" .LC48: - .ascii "BUF.id = 0x%x\012\000" + .ascii "ACT VPC = 0x%x\012\000" .LC49: - .ascii "BUF.mode = 0x%x\012\000" + .ascii "BUF.page = 0x%x\012\000" .LC50: - .ascii "BUF.a_pages = 0x%x\012\000" + .ascii "BUF.plane = 0x%x\012\000" .LC51: - .ascii "BUF VPC = 0x%x\012\000" + .ascii "BUF.id = 0x%x\012\000" .LC52: - .ascii "TMP.page = 0x%x\012\000" + .ascii "BUF.mode = 0x%x\012\000" .LC53: - .ascii "TMP.plane = 0x%x\012\000" + .ascii "BUF.a_pages = 0x%x\012\000" .LC54: - .ascii "TMP.id = 0x%x\012\000" + .ascii "BUF VPC = 0x%x\012\000" .LC55: - .ascii "TMP.mode = 0x%x\012\000" + .ascii "TMP.page = 0x%x\012\000" .LC56: - .ascii "TMP.a_pages = 0x%x\012\000" + .ascii "TMP.plane = 0x%x\012\000" .LC57: - .ascii "GC.page = 0x%x\012\000" + .ascii "TMP.id = 0x%x\012\000" .LC58: - .ascii "GC.plane = 0x%x\012\000" + .ascii "TMP.mode = 0x%x\012\000" .LC59: - .ascii "GC.id = 0x%x\012\000" + .ascii "TMP.a_pages = 0x%x\012\000" .LC60: - .ascii "GC.mode = 0x%x\012\000" + .ascii "GC.page = 0x%x\012\000" .LC61: - .ascii "GC.a_pages = 0x%x\012\000" + .ascii "GC.plane = 0x%x\012\000" .LC62: - .ascii "WR_CHK = 0x%x %x %x %x\012\000" + .ascii "GC.id = 0x%x\012\000" .LC63: - .ascii "Read Err Cnt = 0x%x\012\000" + .ascii "GC.mode = 0x%x\012\000" .LC64: - .ascii "Prog Err Cnt = 0x%x\012\000" + .ascii "GC.a_pages = 0x%x\012\000" .LC65: - .ascii "gc_free_blk_th= 0x%x\012\000" + .ascii "WR_CHK = 0x%x %x %x %x\012\000" .LC66: - .ascii "gc_merge_free_blk_th= 0x%x\012\000" + .ascii "Read Err Cnt = 0x%x\012\000" .LC67: - .ascii "gc_skip_write_count= 0x%x\012\000" + .ascii "Prog Err Cnt = 0x%x\012\000" .LC68: - .ascii "gc_blk_index= 0x%x\012\000" + .ascii "gc_free_blk_th= 0x%x\012\000" .LC69: - .ascii "free min EC= 0x%x\012\000" + .ascii "gc_merge_free_blk_th= 0x%x\012\000" .LC70: - .ascii "free max EC= 0x%x\012\000" + .ascii "gc_skip_write_count= 0x%x\012\000" .LC71: - .ascii "GC__SB VPC = 0x%x\012\000" + .ascii "gc_blk_index= 0x%x\012\000" .LC72: - .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000" + .ascii "free min EC= 0x%x\012\000" .LC73: - .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" + .ascii "free max EC= 0x%x\012\000" .LC74: - .ascii "%s\012\000" + .ascii "GC__SB VPC = 0x%x\012\000" .LC75: - .ascii "FTL version: 5.0.47 20171213\000" + .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000" .LC76: - .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" .LC77: - .ascii "FtlGcRefreshBlock 0x%x\012\000" + .ascii "%s\012\000" .LC78: - .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000" + .ascii "FTL version: 5.0.48 20180528\000" .LC79: - .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" .LC80: - .ascii "%s 0x%x:\000" + .ascii "FtlGcRefreshBlock 0x%x\012\000" .LC81: - .ascii "%x \000" + .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000" .LC82: - .ascii "\000" + .ascii "%s error allocating memory. return -1\012\000" .LC83: - .ascii "otp error! %d\000" + .ascii "%s %p:0x%x:\000" .LC84: - .ascii "rr\000" + .ascii "%x \000" .LC85: - .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012" .ascii "\000" .LC86: - .ascii "nandc:\000" + .ascii "otp error! %d\000" .LC87: - .ascii "%d flReg.d32=%x %x\012\000" + .ascii "rr\000" .LC88: - .ascii "sdr read ok %x ecc=%d\012\000" + .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012" + .ascii "\000" .LC89: - .ascii "sync para %d\012\000" + .ascii "nandc:\000" .LC90: - .ascii "TOG mode Read error %x %x\012\000" + .ascii "%d flReg.d32=%x %x\012\000" .LC91: - .ascii "read retry status %x %x %x\012\000" + .ascii "sdr read ok %x ecc=%d\012\000" .LC92: - .ascii "micron RR %d row=%x,count %d,status=%d\012\000" + .ascii "sync para %d\012\000" .LC93: - .ascii "ECC:%d\012\000" + .ascii "TOG mode Read error %x %x\012\000" .LC94: - .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" + .ascii "read retry status %x %x %x\012\000" .LC95: - .ascii "FlashLoadPhyInfo fail %x!!\012\000" + .ascii "micron RR %d row=%x,count %d,status=%d\012\000" .LC96: - .ascii "Read pageadd=%x ecc=%x err=%x\012\000" + .ascii "ECC:%d\012\000" .LC97: - .ascii "data:\000" + .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" .LC98: - .ascii "spare:\000" + .ascii "FlashLoadPhyInfo fail %x!!\012\000" .LC99: - .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" + .ascii "Read pageadd=%x ecc=%x err=%x\012\000" .LC100: - .ascii "FLFB:%d %d\012\000" + .ascii "data:\000" .LC101: - .ascii "prog error: = %x\012\000" + .ascii "spare:\000" .LC102: - .ascii "prog read error: = %x\012\000" + .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" .LC103: - .ascii "prog read s error: = %x %x %x\012\000" + .ascii "FLFB:%d %d\012\000" .LC104: - .ascii "prog read d error: = %x %x %x\012\000" + .ascii "prog error: = %x\012\000" .LC105: - .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" + .ascii "prog read error: = %x\012\000" .LC106: - .ascii "FlashMakeFactorBbt %d\012\000" + .ascii "prog read s error: = %x %x %x\012\000" .LC107: - .ascii "bad block:%d %d\012\000" + .ascii "prog read d error: = %x %x %x\012\000" .LC108: - .ascii "FMFB:%d %d\012\000" + .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" .LC109: - .ascii "E:bad block:%d\012\000" + .ascii "FlashMakeFactorBbt %d\012\000" .LC110: - .ascii "FMFB:Save %d %d\012\000" + .ascii "bad block:%d %d\012\000" .LC111: - .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" + .ascii "FMFB:%d %d\012\000" .LC112: - .ascii "FtlBbmTblFlush error:%x\012\000" + .ascii "E:bad block:%d\012\000" .LC113: - .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" + .ascii "FMFB:Save %d %d\012\000" .LC114: - .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" + .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" .LC115: - .ascii "decrement_vpc_count %x = %d\012\000" + .ascii "FtlBbmTblFlush error:%x\012\000" .LC116: - .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" + .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" .LC117: - .ascii "ftl_map_blk_gc blk info: %x %x %x\012\000" + .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" .LC118: - .ascii "page map lost: %x %x\012\000" + .ascii "decrement_vpc_count %x = %d\012\000" .LC119: - .ascii "FtlMapWritePage error = %x\012\000" + .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" .LC120: - .ascii "FtlMapWritePage error = %x error count = %d\012\000" + .ascii "ftl_map_blk_gc blk info: %x %x %x\012\000" .LC121: - .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" + .ascii "page map lost: %x %x\012\000" .LC122: - .ascii "page map lost %x %x %x %x\012\000" + .ascii "FtlMapWritePage error = %x\012\000" .LC123: - .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" + .ascii "FtlMapWritePage error = %x error count = %d\012\000" .LC124: - .ascii "no ect\000" + .ascii "page map lost %x %x %x %x\012\000" .LC125: - .ascii "slc mode\000" + .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" .LC126: - .ascii "RSB refresh addr %x\012\000" + .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" .LC127: - .ascii "spuer block %x vpn is 0\012 \000" + .ascii "no ect\000" .LC128: - .ascii "g_recovery_ppa %x ver %x\012 \000" + .ascii "slc mode\000" .LC129: - .ascii "...%s enter...\012\000" + .ascii "RSB refresh addr %x\012\000" .LC130: - .ascii "FtlCheckVpc %x = %x %x\012\000" + .ascii "spuer block %x vpn is 0\012 \000" .LC131: - .ascii "%d GC datablk = %x vpc %x %x\012\000" + .ascii "g_recovery_ppa %x ver %x\012 \000" .LC132: - .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" + .ascii "...%s enter...\012\000" .LC133: - .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" + .ascii "FtlCheckVpc %x = %x %x\012\000" .LC134: - .ascii "GC des block %x done\012\000" + .ascii "%d GC datablk = %x vpc %x %x\012\000" .LC135: - .ascii "fix power lost blk = %x vpc=%x\012\000" + .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" .LC136: - .ascii "erase power lost blk = %x vpc=%x\012\000" + .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" .LC137: - .ascii "...%s: no bad block mapping table, format device\012" - .ascii "\000" + .ascii "rk_ftl_de_init %x\012\000" .LC138: - .ascii "...%s FtlSysBlkInit error ,format device!\012\000" + .ascii "GC des block %x done\012\000" .LC139: - .ascii "FtlInit %x\012\000" + .ascii "...%s: no bad block mapping table, format device\012" + .ascii "\000" .LC140: - .ascii "FtlWrite: lpa error:%x %x\012\000" + .ascii "...%s FtlSysBlkInit error ,format device!\012\000" .LC141: - .ascii "BBT:\000" + .ascii "FtlInit %x\012\000" .LC142: - .ascii "IdBlockReadData %x %x\012\000" + .ascii "fix power lost blk = %x vpc=%x\012\000" .LC143: - .ascii "IdBlockReadData %x %x ret= %x\012\000" + .ascii "erase power lost blk = %x vpc=%x\012\000" .LC144: - .ascii "IDBlockWriteData %x %x\012\000" + .ascii "FtlWrite: lpa error:%x %x\012\000" .LC145: - .ascii "IDBlockWriteData %x %x ret= %x\012\000" + .ascii "BBT:\000" .LC146: - .ascii "idblk:\000" + .ascii "IdBlockReadData %x %x\012\000" .LC147: - .ascii "idb reverse %x %x\012\000" + .ascii "IdBlockReadData %x %x ret= %x\012\000" .LC148: - .ascii "write_idblock totle_sec %x %x\012\000" + .ascii "write_idblock fix data %x %x\012\000" .LC149: - .ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x" - .ascii "\012\000" + .ascii "idblk:\000" .LC150: - .ascii "write\000" + .ascii "idb reverse %x %x\012\000" .LC151: - .ascii "read\000" + .ascii "write_idblock totle_sec %x %x %x %x\012\000" .LC152: - .ascii "write_idblock error\012\000" + .ascii "IDBlockWriteData %x %x\012\000" .LC153: - .ascii "READ_SECTOR_IO\012\000" + .ascii "IDBlockWriteData %x %x ret= %x\012\000" .LC154: - .ascii "rk_copy_from_user error\012\000" + .ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x" + .ascii "\012\000" .LC155: - .ascii "READ_SECTOR_IO %x %x\012\000" + .ascii "write\000" .LC156: - .ascii "rk_copy_to_user error\012\000" + .ascii "read\000" .LC157: - .ascii "WRITE_SECTOR_IO\012\000" + .ascii "write_idblock error %d\012\000" .LC158: - .ascii "WRITE_SECTOR_IO %x %x\012\000" + .ascii "READ_SECTOR_IO\012\000" .LC159: - .ascii "END_WRITE_SECTOR_IO\012\000" + .ascii "rk_copy_from_user error\012\000" .LC160: - .ascii "END_WRITE_SECTOR_IO %x %x\012\000" + .ascii "READ_SECTOR_IO %x %x\012\000" .LC161: - .ascii "GET_FLASH_INFO_IO\012\000" + .ascii "rk_copy_to_user error\012\000" .LC162: - .ascii "GET_BAD_BLOCK_IO\012\000" + .ascii "WRITE_SECTOR_IO\012\000" .LC163: - .ascii "bbt:\000" + .ascii "WRITE_SECTOR_IO %x %x\012\000" .LC164: - .ascii "GET_LOCK_FLAG_IO\012\000" + .ascii "END_WRITE_SECTOR_IO\012\000" .LC165: - .ascii "GET_PUBLIC_KEY_IO\012\000" + .ascii "END_WRITE_SECTOR_IO %x %x\012\000" .LC166: - .ascii "RKNAND_GET_DRM_KEY\012\000" + .ascii "GET_FLASH_INFO_IO\012\000" .LC167: - .ascii "RKNAND_STORE_DRM_KEY\012\000" + .ascii "GET_BAD_BLOCK_IO\012\000" .LC168: - .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000" + .ascii "bbt:\000" .LC169: - .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000" + .ascii "GET_LOCK_FLAG_IO\012\000" .LC170: - .ascii "RKNAND_GET_SN_SECTOR\012\000" + .ascii "GET_PUBLIC_KEY_IO\012\000" .LC171: - .ascii "RKNAND_LOADER_UNLOCK\012\000" + .ascii "RKNAND_GET_DRM_KEY\012\000" .LC172: - .ascii "RKNAND_LOADER_STATUS\012\000" + .ascii "RKNAND_STORE_DRM_KEY\012\000" .LC173: - .ascii "RKNAND_LOADER_LOCK\012\000" + .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000" .LC174: - .ascii "LockKey not match %d\012\000" + .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000" .LC175: - .ascii "RKNAND_GET_VENDOR_SECTOR\012\000" + .ascii "RKNAND_GET_SN_SECTOR\012\000" .LC176: - .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000" + .ascii "RKNAND_LOADER_UNLOCK\012\000" .LC177: - .ascii "return ret = %lx\012\000" + .ascii "RKNAND_LOADER_STATUS\012\000" .LC178: - .ascii "secureBootEn check error\012\000" + .ascii "RKNAND_LOADER_LOCK\012\000" .LC179: + .ascii "LockKey not match %d\012\000" +.LC180: + .ascii "RKNAND_GET_VENDOR_SECTOR\012\000" +.LC181: + .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000" +.LC182: + .ascii "return ret = %lx\012\000" +.LC183: + .ascii "secureBootEn check error\012\000" +.LC184: .ascii "\0013vendor storage %x,%x,%x\012\000" .data .align 2 @@ -23896,7 +24234,7 @@ SamsungRefValue: gFtlInitStatus: .word -1 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2304 + .size NandFlashParaTbl, 2368 NandFlashParaTbl: .byte 6 .byte 44 @@ -24394,6 +24732,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 @@ -24406,7 +24770,7 @@ NandFlashParaTbl: .byte 2 .byte 1 .short 1048 - .short 1503 + .short 1479 .byte 5 .byte 19 .byte 60 @@ -24757,6 +25121,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 @@ -25498,7 +25888,7 @@ NandFlashParaTbl: .byte 2 .byte 2 .short 2106 - .short 1497 + .short 473 .byte 2 .byte 68 .byte 40 @@ -25524,7 +25914,7 @@ NandFlashParaTbl: .byte 2 .byte 2 .short 1074 - .short 1497 + .short 473 .byte 2 .byte 68 .byte 40 @@ -26300,6 +26690,10 @@ gNandPhyInfo: gNandFlashEccBits: .space 1 .space 3 + .type g_MaxLbaSector, %object + .size g_MaxLbaSector, 4 +g_MaxLbaSector: + .space 4 .type FlashWaitBusyScheduleEn, %object .size FlashWaitBusyScheduleEn, 4 FlashWaitBusyScheduleEn: @@ -26325,11 +26719,16 @@ read_retry_cur_offset: .size gFlashInterfaceMode, 1 gFlashInterfaceMode: .space 1 + .space 3 + .type g_nandc_version_data, %object + .size g_nandc_version_data, 4 +g_nandc_version_data: + .space 4 .type gFlashToggleModeEn, %object .size gFlashToggleModeEn, 1 gFlashToggleModeEn: .space 1 - .space 2 + .space 3 .type gBootDdrMode, %object .size gBootDdrMode, 4 gBootDdrMode: @@ -26338,10 +26737,6 @@ gBootDdrMode: .size gNandcVer, 4 gNandcVer: .space 4 - .type g_nandc_version_data, %object - .size g_nandc_version_data, 4 -g_nandc_version_data: - .space 4 .type gMasterTempBuf, %object .size gMasterTempBuf, 4 gMasterTempBuf: @@ -26363,6 +26758,10 @@ gNandcEccBits: gMultiPageProgEn: .space 1 .space 3 + .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: @@ -26495,10 +26894,6 @@ c_ftl_nand_map_region_num: .size c_ftl_nand_l2pmap_ram_region_num, 2 c_ftl_nand_l2pmap_ram_region_num: .space 2 - .type g_MaxLbaSector, %object - .size g_MaxLbaSector, 4 -g_MaxLbaSector: - .space 4 .type g_page_map_check_enable, %object .size g_page_map_check_enable, 2 g_page_map_check_enable: @@ -26523,10 +26918,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: @@ -26551,10 +26942,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: @@ -26617,10 +27008,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: @@ -26681,10 +27068,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: @@ -26809,6 +27192,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: @@ -26830,6 +27217,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: |